botframework-webchat-component
Version:
React component of botframework-webchat
78 lines (75 loc) • 15.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 _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _excluded = ["aria-hidden", "children", "disabled", "onClick", "tabIndex"];
/* eslint no-magic-numbers: ["error", { "ignore": [-1] }] */
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 _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var PREVENT_DEFAULT_HANDLER = function PREVENT_DEFAULT_HANDLER(event) {
return event.preventDefault();
};
// Differences between <button> and <AccessibleButton>:
// - Disable behavior
// - When the widget is disabled
// - Set "aria-disabled" attribute to "true"
// - Set "readonly" attribute
// - Set "tabIndex" to -1
// - Remove "onClick" handler
// - Why this is needed
// - Browser compatibility: when the widget is disabled, different browser send focus to different places
// - When the widget become disabled, it's reasonable to keep the focus on the same widget for an extended period of time
// - When the user presses TAB after the current widget is disabled, it should jump to the next non-disabled widget
// Developers using this accessible widget will need to:
// - Style the disabled widget themselves, using CSS query `:disabled, [aria-disabled="true"] {}`
// - Modify all code that check disabled through "disabled" attribute to use aria-disabled="true" instead
// - aria-disabled="true" is the source of truth
// - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget
var AccessibleButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) {
var ariaHidden = _ref['aria-hidden'],
children = _ref.children,
disabled = _ref.disabled,
onClick = _ref.onClick,
tabIndex = _ref.tabIndex,
props = _objectWithoutProperties(_ref, _excluded);
var targetRef = (0, _react.useRef)();
var ref = forwardedRef || targetRef;
return /*#__PURE__*/_react.default.createElement("button", _extends({
"aria-disabled": disabled || undefined,
"aria-hidden": ariaHidden,
onClick: disabled ? PREVENT_DEFAULT_HANDLER : onClick,
ref: ref,
tabIndex: disabled ? -1 : tabIndex
}, props, {
type: "button"
}), children);
});
AccessibleButton.defaultProps = {
'aria-hidden': undefined,
children: undefined,
disabled: undefined,
onClick: undefined,
tabIndex: undefined
};
AccessibleButton.displayName = 'AccessibleButton';
AccessibleButton.propTypes = {
'aria-hidden': _propTypes.default.bool,
children: _propTypes.default.any,
disabled: _propTypes.default.bool,
onClick: _propTypes.default.func,
tabIndex: _propTypes.default.number,
// TypeScript class is not mappable to PropTypes.oneOf(['button'])
// @ts-ignore
type: _propTypes.default.oneOf(['button']).isRequired
};
var _default = AccessibleButton;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9leGNsdWRlZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZXhjbHVkZWQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInNvdXJjZVN5bWJvbEtleXMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwia2V5cyIsIlBSRVZFTlRfREVGQVVMVF9IQU5ETEVSIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsIkFjY2Vzc2libGVCdXR0b24iLCJmb3J3YXJkUmVmIiwiX3JlZiIsImZvcndhcmRlZFJlZiIsImFyaWFIaWRkZW4iLCJjaGlsZHJlbiIsImRpc2FibGVkIiwib25DbGljayIsInRhYkluZGV4IiwicHJvcHMiLCJ0YXJnZXRSZWYiLCJ1c2VSZWYiLCJyZWYiLCJjcmVhdGVFbGVtZW50IiwidW5kZWZpbmVkIiwidHlwZSIsImRlZmF1bHRQcm9wcyIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsImFueSIsImZ1bmMiLCJudW1iZXIiLCJvbmVPZiIsImlzUmVxdWlyZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlQnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTFdIH1dICovXG5cbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgTW91c2VFdmVudEhhbmRsZXIsIFJlYWN0Tm9kZSwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBQUkVWRU5UX0RFRkFVTFRfSEFORExFUiA9IGV2ZW50ID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbnR5cGUgQWNjZXNzaWJsZUJ1dHRvblByb3BzID0ge1xuICAnYXJpYS1oaWRkZW4nPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIHR5cGU6ICdidXR0b24nO1xufSAmIFJlYWN0LkJ1dHRvbkhUTUxBdHRyaWJ1dGVzPEhUTUxCdXR0b25FbGVtZW50PjtcblxuLy8gRGlmZmVyZW5jZXMgYmV0d2VlbiA8YnV0dG9uPiBhbmQgPEFjY2Vzc2libGVCdXR0b24+OlxuLy8gLSBEaXNhYmxlIGJlaGF2aW9yXG4vLyAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkXG4vLyAgICAgLSBTZXQgXCJhcmlhLWRpc2FibGVkXCIgYXR0cmlidXRlIHRvIFwidHJ1ZVwiXG4vLyAgICAgLSBTZXQgXCJyZWFkb25seVwiIGF0dHJpYnV0ZVxuLy8gICAgIC0gU2V0IFwidGFiSW5kZXhcIiB0byAtMVxuLy8gICAgIC0gUmVtb3ZlIFwib25DbGlja1wiIGhhbmRsZXJcbi8vICAgLSBXaHkgdGhpcyBpcyBuZWVkZWRcbi8vICAgICAtIEJyb3dzZXIgY29tcGF0aWJpbGl0eTogd2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkLCBkaWZmZXJlbnQgYnJvd3NlciBzZW5kIGZvY3VzIHRvIGRpZmZlcmVudCBwbGFjZXNcbi8vICAgICAtIFdoZW4gdGhlIHdpZGdldCBiZWNvbWUgZGlzYWJsZWQsIGl0J3MgcmVhc29uYWJsZSB0byBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSB3aWRnZXQgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lXG4vLyAgICAgICAtIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyBUQUIgYWZ0ZXIgdGhlIGN1cnJlbnQgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCBzaG91bGQganVtcCB0byB0aGUgbmV4dCBub24tZGlzYWJsZWQgd2lkZ2V0XG5cbi8vIERldmVsb3BlcnMgdXNpbmcgdGhpcyBhY2Nlc3NpYmxlIHdpZGdldCB3aWxsIG5lZWQgdG86XG4vLyAtIFN0eWxlIHRoZSBkaXNhYmxlZCB3aWRnZXQgdGhlbXNlbHZlcywgdXNpbmcgQ1NTIHF1ZXJ5IGA6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7fWBcbi8vIC0gTW9kaWZ5IGFsbCBjb2RlIHRoYXQgY2hlY2sgZGlzYWJsZWQgdGhyb3VnaCBcImRpc2FibGVkXCIgYXR0cmlidXRlIHRvIHVzZSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGluc3RlYWRcbi8vICAgLSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGhcbi8vIC0gSWYgdGhlIHdpZGdldCBpcyBjb250YWluZWQgYnkgYSA8Zm9ybT4sIHRoZSBkZXZlbG9wZXIgbmVlZCB0byBmaWx0ZXIgb3V0IHNvbWUgYG9uU3VibWl0YCBldmVudCBjYXVzZWQgYnkgdGhpcyB3aWRnZXRcblxuY29uc3QgQWNjZXNzaWJsZUJ1dHRvbiA9IGZvcndhcmRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQsIEFjY2Vzc2libGVCdXR0b25Qcm9wcz4oXG4gICh7ICdhcmlhLWhpZGRlbic6IGFyaWFIaWRkZW4sIGNoaWxkcmVuLCBkaXNhYmxlZCwgb25DbGljaywgdGFiSW5kZXgsIC4uLnByb3BzIH0sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHVzZVJlZigpO1xuXG4gICAgY29uc3QgcmVmID0gZm9yd2FyZGVkUmVmIHx8IHRhcmdldFJlZjtcblxuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICAgIG9uQ2xpY2s9e2Rpc2FibGVkID8gUFJFVkVOVF9ERUZBVUxUX0hBTkRMRVIgOiBvbkNsaWNrfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgdGFiSW5kZXg9e2Rpc2FibGVkID8gLTEgOiB0YWJJbmRleH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfVxuKTtcblxuQWNjZXNzaWJsZUJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic6IHVuZGVmaW5lZCxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgb25DbGljazogdW5kZWZpbmVkLFxuICB0YWJJbmRleDogdW5kZWZpbmVkXG59O1xuXG5BY2Nlc3NpYmxlQnV0dG9uLmRpc3BsYXlOYW1lID0gJ0FjY2Vzc2libGVCdXR0b24nO1xuXG5BY2Nlc3NpYmxlQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgJ2FyaWEtaGlkZGVuJzogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgLy8gVHlwZVNjcmlwdCBjbGFzcyBpcyBub3QgbWFwcGFibGUgdG8gUHJvcFR5cGVzLm9uZU9mKFsnYnV0dG9uJ10pXG4gIC8vIEB0cy1pZ25vcmVcbiAgdHlwZTogUHJvcFR5cGVzLm9uZU9mKFsnYnV0dG9uJ10pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFjY2Vzc2libGVCdXR0b247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFBZ0YsSUFBQUcsU0FBQTtBQUhoRjtBQUFBLFNBQUFDLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSCx3QkFBQU8sR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFB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
;