@microsoft/omnichannel-chat-widget 0.1.0-main.488d6f1 → 0.1.0-main.4e35349

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 (302) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/common/Constants.js +31 -150
  3. package/lib/cjs/common/KeyCodes.js +0 -3
  4. package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
  5. package/lib/cjs/common/storage/default/defaultCacheManager.js +24 -0
  6. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  7. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  8. package/lib/cjs/common/telemetry/TelemetryConstants.js +67 -20
  9. package/lib/cjs/common/telemetry/TelemetryHelper.js +24 -54
  10. package/lib/cjs/common/telemetry/TelemetryManager.js +14 -34
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  13. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  14. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  15. package/lib/cjs/common/utils.js +80 -80
  16. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +19 -43
  17. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  18. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -72
  19. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  20. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  22. package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
  23. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  24. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  26. package/lib/cjs/components/headerstateful/HeaderStateful.js +17 -37
  27. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  28. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +37 -0
  29. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +18 -0
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +32 -0
  32. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +62 -0
  33. package/lib/cjs/components/livechatwidget/common/Deferred.js +35 -0
  34. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  35. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  36. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  37. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  38. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -43
  39. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +73 -51
  40. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  41. package/lib/cjs/components/livechatwidget/common/endChat.js +80 -22
  42. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  43. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  44. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  45. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +47 -52
  46. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +128 -57
  47. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  48. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -15
  49. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  50. package/lib/cjs/components/livechatwidget/common/startChat.js +157 -77
  51. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  52. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  53. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +289 -142
  54. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +4 -17
  55. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  56. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  57. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +9 -23
  58. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  59. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  60. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -44
  61. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -35
  62. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -24
  63. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  64. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  65. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  66. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  67. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  68. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -15
  69. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  70. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  71. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  72. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  73. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  74. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +10 -0
  75. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  76. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +33 -80
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -60
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +7 -18
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +5 -18
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  116. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  117. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  118. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  119. package/lib/cjs/contexts/common/ConversationState.js +3 -3
  120. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +11 -9
  121. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -10
  122. package/lib/cjs/contexts/createReducer.js +150 -107
  123. package/lib/cjs/controller/componentController.js +3 -32
  124. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  125. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  126. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  127. package/lib/cjs/index.js +0 -5
  128. package/lib/cjs/plugins/newMessageEventHandler.js +78 -0
  129. package/lib/esm/common/Constants.js +28 -138
  130. package/lib/esm/common/KeyCodes.js +0 -2
  131. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  132. package/lib/esm/common/storage/default/defaultCacheManager.js +16 -0
  133. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  134. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  135. package/lib/esm/common/telemetry/TelemetryConstants.js +66 -15
  136. package/lib/esm/common/telemetry/TelemetryHelper.js +25 -44
  137. package/lib/esm/common/telemetry/TelemetryManager.js +14 -23
  138. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  139. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  140. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  141. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  142. package/lib/esm/common/utils.js +73 -45
  143. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +19 -14
  144. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  145. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +13 -47
  146. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  147. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  148. package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
  149. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  150. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  151. package/lib/esm/components/headerstateful/HeaderStateful.js +17 -22
  152. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  153. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +30 -0
  154. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +11 -0
  155. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  156. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +25 -0
  157. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +55 -0
  158. package/lib/esm/components/livechatwidget/common/Deferred.js +28 -0
  159. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  160. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  161. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  162. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  163. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  164. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +75 -39
  165. package/lib/esm/components/livechatwidget/common/endChat.js +84 -14
  166. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  167. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
  168. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  169. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +49 -23
  170. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +127 -50
  171. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  172. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -6
  173. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  174. package/lib/esm/components/livechatwidget/common/startChat.js +161 -61
  175. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  176. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +295 -97
  177. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +4 -5
  178. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  179. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  180. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +9 -11
  181. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  182. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  183. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +15 -29
  184. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +24 -12
  185. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -6
  186. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  187. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  188. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  189. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  190. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  191. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -11
  192. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  193. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  194. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  195. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  196. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  197. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -0
  198. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  199. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  200. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +34 -66
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +9 -14
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +5 -13
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  239. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  240. package/lib/esm/contexts/ChatContextStore.js +2 -1
  241. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  242. package/lib/esm/contexts/common/ConversationState.js +3 -3
  243. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +11 -9
  244. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -6
  245. package/lib/esm/contexts/createReducer.js +150 -103
  246. package/lib/esm/controller/componentController.js +4 -3
  247. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  248. package/lib/esm/hooks/useChatContextStore.js +0 -4
  249. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  250. package/lib/esm/plugins/newMessageEventHandler.js +71 -0
  251. package/lib/types/common/Constants.d.ts +27 -2
  252. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  253. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  254. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  255. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  256. package/lib/types/common/telemetry/TelemetryConstants.d.ts +46 -4
  257. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  258. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  259. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  260. package/lib/types/common/utils.d.ts +8 -1
  261. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +4 -4
  262. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  263. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  264. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  265. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  266. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  267. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  268. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  269. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  270. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  271. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  272. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  273. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  274. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  275. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  276. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  277. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -3
  278. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  279. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  280. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  281. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  282. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  283. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  284. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  285. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  286. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  287. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  288. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  289. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  290. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  291. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  292. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  293. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  294. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  295. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  296. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  297. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  298. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -2
  299. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +12 -9
  300. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  301. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  302. package/package.json +12 -13
