UNPKG

botframework-webchat-component

Version:
78 lines (75 loc) 15.7 kB
"use strict"; 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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