@microsoft/omnichannel-chat-widget 0.1.0-main.fdf1fdf → 1.0.1-main.068a14e

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