@@ -0,0 +1,42 @@
1
+ import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
+ import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
3
+ import { isNullOrEmptyString } from "../../../common/utils";
4
+ const getAuthClientFunction = chatConfig => {
5
+ let authClientFunction = undefined;
6
+ if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
7
+ var _chatConfig$LiveChatC;
8
+ authClientFunction = (chatConfig === null || chatConfig === void 0 ? void 0 : (_chatConfig$LiveChatC = chatConfig.LiveChatConfigAuthSettings) === null || _chatConfig$LiveChatC === void 0 ? void 0 : _chatConfig$LiveChatC.msdyn_javascriptclientfunction) ?? undefined;
9
+ }
10
+ return authClientFunction;
11
+ };
12
+
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
15
+ const authClientFunction = getAuthClientFunction(chatConfig);
16
+ if (getAuthToken && authClientFunction) {
17
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
18
+ Event: TelemetryEvent.GetAuthTokenCalled
19
+ });
20
+ const token = await getAuthToken(authClientFunction);
21
+ if (!isNullOrEmptyString(token)) {
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ chatSDK.setAuthTokenProvider(async () => {
24
+ return token;
25
+ });
26
+ return true;
27
+ } else {
28
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
29
+ Event: TelemetryEvent.ReceivedNullOrEmptyToken
30
+ });
31
+ return false;
32
+ }
33
+ }
34
+ return false;
35
+ };
36
+
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ const removeAuthTokenProvider = chatSDK => {
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ chatSDK.authenticatedUserToken = null;
41
+ };
42
+ export { getAuthClientFunction, handleAuthentication, removeAuthTokenProvider };
@@ -1,8 +1,11 @@
1
1
  import { NotificationHandler } from "../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler";
2
2
  import { NotificationLevel } from "../../webchatcontainerstateful/webchatcontroller/enums/NotificationLevel";
3
3
  import { NotificationScenarios } from "../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
