rjsf-antd
Version:
Ant Design theme, fields and widgets for react-jsonschema-form
50 lines (49 loc) • 2.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var config_provider_1 = require("antd/lib/config-provider");
var context_1 = tslib_1.__importDefault(require("antd/lib/form/context"));
var omit_js_1 = tslib_1.__importDefault(require("omit.js"));
var classnames_1 = tslib_1.__importDefault(require("classnames"));
var ObjectFieldTemplateContext_1 = tslib_1.__importDefault(require("../ObjectFieldTemplate/ObjectFieldTemplateContext"));
var withTheme_1 = tslib_1.__importDefault(require("../Theme/withTheme"));
var Theme_1 = tslib_1.__importDefault(require("../Theme"));
var Form = withTheme_1.default(Theme_1.default);
var RjsfForm = react_1.default.forwardRef(function (props, ref) {
var wrapperCol = props.wrapperCol, labelAlign = props.labelAlign, labelCol = props.labelCol, layout = props.layout, colon = props.colon, _a = props.objectFieldTemplates, objectFieldTemplates = _a === void 0 ? {} : _a;
var renderForm = function (_a) {
var _b;
var getPrefixCls = _a.getPrefixCls;
var customizePrefixCls = props.prefixCls, hideRequiredMark = props.hideRequiredMark, _c = props.className, className = _c === void 0 ? '' : _c, layout = props.layout;
var prefixCls = getPrefixCls('form', customizePrefixCls);
var formClassName = classnames_1.default(prefixCls, (_b = {},
_b[prefixCls + "-horizontal"] = layout === 'horizontal',
_b[prefixCls + "-vertical"] = layout === 'vertical',
_b[prefixCls + "-inline"] = layout === 'inline',
_b[prefixCls + "-hide-required-mark"] = hideRequiredMark,
_b), className);
var formProps = omit_js_1.default(props, [
'prefixCls',
'className',
'layout',
'hideRequiredMark',
'wrapperCol',
'labelAlign',
'labelCol',
'colon'
]);
return react_1.default.createElement(Form, tslib_1.__assign({}, formProps, { className: formClassName, ref: ref }));
};
return (react_1.default.createElement(ObjectFieldTemplateContext_1.default.Provider, { value: objectFieldTemplates },
react_1.default.createElement(context_1.default.Provider, { value: {
wrapperCol: wrapperCol,
labelAlign: labelAlign,
labelCol: labelCol,
vertical: layout === 'vertical',
colon: colon
} },
react_1.default.createElement(config_provider_1.ConfigConsumer, null, renderForm))));
});
exports.default = RjsfForm;
//# sourceMappingURL=Form.js.map