botframework-webchat 4.13.0 → 4.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.yml +5 -104
- package/.prettierrc.yml +1 -1
- package/README.md +33 -36
- package/babel.config.json +2 -2
- package/babel.sanitize-html.config.json +10 -0
- package/lib/AddFullBundle.d.ts +30 -0
- package/lib/AddFullBundle.d.ts.map +1 -0
- package/lib/AddFullBundle.js +76 -0
- package/lib/FullComposer.d.ts +8 -0
- package/lib/FullComposer.d.ts.map +1 -0
- package/lib/FullComposer.js +6 -16
- package/lib/FullReactWebChat.d.ts +8 -0
- package/lib/FullReactWebChat.d.ts.map +1 -0
- package/lib/FullReactWebChat.js +8 -23
- package/lib/adaptiveCards/AdaptiveCardsComposer.d.ts +10 -0
- package/lib/adaptiveCards/AdaptiveCardsComposer.d.ts.map +1 -0
- package/lib/adaptiveCards/AdaptiveCardsComposer.js +6 -2
- package/lib/adaptiveCards/AdaptiveCardsContext.d.ts +8 -0
- package/lib/adaptiveCards/AdaptiveCardsContext.d.ts.map +1 -0
- package/lib/adaptiveCards/AdaptiveCardsContext.js +3 -3
- package/lib/adaptiveCards/AdaptiveCardsStyleOptions.d.ts +5 -3
- package/lib/adaptiveCards/AdaptiveCardsStyleOptions.d.ts.map +1 -1
- package/lib/adaptiveCards/AdaptiveCardsStyleSet.d.ts +7 -0
- package/lib/adaptiveCards/AdaptiveCardsStyleSet.d.ts.map +1 -0
- package/lib/{FullBundleStyleOptions.js → adaptiveCards/AdaptiveCardsStyleSet.js} +0 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.d.ts +9 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.js +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.d.ts +28 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.js +13 -6
- package/lib/adaptiveCards/Attachment/AdaptiveCardContent.d.ts +9 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardContent.js +8 -4
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts +12 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.js +310 -85
- package/lib/adaptiveCards/Attachment/AnimationCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/AnimationCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AnimationCardContent.js +1 -1
- package/lib/adaptiveCards/Attachment/AudioCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/AudioCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/AudioCardContent.js +1 -1
- package/lib/adaptiveCards/Attachment/CommonCard.js +11 -6
- package/lib/adaptiveCards/Attachment/HeroCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/HeroCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/HeroCardContent.js +11 -6
- package/lib/adaptiveCards/Attachment/OAuthCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/OAuthCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/OAuthCardContent.js +11 -6
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.js +11 -6
- package/lib/adaptiveCards/Attachment/SignInCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/SignInCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/SignInCardContent.js +1 -1
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.d.ts +10 -0
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.js +11 -6
- package/lib/adaptiveCards/Attachment/VideoCardContent.d.ts +20 -0
- package/lib/adaptiveCards/Attachment/VideoCardContent.d.ts.map +1 -0
- package/lib/adaptiveCards/Attachment/VideoCardContent.js +7 -5
- package/lib/adaptiveCards/AttachmentForScreenReader/AdaptiveCardAttachment.js +7 -3
- package/lib/adaptiveCards/AttachmentForScreenReader/RichCardAttachment.js +1 -1
- package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.d.ts +59 -0
- package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.d.ts.map +1 -0
- package/lib/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.js +8 -1
- package/lib/adaptiveCards/Styles/adaptiveCardHostConfig.d.ts +126 -0
- package/lib/adaptiveCards/Styles/adaptiveCardHostConfig.d.ts.map +1 -0
- package/lib/adaptiveCards/Styles/adaptiveCardHostConfig.js +29 -9
- package/lib/adaptiveCards/Styles/createAdaptiveCardsStyleSet.d.ts +5 -0
- package/lib/adaptiveCards/Styles/createAdaptiveCardsStyleSet.d.ts.map +1 -0
- package/lib/adaptiveCards/Styles/createAdaptiveCardsStyleSet.js +2 -2
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentForScreenReaderMiddleware.d.ts +3 -0
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentForScreenReaderMiddleware.d.ts.map +1 -0
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentForScreenReaderMiddleware.js +5 -11
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.d.ts +3 -0
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.d.ts.map +1 -0
- package/lib/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.js +2 -15
- package/lib/adaptiveCards/defaultStyleOptions.d.ts +4 -0
- package/lib/adaptiveCards/defaultStyleOptions.d.ts.map +1 -0
- package/lib/adaptiveCards/defaultStyleOptions.js +3 -2
- package/lib/adaptiveCards/hooks/internal/useAdaptiveCardsContext.d.ts +3 -0
- package/lib/adaptiveCards/hooks/internal/useAdaptiveCardsContext.d.ts.map +1 -0
- package/lib/adaptiveCards/hooks/internal/useAdaptiveCardsContext.js +1 -1
- package/lib/adaptiveCards/hooks/internal/useParseAdaptiveCardJSON.d.ts +2 -0
- package/lib/adaptiveCards/hooks/internal/useParseAdaptiveCardJSON.d.ts.map +1 -0
- package/lib/adaptiveCards/hooks/internal/useParseAdaptiveCardJSON.js +7 -5
- package/lib/adaptiveCards/hooks/internal/useUniqueId.js +1 -1
- package/lib/adaptiveCards/hooks/useAdaptiveCardsHostConfig.d.ts +2 -0
- package/lib/adaptiveCards/hooks/useAdaptiveCardsHostConfig.d.ts.map +1 -0
- package/lib/adaptiveCards/hooks/useAdaptiveCardsHostConfig.js +3 -5
- package/lib/adaptiveCards/hooks/useAdaptiveCardsPackage.d.ts +3 -0
- package/lib/adaptiveCards/hooks/useAdaptiveCardsPackage.d.ts.map +1 -0
- package/lib/adaptiveCards/hooks/useAdaptiveCardsPackage.js +1 -1
- package/lib/adaptiveCards/normalizeStyleOptions.d.ts +3 -0
- package/lib/adaptiveCards/normalizeStyleOptions.d.ts.map +1 -0
- package/lib/adaptiveCards/normalizeStyleOptions.js +1 -1
- package/lib/addVersion.js +2 -2
- package/lib/createBrowserWebSpeechPonyfillFactory.d.ts +3 -0
- package/lib/createBrowserWebSpeechPonyfillFactory.d.ts.map +1 -0
- package/lib/createBrowserWebSpeechPonyfillFactory.js +7 -4
- package/lib/createCognitiveServicesSpeechServicesPonyfillFactory.d.ts +17 -0
- package/lib/createCognitiveServicesSpeechServicesPonyfillFactory.d.ts.map +1 -0
- package/lib/createCognitiveServicesSpeechServicesPonyfillFactory.js +17 -11
- package/lib/createDirectLine.d.ts +17 -0
- package/lib/createDirectLine.d.ts.map +1 -0
- package/lib/createDirectLine.js +3 -2
- package/lib/createDirectLineAppServiceExtension.d.ts +7 -0
- package/lib/createDirectLineAppServiceExtension.d.ts.map +1 -0
- package/lib/createDirectLineAppServiceExtension.js +1 -1
- package/lib/createDirectLineSpeechAdapters.d.ts +25 -0
- package/lib/createDirectLineSpeechAdapters.d.ts.map +1 -0
- package/lib/createDirectLineSpeechAdapters.js +57 -3
- package/lib/createFullStyleSet.d.ts +1375 -0
- package/lib/createFullStyleSet.d.ts.map +1 -0
- package/lib/createFullStyleSet.js +2 -2
- package/lib/fullBundleDefaultStyleOptions.js +4 -4
- package/lib/hooks/useStyleOptions.d.ts +3 -0
- package/lib/hooks/useStyleOptions.d.ts.map +1 -0
- package/lib/hooks/useStyleOptions.js +21 -0
- package/lib/index-es5.d.ts +4 -20
- package/lib/index-es5.d.ts.map +1 -1
- package/lib/index-es5.js +3 -43
- package/lib/index-minimal.d.ts +9 -6
- package/lib/index-minimal.d.ts.map +1 -1
- package/lib/index-minimal.js +27 -21
- package/lib/index.d.ts +164 -18
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -12
- package/lib/polyfill.d.ts +23 -0
- package/lib/polyfill.d.ts.map +1 -0
- package/lib/polyfill.js +46 -0
- package/lib/renderMarkdown.d.ts +6 -0
- package/lib/renderMarkdown.d.ts.map +1 -0
- package/lib/renderMarkdown.js +36 -5
- package/lib/renderWebChat.d.ts +3 -0
- package/lib/renderWebChat.d.ts.map +1 -0
- package/lib/renderWebChat.js +1 -1
- package/lib/speech/CustomAudioInputStream.d.ts +94 -0
- package/lib/speech/CustomAudioInputStream.d.ts.map +1 -0
- package/lib/speech/CustomAudioInputStream.js +441 -0
- package/lib/speech/bytesPerSample.d.ts +2 -0
- package/lib/speech/bytesPerSample.d.ts.map +1 -0
- package/lib/speech/bytesPerSample.js +12 -0
- package/lib/speech/createAudioConfig.d.ts +23 -0
- package/lib/speech/createAudioConfig.d.ts.map +1 -0
- package/lib/speech/createAudioConfig.js +90 -0
- package/lib/speech/createAudioContext.d.ts +3 -0
- package/lib/speech/createAudioContext.d.ts.map +1 -0
- package/lib/speech/createAudioContext.js +22 -0
- package/lib/speech/createMicrophoneAudioConfigAndAudioContext.d.ts +9 -0
- package/lib/speech/createMicrophoneAudioConfigAndAudioContext.d.ts.map +1 -0
- package/lib/speech/createMicrophoneAudioConfigAndAudioContext.js +161 -0
- package/lib/speech/getUserMedia.d.ts +2 -0
- package/lib/speech/getUserMedia.d.ts.map +1 -0
- package/lib/speech/getUserMedia.js +25 -0
- package/lib/types/AdaptiveCardsPackage.d.ts +13 -0
- package/lib/types/AdaptiveCardsPackage.d.ts.map +1 -0
- package/lib/types/AdaptiveCardsPackage.js +2 -0
- package/lib/types/CognitiveServicesAudioOutputFormat.d.ts +3 -0
- package/lib/types/CognitiveServicesAudioOutputFormat.d.ts.map +1 -0
- package/lib/types/CognitiveServicesAudioOutputFormat.js +2 -0
- package/lib/types/CognitiveServicesCredentials.d.ts +18 -0
- package/lib/types/CognitiveServicesCredentials.d.ts.map +1 -0
- package/lib/types/CognitiveServicesCredentials.js +2 -0
- package/lib/types/CognitiveServicesTextNormalization.d.ts +3 -0
- package/lib/types/CognitiveServicesTextNormalization.d.ts.map +1 -0
- package/lib/types/CognitiveServicesTextNormalization.js +2 -0
- package/lib/{FullBundleStyleOptions.d.ts → types/FullBundleStyleOptions.d.ts} +1 -1
- package/lib/types/FullBundleStyleOptions.d.ts.map +1 -0
- package/lib/types/FullBundleStyleOptions.js +2 -0
- package/lib/useComposerProps.d.ts +22 -0
- package/lib/useComposerProps.d.ts.map +1 -0
- package/lib/useComposerProps.js +6 -8
- package/package.json +46 -48
- package/src/AddFullBundle.tsx +93 -0
- package/src/FullComposer.tsx +38 -0
- package/src/FullReactWebChat.tsx +32 -0
- package/src/__tests__/createDirectLine.spec.js +2 -0
- package/src/__tests__/renderMarkdown.spec.js +1 -1
- package/src/__tests__/versionTag.es5.spec.js +3 -0
- package/src/__tests__/versionTag.full.spec.js +3 -0
- package/src/__tests__/versionTag.minimal.spec.js +3 -0
- package/src/adaptiveCards/{AdaptiveCardsComposer.js → AdaptiveCardsComposer.tsx} +17 -5
- package/src/adaptiveCards/AdaptiveCardsContext.ts +12 -0
- package/src/adaptiveCards/AdaptiveCardsStyleOptions.ts +5 -3
- package/src/adaptiveCards/AdaptiveCardsStyleSet.ts +7 -0
- package/src/adaptiveCards/Attachment/{AdaptiveCardAttachment.js → AdaptiveCardAttachment.tsx} +8 -2
- package/src/adaptiveCards/Attachment/AdaptiveCardBuilder.ts +27 -17
- package/src/adaptiveCards/Attachment/{AdaptiveCardContent.js → AdaptiveCardContent.tsx} +8 -2
- package/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx +768 -0
- package/src/adaptiveCards/Attachment/{AnimationCardContent.js → AnimationCardContent.tsx} +9 -2
- package/src/adaptiveCards/Attachment/{AudioCardContent.js → AudioCardContent.tsx} +9 -2
- package/src/adaptiveCards/Attachment/CommonCard.js +2 -1
- package/src/adaptiveCards/Attachment/{HeroCardContent.js → HeroCardContent.tsx} +12 -3
- package/src/adaptiveCards/Attachment/{OAuthCardContent.js → OAuthCardContent.tsx} +11 -3
- package/src/adaptiveCards/Attachment/{ReceiptCardContent.js → ReceiptCardContent.tsx} +58 -28
- package/src/adaptiveCards/Attachment/{SignInCardContent.js → SignInCardContent.tsx} +9 -2
- package/src/adaptiveCards/Attachment/{ThumbnailCardContent.js → ThumbnailCardContent.tsx} +12 -3
- package/src/adaptiveCards/Attachment/{VideoCardContent.js → VideoCardContent.tsx} +15 -3
- package/src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts +9 -1
- package/src/adaptiveCards/Styles/adaptiveCardHostConfig.ts +28 -8
- package/src/adaptiveCards/Styles/createAdaptiveCardsStyleSet.spec.js +2 -0
- package/src/adaptiveCards/Styles/createAdaptiveCardsStyleSet.ts +7 -4
- package/src/adaptiveCards/{createAdaptiveCardsAttachmentForScreenReaderMiddleware.js → createAdaptiveCardsAttachmentForScreenReaderMiddleware.tsx} +16 -15
- package/src/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.tsx +44 -0
- package/src/adaptiveCards/defaultStyleOptions.ts +2 -1
- package/src/adaptiveCards/hooks/internal/{useAdaptiveCardsContext.js → useAdaptiveCardsContext.ts} +1 -1
- package/src/adaptiveCards/hooks/internal/{useParseAdaptiveCardJSON.js → useParseAdaptiveCardJSON.ts} +5 -2
- package/src/adaptiveCards/hooks/internal/{useUniqueId.js → useUniqueId.ts} +1 -1
- package/src/adaptiveCards/hooks/{useAdaptiveCardsHostConfig.js → useAdaptiveCardsHostConfig.ts} +6 -8
- package/src/adaptiveCards/hooks/{useAdaptiveCardsPackage.js → useAdaptiveCardsPackage.ts} +2 -1
- package/src/createBrowserWebSpeechPonyfillFactory.ts +21 -0
- package/src/createCognitiveServicesSpeechServicesPonyfillFactory.spec.js +36 -6
- package/src/createCognitiveServicesSpeechServicesPonyfillFactory.ts +78 -0
- package/src/createDirectLine.ts +65 -0
- package/src/createDirectLineAppServiceExtension.ts +22 -0
- package/src/createDirectLineSpeechAdapters.ts +84 -0
- package/src/createFullStyleSet.ts +2 -2
- package/src/fullBundleDefaultStyleOptions.ts +3 -3
- package/src/hooks/useStyleOptions.ts +9 -0
- package/src/index-es5.ts +3 -28
- package/src/index-minimal.ts +3 -2
- package/src/index.ts +22 -10
- package/src/polyfill.ts +29 -0
- package/src/renderMarkdown.ts +140 -0
- package/src/renderWebChat.tsx +6 -0
- package/src/speech/CustomAudioInputStream.ts +356 -0
- package/src/speech/bytesPerSample.ts +4 -0
- package/src/speech/createAudioConfig.spec.js +23 -0
- package/src/speech/createAudioConfig.ts +77 -0
- package/src/speech/createAudioContext.ts +16 -0
- package/src/speech/createMicrophoneAudioConfigAndAudioContext.ts +146 -0
- package/src/speech/getUserMedia.ts +14 -0
- package/src/tsconfig.json +1 -1
- package/src/types/AdaptiveCardsPackage.ts +23 -0
- package/src/types/CognitiveServicesAudioOutputFormat.ts +28 -0
- package/src/types/CognitiveServicesCredentials.ts +28 -0
- package/src/types/CognitiveServicesTextNormalization.ts +3 -0
- package/src/{FullBundleStyleOptions.ts → types/FullBundleStyleOptions.ts} +1 -1
- package/src/{useComposerProps.js → useComposerProps.ts} +21 -11
- package/webpack.config.js +46 -6
- package/.eslintignore +0 -9
- package/lib/FullBundleStyleOptions.d.ts.map +0 -1
- package/src/FullComposer.js +0 -40
- package/src/FullReactWebChat.js +0 -47
- package/src/adaptiveCards/AdaptiveCardsContext.js +0 -5
- package/src/adaptiveCards/Attachment/AdaptiveCardRenderer.js +0 -492
- package/src/adaptiveCards/createAdaptiveCardsAttachmentMiddleware.js +0 -41
- package/src/createBrowserWebSpeechPonyfillFactory.js +0 -16
- package/src/createCognitiveServicesSpeechServicesPonyfillFactory.js +0 -58
- package/src/createDirectLine.js +0 -38
- package/src/createDirectLineAppServiceExtension.js +0 -12
- package/src/createDirectLineSpeechAdapters.js +0 -5
- package/src/index-es5.tsx +0 -49
- package/src/index-minimal.tsx +0 -9
- package/src/index.tsx +0 -45
- package/src/renderMarkdown.js +0 -97
- package/src/renderWebChat.js +0 -6
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
/* eslint react/no-array-index-key: "off" */
|
|
2
2
|
|
|
3
|
+
import { DirectLineAnimationCard } from 'botframework-webchat-core';
|
|
3
4
|
import { Components, hooks } from 'botframework-webchat-component';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React from 'react';
|
|
6
|
+
import React, { FC } from 'react';
|
|
6
7
|
|
|
7
8
|
import CommonCard from './CommonCard';
|
|
8
9
|
|
|
9
10
|
const { ImageContent, VideoContent } = Components;
|
|
10
11
|
const { useStyleSet } = hooks;
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
type AnimationCardContentProps = {
|
|
14
|
+
actionPerformedClassName?: string;
|
|
15
|
+
content: DirectLineAnimationCard;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const AnimationCardContent: FC<AnimationCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
13
20
|
const { media = [] } = content;
|
|
14
21
|
const [{ animationCardAttachment: animationCardAttachmentStyleSet }] = useStyleSet();
|
|
15
22
|
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
/* eslint react/no-array-index-key: "off" */
|
|
2
2
|
|
|
3
|
+
import { DirectLineAudioCard } from 'botframework-webchat-core';
|
|
3
4
|
import { Components, hooks } from 'botframework-webchat-component';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React from 'react';
|
|
6
|
+
import React, { FC } from 'react';
|
|
6
7
|
|
|
7
8
|
import CommonCard from './CommonCard';
|
|
8
9
|
|
|
9
10
|
const { AudioContent } = Components;
|
|
10
11
|
const { useStyleSet } = hooks;
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
type AudioCardContentProps = {
|
|
14
|
+
actionPerformedClassName?: string;
|
|
15
|
+
content: DirectLineAudioCard;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const AudioCardContent: FC<AudioCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
13
20
|
const [{ audioCardAttachment: audioCardAttachmentStyleSet }] = useStyleSet();
|
|
14
21
|
const { autostart = false, autoloop = false, image: { url: imageURL = '' } = {}, media = [] } = content;
|
|
15
22
|
|
|
@@ -6,8 +6,9 @@ import { hooks } from 'botframework-webchat-component';
|
|
|
6
6
|
import AdaptiveCardBuilder from './AdaptiveCardBuilder';
|
|
7
7
|
import AdaptiveCardRenderer from './AdaptiveCardRenderer';
|
|
8
8
|
import useAdaptiveCardsPackage from '../hooks/useAdaptiveCardsPackage';
|
|
9
|
+
import useStyleOptions from '../../hooks/useStyleOptions';
|
|
9
10
|
|
|
10
|
-
const { useDirection
|
|
11
|
+
const { useDirection } = hooks;
|
|
11
12
|
|
|
12
13
|
const CommonCard = ({ actionPerformedClassName, content, disabled }) => {
|
|
13
14
|
const [adaptiveCardsPackage] = useAdaptiveCardsPackage();
|
|
@@ -1,17 +1,26 @@
|
|
|
1
|
+
import { DirectLineHeroCard } from 'botframework-webchat-core';
|
|
1
2
|
import { hooks } from 'botframework-webchat-component';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
|
-
import React, { useMemo } from 'react';
|
|
4
|
+
import React, { FC, useMemo } from 'react';
|
|
4
5
|
|
|
5
6
|
import AdaptiveCardBuilder from './AdaptiveCardBuilder';
|
|
6
7
|
import AdaptiveCardRenderer from './AdaptiveCardRenderer';
|
|
7
8
|
import useAdaptiveCardsPackage from '../hooks/useAdaptiveCardsPackage';
|
|
9
|
+
import useStyleOptions from '../../hooks/useStyleOptions';
|
|
8
10
|
|
|
9
|
-
const { useDirection
|
|
11
|
+
const { useDirection } = hooks;
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
type HeroCardContentProps = {
|
|
14
|
+
actionPerformedClassName?: string;
|
|
15
|
+
content: DirectLineHeroCard;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const HeroCardContent: FC<HeroCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
12
20
|
const [adaptiveCardsPackage] = useAdaptiveCardsPackage();
|
|
13
21
|
const [styleOptions] = useStyleOptions();
|
|
14
22
|
const [direction] = useDirection();
|
|
23
|
+
|
|
15
24
|
const builtCard = useMemo(() => {
|
|
16
25
|
const builder = new AdaptiveCardBuilder(adaptiveCardsPackage, styleOptions, direction);
|
|
17
26
|
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
import { DirectLineOAuthCard } from 'botframework-webchat-core';
|
|
1
2
|
import { hooks } from 'botframework-webchat-component';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
|
-
import React, { useMemo } from 'react';
|
|
4
|
+
import React, { FC, useMemo } from 'react';
|
|
4
5
|
|
|
5
6
|
import AdaptiveCardBuilder from './AdaptiveCardBuilder';
|
|
6
7
|
import AdaptiveCardRenderer from './AdaptiveCardRenderer';
|
|
7
8
|
import useAdaptiveCardsPackage from '../hooks/useAdaptiveCardsPackage';
|
|
9
|
+
import useStyleOptions from '../../hooks/useStyleOptions';
|
|
8
10
|
|
|
9
|
-
const { useDirection
|
|
11
|
+
const { useDirection } = hooks;
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
type OAuthCardContentProps = {
|
|
14
|
+
actionPerformedClassName?: string;
|
|
15
|
+
content: DirectLineOAuthCard;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const OAuthCardContent: FC<OAuthCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
12
20
|
const [adaptiveCardsPackage] = useAdaptiveCardsPackage();
|
|
13
21
|
const [direction] = useDirection();
|
|
14
22
|
const [styleOptions] = useStyleOptions();
|
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
/* eslint no-magic-numbers: ["error", { "ignore": [0, 1, 10, 15, 25, 50, 75] }] */
|
|
2
2
|
|
|
3
|
+
import { DirectLineReceiptCard } from 'botframework-webchat-core';
|
|
3
4
|
import { hooks } from 'botframework-webchat-component';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React, { useMemo } from 'react';
|
|
6
|
+
import React, { FC, useMemo } from 'react';
|
|
6
7
|
|
|
7
8
|
import AdaptiveCardBuilder from './AdaptiveCardBuilder';
|
|
8
9
|
import AdaptiveCardRenderer from './AdaptiveCardRenderer';
|
|
9
10
|
import useAdaptiveCardsPackage from '../hooks/useAdaptiveCardsPackage';
|
|
11
|
+
import useStyleOptions from '../../hooks/useStyleOptions';
|
|
10
12
|
|
|
11
|
-
const { useDirection, useLocalizer
|
|
13
|
+
const { useDirection, useLocalizer } = hooks;
|
|
12
14
|
|
|
13
15
|
function nullOrUndefined(obj) {
|
|
14
16
|
return obj === null || typeof obj === 'undefined';
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
type ReceiptCardContentProps = {
|
|
20
|
+
actionPerformedClassName?: string;
|
|
21
|
+
content: DirectLineReceiptCard;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const ReceiptCardContent: FC<ReceiptCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
18
26
|
const [adaptiveCardsPackage] = useAdaptiveCardsPackage();
|
|
19
27
|
const [direction] = useDirection();
|
|
20
28
|
const [styleOptions] = useStyleOptions();
|
|
@@ -47,32 +55,54 @@ const ReceiptCardContent = ({ actionPerformedClassName, content, disabled }) =>
|
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
items &&
|
|
50
|
-
items.map(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
58
|
+
items.map(
|
|
59
|
+
({
|
|
60
|
+
image: { alt, tap: imageTap, url } = {},
|
|
61
|
+
price,
|
|
62
|
+
quantity,
|
|
63
|
+
subtitle,
|
|
64
|
+
tap,
|
|
65
|
+
text,
|
|
66
|
+
title
|
|
67
|
+
}: {
|
|
68
|
+
image: {
|
|
69
|
+
alt?: string;
|
|
70
|
+
tap?: any;
|
|
71
|
+
url?: string;
|
|
72
|
+
};
|
|
73
|
+
price: string;
|
|
74
|
+
quantity: string;
|
|
75
|
+
subtitle: string;
|
|
76
|
+
tap: any;
|
|
77
|
+
text: string;
|
|
78
|
+
title: string;
|
|
79
|
+
}) => {
|
|
80
|
+
let itemColumns;
|
|
81
|
+
|
|
82
|
+
if (url) {
|
|
83
|
+
const [itemImageColumn, ...columns] = builder.addColumnSet([15, 75, 10]);
|
|
84
|
+
|
|
85
|
+
itemColumns = columns;
|
|
86
|
+
builder.addImage(url, itemImageColumn, imageTap, alt);
|
|
87
|
+
} else {
|
|
88
|
+
itemColumns = builder.addColumnSet([75, 25], undefined, tap && tap);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const [itemTitleColumn, itemPriceColumn] = itemColumns;
|
|
92
|
+
|
|
93
|
+
builder.addTextBlock(
|
|
94
|
+
quantity ? `${title} × ${quantity}` : title,
|
|
95
|
+
{ size: TextSize.Medium, weight: TextWeight.Bolder, wrap: richCardWrapTitle },
|
|
96
|
+
itemTitleColumn
|
|
97
|
+
);
|
|
98
|
+
builder.addTextBlock(subtitle, { size: TextSize.Medium, wrap: richCardWrapTitle }, itemTitleColumn);
|
|
99
|
+
builder.addTextBlock(price, { horizontalAlignment: HorizontalAlignment.Right }, itemPriceColumn);
|
|
100
|
+
|
|
101
|
+
if (text) {
|
|
102
|
+
builder.addTextBlock(text, { size: TextSize.Medium, wrap: richCardWrapTitle }, itemTitleColumn);
|
|
103
|
+
}
|
|
74
104
|
}
|
|
75
|
-
|
|
105
|
+
);
|
|
76
106
|
|
|
77
107
|
if (!nullOrUndefined(vat)) {
|
|
78
108
|
const vatCol = builder.addColumnSet([75, 25]);
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import { DirectLineSignInCard } from 'botframework-webchat-core';
|
|
1
2
|
import { hooks } from 'botframework-webchat-component';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
|
-
import React from 'react';
|
|
4
|
+
import React, { FC } from 'react';
|
|
4
5
|
|
|
5
6
|
import CommonCard from './CommonCard';
|
|
6
7
|
|
|
7
8
|
const { useStyleSet } = hooks;
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
type SignInCardContentProps = {
|
|
11
|
+
actionPerformedClassName?: string;
|
|
12
|
+
content: DirectLineSignInCard;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const SignInCardContent: FC<SignInCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
10
17
|
const [{ animationCardAttachment: animationCardAttachmentStyleSet }] = useStyleSet();
|
|
11
18
|
|
|
12
19
|
return (
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
/* eslint no-magic-numbers: ["error", { "ignore": [25, 75] }] */
|
|
2
2
|
|
|
3
|
+
import { DirectLineThumbnailCard } from 'botframework-webchat-core';
|
|
3
4
|
import { hooks } from 'botframework-webchat-component';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React, { useMemo } from 'react';
|
|
6
|
+
import React, { FC, useMemo } from 'react';
|
|
6
7
|
|
|
7
8
|
import AdaptiveCardBuilder from './AdaptiveCardBuilder';
|
|
8
9
|
import AdaptiveCardRenderer from './AdaptiveCardRenderer';
|
|
9
10
|
import useAdaptiveCardsPackage from '../hooks/useAdaptiveCardsPackage';
|
|
11
|
+
import useStyleOptions from '../../hooks/useStyleOptions';
|
|
10
12
|
|
|
11
|
-
const { useDirection
|
|
13
|
+
const { useDirection } = hooks;
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
type ThumbnailCardContentProps = {
|
|
16
|
+
actionPerformedClassName?: string;
|
|
17
|
+
content: DirectLineThumbnailCard;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const ThumbnailCardContent: FC<ThumbnailCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
14
22
|
const [adaptiveCardsPackage] = useAdaptiveCardsPackage();
|
|
15
23
|
const [direction] = useDirection();
|
|
16
24
|
const [styleOptions] = useStyleOptions();
|
|
25
|
+
|
|
17
26
|
const builtCard = useMemo(() => {
|
|
18
27
|
if (content) {
|
|
19
28
|
const builder = new AdaptiveCardBuilder(adaptiveCardsPackage, styleOptions, direction);
|
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
/* eslint react/no-array-index-key: "off" */
|
|
2
2
|
|
|
3
|
+
import { DirectLineVideoCard } from 'botframework-webchat-core';
|
|
3
4
|
import { Components, hooks } from 'botframework-webchat-component';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React from 'react';
|
|
6
|
+
import React, { FC } from 'react';
|
|
6
7
|
|
|
7
8
|
import CommonCard from './CommonCard';
|
|
8
9
|
|
|
9
10
|
const { useStyleSet } = hooks;
|
|
10
11
|
const { VideoContent } = Components;
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
type VideoCardContentProps = {
|
|
14
|
+
actionPerformedClassName?: string;
|
|
15
|
+
content: DirectLineVideoCard & {
|
|
16
|
+
autoloop?: boolean;
|
|
17
|
+
autostart?: boolean;
|
|
18
|
+
image?: { url?: string };
|
|
19
|
+
media?: { profile?: string; url?: string }[];
|
|
20
|
+
};
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const VideoCardContent: FC<VideoCardContentProps> = ({ actionPerformedClassName, content, disabled }) => {
|
|
25
|
+
const { autoloop, autostart, image: { url: imageURL } = { url: undefined }, media } = content;
|
|
14
26
|
const [{ audioCardAttachment: audioCardAttachmentStyleSet }] = useStyleSet();
|
|
15
27
|
|
|
16
28
|
return (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import FullBundleStyleOptions from '../../../FullBundleStyleOptions';
|
|
1
|
+
import FullBundleStyleOptions from '../../../types/FullBundleStyleOptions';
|
|
2
2
|
|
|
3
3
|
export default function ({
|
|
4
4
|
cardPushButtonBackgroundColor,
|
|
@@ -9,6 +9,14 @@ export default function ({
|
|
|
9
9
|
}: FullBundleStyleOptions) {
|
|
10
10
|
return {
|
|
11
11
|
'&.webchat__adaptive-card-renderer': {
|
|
12
|
+
// Related to #4075.
|
|
13
|
+
// Adaptive Cards assume its host is in "forced border-box" mode.
|
|
14
|
+
// In CSS, the default is "content-box" mode.
|
|
15
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing#values
|
|
16
|
+
'& *': {
|
|
17
|
+
boxSizing: 'border-box'
|
|
18
|
+
},
|
|
19
|
+
|
|
12
20
|
'& .ac-input, & .ac-inlineActionButton, & .ac-quickActionButton': {
|
|
13
21
|
fontFamily: primaryFont
|
|
14
22
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { normalizeStyleOptions } from 'botframework-webchat-api';
|
|
2
2
|
|
|
3
|
-
import FullBundleStyleOptions from '../../FullBundleStyleOptions';
|
|
3
|
+
import FullBundleStyleOptions from '../../types/FullBundleStyleOptions';
|
|
4
4
|
import normalizeAdaptiveCardsStyleOptions from '../normalizeStyleOptions';
|
|
5
5
|
|
|
6
6
|
// https://docs.microsoft.com/en-us/adaptive-cards/rendering-cards/host-config
|
|
@@ -21,7 +21,27 @@ export default function createAdaptiveCardsHostConfig(styleOptions: FullBundleSt
|
|
|
21
21
|
},
|
|
22
22
|
accent: {
|
|
23
23
|
default: accent,
|
|
24
|
-
subtle:
|
|
24
|
+
subtle: '#0078D4'
|
|
25
|
+
},
|
|
26
|
+
attention: {
|
|
27
|
+
default: '#D13438',
|
|
28
|
+
subtle: '#A4262C'
|
|
29
|
+
},
|
|
30
|
+
dark: {
|
|
31
|
+
default: '#000000',
|
|
32
|
+
subtle: '#646464'
|
|
33
|
+
},
|
|
34
|
+
good: {
|
|
35
|
+
default: '#0B6A0B',
|
|
36
|
+
subtle: '#028A02'
|
|
37
|
+
},
|
|
38
|
+
light: {
|
|
39
|
+
default: '#FFFFFF',
|
|
40
|
+
subtle
|
|
41
|
+
},
|
|
42
|
+
warning: {
|
|
43
|
+
default: '#B75C00',
|
|
44
|
+
subtle: '#986F0B'
|
|
25
45
|
}
|
|
26
46
|
}
|
|
27
47
|
},
|
|
@@ -29,8 +49,8 @@ export default function createAdaptiveCardsHostConfig(styleOptions: FullBundleSt
|
|
|
29
49
|
backgroundColor: cardEmphasisBackgroundColor,
|
|
30
50
|
foregroundColors: {
|
|
31
51
|
default: {
|
|
32
|
-
default:
|
|
33
|
-
subtle
|
|
52
|
+
default: '#000000',
|
|
53
|
+
subtle: '#484644'
|
|
34
54
|
}
|
|
35
55
|
}
|
|
36
56
|
},
|
|
@@ -39,7 +59,7 @@ export default function createAdaptiveCardsHostConfig(styleOptions: FullBundleSt
|
|
|
39
59
|
foregroundColors: {
|
|
40
60
|
default: {
|
|
41
61
|
default: '#333333',
|
|
42
|
-
subtle: '#
|
|
62
|
+
subtle: '#484644'
|
|
43
63
|
}
|
|
44
64
|
}
|
|
45
65
|
},
|
|
@@ -48,7 +68,7 @@ export default function createAdaptiveCardsHostConfig(styleOptions: FullBundleSt
|
|
|
48
68
|
foregroundColors: {
|
|
49
69
|
default: {
|
|
50
70
|
default: '#333333',
|
|
51
|
-
subtle: '#
|
|
71
|
+
subtle: '#484644'
|
|
52
72
|
}
|
|
53
73
|
}
|
|
54
74
|
},
|
|
@@ -57,7 +77,7 @@ export default function createAdaptiveCardsHostConfig(styleOptions: FullBundleSt
|
|
|
57
77
|
foregroundColors: {
|
|
58
78
|
default: {
|
|
59
79
|
default: '#333333',
|
|
60
|
-
subtle: '#
|
|
80
|
+
subtle: '#484644'
|
|
61
81
|
}
|
|
62
82
|
}
|
|
63
83
|
},
|
|
@@ -66,7 +86,7 @@ export default function createAdaptiveCardsHostConfig(styleOptions: FullBundleSt
|
|
|
66
86
|
foregroundColors: {
|
|
67
87
|
default: {
|
|
68
88
|
default: '#333333',
|
|
69
|
-
subtle: '#
|
|
89
|
+
subtle: '#484644'
|
|
70
90
|
}
|
|
71
91
|
}
|
|
72
92
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { normalizeStyleOptions, StyleOptions } from 'botframework-webchat-api';
|
|
1
|
+
import { normalizeStyleOptions, StrictStyleOptions, StyleOptions } from 'botframework-webchat-api';
|
|
2
2
|
|
|
3
|
-
import AdaptiveCardsStyleOptions from '../AdaptiveCardsStyleOptions';
|
|
3
|
+
import AdaptiveCardsStyleOptions, { StrictAdaptiveCardsStyleOptions } from '../AdaptiveCardsStyleOptions';
|
|
4
|
+
import AdaptiveCardsStyleSet from '../AdaptiveCardsStyleSet';
|
|
4
5
|
import createAdaptiveCardRendererStyle from './StyleSet/AdaptiveCardRenderer';
|
|
5
6
|
import createAnimationCardAttachmentStyle from './StyleSet/AnimationCardAttachment';
|
|
6
7
|
import createAudioCardAttachmentStyle from './StyleSet/AudioCardAttachment';
|
|
@@ -10,8 +11,10 @@ import normalizeAdaptiveCardsStyleOptions from '../normalizeStyleOptions';
|
|
|
10
11
|
// "styleSet" is actually CSS stylesheet and it is based on the DOM tree.
|
|
11
12
|
// DOM tree may change from time to time, thus, maintaining "styleSet" becomes a constant effort.
|
|
12
13
|
|
|
13
|
-
export default function createAdaptiveCardsStyleSet(
|
|
14
|
-
|
|
14
|
+
export default function createAdaptiveCardsStyleSet(
|
|
15
|
+
options: StyleOptions & AdaptiveCardsStyleOptions
|
|
16
|
+
): AdaptiveCardsStyleSet {
|
|
17
|
+
const strictOptions: StrictStyleOptions & StrictAdaptiveCardsStyleOptions = {
|
|
15
18
|
...normalizeStyleOptions(options),
|
|
16
19
|
...normalizeAdaptiveCardsStyleOptions(options)
|
|
17
20
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AttachmentForScreenReaderMiddleware } from 'botframework-webchat-api';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
|
|
3
4
|
import AdaptiveCardAttachment from './AttachmentForScreenReader/AdaptiveCardAttachment';
|
|
@@ -14,20 +15,20 @@ const RICH_CARD_CONTENT_TYPES = [
|
|
|
14
15
|
'application/vnd.microsoft.card.video'
|
|
15
16
|
];
|
|
16
17
|
|
|
17
|
-
export default function createAdaptiveCardsAttachmentMiddleware() {
|
|
18
|
-
return () =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
export default function createAdaptiveCardsAttachmentMiddleware(): AttachmentForScreenReaderMiddleware {
|
|
19
|
+
return () =>
|
|
20
|
+
next =>
|
|
21
|
+
(...args) => {
|
|
22
|
+
const [
|
|
23
|
+
{
|
|
24
|
+
attachment: { content, contentType }
|
|
25
|
+
}
|
|
26
|
+
] = args;
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
return content && RICH_CARD_CONTENT_TYPES.includes(contentType)
|
|
29
|
+
? () => <RichCardAttachment content={content} />
|
|
30
|
+
: content && contentType === 'application/vnd.microsoft.card.adaptive'
|
|
31
|
+
? () => <AdaptiveCardAttachment content={content} />
|
|
32
|
+
: next(...args);
|
|
33
|
+
};
|
|
33
34
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { AttachmentMiddleware } from 'botframework-webchat-api';
|
|
4
|
+
|
|
5
|
+
import AdaptiveCardAttachment from './Attachment/AdaptiveCardAttachment';
|
|
6
|
+
import AnimationCardAttachment from './Attachment/AnimationCardAttachment';
|
|
7
|
+
import AudioCardAttachment from './Attachment/AudioCardAttachment';
|
|
8
|
+
import HeroCardAttachment from './Attachment/HeroCardAttachment';
|
|
9
|
+
import OAuthCardAttachment from './Attachment/OAuthCardAttachment';
|
|
10
|
+
import ReceiptCardAttachment from './Attachment/ReceiptCardAttachment';
|
|
11
|
+
import SignInCardAttachment from './Attachment/SignInCardAttachment';
|
|
12
|
+
import ThumbnailCardAttachment from './Attachment/ThumbnailCardAttachment';
|
|
13
|
+
import VideoCardAttachment from './Attachment/VideoCardAttachment';
|
|
14
|
+
|
|
15
|
+
export default function createAdaptiveCardsAttachmentMiddleware(): AttachmentMiddleware {
|
|
16
|
+
// This is not returning a React component, but a render function.
|
|
17
|
+
return () =>
|
|
18
|
+
next =>
|
|
19
|
+
(...args) => {
|
|
20
|
+
const [{ attachment }] = args;
|
|
21
|
+
|
|
22
|
+
return attachment.contentType === 'application/vnd.microsoft.card.hero' ? (
|
|
23
|
+
<HeroCardAttachment attachment={attachment} />
|
|
24
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.adaptive' ? (
|
|
25
|
+
<AdaptiveCardAttachment attachment={attachment} />
|
|
26
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.animation' ? (
|
|
27
|
+
<AnimationCardAttachment attachment={attachment} />
|
|
28
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.audio' ? (
|
|
29
|
+
<AudioCardAttachment attachment={attachment} />
|
|
30
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.oauth' ? (
|
|
31
|
+
<OAuthCardAttachment attachment={attachment} />
|
|
32
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.receipt' ? (
|
|
33
|
+
<ReceiptCardAttachment attachment={attachment} />
|
|
34
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.signin' ? (
|
|
35
|
+
<SignInCardAttachment attachment={attachment} />
|
|
36
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.thumbnail' ? (
|
|
37
|
+
<ThumbnailCardAttachment attachment={attachment} />
|
|
38
|
+
) : attachment.contentType === 'application/vnd.microsoft.card.video' ? (
|
|
39
|
+
<VideoCardAttachment attachment={attachment} />
|
|
40
|
+
) : (
|
|
41
|
+
next(...args)
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import AdaptiveCardsStyleOptions from './AdaptiveCardsStyleOptions';
|
|
2
2
|
|
|
3
3
|
const ADAPTIVE_CARDS_DEFAULT_STYLE_OPTIONS: Required<AdaptiveCardsStyleOptions> = {
|
|
4
|
+
adaptiveCardsParserMaxVersion: undefined,
|
|
4
5
|
cardEmphasisBackgroundColor: '#F0F0F0',
|
|
5
6
|
cardPushButtonBackgroundColor: '#0063B1',
|
|
6
|
-
cardPushButtonTextColor: '
|
|
7
|
+
cardPushButtonTextColor: 'White',
|
|
7
8
|
richCardWrapTitle: false
|
|
8
9
|
};
|
|
9
10
|
|
package/src/adaptiveCards/hooks/internal/{useAdaptiveCardsContext.js → useAdaptiveCardsContext.ts}
RENAMED
|
@@ -2,7 +2,7 @@ import { useContext } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import AdaptiveCardsContext from '../../AdaptiveCardsContext';
|
|
4
4
|
|
|
5
|
-
export default function useAdaptiveCardsContext() {
|
|
5
|
+
export default function useAdaptiveCardsContext(): AdaptiveCardsContext {
|
|
6
6
|
const context = useContext(AdaptiveCardsContext);
|
|
7
7
|
|
|
8
8
|
if (!context) {
|
package/src/adaptiveCards/hooks/internal/{useParseAdaptiveCardJSON.js → useParseAdaptiveCardJSON.ts}
RENAMED
|
@@ -2,8 +2,9 @@ import { hooks } from 'botframework-webchat-component';
|
|
|
2
2
|
import { useCallback, useMemo } from 'react';
|
|
3
3
|
|
|
4
4
|
import useAdaptiveCardsPackage from '../useAdaptiveCardsPackage';
|
|
5
|
+
import useStyleOptions from '../../../hooks/useStyleOptions';
|
|
5
6
|
|
|
6
|
-
const { useDirection
|
|
7
|
+
const { useDirection } = hooks;
|
|
7
8
|
|
|
8
9
|
function updateRTLInline(element, rtl, adaptiveCardsPackage) {
|
|
9
10
|
if (element instanceof adaptiveCardsPackage.Container) {
|
|
@@ -33,7 +34,9 @@ export default function useParseAdaptiveCardJSON() {
|
|
|
33
34
|
const maxVersion = Version.parse(adaptiveCardsParserMaxVersion, new SerializationContext());
|
|
34
35
|
|
|
35
36
|
if (maxVersion && !maxVersion.isValid) {
|
|
36
|
-
|
|
37
|
+
console.warn('botframework-webchat: "adaptiveCardsParserMaxVersion" specified is not a valid version.');
|
|
38
|
+
|
|
39
|
+
return;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
return maxVersion;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import random from 'math-random';
|
|
5
5
|
|
|
6
|
-
export default function useUniqueId(prefix) {
|
|
6
|
+
export default function useUniqueId(prefix?: string): string {
|
|
7
7
|
const id = useMemo(() => random().toString(36).substr(2, 5), []);
|
|
8
8
|
|
|
9
9
|
prefix = prefix ? `${prefix}--` : '';
|
package/src/adaptiveCards/hooks/{useAdaptiveCardsHostConfig.js → useAdaptiveCardsHostConfig.ts}
RENAMED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import { hooks } from 'botframework-webchat-component';
|
|
2
1
|
import { useMemo } from 'react';
|
|
3
2
|
|
|
4
3
|
import createDefaultAdaptiveCardHostConfig from '../Styles/adaptiveCardHostConfig';
|
|
5
4
|
import useAdaptiveCardsContext from './internal/useAdaptiveCardsContext';
|
|
5
|
+
import useStyleOptions from '../../hooks/useStyleOptions';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export default function useAdaptiveCardsHostConfig() {
|
|
7
|
+
export default function useAdaptiveCardsHostConfig(): [any] {
|
|
10
8
|
const { hostConfigFromProps } = useAdaptiveCardsContext();
|
|
11
9
|
const [styleOptions] = useStyleOptions();
|
|
12
10
|
|
|
13
|
-
const patchedHostConfig = useMemo(
|
|
14
|
-
hostConfigFromProps,
|
|
15
|
-
styleOptions
|
|
16
|
-
|
|
11
|
+
const patchedHostConfig = useMemo(
|
|
12
|
+
() => hostConfigFromProps || createDefaultAdaptiveCardHostConfig(styleOptions),
|
|
13
|
+
[hostConfigFromProps, styleOptions]
|
|
14
|
+
);
|
|
17
15
|
|
|
18
16
|
return [patchedHostConfig];
|
|
19
17
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import AdaptiveCardsPackage from '../../types/AdaptiveCardsPackage';
|
|
1
2
|
import useAdaptiveCardsContext from './internal/useAdaptiveCardsContext';
|
|
2
3
|
|
|
3
|
-
export default function useAdaptiveCardsPackage() {
|
|
4
|
+
export default function useAdaptiveCardsPackage(): [AdaptiveCardsPackage] {
|
|
4
5
|
const { adaptiveCardsPackage } = useAdaptiveCardsContext();
|
|
5
6
|
|
|
6
7
|
return [adaptiveCardsPackage];
|