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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +7 -34
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +24 -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 +41 -23
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +21 -59
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +3 -32
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  13. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  14. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  15. package/lib/cjs/common/utils.js +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 +9 -33
  20. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  23. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -42
  24. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  27. package/lib/cjs/components/headerstateful/HeaderStateful.js +18 -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/authHelper.js +13 -15
  36. package/lib/cjs/components/livechatwidget/common/createAdapter.js +4 -13
  37. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  38. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  39. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  40. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +125 -49
  42. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  43. package/lib/cjs/components/livechatwidget/common/endChat.js +71 -50
  44. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  45. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  46. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  47. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +41 -66
  48. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +79 -152
  49. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  50. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
  51. package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
  52. package/lib/cjs/components/livechatwidget/common/startChat.js +176 -127
  53. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  54. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  55. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  56. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +232 -244
  57. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +26 -19
  58. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  59. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  60. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  61. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  62. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  63. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  64. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  65. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  66. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +10 -38
  67. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  68. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  69. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  70. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +29 -34
  71. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  73. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  74. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  75. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +5 -18
  76. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  79. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -5
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -34
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  122. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  123. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  124. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  125. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  126. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -29
  127. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -11
  128. package/lib/cjs/contexts/createReducer.js +154 -108
  129. package/lib/cjs/controller/componentController.js +2 -31
  130. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  131. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  132. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  133. package/lib/cjs/hooks/useDebounce.js +28 -0
  134. package/lib/cjs/hooks/useWindowDimensions.js +30 -0
  135. package/lib/cjs/index.js +0 -5
  136. package/lib/cjs/plugins/newMessageEventHandler.js +29 -36
  137. package/lib/esm/assets/Icons.js +2 -1
  138. package/lib/esm/common/Constants.js +21 -158
  139. package/lib/esm/common/KeyCodes.js +3 -3
  140. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  141. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  142. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  143. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  144. package/lib/esm/common/telemetry/TelemetryConstants.js +45 -20
  145. package/lib/esm/common/telemetry/TelemetryHelper.js +21 -47
  146. package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
  147. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  148. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  149. package/lib/esm/common/utils.js +38 -53
  150. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  151. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  152. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  153. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +11 -14
  154. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  155. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  156. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  157. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  158. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  159. package/lib/esm/components/headerstateful/HeaderStateful.js +18 -16
  160. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  161. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +5 -7
  162. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +134 -0
  163. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -4
  164. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -9
  165. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -16
  166. package/lib/esm/components/livechatwidget/common/Deferred.js +6 -9
  167. package/lib/esm/components/livechatwidget/common/authHelper.js +13 -10
  168. package/lib/esm/components/livechatwidget/common/createAdapter.js +6 -6
  169. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  170. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  171. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  172. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  173. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +126 -35
  174. package/lib/esm/components/livechatwidget/common/endChat.js +73 -35
  175. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  176. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  177. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  178. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +43 -31
  179. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +77 -130
  180. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  181. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  182. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  183. package/lib/esm/components/livechatwidget/common/startChat.js +175 -98
  184. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  185. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  186. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +234 -178
  187. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +26 -7
  188. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  189. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  190. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  191. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  192. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  193. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  194. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  195. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  196. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -22
  197. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  198. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  199. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  200. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +27 -9
  201. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  202. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  203. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  204. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  205. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +5 -14
  206. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  207. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  208. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  209. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +19 -23
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  252. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  253. package/lib/esm/contexts/ChatContextStore.js +2 -1
  254. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  255. package/lib/esm/contexts/common/ConversationState.js +0 -1
  256. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -29
  257. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -7
  258. package/lib/esm/contexts/createReducer.js +154 -105
  259. package/lib/esm/controller/componentController.js +3 -2
  260. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  261. package/lib/esm/hooks/useChatContextStore.js +0 -4
  262. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  263. package/lib/esm/hooks/useDebounce.js +22 -0
  264. package/lib/esm/hooks/useWindowDimensions.js +23 -0
  265. package/lib/esm/plugins/newMessageEventHandler.js +29 -26
  266. package/lib/types/assets/Icons.d.ts +1 -0
  267. package/lib/types/common/Constants.d.ts +14 -0
  268. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  269. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  270. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  271. package/lib/types/common/telemetry/TelemetryConstants.d.ts +29 -5
  272. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  273. package/lib/types/common/telemetry/definitions/Payload.d.ts +1 -0
  274. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +4 -0
  275. package/lib/types/common/utils.d.ts +1 -0
  276. package/lib/types/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +9 -0
  277. package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
  278. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  279. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
  280. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
  281. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +3 -1
  282. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -2
  283. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  284. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  285. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  286. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  287. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  288. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  289. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  290. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  291. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  292. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  293. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  294. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  295. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  296. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  297. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  298. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
  299. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -28
  300. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  301. package/lib/types/hooks/useDebounce.d.ts +3 -0
  302. package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
  303. package/package.json +3 -3
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.defaultTelemetryConfiguration = void 0;
7
-
8
7
  var _defaultAriaConfig = require("./defaultAriaConfig");
