@microsoft/omnichannel-chat-widget 0.1.0-main.a27ec4b → 0.1.0-main.a2e5071
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 +17 -168
- 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 +22 -23
- 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 +30 -36
- 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 +8 -32
- 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 +10 -34
- 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 +12 -27
- 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/defaultScrollBarProps.js +14 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +41 -35
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +30 -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 +80 -150
- 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 +126 -109
- package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
- package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
- package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +201 -256
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +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 +9 -37
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +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 +17 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
- package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
- package/lib/cjs/contexts/ChatContextStore.js +0 -2
- package/lib/cjs/contexts/ChatSDKStore.js +0 -2
- package/lib/cjs/contexts/common/ConversationState.js +0 -1
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +3 -3
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -11
- package/lib/cjs/contexts/createReducer.js +146 -108
- package/lib/cjs/controller/componentController.js +2 -31
- package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
- package/lib/cjs/hooks/useChatContextStore.js +0 -6
- package/lib/cjs/hooks/useChatSDKStore.js +0 -6
- package/lib/cjs/index.js +0 -5
- package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
- package/lib/esm/common/Constants.js +14 -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 +26 -20
- 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 +28 -24
- 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 +10 -13
- 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 +12 -15
- 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 +12 -12
- 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/defaultScrollBarProps.js +7 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +43 -22
- package/lib/esm/components/livechatwidget/common/endChat.js +32 -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 +79 -130
- 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 +126 -81
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
- package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +203 -190
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +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 +11 -21
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +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 +17 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
- package/lib/esm/contexts/ChatAdapterStore.js +2 -1
- package/lib/esm/contexts/ChatContextStore.js +2 -1
- package/lib/esm/contexts/ChatSDKStore.js +2 -1
- package/lib/esm/contexts/common/ConversationState.js +0 -1
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +3 -3
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -5
- package/lib/esm/contexts/createReducer.js +146 -105
- package/lib/esm/controller/componentController.js +3 -2
- package/lib/esm/hooks/useChatAdapterStore.js +0 -4
- package/lib/esm/hooks/useChatContextStore.js +0 -4
- package/lib/esm/hooks/useChatSDKStore.js +0 -4
- package/lib/esm/plugins/newMessageEventHandler.js +15 -26
- package/lib/types/common/Constants.d.ts +12 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +11 -4
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
- package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
- package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -2
- package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
- 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/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -2
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +4 -3
- package/package.json +3 -3
|
@@ -6,65 +6,51 @@ export const getUserAgent = () => {
|
|
|
6
6
|
if (!userAgent) {
|
|
7
7
|
userAgent = window.navigator.userAgent;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
9
|
return userAgent;
|
|
11
10
|
};
|
|
12
|
-
|
|
13
11
|
const userAgentContainsString = searchString => {
|
|
14
12
|
const userAgent = getUserAgent();
|
|
15
13
|
return userAgent.indexOf(searchString) > -1;
|
|
16
14
|
};
|
|
17
|
-
|
|
18
15
|
const isEdge = () => {
|
|
19
16
|
return userAgentContainsString(BrowserVendor.EDGE) || userAgentContainsString(BrowserVendor.EDGE_CHROMIUM);
|
|
20
17
|
};
|
|
21
|
-
|
|
22
18
|
export const isChromiumEdge = () => {
|
|
23
19
|
return userAgentContainsString(BrowserVendor.EDGE_CHROMIUM) && !userAgentContainsString(BrowserVendor.EDGE);
|
|
24
20
|
};
|
|
25
|
-
|
|
26
21
|
const isOpera = () => {
|
|
27
22
|
return userAgentContainsString("OPR/");
|
|
28
23
|
};
|
|
29
|
-
|
|
30
24
|
export const getBrowserName = () => {
|
|
31
25
|
if (isOpera()) {
|
|
32
26
|
return BrowserVendor.OPERA;
|
|
33
27
|
}
|
|
34
|
-
|
|
35
28
|
if (isEdge()) {
|
|
36
29
|
return BrowserVendor.EDGE;
|
|
37
30
|
}
|
|
38
|
-
|
|
39
31
|
if (userAgentContainsString(BrowserVendor.CHROME)) {
|
|
40
32
|
return BrowserVendor.CHROME;
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
if (userAgentContainsString(BrowserVendor.FIREFOX)) {
|
|
44
35
|
return BrowserVendor.FIREFOX;
|
|
45
36
|
}
|
|
46
|
-
|
|
47
37
|
if (userAgentContainsString(BrowserVendor.SAFARI)) {
|
|
48
38
|
return BrowserVendor.SAFARI;
|
|
49
39
|
}
|
|
50
|
-
|
|
51
40
|
return BrowserVendor.UNKNOWN;
|
|
52
41
|
};
|
|
53
42
|
export const getBrowserVersion = () => {
|
|
54
43
|
let browserString = getBrowserName();
|
|
55
44
|
const browserVersion = UNKNOWN_VERSION;
|
|
56
45
|
let matches;
|
|
57
|
-
|
|
58
46
|
if (browserString === BrowserVendor.SAFARI) {
|
|
59
47
|
browserString = "Version";
|
|
60
|
-
}
|
|
61
|
-
|
|
48
|
+
}
|
|
62
49
|
|
|
50
|
+
// eslint-disable-next-line prefer-const
|
|
63
51
|
matches = getUserAgent().match(new RegExp(browserString + "/" + REGEX_VERSION));
|
|
64
|
-
|
|
65
52
|
if (matches) {
|
|
66
53
|
return matches[1];
|
|
67
54
|
}
|
|
68
|
-
|
|
69
55
|
return browserVersion;
|
|
70
56
|
};
|
package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js
CHANGED
|
@@ -52,30 +52,28 @@ const FileAttachmentIconMap = {
|
|
|
52
52
|
"zipx": ArchiveIcon,
|
|
53
53
|
"7z": ArchiveIcon
|
|
54
54
|
};
|
|
55
|
+
|
|
55
56
|
/**
|
|
56
57
|
* Get file attachment icon image depending on extension.
|
|
57
58
|
*
|
|
58
59
|
* @param extension File extension
|
|
59
60
|
*/
|
|
60
|
-
|
|
61
61
|
export const getFileAttachmentIconData = extension => {
|
|
62
62
|
const key = extension.startsWith(".") ? extension.slice(1) : extension || "";
|
|
63
63
|
const icon = FileAttachmentIconMap[key.toLowerCase()] || BlankIcon;
|
|
64
64
|
return icon;
|
|
65
|
-
};
|
|
65
|
+
};
|
|
66
66
|
|
|
67
|
+
// Check if browser supports inline media playing for current media format
|
|
67
68
|
export const isInlineMediaSupported = attachmentName => {
|
|
68
69
|
switch (getBrowserName()) {
|
|
69
70
|
case BrowserVendor.CHROME:
|
|
70
71
|
case BrowserVendor.OPERA:
|
|
71
72
|
return Constants.chromeSupportedInlineMediaRegex.test(attachmentName);
|
|
72
|
-
|
|
73
73
|
case BrowserVendor.FIREFOX:
|
|
74
74
|
return Constants.firefoxSupportedInlineMediaRegex.test(attachmentName);
|
|
75
|
-
|
|
76
75
|
case BrowserVendor.EDGE:
|
|
77
76
|
return isChromiumEdge() && Constants.chromeSupportedInlineMediaRegex.test(attachmentName);
|
|
78
|
-
|
|
79
77
|
default:
|
|
80
78
|
return false;
|
|
81
79
|
}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
export const isMaskingforCustomer = maskingInfo => {
|
|
2
2
|
var _maskingInfo$setting;
|
|
3
|
-
|
|
4
3
|
// If the masking info (containing masking setting and masking rules) is missing or empty, return false.
|
|
5
4
|
// If the masking rules are missing or empty, also return false.
|
|
6
5
|
if (!maskingInfo || Object.keys(maskingInfo).length == 0 || !maskingInfo.dataMaskingRules || Object.keys(maskingInfo.dataMaskingRules).length == 0) {
|
|
7
6
|
return false;
|
|
8
|
-
}
|
|
9
|
-
// If the masking setting is NOT null and masking for customer is NOT null, return the configuration
|
|
10
|
-
|
|
7
|
+
}
|
|
11
8
|
|
|
9
|
+
// If the masking rules are provided and;
|
|
10
|
+
// If the masking setting is NOT null and masking for customer is NOT null, return the configuration
|
|
12
11
|
if ((_maskingInfo$setting = maskingInfo.setting) !== null && _maskingInfo$setting !== void 0 && _maskingInfo$setting.msdyn_maskforcustomer) {
|
|
13
12
|
return maskingInfo.setting.msdyn_maskforcustomer;
|
|
14
|
-
}
|
|
15
|
-
|
|
13
|
+
}
|
|
16
14
|
|
|
15
|
+
// In all other cases, even if masking setting is missing, return true to apply the masking for backward compatibility (i.e. in old versions, OC does not have masking info settings)
|
|
17
16
|
return true;
|
|
18
17
|
};
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
2
|
export class BotMagicCodeStore {}
|
|
4
|
-
|
|
5
3
|
_defineProperty(BotMagicCodeStore, "botOAuthSignInId", "");
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
2
|
export class WebChatStoreLoader {}
|
|
4
|
-
|
|
5
3
|
_defineProperty(WebChatStoreLoader, "store", void 0);
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { LogLevel, TelemetryEvent } from "../../../../../common/telemetry/TelemetryConstants";
|
|
2
|
-
import { TelemetryHelper } from "../../../../../common/telemetry/TelemetryHelper";
|
|
2
|
+
import { TelemetryHelper } from "../../../../../common/telemetry/TelemetryHelper";
|
|
3
3
|
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
5
|
const FormatEgressTagsMiddleware = () => next => activity => {
|
|
5
6
|
const activity_instance = JSON.parse(JSON.stringify(activity));
|
|
6
|
-
|
|
7
7
|
if (activity_instance) {
|
|
8
8
|
if (activity_instance.channelData && activity_instance.channelData.tags) {
|
|
9
9
|
const {
|
|
10
10
|
tags
|
|
11
11
|
} = activity_instance.channelData;
|
|
12
|
-
|
|
13
12
|
if (typeof tags === "string") {
|
|
14
13
|
return next(activity);
|
|
15
14
|
} else if (tags instanceof Array) {
|
|
@@ -28,8 +27,6 @@ const FormatEgressTagsMiddleware = () => next => activity => {
|
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
|
-
|
|
32
30
|
return next(activity_instance);
|
|
33
31
|
};
|
|
34
|
-
|
|
35
32
|
export default FormatEgressTagsMiddleware;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
2
|
const formatTagsIngressMiddleware = () => next => activity => {
|
|
3
3
|
const activity_instance = JSON.parse(JSON.stringify(activity));
|
|
4
|
-
|
|
5
4
|
if (activity_instance) {
|
|
6
5
|
if (activity_instance.channelData && activity_instance.channelData.tags) {
|
|
7
6
|
const {
|
|
8
7
|
tags
|
|
9
8
|
} = activity_instance.channelData;
|
|
10
|
-
|
|
11
9
|
if (typeof tags === "string") {
|
|
12
10
|
try {
|
|
13
11
|
//If it is json format, parse the tags. Catch block will convert string to array.(We do not need to log anything since its not an error)
|
|
@@ -18,8 +16,6 @@ const formatTagsIngressMiddleware = () => next => activity => {
|
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
return next(activity_instance);
|
|
23
20
|
};
|
|
24
|
-
|
|
25
21
|
export default formatTagsIngressMiddleware;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* 2. Changes the font size of user messages
|
|
7
7
|
* 3. Decodes certain html characters that came through from chat services
|
|
8
8
|
******/
|
|
9
|
+
|
|
9
10
|
import { LogLevel, TelemetryEvent } from "../../../../../common/telemetry/TelemetryConstants";
|
|
10
11
|
import { Constants } from "../../../../../common/Constants";
|
|
11
12
|
import { DirectLineActivityType } from "../../enums/DirectLineActivityType";
|
|
@@ -16,15 +17,15 @@ import { TelemetryHelper } from "../../../../../common/telemetry/TelemetryHelper
|
|
|
16
17
|
import { defaultSystemMessageStyles } from "./defaultStyles/defaultSystemMessageStyles";
|
|
17
18
|
import { defaultUserMessageStyles } from "./defaultStyles/defaultUserMessageStyles";
|
|
18
19
|
import { escapeHtml } from "../../../../../common/utils";
|
|
19
|
-
const loggedSystemMessages = new Array();
|
|
20
|
+
const loggedSystemMessages = new Array();
|
|
20
21
|
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
23
|
const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
|
|
22
24
|
var _card$activity, _card$activity$channe, _card$activity$channe2, _card$activity2, _card$activity2$chann, _card$activity3, _card$activity3$chann, _card$activity3$chann2, _card$activity4, _card$activity4$chann, _card$activity5, _card$activity5$chann, _card$nextVisibleActi, _card$nextVisibleActi2, _card$activity6, _card$activity6$chann, _card$activity7, _card$nextVisibleActi3, _card$activity8;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
const systemMessageStyles = {
|
|
26
|
+
...defaultSystemMessageStyles,
|
|
25
27
|
...systemMessageStyleProps
|
|
26
28
|
};
|
|
27
|
-
|
|
28
29
|
if ((_card$activity = card.activity) !== null && _card$activity !== void 0 && (_card$activity$channe = _card$activity.channelData) !== null && _card$activity$channe !== void 0 && (_card$activity$channe2 = _card$activity$channe.tags) !== null && _card$activity$channe2 !== void 0 && _card$activity$channe2.includes(Constants.averageWaitTimeMessageTag) && loggedSystemMessages.indexOf((_card$activity2 = card.activity) === null || _card$activity2 === void 0 ? void 0 : (_card$activity2$chann = _card$activity2.channelData) === null || _card$activity2$chann === void 0 ? void 0 : _card$activity2$chann.clientmessageid) < 0) {
|
|
29
30
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
30
31
|
Event: TelemetryEvent.AverageWaitTimeMessageRecieved,
|
|
@@ -32,7 +33,6 @@ const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
|
|
|
32
33
|
});
|
|
33
34
|
loggedSystemMessages.push(card.activity.channelData.clientmessageid);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
36
|
if ((_card$activity3 = card.activity) !== null && _card$activity3 !== void 0 && (_card$activity3$chann = _card$activity3.channelData) !== null && _card$activity3$chann !== void 0 && (_card$activity3$chann2 = _card$activity3$chann.tags) !== null && _card$activity3$chann2 !== void 0 && _card$activity3$chann2.includes(Constants.queuePositionMessageTag) && loggedSystemMessages.indexOf((_card$activity4 = card.activity) === null || _card$activity4 === void 0 ? void 0 : (_card$activity4$chann = _card$activity4.channelData) === null || _card$activity4$chann === void 0 ? void 0 : _card$activity4$chann.clientmessageid) < 0) {
|
|
37
37
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
38
38
|
Event: TelemetryEvent.QueuePositionMessageRecieved,
|
|
@@ -40,57 +40,49 @@ const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
|
|
|
40
40
|
});
|
|
41
41
|
loggedSystemMessages.push(card.activity.channelData.clientmessageid);
|
|
42
42
|
}
|
|
43
|
-
|
|
44
43
|
if ((_card$activity5 = card.activity) !== null && _card$activity5 !== void 0 && (_card$activity5$chann = _card$activity5.channelData) !== null && _card$activity5$chann !== void 0 && _card$activity5$chann.clientmessageid && ((_card$nextVisibleActi = card.nextVisibleActivity) === null || _card$nextVisibleActi === void 0 ? void 0 : (_card$nextVisibleActi2 = _card$nextVisibleActi.channelData) === null || _card$nextVisibleActi2 === void 0 ? void 0 : _card$nextVisibleActi2.clientmessageid) === ((_card$activity6 = card.activity) === null || _card$activity6 === void 0 ? void 0 : (_card$activity6$chann = _card$activity6.channelData) === null || _card$activity6$chann === void 0 ? void 0 : _card$activity6$chann.clientmessageid) || (_card$activity7 = card.activity) !== null && _card$activity7 !== void 0 && _card$activity7.messageid && ((_card$nextVisibleActi3 = card.nextVisibleActivity) === null || _card$nextVisibleActi3 === void 0 ? void 0 : _card$nextVisibleActi3.messageid) === ((_card$activity8 = card.activity) === null || _card$activity8 === void 0 ? void 0 : _card$activity8.messageid)) {
|
|
45
44
|
return () => false;
|
|
46
|
-
}
|
|
47
|
-
|
|
45
|
+
}
|
|
48
46
|
|
|
47
|
+
// eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any
|
|
49
48
|
return () => /*#__PURE__*/React.createElement("div", {
|
|
50
49
|
key: card.activity.id,
|
|
51
50
|
style: systemMessageStyles,
|
|
52
51
|
"aria-hidden": "true"
|
|
53
52
|
}, card.activity.text);
|
|
54
|
-
};
|
|
55
|
-
|
|
53
|
+
};
|
|
56
54
|
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
56
|
const isTagIncluded = (card, tag) => {
|
|
58
57
|
return isDataTagsPresent(card) && card.activity.channelData.tags.includes(tag);
|
|
59
|
-
};
|
|
60
|
-
|
|
58
|
+
};
|
|
61
59
|
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
61
|
const isDataTagsPresent = card => {
|
|
63
62
|
return card && card.activity && card.activity.channelData && card.activity.channelData.tags && card.activity.channelData.tags.length > 0;
|
|
64
|
-
};
|
|
65
|
-
|
|
63
|
+
};
|
|
66
64
|
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
66
|
export const createActivityMiddleware = (systemMessageStyleProps, userMessageStyleProps) => () => next => function () {
|
|
68
67
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
69
68
|
args[_key] = arguments[_key];
|
|
70
69
|
}
|
|
71
|
-
|
|
72
70
|
const [card] = args;
|
|
73
|
-
|
|
74
71
|
if (card.activity) {
|
|
75
72
|
var _card$activity$from;
|
|
76
|
-
|
|
77
73
|
if (((_card$activity$from = card.activity.from) === null || _card$activity$from === void 0 ? void 0 : _card$activity$from.role) === DirectLineSenderRole.Channel) {
|
|
78
74
|
var _card$activity$channe3;
|
|
79
|
-
|
|
80
75
|
if (((_card$activity$channe3 = card.activity.channelData) === null || _card$activity$channe3 === void 0 ? void 0 : _card$activity$channe3.type) === MessageTypes.Thread) {
|
|
81
76
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
82
77
|
Event: TelemetryEvent.IC3ThreadUpdateEventReceived,
|
|
83
78
|
Description: "IC3 ThreadUpdateEvent Received"
|
|
84
79
|
});
|
|
85
80
|
}
|
|
86
|
-
|
|
87
81
|
return () => false;
|
|
88
82
|
}
|
|
89
|
-
|
|
90
83
|
if (isTagIncluded(card, Constants.hiddenTag)) {
|
|
91
84
|
return () => false;
|
|
92
85
|
}
|
|
93
|
-
|
|
94
86
|
if (isTagIncluded(card, Constants.systemMessageTag)) {
|
|
95
87
|
return handleSystemMessage(next, args, card, systemMessageStyleProps);
|
|
96
88
|
} else if (card.activity.text && card.activity.type === DirectLineActivityType.Message) {
|
|
@@ -98,11 +90,11 @@ export const createActivityMiddleware = (systemMessageStyleProps, userMessageSty
|
|
|
98
90
|
card.activity.text = escapeHtml(card.activity.text);
|
|
99
91
|
card.activity.channelData.isHtmlEncoded = true;
|
|
100
92
|
}
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
const userMessageStyles = {
|
|
94
|
+
...defaultUserMessageStyles,
|
|
103
95
|
...userMessageStyleProps
|
|
104
|
-
};
|
|
105
|
-
|
|
96
|
+
};
|
|
97
|
+
// eslint-disable-next-line react/display-name, @typescript-eslint/no-explicit-any
|
|
106
98
|
return function () {
|
|
107
99
|
return /*#__PURE__*/React.createElement("div", {
|
|
108
100
|
className: card.activity.from.role === DirectLineSenderRole.User ? Constants.sentMessageClassName : Constants.receivedMessageClassName,
|
|
@@ -112,6 +104,5 @@ export const createActivityMiddleware = (systemMessageStyleProps, userMessageSty
|
|
|
112
104
|
};
|
|
113
105
|
}
|
|
114
106
|
}
|
|
115
|
-
|
|
116
107
|
return next(...args);
|
|
117
108
|
};
|
|
@@ -3,8 +3,9 @@ import { DeliveredTimestamp } from "./timestamps/DeliveredTimestamp";
|
|
|
3
3
|
import { NotDeliveredTimestamp } from "./timestamps/NotDeliveredTimestamp";
|
|
4
4
|
import React from "react";
|
|
5
5
|
import { SendStatus } from "../../enums/SendStatus";
|
|
6
|
-
import { SendingTimestamp } from "./timestamps/SendingTimestamp";
|
|
6
|
+
import { SendingTimestamp } from "./timestamps/SendingTimestamp";
|
|
7
7
|
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, react/display-name, @typescript-eslint/no-unused-vars
|
|
8
9
|
export const activityStatusMiddleware = () => next => args => {
|
|
9
10
|
const {
|
|
10
11
|
activity: {
|
|
@@ -21,11 +22,10 @@ export const activityStatusMiddleware = () => next => args => {
|
|
|
21
22
|
sameTimestampGroup
|
|
22
23
|
} = args;
|
|
23
24
|
const current_tags = tags,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
current_name = name,
|
|
26
|
+
current_role = role,
|
|
27
|
+
current_timestamp = timestamp;
|
|
27
28
|
let sameTimestampGroupTemp = sameTimestampGroup;
|
|
28
|
-
|
|
29
29
|
if (args[WebChatMiddlewareConstants.nextVisibleActivity]) {
|
|
30
30
|
const {
|
|
31
31
|
nextVisibleActivity: {
|
|
@@ -34,18 +34,16 @@ export const activityStatusMiddleware = () => next => args => {
|
|
|
34
34
|
},
|
|
35
35
|
timestamp
|
|
36
36
|
}
|
|
37
|
-
} = args;
|
|
38
|
-
|
|
37
|
+
} = args;
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
39
39
|
const next_name = name,
|
|
40
|
-
|
|
40
|
+
next_timestamp = timestamp;
|
|
41
41
|
const timestampCurrentInMillisecond = Date.parse(current_timestamp);
|
|
42
42
|
const timestampNextInMillisecond = Date.parse(next_timestamp);
|
|
43
|
-
|
|
44
43
|
if (current_name !== next_name || timestampNextInMillisecond - timestampCurrentInMillisecond > WebChatMiddlewareConstants.timeBetweenTimestampGroups) {
|
|
45
44
|
sameTimestampGroupTemp = false;
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
|
|
49
47
|
if (current_tags && current_tags.includes(Constants.systemMessageTag) || sameTimestampGroupTemp && sendState === SendStatus.Sent) {
|
|
50
48
|
return;
|
|
51
49
|
} else {
|
|
@@ -61,7 +59,8 @@ export const activityStatusMiddleware = () => next => args => {
|
|
|
61
59
|
args: args,
|
|
62
60
|
role: current_role,
|
|
63
61
|
name: current_name
|
|
64
|
-
}))
|
|
62
|
+
}))
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
64
|
;
|
|
66
65
|
}
|
|
67
66
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
3
2
|
/******
|
|
4
3
|
* AttachmentMiddleware
|
|
5
4
|
*
|
|
6
5
|
* Handles attachment downloading.
|
|
7
6
|
******/
|
|
7
|
+
|
|
8
8
|
import { Constants, MimeTypes, WebChatMiddlewareConstants } from "../../../../../common/Constants";
|
|
9
9
|
import React from "react";
|
|
10
10
|
import { getFileAttachmentIconData, isInlineMediaSupported } from "../../../common/utils/FileAttachmentIconManager";
|
|
@@ -21,14 +21,12 @@ import { defaultAttachmentProps } from "../../../common/defaultProps/defaultAtta
|
|
|
21
21
|
import { defaultAttachmentSizeStyles } from "./defaultStyles/defaultAttachmentSizeStyles";
|
|
22
22
|
import { defaultAttachmentStyles } from "./defaultStyles/defaultAtttachmentStyles";
|
|
23
23
|
import { useChatContextStore } from "../../../../..";
|
|
24
|
-
|
|
25
24
|
const AttachmentContent = props => {
|
|
26
25
|
return /*#__PURE__*/React.createElement("div", {
|
|
27
26
|
id: props.id,
|
|
28
27
|
style: props.style
|
|
29
28
|
}, props.children);
|
|
30
29
|
};
|
|
31
|
-
|
|
32
30
|
const AttachmentIcon = props => {
|
|
33
31
|
return /*#__PURE__*/React.createElement("div", {
|
|
34
32
|
id: props.id,
|
|
@@ -37,10 +35,8 @@ const AttachmentIcon = props => {
|
|
|
37
35
|
src: props.src ?? getFileAttachmentIconData("txt")
|
|
38
36
|
}));
|
|
39
37
|
};
|
|
40
|
-
|
|
41
38
|
const Attachment = props => {
|
|
42
39
|
var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$r3, _state$domainStates$r4, _state$domainStates$r5, _state$domainStates$r6, _state$domainStates$r7, _state$domainStates$r8, _state$domainStates$r9;
|
|
43
|
-
|
|
44
40
|
const {
|
|
45
41
|
iconData,
|
|
46
42
|
imageCard,
|
|
@@ -49,34 +45,41 @@ const Attachment = props => {
|
|
|
49
45
|
} = props;
|
|
50
46
|
const [state] = useChatContextStore();
|
|
51
47
|
const attachmentId = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : (_state$domainStates$r2 = _state$domainStates$r.attachmentProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.webChatAttachmentId) ?? defaultAttachmentProps.webChatAttachmentId;
|
|
52
|
-
const attachmentDividerStyles = {
|
|
48
|
+
const attachmentDividerStyles = {
|
|
49
|
+
...defaultAttachmentDividerStyles,
|
|
53
50
|
...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.attachmentDividerStyles)
|
|
54
51
|
};
|
|
55
|
-
const attachmentIconStyles = {
|
|
52
|
+
const attachmentIconStyles = {
|
|
53
|
+
...defaultAttachmentIconStyles,
|
|
56
54
|
...((_state$domainStates$r4 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r4 === void 0 ? void 0 : _state$domainStates$r4.attachmentIconStyles)
|
|
57
55
|
};
|
|
58
|
-
const attachmentStyles = {
|
|
56
|
+
const attachmentStyles = {
|
|
57
|
+
...defaultAttachmentStyles,
|
|
59
58
|
...((_state$domainStates$r5 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r5 === void 0 ? void 0 : _state$domainStates$r5.attachmentStyles)
|
|
60
59
|
};
|
|
61
|
-
const attachmentSizeStylesString = Object.entries({
|
|
60
|
+
const attachmentSizeStylesString = Object.entries({
|
|
61
|
+
...defaultAttachmentSizeStyles,
|
|
62
62
|
...((_state$domainStates$r6 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r6 === void 0 ? void 0 : _state$domainStates$r6.attachmentSizeStyles)
|
|
63
63
|
}).map(_ref => {
|
|
64
64
|
let [k, v] = _ref;
|
|
65
65
|
return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
|
|
66
66
|
}).join(";");
|
|
67
|
-
const attachmentContentStylesString = Object.entries({
|
|
67
|
+
const attachmentContentStylesString = Object.entries({
|
|
68
|
+
...defaultAttachmentContentStyles,
|
|
68
69
|
...((_state$domainStates$r7 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r7 === void 0 ? void 0 : _state$domainStates$r7.attachmentContentStyles)
|
|
69
70
|
}).map(_ref2 => {
|
|
70
71
|
let [k, v] = _ref2;
|
|
71
72
|
return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
|
|
72
73
|
}).join(";");
|
|
73
|
-
const attachmentFileNameStylesString = Object.entries({
|
|
74
|
+
const attachmentFileNameStylesString = Object.entries({
|
|
75
|
+
...defaultAttachmentFileNameStyles,
|
|
74
76
|
...((_state$domainStates$r8 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r8 === void 0 ? void 0 : _state$domainStates$r8.attachmentFileNameStyles)
|
|
75
77
|
}).map(_ref3 => {
|
|
76
78
|
let [k, v] = _ref3;
|
|
77
79
|
return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
|
|
78
80
|
}).join(";");
|
|
79
|
-
const attachmentDownloadIconStylesString = Object.entries({
|
|
81
|
+
const attachmentDownloadIconStylesString = Object.entries({
|
|
82
|
+
...defaultAttachmentDownloadIconStyles,
|
|
80
83
|
...((_state$domainStates$r9 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r9 === void 0 ? void 0 : _state$domainStates$r9.attachmentDownloadIconStyles)
|
|
81
84
|
}).map(_ref4 => {
|
|
82
85
|
let [k, v] = _ref4;
|
|
@@ -102,13 +105,12 @@ const Attachment = props => {
|
|
|
102
105
|
style: attachmentIconStyles
|
|
103
106
|
}), textCard && renderer(textCard))));
|
|
104
107
|
};
|
|
108
|
+
|
|
105
109
|
/**
|
|
106
110
|
* Patch card with different attachment data.
|
|
107
111
|
* @param card
|
|
108
112
|
* @param newAttachment
|
|
109
113
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
114
|
const patchAttachment = (card, newAttachment) => {
|
|
113
115
|
const {
|
|
114
116
|
activity,
|
|
@@ -125,7 +127,6 @@ const patchAttachment = (card, newAttachment) => {
|
|
|
125
127
|
attachment: patchedAttachment
|
|
126
128
|
};
|
|
127
129
|
};
|
|
128
|
-
|
|
129
130
|
const genPreviewCardWithAttachment = (card, iconData, next) => {
|
|
130
131
|
const patchedTextCard = patchAttachment(card, {
|
|
131
132
|
contentType: MimeTypes.UnknownFileType,
|
|
@@ -138,35 +139,30 @@ const genPreviewCardWithAttachment = (card, iconData, next) => {
|
|
|
138
139
|
renderer: next
|
|
139
140
|
});
|
|
140
141
|
};
|
|
141
|
-
|
|
142
142
|
const createAttachmentMiddleware = enableInlinePlaying => {
|
|
143
143
|
// eslint-disable-next-line react/display-name
|
|
144
144
|
const attachmentMiddleware = () => next => function () {
|
|
145
145
|
var _state$domainStates$r10, _state$domainStates$r11, _state$domainStates$r12, _card$activity$channe;
|
|
146
|
-
|
|
147
146
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
148
147
|
args[_key] = arguments[_key];
|
|
149
148
|
}
|
|
150
|
-
|
|
151
149
|
const [card] = args;
|
|
152
|
-
|
|
153
150
|
if (!(card !== null && card !== void 0 && card.activity)) {
|
|
154
151
|
return next(...args);
|
|
155
152
|
}
|
|
156
|
-
|
|
157
153
|
const {
|
|
158
154
|
activity: {
|
|
159
155
|
attachments
|
|
160
156
|
},
|
|
161
157
|
attachment
|
|
162
|
-
} = card;
|
|
163
|
-
|
|
158
|
+
} = card;
|
|
159
|
+
// No attachment
|
|
164
160
|
if (!attachments || !attachments.length || !attachment) {
|
|
165
161
|
return next(...args);
|
|
166
|
-
}
|
|
167
|
-
// eslint-disable-next-line prefer-const
|
|
168
|
-
|
|
162
|
+
}
|
|
169
163
|
|
|
164
|
+
// Check for Adaptive cards
|
|
165
|
+
// eslint-disable-next-line prefer-const
|
|
170
166
|
let {
|
|
171
167
|
content,
|
|
172
168
|
contentType
|
|
@@ -179,7 +175,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
179
175
|
} = content || {
|
|
180
176
|
type: ""
|
|
181
177
|
};
|
|
182
|
-
|
|
183
178
|
if (!type && content && Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
|
|
184
179
|
try {
|
|
185
180
|
content = JSON.parse(content);
|
|
@@ -196,41 +191,35 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
196
191
|
});
|
|
197
192
|
}
|
|
198
193
|
}
|
|
199
|
-
|
|
200
194
|
const [state] = useChatContextStore();
|
|
201
195
|
const attachmentId = ((_state$domainStates$r10 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r10 === void 0 ? void 0 : (_state$domainStates$r11 = _state$domainStates$r10.attachmentProps) === null || _state$domainStates$r11 === void 0 ? void 0 : _state$domainStates$r11.adaptiveCardAttachmentId) ?? defaultAttachmentProps.adaptiveCardAttachmentId;
|
|
202
|
-
const atttachmentAdaptiveCardStyles = {
|
|
196
|
+
const atttachmentAdaptiveCardStyles = {
|
|
197
|
+
...defaultAttachmentAdaptiveCardStyles,
|
|
203
198
|
...((_state$domainStates$r12 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r12 === void 0 ? void 0 : _state$domainStates$r12.attachmentAdaptiveCardStyles)
|
|
204
199
|
};
|
|
205
|
-
|
|
206
200
|
if (type === WebChatMiddlewareConstants.adaptiveCard || Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
|
|
207
201
|
return /*#__PURE__*/React.createElement("div", {
|
|
208
202
|
id: attachmentId,
|
|
209
203
|
style: atttachmentAdaptiveCardStyles
|
|
210
204
|
}, next(...args));
|
|
211
205
|
}
|
|
212
|
-
|
|
213
206
|
if ((_card$activity$channe = card.activity.channelData) !== null && _card$activity$channe !== void 0 && _card$activity$channe.middlewareData) {
|
|
214
207
|
attachment.contentUrl = card.activity.channelData.middlewareData[attachment.name];
|
|
215
208
|
} else if (attachment !== null && attachment !== void 0 && attachment.tempContentUrl) {
|
|
216
209
|
attachment.contentUrl = attachment.tempContentUrl;
|
|
217
210
|
}
|
|
218
|
-
|
|
219
211
|
const fileExtension = attachment.name.substring(attachment.name.lastIndexOf(".") + 1, attachment.name.length) || attachment.name;
|
|
220
212
|
const imageExtension = Constants.imageRegex.test(attachment.name);
|
|
221
213
|
const audioExtension = Constants.audioMediaRegex.test(attachment.name);
|
|
222
214
|
const videoExtension = Constants.videoMediaRegex.test(attachment.name);
|
|
223
215
|
const iconData = getFileAttachmentIconData(fileExtension);
|
|
224
|
-
|
|
225
216
|
if (imageExtension) {
|
|
226
217
|
return genPreviewCardWithAttachment(card, iconData, next);
|
|
227
218
|
}
|
|
228
|
-
|
|
229
219
|
if (audioExtension || videoExtension) {
|
|
230
220
|
if (enableInlinePlaying && card.activity.actionType && card.activity.actionType === WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isInlineMediaSupported(attachment.name)) {
|
|
231
221
|
return genPreviewCardWithAttachment(card, iconData, next);
|
|
232
222
|
}
|
|
233
|
-
|
|
234
223
|
return /*#__PURE__*/React.createElement(Attachment, {
|
|
235
224
|
iconData: iconData,
|
|
236
225
|
textCard: patchAttachment(card, {
|
|
@@ -240,7 +229,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
240
229
|
renderer: next
|
|
241
230
|
});
|
|
242
231
|
}
|
|
243
|
-
|
|
244
232
|
if (fileExtension === "txt") {
|
|
245
233
|
return /*#__PURE__*/React.createElement(Attachment, {
|
|
246
234
|
iconData: iconData,
|
|
@@ -251,15 +239,12 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
251
239
|
renderer: next
|
|
252
240
|
});
|
|
253
241
|
}
|
|
254
|
-
|
|
255
242
|
return /*#__PURE__*/React.createElement(Attachment, {
|
|
256
243
|
iconData: iconData,
|
|
257
244
|
textCard: card,
|
|
258
245
|
renderer: next
|
|
259
246
|
});
|
|
260
247
|
};
|
|
261
|
-
|
|
262
248
|
return attachmentMiddleware;
|
|
263
249
|
};
|
|
264
|
-
|
|
265
250
|
export default createAttachmentMiddleware;
|