@microsoft/omnichannel-chat-widget 0.1.0-main.eb80fb1 → 0.1.0-main.ebfc563

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 (325) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +54 -153
  4. package/lib/cjs/common/KeyCodes.js +3 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
  6. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
  7. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +111 -0
  8. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  9. package/lib/cjs/common/telemetry/TelemetryConstants.js +85 -24
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +31 -56
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -35
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  14. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  15. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  16. package/lib/cjs/common/utils.js +80 -80
  17. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  18. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  19. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  20. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +13 -71
  21. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  23. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  24. package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
  25. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  27. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  28. package/lib/cjs/components/headerstateful/HeaderStateful.js +26 -35
  29. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  30. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  33. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  34. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  35. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  36. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  37. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  38. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  39. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  40. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -44
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  42. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +132 -61
  43. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  44. package/lib/cjs/components/livechatwidget/common/endChat.js +167 -61
  45. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  46. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  47. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  48. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +50 -52
  49. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +98 -66
  50. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  51. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -15
  52. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  53. package/lib/cjs/components/livechatwidget/common/startChat.js +287 -90
  54. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  55. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  56. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  57. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +354 -170
  58. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
  59. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  60. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  61. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  62. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  63. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  64. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  65. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  66. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  67. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -45
  68. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  69. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -35
  70. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  71. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  73. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  74. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  75. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  76. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +9 -16
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  79. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  80. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  81. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +33 -80
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -61
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +7 -18
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  122. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  123. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  124. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  125. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  126. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  127. package/lib/cjs/contexts/common/ConversationState.js +4 -3
  128. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -26
  129. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -11
  130. package/lib/cjs/contexts/createReducer.js +169 -109
  131. package/lib/cjs/controller/componentController.js +5 -34
  132. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  133. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  134. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  135. package/lib/cjs/index.js +0 -5
  136. package/lib/cjs/plugins/newMessageEventHandler.js +82 -0
  137. package/lib/esm/assets/Icons.js +2 -1
  138. package/lib/esm/common/Constants.js +49 -141
  139. package/lib/esm/common/KeyCodes.js +3 -3
  140. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  141. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  142. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  143. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  144. package/lib/esm/common/telemetry/TelemetryConstants.js +84 -19
  145. package/lib/esm/common/telemetry/TelemetryHelper.js +32 -46
  146. package/lib/esm/common/telemetry/TelemetryManager.js +17 -24
  147. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  148. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  149. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  150. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  151. package/lib/esm/common/utils.js +73 -45
  152. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  153. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  154. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  155. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +14 -47
  156. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  157. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  158. package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
  159. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  160. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  161. package/lib/esm/components/headerstateful/HeaderStateful.js +27 -21
  162. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  163. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  164. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  165. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  166. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  167. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  168. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  169. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  170. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  171. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  172. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  173. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  174. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  175. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +134 -49
  176. package/lib/esm/components/livechatwidget/common/endChat.js +171 -50
  177. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  178. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
  179. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  180. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +52 -24
  181. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -58
  182. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  183. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -6
  184. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  185. package/lib/esm/components/livechatwidget/common/startChat.js +287 -71
  186. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  187. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  188. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +357 -122
  189. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  190. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  191. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  192. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  193. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  194. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  195. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  196. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  197. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  198. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +16 -30
  199. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  200. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +24 -12
  201. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  202. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  203. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  204. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  205. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  206. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  207. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +9 -12
  208. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  209. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  210. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  211. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  212. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +34 -66
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -40
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +9 -14
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  253. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  254. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  255. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  256. package/lib/esm/contexts/ChatContextStore.js +2 -1
  257. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  258. package/lib/esm/contexts/common/ConversationState.js +4 -3
  259. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -26
  260. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -7
  261. package/lib/esm/contexts/createReducer.js +169 -105
  262. package/lib/esm/controller/componentController.js +6 -5
  263. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  264. package/lib/esm/hooks/useChatContextStore.js +0 -4
  265. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  266. package/lib/esm/plugins/newMessageEventHandler.js +75 -0
  267. package/lib/types/assets/Icons.d.ts +1 -0
  268. package/lib/types/common/Constants.d.ts +41 -2
  269. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  270. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  271. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  272. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  273. package/lib/types/common/telemetry/TelemetryConstants.d.ts +59 -6
  274. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  275. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  276. package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -9
  277. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +7 -3
  278. package/lib/types/common/utils.d.ts +8 -1
  279. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  280. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  281. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  282. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  283. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  284. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  285. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  286. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  287. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  288. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  289. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  290. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  291. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -4
  292. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  293. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -2
  294. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  295. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +4 -1
  296. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -3
  297. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  298. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  299. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  300. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  301. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  302. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  303. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  304. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  305. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  306. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  307. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  308. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  309. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  310. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  311. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  312. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  313. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  314. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  315. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  316. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  317. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  318. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  319. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  320. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  321. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -3
  322. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -25
  323. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  324. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  325. package/package.json +12 -13
