chowa
Version:
UI component library based on React
47 lines (46 loc) • 1.75 kB
JavaScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
;
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const PropTypes = require("prop-types");
const classnames_1 = require("classnames");
const utils_1 = require("../utils");
const FormItem = (props) => {
const { children, className, style, label, labelPosition, required, span } = props;
const componentClass = classnames_1.default({
[utils_1.preClass('form-item')]: true,
[utils_1.preClass(`form-item-label-${labelPosition}`)]: true,
[className]: utils_1.isExist(className)
});
const labelClass = classnames_1.default({
[utils_1.preClass('form-item-label')]: true,
[utils_1.preClass(`grid-col-span-${span}`)]: labelPosition !== 'top'
});
return (React.createElement("div", { style: style, className: componentClass },
label &&
React.createElement("label", { className: labelClass },
required && React.createElement("i", { className: utils_1.preClass('form-item-required') }, "*"),
label),
React.createElement("div", { className: utils_1.preClass('form-item-content') }, children)));
};
FormItem.propTypes = {
className: PropTypes.string,
style: PropTypes.object,
label: PropTypes.node,
labelPosition: PropTypes.oneOf(['top', 'left', 'right']),
required: PropTypes.bool,
span: PropTypes.number
};
FormItem.defaultProps = {
required: false,
span: 4,
labelPosition: 'right'
};
exports.default = FormItem;