@microsoft/omnichannel-chat-widget 0.1.0-main.cde77ea → 0.1.0-main.ce5063d

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 (300) hide show
  1. package/lib/cjs/assets/Icons.js +4 -2
  2. package/lib/cjs/common/Constants.js +18 -167
  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 +30 -23
  9. package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
  10. package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
  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 +34 -108
  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 +17 -31
  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 +0 -5
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +32 -0
  31. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +11 -19
  32. package/lib/cjs/components/livechatwidget/common/Deferred.js +35 -0
  33. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  34. package/lib/cjs/components/livechatwidget/common/createAdapter.js +5 -12
  35. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  36. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  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 +64 -43
  40. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  41. package/lib/cjs/components/livechatwidget/common/endChat.js +53 -38
  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 +20 -54
  46. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +78 -128
  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 +173 -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/{IAuthProps.js → IScrollBarProps.js} +0 -0
  54. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +257 -230
  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 +10 -38
  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 +29 -34
  68. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  69. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  70. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  71. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  72. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -17
  73. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  74. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  75. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  76. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -4
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  119. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  120. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  121. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  122. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  123. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -28
  124. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -12
  125. package/lib/cjs/contexts/createReducer.js +159 -105
  126. package/lib/cjs/controller/componentController.js +2 -31
  127. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  128. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  129. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  130. package/lib/cjs/index.js +0 -5
  131. package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
  132. package/lib/esm/assets/Icons.js +2 -1
  133. package/lib/esm/common/Constants.js +15 -154
  134. package/lib/esm/common/KeyCodes.js +0 -2
  135. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  136. package/lib/esm/common/storage/default/defaultCacheManager.js +16 -0
  137. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  138. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  139. package/lib/esm/common/telemetry/TelemetryConstants.js +34 -20
  140. package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
  141. package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
  142. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  143. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  144. package/lib/esm/common/utils.js +31 -57
  145. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  146. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  147. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  148. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -13
  149. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  150. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  151. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  152. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  153. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  154. package/lib/esm/components/headerstateful/HeaderStateful.js +17 -16
  155. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  156. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +30 -0
  157. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -3
  158. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +25 -0
  159. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +11 -15
  160. package/lib/esm/components/livechatwidget/common/Deferred.js +28 -0
  161. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  162. package/lib/esm/components/livechatwidget/common/createAdapter.js +7 -6
  163. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  164. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  165. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  166. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  167. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +66 -30
  168. package/lib/esm/components/livechatwidget/common/endChat.js +55 -23
  169. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  170. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  171. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  172. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +22 -19
  173. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +76 -109
  174. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  175. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  176. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  177. package/lib/esm/components/livechatwidget/common/startChat.js +173 -89
  178. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  179. package/lib/esm/components/livechatwidget/interfaces/{IAuthProps.js → IScrollBarProps.js} +0 -0
  180. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +261 -169
  181. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  182. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  183. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  184. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  185. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  186. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  187. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  188. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  189. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  190. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -22
  191. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  192. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  193. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +27 -9
  194. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  195. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  196. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  197. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  198. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -13
  199. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  200. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  201. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  202. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -2
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  245. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  246. package/lib/esm/contexts/ChatContextStore.js +2 -1
  247. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  248. package/lib/esm/contexts/common/ConversationState.js +0 -1
  249. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -28
  250. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -8
  251. package/lib/esm/contexts/createReducer.js +159 -102
  252. package/lib/esm/controller/componentController.js +3 -2
  253. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  254. package/lib/esm/hooks/useChatContextStore.js +0 -4
  255. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  256. package/lib/esm/plugins/newMessageEventHandler.js +15 -26
  257. package/lib/types/assets/Icons.d.ts +1 -0
  258. package/lib/types/common/Constants.d.ts +13 -0
  259. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  260. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  261. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  262. package/lib/types/common/telemetry/TelemetryConstants.d.ts +18 -5
  263. package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -1
  264. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  265. package/lib/types/common/utils.d.ts +5 -4
  266. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  267. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  268. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  269. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  270. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  271. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  272. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  273. package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
  274. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -8
  275. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  276. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
  277. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
  278. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +2 -1
  279. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -4
  280. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  281. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  282. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  283. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  284. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  285. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  286. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  287. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  288. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  289. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  290. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
  291. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  292. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  293. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  294. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  295. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  296. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -2
  297. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -27
  298. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  299. package/package.json +5 -4
  300. package/lib/types/components/livechatwidget/interfaces/IAuthProps.d.ts +0 -4
