@microsoft/omnichannel-chat-widget 0.1.0-main.3eb9e8c → 0.1.0-main.4151518

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