@6thquake/react-material
Version:
React components that implement Google's Material Design.
103 lines (77 loc) • 3.76 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _FormItem = _interopRequireDefault(require("./FormItem"));
var convertValidationsToObject = function convertValidationsToObject(validations) {
if (typeof validations === 'string') {
return validations.split(/,(?![^{[]*[}\]])/g).reduce(function (validationsAccumulator, validation) {
var args = validation.split(':');
var validateMethod = args.shift();
args = args.map(function (arg) {
try {
return JSON.parse(arg);
} catch (e) {
return arg; // It is a string if it can not parse it
}
});
if (args.length > 1) {
throw new Error('Formsy does not support multiple args on string validations. Use object format of validations instead.');
} // Avoid parameter reassignment
var validationsAccumulatorCopy = (0, _extends2.default)({}, validationsAccumulator);
validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;
return validationsAccumulatorCopy;
}, {});
}
return validations || {};
};
function withFormItem(WrappedComponent) {
var FormItemComponent =
/*#__PURE__*/
function (_Component) {
(0, _inherits2.default)(FormItemComponent, _Component);
function FormItemComponent() {
(0, _classCallCheck2.default)(this, FormItemComponent);
return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FormItemComponent).apply(this, arguments));
}
(0, _createClass2.default)(FormItemComponent, [{
key: "render",
value: function render() {
var _this$props = this.props,
label = _this$props.label,
InputLabelProps = _this$props.InputLabelProps,
rest = (0, _objectWithoutProperties2.default)(_this$props, ["label", "InputLabelProps"]);
var required = false;
if (this.props.required || convertValidationsToObject(this.props.validations).isRequired) {
required = true;
}
var others = {};
if (!InputLabelProps || InputLabelProps.direction === 'standard') {
others.label = label;
}
return _react.default.createElement(_FormItem.default, {
label: label,
required: required,
InputLabelProps: InputLabelProps
}, _react.default.createElement(WrappedComponent, (0, _extends2.default)({}, rest, others)));
}
}]);
return FormItemComponent;
}(_react.Component);
var name = WrappedComponent.displayName || WrappedComponent.name || (typeof WrappedComponent === 'string' ? WrappedComponent : 'Component');
FormItemComponent.displayName = "formItemHOC-".concat(name);
return FormItemComponent;
}
var _default = withFormItem;
exports.default = _default;
;