botframework-webchat-component
Version:
React component of botframework-webchat
70 lines (69 loc) • 18.7 kB
JavaScript
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); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _botframeworkWebchatApi = require("botframework-webchat-api");
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _activityAltText = _interopRequireDefault(require("../Utils/activityAltText"));
var _LiveRegionAttachments = _interopRequireDefault(require("./private/LiveRegionAttachments"));
var _LiveRegionSuggestedActions = _interopRequireDefault(require("./private/LiveRegionSuggestedActions"));
var _useRenderMarkdownAsHTML = _interopRequireDefault(require("../hooks/useRenderMarkdownAsHTML"));
var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
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); }
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; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /* eslint no-magic-numbers: ["error", { "ignore": [2] }] */
var useAvatarForBot = _botframeworkWebchatApi.hooks.useAvatarForBot,
useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer;
var ROOT_STYLE = {
'&.webchat__live-region-activity': {
color: 'transparent',
height: 1,
opacity: 0,
overflow: 'hidden',
position: 'absolute',
top: 0,
whiteSpace: 'nowrap',
width: 1
}
};
var LiveRegionActivity = function LiveRegionActivity(_ref) {
var activity = _ref.activity;
var _useAvatarForBot = useAvatarForBot(),
_useAvatarForBot2 = _slicedToArray(_useAvatarForBot, 1),
botInitials = _useAvatarForBot2[0].initials;
var role = activity.from.role,
type = activity.type;
var fallbackText = type === 'message' ? activity.channelData['webchat:fallback-text'] : undefined;
var localize = useLocalizer();
var renderMarkdownAsHTML = (0, _useRenderMarkdownAsHTML.default)();
var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
var textAlt = (0, _react.useMemo)(function () {
return (0, _activityAltText.default)(activity, renderMarkdownAsHTML);
}, [activity, renderMarkdownAsHTML]);
var greetingAlt = (role === 'user' ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')).replace(/[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]{2,}/g, ' ');
var validFallbackText = fallbackText && typeof fallbackText === 'string';
return /*#__PURE__*/_react.default.createElement("article", {
"aria-atomic": true,
className: (0, _classnames.default)('webchat__live-region-activity', rootClassName)
}, /*#__PURE__*/_react.default.createElement("div", null, greetingAlt), validFallbackText ? /*#__PURE__*/_react.default.createElement("div", null, fallbackText) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, textAlt), type === 'message' && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, !!activity.suggestedActions && /*#__PURE__*/_react.default.createElement(_LiveRegionSuggestedActions.default, {
suggestedActions: activity.suggestedActions
}), /*#__PURE__*/_react.default.createElement(_LiveRegionAttachments.default, {
activity: activity
}))));
};
LiveRegionActivity.propTypes = {
activity: _propTypes.default.any.isRequired
};
var _default = LiveRegionActivity;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdEFwaSIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcHJvcFR5cGVzIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfYWN0aXZpdHlBbHRUZXh0IiwiX0xpdmVSZWdpb25BdHRhY2htZW50cyIsIl9MaXZlUmVnaW9uU3VnZ2VzdGVkQWN0aW9ucyIsIl91c2VSZW5kZXJNYXJrZG93bkFzSFRNTCIsIl91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJfaSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiX2FyciIsIl9uIiwiX2QiLCJfcyIsIl9lIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnIiLCJpc0FycmF5IiwidXNlQXZhdGFyRm9yQm90IiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJST09UX1NUWUxFIiwiY29sb3IiLCJoZWlnaHQiLCJvcGFjaXR5Iiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsInRvcCIsIndoaXRlU3BhY2UiLCJ3aWR0aCIsIkxpdmVSZWdpb25BY3Rpdml0eSIsIl9yZWYiLCJhY3Rpdml0eSIsIl91c2VBdmF0YXJGb3JCb3QiLCJfdXNlQXZhdGFyRm9yQm90MiIsImJvdEluaXRpYWxzIiwiaW5pdGlhbHMiLCJyb2xlIiwidHlwZSIsImZhbGxiYWNrVGV4dCIsImNoYW5uZWxEYXRhIiwidW5kZWZpbmVkIiwibG9jYWxpemUiLCJyZW5kZXJNYXJrZG93bkFzSFRNTCIsInVzZVJlbmRlck1hcmtkb3duQXNIVE1MIiwicm9vdENsYXNzTmFtZSIsInVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IiwidGV4dEFsdCIsInVzZU1lbW8iLCJhY3Rpdml0eUFsdFRleHQiLCJncmVldGluZ0FsdCIsInJlcGxhY2UiLCJ2YWxpZEZhbGxiYWNrVGV4dCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjbGFzc05hbWVzIiwiRnJhZ21lbnQiLCJzdWdnZXN0ZWRBY3Rpb25zIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYW55IiwiaXNSZXF1aXJlZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0xpdmVSZWdpb24vTGl2ZVJlZ2lvbkFjdGl2aXR5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbMl0gfV0gKi9cblxuaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgYWN0aXZpdHlBbHRUZXh0IGZyb20gJy4uL1V0aWxzL2FjdGl2aXR5QWx0VGV4dCc7XG5pbXBvcnQgTGl2ZVJlZ2lvbkF0dGFjaG1lbnRzIGZyb20gJy4vcHJpdmF0ZS9MaXZlUmVnaW9uQXR0YWNobWVudHMnO1xuaW1wb3J0IExpdmVSZWdpb25TdWdnZXN0ZWRBY3Rpb25zIGZyb20gJy4vcHJpdmF0ZS9MaXZlUmVnaW9uU3VnZ2VzdGVkQWN0aW9ucyc7XG5pbXBvcnQgdXNlUmVuZGVyTWFya2Rvd25Bc0hUTUwgZnJvbSAnLi4vaG9va3MvdXNlUmVuZGVyTWFya2Rvd25Bc0hUTUwnO1xuaW1wb3J0IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0JztcblxuaW1wb3J0IHR5cGUgeyBWRkMgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IFdlYkNoYXRBY3Rpdml0eSB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG5jb25zdCB7IHVzZUF2YXRhckZvckJvdCwgdXNlTG9jYWxpemVyIH0gPSBob29rcztcblxuY29uc3QgUk9PVF9TVFlMRSA9IHtcbiAgJyYud2ViY2hhdF9fbGl2ZS1yZWdpb24tYWN0aXZpdHknOiB7XG4gICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgaGVpZ2h0OiAxLFxuICAgIG9wYWNpdHk6IDAsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogMCxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICB3aWR0aDogMVxuICB9XG59O1xuXG50eXBlIExpdmVSZWdpb25BY3Rpdml0eVByb3BzID0ge1xuICBhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5O1xufTtcblxuY29uc3QgTGl2ZVJlZ2lvbkFjdGl2aXR5OiBWRkM8TGl2ZVJlZ2lvbkFjdGl2aXR5UHJvcHM+ID0gKHsgYWN0aXZpdHkgfSkgPT4ge1xuICBjb25zdCBbeyBpbml0aWFsczogYm90SW5pdGlhbHMgfV0gPSB1c2VBdmF0YXJGb3JCb3QoKTtcbiAgY29uc3Qge1xuICAgIGZyb206IHsgcm9sZSB9LFxuICAgIHR5cGVcbiAgfSA9IGFjdGl2aXR5O1xuICBjb25zdCBmYWxsYmFja1RleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgdHlwZSA9PT0gJ21lc3NhZ2UnID8gYWN0aXZpdHkuY2hhbm5lbERhdGFbJ3dlYmNoYXQ6ZmFsbGJhY2stdGV4dCddIDogdW5kZWZpbmVkO1xuICBjb25zdCBsb2NhbGl6ZSA9IHVzZUxvY2FsaXplcigpO1xuICBjb25zdCByZW5kZXJNYXJrZG93bkFzSFRNTCA9IHVzZVJlbmRlck1hcmtkb3duQXNIVE1MKCk7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG4gIGNvbnN0IHRleHRBbHQgPSB1c2VNZW1vKCgpID0+IGFjdGl2aXR5QWx0VGV4dChhY3Rpdml0eSwgcmVuZGVyTWFya2Rvd25Bc0hUTUwpLCBbYWN0aXZpdHksIHJlbmRlck1hcmtkb3duQXNIVE1MXSk7XG5cbiAgY29uc3QgZ3JlZXRpbmdBbHQ6IHN0cmluZyA9IChcbiAgICByb2xlID09PSAndXNlcicgPyBsb2NhbGl6ZSgnQUNUSVZJVFlfWU9VX1NBSURfQUxUJykgOiBsb2NhbGl6ZSgnQUNUSVZJVFlfQk9UX1NBSURfQUxUJywgYm90SW5pdGlhbHMgfHwgJycpXG4gICkucmVwbGFjZSgvXFxzezIsfS9ndSwgJyAnKTtcbiAgY29uc3QgdmFsaWRGYWxsYmFja1RleHQgPSBmYWxsYmFja1RleHQgJiYgdHlwZW9mIGZhbGxiYWNrVGV4dCA9PT0gJ3N0cmluZyc7XG5cbiAgcmV0dXJuIChcbiAgICA8YXJ0aWNsZSBhcmlhLWF0b21pYz17dHJ1ZX0gY2xhc3NOYW1lPXtjbGFzc05hbWVzKCd3ZWJjaGF0X19saXZlLXJlZ2lvbi1hY3Rpdml0eScsIHJvb3RDbGFzc05hbWUpfT5cbiAgICAgIDxkaXY+e2dyZWV0aW5nQWx0fTwvZGl2PlxuICAgICAge3ZhbGlkRmFsbGJhY2tUZXh0ID8gKFxuICAgICAgICA8ZGl2PntmYWxsYmFja1RleHR9PC9kaXY+XG4gICAgICApIDogKFxuICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgPGRpdj57dGV4dEFsdH08L2Rpdj5cbiAgICAgICAgICB7dHlwZSA9PT0gJ21lc3NhZ2UnICYmIChcbiAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgeyEhYWN0aXZpdHkuc3VnZ2VzdGVkQWN0aW9ucyAmJiAoXG4gICAgICAgICAgICAgICAgPExpdmVSZWdpb25TdWdnZXN0ZWRBY3Rpb25zIHN1Z2dlc3RlZEFjdGlvbnM9e2FjdGl2aXR5LnN1Z2dlc3RlZEFjdGlvbnN9IC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxMaXZlUmVnaW9uQXR0YWNobWVudHMgYWN0aXZpdHk9e2FjdGl2aXR5fSAvPlxuICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2FydGljbGU+XG4gICk7XG59O1xuXG5MaXZlUmVnaW9uQWN0aXZpdHkucHJvcFR5cGVzID0ge1xuICBhY3Rpdml0eTogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnQgZGVmYXVsdCBMaXZlUmVnaW9uQWN0aXZpdHk7XG5cbmV4cG9ydCB0eXBlIHsgTGl2ZVJlZ2lvbkFjdGl2aXR5UHJvcHMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBLElBQUFBLHVCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFELHNCQUFBLENB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
;