@react-formless/core
Version:
Data-driven react forms library written in typescript
50 lines • 2.5 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.StyledFormView = exports.StyledCellView = void 0;
var React = require("react");
var __1 = require("..");
var utils_1 = require("../../../utils");
var PlainHtmlRenderMap_1 = require("./PlainHtmlRenderMap");
var isKeyOf = function (v, keys) {
if (keys === void 0) { keys = []; }
return typeof v === "string" && (keys.includes(v) || keys.length === 0);
};
exports.StyledCellView = function (p) {
var setDelta = function (key) { return function (value) {
var _a;
return p.setState(__assign(__assign({}, p.state), (_a = {}, _a[key] = value, _a)));
}; };
var renderOptions = utils_1.pickObject(p, ["elementsRenderMap", "inputsRenderMap"]);
var getProps = function (key, schema) { return ({
schema: schema,
state: p.state[key],
setDelta: setDelta(key),
renderOptions: renderOptions
}); };
if (isKeyOf(p.cell)) {
var f = p.cell;
return React.createElement(__1.FormItemView, __assign({}, getProps(f, p.schema[f])));
}
switch (p.cell.type) {
case "Row":
return (React.createElement(p.styledInputsRenderMap.Row, { value: p.cell.value.map(function (f, i) { return React.createElement(exports.StyledCellView, __assign({}, p, { key: "" + i, cell: f })); }) }));
case "Title":
return React.createElement(p.styledInputsRenderMap.Title, { value: p.cell.value });
case "Custom":
return (React.createElement(p.styledInputsRenderMap.Custom, __assign({}, utils_1.omitObject(p, ["cell", "styledInputsRenderMap"]), { getProps: getProps, value: p.cell.value })));
}
return null;
};
exports.StyledFormView = function (p) { return (React.createElement(React.Fragment, null, p.styledSchema.map(function (e, index) { return (React.createElement(exports.StyledCellView, __assign({ key: index }, p, { cell: e, styledInputsRenderMap: __assign(__assign({}, PlainHtmlRenderMap_1.styledInputsRenderMap), (p.styledInputsRenderMap || {})) }))); }))); };
//# sourceMappingURL=StyledFormView.js.map
;