@microsoft/omnichannel-chat-widget 0.1.0-main.fdf1fdf → 1.0.0
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 +7 -34
- package/lib/cjs/assets/Icons.js +4 -2
- package/lib/cjs/common/Constants.js +31 -171
- package/lib/cjs/common/KeyCodes.js +3 -4
- package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
- package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
- package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +111 -0
- package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +63 -27
- package/lib/cjs/common/telemetry/TelemetryHelper.js +21 -59
- package/lib/cjs/common/telemetry/TelemetryManager.js +3 -32
- 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 +40 -106
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
- package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +18 -49
- package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
- 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 +7 -45
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
- package/lib/cjs/components/headerstateful/HeaderStateful.js +19 -31
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +5 -10
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +139 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -6
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -12
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -20
- package/lib/cjs/components/livechatwidget/common/Deferred.js +6 -11
- package/lib/cjs/components/livechatwidget/common/agentEndConversationHelper.js +36 -0
- package/lib/cjs/components/livechatwidget/common/authHelper.js +13 -15
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +4 -13
- 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 +16 -24
- package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +127 -49
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +65 -70
- 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 +25 -101
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +82 -151
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +256 -12
- package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
- package/lib/cjs/components/livechatwidget/common/startChat.js +185 -128
- package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
- package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
- package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +284 -253
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +37 -25
- package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
- package/lib/cjs/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
- package/lib/cjs/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
- 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 +35 -24
- 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 -38
- package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +8 -24
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -37
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
- package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +5 -18
- package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
- package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
- package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/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 +2 -30
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -33
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +81 -45
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
- package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
- package/lib/cjs/contexts/ChatContextStore.js +0 -2
- package/lib/cjs/contexts/ChatSDKStore.js +0 -2
- package/lib/cjs/contexts/common/ConversationEndEntity.js +12 -0
- package/lib/cjs/contexts/common/ConversationState.js +0 -1
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +34 -29
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -13
- package/lib/cjs/contexts/createReducer.js +190 -110
- package/lib/cjs/controller/componentController.js +2 -31
- package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
- package/lib/cjs/hooks/useChatContextStore.js +0 -6
- package/lib/cjs/hooks/useChatSDKStore.js +0 -6
- package/lib/cjs/hooks/useDebounce.js +28 -0
- package/lib/cjs/hooks/useWindowDimensions.js +30 -0
- package/lib/cjs/index.js +0 -5
- package/lib/cjs/plugins/newMessageEventHandler.js +29 -36
- package/lib/esm/assets/Icons.js +2 -1
- package/lib/esm/common/Constants.js +27 -158
- package/lib/esm/common/KeyCodes.js +3 -3
- package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
- package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
- package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
- package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +67 -24
- package/lib/esm/common/telemetry/TelemetryHelper.js +21 -47
- package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
- 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 +38 -53
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
- package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +20 -30
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
- 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 +7 -35
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
- package/lib/esm/components/headerstateful/HeaderStateful.js +19 -16
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +5 -7
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +134 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -4
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -9
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -16
- package/lib/esm/components/livechatwidget/common/Deferred.js +6 -9
- package/lib/esm/components/livechatwidget/common/agentEndConversationHelper.js +30 -0
- package/lib/esm/components/livechatwidget/common/authHelper.js +13 -10
- package/lib/esm/components/livechatwidget/common/createAdapter.js +6 -6
- 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 +18 -18
- package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +128 -35
- package/lib/esm/components/livechatwidget/common/endChat.js +69 -57
- 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 +28 -67
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +80 -129
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +259 -6
- package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
- package/lib/esm/components/livechatwidget/common/startChat.js +184 -99
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
- package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +287 -188
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +38 -13
- package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
- package/lib/esm/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
- package/lib/esm/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
- 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 +35 -12
- 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 +12 -22
- package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +8 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +19 -11
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +5 -14
- package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
- package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
- package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
- 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 +2 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
- 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 +4 -28
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -22
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +81 -40
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
- package/lib/esm/contexts/ChatAdapterStore.js +2 -1
- package/lib/esm/contexts/ChatContextStore.js +2 -1
- package/lib/esm/contexts/ChatSDKStore.js +2 -1
- package/lib/esm/contexts/common/ConversationEndEntity.js +5 -0
- package/lib/esm/contexts/common/ConversationState.js +0 -1
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +34 -29
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -9
- package/lib/esm/contexts/createReducer.js +190 -107
- package/lib/esm/controller/componentController.js +3 -2
- package/lib/esm/hooks/useChatAdapterStore.js +0 -4
- package/lib/esm/hooks/useChatContextStore.js +0 -4
- package/lib/esm/hooks/useChatSDKStore.js +0 -4
- package/lib/esm/hooks/useDebounce.js +22 -0
- package/lib/esm/hooks/useWindowDimensions.js +23 -0
- package/lib/esm/plugins/newMessageEventHandler.js +29 -26
- package/lib/types/assets/Icons.d.ts +1 -0
- package/lib/types/common/Constants.d.ts +21 -0
- 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 +45 -9
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
- package/lib/types/common/telemetry/definitions/Payload.d.ts +1 -0
- package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +4 -0
- package/lib/types/common/utils.d.ts +1 -0
- package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +0 -7
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +9 -0
- package/lib/types/components/livechatwidget/common/agentEndConversationHelper.d.ts +6 -0
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
- package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/common/initWebChatComposer.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
- package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +6 -1
- package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +3 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -2
- package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
- package/lib/types/components/loadingpanestateful/LoadingPaneStateful.d.ts +1 -2
- package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
- package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.d.ts +4 -0
- package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.d.ts +4 -0
- package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
- package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
- 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/timestamps/SendingTimestamp.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +1 -1
- package/lib/types/contexts/common/ConversationEndEntity.d.ts +4 -0
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +9 -3
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +34 -28
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/lib/types/hooks/useDebounce.d.ts +3 -0
- package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
- package/package.json +3 -3
|
@@ -1,40 +1,32 @@
|
|
|
1
1
|
import { getDomain, isNullOrEmptyString, isNullOrUndefined } from "../../utils";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { AWTPiiKind } from "@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums";
|
|
2
|
+
import { AWTLogManager } from "@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AriaSDK";
|
|
3
|
+
import { AWTCustomerContentKind, AWTPiiKind, AWTPropertyType } from "@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums";
|
|
5
4
|
import { Constants, AriaTelemetryConstants, EnvironmentVersion } from "../../Constants";
|
|
6
5
|
import { TelemetryManager } from "../TelemetryManager";
|
|
7
6
|
export const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
|
|
8
7
|
let _logger;
|
|
9
|
-
|
|
10
8
|
const logger = () => {
|
|
11
9
|
if (isNullOrUndefined(_logger) && !isNullOrEmptyString(ariaTelemetryKey)) {
|
|
12
10
|
const configuration = {
|
|
13
11
|
disableCookiesUsage: disabledCookieUsage
|
|
14
12
|
};
|
|
15
|
-
|
|
16
13
|
if (!isNullOrEmptyString(collectiorUriForTelemetry)) {
|
|
17
14
|
configuration.collectorUri = collectiorUriForTelemetry;
|
|
18
15
|
} else {
|
|
19
16
|
if (TelemetryManager.InternalTelemetryData.environmentVersion == EnvironmentVersion.prod) {
|
|
20
17
|
var _TelemetryManager$Int;
|
|
21
|
-
|
|
22
18
|
const orgUrl = (_TelemetryManager$Int = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.orgUrl;
|
|
23
|
-
|
|
24
19
|
if (!isNullOrUndefined(orgUrl)) {
|
|
25
20
|
// If the given org is a Production EU org, modify the Aria collector uri
|
|
26
21
|
const region = getDomain(orgUrl);
|
|
27
|
-
|
|
28
22
|
if (region === AriaTelemetryConstants.EU) {
|
|
29
23
|
configuration.collectorUri = AriaTelemetryConstants.EUROPE_ENDPOINT;
|
|
30
24
|
}
|
|
31
25
|
}
|
|
32
26
|
}
|
|
33
27
|
}
|
|
34
|
-
|
|
35
28
|
try {
|
|
36
29
|
_logger = AWTLogManager.initialize(ariaTelemetryKey, configuration);
|
|
37
|
-
|
|
38
30
|
if (_logger === undefined) {
|
|
39
31
|
_logger = AWTLogManager.getLogger(ariaTelemetryKey);
|
|
40
32
|
}
|
|
@@ -42,27 +34,39 @@ export const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, colle
|
|
|
42
34
|
console.log(error);
|
|
43
35
|
}
|
|
44
36
|
}
|
|
45
|
-
|
|
46
37
|
return _logger;
|
|
47
38
|
};
|
|
48
|
-
|
|
49
39
|
const ariaLogger = {
|
|
50
40
|
log: (logLevel, telemetryInput) => {
|
|
51
41
|
try {
|
|
52
|
-
|
|
53
|
-
const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo;
|
|
54
|
-
|
|
55
|
-
eventProperties
|
|
56
|
-
|
|
42
|
+
var _telemetryInput$telem;
|
|
43
|
+
const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : (_telemetryInput$telem = telemetryInput.telemetryInfo) === null || _telemetryInput$telem === void 0 ? void 0 : _telemetryInput$telem.telemetryInfo;
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
+
const eventProperties = {
|
|
46
|
+
name: telemetryInput.scenarioType,
|
|
47
|
+
properties: {}
|
|
48
|
+
};
|
|
57
49
|
if (telemetryInfo) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
51
|
+
Object.keys(telemetryInfo).forEach((key, index) => {
|
|
52
|
+
if (!isNullOrUndefined(telemetryInfo[key]) && !isNullOrEmptyString(telemetryInfo[key])) {
|
|
53
|
+
const property = {
|
|
54
|
+
value: typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key],
|
|
55
|
+
type: typeof telemetryInfo[key] === "number" ? AWTPropertyType.Double : AWTPropertyType.String,
|
|
56
|
+
pii: AWTPiiKind.NotSet,
|
|
57
|
+
cc: AWTCustomerContentKind.NotSet
|
|
58
|
+
};
|
|
59
|
+
eventProperties.properties[key] = property;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const nameProperty = {
|
|
63
|
+
value: Constants.LiveChatWidget,
|
|
64
|
+
type: AWTPropertyType.String,
|
|
65
|
+
pii: AWTPiiKind.GenericData,
|
|
66
|
+
cc: AWTCustomerContentKind.NotSet
|
|
67
|
+
};
|
|
68
|
+
eventProperties.properties[ariaTelemetryApplicationName] = nameProperty;
|
|
64
69
|
}
|
|
65
|
-
|
|
66
70
|
logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
|
|
67
71
|
} catch (error) {
|
|
68
72
|
console.error("Error in logging telemetry to Aria logger:" + error);
|
|
@@ -5,25 +5,20 @@ export const consoleLogger = () => {
|
|
|
5
5
|
log: (logLevel, telemetryInput) => {
|
|
6
6
|
const payload = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.payload && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload : "";
|
|
7
7
|
const telemetryInfo = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.telemetryInfo && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo : "";
|
|
8
|
-
|
|
9
8
|
try {
|
|
10
9
|
switch (logLevel) {
|
|
11
10
|
case LogLevel.INFO:
|
|
12
11
|
console.info(Constants.LiveChatWidget, payload, telemetryInfo);
|
|
13
12
|
break;
|
|
14
|
-
|
|
15
13
|
case LogLevel.DEBUG:
|
|
16
14
|
console.debug(Constants.LiveChatWidget, payload, telemetryInfo);
|
|
17
15
|
break;
|
|
18
|
-
|
|
19
16
|
case LogLevel.WARN:
|
|
20
17
|
console.warn(Constants.LiveChatWidget, payload, telemetryInfo);
|
|
21
18
|
break;
|
|
22
|
-
|
|
23
19
|
case LogLevel.ERROR:
|
|
24
20
|
console.error(Constants.LiveChatWidget, payload, telemetryInfo);
|
|
25
21
|
break;
|
|
26
|
-
|
|
27
22
|
default:
|
|
28
23
|
console.debug(Constants.LiveChatWidget, payload, telemetryInfo);
|
|
29
24
|
break;
|
package/lib/esm/common/utils.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
|
+
var _this = this;
|
|
1
2
|
import { AriaTelemetryConstants, Constants, LocaleConstants } from "./Constants";
|
|
2
3
|
import { DataStoreManager } from "./contextDataStore/DataStoreManager";
|
|
3
4
|
import { KeyCodes } from "./KeyCodes";
|
|
4
5
|
import { BroadcastEvent } from "./telemetry/TelemetryConstants";
|
|
5
6
|
import { Md5 } from "md5-typescript";
|
|
6
|
-
|
|
7
7
|
const getElementBySelector = selector => {
|
|
8
8
|
let element;
|
|
9
|
-
|
|
10
9
|
if (typeof selector === "string") {
|
|
11
10
|
element = document.querySelector(selector);
|
|
12
11
|
} else {
|
|
13
12
|
element = selector;
|
|
14
13
|
}
|
|
15
|
-
|
|
16
14
|
return element;
|
|
17
|
-
};
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// The purpose of this function is:
|
|
18
18
|
// - to make elements not focusable, when confirmation pane or email transcript pane are showing,
|
|
19
19
|
// - to set their initial tab indices back after confirmation pane or email transcript pane are closed
|
|
20
20
|
// Otherwise, the user will be able to click on the screen and tab through different buttons or other elements, even though
|
|
21
21
|
// these dialogs are showing
|
|
22
|
-
|
|
23
|
-
|
|
24
22
|
export const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
25
23
|
if (elements) {
|
|
26
24
|
if (shouldBeFocusable) {
|
|
@@ -29,7 +27,6 @@ export const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
|
29
27
|
elements[index].tabIndex = tabIndexMap.get(elements[index].id);
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
|
-
|
|
33
30
|
tabIndexMap.clear();
|
|
34
31
|
} else {
|
|
35
32
|
for (let index = 0; index < elements.length; index++) {
|
|
@@ -41,64 +38,49 @@ export const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
|
41
38
|
};
|
|
42
39
|
export const findParentFocusableElementsWithoutChildContainer = elementId => {
|
|
43
40
|
const childContainer = document.getElementById(elementId);
|
|
44
|
-
|
|
45
41
|
if (!childContainer) {
|
|
46
42
|
return null;
|
|
47
43
|
}
|
|
48
|
-
|
|
49
44
|
const parentContainer = childContainer.parentElement;
|
|
50
|
-
|
|
51
45
|
if (!parentContainer) {
|
|
52
46
|
return null;
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
const parentFocusableElements = findAllFocusableElement(parentContainer);
|
|
56
|
-
|
|
57
49
|
if (!parentFocusableElements) {
|
|
58
50
|
return null;
|
|
59
51
|
}
|
|
60
|
-
|
|
61
52
|
for (let index = 0; index < parentFocusableElements.length; index++) {
|
|
62
53
|
if (childContainer.contains(parentFocusableElements[index])) {
|
|
63
54
|
parentFocusableElements.splice(index, 1);
|
|
64
55
|
index--;
|
|
65
56
|
}
|
|
66
57
|
}
|
|
67
|
-
|
|
68
58
|
return parentFocusableElements;
|
|
69
59
|
};
|
|
70
60
|
export const findAllFocusableElement = parent => {
|
|
71
61
|
const container = getElementBySelector(parent);
|
|
72
|
-
|
|
73
62
|
if (container !== null) {
|
|
74
63
|
return Array.prototype.slice.call(container.querySelectorAll("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]"));
|
|
75
64
|
}
|
|
76
|
-
|
|
77
65
|
return null;
|
|
78
66
|
};
|
|
79
67
|
export const preventFocusToMoveOutOfElement = elementId => {
|
|
80
68
|
const container = document.getElementById(elementId);
|
|
81
|
-
|
|
82
69
|
if (!container) {
|
|
83
70
|
return;
|
|
84
71
|
}
|
|
85
|
-
|
|
86
72
|
const focusableElements = findAllFocusableElement(container);
|
|
87
|
-
|
|
88
73
|
if (!focusableElements) {
|
|
89
74
|
return;
|
|
90
75
|
}
|
|
91
|
-
|
|
92
76
|
const firstFocusableElement = focusableElements[0];
|
|
93
77
|
const lastFocusableElement = focusableElements[focusableElements.length - 1];
|
|
94
|
-
|
|
95
78
|
firstFocusableElement.onkeydown = e => {
|
|
96
79
|
if (e.shiftKey && e.key === KeyCodes.TAB) {
|
|
97
80
|
e.preventDefault();
|
|
98
81
|
lastFocusableElement === null || lastFocusableElement === void 0 ? void 0 : lastFocusableElement.focus();
|
|
99
82
|
}
|
|
100
83
|
};
|
|
101
|
-
|
|
102
84
|
lastFocusableElement.onkeydown = e => {
|
|
103
85
|
if (!e.shiftKey && e.key === KeyCodes.TAB) {
|
|
104
86
|
e.preventDefault();
|
|
@@ -129,14 +111,12 @@ export const escapeHtml = inputString => {
|
|
|
129
111
|
export const getIconText = text => {
|
|
130
112
|
if (text) {
|
|
131
113
|
const initials = text.split(/\s/).reduce((response, word) => response += word.slice(0, 1), "");
|
|
132
|
-
|
|
133
114
|
if (initials.length > 1) {
|
|
134
115
|
return initials.substring(0, 2).toUpperCase();
|
|
135
116
|
} else {
|
|
136
117
|
return text.substring(0, 2).toUpperCase();
|
|
137
118
|
}
|
|
138
119
|
}
|
|
139
|
-
|
|
140
120
|
return "";
|
|
141
121
|
};
|
|
142
122
|
export const getLocaleDirection = localeLCID => {
|
|
@@ -152,20 +132,16 @@ export const getTimestampHourMinute = timestampStr => {
|
|
|
152
132
|
const minuteFormat = "2-digit";
|
|
153
133
|
const date = new Date(timestampStr);
|
|
154
134
|
const now = new Date();
|
|
155
|
-
|
|
156
135
|
if (isNaN(date.getTime())) {
|
|
157
136
|
return "";
|
|
158
137
|
}
|
|
159
|
-
|
|
160
138
|
if (date.getFullYear() !== now.getFullYear()) {
|
|
161
139
|
yearFormat = "numeric";
|
|
162
140
|
monthDayFormat = "2-digit";
|
|
163
141
|
}
|
|
164
|
-
|
|
165
142
|
if (date.getMonth() !== now.getMonth() || date.getDate() !== now.getDate()) {
|
|
166
143
|
monthDayFormat = "2-digit";
|
|
167
144
|
}
|
|
168
|
-
|
|
169
145
|
return date.toLocaleTimeString(navigator.language, {
|
|
170
146
|
year: yearFormat,
|
|
171
147
|
month: monthDayFormat,
|
|
@@ -179,7 +155,6 @@ export const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) =
|
|
|
179
155
|
try {
|
|
180
156
|
const parsedPayload = JSON.parse(payload.replace(/*/g, "*"));
|
|
181
157
|
const body = parsedPayload.body;
|
|
182
|
-
|
|
183
158
|
if (body) {
|
|
184
159
|
//Parse ID field into available options and add required error messages
|
|
185
160
|
for (const fields of body) {
|
|
@@ -187,23 +162,21 @@ export const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) =
|
|
|
187
162
|
const parsedId = JSON.parse(fields.id);
|
|
188
163
|
fields.id = parsedId.Id;
|
|
189
164
|
fields.isRequired = parsedId.IsRequired ?? false;
|
|
190
|
-
|
|
191
165
|
if (fields.isRequired) {
|
|
192
166
|
fields.errorMessage = requiredFieldMissingMessage.replace("{0}", parsedId.Name ?? "");
|
|
193
167
|
}
|
|
194
168
|
}
|
|
195
169
|
}
|
|
196
170
|
}
|
|
197
|
-
|
|
198
171
|
return JSON.stringify(parsedPayload);
|
|
199
172
|
} catch (ex) {
|
|
200
173
|
throw new Error(`Adaptive card pase error: ${ex}`);
|
|
201
174
|
}
|
|
202
175
|
}
|
|
203
|
-
|
|
204
176
|
return payload;
|
|
205
|
-
};
|
|
177
|
+
};
|
|
206
178
|
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
207
180
|
export const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
208
181
|
if (preChatSurvey && preChatSurvey !== "{}" && values) {
|
|
209
182
|
try {
|
|
@@ -213,14 +186,13 @@ export const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
|
213
186
|
"Type": Constants.InputSubmit
|
|
214
187
|
};
|
|
215
188
|
const computedValues = [];
|
|
216
|
-
|
|
217
189
|
for (const val of values) {
|
|
218
190
|
const index = val.index;
|
|
219
191
|
const Id = body[index].id;
|
|
220
192
|
computedValues[Id] = val.value;
|
|
221
193
|
}
|
|
222
|
-
|
|
223
|
-
|
|
194
|
+
const finalPayload = {
|
|
195
|
+
...type,
|
|
224
196
|
...computedValues
|
|
225
197
|
};
|
|
226
198
|
return finalPayload;
|
|
@@ -228,10 +200,10 @@ export const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
|
228
200
|
throw new Error(`PreChatSurvey Response parse error: ${ex}`);
|
|
229
201
|
}
|
|
230
202
|
}
|
|
231
|
-
|
|
232
203
|
return {};
|
|
233
|
-
};
|
|
204
|
+
};
|
|
234
205
|
|
|
206
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
207
|
export const isNullOrUndefined = obj => {
|
|
236
208
|
return obj === null || obj === undefined;
|
|
237
209
|
};
|
|
@@ -242,26 +214,21 @@ export const newGuid = () => {
|
|
|
242
214
|
//RFC 4122 canonical representation Version-4 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx where x is any hexadecimal digit and y is one of 8, 9, A, or B
|
|
243
215
|
const guidPattern = Constants.GuidPattern;
|
|
244
216
|
let newGuid = "";
|
|
245
|
-
|
|
246
217
|
for (let i = 0; i < guidPattern.length; i++) {
|
|
247
218
|
const randomString = Math.floor(Math.random() * Date.now());
|
|
248
|
-
|
|
249
219
|
switch (guidPattern[i]) {
|
|
250
220
|
case "x":
|
|
251
221
|
newGuid += randomString.toString(16).substring(0, 4);
|
|
252
222
|
break;
|
|
253
223
|
//get 4 digit
|
|
254
|
-
|
|
255
224
|
case "m":
|
|
256
225
|
newGuid += randomString.toString(16).substring(0, 3);
|
|
257
226
|
break;
|
|
258
227
|
//Get 3 digit
|
|
259
|
-
|
|
260
228
|
case "y":
|
|
261
229
|
newGuid += (randomString & 0x3 | 0x8).toString(16);
|
|
262
230
|
break;
|
|
263
231
|
// To get only one of 8, 9, A, or B
|
|
264
|
-
|
|
265
232
|
default:
|
|
266
233
|
newGuid += guidPattern[i];
|
|
267
234
|
//Default "-" and "4"
|
|
@@ -277,18 +244,17 @@ export const createTimer = () => {
|
|
|
277
244
|
const ms = new Date().getTime() - timeStart;
|
|
278
245
|
return ms;
|
|
279
246
|
}
|
|
280
|
-
|
|
281
247
|
};
|
|
282
|
-
};
|
|
283
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
248
|
+
};
|
|
284
249
|
|
|
250
|
+
// Returns the domain of the org
|
|
251
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
285
252
|
export const getDomain = hostValue => {
|
|
286
253
|
for (let i = 0; i < AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
|
|
287
254
|
if (hostValue.endsWith(AriaTelemetryConstants.lcwEUDomainNames[i])) {
|
|
288
255
|
return AriaTelemetryConstants.EU;
|
|
289
256
|
}
|
|
290
257
|
}
|
|
291
|
-
|
|
292
258
|
return AriaTelemetryConstants.Public;
|
|
293
259
|
};
|
|
294
260
|
export const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
|
|
@@ -299,16 +265,15 @@ export const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) =>
|
|
|
299
265
|
if (!isNullOrEmptyString(widgetInstanceId)) {
|
|
300
266
|
return `${BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
301
267
|
}
|
|
302
|
-
|
|
303
268
|
return `${BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
|
|
304
|
-
};
|
|
269
|
+
};
|
|
305
270
|
|
|
271
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
306
272
|
export const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
|
|
307
273
|
// Getting updated state from cache
|
|
308
274
|
try {
|
|
309
275
|
if (DataStoreManager.clientDataStore) {
|
|
310
276
|
var _DataStoreManager$cli;
|
|
311
|
-
|
|
312
277
|
const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
|
|
313
278
|
const widgetStateFromCache = (_DataStoreManager$cli = DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
|
|
314
279
|
const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
|
|
@@ -320,23 +285,43 @@ export const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
|
|
|
320
285
|
console.log(error);
|
|
321
286
|
return null;
|
|
322
287
|
}
|
|
323
|
-
};
|
|
288
|
+
};
|
|
324
289
|
|
|
290
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
325
291
|
export const isUndefinedOrEmpty = object => {
|
|
326
292
|
if (object) {
|
|
327
293
|
if (Object.keys(object).length === 0) {
|
|
328
294
|
return true;
|
|
329
295
|
}
|
|
330
|
-
|
|
331
296
|
return false;
|
|
332
297
|
} else {
|
|
333
298
|
return true;
|
|
334
299
|
}
|
|
335
|
-
};
|
|
300
|
+
};
|
|
336
301
|
|
|
302
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
337
303
|
export const addDelayInMs = ms => {
|
|
338
304
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
339
305
|
};
|
|
340
306
|
export const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
|
|
341
307
|
return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
311
|
+
export const debounceLeading = function (fn) {
|
|
312
|
+
let ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3000;
|
|
313
|
+
let timeoutId;
|
|
314
|
+
return function () {
|
|
315
|
+
// eslint-disable-line @typescript-eslint/no-explicit-any
|
|
316
|
+
|
|
317
|
+
if (!timeoutId) {
|
|
318
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
319
|
+
args[_key] = arguments[_key];
|
|
320
|
+
}
|
|
321
|
+
fn.apply(_this, args);
|
|
322
|
+
}
|
|
323
|
+
timeoutId = setTimeout(() => {
|
|
324
|
+
timeoutId = null;
|
|
325
|
+
}, ms);
|
|
326
|
+
};
|
|
342
327
|
};
|
|
@@ -7,17 +7,17 @@ import useChatContextStore from "../../hooks/useChatContextStore";
|
|
|
7
7
|
import useChatSDKStore from "../../hooks/useChatSDKStore";
|
|
8
8
|
export const CallingContainerStateful = props => {
|
|
9
9
|
var _props$controlProps, _props$controlProps2, _props$controlProps2$, _props$controlProps3, _props$controlProps3$, _props$controlProps3$2, _props$controlProps4, _props$controlProps4$, _props$controlProps4$2, _props$controlProps5;
|
|
10
|
-
|
|
11
10
|
//TODO : Close button confirmation implmentation is pending
|
|
12
|
-
const [state, dispatch] = useChatContextStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
11
|
|
|
14
|
-
const
|
|
12
|
+
const [state, dispatch] = useChatContextStore();
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
const chatSDK = useChatSDKStore();
|
|
15
15
|
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
17
|
const {
|
|
17
18
|
voiceVideoCallingSdk
|
|
18
19
|
} = props;
|
|
19
20
|
let callId;
|
|
20
|
-
|
|
21
21
|
const resetCallingStates = reset => {
|
|
22
22
|
if (reset) {
|
|
23
23
|
dispatch({
|
|
@@ -42,12 +42,10 @@ export const CallingContainerStateful = props => {
|
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
|
-
|
|
46
45
|
useEffect(() => {
|
|
47
46
|
const init = async () => {
|
|
48
47
|
try {
|
|
49
48
|
var _controlProps$current, _controlProps$current2, _controlProps$current3, _controlProps$current4;
|
|
50
|
-
|
|
51
49
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
50
|
TelemetryHelper.callId = callId;
|
|
53
51
|
await voiceVideoCallingSdk.initialize({
|
|
@@ -60,16 +58,15 @@ export const CallingContainerStateful = props => {
|
|
|
60
58
|
});
|
|
61
59
|
} catch (e) {
|
|
62
60
|
TelemetryHelper.logCallingEvent(LogLevel.ERROR, {
|
|
63
|
-
Event: TelemetryEvent.
|
|
61
|
+
Event: TelemetryEvent.VoiceVideoSdkInitializeException,
|
|
64
62
|
Description: `Failed to initialize VideoVoiceCalling Sdk: ${e}`
|
|
65
63
|
});
|
|
66
64
|
}
|
|
67
65
|
};
|
|
68
|
-
|
|
69
66
|
init().then(() => {
|
|
70
67
|
if (voiceVideoCallingSdk) {
|
|
71
68
|
TelemetryHelper.logCallingEvent(LogLevel.INFO, {
|
|
72
|
-
Event: TelemetryEvent.
|
|
69
|
+
Event: TelemetryEvent.VoiceVideoSdkInitialize,
|
|
73
70
|
Description: "Initialize VideoVoiceCalling Sdk Success"
|
|
74
71
|
}, callId);
|
|
75
72
|
voiceVideoCallingSdk.onCallAdded(() => {
|
|
@@ -131,14 +128,12 @@ export const CallingContainerStateful = props => {
|
|
|
131
128
|
}, callId);
|
|
132
129
|
const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
|
|
133
130
|
const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
|
|
134
|
-
|
|
135
131
|
if (isRemoteVideoDisabled && isLocalVideoDisabled) {
|
|
136
132
|
dispatch({
|
|
137
133
|
type: LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
|
|
138
134
|
payload: true
|
|
139
135
|
});
|
|
140
136
|
}
|
|
141
|
-
|
|
142
137
|
dispatch({
|
|
143
138
|
type: LiveChatWidgetActionType.DISABLE_REMOTE_VIDEO,
|
|
144
139
|
payload: isRemoteVideoDisabled
|
|
@@ -150,14 +145,12 @@ export const CallingContainerStateful = props => {
|
|
|
150
145
|
}, callId);
|
|
151
146
|
const isLocalVideoDisabled = !voiceVideoCallingSdk.isLocalVideoEnabled();
|
|
152
147
|
const isRemoteVideoDisabled = !voiceVideoCallingSdk.isRemoteVideoEnabled();
|
|
153
|
-
|
|
154
148
|
if (isRemoteVideoDisabled && isLocalVideoDisabled) {
|
|
155
149
|
dispatch({
|
|
156
150
|
type: LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
|
|
157
151
|
payload: true
|
|
158
152
|
});
|
|
159
153
|
}
|
|
160
|
-
|
|
161
154
|
dispatch({
|
|
162
155
|
type: LiveChatWidgetActionType.DISABLE_LOCAL_VIDEO,
|
|
163
156
|
payload: isLocalVideoDisabled
|
|
@@ -183,7 +176,6 @@ export const CallingContainerStateful = props => {
|
|
|
183
176
|
} else {
|
|
184
177
|
voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.stopCall();
|
|
185
178
|
}
|
|
186
|
-
|
|
187
179
|
voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.close();
|
|
188
180
|
dispatch({
|
|
189
181
|
type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
@@ -231,7 +223,6 @@ export const CallingContainerStateful = props => {
|
|
|
231
223
|
}
|
|
232
224
|
}, callId);
|
|
233
225
|
}
|
|
234
|
-
|
|
235
226
|
dispatch({
|
|
236
227
|
type: LiveChatWidgetActionType.SET_INCOMING_CALL,
|
|
237
228
|
payload: false
|
|
@@ -257,7 +248,6 @@ export const CallingContainerStateful = props => {
|
|
|
257
248
|
}
|
|
258
249
|
}, callId);
|
|
259
250
|
}
|
|
260
|
-
|
|
261
251
|
dispatch({
|
|
262
252
|
type: LiveChatWidgetActionType.SET_INCOMING_CALL,
|
|
263
253
|
payload: false
|
|
@@ -317,7 +307,8 @@ export const CallingContainerStateful = props => {
|
|
|
317
307
|
}, callId);
|
|
318
308
|
}
|
|
319
309
|
}, []),
|
|
320
|
-
nonActionIds: {
|
|
310
|
+
nonActionIds: {
|
|
311
|
+
...(props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : (_props$controlProps2$ = _props$controlProps2.currentCallControlProps) === null || _props$controlProps2$ === void 0 ? void 0 : _props$controlProps2$.nonActionIds),
|
|
321
312
|
selfVideoTileId: (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : (_props$controlProps3$ = _props$controlProps3.currentCallControlProps) === null || _props$controlProps3$ === void 0 ? void 0 : (_props$controlProps3$2 = _props$controlProps3$.nonActionIds) === null || _props$controlProps3$2 === void 0 ? void 0 : _props$controlProps3$2.selfVideoTileId) ?? "selfVideo",
|
|
322
313
|
remoteVideoTileId: (props === null || props === void 0 ? void 0 : (_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : (_props$controlProps4$ = _props$controlProps4.currentCallControlProps) === null || _props$controlProps4$ === void 0 ? void 0 : (_props$controlProps4$2 = _props$controlProps4$.nonActionIds) === null || _props$controlProps4$2 === void 0 ? void 0 : _props$controlProps4$2.remoteVideoTileId) ?? "remoteVideo"
|
|
323
314
|
},
|
|
@@ -11,14 +11,13 @@ import { defaultOutOfOfficeChatButtonStyleProps } from "./common/styleProps/defa
|
|
|
11
11
|
import useChatContextStore from "../../hooks/useChatContextStore";
|
|
12
12
|
export const ChatButtonStateful = props => {
|
|
13
13
|
var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP, _props$buttonProps, _props$buttonProps$co, _props$buttonProps2, _props$buttonProps2$c, _props$buttonProps3, _props$buttonProps3$c;
|
|
14
|
-
|
|
15
14
|
const [state, dispatch] = useChatContextStore();
|
|
16
15
|
const {
|
|
17
16
|
buttonProps,
|
|
18
17
|
outOfOfficeButtonProps,
|
|
19
18
|
startChat
|
|
20
|
-
} = props;
|
|
21
|
-
|
|
19
|
+
} = props;
|
|
20
|
+
//Setting OutOfOperatingHours Flag
|
|
22
21
|
const [outOfOperatingHours, setOutOfOperatingHours] = 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");
|
|
23
22
|
const proactiveChatInNewWindow = useRef(state.appStates.proactiveChatStates.proactiveChatInNewWindow);
|
|
24
23
|
const outOfOfficeStyleProps = Object.assign({}, defaultOutOfOfficeChatButtonStyleProps, outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.styleProps);
|
|
@@ -33,7 +32,6 @@ export const ChatButtonStateful = props => {
|
|
|
33
32
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
34
33
|
Event: TelemetryEvent.LCWChatButtonClicked
|
|
35
34
|
});
|
|
36
|
-
|
|
37
35
|
if (proactiveChatInNewWindow.current) {
|
|
38
36
|
const proactiveChatIsInPopoutModeEvent = {
|
|
39
37
|
eventName: BroadcastEvent.ProactiveChatIsInPopoutMode
|
|
@@ -60,7 +58,6 @@ export const ChatButtonStateful = props => {
|
|
|
60
58
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
61
59
|
Event: TelemetryEvent.LCWChatButtonClicked
|
|
62
60
|
});
|
|
63
|
-
|
|
64
61
|
if (state.appStates.isMinimized) {
|
|
65
62
|
dispatch({
|
|
66
63
|
type: LiveChatWidgetActionType.SET_MINIMIZED,
|
|
@@ -80,12 +77,10 @@ export const ChatButtonStateful = props => {
|
|
|
80
77
|
if (state.appStates.outsideOperatingHours) {
|
|
81
78
|
setOutOfOperatingHours(true);
|
|
82
79
|
}
|
|
83
|
-
|
|
84
80
|
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
85
81
|
Event: TelemetryEvent.LCWChatButtonShow,
|
|
86
82
|
ElapsedTimeInMilliseconds: TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed
|
|
87
83
|
});
|
|
88
|
-
|
|
89
84
|
if (state.uiStates.focusChatButton) {
|
|
90
85
|
setFocusOnElement(document.getElementById((controlProps === null || controlProps === void 0 ? void 0 : controlProps.id) ?? "oc-lcw-chat-button"));
|
|
91
86
|
} else {
|