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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/lib/cjs/assets/Icons.js +4 -2
  2. package/lib/cjs/common/Constants.js +20 -169
  3. package/lib/cjs/common/KeyCodes.js +3 -4
  4. package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
  5. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -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 +24 -23
  9. package/lib/cjs/common/telemetry/TelemetryHelper.js +19 -58
  10. package/lib/cjs/common/telemetry/TelemetryManager.js +3 -32
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  12. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  14. package/lib/cjs/common/utils.js +18 -105
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
  17. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  18. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -32
  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 +11 -42
  23. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  24. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  26. package/lib/cjs/components/headerstateful/HeaderStateful.js +15 -30
  27. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  28. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +5 -10
  29. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -6
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -12
  31. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -20
  32. package/lib/cjs/components/livechatwidget/common/Deferred.js +6 -11
  33. package/lib/cjs/components/livechatwidget/common/authHelper.js +13 -15
  34. package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -13
  35. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  36. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -14
  37. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  38. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  39. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +56 -37
  40. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  41. package/lib/cjs/components/livechatwidget/common/endChat.js +50 -35
  42. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  43. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  44. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  45. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +16 -54
  46. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +80 -150
  47. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  48. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
  49. package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
  50. package/lib/cjs/components/livechatwidget/common/startChat.js +150 -112
  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/interfaces/IScrollBarProps.js +1 -0
  54. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +227 -263
  55. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
  56. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  57. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  58. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  59. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  60. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  61. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  62. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  63. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  64. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -37
  65. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  66. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  67. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -37
  68. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
  69. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  70. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  71. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +5 -18
  72. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  73. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  74. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  75. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -5
  76. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +8 -19
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  117. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  118. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  119. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  120. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  121. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -29
  122. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +10 -11
  123. package/lib/cjs/contexts/createReducer.js +154 -108
  124. package/lib/cjs/controller/componentController.js +2 -31
  125. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  126. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  127. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  128. package/lib/cjs/index.js +0 -5
  129. package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
  130. package/lib/esm/assets/Icons.js +2 -1
  131. package/lib/esm/common/Constants.js +17 -156
  132. package/lib/esm/common/KeyCodes.js +3 -3
  133. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  134. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  135. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  136. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  137. package/lib/esm/common/telemetry/TelemetryConstants.js +28 -20
  138. package/lib/esm/common/telemetry/TelemetryHelper.js +19 -46
  139. package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
  140. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  141. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  142. package/lib/esm/common/utils.js +18 -53
  143. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  144. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  145. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  146. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -13
  147. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  148. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  149. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  150. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  151. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  152. package/lib/esm/components/headerstateful/HeaderStateful.js +15 -15
  153. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  154. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +5 -7
  155. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -4
  156. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -9
  157. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -16
  158. package/lib/esm/components/livechatwidget/common/Deferred.js +6 -9
  159. package/lib/esm/components/livechatwidget/common/authHelper.js +13 -10
  160. package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -6
  161. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  162. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -5
  163. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  164. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  165. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +58 -24
  166. package/lib/esm/components/livechatwidget/common/endChat.js +52 -20
  167. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  168. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  169. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  170. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +18 -19
  171. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +79 -130
  172. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  173. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  174. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  175. package/lib/esm/components/livechatwidget/common/startChat.js +150 -84
  176. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  177. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  178. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +230 -198
  179. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  180. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  181. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  182. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  183. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  184. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  185. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  186. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  187. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  188. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -21
  189. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  190. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  191. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +19 -11
  192. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  193. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  194. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +5 -14
  195. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  196. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  197. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  198. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
  199. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  200. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -11
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  240. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  241. package/lib/esm/contexts/ChatContextStore.js +2 -1
  242. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  243. package/lib/esm/contexts/common/ConversationState.js +0 -1
  244. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -29
  245. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +10 -7
  246. package/lib/esm/contexts/createReducer.js +154 -105
  247. package/lib/esm/controller/componentController.js +3 -2
  248. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  249. package/lib/esm/hooks/useChatContextStore.js +0 -4
  250. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  251. package/lib/esm/plugins/newMessageEventHandler.js +15 -26
  252. package/lib/types/assets/Icons.d.ts +1 -0
  253. package/lib/types/common/Constants.d.ts +12 -0
  254. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  255. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  256. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  257. package/lib/types/common/telemetry/TelemetryConstants.d.ts +13 -4
  258. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  259. package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
  260. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  261. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
  262. package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
  263. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -1
  264. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -2
  265. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  266. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  267. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  268. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  269. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  270. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  271. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  272. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  273. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  274. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  275. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
  276. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -28
  277. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  278. package/package.json +3 -3
