@microsoft/omnichannel-chat-widget 0.1.0-main.0d584e6 → 0.1.0-main.0e38a73
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/common/Constants.js +0 -167
- package/lib/cjs/common/KeyCodes.js +0 -3
- package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
- package/lib/cjs/common/storage/default/defaultCacheManager.js +0 -10
- 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 +12 -22
- package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
- package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
- 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 +4 -25
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +2 -9
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -5
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -11
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +11 -19
- package/lib/cjs/components/livechatwidget/common/Deferred.js +3 -10
- 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/dummyDefaultProps.js +40 -34
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +8 -33
- package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
- package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
- 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 +36 -66
- 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 +46 -86
- 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/livechatwidgetstateful/LiveChatWidgetStateful.js +72 -162
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +4 -17
- 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 +32 -23
- 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/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +8 -36
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -24
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +19 -38
- 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 +9 -26
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -17
- 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 +0 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
- 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/defaultSystemMessageBoxStyles.js +10 -0
- 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/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
- 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 +2 -12
- 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 +16 -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 +0 -1
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +0 -9
- package/lib/cjs/contexts/createReducer.js +133 -104
- package/lib/cjs/controller/componentController.js +1 -30
- 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/common/Constants.js +0 -155
- package/lib/esm/common/KeyCodes.js +0 -2
- package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
- package/lib/esm/common/storage/default/defaultCacheManager.js +0 -3
- 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 +16 -19
- package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
- package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
- 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 +4 -10
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +2 -6
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +0 -3
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +4 -8
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +11 -15
- package/lib/esm/components/livechatwidget/common/Deferred.js +3 -8
- 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/dummyDefaultProps.js +42 -21
- package/lib/esm/components/livechatwidget/common/endChat.js +10 -18
- package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
- package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
- 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 +37 -51
- 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 +48 -59
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +73 -95
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +4 -5
- 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 +32 -11
- 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/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +10 -20
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +17 -11
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -13
- 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 +0 -2
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
- 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/defaultSystemMessageBoxStyles.js +3 -0
- 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/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
- 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 +3 -3
- 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 +16 -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 +0 -1
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +0 -3
- package/lib/esm/contexts/createReducer.js +133 -101
- package/lib/esm/controller/componentController.js +2 -1
- 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/common/telemetry/TelemetryConstants.d.ts +7 -2
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -5
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
- package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
- package/package.json +3 -3
|
@@ -4,10 +4,14 @@ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
|
4
4
|
import { ConversationState } from "../../../contexts/common/ConversationState";
|
|
5
5
|
import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
|
|
6
6
|
import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
7
|
-
import { handleAuthentication, removeAuthTokenProvider } from "./authHelper";
|
|
7
|
+
import { handleAuthentication, removeAuthTokenProvider } from "./authHelper";
|
|
8
|
+
const isReconnectEnabled = chatConfig => {
|
|
9
|
+
return chatConfig && chatConfig.LiveWSAndLiveChatEngJoin.msdyn_enablechatreconnect && (chatConfig.LiveWSAndLiveChatEngJoin.msdyn_enablechatreconnect === "true" || chatConfig.LiveWSAndLiveChatEngJoin.msdyn_enablechatreconnect === true);
|
|
10
|
+
};
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
const getChatReconnectContext = async (chatSDK, chatConfig, getAuthToken, reconnectId) => {
|
|
14
|
+
if (isReconnectEnabled(chatConfig)) {
|
|
11
15
|
try {
|
|
12
16
|
if (reconnectId) {
|
|
13
17
|
const chatReconnectOptionalParams = {
|
|
@@ -17,9 +21,9 @@ const getChatReconnectContext = async (chatSDK, chatConfig, getAuthToken, isReco
|
|
|
17
21
|
} else {
|
|
18
22
|
// set auth token to chat sdk to get reconnectId for auth chat
|
|
19
23
|
await handleAuthentication(chatSDK, chatConfig, getAuthToken);
|
|
20
|
-
const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext());
|
|
24
|
+
const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext());
|
|
25
|
+
// remove auth token after reconnectId is fetched
|
|
21
26
|
// this will be reset later at start chat
|
|
22
|
-
|
|
23
27
|
removeAuthTokenProvider(chatSDK);
|
|
24
28
|
return reconnectChatContext;
|
|
25
29
|
}
|
|
@@ -32,59 +36,47 @@ const getChatReconnectContext = async (chatSDK, chatConfig, getAuthToken, isReco
|
|
|
32
36
|
});
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
|
-
|
|
36
39
|
return null;
|
|
37
|
-
};
|
|
38
|
-
|
|
40
|
+
};
|
|
39
41
|
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
43
|
const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
|
|
41
|
-
var _props$chatConfig
|
|
42
|
-
|
|
44
|
+
var _props$chatConfig;
|
|
43
45
|
let authClientFunction = undefined;
|
|
44
|
-
|
|
45
46
|
if ((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && _props$chatConfig.LiveChatConfigAuthSettings) {
|
|
46
47
|
var _props$chatConfig2, _props$chatConfig2$Li;
|
|
47
|
-
|
|
48
48
|
authClientFunction = ((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) === null || _props$chatConfig2$Li === void 0 ? void 0 : _props$chatConfig2$Li.msdyn_javascriptclientfunction) ?? undefined;
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
) {
|
|
55
|
-
var _props$reconnectChatP2;
|
|
56
|
-
|
|
57
|
-
const previousActiveSessionResponse = await getChatReconnectContext(chatSDK, props.chatConfig, props.getAuthToken, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled);
|
|
58
|
-
|
|
50
|
+
if (isReconnectEnabled(props.chatConfig) && authClientFunction
|
|
51
|
+
// TODO: Implement this after storage is in place
|
|
52
|
+
/* && !isLoadWithState() */) {
|
|
53
|
+
const previousActiveSessionResponse = await getChatReconnectContext(chatSDK, props.chatConfig, props.getAuthToken);
|
|
59
54
|
if (previousActiveSessionResponse && previousActiveSessionResponse.reconnectId) {
|
|
60
55
|
return previousActiveSessionResponse.reconnectId;
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
|
-
|
|
64
58
|
return undefined;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isReconnectEnabled, reconnectId, initStartChat, redirectInSameWindow) => {
|
|
69
|
-
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
|
|
59
|
+
};
|
|
70
60
|
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat, redirectInSameWindow) => {
|
|
63
|
+
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, reconnectId);
|
|
71
64
|
if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
72
65
|
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
|
|
73
66
|
} else {
|
|
74
67
|
await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
|
|
75
68
|
}
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const startUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isReconnectEnabled, reconnectId, initStartChat) => {
|
|
80
|
-
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
|
|
69
|
+
};
|
|
81
70
|
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
const startUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
|
|
73
|
+
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, reconnectId);
|
|
82
74
|
if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
83
75
|
await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
|
|
84
76
|
}
|
|
85
|
-
};
|
|
86
|
-
|
|
77
|
+
};
|
|
87
78
|
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
80
|
const setReconnectIdAndStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
|
|
89
81
|
const startUnauthenticatedReconnectChat = {
|
|
90
82
|
eventName: BroadcastEvent.StartUnauthenticatedReconnectChat
|
|
@@ -103,7 +95,6 @@ const setReconnectIdAndStartChat = async (chatSDK, chatConfig, getAuthToken, dis
|
|
|
103
95
|
});
|
|
104
96
|
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, optionalParams);
|
|
105
97
|
};
|
|
106
|
-
|
|
107
98
|
const redirectPage = (redirectURL, redirectInSameWindow) => {
|
|
108
99
|
const redirectPageRequest = {
|
|
109
100
|
eventName: BroadcastEvent.RedirectPageRequest,
|
|
@@ -112,26 +103,23 @@ const redirectPage = (redirectURL, redirectInSameWindow) => {
|
|
|
112
103
|
}
|
|
113
104
|
};
|
|
114
105
|
BroadcastService.postMessage(redirectPageRequest);
|
|
115
|
-
|
|
116
106
|
if (redirectInSameWindow) {
|
|
117
107
|
window.location.href = redirectURL;
|
|
118
108
|
}
|
|
119
109
|
};
|
|
120
|
-
|
|
121
110
|
const shouldRedirectOrStartNewChat = reconnectAvailabilityResponse => {
|
|
122
111
|
return reconnectAvailabilityResponse && !reconnectAvailabilityResponse.reconnectId;
|
|
123
|
-
};
|
|
124
|
-
|
|
112
|
+
};
|
|
125
113
|
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
115
|
const startNewChatEmptyRedirectionUrl = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat) => {
|
|
127
116
|
const startUnauthenticatedReconnectChat = {
|
|
128
117
|
eventName: BroadcastEvent.StartUnauthenticatedReconnectChat
|
|
129
118
|
};
|
|
130
|
-
BroadcastService.postMessage(startUnauthenticatedReconnectChat);
|
|
131
|
-
|
|
119
|
+
BroadcastService.postMessage(startUnauthenticatedReconnectChat);
|
|
120
|
+
// Getting PreChat Survey Context
|
|
132
121
|
const parseToJson = false;
|
|
133
122
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
134
|
-
|
|
135
123
|
if (preChatSurveyResponse) {
|
|
136
124
|
dispatch({
|
|
137
125
|
type: LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
@@ -148,18 +136,17 @@ const startNewChatEmptyRedirectionUrl = async (chatSDK, chatConfig, getAuthToken
|
|
|
148
136
|
});
|
|
149
137
|
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
|
|
150
138
|
}
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, isReconnectEnabled, reconnectId, redirectInSameWindow) => {
|
|
155
|
-
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
|
|
139
|
+
};
|
|
156
140
|
|
|
141
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
142
|
+
const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, reconnectId, redirectInSameWindow) => {
|
|
143
|
+
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, reconnectId);
|
|
157
144
|
if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
158
145
|
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
|
|
159
146
|
}
|
|
160
|
-
};
|
|
161
|
-
|
|
147
|
+
};
|
|
162
148
|
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
163
150
|
const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow) => {
|
|
164
151
|
if (reconnectAvailabilityResponse.redirectURL) {
|
|
165
152
|
redirectPage(reconnectAvailabilityResponse.redirectURL, redirectInSameWindow);
|
|
@@ -167,5 +154,4 @@ const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, ch
|
|
|
167
154
|
await startNewChatEmptyRedirectionUrl(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat);
|
|
168
155
|
}
|
|
169
156
|
};
|
|
170
|
-
|
|
171
|
-
export { getChatReconnectContext, getReconnectIdForAuthenticatedChat, handleUnauthenticatedReconnectChat, startUnauthenticatedReconnectChat, handleRedirectUnauthenticatedReconnectChat };
|
|
157
|
+
export { isReconnectEnabled, getChatReconnectContext, getReconnectIdForAuthenticatedChat, handleUnauthenticatedReconnectChat, startUnauthenticatedReconnectChat, handleRedirectUnauthenticatedReconnectChat };
|
|
@@ -6,27 +6,23 @@ import { defaultInternalTelemetryData } from "../../../common/telemetry/defaultC
|
|
|
6
6
|
import { defaultTelemetryConfiguration } from "../../../common/telemetry/defaultConfigs/defaultTelemetryConfiguration";
|
|
7
7
|
export const registerTelemetryLoggers = (props, dispatch) => {
|
|
8
8
|
var _props$liveChatContex, _props$liveChatContex2;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const telemetryConfig = {
|
|
10
|
+
...defaultTelemetryConfiguration,
|
|
11
11
|
...props.telemetryConfig
|
|
12
12
|
};
|
|
13
|
-
|
|
14
13
|
if ((_props$liveChatContex = props.liveChatContextFromCache) !== null && _props$liveChatContex !== void 0 && (_props$liveChatContex2 = _props$liveChatContex.domainStates) !== null && _props$liveChatContex2 !== void 0 && _props$liveChatContex2.telemetryInternalData) {
|
|
15
14
|
var _props$liveChatContex3, _props$liveChatContex4;
|
|
16
|
-
|
|
17
15
|
TelemetryManager.InternalTelemetryData = (_props$liveChatContex3 = props.liveChatContextFromCache) === null || _props$liveChatContex3 === void 0 ? void 0 : (_props$liveChatContex4 = _props$liveChatContex3.domainStates) === null || _props$liveChatContex4 === void 0 ? void 0 : _props$liveChatContex4.telemetryInternalData;
|
|
18
16
|
} else {
|
|
19
17
|
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$chatSDK3, _props$chatSDK3$omnic;
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
let telemetryData = {
|
|
19
|
+
...defaultInternalTelemetryData,
|
|
22
20
|
telemetryConfig: Object.assign({}, defaultTelemetryConfiguration, telemetryConfig),
|
|
23
21
|
ariaConfig: Object.assign({}, defaultAriaConfig, telemetryConfig === null || telemetryConfig === void 0 ? void 0 : telemetryConfig.ariaConfigurations)
|
|
24
22
|
};
|
|
25
|
-
|
|
26
23
|
if (props.chatConfig) {
|
|
27
24
|
telemetryData = TelemetryHelper.addChatConfigDataToTelemetry(props === null || props === void 0 ? void 0 : props.chatConfig, telemetryData);
|
|
28
25
|
}
|
|
29
|
-
|
|
30
26
|
telemetryData = TelemetryHelper.addWidgetDataToTelemetry(telemetryConfig, telemetryData);
|
|
31
27
|
telemetryData.OCChatSDKVersion = telemetryConfig.OCChatSDKVersion ?? "0.0.0-0";
|
|
32
28
|
telemetryData.chatComponentVersion = telemetryConfig.chatComponentVersion ?? "0.0.0-0";
|
|
@@ -40,6 +36,5 @@ export const registerTelemetryLoggers = (props, dispatch) => {
|
|
|
40
36
|
payload: telemetryData
|
|
41
37
|
});
|
|
42
38
|
}
|
|
43
|
-
|
|
44
39
|
RegisterLoggers();
|
|
45
40
|
};
|
|
@@ -2,8 +2,9 @@ import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryCon
|
|
|
2
2
|
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
3
3
|
import { ConversationState } from "../../../contexts/common/ConversationState";
|
|
4
4
|
import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
|
|
5
|
-
import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
5
|
+
import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
6
6
|
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
8
|
export const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
|
|
8
9
|
try {
|
|
9
10
|
if (!persistedChat) {
|
|
@@ -25,9 +26,9 @@ export const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persist
|
|
|
25
26
|
exception: ex
|
|
26
27
|
}
|
|
27
28
|
});
|
|
28
|
-
}
|
|
29
|
-
|
|
29
|
+
}
|
|
30
30
|
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
32
|
BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
|
|
32
33
|
dispatch({
|
|
33
34
|
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
@@ -1,34 +1,31 @@
|
|
|
1
1
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
2
|
export function shareObservable(observable) {
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
-
let observers = [];
|
|
4
|
+
let observers = [];
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
let subscription;
|
|
7
8
|
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
10
|
return new window.Observable(observer => {
|
|
9
11
|
if (!subscription) {
|
|
10
12
|
subscription = observable.subscribe({
|
|
11
13
|
complete() {
|
|
12
14
|
observers.forEach(observer => observer.complete());
|
|
13
15
|
},
|
|
14
|
-
|
|
15
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
17
|
error(err) {
|
|
17
18
|
observers.forEach(observer => observer.error(err));
|
|
18
19
|
},
|
|
19
|
-
|
|
20
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
21
|
next(value) {
|
|
22
22
|
observers.forEach(observer => observer.next(value));
|
|
23
23
|
}
|
|
24
|
-
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
|
-
|
|
28
26
|
observers.push(observer);
|
|
29
27
|
return () => {
|
|
30
28
|
observers = observers.filter(o => o !== observer);
|
|
31
|
-
|
|
32
29
|
if (!observers.length) {
|
|
33
30
|
subscription.unsubscribe();
|
|
34
31
|
subscription = null;
|
|
@@ -14,34 +14,33 @@ import { setPostChatContextAndLoadSurvey } from "./setPostChatContextAndLoadSurv
|
|
|
14
14
|
import { updateSessionDataForTelemetry } from "./updateSessionDataForTelemetry";
|
|
15
15
|
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
16
16
|
import { ActivityStreamHandler } from "./ActivityStreamHandler";
|
|
17
|
-
import { getAuthClientFunction, handleAuthentication } from "./authHelper";
|
|
17
|
+
import { getAuthClientFunction, handleAuthentication } from "./authHelper";
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
let optionalParams = {};
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
let widgetInstanceId;
|
|
22
23
|
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
25
|
const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
24
26
|
var _props$controlProps, _props$reconnectChatP;
|
|
25
|
-
|
|
26
27
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
28
|
+
widgetInstanceId = props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId;
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
// Can connect to existing chat session
|
|
30
31
|
if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
|
|
31
32
|
return;
|
|
32
|
-
}
|
|
33
|
-
|
|
33
|
+
}
|
|
34
34
|
|
|
35
|
+
// Redirecting if unauthenticated reconnect chat expired
|
|
35
36
|
if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
36
|
-
var _props$reconnectChatP2, _props$reconnectChatP3
|
|
37
|
-
|
|
38
|
-
await 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);
|
|
37
|
+
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
38
|
+
await handleRedirectUnauthenticatedReconnectChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.redirectInSameWindow);
|
|
39
39
|
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
40
|
+
}
|
|
42
41
|
|
|
42
|
+
// Getting reconnectId for authenticated chat
|
|
43
43
|
const reconnectId = await getReconnectIdForAuthenticatedChat(props, chatSDK);
|
|
44
|
-
|
|
45
44
|
if (reconnectId) {
|
|
46
45
|
dispatch({
|
|
47
46
|
type: LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
@@ -52,22 +51,22 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
52
51
|
payload: ConversationState.ReconnectChat
|
|
53
52
|
});
|
|
54
53
|
return;
|
|
55
|
-
}
|
|
56
|
-
|
|
54
|
+
}
|
|
57
55
|
|
|
56
|
+
// Setting Proactive chat settings
|
|
58
57
|
const isProactiveChat = state.appStates.conversationState === ConversationState.ProactiveChat;
|
|
59
|
-
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
58
|
+
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
60
59
|
|
|
60
|
+
//Setting PreChat and intiate chat
|
|
61
61
|
setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
|
|
62
|
-
};
|
|
63
|
-
|
|
62
|
+
};
|
|
64
63
|
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
65
|
const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
|
|
66
66
|
// Getting prechat Survey Context
|
|
67
67
|
const parseToJson = false;
|
|
68
68
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
69
69
|
const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse;
|
|
70
|
-
|
|
71
70
|
if (showPrechat) {
|
|
72
71
|
dispatch({
|
|
73
72
|
type: LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
@@ -78,37 +77,33 @@ const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, disp
|
|
|
78
77
|
payload: ConversationState.Prechat
|
|
79
78
|
});
|
|
80
79
|
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
80
|
+
}
|
|
83
81
|
|
|
82
|
+
//Initiate start chat
|
|
84
83
|
dispatch({
|
|
85
84
|
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
86
85
|
payload: ConversationState.Loading
|
|
87
86
|
});
|
|
88
87
|
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
|
|
89
|
-
};
|
|
90
|
-
|
|
88
|
+
};
|
|
91
89
|
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
91
|
const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
|
|
93
92
|
try {
|
|
94
93
|
var _newAdapter$activity$, _TelemetryTimers$Widg;
|
|
95
|
-
|
|
96
94
|
const authClientFunction = getAuthClientFunction(chatConfig);
|
|
97
|
-
|
|
98
95
|
if (getAuthToken && authClientFunction) {
|
|
99
96
|
// set auth token to chat sdk before start chat
|
|
100
97
|
const authSuccess = await handleAuthentication(chatSDK, chatConfig, getAuthToken);
|
|
101
|
-
|
|
102
98
|
if (!authSuccess) {
|
|
103
99
|
return;
|
|
104
100
|
}
|
|
105
101
|
}
|
|
102
|
+
let isStartChatSuccessful = false;
|
|
106
103
|
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
//Check if chat retrieved from cache
|
|
109
105
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
110
106
|
var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
|
|
111
|
-
|
|
112
107
|
BroadcastService.postMessage({
|
|
113
108
|
eventName: BroadcastEvent.ChatRetrievedFromCache,
|
|
114
109
|
payload: {
|
|
@@ -117,14 +112,14 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
117
112
|
}
|
|
118
113
|
});
|
|
119
114
|
}
|
|
120
|
-
|
|
121
115
|
try {
|
|
122
116
|
//Start widget load timer
|
|
123
117
|
TelemetryTimers.WidgetLoadTimer = createTimer();
|
|
124
118
|
TelemetryHelper.logSDKEvent(LogLevel.INFO, {
|
|
125
119
|
Event: TelemetryEvent.StartChatSDKCall
|
|
126
|
-
});
|
|
120
|
+
});
|
|
127
121
|
|
|
122
|
+
// Set custom context params
|
|
128
123
|
setCustomContextParams(chatSDK);
|
|
129
124
|
optionalParams = Object.assign({}, params, optionalParams);
|
|
130
125
|
await chatSDK.startChat(optionalParams);
|
|
@@ -136,17 +131,17 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
136
131
|
exception: `Failed to setup startChat: ${error}`
|
|
137
132
|
}
|
|
138
133
|
});
|
|
139
|
-
isStartChatSuccessful = false;
|
|
134
|
+
isStartChatSuccessful = false;
|
|
135
|
+
// Resetting the widget state to Closed, for recent introduction of OC rate limiting(429 Error)
|
|
140
136
|
// TODO : How to diplay a proper UI message to customer to try after sometime at this point - cool down scenario
|
|
141
|
-
|
|
142
137
|
dispatch({
|
|
143
138
|
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
144
139
|
payload: ConversationState.Closed
|
|
145
140
|
});
|
|
146
141
|
return;
|
|
147
|
-
}
|
|
148
|
-
|
|
142
|
+
}
|
|
149
143
|
|
|
144
|
+
// New adapter creation
|
|
150
145
|
const newAdapter = await createAdapter(chatSDK);
|
|
151
146
|
setAdapter(newAdapter);
|
|
152
147
|
const chatToken = await chatSDK.getChatToken();
|
|
@@ -155,7 +150,6 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
155
150
|
payload: chatToken
|
|
156
151
|
});
|
|
157
152
|
newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe(createOnNewAdapterActivityHandler(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
|
|
158
|
-
|
|
159
153
|
if (persistedState) {
|
|
160
154
|
dispatch({
|
|
161
155
|
type: LiveChatWidgetActionType.SET_WIDGET_STATE,
|
|
@@ -163,19 +157,22 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
163
157
|
});
|
|
164
158
|
await setPostChatContextAndLoadSurvey(chatSDK, dispatch, true);
|
|
165
159
|
return;
|
|
166
|
-
}
|
|
167
|
-
|
|
160
|
+
}
|
|
168
161
|
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
169
163
|
const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
|
|
170
164
|
dispatch({
|
|
171
165
|
type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
|
|
172
166
|
payload: liveChatContext
|
|
173
|
-
});
|
|
167
|
+
});
|
|
174
168
|
|
|
175
|
-
|
|
169
|
+
// Set post chat context in state, no survey load
|
|
170
|
+
setPostChatContextAndLoadSurvey(chatSDK, dispatch);
|
|
176
171
|
|
|
177
|
-
|
|
172
|
+
// Updating chat session detail for telemetry
|
|
173
|
+
await updateSessionDataForTelemetry(chatSDK, dispatch);
|
|
178
174
|
|
|
175
|
+
// Set app state to Active
|
|
179
176
|
if (isStartChatSuccessful) {
|
|
180
177
|
ActivityStreamHandler.uncork();
|
|
181
178
|
dispatch({
|
|
@@ -183,7 +180,6 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
183
180
|
payload: ConversationState.Active
|
|
184
181
|
});
|
|
185
182
|
}
|
|
186
|
-
|
|
187
183
|
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
188
184
|
Event: TelemetryEvent.WidgetLoadComplete,
|
|
189
185
|
Description: "Widget load complete",
|
|
@@ -196,8 +192,8 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
196
192
|
Exception: `Widget load Failed: ${ex}`
|
|
197
193
|
}
|
|
198
194
|
});
|
|
199
|
-
NotificationHandler.notifyError(NotificationScenarios.Connection, "Start Chat Failed: " + ex);
|
|
200
|
-
|
|
195
|
+
NotificationHandler.notifyError(NotificationScenarios.Connection, "Start Chat Failed: " + ex);
|
|
196
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
201
197
|
if (ex.message === ChatSDKError.WidgetUseOutsideOperatingHour) {
|
|
202
198
|
dispatch({
|
|
203
199
|
type: LiveChatWidgetActionType.SET_OUTSIDE_OPERATING_HOURS,
|
|
@@ -212,22 +208,20 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
212
208
|
optionalParams = {};
|
|
213
209
|
widgetInstanceId = "";
|
|
214
210
|
}
|
|
215
|
-
};
|
|
216
|
-
|
|
211
|
+
};
|
|
217
212
|
|
|
213
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
218
214
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
219
215
|
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
|
|
220
|
-
|
|
221
216
|
// By pass this function in case of popout chat
|
|
222
217
|
if (state.appStates.skipChatButtonRendering === true) {
|
|
223
218
|
return false;
|
|
224
219
|
}
|
|
220
|
+
const persistedState = 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) ?? "");
|
|
225
221
|
|
|
226
|
-
|
|
227
|
-
|
|
222
|
+
//Connect to only active chat session
|
|
228
223
|
if (persistedState && !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.Active) {
|
|
229
224
|
var _persistedState$domai7;
|
|
230
|
-
|
|
231
225
|
dispatch({
|
|
232
226
|
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
233
227
|
payload: ConversationState.Loading
|
|
@@ -240,18 +234,15 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
240
234
|
} else {
|
|
241
235
|
return false;
|
|
242
236
|
}
|
|
243
|
-
};
|
|
244
|
-
|
|
237
|
+
};
|
|
245
238
|
|
|
239
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
246
240
|
const setCustomContextParams = chatSDK => {
|
|
247
241
|
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
|
|
248
|
-
|
|
249
242
|
// Add custom context only for unauthenticated chat
|
|
250
243
|
const persistedState = 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 ?? "");
|
|
251
|
-
|
|
252
244
|
if (!isUndefinedOrEmpty(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
|
|
253
245
|
var _persistedState$domai9, _persistedState$domai10;
|
|
254
|
-
|
|
255
246
|
if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
|
|
256
247
|
const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
|
|
257
248
|
TelemetryHelper.logSDKEvent(LogLevel.WARN, {
|
|
@@ -262,11 +253,9 @@ const setCustomContextParams = chatSDK => {
|
|
|
262
253
|
});
|
|
263
254
|
throw new Error(errorMessage);
|
|
264
255
|
}
|
|
265
|
-
|
|
266
256
|
optionalParams = Object.assign({}, optionalParams, {
|
|
267
257
|
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
|
|
268
258
|
});
|
|
269
259
|
}
|
|
270
260
|
};
|
|
271
|
-
|
|
272
261
|
export { prepareStartChat, initStartChat, setPreChatAndInitiateChat };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
|
|
2
2
|
import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
3
|
-
import { TelemetryManager } from "../../../common/telemetry/TelemetryManager";
|
|
3
|
+
import { TelemetryManager } from "../../../common/telemetry/TelemetryManager";
|
|
4
4
|
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
6
|
export const updateSessionDataForTelemetry = async (chatSDK, dispatch) => {
|
|
6
7
|
if (chatSDK) {
|
|
7
8
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -13,8 +14,9 @@ export const updateSessionDataForTelemetry = async (chatSDK, dispatch) => {
|
|
|
13
14
|
});
|
|
14
15
|
await updateConversationDataForTelemetry(chatSDK, dispatch);
|
|
15
16
|
}
|
|
16
|
-
};
|
|
17
|
+
};
|
|
17
18
|
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
20
|
const updateConversationDataForTelemetry = async (chatSDK, dispatch) => {
|
|
19
21
|
if (chatSDK) {
|
|
20
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|