botframework-webchat-api 4.14.1 → 4.15.2-main.20220413.af6e8a3
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 -105
- package/.prettierrc.yml +1 -1
- package/lib/StyleOptions.d.ts +244 -14
- package/lib/StyleOptions.d.ts.map +1 -1
- package/lib/defaultStyleOptions.d.ts.map +1 -1
- package/lib/defaultStyleOptions.js +67 -14
- package/lib/hooks/Composer.d.ts +3 -3
- package/lib/hooks/Composer.d.ts.map +1 -1
- package/lib/hooks/Composer.js +29 -11
- package/lib/hooks/index.d.ts +11 -1
- package/lib/hooks/index.d.ts.map +1 -1
- package/lib/hooks/index.js +81 -1
- package/lib/hooks/internal/WebChatAPIContext.d.ts +3 -3
- package/lib/hooks/internal/WebChatAPIContext.d.ts.map +1 -1
- package/lib/hooks/internal/WebChatAPIContext.js +1 -1
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts.map +1 -1
- package/lib/hooks/internal/useCreateActivityRendererInternal.js +1 -1
- package/lib/hooks/internal/useDebugDeps.js +10 -4
- 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/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 +1 -1
- package/lib/hooks/middleware/applyMiddleware.js +1 -1
- package/lib/hooks/middleware/concatMiddleware.d.ts.map +1 -1
- package/lib/hooks/middleware/concatMiddleware.js +2 -2
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts.map +1 -1
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.js +1 -1
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts.map +1 -1
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.js +19 -3
- package/lib/hooks/useActiveTyping.d.ts.map +1 -1
- package/lib/hooks/useActiveTyping.js +5 -4
- package/lib/hooks/useActivities.d.ts +2 -2
- package/lib/hooks/useActivities.d.ts.map +1 -1
- 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/useCreateActivityStatusRenderer.d.ts +3 -3
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts.map +1 -1
- package/lib/hooks/useCreateActivityStatusRenderer.js +47 -16
- package/lib/hooks/useCreateAvatarRenderer.d.ts +5 -3
- package/lib/hooks/useCreateAvatarRenderer.d.ts.map +1 -1
- package/lib/hooks/useCreateAvatarRenderer.js +1 -1
- package/lib/hooks/useDateFormatter.d.ts.map +1 -1
- package/lib/hooks/useDateFormatter.js +1 -1
- package/lib/hooks/useDebouncedNotifications.js +3 -3
- 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 +2 -2
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts.map +1 -1
- package/lib/hooks/useGetSendTimeoutForActivity.js +4 -2
- package/lib/hooks/useGroupActivities.d.ts +4 -4
- package/lib/hooks/useGroupActivities.d.ts.map +1 -1
- package/lib/hooks/useGroupActivities.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/useLocalizer.d.ts +1 -1
- package/lib/hooks/useLocalizer.d.ts.map +1 -1
- package/lib/hooks/useLocalizer.js +9 -3
- package/lib/hooks/useMarkActivityAsSpoken.d.ts +2 -2
- package/lib/hooks/useMarkActivityAsSpoken.d.ts.map +1 -1
- 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/usePerformCardAction.d.ts +2 -2
- package/lib/hooks/usePerformCardAction.d.ts.map +1 -1
- package/lib/hooks/usePerformCardAction.js +1 -1
- package/lib/hooks/usePostActivity.d.ts +2 -2
- package/lib/hooks/usePostActivity.d.ts.map +1 -1
- package/lib/hooks/usePostActivity.js +1 -1
- package/lib/hooks/useSendFiles.d.ts +8 -1
- package/lib/hooks/useSendFiles.d.ts.map +1 -1
- package/lib/hooks/useSendFiles.js +1 -1
- package/lib/hooks/useSendTimeoutForActivity.d.ts +2 -2
- package/lib/hooks/useSendTimeoutForActivity.d.ts.map +1 -1
- package/lib/hooks/useSendTimeoutForActivity.js +1 -1
- package/lib/hooks/useSubmitSendBox.d.ts.map +1 -1
- package/lib/hooks/useSubmitSendBox.js +8 -5
- package/lib/hooks/useSuggestedActions.d.ts +1 -1
- package/lib/hooks/useSuggestedActions.d.ts.map +1 -1
- package/lib/hooks/useSuggestedActions.js +1 -1
- package/lib/hooks/useTimeoutForSend.d.ts +2 -2
- package/lib/hooks/useTimeoutForSend.d.ts.map +1 -1
- package/lib/hooks/useTimeoutForSend.js +1 -1
- package/lib/hooks/useTrackException.js +2 -2
- package/lib/hooks/utils/ErrorBoundary.js +4 -4
- package/lib/index.js +8 -8
- package/lib/localization/Localize.d.ts.map +1 -1
- package/lib/localization/Localize.js +12 -6
- package/lib/localization/ar-SA.json +23 -4
- package/lib/localization/bg-BG.json +23 -4
- package/lib/localization/ca-ES.json +23 -4
- package/lib/localization/cs-CZ.json +23 -4
- package/lib/localization/da-DK.json +23 -4
- package/lib/localization/de-DE.json +23 -4
- package/lib/localization/el-GR.json +23 -4
- package/lib/localization/en-US.json +34 -9
- package/lib/localization/es-ES.json +23 -4
- package/lib/localization/et-EE.json +23 -4
- package/lib/localization/eu-ES.json +23 -4
- package/lib/localization/fi-FI.json +23 -4
- package/lib/localization/fr-FR.json +23 -4
- package/lib/localization/gl-ES.json +23 -4
- package/lib/localization/he-IL.json +23 -4
- package/lib/localization/hi-IN.json +23 -4
- package/lib/localization/hr-HR.json +23 -4
- package/lib/localization/hu-HU.json +23 -4
- package/lib/localization/id-ID.json +23 -4
- package/lib/localization/it-IT.json +23 -4
- package/lib/localization/ja-JP.json +23 -4
- package/lib/localization/kk-KZ.json +23 -4
- package/lib/localization/ko-KR.json +23 -4
- package/lib/localization/lt-LT.json +23 -4
- package/lib/localization/lv-LV.json +23 -4
- package/lib/localization/mergeLocalizedStrings.d.ts.map +1 -1
- package/lib/localization/mergeLocalizedStrings.js +13 -6
- package/lib/localization/ms-MY.json +23 -4
- package/lib/localization/nb-NO.json +23 -4
- package/lib/localization/nl-NL.json +23 -4
- package/lib/localization/pl-PL.json +23 -4
- package/lib/localization/pt-BR.json +23 -4
- package/lib/localization/pt-PT.json +23 -4
- package/lib/localization/ro-RO.json +23 -4
- package/lib/localization/ru-RU.json +23 -4
- package/lib/localization/sk-SK.json +23 -4
- package/lib/localization/sl-SI.json +23 -4
- package/lib/localization/sr-Cyrl-CS.json +23 -4
- package/lib/localization/sr-Latn-CS.json +23 -4
- package/lib/localization/sv-SE.json +23 -4
- package/lib/localization/th-TH.json +23 -4
- package/lib/localization/tr-TR.json +23 -4
- package/lib/localization/uk-UA.json +23 -4
- package/lib/localization/vi-VN.json +23 -4
- package/lib/localization/yue.json +26 -7
- package/lib/localization/zh-CN.json +23 -4
- package/lib/localization/zh-HK.json +23 -4
- package/lib/localization/zh-TW.json +23 -4
- package/lib/normalizeStyleOptions.d.ts.map +1 -1
- package/lib/normalizeStyleOptions.js +49 -4
- 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/types/ActivityMiddleware.d.ts +3 -3
- package/lib/types/ActivityMiddleware.d.ts.map +1 -1
- package/lib/types/ActivityStatusMiddleware.d.ts +3 -3
- package/lib/types/ActivityStatusMiddleware.d.ts.map +1 -1
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts +2 -2
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts.map +1 -1
- package/lib/types/AttachmentMiddleware.d.ts +2 -2
- package/lib/types/AttachmentMiddleware.d.ts.map +1 -1
- package/lib/types/AvatarMiddleware.d.ts +2 -2
- package/lib/types/AvatarMiddleware.d.ts.map +1 -1
- package/lib/types/CardActionMiddleware.d.ts +4 -2
- package/lib/types/CardActionMiddleware.d.ts.map +1 -1
- package/lib/types/GroupActivitiesMiddleware.d.ts +7 -7
- package/lib/types/GroupActivitiesMiddleware.d.ts.map +1 -1
- package/lib/types/WebSpeechPonyfill.d.ts +1 -0
- package/lib/types/WebSpeechPonyfill.d.ts.map +1 -1
- package/lib/utils/createCustomEvent.d.ts.map +1 -1
- package/lib/utils/createCustomEvent.js +8 -2
- 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.js +1 -1
- package/lib/utils/mapMap.d.ts.map +1 -1
- package/lib/utils/mapMap.js +9 -2
- package/lib/utils/randomId.d.ts.map +1 -1
- package/lib/utils/randomId.js +1 -1
- package/package.json +26 -29
- package/src/StyleOptions.ts +295 -14
- package/src/defaultStyleOptions.ts +71 -13
- package/src/hooks/Composer.tsx +90 -54
- package/src/hooks/index.ts +20 -0
- package/src/hooks/internal/WebChatAPIContext.ts +3 -3
- package/src/hooks/internal/useCreateActivityRendererInternal.ts +21 -20
- 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/concatMiddleware.ts +6 -4
- package/src/hooks/middleware/createDefaultCardActionMiddleware.ts +29 -27
- package/src/hooks/middleware/createDefaultGroupActivitiesMiddleware.ts +18 -6
- package/src/hooks/useActiveTyping.ts +5 -3
- package/src/hooks/useActivities.ts +2 -2
- package/src/hooks/useActivityKeys.ts +3 -0
- package/src/hooks/useActivityKeysByRead.ts +3 -0
- package/src/hooks/useCreateActivityStatusRenderer.tsx +65 -34
- package/src/hooks/useCreateAvatarRenderer.ts +24 -20
- package/src/hooks/useDateFormatter.ts +4 -3
- 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 +9 -8
- package/src/hooks/useGroupActivities.ts +4 -8
- package/src/hooks/useLastAcknowledgedActivityKey.ts +3 -0
- package/src/hooks/useLastReadActivityKey.ts +3 -0
- package/src/hooks/useLocalizer.ts +7 -2
- package/src/hooks/useMarkActivityAsSpoken.ts +2 -2
- package/src/hooks/useMarkActivityKeyAsRead.ts +3 -0
- package/src/hooks/useMarkAllAsAcknowledged.ts +3 -0
- package/src/hooks/usePerformCardAction.ts +2 -3
- package/src/hooks/usePostActivity.ts +2 -2
- package/src/hooks/useSendFiles.ts +8 -1
- package/src/hooks/useSendTimeoutForActivity.ts +2 -2
- package/src/hooks/useSubmitSendBox.ts +2 -5
- package/src/hooks/useSuggestedActions.ts +1 -1
- package/src/hooks/useTimeoutForSend.ts +2 -2
- package/src/localization/Localize.ts +9 -2
- package/src/localization/ar-SA.json +23 -4
- package/src/localization/bg-BG.json +23 -4
- package/src/localization/ca-ES.json +23 -4
- package/src/localization/cs-CZ.json +23 -4
- package/src/localization/da-DK.json +23 -4
- package/src/localization/de-DE.json +23 -4
- package/src/localization/el-GR.json +23 -4
- package/src/localization/en-US.json +34 -9
- package/src/localization/es-ES.json +23 -4
- package/src/localization/et-EE.json +23 -4
- package/src/localization/eu-ES.json +23 -4
- package/src/localization/fi-FI.json +23 -4
- package/src/localization/fr-FR.json +23 -4
- package/src/localization/gl-ES.json +23 -4
- package/src/localization/he-IL.json +23 -4
- package/src/localization/hi-IN.json +23 -4
- package/src/localization/hr-HR.json +23 -4
- package/src/localization/hu-HU.json +23 -4
- package/src/localization/id-ID.json +23 -4
- package/src/localization/it-IT.json +23 -4
- package/src/localization/ja-JP.json +23 -4
- package/src/localization/kk-KZ.json +23 -4
- package/src/localization/ko-KR.json +23 -4
- package/src/localization/lt-LT.json +23 -4
- package/src/localization/lv-LV.json +23 -4
- package/src/localization/mergeLocalizedStrings.ts +7 -1
- package/src/localization/ms-MY.json +23 -4
- package/src/localization/nb-NO.json +23 -4
- package/src/localization/nl-NL.json +23 -4
- package/src/localization/pl-PL.json +23 -4
- package/src/localization/pt-BR.json +23 -4
- package/src/localization/pt-PT.json +23 -4
- package/src/localization/ro-RO.json +23 -4
- package/src/localization/ru-RU.json +23 -4
- package/src/localization/sk-SK.json +23 -4
- package/src/localization/sl-SI.json +23 -4
- package/src/localization/sr-Cyrl-CS.json +23 -4
- package/src/localization/sr-Latn-CS.json +23 -4
- package/src/localization/sv-SE.json +23 -4
- package/src/localization/th-TH.json +23 -4
- package/src/localization/tr-TR.json +23 -4
- package/src/localization/uk-UA.json +23 -4
- package/src/localization/vi-VN.json +23 -4
- package/src/localization/yue.json +26 -7
- package/src/localization/zh-CN.json +23 -4
- package/src/localization/zh-HK.json +23 -4
- package/src/localization/zh-TW.json +23 -4
- package/src/normalizeStyleOptions.ts +70 -0
- 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 +150 -0
- package/src/providers/ActivityKeyer/private/Context.ts +13 -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/types/ActivityMiddleware.ts +3 -3
- package/src/types/ActivityStatusMiddleware.ts +3 -3
- package/src/types/AttachmentForScreenReaderMiddleware.ts +2 -2
- package/src/types/AttachmentMiddleware.ts +2 -2
- package/src/types/AvatarMiddleware.ts +2 -2
- package/src/types/CardActionMiddleware.ts +2 -2
- package/src/types/GroupActivitiesMiddleware.ts +7 -7
- package/src/utils/createCustomEvent.ts +7 -1
- package/src/utils/findLastIndex.spec.js +31 -0
- package/src/utils/findLastIndex.ts +11 -0
- package/src/utils/mapMap.ts +7 -1
- package/src/utils/randomId.ts +1 -1
- package/.eslintignore +0 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/* eslint react/prop-types: "off" */
|
|
2
2
|
/* eslint react/require-default-props: "off" */
|
|
3
3
|
|
|
4
|
-
import { Constants
|
|
5
|
-
import
|
|
4
|
+
import { Constants } from 'botframework-webchat-core';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import React, { ReactNode, useMemo, VFC } from 'react';
|
|
7
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
6
8
|
|
|
7
|
-
import SendState from '../types/SendState';
|
|
8
9
|
import useGetSendTimeoutForActivity from './useGetSendTimeoutForActivity';
|
|
9
10
|
import useTimePassed from './internal/useTimePassed';
|
|
10
11
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
@@ -13,32 +14,48 @@ const {
|
|
|
13
14
|
ActivityClientState: { SEND_FAILED, SENDING, SENT }
|
|
14
15
|
} = Constants;
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
type ActivityStatusContainerProps = {
|
|
18
|
+
activity: WebChatActivity;
|
|
19
|
+
hideTimestamp: boolean;
|
|
20
|
+
nextVisibleActivity: WebChatActivity;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const ActivityStatusContainer: VFC<ActivityStatusContainerProps> = ({
|
|
24
|
+
activity,
|
|
25
|
+
hideTimestamp,
|
|
26
|
+
nextVisibleActivity
|
|
27
|
+
}) => {
|
|
17
28
|
const { activityStatusRenderer: createActivityStatusRenderer } = useWebChatAPIContext();
|
|
18
29
|
const getSendTimeoutForActivity = useGetSendTimeoutForActivity();
|
|
19
30
|
|
|
20
31
|
// SEND_FAILED from the activity is ignored, and is instead based on styleOptions.sendTimeout.
|
|
21
32
|
// Note that the derived state is time-sensitive. The useTimePassed() hook is used to make sure it changes over time.
|
|
22
33
|
const {
|
|
23
|
-
channelData: { clientTimestamp = 0, state } = {},
|
|
24
34
|
from: { role }
|
|
25
|
-
}:
|
|
26
|
-
|
|
27
|
-
clientTimestamp?: number;
|
|
28
|
-
state?: SendState;
|
|
29
|
-
};
|
|
30
|
-
from: {
|
|
31
|
-
role: string;
|
|
32
|
-
};
|
|
33
|
-
} = activity;
|
|
34
|
-
|
|
35
|
-
const activitySent = state !== SENDING && state !== SEND_FAILED;
|
|
35
|
+
}: WebChatActivity = activity;
|
|
36
|
+
|
|
36
37
|
const fromUser = role === 'user';
|
|
37
|
-
|
|
38
|
+
let activitySent: boolean;
|
|
39
|
+
let sendTimeoutAt: number;
|
|
40
|
+
|
|
41
|
+
if (fromUser) {
|
|
42
|
+
const state = activity.channelData?.state;
|
|
43
|
+
const sendTimeout = getSendTimeoutForActivity({ activity });
|
|
44
|
+
|
|
45
|
+
activitySent = state !== SENDING && state !== SEND_FAILED;
|
|
46
|
+
|
|
47
|
+
// If no timestamp, we assume the "sending" will be timed out as "send failed".
|
|
48
|
+
sendTimeoutAt = !activitySent
|
|
49
|
+
? new Date(activity.localTimestamp || new Date(0).toISOString()).getTime() + sendTimeout
|
|
50
|
+
: 0;
|
|
51
|
+
} else {
|
|
52
|
+
activitySent = true;
|
|
53
|
+
sendTimeoutAt = 0;
|
|
54
|
+
}
|
|
38
55
|
|
|
39
|
-
const pastTimeout = useTimePassed(
|
|
56
|
+
const pastTimeout = useTimePassed(sendTimeoutAt);
|
|
40
57
|
|
|
41
|
-
const sendState = activitySent
|
|
58
|
+
const sendState = activitySent ? SENT : pastTimeout ? SEND_FAILED : SENDING;
|
|
42
59
|
|
|
43
60
|
return useMemo(
|
|
44
61
|
() =>
|
|
@@ -53,24 +70,38 @@ const ActivityStatusContainer = ({ activity, hideTimestamp, nextVisibleActivity
|
|
|
53
70
|
);
|
|
54
71
|
};
|
|
55
72
|
|
|
73
|
+
ActivityStatusContainer.defaultProps = {
|
|
74
|
+
hideTimestamp: false,
|
|
75
|
+
nextVisibleActivity: undefined
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
ActivityStatusContainer.propTypes = {
|
|
79
|
+
// PropTypes cannot fully capture TypeScript types.
|
|
80
|
+
// @ts-ignore
|
|
81
|
+
activity: PropTypes.shape({
|
|
82
|
+
channelData: PropTypes.shape({ state: PropTypes.string }),
|
|
83
|
+
from: PropTypes.shape({ role: PropTypes.string }).isRequired,
|
|
84
|
+
localTimestamp: PropTypes.string
|
|
85
|
+
}).isRequired,
|
|
86
|
+
hideTimestamp: PropTypes.bool,
|
|
87
|
+
nextVisibleActivity: PropTypes.any
|
|
88
|
+
};
|
|
89
|
+
|
|
56
90
|
export default function useCreateActivityStatusRenderer(): (renderOptions: {
|
|
57
|
-
activity:
|
|
58
|
-
nextVisibleActivity:
|
|
91
|
+
activity: WebChatActivity;
|
|
92
|
+
nextVisibleActivity: WebChatActivity;
|
|
59
93
|
}) => (props: { hideTimestamp?: boolean }) => ReactNode {
|
|
60
94
|
return useMemo(
|
|
61
|
-
() =>
|
|
62
|
-
activity,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
nextVisibleActivity={nextVisibleActivity}
|
|
72
|
-
/>
|
|
73
|
-
),
|
|
95
|
+
() =>
|
|
96
|
+
({ activity, nextVisibleActivity }: { activity: WebChatActivity; nextVisibleActivity: WebChatActivity }) =>
|
|
97
|
+
({ hideTimestamp }: { hideTimestamp?: boolean } = {}) =>
|
|
98
|
+
(
|
|
99
|
+
<ActivityStatusContainer
|
|
100
|
+
activity={activity}
|
|
101
|
+
hideTimestamp={hideTimestamp}
|
|
102
|
+
nextVisibleActivity={nextVisibleActivity}
|
|
103
|
+
/>
|
|
104
|
+
),
|
|
74
105
|
[]
|
|
75
106
|
);
|
|
76
107
|
}
|
|
@@ -1,35 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
3
3
|
|
|
4
|
+
import { AvatarComponentFactory } from '../types/AvatarMiddleware';
|
|
4
5
|
import useStyleOptions from './useStyleOptions';
|
|
5
6
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
6
7
|
|
|
7
|
-
export default function useCreateAvatarRenderer(): (
|
|
8
|
-
activity
|
|
9
|
-
|
|
8
|
+
export default function useCreateAvatarRenderer(): ({
|
|
9
|
+
activity
|
|
10
|
+
}: {
|
|
11
|
+
activity: WebChatActivity;
|
|
12
|
+
}) => AvatarComponentFactory {
|
|
10
13
|
const [styleOptions] = useStyleOptions();
|
|
11
14
|
const { avatarRenderer } = useWebChatAPIContext();
|
|
12
15
|
|
|
13
16
|
return useMemo(
|
|
14
|
-
() =>
|
|
15
|
-
|
|
17
|
+
() =>
|
|
18
|
+
({ activity }) => {
|
|
19
|
+
const { from: { role } = {} }: { from?: { role?: string } } = activity;
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const result = avatarRenderer({
|
|
22
|
+
activity,
|
|
23
|
+
fromUser: role === 'user',
|
|
24
|
+
styleOptions
|
|
25
|
+
});
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
if (result !== false && typeof result !== 'function') {
|
|
28
|
+
console.warn(
|
|
29
|
+
'botframework-webchat: avatarMiddleware should return a function to render the avatar, or return false if avatar should be hidden. Please refer to HOOKS.md for details.'
|
|
30
|
+
);
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
return () => result;
|
|
33
|
+
}
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
return result;
|
|
36
|
+
},
|
|
33
37
|
[avatarRenderer, styleOptions]
|
|
34
38
|
);
|
|
35
39
|
}
|
|
@@ -5,9 +5,10 @@ import useLocalizedGlobalize from './internal/useLocalizedGlobalize';
|
|
|
5
5
|
export default function useDateFormatter(): (date: number | Date) => string {
|
|
6
6
|
const [globalize] = useLocalizedGlobalize();
|
|
7
7
|
|
|
8
|
-
const formatDate = useMemo(
|
|
9
|
-
globalize
|
|
10
|
-
|
|
8
|
+
const formatDate = useMemo(
|
|
9
|
+
() => date => globalize.dateFormatter({ skeleton: 'MMMMdhm' })(new Date(date)),
|
|
10
|
+
[globalize]
|
|
11
|
+
);
|
|
11
12
|
|
|
12
13
|
return formatDate;
|
|
13
14
|
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { DirectLineActivity } from 'botframework-webchat-core';
|
|
2
1
|
import { useMemo } from 'react';
|
|
2
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
3
3
|
|
|
4
4
|
import useStyleOptions from './useStyleOptions';
|
|
5
5
|
|
|
6
|
-
export default function useGetSendTimeoutForActivity(): ({ activity }: { activity:
|
|
6
|
+
export default function useGetSendTimeoutForActivity(): ({ activity }: { activity: WebChatActivity }) => number {
|
|
7
7
|
const [{ sendTimeout, sendTimeoutForAttachments }] = useStyleOptions();
|
|
8
8
|
|
|
9
9
|
return useMemo(
|
|
10
|
-
() =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
() =>
|
|
11
|
+
({ activity }) => {
|
|
12
|
+
if (typeof sendTimeout === 'function') {
|
|
13
|
+
return sendTimeout(activity);
|
|
14
|
+
}
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
return activity.type === 'message' && activity.attachments?.length ? sendTimeoutForAttachments : sendTimeout;
|
|
17
|
+
},
|
|
17
18
|
[sendTimeout, sendTimeoutForAttachments]
|
|
18
19
|
);
|
|
19
20
|
}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
2
|
|
|
3
3
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
4
4
|
|
|
5
|
-
export default function useGroupActivities(): ({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
activities: DirectLineActivity[];
|
|
9
|
-
}) => {
|
|
10
|
-
sender: DirectLineActivity[][];
|
|
11
|
-
status: DirectLineActivity[][];
|
|
5
|
+
export default function useGroupActivities(): ({ activities }: { activities: WebChatActivity[] }) => {
|
|
6
|
+
sender: WebChatActivity[][];
|
|
7
|
+
status: WebChatActivity[][];
|
|
12
8
|
} {
|
|
13
9
|
return useWebChatAPIContext().groupActivities;
|
|
14
10
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isForbiddenPropertyName } from 'botframework-webchat-core';
|
|
1
2
|
import { useCallback } from 'react';
|
|
2
3
|
|
|
3
4
|
import getAllLocalizedStrings from '../localization/getAllLocalizedStrings';
|
|
@@ -16,7 +17,7 @@ type Plural = {
|
|
|
16
17
|
other: string;
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
export default function useLocalizer({ plural }: { plural?:
|
|
20
|
+
export default function useLocalizer({ plural }: { plural?: boolean } = {}) {
|
|
20
21
|
const [globalize] = useLocalizedGlobalize();
|
|
21
22
|
const localizedStrings = useLocalizedStrings();
|
|
22
23
|
|
|
@@ -36,6 +37,8 @@ export default function useLocalizer({ plural }: { plural?: keyof Plural } = {})
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
for (const pluralForm of ['zero', 'one', 'two', 'few', 'many']) {
|
|
40
|
+
// Mitigation through allowlisting.
|
|
41
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
39
42
|
const type = typeof id[pluralForm];
|
|
40
43
|
|
|
41
44
|
if (type !== 'string' && type !== 'undefined') {
|
|
@@ -62,7 +65,9 @@ export default function useLocalizer({ plural }: { plural?: keyof Plural } = {})
|
|
|
62
65
|
|
|
63
66
|
return Object.entries(args).reduce(
|
|
64
67
|
(str, [index, arg]) => str.replace(`$${+index + 1}`, arg),
|
|
65
|
-
|
|
68
|
+
// Mitigation through denylisting.
|
|
69
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
70
|
+
isForbiddenPropertyName(stringId) ? '' : localizedStrings[stringId] || DEFAULT_STRINGS[stringId] || ''
|
|
66
71
|
);
|
|
67
72
|
},
|
|
68
73
|
[globalize, localizedStrings, plural]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { DirectLineActivity } from 'botframework-webchat-core';
|
|
2
1
|
import { useCallback } from 'react';
|
|
2
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
3
3
|
|
|
4
4
|
import useMarkActivity from './internal/useMarkActivity';
|
|
5
5
|
|
|
6
|
-
export default function useMarkActivityAsSpoken(): (activity:
|
|
6
|
+
export default function useMarkActivityAsSpoken(): (activity: WebChatActivity) => void {
|
|
7
7
|
const markActivity = useMarkActivity();
|
|
8
8
|
|
|
9
9
|
return useCallback(activity => markActivity(activity, 'speak', false), [markActivity]);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { PerformCardAction } from '../types/CardActionMiddleware';
|
|
3
2
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
4
3
|
|
|
5
|
-
export default function usePerformCardAction():
|
|
4
|
+
export default function usePerformCardAction(): PerformCardAction {
|
|
6
5
|
return useWebChatAPIContext().onCardAction;
|
|
7
6
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DirectLineActivity } from 'botframework-webchat-core';
|
|
2
1
|
import Observable from 'core-js/features/observable';
|
|
2
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
3
3
|
|
|
4
4
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
5
5
|
|
|
6
|
-
export default function usePostActivity(): (activity:
|
|
6
|
+
export default function usePostActivity(): (activity: WebChatActivity) => Observable<string> {
|
|
7
7
|
return useWebChatAPIContext().postActivity;
|
|
8
8
|
}
|
|
@@ -5,7 +5,14 @@ import { useCallback } from 'react';
|
|
|
5
5
|
import useTrackEvent from './useTrackEvent';
|
|
6
6
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
type PostActivityFile = {
|
|
9
|
+
name: string;
|
|
10
|
+
size: number;
|
|
11
|
+
thumbnail?: string;
|
|
12
|
+
url: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default function useSendFiles(): (files: PostActivityFile[]) => void {
|
|
9
16
|
const { sendFiles } = useWebChatAPIContext();
|
|
10
17
|
const trackEvent = useTrackEvent();
|
|
11
18
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
2
|
|
|
3
3
|
import useGetSendTimeoutForActivity from './useGetSendTimeoutForActivity';
|
|
4
4
|
|
|
5
5
|
let showDeprecationNotes = true;
|
|
6
6
|
|
|
7
7
|
/** @deprecated Please use "useGetSendTimeoutForActivity()" instead. */
|
|
8
|
-
export default function useSendTimeoutForActivity(activity:
|
|
8
|
+
export default function useSendTimeoutForActivity(activity: WebChatActivity) {
|
|
9
9
|
if (showDeprecationNotes) {
|
|
10
10
|
console.warn(
|
|
11
11
|
'botframework-webchat: "useSendTimeoutForActivity" is deprecated and will be removed on or after 2022-07-28. Please use "useGetSendTimeoutForActivity()" instead.'
|
|
@@ -8,13 +8,10 @@ export default function useSubmitSendBox(): (method?: string, { channelData }?:
|
|
|
8
8
|
const trackEvent = useTrackEvent();
|
|
9
9
|
|
|
10
10
|
return useCallback(
|
|
11
|
-
(
|
|
12
|
-
// We cannot use spread operator as it broken in Angular.
|
|
13
|
-
const method = args[0] || 'keyboard';
|
|
14
|
-
|
|
11
|
+
(method: string, { channelData }: { channelData?: any } = {}) => {
|
|
15
12
|
trackEvent('submitSendBox', method);
|
|
16
13
|
|
|
17
|
-
return submitSendBox(
|
|
14
|
+
return submitSendBox(method, channelData && { channelData });
|
|
18
15
|
},
|
|
19
16
|
[submitSendBox, trackEvent]
|
|
20
17
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DirectLineSuggestedAction } from 'botframework-webchat-core';
|
|
2
1
|
import { useCallback } from 'react';
|
|
2
|
+
import type { DirectLineSuggestedAction } from 'botframework-webchat-core';
|
|
3
3
|
|
|
4
4
|
import { useSelector } from './internal/WebChatReduxContext';
|
|
5
5
|
import useWebChatAPIContext from './internal/useWebChatAPIContext';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
2
|
|
|
3
3
|
import useStyleOptions from './useStyleOptions';
|
|
4
4
|
|
|
5
|
-
export default function useTimeoutForSend(): [number | ((activity:
|
|
5
|
+
export default function useTimeoutForSend(): [number | ((activity: WebChatActivity) => number)] {
|
|
6
6
|
const [{ sendTimeout }] = useStyleOptions();
|
|
7
7
|
|
|
8
8
|
return [sendTimeout];
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Localize is designed to be elaboratively return multiple results and possibly exceeding complexity requirement
|
|
2
2
|
/* eslint complexity: "off" */
|
|
3
3
|
|
|
4
|
+
import { isForbiddenPropertyName } from 'botframework-webchat-core';
|
|
5
|
+
|
|
4
6
|
import deprecatingGetLocaleString from './getLocaleString';
|
|
5
7
|
import getAllLocalizedStrings from './getAllLocalizedStrings';
|
|
6
8
|
import getRTLList from './getRTLList';
|
|
@@ -20,11 +22,16 @@ function localize(id: string, language: string, ...args: string[]) {
|
|
|
20
22
|
|
|
21
23
|
const allStrings = getAllLocalizedStrings();
|
|
22
24
|
const normalizedLanguage = normalizeLanguage(language);
|
|
23
|
-
|
|
25
|
+
|
|
26
|
+
// Mitigation through denylisting.
|
|
27
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
28
|
+
const localizedStrings = isForbiddenPropertyName(language) ? undefined : allStrings[normalizedLanguage];
|
|
24
29
|
|
|
25
30
|
return Object.entries(args).reduce<boolean | string>(
|
|
26
31
|
(value, [index, arg]) => (typeof value === 'string' ? value.replace(`$${+index + 1}`, arg) : value),
|
|
27
|
-
|
|
32
|
+
// Mitigation through denylisting.
|
|
33
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
34
|
+
isForbiddenPropertyName(id) ? '' : (localizedStrings && localizedStrings[id]) || allStrings['en-US'][id] || ''
|
|
28
35
|
);
|
|
29
36
|
}
|
|
30
37
|
|
|
@@ -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": "مرفق واحد.",
|
|
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\nمفتاح Shift + 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\nمفتاح Shift + 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,10 +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 من مرتين إلى 3 مرات للتبديل إلى محفوظات الدردشة. ثم انقر فوق الرسالة للتفاعل.",
|
|
93
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT": "هناك ارتباط أو أكثر في الرسالة. اضغط على مفتاح shift tab من مرتين إلى 3 مرات للتبديل إلى محفوظات الدردشة. ثم انقر فوق الرسالة للتفاعل.",
|
|
75
94
|
"TRANSCRIPT_MORE_MESSAGES": "المزيد من الرسائل",
|
|
76
95
|
"TRANSCRIPT_NEW_MESSAGES": "رسائل جديدة",
|
|
77
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "نهاية
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "نهاية محفوظات الدردشة",
|
|
78
97
|
"TYPING_INDICATOR_ALT": "إظهار مؤشر الكتابة"
|
|
79
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,10 +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 пъти, за да превключите към хронологията на чата. След това щракнете върху съобщението, за да взаимодействате.",
|
|
75
94
|
"TRANSCRIPT_MORE_MESSAGES": "Още съобщения",
|
|
76
95
|
"TRANSCRIPT_NEW_MESSAGES": "Нови съобщения",
|
|
77
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "Край на
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "Край на хронологията на чата",
|
|
78
97
|
"TYPING_INDICATOR_ALT": "Показване на индикатор за въвеждане"
|
|
79
98
|
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"ACTIVITY_YOU_SAID_ALT": "Heu dit:",
|
|
7
7
|
"ACTIVITY_BOT_ATTACHED_ALT": "Bot adjuntat:",
|
|
8
8
|
"ACTIVITY_ERROR_BOX_TITLE": "Missatge d'error",
|
|
9
|
-
"ACTIVITY_INTERACTIVE_LABEL_ALT": "
|
|
9
|
+
"ACTIVITY_INTERACTIVE_LABEL_ALT": "El missatge és interactiu. Feu clic per interactuar.",
|
|
10
|
+
"ACTIVITY_INTERACTIVE_WITH_LINKS_LABEL_ALT": "Un o més enllaços del missatge. Feu clic per interactuar.",
|
|
10
11
|
"ACTIVITY_YOU_ATTACHED_ALT": "Heu adjuntat:",
|
|
11
12
|
"ACTIVITY_NUM_ATTACHMENTS_ONE_ALT": "1 fitxer adjunt.",
|
|
12
13
|
"ACTIVITY_NUM_ATTACHMENTS_FEW_ALT": "$1 fitxers adjunts.",
|
|
@@ -43,6 +44,22 @@
|
|
|
43
44
|
"FILE_CONTENT_DOWNLOADABLE_ALT": "Baixa el fitxer \"$1\"",
|
|
44
45
|
"FILE_CONTENT_DOWNLOADABLE_WITH_SIZE_ALT": "Baixa el fitxer \"$1\" amb una mida de $2",
|
|
45
46
|
"FILE_CONTENT_WITH_SIZE_ALT": "\"$1\" amb una mida de $2",
|
|
47
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_BODY": "Introduïu una clau",
|
|
48
|
+
"KEYBOARD_HELP_CHAT_HISTORY_ACCESS_ITEMS_IN_MESSAGE_HEADER": "Accediu als elements del missatge",
|
|
49
|
+
"KEYBOARD_HELP_CHAT_HISTORY_HEADER": "Historial de xat",
|
|
50
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_BODY": "Tecla Esc",
|
|
51
|
+
"KEYBOARD_HELP_CHAT_HISTORY_LEAVE_MESSAGE_HEADER": "Deixa un missatge",
|
|
52
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_BODY": "Tecla de tabulació\nTecla Maj + tabulació",
|
|
53
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_ITEMS_HEADER": "Permet desplaçar-se entre els elements d'un missatge",
|
|
54
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_BODY": "Tecla fletxa amunt\nTecla fletxa avall",
|
|
55
|
+
"KEYBOARD_HELP_CHAT_HISTORY_MOVE_BETWEEN_MESSAGES_HEADER": "Permet desplaçar-se entre els missatges",
|
|
56
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_BODY": "Introduïu una clau",
|
|
57
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_DO_ACTION_HEADER": "Executa l'acció",
|
|
58
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_BODY": "Tecla de tabulació\nTecla Maj + tabulació",
|
|
59
|
+
"KEYBOARD_HELP_CHAT_WINDOW_BODY_MOVE_BETWEEN_ITEMS_HEADER": "Permet desplaçar-se entre els elements de la finestra de xat",
|
|
60
|
+
"KEYBOARD_HELP_CHAT_WINDOW_HEADER": "Finestra del xat",
|
|
61
|
+
"KEYBOARD_HELP_CLOSE_BUTTON_ALT": "Tanca",
|
|
62
|
+
"KEYBOARD_HELP_HEADER": "Controls de teclat",
|
|
46
63
|
"MARKDOWN_EXTERNAL_LINK_ALT": "S’obre en una finestra nova; externa.",
|
|
47
64
|
"RECEIPT_CARD_TAX": "Impost",
|
|
48
65
|
"RECEIPT_CARD_TOTAL": "Total",
|
|
@@ -70,10 +87,12 @@
|
|
|
70
87
|
"TOAST_ALT_WARN": "Advertiment",
|
|
71
88
|
"TOAST_DISMISS_BUTTON": "Descarta",
|
|
72
89
|
"TOAST_TITLE_ALT": "Notificació",
|
|
73
|
-
"TRANSCRIPT_ARIA_LABEL_ALT": "
|
|
74
|
-
"TRANSCRIPT_ARIA_ROLE_ALT": "
|
|
90
|
+
"TRANSCRIPT_ARIA_LABEL_ALT": "Historial de xat, premeu les tecles amunt/avall per desplaçar-vos.",
|
|
91
|
+
"TRANSCRIPT_ARIA_ROLE_ALT": "historial de xat",
|
|
92
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT": "El missatge és interactiu. Premeu la tecla de tabulació entre 2 i 3 vegades per canviar a l'historial de xat. A continuació, feu clic al missatge per interactuar.",
|
|
93
|
+
"TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT": "Un o més enllaços al missatge. Premeu la tecla de tabulació entre 2 i 3 vegades per canviar a l'historial de xat. A continuació, feu clic al missatge per interactuar.",
|
|
75
94
|
"TRANSCRIPT_MORE_MESSAGES": "Més missatges",
|
|
76
95
|
"TRANSCRIPT_NEW_MESSAGES": "Missatges nous",
|
|
77
|
-
"TRANSCRIPT_TERMINATOR_TEXT": "Fi de
|
|
96
|
+
"TRANSCRIPT_TERMINATOR_TEXT": "Fi de l'historial de xat",
|
|
78
97
|
"TYPING_INDICATOR_ALT": "S'està mostrant l'indicador d'escriptura"
|
|
79
98
|
}
|