@wordpress/components
Version:
UI components for WordPress.
81 lines (67 loc) • 2.04 kB
JavaScript
;
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