@microsoft/omnichannel-chat-widget 0.1.0-main.eb80fb1 → 0.1.0-main.ec08ec5
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/README.md +35 -11
- package/lib/cjs/common/Constants.js +31 -150
- 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 +24 -0
- package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
- package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +79 -24
- package/lib/cjs/common/telemetry/TelemetryHelper.js +26 -54
- package/lib/cjs/common/telemetry/TelemetryManager.js +14 -34
- package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
- package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
- package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
- package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
- package/lib/cjs/common/utils.js +80 -80
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -70
- package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
- package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
- package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
- package/lib/cjs/components/headerstateful/HeaderStateful.js +23 -34
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +37 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +18 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +32 -0
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +62 -0
- package/lib/cjs/components/livechatwidget/common/Deferred.js +35 -0
- package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
- package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
- package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
- package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -44
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +73 -52
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +127 -61
- package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
- package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
- package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +58 -54
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +131 -56
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -15
- package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
- package/lib/cjs/components/livechatwidget/common/startChat.js +157 -77
- 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 +287 -139
- 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 +9 -14
- 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 +11 -44
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -35
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -24
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
- package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -15
- 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/interfaces/IAdaptiveCardStyles.js +1 -0
- package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +10 -0
- 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 +33 -80
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -60
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
- 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 +89 -0
- 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 +7 -18
- 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 +33 -0
- 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 +4 -3
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +11 -9
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -10
- package/lib/cjs/contexts/createReducer.js +150 -107
- package/lib/cjs/controller/componentController.js +5 -34
- 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 +78 -0
- package/lib/esm/common/Constants.js +28 -138
- 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 +16 -0
- package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
- package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +78 -19
- package/lib/esm/common/telemetry/TelemetryHelper.js +27 -44
- package/lib/esm/common/telemetry/TelemetryManager.js +14 -23
- package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
- package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
- package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
- package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
- package/lib/esm/common/utils.js +73 -45
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +13 -46
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
- package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
- package/lib/esm/components/headerstateful/HeaderStateful.js +24 -20
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +30 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +11 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +25 -0
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +55 -0
- package/lib/esm/components/livechatwidget/common/Deferred.js +28 -0
- package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
- package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
- package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
- package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
- package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +75 -40
- package/lib/esm/components/livechatwidget/common/endChat.js +131 -50
- package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
- package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
- package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +60 -26
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +129 -50
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -6
- package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
- package/lib/esm/components/livechatwidget/common/startChat.js +161 -61
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +293 -94
- 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 +9 -4
- 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 +15 -29
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +24 -12
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -11
- 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/interfaces/IAdaptiveCardStyles.js +1 -0
- package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -0
- 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 +34 -66
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
- 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 +83 -0
- 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 +9 -14
- 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 +27 -0
- 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 +4 -3
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +11 -9
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -6
- package/lib/esm/contexts/createReducer.js +150 -103
- package/lib/esm/controller/componentController.js +6 -5
- 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 +71 -0
- package/lib/types/common/Constants.d.ts +27 -2
- package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
- package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
- package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
- package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +53 -6
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
- package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
- package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
- package/lib/types/common/utils.d.ts +8 -1
- package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
- package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
- package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
- package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
- package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +7 -2
- package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
- package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -3
- 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 +1 -2
- package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.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/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
- package/lib/types/contexts/common/ConversationState.d.ts +4 -2
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -2
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +12 -9
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
- package/package.json +12 -13
|
@@ -1,237 +1,284 @@
|
|
|
1
1
|
/* eslint-disable indent */
|
|
2
|
+
|
|
2
3
|
import { LiveChatWidgetActionType } from "./common/LiveChatWidgetActionType";
|
|
3
|
-
import { TelemetryManager } from "../common/telemetry/TelemetryManager";
|
|
4
4
|
export const createReducer = () => {
|
|
5
5
|
const reducer = (state, action) => {
|
|
6
6
|
var _action$payload, _action$payload2, _action$payload3;
|
|
7
|
-
|
|
8
7
|
switch (action.type) {
|
|
9
8
|
case LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID:
|
|
10
|
-
return {
|
|
11
|
-
|
|
9
|
+
return {
|
|
10
|
+
...state,
|
|
11
|
+
domainStates: {
|
|
12
|
+
...state.domainStates,
|
|
12
13
|
widgetElementId: action.payload
|
|
13
14
|
}
|
|
14
15
|
};
|
|
15
|
-
|
|
16
16
|
case LiveChatWidgetActionType.SET_RENDERING_MIDDLEWARE_PROPS:
|
|
17
|
-
return {
|
|
18
|
-
|
|
17
|
+
return {
|
|
18
|
+
...state,
|
|
19
|
+
domainStates: {
|
|
20
|
+
...state.domainStates,
|
|
19
21
|
renderingMiddlewareProps: action.payload
|
|
20
22
|
}
|
|
21
23
|
};
|
|
22
|
-
|
|
23
24
|
case LiveChatWidgetActionType.SET_MIDDLEWARE_LOCALIZED_TEXTS:
|
|
24
|
-
return {
|
|
25
|
-
|
|
25
|
+
return {
|
|
26
|
+
...state,
|
|
27
|
+
domainStates: {
|
|
28
|
+
...state.domainStates,
|
|
26
29
|
middlewareLocalizedTexts: action.payload
|
|
27
30
|
}
|
|
28
31
|
};
|
|
29
|
-
|
|
30
32
|
case LiveChatWidgetActionType.SET_GLOBAL_DIR:
|
|
31
|
-
return {
|
|
32
|
-
|
|
33
|
+
return {
|
|
34
|
+
...state,
|
|
35
|
+
domainStates: {
|
|
36
|
+
...state.domainStates,
|
|
33
37
|
globalDir: action.payload === "ltr" || action.payload === "rtl" ? action.payload : "ltr"
|
|
34
38
|
}
|
|
35
39
|
};
|
|
36
|
-
|
|
37
40
|
case LiveChatWidgetActionType.SET_MINIMIZED:
|
|
38
|
-
return {
|
|
39
|
-
|
|
41
|
+
return {
|
|
42
|
+
...state,
|
|
43
|
+
appStates: {
|
|
44
|
+
...state.appStates,
|
|
40
45
|
isMinimized: action.payload
|
|
41
46
|
}
|
|
42
47
|
};
|
|
43
|
-
|
|
44
48
|
case LiveChatWidgetActionType.SET_CONVERSATION_STATE:
|
|
45
|
-
return {
|
|
46
|
-
|
|
49
|
+
return {
|
|
50
|
+
...state,
|
|
51
|
+
appStates: {
|
|
52
|
+
...state.appStates,
|
|
47
53
|
conversationState: action.payload
|
|
48
54
|
}
|
|
49
55
|
};
|
|
50
|
-
|
|
51
56
|
case LiveChatWidgetActionType.SET_OUTSIDE_OPERATING_HOURS:
|
|
52
|
-
return {
|
|
53
|
-
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
59
|
+
appStates: {
|
|
60
|
+
...state.appStates,
|
|
54
61
|
outsideOperatingHours: action.payload
|
|
55
62
|
}
|
|
56
63
|
};
|
|
57
|
-
|
|
58
64
|
case LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE:
|
|
59
|
-
return {
|
|
60
|
-
|
|
65
|
+
return {
|
|
66
|
+
...state,
|
|
67
|
+
domainStates: {
|
|
68
|
+
...state.domainStates,
|
|
61
69
|
preChatSurveyResponse: action.payload
|
|
62
70
|
}
|
|
63
71
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
case LiveChatWidgetActionType.SET_CUSTOM_CONTEXT:
|
|
73
|
+
return {
|
|
74
|
+
...state,
|
|
75
|
+
domainStates: {
|
|
76
|
+
...state.domainStates,
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
78
|
+
customContext: action.payload
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
case LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID:
|
|
82
|
+
return {
|
|
83
|
+
...state,
|
|
84
|
+
appStates: {
|
|
85
|
+
...state.appStates,
|
|
86
|
+
previousElementIdOnFocusBeforeModalOpen: action.payload
|
|
69
87
|
}
|
|
70
88
|
};
|
|
71
|
-
|
|
72
89
|
case LiveChatWidgetActionType.SET_SHOW_CONFIRMATION:
|
|
73
|
-
return {
|
|
74
|
-
|
|
90
|
+
return {
|
|
91
|
+
...state,
|
|
92
|
+
uiStates: {
|
|
93
|
+
...state.uiStates,
|
|
75
94
|
showConfirmationPane: action.payload
|
|
76
95
|
}
|
|
77
96
|
};
|
|
78
|
-
|
|
79
97
|
case LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT:
|
|
80
|
-
return {
|
|
81
|
-
|
|
98
|
+
return {
|
|
99
|
+
...state,
|
|
100
|
+
domainStates: {
|
|
101
|
+
...state.domainStates,
|
|
82
102
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
103
|
postChatContext: action.payload
|
|
84
104
|
}
|
|
85
105
|
};
|
|
86
|
-
|
|
87
|
-
case LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT:
|
|
88
|
-
return { ...state,
|
|
89
|
-
appStates: { ...state.appStates,
|
|
90
|
-
shouldShowPostChat: action.payload
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
|
|
94
106
|
case LiveChatWidgetActionType.SHOW_CALLING_CONTAINER:
|
|
95
|
-
return {
|
|
96
|
-
|
|
107
|
+
return {
|
|
108
|
+
...state,
|
|
109
|
+
uiStates: {
|
|
110
|
+
...state.uiStates,
|
|
97
111
|
showCallingPopup: action.payload
|
|
98
112
|
}
|
|
99
113
|
};
|
|
100
|
-
|
|
101
114
|
case LiveChatWidgetActionType.SET_INCOMING_CALL:
|
|
102
|
-
return {
|
|
103
|
-
|
|
115
|
+
return {
|
|
116
|
+
...state,
|
|
117
|
+
uiStates: {
|
|
118
|
+
...state.uiStates,
|
|
104
119
|
isIncomingCall: action.payload
|
|
105
120
|
}
|
|
106
121
|
};
|
|
107
|
-
|
|
108
122
|
case LiveChatWidgetActionType.SET_FOCUS_CHAT_BUTTON:
|
|
109
|
-
return {
|
|
110
|
-
|
|
123
|
+
return {
|
|
124
|
+
...state,
|
|
125
|
+
uiStates: {
|
|
126
|
+
...state.uiStates,
|
|
111
127
|
focusChatButton: action.payload
|
|
112
128
|
}
|
|
113
129
|
};
|
|
114
|
-
|
|
115
130
|
case LiveChatWidgetActionType.DISABLE_VIDEO_CALL:
|
|
116
|
-
return {
|
|
117
|
-
|
|
131
|
+
return {
|
|
132
|
+
...state,
|
|
133
|
+
uiStates: {
|
|
134
|
+
...state.uiStates,
|
|
118
135
|
disableVideoCall: action.payload
|
|
119
136
|
}
|
|
120
137
|
};
|
|
121
|
-
|
|
122
138
|
case LiveChatWidgetActionType.DISABLE_LOCAL_VIDEO:
|
|
123
|
-
return {
|
|
124
|
-
|
|
139
|
+
return {
|
|
140
|
+
...state,
|
|
141
|
+
uiStates: {
|
|
142
|
+
...state.uiStates,
|
|
125
143
|
disableSelfVideo: action.payload
|
|
126
144
|
}
|
|
127
145
|
};
|
|
128
|
-
|
|
129
146
|
case LiveChatWidgetActionType.DISABLE_REMOTE_VIDEO:
|
|
130
|
-
return {
|
|
131
|
-
|
|
147
|
+
return {
|
|
148
|
+
...state,
|
|
149
|
+
uiStates: {
|
|
150
|
+
...state.uiStates,
|
|
132
151
|
disableRemoteVideo: action.payload
|
|
133
152
|
}
|
|
134
153
|
};
|
|
135
|
-
|
|
136
154
|
case LiveChatWidgetActionType.SET_CHAT_TOKEN:
|
|
137
|
-
return {
|
|
138
|
-
|
|
155
|
+
return {
|
|
156
|
+
...state,
|
|
157
|
+
domainStates: {
|
|
158
|
+
...state.domainStates,
|
|
139
159
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
140
160
|
chatToken: action.payload
|
|
141
161
|
}
|
|
142
162
|
};
|
|
143
|
-
|
|
144
163
|
case LiveChatWidgetActionType.SET_SHOW_EMAIL_TRANSCRIPT_PANE:
|
|
145
|
-
return {
|
|
146
|
-
|
|
164
|
+
return {
|
|
165
|
+
...state,
|
|
166
|
+
uiStates: {
|
|
167
|
+
...state.uiStates,
|
|
147
168
|
showEmailTranscriptPane: action.payload
|
|
148
169
|
}
|
|
149
170
|
};
|
|
150
|
-
|
|
151
171
|
case LiveChatWidgetActionType.SET_PRECHAT_RESPONSE_EMAIL:
|
|
152
|
-
return {
|
|
153
|
-
|
|
172
|
+
return {
|
|
173
|
+
...state,
|
|
174
|
+
appStates: {
|
|
175
|
+
...state.appStates,
|
|
154
176
|
preChatResponseEmail: action.payload
|
|
155
177
|
}
|
|
156
178
|
};
|
|
157
|
-
|
|
158
179
|
case LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION:
|
|
159
|
-
return {
|
|
160
|
-
|
|
180
|
+
return {
|
|
181
|
+
...state,
|
|
182
|
+
appStates: {
|
|
183
|
+
...state.appStates,
|
|
161
184
|
isAudioMuted: action.payload
|
|
162
185
|
}
|
|
163
186
|
};
|
|
164
|
-
|
|
165
187
|
case LiveChatWidgetActionType.SET_E2VV_ENABLED:
|
|
166
|
-
return {
|
|
167
|
-
|
|
188
|
+
return {
|
|
189
|
+
...state,
|
|
190
|
+
appStates: {
|
|
191
|
+
...state.appStates,
|
|
168
192
|
e2vvEnabled: action.payload
|
|
169
193
|
}
|
|
170
194
|
};
|
|
171
|
-
|
|
172
195
|
case LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING:
|
|
173
|
-
return {
|
|
174
|
-
|
|
196
|
+
return {
|
|
197
|
+
...state,
|
|
198
|
+
appStates: {
|
|
199
|
+
...state.appStates,
|
|
175
200
|
skipChatButtonRendering: action.payload
|
|
176
201
|
}
|
|
177
202
|
};
|
|
178
|
-
|
|
179
203
|
case LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS:
|
|
180
|
-
return {
|
|
181
|
-
|
|
182
|
-
|
|
204
|
+
return {
|
|
205
|
+
...state,
|
|
206
|
+
appStates: {
|
|
207
|
+
...state.appStates,
|
|
208
|
+
proactiveChatStates: {
|
|
209
|
+
...state.appStates.proactiveChatStates,
|
|
183
210
|
proactiveChatBodyTitle: (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.proactiveChatBodyTitle,
|
|
184
211
|
proactiveChatEnablePrechat: (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : _action$payload2.proactiveChatEnablePrechat,
|
|
185
212
|
proactiveChatInNewWindow: (_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : _action$payload3.proactiveChatInNewWindow
|
|
186
213
|
}
|
|
187
214
|
}
|
|
188
215
|
};
|
|
189
|
-
|
|
190
216
|
case LiveChatWidgetActionType.SET_TELEMETRY_DATA:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
domainStates: {
|
|
217
|
+
return {
|
|
218
|
+
...state,
|
|
219
|
+
domainStates: {
|
|
220
|
+
...state.domainStates,
|
|
194
221
|
telemetryInternalData: action.payload
|
|
195
222
|
}
|
|
196
223
|
};
|
|
197
|
-
|
|
198
224
|
case LiveChatWidgetActionType.SET_RECONNECT_ID:
|
|
199
|
-
return {
|
|
200
|
-
|
|
225
|
+
return {
|
|
226
|
+
...state,
|
|
227
|
+
appStates: {
|
|
228
|
+
...state.appStates,
|
|
201
229
|
reconnectId: action.payload
|
|
202
230
|
}
|
|
203
231
|
};
|
|
204
|
-
|
|
205
232
|
case LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT:
|
|
206
|
-
return {
|
|
207
|
-
|
|
233
|
+
return {
|
|
234
|
+
...state,
|
|
235
|
+
appStates: {
|
|
236
|
+
...state.appStates,
|
|
208
237
|
unreadMessageCount: action.payload
|
|
209
238
|
}
|
|
210
239
|
};
|
|
211
|
-
|
|
212
240
|
case LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT:
|
|
213
|
-
return {
|
|
214
|
-
|
|
241
|
+
return {
|
|
242
|
+
...state,
|
|
243
|
+
domainStates: {
|
|
244
|
+
...state.domainStates,
|
|
215
245
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
216
246
|
liveChatContext: action.payload
|
|
217
247
|
}
|
|
218
248
|
};
|
|
219
|
-
|
|
220
249
|
case LiveChatWidgetActionType.SET_WIDGET_STATE:
|
|
221
|
-
return {
|
|
250
|
+
return {
|
|
251
|
+
...action.payload
|
|
222
252
|
};
|
|
223
|
-
|
|
224
253
|
case LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT:
|
|
225
|
-
return {
|
|
226
|
-
|
|
254
|
+
return {
|
|
255
|
+
...state,
|
|
256
|
+
appStates: {
|
|
257
|
+
...state.appStates,
|
|
227
258
|
conversationEndedByAgent: action.payload
|
|
228
259
|
}
|
|
229
260
|
};
|
|
230
|
-
|
|
261
|
+
case LiveChatWidgetActionType.SET_WIDGET_SIZE:
|
|
262
|
+
return {
|
|
263
|
+
...state,
|
|
264
|
+
domainStates: {
|
|
265
|
+
...state.domainStates,
|
|
266
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
267
|
+
widgetSize: action.payload
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
case LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID:
|
|
271
|
+
return {
|
|
272
|
+
...state,
|
|
273
|
+
domainStates: {
|
|
274
|
+
...state.domainStates,
|
|
275
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
276
|
+
widgetInstanceId: action.payload
|
|
277
|
+
}
|
|
278
|
+
};
|
|
231
279
|
default:
|
|
232
280
|
return state;
|
|
233
281
|
}
|
|
234
282
|
};
|
|
235
|
-
|
|
236
283
|
return reducer;
|
|
237
284
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ConversationState } from "../contexts/common/ConversationState";
|
|
2
2
|
export const shouldShowChatButton = state => {
|
|
3
|
-
return state.appStates.isMinimized || state.appStates.conversationState === ConversationState.Closed;
|
|
3
|
+
return (state.appStates.isMinimized || state.appStates.conversationState === ConversationState.Closed) && state.appStates.skipChatButtonRendering == false; // Do not show chat button in case of popout
|
|
4
4
|
};
|
|
5
|
+
|
|
5
6
|
export const shouldShowProactiveChatPane = state => {
|
|
6
7
|
return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.ProactiveChat;
|
|
7
8
|
};
|
|
@@ -9,22 +10,22 @@ export const shouldShowHeader = state => {
|
|
|
9
10
|
return !state.appStates.isMinimized && state.appStates.conversationState !== ConversationState.Closed && state.appStates.conversationState !== ConversationState.ProactiveChat;
|
|
10
11
|
};
|
|
11
12
|
export const shouldShowFooter = state => {
|
|
12
|
-
return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Active;
|
|
13
|
+
return !state.appStates.isMinimized && (state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive || state.appStates.conversationState === ConversationState.Postchat);
|
|
13
14
|
};
|
|
14
15
|
export const shouldShowEmailTranscriptPane = state => {
|
|
15
16
|
return state.uiStates.showEmailTranscriptPane;
|
|
16
17
|
};
|
|
17
18
|
export const shouldShowWebChatContainer = state => {
|
|
18
|
-
return state.appStates.conversationState === ConversationState.Active;
|
|
19
|
+
return state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive;
|
|
19
20
|
};
|
|
20
21
|
export const shouldShowLoadingPane = state => {
|
|
21
|
-
return !state.appStates.isMinimized &&
|
|
22
|
+
return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Loading;
|
|
22
23
|
};
|
|
23
24
|
export const shouldShowReconnectChatPane = state => {
|
|
24
25
|
return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.ReconnectChat;
|
|
25
26
|
};
|
|
26
27
|
export const shouldShowPostChatLoadingPane = state => {
|
|
27
|
-
return !state.appStates.isMinimized && state.appStates.
|
|
28
|
+
return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.PostchatLoading;
|
|
28
29
|
};
|
|
29
30
|
export const shouldShowOutOfOfficeHoursPane = state => {
|
|
30
31
|
return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.OutOfOffice;
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { ChatAdapterStore } from "../contexts/ChatAdapterStore";
|
|
2
2
|
import { useContext } from "react";
|
|
3
|
-
|
|
4
3
|
const useChatAdapterStore = () => {
|
|
5
4
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
5
|
const adapter = useContext(ChatAdapterStore);
|
|
7
|
-
|
|
8
6
|
if (!adapter) {
|
|
9
7
|
throw new Error("This hook can only be used on component that is descendants of <ChatAdapterStore.Provider>");
|
|
10
8
|
}
|
|
11
|
-
|
|
12
9
|
return adapter;
|
|
13
10
|
};
|
|
14
|
-
|
|
15
11
|
export default useChatAdapterStore;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { useContext } from "react";
|
|
2
2
|
import { ChatContextStore } from "../contexts/ChatContextStore";
|
|
3
|
-
|
|
4
3
|
const useChatContextStore = () => {
|
|
5
4
|
const context = useContext(ChatContextStore);
|
|
6
|
-
|
|
7
5
|
if (!context) {
|
|
8
6
|
throw new Error("This hook can only be used on component that is descendants of <ChatContextStore.Provider>");
|
|
9
7
|
}
|
|
10
|
-
|
|
11
8
|
return context;
|
|
12
9
|
};
|
|
13
|
-
|
|
14
10
|
export default useChatContextStore;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { ChatSDKStore } from "../contexts/ChatSDKStore";
|
|
2
2
|
import { useContext } from "react";
|
|
3
|
-
|
|
4
3
|
const useChatSDKStore = () => {
|
|
5
4
|
const sdk = useContext(ChatSDKStore);
|
|
6
|
-
|
|
7
5
|
if (!sdk) {
|
|
8
6
|
throw new Error("This hook is not called on component that is descendants of <ChatSDKStore.Provider>, or ChatSDK is not passed into LiveChatWidget component.");
|
|
9
7
|
}
|
|
10
|
-
|
|
11
8
|
return sdk;
|
|
12
9
|
};
|
|
13
|
-
|
|
14
10
|
export default useChatSDKStore;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BroadcastEvent, LogLevel, TelemetryEvent } from "../common/telemetry/TelemetryConstants";
|
|
2
|
+
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
3
|
+
import { Constants } from "../common/Constants";
|
|
4
|
+
import { TelemetryHelper } from "../common/telemetry/TelemetryHelper";
|
|
5
|
+
export const createOnNewAdapterActivityHandler = (chatId, userId) => {
|
|
6
|
+
const onNewAdapterActivityHandler = activity => {
|
|
7
|
+
var _activity$channelData, _activity$channelData2, _activity$channelData3;
|
|
8
|
+
const isActivityMessage = (activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message;
|
|
9
|
+
const isHistoryMessage = isActivityMessage && ((activity === null || activity === void 0 ? void 0 : (_activity$channelData = activity.channelData) === null || _activity$channelData === void 0 ? void 0 : (_activity$channelData2 = _activity$channelData.tags) === null || _activity$channelData2 === void 0 ? void 0 : _activity$channelData2.includes(Constants.historyMessageTag)) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData3 = activity.channelData) === null || _activity$channelData3 === void 0 ? void 0 : _activity$channelData3.fromList));
|
|
10
|
+
raiseMessageEvent(activity, isHistoryMessage);
|
|
11
|
+
};
|
|
12
|
+
const raiseMessageEvent = (activity, isHistoryMessage) => {
|
|
13
|
+
if ((activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message) {
|
|
14
|
+
var _text, _text2, _activity$channelData4, _activity$from;
|
|
15
|
+
const payload = {
|
|
16
|
+
// To identify hidden contents vs empty content
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
text: (activity === null || activity === void 0 ? void 0 : (_text = activity.text) === null || _text === void 0 ? void 0 : _text.length) >= 1 ? `*contents hidden (${activity === null || activity === void 0 ? void 0 : (_text2 = activity.text) === null || _text2 === void 0 ? void 0 : _text2.length} chars)*` : "",
|
|
19
|
+
type: activity === null || activity === void 0 ? void 0 : activity.type,
|
|
20
|
+
timestamp: activity === null || activity === void 0 ? void 0 : activity.timestamp,
|
|
21
|
+
userId: userId,
|
|
22
|
+
tags: activity === null || activity === void 0 ? void 0 : (_activity$channelData4 = activity.channelData) === null || _activity$channelData4 === void 0 ? void 0 : _activity$channelData4.tags,
|
|
23
|
+
messageType: ""
|
|
24
|
+
};
|
|
25
|
+
if ((activity === null || activity === void 0 ? void 0 : (_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === Constants.userMessageTag) {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
payload.messageType = Constants.userMessageTag;
|
|
28
|
+
const newMessageSentEvent = {
|
|
29
|
+
eventName: BroadcastEvent.NewMessageSent,
|
|
30
|
+
payload: payload
|
|
31
|
+
};
|
|
32
|
+
BroadcastService.postMessage(newMessageSentEvent);
|
|
33
|
+
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
34
|
+
Event: TelemetryEvent.MessageSent,
|
|
35
|
+
Description: "New message sent"
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
var _activity$channelData5, _activity$channelData6;
|
|
39
|
+
if (activity !== null && activity !== void 0 && (_activity$channelData5 = activity.channelData) !== null && _activity$channelData5 !== void 0 && (_activity$channelData6 = _activity$channelData5.tags) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.includes(Constants.systemMessageTag)) {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
payload.messageType = Constants.systemMessageTag;
|
|
42
|
+
} else {
|
|
43
|
+
var _activity$channelData7, _activity$channelData8, _activity$channelData9;
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
+
const messageHasNoText = !(activity !== null && activity !== void 0 && activity.text);
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
const messageHasNoTags = !(activity !== null && activity !== void 0 && activity.channelData) || !(activity !== null && activity !== void 0 && (_activity$channelData7 = activity.channelData) !== null && _activity$channelData7 !== void 0 && _activity$channelData7.tags) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData8 = activity.channelData) === null || _activity$channelData8 === void 0 ? void 0 : (_activity$channelData9 = _activity$channelData8.tags) === null || _activity$channelData9 === void 0 ? void 0 : _activity$channelData9.length) === 0;
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
const messageHasNoAttachments = !(activity !== null && activity !== void 0 && activity.attachments) || (activity === null || activity === void 0 ? void 0 : activity.attachments.length) === 0;
|
|
50
|
+
if (messageHasNoTags && messageHasNoText && messageHasNoAttachments) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
payload.messageType = Constants.userMessageTag;
|
|
54
|
+
}
|
|
55
|
+
const newMessageReceivedEvent = {
|
|
56
|
+
eventName: isHistoryMessage ? BroadcastEvent.HistoryMessageReceived : BroadcastEvent.NewMessageReceived,
|
|
57
|
+
payload: payload
|
|
58
|
+
};
|
|
59
|
+
BroadcastService.postMessage(newMessageReceivedEvent);
|
|
60
|
+
if (!isHistoryMessage) {
|
|
61
|
+
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
62
|
+
Event: TelemetryEvent.MessageReceived,
|
|
63
|
+
Description: "New message received",
|
|
64
|
+
Data: payload
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return onNewAdapterActivityHandler;
|
|
71
|
+
};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export declare class Constants {
|
|
2
|
+
static readonly magicCodeBroadcastChannel = "MagicCodeChannel";
|
|
3
|
+
static readonly magicCodeResponseBroadcastChannel = "MagicCodeResponseChannel";
|
|
2
4
|
static readonly systemMessageTag = "system";
|
|
3
5
|
static readonly userMessageTag = "user";
|
|
6
|
+
static readonly historyMessageTag = "history";
|
|
4
7
|
static readonly agentEndConversationMessageTag = "agentendconversation";
|
|
8
|
+
static readonly supervisorForceCloseMessageTag = "supervisorforceclosedconversation";
|
|
5
9
|
static readonly receivedMessageClassName = "ms_lcw_webchat_received_message";
|
|
6
10
|
static readonly sentMessageClassName = "ms_lcw_webchat_sent_message";
|
|
7
11
|
static readonly webchatChannelId = "webchat";
|
|
@@ -13,7 +17,6 @@ export declare class Constants {
|
|
|
13
17
|
static readonly true = "true";
|
|
14
18
|
static readonly false = "false";
|
|
15
19
|
static readonly maximumUnreadMessageCount = 99;
|
|
16
|
-
static readonly widgetStateDataKey = "LcwChatWidgetState";
|
|
17
20
|
static readonly channelIdKey = "ChannelId-";
|
|
18
21
|
static readonly ChannelId = "lcw";
|
|
19
22
|
static readonly CustomerTag = "FromCustomer";
|
|
@@ -31,6 +34,10 @@ export declare class Constants {
|
|
|
31
34
|
static readonly queuePositionMessageTag = "queueposition";
|
|
32
35
|
static readonly averageWaitTimeMessageTag = "averagewaittime";
|
|
33
36
|
static readonly message = "message";
|
|
37
|
+
static readonly hiddenTag = "Hidden";
|
|
38
|
+
static readonly prefixTimestampTag = "ServerMessageTimestamp_";
|
|
39
|
+
static readonly acsChannel = "ACS_CHANNEL";
|
|
40
|
+
static readonly publicMessageTag = "public";
|
|
34
41
|
static readonly supportedAdaptiveCardContentTypes: Array<string>;
|
|
35
42
|
static readonly maxUploadFileSize = "500000";
|
|
36
43
|
static readonly imageRegex: RegExp;
|
|
@@ -56,7 +63,6 @@ export declare class Constants {
|
|
|
56
63
|
static readonly ProactiveChatInviteTimeoutInMs = 60000;
|
|
57
64
|
static readonly InputSubmit = "InputSubmit";
|
|
58
65
|
static readonly ReconnectIdAttributeName = "oc.reconnectid";
|
|
59
|
-
static readonly redirectPageRequest = "redirectPageRequest";
|
|
60
66
|
static readonly LiveChatWidget = "LiveChatWidgetNew";
|
|
61
67
|
static readonly GuidPattern = "xx-x-4m-ym-xxx";
|
|
62
68
|
static readonly Default = "default";
|
|
@@ -69,6 +75,9 @@ export declare class Constants {
|
|
|
69
75
|
static readonly OpenLinkIconCssClass = "webchat__markdown__external-link-icon";
|
|
70
76
|
static readonly internetConnectionTestUrl = "https://ocsdk-prod.azureedge.net/public/connecttest.txt";
|
|
71
77
|
static readonly internetConnectionTestUrlText = "Omnichannel Connect Test";
|
|
78
|
+
static readonly ChatWidgetStateChangedPrefix = "ChatWidgetStateChanged";
|
|
79
|
+
static readonly PostChatLoadingDurationInMs = 2000;
|
|
80
|
+
static readonly BrowserUnloadConfirmationMessage = "Do you want to leave chat?";
|
|
72
81
|
}
|
|
73
82
|
export declare const Regex: {
|
|
74
83
|
new (): {};
|
|
@@ -135,6 +144,12 @@ export declare enum ElementType {
|
|
|
135
144
|
export declare enum ChatSDKError {
|
|
136
145
|
WidgetUseOutsideOperatingHour = "WidgetUseOutsideOperatingHour"
|
|
137
146
|
}
|
|
147
|
+
export declare enum EnvironmentVersion {
|
|
148
|
+
prod = "prod",
|
|
149
|
+
dogfood = "df",
|
|
150
|
+
int = "int",
|
|
151
|
+
test = "test"
|
|
152
|
+
}
|
|
138
153
|
export declare class TranscriptConstants {
|
|
139
154
|
static readonly ChatTranscriptsBodyColor = "#F5F5F5";
|
|
140
155
|
static readonly TranscriptMessageEmojiMessageType = "http://schema.skype.com/emoji";
|
|
@@ -147,3 +162,13 @@ export declare class TranscriptConstants {
|
|
|
147
162
|
static readonly AgentDialogColor = "#2266E3";
|
|
148
163
|
static readonly AgentFontColor = "white";
|
|
149
164
|
}
|
|
165
|
+
export declare class AriaTelemetryConstants {
|
|
166
|
+
static readonly GERMANY_ENDPOINT: string;
|
|
167
|
+
static readonly GCCH_ENDPOINT: string;
|
|
168
|
+
static readonly DOD_ENDPOINT: string;
|
|
169
|
+
static readonly EUROPE_ENDPOINT: string;
|
|
170
|
+
static readonly MOONCAKE_ENDPOINT: string;
|
|
171
|
+
static readonly Public: string;
|
|
172
|
+
static readonly EU: string;
|
|
173
|
+
static readonly lcwEUDomainNames: Array<string>;
|
|
174
|
+
}
|
|
@@ -6,9 +6,9 @@ export interface IContextDataStore {
|
|
|
6
6
|
/**
|
|
7
7
|
* setData: Set data to data store
|
|
8
8
|
*/
|
|
9
|
-
setData: (key: string, value: string) => void;
|
|
9
|
+
setData: (key: string, value: any, type: string) => void;
|
|
10
10
|
/**
|
|
11
11
|
* removeData: Remove data from data store by key
|
|
12
12
|
*/
|
|
13
|
-
removeData
|
|
13
|
+
removeData: (key: string, type: string) => void;
|
|
14
14
|
}
|