UNPKG

@schema-render/form-render-react

Version:

Out-of-the-box form rendering library based on Core and Antd.

155 lines (154 loc) 6.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); var _jsxruntime = require("react/jsx-runtime"); var _icons = require("@ant-design/icons"); var _corereact = require("@schema-render/core-react"); var _antd = require("antd"); var _useFormRenderContext = /*#__PURE__*/ _interop_require_default(require("../../hooks/useFormRenderContext")); var _styles = /*#__PURE__*/ _interop_require_wildcard(require("./styles")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var classNames = _corereact.utils.classNames; var builtinLabelRender = function(param) { var schema = param.schema, required = param.required, prefixClassNames = param.prefixClassNames, labelColon = param.labelColon; var hasColon = !!labelColon; return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { children: [ required && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", { className: classNames(prefixClassNames('item-mark'), _styles.mark), children: "*" }), /*#__PURE__*/ (0, _jsxruntime.jsx)("span", { className: classNames(prefixClassNames('item-title'), _styles.title), children: schema.title }), !!schema.titleDescription && /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Popover, { placement: "top", trigger: "hover", content: schema.titleDescription, children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_icons.QuestionCircleOutlined, { className: classNames(prefixClassNames('item-title-tooltip'), _styles.titleTooltip), style: { marginRight: hasColon ? 4 : undefined } }) }), hasColon && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", { className: classNames(prefixClassNames('item-colon')), children: labelColon }) ] }); }; var Horizontal = function(param) { var body = param.body, schema = param.schema, validator = param.validator, required = param.required, disabled = param.disabled, readonly = param.readonly, userCtx = param.userCtx, prefixClassNames = param.prefixClassNames; var _useFormRenderContext1 = (0, _useFormRenderContext.default)(), labelWidth = _useFormRenderContext1.labelWidth, labelColon = _useFormRenderContext1.labelColon, labelGap = _useFormRenderContext1.labelGap, labelRender = _useFormRenderContext1.labelRender, locale = _useFormRenderContext1.locale; var innerLabelRender = labelRender ? labelRender : builtinLabelRender; var labelRenderParams = { schema: schema, required: required, disabled: disabled, readonly: readonly, userCtx: userCtx, prefixClassNames: prefixClassNames, labelWidth: labelWidth, labelColon: labelColon, labelGap: labelGap, locale: locale }; return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", { className: classNames(prefixClassNames('item-layout-horizontal')), children: [ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", { className: classNames(prefixClassNames('item-main'), _styles.main), children: [ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: classNames(prefixClassNames('item-header'), _styles.header), style: { flexBasis: labelWidth, marginRight: labelGap }, children: innerLabelRender(labelRenderParams) }), /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: classNames(prefixClassNames('item-body'), _styles.body), children: body }) ] }), /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", { className: classNames(prefixClassNames('item-footer'), _styles.footer), style: { paddingLeft: _corereact.utils.isNumber(labelWidth) ? labelWidth + labelGap : 0 }, children: [ validator.status === 'error' && !!validator.message && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: classNames(prefixClassNames('item-error-msg'), _styles.errorMsg), children: validator.message }), validator.status === 'warning' && !!validator.message && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: classNames(prefixClassNames('item-warning-msg'), _styles.warningMsg), children: validator.message }), !!schema.description && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: classNames(prefixClassNames('item-description'), _styles.description), children: schema.description }) ] }) ] }); }; var _default = Horizontal;