@@ -3,29 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getTimestampHourMinute = exports.getLocaleDirection = exports.getIconText = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = void 0;
7
-
6
+ exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
8
7
  var _Constants = require("./Constants");
9
-
8
+ var _DataStoreManager = require("./contextDataStore/DataStoreManager");
10
9
  var _KeyCodes = require("./KeyCodes");
11
-
10
+ var _TelemetryConstants = require("./telemetry/TelemetryConstants");
11
+ var _md5Typescript = require("md5-typescript");
12
12
  const getElementBySelector = selector => {
13
13
  let element;
14
-
15
14
  if (typeof selector === "string") {
16
15
  element = document.querySelector(selector);
17
16
  } else {
18
17
  element = selector;
19
18
  }
20
-
21
19
  return element;
22
- }; // The purpose of this function is:
20
+ };
21
+
22
+ // The purpose of this function is:
23
23
  // - to make elements not focusable, when confirmation pane or email transcript pane are showing,
24
24
  // - to set their initial tab indices back after confirmation pane or email transcript pane are closed
25
25
  // Otherwise, the user will be able to click on the screen and tab through different buttons or other elements, even though
26
26
  // these dialogs are showing
27
-
28
-
29
27
  const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
30
28
  if (elements) {
31
29
  if (shouldBeFocusable) {
@@ -34,7 +32,6 @@ const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
34
32
  elements[index].tabIndex = tabIndexMap.get(elements[index].id);
35
33
  }
36
34
  }
37
-
38
35
  tabIndexMap.clear();
39
36
  } else {
40
37
  for (let index = 0; index < elements.length; index++) {
@@ -44,75 +41,54 @@ const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
44
41
  }
45
42
  }
46
43
  };
47
-
48
44
  exports.setTabIndices = setTabIndices;
49
-
50
45
  const findParentFocusableElementsWithoutChildContainer = elementId => {
51
46
  const childContainer = document.getElementById(elementId);
52
-
53
47
  if (!childContainer) {
54
48
  return null;
55
49
  }
56
-
57
50
  const parentContainer = childContainer.parentElement;
58
-
59
51
  if (!parentContainer) {
60
52
  return null;
61
53
  }
62
-
63
54
  const parentFocusableElements = findAllFocusableElement(parentContainer);
64
-
65
55
  if (!parentFocusableElements) {
66
56
  return null;
67
57
  }
68
-
69
58
  for (let index = 0; index < parentFocusableElements.length; index++) {
70
59
  if (childContainer.contains(parentFocusableElements[index])) {
71
60
  parentFocusableElements.splice(index, 1);
72
61
  index--;
73
62
  }
74
63
  }
75
-
76
64
  return parentFocusableElements;
77
65
  };
78
-
79
66
  exports.findParentFocusableElementsWithoutChildContainer = findParentFocusableElementsWithoutChildContainer;
80
-
81
67
  const findAllFocusableElement = parent => {
82
68
  const container = getElementBySelector(parent);
83
-
84
69
  if (container !== null) {
85
70
  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\"]"));
86
71
  }
87
-
88
72
  return null;
89
73
  };
90
-
91
74
  exports.findAllFocusableElement = findAllFocusableElement;
