"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.ComboBox = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = _interopRequireDefault(require("react"));

var _CustomComboBox = require("../../internal/CustomComboBox");





var _rootNode = require("../../lib/rootNode");
var _createPropsGetter = require("../../lib/createPropsGetter");var _class, _ComboBox;








































































































































































































/**
 * Комбобокс — поле ввода с выпадающим списком подсказок, из которых пользователь может выбрать нужное. Открыть выпадающий список можно ещё до начала ввода значения, нажав на поле. */var

ComboBox = exports.ComboBox = (0, _rootNode.rootNode)(_class = (_ComboBox = /*#__PURE__*/function (_React$Component) {function ComboBox() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.















    getProps = (0, _createPropsGetter.createPropsGetter)(ComboBox.defaultProps);_this.

    comboboxElement = null;_this.





















































































    customComboBoxRef = function (element) {
      _this.setRootNode(element);
      _this.comboboxElement = element;
    };return _this;}(0, _inheritsLoose2.default)(ComboBox, _React$Component);var _proto = ComboBox.prototype; /** Программно устанавливает фокус на комбобокс.
   * @public
   */_proto.focus = function focus(opts) {if (this.comboboxElement) {this.comboboxElement.focus(opts);}} /** Программно снимает фокус с комбобокса.
   * @public
   */;_proto.blur = function blur() {if (this.comboboxElement) {this.comboboxElement.blur();}} /** Открывает список значений и запускает поиск.
   *
   * По умолчанию для поиска используется введенное в поле значение или результат `valueToString(value)`.
   *
   * @public
   * @param {string} [query] Текст поиска.`
   */;_proto.search = function search(query) {if (this.comboboxElement) {this.comboboxElement.search(query);}} /** Отменяет текущий поиск — останавливает фильтрацию и очищает результаты поиска.
   * @public
   */;_proto.cancelSearch = function cancelSearch() {if (this.comboboxElement) {this.comboboxElement.cancelSearch();}} /** Открывает выпадающий список.
   * @public
   */;_proto.open = function open() {if (this.comboboxElement) {this.comboboxElement.open();}} /** Закрывает выпадающий список.
   * @public
   */;_proto.close = function close() {if (this.comboboxElement) {this.comboboxElement.close();}} /**
   * Переводит фокус в поле, если ещё не в фокусе, и выделяет весь текст в нём.
   * @public
   */;_proto.selectInputText = function selectInputText() {if (this.comboboxElement) {this.comboboxElement.selectInputText();}} /**
   * Сбрасывает введённое пользователем значение без изменения `value`.
   * @public
   */;_proto.reset = function reset() {if (this.comboboxElement) {this.comboboxElement.reset();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.getProps(), { size: this.props.size, ref: this.customComboBoxRef }));};return ComboBox;}(_react.default.Component), _ComboBox.__KONTUR_REACT_UI__ = 'ComboBox', _ComboBox.displayName = 'ComboBox', _ComboBox.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true, showClearIcon: 'never', viewMode: 'singleline' }, _ComboBox)) || _class;