@microsoft/omnichannel-chat-widget 0.1.0-main.5063558 → 0.1.0-main.50fdaaa
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 +24 -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 +41 -23
- 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 +9 -33
- 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 +18 -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/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 +125 -49
- package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +71 -50
- 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 +41 -66
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +79 -152
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
- package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
- package/lib/cjs/components/livechatwidget/common/startChat.js +176 -127
- 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 +232 -244
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +26 -19
- package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -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 +32 -23
- package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
- package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
- package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
- package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +10 -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 +6 -24
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +29 -34
- 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 +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/interfaces/IAdaptiveCardStyles.js +1 -0
- 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 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
- package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
- package/lib/cjs/contexts/ChatContextStore.js +0 -2
- package/lib/cjs/contexts/ChatSDKStore.js +0 -2
- package/lib/cjs/contexts/common/ConversationState.js +0 -1
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -29
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -11
- package/lib/cjs/contexts/createReducer.js +154 -108
- package/lib/cjs/controller/componentController.js +2 -31
- package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
- package/lib/cjs/hooks/useChatContextStore.js +0 -6
- package/lib/cjs/hooks/useChatSDKStore.js +0 -6
- package/lib/cjs/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 +21 -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 +45 -20
- 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 +11 -14
- 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 +18 -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/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 +126 -35
- package/lib/esm/components/livechatwidget/common/endChat.js +73 -35
- 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 +43 -31
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +77 -130
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
- package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
- package/lib/esm/components/livechatwidget/common/startChat.js +175 -98
- 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 +234 -178
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +26 -7
- package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -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 +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 +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 +6 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +27 -9
- 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 +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/interfaces/IAdaptiveCardStyles.js +1 -0
- 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 +19 -23
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
- package/lib/esm/contexts/ChatAdapterStore.js +2 -1
- package/lib/esm/contexts/ChatContextStore.js +2 -1
- package/lib/esm/contexts/ChatSDKStore.js +2 -1
- package/lib/esm/contexts/common/ConversationState.js +0 -1
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -29
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -7
- package/lib/esm/contexts/createReducer.js +154 -105
- package/lib/esm/controller/componentController.js +3 -2
- package/lib/esm/hooks/useChatAdapterStore.js +0 -4
- package/lib/esm/hooks/useChatContextStore.js +0 -4
- package/lib/esm/hooks/useChatSDKStore.js +0 -4
- package/lib/esm/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 +14 -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 +29 -5
- 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/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +9 -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/reconnectChatHelper.d.ts +5 -7
- 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 +4 -2
- package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
- package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -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/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
- 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/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -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
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.defaultTelemetryConfiguration = void 0;
|
|
7
|
-
|
|
8
7
|
var _defaultAriaConfig = require("./defaultAriaConfig");
|
|
9
|
-
|
|
10
8
|
const defaultTelemetryConfiguration = {
|
|
11
9
|
telemetryDisabled: false,
|
|
12
10
|
disableConsoleLog: false,
|
|
@@ -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,35 +3,28 @@
|
|
|
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.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;
|
|
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.debounceLeading = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
|
|
8
7
|
var _Constants = require("./Constants");
|
|
9
|
-
|
|
10
8
|
var _DataStoreManager = require("./contextDataStore/DataStoreManager");
|
|
11
|
-
|
|
12
9
|
var _KeyCodes = require("./KeyCodes");
|
|
13
|
-
|
|
14
10
|
var _TelemetryConstants = require("./telemetry/TelemetryConstants");
|
|
15
|
-
|
|
16
11
|
var _md5Typescript = require("md5-typescript");
|
|
17
|
-
|
|
12
|
+
var _this = void 0;
|
|
18
13
|
const getElementBySelector = selector => {
|
|
19
14
|
let element;
|
|
20
|
-
|
|
21
15
|
if (typeof selector === "string") {
|
|
22
16
|
element = document.querySelector(selector);
|
|
23
17
|
} else {
|
|
24
18
|
element = selector;
|
|
25
19
|
}
|
|
26
|
-
|
|
27
20
|
return element;
|
|
28
|
-
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// The purpose of this function is:
|
|
29
24
|
// - to make elements not focusable, when confirmation pane or email transcript pane are showing,
|
|
30
25
|
// - to set their initial tab indices back after confirmation pane or email transcript pane are closed
|
|
31
26
|
// Otherwise, the user will be able to click on the screen and tab through different buttons or other elements, even though
|
|
32
27
|
// these dialogs are showing
|
|
33
|
-
|
|
34
|
-
|
|
35
28
|
const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
36
29
|
if (elements) {
|
|
37
30
|
if (shouldBeFocusable) {
|
|
@@ -40,7 +33,6 @@ const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
|
40
33
|
elements[index].tabIndex = tabIndexMap.get(elements[index].id);
|
|
41
34
|
}
|
|
42
35
|
}
|
|
43
|
-
|
|
44
36
|
tabIndexMap.clear();
|
|
45
37
|
} else {
|
|
46
38
|
for (let index = 0; index < elements.length; index++) {
|
|
@@ -50,75 +42,54 @@ const setTabIndices = (elements, tabIndexMap, shouldBeFocusable) => {
|
|
|
50
42
|
}
|
|
51
43
|
}
|
|
52
44
|
};
|
|
53
|
-
|
|
54
45
|
exports.setTabIndices = setTabIndices;
|
|
55
|
-
|
|
56
46
|
const findParentFocusableElementsWithoutChildContainer = elementId => {
|
|
57
47
|
const childContainer = document.getElementById(elementId);
|
|
58
|
-
|
|
59
48
|
if (!childContainer) {
|
|
60
49
|
return null;
|
|
61
50
|
}
|
|
62
|
-
|
|
63
51
|
const parentContainer = childContainer.parentElement;
|
|
64
|
-
|
|
65
52
|
if (!parentContainer) {
|
|
66
53
|
return null;
|
|
67
54
|
}
|
|
68
|
-
|
|
69
55
|
const parentFocusableElements = findAllFocusableElement(parentContainer);
|
|
70
|
-
|
|
71
56
|
if (!parentFocusableElements) {
|
|
72
57
|
return null;
|
|
73
58
|
}
|
|
74
|
-
|
|
75
59
|
for (let index = 0; index < parentFocusableElements.length; index++) {
|
|
76
60
|
if (childContainer.contains(parentFocusableElements[index])) {
|
|
77
61
|
parentFocusableElements.splice(index, 1);
|
|
78
62
|
index--;
|
|
79
63
|
}
|
|
80
64
|
}
|
|
81
|
-
|
|
82
65
|
return parentFocusableElements;
|
|
83
66
|
};
|
|
84
|
-
|
|
85
67
|
exports.findParentFocusableElementsWithoutChildContainer = findParentFocusableElementsWithoutChildContainer;
|
|
86
|
-
|
|
87
68
|
const findAllFocusableElement = parent => {
|
|
88
69
|
const container = getElementBySelector(parent);
|
|
89
|
-
|
|
90
70
|
if (container !== null) {
|
|
91
71
|
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\"]"));
|
|
92
72
|
}
|
|
93
|
-
|
|
94
73
|
return null;
|
|
95
74
|
};
|
|
96
|
-
|
|
97
75
|
exports.findAllFocusableElement = findAllFocusableElement;
|
|
98
|
-
|
|
99
76
|
const preventFocusToMoveOutOfElement = elementId => {
|
|
100
77
|
const container = document.getElementById(elementId);
|
|
101
|
-
|
|
102
78
|
if (!container) {
|
|
103
79
|
return;
|
|
104
80
|
}
|
|
105
|
-
|
|
106
81
|
const focusableElements = findAllFocusableElement(container);
|
|
107
|
-
|
|
108
82
|
if (!focusableElements) {
|
|
109
83
|
return;
|
|
110
84
|
}
|
|
111
|
-
|
|
112
85
|
const firstFocusableElement = focusableElements[0];
|
|
113
86
|
const lastFocusableElement = focusableElements[focusableElements.length - 1];
|
|
114
|
-
|
|
115
87
|
firstFocusableElement.onkeydown = e => {
|
|
116
88
|
if (e.shiftKey && e.key === _KeyCodes.KeyCodes.TAB) {
|
|
117
89
|
e.preventDefault();
|
|
118
90
|
lastFocusableElement === null || lastFocusableElement === void 0 ? void 0 : lastFocusableElement.focus();
|
|
119
91
|
}
|
|
120
92
|
};
|
|
121
|
-
|
|
122
93
|
lastFocusableElement.onkeydown = e => {
|
|
123
94
|
if (!e.shiftKey && e.key === _KeyCodes.KeyCodes.TAB) {
|
|
124
95
|
e.preventDefault();
|
|
@@ -126,23 +97,17 @@ const preventFocusToMoveOutOfElement = elementId => {
|
|
|
126
97
|
}
|
|
127
98
|
};
|
|
128
99
|
};
|
|
129
|
-
|
|
130
100
|
exports.preventFocusToMoveOutOfElement = preventFocusToMoveOutOfElement;
|
|
131
|
-
|
|
132
101
|
const setFocusOnSendBox = () => {
|
|
133
102
|
const sendBoxSelector = "textarea[data-id=\"webchat-sendbox-input\"]";
|
|
134
103
|
setFocusOnElement(sendBoxSelector);
|
|
135
104
|
};
|
|
136
|
-
|
|
137
105
|
exports.setFocusOnSendBox = setFocusOnSendBox;
|
|
138
|
-
|
|
139
106
|
const setFocusOnElement = selector => {
|
|
140
107
|
const element = getElementBySelector(selector);
|
|
141
108
|
element === null || element === void 0 ? void 0 : element.focus();
|
|
142
109
|
};
|
|
143
|
-
|
|
144
110
|
exports.setFocusOnElement = setFocusOnElement;
|
|
145
|
-
|
|
146
111
|
const escapeHtml = inputString => {
|
|
147
112
|
const entityMap = {
|
|
148
113
|
"<": "<",
|
|
@@ -155,37 +120,27 @@ const escapeHtml = inputString => {
|
|
|
155
120
|
return entityMap[s];
|
|
156
121
|
});
|
|
157
122
|
};
|
|
158
|
-
|
|
159
123
|
exports.escapeHtml = escapeHtml;
|
|
160
|
-
|
|
161
124
|
const getIconText = text => {
|
|
162
125
|
if (text) {
|
|
163
126
|
const initials = text.split(/\s/).reduce((response, word) => response += word.slice(0, 1), "");
|
|
164
|
-
|
|
165
127
|
if (initials.length > 1) {
|
|
166
128
|
return initials.substring(0, 2).toUpperCase();
|
|
167
129
|
} else {
|
|
168
130
|
return text.substring(0, 2).toUpperCase();
|
|
169
131
|
}
|
|
170
132
|
}
|
|
171
|
-
|
|
172
133
|
return "";
|
|
173
134
|
};
|
|
174
|
-
|
|
175
135
|
exports.getIconText = getIconText;
|
|
176
|
-
|
|
177
136
|
const getLocaleDirection = localeLCID => {
|
|
178
137
|
return _Constants.LocaleConstants.RTL_LOCALES.indexOf(localeLCID) === -1 ? "ltr" : "rtl";
|
|
179
138
|
};
|
|
180
|
-
|
|
181
139
|
exports.getLocaleDirection = getLocaleDirection;
|
|
182
|
-
|
|
183
140
|
const changeLanguageCodeFormatForWebChat = languageCode => {
|
|
184
141
|
return languageCode.slice(0, -2) + languageCode.slice(-2).toUpperCase();
|
|
185
142
|
};
|
|
186
|
-
|
|
187
143
|
exports.changeLanguageCodeFormatForWebChat = changeLanguageCodeFormatForWebChat;
|
|
188
|
-
|
|
189
144
|
const getTimestampHourMinute = timestampStr => {
|
|
190
145
|
let yearFormat;
|
|
191
146
|
let monthDayFormat;
|
|
@@ -193,20 +148,16 @@ const getTimestampHourMinute = timestampStr => {
|
|
|
193
148
|
const minuteFormat = "2-digit";
|
|
194
149
|
const date = new Date(timestampStr);
|
|
195
150
|
const now = new Date();
|
|
196
|
-
|
|
197
151
|
if (isNaN(date.getTime())) {
|
|
198
152
|
return "";
|
|
199
153
|
}
|
|
200
|
-
|
|
201
154
|
if (date.getFullYear() !== now.getFullYear()) {
|
|
202
155
|
yearFormat = "numeric";
|
|
203
156
|
monthDayFormat = "2-digit";
|
|
204
157
|
}
|
|
205
|
-
|
|
206
158
|
if (date.getMonth() !== now.getMonth() || date.getDate() !== now.getDate()) {
|
|
207
159
|
monthDayFormat = "2-digit";
|
|
208
160
|
}
|
|
209
|
-
|
|
210
161
|
return date.toLocaleTimeString(navigator.language, {
|
|
211
162
|
year: yearFormat,
|
|
212
163
|
month: monthDayFormat,
|
|
@@ -215,15 +166,12 @@ const getTimestampHourMinute = timestampStr => {
|
|
|
215
166
|
minute: minuteFormat
|
|
216
167
|
});
|
|
217
168
|
};
|
|
218
|
-
|
|
219
169
|
exports.getTimestampHourMinute = getTimestampHourMinute;
|
|
220
|
-
|
|
221
170
|
const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
|
|
222
171
|
if (payload && payload !== "{}") {
|
|
223
172
|
try {
|
|
224
173
|
const parsedPayload = JSON.parse(payload.replace(/*/g, "*"));
|
|
225
174
|
const body = parsedPayload.body;
|
|
226
|
-
|
|
227
175
|
if (body) {
|
|
228
176
|
//Parse ID field into available options and add required error messages
|
|
229
177
|
for (const fields of body) {
|
|
@@ -231,26 +179,22 @@ const parseAdaptiveCardPayload = (payload, requiredFieldMissingMessage) => {
|
|
|
231
179
|
const parsedId = JSON.parse(fields.id);
|
|
232
180
|
fields.id = parsedId.Id;
|
|
233
181
|
fields.isRequired = parsedId.IsRequired ?? false;
|
|
234
|
-
|
|
235
182
|
if (fields.isRequired) {
|
|
236
183
|
fields.errorMessage = requiredFieldMissingMessage.replace("{0}", parsedId.Name ?? "");
|
|
237
184
|
}
|
|
238
185
|
}
|
|
239
186
|
}
|
|
240
187
|
}
|
|
241
|
-
|
|
242
188
|
return JSON.stringify(parsedPayload);
|
|
243
189
|
} catch (ex) {
|
|
244
190
|
throw new Error(`Adaptive card pase error: ${ex}`);
|
|
245
191
|
}
|
|
246
192
|
}
|
|
247
|
-
|
|
248
193
|
return payload;
|
|
249
|
-
};
|
|
250
|
-
|
|
194
|
+
};
|
|
251
195
|
|
|
196
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
252
197
|
exports.parseAdaptiveCardPayload = parseAdaptiveCardPayload;
|
|
253
|
-
|
|
254
198
|
const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
255
199
|
if (preChatSurvey && preChatSurvey !== "{}" && values) {
|
|
256
200
|
try {
|
|
@@ -260,14 +204,13 @@ const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
|
260
204
|
"Type": _Constants.Constants.InputSubmit
|
|
261
205
|
};
|
|
262
206
|
const computedValues = [];
|
|
263
|
-
|
|
264
207
|
for (const val of values) {
|
|
265
208
|
const index = val.index;
|
|
266
209
|
const Id = body[index].id;
|
|
267
210
|
computedValues[Id] = val.value;
|
|
268
211
|
}
|
|
269
|
-
|
|
270
|
-
|
|
212
|
+
const finalPayload = {
|
|
213
|
+
...type,
|
|
271
214
|
...computedValues
|
|
272
215
|
};
|
|
273
216
|
return finalPayload;
|
|
@@ -275,49 +218,38 @@ const extractPreChatSurveyResponseValues = (preChatSurvey, values) => {
|
|
|
275
218
|
throw new Error(`PreChatSurvey Response parse error: ${ex}`);
|
|
276
219
|
}
|
|
277
220
|
}
|
|
278
|
-
|
|
279
221
|
return {};
|
|
280
|
-
};
|
|
281
|
-
|
|
222
|
+
};
|
|
282
223
|
|
|
224
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
283
225
|
exports.extractPreChatSurveyResponseValues = extractPreChatSurveyResponseValues;
|
|
284
|
-
|
|
285
226
|
const isNullOrUndefined = obj => {
|
|
286
227
|
return obj === null || obj === undefined;
|
|
287
228
|
};
|
|
288
|
-
|
|
289
229
|
exports.isNullOrUndefined = isNullOrUndefined;
|
|
290
|
-
|
|
291
230
|
const isNullOrEmptyString = s => {
|
|
292
231
|
return isNullOrUndefined(s) || s === "";
|
|
293
232
|
};
|
|
294
|
-
|
|
295
233
|
exports.isNullOrEmptyString = isNullOrEmptyString;
|
|
296
|
-
|
|
297
234
|
const newGuid = () => {
|
|
298
235
|
//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
|
|
299
236
|
const guidPattern = _Constants.Constants.GuidPattern;
|
|
300
237
|
let newGuid = "";
|
|
301
|
-
|
|
302
238
|
for (let i = 0; i < guidPattern.length; i++) {
|
|
303
239
|
const randomString = Math.floor(Math.random() * Date.now());
|
|
304
|
-
|
|
305
240
|
switch (guidPattern[i]) {
|
|
306
241
|
case "x":
|
|
307
242
|
newGuid += randomString.toString(16).substring(0, 4);
|
|
308
243
|
break;
|
|
309
244
|
//get 4 digit
|
|
310
|
-
|
|
311
245
|
case "m":
|
|
312
246
|
newGuid += randomString.toString(16).substring(0, 3);
|
|
313
247
|
break;
|
|
314
248
|
//Get 3 digit
|
|
315
|
-
|
|
316
249
|
case "y":
|
|
317
250
|
newGuid += (randomString & 0x3 | 0x8).toString(16);
|
|
318
251
|
break;
|
|
319
252
|
// To get only one of 8, 9, A, or B
|
|
320
|
-
|
|
321
253
|
default:
|
|
322
254
|
newGuid += guidPattern[i];
|
|
323
255
|
//Default "-" and "4"
|
|
@@ -326,9 +258,7 @@ const newGuid = () => {
|
|
|
326
258
|
|
|
327
259
|
return newGuid;
|
|
328
260
|
};
|
|
329
|
-
|
|
330
261
|
exports.newGuid = newGuid;
|
|
331
|
-
|
|
332
262
|
const createTimer = () => {
|
|
333
263
|
const timeStart = new Date().getTime();
|
|
334
264
|
return {
|
|
@@ -336,50 +266,40 @@ const createTimer = () => {
|
|
|
336
266
|
const ms = new Date().getTime() - timeStart;
|
|
337
267
|
return ms;
|
|
338
268
|
}
|
|
339
|
-
|
|
340
269
|
};
|
|
341
|
-
};
|
|
342
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
343
|
-
|
|
270
|
+
};
|
|
344
271
|
|
|
272
|
+
// Returns the domain of the org
|
|
273
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
345
274
|
exports.createTimer = createTimer;
|
|
346
|
-
|
|
347
275
|
const getDomain = hostValue => {
|
|
348
276
|
for (let i = 0; i < _Constants.AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
|
|
349
277
|
if (hostValue.endsWith(_Constants.AriaTelemetryConstants.lcwEUDomainNames[i])) {
|
|
350
278
|
return _Constants.AriaTelemetryConstants.EU;
|
|
351
279
|
}
|
|
352
280
|
}
|
|
353
|
-
|
|
354
281
|
return _Constants.AriaTelemetryConstants.Public;
|
|
355
282
|
};
|
|
356
|
-
|
|
357
283
|
exports.getDomain = getDomain;
|
|
358
|
-
|
|
359
284
|
const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
|
|
360
285
|
const widgetCacheId = `${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
361
286
|
return _md5Typescript.Md5.init(widgetCacheId);
|
|
362
287
|
};
|
|
363
|
-
|
|
364
288
|
exports.getWidgetCacheId = getWidgetCacheId;
|
|
365
|
-
|
|
366
289
|
const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) => {
|
|
367
290
|
if (!isNullOrEmptyString(widgetInstanceId)) {
|
|
368
291
|
return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
369
292
|
}
|
|
370
|
-
|
|
371
293
|
return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
|
|
372
|
-
};
|
|
373
|
-
|
|
294
|
+
};
|
|
374
295
|
|
|
296
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
375
297
|
exports.getWidgetEndChatEventName = getWidgetEndChatEventName;
|
|
376
|
-
|
|
377
298
|
const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
|
|
378
299
|
// Getting updated state from cache
|
|
379
300
|
try {
|
|
380
301
|
if (_DataStoreManager.DataStoreManager.clientDataStore) {
|
|
381
302
|
var _DataStoreManager$cli;
|
|
382
|
-
|
|
383
303
|
const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
|
|
384
304
|
const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
|
|
385
305
|
const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
|
|
@@ -391,34 +311,48 @@ const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
|
|
|
391
311
|
console.log(error);
|
|
392
312
|
return null;
|
|
393
313
|
}
|
|
394
|
-
};
|
|
395
|
-
|
|
314
|
+
};
|
|
396
315
|
|
|
316
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
397
317
|
exports.getStateFromCache = getStateFromCache;
|
|
398
|
-
|
|
399
318
|
const isUndefinedOrEmpty = object => {
|
|
400
319
|
if (object) {
|
|
401
320
|
if (Object.keys(object).length === 0) {
|
|
402
321
|
return true;
|
|
403
322
|
}
|
|
404
|
-
|
|
405
323
|
return false;
|
|
406
324
|
} else {
|
|
407
325
|
return true;
|
|
408
326
|
}
|
|
409
|
-
};
|
|
410
|
-
|
|
327
|
+
};
|
|
411
328
|
|
|
329
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
412
330
|
exports.isUndefinedOrEmpty = isUndefinedOrEmpty;
|
|
413
|
-
|
|
414
331
|
const addDelayInMs = ms => {
|
|
415
332
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
416
333
|
};
|
|
417
|
-
|
|
418
334
|
exports.addDelayInMs = addDelayInMs;
|
|
419
|
-
|
|
420
335
|
const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
|
|
421
336
|
return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
|
|
422
337
|
};
|
|
423
338
|
|
|
424
|
-
|
|
339
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
340
|
+
exports.getBroadcastChannelName = getBroadcastChannelName;
|
|
341
|
+
const debounceLeading = function (fn) {
|
|
342
|
+
let ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3000;
|
|
343
|
+
let timeoutId;
|
|
344
|
+
return function () {
|
|
345
|
+
// eslint-disable-line @typescript-eslint/no-explicit-any
|
|
346
|
+
|
|
347
|
+
if (!timeoutId) {
|
|
348
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
349
|
+
args[_key] = arguments[_key];
|
|
350
|
+
}
|
|
351
|
+
fn.apply(_this, args);
|
|
352
|
+
}
|
|
353
|
+
timeoutId = setTimeout(() => {
|
|
354
|
+
timeoutId = null;
|
|
355
|
+
}, ms);
|
|
356
|
+
};
|
|
357
|
+
};
|
|
358
|
+
exports.debounceLeading = debounceLeading;
|