@microsoft/omnichannel-chat-widget 0.1.0-main.488d6f1 → 0.1.0-main.4e35349
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 +67 -20
- package/lib/cjs/common/telemetry/TelemetryHelper.js +24 -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 +19 -43
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -72
- 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 +17 -37
- 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 -43
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +73 -51
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +80 -22
- 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 +47 -52
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +128 -57
- 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 +289 -142
- 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 +9 -23
- 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 +5 -18
- 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 +3 -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 +3 -32
- 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 +66 -15
- package/lib/esm/common/telemetry/TelemetryHelper.js +25 -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 +19 -14
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +13 -47
- 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 +17 -22
- 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 -39
- package/lib/esm/components/livechatwidget/common/endChat.js +84 -14
- 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 +49 -23
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +127 -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 +295 -97
- 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 +9 -11
- 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 +5 -13
- 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 +3 -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 +4 -3
- 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 +46 -4
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
- 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 +4 -4
- package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
- package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -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 +6 -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/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
- 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 +3 -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
|
@@ -4,53 +4,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Constants = require("../../../../../common/Constants");
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
9
|
var _FileAttachmentIconManager = require("../../../common/utils/FileAttachmentIconManager");
|
|
13
|
-
|
|
10
|
+
var _TelemetryConstants = require("../../../../../common/telemetry/TelemetryConstants");
|
|
14
11
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
15
|
-
|
|
16
12
|
var _WebChatActionType = require("../../enums/WebChatActionType");
|
|
17
|
-
|
|
18
13
|
var _defaultAtttachmentAdaptiveCardStyles = require("./defaultStyles/defaultAtttachmentAdaptiveCardStyles");
|
|
19
|
-
|
|
20
14
|
var _defaultAttachmentContentStyles = require("./defaultStyles/defaultAttachmentContentStyles");
|
|
21
|
-
|
|
22
15
|
var _defaultAttachmentDividerStyles = require("./defaultStyles/defaultAttachmentDividerStyles");
|
|
23
|
-
|
|
24
16
|
var _defaultAttachmentDownloadIconStyles = require("./defaultStyles/defaultAttachmentDownloadIconStyles");
|
|
25
|
-
|
|
26
17
|
var _defaultAttachmentFileNameStyles = require("./defaultStyles/defaultAttachmentFileNameStyles");
|
|
27
|
-
|
|
28
18
|
var _defaultAtttachmentIconStyles = require("./defaultStyles/defaultAtttachmentIconStyles");
|
|
29
|
-
|
|
30
19
|
var _defaultAttachmentProps = require("../../../common/defaultProps/defaultAttachmentProps");
|
|
31
|
-
|
|
32
20
|
var _defaultAttachmentSizeStyles = require("./defaultStyles/defaultAttachmentSizeStyles");
|
|
33
|
-
|
|
34
21
|
var _defaultAtttachmentStyles = require("./defaultStyles/defaultAtttachmentStyles");
|
|
35
|
-
|
|
36
22
|
var _ = require("../../../../..");
|
|
37
|
-
|
|
38
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
|
-
|
|
40
24
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
41
|
-
|
|
42
25
|
/******
|
|
43
26
|
* AttachmentMiddleware
|
|
44
27
|
*
|
|
45
28
|
* Handles attachment downloading.
|
|
46
29
|
******/
|
|
30
|
+
|
|
47
31
|
const AttachmentContent = props => {
|
|
48
32
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
49
33
|
id: props.id,
|
|
50
34
|
style: props.style
|
|
51
35
|
}, props.children);
|
|
52
36
|
};
|
|
53
|
-
|
|
54
37
|
const AttachmentIcon = props => {
|
|
55
38
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
56
39
|
id: props.id,
|
|
@@ -59,10 +42,8 @@ const AttachmentIcon = props => {
|
|
|
59
42
|
src: props.src ?? (0, _FileAttachmentIconManager.getFileAttachmentIconData)("txt")
|
|
60
43
|
}));
|
|
61
44
|
};
|
|
62
|
-
|
|
63
45
|
const Attachment = props => {
|
|
64
46
|
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;
|
|
65
|
-
|
|
66
47
|
const {
|
|
67
48
|
iconData,
|
|
68
49
|
imageCard,
|
|
@@ -71,34 +52,41 @@ const Attachment = props => {
|
|
|
71
52
|
} = props;
|
|
72
53
|
const [state] = (0, _.useChatContextStore)();
|
|
73
54
|
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.defaultAttachmentProps.webChatAttachmentId;
|
|
74
|
-
const attachmentDividerStyles = {
|
|
55
|
+
const attachmentDividerStyles = {
|
|
56
|
+
..._defaultAttachmentDividerStyles.defaultAttachmentDividerStyles,
|
|
75
57
|
...((_state$domainStates$r3 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r3 === void 0 ? void 0 : _state$domainStates$r3.attachmentDividerStyles)
|
|
76
58
|
};
|
|
77
|
-
const attachmentIconStyles = {
|
|
59
|
+
const attachmentIconStyles = {
|
|
60
|
+
..._defaultAtttachmentIconStyles.defaultAttachmentIconStyles,
|
|
78
61
|
...((_state$domainStates$r4 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r4 === void 0 ? void 0 : _state$domainStates$r4.attachmentIconStyles)
|
|
79
62
|
};
|
|
80
|
-
const attachmentStyles = {
|
|
63
|
+
const attachmentStyles = {
|
|
64
|
+
..._defaultAtttachmentStyles.defaultAttachmentStyles,
|
|
81
65
|
...((_state$domainStates$r5 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r5 === void 0 ? void 0 : _state$domainStates$r5.attachmentStyles)
|
|
82
66
|
};
|
|
83
|
-
const attachmentSizeStylesString = Object.entries({
|
|
67
|
+
const attachmentSizeStylesString = Object.entries({
|
|
68
|
+
..._defaultAttachmentSizeStyles.defaultAttachmentSizeStyles,
|
|
84
69
|
...((_state$domainStates$r6 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r6 === void 0 ? void 0 : _state$domainStates$r6.attachmentSizeStyles)
|
|
85
70
|
}).map(_ref => {
|
|
86
71
|
let [k, v] = _ref;
|
|
87
72
|
return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
|
|
88
73
|
}).join(";");
|
|
89
|
-
const attachmentContentStylesString = Object.entries({
|
|
74
|
+
const attachmentContentStylesString = Object.entries({
|
|
75
|
+
..._defaultAttachmentContentStyles.defaultAttachmentContentStyles,
|
|
90
76
|
...((_state$domainStates$r7 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r7 === void 0 ? void 0 : _state$domainStates$r7.attachmentContentStyles)
|
|
91
77
|
}).map(_ref2 => {
|
|
92
78
|
let [k, v] = _ref2;
|
|
93
79
|
return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
|
|
94
80
|
}).join(";");
|
|
95
|
-
const attachmentFileNameStylesString = Object.entries({
|
|
81
|
+
const attachmentFileNameStylesString = Object.entries({
|
|
82
|
+
..._defaultAttachmentFileNameStyles.defaultAttachmentFileNameStyles,
|
|
96
83
|
...((_state$domainStates$r8 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r8 === void 0 ? void 0 : _state$domainStates$r8.attachmentFileNameStyles)
|
|
97
84
|
}).map(_ref3 => {
|
|
98
85
|
let [k, v] = _ref3;
|
|
99
86
|
return `${k.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}:${v}`;
|
|
100
87
|
}).join(";");
|
|
101
|
-
const attachmentDownloadIconStylesString = Object.entries({
|
|
88
|
+
const attachmentDownloadIconStylesString = Object.entries({
|
|
89
|
+
..._defaultAttachmentDownloadIconStyles.defaultAttachmentDownloadIconStyles,
|
|
102
90
|
...((_state$domainStates$r9 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r9 === void 0 ? void 0 : _state$domainStates$r9.attachmentDownloadIconStyles)
|
|
103
91
|
}).map(_ref4 => {
|
|
104
92
|
let [k, v] = _ref4;
|
|
@@ -124,13 +112,12 @@ const Attachment = props => {
|
|
|
124
112
|
style: attachmentIconStyles
|
|
125
113
|
}), textCard && renderer(textCard))));
|
|
126
114
|
};
|
|
115
|
+
|
|
127
116
|
/**
|
|
128
117
|
* Patch card with different attachment data.
|
|
129
118
|
* @param card
|
|
130
119
|
* @param newAttachment
|
|
131
120
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
121
|
const patchAttachment = (card, newAttachment) => {
|
|
135
122
|
const {
|
|
136
123
|
activity,
|
|
@@ -147,7 +134,6 @@ const patchAttachment = (card, newAttachment) => {
|
|
|
147
134
|
attachment: patchedAttachment
|
|
148
135
|
};
|
|
149
136
|
};
|
|
150
|
-
|
|
151
137
|
const genPreviewCardWithAttachment = (card, iconData, next) => {
|
|
152
138
|
const patchedTextCard = patchAttachment(card, {
|
|
153
139
|
contentType: _Constants.MimeTypes.UnknownFileType,
|
|
@@ -160,35 +146,30 @@ const genPreviewCardWithAttachment = (card, iconData, next) => {
|
|
|
160
146
|
renderer: next
|
|
161
147
|
});
|
|
162
148
|
};
|
|
163
|
-
|
|
164
149
|
const createAttachmentMiddleware = enableInlinePlaying => {
|
|
165
150
|
// eslint-disable-next-line react/display-name
|
|
166
151
|
const attachmentMiddleware = () => next => function () {
|
|
167
152
|
var _state$domainStates$r10, _state$domainStates$r11, _state$domainStates$r12, _card$activity$channe;
|
|
168
|
-
|
|
169
153
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
170
154
|
args[_key] = arguments[_key];
|
|
171
155
|
}
|
|
172
|
-
|
|
173
156
|
const [card] = args;
|
|
174
|
-
|
|
175
157
|
if (!(card !== null && card !== void 0 && card.activity)) {
|
|
176
158
|
return next(...args);
|
|
177
159
|
}
|
|
178
|
-
|
|
179
160
|
const {
|
|
180
161
|
activity: {
|
|
181
162
|
attachments
|
|
182
163
|
},
|
|
183
164
|
attachment
|
|
184
|
-
} = card;
|
|
185
|
-
|
|
165
|
+
} = card;
|
|
166
|
+
// No attachment
|
|
186
167
|
if (!attachments || !attachments.length || !attachment) {
|
|
187
168
|
return next(...args);
|
|
188
|
-
}
|
|
189
|
-
// eslint-disable-next-line prefer-const
|
|
190
|
-
|
|
169
|
+
}
|
|
191
170
|
|
|
171
|
+
// Check for Adaptive cards
|
|
172
|
+
// eslint-disable-next-line prefer-const
|
|
192
173
|
let {
|
|
193
174
|
content,
|
|
194
175
|
contentType
|
|
@@ -201,7 +182,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
201
182
|
} = content || {
|
|
202
183
|
type: ""
|
|
203
184
|
};
|
|
204
|
-
|
|
205
185
|
if (!type && content && _Constants.Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
|
|
206
186
|
try {
|
|
207
187
|
content = JSON.parse(content);
|
|
@@ -209,9 +189,8 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
209
189
|
card.attachment.content = content;
|
|
210
190
|
} catch (e) {
|
|
211
191
|
const errorData = "Unable to parse the adaptive card format";
|
|
212
|
-
|
|
213
192
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
214
|
-
eventName:
|
|
193
|
+
eventName: _TelemetryConstants.BroadcastEvent.InvalidAdaptiveCardFormat,
|
|
215
194
|
payload: {
|
|
216
195
|
Message: errorData,
|
|
217
196
|
ExceptionDetails: e
|
|
@@ -219,45 +198,35 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
219
198
|
});
|
|
220
199
|
}
|
|
221
200
|
}
|
|
222
|
-
|
|
223
201
|
const [state] = (0, _.useChatContextStore)();
|
|
224
202
|
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.defaultAttachmentProps.adaptiveCardAttachmentId;
|
|
225
|
-
const atttachmentAdaptiveCardStyles = {
|
|
203
|
+
const atttachmentAdaptiveCardStyles = {
|
|
204
|
+
..._defaultAtttachmentAdaptiveCardStyles.defaultAttachmentAdaptiveCardStyles,
|
|
226
205
|
...((_state$domainStates$r12 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r12 === void 0 ? void 0 : _state$domainStates$r12.attachmentAdaptiveCardStyles)
|
|
227
206
|
};
|
|
228
|
-
|
|
229
207
|
if (type === _Constants.WebChatMiddlewareConstants.adaptiveCard || _Constants.Constants.supportedAdaptiveCardContentTypes.indexOf(contentType) >= 0) {
|
|
230
208
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
231
209
|
id: attachmentId,
|
|
232
210
|
style: atttachmentAdaptiveCardStyles
|
|
233
211
|
}, next(...args));
|
|
234
212
|
}
|
|
235
|
-
|
|
236
213
|
if ((_card$activity$channe = card.activity.channelData) !== null && _card$activity$channe !== void 0 && _card$activity$channe.middlewareData) {
|
|
237
214
|
attachment.contentUrl = card.activity.channelData.middlewareData[attachment.name];
|
|
238
215
|
} else if (attachment !== null && attachment !== void 0 && attachment.tempContentUrl) {
|
|
239
216
|
attachment.contentUrl = attachment.tempContentUrl;
|
|
240
217
|
}
|
|
241
|
-
|
|
242
218
|
const fileExtension = attachment.name.substring(attachment.name.lastIndexOf(".") + 1, attachment.name.length) || attachment.name;
|
|
243
|
-
|
|
244
219
|
const imageExtension = _Constants.Constants.imageRegex.test(attachment.name);
|
|
245
|
-
|
|
246
220
|
const audioExtension = _Constants.Constants.audioMediaRegex.test(attachment.name);
|
|
247
|
-
|
|
248
221
|
const videoExtension = _Constants.Constants.videoMediaRegex.test(attachment.name);
|
|
249
|
-
|
|
250
222
|
const iconData = (0, _FileAttachmentIconManager.getFileAttachmentIconData)(fileExtension);
|
|
251
|
-
|
|
252
223
|
if (imageExtension) {
|
|
253
224
|
return genPreviewCardWithAttachment(card, iconData, next);
|
|
254
225
|
}
|
|
255
|
-
|
|
256
226
|
if (audioExtension || videoExtension) {
|
|
257
227
|
if (enableInlinePlaying && card.activity.actionType && card.activity.actionType === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && (0, _FileAttachmentIconManager.isInlineMediaSupported)(attachment.name)) {
|
|
258
228
|
return genPreviewCardWithAttachment(card, iconData, next);
|
|
259
229
|
}
|
|
260
|
-
|
|
261
230
|
return /*#__PURE__*/_react.default.createElement(Attachment, {
|
|
262
231
|
iconData: iconData,
|
|
263
232
|
textCard: patchAttachment(card, {
|
|
@@ -267,7 +236,6 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
267
236
|
renderer: next
|
|
268
237
|
});
|
|
269
238
|
}
|
|
270
|
-
|
|
271
239
|
if (fileExtension === "txt") {
|
|
272
240
|
return /*#__PURE__*/_react.default.createElement(Attachment, {
|
|
273
241
|
iconData: iconData,
|
|
@@ -278,16 +246,13 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
278
246
|
renderer: next
|
|
279
247
|
});
|
|
280
248
|
}
|
|
281
|
-
|
|
282
249
|
return /*#__PURE__*/_react.default.createElement(Attachment, {
|
|
283
250
|
iconData: iconData,
|
|
284
251
|
textCard: card,
|
|
285
252
|
renderer: next
|
|
286
253
|
});
|
|
287
254
|
};
|
|
288
|
-
|
|
289
255
|
return attachmentMiddleware;
|
|
290
256
|
};
|
|
291
|
-
|
|
292
257
|
var _default = createAttachmentMiddleware;
|
|
293
258
|
exports.default = _default;
|
|
@@ -4,31 +4,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createAvatarMiddleware = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _Constants = require("../../../../../common/Constants");
|
|
11
|
-
|
|
12
9
|
var _defaultAvatarStyles = require("./defaultStyles/defaultAvatarStyles");
|
|
13
|
-
|
|
14
10
|
var _defaultAvatarTextStyles = require("./defaultStyles/defaultAvatarTextStyles");
|
|
15
|
-
|
|
16
11
|
var _utils = require("../../../../../common/utils");
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
/******
|
|
21
14
|
* AvatarMiddleware
|
|
22
15
|
*
|
|
23
16
|
* This middleware handles the avatar icon for each non-system message. It does the following processing:
|
|
24
17
|
* 1. Renders the first two letters of the sender as the profile pic
|
|
25
18
|
******/
|
|
19
|
+
|
|
26
20
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
27
21
|
const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) => () => next => function () {
|
|
28
22
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
29
23
|
args[_key] = arguments[_key];
|
|
30
24
|
}
|
|
31
|
-
|
|
32
25
|
const [params] = args;
|
|
33
26
|
const {
|
|
34
27
|
activity: {
|
|
@@ -41,23 +34,22 @@ const createAvatarMiddleware = (avatarStyleProps, avatarTextStyleProps) => () =>
|
|
|
41
34
|
},
|
|
42
35
|
fromUser
|
|
43
36
|
} = params;
|
|
44
|
-
|
|
45
37
|
if (fromUser !== false || tags && tags.includes(_Constants.Constants.systemMessageTag)) {
|
|
46
38
|
return false;
|
|
47
39
|
}
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
const avatarStyles = {
|
|
41
|
+
..._defaultAvatarStyles.defaultAvatarStyles,
|
|
50
42
|
...avatarStyleProps
|
|
51
43
|
};
|
|
52
|
-
const avatarTextStyles = {
|
|
44
|
+
const avatarTextStyles = {
|
|
45
|
+
..._defaultAvatarTextStyles.defaultAvatarTextStyles,
|
|
53
46
|
...avatarTextStyleProps
|
|
54
|
-
};
|
|
55
|
-
|
|
47
|
+
};
|
|
48
|
+
// eslint-disable-next-line react/display-name
|
|
56
49
|
return () => /*#__PURE__*/_react.default.createElement("div", {
|
|
57
50
|
style: avatarStyles
|
|
58
51
|
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
59
52
|
style: avatarTextStyles
|
|
60
53
|
}, " ", (0, _utils.getIconText)(name), " "));
|
|
61
54
|
};
|
|
62
|
-
|
|
63
55
|
exports.createAvatarMiddleware = createAvatarMiddleware;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createCardActionMiddleware = void 0;
|
|
7
|
+
var _BotMagicCodeStore = require("../../BotMagicCodeStore");
|
|
8
|
+
var CardActionType;
|
|
9
|
+
(function (CardActionType) {
|
|
10
|
+
CardActionType["OpenUrl"] = "openUrl";
|
|
11
|
+
CardActionType["SignIn"] = "signin";
|
|
12
|
+
})(CardActionType || (CardActionType = {}));
|
|
13
|
+
const validCardActionTypes = [CardActionType.OpenUrl, CardActionType.SignIn];
|
|
14
|
+
const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
|
|
15
|
+
const createCardActionMiddleware = botMagicCodeConfig => {
|
|
16
|
+
const cardActionMiddleware = () => next => function () {
|
|
17
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
18
|
+
args[_key] = arguments[_key];
|
|
19
|
+
}
|
|
20
|
+
// eslint-disable-line @typescript-eslint/no-explicit-any
|
|
21
|
+
const [card] = args;
|
|
22
|
+
if (card.cardAction && validCardActionTypes.indexOf(card.cardAction.type) >= 0 && card.cardAction.value) {
|
|
23
|
+
// Override signin url only if fwdUrl is valid & feature is enabled
|
|
24
|
+
if ((botMagicCodeConfig === null || botMagicCodeConfig === void 0 ? void 0 : botMagicCodeConfig.disabled) === true && botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl) {
|
|
25
|
+
const baseUrl = window.location.origin;
|
|
26
|
+
const result = botOauthUrlRegex.exec(card.cardAction.value);
|
|
27
|
+
if (result) {
|
|
28
|
+
_BotMagicCodeStore.BotMagicCodeStore.botOAuthSignInId = `${result[1]}`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// fwdUrl must be on the same domain as the chat widget
|
|
32
|
+
if (botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl.startsWith(baseUrl)) {
|
|
33
|
+
card.cardAction.value += `&fwdUrl=${botMagicCodeConfig.fwdUrl}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return next(...args);
|
|
38
|
+
};
|
|
39
|
+
return cardActionMiddleware;
|
|
40
|
+
};
|
|
41
|
+
exports.createCardActionMiddleware = createCardActionMiddleware;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("@testing-library/jest-dom/extend-expect");
|
|
4
|
+
var _cardActionMiddleware = require("./cardActionMiddleware");
|
|
5
|
+
describe("cardActionMiddleware test", () => {
|
|
6
|
+
it("createCardActionMiddleware() with undefined botMagicCodeConfig should not change the sign in card url", () => {
|
|
7
|
+
const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
8
|
+
const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
|
|
9
|
+
const args = {
|
|
10
|
+
cardAction: {
|
|
11
|
+
type: "signin",
|
|
12
|
+
value: signInUrl
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const results = (0, _cardActionMiddleware.createCardActionMiddleware)(undefined)()(next)(args);
|
|
16
|
+
expect(signInUrl).toEqual(results.cardAction.value);
|
|
17
|
+
});
|
|
18
|
+
it("createCardActionMiddleware() with botMagicCode enabled should not change the sign in card url", () => {
|
|
19
|
+
const botMagicCodeConfig = {
|
|
20
|
+
disabled: false
|
|
21
|
+
};
|
|
22
|
+
const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
23
|
+
const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
|
|
24
|
+
const args = {
|
|
25
|
+
cardAction: {
|
|
26
|
+
type: "signin",
|
|
27
|
+
value: signInUrl
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
|
|
31
|
+
expect(args.cardAction.value).toEqual(results.cardAction.value);
|
|
32
|
+
});
|
|
33
|
+
it("createCardActionMiddleware() with botMagicCode disabled & no fwdUrl should not change the sign in card url", () => {
|
|
34
|
+
const botMagicCodeConfig = {
|
|
35
|
+
disabled: true
|
|
36
|
+
};
|
|
37
|
+
const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
38
|
+
const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
|
|
39
|
+
const args = {
|
|
40
|
+
cardAction: {
|
|
41
|
+
type: "signin",
|
|
42
|
+
value: signInUrl
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
|
|
46
|
+
expect(args.cardAction.value).toEqual(results.cardAction.value);
|
|
47
|
+
});
|
|
48
|
+
it("createCardActionMiddleware() with botMagicCode disabled & fwdUrl should append the fwdUrl in the sign in card url", () => {
|
|
49
|
+
const botMagicCodeConfig = {
|
|
50
|
+
disabled: true,
|
|
51
|
+
fwdUrl: "http://localhost/forwarder.html"
|
|
52
|
+
};
|
|
53
|
+
const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
54
|
+
const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
|
|
55
|
+
const args = {
|
|
56
|
+
cardAction: {
|
|
57
|
+
type: "signin",
|
|
58
|
+
value: signInUrl
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
|
|
62
|
+
expect(signInUrl === results.cardAction.value).toBe(false);
|
|
63
|
+
expect(results.cardAction.value === `${signInUrl}&fwdUrl=${botMagicCodeConfig.fwdUrl}`).toBe(true);
|
|
64
|
+
});
|
|
65
|
+
it("createCardActionMiddleware() should not append fwdUrl if fwdUrl & sign in card url are not in the same domain", () => {
|
|
66
|
+
const botMagicCodeConfig = {
|
|
67
|
+
disabled: true,
|
|
68
|
+
fwdUrl: "https://localhost/forwarder.html"
|
|
69
|
+
};
|
|
70
|
+
const next = args => args; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
71
|
+
const signInUrl = "https://token.botframework.com/api/oauth/signin?signin=[signin]";
|
|
72
|
+
const args = {
|
|
73
|
+
cardAction: {
|
|
74
|
+
type: "signin",
|
|
75
|
+
value: signInUrl
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const results = (0, _cardActionMiddleware.createCardActionMiddleware)(botMagicCodeConfig)()(next)(args);
|
|
79
|
+
expect(signInUrl === results.cardAction.value).toBe(true);
|
|
80
|
+
expect(results.cardAction.value === `${signInUrl}&fwdUrl=${botMagicCodeConfig.fwdUrl}`).toBe(false);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultReceivedMessageAnchorStyles = void 0;
|
|
7
|
+
const defaultReceivedMessageAnchorStyles = {
|
|
8
|
+
color: "white"
|
|
9
|
+
};
|
|
10
|
+
exports.defaultReceivedMessageAnchorStyles = defaultReceivedMessageAnchorStyles;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultSystemMessageBoxStyles = void 0;
|
|
7
|
+
const defaultSystemMessageBoxStyles = {
|
|
8
|
+
maxWidth: "75%"
|
|
9
|
+
};
|
|
10
|
+
exports.defaultSystemMessageBoxStyles = defaultSystemMessageBoxStyles;
|
|
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.defaultTimestampFailedStyles = void 0;
|
|
7
|
-
|
|
8
7
|
var _defaultTimestampContentStyles = require("./defaultTimestampContentStyles");
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const defaultTimestampFailedStyles = {
|
|
9
|
+
..._defaultTimestampContentStyles.defaultTimestampContentStyles,
|
|
11
10
|
color: "#A80000"
|
|
12
11
|
};
|
|
13
12
|
exports.defaultTimestampFailedStyles = defaultTimestampFailedStyles;
|
|
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.defaultTimestampRetryStyles = void 0;
|
|
7
|
-
|
|
8
7
|
var _defaultTimestampContentStyles = require("./defaultTimestampContentStyles");
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const defaultTimestampRetryStyles = {
|
|
9
|
+
..._defaultTimestampContentStyles.defaultTimestampContentStyles,
|
|
11
10
|
color: "#0063B1",
|
|
12
11
|
cursor: "pointer"
|
|
13
12
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultUserMessageBoxStyles = void 0;
|
|
7
|
+
const defaultUserMessageBoxStyles = {
|
|
8
|
+
maxWidth: "75%"
|
|
9
|
+
};
|
|
10
|
+
exports.defaultUserMessageBoxStyles = defaultUserMessageBoxStyles;
|
|
@@ -4,20 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.groupActivitiesMiddleware = void 0;
|
|
7
|
-
|
|
8
7
|
var _Constants = require("../../../../../common/Constants");
|
|
9
|
-
|
|
10
8
|
/******
|
|
11
9
|
* GroupActivitiesMiddleware
|
|
12
10
|
*
|
|
13
11
|
* This middleware controls which messages are grouped together regarding to timestamps. It does the following processing:
|
|
14
12
|
* 1. Distinguishes different messages by sender name and whether it is a system message
|
|
15
13
|
******/
|
|
14
|
+
|
|
16
15
|
function bin(items, grouping) {
|
|
17
16
|
let lastBin;
|
|
18
17
|
const bins = [];
|
|
19
18
|
let lastItem;
|
|
20
|
-
|
|
21
19
|
if (items.length > 0) {
|
|
22
20
|
items.forEach(item => {
|
|
23
21
|
if (lastItem && grouping(lastItem, item)) {
|
|
@@ -26,20 +24,17 @@ function bin(items, grouping) {
|
|
|
26
24
|
lastBin = [item];
|
|
27
25
|
bins.push(lastBin);
|
|
28
26
|
}
|
|
29
|
-
|
|
30
27
|
lastItem = item;
|
|
31
28
|
});
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
return bins;
|
|
35
|
-
}
|
|
36
|
-
|
|
31
|
+
}
|
|
37
32
|
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
38
34
|
const groupActivitiesMiddleware = () => next => args => {
|
|
39
35
|
const {
|
|
40
36
|
activities
|
|
41
37
|
} = args;
|
|
42
|
-
|
|
43
38
|
if (activities != null && activities.length > 0) {
|
|
44
39
|
const {
|
|
45
40
|
status
|
|
@@ -59,5 +54,4 @@ const groupActivitiesMiddleware = () => next => args => {
|
|
|
59
54
|
return () => false;
|
|
60
55
|
}
|
|
61
56
|
};
|
|
62
|
-
|
|
63
57
|
exports.groupActivitiesMiddleware = groupActivitiesMiddleware;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _WebChatActionType = require("../../enums/WebChatActionType");
|
|
8
|
+
var _Constants = require("../../../../../common/Constants");
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
|
|
10
|
+
const createMessageTimeStampMiddleware = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
dispatch
|
|
13
|
+
} = _ref;
|
|
14
|
+
return next => action => {
|
|
15
|
+
if (isApplicable(action)) {
|
|
16
|
+
return next(evaluateTagsAndOverrideTimeStamp(action));
|
|
17
|
+
}
|
|
18
|
+
return next(action);
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const isApplicable = action => {
|
|
22
|
+
return action.type === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isPVAConversation(action) && isPayloadValid(action) && isValidChannel(action);
|
|
23
|
+
};
|
|
24
|
+
const isPayloadValid = action => {
|
|
25
|
+
var _action$payload;
|
|
26
|
+
return action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.activity;
|
|
27
|
+
};
|
|
28
|
+
const isValidChannel = action => {
|
|
29
|
+
var _action$payload2, _action$payload2$acti;
|
|
30
|
+
return (action === null || action === void 0 ? void 0 : (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : (_action$payload2$acti = _action$payload2.activity) === null || _action$payload2$acti === void 0 ? void 0 : _action$payload2$acti.channelId) === _Constants.Constants.acsChannel;
|
|
31
|
+
};
|
|
32
|
+
const isPVAConversation = action => {
|
|
33
|
+
return !isTagIncluded(action, _Constants.Constants.systemMessageTag) && !isTagIncluded(action, _Constants.Constants.publicMessageTag) && !isRoleUserOn(action);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
const isTagIncluded = (action, tag) => {
|
|
38
|
+
return isDataTagsPresent(action) && action.payload.activity.channelData.tags.includes(tag);
|
|
39
|
+
};
|
|
40
|
+
const isRoleUserOn = action => {
|
|
41
|
+
var _action$payload3, _action$payload3$acti, _action$payload3$acti2;
|
|
42
|
+
return (action === null || action === void 0 ? void 0 : (_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : (_action$payload3$acti = _action$payload3.activity) === null || _action$payload3$acti === void 0 ? void 0 : (_action$payload3$acti2 = _action$payload3$acti.from) === null || _action$payload3$acti2 === void 0 ? void 0 : _action$payload3$acti2.role) === _Constants.Constants.userMessageTag;
|
|
43
|
+
};
|
|
44
|
+
const overrideTimeStamp = (timestampOriginal, timeStampNew) => {
|
|
45
|
+
return isTimestampValid(timeStampNew) ? timeStampNew : timestampOriginal;
|
|
46
|
+
};
|
|
47
|
+
const isTimestampValid = timeStamp => {
|
|
48
|
+
const regex = /(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(T)(\d{2})(:{1})(\d{2})(:{1})(\d{2})(.\d+)([Z]{1}))/;
|
|
49
|
+
return regex.test(timeStamp);
|
|
50
|
+
};
|
|
51
|
+
const isDataTagsPresent = action => {
|
|
52
|
+
var _action$payload4, _action$payload4$acti, _action$payload4$acti2;
|
|
53
|
+
return (action === null || action === void 0 ? void 0 : (_action$payload4 = action.payload) === null || _action$payload4 === void 0 ? void 0 : (_action$payload4$acti = _action$payload4.activity) === null || _action$payload4$acti === void 0 ? void 0 : (_action$payload4$acti2 = _action$payload4$acti.channelData) === null || _action$payload4$acti2 === void 0 ? void 0 : _action$payload4$acti2.tags) && action.payload.activity.channelData.tags.length > 0;
|
|
54
|
+
};
|
|
55
|
+
const evaluateTagsAndOverrideTimeStamp = action => {
|
|
56
|
+
const tagValue = tagLookup(action, _Constants.Constants.prefixTimestampTag);
|
|
57
|
+
if (tagValue) {
|
|
58
|
+
const newTimestamp = extractTimeStamp(tagValue);
|
|
59
|
+
action.payload.activity.timestamp = overrideTimeStamp(action.payload.activity.timestamp, newTimestamp);
|
|
60
|
+
}
|
|
61
|
+
return action;
|
|
62
|
+
};
|
|
63
|
+
const extractTimeStamp = timeStamp => {
|
|
64
|
+
if (timeStamp && timeStamp.length > 0) {
|
|
65
|
+
const ts = timeStamp.split(_Constants.Constants.prefixTimestampTag);
|
|
66
|
+
if (ts && ts.length > 1) {
|
|
67
|
+
return ts[1];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return timeStamp;
|
|
71
|
+
};
|
|
72
|
+
const tagLookup = (action, tag) => {
|
|
73
|
+
if (!isDataTagsPresent(action)) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const tags = action.payload.activity.channelData.tags;
|
|
77
|
+
let value;
|
|
78
|
+
if (tags && tags.length > 0) {
|
|
79
|
+
for (let i = 0; i < tags.length; i++) {
|
|
80
|
+
value = tags[i];
|
|
81
|
+
if (value && value.indexOf(tag) > -1) {
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
};
|
|
88
|
+
var _default = createMessageTimeStampMiddleware;
|
|
89
|
+
exports.default = _default;
|