@microsoft/omnichannel-chat-widget 0.1.0-main.07a2a56 → 0.1.0-main.0c0fd47
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.
- package/lib/cjs/assets/Icons.js +4 -2
- package/lib/cjs/common/Constants.js +20 -169
- package/lib/cjs/common/KeyCodes.js +3 -4
- package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
- package/lib/cjs/common/storage/default/defaultCacheManager.js +3 -11
- package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +4 -16
- package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +2 -10
- package/lib/cjs/common/telemetry/TelemetryConstants.js +15 -23
- package/lib/cjs/common/telemetry/TelemetryHelper.js +19 -58
- package/lib/cjs/common/telemetry/TelemetryManager.js +3 -32
- package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
- package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +2 -21
- package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
- package/lib/cjs/common/utils.js +18 -105
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
- package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -28
- package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -32
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
- package/lib/cjs/components/footerstateful/FooterStateful.js +6 -29
- package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
- package/lib/cjs/components/headerstateful/HeaderStateful.js +7 -28
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +5 -10
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -6
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -12
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -20
- package/lib/cjs/components/livechatwidget/common/Deferred.js +6 -11
- package/lib/cjs/components/livechatwidget/common/authHelper.js +4 -19
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -13
- package/lib/cjs/components/livechatwidget/common/createFooter.js +0 -10
- package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -14
- package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
- package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +60 -26
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +50 -35
- package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
- package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +0 -8
- package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +16 -54
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +78 -151
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
- package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
- package/lib/cjs/components/livechatwidget/common/startChat.js +141 -112
- package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
- package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
- package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +201 -256
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
- package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
- package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
- package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
- package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +27 -20
- package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
- package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
- package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -37
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +3 -36
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
- package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +5 -18
- package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
- package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
- package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +8 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
- package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
- package/lib/cjs/contexts/ChatContextStore.js +0 -2
- package/lib/cjs/contexts/ChatSDKStore.js +0 -2
- package/lib/cjs/contexts/common/ConversationState.js +0 -1
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +29 -28
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -10
- package/lib/cjs/contexts/createReducer.js +152 -106
- package/lib/cjs/controller/componentController.js +2 -31
- package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
- package/lib/cjs/hooks/useChatContextStore.js +0 -6
- package/lib/cjs/hooks/useChatSDKStore.js +0 -6
- package/lib/cjs/index.js +0 -5
- package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
- package/lib/esm/assets/Icons.js +2 -1
- package/lib/esm/common/Constants.js +17 -156
- package/lib/esm/common/KeyCodes.js +3 -3
- package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
- package/lib/esm/common/storage/default/defaultCacheManager.js +3 -4
- package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +4 -11
- package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +2 -3
- package/lib/esm/common/telemetry/TelemetryConstants.js +19 -20
- package/lib/esm/common/telemetry/TelemetryHelper.js +19 -46
- package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
- package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +2 -14
- package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
- package/lib/esm/common/utils.js +18 -53
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
- package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -9
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -11
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
- package/lib/esm/components/footerstateful/FooterStateful.js +8 -10
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
- package/lib/esm/components/headerstateful/HeaderStateful.js +7 -13
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +5 -7
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -4
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -9
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -16
- package/lib/esm/components/livechatwidget/common/Deferred.js +6 -9
- package/lib/esm/components/livechatwidget/common/authHelper.js +4 -12
- package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -6
- package/lib/esm/components/livechatwidget/common/createFooter.js +0 -1
- package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -5
- package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
- package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +62 -13
- package/lib/esm/components/livechatwidget/common/endChat.js +52 -20
- package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
- package/lib/esm/components/livechatwidget/common/initCallingSdk.js +2 -2
- package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +18 -19
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +77 -131
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
- package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
- package/lib/esm/components/livechatwidget/common/startChat.js +141 -84
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
- package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +203 -190
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
- package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
- package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
- package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
- package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +27 -7
- package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
- package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
- package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -21
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +3 -8
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +5 -14
- package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
- package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -11
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
- package/lib/esm/contexts/ChatAdapterStore.js +2 -1
- package/lib/esm/contexts/ChatContextStore.js +2 -1
- package/lib/esm/contexts/ChatSDKStore.js +2 -1
- package/lib/esm/contexts/common/ConversationState.js +0 -1
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +29 -28
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -4
- package/lib/esm/contexts/createReducer.js +152 -103
- package/lib/esm/controller/componentController.js +3 -2
- package/lib/esm/hooks/useChatAdapterStore.js +0 -4
- package/lib/esm/hooks/useChatContextStore.js +0 -4
- package/lib/esm/hooks/useChatSDKStore.js +0 -4
- package/lib/esm/plugins/newMessageEventHandler.js +15 -26
- package/lib/types/assets/Icons.d.ts +1 -0
- package/lib/types/common/Constants.d.ts +12 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +11 -4
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
- package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
- package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
- package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
- package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +29 -27
- package/package.json +3 -3
|
@@ -3,97 +3,70 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStartChat = void 0;
|
|
7
|
-
|
|
6
|
+
exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStartChat = exports.checkIfConversationStillValid = void 0;
|
|
8
7
|
var _Constants = require("../../../common/Constants");
|
|
9
|
-
|
|
10
8
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
11
|
-
|
|
12
9
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
13
|
-
|
|
14
10
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
15
|
-
|
|
16
11
|
var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
|
|
17
|
-
|
|
18
12
|
var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
|
|
19
|
-
|
|
20
13
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
21
|
-
|
|
22
14
|
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
23
|
-
|
|
24
15
|
var _createAdapter = require("./createAdapter");
|
|
25
|
-
|
|
26
16
|
var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
|
|
27
|
-
|
|
28
17
|
var _utils = require("../../../common/utils");
|
|
29
|
-
|
|
30
|
-
var _reconnectChatHelper = require("./reconnectChatHelper");
|
|
31
|
-
|
|
32
18
|
var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
|
|
33
|
-
|
|
34
19
|
var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
|
|
35
|
-
|
|
36
20
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
37
|
-
|
|
38
21
|
var _ActivityStreamHandler = require("./ActivityStreamHandler");
|
|
39
|
-
|
|
40
22
|
var _authHelper = require("./authHelper");
|
|
41
|
-
|
|
23
|
+
var _reconnectChatHelper = require("./reconnectChatHelper");
|
|
42
24
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
-
let optionalParams = {};
|
|
44
|
-
|
|
45
|
-
let widgetInstanceId;
|
|
25
|
+
let optionalParams = {};
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
let widgetInstanceId;
|
|
46
28
|
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
30
|
const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
48
|
-
var _props$controlProps
|
|
49
|
-
|
|
31
|
+
var _props$controlProps;
|
|
50
32
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
33
|
+
widgetInstanceId = props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId;
|
|
51
34
|
|
|
52
|
-
|
|
53
|
-
|
|
35
|
+
// Can connect to existing chat session
|
|
54
36
|
if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
|
|
55
37
|
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
60
|
-
var _props$reconnectChatP2, _props$reconnectChatP3, _props$reconnectChatP4;
|
|
61
|
-
|
|
62
|
-
await (0, _reconnectChatHelper.handleRedirectUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.redirectInSameWindow);
|
|
63
|
-
return;
|
|
64
|
-
} // Getting reconnectId for authenticated chat
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const reconnectId = await (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK);
|
|
38
|
+
}
|
|
39
|
+
await (0, _reconnectChatHelper.handleChatReconnect)(chatSDK, props, dispatch, setAdapter, initStartChat, state);
|
|
68
40
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
72
|
-
payload: reconnectId
|
|
73
|
-
});
|
|
74
|
-
dispatch({
|
|
75
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
76
|
-
payload: _ConversationState.ConversationState.ReconnectChat
|
|
77
|
-
});
|
|
41
|
+
// If chat reconnect has kicked in chat state will become Active or Reconnect. So just exit, else go next
|
|
42
|
+
if (state.appStates.conversationState === _ConversationState.ConversationState.Active || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat) {
|
|
78
43
|
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
44
|
+
}
|
|
81
45
|
|
|
46
|
+
// Setting Proactive chat settings
|
|
82
47
|
const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
|
|
83
|
-
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
84
|
-
|
|
85
|
-
setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
|
|
86
|
-
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
87
49
|
|
|
50
|
+
//Setting PreChat and intiate chat
|
|
51
|
+
setPreChatAndInitiateChat(chatSDK, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat, undefined, props);
|
|
52
|
+
};
|
|
88
53
|
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
55
|
exports.prepareStartChat = prepareStartChat;
|
|
56
|
+
const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState, state, props) => {
|
|
57
|
+
//Handle reconnect scenario
|
|
58
|
+
if (state) {
|
|
59
|
+
await (0, _reconnectChatHelper.handleChatReconnect)(chatSDK, props, dispatch, setAdapter, initStartChat, state);
|
|
60
|
+
// If chat reconnect has kicked in chat state will become Active or Reconnect. So just exit, else go next
|
|
61
|
+
if (state.appStates.conversationState === _ConversationState.ConversationState.Active || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
90
65
|
|
|
91
|
-
const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
|
|
92
66
|
// Getting prechat Survey Context
|
|
93
67
|
const parseToJson = false;
|
|
94
68
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
95
69
|
const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse;
|
|
96
|
-
|
|
97
70
|
if (showPrechat) {
|
|
98
71
|
dispatch({
|
|
99
72
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
@@ -104,39 +77,40 @@ const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, disp
|
|
|
104
77
|
payload: _ConversationState.ConversationState.Prechat
|
|
105
78
|
});
|
|
106
79
|
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
80
|
+
}
|
|
109
81
|
|
|
82
|
+
//Initiate start chat
|
|
110
83
|
dispatch({
|
|
111
84
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
112
85
|
payload: _ConversationState.ConversationState.Loading
|
|
113
86
|
});
|
|
114
|
-
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
|
|
115
|
-
};
|
|
116
|
-
|
|
87
|
+
await initStartChat(chatSDK, props === null || props === void 0 ? void 0 : props.chatConfig, props === null || props === void 0 ? void 0 : props.getAuthToken, dispatch, setAdapter);
|
|
88
|
+
};
|
|
117
89
|
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
118
91
|
exports.setPreChatAndInitiateChat = setPreChatAndInitiateChat;
|
|
119
|
-
|
|
120
92
|
const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
|
|
121
93
|
try {
|
|
122
94
|
var _newAdapter$activity$, _TelemetryTimers$Widg;
|
|
123
|
-
|
|
95
|
+
//Start widget load timer
|
|
96
|
+
_TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
|
|
97
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
98
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadStarted,
|
|
99
|
+
Description: "Widget loading started"
|
|
100
|
+
});
|
|
124
101
|
const authClientFunction = (0, _authHelper.getAuthClientFunction)(chatConfig);
|
|
125
|
-
|
|
126
102
|
if (getAuthToken && authClientFunction) {
|
|
127
103
|
// set auth token to chat sdk before start chat
|
|
128
104
|
const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, getAuthToken);
|
|
129
|
-
|
|
130
105
|
if (!authSuccess) {
|
|
131
106
|
return;
|
|
132
107
|
}
|
|
133
108
|
}
|
|
109
|
+
let isStartChatSuccessful = false;
|
|
134
110
|
|
|
135
|
-
|
|
136
|
-
|
|
111
|
+
//Check if chat retrieved from cache
|
|
137
112
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
138
113
|
var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
|
|
139
|
-
|
|
140
114
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
141
115
|
eventName: _TelemetryConstants.BroadcastEvent.ChatRetrievedFromCache,
|
|
142
116
|
payload: {
|
|
@@ -145,16 +119,8 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
145
119
|
}
|
|
146
120
|
});
|
|
147
121
|
}
|
|
148
|
-
|
|
149
122
|
try {
|
|
150
|
-
//
|
|
151
|
-
_TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
|
|
152
|
-
|
|
153
|
-
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
154
|
-
Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
|
|
155
|
-
}); // Set custom context params
|
|
156
|
-
|
|
157
|
-
|
|
123
|
+
// Set custom context params
|
|
158
124
|
setCustomContextParams(chatSDK);
|
|
159
125
|
optionalParams = Object.assign({}, params, optionalParams);
|
|
160
126
|
await chatSDK.startChat(optionalParams);
|
|
@@ -166,18 +132,17 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
166
132
|
exception: `Failed to setup startChat: ${error}`
|
|
167
133
|
}
|
|
168
134
|
});
|
|
169
|
-
|
|
170
|
-
|
|
135
|
+
isStartChatSuccessful = false;
|
|
136
|
+
// Resetting the widget state to Closed, for recent introduction of OC rate limiting(429 Error)
|
|
171
137
|
// TODO : How to diplay a proper UI message to customer to try after sometime at this point - cool down scenario
|
|
172
|
-
|
|
173
138
|
dispatch({
|
|
174
139
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
175
140
|
payload: _ConversationState.ConversationState.Closed
|
|
176
141
|
});
|
|
177
142
|
return;
|
|
178
|
-
}
|
|
179
|
-
|
|
143
|
+
}
|
|
180
144
|
|
|
145
|
+
// New adapter creation
|
|
181
146
|
const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
|
|
182
147
|
setAdapter(newAdapter);
|
|
183
148
|
const chatToken = await chatSDK.getChatToken();
|
|
@@ -186,36 +151,41 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
186
151
|
payload: chatToken
|
|
187
152
|
});
|
|
188
153
|
newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
|
|
189
|
-
|
|
190
154
|
if (persistedState) {
|
|
191
155
|
dispatch({
|
|
192
156
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
|
|
193
157
|
payload: persistedState
|
|
194
158
|
});
|
|
195
|
-
|
|
159
|
+
(0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
|
|
196
160
|
return;
|
|
197
|
-
}
|
|
198
|
-
|
|
161
|
+
}
|
|
199
162
|
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
164
|
const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
|
|
201
165
|
dispatch({
|
|
202
166
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
|
|
203
167
|
payload: liveChatContext
|
|
204
|
-
});
|
|
168
|
+
});
|
|
205
169
|
|
|
206
|
-
|
|
170
|
+
// Set post chat context in state, no survey load
|
|
171
|
+
(0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
207
172
|
|
|
208
|
-
|
|
173
|
+
// Updating chat session detail for telemetry
|
|
174
|
+
await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch);
|
|
209
175
|
|
|
176
|
+
// Set app state to Active
|
|
210
177
|
if (isStartChatSuccessful) {
|
|
211
178
|
_ActivityStreamHandler.ActivityStreamHandler.uncork();
|
|
212
|
-
|
|
179
|
+
// Update start chat failure app state if chat loads successfully
|
|
180
|
+
dispatch({
|
|
181
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_FAILING,
|
|
182
|
+
payload: false
|
|
183
|
+
});
|
|
213
184
|
dispatch({
|
|
214
185
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
215
186
|
payload: _ConversationState.ConversationState.Active
|
|
216
187
|
});
|
|
217
188
|
}
|
|
218
|
-
|
|
219
189
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
220
190
|
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
|
|
221
191
|
Description: "Widget load complete",
|
|
@@ -228,10 +198,8 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
228
198
|
Exception: `Widget load Failed: ${ex}`
|
|
229
199
|
}
|
|
230
200
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
201
|
+
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "Start Chat Failed: " + ex);
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
203
|
if (ex.message === _Constants.ChatSDKError.WidgetUseOutsideOperatingHour) {
|
|
236
204
|
dispatch({
|
|
237
205
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_OUTSIDE_OPERATING_HOURS,
|
|
@@ -241,29 +209,37 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
241
209
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
242
210
|
payload: _ConversationState.ConversationState.OutOfOffice
|
|
243
211
|
});
|
|
212
|
+
return;
|
|
244
213
|
}
|
|
214
|
+
// Set app state to failing start chat
|
|
215
|
+
dispatch({
|
|
216
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_FAILING,
|
|
217
|
+
payload: true
|
|
218
|
+
});
|
|
219
|
+
// Show the loading pane in other cases for failure, this will help for both hideStartChatButton case
|
|
220
|
+
dispatch({
|
|
221
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
222
|
+
payload: _ConversationState.ConversationState.Loading
|
|
223
|
+
});
|
|
245
224
|
} finally {
|
|
246
225
|
optionalParams = {};
|
|
247
226
|
widgetInstanceId = "";
|
|
248
227
|
}
|
|
249
|
-
};
|
|
250
|
-
|
|
228
|
+
};
|
|
251
229
|
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
252
231
|
exports.initStartChat = initStartChat;
|
|
253
|
-
|
|
254
232
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
255
233
|
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
|
|
256
|
-
|
|
257
234
|
// By pass this function in case of popout chat
|
|
258
|
-
if (state.appStates.
|
|
235
|
+
if (state.appStates.hideStartChatButton === true) {
|
|
259
236
|
return false;
|
|
260
237
|
}
|
|
238
|
+
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
|
|
261
239
|
|
|
262
|
-
|
|
263
|
-
|
|
240
|
+
//Connect to only active chat session
|
|
264
241
|
if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai6 = persistedState.domainStates) === null || _persistedState$domai6 === void 0 ? void 0 : _persistedState$domai6.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active) {
|
|
265
242
|
var _persistedState$domai7;
|
|
266
|
-
|
|
267
243
|
dispatch({
|
|
268
244
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
269
245
|
payload: _ConversationState.ConversationState.Loading
|
|
@@ -276,33 +252,86 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
276
252
|
} else {
|
|
277
253
|
return false;
|
|
278
254
|
}
|
|
279
|
-
};
|
|
280
|
-
|
|
255
|
+
};
|
|
281
256
|
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
282
258
|
const setCustomContextParams = chatSDK => {
|
|
283
259
|
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
|
|
284
|
-
|
|
285
260
|
// Add custom context only for unauthenticated chat
|
|
286
261
|
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId, widgetInstanceId ?? "");
|
|
287
|
-
|
|
288
262
|
if (!(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
|
|
289
263
|
var _persistedState$domai9, _persistedState$domai10;
|
|
290
|
-
|
|
291
264
|
if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
|
|
292
265
|
const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
|
|
293
|
-
|
|
294
266
|
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
295
267
|
Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
|
|
296
268
|
ExceptionDetails: {
|
|
297
269
|
exception: errorMessage
|
|
298
270
|
}
|
|
299
271
|
});
|
|
300
|
-
|
|
301
272
|
throw new Error(errorMessage);
|
|
302
273
|
}
|
|
303
|
-
|
|
304
274
|
optionalParams = Object.assign({}, optionalParams, {
|
|
305
275
|
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
|
|
306
276
|
});
|
|
307
277
|
}
|
|
308
|
-
};
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
281
|
+
const handleAuthenticationIfEnabled = async (chatSDK, props) => {
|
|
282
|
+
//For auth chat
|
|
283
|
+
if (props.getAuthToken) {
|
|
284
|
+
const authClientFunction = (0, _authHelper.getAuthClientFunction)(props.chatConfig);
|
|
285
|
+
if (authClientFunction) {
|
|
286
|
+
// set auth token to chat sdk before start chat
|
|
287
|
+
const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, props.chatConfig, props.getAuthToken);
|
|
288
|
+
if (!authSuccess) {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
291
|
+
return true;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return true;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
298
|
+
const checkIfConversationStillValid = async (chatSDK, props, requestId, dispatch) => {
|
|
299
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
300
|
+
let conversationDetails = undefined;
|
|
301
|
+
|
|
302
|
+
// Show Loading screen during auth check and start chat calls
|
|
303
|
+
dispatch({
|
|
304
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
305
|
+
payload: _ConversationState.ConversationState.Loading
|
|
306
|
+
});
|
|
307
|
+
const authSucceed = await handleAuthenticationIfEnabled(chatSDK, props);
|
|
308
|
+
if (!authSucceed) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
//Preserve old requestId
|
|
313
|
+
const oldRequestId = chatSDK.requestId;
|
|
314
|
+
try {
|
|
315
|
+
chatSDK.requestId = requestId;
|
|
316
|
+
conversationDetails = await chatSDK.getConversationDetails();
|
|
317
|
+
if (Object.keys(conversationDetails).length === 0) {
|
|
318
|
+
chatSDK.requestId = oldRequestId;
|
|
319
|
+
return false;
|
|
320
|
+
}
|
|
321
|
+
if (conversationDetails.state === _Constants.LiveWorkItemState.Closed || conversationDetails.state === _Constants.LiveWorkItemState.WrapUp) {
|
|
322
|
+
chatSDK.requestId = oldRequestId;
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
|
+
return true;
|
|
326
|
+
} catch (erorr) {
|
|
327
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
328
|
+
Event: _TelemetryConstants.TelemetryEvent.GetConversationDetailsException,
|
|
329
|
+
ExceptionDetails: {
|
|
330
|
+
exception: `Conversation is not valid: ${erorr}`
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
chatSDK.requestId = oldRequestId;
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
exports.checkIfConversationStillValid = checkIfConversationStillValid;
|
|
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.startProactiveChat = void 0;
|
|
7
|
-
|
|
8
7
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
9
|
-
|
|
10
8
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
11
|
-
|
|
12
9
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
13
|
-
|
|
14
10
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
15
|
-
|
|
16
11
|
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
17
|
-
|
|
18
12
|
// Defines startProactiveChat callback
|
|
19
13
|
const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWindow) => {
|
|
20
14
|
dispatch({
|
|
@@ -29,12 +23,10 @@ const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWi
|
|
|
29
23
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
30
24
|
payload: _ConversationState.ConversationState.ProactiveChat
|
|
31
25
|
});
|
|
32
|
-
|
|
33
26
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
34
27
|
Event: _TelemetryConstants.TelemetryEvent.IncomingProactiveChatScreenLoaded,
|
|
35
28
|
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed,
|
|
36
29
|
Description: "Incoming proactive chat loaded."
|
|
37
30
|
});
|
|
38
31
|
};
|
|
39
|
-
|
|
40
32
|
exports.startProactiveChat = startProactiveChat;
|
|
@@ -4,39 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.updateSessionDataForTelemetry = void 0;
|
|
7
|
-
|
|
8
7
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
9
|
-
|
|
10
8
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
11
|
-
|
|
12
9
|
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
13
|
-
|
|
14
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
11
|
const updateSessionDataForTelemetry = async (chatSDK, dispatch) => {
|
|
16
12
|
if (chatSDK) {
|
|
17
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
14
|
const chatSession = await chatSDK.getCurrentLiveChatContext();
|
|
19
|
-
|
|
20
15
|
const telemetryData = _TelemetryHelper.TelemetryHelper.addSessionDataToTelemetry(chatSession, _TelemetryManager.TelemetryManager.InternalTelemetryData);
|
|
21
|
-
|
|
22
16
|
dispatch({
|
|
23
17
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA,
|
|
24
18
|
payload: telemetryData
|
|
25
19
|
});
|
|
26
20
|
await updateConversationDataForTelemetry(chatSDK, dispatch);
|
|
27
21
|
}
|
|
28
|
-
};
|
|
29
|
-
|
|
22
|
+
};
|
|
30
23
|
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
25
|
exports.updateSessionDataForTelemetry = updateSessionDataForTelemetry;
|
|
32
|
-
|
|
33
26
|
const updateConversationDataForTelemetry = async (chatSDK, dispatch) => {
|
|
34
27
|
if (chatSDK) {
|
|
35
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
29
|
const liveWorkItem = await chatSDK.getConversationDetails();
|
|
37
|
-
|
|
38
30
|
const telemetryData = _TelemetryHelper.TelemetryHelper.addConversationDataToTelemetry(liveWorkItem, _TelemetryManager.TelemetryManager.InternalTelemetryData);
|
|
39
|
-
|
|
40
31
|
dispatch({
|
|
41
32
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA,
|
|
42
33
|
payload: telemetryData
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|