rjsf-antd
Version:
Ant Design theme, fields and widgets for react-jsonschema-form
47 lines • 2.27 kB
JavaScript
import { __assign } from "tslib";
import React from 'react';
import { ConfigConsumer } from 'antd/es/config-provider';
import FormContext from 'antd/es/form/context';
import omit from 'omit.js';
import classNames from 'classnames';
import ObjectFieldTemplateContext from '../ObjectFieldTemplate/ObjectFieldTemplateContext';
import withTheme from '../Theme/withTheme';
import Theme from '../Theme';
var Form = withTheme(Theme);
var RjsfForm = React.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(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(props, [
'prefixCls',
'className',
'layout',
'hideRequiredMark',
'wrapperCol',
'labelAlign',
'labelCol',
'colon'
]);
return React.createElement(Form, __assign({}, formProps, { className: formClassName, ref: ref }));
};
return (React.createElement(ObjectFieldTemplateContext.Provider, { value: objectFieldTemplates },
React.createElement(FormContext.Provider, { value: {
wrapperCol: wrapperCol,
labelAlign: labelAlign,
labelCol: labelCol,
vertical: layout === 'vertical',
colon: colon
} },
React.createElement(ConfigConsumer, null, renderForm))));
});
export default RjsfForm;
//# sourceMappingURL=Form.js.map