@microsoft/omnichannel-chat-widget 0.1.0-main.b59a07c → 0.1.0-main.bd0a90b

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