@microsoft/omnichannel-chat-widget 0.1.0-main.4eb4d1f → 0.1.0-main.50fdaaa

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