GoScrobble/web/node_modules/reactstrap/lib/CustomInput.js

98 lines
4.0 KiB
JavaScript
Raw Permalink Normal View History

2022-04-25 02:47:15 +00:00
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _utils = require("./utils");
var _CustomFileInput = _interopRequireDefault(require("./CustomFileInput"));
var propTypes = {
className: _propTypes.default.string,
id: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
type: _propTypes.default.string.isRequired,
label: _propTypes.default.node,
inline: _propTypes.default.bool,
valid: _propTypes.default.bool,
invalid: _propTypes.default.bool,
bsSize: _propTypes.default.string,
htmlFor: _propTypes.default.string,
cssModule: _propTypes.default.object,
children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.array, _propTypes.default.func]),
innerRef: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string, _propTypes.default.func])
};
function CustomInput(props) {
var className = props.className,
label = props.label,
inline = props.inline,
valid = props.valid,
invalid = props.invalid,
cssModule = props.cssModule,
children = props.children,
bsSize = props.bsSize,
innerRef = props.innerRef,
htmlFor = props.htmlFor,
attributes = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "label", "inline", "valid", "invalid", "cssModule", "children", "bsSize", "innerRef", "htmlFor"]);
var type = attributes.type;
var customClass = (0, _utils.mapToCssModules)((0, _classnames.default)(className, "custom-" + type, bsSize ? "custom-" + type + "-" + bsSize : false), cssModule);
var validationClassNames = (0, _utils.mapToCssModules)((0, _classnames.default)(invalid && "is-invalid", valid && "is-valid"), cssModule);
var labelHtmlFor = htmlFor || attributes.id;
if (type === "select") {
var _type = attributes.type,
_rest = (0, _objectWithoutPropertiesLoose2.default)(attributes, ["type"]);
return /*#__PURE__*/_react.default.createElement("select", (0, _extends2.default)({}, _rest, {
ref: innerRef,
className: (0, _classnames.default)(validationClassNames, customClass),
"aria-invalid": invalid
}), children);
}
if (type === "file") {
return /*#__PURE__*/_react.default.createElement(_CustomFileInput.default, props);
}
if (type !== "checkbox" && type !== "radio" && type !== "switch") {
return /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, attributes, {
ref: innerRef,
"aria-invalid": invalid,
className: (0, _classnames.default)(validationClassNames, customClass)
}));
}
var wrapperClasses = (0, _classnames.default)(customClass, (0, _utils.mapToCssModules)((0, _classnames.default)("custom-control", {
"custom-control-inline": inline
}), cssModule));
var hidden = attributes.hidden,
rest = (0, _objectWithoutPropertiesLoose2.default)(attributes, ["hidden"]);
return /*#__PURE__*/_react.default.createElement("div", {
className: wrapperClasses,
hidden: hidden || false
}, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, rest, {
type: type === "switch" ? "checkbox" : type,
ref: innerRef,
"aria-invalid": invalid,
className: (0, _classnames.default)(validationClassNames, (0, _utils.mapToCssModules)("custom-control-input", cssModule))
})), /*#__PURE__*/_react.default.createElement("label", {
className: (0, _utils.mapToCssModules)("custom-control-label", cssModule),
htmlFor: labelHtmlFor
}, label), children);
}
CustomInput.propTypes = propTypes;
var _default = CustomInput;
exports.default = _default;