botframework-webchat-component
Version:
React component of botframework-webchat
103 lines (102 loc) • 20.6 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 _DismissIcon = _interopRequireDefault(require("./Toast/DismissIcon"));
var _NotificationIcon = _interopRequireDefault(require("./Toast/NotificationIcon"));
var _randomId = _interopRequireDefault(require("./Utils/randomId"));
var _ScreenReaderText = _interopRequireDefault(require("./ScreenReaderText"));
var _useInternalRenderMarkdownInline = _interopRequireDefault(require("./hooks/internal/useInternalRenderMarkdownInline"));
var _useStyleSet3 = _interopRequireDefault(require("./hooks/useStyleSet"));
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 react/forbid-dom-props: "off" */ /* eslint react/no-danger: "off" */
var useDismissNotification = _botframeworkWebchatApi.hooks.useDismissNotification,
useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer;
var ROOT_STYLE = {
display: 'flex',
'& .webchat__toast__text': {
flex: 1
}
};
var BasicToast = function BasicToast(_ref) {
var _ref$notification = _ref.notification,
alt = _ref$notification.alt,
id = _ref$notification.id,
level = _ref$notification.level,
_ref$notification$mes = _ref$notification.message,
message = _ref$notification$mes === void 0 ? '' : _ref$notification$mes;
var _useStyleSet = (0, _useStyleSet3.default)(),
_useStyleSet2 = _slicedToArray(_useStyleSet, 1),
toastStyleSet = _useStyleSet2[0].toast;
var contentId = (0, _react.useMemo)(function () {
return "webchat__toast__".concat((0, _randomId.default)());
}, []);
var localize = useLocalizer();
var dismissNotification = useDismissNotification();
var renderMarkdownInline = (0, _useInternalRenderMarkdownInline.default)();
var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
var handleDismiss = (0, _react.useCallback)(function () {
return dismissNotification(id);
}, [dismissNotification, id]);
var html = (0, _react.useMemo)(function () {
return {
__html: renderMarkdownInline(message)
};
}, [message, renderMarkdownInline]);
return /*#__PURE__*/_react.default.createElement("div", {
"aria-describedby": contentId,
"aria-label": localize('TOAST_TITLE_ALT'),
className: (0, _classnames.default)('webchat__toast', {
'webchat__toast--error': level === 'error',
'webchat__toast--info': level === 'info',
'webchat__toast--success': level === 'success',
'webchat__toast--warn': level === 'warn'
}, rootClassName, toastStyleSet + ''),
role: "dialog"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "webchat__toast__iconBox"
}, /*#__PURE__*/_react.default.createElement(_NotificationIcon.default, {
className: "webchat__toast__icon",
level: level
})), !!alt && /*#__PURE__*/_react.default.createElement(_ScreenReaderText.default, {
text: alt
}), /*#__PURE__*/_react.default.createElement("div", {
"aria-hidden": !!alt,
className: "webchat__toast__text",
dangerouslySetInnerHTML: html,
id: contentId
}), /*#__PURE__*/_react.default.createElement("button", {
"aria-label": localize('TOAST_DISMISS_BUTTON'),
className: "webchat__toast__dismissButton",
onClick: handleDismiss,
type: "button"
}, /*#__PURE__*/_react.default.createElement("div", {
"aria-hidden": true,
className: "webchat__toast__dismissButtonFocus"
}, /*#__PURE__*/_react.default.createElement(_DismissIcon.default, null))));
};
BasicToast.propTypes = {
notification: _propTypes.default.shape({
alt: _propTypes.default.string,
id: _propTypes.default.string.isRequired,
level: _propTypes.default.string.isRequired,
message: _propTypes.default.string.isRequired
}).isRequired
};
var _default = BasicToast;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdEFwaSIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcHJvcFR5cGVzIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfRGlzbWlzc0ljb24iLCJfTm90aWZpY2F0aW9uSWNvbiIsIl9yYW5kb21JZCIsIl9TY3JlZW5SZWFkZXJUZXh0IiwiX3VzZUludGVybmFsUmVuZGVyTWFya2Rvd25JbmxpbmUiLCJfdXNlU3R5bGVTZXQzIiwiX3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibyIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuIiwibGVuZ3RoIiwiYXJyMiIsIl9pIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJfYXJyIiwiX24iLCJfZCIsIl9zIiwiX2UiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsImlzQXJyYXkiLCJ1c2VEaXNtaXNzTm90aWZpY2F0aW9uIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJST09UX1NUWUxFIiwiZGlzcGxheSIsImZsZXgiLCJCYXNpY1RvYXN0IiwiX3JlZiIsIl9yZWYkbm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uIiwiYWx0IiwiaWQiLCJsZXZlbCIsIl9yZWYkbm90aWZpY2F0aW9uJG1lcyIsIm1lc3NhZ2UiLCJfdXNlU3R5bGVTZXQiLCJ1c2VTdHlsZVNldCIsIl91c2VTdHlsZVNldDIiLCJ0b2FzdFN0eWxlU2V0IiwidG9hc3QiLCJjb250ZW50SWQiLCJ1c2VNZW1vIiwiY29uY2F0IiwicmFuZG9tSWQiLCJsb2NhbGl6ZSIsImRpc21pc3NOb3RpZmljYXRpb24iLCJyZW5kZXJNYXJrZG93bklubGluZSIsInVzZUludGVybmFsUmVuZGVyTWFya2Rvd25JbmxpbmUiLCJyb290Q2xhc3NOYW1lIiwidXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QiLCJoYW5kbGVEaXNtaXNzIiwidXNlQ2FsbGJhY2siLCJodG1sIiwiX19odG1sIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJyb2xlIiwidGV4dCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwib25DbGljayIsInR5cGUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzaGFwZSIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNpY1RvYXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCByZWFjdC9mb3JiaWQtZG9tLXByb3BzOiBcIm9mZlwiICovXG4vKiBlc2xpbnQgcmVhY3Qvbm8tZGFuZ2VyOiBcIm9mZlwiICovXG5cbmltcG9ydCB7IGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtYXBpJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IERpc21pc3NJY29uIGZyb20gJy4vVG9hc3QvRGlzbWlzc0ljb24nO1xuaW1wb3J0IE5vdGlmaWNhdGlvbkljb24gZnJvbSAnLi9Ub2FzdC9Ob3RpZmljYXRpb25JY29uJztcbmltcG9ydCByYW5kb21JZCBmcm9tICcuL1V0aWxzL3JhbmRvbUlkJztcbmltcG9ydCBTY3JlZW5SZWFkZXJUZXh0IGZyb20gJy4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgdXNlSW50ZXJuYWxSZW5kZXJNYXJrZG93bklubGluZSBmcm9tICcuL2hvb2tzL2ludGVybmFsL3VzZUludGVybmFsUmVuZGVyTWFya2Rvd25JbmxpbmUnO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4vaG9va3MvdXNlU3R5bGVTZXQnO1xuaW1wb3J0IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0IGZyb20gJy4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuXG5jb25zdCB7IHVzZURpc21pc3NOb3RpZmljYXRpb24sIHVzZUxvY2FsaXplciB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gIGRpc3BsYXk6ICdmbGV4JyxcblxuICAnJiAud2ViY2hhdF9fdG9hc3RfX3RleHQnOiB7XG4gICAgZmxleDogMVxuICB9XG59O1xuXG5jb25zdCBCYXNpY1RvYXN0ID0gKHsgbm90aWZpY2F0aW9uOiB7IGFsdCwgaWQsIGxldmVsLCBtZXNzYWdlID0gJycgfSB9KSA9PiB7XG4gIGNvbnN0IFt7IHRvYXN0OiB0b2FzdFN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgY29udGVudElkID0gdXNlTWVtbygoKSA9PiBgd2ViY2hhdF9fdG9hc3RfXyR7cmFuZG9tSWQoKX1gLCBbXSk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IGRpc21pc3NOb3RpZmljYXRpb24gPSB1c2VEaXNtaXNzTm90aWZpY2F0aW9uKCk7XG4gIGNvbnN0IHJlbmRlck1hcmtkb3duSW5saW5lID0gdXNlSW50ZXJuYWxSZW5kZXJNYXJrZG93bklubGluZSgpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuXG4gIGNvbnN0IGhhbmRsZURpc21pc3MgPSB1c2VDYWxsYmFjaygoKSA9PiBkaXNtaXNzTm90aWZpY2F0aW9uKGlkKSwgW2Rpc21pc3NOb3RpZmljYXRpb24sIGlkXSk7XG4gIGNvbnN0IGh0bWwgPSB1c2VNZW1vKCgpID0+ICh7IF9faHRtbDogcmVuZGVyTWFya2Rvd25JbmxpbmUobWVzc2FnZSkgfSksIFttZXNzYWdlLCByZW5kZXJNYXJrZG93bklubGluZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1kZXNjcmliZWRieT17Y29udGVudElkfVxuICAgICAgYXJpYS1sYWJlbD17bG9jYWxpemUoJ1RPQVNUX1RJVExFX0FMVCcpfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fdG9hc3QnLFxuICAgICAgICB7XG4gICAgICAgICAgJ3dlYmNoYXRfX3RvYXN0LS1lcnJvcic6IGxldmVsID09PSAnZXJyb3InLFxuICAgICAgICAgICd3ZWJjaGF0X190b2FzdC0taW5mbyc6IGxldmVsID09PSAnaW5mbycsXG4gICAgICAgICAgJ3dlYmNoYXRfX3RvYXN0LS1zdWNjZXNzJzogbGV2ZWwgPT09ICdzdWNjZXNzJyxcbiAgICAgICAgICAnd2ViY2hhdF9fdG9hc3QtLXdhcm4nOiBsZXZlbCA9PT0gJ3dhcm4nXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3RDbGFzc05hbWUsXG4gICAgICAgIHRvYXN0U3R5bGVTZXQgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fdG9hc3RfX2ljb25Cb3hcIj5cbiAgICAgICAgPE5vdGlmaWNhdGlvbkljb24gY2xhc3NOYW1lPVwid2ViY2hhdF9fdG9hc3RfX2ljb25cIiBsZXZlbD17bGV2ZWx9IC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIHshIWFsdCAmJiA8U2NyZWVuUmVhZGVyVGV4dCB0ZXh0PXthbHR9IC8+fVxuICAgICAgPGRpdiBhcmlhLWhpZGRlbj17ISFhbHR9IGNsYXNzTmFtZT1cIndlYmNoYXRfX3RvYXN0X190ZXh0XCIgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e2h0bWx9IGlkPXtjb250ZW50SWR9IC8+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGFyaWEtbGFiZWw9e2xvY2FsaXplKCdUT0FTVF9ESVNNSVNTX0JVVFRPTicpfVxuICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X190b2FzdF9fZGlzbWlzc0J1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZURpc21pc3N9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGFyaWEtaGlkZGVuPXt0cnVlfSBjbGFzc05hbWU9XCJ3ZWJjaGF0X190b2FzdF9fZGlzbWlzc0J1dHRvbkZvY3VzXCI+XG4gICAgICAgICAgPERpc21pc3NJY29uIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5CYXNpY1RvYXN0LnByb3BUeXBlcyA9IHtcbiAgbm90aWZpY2F0aW9uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGxldmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH0pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJhc2ljVG9hc3Q7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQSxJQUFBQSx1QkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBQyx1QkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQU0sWUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLGlCQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxnQ0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVcsYUFBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVksd0JBQUEsR0FBQVYsc0JBQUEsQ0FBQUYsT0FBQTtBQUErRSxTQUFBYSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVQsd0JBQUFhLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENB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
;