botframework-webchat-api 4.13.0 → 4.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.yml +4 -100
- package/.prettierrc.yml +1 -1
- package/lib/StyleOptions.d.ts +270 -15
- package/lib/StyleOptions.d.ts.map +1 -1
- package/lib/defaultStyleOptions.d.ts +4 -0
- package/lib/defaultStyleOptions.d.ts.map +1 -0
- package/lib/defaultStyleOptions.js +73 -16
- package/lib/hooks/Composer.d.ts +71 -0
- package/lib/hooks/Composer.d.ts.map +1 -0
- package/lib/hooks/Composer.js +122 -90
- package/lib/hooks/index.d.ts +74 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/index.js +89 -1
- package/lib/hooks/internal/ErrorBox.js +2 -2
- package/lib/hooks/internal/Tracker.d.ts +4 -0
- package/lib/hooks/internal/Tracker.d.ts.map +1 -0
- package/lib/hooks/internal/WebChatAPIContext.d.ts +81 -0
- package/lib/hooks/internal/WebChatAPIContext.d.ts.map +1 -0
- package/lib/hooks/internal/WebChatAPIContext.js +2 -4
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts +4 -0
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts.map +1 -0
- package/lib/hooks/internal/useCreateActivityRendererInternal.js +1 -1
- package/lib/hooks/internal/useDebugDeps.js +11 -5
- package/lib/hooks/internal/useDownscaleImageToDataURL.js +1 -1
- package/lib/hooks/internal/useErrorBoxClass.js +1 -1
- package/lib/hooks/internal/useForceRender.js +2 -2
- package/lib/hooks/internal/useLocalizedStrings.js +1 -1
- package/lib/hooks/internal/usePrevious.d.ts +2 -0
- package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
- package/lib/hooks/internal/usePrevious.js +17 -0
- package/lib/hooks/internal/useReadTelemetryDimensions.js +2 -2
- package/lib/hooks/internal/useTimePassed.js +2 -2
- package/lib/hooks/internal/useTracker.js +2 -2
- package/lib/hooks/internal/useValueRef.d.ts +3 -0
- package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
- package/lib/hooks/internal/useValueRef.js +24 -0
- package/lib/hooks/middleware/UserlandBoundary.js +4 -4
- package/lib/hooks/middleware/applyMiddleware.js +6 -6
- package/lib/hooks/middleware/concatMiddleware.d.ts +6 -0
- package/lib/hooks/middleware/concatMiddleware.d.ts.map +1 -0
- package/lib/hooks/middleware/concatMiddleware.js +3 -3
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts +3 -0
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts.map +1 -0
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.js +6 -8
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts +5 -0
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts.map +1 -0
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.js +1 -1
- package/lib/hooks/useActiveTyping.d.ts +6 -0
- package/lib/hooks/useActiveTyping.d.ts.map +1 -0
- package/lib/hooks/useActiveTyping.js +4 -4
- package/lib/hooks/useActivities.d.ts +3 -0
- package/lib/hooks/useActivities.d.ts.map +1 -0
- package/lib/hooks/useActivities.js +1 -1
- package/lib/hooks/useActivityKeys.d.ts +3 -0
- package/lib/hooks/useActivityKeys.d.ts.map +1 -0
- package/lib/hooks/useActivityKeys.js +14 -0
- package/lib/hooks/useActivityKeysByRead.d.ts +3 -0
- package/lib/hooks/useActivityKeysByRead.d.ts.map +1 -0
- package/lib/hooks/useActivityKeysByRead.js +14 -0
- package/lib/hooks/useAvatarForBot.d.ts +5 -0
- package/lib/hooks/useAvatarForBot.d.ts.map +1 -0
- package/lib/hooks/useAvatarForBot.js +2 -2
- package/lib/hooks/useAvatarForUser.d.ts +5 -0
- package/lib/hooks/useAvatarForUser.d.ts.map +1 -0
- package/lib/hooks/useAvatarForUser.js +2 -2
- package/lib/hooks/useByteFormatter.d.ts +2 -0
- package/lib/hooks/useByteFormatter.d.ts.map +1 -0
- package/lib/hooks/useByteFormatter.js +2 -2
- package/lib/hooks/useConnectivityStatus.d.ts +2 -0
- package/lib/hooks/useConnectivityStatus.d.ts.map +1 -0
- package/lib/hooks/useConnectivityStatus.js +1 -1
- package/lib/hooks/useCreateActivityRenderer.d.ts +3 -0
- package/lib/hooks/useCreateActivityRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateActivityRenderer.js +1 -2
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts +9 -0
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateActivityStatusRenderer.js +6 -4
- package/lib/hooks/useCreateAvatarRenderer.d.ts +6 -0
- package/lib/hooks/useCreateAvatarRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateAvatarRenderer.js +2 -2
- package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts +3 -0
- package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts.map +1 -0
- package/lib/hooks/useCreateScrollToEndButtonRenderer.js +15 -0
- package/lib/hooks/useDateFormatter.d.ts +2 -0
- package/lib/hooks/useDateFormatter.d.ts.map +1 -0
- package/lib/hooks/useDateFormatter.js +2 -2
- package/lib/hooks/useDebouncedNotifications.d.ts +13 -0
- package/lib/hooks/useDebouncedNotifications.d.ts.map +1 -0
- package/lib/hooks/useDebouncedNotifications.js +7 -7
- package/lib/hooks/useDictateInterims.d.ts +2 -0
- package/lib/hooks/useDictateInterims.d.ts.map +1 -0
- package/lib/hooks/useDictateInterims.js +1 -1
- package/lib/hooks/useDictateState.d.ts +2 -0
- package/lib/hooks/useDictateState.d.ts.map +1 -0
- package/lib/hooks/useDictateState.js +1 -1
- package/lib/hooks/useDirection.d.ts +2 -0
- package/lib/hooks/useDirection.d.ts.map +1 -0
- package/lib/hooks/useDirection.js +2 -2
- package/lib/hooks/useDisabled.d.ts +2 -0
- package/lib/hooks/useDisabled.d.ts.map +1 -0
- package/lib/hooks/useDisabled.js +1 -1
- package/lib/hooks/useDismissNotification.d.ts +2 -0
- package/lib/hooks/useDismissNotification.d.ts.map +1 -0
- package/lib/hooks/useDismissNotification.js +1 -1
- package/lib/hooks/useEmitTypingIndicator.d.ts +2 -0
- package/lib/hooks/useEmitTypingIndicator.d.ts.map +1 -0
- package/lib/hooks/useEmitTypingIndicator.js +1 -1
- package/lib/hooks/useGetActivityByKey.d.ts +3 -0
- package/lib/hooks/useGetActivityByKey.d.ts.map +1 -0
- package/lib/hooks/useGetActivityByKey.js +14 -0
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts +3 -0
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts.map +1 -0
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.js +14 -0
- package/lib/hooks/useGetKeyByActivity.d.ts +3 -0
- package/lib/hooks/useGetKeyByActivity.d.ts.map +1 -0
- package/lib/hooks/useGetKeyByActivity.js +14 -0
- package/lib/hooks/useGetKeyByActivityId.d.ts +3 -0
- package/lib/hooks/useGetKeyByActivityId.d.ts.map +1 -0
- package/lib/hooks/useGetKeyByActivityId.js +14 -0
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts +5 -0
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts.map +1 -0
- package/lib/hooks/useGetSendTimeoutForActivity.js +2 -2
- package/lib/hooks/useGrammars.d.ts +2 -0
- package/lib/hooks/useGrammars.d.ts.map +1 -0
- package/lib/hooks/useGrammars.js +1 -1
- package/lib/hooks/useGroupActivities.d.ts +8 -0
- package/lib/hooks/useGroupActivities.d.ts.map +1 -0
- package/lib/hooks/useGroupActivities.js +1 -1
- package/lib/hooks/useGroupTimestamp.d.ts +2 -0
- package/lib/hooks/useGroupTimestamp.d.ts.map +1 -0
- package/lib/hooks/useGroupTimestamp.js +2 -2
- package/lib/hooks/useLanguage.d.ts +2 -0
- package/lib/hooks/useLanguage.d.ts.map +1 -0
- package/lib/hooks/useLanguage.js +1 -1
- package/lib/hooks/useLastAcknowledgedActivityKey.d.ts +3 -0
- package/lib/hooks/useLastAcknowledgedActivityKey.d.ts.map +1 -0
- package/lib/hooks/useLastAcknowledgedActivityKey.js +14 -0
- package/lib/hooks/useLastReadActivityKey.d.ts +3 -0
- package/lib/hooks/useLastReadActivityKey.d.ts.map +1 -0
- package/lib/hooks/useLastReadActivityKey.js +14 -0
- package/lib/hooks/useLastTypingAt.d.ts +5 -0
- package/lib/hooks/useLastTypingAt.d.ts.map +1 -0
- package/lib/hooks/useLastTypingAt.js +2 -1
- package/lib/hooks/useLocalize.d.ts +3 -0
- package/lib/hooks/useLocalize.d.ts.map +1 -0
- package/lib/hooks/useLocalize.js +5 -2
- package/lib/hooks/useLocalizeDate.d.ts +3 -0
- package/lib/hooks/useLocalizeDate.d.ts.map +1 -0
- package/lib/hooks/useLocalizeDate.js +3 -2
- package/lib/hooks/useLocalizer.d.ts +13 -0
- package/lib/hooks/useLocalizer.d.ts.map +1 -0
- package/lib/hooks/useLocalizer.js +16 -6
- package/lib/hooks/useMarkActivityAsSpoken.d.ts +3 -0
- package/lib/hooks/useMarkActivityAsSpoken.d.ts.map +1 -0
- package/lib/hooks/useMarkActivityAsSpoken.js +1 -1
- package/lib/hooks/useMarkActivityKeyAsRead.d.ts +3 -0
- package/lib/hooks/useMarkActivityKeyAsRead.d.ts.map +1 -0
- package/lib/hooks/useMarkActivityKeyAsRead.js +14 -0
- package/lib/hooks/useMarkAllAsAcknowledged.d.ts +3 -0
- package/lib/hooks/useMarkAllAsAcknowledged.d.ts.map +1 -0
- package/lib/hooks/useMarkAllAsAcknowledged.js +14 -0
- package/lib/hooks/useNotifications.d.ts +3 -0
- package/lib/hooks/useNotifications.d.ts.map +1 -0
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/usePerformCardAction.d.ts +3 -0
- package/lib/hooks/usePerformCardAction.d.ts.map +1 -0
- package/lib/hooks/usePerformCardAction.js +1 -1
- package/lib/hooks/usePostActivity.d.ts +4 -0
- package/lib/hooks/usePostActivity.d.ts.map +1 -0
- package/lib/hooks/usePostActivity.js +1 -1
- package/lib/hooks/useReferenceGrammarID.d.ts +2 -0
- package/lib/hooks/useReferenceGrammarID.d.ts.map +1 -0
- package/lib/hooks/useReferenceGrammarID.js +1 -1
- package/lib/hooks/useRelativeTimeFormatter.d.ts +2 -0
- package/lib/hooks/useRelativeTimeFormatter.d.ts.map +1 -0
- package/lib/hooks/useRelativeTimeFormatter.js +2 -2
- package/lib/hooks/useRenderActivity.js +2 -1
- package/lib/hooks/useRenderActivityStatus.js +2 -1
- package/lib/hooks/useRenderAttachment.js +1 -1
- package/lib/hooks/useRenderAvatar.js +2 -1
- package/lib/hooks/useRenderToast.d.ts +3 -0
- package/lib/hooks/useRenderToast.d.ts.map +1 -0
- package/lib/hooks/useRenderToast.js +1 -1
- package/lib/hooks/useRenderTypingIndicator.d.ts +3 -0
- package/lib/hooks/useRenderTypingIndicator.d.ts.map +1 -0
- package/lib/hooks/useRenderTypingIndicator.js +1 -1
- package/lib/hooks/useSendBoxValue.d.ts +2 -0
- package/lib/hooks/useSendBoxValue.d.ts.map +1 -0
- package/lib/hooks/useSendBoxValue.js +1 -1
- package/lib/hooks/useSendEvent.d.ts +2 -0
- package/lib/hooks/useSendEvent.d.ts.map +1 -0
- package/lib/hooks/useSendEvent.js +1 -1
- package/lib/hooks/useSendFiles.d.ts +2 -0
- package/lib/hooks/useSendFiles.d.ts.map +1 -0
- package/lib/hooks/useSendFiles.js +1 -1
- package/lib/hooks/useSendMessage.d.ts +4 -0
- package/lib/hooks/useSendMessage.d.ts.map +1 -0
- package/lib/hooks/useSendMessage.js +1 -1
- package/lib/hooks/useSendMessageBack.d.ts +2 -0
- package/lib/hooks/useSendMessageBack.d.ts.map +1 -0
- package/lib/hooks/useSendMessageBack.js +1 -1
- package/lib/hooks/useSendPostBack.d.ts +2 -0
- package/lib/hooks/useSendPostBack.d.ts.map +1 -0
- package/lib/hooks/useSendPostBack.js +1 -1
- package/lib/hooks/useSendTimeoutForActivity.d.ts +4 -0
- package/lib/hooks/useSendTimeoutForActivity.d.ts.map +1 -0
- package/lib/hooks/useSendTimeoutForActivity.js +2 -1
- package/lib/hooks/useSendTypingIndicator.d.ts +2 -0
- package/lib/hooks/useSendTypingIndicator.d.ts.map +1 -0
- package/lib/hooks/useSendTypingIndicator.js +1 -1
- package/lib/hooks/useSetNotification.d.ts +3 -0
- package/lib/hooks/useSetNotification.d.ts.map +1 -0
- package/lib/hooks/useSetNotification.js +1 -1
- package/lib/hooks/useShouldSpeakIncomingActivity.d.ts +2 -0
- package/lib/hooks/useShouldSpeakIncomingActivity.d.ts.map +1 -0
- package/lib/hooks/useShouldSpeakIncomingActivity.js +1 -1
- package/lib/hooks/useStartDictate.d.ts +2 -0
- package/lib/hooks/useStartDictate.d.ts.map +1 -0
- package/lib/hooks/useStartDictate.js +1 -1
- package/lib/hooks/useStopDictate.d.ts +2 -0
- package/lib/hooks/useStopDictate.d.ts.map +1 -0
- package/lib/hooks/useStopDictate.js +1 -1
- package/lib/hooks/useStyleOptions.d.ts +3 -0
- package/lib/hooks/useStyleOptions.d.ts.map +1 -0
- package/lib/hooks/useStyleOptions.js +1 -1
- package/lib/hooks/useSubmitSendBox.d.ts +4 -0
- package/lib/hooks/useSubmitSendBox.d.ts.map +1 -0
- package/lib/hooks/useSubmitSendBox.js +8 -5
- package/lib/hooks/useSuggestedActions.d.ts +6 -0
- package/lib/hooks/useSuggestedActions.d.ts.map +1 -0
- package/lib/hooks/useSuggestedActions.js +1 -1
- package/lib/hooks/useTimeoutForSend.d.ts +3 -0
- package/lib/hooks/useTimeoutForSend.d.ts.map +1 -0
- package/lib/hooks/useTimeoutForSend.js +2 -2
- package/lib/hooks/useTrackDimension.d.ts +2 -0
- package/lib/hooks/useTrackDimension.d.ts.map +1 -0
- package/lib/hooks/useTrackDimension.js +1 -1
- package/lib/hooks/useTrackEvent.d.ts +10 -0
- package/lib/hooks/useTrackEvent.d.ts.map +1 -0
- package/lib/hooks/useTrackEvent.js +1 -1
- package/lib/hooks/useTrackException.d.ts +2 -0
- package/lib/hooks/useTrackException.d.ts.map +1 -0
- package/lib/hooks/useTrackException.js +2 -2
- package/lib/hooks/useTrackTiming.d.ts +2 -0
- package/lib/hooks/useTrackTiming.d.ts.map +1 -0
- package/lib/hooks/useTrackTiming.js +1 -1
- package/lib/hooks/useUserID.d.ts +2 -0
- package/lib/hooks/useUserID.d.ts.map +1 -0
- package/lib/hooks/useUserID.js +1 -1
- package/lib/hooks/useUsername.d.ts +2 -0
- package/lib/hooks/useUsername.d.ts.map +1 -0
- package/lib/hooks/useUsername.js +1 -1
- package/lib/hooks/useVoiceSelector.d.ts +2 -0
- package/lib/hooks/useVoiceSelector.d.ts.map +1 -0
- package/lib/hooks/useVoiceSelector.js +1 -1
- package/lib/hooks/utils/ErrorBoundary.js +4 -4
- package/lib/hooks/utils/observableToPromise.d.ts +3 -0
- package/lib/hooks/utils/observableToPromise.d.ts.map +1 -0
- package/lib/hooks/utils/observableToPromise.js +1 -1
- package/lib/index.d.ts +20 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -10
- package/lib/localization/Localize.d.ts +10 -0
- package/lib/localization/Localize.d.ts.map +1 -0
- package/lib/localization/Localize.js +18 -12
- package/lib/localization/ar-SA.json +24 -4
- package/lib/localization/bg-BG.json +24 -4
- package/lib/localization/ca-ES.json +24 -4
- package/lib/localization/cs-CZ.json +24 -4
- package/lib/localization/da-DK.json +24 -4
- package/lib/localization/de-DE.json +24 -4
- package/lib/localization/el-GR.json +24 -4
- package/lib/localization/en-US.json +30 -7
- package/lib/localization/es-ES.json +24 -4
- package/lib/localization/et-EE.json +24 -4
- package/lib/localization/eu-ES.json +24 -4
- package/lib/localization/fi-FI.json +24 -4
- package/lib/localization/fr-FR.json +24 -4
- package/lib/localization/getAllLocalizedStrings.d.ts +6 -0
- package/lib/localization/getAllLocalizedStrings.d.ts.map +1 -0
- package/lib/localization/getAllLocalizedStrings.js +1 -1
- package/lib/localization/getLocaleString.d.ts +2 -0
- package/lib/localization/getLocaleString.d.ts.map +1 -0
- package/lib/localization/getLocaleString.js +3 -3
- package/lib/localization/getRTLList.d.ts +2 -0
- package/lib/localization/getRTLList.d.ts.map +1 -0
- package/lib/localization/getRTLList.js +1 -1
- package/lib/localization/gl-ES.json +24 -4
- package/lib/localization/he-IL.json +24 -4
- package/lib/localization/hi-IN.json +24 -4
- package/lib/localization/hr-HR.json +24 -4
- package/lib/localization/hu-HU.json +24 -4
- package/lib/localization/id-ID.json +24 -4
- package/lib/localization/it-IT.json +24 -4
- package/lib/localization/ja-JP.json +24 -4
- package/lib/localization/kk-KZ.json +24 -4
- package/lib/localization/ko-KR.json +24 -4
- package/lib/localization/lt-LT.json +24 -4
- package/lib/localization/lv-LV.json +24 -4
- package/lib/localization/mergeLocalizedStrings.d.ts +7 -0
- package/lib/localization/mergeLocalizedStrings.d.ts.map +1 -0
- package/lib/localization/mergeLocalizedStrings.js +14 -7
- package/lib/localization/ms-MY.json +24 -4
- package/lib/localization/nb-NO.json +24 -4
- package/lib/localization/nl-NL.json +24 -4
- package/lib/localization/pl-PL.json +24 -4
- package/lib/localization/pt-BR.json +24 -4
- package/lib/localization/pt-PT.json +24 -4
- package/lib/localization/ro-RO.json +24 -4
- package/lib/localization/ru-RU.json +24 -4
- package/lib/localization/sk-SK.json +24 -4
- package/lib/localization/sl-SI.json +24 -4
- package/lib/localization/sr-Cyrl-CS.json +24 -4
- package/lib/localization/sr-Latn-CS.json +24 -4
- package/lib/localization/sv-SE.json +24 -4
- package/lib/localization/th-TH.json +24 -4
- package/lib/localization/tr-TR.json +24 -4
- package/lib/localization/uk-UA.json +24 -4
- package/lib/localization/vi-VN.json +24 -4
- package/lib/localization/yue.json +27 -7
- package/lib/localization/zh-CN.json +24 -4
- package/lib/localization/zh-HK.json +24 -4
- package/lib/localization/zh-TW.json +24 -4
- package/lib/normalizeStyleOptions.d.ts +3 -0
- package/lib/normalizeStyleOptions.d.ts.map +1 -0
- package/lib/normalizeStyleOptions.js +85 -5
- package/lib/patchStyleOptionsFromDeprecatedProps.js +1 -2
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts +5 -0
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.js +184 -0
- package/lib/providers/ActivityAcknowledgement/private/Context.d.ts +13 -0
- package/lib/providers/ActivityAcknowledgement/private/Context.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/private/Context.js +13 -0
- package/lib/providers/ActivityAcknowledgement/private/types.d.ts +6 -0
- package/lib/providers/ActivityAcknowledgement/private/types.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/private/types.js +2 -0
- package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts +3 -0
- package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/private/useContext.js +24 -0
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts +5 -0
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.js +18 -0
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.js +15 -0
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts +2 -0
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts.map +1 -0
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.js +15 -0
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts +18 -0
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.js +153 -0
- package/lib/providers/ActivityKeyer/private/Context.d.ts +12 -0
- package/lib/providers/ActivityKeyer/private/Context.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/Context.js +13 -0
- package/lib/providers/ActivityKeyer/private/getActivityId.d.ts +3 -0
- package/lib/providers/ActivityKeyer/private/getActivityId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/getActivityId.js +11 -0
- package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts +3 -0
- package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/getClientActivityId.js +13 -0
- package/lib/providers/ActivityKeyer/private/uniqueId.d.ts +2 -0
- package/lib/providers/ActivityKeyer/private/uniqueId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/uniqueId.js +18 -0
- package/lib/providers/ActivityKeyer/private/useContext.d.ts +3 -0
- package/lib/providers/ActivityKeyer/private/useContext.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/private/useContext.js +24 -0
- package/lib/providers/ActivityKeyer/useActivityKeys.d.ts +2 -0
- package/lib/providers/ActivityKeyer/useActivityKeys.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useActivityKeys.js +15 -0
- package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts +3 -0
- package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useGetActivityByKey.js +15 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts +3 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.js +15 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts +2 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts.map +1 -0
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.js +15 -0
- package/lib/tsconfig.json +3 -1
- package/lib/types/ActivityMiddleware.d.ts +25 -0
- package/lib/types/ActivityMiddleware.d.ts.map +1 -0
- package/lib/types/ActivityMiddleware.js +2 -0
- package/lib/types/ActivityStatusMiddleware.d.ts +18 -0
- package/lib/types/ActivityStatusMiddleware.d.ts.map +1 -0
- package/lib/types/ActivityStatusMiddleware.js +2 -0
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts +14 -0
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts.map +1 -0
- package/lib/types/AttachmentForScreenReaderMiddleware.js +2 -0
- package/lib/types/AttachmentMiddleware.d.ts +12 -0
- package/lib/types/AttachmentMiddleware.d.ts.map +1 -0
- package/lib/types/AttachmentMiddleware.js +2 -0
- package/lib/types/AvatarMiddleware.d.ts +15 -0
- package/lib/types/AvatarMiddleware.d.ts.map +1 -0
- package/lib/types/AvatarMiddleware.js +2 -0
- package/lib/types/CardActionMiddleware.d.ts +19 -0
- package/lib/types/CardActionMiddleware.d.ts.map +1 -0
- package/lib/types/CardActionMiddleware.js +2 -0
- package/lib/types/ComponentMiddleware.d.ts +31 -0
- package/lib/types/ComponentMiddleware.d.ts.map +1 -0
- package/lib/types/ComponentMiddleware.js +2 -0
- package/lib/types/FunctionMiddleware.d.ts +6 -0
- package/lib/types/FunctionMiddleware.d.ts.map +1 -0
- package/lib/types/FunctionMiddleware.js +2 -0
- package/lib/types/GroupActivitiesMiddleware.d.ts +22 -0
- package/lib/types/GroupActivitiesMiddleware.d.ts.map +1 -0
- package/lib/types/GroupActivitiesMiddleware.js +2 -0
- package/lib/types/LocalizedStrings.d.ts +5 -0
- package/lib/types/LocalizedStrings.d.ts.map +1 -0
- package/lib/types/LocalizedStrings.js +2 -0
- package/lib/types/Notification.d.ts +10 -0
- package/lib/types/Notification.d.ts.map +1 -0
- package/lib/types/Notification.js +2 -0
- package/lib/types/PrecompiledGlobalize.d.ts +13 -0
- package/lib/types/PrecompiledGlobalize.d.ts.map +1 -0
- package/lib/types/PrecompiledGlobalize.js +2 -0
- package/lib/types/ScrollToEndButtonMiddleware.d.ts +30 -0
- package/lib/types/ScrollToEndButtonMiddleware.d.ts.map +1 -0
- package/lib/types/ScrollToEndButtonMiddleware.js +2 -0
- package/lib/types/SendState.d.ts +3 -0
- package/lib/types/SendState.d.ts.map +1 -0
- package/lib/types/SendState.js +2 -0
- package/lib/types/TelemetryMeasurementEvent.d.ts +31 -0
- package/lib/types/TelemetryMeasurementEvent.d.ts.map +1 -0
- package/lib/types/TelemetryMeasurementEvent.js +2 -0
- package/lib/types/ToastMiddleware.d.ts +11 -0
- package/lib/types/ToastMiddleware.d.ts.map +1 -0
- package/lib/types/ToastMiddleware.js +2 -0
- package/lib/types/Typing.d.ts +8 -0
- package/lib/types/Typing.d.ts.map +1 -0
- package/lib/types/Typing.js +2 -0
- package/lib/types/TypingIndicatorMiddleware.d.ts +17 -0
- package/lib/types/TypingIndicatorMiddleware.d.ts.map +1 -0
- package/lib/types/TypingIndicatorMiddleware.js +2 -0
- package/lib/types/WebSpeechPonyfill.d.ts +18 -0
- package/lib/types/WebSpeechPonyfill.d.ts.map +1 -0
- package/lib/types/WebSpeechPonyfill.js +2 -0
- package/lib/types/WebSpeechPonyfillFactory.d.ts +6 -0
- package/lib/types/WebSpeechPonyfillFactory.d.ts.map +1 -0
- package/lib/types/WebSpeechPonyfillFactory.js +2 -0
- package/lib/utils/createCustomEvent.d.ts +4 -0
- package/lib/utils/createCustomEvent.d.ts.map +1 -0
- package/lib/utils/createCustomEvent.js +9 -3
- package/lib/utils/findLastIndex.d.ts +2 -0
- package/lib/utils/findLastIndex.d.ts.map +1 -0
- package/lib/utils/findLastIndex.js +32 -0
- package/lib/utils/findMin.d.ts +7 -0
- package/lib/utils/findMin.d.ts.map +1 -0
- package/lib/utils/findMin.js +3 -3
- package/lib/utils/isObject.js +1 -1
- package/lib/utils/mapMap.d.ts +6 -0
- package/lib/utils/mapMap.d.ts.map +1 -0
- package/lib/utils/mapMap.js +10 -3
- package/lib/utils/normalizeLanguage.d.ts +2 -0
- package/lib/utils/normalizeLanguage.d.ts.map +1 -0
- package/lib/utils/normalizeLanguage.js +1 -1
- package/lib/utils/randomId.d.ts +2 -0
- package/lib/utils/randomId.d.ts.map +1 -0
- package/lib/utils/randomId.js +1 -1
- package/lib/utils/warnOnce.js +17 -0
- package/package.json +25 -32
- package/scripts/createPrecompiledGlobalize.mjs +44 -0
- package/src/StyleOptions.ts +332 -15
- package/src/defaultStyleOptions.ts +75 -15
- package/src/hooks/Composer.tsx +224 -145
- package/src/hooks/{index.js → index.ts} +22 -0
- package/src/hooks/internal/WebChatAPIContext.ts +68 -3
- package/src/hooks/internal/useCreateActivityRendererInternal.ts +46 -0
- package/src/hooks/internal/useDebugDeps.js +9 -2
- package/src/hooks/internal/usePrevious.ts +11 -0
- package/src/hooks/internal/useValueRef.ts +21 -0
- package/src/hooks/middleware/applyMiddleware.js +2 -3
- package/src/hooks/middleware/concatMiddleware.spec.js +4 -6
- package/src/hooks/middleware/concatMiddleware.ts +27 -0
- package/src/hooks/middleware/createDefaultCardActionMiddleware.ts +42 -0
- package/src/hooks/middleware/{createDefaultGroupActivitiesMiddleware.js → createDefaultGroupActivitiesMiddleware.ts} +20 -12
- package/src/hooks/{useActiveTyping.js → useActiveTyping.ts} +13 -9
- package/src/hooks/useActivities.ts +7 -0
- package/src/hooks/useActivityKeys.ts +3 -0
- package/src/hooks/useActivityKeysByRead.ts +3 -0
- package/src/hooks/{useAvatarForBot.js → useAvatarForBot.ts} +1 -1
- package/src/hooks/{useAvatarForUser.js → useAvatarForUser.ts} +1 -1
- package/src/hooks/{useByteFormatter.js → useByteFormatter.ts} +1 -1
- package/src/hooks/{useConnectivityStatus.js → useConnectivityStatus.ts} +1 -1
- package/src/hooks/{useCreateActivityRenderer.js → useCreateActivityRenderer.ts} +2 -3
- package/src/hooks/{useCreateActivityStatusRenderer.js → useCreateActivityStatusRenderer.tsx} +27 -11
- package/src/hooks/useCreateAvatarRenderer.ts +39 -0
- package/src/hooks/useCreateScrollToEndButtonRenderer.ts +6 -0
- package/src/hooks/useDateFormatter.ts +14 -0
- package/src/hooks/useDebouncedNotifications.spec.js +2 -0
- package/src/hooks/{useDebouncedNotifications.js → useDebouncedNotifications.ts} +10 -2
- package/src/hooks/{useDictateInterims.js → useDictateInterims.ts} +1 -1
- package/src/hooks/{useDictateState.js → useDictateState.ts} +1 -1
- package/src/hooks/{useDirection.js → useDirection.ts} +1 -1
- package/src/hooks/{useDisabled.js → useDisabled.ts} +1 -1
- package/src/hooks/{useDismissNotification.js → useDismissNotification.ts} +1 -1
- package/src/hooks/{useEmitTypingIndicator.js → useEmitTypingIndicator.ts} +1 -1
- package/src/hooks/useGetActivityByKey.ts +3 -0
- package/src/hooks/useGetHasAcknowledgedByActivityKey.ts +3 -0
- package/src/hooks/useGetKeyByActivity.ts +3 -0
- package/src/hooks/useGetKeyByActivityId.ts +3 -0
- package/src/hooks/useGetSendTimeoutForActivity.ts +20 -0
- package/src/hooks/{useGrammars.js → useGrammars.ts} +1 -1
- package/src/hooks/useGroupActivities.ts +10 -0
- package/src/hooks/{useGroupTimestamp.js → useGroupTimestamp.ts} +1 -1
- package/src/hooks/{useLanguage.js → useLanguage.ts} +1 -1
- package/src/hooks/useLastAcknowledgedActivityKey.ts +3 -0
- package/src/hooks/useLastReadActivityKey.ts +3 -0
- package/src/hooks/{useLastTypingAt.js → useLastTypingAt.ts} +2 -1
- package/src/hooks/{useLocalize.js → useLocalize.ts} +3 -1
- package/src/hooks/{useLocalizeDate.js → useLocalizeDate.ts} +2 -1
- package/src/hooks/{useLocalizer.js → useLocalizer.ts} +24 -6
- package/src/hooks/{useMarkActivityAsSpoken.js → useMarkActivityAsSpoken.ts} +2 -1
- package/src/hooks/useMarkActivityKeyAsRead.ts +3 -0
- package/src/hooks/useMarkAllAsAcknowledged.ts +3 -0
- package/src/hooks/{useNotifications.js → useNotifications.ts} +2 -1
- package/src/hooks/usePerformCardAction.ts +6 -0
- package/src/hooks/usePostActivity.ts +8 -0
- package/src/hooks/{useReferenceGrammarID.js → useReferenceGrammarID.ts} +1 -1
- package/src/hooks/{useRelativeTimeFormatter.js → useRelativeTimeFormatter.ts} +1 -1
- package/src/hooks/useRenderActivity.js +12 -10
- package/src/hooks/useRenderActivityStatus.js +1 -0
- package/src/hooks/useRenderAvatar.js +1 -0
- package/src/hooks/{useRenderToast.js → useRenderToast.ts} +2 -1
- package/src/hooks/useRenderTypingIndicator.ts +6 -0
- package/src/hooks/{useSendBoxValue.js → useSendBoxValue.ts} +1 -1
- package/src/hooks/{useSendEvent.js → useSendEvent.ts} +1 -1
- package/src/hooks/{useSendFiles.js → useSendFiles.ts} +1 -1
- package/src/hooks/useSendMessage.ts +9 -0
- package/src/hooks/{useSendMessageBack.js → useSendMessageBack.ts} +1 -1
- package/src/hooks/{useSendPostBack.js → useSendPostBack.ts} +1 -1
- package/src/hooks/{useSendTimeoutForActivity.js → useSendTimeoutForActivity.ts} +4 -1
- package/src/hooks/{useSendTypingIndicator.js → useSendTypingIndicator.ts} +1 -1
- package/src/hooks/useSetNotification.ts +6 -0
- package/src/hooks/{useShouldSpeakIncomingActivity.js → useShouldSpeakIncomingActivity.ts} +1 -1
- package/src/hooks/{useStartDictate.js → useStartDictate.ts} +1 -1
- package/src/hooks/{useStopDictate.js → useStopDictate.ts} +1 -1
- package/src/hooks/useStyleOptions.ts +6 -0
- package/src/hooks/{useSubmitSendBox.js → useSubmitSendBox.ts} +3 -6
- package/src/hooks/{useSuggestedActions.js → useSuggestedActions.ts} +5 -1
- package/src/hooks/useTimeoutForSend.ts +9 -0
- package/src/hooks/{useTrackDimension.js → useTrackDimension.ts} +1 -1
- package/src/hooks/{useTrackEvent.js → useTrackEvent.ts} +10 -2
- package/src/hooks/{useTrackException.js → useTrackException.ts} +1 -1
- package/src/hooks/{useTrackTiming.js → useTrackTiming.ts} +4 -1
- package/src/hooks/{useUserID.js → useUserID.ts} +1 -1
- package/src/hooks/{useUsername.js → useUsername.ts} +1 -1
- package/src/hooks/{useVoiceSelector.js → useVoiceSelector.ts} +4 -1
- package/src/hooks/utils/{observableToPromise.js → observableToPromise.ts} +5 -3
- package/src/index.ts +51 -0
- package/src/localization/Localize.spec.js +2 -0
- package/src/localization/{Localize.js → Localize.ts} +15 -8
- package/src/localization/ar-SA.json +24 -4
- package/src/localization/bg-BG.json +24 -4
- package/src/localization/ca-ES.json +24 -4
- package/src/localization/cs-CZ.json +24 -4
- package/src/localization/da-DK.json +24 -4
- package/src/localization/de-DE.json +24 -4
- package/src/localization/el-GR.json +24 -4
- package/src/localization/en-US.json +30 -7
- package/src/localization/es-ES.json +24 -4
- package/src/localization/et-EE.json +24 -4
- package/src/localization/eu-ES.json +24 -4
- package/src/localization/fi-FI.json +24 -4
- package/src/localization/fr-FR.json +24 -4
- package/src/localization/getAllLocalizedStrings.spec.js +3 -1
- package/src/localization/{getAllLocalizedStrings.js → getAllLocalizedStrings.ts} +2 -1
- package/src/localization/getLocaleString.spec.js +4 -2
- package/src/localization/{getLocaleString.js → getLocaleString.ts} +2 -2
- package/src/localization/{getRTLList.js → getRTLList.ts} +1 -1
- package/src/localization/gl-ES.json +24 -4
- package/src/localization/he-IL.json +24 -4
- package/src/localization/hi-IN.json +24 -4
- package/src/localization/hr-HR.json +24 -4
- package/src/localization/hu-HU.json +24 -4
- package/src/localization/id-ID.json +24 -4
- package/src/localization/it-IT.json +24 -4
- package/src/localization/ja-JP.json +24 -4
- package/src/localization/kk-KZ.json +24 -4
- package/src/localization/ko-KR.json +24 -4
- package/src/localization/lt-LT.json +24 -4
- package/src/localization/lv-LV.json +24 -4
- package/src/localization/mergeLocalizedStrings.ts +20 -0
- package/src/localization/ms-MY.json +24 -4
- package/src/localization/nb-NO.json +24 -4
- package/src/localization/nl-NL.json +24 -4
- package/src/localization/pl-PL.json +24 -4
- package/src/localization/pt-BR.json +24 -4
- package/src/localization/pt-PT.json +24 -4
- package/src/localization/ro-RO.json +24 -4
- package/src/localization/ru-RU.json +24 -4
- package/src/localization/sk-SK.json +24 -4
- package/src/localization/sl-SI.json +24 -4
- package/src/localization/sr-Cyrl-CS.json +24 -4
- package/src/localization/sr-Latn-CS.json +24 -4
- package/src/localization/sv-SE.json +24 -4
- package/src/localization/th-TH.json +24 -4
- package/src/localization/tr-TR.json +24 -4
- package/src/localization/uk-UA.json +24 -4
- package/src/localization/vi-VN.json +24 -4
- package/src/localization/yue.json +27 -7
- package/src/localization/zh-CN.json +24 -4
- package/src/localization/zh-HK.json +24 -4
- package/src/localization/zh-TW.json +24 -4
- package/src/normalizeStyleOptions.ts +113 -2
- package/src/patchStyleOptionsFromDeprecatedProps.js +0 -2
- package/src/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.tsx +180 -0
- package/src/providers/ActivityAcknowledgement/private/Context.ts +18 -0
- package/src/providers/ActivityAcknowledgement/private/types.ts +6 -0
- package/src/providers/ActivityAcknowledgement/private/useContext.ts +19 -0
- package/src/providers/ActivityAcknowledgement/useActivityKeysByRead.tsx +8 -0
- package/src/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useLastReadActivityKey.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.ts +5 -0
- package/src/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.ts +5 -0
- package/src/providers/ActivityKeyer/ActivityKeyerComposer.tsx +151 -0
- package/src/providers/ActivityKeyer/private/Context.ts +14 -0
- package/src/providers/ActivityKeyer/private/getActivityId.ts +5 -0
- package/src/providers/ActivityKeyer/private/getClientActivityId.ts +5 -0
- package/src/providers/ActivityKeyer/private/uniqueId.ts +8 -0
- package/src/providers/ActivityKeyer/private/useContext.ts +15 -0
- package/src/providers/ActivityKeyer/useActivityKeys.ts +5 -0
- package/src/providers/ActivityKeyer/useGetActivityByKey.ts +7 -0
- package/src/providers/ActivityKeyer/useGetKeyByActivity.ts +7 -0
- package/src/providers/ActivityKeyer/useGetKeyByActivityId.ts +5 -0
- package/src/tsconfig.json +3 -1
- package/src/types/ActivityMiddleware.ts +38 -0
- package/src/types/ActivityStatusMiddleware.ts +28 -0
- package/src/types/AttachmentForScreenReaderMiddleware.ts +24 -0
- package/src/types/AttachmentMiddleware.ts +16 -0
- package/src/types/AvatarMiddleware.ts +20 -0
- package/src/types/CardActionMiddleware.ts +21 -0
- package/src/types/ComponentMiddleware.ts +42 -0
- package/src/types/FunctionMiddleware.ts +13 -0
- package/src/types/GroupActivitiesMiddleware.ts +24 -0
- package/src/types/LocalizedStrings.ts +5 -0
- package/src/types/Notification.ts +10 -0
- package/src/types/PrecompiledGlobalize.ts +9 -0
- package/src/types/ScrollToEndButtonMiddleware.ts +34 -0
- package/src/types/SendState.ts +3 -0
- package/src/types/TelemetryMeasurementEvent.ts +44 -0
- package/src/types/ToastMiddleware.ts +16 -0
- package/src/types/Typing.ts +8 -0
- package/src/types/TypingIndicatorMiddleware.ts +18 -0
- package/src/types/WebSpeechPonyfill.ts +24 -0
- package/src/types/WebSpeechPonyfillFactory.ts +5 -0
- package/src/utils/createCustomEvent.ts +28 -0
- package/src/utils/findLastIndex.spec.js +31 -0
- package/src/utils/findLastIndex.ts +11 -0
- package/src/utils/findMin.spec.js +2 -0
- package/src/utils/{findMin.js → findMin.ts} +3 -3
- package/src/utils/mapMap.spec.js +2 -0
- package/src/utils/mapMap.ts +16 -0
- package/src/utils/{normalizeLanguage.js → normalizeLanguage.ts} +1 -1
- package/src/utils/{randomId.js → randomId.ts} +1 -1
- package/src/utils/warnOnce.ts +10 -0
- package/.eslintignore +0 -9
- package/lib/hooks/utils/singleToArray.js +0 -11
- package/scripts/createPrecompiledGlobalize.js +0 -41
- package/src/hooks/internal/useCreateActivityRendererInternal.js +0 -41
- package/src/hooks/middleware/concatMiddleware.js +0 -19
- package/src/hooks/middleware/createDefaultCardActionMiddleware.js +0 -36
- package/src/hooks/useActivities.js +0 -5
- package/src/hooks/useCreateAvatarRenderer.js +0 -32
- package/src/hooks/useDateFormatter.js +0 -13
- package/src/hooks/useGetSendTimeoutForActivity.js +0 -18
- package/src/hooks/useGroupActivities.js +0 -5
- package/src/hooks/usePerformCardAction.js +0 -5
- package/src/hooks/usePostActivity.js +0 -5
- package/src/hooks/useRenderTypingIndicator.js +0 -5
- package/src/hooks/useSendMessage.js +0 -5
- package/src/hooks/useSetNotification.js +0 -5
- package/src/hooks/useStyleOptions.js +0 -5
- package/src/hooks/useTimeoutForSend.js +0 -7
- package/src/hooks/utils/singleToArray.js +0 -3
- package/src/index.js +0 -10
- package/src/index.tsx +0 -10
- package/src/localization/mergeLocalizedStrings.js +0 -10
- package/src/utils/createCustomEvent.js +0 -17
- package/src/utils/mapMap.js +0 -7
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_.comment": "The content of this file is contributed by the community.",
|
|
3
|
-
"ACCESS_KEY_ALT": "Alt
|
|
4
|
-
"ACCESS_KEY_MAC_ALT": "Ctrl
|
|
3
|
+
"ACCESS_KEY_ALT": "Alt 加 Shift 加 $1",
|
|
4
|
+
"ACCESS_KEY_MAC_ALT": "Ctrl 加 Alt 加 $1",
|
|
5
5
|
"ACTIVITY_BOT_ATTACHED_ALT": "Bot 嘅附件:",
|
|
6
6
|
"ACTIVITY_BOT_SAID_ALT": "Bot $1 話:",
|
|
7
7
|
"ACTIVITY_ERROR_BOX_TITLE": "錯嘅信息",
|
|
8
|
-
"ACTIVITY_INTERACTIVE_LABEL_ALT": "
|
|
8
|
+
"ACTIVITY_INTERACTIVE_LABEL_ALT": "信息可以互動,襟呢度前往信息入面嘅項目。",
|
|
9
9
|
"ACTIVITY_NUM_ATTACHMENTS_FEW_ALT": "$1 件附件。",
|
|
10
10
|
"ACTIVITY_NUM_ATTACHMENTS_MANY_ALT": "$1 件附件。",
|
|
11
11
|
"ACTIVITY_NUM_ATTACHMENTS_ONE_ALT": "一件附件。",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"ACTIVITY_STATUS_TIMESTAMP_ONE_MINUTE_AGO": "一分鐘前",
|
|
21
21
|
"ACTIVITY_STATUS_TIMESTAMP_TODAY": "今日",
|
|
22
22
|
"ACTIVITY_STATUS_TIMESTAMP_YESTERDAY": "尋日",
|
|
23
|
+
"ACTIVITY_INTERACTIVE_WITH_LINKS_LABEL_ALT": "信息入面有網頁連結,襟呢度前往信息入面嘅項目。",
|
|
23
24
|
"ACTIVITY_YOU_ATTACHED_ALT": "你嘅附件:",
|
|
24
25
|
"ACTIVITY_YOU_SAID_ALT": "你話:",
|
|
25
26
|
"ADAPTIVE_CARD_ERROR_BOX_TITLE_PARSE": "Adaptive Card 解析出事",
|
|
@@ -43,6 +44,22 @@
|
|
|
43
44
|
"FILE_CONTENT_DOWNLOADABLE_ALT": "下載檔案 '$1'",
|
|
44
45
|
"FILE_CONTENT_DOWNLOADABLE_WITH_SIZE_ALT": "下載檔案 '$1' 檔案大小 $2",
|
|
45
46
|
"FILE_CONTENT_WITH_SIZE_ALT": "'$1' 檔案大小 $2",
|
|
47
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_BODY": "Enter 掣",
|
|
48
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_HEADER": "前往信息入面嘅項目",
|
|
49
|
+
"KEYBOARD_HELP_CHAT_HISTORY_HEADER": "聊天記錄",
|
|
50
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_BODY": "Escape 掣",
|
|
51
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_HEADER": "離開信息",
|
|
52
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_BODY": "Tab 掣\nShift 加 tab 掣",
|
|
53
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_HEADER": "喺信息入面揀項目",
|
|
54
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_BODY": "向上箭咀\n向下箭咀",
|
|
55
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_HEADER": "揀信息",
|
|
56
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_BODY": "Enter 掣",
|
|
57
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_HEADER": "執行動作",
|
|
58
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_BODY": "Tab 掣\nShift 加 tab 掣",
|
|
59
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_HEADER": "喺聊天視窗入面揀項目",
|
|
60
|
+
"KEYBOARD_HELP_CHAT_WINDOW_HEADER": "聊天視窗",
|
|
61
|
+
"KEYBOARD_HELP_CLOSE_BUTTON_ALT": "閂咗佢",
|
|
62
|
+
"KEYBOARD_HELP_HEADER": "鍵盤控制",
|
|
46
63
|
"MARKDOWN_EXTERNAL_LINK_ALT": "喺新嘅視窗開啟外部連結。",
|
|
47
64
|
"RECEIPT_CARD_TAX": "稅",
|
|
48
65
|
"RECEIPT_CARD_TOTAL": "總共",
|
|
@@ -51,8 +68,8 @@
|
|
|
51
68
|
"SPEECH_INPUT_MICROPHONE_BUTTON_CLOSE_ALT": "閂咪",
|
|
52
69
|
"SPEECH_INPUT_MICROPHONE_BUTTON_OPEN_ALT": "開咪",
|
|
53
70
|
"SPEECH_INPUT_STARTING": "開始緊…",
|
|
54
|
-
"SUGGESTED_ACTIONS_ALT_HAS_CONTENT": "有内容",
|
|
55
71
|
"SUGGESTED_ACTIONS_ALT_HAS_CONTENT_AND_ACCESS_KEY": "有内容,襟 $1 揀。",
|
|
72
|
+
"SUGGESTED_ACTIONS_ALT_HAS_CONTENT": "有内容",
|
|
56
73
|
"SUGGESTED_ACTIONS_ALT_NO_CONTENT": "無内容",
|
|
57
74
|
"SUGGESTED_ACTIONS_ALT": "建議㩒嘅掣:$1",
|
|
58
75
|
"TEXT_INPUT_ALT": "訊息輸入盒",
|
|
@@ -70,9 +87,12 @@
|
|
|
70
87
|
"TOAST_ALT_WARN": "警告:$1",
|
|
71
88
|
"TOAST_DISMISS_BUTTON": "閂咗佢",
|
|
72
89
|
"TOAST_TITLE_ALT": "通知",
|
|
73
|
-
"TRANSCRIPT_ARIA_LABEL_ALT": "
|
|
74
|
-
"TRANSCRIPT_ARIA_ROLE_ALT": "
|
|
90
|
+
"TRANSCRIPT_ARIA_LABEL_ALT": "聊天記錄,襟方向箭咀嚟瀏覽。",
|
|
91
|
+
"TRANSCRIPT_ARIA_ROLE_ALT": "聊天記錄",
|
|
92
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT": "信息可以互動,襟 shift tab 兩三下去聊天記錄,再襟個信息前往佢入面嘅項目。",
|
|
93
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT": "信息入面有網頁連結,襟 shift tab 兩三下去聊天記錄,再襟個信息前往佢入面嘅項目。",
|
|
94
|
+
"TRANSCRIPT_MORE_MESSAGES": "更多訊息",
|
|
75
95
|
"TRANSCRIPT_NEW_MESSAGES": "新訊息",
|
|
76
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "聊天記錄結束",
|
|
77
97
|
"TYPING_INDICATOR_ALT": "對方打緊字"
|
|
78
98
|
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"ACTIVITY_YOU_SAID_ALT": "您说:",
|
|
7
7
|
"ACTIVITY_BOT_ATTACHED_ALT": "机器人附加了:",
|
|
8
8
|
"ACTIVITY_ERROR_BOX_TITLE": "错误消息",
|
|
9
|
-
"ACTIVITY_INTERACTIVE_LABEL_ALT": "
|
|
9
|
+
"ACTIVITY_INTERACTIVE_LABEL_ALT": "消息是交互式消息。单击可以进行交互。",
|
|
10
|
+
"ACTIVITY_INTERACTIVE_WITH_LINKS_LABEL_ALT": "消息中有一个或多个链接。单击可以进行交互。",
|
|
10
11
|
"ACTIVITY_YOU_ATTACHED_ALT": "您附加了:",
|
|
11
12
|
"ACTIVITY_NUM_ATTACHMENTS_ONE_ALT": "1 个附件。",
|
|
12
13
|
"ACTIVITY_NUM_ATTACHMENTS_FEW_ALT": "$1 个附件。",
|
|
@@ -43,6 +44,22 @@
|
|
|
43
44
|
"FILE_CONTENT_DOWNLOADABLE_ALT": "下载文件 '$1'",
|
|
44
45
|
"FILE_CONTENT_DOWNLOADABLE_WITH_SIZE_ALT": "下载文件 '$1',大小为 $2",
|
|
45
46
|
"FILE_CONTENT_WITH_SIZE_ALT": "'$1' 的大小为 $2",
|
|
47
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_BODY": "Enter 键",
|
|
48
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_HEADER": "访问消息中的项目",
|
|
49
|
+
"KEYBOARD_HELP_CHAT_HISTORY_HEADER": "聊天历史记录",
|
|
50
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_BODY": "Escape 键",
|
|
51
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_HEADER": "留言",
|
|
52
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_BODY": "Tab 键\nShift + Tab 键",
|
|
53
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_HEADER": "在消息中的项目之间移动",
|
|
54
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_BODY": "向上键\n向下键",
|
|
55
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_HEADER": "在消息之间移动",
|
|
56
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_BODY": "Enter 键",
|
|
57
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_HEADER": "执行操作",
|
|
58
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_BODY": "Tab 键\nShift + Tab 键",
|
|
59
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_HEADER": "在聊天窗口中的项目之间移动",
|
|
60
|
+
"KEYBOARD_HELP_CHAT_WINDOW_HEADER": "聊天窗口",
|
|
61
|
+
"KEYBOARD_HELP_CLOSE_BUTTON_ALT": "关闭",
|
|
62
|
+
"KEYBOARD_HELP_HEADER": "键盘控件",
|
|
46
63
|
"MARKDOWN_EXTERNAL_LINK_ALT": "在新窗口中打开;外部。",
|
|
47
64
|
"RECEIPT_CARD_TAX": "税款",
|
|
48
65
|
"RECEIPT_CARD_TOTAL": "总额",
|
|
@@ -70,9 +87,12 @@
|
|
|
70
87
|
"TOAST_ALT_WARN": "警告",
|
|
71
88
|
"TOAST_DISMISS_BUTTON": "取消",
|
|
72
89
|
"TOAST_TITLE_ALT": "通知",
|
|
73
|
-
"TRANSCRIPT_ARIA_LABEL_ALT": "
|
|
74
|
-
"TRANSCRIPT_ARIA_ROLE_ALT": "
|
|
90
|
+
"TRANSCRIPT_ARIA_LABEL_ALT": "聊天历史记录,按箭头键导航。",
|
|
91
|
+
"TRANSCRIPT_ARIA_ROLE_ALT": "聊天历史记录",
|
|
92
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT": "消息是交互式消息。按 Shift Tab 键 2 到 3 次切换到聊天历史记录。然后单击消息以进行交互。",
|
|
93
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT": "消息中有一个或多个链接。按 Shift Tab 键 2 到 3 次切换到聊天历史记录。然后单击消息以进行交互。",
|
|
94
|
+
"TRANSCRIPT_MORE_MESSAGES": "更多消息",
|
|
75
95
|
"TRANSCRIPT_NEW_MESSAGES": "新消息",
|
|
76
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "聊天历史记录结束",
|
|
77
97
|
"TYPING_INDICATOR_ALT": "显示键入指示器"
|
|
78
98
|
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"ACTIVITY_YOU_SAID_ALT": "您說:",
|
|
7
7
|
"ACTIVITY_BOT_ATTACHED_ALT": "機器人附加了:",
|
|
8
8
|
"ACTIVITY_ERROR_BOX_TITLE": "錯誤訊息",
|
|
9
|
-
"ACTIVITY_INTERACTIVE_LABEL_ALT": "
|
|
9
|
+
"ACTIVITY_INTERACTIVE_LABEL_ALT": "訊息為互動式。按一下即可互動。",
|
|
10
|
+
"ACTIVITY_INTERACTIVE_WITH_LINKS_LABEL_ALT": "訊息中的一或多個連結。按一下即可互動。",
|
|
10
11
|
"ACTIVITY_YOU_ATTACHED_ALT": "您附加了:",
|
|
11
12
|
"ACTIVITY_NUM_ATTACHMENTS_ONE_ALT": "1 個附件。",
|
|
12
13
|
"ACTIVITY_NUM_ATTACHMENTS_FEW_ALT": "$1 個附件。",
|
|
@@ -43,6 +44,22 @@
|
|
|
43
44
|
"FILE_CONTENT_DOWNLOADABLE_ALT": "下載 '$1' 檔案",
|
|
44
45
|
"FILE_CONTENT_DOWNLOADABLE_WITH_SIZE_ALT": "下載 '$1' 檔案,大小為 $2",
|
|
45
46
|
"FILE_CONTENT_WITH_SIZE_ALT": "'$1',大小為 $2",
|
|
47
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_BODY": "ENTER 鍵",
|
|
48
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_HEADER": "存取訊息中的項目",
|
|
49
|
+
"KEYBOARD_HELP_CHAT_HISTORY_HEADER": "聊天記錄",
|
|
50
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_BODY": "ESC 鍵",
|
|
51
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_HEADER": "離開訊息",
|
|
52
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_BODY": "Tab 鍵\nShift + Tab 鍵",
|
|
53
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_HEADER": "在訊息中的項目之間移動",
|
|
54
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_BODY": "向上鍵\n向下鍵",
|
|
55
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_HEADER": "在訊息之間移動",
|
|
56
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_BODY": "ENTER 鍵",
|
|
57
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_HEADER": "執行動作",
|
|
58
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_BODY": "Tab 鍵\nShift + Tab 鍵",
|
|
59
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_HEADER": "在聊天視窗中的項目之間移動",
|
|
60
|
+
"KEYBOARD_HELP_CHAT_WINDOW_HEADER": "聊天視窗",
|
|
61
|
+
"KEYBOARD_HELP_CLOSE_BUTTON_ALT": "關閉",
|
|
62
|
+
"KEYBOARD_HELP_HEADER": "鍵盤控制項",
|
|
46
63
|
"MARKDOWN_EXTERNAL_LINK_ALT": "在新視窗中開啟; 外部。",
|
|
47
64
|
"RECEIPT_CARD_TAX": "稅金",
|
|
48
65
|
"RECEIPT_CARD_TOTAL": "總計",
|
|
@@ -70,9 +87,12 @@
|
|
|
70
87
|
"TOAST_ALT_WARN": "警告",
|
|
71
88
|
"TOAST_DISMISS_BUTTON": "關閉",
|
|
72
89
|
"TOAST_TITLE_ALT": "通知",
|
|
73
|
-
"TRANSCRIPT_ARIA_LABEL_ALT": "
|
|
74
|
-
"TRANSCRIPT_ARIA_ROLE_ALT": "
|
|
90
|
+
"TRANSCRIPT_ARIA_LABEL_ALT": "聊天記錄,按方向鍵進行瀏覽。",
|
|
91
|
+
"TRANSCRIPT_ARIA_ROLE_ALT": "聊天記錄",
|
|
92
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT": "訊息為互動式。請按 Shift Tab 鍵 2 到 3 次切換至聊天記錄,然後按一下訊息進行互動。",
|
|
93
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT": "訊息中的一或多個連結。請按 Shift Tab 鍵 2 到 3 次切換至聊天記錄,然後按一下訊息進行互動。",
|
|
94
|
+
"TRANSCRIPT_MORE_MESSAGES": "更多訊息",
|
|
75
95
|
"TRANSCRIPT_NEW_MESSAGES": "新訊息",
|
|
76
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "聊天記錄結尾",
|
|
77
97
|
"TYPING_INDICATOR_ALT": "顯示輸入指示器"
|
|
78
98
|
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"ACTIVITY_YOU_SAID_ALT": "您說:",
|
|
7
7
|
"ACTIVITY_BOT_ATTACHED_ALT": "機器人附加了:",
|
|
8
8
|
"ACTIVITY_ERROR_BOX_TITLE": "錯誤訊息",
|
|
9
|
-
"ACTIVITY_INTERACTIVE_LABEL_ALT": "
|
|
9
|
+
"ACTIVITY_INTERACTIVE_LABEL_ALT": "訊息為互動式。按一下即可互動。",
|
|
10
|
+
"ACTIVITY_INTERACTIVE_WITH_LINKS_LABEL_ALT": "訊息中的一或多個連結。按一下即可互動。",
|
|
10
11
|
"ACTIVITY_YOU_ATTACHED_ALT": "您附加了:",
|
|
11
12
|
"ACTIVITY_NUM_ATTACHMENTS_ONE_ALT": "1 個附件。",
|
|
12
13
|
"ACTIVITY_NUM_ATTACHMENTS_FEW_ALT": "$1 個附件。",
|
|
@@ -43,6 +44,22 @@
|
|
|
43
44
|
"FILE_CONTENT_DOWNLOADABLE_ALT": "下載 '$1' 檔案",
|
|
44
45
|
"FILE_CONTENT_DOWNLOADABLE_WITH_SIZE_ALT": "下載 '$1' 檔案,大小為 $2",
|
|
45
46
|
"FILE_CONTENT_WITH_SIZE_ALT": "'$1',大小為 $2",
|
|
47
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_BODY": "ENTER 鍵",
|
|
48
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_HEADER": "存取訊息中的項目",
|
|
49
|
+
"KEYBOARD_HELP_CHAT_HISTORY_HEADER": "聊天記錄",
|
|
50
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_BODY": "ESC 鍵",
|
|
51
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_HEADER": "離開訊息",
|
|
52
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_BODY": "Tab 鍵\nShift + Tab 鍵",
|
|
53
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_HEADER": "在訊息中的項目之間移動",
|
|
54
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_BODY": "向上鍵\n向下鍵",
|
|
55
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_HEADER": "在訊息之間移動",
|
|
56
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_BODY": "ENTER 鍵",
|
|
57
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_HEADER": "執行動作",
|
|
58
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_BODY": "Tab 鍵\nShift + Tab 鍵",
|
|
59
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_HEADER": "在聊天視窗中的項目之間移動",
|
|
60
|
+
"KEYBOARD_HELP_CHAT_WINDOW_HEADER": "聊天視窗",
|
|
61
|
+
"KEYBOARD_HELP_CLOSE_BUTTON_ALT": "關閉",
|
|
62
|
+
"KEYBOARD_HELP_HEADER": "鍵盤控制項",
|
|
46
63
|
"MARKDOWN_EXTERNAL_LINK_ALT": "在新視窗中開啟; 外部。",
|
|
47
64
|
"RECEIPT_CARD_TAX": "稅金",
|
|
48
65
|
"RECEIPT_CARD_TOTAL": "總計",
|
|
@@ -70,9 +87,12 @@
|
|
|
70
87
|
"TOAST_ALT_WARN": "警告",
|
|
71
88
|
"TOAST_DISMISS_BUTTON": "關閉",
|
|
72
89
|
"TOAST_TITLE_ALT": "通知",
|
|
73
|
-
"TRANSCRIPT_ARIA_LABEL_ALT": "
|
|
74
|
-
"TRANSCRIPT_ARIA_ROLE_ALT": "
|
|
90
|
+
"TRANSCRIPT_ARIA_LABEL_ALT": "聊天記錄,按方向鍵進行瀏覽。",
|
|
91
|
+
"TRANSCRIPT_ARIA_ROLE_ALT": "聊天記錄",
|
|
92
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT": "訊息為互動式。請按 Shift Tab 鍵 2 到 3 次切換至聊天記錄,然後按一下訊息進行互動。",
|
|
93
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT": "訊息中的一或多個連結。請按 Shift Tab 鍵 2 到 3 次切換至聊天記錄,然後按一下訊息進行互動。",
|
|
94
|
+
"TRANSCRIPT_MORE_MESSAGES": "更多訊息",
|
|
75
95
|
"TRANSCRIPT_NEW_MESSAGES": "新訊息",
|
|
76
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "聊天記錄結尾",
|
|
77
97
|
"TYPING_INDICATOR_ALT": "顯示輸入指示器"
|
|
78
98
|
}
|
|
@@ -1,12 +1,38 @@
|
|
|
1
|
+
import { warnOnce } from 'botframework-webchat-core';
|
|
2
|
+
|
|
1
3
|
import defaultStyleOptions from './defaultStyleOptions';
|
|
2
4
|
import StyleOptions, { StrictStyleOptions } from './StyleOptions';
|
|
3
5
|
|
|
6
|
+
const hideScrollToEndButtonDeprecation = warnOnce(
|
|
7
|
+
'"styleOptions.hideScrollToEndButton" has been deprecated. To hide scroll to end button, set "scrollToEndBehavior" to false. This deprecation migration will be removed on or after 2023-06-02.'
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
const newMessagesButtonFontSizeDeprecation = warnOnce(
|
|
11
|
+
'"styleOptions.newMessagesButtonFontSize" has been renamed to "styleOptions.scrollToEndButtonFontSize". This deprecation migration will be removed on or after 2023-06-02.'
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
const suggestedActionBackgroundDeprecation = warnOnce(
|
|
15
|
+
'"styleOptions.suggestedActionBackground" has been deprecated. Please use "styleOptions.suggestedActionBackgroundColor" instead. This deprecation migration will be removed on or after 2021-09-16.'
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const suggestedActionXXXBackgroundDeprecation = warnOnce(
|
|
19
|
+
'"styleOptions.suggestedActionXXXBackground" has been deprecated. Please use "styleOptions.suggestedActionBackgroundColorOnXXX" instead. This deprecation migration will be removed on or after 2021-09-16.'
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const suggestedActionDisabledDeprecation = warnOnce(
|
|
23
|
+
'"styleOptions.suggestedActionDisabledXXX" has been renamed to "styleOptions.suggestedActionXXXOnDisabled". This deprecation migration will be removed on or after 2021-09-16.'
|
|
24
|
+
);
|
|
25
|
+
|
|
4
26
|
// TODO: [P4] We should add a notice for people who want to use "styleSet" instead of "styleOptions".
|
|
5
27
|
// "styleSet" is actually CSS stylesheet and it is based on the DOM tree.
|
|
6
28
|
// DOM tree may change from time to time, thus, maintaining "styleSet" becomes a constant effort.
|
|
7
29
|
|
|
8
30
|
// eslint-disable-next-line complexity
|
|
9
|
-
export default function normalizeStyleOptions(
|
|
31
|
+
export default function normalizeStyleOptions({
|
|
32
|
+
hideScrollToEndButton,
|
|
33
|
+
newMessagesButtonFontSize,
|
|
34
|
+
...options
|
|
35
|
+
}: StyleOptions = {}): StrictStyleOptions {
|
|
10
36
|
const filledOptions: Required<StyleOptions> = { ...defaultStyleOptions, ...options };
|
|
11
37
|
|
|
12
38
|
// Keep this list flat (no nested style) and serializable (no functions)
|
|
@@ -67,10 +93,95 @@ export default function normalizeStyleOptions(options: StyleOptions = {}): Stric
|
|
|
67
93
|
normalizedEmojiSet = emojiSet;
|
|
68
94
|
}
|
|
69
95
|
|
|
96
|
+
if (hideScrollToEndButton) {
|
|
97
|
+
hideScrollToEndButtonDeprecation();
|
|
98
|
+
|
|
99
|
+
// Only set if the "scrollToEndButtonBehavior" is not set.
|
|
100
|
+
// If it has been set, the developer should know the older "hideScrollToEndButton" option is deprecated.
|
|
101
|
+
filledOptions.scrollToEndButtonBehavior = options.scrollToEndButtonBehavior || false;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
let patchedScrollToEndButtonBehavior = filledOptions.scrollToEndButtonBehavior;
|
|
105
|
+
|
|
106
|
+
if (patchedScrollToEndButtonBehavior !== 'any' && patchedScrollToEndButtonBehavior !== false) {
|
|
107
|
+
patchedScrollToEndButtonBehavior === 'unread' ||
|
|
108
|
+
console.warn(
|
|
109
|
+
'Web Chat: "scrollToEndButtonBehavior" must be either "unread", "any", or false, will set to "unread".'
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
patchedScrollToEndButtonBehavior = 'unread';
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (newMessagesButtonFontSize) {
|
|
116
|
+
newMessagesButtonFontSizeDeprecation();
|
|
117
|
+
|
|
118
|
+
// Only set if the "scrollToEndButtonFontSize" is not set.
|
|
119
|
+
filledOptions.scrollToEndButtonFontSize = options.scrollToEndButtonFontSize || newMessagesButtonFontSize;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
options.suggestedActionBackground && suggestedActionBackgroundDeprecation();
|
|
123
|
+
|
|
124
|
+
if (options.suggestedActionActiveBackground) {
|
|
125
|
+
suggestedActionXXXBackgroundDeprecation();
|
|
126
|
+
|
|
127
|
+
filledOptions.suggestedActionBackgroundColorOnActive =
|
|
128
|
+
options.suggestedActionBackgroundColorOnActive || options.suggestedActionActiveBackground;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (options.suggestedActionFocusBackground) {
|
|
132
|
+
suggestedActionXXXBackgroundDeprecation();
|
|
133
|
+
|
|
134
|
+
filledOptions.suggestedActionBackgroundColorOnFocus =
|
|
135
|
+
options.suggestedActionBackgroundColorOnFocus || options.suggestedActionFocusBackground;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (options.suggestedActionHoverBackground) {
|
|
139
|
+
suggestedActionXXXBackgroundDeprecation();
|
|
140
|
+
|
|
141
|
+
filledOptions.suggestedActionBackgroundColorOnHover =
|
|
142
|
+
options.suggestedActionBackgroundColorOnHover || options.suggestedActionHoverBackground;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (options.suggestedActionDisabledBackground) {
|
|
146
|
+
suggestedActionXXXBackgroundDeprecation();
|
|
147
|
+
|
|
148
|
+
filledOptions.suggestedActionBackgroundColorOnDisabled =
|
|
149
|
+
options.suggestedActionBackgroundColorOnDisabled || options.suggestedActionDisabledBackground;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (options.suggestedActionDisabledBorderColor) {
|
|
153
|
+
suggestedActionDisabledDeprecation();
|
|
154
|
+
|
|
155
|
+
filledOptions.suggestedActionBorderColorOnDisabled =
|
|
156
|
+
options.suggestedActionBorderColorOnDisabled || options.suggestedActionDisabledBorderColor;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (options.suggestedActionDisabledBorderStyle) {
|
|
160
|
+
suggestedActionDisabledDeprecation();
|
|
161
|
+
|
|
162
|
+
filledOptions.suggestedActionBorderStyleOnDisabled =
|
|
163
|
+
options.suggestedActionBorderStyleOnDisabled || options.suggestedActionDisabledBorderStyle;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (options.suggestedActionDisabledBorderWidth) {
|
|
167
|
+
suggestedActionDisabledDeprecation();
|
|
168
|
+
|
|
169
|
+
filledOptions.suggestedActionBorderWidthOnDisabled =
|
|
170
|
+
options.suggestedActionBorderWidthOnDisabled || options.suggestedActionDisabledBorderWidth;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (options.suggestedActionDisabledTextColor) {
|
|
174
|
+
suggestedActionDisabledDeprecation();
|
|
175
|
+
|
|
176
|
+
filledOptions.suggestedActionTextColorOnDisabled =
|
|
177
|
+
options.suggestedActionTextColorOnDisabled || options.suggestedActionDisabledTextColor;
|
|
178
|
+
}
|
|
179
|
+
|
|
70
180
|
return {
|
|
71
181
|
...filledOptions,
|
|
72
182
|
bubbleFromUserNubOffset: normalizedBubbleFromUserNubOffset,
|
|
73
183
|
bubbleNubOffset: normalizedBubbleNubOffset,
|
|
74
|
-
emojiSet: normalizedEmojiSet
|
|
184
|
+
emojiSet: normalizedEmojiSet,
|
|
185
|
+
scrollToEndButtonBehavior: patchedScrollToEndButtonBehavior
|
|
75
186
|
};
|
|
76
187
|
}
|
|
@@ -3,8 +3,6 @@ import updateIn from 'simple-update-in';
|
|
|
3
3
|
// TODO: [P4] We should add a notice for people who want to use "styleSet" instead of "styleOptions".
|
|
4
4
|
// "styleSet" is actually CSS stylesheet and it is based on the DOM tree.
|
|
5
5
|
// DOM tree may change from time to time, thus, maintaining "styleSet" becomes a constant effort.
|
|
6
|
-
|
|
7
|
-
// eslint-disable-next-line complexity
|
|
8
6
|
export default function patchStyleOptionsFromDeprecatedProps(
|
|
9
7
|
styleOptions,
|
|
10
8
|
{ groupTimestamp: groupTimestampFromProps, sendTimeout: sendTimeoutFromProps }
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { FC, PropsWithChildren } from 'react';
|
|
4
|
+
|
|
5
|
+
import ActivityAcknowledgementContext, { ActivityAcknowledgementContextType } from './private/Context';
|
|
6
|
+
import findLastIndex from '../../utils/findLastIndex';
|
|
7
|
+
import useActivities from '../../hooks/useActivities';
|
|
8
|
+
import useActivityKeys from '../ActivityKeyer/useActivityKeys';
|
|
9
|
+
import usePrevious from '../../hooks/internal/usePrevious';
|
|
10
|
+
import useValueRef from '../../hooks/internal/useValueRef';
|
|
11
|
+
|
|
12
|
+
import type { ActivityAcknowledgement } from './private/types';
|
|
13
|
+
|
|
14
|
+
type ActivityAcknowledgementComposerProps = PropsWithChildren<{}>;
|
|
15
|
+
|
|
16
|
+
function findClosestActivityKeyIfNotExists(
|
|
17
|
+
activityKey: string,
|
|
18
|
+
keys: readonly string[],
|
|
19
|
+
prevKeys: readonly string[]
|
|
20
|
+
): string | undefined {
|
|
21
|
+
if (keys.includes(activityKey)) {
|
|
22
|
+
return activityKey;
|
|
23
|
+
} else if (!prevKeys || !activityKey) {
|
|
24
|
+
// Initially, when the transcript was empty, there should be nothing read.
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// If the last activity key is no longer in this activities (say, deleted), we try to find the closest one.
|
|
29
|
+
const prevIndex = prevKeys.indexOf(activityKey);
|
|
30
|
+
|
|
31
|
+
if (~prevIndex) {
|
|
32
|
+
// List out all previously activity keys, find the closest one that is in the new transcript.
|
|
33
|
+
const acknowledgedActivityKeys = prevKeys.slice(0, prevIndex).reverse();
|
|
34
|
+
|
|
35
|
+
for (const prevAcknowledgedActivityKey of acknowledgedActivityKeys) {
|
|
36
|
+
if (keys.includes(prevAcknowledgedActivityKey)) {
|
|
37
|
+
return prevAcknowledgedActivityKey;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// If nothing is found, return `undefined`.
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const ActivityAcknowledgementComposer: FC<ActivityAcknowledgementComposerProps> = ({ children }) => {
|
|
46
|
+
const [activities] = useActivities();
|
|
47
|
+
const [allActivityKeys] = useActivityKeys();
|
|
48
|
+
const [rawLastAcknowledgedActivityKey, setRawLastAcknowledgedActivityKey] = useState<string | undefined>();
|
|
49
|
+
const [rawLastReadActivityKey, setRawLastReadActivityKey] = useState<string | undefined>();
|
|
50
|
+
|
|
51
|
+
const allActivityKeysRef = useValueRef(allActivityKeys);
|
|
52
|
+
const prevAllActivityKeys = usePrevious(allActivityKeys);
|
|
53
|
+
|
|
54
|
+
const lastOutgoingActivityKeyIndex = useMemo(
|
|
55
|
+
() => findLastIndex(activities, activity => activity.from?.role === 'user'),
|
|
56
|
+
[activities]
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// Make sure when we return "lastReadActivityKey" exists in the current transcript.
|
|
60
|
+
const lastReadActivityKey = useMemo(() => {
|
|
61
|
+
rawLastReadActivityKey &&
|
|
62
|
+
!~prevAllActivityKeys.includes(rawLastReadActivityKey) &&
|
|
63
|
+
console.warn(
|
|
64
|
+
`botframework-webchat internal assertion: "rawLastReadActivityKey" of value ${rawLastReadActivityKey} should be in the "prevAllActivityKeys" array.`
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
return findClosestActivityKeyIfNotExists(rawLastReadActivityKey, allActivityKeys, prevAllActivityKeys);
|
|
68
|
+
}, [allActivityKeys, prevAllActivityKeys, rawLastReadActivityKey]);
|
|
69
|
+
|
|
70
|
+
const lastReadActivityKeyRef = useValueRef(lastReadActivityKey);
|
|
71
|
+
|
|
72
|
+
// Make sure when we return "lastAcknowledgedActivityKey" exists in the current transcript.
|
|
73
|
+
const lastAcknowledgedActivityKey = useMemo(() => {
|
|
74
|
+
rawLastAcknowledgedActivityKey &&
|
|
75
|
+
!~prevAllActivityKeys.includes(rawLastAcknowledgedActivityKey) &&
|
|
76
|
+
console.warn(
|
|
77
|
+
`botframework-webchat internal assertion: "rawLastAcknowledgedActivityKey" of value ${rawLastAcknowledgedActivityKey} should be in the "prevAllActivityKeys" array.`
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const lastAcknowledgedActivityKey = findClosestActivityKeyIfNotExists(
|
|
81
|
+
rawLastAcknowledgedActivityKey,
|
|
82
|
+
allActivityKeys,
|
|
83
|
+
prevAllActivityKeys
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
// TODO: [P2] Since Direct Line may send history and does not have read receipt.
|
|
87
|
+
// Thus, if we don't assume everything is acknowledged initially, while displaying the history,
|
|
88
|
+
// the transcript would soon stop scrolling.
|
|
89
|
+
// Thus, before the first outgoing activity is detected, we need to assume everything is acknowledged.
|
|
90
|
+
return (
|
|
91
|
+
allActivityKeys[Math.max(allActivityKeys.indexOf(lastAcknowledgedActivityKey), lastOutgoingActivityKeyIndex)] ||
|
|
92
|
+
allActivityKeys[allActivityKeys.length - 1]
|
|
93
|
+
);
|
|
94
|
+
}, [allActivityKeys, lastOutgoingActivityKeyIndex, prevAllActivityKeys, rawLastAcknowledgedActivityKey]);
|
|
95
|
+
|
|
96
|
+
const activityAcknowledgements = useMemo<Readonly<Map<string, ActivityAcknowledgement>>>(() => {
|
|
97
|
+
const activityAcknowledgements = new Map<string, ActivityAcknowledgement>();
|
|
98
|
+
const lastAcknowledgedIndex = allActivityKeys.indexOf(lastAcknowledgedActivityKey);
|
|
99
|
+
const lastReadIndex = allActivityKeys.indexOf(lastReadActivityKey);
|
|
100
|
+
|
|
101
|
+
allActivityKeys.forEach((activityKey, index) => {
|
|
102
|
+
activityAcknowledgements.set(activityKey, {
|
|
103
|
+
acknowledged: index <= lastAcknowledgedIndex,
|
|
104
|
+
read: index <= lastReadIndex
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
return Object.freeze(activityAcknowledgements);
|
|
109
|
+
}, [allActivityKeys, lastAcknowledgedActivityKey, lastReadActivityKey]);
|
|
110
|
+
|
|
111
|
+
const activityAcknowledgementsRef = useValueRef(activityAcknowledgements);
|
|
112
|
+
|
|
113
|
+
const getHasAcknowledgedByActivityKey = useCallback<(activityKey: string) => boolean>(
|
|
114
|
+
(activityKey: string) => activityAcknowledgementsRef.current.get(activityKey)?.acknowledged,
|
|
115
|
+
[activityAcknowledgementsRef]
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
// TODO: [P2] Memoize with `useMemoWithPrevious` for better memoization of arrays.
|
|
119
|
+
const activityKeysByReadState = useMemo<readonly [readonly string[], readonly string[]]>(() => {
|
|
120
|
+
const index = allActivityKeys.indexOf(lastReadActivityKey);
|
|
121
|
+
|
|
122
|
+
return Object.freeze([
|
|
123
|
+
Object.freeze(allActivityKeys.slice(0, index + 1)),
|
|
124
|
+
Object.freeze(allActivityKeys.slice(index + 1))
|
|
125
|
+
]) as readonly [readonly string[], readonly string[]];
|
|
126
|
+
}, [allActivityKeys, lastReadActivityKey]);
|
|
127
|
+
|
|
128
|
+
const markAllAsAcknowledged = useCallback((): void => {
|
|
129
|
+
const { current: allActivityKeys } = allActivityKeysRef;
|
|
130
|
+
|
|
131
|
+
setRawLastAcknowledgedActivityKey(allActivityKeys[allActivityKeys.length - 1]);
|
|
132
|
+
}, [allActivityKeysRef, setRawLastAcknowledgedActivityKey]);
|
|
133
|
+
|
|
134
|
+
const markActivityKeyAsRead = useCallback(
|
|
135
|
+
(activityKey: string): void => {
|
|
136
|
+
const { current: allActivityKeys } = allActivityKeysRef;
|
|
137
|
+
const index = allActivityKeys.indexOf(activityKey);
|
|
138
|
+
|
|
139
|
+
if (!~index) {
|
|
140
|
+
return console.warn(
|
|
141
|
+
`botframework-webchat: Cannot mark activity with key ${activityKey} as read because it is not in the transcript.`
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
index > allActivityKeys.indexOf(lastReadActivityKeyRef.current) && setRawLastReadActivityKey(activityKey);
|
|
146
|
+
},
|
|
147
|
+
[allActivityKeysRef, lastReadActivityKeyRef, setRawLastReadActivityKey]
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
if (activityKeysByReadState[0].length + activityKeysByReadState[1].length !== allActivityKeys.length) {
|
|
151
|
+
console.warn(
|
|
152
|
+
'botframework-webchat internal: Sum of count of read and unread activity keys MUST equals to total number of activity keys.'
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const contextValue = useMemo<ActivityAcknowledgementContextType>(
|
|
157
|
+
() => ({
|
|
158
|
+
activityKeysByReadState,
|
|
159
|
+
getHasAcknowledgedByActivityKey,
|
|
160
|
+
lastAcknowledgedActivityKeyState: Object.freeze([lastAcknowledgedActivityKey]) as readonly [string],
|
|
161
|
+
lastReadActivityKeyState: Object.freeze([lastReadActivityKey]) as readonly [string],
|
|
162
|
+
markActivityKeyAsRead,
|
|
163
|
+
markAllAsAcknowledged
|
|
164
|
+
}),
|
|
165
|
+
[
|
|
166
|
+
activityKeysByReadState,
|
|
167
|
+
getHasAcknowledgedByActivityKey,
|
|
168
|
+
lastAcknowledgedActivityKey,
|
|
169
|
+
lastReadActivityKey,
|
|
170
|
+
markActivityKeyAsRead,
|
|
171
|
+
markAllAsAcknowledged
|
|
172
|
+
]
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
return (
|
|
176
|
+
<ActivityAcknowledgementContext.Provider value={contextValue}>{children}</ActivityAcknowledgementContext.Provider>
|
|
177
|
+
);
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
export default ActivityAcknowledgementComposer;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
|
|
3
|
+
// TODO: [P1] It seems acknowledgement is only for transcript scrolling and not very beneficial to everyone.
|
|
4
|
+
// We should move acknowledgement logic to transcript.
|
|
5
|
+
type ActivityAcknowledgementContextType = {
|
|
6
|
+
activityKeysByReadState: readonly [readonly string[], readonly string[]];
|
|
7
|
+
getHasAcknowledgedByActivityKey: (activityKey: string) => boolean | undefined;
|
|
8
|
+
lastAcknowledgedActivityKeyState: readonly [string];
|
|
9
|
+
lastReadActivityKeyState: readonly [string];
|
|
10
|
+
markActivityKeyAsRead: (activityKey: string) => void;
|
|
11
|
+
markAllAsAcknowledged: () => void;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const ActivityAcknowledgementContext = createContext<ActivityAcknowledgementContextType>(undefined);
|
|
15
|
+
|
|
16
|
+
export default ActivityAcknowledgementContext;
|
|
17
|
+
|
|
18
|
+
export type { ActivityAcknowledgementContextType };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
import ActivityAcknowledgementContext from './Context';
|
|
4
|
+
|
|
5
|
+
import type { ActivityAcknowledgementContextType } from './Context';
|
|
6
|
+
|
|
7
|
+
export default function useActivityAcknowledgementContext(
|
|
8
|
+
thrownOnUndefined = true
|
|
9
|
+
): ActivityAcknowledgementContextType {
|
|
10
|
+
const contextValue = useContext(ActivityAcknowledgementContext);
|
|
11
|
+
|
|
12
|
+
if (thrownOnUndefined && !contextValue) {
|
|
13
|
+
throw new Error(
|
|
14
|
+
'botframework-webchat internal: This hook can only be used under <ActivityAcknowledgementContext>.'
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return contextValue;
|
|
19
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import useActivityAcknowledgementContext from './private/useContext';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns an arrays of two list of activity keys: read and unread.
|
|
5
|
+
*/
|
|
6
|
+
export default function useActivityKeysByRead(): readonly [readonly string[], readonly string[]] {
|
|
7
|
+
return useActivityAcknowledgementContext().activityKeysByReadState;
|
|
8
|
+
}
|