UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

103 lines (77 loc) 3.76 kB
"use strict"; 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;