botframework-webchat-component 4.18.0 → 4.18.1-main.20240807.dfe788c
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/dist/botframework-webchat-component.d.mts +12 -7
- package/dist/botframework-webchat-component.mjs +8 -8
- package/dist/botframework-webchat-component.mjs.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/lib/Attachment/ImageContent.d.ts +3 -4
- package/lib/Attachment/ImageContent.d.ts.map +1 -1
- package/lib/Attachment/ImageContent.js +11 -29
- package/lib/Avatar/ImageAvatar.d.ts +6 -0
- package/lib/Avatar/ImageAvatar.d.ts.map +1 -0
- package/lib/Avatar/ImageAvatar.js +11 -17
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +5 -3
- package/lib/Styles/CSSTokens.d.ts +2 -0
- package/lib/Styles/CSSTokens.d.ts.map +1 -1
- package/lib/Styles/CustomPropertyNames.d.ts +2 -0
- package/lib/Styles/CustomPropertyNames.d.ts.map +1 -1
- package/lib/Styles/CustomPropertyNames.js +3 -1
- package/lib/Styles/StyleSet/CSSCustomProperties.d.ts +3 -1
- package/lib/Styles/StyleSet/CSSCustomProperties.d.ts.map +1 -1
- package/lib/Styles/StyleSet/CSSCustomProperties.js +4 -2
- package/lib/Styles/createStyleSet.d.ts +4 -1
- package/lib/Styles/createStyleSet.d.ts.map +1 -1
- package/lib/Utils/FixedWidthImage.d.ts +11 -0
- package/lib/Utils/FixedWidthImage.d.ts.map +1 -0
- package/lib/Utils/FixedWidthImage.js +61 -0
- package/lib/hooks/sendBoxFocus.d.ts +4 -2
- package/lib/hooks/sendBoxFocus.d.ts.map +1 -1
- package/lib/hooks/sendBoxFocus.js +4 -2
- package/lib/hooks/transcriptScrollRelative.d.ts +4 -2
- package/lib/hooks/transcriptScrollRelative.d.ts.map +1 -1
- package/lib/hooks/transcriptScrollRelative.js +4 -2
- package/lib/index.d.ts +5 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/package.json +4 -4
- package/src/Attachment/ImageContent.tsx +13 -27
- package/src/Avatar/{ImageAvatar.js → ImageAvatar.tsx} +6 -17
- package/src/Composer.tsx +15 -9
- package/src/Styles/CustomPropertyNames.ts +2 -0
- package/src/Styles/StyleSet/CSSCustomProperties.ts +6 -1
- package/src/Utils/FixedWidthImage.tsx +60 -0
- package/src/hooks/sendBoxFocus.ts +6 -2
- package/src/hooks/transcriptScrollRelative.ts +6 -3
- package/lib/Utils/CroppedImage.js +0 -61
- package/src/Utils/CroppedImage.js +0 -45
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import classNames from 'classnames';
|
|
2
|
+
import React, { memo } from 'react';
|
|
3
|
+
|
|
4
|
+
import useStyleToEmotionObject from '../hooks/internal/useStyleToEmotionObject';
|
|
5
|
+
import CSSTokens from '../Styles/CSSTokens';
|
|
6
|
+
|
|
7
|
+
const ROOT_STYLE = {
|
|
8
|
+
'&.webchat__fixed-width-image': {
|
|
9
|
+
display: 'flex',
|
|
10
|
+
justifyContent: 'center',
|
|
11
|
+
maxHeight: CSSTokens.MaxHeightImageBubble,
|
|
12
|
+
minHeight: CSSTokens.MinHeightImageBubble,
|
|
13
|
+
overflow: 'hidden',
|
|
14
|
+
position: 'relative',
|
|
15
|
+
|
|
16
|
+
'& .webchat__fixed-width-image__filler': {
|
|
17
|
+
visibility: 'hidden',
|
|
18
|
+
width: '100%'
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
'& .webchat__fixed-width-image__image': {
|
|
22
|
+
left: '50%',
|
|
23
|
+
objectFit: 'cover',
|
|
24
|
+
position: 'absolute',
|
|
25
|
+
top: '50%',
|
|
26
|
+
transform: 'translate(-50%, -50%)',
|
|
27
|
+
width: '100%'
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Shows the image with fixed width but cropped top/bottom.
|
|
34
|
+
*/
|
|
35
|
+
const FixedWidthImage = memo(
|
|
36
|
+
({
|
|
37
|
+
alt,
|
|
38
|
+
className,
|
|
39
|
+
src
|
|
40
|
+
}: Readonly<{
|
|
41
|
+
alt: string;
|
|
42
|
+
className?: string | undefined;
|
|
43
|
+
src: string;
|
|
44
|
+
}>) => (
|
|
45
|
+
<div
|
|
46
|
+
className={classNames(
|
|
47
|
+
'webchat__fixed-width-image',
|
|
48
|
+
useStyleToEmotionObject()(ROOT_STYLE) + '',
|
|
49
|
+
(className || '') + ''
|
|
50
|
+
)}
|
|
51
|
+
>
|
|
52
|
+
<img alt="" className="webchat__fixed-width-image__filler" role="none" src={src} />
|
|
53
|
+
<img alt={alt} className="webchat__fixed-width-image__image" src={src} />
|
|
54
|
+
</div>
|
|
55
|
+
)
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
FixedWidthImage.displayName = 'FixedWidthImage';
|
|
59
|
+
|
|
60
|
+
export default FixedWidthImage;
|
|
@@ -3,6 +3,10 @@ import { createPropagation } from 'use-propagate';
|
|
|
3
3
|
|
|
4
4
|
export type SendBoxFocusOptions = WaitUntilable<{ noKeyboard: boolean }>;
|
|
5
5
|
|
|
6
|
-
const {
|
|
6
|
+
const {
|
|
7
|
+
PropagationScope: FocusSendBoxScope,
|
|
8
|
+
useListen: useRegisterFocusSendBox,
|
|
9
|
+
usePropagate: useFocusSendBox
|
|
10
|
+
} = createPropagation<SendBoxFocusOptions>();
|
|
7
11
|
|
|
8
|
-
export { useRegisterFocusSendBox, useFocusSendBox };
|
|
12
|
+
export { FocusSendBoxScope, useRegisterFocusSendBox, useFocusSendBox };
|
|
@@ -2,7 +2,10 @@ import { createPropagation } from 'use-propagate';
|
|
|
2
2
|
|
|
3
3
|
export type TranscriptScrollRelativeOptions = { direction: 'down' | 'up'; displacement?: number };
|
|
4
4
|
|
|
5
|
-
const {
|
|
6
|
-
|
|
5
|
+
const {
|
|
6
|
+
PropagationScope: ScrollRelativeTranscriptScope,
|
|
7
|
+
useListen: useRegisterScrollRelativeTranscript,
|
|
8
|
+
usePropagate: useScrollRelativeTranscript
|
|
9
|
+
} = createPropagation<TranscriptScrollRelativeOptions>();
|
|
7
10
|
|
|
8
|
-
export { useRegisterScrollRelativeTranscript, useScrollRelativeTranscript };
|
|
11
|
+
export { ScrollRelativeTranscriptScope, useRegisterScrollRelativeTranscript, useScrollRelativeTranscript };
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
|
|
12
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
var ROOT_STYLE = {
|
|
16
|
-
overflow: 'hidden',
|
|
17
|
-
position: 'relative',
|
|
18
|
-
'& > img': {
|
|
19
|
-
height: 'auto',
|
|
20
|
-
left: '50%',
|
|
21
|
-
position: 'absolute',
|
|
22
|
-
top: '50%',
|
|
23
|
-
transform: 'translate(-50%, -50%)',
|
|
24
|
-
width: '100%'
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var CroppedImage = function CroppedImage(_ref) {
|
|
28
|
-
var alt = _ref.alt,
|
|
29
|
-
className = _ref.className,
|
|
30
|
-
height = _ref.height,
|
|
31
|
-
src = _ref.src,
|
|
32
|
-
width = _ref.width;
|
|
33
|
-
var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
|
|
34
|
-
var sizeStyle = (0, _react.useMemo)(function () {
|
|
35
|
-
return {
|
|
36
|
-
height: height,
|
|
37
|
-
width: width
|
|
38
|
-
};
|
|
39
|
-
}, [height, width]);
|
|
40
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
41
|
-
className: (0, _classnames.default)(rootClassName, (className || '') + ''),
|
|
42
|
-
style: sizeStyle
|
|
43
|
-
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
44
|
-
alt: alt,
|
|
45
|
-
src: src
|
|
46
|
-
}));
|
|
47
|
-
};
|
|
48
|
-
CroppedImage.defaultProps = {
|
|
49
|
-
alt: '',
|
|
50
|
-
className: ''
|
|
51
|
-
};
|
|
52
|
-
CroppedImage.propTypes = {
|
|
53
|
-
alt: _propTypes.default.string,
|
|
54
|
-
className: _propTypes.default.string,
|
|
55
|
-
height: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
56
|
-
src: _propTypes.default.string.isRequired,
|
|
57
|
-
width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired
|
|
58
|
-
};
|
|
59
|
-
var _default = CroppedImage;
|
|
60
|
-
exports.default = _default;
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Byb3BUeXBlcyIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJST09UX1NUWUxFIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsImhlaWdodCIsImxlZnQiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJ3aWR0aCIsIkNyb3BwZWRJbWFnZSIsIl9yZWYiLCJhbHQiLCJjbGFzc05hbWUiLCJzcmMiLCJyb290Q2xhc3NOYW1lIiwidXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QiLCJzaXplU3R5bGUiLCJ1c2VNZW1vIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZXMiLCJzdHlsZSIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsIm9uZU9mVHlwZSIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9Dcm9wcGVkSW1hZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG5cbiAgJyYgPiBpbWcnOiB7XG4gICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgbGVmdDogJzUwJScsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnNTAlJyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTUwJSwgLTUwJSknLFxuICAgIHdpZHRoOiAnMTAwJSdcbiAgfVxufTtcblxuY29uc3QgQ3JvcHBlZEltYWdlID0gKHsgYWx0LCBjbGFzc05hbWUsIGhlaWdodCwgc3JjLCB3aWR0aCB9KSA9PiB7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG4gIGNvbnN0IHNpemVTdHlsZSA9IHVzZU1lbW8oKCkgPT4gKHsgaGVpZ2h0LCB3aWR0aCB9KSwgW2hlaWdodCwgd2lkdGhdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHJvb3RDbGFzc05hbWUsIChjbGFzc05hbWUgfHwgJycpICsgJycpfSBzdHlsZT17c2l6ZVN0eWxlfT5cbiAgICAgIDxpbWcgYWx0PXthbHR9IHNyYz17c3JjfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQ3JvcHBlZEltYWdlLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWx0OiAnJyxcbiAgY2xhc3NOYW1lOiAnJ1xufTtcblxuQ3JvcHBlZEltYWdlLnByb3BUeXBlcyA9IHtcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gIHNyYzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB3aWR0aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENyb3BwZWRJbWFnZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLHdCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBZ0YsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFILHdCQUFBTyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFB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
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import React, { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
import useStyleToEmotionObject from '../hooks/internal/useStyleToEmotionObject';
|
|
6
|
-
|
|
7
|
-
const ROOT_STYLE = {
|
|
8
|
-
overflow: 'hidden',
|
|
9
|
-
position: 'relative',
|
|
10
|
-
|
|
11
|
-
'& > img': {
|
|
12
|
-
height: 'auto',
|
|
13
|
-
left: '50%',
|
|
14
|
-
position: 'absolute',
|
|
15
|
-
top: '50%',
|
|
16
|
-
transform: 'translate(-50%, -50%)',
|
|
17
|
-
width: '100%'
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const CroppedImage = ({ alt, className, height, src, width }) => {
|
|
22
|
-
const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';
|
|
23
|
-
const sizeStyle = useMemo(() => ({ height, width }), [height, width]);
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div className={classNames(rootClassName, (className || '') + '')} style={sizeStyle}>
|
|
27
|
-
<img alt={alt} src={src} />
|
|
28
|
-
</div>
|
|
29
|
-
);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
CroppedImage.defaultProps = {
|
|
33
|
-
alt: '',
|
|
34
|
-
className: ''
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
CroppedImage.propTypes = {
|
|
38
|
-
alt: PropTypes.string,
|
|
39
|
-
className: PropTypes.string,
|
|
40
|
-
height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
41
|
-
src: PropTypes.string.isRequired,
|
|
42
|
-
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export default CroppedImage;
|