@flexis/ui
Version:
Styleless React Components
114 lines (99 loc) • 6.51 kB
JavaScript
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
import _extends from "@babel/runtime-corejs3/helpers/extends";
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/objectWithoutProperties";
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck";
import _createClass from "@babel/runtime-corejs3/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf";
import _inherits from "@babel/runtime-corejs3/helpers/inherits";
import { __decorate } from "tslib";
import React from 'react';
var _createElement = React.createElement;
var PureComponent = React.PureComponent,
Children = React.Children,
cloneElement = React.cloneElement,
isValidElement = React.isValidElement;
import PropTypes from 'prop-types';
import { Bind } from '../../helpers';
import isKeyboardClick from '../common/isKeyboardClick';
import { style, classes } from './FileSelect.st.css';
var FileSelect =
/** @class */
function () {
var FileSelect = /*#__PURE__*/function (_PureComponent) {
_inherits(FileSelect, _PureComponent);
function FileSelect() {
_classCallCheck(this, FileSelect);
return _possibleConstructorReturn(this, _getPrototypeOf(FileSelect).apply(this, arguments));
}
_createClass(FileSelect, [{
key: "render",
value: function render() {
var _this = this;
var _this$props = this.props,
className = _this$props.className,
elementRef = _this$props.elementRef,
styleProp = _this$props.style,
disabled = _this$props.disabled,
children = _this$props.children,
props = _objectWithoutProperties(_this$props, ["className", "elementRef", "style", "disabled", "children"]);
return _createElement("span", {
className: style(classes.root, className),
style: styleProp
}, _createElement("input", _extends({
ref: elementRef
}, props, {
className: classes.input,
tabIndex: -1,
type: "file",
onChange: this.onChange,
disabled: disabled
})), _mapInstanceProperty(Children).call(Children, children, function (child, i) {
if (i === 0 && isValidElement(child)) {
return cloneElement(child, {
'onKeyPress': _this.onFaceKeyPress,
'aria-disabled': disabled,
'disabled': disabled
});
}
return child;
}));
}
}, {
key: "onChange",
value: function onChange(event) {
var onChange = this.props.onChange;
if (typeof onChange === 'function') {
var nextValue = _Array$from(event.currentTarget.files);
onChange(nextValue, event);
}
}
}, {
key: "onFaceKeyPress",
value: function onFaceKeyPress(event) {
var currentTarget = event.currentTarget,
key = event.key;
if (isKeyboardClick(key)) {
var input = currentTarget.previousElementSibling;
input.click();
}
}
}]);
return FileSelect;
}(PureComponent);
process.env.NODE_ENV !== "production" ? FileSelect.propTypes = {
elementRef: PropTypes.func,
style: PropTypes.object,
onChange: PropTypes.func,
disabled: PropTypes.bool,
children: PropTypes.node
} : void 0;
FileSelect.defaultProps = {
disabled: false
};
__decorate([Bind()], FileSelect.prototype, "onChange", null);
return FileSelect;
}();
export default FileSelect;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0ZpbGVTZWxlY3QvRmlsZVNlbGVjdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBUCxNQVlPLE9BWlA7Ozs7OztBQWFBLE9BQU8sU0FBUCxNQUFzQixZQUF0QjtBQUNBLFNBRUMsSUFGRCxRQUdPLGVBSFA7QUFJQSxPQUFPLGVBQVAsTUFBNEIsMkJBQTVCO0FBQ0EsU0FDQyxLQURELEVBRUMsT0FGRCxRQUdPLHFCQUhQOztBQWtCQSxJQUFBLFVBQUE7QUFBQTtBQUFBLFlBQUE7QUFBQSxNQUFxQixVQUFyQjtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsK0JBY087QUFBQTs7QUFBQSwwQkFTRCxLQUFLLEtBVEo7QUFBQSxZQUdKLFNBSEksZUFHSixTQUhJO0FBQUEsWUFJSixVQUpJLGVBSUosVUFKSTtBQUFBLFlBS0csU0FMSCxlQUtKLEtBTEk7QUFBQSxZQU1KLFFBTkksZUFNSixRQU5JO0FBQUEsWUFPSixRQVBJLGVBT0osUUFQSTtBQUFBLFlBUUQsS0FSQzs7QUFXTCxlQUNDO0FBQ0MsVUFBQSxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFULEVBQWUsU0FBZixDQURqQjtBQUVDLFVBQUEsS0FBSyxFQUFFO0FBRlIsV0FJQztBQUNDLFVBQUEsR0FBRyxFQUFFO0FBRE4sV0FFSyxLQUZMO0FBR0MsVUFBQSxTQUFTLEVBQUUsT0FBTyxDQUFDLEtBSHBCO0FBSUMsVUFBQSxRQUFRLEVBQUUsQ0FBQyxDQUpaO0FBS0MsVUFBQSxJQUFJLEVBQUMsTUFMTjtBQU1DLFVBQUEsUUFBUSxFQUFFLEtBQUssUUFOaEI7QUFPQyxVQUFBLFFBQVEsRUFBRTtBQVBYLFdBSkQsRUFhRSxxQkFBQSxRQUFRLE1BQVIsQ0FBQSxRQUFRLEVBQUssUUFBTCxFQUFlLFVBQUMsS0FBRCxFQUFRLENBQVIsRUFBYTtBQUVwQyxjQUFJLENBQUMsS0FBSyxDQUFOLElBQVcsY0FBYyxDQUFDLEtBQUQsQ0FBN0IsRUFBc0M7QUFDckMsbUJBQU8sWUFBWSxDQUNsQixLQURrQixFQUVsQjtBQUNDLDRCQUFpQixLQUFJLENBQUMsY0FEdkI7QUFFQywrQkFBaUIsUUFGbEI7QUFHQywwQkFBaUI7QUFIbEIsYUFGa0IsQ0FBbkI7QUFRQTs7QUFFRCxpQkFBTyxLQUFQO0FBQ0EsU0FkUSxDQWJWLENBREQ7QUErQkE7QUF4REY7QUFBQTtBQUFBLCtCQTJEa0IsS0EzRGxCLEVBMkRzRDtBQUFBLFlBR25ELFFBSG1ELEdBSWhELEtBQUssS0FKMkMsQ0FHbkQsUUFIbUQ7O0FBTXBELFlBQUksT0FBTyxRQUFQLEtBQW9CLFVBQXhCLEVBQW9DO0FBRW5DLGNBQU0sU0FBUyxHQUFHLFlBQVcsS0FBSyxDQUFDLGFBQU4sQ0FBb0IsS0FBL0IsQ0FBbEI7O0FBRUEsVUFBQSxRQUFRLENBQUMsU0FBRCxFQUFZLEtBQVosQ0FBUjtBQUNBO0FBQ0Q7QUF2RUY7QUFBQTtBQUFBLHFDQXlFd0IsS0F6RXhCLEVBeUU0QztBQUFBLFlBR3pDLGFBSHlDLEdBS3RDLEtBTHNDLENBR3pDLGFBSHlDO0FBQUEsWUFJekMsR0FKeUMsR0FLdEMsS0FMc0MsQ0FJekMsR0FKeUM7O0FBTzFDLFlBQUksZUFBZSxDQUFDLEdBQUQsQ0FBbkIsRUFBMEI7QUFFekIsY0FBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLHNCQUE1QjtBQUVBLFVBQUEsS0FBSyxDQUFDLEtBQU47QUFDQTtBQUNEO0FBdEZGOztBQUFBO0FBQUEsSUFBd0MsYUFBeEM7O0FBRVEsMENBQUEsVUFBQSxDQUFBLFNBQUEsR0FBWTtBQUNsQixJQUFBLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFESjtBQUVsQixJQUFBLEtBQUssRUFBTyxTQUFTLENBQUMsTUFGSjtBQUdsQixJQUFBLFFBQVEsRUFBSSxTQUFTLENBQUMsSUFISjtBQUlsQixJQUFBLFFBQVEsRUFBSSxTQUFTLENBQUMsSUFKSjtBQUtsQixJQUFBLFFBQVEsRUFBSSxTQUFTLENBQUM7QUFMSixHQUFaO0FBUUEsRUFBQSxVQUFBLENBQUEsWUFBQSxHQUFlO0FBQ3JCLElBQUEsUUFBUSxFQUFFO0FBRFcsR0FBZjs7QUFpRFAsRUFBQSxVQUFBLENBQUEsQ0FEQyxJQUFJLEVBQ0wsQ0FBQSxFLG9CQUFBLEUsVUFBQSxFQVlDLElBWkQsQ0FBQTs7QUE0QkQsU0FBQSxVQUFBO0FBQUMsQ0F2RkQsRUFBQTs7ZUFBcUIsVSIsInNvdXJjZVJvb3QiOiIifQ==