UNPKG

botframework-webchat-component

Version:
105 lines (102 loc) 20.1 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 = ["className", "disabled", "inputMode", "onChange", "onFocus", "onKeyDown", "onKeyDownCapture", "onKeyPress", "onSelect", "placeholder", "readOnly", "rows", "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; } // Differences between <textarea> and <AccessibleTextArea>: // - Disable behavior // - When the widget is disabled // - Set "aria-disabled" attribute to "true" // - Set "readonly" attribute // - Set "tabIndex" to -1 // - Remove "onChange" handler // - Why this is needed // - Browser compatibility: when the widget is disabled, different browser send focus to different places // - When the widget is 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 move the focus 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 the code that checks disabled through the "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 AccessibleTextArea = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) { var className = _ref.className, disabled = _ref.disabled, inputMode = _ref.inputMode, onChange = _ref.onChange, onFocus = _ref.onFocus, onKeyDown = _ref.onKeyDown, onKeyDownCapture = _ref.onKeyDownCapture, onKeyPress = _ref.onKeyPress, onSelect = _ref.onSelect, placeholder = _ref.placeholder, readOnly = _ref.readOnly, rows = _ref.rows, tabIndex = _ref.tabIndex, props = _objectWithoutProperties(_ref, _excluded); var targetRef = (0, _react.useRef)(); var ref = forwardedRef || targetRef; return /*#__PURE__*/_react.default.createElement("textarea", _extends({ "aria-disabled": disabled || undefined, className: className, inputMode: inputMode, onChange: disabled ? undefined : onChange, onFocus: disabled ? undefined : onFocus, onKeyDown: disabled ? undefined : onKeyDown, onKeyDownCapture: disabled ? undefined : onKeyDownCapture, onKeyPress: disabled ? undefined : onKeyPress, onSelect: disabled ? undefined : onSelect, placeholder: placeholder, readOnly: readOnly || disabled, ref: ref, rows: rows, tabIndex: disabled ? -1 : tabIndex }, props)); }); AccessibleTextArea.defaultProps = { className: undefined, disabled: undefined, inputMode: undefined, onChange: undefined, onFocus: undefined, onKeyDown: undefined, onKeyDownCapture: undefined, onKeyPress: undefined, onSelect: undefined, placeholder: undefined, readOnly: undefined, rows: undefined, tabIndex: undefined, value: undefined }; AccessibleTextArea.displayName = 'AccessibleTextArea'; AccessibleTextArea.propTypes = { className: _propTypes.default.string, disabled: _propTypes.default.bool, inputMode: _propTypes.default.oneOf(['text', 'none', 'tel', 'url', 'email', 'numeric', 'decimal', 'search']), onChange: _propTypes.default.func, onFocus: _propTypes.default.func, onKeyDown: _propTypes.default.func, onKeyDownCapture: _propTypes.default.func, onKeyPress: _propTypes.default.func, onSelect: _propTypes.default.func, placeholder: _propTypes.default.string, readOnly: _propTypes.default.bool, rows: _propTypes.default.number, tabIndex: _propTypes.default.number, value: _propTypes.default.string }; var _default = AccessibleTextArea; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9leGNsdWRlZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZXhjbHVkZWQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInNvdXJjZVN5bWJvbEtleXMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwia2V5cyIsIkFjY2Vzc2libGVUZXh0QXJlYSIsImZvcndhcmRSZWYiLCJfcmVmIiwiZm9yd2FyZGVkUmVmIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJpbnB1dE1vZGUiLCJvbkNoYW5nZSIsIm9uRm9jdXMiLCJvbktleURvd24iLCJvbktleURvd25DYXB0dXJlIiwib25LZXlQcmVzcyIsIm9uU2VsZWN0IiwicGxhY2Vob2xkZXIiLCJyZWFkT25seSIsInJvd3MiLCJ0YWJJbmRleCIsInByb3BzIiwidGFyZ2V0UmVmIiwidXNlUmVmIiwicmVmIiwiY3JlYXRlRWxlbWVudCIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsInZhbHVlIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJib29sIiwib25lT2YiLCJmdW5jIiwibnVtYmVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVXRpbHMvQWNjZXNzaWJsZVRleHRBcmVhLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTFdIH1dICovXG5cbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBGb2N1c0V2ZW50SGFuZGxlcixcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlYWN0RXZlbnRIYW5kbGVyLFxuICB1c2VSZWZcbn0gZnJvbSAncmVhY3QnO1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDx0ZXh0YXJlYT4gYW5kIDxBY2Nlc3NpYmxlVGV4dEFyZWE+OlxuLy8gLSBEaXNhYmxlIGJlaGF2aW9yXG4vLyAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkXG4vLyAgICAgLSBTZXQgXCJhcmlhLWRpc2FibGVkXCIgYXR0cmlidXRlIHRvIFwidHJ1ZVwiXG4vLyAgICAgLSBTZXQgXCJyZWFkb25seVwiIGF0dHJpYnV0ZVxuLy8gICAgIC0gU2V0IFwidGFiSW5kZXhcIiB0byAtMVxuLy8gICAgIC0gUmVtb3ZlIFwib25DaGFuZ2VcIiBoYW5kbGVyXG4vLyAgIC0gV2h5IHRoaXMgaXMgbmVlZGVkXG4vLyAgICAgLSBCcm93c2VyIGNvbXBhdGliaWxpdHk6IHdoZW4gdGhlIHdpZGdldCBpcyBkaXNhYmxlZCwgZGlmZmVyZW50IGJyb3dzZXIgc2VuZCBmb2N1cyB0byBkaWZmZXJlbnQgcGxhY2VzXG4vLyAgICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0J3MgcmVhc29uYWJsZSB0byBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSB3aWRnZXQgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lXG4vLyAgICAgICAtIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyBUQUIgYWZ0ZXIgdGhlIGN1cnJlbnQgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCBzaG91bGQgbW92ZSB0aGUgZm9jdXMgdG8gdGhlIG5leHQgbm9uLWRpc2FibGVkIHdpZGdldFxuXG4vLyBEZXZlbG9wZXJzIHVzaW5nIHRoaXMgYWNjZXNzaWJsZSB3aWRnZXQgd2lsbCBuZWVkIHRvOlxuLy8gLSBTdHlsZSB0aGUgZGlzYWJsZWQgd2lkZ2V0IHRoZW1zZWx2ZXMgdXNpbmcgQ1NTIHF1ZXJ5IGA6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7fWBcbi8vIC0gTW9kaWZ5IGFsbCB0aGUgY29kZSB0aGF0IGNoZWNrcyBkaXNhYmxlZCB0aHJvdWdoIHRoZSBcImRpc2FibGVkXCIgYXR0cmlidXRlIHRvIHVzZSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGluc3RlYWRcbi8vICAgLSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGhcbi8vIC0gSWYgdGhlIHdpZGdldCBpcyBjb250YWluZWQgYnkgYSA8Zm9ybT4sIHRoZSBkZXZlbG9wZXIgbmVlZCB0byBmaWx0ZXIgb3V0IHNvbWUgYG9uU3VibWl0YCBldmVudCBjYXVzZWQgYnkgdGhpcyB3aWRnZXRcblxudHlwZSBBY2Nlc3NpYmxlVGV4dEFyZWFQcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlucHV0TW9kZT86ICd0ZXh0JyB8ICdub25lJyB8ICd0ZWwnIHwgJ3VybCcgfCAnZW1haWwnIHwgJ251bWVyaWMnIHwgJ2RlY2ltYWwnIHwgJ3NlYXJjaCc7XG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIG9uS2V5RG93bj86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICBvbktleURvd25DYXB0dXJlPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIG9uS2V5UHJlc3M/OiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcbiAgb25TZWxlY3Q/OiBSZWFjdEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgcm93cz86IG51bWJlcjtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIHZhbHVlPzogc3RyaW5nO1xufTtcblxuY29uc3QgQWNjZXNzaWJsZVRleHRBcmVhID0gZm9yd2FyZFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50LCBBY2Nlc3NpYmxlVGV4dEFyZWFQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjbGFzc05hbWUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGlucHV0TW9kZSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uS2V5RG93bkNhcHR1cmUsXG4gICAgICBvbktleVByZXNzLFxuICAgICAgb25TZWxlY3QsXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgcm93cyxcbiAgICAgIHRhYkluZGV4LFxuICAgICAgLi4ucHJvcHNcbiAgICB9LFxuICAgIGZvcndhcmRlZFJlZlxuICApID0+IHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB1c2VSZWYoKTtcblxuICAgIGNvbnN0IHJlZiA9IGZvcndhcmRlZFJlZiB8fCB0YXJnZXRSZWY7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIGlucHV0TW9kZT17aW5wdXRNb2RlfVxuICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkZvY3VzfVxuICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlEb3dufVxuICAgICAgICBvbktleURvd25DYXB0dXJlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uS2V5RG93bkNhcHR1cmV9XG4gICAgICAgIG9uS2V5UHJlc3M9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlQcmVzc31cbiAgICAgICAgb25TZWxlY3Q9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25TZWxlY3R9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5IHx8IGRpc2FibGVkfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgdGFiSW5kZXg9e2Rpc2FibGVkID8gLTEgOiB0YWJJbmRleH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5BY2Nlc3NpYmxlVGV4dEFyZWEuZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgaW5wdXRNb2RlOiB1bmRlZmluZWQsXG4gIG9uQ2hhbmdlOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZCxcbiAgb25LZXlEb3duOiB1bmRlZmluZWQsXG4gIG9uS2V5RG93bkNhcHR1cmU6IHVuZGVmaW5lZCxcbiAgb25LZXlQcmVzczogdW5kZWZpbmVkLFxuICBvblNlbGVjdDogdW5kZWZpbmVkLFxuICBwbGFjZWhvbGRlcjogdW5kZWZpbmVkLFxuICByZWFkT25seTogdW5kZWZpbmVkLFxuICByb3dzOiB1bmRlZmluZWQsXG4gIHRhYkluZGV4OiB1bmRlZmluZWQsXG4gIHZhbHVlOiB1bmRlZmluZWRcbn07XG5cbkFjY2Vzc2libGVUZXh0QXJlYS5kaXNwbGF5TmFtZSA9ICdBY2Nlc3NpYmxlVGV4dEFyZWEnO1xuXG5BY2Nlc3NpYmxlVGV4dEFyZWEucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgaW5wdXRNb2RlOiBQcm9wVHlwZXMub25lT2YoWyd0ZXh0JywgJ25vbmUnLCAndGVsJywgJ3VybCcsICdlbWFpbCcsICdudW1lcmljJywgJ2RlY2ltYWwnLCAnc2VhcmNoJ10pLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBvbktleURvd246IFByb3BUeXBlcy5mdW5jLFxuICBvbktleURvd25DYXB0dXJlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25LZXlQcmVzczogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgcm93czogUHJvcFR5cGVzLm51bWJlcixcbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY2Nlc3NpYmxlVGV4dEFyZWE7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJ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