UNPKG

@wordpress/components

Version:
81 lines (67 loc) 2.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classnames = _interopRequireDefault(require("classnames")); /** * External dependencies */ /** * WordPress dependencies */ class TokenInput extends _element.Component { constructor() { super(...arguments); this.onChange = this.onChange.bind(this); this.bindInput = this.bindInput.bind(this); } focus() { this.input.focus(); } hasFocus() { return this.input === this.input.ownerDocument.activeElement; } bindInput(ref) { this.input = ref; } onChange(event) { this.props.onChange({ value: event.target.value }); } render() { const { value, isExpanded, instanceId, selectedSuggestionIndex, className, ...props } = this.props; const size = value ? value.length + 1 : 0; return (0, _element.createElement)("input", (0, _extends2.default)({ ref: this.bindInput, id: `components-form-token-input-${instanceId}`, type: "text" }, props, { value: value || '', onChange: this.onChange, size: size, className: (0, _classnames.default)(className, 'components-form-token-field__input'), autoComplete: "off", role: "combobox", "aria-expanded": isExpanded, "aria-autocomplete": "list", "aria-owns": isExpanded ? `components-form-token-suggestions-${instanceId}` : undefined, "aria-activedescendant": selectedSuggestionIndex !== -1 ? `components-form-token-suggestions-${instanceId}-${selectedSuggestionIndex}` : undefined, "aria-describedby": `components-form-token-suggestions-howto-${instanceId}` })); } } var _default = TokenInput; exports.default = _default; //# sourceMappingURL=token-input.js.map