botframework-webchat-api 4.17.1 → 4.18.1-hotfix.20260127.b53acdf
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/decorator.js +3 -0
- package/dist/botframework-webchat-api.d.mts +213 -55
- package/dist/botframework-webchat-api.d.ts +1612 -0
- package/dist/botframework-webchat-api.decorator.d.mts +30 -0
- package/dist/botframework-webchat-api.decorator.d.ts +30 -0
- package/dist/botframework-webchat-api.decorator.js +3 -0
- package/dist/botframework-webchat-api.decorator.js.map +1 -0
- package/dist/botframework-webchat-api.decorator.mjs +3 -0
- package/dist/botframework-webchat-api.decorator.mjs.LEGAL.txt +0 -0
- package/dist/botframework-webchat-api.decorator.mjs.map +1 -0
- package/dist/botframework-webchat-api.internal.d.mts +18 -1
- package/dist/botframework-webchat-api.internal.d.ts +20 -0
- package/dist/botframework-webchat-api.internal.js +3 -0
- package/dist/botframework-webchat-api.internal.js.LEGAL.txt +0 -0
- package/dist/botframework-webchat-api.internal.js.map +1 -0
- package/dist/botframework-webchat-api.internal.mjs +1 -1
- package/dist/botframework-webchat-api.internal.mjs.map +1 -1
- package/dist/botframework-webchat-api.js +3 -0
- package/dist/botframework-webchat-api.js.LEGAL.txt +0 -0
- package/dist/botframework-webchat-api.js.map +1 -0
- package/dist/botframework-webchat-api.mjs +1 -1
- package/dist/botframework-webchat-api.mjs.map +1 -1
- package/dist/chunk-2HABAU7C.mjs +3 -0
- package/dist/chunk-2HABAU7C.mjs.LEGAL.txt +0 -0
- package/dist/chunk-2HABAU7C.mjs.map +1 -0
- package/dist/chunk-45Z2ZE4M.js +3 -0
- package/dist/chunk-45Z2ZE4M.js.LEGAL.txt +0 -0
- package/dist/chunk-45Z2ZE4M.js.map +1 -0
- package/dist/chunk-7K3OK5TS.mjs +3 -0
- package/dist/chunk-7K3OK5TS.mjs.LEGAL.txt +0 -0
- package/dist/chunk-7K3OK5TS.mjs.map +1 -0
- package/dist/chunk-LXPINC7N.js +3 -0
- package/dist/chunk-LXPINC7N.js.LEGAL.txt +0 -0
- package/dist/chunk-LXPINC7N.js.map +1 -0
- package/dist/chunk-PRWGXTDA.mjs +3 -0
- package/dist/chunk-PRWGXTDA.mjs.LEGAL.txt +0 -0
- package/dist/chunk-PRWGXTDA.mjs.map +1 -0
- package/dist/chunk-WH7VSYKK.js +3 -0
- package/dist/chunk-WH7VSYKK.js.LEGAL.txt +0 -0
- package/dist/chunk-WH7VSYKK.js.map +1 -0
- package/dist/metafile-cjs.json +1 -0
- package/dist/metafile-esm.json +1 -1
- package/dist/types-BXPldIKA.d.mts +86 -0
- package/dist/types-BXPldIKA.d.ts +86 -0
- package/internal.js +1 -1
- package/package.json +68 -70
- package/src/StyleOptions.ts +123 -4
- package/src/decorator/ActivityBorder/ActivityBorderDecorator.tsx +48 -0
- package/src/decorator/ActivityBorder/private/ActivityBorderDecoratorMiddleware.ts +51 -0
- package/src/decorator/ActivityBorder/types.ts +1 -0
- package/src/decorator/ActivityGrouping/ActivityGroupingDecorator.tsx +31 -0
- package/src/decorator/ActivityGrouping/private/ActivityGroupingDecoratorMiddleware.ts +38 -0
- package/src/decorator/ActivityGrouping/types.ts +1 -0
- package/src/decorator/DecoratorComposer.tsx +22 -0
- package/src/decorator/internal/InternalDecoratorComposer.tsx +61 -0
- package/src/decorator/internal/LowPriorityDecoratorComposer.tsx +19 -0
- package/src/decorator/private/DecoratorComposerContext.ts +16 -0
- package/src/decorator/private/PassthroughFallback.tsx +12 -0
- package/src/decorator/private/templateMiddleware.test.tsx +100 -0
- package/src/decorator/private/templateMiddleware.ts +60 -0
- package/src/decorator/types.ts +15 -0
- package/src/decorator.ts +16 -0
- package/src/defaultStyleOptions.ts +26 -5
- package/{lib/external/PrecompiledGlobalize.cjs → src/external/PrecompiledGlobalize.js} +8 -7
- package/src/hooks/Composer.tsx +75 -53
- package/src/hooks/index.ts +7 -1
- package/src/hooks/internal/SendBoxMiddleware.ts +5 -3
- package/src/hooks/internal/SendBoxToolbarMiddleware.ts +5 -3
- package/src/hooks/internal/Tracker.ts +1 -1
- package/src/hooks/internal/WebChatAPIContext.ts +12 -5
- package/src/hooks/internal/private/templateMiddleware.ts +3 -43
- package/src/hooks/internal/usePrevious.ts +5 -2
- package/src/hooks/middleware/concatMiddleware.spec.js +20 -0
- package/src/hooks/middleware/concatMiddleware.ts +6 -5
- package/src/hooks/private/numberWithInfinity.spec.ts +9 -0
- package/src/hooks/private/numberWithInfinity.ts +15 -0
- package/src/hooks/private/reduceIterable.spec.ts +29 -0
- package/src/hooks/private/reduceIterable.ts +13 -0
- package/src/hooks/useActiveTyping.ts +31 -28
- package/src/hooks/useDisabled.ts +8 -2
- package/src/hooks/useGetActivitiesByKey.ts +3 -0
- package/src/hooks/useSuggestedActions.ts +17 -4
- package/src/hooks/useUIState.ts +18 -0
- package/src/hooks/validation/uiState.parseUIState.spec.ts +21 -0
- package/src/hooks/validation/uiState.ts +10 -0
- package/src/index.ts +4 -4
- package/src/internal.ts +3 -1
- package/src/localization/ar-SA.json +19 -0
- package/src/localization/bg-BG.json +19 -0
- package/src/localization/ca-ES.json +19 -0
- package/src/localization/cs-CZ.json +19 -0
- package/src/localization/da-DK.json +19 -0
- package/src/localization/de-DE.json +19 -0
- package/src/localization/el-GR.json +19 -0
- package/src/localization/en-US.json +20 -2
- package/src/localization/es-ES.json +19 -0
- package/src/localization/et-EE.json +19 -0
- package/src/localization/eu-ES.json +19 -0
- package/src/localization/fi-FI.json +19 -0
- package/src/localization/fr-FR.json +19 -0
- package/src/localization/gl-ES.json +19 -0
- package/src/localization/he-IL.json +20 -1
- package/src/localization/hi-IN.json +19 -0
- package/src/localization/hr-HR.json +19 -0
- package/src/localization/hu-HU.json +19 -0
- package/src/localization/id-ID.json +19 -0
- package/src/localization/it-IT.json +19 -0
- package/src/localization/ja-JP.json +19 -0
- package/src/localization/kk-KZ.json +19 -0
- package/src/localization/ko-KR.json +19 -0
- package/src/localization/lt-LT.json +19 -0
- package/src/localization/lv-LV.json +19 -0
- package/src/localization/ms-MY.json +19 -0
- package/src/localization/nb-NO.json +19 -0
- package/src/localization/nl-NL.json +19 -0
- package/src/localization/pl-PL.json +19 -0
- package/src/localization/pt-BR.json +19 -0
- package/src/localization/pt-PT.json +19 -0
- package/src/localization/ro-RO.json +19 -0
- package/src/localization/ru-RU.json +19 -0
- package/src/localization/sk-SK.json +19 -0
- package/src/localization/sl-SI.json +19 -0
- package/src/localization/sr-Cyrl-CS.json +19 -0
- package/src/localization/sr-Latn-CS.json +19 -0
- package/src/localization/sv-SE.json +19 -0
- package/src/localization/th-TH.json +19 -0
- package/src/localization/tr-TR.json +19 -0
- package/src/localization/uk-UA.json +19 -0
- package/src/localization/vi-VN.json +19 -0
- package/src/localization/zh-CN.json +21 -2
- package/src/localization/zh-HK.json +19 -0
- package/src/localization/zh-TW.json +19 -0
- package/src/normalizeStyleOptions.ts +45 -0
- package/src/providers/ActivityAcknowledgement/useLastReadActivityKey.ts +1 -1
- package/src/providers/ActivityKeyer/ActivityKeyerComposer.tsx +50 -30
- package/src/providers/ActivityKeyer/private/Context.ts +2 -1
- package/src/providers/ActivityKeyer/private/lastOf.spec.ts +6 -0
- package/src/providers/ActivityKeyer/private/lastOf.ts +3 -0
- package/src/providers/ActivityKeyer/private/someIterable.spec.ts +44 -0
- package/src/providers/ActivityKeyer/private/someIterable.ts +9 -0
- package/src/providers/ActivityKeyer/useGetActivitiesByKey.ts +7 -0
- package/src/providers/ActivityListener/ActivityListenerComposer.tsx +28 -0
- package/src/providers/ActivityListener/private/Context.tsx +16 -0
- package/src/providers/ActivityListener/private/useContext.ts +6 -0
- package/src/providers/ActivityListener/useUpsertedActivities.ts +6 -0
- package/src/providers/ActivitySendStatus/ActivitySendStatusComposer.tsx +2 -2
- package/src/providers/ActivityTyping/ActivityTypingComposer.tsx +170 -0
- package/src/providers/ActivityTyping/private/Context.ts +16 -0
- package/src/providers/ActivityTyping/private/useContext.ts +6 -0
- package/src/providers/ActivityTyping/private/useMemoWithPrevious.ts +17 -0
- package/src/providers/ActivityTyping/private/useReduceActivities.spec.tsx +231 -0
- package/src/providers/ActivityTyping/private/useReduceActivities.ts +48 -0
- package/src/providers/ActivityTyping/types/AllTyping.ts +8 -0
- package/src/providers/ActivityTyping/useAllTyping.ts +6 -0
- package/src/providers/GroupActivities/GroupActivitiesComposer.tsx +115 -0
- package/src/providers/GroupActivities/private/GroupActivitiesContext.ts +23 -0
- package/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts +93 -0
- package/src/providers/GroupActivities/private/isGroupingValid.ts +41 -0
- package/src/providers/GroupActivities/private/useGroupActivitiesContext.ts +6 -0
- package/src/providers/GroupActivities/useGroupActivities.ts +20 -0
- package/src/providers/GroupActivities/useGroupActivitiesByName.ts +17 -0
- package/src/tsconfig.json +1 -5
- package/src/types/AttachmentForScreenReaderMiddleware.ts +9 -2
- package/src/types/AvatarMiddleware.ts +5 -1
- package/src/types/CardActionMiddleware.ts +2 -0
- package/src/types/ComponentMiddleware.ts +1 -1
- package/src/types/GroupActivitiesMiddleware.ts +7 -11
- package/src/types/Typing.ts +2 -3
- package/src/utils/validateProps.spec.ts +74 -0
- package/src/utils/validateProps.ts +56 -0
- package/dist/chunk-4ZIUY4G5.mjs +0 -3
- package/dist/chunk-4ZIUY4G5.mjs.map +0 -1
- package/lib/StyleOptions.d.ts +0 -697
- package/lib/StyleOptions.d.ts.map +0 -1
- package/lib/StyleOptions.js +0 -2
- package/lib/defaultStyleOptions.d.ts +0 -4
- package/lib/defaultStyleOptions.d.ts.map +0 -1
- package/lib/defaultStyleOptions.js +0 -277
- package/lib/hooks/Composer.d.ts +0 -88
- package/lib/hooks/Composer.d.ts.map +0 -1
- package/lib/hooks/Composer.js +0 -602
- package/lib/hooks/index.d.ts +0 -72
- package/lib/hooks/index.d.ts.map +0 -1
- package/lib/hooks/index.js +0 -497
- package/lib/hooks/internal/ErrorBox.js +0 -47
- package/lib/hooks/internal/SendBoxMiddleware.d.ts +0 -34
- package/lib/hooks/internal/SendBoxMiddleware.d.ts.map +0 -1
- package/lib/hooks/internal/SendBoxMiddleware.js +0 -17
- package/lib/hooks/internal/SendBoxToolbarMiddleware.d.ts +0 -34
- package/lib/hooks/internal/SendBoxToolbarMiddleware.d.ts.map +0 -1
- package/lib/hooks/internal/SendBoxToolbarMiddleware.js +0 -17
- package/lib/hooks/internal/Tracker.d.ts +0 -4
- package/lib/hooks/internal/Tracker.d.ts.map +0 -1
- package/lib/hooks/internal/Tracker.js +0 -15
- package/lib/hooks/internal/WebChatAPIContext.d.ts +0 -80
- package/lib/hooks/internal/WebChatAPIContext.d.ts.map +0 -1
- package/lib/hooks/internal/WebChatAPIContext.js +0 -12
- package/lib/hooks/internal/WebChatReduxContext.js +0 -17
- package/lib/hooks/internal/defaultSelectVoice.js +0 -28
- package/lib/hooks/internal/private/templateMiddleware.d.ts +0 -28
- package/lib/hooks/internal/private/templateMiddleware.d.ts.map +0 -1
- package/lib/hooks/internal/private/templateMiddleware.js +0 -48
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts +0 -4
- package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts.map +0 -1
- package/lib/hooks/internal/useCreateActivityRendererInternal.js +0 -37
- package/lib/hooks/internal/useDebugDeps.js +0 -39
- package/lib/hooks/internal/useDirFromProps.js +0 -12
- package/lib/hooks/internal/useErrorBoxClass.js +0 -14
- package/lib/hooks/internal/useForceRender.js +0 -24
- package/lib/hooks/internal/useLocalizedGlobalize.js +0 -12
- package/lib/hooks/internal/useLocalizedStrings.js +0 -14
- package/lib/hooks/internal/useMarkActivity.js +0 -12
- package/lib/hooks/internal/usePrevious.d.ts +0 -2
- package/lib/hooks/internal/usePrevious.d.ts.map +0 -1
- package/lib/hooks/internal/usePrevious.js +0 -15
- package/lib/hooks/internal/useReadTelemetryDimensions.js +0 -20
- package/lib/hooks/internal/useSetDictateState.d.ts +0 -2
- package/lib/hooks/internal/useSetDictateState.d.ts.map +0 -1
- package/lib/hooks/internal/useSetDictateState.js +0 -12
- package/lib/hooks/internal/useTimer.d.ts +0 -5
- package/lib/hooks/internal/useTimer.d.ts.map +0 -1
- package/lib/hooks/internal/useTimer.js +0 -43
- package/lib/hooks/internal/useTracker.js +0 -42
- package/lib/hooks/internal/useValueRef.d.ts +0 -3
- package/lib/hooks/internal/useValueRef.d.ts.map +0 -1
- package/lib/hooks/internal/useValueRef.js +0 -22
- package/lib/hooks/internal/useWebChatAPIContext.d.ts +0 -83
- package/lib/hooks/internal/useWebChatAPIContext.d.ts.map +0 -1
- package/lib/hooks/internal/useWebChatAPIContext.js +0 -17
- package/lib/hooks/middleware/UserlandBoundary.js +0 -48
- package/lib/hooks/middleware/applyMiddleware.js +0 -122
- package/lib/hooks/middleware/concatMiddleware.d.ts +0 -6
- package/lib/hooks/middleware/concatMiddleware.d.ts.map +0 -1
- package/lib/hooks/middleware/concatMiddleware.js +0 -33
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts +0 -3
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts.map +0 -1
- package/lib/hooks/middleware/createDefaultCardActionMiddleware.js +0 -43
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts +0 -7
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts.map +0 -1
- package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.js +0 -68
- package/lib/hooks/useActiveTyping.d.ts +0 -6
- package/lib/hooks/useActiveTyping.d.ts.map +0 -1
- package/lib/hooks/useActiveTyping.js +0 -81
- package/lib/hooks/useActivities.d.ts +0 -3
- package/lib/hooks/useActivities.d.ts.map +0 -1
- package/lib/hooks/useActivities.js +0 -14
- package/lib/hooks/useActivityKeys.d.ts +0 -3
- package/lib/hooks/useActivityKeys.d.ts.map +0 -1
- package/lib/hooks/useActivityKeys.js +0 -11
- package/lib/hooks/useActivityKeysByRead.d.ts +0 -3
- package/lib/hooks/useActivityKeysByRead.d.ts.map +0 -1
- package/lib/hooks/useActivityKeysByRead.js +0 -11
- package/lib/hooks/useAvatarForBot.d.ts +0 -5
- package/lib/hooks/useAvatarForBot.d.ts.map +0 -1
- package/lib/hooks/useAvatarForBot.js +0 -26
- package/lib/hooks/useAvatarForUser.d.ts +0 -5
- package/lib/hooks/useAvatarForUser.d.ts.map +0 -1
- package/lib/hooks/useAvatarForUser.js +0 -26
- package/lib/hooks/useByteFormatter.d.ts +0 -2
- package/lib/hooks/useByteFormatter.d.ts.map +0 -1
- package/lib/hooks/useByteFormatter.js +0 -43
- package/lib/hooks/useConnectivityStatus.d.ts +0 -2
- package/lib/hooks/useConnectivityStatus.d.ts.map +0 -1
- package/lib/hooks/useConnectivityStatus.js +0 -14
- package/lib/hooks/useCreateActivityRenderer.d.ts +0 -3
- package/lib/hooks/useCreateActivityRenderer.d.ts.map +0 -1
- package/lib/hooks/useCreateActivityRenderer.js +0 -14
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts +0 -10
- package/lib/hooks/useCreateActivityStatusRenderer.d.ts.map +0 -1
- package/lib/hooks/useCreateActivityStatusRenderer.js +0 -72
- package/lib/hooks/useCreateAttachmentForScreenReaderRenderer.d.ts +0 -3
- package/lib/hooks/useCreateAttachmentForScreenReaderRenderer.d.ts.map +0 -1
- package/lib/hooks/useCreateAttachmentForScreenReaderRenderer.js +0 -12
- package/lib/hooks/useCreateAvatarRenderer.d.ts +0 -6
- package/lib/hooks/useCreateAvatarRenderer.d.ts.map +0 -1
- package/lib/hooks/useCreateAvatarRenderer.js +0 -44
- package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts +0 -3
- package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts.map +0 -1
- package/lib/hooks/useCreateScrollToEndButtonRenderer.js +0 -12
- package/lib/hooks/useDateFormatter.d.ts +0 -2
- package/lib/hooks/useDateFormatter.d.ts.map +0 -1
- package/lib/hooks/useDateFormatter.js +0 -35
- package/lib/hooks/useDebouncedNotifications.d.ts +0 -13
- package/lib/hooks/useDebouncedNotifications.d.ts.map +0 -1
- package/lib/hooks/useDebouncedNotifications.js +0 -118
- package/lib/hooks/useDictateInterims.d.ts +0 -2
- package/lib/hooks/useDictateInterims.d.ts.map +0 -1
- package/lib/hooks/useDictateInterims.js +0 -16
- package/lib/hooks/useDictateState.d.ts +0 -2
- package/lib/hooks/useDictateState.d.ts.map +0 -1
- package/lib/hooks/useDictateState.js +0 -15
- package/lib/hooks/useDirection.d.ts +0 -2
- package/lib/hooks/useDirection.d.ts.map +0 -1
- package/lib/hooks/useDirection.js +0 -38
- package/lib/hooks/useDisabled.d.ts +0 -2
- package/lib/hooks/useDisabled.d.ts.map +0 -1
- package/lib/hooks/useDisabled.js +0 -12
- package/lib/hooks/useDismissNotification.d.ts +0 -2
- package/lib/hooks/useDismissNotification.d.ts.map +0 -1
- package/lib/hooks/useDismissNotification.js +0 -12
- package/lib/hooks/useEmitTypingIndicator.d.ts +0 -2
- package/lib/hooks/useEmitTypingIndicator.d.ts.map +0 -1
- package/lib/hooks/useEmitTypingIndicator.js +0 -12
- package/lib/hooks/useGetActivityByKey.d.ts +0 -3
- package/lib/hooks/useGetActivityByKey.d.ts.map +0 -1
- package/lib/hooks/useGetActivityByKey.js +0 -11
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts +0 -3
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts.map +0 -1
- package/lib/hooks/useGetHasAcknowledgedByActivityKey.js +0 -11
- package/lib/hooks/useGetKeyByActivity.d.ts +0 -3
- package/lib/hooks/useGetKeyByActivity.d.ts.map +0 -1
- package/lib/hooks/useGetKeyByActivity.js +0 -11
- package/lib/hooks/useGetKeyByActivityId.d.ts +0 -3
- package/lib/hooks/useGetKeyByActivityId.d.ts.map +0 -1
- package/lib/hooks/useGetKeyByActivityId.js +0 -11
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts +0 -5
- package/lib/hooks/useGetSendTimeoutForActivity.d.ts.map +0 -1
- package/lib/hooks/useGetSendTimeoutForActivity.js +0 -33
- package/lib/hooks/useGrammars.d.ts +0 -2
- package/lib/hooks/useGrammars.d.ts.map +0 -1
- package/lib/hooks/useGrammars.js +0 -12
- package/lib/hooks/useGroupActivities.d.ts +0 -8
- package/lib/hooks/useGroupActivities.d.ts.map +0 -1
- package/lib/hooks/useGroupActivities.js +0 -12
- package/lib/hooks/useGroupTimestamp.d.ts +0 -2
- package/lib/hooks/useGroupTimestamp.d.ts.map +0 -1
- package/lib/hooks/useGroupTimestamp.js +0 -21
- package/lib/hooks/useLanguage.d.ts +0 -2
- package/lib/hooks/useLanguage.d.ts.map +0 -1
- package/lib/hooks/useLanguage.js +0 -19
- package/lib/hooks/useLastAcknowledgedActivityKey.d.ts +0 -3
- package/lib/hooks/useLastAcknowledgedActivityKey.d.ts.map +0 -1
- package/lib/hooks/useLastAcknowledgedActivityKey.js +0 -11
- package/lib/hooks/useLastReadActivityKey.d.ts +0 -3
- package/lib/hooks/useLastReadActivityKey.d.ts.map +0 -1
- package/lib/hooks/useLastReadActivityKey.js +0 -11
- package/lib/hooks/useLocalizer.d.ts +0 -13
- package/lib/hooks/useLocalizer.d.ts.map +0 -1
- package/lib/hooks/useLocalizer.js +0 -75
- package/lib/hooks/useMarkActivityAsSpoken.d.ts +0 -3
- package/lib/hooks/useMarkActivityAsSpoken.d.ts.map +0 -1
- package/lib/hooks/useMarkActivityAsSpoken.js +0 -16
- package/lib/hooks/useMarkActivityKeyAsRead.d.ts +0 -3
- package/lib/hooks/useMarkActivityKeyAsRead.d.ts.map +0 -1
- package/lib/hooks/useMarkActivityKeyAsRead.js +0 -11
- package/lib/hooks/useMarkAllAsAcknowledged.d.ts +0 -3
- package/lib/hooks/useMarkAllAsAcknowledged.d.ts.map +0 -1
- package/lib/hooks/useMarkAllAsAcknowledged.js +0 -11
- package/lib/hooks/useNotifications.d.ts +0 -3
- package/lib/hooks/useNotifications.d.ts.map +0 -1
- package/lib/hooks/useNotifications.js +0 -14
- package/lib/hooks/usePerformCardAction.d.ts +0 -3
- package/lib/hooks/usePerformCardAction.d.ts.map +0 -1
- package/lib/hooks/usePerformCardAction.js +0 -12
- package/lib/hooks/usePonyfill.d.ts +0 -3
- package/lib/hooks/usePonyfill.d.ts.map +0 -1
- package/lib/hooks/usePonyfill.js +0 -11
- package/lib/hooks/usePostActivity.d.ts +0 -3
- package/lib/hooks/usePostActivity.d.ts.map +0 -1
- package/lib/hooks/usePostActivity.js +0 -12
- package/lib/hooks/useReferenceGrammarID.d.ts +0 -2
- package/lib/hooks/useReferenceGrammarID.d.ts.map +0 -1
- package/lib/hooks/useReferenceGrammarID.js +0 -14
- package/lib/hooks/useRelativeTimeFormatter.d.ts +0 -2
- package/lib/hooks/useRelativeTimeFormatter.d.ts.map +0 -1
- package/lib/hooks/useRelativeTimeFormatter.js +0 -61
- package/lib/hooks/useRenderAttachment.d.ts +0 -3
- package/lib/hooks/useRenderAttachment.d.ts.map +0 -1
- package/lib/hooks/useRenderAttachment.js +0 -14
- package/lib/hooks/useRenderToast.d.ts +0 -3
- package/lib/hooks/useRenderToast.d.ts.map +0 -1
- package/lib/hooks/useRenderToast.js +0 -12
- package/lib/hooks/useRenderTypingIndicator.d.ts +0 -3
- package/lib/hooks/useRenderTypingIndicator.d.ts.map +0 -1
- package/lib/hooks/useRenderTypingIndicator.js +0 -12
- package/lib/hooks/useSendBoxAttachments.d.ts +0 -6
- package/lib/hooks/useSendBoxAttachments.d.ts.map +0 -1
- package/lib/hooks/useSendBoxAttachments.js +0 -23
- package/lib/hooks/useSendBoxValue.d.ts +0 -2
- package/lib/hooks/useSendBoxValue.d.ts.map +0 -1
- package/lib/hooks/useSendBoxValue.js +0 -16
- package/lib/hooks/useSendEvent.d.ts +0 -2
- package/lib/hooks/useSendEvent.d.ts.map +0 -1
- package/lib/hooks/useSendEvent.js +0 -12
- package/lib/hooks/useSendFiles.d.ts +0 -10
- package/lib/hooks/useSendFiles.d.ts.map +0 -1
- package/lib/hooks/useSendFiles.js +0 -35
- package/lib/hooks/useSendMessage.d.ts +0 -6
- package/lib/hooks/useSendMessage.d.ts.map +0 -1
- package/lib/hooks/useSendMessage.js +0 -33
- package/lib/hooks/useSendMessageBack.d.ts +0 -2
- package/lib/hooks/useSendMessageBack.d.ts.map +0 -1
- package/lib/hooks/useSendMessageBack.js +0 -12
- package/lib/hooks/useSendPostBack.d.ts +0 -2
- package/lib/hooks/useSendPostBack.d.ts.map +0 -1
- package/lib/hooks/useSendPostBack.js +0 -12
- package/lib/hooks/useSendStatusByActivityKey.d.ts +0 -22
- package/lib/hooks/useSendStatusByActivityKey.d.ts.map +0 -1
- package/lib/hooks/useSendStatusByActivityKey.js +0 -31
- package/lib/hooks/useSendTimeoutForActivity.d.ts +0 -4
- package/lib/hooks/useSendTimeoutForActivity.d.ts.map +0 -1
- package/lib/hooks/useSendTimeoutForActivity.js +0 -22
- package/lib/hooks/useSendTypingIndicator.d.ts +0 -2
- package/lib/hooks/useSendTypingIndicator.d.ts.map +0 -1
- package/lib/hooks/useSendTypingIndicator.js +0 -14
- package/lib/hooks/useSetNotification.d.ts +0 -3
- package/lib/hooks/useSetNotification.d.ts.map +0 -1
- package/lib/hooks/useSetNotification.js +0 -12
- package/lib/hooks/useShouldSpeakIncomingActivity.d.ts +0 -2
- package/lib/hooks/useShouldSpeakIncomingActivity.d.ts.map +0 -1
- package/lib/hooks/useShouldSpeakIncomingActivity.js +0 -22
- package/lib/hooks/useStartDictate.d.ts +0 -2
- package/lib/hooks/useStartDictate.d.ts.map +0 -1
- package/lib/hooks/useStartDictate.js +0 -12
- package/lib/hooks/useStopDictate.d.ts +0 -2
- package/lib/hooks/useStopDictate.d.ts.map +0 -1
- package/lib/hooks/useStopDictate.js +0 -12
- package/lib/hooks/useStyleOptions.d.ts +0 -3
- package/lib/hooks/useStyleOptions.d.ts.map +0 -1
- package/lib/hooks/useStyleOptions.js +0 -12
- package/lib/hooks/useSubmitSendBox.d.ts +0 -4
- package/lib/hooks/useSubmitSendBox.d.ts.map +0 -1
- package/lib/hooks/useSubmitSendBox.js +0 -49
- package/lib/hooks/useSuggestedActions.d.ts +0 -3
- package/lib/hooks/useSuggestedActions.d.ts.map +0 -1
- package/lib/hooks/useSuggestedActions.js +0 -25
- package/lib/hooks/useTimeoutForSend.d.ts +0 -3
- package/lib/hooks/useTimeoutForSend.d.ts.map +0 -1
- package/lib/hooks/useTimeoutForSend.js +0 -21
- package/lib/hooks/useTrackDimension.d.ts +0 -2
- package/lib/hooks/useTrackDimension.d.ts.map +0 -1
- package/lib/hooks/useTrackDimension.js +0 -14
- package/lib/hooks/useTrackEvent.d.ts +0 -10
- package/lib/hooks/useTrackEvent.d.ts.map +0 -1
- package/lib/hooks/useTrackEvent.js +0 -51
- package/lib/hooks/useTrackException.d.ts +0 -2
- package/lib/hooks/useTrackException.d.ts.map +0 -1
- package/lib/hooks/useTrackException.js +0 -31
- package/lib/hooks/useTrackTiming.d.ts +0 -2
- package/lib/hooks/useTrackTiming.d.ts.map +0 -1
- package/lib/hooks/useTrackTiming.js +0 -93
- package/lib/hooks/useUserID.d.ts +0 -2
- package/lib/hooks/useUserID.d.ts.map +0 -1
- package/lib/hooks/useUserID.js +0 -12
- package/lib/hooks/useUsername.d.ts +0 -2
- package/lib/hooks/useUsername.d.ts.map +0 -1
- package/lib/hooks/useUsername.js +0 -12
- package/lib/hooks/useVoiceSelector.d.ts +0 -2
- package/lib/hooks/useVoiceSelector.d.ts.map +0 -1
- package/lib/hooks/useVoiceSelector.js +0 -16
- package/lib/hooks/utils/ErrorBoundary.js +0 -68
- package/lib/hooks/utils/observableToPromise.d.ts +0 -3
- package/lib/hooks/utils/observableToPromise.d.ts.map +0 -1
- package/lib/hooks/utils/observableToPromise.js +0 -28
- package/lib/index.d.ts +0 -37
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -88
- package/lib/internal.d.ts +0 -3
- package/lib/internal.d.ts.map +0 -1
- package/lib/internal.js +0 -14
- package/lib/localization/Localize.d.ts +0 -4
- package/lib/localization/Localize.d.ts.map +0 -1
- package/lib/localization/Localize.js +0 -50
- package/lib/localization/ar-EG.json +0 -42
- package/lib/localization/ar-JO.json +0 -45
- package/lib/localization/ar-SA.json +0 -97
- package/lib/localization/bg-BG.json +0 -97
- package/lib/localization/ca-ES.json +0 -97
- package/lib/localization/cs-CZ.json +0 -97
- package/lib/localization/da-DK.json +0 -97
- package/lib/localization/de-DE.json +0 -97
- package/lib/localization/el-GR.json +0 -97
- package/lib/localization/en-US.json +0 -167
- package/lib/localization/es-ES.json +0 -97
- package/lib/localization/et-EE.json +0 -97
- package/lib/localization/eu-ES.json +0 -97
- package/lib/localization/fi-FI.json +0 -97
- package/lib/localization/fr-FR.json +0 -97
- package/lib/localization/getAllLocalizedStrings.d.ts +0 -6
- package/lib/localization/getAllLocalizedStrings.d.ts.map +0 -1
- package/lib/localization/getAllLocalizedStrings.js +0 -117
- package/lib/localization/getRTLList.d.ts +0 -2
- package/lib/localization/getRTLList.d.ts.map +0 -1
- package/lib/localization/getRTLList.js +0 -46
- package/lib/localization/gl-ES.json +0 -97
- package/lib/localization/he-IL.json +0 -97
- package/lib/localization/hi-IN.json +0 -97
- package/lib/localization/hr-HR.json +0 -97
- package/lib/localization/hu-HU.json +0 -97
- package/lib/localization/id-ID.json +0 -97
- package/lib/localization/it-IT.json +0 -97
- package/lib/localization/ja-JP.json +0 -97
- package/lib/localization/kk-KZ.json +0 -97
- package/lib/localization/ko-KR.json +0 -97
- package/lib/localization/lt-LT.json +0 -97
- package/lib/localization/lv-LV.json +0 -97
- package/lib/localization/mergeLocalizedStrings.d.ts +0 -7
- package/lib/localization/mergeLocalizedStrings.d.ts.map +0 -1
- package/lib/localization/mergeLocalizedStrings.js +0 -49
- package/lib/localization/ms-MY.json +0 -97
- package/lib/localization/nb-NO.json +0 -97
- package/lib/localization/nl-NL.json +0 -97
- package/lib/localization/overrides.json +0 -257
- package/lib/localization/pl-PL.json +0 -97
- package/lib/localization/pt-BR.json +0 -97
- package/lib/localization/pt-PT.json +0 -97
- package/lib/localization/ro-RO.json +0 -97
- package/lib/localization/ru-RU.json +0 -97
- package/lib/localization/sk-SK.json +0 -97
- package/lib/localization/sl-SI.json +0 -97
- package/lib/localization/sl-SL.json +0 -3
- package/lib/localization/sr-Cyrl-CS.json +0 -97
- package/lib/localization/sr-Cyrl.json +0 -3
- package/lib/localization/sr-Latn-CS.json +0 -97
- package/lib/localization/sr-Latn.json +0 -3
- package/lib/localization/sv-SE.json +0 -97
- package/lib/localization/th-TH.json +0 -97
- package/lib/localization/tr-TR.json +0 -97
- package/lib/localization/uk-UA.json +0 -97
- package/lib/localization/vi-VN.json +0 -97
- package/lib/localization/yue.json +0 -100
- package/lib/localization/zh-CN.json +0 -97
- package/lib/localization/zh-HK.json +0 -97
- package/lib/localization/zh-TW.json +0 -97
- package/lib/normalizeStyleOptions.d.ts +0 -3
- package/lib/normalizeStyleOptions.d.ts.map +0 -1
- package/lib/normalizeStyleOptions.js +0 -147
- package/lib/patchStyleOptionsFromDeprecatedProps.js +0 -21
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts +0 -6
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.js +0 -153
- package/lib/providers/ActivityAcknowledgement/private/Context.d.ts +0 -13
- package/lib/providers/ActivityAcknowledgement/private/Context.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/private/Context.js +0 -14
- package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts +0 -3
- package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/private/useContext.js +0 -18
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts +0 -5
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.js +0 -15
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts +0 -2
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.js +0 -12
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts +0 -2
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.js +0 -12
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts +0 -2
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.js +0 -12
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts +0 -2
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.js +0 -12
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts +0 -2
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts.map +0 -1
- package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.js +0 -12
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts +0 -20
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/ActivityKeyerComposer.js +0 -119
- package/lib/providers/ActivityKeyer/private/Context.d.ts +0 -12
- package/lib/providers/ActivityKeyer/private/Context.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/private/Context.js +0 -10
- package/lib/providers/ActivityKeyer/private/getActivityId.d.ts +0 -3
- package/lib/providers/ActivityKeyer/private/getActivityId.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/private/getActivityId.js +0 -10
- package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts +0 -3
- package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/private/getClientActivityId.js +0 -11
- package/lib/providers/ActivityKeyer/private/uniqueId.d.ts +0 -2
- package/lib/providers/ActivityKeyer/private/uniqueId.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/private/uniqueId.js +0 -15
- package/lib/providers/ActivityKeyer/private/useContext.d.ts +0 -3
- package/lib/providers/ActivityKeyer/private/useContext.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/private/useContext.js +0 -18
- package/lib/providers/ActivityKeyer/useActivityKeys.d.ts +0 -2
- package/lib/providers/ActivityKeyer/useActivityKeys.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/useActivityKeys.js +0 -12
- package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts +0 -3
- package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/useGetActivityByKey.js +0 -12
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts +0 -3
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/useGetKeyByActivity.js +0 -12
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts +0 -2
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts.map +0 -1
- package/lib/providers/ActivityKeyer/useGetKeyByActivityId.js +0 -12
- package/lib/providers/ActivitySendStatus/ActivitySendStatusComposer.d.ts +0 -4
- package/lib/providers/ActivitySendStatus/ActivitySendStatusComposer.d.ts.map +0 -1
- package/lib/providers/ActivitySendStatus/ActivitySendStatusComposer.js +0 -149
- package/lib/providers/ActivitySendStatus/private/Context.d.ts +0 -9
- package/lib/providers/ActivitySendStatus/private/Context.d.ts.map +0 -1
- package/lib/providers/ActivitySendStatus/private/Context.js +0 -13
- package/lib/providers/ActivitySendStatus/private/isMapEqual.d.ts +0 -7
- package/lib/providers/ActivitySendStatus/private/isMapEqual.d.ts.map +0 -1
- package/lib/providers/ActivitySendStatus/private/isMapEqual.js +0 -55
- package/lib/providers/ActivitySendStatus/private/useContext.d.ts +0 -3
- package/lib/providers/ActivitySendStatus/private/useContext.d.ts.map +0 -1
- package/lib/providers/ActivitySendStatus/private/useContext.js +0 -18
- package/lib/providers/ActivitySendStatus/useSendStatusByActivityKey.d.ts +0 -22
- package/lib/providers/ActivitySendStatus/useSendStatusByActivityKey.d.ts.map +0 -1
- package/lib/providers/ActivitySendStatus/useSendStatusByActivityKey.js +0 -31
- package/lib/providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer.d.ts +0 -3
- package/lib/providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer.d.ts.map +0 -1
- package/lib/providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer.js +0 -71
- package/lib/providers/Ponyfill/PonyfillComposer.d.ts +0 -17
- package/lib/providers/Ponyfill/PonyfillComposer.d.ts.map +0 -1
- package/lib/providers/Ponyfill/PonyfillComposer.js +0 -87
- package/lib/providers/Ponyfill/private/PonyfillContext.d.ts +0 -8
- package/lib/providers/Ponyfill/private/PonyfillContext.d.ts.map +0 -1
- package/lib/providers/Ponyfill/private/PonyfillContext.js +0 -10
- package/lib/providers/Ponyfill/private/useContext.d.ts +0 -6
- package/lib/providers/Ponyfill/private/useContext.d.ts.map +0 -1
- package/lib/providers/Ponyfill/private/useContext.js +0 -17
- package/lib/providers/Ponyfill/usePonyfill.d.ts +0 -3
- package/lib/providers/Ponyfill/usePonyfill.d.ts.map +0 -1
- package/lib/providers/Ponyfill/usePonyfill.js +0 -12
- package/lib/tsconfig.json +0 -18
- package/lib/types/ActivityMiddleware.d.ts +0 -24
- package/lib/types/ActivityMiddleware.d.ts.map +0 -1
- package/lib/types/ActivityMiddleware.js +0 -2
- package/lib/types/ActivityStatusMiddleware.d.ts +0 -17
- package/lib/types/ActivityStatusMiddleware.d.ts.map +0 -1
- package/lib/types/ActivityStatusMiddleware.js +0 -2
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts +0 -14
- package/lib/types/AttachmentForScreenReaderMiddleware.d.ts.map +0 -1
- package/lib/types/AttachmentForScreenReaderMiddleware.js +0 -2
- package/lib/types/AttachmentMiddleware.d.ts +0 -12
- package/lib/types/AttachmentMiddleware.d.ts.map +0 -1
- package/lib/types/AttachmentMiddleware.js +0 -2
- package/lib/types/AvatarMiddleware.d.ts +0 -15
- package/lib/types/AvatarMiddleware.d.ts.map +0 -1
- package/lib/types/AvatarMiddleware.js +0 -2
- package/lib/types/CardActionMiddleware.d.ts +0 -19
- package/lib/types/CardActionMiddleware.d.ts.map +0 -1
- package/lib/types/CardActionMiddleware.js +0 -2
- package/lib/types/ComponentMiddleware.d.ts +0 -31
- package/lib/types/ComponentMiddleware.d.ts.map +0 -1
- package/lib/types/ComponentMiddleware.js +0 -2
- package/lib/types/ContextOf.d.ts +0 -4
- package/lib/types/ContextOf.d.ts.map +0 -1
- package/lib/types/ContextOf.js +0 -2
- package/lib/types/FunctionMiddleware.d.ts +0 -6
- package/lib/types/FunctionMiddleware.d.ts.map +0 -1
- package/lib/types/FunctionMiddleware.js +0 -2
- package/lib/types/GroupActivitiesMiddleware.d.ts +0 -22
- package/lib/types/GroupActivitiesMiddleware.d.ts.map +0 -1
- package/lib/types/GroupActivitiesMiddleware.js +0 -2
- package/lib/types/LocalizedStrings.d.ts +0 -5
- package/lib/types/LocalizedStrings.d.ts.map +0 -1
- package/lib/types/LocalizedStrings.js +0 -2
- package/lib/types/Notification.d.ts +0 -10
- package/lib/types/Notification.d.ts.map +0 -1
- package/lib/types/Notification.js +0 -2
- package/lib/types/PrecompiledGlobalize.d.ts +0 -13
- package/lib/types/PrecompiledGlobalize.d.ts.map +0 -1
- package/lib/types/PrecompiledGlobalize.js +0 -2
- package/lib/types/ScrollToEndButtonMiddleware.d.ts +0 -30
- package/lib/types/ScrollToEndButtonMiddleware.d.ts.map +0 -1
- package/lib/types/ScrollToEndButtonMiddleware.js +0 -2
- package/lib/types/SendStatus.d.ts +0 -3
- package/lib/types/SendStatus.d.ts.map +0 -1
- package/lib/types/SendStatus.js +0 -2
- package/lib/types/TelemetryMeasurementEvent.d.ts +0 -31
- package/lib/types/TelemetryMeasurementEvent.d.ts.map +0 -1
- package/lib/types/TelemetryMeasurementEvent.js +0 -2
- package/lib/types/ToastMiddleware.d.ts +0 -11
- package/lib/types/ToastMiddleware.d.ts.map +0 -1
- package/lib/types/ToastMiddleware.js +0 -2
- package/lib/types/Typing.d.ts +0 -8
- package/lib/types/Typing.d.ts.map +0 -1
- package/lib/types/Typing.js +0 -2
- package/lib/types/TypingIndicatorMiddleware.d.ts +0 -17
- package/lib/types/TypingIndicatorMiddleware.d.ts.map +0 -1
- package/lib/types/TypingIndicatorMiddleware.js +0 -2
- package/lib/types/WebSpeechPonyfill.d.ts +0 -19
- package/lib/types/WebSpeechPonyfill.d.ts.map +0 -1
- package/lib/types/WebSpeechPonyfill.js +0 -2
- package/lib/types/WebSpeechPonyfillFactory.d.ts +0 -6
- package/lib/types/WebSpeechPonyfillFactory.d.ts.map +0 -1
- package/lib/types/WebSpeechPonyfillFactory.js +0 -2
- package/lib/utils/createCustomEvent.d.ts +0 -4
- package/lib/utils/createCustomEvent.d.ts.map +0 -1
- package/lib/utils/createCustomEvent.js +0 -34
- package/lib/utils/findLastIndex.d.ts +0 -2
- package/lib/utils/findLastIndex.d.ts.map +0 -1
- package/lib/utils/findLastIndex.js +0 -22
- package/lib/utils/findMin.d.ts +0 -7
- package/lib/utils/findMin.d.ts.map +0 -1
- package/lib/utils/findMin.js +0 -46
- package/lib/utils/freezeArray.d.ts +0 -8
- package/lib/utils/freezeArray.d.ts.map +0 -1
- package/lib/utils/freezeArray.js +0 -19
- package/lib/utils/isObject.js +0 -12
- package/lib/utils/mapMap.d.ts +0 -6
- package/lib/utils/mapMap.d.ts.map +0 -1
- package/lib/utils/mapMap.js +0 -27
- package/lib/utils/normalizeLanguage.d.ts +0 -2
- package/lib/utils/normalizeLanguage.d.ts.map +0 -1
- package/lib/utils/normalizeLanguage.js +0 -115
- package/lib/utils/randomId.d.ts +0 -2
- package/lib/utils/randomId.d.ts.map +0 -1
- package/lib/utils/randomId.js +0 -15
- package/lib/utils/warnOnce.d.ts +0 -2
- package/lib/utils/warnOnce.d.ts.map +0 -1
- package/lib/utils/warnOnce.js +0 -16
- package/src/external/PrecompiledGlobalize.cjs +0 -8855
- package/src/hooks/middleware/createDefaultGroupActivitiesMiddleware.ts +0 -75
- package/src/hooks/useGroupActivities.ts +0 -10
- /package/dist/{chunk-4ZIUY4G5.mjs.LEGAL.txt → botframework-webchat-api.decorator.js.LEGAL.txt} +0 -0
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { getActivityLivestreamingMetadata, type WebChatActivity } from 'botframework-webchat-core';
|
|
2
2
|
import React, { useCallback, useMemo, useRef, type ReactNode } from 'react';
|
|
3
3
|
|
|
4
|
+
import reduceIterable from '../../hooks/private/reduceIterable';
|
|
4
5
|
import useActivities from '../../hooks/useActivities';
|
|
5
6
|
import type { ActivityKeyerContextType } from './private/Context';
|
|
6
7
|
import ActivityKeyerContext from './private/Context';
|
|
7
8
|
import getActivityId from './private/getActivityId';
|
|
8
9
|
import getClientActivityId from './private/getClientActivityId';
|
|
10
|
+
import lastOf from './private/lastOf';
|
|
11
|
+
import someIterable from './private/someIterable';
|
|
9
12
|
import uniqueId from './private/uniqueId';
|
|
10
13
|
import useActivityKeyerContext from './private/useContext';
|
|
11
14
|
|
|
12
15
|
type ActivityIdToKeyMap = Map<string, string>;
|
|
13
16
|
type ActivityToKeyMap = Map<WebChatActivity, string>;
|
|
14
17
|
type ClientActivityIdToKeyMap = Map<string, string>;
|
|
15
|
-
type
|
|
18
|
+
type KeyToActivitiesMap = Map<string, readonly WebChatActivity[]>;
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* React context composer component to assign a perma-key to every activity.
|
|
@@ -39,7 +42,7 @@ const ActivityKeyerComposer = ({ children }: Readonly<{ children?: ReactNode | u
|
|
|
39
42
|
const activityIdToKeyMapRef = useRef<Readonly<ActivityIdToKeyMap>>(Object.freeze(new Map()));
|
|
40
43
|
const activityToKeyMapRef = useRef<Readonly<ActivityToKeyMap>>(Object.freeze(new Map()));
|
|
41
44
|
const clientActivityIdToKeyMapRef = useRef<Readonly<ClientActivityIdToKeyMap>>(Object.freeze(new Map()));
|
|
42
|
-
const
|
|
45
|
+
const keyToActivitiesMapRef = useRef<Readonly<KeyToActivitiesMap>>(Object.freeze(new Map()));
|
|
43
46
|
|
|
44
47
|
// TODO: [P1] `useMemoWithPrevious` to check and cache the resulting array if it hasn't changed.
|
|
45
48
|
const activityKeysState = useMemo<readonly [readonly string[]]>(() => {
|
|
@@ -47,60 +50,69 @@ const ActivityKeyerComposer = ({ children }: Readonly<{ children?: ReactNode | u
|
|
|
47
50
|
const { current: activityToKeyMap } = activityToKeyMapRef;
|
|
48
51
|
const { current: clientActivityIdToKeyMap } = clientActivityIdToKeyMapRef;
|
|
49
52
|
const nextActivityIdToKeyMap: ActivityIdToKeyMap = new Map();
|
|
50
|
-
const nextActivityKeys: string
|
|
53
|
+
const nextActivityKeys: Set<string> = new Set();
|
|
51
54
|
const nextActivityToKeyMap: ActivityToKeyMap = new Map();
|
|
52
55
|
const nextClientActivityIdToKeyMap: ClientActivityIdToKeyMap = new Map();
|
|
53
|
-
const
|
|
56
|
+
const nextKeyToActivitiesMap: KeyToActivitiesMap = new Map();
|
|
54
57
|
|
|
55
58
|
activities.forEach(activity => {
|
|
56
59
|
const activityId = getActivityId(activity);
|
|
57
60
|
const clientActivityId = getClientActivityId(activity);
|
|
61
|
+
const typingActivityId = getActivityLivestreamingMetadata(activity)?.sessionId;
|
|
58
62
|
|
|
59
63
|
const key =
|
|
60
|
-
(clientActivityId &&
|
|
61
|
-
|
|
64
|
+
(clientActivityId &&
|
|
65
|
+
(clientActivityIdToKeyMap.get(clientActivityId) || nextClientActivityIdToKeyMap.get(clientActivityId))) ||
|
|
66
|
+
(typingActivityId &&
|
|
67
|
+
(activityIdToKeyMap.get(typingActivityId) || nextActivityIdToKeyMap.get(typingActivityId))) ||
|
|
68
|
+
(activityId && (activityIdToKeyMap.get(activityId) || nextActivityIdToKeyMap.get(activityId))) ||
|
|
62
69
|
activityToKeyMap.get(activity) ||
|
|
70
|
+
nextActivityToKeyMap.get(activity) ||
|
|
63
71
|
uniqueId();
|
|
64
72
|
|
|
65
73
|
activityId && nextActivityIdToKeyMap.set(activityId, key);
|
|
66
74
|
clientActivityId && nextClientActivityIdToKeyMap.set(clientActivityId, key);
|
|
67
75
|
nextActivityToKeyMap.set(activity, key);
|
|
68
|
-
|
|
69
|
-
|
|
76
|
+
nextActivityKeys.add(key);
|
|
77
|
+
|
|
78
|
+
const activities = nextKeyToActivitiesMap.has(key) ? [...nextKeyToActivitiesMap.get(key)] : [];
|
|
79
|
+
|
|
80
|
+
activities.push(activity);
|
|
81
|
+
nextKeyToActivitiesMap.set(key, Object.freeze(activities));
|
|
70
82
|
});
|
|
71
83
|
|
|
72
84
|
activityIdToKeyMapRef.current = Object.freeze(nextActivityIdToKeyMap);
|
|
73
85
|
activityToKeyMapRef.current = Object.freeze(nextActivityToKeyMap);
|
|
74
86
|
clientActivityIdToKeyMapRef.current = Object.freeze(nextClientActivityIdToKeyMap);
|
|
75
|
-
|
|
87
|
+
keyToActivitiesMapRef.current = Object.freeze(nextKeyToActivitiesMap);
|
|
76
88
|
|
|
77
89
|
// `nextActivityKeys` could potentially same as `prevActivityKeys` despite reference differences, we should memoize it.
|
|
78
|
-
return Object.freeze([Object.freeze(nextActivityKeys)]) as readonly [readonly string[]];
|
|
79
|
-
}, [activities, activityIdToKeyMapRef, activityToKeyMapRef, clientActivityIdToKeyMapRef,
|
|
90
|
+
return Object.freeze([Object.freeze([...nextActivityKeys.values()])]) as readonly [readonly string[]];
|
|
91
|
+
}, [activities, activityIdToKeyMapRef, activityToKeyMapRef, clientActivityIdToKeyMapRef, keyToActivitiesMapRef]);
|
|
92
|
+
|
|
93
|
+
const getActivitiesByKey: (key?: string | undefined) => readonly WebChatActivity[] | undefined = useCallback(
|
|
94
|
+
(key?: string | undefined): readonly WebChatActivity[] | undefined => key && keyToActivitiesMapRef.current.get(key),
|
|
95
|
+
[keyToActivitiesMapRef]
|
|
96
|
+
);
|
|
80
97
|
|
|
81
|
-
const getActivityByKey: (key?: string) => undefined | WebChatActivity = useCallback(
|
|
82
|
-
(key?: string): undefined | WebChatActivity =>
|
|
83
|
-
[
|
|
98
|
+
const getActivityByKey: (key?: string | undefined) => undefined | WebChatActivity = useCallback(
|
|
99
|
+
(key?: string | undefined): undefined | WebChatActivity => lastOf(getActivitiesByKey(key)),
|
|
100
|
+
[getActivitiesByKey]
|
|
84
101
|
);
|
|
85
102
|
|
|
86
|
-
const getKeyByActivity: (activity?: WebChatActivity) => string | undefined = useCallback(
|
|
87
|
-
(activity?: WebChatActivity) => activity && activityToKeyMapRef.current.get(activity),
|
|
103
|
+
const getKeyByActivity: (activity?: WebChatActivity | undefined) => string | undefined = useCallback(
|
|
104
|
+
(activity?: WebChatActivity | undefined) => activity && activityToKeyMapRef.current.get(activity),
|
|
88
105
|
[activityToKeyMapRef]
|
|
89
106
|
);
|
|
90
107
|
|
|
91
|
-
const getKeyByActivityId: (activityId?: string) => string | undefined = useCallback(
|
|
92
|
-
(activityId?: string) => activityId && activityIdToKeyMapRef.current.get(activityId),
|
|
108
|
+
const getKeyByActivityId: (activityId?: string | undefined) => string | undefined = useCallback(
|
|
109
|
+
(activityId?: string | undefined) => activityId && activityIdToKeyMapRef.current.get(activityId),
|
|
93
110
|
[activityIdToKeyMapRef]
|
|
94
111
|
);
|
|
95
112
|
|
|
96
113
|
const contextValue = useMemo<ActivityKeyerContextType>(
|
|
97
|
-
() => ({
|
|
98
|
-
|
|
99
|
-
getActivityByKey,
|
|
100
|
-
getKeyByActivity,
|
|
101
|
-
getKeyByActivityId
|
|
102
|
-
}),
|
|
103
|
-
[activityKeysState, getActivityByKey, getKeyByActivity, getKeyByActivityId]
|
|
114
|
+
() => ({ activityKeysState, getActivityByKey, getActivitiesByKey, getKeyByActivity, getKeyByActivityId }),
|
|
115
|
+
[activityKeysState, getActivitiesByKey, getActivityByKey, getKeyByActivity, getKeyByActivityId]
|
|
104
116
|
);
|
|
105
117
|
|
|
106
118
|
const { length: numActivities } = activities;
|
|
@@ -123,15 +135,23 @@ const ActivityKeyerComposer = ({ children }: Readonly<{ children?: ReactNode | u
|
|
|
123
135
|
);
|
|
124
136
|
}
|
|
125
137
|
|
|
126
|
-
if (
|
|
138
|
+
if (someIterable(keyToActivitiesMapRef.current.values(), ({ length }) => !length)) {
|
|
139
|
+
console.warn(
|
|
140
|
+
'botframework-webchat internal assertion: all values in "keyToActivitiesMap" should have at least one item.'
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (
|
|
145
|
+
reduceIterable(keyToActivitiesMapRef.current.values(), (total, { length }) => total + length, 0) !== numActivities
|
|
146
|
+
) {
|
|
127
147
|
console.warn(
|
|
128
|
-
'botframework-webchat internal assertion: "
|
|
148
|
+
'botframework-webchat internal assertion: "keyToActivitiesMap.size" should be same as "activities.length".'
|
|
129
149
|
);
|
|
130
150
|
}
|
|
131
151
|
|
|
132
|
-
if (activityKeysState[0].length !==
|
|
152
|
+
if (activityKeysState[0].length !== keyToActivitiesMapRef.current.size) {
|
|
133
153
|
console.warn(
|
|
134
|
-
'botframework-webchat internal assertion: "activityKeys.length" should be same as "
|
|
154
|
+
'botframework-webchat internal assertion: "activityKeys.length" should be same as "keyToActivitiesMap.size".'
|
|
135
155
|
);
|
|
136
156
|
}
|
|
137
157
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { createContext } from 'react';
|
|
2
1
|
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
|
+
import { createContext } from 'react';
|
|
3
3
|
|
|
4
4
|
type ActivityKeyerContextType = {
|
|
5
5
|
activityKeysState: readonly [readonly string[]];
|
|
6
|
+
getActivitiesByKey: (key?: string) => readonly WebChatActivity[] | undefined;
|
|
6
7
|
getActivityByKey: (key?: string) => undefined | WebChatActivity;
|
|
7
8
|
getKeyByActivity: (activity?: WebChatActivity) => string | undefined;
|
|
8
9
|
getKeyByActivityId: (activityKey?: string) => string | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import lastOf from './lastOf';
|
|
2
|
+
|
|
3
|
+
test('should return last element', () => expect(lastOf(Object.freeze(['1', '2', '3']))).toBe('3'));
|
|
4
|
+
test('when passed empty array should return undefined', () => expect(lastOf([])).toBeUndefined());
|
|
5
|
+
test('when passed undefined should return undefined', () => expect(lastOf(undefined)).toBeUndefined());
|
|
6
|
+
test('when passed null should return undefined', () => expect(lastOf(null as any)).toBeUndefined());
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import someIterable from './someIterable';
|
|
2
|
+
|
|
3
|
+
describe('when predicate return true should return true', () => {
|
|
4
|
+
let predicate: jest.Mock<boolean, []>;
|
|
5
|
+
let actual: boolean;
|
|
6
|
+
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
predicate = jest.fn(() => true);
|
|
9
|
+
actual = someIterable(['1', '2', '3'], predicate);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('should return true', () => expect(actual).toBe(true));
|
|
13
|
+
test('should have called predicate once', () => expect(predicate).toHaveBeenCalledTimes(1));
|
|
14
|
+
test("should have called predicate with '1'", () => expect(predicate).toHaveBeenNthCalledWith(1, '1'));
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
describe('when predicate return false should return false', () => {
|
|
18
|
+
let predicate: jest.Mock<boolean, []>;
|
|
19
|
+
let actual: boolean;
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
predicate = jest.fn(() => false);
|
|
23
|
+
actual = someIterable(['1', '2', '3'], predicate);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('should return false', () => expect(actual).toBe(false));
|
|
27
|
+
test('should have called predicate 3 times', () => expect(predicate).toHaveBeenCalledTimes(3));
|
|
28
|
+
test("should have called predicate with '1'", () => expect(predicate).toHaveBeenNthCalledWith(1, '1'));
|
|
29
|
+
test("should have called predicate with '2'", () => expect(predicate).toHaveBeenNthCalledWith(2, '2'));
|
|
30
|
+
test("should have called predicate with '3'", () => expect(predicate).toHaveBeenNthCalledWith(3, '3'));
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
describe('when passed an empty array', () => {
|
|
34
|
+
let predicate: jest.Mock<boolean, []>;
|
|
35
|
+
let actual: boolean;
|
|
36
|
+
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
predicate = jest.fn();
|
|
39
|
+
actual = someIterable([], predicate);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
test('should return false', () => expect(actual).toBe(false));
|
|
43
|
+
test('should not call predicate', () => expect(predicate).toHaveBeenCalledTimes(0));
|
|
44
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
|
+
|
|
3
|
+
import useActivityKeyerContext from './private/useContext';
|
|
4
|
+
|
|
5
|
+
export default function useGetActivitiesByKey(): (key?: string) => readonly WebChatActivity[] | undefined {
|
|
6
|
+
return useActivityKeyerContext().getActivitiesByKey;
|
|
7
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
|
+
import React, { memo, useMemo, type ReactNode } from 'react';
|
|
3
|
+
import usePrevious from '../../hooks/internal/usePrevious';
|
|
4
|
+
import useActivities from '../../hooks/useActivities';
|
|
5
|
+
import ActivityListenerContext, { type ActivityListenerContextType } from './private/Context';
|
|
6
|
+
|
|
7
|
+
type Props = Readonly<{ children?: ReactNode | undefined }>;
|
|
8
|
+
|
|
9
|
+
const ActivityListenerComposer = memo(({ children }: Props) => {
|
|
10
|
+
const [activities] = useActivities();
|
|
11
|
+
const prevActivities = usePrevious<WebChatActivity[]>(activities, []);
|
|
12
|
+
|
|
13
|
+
const upsertedActivitiesState = useMemo<readonly [readonly WebChatActivity[]]>(() => {
|
|
14
|
+
const upserts: WebChatActivity[] = [];
|
|
15
|
+
|
|
16
|
+
for (const activity of activities) {
|
|
17
|
+
prevActivities.includes(activity) || upserts.push(activity);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return Object.freeze([Object.freeze(upserts)]);
|
|
21
|
+
}, [activities, prevActivities]);
|
|
22
|
+
|
|
23
|
+
const context = useMemo<ActivityListenerContextType>(() => ({ upsertedActivitiesState }), [upsertedActivitiesState]);
|
|
24
|
+
|
|
25
|
+
return <ActivityListenerContext.Provider value={context}>{children}</ActivityListenerContext.Provider>;
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export default ActivityListenerComposer;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type WebChatActivity } from 'botframework-webchat-core';
|
|
2
|
+
import { createContext } from 'react';
|
|
3
|
+
|
|
4
|
+
export type ActivityListenerContextType = {
|
|
5
|
+
upsertedActivitiesState: readonly [readonly WebChatActivity[]];
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const ActivityListenerContext = createContext<ActivityListenerContextType>(
|
|
9
|
+
new Proxy({} as ActivityListenerContextType, {
|
|
10
|
+
get() {
|
|
11
|
+
throw new Error('botframework-webchat internal: This hook can only used under <ActivityListenerComposer>.');
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
export default ActivityListenerContext;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
2
|
+
import useActivityListenerContext from './private/useContext';
|
|
3
|
+
|
|
4
|
+
export default function useUpsertedActivities(): readonly [readonly WebChatActivity[]] {
|
|
5
|
+
return useActivityListenerContext().upsertedActivitiesState;
|
|
6
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useMemo, useRef, type
|
|
1
|
+
import React, { useEffect, useMemo, useRef, type ReactNode } from 'react';
|
|
2
2
|
|
|
3
3
|
import { useActivities, usePonyfill } from '../../hooks/index';
|
|
4
4
|
import useForceRender from '../../hooks/internal/useForceRender';
|
|
@@ -14,7 +14,7 @@ import isMapEqual from './private/isMapEqual';
|
|
|
14
14
|
const EXPIRY_SEND_FAILED = -Infinity;
|
|
15
15
|
const EXPIRY_SENT = Infinity;
|
|
16
16
|
|
|
17
|
-
const ActivitySendStatusComposer
|
|
17
|
+
const ActivitySendStatusComposer = ({ children }: Readonly<{ children?: ReactNode | undefined }>) => {
|
|
18
18
|
const [activities] = useActivities();
|
|
19
19
|
const [{ clearTimeout, Date, setTimeout }] = usePonyfill();
|
|
20
20
|
const forceRender = useForceRender();
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { getActivityLivestreamingMetadata, type WebChatActivity } from 'botframework-webchat-core';
|
|
2
|
+
import { iteratorFind } from 'iter-fest';
|
|
3
|
+
import React, { memo, useCallback, useMemo, type ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
import numberWithInfinity from '../../hooks/private/numberWithInfinity';
|
|
6
|
+
import usePonyfill from '../../hooks/usePonyfill';
|
|
7
|
+
import ActivityTypingContext, { ActivityTypingContextType } from './private/Context';
|
|
8
|
+
import useReduceActivities from './private/useReduceActivities';
|
|
9
|
+
import { type AllTyping } from './types/AllTyping';
|
|
10
|
+
|
|
11
|
+
type Entry = {
|
|
12
|
+
livestreamActivities: Map<
|
|
13
|
+
string,
|
|
14
|
+
{
|
|
15
|
+
activity: WebChatActivity;
|
|
16
|
+
contentful: boolean;
|
|
17
|
+
firstReceivedAt: number;
|
|
18
|
+
lastReceivedAt: number;
|
|
19
|
+
}
|
|
20
|
+
>;
|
|
21
|
+
name: string | undefined;
|
|
22
|
+
role: 'bot' | 'user';
|
|
23
|
+
typingIndicator:
|
|
24
|
+
| {
|
|
25
|
+
activity: WebChatActivity;
|
|
26
|
+
duration: number;
|
|
27
|
+
firstReceivedAt: number;
|
|
28
|
+
lastReceivedAt: number;
|
|
29
|
+
}
|
|
30
|
+
| undefined;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
type Props = Readonly<{ children?: ReactNode | undefined }>;
|
|
34
|
+
|
|
35
|
+
const ActivityTypingComposer = ({ children }: Props) => {
|
|
36
|
+
const [{ Date }] = usePonyfill();
|
|
37
|
+
|
|
38
|
+
const reducer = useCallback(
|
|
39
|
+
(
|
|
40
|
+
prevTypingState: ReadonlyMap<string, Readonly<Entry>> | undefined,
|
|
41
|
+
activity: WebChatActivity
|
|
42
|
+
): ReadonlyMap<string, Readonly<Entry>> | undefined => {
|
|
43
|
+
const {
|
|
44
|
+
from: { id, name, role },
|
|
45
|
+
type
|
|
46
|
+
} = activity;
|
|
47
|
+
|
|
48
|
+
if (role === 'channel') {
|
|
49
|
+
return prevTypingState;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// A normal message activity, or final activity (which could be "message" or "typing"), will remove the typing indicator.
|
|
53
|
+
const receivedAt = activity.channelData?.webChat?.receivedAt || Date.now();
|
|
54
|
+
|
|
55
|
+
const livestreamingMetadata = getActivityLivestreamingMetadata(activity);
|
|
56
|
+
const typingState = new Map(prevTypingState);
|
|
57
|
+
const existingEntry = typingState.get(id);
|
|
58
|
+
const mutableEntry: Entry = {
|
|
59
|
+
typingIndicator: undefined,
|
|
60
|
+
...existingEntry,
|
|
61
|
+
livestreamActivities: new Map(existingEntry?.livestreamActivities),
|
|
62
|
+
name,
|
|
63
|
+
role
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
if (livestreamingMetadata) {
|
|
67
|
+
mutableEntry.typingIndicator = undefined;
|
|
68
|
+
|
|
69
|
+
const { sessionId } = livestreamingMetadata;
|
|
70
|
+
|
|
71
|
+
if (livestreamingMetadata.type === 'final activity') {
|
|
72
|
+
mutableEntry.livestreamActivities.delete(sessionId);
|
|
73
|
+
} else {
|
|
74
|
+
mutableEntry.livestreamActivities.set(
|
|
75
|
+
sessionId,
|
|
76
|
+
Object.freeze({
|
|
77
|
+
firstReceivedAt: Date.now(),
|
|
78
|
+
...mutableEntry.livestreamActivities.get(sessionId),
|
|
79
|
+
activity,
|
|
80
|
+
contentful: livestreamingMetadata.type !== 'contentless',
|
|
81
|
+
lastReceivedAt: receivedAt
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
} else if (type === 'message') {
|
|
86
|
+
mutableEntry.typingIndicator = undefined;
|
|
87
|
+
} else if (type === 'typing') {
|
|
88
|
+
mutableEntry.typingIndicator = Object.freeze({
|
|
89
|
+
activity,
|
|
90
|
+
duration: numberWithInfinity(activity.channelData.webChat?.styleOptions?.typingAnimationDuration),
|
|
91
|
+
firstReceivedAt: mutableEntry.typingIndicator?.firstReceivedAt || Date.now(),
|
|
92
|
+
lastReceivedAt: receivedAt
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
typingState.set(id, Object.freeze(mutableEntry));
|
|
97
|
+
|
|
98
|
+
return Object.freeze(typingState);
|
|
99
|
+
},
|
|
100
|
+
[Date]
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
const state: ReadonlyMap<string, Entry> = useReduceActivities(reducer) || Object.freeze(new Map());
|
|
104
|
+
|
|
105
|
+
const allTyping = useMemo(() => {
|
|
106
|
+
const map = new Map<string, AllTyping>();
|
|
107
|
+
|
|
108
|
+
for (const [id, entry] of state.entries()) {
|
|
109
|
+
const firstContentfulLivestream = iteratorFind(
|
|
110
|
+
entry.livestreamActivities.values(),
|
|
111
|
+
({ contentful }) => contentful
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
const firstContentlessLivestream = iteratorFind(
|
|
115
|
+
entry.livestreamActivities.values(),
|
|
116
|
+
({ contentful }) => !contentful
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
if (firstContentfulLivestream) {
|
|
120
|
+
map.set(
|
|
121
|
+
id,
|
|
122
|
+
Object.freeze({
|
|
123
|
+
firstReceivedAt: firstContentfulLivestream.firstReceivedAt,
|
|
124
|
+
lastActivityDuration: Infinity,
|
|
125
|
+
lastReceivedAt: firstContentfulLivestream.lastReceivedAt,
|
|
126
|
+
name: entry.name,
|
|
127
|
+
role: entry.role,
|
|
128
|
+
type: 'livestream'
|
|
129
|
+
} satisfies AllTyping)
|
|
130
|
+
);
|
|
131
|
+
} else if (firstContentlessLivestream) {
|
|
132
|
+
map.set(
|
|
133
|
+
id,
|
|
134
|
+
Object.freeze({
|
|
135
|
+
firstReceivedAt: firstContentlessLivestream.firstReceivedAt,
|
|
136
|
+
lastActivityDuration: Infinity,
|
|
137
|
+
lastReceivedAt: firstContentlessLivestream.lastReceivedAt,
|
|
138
|
+
name: entry.name,
|
|
139
|
+
role: entry.role,
|
|
140
|
+
type: 'busy'
|
|
141
|
+
} satisfies AllTyping)
|
|
142
|
+
);
|
|
143
|
+
} else if (entry.typingIndicator) {
|
|
144
|
+
map.set(
|
|
145
|
+
id,
|
|
146
|
+
Object.freeze({
|
|
147
|
+
firstReceivedAt: entry.typingIndicator.firstReceivedAt,
|
|
148
|
+
lastActivityDuration: entry.typingIndicator.duration,
|
|
149
|
+
lastReceivedAt: entry.typingIndicator.lastReceivedAt,
|
|
150
|
+
name: entry.name,
|
|
151
|
+
role: entry.role,
|
|
152
|
+
type: 'busy'
|
|
153
|
+
} satisfies AllTyping)
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return map;
|
|
159
|
+
}, [state]);
|
|
160
|
+
|
|
161
|
+
const allTypingState = useMemo(() => Object.freeze([allTyping] as const), [allTyping]);
|
|
162
|
+
|
|
163
|
+
const context = useMemo<ActivityTypingContextType>(() => ({ allTypingState }), [allTypingState]);
|
|
164
|
+
|
|
165
|
+
return <ActivityTypingContext.Provider value={context}>{children}</ActivityTypingContext.Provider>;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
ActivityTypingComposer.displayName = 'ActivityTypingComposer';
|
|
169
|
+
|
|
170
|
+
export default memo(ActivityTypingComposer);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
import { type AllTyping } from '../types/AllTyping';
|
|
3
|
+
|
|
4
|
+
export type ActivityTypingContextType = {
|
|
5
|
+
allTypingState: readonly [ReadonlyMap<string, AllTyping>];
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const ActivityTypingContext = createContext<ActivityTypingContextType>(
|
|
9
|
+
new Proxy({} as ActivityTypingContextType, {
|
|
10
|
+
get() {
|
|
11
|
+
throw new Error('botframework-webchat internal: This hook can only be used under <ActivityTypingProvider>.');
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
export default ActivityTypingContext;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// TODO: [P1] Dedupe.
|
|
2
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
3
|
+
|
|
4
|
+
import type { DependencyList } from 'react';
|
|
5
|
+
|
|
6
|
+
export default function useMemoWithPrevious<T>(factory: (prevValue: T | undefined) => T, deps: DependencyList): T {
|
|
7
|
+
const prevValueRef = useRef<T | undefined>(undefined);
|
|
8
|
+
// We are building a `useMemo`-like hook, `deps` is passed as-is and `factory` is not one fo the dependencies.
|
|
9
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10
|
+
const value = useMemo<T>(() => factory(prevValueRef.current), deps);
|
|
11
|
+
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
prevValueRef.current = value;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return value;
|
|
17
|
+
}
|