9
-
10
8
  const defaultTelemetryConfiguration = {
11
9
  telemetryDisabled: false,
12
10
  disableConsoleLog: false,
@@ -4,92 +4,86 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ariaTelemetryLogger = void 0;
7
-
8
7
  var _utils = require("../../utils");
9
-
10
- var _AWTEventProperties = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTEventProperties"));
11
-
12
- var _AWTLogManager = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTLogManager"));
13
-
8
+ var _AriaSDK = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AriaSDK");
14
9
  var _Enums = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums");
15
-
16
10
  var _Constants = require("../../Constants");
17
-
18
11
  var _TelemetryManager = require("../TelemetryManager");
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
12
  const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
23
13
  let _logger;
24
-
25
14
  const logger = () => {
26
15
  if ((0, _utils.isNullOrUndefined)(_logger) && !(0, _utils.isNullOrEmptyString)(ariaTelemetryKey)) {
27
16
  const configuration = {
28
17
  disableCookiesUsage: disabledCookieUsage
29
18
  };
30
-
31
19
  if (!(0, _utils.isNullOrEmptyString)(collectiorUriForTelemetry)) {
32
20
  configuration.collectorUri = collectiorUriForTelemetry;
33
21
  } else {
34
22
  if (_TelemetryManager.TelemetryManager.InternalTelemetryData.environmentVersion == _Constants.EnvironmentVersion.prod) {
35
23
  var _TelemetryManager$Int;
36
-
37
24
  const orgUrl = (_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.orgUrl;
38
-
39
25
  if (!(0, _utils.isNullOrUndefined)(orgUrl)) {
40
26
  // If the given org is a Production EU org, modify the Aria collector uri
41
27
  const region = (0, _utils.getDomain)(orgUrl);
42
-
43
28
  if (region === _Constants.AriaTelemetryConstants.EU) {
44
29
  configuration.collectorUri = _Constants.AriaTelemetryConstants.EUROPE_ENDPOINT;
45
30
  }
46
31
  }
47
32
  }
48
33
  }
49
-
50
34
  try {
51
- _logger = _AWTLogManager.default.initialize(ariaTelemetryKey, configuration);
52
-
35
+ _logger = _AriaSDK.AWTLogManager.initialize(ariaTelemetryKey, configuration);
53
36
  if (_logger === undefined) {
54
- _logger = _AWTLogManager.default.getLogger(ariaTelemetryKey);
37
+ _logger = _AriaSDK.AWTLogManager.getLogger(ariaTelemetryKey);
55
38
  }
56
39
  } catch (error) {
57
40
  console.log(error);
58
41
  }
59
42
  }
60
-
61
43
  return _logger;
62
44
  };
63
-
64
45
  const ariaLogger = {
65
46
  log: (logLevel, telemetryInput) => {
66
47
  try {
67
- let property;
68
- const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo;
69
- const eventProperties = new _AWTEventProperties.default();
70
- eventProperties.setName(telemetryInput.scenarioType);
71
-
48
+ var _telemetryInput$telem;
49
+ const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : (_telemetryInput$telem = telemetryInput.telemetryInfo) === null || _telemetryInput$telem === void 0 ? void 0 : _telemetryInput$telem.telemetryInfo;
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ const eventProperties = {
52
+ name: telemetryInput.scenarioType,
53
+ properties: {}
54
+ };
72
55
  if (telemetryInfo) {
73
- for (const key of Object.keys(telemetryInfo)) {
74
- property = typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key];
75
- eventProperties.setProperty(key, property);
76
- }
77
-
78
- eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, _Constants.Constants.LiveChatWidget, _Enums.AWTPiiKind.GenericData);
56
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
57
+ Object.keys(telemetryInfo).forEach((key, index) => {
58
+ if (!(0, _utils.isNullOrUndefined)(telemetryInfo[key]) && !(0, _utils.isNullOrEmptyString)(telemetryInfo[key])) {
59
+ const property = {
60
+ value: typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key],
61
+ type: typeof telemetryInfo[key] === "number" ? _Enums.AWTPropertyType.Double : _Enums.AWTPropertyType.String,
62
+ pii: _Enums.AWTPiiKind.NotSet,
63
+ cc: _Enums.AWTCustomerContentKind.NotSet
64
+ };
65
+ eventProperties.properties[key] = property;
66
+ }
67
+ });
68
+ const nameProperty = {
69
+ value: _Constants.Constants.LiveChatWidget,
70
+ type: _Enums.AWTPropertyType.String,
71
+ pii: _Enums.AWTPiiKind.GenericData,
72
+ cc: _Enums.AWTCustomerContentKind.NotSet
73
+ };
74
+ eventProperties.properties[ariaTelemetryApplicationName] = nameProperty;
79
75
  }
80
-
81
76
  logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
82
77
  } catch (error) {
83
78
  console.error("Error in logging telemetry to Aria logger:" + error);
84
79
  }
85
80
  },
