import { __extends } from "tslib";
import { jsx as _jsx } from "react/jsx-runtime";
import { createRef, PureComponent } from 'react';
var FileInput = (function (_super) {
    __extends(FileInput, _super);
    function FileInput() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.inputRef = createRef();
        _this.open = function () {
            _this.inputRef.current && _this.inputRef.current.click();
        };
        _this.onFileInputChange = function (evt) {
            evt.preventDefault();
            evt.stopPropagation();
            if (evt.target.files) {
                var files = Array.from(evt.target.files);
                _this.props.onChange(files);
            }
        };
        _this.onFileInputClick = function () {
            if (_this.inputRef.current) {
                _this.inputRef.current.value = '';
            }
        };
        return _this;
    }
    FileInput.prototype.render = function () {
        var _a = this.props, remainAmount = _a.remainAmount, accept = _a.accept, multiple = _a.multiple, disabled = _a.disabled;
        var isDisabled = disabled;
        var isMultiple = multiple && remainAmount > 1;
        return (_jsx("input", { hidden: true, ref: this.inputRef, type: "file", disabled: isDisabled, multiple: isMultiple, accept: accept, onClick: this.onFileInputClick, onChange: this.onFileInputChange, "data-zv": 'v10.0.11' }, void 0));
    };
    return FileInput;
}(PureComponent));
export default FileInput;
