UNPKG

@talend/react-forms

Version:

React forms library based on json schema form.

124 lines (122 loc) 3.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _Widget = _interopRequireDefault(require("../../Widget")); var _FieldTemplate = _interopRequireDefault(require("../FieldTemplate")); var _KeyValueModule = _interopRequireDefault(require("./KeyValue.module.scss")); var _lodash = require("lodash"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * Default part (key or value) schema */const defaultPartSchema = { schema: { type: 'string' }, type: 'text' }; /** * Adapt part (key or value) schema * @param parentSchema The KeyValue schema * @param part 'key' or 'value' */ function getPartSchema(parentSchema, part) { const childKey = parentSchema.key.concat(part); const childrenSchemas = parentSchema.items || []; let childSchema = childrenSchemas.find(item => (0, _lodash.last)(item.key) === part); if (!childSchema) { childSchema = {}; } return { ...defaultPartSchema, ...childSchema, key: childKey, autoFocus: parentSchema.autoFocus || childSchema.autoFocus, disabled: parentSchema.disabled || childSchema.disabled, readOnly: parentSchema.readOnly || childSchema.readOnly }; } function KeyValue({ id, isValid, errorMessage, onChange, onFinish, schema, value, valueIsUpdating, ...restProps }) { const { description, title, labelProps } = schema; const keySchema = getPartSchema(schema, 'key'); const valueSchema = getPartSchema(schema, 'value'); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FieldTemplate.default, { description: description, errorMessage: errorMessage, errorId: restProps.errorId, descriptionId: restProps.descriptionId, id: id, isValid: isValid, label: title, labelProps: labelProps, required: schema.required, valueIsUpdating: valueIsUpdating, children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("dl", { className: _KeyValueModule.default['key-value'], children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("dt", { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Widget.default, { ...restProps, onChange: onChange, onFinish: onFinish, schema: keySchema, value: value.key }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("dd", { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Widget.default, { ...restProps, onChange: onChange, onFinish: onFinish, schema: valueSchema, value: value.value }) })] }) }); } KeyValue.defaultProps = { value: {} }; if (process.env.NODE_ENV !== 'production') { KeyValue.propTypes = { id: _propTypes.default.string, isValid: _propTypes.default.bool, errorMessage: _propTypes.default.string, onChange: _propTypes.default.func.isRequired, onFinish: _propTypes.default.func.isRequired, schema: _propTypes.default.shape({ autoFocus: _propTypes.default.bool, description: _propTypes.default.string, disabled: _propTypes.default.bool, key: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), items: _propTypes.default.array, readOnly: _propTypes.default.bool, required: _propTypes.default.bool, title: _propTypes.default.string, labelProps: _propTypes.default.object }), value: _propTypes.default.shape({ key: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) }), valueIsUpdating: _propTypes.default.bool }; } var _default = exports.default = KeyValue; //# sourceMappingURL=KeyValue.component.js.map