@vs-form/vs-form
Version:
A schema-based form generator component for React using material-ui
71 lines (66 loc) • 2.35 kB
JavaScript
'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = require('react');
var React__default = _interopDefault(React);
require('lodash/capitalize');
require('lodash/cloneDeep');
require('lodash/get');
require('lodash/has');
require('lodash/isArray');
require('lodash/isDate');
require('lodash/isBoolean');
require('lodash/isEmpty');
require('lodash/isFunction');
require('lodash/isInteger');
require('lodash/isNull');
require('lodash/isNumber');
require('lodash/isObject');
require('lodash/isPlainObject');
require('lodash/isRegExp');
require('lodash/isString');
var isUndefined = _interopDefault(require('lodash/isUndefined'));
require('lodash/merge');
require('lodash/set');
require('lodash/toInteger');
require('lodash/toNumber');
require('lodash/trimEnd');
require('lodash/uniq');
require('lodash/debounce');
require('lodash/throttle');
require('@material-ui/core/Typography');
var __chunk_7 = require('./chunk-819d0a62.js');
class Form extends React.Component {
constructor(props) {
super(props);
this.PanelProps = {};
this.HeaderTypographyProps = {};
this.FormTag = ({ children }) => {
if (!this.props.schemaManager.componentIsInSubschema(this.comp)) {
return React.createElement("form", Object.assign({}, this.PanelProps), children);
}
else {
return React.createElement("div", Object.assign({}, this.PanelProps), children);
}
};
this.initProps();
}
get comp() { return this.props.comp; }
render() {
return (React.createElement(this.FormTag, null,
this.comp.label ? React.createElement(__chunk_7.Text, Object.assign({ text: this.comp.label }, this.HeaderTypographyProps)) : null,
this.props.children));
}
initProps() {
const { HeaderTypographyProps, ...PanelProps } = this.comp.props;
if (PanelProps) {
this.PanelProps = PanelProps;
}
if (HeaderTypographyProps) {
this.HeaderTypographyProps = HeaderTypographyProps;
}
if (isUndefined(this.HeaderTypographyProps.variant)) {
this.HeaderTypographyProps.variant = 'h6';
}
}
}
exports.default = Form;