@@ -1,33 +1,30 @@
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
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  export class Deferred {
4
5
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+
5
7
  constructor() {
6
8
  _defineProperty(this, "_promise", void 0);
7
-
8
9
  _defineProperty(this, "_resolve", void 0);
9
-
10
10
  _defineProperty(this, "_reject", () => {
11
11
  return;
12
12
  });
13
-
14
13
  _defineProperty(this, "resolve", value => {
15
14
  this._resolve(value);
16
15
  });
17
-
18
16
  _defineProperty(this, "reject", value => {
19
17
  this._reject(value);
20
18
  });
21
-
22
19
  this._promise = new Promise((resolve, reject) => {
23
20
  this._resolve = resolve;
24
21
  this._reject = reject;
25
22
  });
26
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ }
27
24
 
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
26
 
29
27
  get promise() {
30
28
  return this._promise;
31
29
  }
32
-
33
30
  }
@@ -1,39 +1,42 @@
1
1
  import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
2
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
3
- import { isNullOrEmptyString } from "../../../common/utils"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
-
5
- const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
3
+ import { isNullOrEmptyString } from "../../../common/utils";
4
+ const getAuthClientFunction = chatConfig => {
6
5
  let authClientFunction = undefined;
7
-
8
6
  if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
9
7
  var _chatConfig$LiveChatC;
10
-
11
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;
12
9
  }
10
+ return authClientFunction;
11
+ };
13
12
 
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
15
+ const authClientFunction = getAuthClientFunction(chatConfig);
14
16
  if (getAuthToken && authClientFunction) {
15
17
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
16
18
  Event: TelemetryEvent.GetAuthTokenCalled
17
19
  });
18
20
  const token = await getAuthToken(authClientFunction);
19
-
20
21
  if (!isNullOrEmptyString(token)) {
21
22
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
23
  chatSDK.setAuthTokenProvider(async () => {
23
24
  return token;
24
25
  });
26
+ return true;
25
27
  } else {
26
28
  TelemetryHelper.logActionEvent(LogLevel.ERROR, {
27
29
  Event: TelemetryEvent.ReceivedNullOrEmptyToken
28
30
  });
31
+ return false;
29
32
  }
30
33
  }
31
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
-
34
+ return false;
35
+ };
33
36
 
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
38
  const removeAuthTokenProvider = chatSDK => {
35
39
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
40
  chatSDK.authenticatedUserToken = null;
37
41
  };
38
-
39
- export { handleAuthentication, removeAuthTokenProvider };
42
+ export { getAuthClientFunction, handleAuthentication, removeAuthTokenProvider };
@@ -3,8 +3,9 @@ import { NotificationLevel } from "../../webchatcontainerstateful/webchatcontrol
3
3
  import { NotificationScenarios } from "../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
