@microsoft/omnichannel-chat-widget 1.8.7 → 2.0.0-main.5ebd4eb
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 +52 -5
- package/lib/cjs/common/Constants.js +5 -0
- package/lib/cjs/common/facades/FacadeChatSDK.js +234 -9
- package/lib/cjs/common/telemetry/TelemetryConstants.js +19 -0
- package/lib/cjs/common/telemetry/TelemetryManager.js +6 -1
- package/lib/cjs/common/telemetry/loggers/appInsightsLogger.js +2 -3
- package/lib/cjs/common/telemetry/sanitizeSasInPayload.js +91 -0
- package/lib/cjs/common/utils.js +93 -17
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +16 -6
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -10
- package/lib/cjs/components/citationpanestateful/CitationDim.js +2 -3
- package/lib/cjs/components/citationpanestateful/CitationPaneStateful.js +27 -5
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +23 -3
- package/lib/cjs/components/dimlayer/DimLayer.js +1 -3
- package/lib/cjs/components/draggable/DraggableChatWidget.js +35 -15
- package/lib/cjs/components/draggable/DraggableEventEmitter.js +10 -1
- package/lib/cjs/components/draggable/DraggableEventReceiver.js +1 -3
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +54 -17
- package/lib/cjs/components/errorboundary/ErrorBoundary.js +4 -12
- package/lib/cjs/components/footerstateful/FooterStateful.js +18 -9
- package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +2 -4
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +4 -6
- package/lib/cjs/components/headerstateful/HeaderStateful.js +24 -12
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +27 -4
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +5 -11
- package/lib/cjs/components/livechatwidget/common/ChatWidgetEvents.js +1 -0
- package/lib/cjs/components/livechatwidget/common/PersistentConversationHandler.js +11 -4
- package/lib/cjs/components/livechatwidget/common/authHelper.js +44 -4
- package/lib/cjs/components/livechatwidget/common/createMarkdown.js +98 -5
- package/lib/cjs/components/livechatwidget/common/endChat.js +12 -9
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +182 -1
- package/lib/cjs/components/livechatwidget/common/recoveryEligibilityTelemetry.js +60 -0
- package/lib/cjs/components/livechatwidget/common/startChat.js +31 -14
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +160 -21
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +16 -11
- package/lib/cjs/components/notificationpanestateful/NotificationPaneStateful.js +19 -12
- package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +13 -6
- package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +28 -5
- package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +12 -5
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +105 -11
- package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +12 -1
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +17 -7
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +16 -7
- package/lib/cjs/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +10 -2
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +154 -29
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +10 -0
- package/lib/cjs/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.js +115 -10
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +3 -0
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +2 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +2 -2
- package/lib/cjs/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/common/utils/citationA11y.js +195 -0
- package/lib/cjs/components/webchatcontainerstateful/interfaces/IWebChatAction.js +17 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.js +27 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +1 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +1 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.js +180 -190
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.js +3 -5
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +22 -6
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -23
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -35
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AdaptiveCardAccessibilityWrapper.js +199 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.js +29 -15
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +5 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.js +8 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +8 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +5 -8
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.js +6 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +6 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +14 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.js +16 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +18 -30
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +10 -2
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware.js +1 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +16 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +6 -6
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentSentAnnouncementMiddleware.js +83 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +36 -8
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/callActionMiddleware.js +5 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +10 -7
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +4 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware.js +5 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +7 -7
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +10 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +6 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -10
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware.js +57 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +6 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +25 -30
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +10 -7
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +6 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +55 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +2 -4
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +5 -0
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +17 -1
- package/lib/cjs/contexts/createReducer.js +15 -0
- package/lib/cjs/controller/componentController.js +13 -1
- package/lib/cjs/hooks/useWindowDimensions.js +13 -5
- package/lib/cjs/package.json +1 -0
- package/lib/cjs/plugins/createChatTranscript.js +3 -4
- package/lib/cjs/plugins/newMessageEventHandler.js +20 -3
- package/lib/esm/common/Constants.js +5 -0
- package/lib/esm/common/facades/FacadeChatSDK.js +235 -10
- package/lib/esm/common/telemetry/TelemetryConstants.js +19 -0
- package/lib/esm/common/telemetry/TelemetryManager.js +6 -1
- package/lib/esm/common/telemetry/loggers/appInsightsLogger.js +2 -3
- package/lib/esm/common/telemetry/sanitizeSasInPayload.js +84 -0
- package/lib/esm/common/utils.js +88 -14
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +15 -5
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +19 -9
- package/lib/esm/components/citationpanestateful/CitationDim.js +2 -3
- package/lib/esm/components/citationpanestateful/CitationPaneStateful.js +26 -4
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +22 -2
- package/lib/esm/components/dimlayer/DimLayer.js +1 -3
- package/lib/esm/components/draggable/DraggableChatWidget.js +34 -14
- package/lib/esm/components/draggable/DraggableEventEmitter.js +10 -1
- package/lib/esm/components/draggable/DraggableEventReceiver.js +1 -3
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +54 -17
- package/lib/esm/components/errorboundary/ErrorBoundary.js +4 -12
- package/lib/esm/components/footerstateful/FooterStateful.js +17 -8
- package/lib/esm/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +2 -4
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +4 -6
- package/lib/esm/components/headerstateful/HeaderStateful.js +22 -10
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +27 -4
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +5 -11
- package/lib/esm/components/livechatwidget/common/ChatWidgetEvents.js +1 -0
- package/lib/esm/components/livechatwidget/common/PersistentConversationHandler.js +11 -4
- package/lib/esm/components/livechatwidget/common/authHelper.js +44 -4
- package/lib/esm/components/livechatwidget/common/createMarkdown.js +98 -5
- package/lib/esm/components/livechatwidget/common/endChat.js +12 -9
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +182 -1
- package/lib/esm/components/livechatwidget/common/recoveryEligibilityTelemetry.js +52 -0
- package/lib/esm/components/livechatwidget/common/startChat.js +31 -14
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +159 -20
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +14 -9
- package/lib/esm/components/notificationpanestateful/NotificationPaneStateful.js +17 -10
- package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +12 -5
- package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +28 -5
- package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +11 -4
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +105 -11
- package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +12 -1
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +16 -6
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +15 -6
- package/lib/esm/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +9 -1
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +154 -29
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +10 -0
- package/lib/esm/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.js +115 -10
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +3 -0
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +2 -2
- package/lib/esm/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/utils/citationA11y.js +188 -0
- package/lib/esm/components/webchatcontainerstateful/interfaces/IWebChatAction.js +10 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.js +27 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +1 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +1 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.js +180 -190
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.js +3 -5
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +19 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -23
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -32
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AdaptiveCardAccessibilityWrapper.js +193 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.js +28 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +5 -12
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.js +8 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +8 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +5 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.js +6 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +6 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +13 -11
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.js +15 -13
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +17 -27
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +9 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware.js +1 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +16 -10
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +6 -6
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentSentAnnouncementMiddleware.js +77 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +36 -8
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/callActionMiddleware.js +5 -2
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +10 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware.js +5 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +7 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +10 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +6 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -10
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware.js +57 -11
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +6 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +25 -31
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +10 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +6 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +55 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +2 -4
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +5 -0
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +17 -1
- package/lib/esm/contexts/createReducer.js +15 -0
- package/lib/esm/controller/componentController.js +13 -1
- package/lib/esm/hooks/useWindowDimensions.js +13 -5
- package/lib/esm/plugins/createChatTranscript.js +3 -4
- package/lib/esm/plugins/newMessageEventHandler.js +20 -3
- package/lib/types/common/Constants.d.ts +4 -0
- package/lib/types/common/facades/FacadeChatSDK.d.ts +29 -0
- package/lib/types/common/facades/types/IFacadeChatSDKInput.d.ts +3 -1
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +15 -2
- package/lib/types/common/telemetry/sanitizeSasInPayload.d.ts +24 -0
- package/lib/types/common/utils.d.ts +3 -1
- package/lib/types/components/livechatwidget/common/ChatWidgetEvents.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +9 -2
- package/lib/types/components/livechatwidget/common/recoveryEligibilityTelemetry.d.ts +17 -0
- package/lib/types/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.d.ts +6 -0
- package/lib/types/components/webchatcontainerstateful/common/utils/chatAdapterUtils.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/common/utils/citationA11y.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatAction.d.ts +16 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +7 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.d.ts +14 -38
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AdaptiveCardAccessibilityWrapper.d.ts +18 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.d.ts +3 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentSentAnnouncementMiddleware.d.ts +10 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/callActionMiddleware.d.ts +2 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.d.ts +2 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware.d.ts +2 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.d.ts +2 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.d.ts +2 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.d.ts +7 -0
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
- package/lib/types/contexts/common/ILiveChatWidgetLocalizedTexts.d.ts +17 -0
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +2 -1
- package/package.json +71 -57
|
@@ -34,6 +34,7 @@ export declare class FacadeChatSDK {
|
|
|
34
34
|
private getAuthToken?;
|
|
35
35
|
private sdkMocked;
|
|
36
36
|
private disableReauthentication;
|
|
37
|
+
private pendingMidAuthUnauthenticatedState;
|
|
37
38
|
isSDKMocked(): boolean;
|
|
38
39
|
getChatSDK(): OmnichannelChatSDK;
|
|
39
40
|
destroy(): void;
|
|
@@ -46,6 +47,34 @@ export declare class FacadeChatSDK {
|
|
|
46
47
|
private setToken;
|
|
47
48
|
private corroborateTokenIsSet;
|
|
48
49
|
private tokenRing;
|
|
50
|
+
/**
|
|
51
|
+
* Sets unauthenticated state for mid-auth flow.
|
|
52
|
+
* Clears SDK internal state to prevent reconnection to previous authenticated session.
|
|
53
|
+
*/
|
|
54
|
+
private setMidAuthUnauthenticatedState;
|
|
55
|
+
/** Clears authentication state in both FacadeChatSDK and underlying SDK */
|
|
56
|
+
private clearAuthState;
|
|
57
|
+
/**
|
|
58
|
+
* Migrates conversation from unauthenticated to authenticated via authenticateChat.
|
|
59
|
+
* Called after startChat() when user has a valid token but the backend conversation
|
|
60
|
+
* was started as unauthenticated.
|
|
61
|
+
*/
|
|
62
|
+
private migrateConversationToAuthenticated;
|
|
63
|
+
/**
|
|
64
|
+
* Configures SDK auth state before startChat.
|
|
65
|
+
* CASE 1: Pending unauthenticated (no token) - sets deferInitialAuth=true
|
|
66
|
+
* CASE 2: Authenticated with valid token - sets SDK token and deferInitialAuth based on scenario
|
|
67
|
+
*/
|
|
68
|
+
private configureMidAuthState;
|
|
69
|
+
/**
|
|
70
|
+
* CASE 1 handler: Returns true if reconnect params should be cleared (Auth -> Unauth transition)
|
|
71
|
+
*/
|
|
72
|
+
private handlePendingUnauthenticatedState;
|
|
73
|
+
/**
|
|
74
|
+
* CASE 2 handler: Sets deferInitialAuth only for reconnects to unauthenticated sessions (need migration).
|
|
75
|
+
* For new chats or reconnects to authenticated sessions, SDK handles auth internally.
|
|
76
|
+
*/
|
|
77
|
+
private handleAuthenticatedState;
|
|
49
78
|
private validateAndExecuteCall;
|
|
50
79
|
initialize(optionalParams?: InitializeOptionalParams): Promise<ChatConfig>;
|
|
51
80
|
getChatReconnectContext(optionalParams?: ChatReconnectOptionalParams): Promise<ChatReconnectContext>;
|
|
@@ -5,7 +5,9 @@ export interface IFacadeChatSDKInput {
|
|
|
5
5
|
chatConfig: ChatConfig;
|
|
6
6
|
isAuthenticated: boolean;
|
|
7
7
|
isSDKMocked: boolean;
|
|
8
|
-
getAuthToken?: (authClientFunction?: string
|
|
8
|
+
getAuthToken?: (authClientFunction?: string, options?: {
|
|
9
|
+
isMidAuthEnabled: boolean;
|
|
10
|
+
}) => Promise<string | null>;
|
|
9
11
|
}
|
|
10
12
|
export interface PingResponse {
|
|
11
13
|
result: boolean;
|
|
@@ -57,7 +57,9 @@ export declare enum BroadcastEvent {
|
|
|
57
57
|
OnWidgetError = "OnWidgetError",
|
|
58
58
|
FMLTrackingCompletedAck = "FMLTrackingCompletedAck",
|
|
59
59
|
FMLTrackingCompleted = "FMLTrackingCompleted",
|
|
60
|
-
PersistentConversationReset = "PersistentConversationReset"
|
|
60
|
+
PersistentConversationReset = "PersistentConversationReset",
|
|
61
|
+
MidConversationAuthSucceeded = "MidConversationAuthSucceeded",// Emitted when mid-conversation auth succeeds (for reconnect support)
|
|
62
|
+
MidConversationAuthReset = "MidConversationAuthReset"
|
|
61
63
|
}
|
|
62
64
|
export declare enum TelemetryEvent {
|
|
63
65
|
FetchPersistentChatHistoryFailed = "FetchPersistentChatHistoryFailed",
|
|
@@ -90,6 +92,10 @@ export declare enum TelemetryEvent {
|
|
|
90
92
|
CallingSDKInitFailed = "CallingSDKInitFailed",
|
|
91
93
|
CallingSDKLoadSuccess = "CallingSDKLoadSuccess",
|
|
92
94
|
CallingSDKLoadFailed = "CallingSDKLoadFailed",
|
|
95
|
+
MidConversationAuthSucceeded = "MidConversationAuthSucceeded",
|
|
96
|
+
MidConversationAuthFailed = "MidConversationAuthFailed",
|
|
97
|
+
MidConversationAuthReset = "MidConversationAuthReset",
|
|
98
|
+
RecoveryEligibilityEvaluated = "RecoveryEligibilityEvaluated",
|
|
93
99
|
GetConversationDetailsCallStarted = "GetConversationDetailsCallStarted",
|
|
94
100
|
GetConversationDetailsCallFailed = "GetConversationDetailsCallFailed",
|
|
95
101
|
EndChatSDKCallFailed = "EndChatSDKCallFailed",
|
|
@@ -179,6 +185,7 @@ export declare enum TelemetryEvent {
|
|
|
179
185
|
QueueOverflowEvent = "QueueOverflowEvent",
|
|
180
186
|
ProcessingHTMLTextMiddlewareFailed = "ProcessingHTMLTextMiddlewareFailed",
|
|
181
187
|
ProcessingSanitizationMiddlewareFailed = "ProcessingSanitizationMiddlewareFailed",
|
|
188
|
+
HTMLSanitized = "HTMLSanitized",
|
|
182
189
|
FormatTagsMiddlewareJSONStringifyFailed = "FormatTagsMiddlewareJSONStringifyFailed",
|
|
183
190
|
AttachmentUploadValidatorMiddlewareFailed = "AttachmentUploadValidatorMiddlewareFailed",
|
|
184
191
|
CitationMiddlewareFailed = "CitationMiddlewareFailed",
|
|
@@ -300,10 +307,16 @@ export declare enum TelemetryEvent {
|
|
|
300
307
|
LCWLazyLoadNoMoreHistory = "LCWLazyLoadNoMoreHistory",
|
|
301
308
|
LCWLazyLoadHistoryError = "LCWLazyLoadHistoryError",
|
|
302
309
|
LCWLazyLoadDestroyed = "LCWLazyLoadDestroyed",
|
|
310
|
+
LCWLazyLoadTriggerFired = "LCWLazyLoadTriggerFired",
|
|
311
|
+
LCWLazyLoadBatchReceived = "LCWLazyLoadBatchReceived",
|
|
312
|
+
LCWLazyLoadInitialLoadComplete = "LCWLazyLoadInitialLoadComplete",
|
|
313
|
+
LCWLazyLoadScrollAnchorApplied = "LCWLazyLoadScrollAnchorApplied",
|
|
303
314
|
SecureEventBusUnauthorizedDispatch = "SecureEventBusUnauthorizedDispatch",
|
|
304
315
|
SecureEventBusListenerError = "SecureEventBusListenerError",
|
|
305
316
|
SecureEventBusDispatchError = "SecureEventBusDispatchError",
|
|
306
|
-
StartChatComplete = "StartChatComplete"
|
|
317
|
+
StartChatComplete = "StartChatComplete",
|
|
318
|
+
AgentJoinedConversation = "AgentJoinedConversation",
|
|
319
|
+
BrowserTabHidden = "BrowserTabHidden"
|
|
307
320
|
}
|
|
308
321
|
export interface TelemetryInput {
|
|
309
322
|
scenarioType: ScenarioType;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redacts the values of Azure Shared Access Signature (SAS) query parameters in any
|
|
3
|
+
* URL embedded in a telemetry payload, so customer-supplied SAS URLs (e.g. blob asset
|
|
4
|
+
* URLs in widget customization props) cannot leak credentials through Aria/AppInsights.
|
|
5
|
+
*
|
|
6
|
+
* Trigger: any URL whose query string contains `sig=`. When detected, every well-known
|
|
7
|
+
* SAS parameter value in that query is replaced with `[REDACTED]`. Other URLs and other
|
|
8
|
+
* substrings of the payload pass through unchanged.
|
|
9
|
+
*
|
|
10
|
+
* Coverage of SAS parameter names:
|
|
11
|
+
* - Service/Blob SAS: sig, sv, se, st, sp, spr, sr, sip
|
|
12
|
+
* - Account SAS: ss, srt
|
|
13
|
+
* - User-delegation key SAS: skoid, sktid, skt, ske, sks, skv, saoid, suoid, sce, sdd
|
|
14
|
+
* - Response header overrides: rscc, rscd, rsce, rscl, rsct
|
|
15
|
+
*
|
|
16
|
+
* Reference: https://learn.microsoft.com/en-us/rest/api/storageservices/create-service-sas
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Deep-walk a value and redact SAS credentials in any string it contains.
|
|
20
|
+
* Returns a new object/array (originals are not mutated); non-string leaves are
|
|
21
|
+
* passed through. Tree-shaped, JSON-like values only — not designed for class
|
|
22
|
+
* instances, prototype-bound objects, or cyclic graphs.
|
|
23
|
+
*/
|
|
24
|
+
export declare const sanitizeSasInPayload: <T>(value: T) => T;
|
|
@@ -4,9 +4,11 @@ import { ITimer } from "./interfaces/ITimer";
|
|
|
4
4
|
export declare const setTabIndices: (elements: HTMLElement[] | null, tabIndexMap: Map<string, number>, shouldBeFocusable: boolean) => void;
|
|
5
5
|
export declare const findParentFocusableElementsWithoutChildContainer: (elementId: string) => HTMLElement[] | null;
|
|
6
6
|
export declare const findAllFocusableElement: (parent: string | HTMLElement) => any[] | null;
|
|
7
|
-
export declare const preventFocusToMoveOutOfElement: (elementId: string) => void;
|
|
7
|
+
export declare const preventFocusToMoveOutOfElement: (elementId: string) => (() => void);
|
|
8
|
+
export declare const setAriaHiddenForSiblings: (elementId: string, shouldHide: boolean, stateMap: Map<Element, string | null>) => void;
|
|
8
9
|
export declare const setFocusOnSendBox: () => void;
|
|
9
10
|
export declare const setFocusOnElement: (selector: string | HTMLElement) => void;
|
|
11
|
+
export declare const announceMessageImmediately: (message: string) => void;
|
|
10
12
|
export declare const escapeHtml: (inputString: string) => string;
|
|
11
13
|
export declare const getIconText: (text: string) => string;
|
|
12
14
|
export declare const getLocaleDirection: (localeLCID: string) => string;
|
|
@@ -2,6 +2,7 @@ declare enum ChatWidgetEvents {
|
|
|
2
2
|
ADD_ACTIVITY = "CHAT_WIDGET/ADD_ACTIVITY",
|
|
3
3
|
FETCH_PERSISTENT_CHAT_HISTORY = "CHAT_WIDGET/FETCH_PERSISTENT_CHAT_HISTORY",
|
|
4
4
|
NO_MORE_HISTORY_AVAILABLE = "CHAT_WIDGET/NO_MORE_HISTORY_AVAILABLE",
|
|
5
|
-
HISTORY_LOAD_ERROR = "CHAT_WIDGET/HISTORY_LOAD_ERROR"
|
|
5
|
+
HISTORY_LOAD_ERROR = "CHAT_WIDGET/HISTORY_LOAD_ERROR",
|
|
6
|
+
HISTORY_BATCH_LOADED = "CHAT_WIDGET/HISTORY_BATCH_LOADED"
|
|
6
7
|
}
|
|
7
8
|
export default ChatWidgetEvents;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import ChatConfig from "@microsoft/omnichannel-chat-sdk/lib/core/ChatConfig";
|
|
2
2
|
import { OmnichannelChatSDK } from "@microsoft/omnichannel-chat-sdk";
|
|
3
|
+
/**
|
|
4
|
+
* Check if mid-auth is enabled based on chatConfig.
|
|
5
|
+
* Mid-auth flag lives under LiveWSAndLiveChatEngJoin.msdyn_authenticatedsigninoptional.
|
|
6
|
+
*/
|
|
7
|
+
declare const isMidAuthEnabled: (chatConfig: ChatConfig | undefined) => boolean;
|
|
3
8
|
declare const getAuthClientFunction: (chatConfig: ChatConfig | undefined) => string | undefined;
|
|
4
|
-
declare const handleAuthentication: (chatSDK: OmnichannelChatSDK, chatConfig: ChatConfig | undefined, getAuthToken: ((authClientFunction?: string
|
|
9
|
+
declare const handleAuthentication: (chatSDK: OmnichannelChatSDK, chatConfig: ChatConfig | undefined, getAuthToken: ((authClientFunction?: string, options?: {
|
|
10
|
+
isMidAuthEnabled: boolean;
|
|
11
|
+
}) => Promise<string | null>) | undefined) => Promise<{
|
|
5
12
|
result: boolean;
|
|
6
13
|
token: string | null;
|
|
7
14
|
error?: undefined;
|
|
@@ -15,4 +22,4 @@ declare const handleAuthentication: (chatSDK: OmnichannelChatSDK, chatConfig: Ch
|
|
|
15
22
|
};
|
|
16
23
|
}>;
|
|
17
24
|
declare const removeAuthTokenProvider: (chatSDK: any) => void;
|
|
18
|
-
export { getAuthClientFunction, handleAuthentication, removeAuthTokenProvider };
|
|
25
|
+
export { getAuthClientFunction, handleAuthentication, removeAuthTokenProvider, isMidAuthEnabled };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ILiveChatWidgetContext } from "../../../contexts/common/ILiveChatWidgetContext";
|
|
2
|
+
export declare enum RecoveryEligibilityReason {
|
|
3
|
+
ReconnectIdPresent = "ReconnectIdPresent",
|
|
4
|
+
ActiveContextPresent = "ActiveContextPresent",
|
|
5
|
+
MissingContext = "MissingContext",
|
|
6
|
+
CachedContextNonActive = "CachedContextNonActive"
|
|
7
|
+
}
|
|
8
|
+
export interface RecoveryEligibilityTelemetryProperties {
|
|
9
|
+
conversationState: string;
|
|
10
|
+
hasReconnectId: boolean;
|
|
11
|
+
hasLiveChatContext: boolean;
|
|
12
|
+
hasRequestId: boolean;
|
|
13
|
+
eligible: boolean;
|
|
14
|
+
reason: RecoveryEligibilityReason;
|
|
15
|
+
}
|
|
16
|
+
export declare const getRecoveryEligibilityTelemetryProperties: (state: ILiveChatWidgetContext, eligible: boolean) => RecoveryEligibilityTelemetryProperties;
|
|
17
|
+
export declare const logRecoveryEligibilityTelemetry: (state: ILiveChatWidgetContext, eligible: boolean) => void;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IPreChatSurveyPaneStatefulParams } from "./interfaces/IPreChatSurveyPaneStatefulParams";
|
|
3
|
+
import MarkdownIt from "markdown-it";
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
markdownit: typeof MarkdownIt;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
3
9
|
export declare const PreChatSurveyPaneStateful: (props: IPreChatSurveyPaneStatefulParams) => React.JSX.Element;
|
|
4
10
|
export default PreChatSurveyPaneStateful;
|
|
@@ -4,7 +4,7 @@ export declare const customerUser: User;
|
|
|
4
4
|
export declare const botUser: User;
|
|
5
5
|
export declare const agentUser: User;
|
|
6
6
|
export declare const postEchoActivity: (activityObserver: Subscriber<Activity> | undefined, activity: Message, user: User, delay?: number) => void;
|
|
7
|
-
export declare const postBotMessageActivity: (activityObserver: Subscriber<Activity> | undefined, text: string, tags?: string, delay?: number) => void;
|
|
7
|
+
export declare const postBotMessageActivity: (activityObserver: Subscriber<Activity> | undefined, text: string, tags?: string, delay?: number, fromOverride?: Partial<User>) => void;
|
|
8
8
|
export declare const postAgentMessageActivity: (activityObserver: Subscriber<Activity> | undefined, text: string, tags?: string, delay?: number) => void;
|
|
9
9
|
export declare const postSystemMessageActivity: (activityObserver: Subscriber<Activity> | undefined, text: string, delay?: number) => void;
|
|
10
10
|
export declare const postBotTypingActivity: (activityObserver: Subscriber<Activity> | undefined, delay?: number) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const patchCitationAnchorsForA11y: (root: ParentNode) => void;
|
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
export interface IWebChatAction {
|
|
2
2
|
type: string;
|
|
3
|
-
payload
|
|
3
|
+
payload?: any;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Type guard narrowing the `unknown` action received by a Redux 5 store middleware
|
|
7
|
+
* down to Web Chat's IWebChatAction shape, so middlewares can safely access `type`/`payload`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isWebChatAction: (action: unknown) => action is IWebChatAction;
|
|
10
|
+
/**
|
|
11
|
+
* Structural middleware type matching the unknown-action contract expected by
|
|
12
|
+
* botframework-webchat's `createStore` without exposing Redux as a public dependency.
|
|
13
|
+
*/
|
|
14
|
+
type WebChatDispatch = (action: unknown) => unknown;
|
|
15
|
+
export type WebChatStoreMiddleware = (api: {
|
|
16
|
+
dispatch: WebChatDispatch;
|
|
17
|
+
getState: () => unknown;
|
|
18
|
+
}) => (next: WebChatDispatch) => WebChatDispatch;
|
|
19
|
+
export {};
|
package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts
CHANGED
|
@@ -25,4 +25,11 @@ export interface IWebChatContainerStatefulProps {
|
|
|
25
25
|
adaptiveCardStyles?: IAdaptiveCardStyles;
|
|
26
26
|
sendBoxTextBox?: ISendBox;
|
|
27
27
|
webChatHistoryMobileAccessibilityLabel?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Accessible name applied to WebChats notification toaster region
|
|
30
|
+
* (`role="log"`). When omitted, defaults to "Chat notifications" so
|
|
31
|
+
* screen readers don't announce the empty live region as "blank"
|
|
32
|
+
* (internal tracking).
|
|
33
|
+
*/
|
|
34
|
+
webChatNotificationRegionAccessibilityLabel?: string;
|
|
28
35
|
}
|
|
@@ -52,7 +52,9 @@ declare class LazyLoadHandler {
|
|
|
52
52
|
static initialized: boolean;
|
|
53
53
|
static paused: boolean;
|
|
54
54
|
static observer: IntersectionObserver | null;
|
|
55
|
-
|
|
55
|
+
static preLoadScrollHeight: number;
|
|
56
|
+
private static preLoadScrollTop;
|
|
57
|
+
static initialLoadComplete: boolean;
|
|
56
58
|
static pendingScrollAction: boolean;
|
|
57
59
|
private static retryTimeouts;
|
|
58
60
|
static resetPending: boolean;
|
|
@@ -151,40 +153,21 @@ declare class LazyLoadHandler {
|
|
|
151
153
|
* It coordinates the entire lazy loading process:
|
|
152
154
|
*
|
|
153
155
|
* 1. Sets flags to prevent concurrent operations
|
|
154
|
-
* 2.
|
|
155
|
-
* 3.
|
|
156
|
-
* 4. Executes scroll adjustment to maintain user position
|
|
156
|
+
* 2. Captures scroll state BEFORE content loads (for height-delta anchoring)
|
|
157
|
+
* 3. Dispatches event to fetch more chat history
|
|
157
158
|
*
|
|
158
|
-
*
|
|
159
|
+
* Scroll anchoring is triggered by HISTORY_BATCH_LOADED event (not a blind timeout).
|
|
159
160
|
*/
|
|
160
161
|
private static handleLazyLoadTrigger;
|
|
161
162
|
/**
|
|
162
|
-
*
|
|
163
|
+
* Applies height-delta scroll anchoring after new history content is prepended.
|
|
163
164
|
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* 4. Initiates the scroll attempt process
|
|
169
|
-
*
|
|
170
|
-
* If no suitable container is found, schedules a retry.
|
|
165
|
+
* When content is added above the viewport, the browser keeps scrollTop constant
|
|
166
|
+
* but the content shifts down — making the viewport drift upward.
|
|
167
|
+
* Fix: scrollTop = savedScrollTop + (newScrollHeight - savedScrollHeight)
|
|
168
|
+
* This keeps the user looking at the same content they had before.
|
|
171
169
|
*/
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Attempts to perform scroll with verification and retry logic
|
|
175
|
-
*
|
|
176
|
-
* This method implements a sophisticated scroll system:
|
|
177
|
-
*
|
|
178
|
-
* 1. Uses requestAnimationFrame for smooth execution
|
|
179
|
-
* 2. Performs the scroll operation
|
|
180
|
-
* 3. Verifies scroll actually occurred (5px tolerance)
|
|
181
|
-
* 4. Retries with exponential backoff if failed
|
|
182
|
-
* 5. Continues operation after max attempts
|
|
183
|
-
*
|
|
184
|
-
* The two-frame approach ensures scroll is applied and then verified
|
|
185
|
-
* after the browser has had time to process the scroll change.
|
|
186
|
-
*/
|
|
187
|
-
private static attemptScroll;
|
|
170
|
+
static applyScrollAnchor(): void;
|
|
188
171
|
/**
|
|
189
172
|
* Finishes scroll action and prepares for next cycle
|
|
190
173
|
*
|
|
@@ -192,21 +175,14 @@ declare class LazyLoadHandler {
|
|
|
192
175
|
* Uses delays to allow content stabilization before re-enabling
|
|
193
176
|
* the intersection observer for the next lazy load cycle.
|
|
194
177
|
*/
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Schedules retry for failed scroll operations
|
|
198
|
-
*
|
|
199
|
-
* Used when scroll container is not available or scrollable.
|
|
200
|
-
* Provides a longer delay to allow container to become ready.
|
|
201
|
-
*/
|
|
202
|
-
private static scheduleScrollRetry;
|
|
178
|
+
static finishScrollAction(): void;
|
|
203
179
|
/**
|
|
204
180
|
* Schedules observer reset for next lazy load cycle
|
|
205
181
|
*
|
|
206
182
|
* After a lazy load operation completes, the observer needs to be reset
|
|
207
183
|
* to detect the next time the user scrolls to the top.
|
|
208
184
|
*/
|
|
209
|
-
|
|
185
|
+
static scheduleReset(): void;
|
|
210
186
|
/**
|
|
211
187
|
* Finds the appropriate scroll container using multiple strategies
|
|
212
188
|
*
|
|
@@ -9,3 +9,5 @@
|
|
|
9
9
|
import { ILiveChatWidgetLocalizedTexts } from "../../../../../contexts/common/ILiveChatWidgetLocalizedTexts";
|
|
10
10
|
import React from "react";
|
|
11
11
|
export declare const createActivityMiddleware: (renderMarkdown: (text: string) => string, systemMessageStyleProps?: React.CSSProperties, userMessageStyleProps?: React.CSSProperties, localizedTexts?: ILiveChatWidgetLocalizedTexts) => () => (next: any) => (...args: any) => any;
|
|
12
|
+
/** Clear module-level caches. Call on conversation end / chat close. */
|
|
13
|
+
export declare const resetActivityMiddlewareCache: () => void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/******
|
|
3
|
+
* AdaptiveCardAccessibilityWrapper
|
|
4
|
+
*
|
|
5
|
+
* The `adaptivecards` renderer does not set `aria-setsize` or `aria-posinset`
|
|
6
|
+
* on radio buttons rendered by Input.ChoiceSet (style: "expanded"). Without
|
|
7
|
+
* these attributes, screen readers (TalkBack, VoiceOver, NVDA) cannot announce
|
|
8
|
+
* the correct option count (e.g. "1 of 2") and may say "1 of 1" for every item.
|
|
9
|
+
*
|
|
10
|
+
* This wrapper observes the rendered card via MutationObserver and patches each
|
|
11
|
+
* radio group with the correct ARIA attributes after the card finishes rendering.
|
|
12
|
+
******/
|
|
13
|
+
declare const AdaptiveCardAccessibilityWrapper: React.FC<{
|
|
14
|
+
id?: string;
|
|
15
|
+
style?: any;
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
}>;
|
|
18
|
+
export default AdaptiveCardAccessibilityWrapper;
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const createMessageSequenceIdOverrideMiddleware:
|
|
3
|
-
dispatch: any;
|
|
4
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
1
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
2
|
+
export declare const createMessageSequenceIdOverrideMiddleware: WebChatStoreMiddleware;
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const createMessageTimeStampMiddleware:
|
|
3
|
-
dispatch: any;
|
|
4
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
1
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
2
|
+
export declare const createMessageTimeStampMiddleware: WebChatStoreMiddleware;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Handles attachment sending.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const attachmentProcessingMiddleware:
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => Promise<any>;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const attachmentProcessingMiddleware: WebChatStoreMiddleware;
|
|
10
8
|
export default attachmentProcessingMiddleware;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/******
|
|
2
|
+
* AttachmentSentAnnouncementMiddleware
|
|
3
|
+
*
|
|
4
|
+
* When a file attachment is successfully sent, announces the result to
|
|
5
|
+
* screen readers via an aria-live region so that assistive technology
|
|
6
|
+
* users receive immediate feedback.
|
|
7
|
+
******/
|
|
8
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
9
|
+
declare const attachmentSentAnnouncementMiddleware: WebChatStoreMiddleware;
|
|
10
|
+
export default attachmentSentAnnouncementMiddleware;
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* Checks if the attachment being uploaded satisfies Omnichannel's requirement on file extensions and file size.
|
|
5
5
|
******/
|
|
6
6
|
import { ILiveChatWidgetLocalizedTexts } from "../../../../../contexts/common/ILiveChatWidgetLocalizedTexts";
|
|
7
|
-
import {
|
|
8
|
-
declare const createAttachmentUploadValidatorMiddleware: (allowedFileExtensions: string, maxFileSizeSupportedByDynamics: string, localizedTexts: ILiveChatWidgetLocalizedTexts) =>
|
|
9
|
-
dispatch: any;
|
|
10
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
7
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
8
|
+
declare const createAttachmentUploadValidatorMiddleware: (allowedFileExtensions: string, maxFileSizeSupportedByDynamics: string, localizedTexts: ILiveChatWidgetLocalizedTexts) => WebChatStoreMiddleware;
|
|
11
9
|
export default createAttachmentUploadValidatorMiddleware;
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Intercepts custom call actions and handles tel: URL navigation
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const createCallActionMiddleware: () =>
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const createCallActionMiddleware: () => WebChatStoreMiddleware;
|
|
8
8
|
export default createCallActionMiddleware;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Adds necessary tags if not present so that the rendering middlewares can process them later.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const channelDataMiddleware: (addConversationalSurveyTagsCallback: any) =>
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const channelDataMiddleware: (addConversationalSurveyTagsCallback: any) => WebChatStoreMiddleware;
|
|
10
8
|
export default channelDataMiddleware;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ILiveChatWidgetAction } from "../../../../../contexts/common/ILiveChatWidgetAction";
|
|
2
2
|
import { ILiveChatWidgetContext } from "../../../../../contexts/common/ILiveChatWidgetContext";
|
|
3
|
-
import {
|
|
4
|
-
export declare const createCitationsMiddleware: (state: ILiveChatWidgetContext, dispatch: (action: ILiveChatWidgetAction) => void) =>
|
|
3
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
4
|
+
export declare const createCitationsMiddleware: (state: ILiveChatWidgetContext, dispatch: (action: ILiveChatWidgetAction) => void) => WebChatStoreMiddleware;
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* This middleware is invoked when the conversation is ended by the agent/bot.
|
|
5
5
|
* The callback is then invoked to hide the send box (by default).
|
|
6
6
|
******/
|
|
7
|
-
import {
|
|
8
|
-
declare const createConversationEndMiddleware: (conversationEndCallback: any, startConversationalSurveyCallback: any, endConversationalSurveyCallback: any) =>
|
|
9
|
-
dispatch: any;
|
|
10
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
7
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
8
|
+
declare const createConversationEndMiddleware: (conversationEndCallback: any, startConversationalSurveyCallback: any, endConversationalSurveyCallback: any) => WebChatStoreMiddleware;
|
|
11
9
|
export default createConversationEndMiddleware;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This middleware is invoked when a custom event is received.
|
|
5
5
|
* The callback is then invoked to handle the custom event.
|
|
6
6
|
******/
|
|
7
|
-
import {
|
|
7
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
8
8
|
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
9
9
|
export declare const isValidCustomEvent: (activity: {
|
|
10
10
|
channelData?: {
|
|
@@ -18,5 +18,5 @@ export declare const isValidCustomEvent: (activity: {
|
|
|
18
18
|
role: string;
|
|
19
19
|
};
|
|
20
20
|
}) => boolean;
|
|
21
|
-
declare const createCustomEventMiddleware: (broadcastservice: typeof BroadcastService) =>
|
|
21
|
+
declare const createCustomEventMiddleware: (broadcastservice: typeof BroadcastService) => WebChatStoreMiddleware;
|
|
22
22
|
export default createCustomEventMiddleware;
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* Applies data masking rules that Omnichannel Admin has configured.
|
|
5
5
|
******/
|
|
6
6
|
import { IDataMaskingInfo } from "../../../interfaces/IDataMaskingInfo";
|
|
7
|
-
import {
|
|
8
|
-
declare const createDataMaskingMiddleware: (dataMaskingInfo: IDataMaskingInfo) =>
|
|
9
|
-
dispatch: any;
|
|
10
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
7
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
8
|
+
declare const createDataMaskingMiddleware: (dataMaskingInfo: IDataMaskingInfo) => WebChatStoreMiddleware;
|
|
11
9
|
export default createDataMaskingMiddleware;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Ensures that GIF are properly uploaded.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const gifUploadMiddleware:
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const gifUploadMiddleware: WebChatStoreMiddleware;
|
|
10
8
|
export default gifUploadMiddleware;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Ensures that video/audio attachment are properly rendered.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const htmlPlayerMiddleware:
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const htmlPlayerMiddleware: WebChatStoreMiddleware;
|
|
10
8
|
export default htmlPlayerMiddleware;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Ensures that links within messages are processed so that the caller website cannot be traced.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const htmlTextMiddleware: (honorsTargetInHTMLLinks?: boolean) =>
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const htmlTextMiddleware: (honorsTargetInHTMLLinks?: boolean) => WebChatStoreMiddleware;
|
|
10
8
|
export default htmlTextMiddleware;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const localizedStringsBotInitialsMiddleware: (onInitialsChange?: (initials: string) => void) =>
|
|
3
|
-
dispatch: any;
|
|
4
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
1
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
2
|
+
export declare const localizedStringsBotInitialsMiddleware: (onInitialsChange?: (initials: string) => void) => WebChatStoreMiddleware;
|
|
5
3
|
export declare const getOverriddenLocalizedStrings: (existingOverrides?: any) => (strings: any) => any;
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* Enforces a max character limit that the sender can send to comply to Omnichannel chat services' limitation.
|
|
5
5
|
******/
|
|
6
6
|
import { ILiveChatWidgetLocalizedTexts } from "../../../../../contexts/common/ILiveChatWidgetLocalizedTexts";
|
|
7
|
-
import {
|
|
8
|
-
declare const createMaxMessageSizeValidator: (localizedTexts: ILiveChatWidgetLocalizedTexts) =>
|
|
9
|
-
dispatch: any;
|
|
10
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
7
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
8
|
+
declare const createMaxMessageSizeValidator: (localizedTexts: ILiveChatWidgetLocalizedTexts) => WebChatStoreMiddleware;
|
|
11
9
|
export default createMaxMessageSizeValidator;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Adds necessary fields for the activity for the other middlewares to function as expected.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const preProcessingMiddleware:
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => Promise<any>;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const preProcessingMiddleware: WebChatStoreMiddleware;
|
|
10
8
|
export default preProcessingMiddleware;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Dispatch } from "react";
|
|
2
2
|
import { ILiveChatWidgetAction } from "../../../../../contexts/common/ILiveChatWidgetAction";
|
|
3
3
|
import { ILiveChatWidgetContext } from "../../../../../contexts/common/ILiveChatWidgetContext";
|
|
4
|
-
import {
|
|
5
|
-
export declare const createQueueOverflowMiddleware: (state: ILiveChatWidgetContext, dispatch: Dispatch<ILiveChatWidgetAction>) =>
|
|
4
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
5
|
+
export declare const createQueueOverflowMiddleware: (state: ILiveChatWidgetContext, dispatch: Dispatch<ILiveChatWidgetAction>) => WebChatStoreMiddleware;
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Sanitizes the text.
|
|
5
5
|
******/
|
|
6
|
-
import {
|
|
7
|
-
declare const sanitizationMiddleware:
|
|
8
|
-
dispatch: any;
|
|
9
|
-
}) => (next: any) => (action: IWebChatAction) => any;
|
|
6
|
+
import { WebChatStoreMiddleware } from "../../../interfaces/IWebChatAction";
|
|
7
|
+
declare const sanitizationMiddleware: WebChatStoreMiddleware;
|
|
10
8
|
export default sanitizationMiddleware;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { NotificationLevel } from "../enums/NotificationLevel";
|
|
2
2
|
export declare class NotificationHandler {
|
|
3
|
+
private static clearTimeoutId;
|
|
3
4
|
private static notify;
|
|
5
|
+
/**
|
|
6
|
+
* Announces a message immediately to screen readers via an aria-live="assertive" region.
|
|
7
|
+
* This ensures notifications interrupt the current screen reader output
|
|
8
|
+
* instead of waiting for it to finish reading other content.
|
|
9
|
+
*/
|
|
10
|
+
private static announceToScreenReader;
|
|
4
11
|
static dismissNotification(id: string): void;
|
|
5
12
|
static notifyError(id: string, message: string): void;
|
|
6
13
|
static notifyWarning(id: string, message: string): void;
|