@@ -5,25 +5,20 @@ export const consoleLogger = () => {
5
5
  log: (logLevel, telemetryInput) => {
6
6
  const payload = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.payload && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload : "";
7
7
  const telemetryInfo = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.telemetryInfo && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo : "";
8
-
9
8
  try {
10
9
  switch (logLevel) {
11
10
  case LogLevel.INFO:
12
11
  console.info(Constants.LiveChatWidget, payload, telemetryInfo);
13
12
  break;
14
-
15
13
  case LogLevel.DEBUG:
16
14
  console.debug(Constants.LiveChatWidget, payload, telemetryInfo);
17
15
  break;
18
-
19
16
  case LogLevel.WARN:
20
17
  console.warn(Constants.LiveChatWidget, payload, telemetryInfo);
21
18
  break;
22
-
23
19
  case LogLevel.ERROR:
24
20
  console.error(Constants.LiveChatWidget, payload, telemetryInfo);
25
21
  break;
26
-
27
22
  default:
28
23
  console.debug(Constants.LiveChatWidget, payload, telemetryInfo);
29
24
  break;
@@ -2,24 +2,22 @@ import { AriaTelemetryConstants, Constants, LocaleConstants } from "./Constants"
2
2
  import { DataStoreManager } from "./contextDataStore/DataStoreManager";
3
3
  import { KeyCodes } from "./KeyCodes";
4
4
  import { BroadcastEvent } from "./telemetry/TelemetryConstants";
5
-
5
+ import { Md5 } from "md5-typescript";
6
6
  const getElementBySelector = selector => {
7
7
  let element;
8
-
9
8
  if (typeof selector === "string") {
10
9
  element = document.querySelector(selector);
11
10
  } else {
12
11
  element = selector;
13
12
  }
14
-
15
13
  return element;
16
- }; // The purpose of this function is:
14
+ };
15
+
16
+ // The purpose of this function is:
17
17
  // - to make elements not focusable, when confirmation pane or email transcript pane are showing,
18
18
  // - to set their initial tab indices back after confirmation pane or email transcript pane are closed
19
19
  // Otherwise, the user will be able to click on the screen and tab through different buttons or other elements, even though
20
20
  // these dialogs are showing
21
-
22
-
23
21
  export const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
24
22
  if (elements) {
25
23
  if (shouldBeFocusable) {
@@ -28,7 +26,6 @@ export const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
28
26
  elements[index].tabIndex = tabIndexMap.get(elements[index].id);
29
27
  }
30
28
  }
31
-
32
29
  tabIndexMap.clear();
33
30
  } else {
34
31
  for (let index = 0; index < elements.length; index++) {
@@ -40,64 +37,49 @@ export const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
40
37
  };
41
38
  export const findParentFocusableElementsWithoutChildContainer = elementId => {
42
39
  const childContainer = document.getElementById(elementId);
43
-
44
40
  if (!childContainer) {
45
41
  return null;
46
42
  }
47
-
48
43
  const parentContainer = childContainer.parentElement;
49
-
50
44
  if (!parentContainer) {
51
45
  return null;
52
46
  }
53
-
54
47
  const parentFocusableElements = findAllFocusableElement(parentContainer);
55
-
56
48
  if (!parentFocusableElements) {
57
49
  return null;
58
50
  }
59
-
60
51
  for (let index = 0; index < parentFocusableElements.length; index++) {
61
52
  if (childContainer.contains(parentFocusableElements[index])) {
62
53
  parentFocusableElements.splice(index, 1);
63
54
  index--;
64
55
  }
65
56
  }
66
-
67
57
  return parentFocusableElements;
68
58
  };
69
59
  export const findAllFocusableElement = parent => {
70
60
  const container = getElementBySelector(parent);
71
-
72
61
  if (container !== null) {
73
62
  return Array.prototype.slice.call(container.querySelectorAll("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]"));
74
63
  }
75
-
76
64
  return null;
77
65
  };
78
66
  export const preventFocusToMoveOutOfElement = elementId => {
79
67
  const container = document.getElementById(elementId);
80
-
81
68
  if (!container) {
82
69
  return;
83
70
  }
84
-
85
71
  const focusableElements = findAllFocusableElement(container);
86
-
87
72
  if (!focusableElements) {
88
73
  return;
89
74
  }
90
-
91
75
  const firstFocusableElement = focusableElements[0];
92
76
  const lastFocusableElement = focusableElements[focusableElements.length - 1];
93
-
94
77
  firstFocusableElement.onkeydown = e => {
95
78
  if (e.shiftKey && e.key === KeyCodes.TAB) {
96
79
  e.preventDefault();
97
80
  lastFocusableElement === null || lastFocusableElement === void 0 ? void 0 : lastFocusableElement.focus();
98
81
  }
99
82
  };
100
-
101
83
  lastFocusableElement.onkeydown = e => {
102
84
  if (!e.shiftKey && e.key === KeyCodes.TAB) {
103
85
  e.preventDefault();
@@ -128,14 +110,12 @@ export const escapeHtml = inputString => {
128
110
  export const getIconText = text => {
129
111
  if (text) {
130
112
  const initials = text.split(/\s/).reduce((response, word) => response += word.slice(0, 1), "");
131
-
132
113
  if (initials.length > 1) {
133
114
  return initials.substring(0, 2).toUpperCase();
134
115
  } else {
135
116
  return text.substring(0, 2).toUpperCase();
136
117
  }
137
118
  }
138
-
139
119
  return "";
140
120
  };
141
121
  export const getLocaleDirection = localeLCID => {
@@ -151,20 +131,16 @@ export const getTimestampHourMinute = timestampStr => {
151
131
  const minuteFormat = "2-digit";
152
132
  const date = new Date(timestampStr);
153
133
  const now = new Date();
154
-
155
134
  if (isNaN(date.getTime())) {
156
135
  return "";
157
136
  }
158
-
159
137
  if (date.getFullYear() !== now.getFullYear()) {
160
138
  yearFormat = "numeric";
161
139
  monthDayFormat = "2-digit";
162
140
  }
163
-
164
141
  if (date.getMonth() !== now.getMonth() || date.getDate() !== now.getDate()) {
165
142
  monthDayFormat = "2-digit";
166
143
  }
167
-
168
144
  return date.toLocaleTimeString(navigator.language, {
169
145
  year: yearFormat,
170
146
  month: monthDayFormat,
@@ -178,7 +154,6 @@ export const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) =
178
154
  try {
179
155
  const parsedPayload = JSON.parse(payload.replace(/&#42;/g, "*"));
180
156
  const body = parsedPayload.body;
181
-
182
157
  if (body) {
183
158
  //Parse ID field into available options and add required error messages
184
159
  for (const fields of body) {
@@ -186,23 +161,21 @@ export const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) =
186
161
  const parsedId = JSON.parse(fields.id);
187
162
  fields.id = parsedId.Id;
188
163
  fields.isRequired = parsedId.IsRequired ?? false;
189
-
190
164
  if (fields.isRequired) {
191
165
  fields.errorMessage = requiredFieldMissingMessage.replace("{0}", parsedId.Name ?? "");
192
166
  }
193
167
  }
194
168
  }
195
169
  }
196
-
197
170
  return JSON.stringify(parsedPayload);
198
171
  } catch (ex) {
199
172
  throw new Error(`Adaptive card pase error: ${ex}`);
200
173
  }
201
174
  }
202
-
203
175
  return payload;
204
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
176
+ };
205
177
 
178
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
206
179
  export const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
207
180
  if (preChatSurvey && preChatSurvey !== "{}" && values) {
208
181
  try {
@@ -212,14 +185,13 @@ export const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
212
185
  "Type": Constants.InputSubmit
213
186
  };
214
187
  const computedValues = [];
215
-
216
188
  for (const val of values) {
217
189
  const index = val.index;
218
190
  const Id = body[index].id;
219
191
  computedValues[Id] = val.value;
220
192
  }
221
-
222
- const finalPayload = { ...type,
193
+ const finalPayload = {
194
+ ...type,
223
195
  ...computedValues
224
196
  };
225
197
  return finalPayload;
@@ -227,10 +199,10 @@ export const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
227
199
  throw new Error(`PreChatSurvey Response parse error: ${ex}`);
228
200
  }
229
201
  }
230
-
231
202
  return {};
232
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
+ };
233
204
 
205
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
234
206
  export const isNullOrUndefined = obj => {
235
207
  return obj === null || obj === undefined;
236
208
  };
@@ -241,26 +213,21 @@ export const newGuid = () => {
241
213
  //RFC 4122 canonical representation Version-4 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx where x is any hexadecimal digit and y is one of 8, 9, A, or B
242
214
  const guidPattern = Constants.GuidPattern;
243
215
  let newGuid = "";
244
-
245
216
  for (let i = 0; i < guidPattern.length; i++) {
246
217
  const randomString = Math.floor(Math.random() * Date.now());
247
-
248
218
  switch (guidPattern[i]) {
249
219
  case "x":
250
220
  newGuid += randomString.toString(16).substring(0, 4);
251
221
  break;
252
222
  //get 4 digit
253
-
254
223
  case "m":
255
224
  newGuid += randomString.toString(16).substring(0, 3);
256
225
  break;
257
226
  //Get 3 digit
258
-
259
227
  case "y":
260
228
  newGuid += (randomString & 0x3 | 0x8).toString(16);
261
229
  break;
262
230
  // To get only one of 8, 9, A, or B
263
-
264
231
  default:
265
232
  newGuid += guidPattern[i];
266
233
  //Default "-" and "4"
@@ -276,34 +243,37 @@ export const createTimer = () => {
276
243
  const ms = new Date().getTime() - timeStart;
277
244
  return ms;
278
245
  }
279
-
280
246
  };
281
- }; // Returns the domain of the org
282
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
247
+ };
283
248
 
249
+ // Returns the domain of the org
250
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
284
251
  export const getDomain = hostValue => {
285
252
  for (let i = 0; i < AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
286
253
  if (hostValue.endsWith(AriaTelemetryConstants.lcwEUDomainNames[i])) {
287
254
  return AriaTelemetryConstants.EU;
288
255
  }
289
256
  }
290
-
291
257
  return AriaTelemetryConstants.Public;
292
258
  };
293
- export const getWidgetCacheId = (orgId, widgetId) => {
294
- return `${Constants.ChatWidgetStateChangedPrefix}_${orgId}_${widgetId}`;
259
+ export const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
260
+ const widgetCacheId = `${widgetInstanceId}_${orgId}_${widgetId}`;
261
+ return Md5.init(widgetCacheId);
295
262
  };
296
- export const getWidgetEndChatEventName = (orgId, widgetId) => {
263
+ export const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) => {
264
+ if (!isNullOrEmptyString(widgetInstanceId)) {
265
+ return `${BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
266
+ }
297
267
  return `${BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
298
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
268
+ };
299
269
 
300
- export const getStateFromCache = (orgId, widgetId) => {
270
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
271
+ export const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
301
272
  // Getting updated state from cache
302
273
  try {
303
274
  if (DataStoreManager.clientDataStore) {
304
275
  var _DataStoreManager$cli;
305
-
306
- const widgetStateEventName = getWidgetCacheId(orgId, widgetId);
276
+ const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
307
277
  const widgetStateFromCache = (_DataStoreManager$cli = DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
308
278
  const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
309
279
  return persistedState;
@@ -314,20 +284,24 @@ export const getStateFromCache = (orgId, widgetId) => {
314
284
  console.log(error);
315
285
  return null;
316
286
  }
317
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
287
+ };
318
288
 
289
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
319
290
  export const isUndefinedOrEmpty = object => {
320
291
  if (object) {
321
292
  if (Object.keys(object).length === 0) {
322
293
  return true;
323
294
  }
324
-
325
295
  return false;
326
296
  } else {
327
297
  return true;
328
298
  }
329
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
+ };
330
300
 
301
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
331
302
  export const addDelayInMs = ms => {
332
303
  return new Promise(resolve => setTimeout(resolve, ms));
304
+ };
305
+ export const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
306
+ return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
333
307
  };
@@ -7,17 +7,17 @@ import useChatContextStore from "../../hooks/useChatContextStore";
7
7
  import useChatSDKStore from "../../hooks/useChatSDKStore";
8
8
  export const CallingContainerStateful = props => {
9
9
  var _props$controlProps, _props$controlProps2, _props$controlProps2$, _props$controlProps3, _props$controlProps3$, _props$controlProps3$2, _props$controlProps4, _props$controlProps4$, _props$controlProps4$2, _props$controlProps5;
10
-
11
10
  //TODO : Close button confirmation implmentation is pending
12
- const [state, dispatch] = useChatContextStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
11
 
14
- const chatSDK = useChatSDKStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ const [state, dispatch] = useChatContextStore();
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const chatSDK = useChatSDKStore();
15
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
17
  const {
17
18
  voiceVideoCallingSdk
18
19
  } = props;
19
20
  let callId;
20
-
21
21
  const resetCallingStates = reset => {
22
22
  if (reset) {
23
23
  dispatch({
@@ -42,12 +42,10 @@ export const CallingContainerStateful = props => {
42
42
  });
43
43
  }
44
44
  };
45
-
46
45
  useEffect(() => {
47
46
  const init = async () => {
48
47
  try {
49
48
  var _controlProps$current, _controlProps$current2, _controlProps$current3, _controlProps$current4;
50
-
51
49
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
50
  TelemetryHelper.callId = callId;
53
51
  await voiceVideoCallingSdk.initialize({
@@ -60,16 +58,15 @@ export const CallingContainerStateful = props => {
60
58
  });
61
59
  } catch (e) {
62
60
  TelemetryHelper.logCallingEvent(LogLevel.ERROR, {
63
- Event: TelemetryEvent.VoiceVideoInitializeException,
61
+ Event: TelemetryEvent.VoiceVideoSdkInitializeException,
64
62
  Description: `Failed to initialize VideoVoiceCalling Sdk: ${e}`
65
63
  });
66
64
  }
67
65
  };
68
-
69
66
  init().then(() => {
70
67
  if (voiceVideoCallingSdk) {
71
68
  TelemetryHelper.logCallingEvent(LogLevel.INFO, {
72
- Event: TelemetryEvent.VoiceVideoInitialize,
69
+ Event: TelemetryEvent.VoiceVideoSdkInitialize,
73
70
  Description: "Initialize VideoVoiceCalling Sdk Success"
74
71
  }, callId);
75
72
  voiceVideoCallingSdk.onCallAdded(() => {
@@ -131,14 +128,12 @@ export const CallingContainerStateful = props => {
131
128
  }, callId);
132
129
  const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
133
130
  const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
134
-
135
131
  if (isRemoteVideoDisabled && isLocalVideoDisabled) {
136
132
  dispatch({
137
133
  type: LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
138
134
  payload: true
139
135
  });
140
136
  }
141
-
142
137
  dispatch({
143
138
  type: LiveChatWidgetActionType.DISABLE_REMOTE_VIDEO,
144
139
  payload: isRemoteVideoDisabled
@@ -150,14 +145,12 @@ export const CallingContainerStateful = props => {
150
145
  }, callId);
151
146
  const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
152
147
  const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
153
-
154
148
  if (isRemoteVideoDisabled && isLocalVideoDisabled) {
155
149
  dispatch({
156
150
  type: LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
157
151
  payload: true
158
152
  });
159
153
  }
160
-
161
154
  dispatch({
162
155
  type: LiveChatWidgetActionType.DISABLE_LOCAL_VIDEO,
163
156
  payload: isLocalVideoDisabled
@@ -183,7 +176,6 @@ export const CallingContainerStateful = props => {
183
176
  } else {
184
177
  voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.stopCall();
185
178
  }
186
-
187
179
  voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.close();
188
180
  dispatch({
189
181
  type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
@@ -231,7 +223,6 @@ export const CallingContainerStateful = props => {
231
223
  }
232
224
  }, callId);
233
225
  }
234
-
235
226
  dispatch({
236
227
  type: LiveChatWidgetActionType.SET_INCOMING_CALL,
237
228
  payload: false
@@ -257,7 +248,6 @@ export const CallingContainerStateful = props => {
257
248
  }
258
249
  }, callId);
259
250
  }
260
-
261
251
  dispatch({
262
252
  type: LiveChatWidgetActionType.SET_INCOMING_CALL,
263
253
  payload: false
@@ -317,7 +307,8 @@ export const CallingContainerStateful = props => {
317
307
  }, callId);
318
308
  }
319
309
  }, []),
320
- nonActionIds: { ...(props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : (_props$controlProps2$ = _props$controlProps2.currentCallControlProps) === null || _props$controlProps2$ === void 0 ? void 0 : _props$controlProps2$.nonActionIds),
310
+ nonActionIds: {
311
+ ...(props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : (_props$controlProps2$ = _props$controlProps2.currentCallControlProps) === null || _props$controlProps2$ === void 0 ? void 0 : _props$controlProps2$.nonActionIds),
321
312
  selfVideoTileId: (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : (_props$controlProps3$ = _props$controlProps3.currentCallControlProps) === null || _props$controlProps3$ === void 0 ? void 0 : (_props$controlProps3$2 = _props$controlProps3$.nonActionIds) === null || _props$controlProps3$2 === void 0 ? void 0 : _props$controlProps3$2.selfVideoTileId) ?? "selfVideo",
322
313
  remoteVideoTileId: (props === null || props === void 0 ? void 0 : (_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : (_props$controlProps4$ = _props$controlProps4.currentCallControlProps) === null || _props$controlProps4$ === void 0 ? void 0 : (_props$controlProps4$2 = _props$controlProps4$.nonActionIds) === null || _props$controlProps4$2 === void 0 ? void 0 : _props$controlProps4$2.remoteVideoTileId) ?? "remoteVideo"
323
314
  },
@@ -11,14 +11,13 @@ import { defaultOutOfOfficeChatButtonStyleProps } from "./common/styleProps/defa
11
11
  import useChatContextStore from "../../hooks/useChatContextStore";
12
12
  export const ChatButtonStateful = props => {
13
13
  var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP, _props$buttonProps, _props$buttonProps$co, _props$buttonProps2, _props$buttonProps2$c, _props$buttonProps3, _props$buttonProps3$c;
14
-
15
14
  const [state, dispatch] = useChatContextStore();
16
15
  const {
17
16
  buttonProps,
18
17
  outOfOfficeButtonProps,
19
18
  startChat
20
- } = props; //Setting OutOfOperatingHours Flag
21
-
19
+ } = props;
20
+ //Setting OutOfOperatingHours Flag
22
21
  const [outOfOperatingHours, setOutOfOperatingHours] = useState(((_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.OutOfOperatingHours) === "True");
23
22
  const proactiveChatInNewWindow = useRef(state.appStates.proactiveChatStates.proactiveChatInNewWindow);
24
23
  const outOfOfficeStyleProps = Object.assign({}, defaultOutOfOfficeChatButtonStyleProps, outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.styleProps);
@@ -33,7 +32,6 @@ export const ChatButtonStateful = props => {
33
32
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
34
33
  Event: TelemetryEvent.LCWChatButtonClicked
35
34
  });
36
-
37
35
  if (proactiveChatInNewWindow.current) {
38
36
  const proactiveChatIsInPopoutModeEvent = {
39
37
  eventName: BroadcastEvent.ProactiveChatIsInPopoutMode
@@ -60,7 +58,6 @@ export const ChatButtonStateful = props => {
60
58
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
61
59
  Event: TelemetryEvent.LCWChatButtonClicked
62
60
  });
63
-
64
61
  if (state.appStates.isMinimized) {
65
62
  dispatch({
66
63
  type: LiveChatWidgetActionType.SET_MINIMIZED,
@@ -80,12 +77,10 @@ export const ChatButtonStateful = props => {
80
77
  if (state.appStates.outsideOperatingHours) {
81
78
  setOutOfOperatingHours(true);
82
79
  }
83
-
84
80
  TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
85
81
  Event: TelemetryEvent.LCWChatButtonShow,
86
82
  ElapsedTimeInMilliseconds: TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed
87
83
  });
88
-
89
84
  if (state.uiStates.focusChatButton) {
90
85
  setFocusOnElement(document.getElementById((controlProps === null || controlProps === void 0 ? void 0 : controlProps.id) ?? "oc-lcw-chat-button"));
91
86
  } else {
@@ -1,5 +1,8 @@
1
1
  export const defaultOutOfOfficeChatButtonStyleProps = {
2
2
  iconStyleProps: {
3
3
  backgroundColor: "#000000"
4
+ },
5
+ subtitleStyleProps: {
6
+ margin: "0px 10px 0px 10px"
4
7
  }
5
8
  };
@@ -8,16 +8,17 @@ import { NotificationHandler } from "../webchatcontainerstateful/webchatcontroll
8
8
  import { NotificationScenarios } from "../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
9
9
  import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
10
10
  import useChatAdapterStore from "../../hooks/useChatAdapterStore";
11
- import useChatContextStore from "../../hooks/useChatContextStore"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ import useChatContextStore from "../../hooks/useChatContextStore";
12
12
 
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
14
  export const ConfirmationPaneStateful = props => {
14
15
  const initialTabIndexMap = new Map();
15
16
  let elements = [];
16
17
  const [state, dispatch] = useChatContextStore();
17
18
  const {
18
19
  prepareEndChat
19
- } = props; // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
-
20
+ } = props;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
22
  const [adapter] = useChatAdapterStore();
22
23
  const controlProps = {
23
24
  id: "oc-lcw-confirmation-pane",
@@ -31,7 +32,6 @@ export const ConfirmationPaneStateful = props => {
31
32
  type: LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
32
33
  payload: false
33
34
  });
34
-
35
35
  try {
36
36
  setTabIndices(elements, initialTabIndexMap, true);
37
37
  await prepareEndChat(adapter, state);
@@ -54,31 +54,28 @@ export const ConfirmationPaneStateful = props => {
54
54
  type: LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
55
55
  payload: false
56
56
  });
57
- const previousFocused = state.appStates.previousElementOnFocusBeforeModalOpen;
58
-
59
- if (previousFocused) {
60
- setFocusOnElement(previousFocused);
57
+ const previousFocusedElementId = state.appStates.previousElementIdOnFocusBeforeModalOpen;
58
+ if (previousFocusedElementId) {
59
+ setFocusOnElement("#" + previousFocusedElementId);
61
60
  dispatch({
62
- type: LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
61
+ type: LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
63
62
  payload: null
64
63
  });
65
64
  } else {
66
65
  setFocusOnSendBox();
67
66
  }
68
-
69
67
  setTabIndices(elements, initialTabIndexMap, true);
70
68
  },
71
69
  ...(props === null || props === void 0 ? void 0 : props.controlProps)
72
- }; // Move focus to the first button
70
+ };
73
71
 
72
+ // Move focus to the first button
74
73
  useEffect(() => {
75
74
  preventFocusToMoveOutOfElement(controlProps.id);
76
75
  const focusableElements = findAllFocusableElement(`#${controlProps.id}`);
77
-
78
76
  if (focusableElements) {
79
77
  focusableElements[0].focus();
80
78
  }
81
-
82
79
  elements = findParentFocusableElementsWithoutChildContainer(controlProps.id);
83
80
  setTabIndices(elements, initialTabIndexMap, false);
84
81
  TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
@@ -12,34 +12,29 @@ import useChatContextStore from "../../hooks/useChatContextStore";
12
12
  import useChatSDKStore from "../../hooks/useChatSDKStore";
13
13
  export const EmailTranscriptPaneStateful = props => {
14
14
  var _props$controlProps;
15
-
16
15
  const initialTabIndexMap = new Map();
17
16
  let elements = [];
18
- const [state, dispatch] = useChatContextStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
-
17
+ const [state, dispatch] = useChatContextStore();
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
19
  const chatSDK = useChatSDKStore();
21
20
  const [initialEmail, setInitialEmail] = useState("");
22
-
23
21
  const closeEmailTranscriptPane = () => {
24
22
  dispatch({
25
23
  type: LiveChatWidgetActionType.SET_SHOW_EMAIL_TRANSCRIPT_PANE,
26
24
  payload: false
27
25
  });
28
- const previousFocused = state.appStates.previousElementOnFocusBeforeModalOpen;
29
-
30
- if (previousFocused) {
31
- setFocusOnElement(previousFocused);
26
+ const previousFocusedElementId = state.appStates.previousElementIdOnFocusBeforeModalOpen;
27
+ if (previousFocusedElementId) {
28
+ setFocusOnElement("#" + previousFocusedElementId);
32
29
  } else {
33
30
  setFocusOnSendBox();
34
31
  }
35
-
36
32
  dispatch({
37
- type: LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
33
+ type: LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
38
34
  payload: null
39
35
  });
40
36
  setTabIndices(elements, initialTabIndexMap, true);
41
37
  };
42
-
43
38
  const controlProps = {
44
39
  id: "oclcw-emailTranscriptDialogContainer",
45
40
  dir: state.domainStates.globalDir,
@@ -49,7 +44,6 @@ export const EmailTranscriptPaneStateful = props => {
49
44
  emailAddress: email,
50
45
  attachmentMessage: (props === null || props === void 0 ? void 0 : props.attachmentMessage) ?? "The following attachment was uploaded during the conversation:"
51
46
  };
52
-
53
47
  try {
54
48
  await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.emailLiveChatTranscript(chatTranscriptBody));
55
49
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
@@ -78,16 +72,15 @@ export const EmailTranscriptPaneStateful = props => {
78
72
  },
79
73
  ...props.controlProps,
80
74
  inputInitialText: ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.inputInitialText) ?? initialEmail
81
- }; // Move focus to the first button
75
+ };
82
76
 
77
+ // Move focus to the first button
83
78
  useEffect(() => {
84
79
  preventFocusToMoveOutOfElement(controlProps.id);
85
80
  const focusableElements = findAllFocusableElement(`#${controlProps.id}`);
86
-
87
81
  if (focusableElements) {
88
82
  focusableElements[0].focus();
89
83
  }
90
-
91
84
  elements = findParentFocusableElementsWithoutChildContainer(controlProps.id);
92
85
  setTabIndices(elements, initialTabIndexMap, false);
93
86
  setInitialEmail(state.appStates.preChatResponseEmail);
@@ -19,10 +19,10 @@ describe("EmailTranscriptPaneStateful unit test", () => {
19
19
  attachmentMessage: "sample",
20
20
  locale: "sample"
21
21
  };
22
-
23
22
  try {
24
23
  await chatSDK.emailLiveChatTranscript(chatTranscriptBody);
25
- expect(chatSDK.emailLiveChatTranscript).toHaveBeenCalledTimes(1); // eslint-disable-next-line no-empty
24
+ expect(chatSDK.emailLiveChatTranscript).toHaveBeenCalledTimes(1);
25
+ // eslint-disable-next-line no-empty
26
26
  } catch (ex) {}
27
27
  });
28
28
  it("Method emailLiveChatTranscript throws exception", async () => {
@@ -39,9 +39,9 @@ describe("EmailTranscriptPaneStateful unit test", () => {
39
39
  attachmentMessage: "sample",
40
40
  locale: "sample"
41
41
  };
42
-
43
42
  try {
44
- await chatSDK.emailLiveChatTranscript(chatTranscriptBody); // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ await chatSDK.emailLiveChatTranscript(chatTranscriptBody);
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
45
  } catch (ex) {
46
46
  expect(ex.message).toEqual(errorMessage);
47
47
  }
@@ -59,9 +59,9 @@ describe("EmailTranscriptPaneStateful unit test", () => {
59
59
  attachmentMessage: "sample",
60
60
  locale: "sample"
61
61
  };
62
-
63
62
  try {
64
- await chatSDK.emailLiveChatTranscript(chatTranscriptBody); // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
+ await chatSDK.emailLiveChatTranscript(chatTranscriptBody);
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
65
  } catch (ex) {
66
66
  expect(ex.message).toEqual(errorMessage);
67
67
  }