UNPKG

botframework-webchat-component

Version:
100 lines (87 loc) 13.2 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _useEnterKeyHint = _interopRequireDefault(require("../hooks/internal/useEnterKeyHint")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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 || 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 <input type="text"> and <AccessibleInputText>: // - 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 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 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 AccessibleInputText = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) { var disabled = _ref.disabled, enterKeyHint = _ref.enterKeyHint, onChange = _ref.onChange, onFocus = _ref.onFocus, onKeyDown = _ref.onKeyDown, onKeyDownCapture = _ref.onKeyDownCapture, onKeyPress = _ref.onKeyPress, onSelect = _ref.onSelect, tabIndex = _ref.tabIndex, props = _objectWithoutProperties(_ref, ["disabled", "enterKeyHint", "onChange", "onFocus", "onKeyDown", "onKeyDownCapture", "onKeyPress", "onSelect", "tabIndex"]); var targetRef = (0, _react.useRef)(); var ref = forwardedRef || targetRef; (0, _useEnterKeyHint.default)(ref, enterKeyHint); return /*#__PURE__*/_react.default.createElement("input", _extends({ "aria-disabled": disabled || undefined, onChange: disabled ? undefined : onChange, onFocus: disabled ? undefined : onFocus, onKeyDown: disabled ? undefined : onKeyDown, onKeyDownCapture: disabled ? undefined : onKeyDownCapture, onKeyPress: disabled ? undefined : onKeyPress, onSelect: disabled ? undefined : onSelect, readOnly: disabled, ref: ref, tabIndex: disabled ? -1 : tabIndex }, props, { type: "text" })); }); AccessibleInputText.defaultProps = { disabled: undefined, enterKeyHint: undefined, onChange: undefined, onFocus: undefined, onKeyDown: undefined, onKeyDownCapture: undefined, onKeyPress: undefined, onSelect: undefined, tabIndex: undefined }; AccessibleInputText.displayName = 'AccessibleInputText'; AccessibleInputText.propTypes = { disabled: _propTypes.default.bool, enterKeyHint: _propTypes.default.string, onChange: _propTypes.default.func, onFocus: _propTypes.default.func, onKeyDown: _propTypes.default.func, onKeyDownCapture: _propTypes.default.func, onKeyPress: _propTypes.default.func, onSelect: _propTypes.default.func, tabIndex: _propTypes.default.number, type: _propTypes.default.oneOf(['text']).isRequired }; var _default = AccessibleInputText; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9BY2Nlc3NpYmxlSW5wdXRUZXh0LmpzIl0sIm5hbWVzIjpbIkFjY2Vzc2libGVJbnB1dFRleHQiLCJmb3J3YXJkZWRSZWYiLCJkaXNhYmxlZCIsImVudGVyS2V5SGludCIsIm9uQ2hhbmdlIiwib25Gb2N1cyIsIm9uS2V5RG93biIsIm9uS2V5RG93bkNhcHR1cmUiLCJvbktleVByZXNzIiwib25TZWxlY3QiLCJ0YWJJbmRleCIsInByb3BzIiwidGFyZ2V0UmVmIiwicmVmIiwidW5kZWZpbmVkIiwiZGVmYXVsdFByb3BzIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwic3RyaW5nIiwiZnVuYyIsIm51bWJlciIsInR5cGUiLCJvbmVPZiIsImlzUmVxdWlyZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBTUEsbUJBQW1CLGdCQUFHLHVCQUMxQixnQkFhRUMsWUFiRixFQWNLO0FBQUEsTUFaREMsUUFZQyxRQVpEQSxRQVlDO0FBQUEsTUFYREMsWUFXQyxRQVhEQSxZQVdDO0FBQUEsTUFWREMsUUFVQyxRQVZEQSxRQVVDO0FBQUEsTUFUREMsT0FTQyxRQVREQSxPQVNDO0FBQUEsTUFSREMsU0FRQyxRQVJEQSxTQVFDO0FBQUEsTUFQREMsZ0JBT0MsUUFQREEsZ0JBT0M7QUFBQSxNQU5EQyxVQU1DLFFBTkRBLFVBTUM7QUFBQSxNQUxEQyxRQUtDLFFBTERBLFFBS0M7QUFBQSxNQUpEQyxRQUlDLFFBSkRBLFFBSUM7QUFBQSxNQUhFQyxLQUdGOztBQUNILE1BQU1DLFNBQVMsR0FBRyxvQkFBbEI7QUFFQSxNQUFNQyxHQUFHLEdBQUdaLFlBQVksSUFBSVcsU0FBNUI7QUFFQSxnQ0FBZ0JDLEdBQWhCLEVBQXFCVixZQUFyQjtBQUVBLHNCQUNFO0FBQ0UscUJBQWVELFFBQVEsSUFBSVksU0FEN0I7QUFFRSxJQUFBLFFBQVEsRUFBRVosUUFBUSxHQUFHWSxTQUFILEdBQWVWLFFBRm5DO0FBR0UsSUFBQSxPQUFPLEVBQUVGLFFBQVEsR0FBR1ksU0FBSCxHQUFlVCxPQUhsQztBQUlFLElBQUEsU0FBUyxFQUFFSCxRQUFRLEdBQUdZLFNBQUgsR0FBZVIsU0FKcEM7QUFLRSxJQUFBLGdCQUFnQixFQUFFSixRQUFRLEdBQUdZLFNBQUgsR0FBZVAsZ0JBTDNDO0FBTUUsSUFBQSxVQUFVLEVBQUVMLFFBQVEsR0FBR1ksU0FBSCxHQUFlTixVQU5yQztBQU9FLElBQUEsUUFBUSxFQUFFTixRQUFRLEdBQUdZLFNBQUgsR0FBZUwsUUFQbkM7QUFRRSxJQUFBLFFBQVEsRUFBRVAsUUFSWjtBQVNFLElBQUEsR0FBRyxFQUFFVyxHQVRQO0FBVUUsSUFBQSxRQUFRLEVBQUVYLFFBQVEsR0FBRyxDQUFDLENBQUosR0FBUVE7QUFWNUIsS0FXTUMsS0FYTjtBQVlFLElBQUEsSUFBSSxFQUFDO0FBWlAsS0FERjtBQWdCRCxDQXRDeUIsQ0FBNUI7QUF5Q0FYLG1CQUFtQixDQUFDZSxZQUFwQixHQUFtQztBQUNqQ2IsRUFBQUEsUUFBUSxFQUFFWSxTQUR1QjtBQUVqQ1gsRUFBQUEsWUFBWSxFQUFFVyxTQUZtQjtBQUdqQ1YsRUFBQUEsUUFBUSxFQUFFVSxTQUh1QjtBQUlqQ1QsRUFBQUEsT0FBTyxFQUFFUyxTQUp3QjtBQUtqQ1IsRUFBQUEsU0FBUyxFQUFFUSxTQUxzQjtBQU1qQ1AsRUFBQUEsZ0JBQWdCLEVBQUVPLFNBTmU7QUFPakNOLEVBQUFBLFVBQVUsRUFBRU0sU0FQcUI7QUFRakNMLEVBQUFBLFFBQVEsRUFBRUssU0FSdUI7QUFTakNKLEVBQUFBLFFBQVEsRUFBRUk7QUFUdUIsQ0FBbkM7QUFZQWQsbUJBQW1CLENBQUNnQixXQUFwQixHQUFrQyxxQkFBbEM7QUFFQWhCLG1CQUFtQixDQUFDaUIsU0FBcEIsR0FBZ0M7QUFDOUJmLEVBQUFBLFFBQVEsRUFBRWdCLG1CQUFVQyxJQURVO0FBRTlCaEIsRUFBQUEsWUFBWSxFQUFFZSxtQkFBVUUsTUFGTTtBQUc5QmhCLEVBQUFBLFFBQVEsRUFBRWMsbUJBQVVHLElBSFU7QUFJOUJoQixFQUFBQSxPQUFPLEVBQUVhLG1CQUFVRyxJQUpXO0FBSzlCZixFQUFBQSxTQUFTLEVBQUVZLG1CQUFVRyxJQUxTO0FBTTlCZCxFQUFBQSxnQkFBZ0IsRUFBRVcsbUJBQVVHLElBTkU7QUFPOUJiLEVBQUFBLFVBQVUsRUFBRVUsbUJBQVVHLElBUFE7QUFROUJaLEVBQUFBLFFBQVEsRUFBRVMsbUJBQVVHLElBUlU7QUFTOUJYLEVBQUFBLFFBQVEsRUFBRVEsbUJBQVVJLE1BVFU7QUFVOUJDLEVBQUFBLElBQUksRUFBRUwsbUJBQVVNLEtBQVYsQ0FBZ0IsQ0FBQyxNQUFELENBQWhCLEVBQTBCQztBQVZGLENBQWhDO2VBYWV6QixtQiIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWy0xXSB9XSAqL1xuXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHVzZUVudGVyS2V5SGludCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VFbnRlcktleUhpbnQnO1xuXG4vLyBEaWZmZXJlbmNlcyBiZXR3ZWVuIDxpbnB1dCB0eXBlPVwidGV4dFwiPiBhbmQgPEFjY2Vzc2libGVJbnB1dFRleHQ+OlxuLy8gLSBEaXNhYmxlIGJlaGF2aW9yXG4vLyAgIC0gV2hlbiB0aGUgd2lkZ2V0IGlzIGRpc2FibGVkXG4vLyAgICAgLSBTZXQgXCJhcmlhLWRpc2FibGVkXCIgYXR0cmlidXRlIHRvIFwidHJ1ZVwiXG4vLyAgICAgLSBTZXQgXCJyZWFkb25seVwiIGF0dHJpYnV0ZVxuLy8gICAgIC0gU2V0IFwidGFiSW5kZXhcIiB0byAtMVxuLy8gICAgIC0gUmVtb3ZlIFwib25DaGFuZ2VcIiBoYW5kbGVyXG4vLyAgIC0gV2h5IHRoaXMgaXMgbmVlZGVkXG4vLyAgICAgLSBCcm93c2VyIGNvbXBhdGliaWxpdHk6IHdoZW4gdGhlIHdpZGdldCBpcyBkaXNhYmxlZCwgZGlmZmVyZW50IGJyb3dzZXIgc2VuZCBmb2N1cyB0byBkaWZmZXJlbnQgcGxhY2VzXG4vLyAgICAgLSBXaGVuIHRoZSB3aWRnZXQgaXMgZGlzYWJsZWQsIGl0J3MgcmVhc29uYWJsZSB0byBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSB3aWRnZXQgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lXG4vLyAgICAgICAtIFdoZW4gdGhlIHVzZXIgcHJlc3NlcyBUQUIgYWZ0ZXIgdGhlIGN1cnJlbnQgd2lkZ2V0IGlzIGRpc2FibGVkLCBpdCBzaG91bGQganVtcCB0byB0aGUgbmV4dCBub24tZGlzYWJsZWQgd2lkZ2V0XG5cbi8vIERldmVsb3BlcnMgdXNpbmcgdGhpcyBhY2Nlc3NpYmxlIHdpZGdldCB3aWxsIG5lZWQgdG86XG4vLyAtIFN0eWxlIHRoZSBkaXNhYmxlZCB3aWRnZXQgdGhlbXNlbHZlcywgdXNpbmcgQ1NTIHF1ZXJ5IGA6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7fWBcbi8vIC0gTW9kaWZ5IGFsbCB0aGUgY29kZSB0aGF0IGNoZWNrcyBkaXNhYmxlZCB0aHJvdWdoIHRoZSBcImRpc2FibGVkXCIgYXR0cmlidXRlIHRvIHVzZSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGluc3RlYWRcbi8vICAgLSBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGhcbi8vIC0gSWYgdGhlIHdpZGdldCBpcyBjb250YWluZWQgYnkgYSA8Zm9ybT4sIHRoZSBkZXZlbG9wZXIgbmVlZCB0byBmaWx0ZXIgb3V0IHNvbWUgYG9uU3VibWl0YCBldmVudCBjYXVzZWQgYnkgdGhpcyB3aWRnZXRcblxuY29uc3QgQWNjZXNzaWJsZUlucHV0VGV4dCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGVudGVyS2V5SGludCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uS2V5RG93bkNhcHR1cmUsXG4gICAgICBvbktleVByZXNzLFxuICAgICAgb25TZWxlY3QsXG4gICAgICB0YWJJbmRleCxcbiAgICAgIC4uLnByb3BzXG4gICAgfSxcbiAgICBmb3J3YXJkZWRSZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdXNlUmVmKCk7XG5cbiAgICBjb25zdCByZWYgPSBmb3J3YXJkZWRSZWYgfHwgdGFyZ2V0UmVmO1xuXG4gICAgdXNlRW50ZXJLZXlIaW50KHJlZiwgZW50ZXJLZXlIaW50KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8aW5wdXRcbiAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICBvbkNoYW5nZT17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkZvY3VzfVxuICAgICAgICBvbktleURvd249e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlEb3dufVxuICAgICAgICBvbktleURvd25DYXB0dXJlPXtkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IG9uS2V5RG93bkNhcHR1cmV9XG4gICAgICAgIG9uS2V5UHJlc3M9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25LZXlQcmVzc31cbiAgICAgICAgb25TZWxlY3Q9e2Rpc2FibGVkID8gdW5kZWZpbmVkIDogb25TZWxlY3R9XG4gICAgICAgIHJlYWRPbmx5PXtkaXNhYmxlZH1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHRhYkluZGV4PXtkaXNhYmxlZCA/IC0xIDogdGFiSW5kZXh9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LmRlZmF1bHRQcm9wcyA9IHtcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgZW50ZXJLZXlIaW50OiB1bmRlZmluZWQsXG4gIG9uQ2hhbmdlOiB1bmRlZmluZWQsXG4gIG9uRm9jdXM6IHVuZGVmaW5lZCxcbiAgb25LZXlEb3duOiB1bmRlZmluZWQsXG4gIG9uS2V5RG93bkNhcHR1cmU6IHVuZGVmaW5lZCxcbiAgb25LZXlQcmVzczogdW5kZWZpbmVkLFxuICBvblNlbGVjdDogdW5kZWZpbmVkLFxuICB0YWJJbmRleDogdW5kZWZpbmVkXG59O1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LmRpc3BsYXlOYW1lID0gJ0FjY2Vzc2libGVJbnB1dFRleHQnO1xuXG5BY2Nlc3NpYmxlSW5wdXRUZXh0LnByb3BUeXBlcyA9IHtcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBlbnRlcktleUhpbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bkNhcHR1cmU6IFByb3BUeXBlcy5mdW5jLFxuICBvbktleVByZXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgdHlwZTogUHJvcFR5cGVzLm9uZU9mKFsndGV4dCddKS5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY2Nlc3NpYmxlSW5wdXRUZXh0O1xuIl19