@cosva-lab/form-builder
Version:
React form builder.
90 lines (83 loc) • 3.76 kB
JavaScript
;
var _tslib = require('./_virtual/_tslib.js');
var React = require('react');
var ReactIs = require('react-is');
var mobxReact = require('mobx-react');
var Grid = require('@mui/material/Grid');
var Inputs = require('./Inputs.js');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__default = /*#__PURE__*/_interopDefault(React);
var ReactIs__namespace = /*#__PURE__*/_interopNamespace(ReactIs);
var Grid__default = /*#__PURE__*/_interopDefault(Grid);
var FieldRenderObserver = function (_a) {
var component = _a.component, propsForm = _a.propsForm;
var FieldComponent = component;
try {
FieldComponent = mobxReact.observer(component);
}
catch (error) { }
return React__default.default.createElement(FieldComponent, _tslib.__assign({}, propsForm));
};
var FieldRender = /** @class */ (function (_super) {
_tslib.__extends(FieldRender, _super);
function FieldRender() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.onChangeField = function (e, callback) {
var onChangeField = _this.props.onChangeField;
onChangeField === null || onChangeField === void 0 ? void 0 : onChangeField(e, callback);
};
return _this;
}
FieldRender.prototype.render = function () {
var field = this.props.field;
var breakpoints = _tslib.__assign({}, field.breakpoints);
var _a = breakpoints.xs, xs = _a === void 0 ? 12 : _a;
var _b = breakpoints.sm, sm = _b === void 0 ? xs : _b;
var _c = breakpoints.md, md = _c === void 0 ? sm : _c;
var _d = breakpoints.lg, lg = _d === void 0 ? md : _d;
var _e = breakpoints.xl, xl = _e === void 0 ? lg : _e;
var Component = field.component, render = field.render, type = field.type, _f = field.grid, grid = _f === void 0 ? typeof this.props.grid !== 'undefined'
? this.props.grid
: true : _f;
var propsForm = {
field: field,
onChangeField: this.onChangeField,
};
var formInput = React__default.default.createElement(Inputs.Inputs, _tslib.__assign({}, propsForm));
if (render)
return render({
children: formInput,
props: propsForm,
});
if (type === 'component') {
if (Component)
Component.displayName = "[fields.".concat(field.name.toString(), "].component");
if (React__default.default.isValidElement(Component))
return (React__default.default.createElement(Component.type, _tslib.__assign({}, _tslib.__assign(_tslib.__assign({}, Component.props), propsForm))));
if (ReactIs__namespace.isValidElementType(Component))
return (React__default.default.createElement(FieldRenderObserver, { component: Component, propsForm: propsForm }));
return null;
}
return grid ? (React__default.default.createElement(Grid__default.default, { item: true, xs: xs, sm: sm, md: md, lg: lg, xl: xl }, formInput)) : (formInput);
};
return FieldRender;
}(React__default.default.PureComponent));
module.exports = FieldRender;
//# sourceMappingURL=FieldRender.js.map