4
4
  import { defaultMiddlewareLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts";
5
5
  import { ChatAdapterShim } from "./ChatAdapterShim";
6
- import { PauseActivitySubscriber } from "./ActivitySubscriber/PauseActivitySubscriber"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ import { PauseActivitySubscriber } from "./ActivitySubscriber/PauseActivitySubscriber";
7
7
 
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
9
  export const createAdapter = async chatSDK => {
9
10
  const chatAdapterOptionalParams = {
10
11
  IC3Adapter: {
@@ -13,11 +14,9 @@ export const createAdapter = async chatSDK => {
13
14
  if (notification.id === NotificationScenarios.InternetConnection && notification.level == NotificationLevel.Error) {
14
15
  notification.message = defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION;
15
16
  }
16
-
17
17
  if (notification.id === NotificationScenarios.InternetConnection && notification.level == NotificationLevel.Success) {
18
18
  notification.message = defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE;
19
19
  }
20
-
21
20
  if (notification.id && notification.message) {
22
21
  NotificationHandler.notifyWithLevel(notification.id, notification.message, notification.level);
23
22
  }
@@ -25,13 +24,12 @@ export const createAdapter = async chatSDK => {
25
24
  }
26
25
  }
27
26
  };
28
- let adapter = await chatSDK.createChatAdapter(chatAdapterOptionalParams); //so far, there is no need to convert to the shim adapter when using visual tests
29
-
27
+ let adapter = await chatSDK.createChatAdapter(chatAdapterOptionalParams);
28
+ //so far, there is no need to convert to the shim adapter when using visual tests
30
29
  if (chatSDK.isMockModeOn !== true) {
31
30
  adapter = new ChatAdapterShim(adapter);
32
31
  adapter.addSubscriber(new PauseActivitySubscriber());
33
32
  return adapter.chatAdapter;
34
33
  }
35
-
36
34
  return adapter;
37
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
  };
@@ -4,7 +4,6 @@ import { NotificationScenarios } from "../../webchatcontainerstateful/webchatcon
4
4
  import { defaultMiddlewareLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts";
5
5
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
6
6
  import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
7
-
8
7
  const isInternetConnected = async () => {
9
8
  try {
10
9
  const response = await fetch(Constants.internetConnectionTestUrl);
@@ -14,11 +13,9 @@ const isInternetConnected = async () => {
14
13
  return false;
15
14
  }
16
15
  };
17
-
18
16
  export const createInternetConnectionChangeHandler = async () => {
19
17
  const handler = async () => {
20
18
  const connected = await isInternetConnected();
21
-
22
19
  if (!connected) {
23
20
  TelemetryHelper.logActionEvent(LogLevel.WARN, {
24
21
  Event: TelemetryEvent.NetworkDisconnected
@@ -30,9 +27,9 @@ export const createInternetConnectionChangeHandler = async () => {
30
27
  });
31
28
  NotificationHandler.notifySuccess(NotificationScenarios.InternetConnection, defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE);
32
29
  }
33
- }; // Checking connection status on online & offline events due to possible false positives
34
-
30
+ };
35
31
 
32
+ // Checking connection status on online & offline events due to possible false positives
36
33
  window.addEventListener("online", () => handler(), false);
37
34
  window.addEventListener("offline", () => handler(), false);
38
35
  };
@@ -1,17 +1,18 @@
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
14
+ });
15
+ // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
15
16
  // markdown.use(MarkdownSlack);
16
17
  } else {
17
18
  markdown = new MarkdownIt(Constants.Zero, {
@@ -19,38 +20,37 @@ export const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineM
19
20
  linkify: true,
20
21
  breaks: !disableNewLineMarkdownSupport
21
22
  });
22
- markdown.enable(["entity", // Rule to process html entity - {, ¯, "
23
- "linkify", // Rule to replace link-like texts with link nodes
24
- "html_block", // Rule to process html blocks and paragraphs
25
- "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
26
31
  "newline" // Rule to proceess '\n'
27
32
  ]);
28
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
-
33
+ }
30
34
 
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
36
  markdown.use(MarkdownItForInline, "url_new_win", "link_open", function (tokens, idx, env) {
32
- 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.
33
-
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.
34
39
  const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
35
-
36
40
  if (~targetAttrIndex) {
37
41
  tokens[idx].attrs[targetAttrIndex][1] = Constants.Blank;
38
42
  } else {
39
43
  tokens[idx].attrPush([Constants.Target, Constants.Blank]);
40
44
  }
41
-
42
45
  const relAttrIndex = tokens[idx].attrIndex(Constants.TargetRelationship);
43
-
44
46
  if (~relAttrIndex) {
45
47
  tokens[idx].attrs[relAttrIndex][1] = Constants.TargetRelationshipAttributes;
46
48
  } else {
47
49
  tokens[idx].attrPush([Constants.TargetRelationship, Constants.TargetRelationshipAttributes]);
48
-
49
50
  if (!disableMarkdownMessageFormatting) {
50
- tokens[idx].attrPush([Constants.Title, defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]); // eslint-disable-next-line quotes
51
-
51
+ tokens[idx].attrPush([Constants.Title, defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]);
52
+ // eslint-disable-next-line quotes
52
53
  const iconTokens = markdown.parseInline(`![${defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
53
-
54
54
  if (iconTokens && iconTokens.length > 0) {
55
55
  iconTokens[0].attrJoin("class", Constants.OpenLinkIconCssClass);
56
56
  tokens.splice(idx + 2, 0, ...iconTokens);
@@ -0,0 +1,7 @@
1
+ export const defaultScrollBarProps = {
2
+ width: "7px",
3
+ trackBackgroundColor: "#f1f1f1",
4
+ thumbBackgroundColor: "#888",
5
+ thumbBorderRadius: "10px",
6
+ thumbHoverColor: "#555"
7
+ };
@@ -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";
@@ -10,8 +11,9 @@ import { createAvatarMiddleware } from "../../../webchatcontainerstateful/webcha
10
11
  import { createMarkdown } from "../createMarkdown";
11
12
  import { groupActivitiesMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware";
12
13
  import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware";
13
- import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger"; // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+ import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger";
14
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
17
  export const dummyDefaultProps = {
16
18
  audioNotificationProps: {
17
19
  audioSrc: NewMessageNotificationSoundBase64
@@ -166,24 +168,28 @@ export const dummyDefaultProps = {
166
168
  },
167
169
  audioCallButtonStyleProps: {
168
170
  borderRadius: "50%",
169
- color: "#FFFFFF",
170
171
  backgroundColor: "#008000",
171
172
  lineHeight: "40px",
172
173
  height: "40px",
173
174
  width: "40px",
174
- fontSize: 18
175
+ icon: {
176
+ fontSize: 18,
177
+ color: "#FFFFFF"
178
+ }
175
179
  },
176
180
  audioCallButtonHoverStyleProps: {
177
181
  filter: "brightness(0.8)"
178
182
  },
179
183
  videoCallButtonStyleProps: {
180
184
  borderRadius: "50%",
181
- color: "#FFFFFF",
182
185
  backgroundColor: "#008000",
183
186
  lineHeight: "40px",
184
187
  height: "40px",
185
188
  width: "40px",
186
- fontSize: 18
189
+ icon: {
190
+ fontSize: 18,
191
+ color: "#FFFFFF"
192
+ }
187
193
  },
188
194
  videoCallButtonHoverStyleProps: {
189
195
  filter: "brightness(0.8)"
@@ -194,13 +200,15 @@ export const dummyDefaultProps = {
194
200
  },
195
201
  declineCallButtonStyleProps: {
196
202
  borderRadius: "50%",
197
- color: "#FFFFFF",
198
203
  backgroundColor: "#DC0000",
199
204
  lineHeight: "40px",
200
205
  height: "40px",
201
206
  width: "40px",
202
- fontSize: 18,
203
- marginLeft: "5px"
207
+ marginLeft: "5px",
208
+ icon: {
209
+ fontSize: 18,
210
+ color: "#FFFFFF"
211
+ }
204
212
  },
205
213
  incomingCallTitleStyleProps: {
206
214
  margin: "0 5px",
@@ -465,8 +473,8 @@ export const dummyDefaultProps = {
465
473
  onConfirm: () => {},
466
474
  // Detailed implementation omitted
467
475
  onCancel: () => {} // Detailed implementation omitted
468
-
469
476
  },
477
+
470
478
  styleProps: {
471
479
  generalStyleProps: {
472
480
  backgroundColor: "#FFFFFF",
@@ -571,7 +579,7 @@ export const dummyDefaultProps = {
571
579
  hideProactiveChatPane: false,
572
580
  hideReconnectChatPane: false,
573
581
  hideWebChatContainer: false,
574
- skipChatButtonRendering: false
582
+ hideStartChatButton: false
575
583
  },
576
584
  directLine: new MockAdapter(),
577
585
  downloadTranscriptProps: {
@@ -771,6 +779,7 @@ export const dummyDefaultProps = {
771
779
  },
772
780
  audioNotificationButtonProps: {
773
781
  id: "oc-lcw-footer-audionotification-button",
782
+ type: "icon",
774
783
  ariaLabel: "Turn sound off",
775
784
  toggleAriaLabel: "Turn sound on",
776
785
  iconName: "Volume3",
@@ -796,8 +805,10 @@ export const dummyDefaultProps = {
796
805
  padding: "0 10px 5px 10px"
797
806
  },
798
807
  downloadTranscriptButtonStyleProps: {
799
- color: "blue",
800
- fontSize: 16,
808
+ icon: {
809
+ color: "blue",
810
+ fontSize: 16
811
+ },
801
812
  height: "25px",
802
813
  lineHeight: "25px",
803
814
  width: "25px"
@@ -807,8 +818,10 @@ export const dummyDefaultProps = {
807
818
  backgroundColor: "#C8C8C8"
808
819
  },
809
820
  emailTranscriptButtonStyleProps: {
810
- color: "blue",
811
- fontSize: 16,
821
+ cicon: {
822
+ color: "blue",
823
+ fontSize: 16
824
+ },
812
825
  height: "25px",
813
826
  lineHeight: "25px",
814
827
  width: "25px"
@@ -818,8 +831,10 @@ export const dummyDefaultProps = {
818
831
  backgroundColor: "#C8C8C8"
819
832
  },
820
833
  audioNotificationButtonStyleProps: {
821
- color: "blue",
822
- fontSize: 16,
834
+ icon: {
835
+ color: "blue",
836
+ fontSize: 16
837
+ },
823
838
  height: "25px",
824
839
  lineHeight: "25px",
825
840
  width: "25px"
@@ -870,7 +885,7 @@ export const dummyDefaultProps = {
870
885
  className: undefined
871
886
  },
872
887
  closeButtonProps: {
873
- id: "oc-lcw-header-minimize-button",
888
+ id: "oc-lcw-header-close-button",
874
889
  type: "icon",
875
890
  iconName: "ChromeClose",
876
891
  ariaLabel: "Close",
@@ -1049,8 +1064,8 @@ export const dummyDefaultProps = {
1049
1064
  titleText: "We're Offline",
1050
1065
  subtitleText: "No agents available",
1051
1066
  onClick: () => {} // Detailed implementation omitted
1052
-
1053
1067
  },
1068
+
1054
1069
  styleProps: {
1055
1070
  // ...[Existing chat button style props]
1056
1071
  iconStyleProps: {
@@ -1068,8 +1083,8 @@ export const dummyDefaultProps = {
1068
1083
  text: "We're Offline"
1069
1084
  },
1070
1085
  onMinimizeClick: () => {} // Detailed implementation omitted
1071
-
1072
1086
  },
1087
+
1073
1088
  styleProps: {
1074
1089
  // ...[Existing chat button style props]
1075
1090
  generalStyleProps: {
@@ -1166,7 +1181,8 @@ export const dummyDefaultProps = {
1166
1181
  backgroundColor: "#FFFFFF",
1167
1182
  borderColor: "#F1F1F1"
1168
1183
  }
1169
- }
1184
+ },
1185
+ isCustomerVoiceSurveyCompact: undefined
1170
1186
  },
1171
1187
  proactiveChatPaneProps: {
1172
1188
  componentOverrides: {
@@ -1186,7 +1202,17 @@ export const dummyDefaultProps = {
1186
1202
  hideSubtitle: false,
1187
1203
  subtitleText: "Live chat support!",
1188
1204
  hideCloseButton: false,
1189
- 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
+ },
1190
1216
  isBodyContainerHorizantal: false,
1191
1217
  hideBodyTitle: false,
1192
1218
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1196,8 +1222,8 @@ export const dummyDefaultProps = {
1196
1222
  onClose: () => {},
1197
1223
  // Detailed implementation omitted
1198
1224
  onStart: () => {} // Detailed implementation omitted
1199
-
1200
1225
  },
1226
+
1201
1227
  styleProps: {
1202
1228
  generalStyleProps: {
1203
1229
  backgroundColor: "rgb(255, 255, 255)",
@@ -1328,8 +1354,8 @@ export const dummyDefaultProps = {
1328
1354
  onStartNewChat: () => {},
1329
1355
  // Detailed implementation omitted
1330
1356
  onMinimize: () => {} // Detailed implementation omitted
1331
-
1332
1357
  },
1358
+
1333
1359
  styleProps: {
1334
1360
  generalStyleProps: {
1335
1361
  backgroundColor: "rgb(255, 255, 255)",
@@ -1414,7 +1440,6 @@ export const dummyDefaultProps = {
1414
1440
  startNewChatButtonClassName: undefined
1415
1441
  }
1416
1442
  },
1417
- isReconnectEnabled: undefined,
1418
1443
  reconnectId: undefined,
1419
1444
  redirectInSameWindow: undefined
1420
1445
  },
@@ -1536,6 +1561,12 @@ export const dummyDefaultProps = {
1536
1561
  lineHeight: "16px",
1537
1562
  padding: "0px 10px 0 10px"
1538
1563
  },
1564
+ userMessageBoxStyles: {
1565
+ maxWidth: "75%"
1566
+ },
1567
+ systemMessageBoxStyles: {
1568
+ maxWidth: "75%"
1569
+ },
1539
1570
  typingIndicatorStyleProps: {
1540
1571
  marginLeft: "10px",
1541
1572
  marginBottom: "5px",
@@ -1655,6 +1686,9 @@ export const dummyDefaultProps = {
1655
1686
  },
1656
1687
  attachmentSizeStyles: {
1657
1688
  display: "none"
1689
+ },
1690
+ receivedMessageAnchorStyles: {
1691
+ color: "white"
1658
1692
  }
1659
1693
  },
1660
1694
  localizedTexts: {
@@ -7,16 +7,34 @@ import { WebChatStoreLoader } from "../../webchatcontainerstateful/webchatcontro
7
7
  import { defaultWebChatContainerStatefulProps } from "../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps";
8
8
  import { PostChatSurveyMode } from "../../postchatsurveypanestateful/enums/PostChatSurveyMode";
9
9
  import { Constants } from "../../../common/Constants";
10
- import { addDelayInMs, getWidgetEndChatEventName } from "../../../common/utils"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ import { addDelayInMs, getWidgetEndChatEventName } from "../../../common/utils";
11
+ import { getAuthClientFunction, handleAuthentication } from "./authHelper";
11
12
 
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
14
  const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
13
15
  var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _conversationDetails;
14
-
15
16
  const isPostChatEnabled = (_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_postconversationsurveyenable;
16
- const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode; // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
18
+
19
+ //Unable to end chat if token has expired
20
+ if (props.getAuthToken) {
21
+ const authClientFunction = getAuthClientFunction(props.chatConfig);
22
+ if (props.getAuthToken && authClientFunction) {
23
+ // set auth token to chat sdk before start chat
24
+ const authSuccess = await handleAuthentication(chatSDK, props.chatConfig, props.getAuthToken);
25
+ if (!authSuccess) {
26
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
27
+ Event: TelemetryEvent.GetAuthTokenFailed,
28
+ ExceptionDetails: {
29
+ exception: "Unable to get auth token during end chat"
30
+ }
31
+ });
32
+ }
33
+ }
34
+ }
17
35
 
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
37
  let conversationDetails = undefined;
19
-
20
38
  try {
21
39
  conversationDetails = await chatSDK.getConversationDetails();
22
40
  } catch (erorr) {
@@ -27,12 +45,16 @@ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, disp
27
45
  }
28
46
  });
29
47
  }
30
-
31
48
  if (isPostChatEnabled === "true" && ((_conversationDetails = conversationDetails) === null || _conversationDetails === void 0 ? void 0 : _conversationDetails.canRenderPostChat) === Constants.truePascal) {
32
49
  const skipEndChatSDK = false;
33
50
  const skipCloseChat = true;
51
+ const chatSession = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
34
52
  await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, false);
35
-
53
+ if (chatSession) {
54
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+ chatSDK.chatToken = chatSession.chatToken ?? {};
56
+ chatSDK.requestId = chatSession.requestId;
57
+ }
36
58
  if (postChatSurveyMode === PostChatSurveyMode.Embed) {
37
59
  dispatch({
38
60
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
@@ -44,19 +66,29 @@ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, disp
44
66
  };
45
67
  BroadcastService.postMessage(loadPostChatEvent);
46
68
  } else if (postChatSurveyMode === PostChatSurveyMode.Link) {
69
+ var _props$webChatContain, _props$webChatContain2;
47
70
  dispatch({
48
71
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
49
72
  payload: ConversationState.InActive
50
73
  });
51
- }
52
74
 
75
+ // Disable SendBox
76
+ if ((props === null || props === void 0 ? void 0 : (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : (_props$webChatContain2 = _props$webChatContain.renderingMiddlewareProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.hideSendboxOnConversationEnd) !== false) {
77
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
78
+ setWebChatStyles(styles => {
79
+ return {
80
+ ...styles,
81
+ hideSendBox: true
82
+ };
83
+ });
84
+ }
85
+ }
53
86
  return;
54
87
  }
55
-
56
88
  await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, true);
57
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
-
89
+ };
59
90
 
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
92
  const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
61
93
  if (!skipEndChatSDK) {
62
94
  try {
@@ -73,9 +105,9 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
73
105
  });
74
106
  postMessageToOtherTab = false;
75
107
  }
76
- } // Need to clear these states immediately when chat ended from OC.
77
-
108
+ }
78
109
 
110
+ // Need to clear these states immediately when chat ended from OC.
79
111
  dispatch({
80
112
  type: LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
81
113
  payload: undefined
@@ -88,15 +120,18 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
88
120
  type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
89
121
  payload: undefined
90
122
  });
91
-
123
+ dispatch({
124
+ type: LiveChatWidgetActionType.SET_RECONNECT_ID,
125
+ payload: undefined
126
+ });
92
127
  if (!skipCloseChat) {
93
128
  try {
94
- var _props$webChatContain;
95
-
129
+ var _props$webChatContain3;
96
130
  adapter === null || adapter === void 0 ? void 0 : adapter.end();
97
131
  setAdapter(undefined);
98
- setWebChatStyles({ ...defaultWebChatContainerStatefulProps.webChatStyles,
99
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
132
+ setWebChatStyles({
133
+ ...defaultWebChatContainerStatefulProps.webChatStyles,
134
+ ...((_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles)
100
135
  });
101
136
  WebChatStoreLoader.store = null;
102
137
  dispatch({
@@ -127,10 +162,8 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
127
162
  proactiveChatInNewWindow: false
128
163
  }
129
164
  });
130
-
131
165
  if (postMessageToOtherTab) {
132
166
  var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps;
133
-
134
167
  const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
135
168
  BroadcastService.postMessage({
136
169
  eventName: endChatEventName
@@ -146,5 +179,4 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
146
179
  }
147
180
  }
148
181
  };
149
-
150
182
  export { prepareEndChat, endChat };