92
-
93
75
  const preventFocusToMoveOutOfElement = elementId => {
94
76
  const container = document.getElementById(elementId);
95
-
96
77
  if (!container) {
97
78
  return;
98
79
  }
99
-
100
80
  const focusableElements = findAllFocusableElement(container);
101
-
102
81
  if (!focusableElements) {
103
82
  return;
104
83
  }
105
-
106
84
  const firstFocusableElement = focusableElements[0];
107
85
  const lastFocusableElement = focusableElements[focusableElements.length - 1];
108
-
109
86
  firstFocusableElement.onkeydown = e => {
110
87
  if (e.shiftKey && e.key === _KeyCodes.KeyCodes.TAB) {
111
88
  e.preventDefault();
112
89
  lastFocusableElement === null || lastFocusableElement === void 0 ? void 0 : lastFocusableElement.focus();
113
90
  }
114
91
  };
115
-
116
92
  lastFocusableElement.onkeydown = e => {
117
93
  if (!e.shiftKey && e.key === _KeyCodes.KeyCodes.TAB) {
118
94
  e.preventDefault();
@@ -120,23 +96,17 @@ const preventFocusToMoveOutOfElement = elementId => {
120
96
  }
121
97
  };
122
98
  };
123
-
124
99
  exports.preventFocusToMoveOutOfElement = preventFocusToMoveOutOfElement;
125
-
126
100
  const setFocusOnSendBox = () => {
127
101
  const sendBoxSelector = "textarea[data-id=\"webchat-sendbox-input\"]";
128
102
  setFocusOnElement(sendBoxSelector);
129
103
  };
130
-
131
104
  exports.setFocusOnSendBox = setFocusOnSendBox;
132
-
133
105
  const setFocusOnElement = selector => {
134
106
  const element = getElementBySelector(selector);
135
107
  element === null || element === void 0 ? void 0 : element.focus();
136
108
  };
137
-
138
109
  exports.setFocusOnElement = setFocusOnElement;
139
-
140
110
  const escapeHtml = inputString => {
141
111
  const entityMap = {
142
112
  "<": "&lt;",
@@ -149,37 +119,27 @@ const escapeHtml = inputString => {
149
119
  return entityMap[s];
150
120
  });
151
121
  };
152
-
153
122
  exports.escapeHtml = escapeHtml;
154
-
155
123
  const getIconText = text => {
156
124
  if (text) {
157
125
  const initials = text.split(/\s/).reduce((response, word) => response += word.slice(0, 1), "");
158
-
159
126
  if (initials.length > 1) {
160
127
  return initials.substring(0, 2).toUpperCase();
161
128
  } else {
162
129
  return text.substring(0, 2).toUpperCase();
163
130
  }
164
131
  }
165
-
166
132
  return "";
167
133
  };
168
-
169
134
  exports.getIconText = getIconText;
170
-
171
135
  const getLocaleDirection = localeLCID => {
172
136
  return _Constants.LocaleConstants.RTL_LOCALES.indexOf(localeLCID) === -1 ? "ltr" : "rtl";
173
137
  };
174
-
175
138
  exports.getLocaleDirection = getLocaleDirection;
176
-
177
139
  const changeLanguageCodeFormatForWebChat = languageCode => {
178
140
  return languageCode.slice(0, -2) + languageCode.slice(-2).toUpperCase();
179
141
  };
180
-
181
142
  exports.changeLanguageCodeFormatForWebChat = changeLanguageCodeFormatForWebChat;
182
-
183
143
  const getTimestampHourMinute = timestampStr => {
184
144
  let yearFormat;
185
145
  let monthDayFormat;
@@ -187,20 +147,16 @@ const getTimestampHourMinute = timestampStr => {
187
147
  const minuteFormat = "2-digit";
188
148
  const date = new Date(timestampStr);
189
149
  const now = new Date();
190
-
191
150
  if (isNaN(date.getTime())) {
192
151
  return "";
193
152
  }
194
-
195
153
  if (date.getFullYear() !== now.getFullYear()) {
196
154
  yearFormat = "numeric";
197
155
  monthDayFormat = "2-digit";
198
156
  }
199
-
200
157
  if (date.getMonth() !== now.getMonth() || date.getDate() !== now.getDate()) {
201
158
  monthDayFormat = "2-digit";
202
159
  }
203
-
204
160
  return date.toLocaleTimeString(navigator.language, {
205
161
  year: yearFormat,
206
162
  month: monthDayFormat,
@@ -209,15 +165,12 @@ const getTimestampHourMinute = timestampStr => {
209
165
  minute: minuteFormat
210
166
  });
211
167
  };
212
-
213
168
  exports.getTimestampHourMinute = getTimestampHourMinute;
214
-
215
169
  const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
216
170
  if (payload && payload !== "{}") {
217
171
  try {
218
172
  const parsedPayload = JSON.parse(payload.replace(/&#42;/g, "*"));
219
173
  const body = parsedPayload.body;
220
-
221
174
  if (body) {
222
175
  //Parse ID field into available options and add required error messages
223
176
  for (const fields of body) {
@@ -225,26 +178,22 @@ const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
225
178
  const parsedId = JSON.parse(fields.id);
226
179
  fields.id = parsedId.Id;
227
180
  fields.isRequired = parsedId.IsRequired ?? false;
228
-
229
181
  if (fields.isRequired) {
230
182
  fields.errorMessage = requiredFieldMissingMessage.replace("{0}", parsedId.Name ?? "");
231
183
  }
232
184
  }
233
185
  }
234
186
  }
235
-
236
187
  return JSON.stringify(parsedPayload);
237
188
  } catch (ex) {
238
189
  throw new Error(`Adaptive card pase error: ${ex}`);
239
190
  }
240
191
  }
241
-
242
192
  return payload;
243
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
244
-
193
+ };
245
194
 
195
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
246
196
  exports.parseAdaptiveCardPayload = parseAdaptiveCardPayload;
247
-
248
197
  const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
249
198
  if (preChatSurvey && preChatSurvey !== "{}" && values) {
250
199
  try {
@@ -254,14 +203,13 @@ const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
254
203
  "Type": _Constants.Constants.InputSubmit
255
204
  };
256
205
  const computedValues = [];
257
-
258
206
  for (const val of values) {
259
207
  const index = val.index;
260
208
  const Id = body[index].id;
261
209
  computedValues[Id] = val.value;
262
210
  }
263
-
264
- const finalPayload = { ...type,
211
+ const finalPayload = {
212
+ ...type,
265
213
  ...computedValues
266
214
  };
267
215
  return finalPayload;
@@ -269,49 +217,38 @@ const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
269
217
  throw new Error(`PreChatSurvey Response parse error: ${ex}`);
270
218
  }
271
219
  }
272
-
273
220
  return {};
274
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
275
-
221
+ };
276
222
 
223
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
277
224
  exports.extractPreChatSurveyResponseValues = extractPreChatSurveyResponseValues;
278
-
279
225
  const isNullOrUndefined = obj => {
280
226
  return obj === null || obj === undefined;
281
227
  };
282
-
283
228
  exports.isNullOrUndefined = isNullOrUndefined;
284
-
285
229
  const isNullOrEmptyString = s => {
286
230
  return isNullOrUndefined(s) || s === "";
287
231
  };
288
-
289
232
  exports.isNullOrEmptyString = isNullOrEmptyString;
290
-
291
233
  const newGuid = () => {
292
234
  //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
293
235
  const guidPattern = _Constants.Constants.GuidPattern;
294
236
  let newGuid = "";
295
-
296
237
  for (let i = 0; i < guidPattern.length; i++) {
297
238
  const randomString = Math.floor(Math.random() * Date.now());
298
-
299
239
  switch (guidPattern[i]) {
300
240
  case "x":
301
241
  newGuid += randomString.toString(16).substring(0, 4);
302
242
  break;
303
243
  //get 4 digit
304
-
305
244
  case "m":
306
245
  newGuid += randomString.toString(16).substring(0, 3);
307
246
  break;
308
247
  //Get 3 digit
309
-
310
248
  case "y":
311
249
  newGuid += (randomString & 0x3 | 0x8).toString(16);
312
250
  break;
313
251
  // To get only one of 8, 9, A, or B
314
-
315
252
  default:
316
253
  newGuid += guidPattern[i];
317
254
  //Default "-" and "4"
@@ -320,9 +257,7 @@ const newGuid = () => {
320
257
 
321
258
  return newGuid;
322
259
  };
323
-
324
260
  exports.newGuid = newGuid;
325
-
326
261
  const createTimer = () => {
327
262
  const timeStart = new Date().getTime();
328
263
  return {
@@ -330,8 +265,73 @@ const createTimer = () => {
330
265
  const ms = new Date().getTime() - timeStart;
331
266
  return ms;
332
267
  }
333
-
334
268
  };
335
269
  };
336
270
 
337
- exports.createTimer = createTimer;
271
+ // Returns the domain of the org
272
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
273
+ exports.createTimer = createTimer;
274
+ const getDomain = hostValue => {
275
+ for (let i = 0; i < _Constants.AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
276
+ if (hostValue.endsWith(_Constants.AriaTelemetryConstants.lcwEUDomainNames[i])) {
277
+ return _Constants.AriaTelemetryConstants.EU;
278
+ }
279
+ }
280
+ return _Constants.AriaTelemetryConstants.Public;
281
+ };
282
+ exports.getDomain = getDomain;
283
+ const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
284
+ const widgetCacheId = `${widgetInstanceId}_${orgId}_${widgetId}`;
285
+ return _md5Typescript.Md5.init(widgetCacheId);
286
+ };
287
+ exports.getWidgetCacheId = getWidgetCacheId;
288
+ const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) => {
289
+ if (!isNullOrEmptyString(widgetInstanceId)) {
290
+ return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
291
+ }
292
+ return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
293
+ };
294
+
295
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
296
+ exports.getWidgetEndChatEventName = getWidgetEndChatEventName;
297
+ const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
298
+ // Getting updated state from cache
299
+ try {
300
+ if (_DataStoreManager.DataStoreManager.clientDataStore) {
301
+ var _DataStoreManager$cli;
302
+ const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
303
+ const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
304
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
305
+ return persistedState;
306
+ } else {
307
+ return null;
308
+ }
309
+ } catch (error) {
310
+ console.log(error);
311
+ return null;
312
+ }
313
+ };
314
+
315
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
316
+ exports.getStateFromCache = getStateFromCache;
317
+ const isUndefinedOrEmpty = object => {
318
+ if (object) {
319
+ if (Object.keys(object).length === 0) {
320
+ return true;
321
+ }
322
+ return false;
323
+ } else {
324
+ return true;
325
+ }
326
+ };
327
+
328
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
329
+ exports.isUndefinedOrEmpty = isUndefinedOrEmpty;
330
+ const addDelayInMs = ms => {
331
+ return new Promise(resolve => setTimeout(resolve, ms));
332
+ };
333
+ exports.addDelayInMs = addDelayInMs;
334
+ const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
335
+ return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
336
+ };
337
+ exports.getBroadcastChannelName = getBroadcastChannelName;
@@ -4,40 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.CallingContainerStateful = void 0;
7
-
8
7
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
13
-
14
10
  var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
15
-
16
11
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
17
-
18
12
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
19
-
20
13
  var _useChatSDKStore = _interopRequireDefault(require("../../hooks/useChatSDKStore"));
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
17
  const CallingContainerStateful = props => {
29
18
  var _props$controlProps, _props$controlProps2, _props$controlProps2$, _props$controlProps3, _props$controlProps3$, _props$controlProps3$2, _props$controlProps4, _props$controlProps4$, _props$controlProps4$2, _props$controlProps5;
30
-
31
19
  //TODO : Close button confirmation implmentation is pending
32
- const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
20
 
34
- const chatSDK = (0, _useChatSDKStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ const [state, dispatch] = (0, _useChatContextStore.default)();
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ const chatSDK = (0, _useChatSDKStore.default)();
35
24
 
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
26
  const {
37
27
  voiceVideoCallingSdk
38
28
  } = props;
39
29
  let callId;
40
-
41
30
  const resetCallingStates = reset => {
42
31
  if (reset) {
43
32
  dispatch({
@@ -62,12 +51,10 @@ const CallingContainerStateful = props => {
62
51
  });
63
52
  }
64
53
  };
65
-
66
54
  (0, _react.useEffect)(() => {
67
55
  const init = async () => {
68
56
  try {
69
57
  var _controlProps$current, _controlProps$current2, _controlProps$current3, _controlProps$current4;
70
-
71
58
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
59
  _TelemetryHelper.TelemetryHelper.callId = callId;
73
60
  await voiceVideoCallingSdk.initialize({
@@ -80,27 +67,23 @@ const CallingContainerStateful = props => {
80
67
  });
81
68
  } catch (e) {
82
69
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.ERROR, {
83
- Event: _TelemetryConstants.TelemetryEvent.VoiceVideoInitializeException,
70
+ Event: _TelemetryConstants.TelemetryEvent.VoiceVideoSdkInitializeException,
84
71
  Description: `Failed to initialize VideoVoiceCalling Sdk: ${e}`
85
72
  });
86
73
  }
87
74
  };
88
-
89
75
  init().then(() => {
90
76
  if (voiceVideoCallingSdk) {
91
77
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
92
- Event: _TelemetryConstants.TelemetryEvent.VoiceVideoInitialize,
78
+ Event: _TelemetryConstants.TelemetryEvent.VoiceVideoSdkInitialize,
93
79
  Description: "Initialize VideoVoiceCalling Sdk Success"
94
80
  }, callId);
95
-
96
81
  voiceVideoCallingSdk.onCallAdded(() => {
97
82
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
83
  callId = voiceVideoCallingSdk.callId;
99
-
100
84
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
101
85
  Event: _TelemetryConstants.TelemetryEvent.CallAdded
102
86
  }, callId);
103
-
104
87
  dispatch({
105
88
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SHOW_CALLING_CONTAINER,
106
89
  payload: true
@@ -114,7 +97,6 @@ const CallingContainerStateful = props => {
114
97
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
115
98
  Event: _TelemetryConstants.TelemetryEvent.RemoteVideoStreamAdded
116
99
  }, callId);
117
-
118
100
  const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
119
101
  const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
120
102
  dispatch({
@@ -134,7 +116,6 @@ const CallingContainerStateful = props => {
134
116
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
135
117
  Event: _TelemetryConstants.TelemetryEvent.LocalVideoStreamAdded
136
118
  }, callId);
137
-
138
119
  const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
139
120
  const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
140
121
  dispatch({
@@ -154,17 +135,14 @@ const CallingContainerStateful = props => {
154
135
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
155
136
  Event: _TelemetryConstants.TelemetryEvent.RemoteVideoStreamRemoved
156
137
  }, callId);
157
-
158
138
  const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
159
139
  const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
160
-
161
140
  if (isRemoteVideoDisabled && isLocalVideoDisabled) {
162
141
  dispatch({
163
142
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
164
143
  payload: true
165
144
  });
166
145
  }
167
-
168
146
  dispatch({
169
147
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_REMOTE_VIDEO,
170
148
  payload: isRemoteVideoDisabled
@@ -174,17 +152,14 @@ const CallingContainerStateful = props => {
174
152
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
175
153
  Event: _TelemetryConstants.TelemetryEvent.LocalVideoStreamRemoved
176
154
  }, callId);
177
-
178
155
  const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
179
156
  const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
180
-
181
157
  if (isRemoteVideoDisabled && isLocalVideoDisabled) {
182
158
  dispatch({
183
159
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
184
160
  payload: true
185
161
  });
186
162
  }
187
-
188
163
  dispatch({
189
164
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_LOCAL_VIDEO,
190
165
  payload: isLocalVideoDisabled
@@ -194,18 +169,29 @@ const CallingContainerStateful = props => {
194
169
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
195
170
  Event: _TelemetryConstants.TelemetryEvent.CallDisconnected
196
171
  }, callId);
197
-
198
172
  resetCallingStates(true);
199
173
  });
200
174
  voiceVideoCallingSdk.addEventListener(_TelemetryConstants.TelemetryEvent.IncomingCallEnded, () => {
201
175
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
202
176
  Event: _TelemetryConstants.TelemetryEvent.IncomingCallEnded
203
177
  }, callId);
204
-
205
178
  resetCallingStates(true);
206
179
  });
207
180
  }
208
181
  });
182
+ window.addEventListener("beforeunload", () => {
183
+ if (state.uiStates.isIncomingCall) {
184
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.rejectCall();
185
+ } else {
186
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.stopCall();
187
+ }
188
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.close();
189
+ dispatch({
190
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
191
+ payload: false
192
+ });
193
+ resetCallingStates(true);
194
+ });
209
195
  }, []);
210
196
  const controlProps = {
211
197
  id: "oc-lcw-callingcontainer",
@@ -217,11 +203,9 @@ const CallingContainerStateful = props => {
217
203
  onDeclineCallClick: (0, _react.useCallback)(async () => {
218
204
  try {
219
205
  voiceVideoCallingSdk.rejectCall();
220
-
221
206
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
222
207
  Event: _TelemetryConstants.TelemetryEvent.CallRejectClick
223
208
  }, callId);
224
-
225
209
  resetCallingStates(true);
226
210
  } catch (error) {
227
211
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.ERROR, {
@@ -237,7 +221,6 @@ const CallingContainerStateful = props => {
237
221
  voiceVideoCallingSdk.acceptCall({
238
222
  withVideo: false
239
223
  });
240
-
241
224
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
242
225
  Event: _TelemetryConstants.TelemetryEvent.VoiceCallAcceptButtonClick
243
226
  }, callId);
@@ -249,7 +232,6 @@ const CallingContainerStateful = props => {
249
232
  }
250
233
  }, callId);
251
234
  }
252
-
253
235
  dispatch({
254
236
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_INCOMING_CALL,
255
237
  payload: false
@@ -264,7 +246,6 @@ const CallingContainerStateful = props => {
264
246
  voiceVideoCallingSdk.acceptCall({
265
247
  withVideo: true
266
248
  });
267
-
268
249
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
269
250
  Event: _TelemetryConstants.TelemetryEvent.VideoCallAcceptButtonClick
270
251
  }, callId);
@@ -276,7 +257,6 @@ const CallingContainerStateful = props => {
276
257
  }
277
258
  }, callId);
278
259
  }
279
-
280
260
  dispatch({
281
261
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_INCOMING_CALL,
282
262
  payload: false
@@ -293,11 +273,9 @@ const CallingContainerStateful = props => {
293
273
  onEndCallClick: (0, _react.useCallback)(() => {
294
274
  try {
295
275
  voiceVideoCallingSdk.stopCall();
296
-
297
276
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
298
277
  Event: _TelemetryConstants.TelemetryEvent.EndCallButtonClick
299
278
  }, callId);
300
-
301
279
  resetCallingStates(true);
302
280
  } catch (error) {
303
281
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.ERROR, {
@@ -311,7 +289,6 @@ const CallingContainerStateful = props => {
311
289
  onMicCallClick: (0, _react.useCallback)(() => {
312
290
  try {
313
291
  voiceVideoCallingSdk.toggleMute();
314
-
315
292
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
316
293
  Event: _TelemetryConstants.TelemetryEvent.ToggleMuteButtonClick
317
294
  }, callId);
@@ -327,7 +304,6 @@ const CallingContainerStateful = props => {
327
304
  onVideoOffClick: (0, _react.useCallback)(() => {
328
305
  try {
329
306
  voiceVideoCallingSdk.toggleLocalVideo();
330
-
331
307
  _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
332
308
  Event: _TelemetryConstants.TelemetryEvent.ToggleCameraButtonClick
333
309
  }, callId);
@@ -340,7 +316,8 @@ const CallingContainerStateful = props => {
340
316
  }, callId);
341
317
  }
342
318
  }, []),
343
- 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),
319
+ nonActionIds: {
320
+ ...(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),
344
321
  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",
345
322
  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"
346
323
  },
@@ -355,7 +332,6 @@ const CallingContainerStateful = props => {
355
332
  styleProps: props === null || props === void 0 ? void 0 : props.styleProps
356
333
  }));
357
334
  };
358
-
359
335
  exports.CallingContainerStateful = CallingContainerStateful;
360
336
  var _default = CallingContainerStateful;
361
337
  exports.default = _default;