86
81
  dispose: () => {
87
- _AWTLogManager.default.flush(function () {
82
+ _AriaSDK.AWTLogManager.flush(function () {
88
83
  console.log("Aria logger disposed");
89
84
  });
90
85
  }
91
86
  };
92
87
  return ariaLogger;
93
88
  };
94
-
95
89
  exports.ariaTelemetryLogger = ariaTelemetryLogger;
@@ -4,35 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.consoleLogger = void 0;
7
-
8
7
  var _Constants = require("../../Constants");
9
-
10
8
  var _TelemetryConstants = require("../TelemetryConstants");
11
-
12
9
  const consoleLogger = () => {
13
10
  const consoleLogger = {
14
11
  log: (logLevel, telemetryInput) => {
15
12
  const payload = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.payload && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload : "";
16
13
  const telemetryInfo = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.telemetryInfo && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo : "";
17
-
18
14
  try {
19
15
  switch (logLevel) {
20
16
  case _TelemetryConstants.LogLevel.INFO:
21
17
  console.info(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
22
18
  break;
23
-
24
19
  case _TelemetryConstants.LogLevel.DEBUG:
25
20
  console.debug(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
26
21
  break;
27
-
28
22
  case _TelemetryConstants.LogLevel.WARN:
29
23
  console.warn(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
30
24
  break;
31
-
32
25
  case _TelemetryConstants.LogLevel.ERROR:
33
26
  console.error(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
34
27
  break;
35
-
36
28
  default:
37
29
  console.debug(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
38
30
  break;
@@ -47,5 +39,4 @@ const consoleLogger = () => {
47
39
  };
48
40
  return consoleLogger;
49
41
  };
50
-
51
42
  exports.consoleLogger = consoleLogger;
@@ -3,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;