@microsoft/omnichannel-chat-widget 0.1.0-main.7b290a7 → 0.1.0-main.834a4cd
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 +26 -161
- 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 +49 -26
- package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
- package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
- package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
- package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
- package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
- package/lib/cjs/common/utils.js +71 -85
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +19 -25
- package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- 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 +15 -44
- 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/defaultScrollBarProps.js +14 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +70 -40
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +103 -42
- 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 +78 -128
- 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 +226 -102
- 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 +315 -193
- 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 +11 -44
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -33
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -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 +17 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
- package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
- package/lib/cjs/contexts/ChatContextStore.js +0 -2
- package/lib/cjs/contexts/ChatSDKStore.js +0 -2
- package/lib/cjs/contexts/common/ConversationState.js +3 -3
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +6 -3
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -13
- package/lib/cjs/contexts/createReducer.js +156 -102
- 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 +23 -148
- 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 +53 -23
- package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
- package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
- package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
- package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
- package/lib/esm/common/utils.js +64 -47
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -12
- package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- 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 +15 -37
- 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/defaultScrollBarProps.js +7 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +72 -27
- package/lib/esm/components/livechatwidget/common/endChat.js +103 -28
- 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 +78 -110
- 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 +228 -84
- 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 +319 -140
- 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 +15 -29
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -9
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -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 +17 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
- package/lib/esm/contexts/ChatAdapterStore.js +2 -1
- package/lib/esm/contexts/ChatContextStore.js +2 -1
- package/lib/esm/contexts/ChatSDKStore.js +2 -1
- package/lib/esm/contexts/common/ConversationState.js +3 -3
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +6 -3
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -9
- package/lib/esm/contexts/createReducer.js +156 -99
- 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 +21 -1
- 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 +36 -8
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
- package/lib/types/common/utils.d.ts +7 -1
- package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
- package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -7
- package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
- package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -2
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +2 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -2
- package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
- package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
- package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -2
- 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 +4 -3
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +7 -3
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/package.json +5 -4
|
@@ -4,92 +4,86 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ariaTelemetryLogger = void 0;
|
|
7
|
-
|
|
8
7
|
var _utils = require("../../utils");
|
|
9
|
-
|
|
10
|
-
var _AWTEventProperties = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTEventProperties"));
|
|
11
|
-
|
|
12
|
-
var _AWTLogManager = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTLogManager"));
|
|
13
|
-
|
|
8
|
+
var _AriaSDK = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AriaSDK");
|
|
14
9
|
var _Enums = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums");
|
|
15
|
-
|
|
16
10
|
var _Constants = require("../../Constants");
|
|
17
|
-
|
|
18
11
|
var _TelemetryManager = require("../TelemetryManager");
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
12
|
const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
|
|
23
13
|
let _logger;
|
|
24
|
-
|
|
25
14
|
const logger = () => {
|
|
26
15
|
if ((0, _utils.isNullOrUndefined)(_logger) && !(0, _utils.isNullOrEmptyString)(ariaTelemetryKey)) {
|
|
27
16
|
const configuration = {
|
|
28
17
|
disableCookiesUsage: disabledCookieUsage
|
|
29
18
|
};
|
|
30
|
-
|
|
31
19
|
if (!(0, _utils.isNullOrEmptyString)(collectiorUriForTelemetry)) {
|
|
32
20
|
configuration.collectorUri = collectiorUriForTelemetry;
|
|
33
21
|
} else {
|
|
34
22
|
if (_TelemetryManager.TelemetryManager.InternalTelemetryData.environmentVersion == _Constants.EnvironmentVersion.prod) {
|
|
35
23
|
var _TelemetryManager$Int;
|
|
36
|
-
|
|
37
24
|
const orgUrl = (_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.orgUrl;
|
|
38
|
-
|
|
39
25
|
if (!(0, _utils.isNullOrUndefined)(orgUrl)) {
|
|
40
26
|
// If the given org is a Production EU org, modify the Aria collector uri
|
|
41
27
|
const region = (0, _utils.getDomain)(orgUrl);
|
|
42
|
-
|
|
43
28
|
if (region === _Constants.AriaTelemetryConstants.EU) {
|
|
44
29
|
configuration.collectorUri = _Constants.AriaTelemetryConstants.EUROPE_ENDPOINT;
|
|
45
30
|
}
|
|
46
31
|
}
|
|
47
32
|
}
|
|
48
33
|
}
|
|
49
|
-
|
|
50
34
|
try {
|
|
51
|
-
_logger =
|
|
52
|
-
|
|
35
|
+
_logger = _AriaSDK.AWTLogManager.initialize(ariaTelemetryKey, configuration);
|
|
53
36
|
if (_logger === undefined) {
|
|
54
|
-
_logger =
|
|
37
|
+
_logger = _AriaSDK.AWTLogManager.getLogger(ariaTelemetryKey);
|
|
55
38
|
}
|
|
56
39
|
} catch (error) {
|
|
57
40
|
console.log(error);
|
|
58
41
|
}
|
|
59
42
|
}
|
|
60
|
-
|
|
61
43
|
return _logger;
|
|
62
44
|
};
|
|
63
|
-
|
|
64
45
|
const ariaLogger = {
|
|
65
46
|
log: (logLevel, telemetryInput) => {
|
|
66
47
|
try {
|
|
67
|
-
|
|
68
|
-
const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo;
|
|
69
|
-
|
|
70
|
-
eventProperties
|
|
71
|
-
|
|
48
|
+
var _telemetryInput$telem;
|
|
49
|
+
const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : (_telemetryInput$telem = telemetryInput.telemetryInfo) === null || _telemetryInput$telem === void 0 ? void 0 : _telemetryInput$telem.telemetryInfo;
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
const eventProperties = {
|
|
52
|
+
name: telemetryInput.scenarioType,
|
|
53
|
+
properties: {}
|
|
54
|
+
};
|
|
72
55
|
if (telemetryInfo) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
|
+
Object.keys(telemetryInfo).forEach((key, index) => {
|
|
58
|
+
if (!(0, _utils.isNullOrUndefined)(telemetryInfo[key]) && !(0, _utils.isNullOrEmptyString)(telemetryInfo[key])) {
|
|
59
|
+
const property = {
|
|
60
|
+
value: typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key],
|
|
61
|
+
type: typeof telemetryInfo[key] === "number" ? _Enums.AWTPropertyType.Double : _Enums.AWTPropertyType.String,
|
|
62
|
+
pii: _Enums.AWTPiiKind.NotSet,
|
|
63
|
+
cc: _Enums.AWTCustomerContentKind.NotSet
|
|
64
|
+
};
|
|
65
|
+
eventProperties.properties[key] = property;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
const nameProperty = {
|
|
69
|
+
value: _Constants.Constants.LiveChatWidget,
|
|
70
|
+
type: _Enums.AWTPropertyType.String,
|
|
71
|
+
pii: _Enums.AWTPiiKind.GenericData,
|
|
72
|
+
cc: _Enums.AWTCustomerContentKind.NotSet
|
|
73
|
+
};
|
|
74
|
+
eventProperties.properties[ariaTelemetryApplicationName] = nameProperty;
|
|
79
75
|
}
|
|
80
|
-
|
|
81
76
|
logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
|
|
82
77
|
} catch (error) {
|
|
83
78
|
console.error("Error in logging telemetry to Aria logger:" + error);
|
|
84
79
|
}
|
|
85
80
|
},
|
|
86
81
|
dispose: () => {
|
|
87
|
-
|
|
82
|
+
_AriaSDK.AWTLogManager.flush(function () {
|
|
88
83
|
console.log("Aria logger disposed");
|
|
89
84
|
});
|
|
90
85
|
}
|
|
91
86
|
};
|
|
92
87
|
return ariaLogger;
|
|
93
88
|
};
|
|
94
|
-
|
|
95
89
|
exports.ariaTelemetryLogger = ariaTelemetryLogger;
|
|
@@ -4,35 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.consoleLogger = void 0;
|
|
7
|
-
|
|
8
7
|
var _Constants = require("../../Constants");
|
|
9
|
-
|
|
10
8
|
var _TelemetryConstants = require("../TelemetryConstants");
|
|
11
|
-
|
|
12
9
|
const consoleLogger = () => {
|
|
13
10
|
const consoleLogger = {
|
|
14
11
|
log: (logLevel, telemetryInput) => {
|
|
15
12
|
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 : "";
|
|
16
13
|
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 : "";
|
|
17
|
-
|
|
18
14
|
try {
|
|
19
15
|
switch (logLevel) {
|
|
20
16
|
case _TelemetryConstants.LogLevel.INFO:
|
|
21
17
|
console.info(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
|
|
22
18
|
break;
|
|
23
|
-
|
|
24
19
|
case _TelemetryConstants.LogLevel.DEBUG:
|
|
25
20
|
console.debug(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
|
|
26
21
|
break;
|
|
27
|
-
|
|
28
22
|
case _TelemetryConstants.LogLevel.WARN:
|
|
29
23
|
console.warn(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
|
|
30
24
|
break;
|
|
31
|
-
|
|
32
25
|
case _TelemetryConstants.LogLevel.ERROR:
|
|
33
26
|
console.error(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
|
|
34
27
|
break;
|
|
35
|
-
|
|
36
28
|
default:
|
|
37
29
|
console.debug(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
|
|
38
30
|
break;
|
|
@@ -47,5 +39,4 @@ const consoleLogger = () => {
|
|
|
47
39
|
};
|
|
48
40
|
return consoleLogger;
|
|
49
41
|
};
|
|
50
|
-
|
|
51
42
|
exports.consoleLogger = consoleLogger;
|
package/lib/cjs/common/utils.js
CHANGED
|
@@ -3,29 +3,27 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getTimestampHourMinute = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = void 0;
|
|
7
|
-
|
|
6
|
+
exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
|
|
8
7
|
var _Constants = require("./Constants");
|
|
9
|
-
|
|
8
|
+
var _DataStoreManager = require("./contextDataStore/DataStoreManager");
|
|
10
9
|
var _KeyCodes = require("./KeyCodes");
|
|
11
|
-
|
|
10
|
+
var _TelemetryConstants = require("./telemetry/TelemetryConstants");
|
|
11
|
+
var _md5Typescript = require("md5-typescript");
|
|
12
12
|
const getElementBySelector = selector => {
|
|
13
13
|
let element;
|
|
14
|
-
|
|
15
14
|
if (typeof selector === "string") {
|
|
16
15
|
element = document.querySelector(selector);
|
|
17
16
|
} else {
|
|
18
17
|
element = selector;
|
|
19
18
|
}
|
|
20
|
-
|
|
21
19
|
return element;
|
|
22
|
-
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// The purpose of this function is:
|
|
23
23
|
// - to make elements not focusable, when confirmation pane or email transcript pane are showing,
|
|
24
24
|
// - to set their initial tab indices back after confirmation pane or email transcript pane are closed
|
|
25
25
|
// Otherwise, the user will be able to click on the screen and tab through different buttons or other elements, even though
|
|
26
26
|
// these dialogs are showing
|
|
27
|
-
|
|
28
|
-
|
|
29
27
|
const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
30
28
|
if (elements) {
|
|
31
29
|
if (shouldBeFocusable) {
|
|
@@ -34,7 +32,6 @@ const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
|
34
32
|
elements[index].tabIndex = tabIndexMap.get(elements[index].id);
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
|
-
|
|
38
35
|
tabIndexMap.clear();
|
|
39
36
|
} else {
|
|
40
37
|
for (let index = 0; index < elements.length; index++) {
|
|
@@ -44,75 +41,54 @@ const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
};
|
|
47
|
-
|
|
48
44
|
exports.setTabIndices = setTabIndices;
|
|
49
|
-
|
|
50
45
|
const findParentFocusableElementsWithoutChildContainer = elementId => {
|
|
51
46
|
const childContainer = document.getElementById(elementId);
|
|
52
|
-
|
|
53
47
|
if (!childContainer) {
|
|
54
48
|
return null;
|
|
55
49
|
}
|
|
56
|
-
|
|
57
50
|
const parentContainer = childContainer.parentElement;
|
|
58
|
-
|
|
59
51
|
if (!parentContainer) {
|
|
60
52
|
return null;
|
|
61
53
|
}
|
|
62
|
-
|
|
63
54
|
const parentFocusableElements = findAllFocusableElement(parentContainer);
|
|
64
|
-
|
|
65
55
|
if (!parentFocusableElements) {
|
|
66
56
|
return null;
|
|
67
57
|
}
|
|
68
|
-
|
|
69
58
|
for (let index = 0; index < parentFocusableElements.length; index++) {
|
|
70
59
|
if (childContainer.contains(parentFocusableElements[index])) {
|
|
71
60
|
parentFocusableElements.splice(index, 1);
|
|
72
61
|
index--;
|
|
73
62
|
}
|
|
74
63
|
}
|
|
75
|
-
|
|
76
64
|
return parentFocusableElements;
|
|
77
65
|
};
|
|
78
|
-
|
|
79
66
|
exports.findParentFocusableElementsWithoutChildContainer = findParentFocusableElementsWithoutChildContainer;
|
|
80
|
-
|
|
81
67
|
const findAllFocusableElement = parent => {
|
|
82
68
|
const container = getElementBySelector(parent);
|
|
83
|
-
|
|
84
69
|
if (container !== null) {
|
|
85
70
|
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\"]"));
|
|
86
71
|
}
|
|
87
|
-
|
|
88
72
|
return null;
|
|
89
73
|
};
|
|
90
|
-
|
|
91
74
|
exports.findAllFocusableElement = findAllFocusableElement;
|
|
92
|
-
|
|
93
75
|
const preventFocusToMoveOutOfElement = elementId => {
|
|
94
76
|
const container = document.getElementById(elementId);
|
|
95
|
-
|
|
96
77
|
if (!container) {
|
|
97
78
|
return;
|
|
98
79
|
}
|
|
99
|
-
|
|
100
80
|
const focusableElements = findAllFocusableElement(container);
|
|
101
|
-
|
|
102
81
|
if (!focusableElements) {
|
|
103
82
|
return;
|
|
104
83
|
}
|
|
105
|
-
|
|
106
84
|
const firstFocusableElement = focusableElements[0];
|
|
107
85
|
const lastFocusableElement = focusableElements[focusableElements.length - 1];
|
|
108
|
-
|
|
109
86
|
firstFocusableElement.onkeydown = e => {
|
|
110
87
|
if (e.shiftKey && e.key === _KeyCodes.KeyCodes.TAB) {
|
|
111
88
|
e.preventDefault();
|
|
112
89
|
lastFocusableElement === null || lastFocusableElement === void 0 ? void 0 : lastFocusableElement.focus();
|
|
113
90
|
}
|
|
114
91
|
};
|
|
115
|
-
|
|
116
92
|
lastFocusableElement.onkeydown = e => {
|
|
117
93
|
if (!e.shiftKey && e.key === _KeyCodes.KeyCodes.TAB) {
|
|
118
94
|
e.preventDefault();
|
|
@@ -120,23 +96,17 @@ const preventFocusToMoveOutOfElement = elementId => {
|
|
|
120
96
|
}
|
|
121
97
|
};
|
|
122
98
|
};
|
|
123
|
-
|
|
124
99
|
exports.preventFocusToMoveOutOfElement = preventFocusToMoveOutOfElement;
|
|
125
|
-
|
|
126
100
|
const setFocusOnSendBox = () => {
|
|
127
101
|
const sendBoxSelector = "textarea[data-id=\"webchat-sendbox-input\"]";
|
|
128
102
|
setFocusOnElement(sendBoxSelector);
|
|
129
103
|
};
|
|
130
|
-
|
|
131
104
|
exports.setFocusOnSendBox = setFocusOnSendBox;
|
|
132
|
-
|
|
133
105
|
const setFocusOnElement = selector => {
|
|
134
106
|
const element = getElementBySelector(selector);
|
|
135
107
|
element === null || element === void 0 ? void 0 : element.focus();
|
|
136
108
|
};
|
|
137
|
-
|
|
138
109
|
exports.setFocusOnElement = setFocusOnElement;
|
|
139
|
-
|
|
140
110
|
const escapeHtml = inputString => {
|
|
141
111
|
const entityMap = {
|
|
142
112
|
"<": "<",
|
|
@@ -149,37 +119,27 @@ const escapeHtml = inputString => {
|
|
|
149
119
|
return entityMap[s];
|
|
150
120
|
});
|
|
151
121
|
};
|
|
152
|
-
|
|
153
122
|
exports.escapeHtml = escapeHtml;
|
|
154
|
-
|
|
155
123
|
const getIconText = text => {
|
|
156
124
|
if (text) {
|
|
157
125
|
const initials = text.split(/\s/).reduce((response, word) => response += word.slice(0, 1), "");
|
|
158
|
-
|
|
159
126
|
if (initials.length > 1) {
|
|
160
127
|
return initials.substring(0, 2).toUpperCase();
|
|
161
128
|
} else {
|
|
162
129
|
return text.substring(0, 2).toUpperCase();
|
|
163
130
|
}
|
|
164
131
|
}
|
|
165
|
-
|
|
166
132
|
return "";
|
|
167
133
|
};
|
|
168
|
-
|
|
169
134
|
exports.getIconText = getIconText;
|
|
170
|
-
|
|
171
135
|
const getLocaleDirection = localeLCID => {
|
|
172
136
|
return _Constants.LocaleConstants.RTL_LOCALES.indexOf(localeLCID) === -1 ? "ltr" : "rtl";
|
|
173
137
|
};
|
|
174
|
-
|
|
175
138
|
exports.getLocaleDirection = getLocaleDirection;
|
|
176
|
-
|
|
177
139
|
const changeLanguageCodeFormatForWebChat = languageCode => {
|
|
178
140
|
return languageCode.slice(0, -2) + languageCode.slice(-2).toUpperCase();
|
|
179
141
|
};
|
|
180
|
-
|
|
181
142
|
exports.changeLanguageCodeFormatForWebChat = changeLanguageCodeFormatForWebChat;
|
|
182
|
-
|
|
183
143
|
const getTimestampHourMinute = timestampStr => {
|
|
184
144
|
let yearFormat;
|
|
185
145
|
let monthDayFormat;
|
|
@@ -187,20 +147,16 @@ const getTimestampHourMinute = timestampStr => {
|
|
|
187
147
|
const minuteFormat = "2-digit";
|
|
188
148
|
const date = new Date(timestampStr);
|
|
189
149
|
const now = new Date();
|
|
190
|
-
|
|
191
150
|
if (isNaN(date.getTime())) {
|
|
192
151
|
return "";
|
|
193
152
|
}
|
|
194
|
-
|
|
195
153
|
if (date.getFullYear() !== now.getFullYear()) {
|
|
196
154
|
yearFormat = "numeric";
|
|
197
155
|
monthDayFormat = "2-digit";
|
|
198
156
|
}
|
|
199
|
-
|
|
200
157
|
if (date.getMonth() !== now.getMonth() || date.getDate() !== now.getDate()) {
|
|
201
158
|
monthDayFormat = "2-digit";
|
|
202
159
|
}
|
|
203
|
-
|
|
204
160
|
return date.toLocaleTimeString(navigator.language, {
|
|
205
161
|
year: yearFormat,
|
|
206
162
|
month: monthDayFormat,
|
|
@@ -209,15 +165,12 @@ const getTimestampHourMinute = timestampStr => {
|
|
|
209
165
|
minute: minuteFormat
|
|
210
166
|
});
|
|
211
167
|
};
|
|
212
|
-
|
|
213
168
|
exports.getTimestampHourMinute = getTimestampHourMinute;
|
|
214
|
-
|
|
215
169
|
const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
|
|
216
170
|
if (payload && payload !== "{}") {
|
|
217
171
|
try {
|
|
218
172
|
const parsedPayload = JSON.parse(payload.replace(/*/g, "*"));
|
|
219
173
|
const body = parsedPayload.body;
|
|
220
|
-
|
|
221
174
|
if (body) {
|
|
222
175
|
//Parse ID field into available options and add required error messages
|
|
223
176
|
for (const fields of body) {
|
|
@@ -225,26 +178,22 @@ const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
|
|
|
225
178
|
const parsedId = JSON.parse(fields.id);
|
|
226
179
|
fields.id = parsedId.Id;
|
|
227
180
|
fields.isRequired = parsedId.IsRequired ?? false;
|
|
228
|
-
|
|
229
181
|
if (fields.isRequired) {
|
|
230
182
|
fields.errorMessage = requiredFieldMissingMessage.replace("{0}", parsedId.Name ?? "");
|
|
231
183
|
}
|
|
232
184
|
}
|
|
233
185
|
}
|
|
234
186
|
}
|
|
235
|
-
|
|
236
187
|
return JSON.stringify(parsedPayload);
|
|
237
188
|
} catch (ex) {
|
|
238
189
|
throw new Error(`Adaptive card pase error: ${ex}`);
|
|
239
190
|
}
|
|
240
191
|
}
|
|
241
|
-
|
|
242
192
|
return payload;
|
|
243
|
-
};
|
|
244
|
-
|
|
193
|
+
};
|
|
245
194
|
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
246
196
|
exports.parseAdaptiveCardPayload = parseAdaptiveCardPayload;
|
|
247
|
-
|
|
248
197
|
const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
249
198
|
if (preChatSurvey && preChatSurvey !== "{}" && values) {
|
|
250
199
|
try {
|
|
@@ -254,14 +203,13 @@ const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
|
254
203
|
"Type": _Constants.Constants.InputSubmit
|
|
255
204
|
};
|
|
256
205
|
const computedValues = [];
|
|
257
|
-
|
|
258
206
|
for (const val of values) {
|
|
259
207
|
const index = val.index;
|
|
260
208
|
const Id = body[index].id;
|
|
261
209
|
computedValues[Id] = val.value;
|
|
262
210
|
}
|
|
263
|
-
|
|
264
|
-
|
|
211
|
+
const finalPayload = {
|
|
212
|
+
...type,
|
|
265
213
|
...computedValues
|
|
266
214
|
};
|
|
267
215
|
return finalPayload;
|
|
@@ -269,49 +217,38 @@ const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
|
269
217
|
throw new Error(`PreChatSurvey Response parse error: ${ex}`);
|
|
270
218
|
}
|
|
271
219
|
}
|
|
272
|
-
|
|
273
220
|
return {};
|
|
274
|
-
};
|
|
275
|
-
|
|
221
|
+
};
|
|
276
222
|
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
277
224
|
exports.extractPreChatSurveyResponseValues = extractPreChatSurveyResponseValues;
|
|
278
|
-
|
|
279
225
|
const isNullOrUndefined = obj => {
|
|
280
226
|
return obj === null || obj === undefined;
|
|
281
227
|
};
|
|
282
|
-
|
|
283
228
|
exports.isNullOrUndefined = isNullOrUndefined;
|
|
284
|
-
|
|
285
229
|
const isNullOrEmptyString = s => {
|
|
286
230
|
return isNullOrUndefined(s) || s === "";
|
|
287
231
|
};
|
|
288
|
-
|
|
289
232
|
exports.isNullOrEmptyString = isNullOrEmptyString;
|
|
290
|
-
|
|
291
233
|
const newGuid = () => {
|
|
292
234
|
//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
|
|
293
235
|
const guidPattern = _Constants.Constants.GuidPattern;
|
|
294
236
|
let newGuid = "";
|
|
295
|
-
|
|
296
237
|
for (let i = 0; i < guidPattern.length; i++) {
|
|
297
238
|
const randomString = Math.floor(Math.random() * Date.now());
|
|
298
|
-
|
|
299
239
|
switch (guidPattern[i]) {
|
|
300
240
|
case "x":
|
|
301
241
|
newGuid += randomString.toString(16).substring(0, 4);
|
|
302
242
|
break;
|
|
303
243
|
//get 4 digit
|
|
304
|
-
|
|
305
244
|
case "m":
|
|
306
245
|
newGuid += randomString.toString(16).substring(0, 3);
|
|
307
246
|
break;
|
|
308
247
|
//Get 3 digit
|
|
309
|
-
|
|
310
248
|
case "y":
|
|
311
249
|
newGuid += (randomString & 0x3 | 0x8).toString(16);
|
|
312
250
|
break;
|
|
313
251
|
// To get only one of 8, 9, A, or B
|
|
314
|
-
|
|
315
252
|
default:
|
|
316
253
|
newGuid += guidPattern[i];
|
|
317
254
|
//Default "-" and "4"
|
|
@@ -320,9 +257,7 @@ const newGuid = () => {
|
|
|
320
257
|
|
|
321
258
|
return newGuid;
|
|
322
259
|
};
|
|
323
|
-
|
|
324
260
|
exports.newGuid = newGuid;
|
|
325
|
-
|
|
326
261
|
const createTimer = () => {
|
|
327
262
|
const timeStart = new Date().getTime();
|
|
328
263
|
return {
|
|
@@ -330,22 +265,73 @@ const createTimer = () => {
|
|
|
330
265
|
const ms = new Date().getTime() - timeStart;
|
|
331
266
|
return ms;
|
|
332
267
|
}
|
|
333
|
-
|
|
334
268
|
};
|
|
335
|
-
};
|
|
336
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
337
|
-
|
|
269
|
+
};
|
|
338
270
|
|
|
271
|
+
// Returns the domain of the org
|
|
272
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
339
273
|
exports.createTimer = createTimer;
|
|
340
|
-
|
|
341
274
|
const getDomain = hostValue => {
|
|
342
275
|
for (let i = 0; i < _Constants.AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
|
|
343
276
|
if (hostValue.endsWith(_Constants.AriaTelemetryConstants.lcwEUDomainNames[i])) {
|
|
344
277
|
return _Constants.AriaTelemetryConstants.EU;
|
|
345
278
|
}
|
|
346
279
|
}
|
|
347
|
-
|
|
348
280
|
return _Constants.AriaTelemetryConstants.Public;
|
|
349
281
|
};
|
|
282
|
+
exports.getDomain = getDomain;
|
|
283
|
+
const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
|
|
284
|
+
const widgetCacheId = `${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
285
|
+
return _md5Typescript.Md5.init(widgetCacheId);
|
|
286
|
+
};
|
|
287
|
+
exports.getWidgetCacheId = getWidgetCacheId;
|
|
288
|
+
const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) => {
|
|
289
|
+
if (!isNullOrEmptyString(widgetInstanceId)) {
|
|
290
|
+
return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
291
|
+
}
|
|
292
|
+
return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
296
|
+
exports.getWidgetEndChatEventName = getWidgetEndChatEventName;
|
|
297
|
+
const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
|
|
298
|
+
// Getting updated state from cache
|
|
299
|
+
try {
|
|
300
|
+
if (_DataStoreManager.DataStoreManager.clientDataStore) {
|
|
301
|
+
var _DataStoreManager$cli;
|
|
302
|
+
const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
|
|
303
|
+
const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
|
|
304
|
+
const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
|
|
305
|
+
return persistedState;
|
|
306
|
+
} else {
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
} catch (error) {
|
|
310
|
+
console.log(error);
|
|
311
|
+
return null;
|
|
312
|
+
}
|
|
313
|
+
};
|
|
350
314
|
|
|
351
|
-
|
|
315
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
316
|
+
exports.getStateFromCache = getStateFromCache;
|
|
317
|
+
const isUndefinedOrEmpty = object => {
|
|
318
|
+
if (object) {
|
|
319
|
+
if (Object.keys(object).length === 0) {
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
return false;
|
|
323
|
+
} else {
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
329
|
+
exports.isUndefinedOrEmpty = isUndefinedOrEmpty;
|
|
330
|
+
const addDelayInMs = ms => {
|
|
331
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
332
|
+
};
|
|
333
|
+
exports.addDelayInMs = addDelayInMs;
|
|
334
|
+
const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
|
|
335
|
+
return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
|
|
336
|
+
};
|
|
337
|
+
exports.getBroadcastChannelName = getBroadcastChannelName;
|