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

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