4
- import { defaultMiddlewareLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ import { defaultMiddlewareLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts";
5
+ import { ChatAdapterShim } from "./ChatAdapterShim";
6
+ import { PauseActivitySubscriber } from "./ActivitySubscriber/PauseActivitySubscriber";
5
7
 
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
9
  export const createAdapter = async chatSDK => {
7
10
  const chatAdapterOptionalParams = {
8
11
  IC3Adapter: {
@@ -11,11 +14,9 @@ export const createAdapter = async chatSDK => {
11
14
  if (notification.id === NotificationScenarios.InternetConnection && notification.level == NotificationLevel.Error) {
12
15
  notification.message = defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION;
13
16
  }
14
-
15
17
  if (notification.id === NotificationScenarios.InternetConnection && notification.level == NotificationLevel.Success) {
16
18
  notification.message = defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE;
17
19
  }
18
-
19
20
  if (notification.id && notification.message) {
20
21
  NotificationHandler.notifyWithLevel(notification.id, notification.message, notification.level);
21
22
  }
@@ -23,5 +24,12 @@ export const createAdapter = async chatSDK => {
23
24
  }
24
25
  }
25
26
  };
26
- return await chatSDK.createChatAdapter(chatAdapterOptionalParams);
27
+ let adapter = await chatSDK.createChatAdapter(chatAdapterOptionalParams);
28
+ //so far, there is no need to convert to the shim adapter when using visual tests
29
+ if (chatSDK.isMockModeOn !== true) {
30
+ adapter = new ChatAdapterShim(adapter);
31
+ adapter.addSubscriber(new PauseActivitySubscriber());
32
+ return adapter.chatAdapter;
33
+ }
34
+ return adapter;
27
35
  };
@@ -3,25 +3,13 @@ import React from "react";
3
3
  import { decodeComponentString } from "@microsoft/omnichannel-chat-components";
4
4
  import { shouldShowFooter } from "../../../controller/componentController";
5
5
  export const createFooter = (props, state) => {
6
- var _props$footerProps, _props$controlProps, _props$componentOverr, _props$componentOverr2;
7
-
8
- const footerPropsHidden = { ...props.footerProps,
9
- controlProps: { ...((_props$footerProps = props.footerProps) === null || _props$footerProps === void 0 ? void 0 : _props$footerProps.controlProps),
10
- hideDownloadTranscriptButton: true,
11
- hideEmailTranscriptButton: true,
12
- hideAudioNotificationButton: true
13
- }
14
- };
15
- const footer = !((_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hideFooter) && shouldShowFooter(state) ? decodeComponentString((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.footer) || /*#__PURE__*/React.createElement(FooterStateful, {
6
+ var _props$controlProps, _props$componentOverr;
7
+ const hideFooterDisplay = !((_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hideFooter) && shouldShowFooter(state) ? false : true;
8
+ const footer = decodeComponentString((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.footer) || /*#__PURE__*/React.createElement(FooterStateful, {
16
9
  footerProps: props.footerProps,
17
10
  downloadTranscriptProps: props.downloadTranscriptProps,
18
11
  audioNotificationProps: props.audioNotificationProps,
19
- hideFooterDisplay: false
20
- }) : decodeComponentString((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.footer) || /*#__PURE__*/React.createElement(FooterStateful, {
21
- footerProps: footerPropsHidden,
22
- downloadTranscriptProps: props.downloadTranscriptProps,
23
- audioNotificationProps: props.audioNotificationProps,
24
- hideFooterDisplay: true
12
+ hideFooterDisplay: hideFooterDisplay
25
13
  });
26
14
  return footer;
27
15
  };
@@ -2,7 +2,8 @@ import { Constants } from "../../../common/Constants";
2
2
  import { NotificationHandler } from "../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler";
3
3
  import { NotificationScenarios } from "../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
4
4
  import { defaultMiddlewareLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts";
5
-
5
+ import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
6
+ import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
6
7
  const isInternetConnected = async () => {
7
8
  try {
8
9
  const response = await fetch(Constants.internetConnectionTestUrl);
@@ -12,19 +13,23 @@ const isInternetConnected = async () => {
12
13
  return false;
13
14
  }
14
15
  };
15
-
16
16
  export const createInternetConnectionChangeHandler = async () => {
17
17
  const handler = async () => {
18
18
  const connected = await isInternetConnected();
19
-
20
19
  if (!connected) {
20
+ TelemetryHelper.logActionEvent(LogLevel.WARN, {
21
+ Event: TelemetryEvent.NetworkDisconnected
22
+ });
21
23
  NotificationHandler.notifyError(NotificationScenarios.InternetConnection, defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION);
22
24
  } else {
25
+ TelemetryHelper.logActionEvent(LogLevel.WARN, {
26
+ Event: TelemetryEvent.NetworkReconnected
27
+ });
23
28
  NotificationHandler.notifySuccess(NotificationScenarios.InternetConnection, defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE);
24
29
  }
25
- }; // Checking connection status on online & offline events due to possible false positives
26
-
30
+ };
27
31
 
32
+ // Checking connection status on online & offline events due to possible false positives
28
33
  window.addEventListener("online", () => handler(), false);
29
34
  window.addEventListener("offline", () => handler(), false);
30
35
  };
@@ -1,61 +1,62 @@
1
1
  import MarkdownIt from "markdown-it";
2
2
  import MarkdownItForInline from "markdown-it-for-inline";
3
3
  import { defaultMarkdownLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMarkdownLocalizedTexts";
4
- import { Constants } from "../../../common/Constants"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ import { Constants } from "../../../common/Constants";
5
5
 
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
7
  export const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineMarkdownSupport) => {
7
8
  let markdown;
8
-
9
9
  if (!disableMarkdownMessageFormatting) {
10
10
  markdown = new MarkdownIt(Constants.Default, {
11
11
  html: true,
12
12
  linkify: true,
13
13
  breaks: !disableNewLineMarkdownSupport
14
- }); // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
15
- // markdown.use(MarkdownSlack);
16
- // Markdown override for open link in new tab
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, quotes
18
-
19
- markdown.use(MarkdownItForInline, "url_new_win", "link_open", function (tokens, idx, env) {
20
- const targetAttrIndex = tokens[idx].attrIndex(Constants.Target); // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
21
-
22
- const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
23
-
24
- if (~targetAttrIndex) {
25
- tokens[idx].attrs[targetAttrIndex][1] = Constants.Blank;
26
- } else {
27
- tokens[idx].attrPush([Constants.Target, Constants.Blank]);
28
- }
29
-
30
- const relAttrIndex = tokens[idx].attrIndex(Constants.TargetRelationship);
31
-
32
- if (~relAttrIndex) {
33
- tokens[idx].attrs[relAttrIndex][1] = Constants.TargetRelationshipAttributes;
34
- } else {
35
- tokens[idx].attrPush([Constants.TargetRelationship, Constants.TargetRelationshipAttributes]);
36
- tokens[idx].attrPush([Constants.Title, defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]); // eslint-disable-next-line quotes
37
-
38
- const iconTokens = markdown.parseInline(`![${defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
39
-
40
- if (iconTokens && iconTokens.length > 0) {
41
- iconTokens[0].attrJoin("class", Constants.OpenLinkIconCssClass);
42
- tokens.splice(idx + 2, 0, ...iconTokens);
43
- }
44
- }
45
14
  });
15
+ // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
16
+ // markdown.use(MarkdownSlack);
46
17
  } else {
47
18
  markdown = new MarkdownIt(Constants.Zero, {
48
19
  html: true,
49
20
  linkify: true,
50
21
  breaks: !disableNewLineMarkdownSupport
51
22
  });
52
- markdown.enable(["entity", // Rule to process html entity - {, ¯, "
53
- "linkify", // Rule to replace link-like texts with link nodes
54
- "html_block", // Rule to process html blocks and paragraphs
55
- "html_inline", // Rule to process html tags
23
+ markdown.enable(["entity",
24
+ // Rule to process html entity - {, ¯, "
25
+ "linkify",
26
+ // Rule to replace link-like texts with link nodes
27
+ "html_block",
28
+ // Rule to process html blocks and paragraphs
29
+ "html_inline",
30
+ // Rule to process html tags
56
31
  "newline" // Rule to proceess '\n'
57
32
  ]);
58
33
  }
59
34
 
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ markdown.use(MarkdownItForInline, "url_new_win", "link_open", function (tokens, idx, env) {
37
+ const targetAttrIndex = tokens[idx].attrIndex(Constants.Target);
38
+ // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
39
+ const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
40
+ if (~targetAttrIndex) {
41
+ tokens[idx].attrs[targetAttrIndex][1] = Constants.Blank;
42
+ } else {
43
+ tokens[idx].attrPush([Constants.Target, Constants.Blank]);
44
+ }
45
+ const relAttrIndex = tokens[idx].attrIndex(Constants.TargetRelationship);
46
+ if (~relAttrIndex) {
47
+ tokens[idx].attrs[relAttrIndex][1] = Constants.TargetRelationshipAttributes;
48
+ } else {
49
+ tokens[idx].attrPush([Constants.TargetRelationship, Constants.TargetRelationshipAttributes]);
50
+ if (!disableMarkdownMessageFormatting) {
51
+ tokens[idx].attrPush([Constants.Title, defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]);
52
+ // eslint-disable-next-line quotes
53
+ const iconTokens = markdown.parseInline(`![${defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
54
+ if (iconTokens && iconTokens.length > 0) {
55
+ iconTokens[0].attrJoin("class", Constants.OpenLinkIconCssClass);
56
+ tokens.splice(idx + 2, 0, ...iconTokens);
57
+ }
58
+ }
59
+ }
60
+ });
60
61
  return markdown;
61
62
  };
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
2
+
2
3
  import { ChatReconnectIconBase64, CloseChatButtonIconBase64, ModernChatIconBase64, ProactiveChatBannerBase64 } from "@microsoft/omnichannel-chat-components";
3
4
  import MockAdapter from "../../../webchatcontainerstateful/common/mockadapter";
4
5
  import { NewMessageNotificationSoundBase64 } from "../../../../assets/Audios";
@@ -9,8 +10,10 @@ import createAttachmentMiddleware from "../../../webchatcontainerstateful/webcha
9
10
  import { createAvatarMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware";
10
11
  import { createMarkdown } from "../createMarkdown";
11
12
  import { groupActivitiesMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware";
12
- import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware"; // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware";
14
+ import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger";
13
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
17
  export const dummyDefaultProps = {
15
18
  audioNotificationProps: {
16
19
  audioSrc: NewMessageNotificationSoundBase64
@@ -165,24 +168,28 @@ export const dummyDefaultProps = {
165
168
  },
166
169
  audioCallButtonStyleProps: {
167
170
  borderRadius: "50%",
168
- color: "#FFFFFF",
169
171
  backgroundColor: "#008000",
170
172
  lineHeight: "40px",
171
173
  height: "40px",
172
174
  width: "40px",
173
- fontSize: 18
175
+ icon: {
176
+ fontSize: 18,
177
+ color: "#FFFFFF"
178
+ }
174
179
  },
175
180
  audioCallButtonHoverStyleProps: {
176
181
  filter: "brightness(0.8)"
177
182
  },
178
183
  videoCallButtonStyleProps: {
179
184
  borderRadius: "50%",
180
- color: "#FFFFFF",
181
185
  backgroundColor: "#008000",
182
186
  lineHeight: "40px",
183
187
  height: "40px",
184
188
  width: "40px",
185
- fontSize: 18
189
+ icon: {
190
+ fontSize: 18,
191
+ color: "#FFFFFF"
192
+ }
186
193
  },
187
194
  videoCallButtonHoverStyleProps: {
188
195
  filter: "brightness(0.8)"
@@ -193,13 +200,15 @@ export const dummyDefaultProps = {
193
200
  },
194
201
  declineCallButtonStyleProps: {
195
202
  borderRadius: "50%",
196
- color: "#FFFFFF",
197
203
  backgroundColor: "#DC0000",
198
204
  lineHeight: "40px",
199
205
  height: "40px",
200
206
  width: "40px",
201
- fontSize: 18,
202
- marginLeft: "5px"
207
+ marginLeft: "5px",
208
+ icon: {
209
+ fontSize: 18,
210
+ color: "#FFFFFF"
211
+ }
203
212
  },
204
213
  incomingCallTitleStyleProps: {
205
214
  margin: "0 5px",
@@ -252,18 +261,6 @@ export const dummyDefaultProps = {
252
261
  width: "50px",
253
262
  fontSize: "18px"
254
263
  },
255
- currentCallTimerStyleProps: {
256
- borderRadius: "2px",
257
- margin: "1px",
258
- color: "#FFFFFF",
259
- paddingTop: "18px",
260
- fontSize: 12,
261
- fontFamily: "Segoe UI, Arial, sans-serif",
262
- backgroundColor: "darkgrey",
263
- height: "45px",
264
- width: "50px",
265
- textAlign: "center"
266
- },
267
264
  videoTileStyleProps: {
268
265
  width: "100%",
269
266
  marginLeft: "auto",
@@ -327,7 +324,10 @@ export const dummyDefaultProps = {
327
324
  hideChatTextContainer: false,
328
325
  hideChatSubtitle: false,
329
326
  hideChatTitle: false,
330
- hideNotificationBubble: true
327
+ hideNotificationBubble: true,
328
+ unreadMessageString: "new messages",
329
+ largeUnreadMessageString: "99+",
330
+ ariaLabelUnreadMessageString: "you have new messages"
331
331
  },
332
332
  styleProps: {
333
333
  generalStyleProps: {
@@ -473,8 +473,8 @@ export const dummyDefaultProps = {
473
473
  onConfirm: () => {},
474
474
  // Detailed implementation omitted
475
475
  onCancel: () => {} // Detailed implementation omitted
476
-
477
476
  },
477
+
478
478
  styleProps: {
479
479
  generalStyleProps: {
480
480
  backgroundColor: "#FFFFFF",
@@ -779,6 +779,7 @@ export const dummyDefaultProps = {
779
779
  },
780
780
  audioNotificationButtonProps: {
781
781
  id: "oc-lcw-footer-audionotification-button",
782
+ type: "icon",
782
783
  ariaLabel: "Turn sound off",
783
784
  toggleAriaLabel: "Turn sound on",
784
785
  iconName: "Volume3",
@@ -804,8 +805,10 @@ export const dummyDefaultProps = {
804
805
  padding: "0 10px 5px 10px"
805
806
  },
806
807
  downloadTranscriptButtonStyleProps: {
807
- color: "blue",
808
- fontSize: 16,
808
+ icon: {
809
+ color: "blue",
810
+ fontSize: 16
811
+ },
809
812
  height: "25px",
810
813
  lineHeight: "25px",
811
814
  width: "25px"
@@ -815,8 +818,10 @@ export const dummyDefaultProps = {
815
818
  backgroundColor: "#C8C8C8"
816
819
  },
817
820
  emailTranscriptButtonStyleProps: {
818
- color: "blue",
819
- fontSize: 16,
821
+ cicon: {
822
+ color: "blue",
823
+ fontSize: 16
824
+ },
820
825
  height: "25px",
821
826
  lineHeight: "25px",
822
827
  width: "25px"
@@ -826,8 +831,10 @@ export const dummyDefaultProps = {
826
831
  backgroundColor: "#C8C8C8"
827
832
  },
828
833
  audioNotificationButtonStyleProps: {
829
- color: "blue",
830
- fontSize: 16,
834
+ icon: {
835
+ color: "blue",
836
+ fontSize: 16
837
+ },
831
838
  height: "25px",
832
839
  lineHeight: "25px",
833
840
  width: "25px"
@@ -878,7 +885,7 @@ export const dummyDefaultProps = {
878
885
  className: undefined
879
886
  },
880
887
  closeButtonProps: {
881
- id: "oc-lcw-header-minimize-button",
888
+ id: "oc-lcw-header-close-button",
882
889
  type: "icon",
883
890
  iconName: "ChromeClose",
884
891
  ariaLabel: "Close",
@@ -1057,8 +1064,8 @@ export const dummyDefaultProps = {
1057
1064
  titleText: "We're Offline",
1058
1065
  subtitleText: "No agents available",
1059
1066
  onClick: () => {} // Detailed implementation omitted
1060
-
1061
1067
  },
1068
+
1062
1069
  styleProps: {
1063
1070
  // ...[Existing chat button style props]
1064
1071
  iconStyleProps: {
@@ -1076,8 +1083,8 @@ export const dummyDefaultProps = {
1076
1083
  text: "We're Offline"
1077
1084
  },
1078
1085
  onMinimizeClick: () => {} // Detailed implementation omitted
1079
-
1080
1086
  },
1087
+
1081
1088
  styleProps: {
1082
1089
  // ...[Existing chat button style props]
1083
1090
  generalStyleProps: {
@@ -1174,7 +1181,8 @@ export const dummyDefaultProps = {
1174
1181
  backgroundColor: "#FFFFFF",
1175
1182
  borderColor: "#F1F1F1"
1176
1183
  }
1177
- }
1184
+ },
1185
+ isCustomerVoiceSurveyCompact: undefined
1178
1186
  },
1179
1187
  proactiveChatPaneProps: {
1180
1188
  componentOverrides: {
@@ -1194,7 +1202,17 @@ export const dummyDefaultProps = {
1194
1202
  hideSubtitle: false,
1195
1203
  subtitleText: "Live chat support!",
1196
1204
  hideCloseButton: false,
1197
- closeButtonAriaLabel: "Close Button",
1205
+ closeButtonProps: {
1206
+ id: "oc-lcw-proactivechat-closebutton",
1207
+ type: "icon",
1208
+ iconName: "ChromeClose",
1209
+ ariaLabel: "Close",
1210
+ imageIconProps: undefined,
1211
+ text: "Close",
1212
+ onClick: undefined,
1213
+ className: undefined,
1214
+ hideButtonTitle: true
1215
+ },
1198
1216
  isBodyContainerHorizantal: false,
1199
1217
  hideBodyTitle: false,
1200
1218
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1204,8 +1222,8 @@ export const dummyDefaultProps = {
1204
1222
  onClose: () => {},
1205
1223
  // Detailed implementation omitted
1206
1224
  onStart: () => {} // Detailed implementation omitted
1207
-
1208
1225
  },
1226
+
1209
1227
  styleProps: {
1210
1228
  generalStyleProps: {
1211
1229
  backgroundColor: "rgb(255, 255, 255)",
@@ -1336,8 +1354,8 @@ export const dummyDefaultProps = {
1336
1354
  onStartNewChat: () => {},
1337
1355
  // Detailed implementation omitted
1338
1356
  onMinimize: () => {} // Detailed implementation omitted
1339
-
1340
1357
  },
1358
+
1341
1359
  styleProps: {
1342
1360
  generalStyleProps: {
1343
1361
  backgroundColor: "rgb(255, 255, 255)",
@@ -1422,9 +1440,9 @@ export const dummyDefaultProps = {
1422
1440
  startNewChatButtonClassName: undefined
1423
1441
  }
1424
1442
  },
1425
- authClientFunction: undefined,
1426
1443
  isReconnectEnabled: undefined,
1427
- reconnectId: undefined
1444
+ reconnectId: undefined,
1445
+ redirectInSameWindow: undefined
1428
1446
  },
1429
1447
  styleProps: {
1430
1448
  generalStyles: {
@@ -1496,7 +1514,7 @@ export const dummyDefaultProps = {
1496
1514
  internalErrorBoxClass: undefined,
1497
1515
  internalRenderErrorBox: undefined,
1498
1516
  locale: "en-US",
1499
- onTelemetry: undefined,
1517
+ onTelemetry: createWebChatTelemetry(),
1500
1518
  overrideLocalizedStrings: undefined,
1501
1519
  renderMarkdown: createMarkdown(false, false),
1502
1520
  scrollToEndButtonMiddleware: undefined,
@@ -1544,6 +1562,12 @@ export const dummyDefaultProps = {
1544
1562
  lineHeight: "16px",
1545
1563
  padding: "0px 10px 0 10px"
1546
1564
  },
1565
+ userMessageBoxStyles: {
1566
+ maxWidth: "75%"
1567
+ },
1568
+ systemMessageBoxStyles: {
1569
+ maxWidth: "75%"
1570
+ },
1547
1571
  typingIndicatorStyleProps: {
1548
1572
  marginLeft: "10px",
1549
1573
  marginBottom: "5px",
@@ -1663,6 +1687,9 @@ export const dummyDefaultProps = {
1663
1687
  },
1664
1688
  attachmentSizeStyles: {
1665
1689
  display: "none"
1690
+ },
1691
+ receivedMessageAnchorStyles: {
1692
+ color: "white"
1666
1693
  }
1667
1694
  },
1668
1695
  localizedTexts: {
@@ -1686,7 +1713,16 @@ export const dummyDefaultProps = {
1686
1713
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1687
1714
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1688
1715
  MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external."
1716
+ },
1717
+ botMagicCode: {
1718
+ disabled: false,
1719
+ fwdUrl: ""
1720
+ },
1721
+ adaptiveCardStyles: {
1722
+ background: "white",
1723
+ color: "black"
1689
1724
  }
1690
1725
  },
1691
- telemetryConfig: undefined
1726
+ telemetryConfig: undefined,
1727
+ getAuthToken: undefined
1692
1728
  };