"use strict";
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.InputGroup = void 0;
var react_addons_create_fragment_1 = __importDefault(require("react-addons-create-fragment"));
var react_1 = __importDefault(require("react"));
var bem_react_classname_1 = require("bem-react-classname");
var cn_1 = require("../cn");
/**
 * Компонент группы полей для текстового ввода.
 */
var InputGroup = /** @class */ (function (_super) {
    __extends(InputGroup, _super);
    function InputGroup() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.cn = bem_react_classname_1.createCn('input-group');
        return _this;
    }
    InputGroup.prototype.render = function () {
        var _this = this;
        var children = null;
        var inputGroupParts = {};
        if (this.props.children) {
            children = (this.props.children.length
                ? this.props.children
                : [this.props.children]);
        }
        if (children) {
            react_1.default.Children.forEach(children, function (input, index) {
                input = react_1.default.cloneElement(input, {
                    width: _this.props.width,
                });
                inputGroupParts["input-" + index] = (react_1.default.createElement("span", { className: _this.cn('input-case', {
                        invalid: !!input.props.error,
                        disabled: input.props.disabled,
                    }) }, input));
            });
        }
        return (react_1.default.createElement("span", { className: this.cn({ width: this.props.width }) + " control-group", id: this.props.id, role: "group", tabIndex: -1, "data-test-id": this.props['data-test-id'] }, react_addons_create_fragment_1.default(inputGroupParts)));
    };
    return InputGroup;
}(react_1.default.PureComponent));
exports.InputGroup = InputGroup;
exports.default = cn_1.withTheme(InputGroup);

//# sourceMappingURL=input-group.js.map
