@microsoft/omnichannel-chat-widget 0.1.0-main.b59a07c → 0.1.0-main.bf74329
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 +32 -0
- package/lib/cjs/common/Constants.js +8 -159
- 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 +36 -22
- package/lib/cjs/common/telemetry/TelemetryHelper.js +14 -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 +65 -93
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +6 -44
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +10 -24
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -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 +11 -42
- package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +14 -43
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
- package/lib/cjs/components/headerstateful/HeaderStateful.js +16 -30
- 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 +67 -38
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +53 -46
- 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 +32 -53
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +68 -82
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -15
- package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
- package/lib/cjs/components/livechatwidget/common/startChat.js +145 -117
- 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 +243 -185
- 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 +10 -42
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +3 -33
- 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 +3 -16
- 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 +27 -37
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -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 +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 +1 -12
- 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 +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 +3 -3
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +4 -2
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +11 -12
- package/lib/cjs/contexts/createReducer.js +145 -100
- package/lib/cjs/controller/componentController.js +4 -33
- 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 +8 -147
- 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 +40 -19
- package/lib/esm/common/telemetry/TelemetryHelper.js +14 -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 +60 -50
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +6 -15
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +12 -10
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +9 -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 +13 -23
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +14 -36
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
- package/lib/esm/components/headerstateful/HeaderStateful.js +16 -15
- 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 +69 -25
- package/lib/esm/components/livechatwidget/common/endChat.js +55 -30
- 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 +35 -22
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +71 -68
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -7
- package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
- package/lib/esm/components/livechatwidget/common/startChat.js +147 -96
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +247 -128
- 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 +13 -26
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +5 -9
- 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 +3 -12
- 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 +27 -22
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -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 +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 +3 -8
- 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 +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 +3 -3
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +4 -2
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -8
- package/lib/esm/contexts/createReducer.js +145 -97
- package/lib/esm/controller/componentController.js +5 -4
- 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 +8 -0
- package/lib/types/common/interfaces/IContextDataStore.d.ts +1 -1
- 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 +25 -6
- package/lib/types/common/utils.d.ts +7 -3
- 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/reconnectChatHelper.d.ts +5 -4
- 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/ILiveChatWidgetControlProps.d.ts +1 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -2
- package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
- package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -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/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/contexts/common/ConversationState.d.ts +3 -2
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +5 -2
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/package.json +5 -4
|
@@ -4,50 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.FooterStateful = void 0;
|
|
7
|
-
|
|
8
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
9
|
var _AudioNotificationStateful = _interopRequireDefault(require("./audionotificationstateful/AudioNotificationStateful"));
|
|
13
|
-
|
|
14
10
|
var _Constants = require("../../common/Constants");
|
|
15
|
-
|
|
16
11
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
17
|
-
|
|
18
12
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
19
|
-
|
|
20
13
|
var _Audios = require("../../assets/Audios");
|
|
21
|
-
|
|
22
14
|
var _NotificationHandler = require("../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
|
|
23
|
-
|
|
24
15
|
var _NotificationScenarios = require("../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
|
|
25
|
-
|
|
26
16
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
27
|
-
|
|
28
17
|
var _DownloadTranscriptStateful = require("./downloadtranscriptstateful/DownloadTranscriptStateful");
|
|
29
|
-
|
|
30
18
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
31
|
-
|
|
32
19
|
var _useChatSDKStore = _interopRequireDefault(require("../../hooks/useChatSDKStore"));
|
|
33
|
-
|
|
34
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
-
|
|
36
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
22
|
const FooterStateful = props => {
|
|
38
23
|
var _footerProps$controlP3, _footerProps$controlP4;
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
25
|
+
// hideFooterDisplay - the purpose of this is to keep the footer always "active",
|
|
41
26
|
// but hide it visually in certain states (e.g., loading state) and show in some other states (e.g. active state).
|
|
42
27
|
// The reason for this approach is to make sure that state variables for audio notification work correctly after minimizing
|
|
43
|
-
|
|
44
28
|
const {
|
|
45
29
|
footerProps,
|
|
46
30
|
downloadTranscriptProps,
|
|
47
31
|
audioNotificationProps,
|
|
48
32
|
hideFooterDisplay
|
|
49
|
-
} = props;
|
|
50
|
-
|
|
33
|
+
} = props;
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
35
|
const chatSDK = (0, _useChatSDKStore.default)();
|
|
52
36
|
const controlProps = {
|
|
53
37
|
id: "oc-lcw-footer",
|
|
@@ -58,7 +42,6 @@ const FooterStateful = props => {
|
|
|
58
42
|
Event: _TelemetryConstants.TelemetryEvent.DownloadTranscriptButtonClicked,
|
|
59
43
|
Description: "Download Transcript button clicked."
|
|
60
44
|
});
|
|
61
|
-
|
|
62
45
|
await (0, _DownloadTranscriptStateful.downloadTranscript)(chatSDK, downloadTranscriptProps === null || downloadTranscriptProps === void 0 ? void 0 : downloadTranscriptProps.renderMarkDown, downloadTranscriptProps === null || downloadTranscriptProps === void 0 ? void 0 : downloadTranscriptProps.bannerMessageOnError, downloadTranscriptProps === null || downloadTranscriptProps === void 0 ? void 0 : downloadTranscriptProps.attachmentMessage);
|
|
63
46
|
} catch (ex) {
|
|
64
47
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
@@ -67,28 +50,22 @@ const FooterStateful = props => {
|
|
|
67
50
|
exception: ex
|
|
68
51
|
}
|
|
69
52
|
});
|
|
70
|
-
|
|
71
53
|
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.DownloadTranscriptError, (downloadTranscriptProps === null || downloadTranscriptProps === void 0 ? void 0 : downloadTranscriptProps.bannerMessageOnError) ?? _Constants.Constants.defaultDownloadTranscriptError);
|
|
72
54
|
}
|
|
73
55
|
},
|
|
74
56
|
onEmailTranscriptClick: () => {
|
|
75
57
|
var _footerProps$controlP, _footerProps$controlP2;
|
|
76
|
-
|
|
77
58
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
78
59
|
Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptButtonClicked,
|
|
79
60
|
Description: "Email Transcript button clicked."
|
|
80
61
|
});
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const emailTranscriptButton = document.getElementById(emailTranscriptButtonId);
|
|
84
|
-
|
|
85
|
-
if (emailTranscriptButton) {
|
|
62
|
+
const emailTranscriptButtonId = (footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP = footerProps.controlProps) === null || _footerProps$controlP === void 0 ? void 0 : (_footerProps$controlP2 = _footerProps$controlP.emailTranscriptButtonProps) === null || _footerProps$controlP2 === void 0 ? void 0 : _footerProps$controlP2.id) ?? `${controlProps.id}-emailtranscript-button`;
|
|
63
|
+
if (emailTranscriptButtonId) {
|
|
86
64
|
dispatch({
|
|
87
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.
|
|
88
|
-
payload:
|
|
65
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
|
|
66
|
+
payload: emailTranscriptButtonId
|
|
89
67
|
});
|
|
90
68
|
}
|
|
91
|
-
|
|
92
69
|
dispatch({
|
|
93
70
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_EMAIL_TRANSCRIPT_PANE,
|
|
94
71
|
payload: true
|
|
@@ -99,25 +76,18 @@ const FooterStateful = props => {
|
|
|
99
76
|
Event: _TelemetryConstants.TelemetryEvent.AudioToggleButtonClicked,
|
|
100
77
|
Description: "Audio button clicked."
|
|
101
78
|
});
|
|
102
|
-
|
|
103
79
|
dispatch({
|
|
104
80
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
|
|
105
81
|
payload: !state.appStates.isAudioMuted
|
|
106
82
|
});
|
|
107
83
|
},
|
|
108
84
|
...(footerProps === null || footerProps === void 0 ? void 0 : footerProps.controlProps),
|
|
109
|
-
audioNotificationButtonProps: {
|
|
85
|
+
audioNotificationButtonProps: {
|
|
86
|
+
...(footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP3 = footerProps.controlProps) === null || _footerProps$controlP3 === void 0 ? void 0 : _footerProps$controlP3.audioNotificationButtonProps),
|
|
110
87
|
isAudioMuted: state.appStates.isAudioMuted
|
|
111
88
|
}
|
|
112
89
|
};
|
|
113
|
-
|
|
114
|
-
const footer = document.getElementById(footerId);
|
|
115
|
-
|
|
116
|
-
if (footer) {
|
|
117
|
-
footer.style.display = hideFooterDisplay ? "none" : "";
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Footer, {
|
|
90
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hideFooterDisplay && /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Footer, {
|
|
121
91
|
componentOverrides: footerProps === null || footerProps === void 0 ? void 0 : footerProps.componentOverrides,
|
|
122
92
|
controlProps: controlProps,
|
|
123
93
|
styleProps: footerProps === null || footerProps === void 0 ? void 0 : footerProps.styleProps
|
|
@@ -126,7 +96,6 @@ const FooterStateful = props => {
|
|
|
126
96
|
isAudioMuted: state.appStates.isAudioMuted === null ? (footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP4 = footerProps.controlProps) === null || _footerProps$controlP4 === void 0 ? void 0 : _footerProps$controlP4.hideAudioNotificationButton) ?? false : state.appStates.isAudioMuted ?? false
|
|
127
97
|
}));
|
|
128
98
|
};
|
|
129
|
-
|
|
130
99
|
exports.FooterStateful = FooterStateful;
|
|
131
100
|
var _default = FooterStateful;
|
|
132
101
|
exports.default = _default;
|
package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js
CHANGED
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.AudioNotificationStateful = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
|
-
|
|
12
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
|
|
14
10
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
|
|
16
11
|
const AudioNotificationStateful = props => {
|
|
17
12
|
const {
|
|
18
13
|
audioSrc,
|
|
@@ -30,7 +25,6 @@ const AudioNotificationStateful = props => {
|
|
|
30
25
|
}, [isAudioMuted]);
|
|
31
26
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
32
27
|
};
|
|
33
|
-
|
|
34
28
|
exports.AudioNotificationStateful = AudioNotificationStateful;
|
|
35
29
|
var _default = AudioNotificationStateful;
|
|
36
30
|
exports.default = _default;
|
package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js
CHANGED
|
@@ -4,37 +4,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.downloadTranscript = void 0;
|
|
7
|
-
|
|
8
7
|
var _Constants = require("../../../common/Constants");
|
|
9
|
-
|
|
10
8
|
var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
|
|
11
|
-
|
|
12
9
|
var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
|
|
13
|
-
|
|
14
10
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
15
|
-
|
|
16
11
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
17
|
-
|
|
18
12
|
const processDisplayName = displayName => {
|
|
19
13
|
// if displayname matches "teamsvisitor:<some alphanumeric string>", we replace it with "Customer"
|
|
20
14
|
const displayNameRegex = ".+:.+";
|
|
21
15
|
const matchedTeamsDisplayName = displayName.match(displayNameRegex);
|
|
22
|
-
|
|
23
16
|
if (displayName.indexOf("teamsvisitor") >= 0 && matchedTeamsDisplayName && matchedTeamsDisplayName.length > 0) {
|
|
24
17
|
displayName = "Customer";
|
|
25
18
|
}
|
|
26
|
-
|
|
27
19
|
return displayName;
|
|
28
20
|
};
|
|
29
|
-
|
|
30
21
|
const constructIconName = displayName => {
|
|
31
22
|
if (!displayName) {
|
|
32
23
|
return "";
|
|
33
24
|
}
|
|
34
|
-
|
|
35
25
|
let iconName = "C";
|
|
36
26
|
const displayNameSplit = displayName.split(" ");
|
|
37
|
-
|
|
38
27
|
if (displayNameSplit.length > 1) {
|
|
39
28
|
// get the first letter of name and surname
|
|
40
29
|
iconName = displayNameSplit[0][0] + displayNameSplit[1][0];
|
|
@@ -42,55 +31,42 @@ const constructIconName = displayName => {
|
|
|
42
31
|
// get the first letter of name
|
|
43
32
|
iconName = displayNameSplit[0][0];
|
|
44
33
|
}
|
|
45
|
-
|
|
46
34
|
return iconName;
|
|
47
35
|
};
|
|
48
|
-
|
|
49
36
|
const processCreatedDateTime = (createdDateTime, chatCount) => {
|
|
50
|
-
const formattedDate = new Date(createdDateTime);
|
|
51
|
-
|
|
52
|
-
const formattedTimeString = formattedDate.toLocaleTimeString("en-us"
|
|
53
|
-
/* Bootstrapper.LiveChatConfiguration.chatWidgetLocale */
|
|
54
|
-
, {
|
|
37
|
+
const formattedDate = new Date(createdDateTime);
|
|
38
|
+
// TODO: Localization:
|
|
39
|
+
const formattedTimeString = formattedDate.toLocaleTimeString("en-us" /* Bootstrapper.LiveChatConfiguration.chatWidgetLocale */, {
|
|
55
40
|
hour: "2-digit",
|
|
56
41
|
minute: "2-digit"
|
|
57
42
|
});
|
|
58
43
|
const formattedSplitTimeString = formattedTimeString.split(" ");
|
|
59
44
|
let finalizedTimeString = "";
|
|
60
|
-
|
|
61
45
|
if (formattedSplitTimeString && formattedSplitTimeString.length > 1) {
|
|
62
46
|
finalizedTimeString = formattedSplitTimeString[0] + " " + formattedSplitTimeString[1];
|
|
63
47
|
}
|
|
64
|
-
|
|
65
48
|
if (chatCount == 0) {
|
|
66
49
|
return formattedDate.toLocaleDateString("en-us") + " " + finalizedTimeString;
|
|
67
50
|
}
|
|
68
|
-
|
|
69
51
|
return finalizedTimeString;
|
|
70
52
|
};
|
|
71
|
-
|
|
72
53
|
const processContent = (transcriptContent, isAgentChat, renderMarkDown) => {
|
|
73
54
|
if (transcriptContent.toString().toLowerCase().indexOf(_Constants.TranscriptConstants.TranscriptMessageEmojiMessageType) >= 0) {
|
|
74
55
|
// eslint-disable-next-line no-useless-escape
|
|
75
56
|
const emojiRegex = "<img src=\"http.*:\/\/.+\/objects\/.+\/views.+\">";
|
|
76
57
|
const matchedEmojiImgTag = transcriptContent.match(emojiRegex);
|
|
77
|
-
|
|
78
58
|
if (matchedEmojiImgTag && matchedEmojiImgTag.length > 0 && transcriptContent.toString().toLowerCase().indexOf(matchedEmojiImgTag[0]) >= 0) {
|
|
79
59
|
transcriptContent = transcriptContent.replace(matchedEmojiImgTag[0], "");
|
|
80
60
|
}
|
|
81
61
|
}
|
|
82
|
-
|
|
83
62
|
if (!isAgentChat && transcriptContent.toString().toLowerCase().indexOf("a href") >= 0 && transcriptContent.toString().toLowerCase().indexOf("target") >= 0) {
|
|
84
63
|
transcriptContent = transcriptContent.slice(0, transcriptContent.toString().indexOf("target")) + " style='color:white' " + transcriptContent.slice(transcriptContent.toString().indexOf("target"));
|
|
85
64
|
}
|
|
86
|
-
|
|
87
65
|
if (renderMarkDown) {
|
|
88
66
|
transcriptContent = renderMarkDown(transcriptContent);
|
|
89
67
|
}
|
|
90
|
-
|
|
91
68
|
return transcriptContent;
|
|
92
69
|
};
|
|
93
|
-
|
|
94
70
|
const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMessage) => {
|
|
95
71
|
const chats = JSON.parse(chatTranscripts).reverse();
|
|
96
72
|
const docTypeTag = "<!DOCTYPE html>";
|
|
@@ -105,8 +81,9 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
|
|
|
105
81
|
let tabIndex = 1;
|
|
106
82
|
const mainTranscriptSection = "<div class='allTranscripts' style='max-width:60%;min-width:30%;margin-left:20%;background-color:#FFFFFF;'>";
|
|
107
83
|
let previousDisplayName = "";
|
|
108
|
-
let chatCount = 0;
|
|
84
|
+
let chatCount = 0;
|
|
109
85
|
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
87
|
chats.forEach(value => {
|
|
111
88
|
let dialogNameMarginTop = "6px";
|
|
112
89
|
let dialogboxMarginleft = "40px";
|
|
@@ -116,8 +93,13 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
|
|
|
116
93
|
let fileAttachmentName = _Constants.TranscriptConstants.DefaultFileAttachmentName;
|
|
117
94
|
let dialogColor = _Constants.TranscriptConstants.CustomerDialogColor;
|
|
118
95
|
let fontColor = _Constants.TranscriptConstants.CustomerFontColor;
|
|
119
|
-
|
|
120
|
-
|
|
96
|
+
const isSystemMessage = value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.systemMessageTag) !== -1;
|
|
97
|
+
const isControlMessage = value.isControlMessage && value.isControlMessage === true;
|
|
98
|
+
const isAdaptiveCard = value.contentType && value.contentType.toLowerCase() === _Constants.TranscriptConstants.AdaptiveCardType;
|
|
99
|
+
const isInternalMessage = value.deliveryMode && value.deliveryMode.toLowerCase() === _Constants.TranscriptConstants.InternalMode;
|
|
100
|
+
const isHiddenMessage = value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.hiddenTag.toLowerCase()) !== -1;
|
|
101
|
+
const shouldIgnoreMessage = isSystemMessage || isControlMessage || isAdaptiveCard || isInternalMessage || isHiddenMessage;
|
|
102
|
+
if (shouldIgnoreMessage) {
|
|
121
103
|
return;
|
|
122
104
|
} else if (value.from) {
|
|
123
105
|
if (value.from.application) {
|
|
@@ -132,19 +114,15 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
|
|
|
132
114
|
displayName = value.from.user.displayName;
|
|
133
115
|
dialogColor = _Constants.TranscriptConstants.CustomerDialogColor;
|
|
134
116
|
}
|
|
135
|
-
|
|
136
117
|
displayName = processDisplayName(displayName);
|
|
137
118
|
iconName = constructIconName(displayName);
|
|
138
|
-
|
|
139
119
|
if (value.attachments && value.attachments.length > 0 && value.attachments[0].name) {
|
|
140
120
|
fileAttachmentName = value.attachments[0].name;
|
|
141
121
|
value.content = attachmentMessage ? attachmentMessage + " " + fileAttachmentName : "The following attachment was uploaded during the conversation: " + fileAttachmentName;
|
|
142
122
|
}
|
|
143
123
|
}
|
|
144
|
-
|
|
145
124
|
let displayNamePlaceholder = processCreatedDateTime(value.createdDateTime, chatCount);
|
|
146
125
|
let iconPara = "";
|
|
147
|
-
|
|
148
126
|
if (displayName !== previousDisplayName) {
|
|
149
127
|
dialogboxMarginleft = "0px";
|
|
150
128
|
displayNamePlaceholder = "<b>" + displayName + " </b> " + processCreatedDateTime(value.createdDateTime, chatCount);
|
|
@@ -155,17 +133,14 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
|
|
|
155
133
|
</div>";
|
|
156
134
|
tabIndex++;
|
|
157
135
|
}
|
|
158
|
-
|
|
159
136
|
if (displayName !== previousDisplayName) {
|
|
160
137
|
if (previousDisplayName === "") {
|
|
161
138
|
dialogNameMarginTop = "0px";
|
|
162
139
|
}
|
|
163
|
-
|
|
164
140
|
if (previousDisplayName !== "") {
|
|
165
141
|
dialogNameMarginTop = "20px";
|
|
166
142
|
}
|
|
167
143
|
}
|
|
168
|
-
|
|
169
144
|
const displayNameDiv = "<div style='margin-right:-2px;margin-top:" + dialogNameMarginTop + ";margin-bottom:-2px;margin-left:42px;top:-2px;position:relative;'>\
|
|
170
145
|
<font tabindex ='" + tabIndex + "' size = '1px' color='#000000' style='font-family:Segoe UI,SegoeUI,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500;'>\
|
|
171
146
|
" + displayNamePlaceholder + "\
|
|
@@ -179,16 +154,14 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
|
|
|
179
154
|
});
|
|
180
155
|
const str = docTypeTag + docStartTag + docMetaTag + bodyStartTag + mainTranscriptSection + beautifiedChats + divEndTag + bodyEndTag + docEndTag;
|
|
181
156
|
return str;
|
|
182
|
-
};
|
|
183
|
-
|
|
157
|
+
};
|
|
184
158
|
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
185
160
|
const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError, attachmentMessage) => {
|
|
186
161
|
let data = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getLiveChatTranscript());
|
|
187
|
-
|
|
188
162
|
if (typeof data === _Constants.Constants.String) {
|
|
189
163
|
data = JSON.parse(data);
|
|
190
164
|
}
|
|
191
|
-
|
|
192
165
|
if (data[_Constants.Constants.ChatMessagesJson] !== null && data[_Constants.Constants.ChatMessagesJson] !== undefined) {
|
|
193
166
|
const chatTranscripts = window.btoa(encodeURIComponent(beautifyChatTranscripts(data[_Constants.Constants.ChatMessagesJson], renderMarkDown, attachmentMessage)));
|
|
194
167
|
const byteCharacters = decodeURIComponent(window.atob(chatTranscripts));
|
|
@@ -208,9 +181,7 @@ const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError,
|
|
|
208
181
|
exception: "Download transcript failed: response null or undefined."
|
|
209
182
|
}
|
|
210
183
|
});
|
|
211
|
-
|
|
212
184
|
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.DownloadTranscriptError, bannerMessageOnError ?? _Constants.Constants.defaultDownloadTranscriptError);
|
|
213
185
|
}
|
|
214
186
|
};
|
|
215
|
-
|
|
216
187
|
exports.downloadTranscript = downloadTranscript;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _omnichannelChatSdk = require("@microsoft/omnichannel-chat-sdk");
|
|
4
|
-
|
|
5
4
|
var _react = require("@testing-library/react");
|
|
6
|
-
|
|
7
5
|
jest.mock("@microsoft/omnichannel-chat-sdk");
|
|
8
6
|
describe("DownloadTranscriptStateful unit test", () => {
|
|
9
7
|
afterEach(() => {
|
|
@@ -18,10 +16,10 @@ describe("DownloadTranscriptStateful unit test", () => {
|
|
|
18
16
|
};
|
|
19
17
|
const chatSDK = new _omnichannelChatSdk.OmnichannelChatSDK(omnichannelConfig);
|
|
20
18
|
jest.spyOn(chatSDK, "getLiveChatTranscript").mockResolvedValue(Promise.resolve());
|
|
21
|
-
|
|
22
19
|
try {
|
|
23
20
|
await chatSDK.getLiveChatTranscript();
|
|
24
|
-
expect(chatSDK.getLiveChatTranscript).toHaveBeenCalledTimes(1);
|
|
21
|
+
expect(chatSDK.getLiveChatTranscript).toHaveBeenCalledTimes(1);
|
|
22
|
+
// eslint-disable-next-line no-empty
|
|
25
23
|
} catch (ex) {}
|
|
26
24
|
});
|
|
27
25
|
it("Method getLiveChatTranscript throws exception", async () => {
|
|
@@ -33,9 +31,9 @@ describe("DownloadTranscriptStateful unit test", () => {
|
|
|
33
31
|
};
|
|
34
32
|
const chatSDK = new _omnichannelChatSdk.OmnichannelChatSDK(omnichannelConfig);
|
|
35
33
|
jest.spyOn(chatSDK, "getLiveChatTranscript").mockRejectedValue(new Error(errorMessage));
|
|
36
|
-
|
|
37
34
|
try {
|
|
38
|
-
await chatSDK.getLiveChatTranscript();
|
|
35
|
+
await chatSDK.getLiveChatTranscript();
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
37
|
} catch (ex) {
|
|
40
38
|
expect(ex.message).toEqual(errorMessage);
|
|
41
39
|
}
|
|
@@ -48,9 +46,9 @@ describe("DownloadTranscriptStateful unit test", () => {
|
|
|
48
46
|
widgetId: ""
|
|
49
47
|
};
|
|
50
48
|
const chatSDK = new _omnichannelChatSdk.OmnichannelChatSDK(omnichannelConfig);
|
|
51
|
-
|
|
52
49
|
try {
|
|
53
|
-
await chatSDK.getLiveChatTranscript();
|
|
50
|
+
await chatSDK.getLiveChatTranscript();
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
52
|
} catch (ex) {
|
|
55
53
|
expect(ex.message).toEqual(errorMessage);
|
|
56
54
|
}
|
|
@@ -4,43 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.HeaderStateful = void 0;
|
|
7
|
-
|
|
8
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _ConversationState = require("../../contexts/common/ConversationState");
|
|
13
|
-
|
|
14
10
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
15
|
-
|
|
16
11
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
17
|
-
|
|
18
12
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
19
|
-
|
|
20
13
|
var _defaultOutOfOfficeHeaderStyleProps = require("./common/styleProps/defaultOutOfOfficeHeaderStyleProps");
|
|
21
|
-
|
|
22
14
|
var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
|
|
23
|
-
|
|
24
15
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
25
|
-
|
|
26
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
|
|
28
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
19
|
const HeaderStateful = props => {
|
|
33
20
|
var _state$domainStates$l, _state$domainStates$l2, _headerProps$controlP, _headerProps$controlP2, _headerProps$controlP3, _outOfOfficeHeaderPro;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
21
|
+
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
23
|
const [adapter] = (0, _useChatAdapterStore.default)();
|
|
38
24
|
const {
|
|
39
25
|
headerProps,
|
|
40
26
|
outOfOfficeHeaderProps,
|
|
41
27
|
endChat
|
|
42
|
-
} = props;
|
|
43
|
-
|
|
28
|
+
} = props;
|
|
29
|
+
//Setting OutOfOperatingHours Flag
|
|
44
30
|
const [outOfOperatingHours, setOutOfOperatingHours] = (0, _react.useState)(((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.OutOfOperatingHours) === "True");
|
|
45
31
|
const outOfOfficeStyleProps = Object.assign({}, _defaultOutOfOfficeHeaderStyleProps.defaultOutOfOfficeHeaderStyleProps, outOfOfficeHeaderProps === null || outOfOfficeHeaderProps === void 0 ? void 0 : outOfOfficeHeaderProps.styleProps);
|
|
46
32
|
const conversationState = (0, _react.useRef)(state.appStates.conversationState);
|
|
@@ -52,18 +38,17 @@ const HeaderStateful = props => {
|
|
|
52
38
|
Event: _TelemetryConstants.TelemetryEvent.HeaderMinimizeButtonClicked,
|
|
53
39
|
Description: "Header Minimize button clicked."
|
|
54
40
|
});
|
|
55
|
-
|
|
56
41
|
dispatch({
|
|
57
42
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
58
43
|
payload: true
|
|
59
44
|
});
|
|
60
45
|
},
|
|
61
46
|
onCloseClick: async () => {
|
|
47
|
+
var _props$headerProps, _props$headerProps$co, _props$headerProps$co2;
|
|
62
48
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
63
49
|
Event: _TelemetryConstants.TelemetryEvent.HeaderCloseButtonClicked,
|
|
64
50
|
Description: "Header Close button clicked."
|
|
65
51
|
});
|
|
66
|
-
|
|
67
52
|
if (conversationState.current === _ConversationState.ConversationState.Active) {
|
|
68
53
|
dispatch({
|
|
69
54
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
|
|
@@ -72,17 +57,20 @@ const HeaderStateful = props => {
|
|
|
72
57
|
} else {
|
|
73
58
|
const skipEndChatSDK = true;
|
|
74
59
|
const skipCloseChat = false;
|
|
75
|
-
|
|
60
|
+
const postMessageToOtherTabs = true;
|
|
61
|
+
await endChat(adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTabs);
|
|
62
|
+
}
|
|
63
|
+
const closeButtonId = ((_props$headerProps = props.headerProps) === null || _props$headerProps === void 0 ? void 0 : (_props$headerProps$co = _props$headerProps.controlProps) === null || _props$headerProps$co === void 0 ? void 0 : (_props$headerProps$co2 = _props$headerProps$co.closeButtonProps) === null || _props$headerProps$co2 === void 0 ? void 0 : _props$headerProps$co2.id) ?? `${controlProps.id}-close-button`;
|
|
64
|
+
if (closeButtonId) {
|
|
65
|
+
dispatch({
|
|
66
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
|
|
67
|
+
payload: closeButtonId
|
|
68
|
+
});
|
|
76
69
|
}
|
|
77
|
-
|
|
78
|
-
dispatch({
|
|
79
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
|
|
80
|
-
payload: document.getElementById(`${controlProps.id}-closebutton`)
|
|
81
|
-
});
|
|
82
70
|
},
|
|
83
71
|
...(headerProps === null || headerProps === void 0 ? void 0 : headerProps.controlProps),
|
|
84
|
-
hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP = headerProps.controlProps) === null || _headerProps$controlP === void 0 ? void 0 : _headerProps$controlP.hideTitle),
|
|
85
|
-
hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP2 = headerProps.controlProps) === null || _headerProps$controlP2 === void 0 ? void 0 : _headerProps$controlP2.hideIcon),
|
|
72
|
+
hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP = headerProps.controlProps) === null || _headerProps$controlP === void 0 ? void 0 : _headerProps$controlP.hideTitle),
|
|
73
|
+
hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP2 = headerProps.controlProps) === null || _headerProps$controlP2 === void 0 ? void 0 : _headerProps$controlP2.hideIcon),
|
|
86
74
|
hideCloseButton: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.Prechat || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP3 = headerProps.controlProps) === null || _headerProps$controlP3 === void 0 ? void 0 : _headerProps$controlP3.hideCloseButton)
|
|
87
75
|
};
|
|
88
76
|
const outOfOfficeControlProps = {
|
|
@@ -104,7 +92,6 @@ const HeaderStateful = props => {
|
|
|
104
92
|
if (state.appStates.outsideOperatingHours) {
|
|
105
93
|
setOutOfOperatingHours(true);
|
|
106
94
|
}
|
|
107
|
-
|
|
108
95
|
if (state.appStates.conversationState) {
|
|
109
96
|
conversationState.current = state.appStates.conversationState;
|
|
110
97
|
}
|
|
@@ -115,7 +102,6 @@ const HeaderStateful = props => {
|
|
|
115
102
|
styleProps: outOfOperatingHours || state.appStates.conversationState === _ConversationState.ConversationState.OutOfOffice ? outOfOfficeStyleProps : headerProps === null || headerProps === void 0 ? void 0 : headerProps.styleProps
|
|
116
103
|
});
|
|
117
104
|
};
|
|
118
|
-
|
|
119
105
|
exports.HeaderStateful = HeaderStateful;
|
|
120
106
|
var _default = HeaderStateful;
|
|
121
107
|
exports.default = _default;
|
|
@@ -4,31 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.LiveChatWidget = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _ChatAdapterStore = require("../../contexts/ChatAdapterStore");
|
|
11
|
-
|
|
12
9
|
var _ChatContextStore = require("../../contexts/ChatContextStore");
|
|
13
|
-
|
|
14
10
|
var _ChatSDKStore = require("../../contexts/ChatSDKStore");
|
|
15
|
-
|
|
16
11
|
var _LiveChatWidgetStateful = _interopRequireDefault(require("./livechatwidgetstateful/LiveChatWidgetStateful"));
|
|
17
|
-
|
|
18
12
|
var _createReducer = require("../../contexts/createReducer");
|
|
19
|
-
|
|
20
13
|
var _LiveChatWidgetContextInitialState = require("../../contexts/common/LiveChatWidgetContextInitialState");
|
|
21
|
-
|
|
22
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
24
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
-
|
|
26
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
-
|
|
28
17
|
const LiveChatWidget = props => {
|
|
29
18
|
const reducer = (0, _createReducer.createReducer)();
|
|
30
|
-
const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props));
|
|
31
|
-
|
|
19
|
+
const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props));
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
21
|
const [adapter, setAdapter] = (0, _react.useState)(undefined);
|
|
33
22
|
return /*#__PURE__*/_react.default.createElement(_ChatSDKStore.ChatSDKStore.Provider, {
|
|
34
23
|
value: props.chatSDK
|
|
@@ -38,7 +27,6 @@ const LiveChatWidget = props => {
|
|
|
38
27
|
value: [state, dispatch]
|
|
39
28
|
}, /*#__PURE__*/_react.default.createElement(_LiveChatWidgetStateful.default, props))));
|
|
40
29
|
};
|
|
41
|
-
|
|
42
30
|
exports.LiveChatWidget = LiveChatWidget;
|
|
43
31
|
var _default = LiveChatWidget;
|
|
44
32
|
exports.default = _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ActivityStreamHandler = void 0;
|
|
7
|
+
var _Deferred = require("./Deferred");
|
|
8
|
+
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; }
|
|
9
|
+
class ActivityStreamHandler {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Use of a deferred pattern, to hold the execution of the activity.
|
|
16
|
+
*
|
|
17
|
+
* */
|
|
18
|
+
static cork() {
|
|
19
|
+
ActivityStreamHandler.restoreDeferred = new _Deferred.Deferred();
|
|
20
|
+
ActivityStreamHandler.restorePromise = ActivityStreamHandler.restoreDeferred.promise;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the promise, releasing it to continue with the execution of the activity.
|
|
25
|
+
*
|
|
26
|
+
* */
|
|
27
|
+
static uncork() {
|
|
28
|
+
ActivityStreamHandler.restoreDeferred.resolve();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ActivityStreamHandler = ActivityStreamHandler;
|
|
32
|
+
_defineProperty(ActivityStreamHandler, "restoreDeferred", {
|
|
33
|
+
resolve: () => {
|
|
34
|
+
return "initialState";
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
_defineProperty(ActivityStreamHandler, "restorePromise", void 0);
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DefaultActivitySubscriber = void 0;
|
|
7
|
+
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; }
|
|
8
|
+
class DefaultActivitySubscriber {
|
|
9
|
+
constructor() {
|
|
10
|
+
_defineProperty(this, "observer", void 0);
|
|
11
|
+
}
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
async next(activity) {
|
|
14
|
+
this.observer.next(activity);
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.DefaultActivitySubscriber = DefaultActivitySubscriber;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PauseActivitySubscriber = void 0;
|
|
7
|
+
var _ActivityStreamHandler = require("../ActivityStreamHandler");
|
|
8
|
+
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; }
|
|
9
|
+
class PauseActivitySubscriber {
|
|
10
|
+
constructor() {
|
|
11
|
+
_defineProperty(this, "observer", void 0);
|
|
12
|
+
}
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
async apply(activity) {
|
|
15
|
+
await _ActivityStreamHandler.ActivityStreamHandler.restorePromise;
|
|
16
|
+
return activity;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
20
|
+
applicable(activity) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
async next(activity) {
|
|
26
|
+
if (this.applicable(activity)) {
|
|
27
|
+
return await this.apply(activity);
|
|
28
|
+
}
|
|
29
|
+
return activity;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.PauseActivitySubscriber = PauseActivitySubscriber;
|