UNPKG

react-json-schema-editor-antd

Version:

Json Schema Editor

795 lines (793 loc) 29.8 kB
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { Flex, Input, InputNumber, Segmented, Select, Switch } from 'antd'; import { isArray, isBoolean, isNumber, isPlainObject, isString, pick } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { INTEGER_FOTMATS, NUMBER_FOTMATS, STRING_FOTMATS } from "../../../constants"; import { getDefaultSchema, SchemaTypeOptions } from "../../../utils"; import MonacoEditor from "../../../../components/MonacoEditor"; import SchemaRefTree from "../../../../components/SchemaRefTree"; import "./index.less"; var Option = Select.Option; var Settings = function Settings(props) { var _schema$enum; var _useTranslation = useTranslation(), t = _useTranslation.t; // renameProperty, // isCombinedItems, // addProperty, // widthClass var schema = props.schema, nodeType = props.nodeType, isRequire = props.isRequire, isRoot = props.isRoot, allowNull = props.allowNull, defaultValue = props.defaultValue, examples = props.examples, onExampleChange = props.onExampleChange, updateRequiredProperty = props.updateRequiredProperty, updateSchema = props.updateSchema, isHidden = props.isHidden, isDataModelItems = props.isDataModelItems, isUnLinkDataModelItems = props.isUnLinkDataModelItems, updateAllowNull = props.updateAllowNull, propertyName = props.propertyName, _props$namePath = props.namePath, namePath = _props$namePath === void 0 ? [] : _props$namePath, mock = props.mock, setMock = props.setMock, schemaDescription = props.schemaDescription, setSchemaDescription = props.setSchemaDescription, removeProperty = props.removeProperty, isArrayItems = props.isArrayItems, components = props.components, showDataModelSettings = props.showDataModelSettings, setShowDataModelSettings = props.setShowDataModelSettings, addRef = props.addRef, renderValueComponents = props.renderValueComponents; var _useState = useState('dataModel'), _useState2 = _slicedToArray(_useState, 2), activeTab = _useState2[0], setActiveTab = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), constOpen = _useState4[0], setConstOpen = _useState4[1]; var _useState5 = useState(false), _useState6 = _slicedToArray(_useState5, 2), enumOpen = _useState6[0], setEnumOpen = _useState6[1]; var _useState7 = useState(defaultValue), _useState8 = _slicedToArray(_useState7, 2), tmpDefaultValue = _useState8[0], setTmpdefaultValue = _useState8[1]; var _useState9 = useState(schema === null || schema === void 0 ? void 0 : schema.const), _useState10 = _slicedToArray(_useState9, 2), constValue = _useState10[0], setConstValue = _useState10[1]; var _useState11 = useState(schema === null || schema === void 0 ? void 0 : schema.minimum), _useState12 = _slicedToArray(_useState11, 2), minimum = _useState12[0], setMinimum = _useState12[1]; var _useState13 = useState(schema === null || schema === void 0 ? void 0 : schema.maximum), _useState14 = _slicedToArray(_useState13, 2), maximum = _useState14[0], setMaximum = _useState14[1]; var _useState15 = useState(schema === null || schema === void 0 ? void 0 : schema.minItems), _useState16 = _slicedToArray(_useState15, 2), minItems = _useState16[0], setMinItems = _useState16[1]; var _useState17 = useState(schema === null || schema === void 0 ? void 0 : schema.maxItems), _useState18 = _slicedToArray(_useState17, 2), maxItems = _useState18[0], setMaxItems = _useState18[1]; var _useState19 = useState(schema === null || schema === void 0 ? void 0 : schema.minLength), _useState20 = _slicedToArray(_useState19, 2), minLength = _useState20[0], setMinLength = _useState20[1]; var _useState21 = useState(schema === null || schema === void 0 ? void 0 : schema.maxLength), _useState22 = _slicedToArray(_useState21, 2), maxLength = _useState22[0], setMaxLength = _useState22[1]; var _useState23 = useState(schema === null || schema === void 0 ? void 0 : schema.multipleOf), _useState24 = _slicedToArray(_useState23, 2), multipleOf = _useState24[0], setMultipleOf = _useState24[1]; var _useState25 = useState(schema === null || schema === void 0 ? void 0 : schema.pattern), _useState26 = _slicedToArray(_useState25, 2), pattern = _useState26[0], setPattern = _useState26[1]; var _useState27 = useState(schema === null || schema === void 0 ? void 0 : schema['x-schema-decimal-places']), _useState28 = _slicedToArray(_useState27, 2), decimalPlaces = _useState28[0], setDecimalPlaces = _useState28[1]; var _useState29 = useState(''), _useState30 = _slicedToArray(_useState29, 2), beautifulSchema = _useState30[0], setBeautifulSchema = _useState30[1]; useEffect(function () { if (isPlainObject(schema)) { setBeautifulSchema(JSON.stringify(schema, null, '\t')); setConstValue(schema === null || schema === void 0 ? void 0 : schema.const); setMinimum(schema === null || schema === void 0 ? void 0 : schema.minimum); setMaximum(schema === null || schema === void 0 ? void 0 : schema.maximum); setMinItems(schema === null || schema === void 0 ? void 0 : schema.minItems); setMaxItems(schema === null || schema === void 0 ? void 0 : schema.maxItems); setMinLength(schema === null || schema === void 0 ? void 0 : schema.minLength); setMaxLength(schema === null || schema === void 0 ? void 0 : schema.maxLength); setMultipleOf(schema === null || schema === void 0 ? void 0 : schema.multipleOf); setPattern(schema === null || schema === void 0 ? void 0 : schema.pattern); setDecimalPlaces(schema === null || schema === void 0 ? void 0 : schema['x-schema-decimal-places']); } }, [schema]); useEffect(function () { setTmpdefaultValue(defaultValue); }, [defaultValue]); useEffect(function () { if (isNumber(constValue) || isString(constValue)) { setConstOpen(true); } if (isArray(schema === null || schema === void 0 ? void 0 : schema.enum) && (schema === null || schema === void 0 ? void 0 : schema.enum.length) > 0) { setEnumOpen(true); } }, []); var options = useMemo(function () { var opt = [{ value: 'dataModel', label: t('basic_setting') }, { value: 'schema', label: t('edit_code') }]; return opt; }, []); var refId = useMemo(function () { var refPath = schema === null || schema === void 0 ? void 0 : schema['$ref']; if (isString(refPath)) { var _refId = refPath.split('/').pop() || ''; return _refId; } }, [schema === null || schema === void 0 ? void 0 : schema['$ref']]); var MockInput = useMemo(function () { if (renderValueComponents) { return renderValueComponents({ value: String(mock) || '', onChange: function onChange(val) { return setMock(val); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('x-schema-mock'), mock); } }, onDirectChange: function onDirectChange(val) { if (updateSchema) { updateSchema(namePath.concat('x-schema-mock'), val); } } }); } else { return /*#__PURE__*/React.createElement(Input, { size: "small", placeholder: "Mock", value: String(mock) || '', onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('x-schema-mock'), mock); } }, onChange: function onChange(e) { return setMock(e.target.value); } }); } }, [renderValueComponents, mock, updateSchema, namePath]); return /*#__PURE__*/React.createElement(Flex, { className: "schema-settings-wrapper", style: { minHeight: 300 }, vertical: true }, /*#__PURE__*/React.createElement("div", { style: { display: 'flex', justifyContent: 'center' } }, /*#__PURE__*/React.createElement(Segmented, { onChange: function onChange(e) { setActiveTab(e); }, value: activeTab, options: options })), activeTab === 'dataModel' && nodeType !== 'dataModel' && !showDataModelSettings && /*#__PURE__*/React.createElement(Flex, { gap: 8, vertical: true, style: { width: '100%' } }, /*#__PURE__*/React.createElement(Select, { value: nodeType, style: { width: '100%' }, onChange: function onChange(val) { if (val === 'dataModel') { setShowDataModelSettings(true); } else { setShowDataModelSettings(false); } if (updateSchema && val !== 'dataModel') { updateSchema(namePath, _objectSpread(_objectSpread({}, getDefaultSchema(val, schema)), pick(schema, ['description', 'x-schema-mock']))); } }, options: [{ label: /*#__PURE__*/React.createElement("span", null, t('reference')), title: t('reference'), options: [{ label: /*#__PURE__*/React.createElement("span", null, t('reference_model')), value: 'dataModel' }] }, { label: /*#__PURE__*/React.createElement("span", null, t('basic_type')), title: t('basic_type'), options: SchemaTypeOptions.map(function (i) { return { label: /*#__PURE__*/React.createElement("span", null, i.value), value: i.value }; }) }] }), /*#__PURE__*/React.createElement(Flex, { gap: 20 }, /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 4 }, t('required'), /*#__PURE__*/React.createElement(Switch, { disabled: isArrayItems || isRoot || isHidden || isDataModelItems && !isUnLinkDataModelItems, size: "small", onChange: function onChange() { if (isRoot) { return; } if (updateRequiredProperty && propertyName) { updateRequiredProperty(namePath, propertyName, !isRequire); } }, value: isRequire || isRoot })), /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 4 }, t('is_null'), /*#__PURE__*/React.createElement(Switch, { disabled: isHidden || ['null', 'dataModel', 'oneOf', 'anyOf', 'allOf', 'any'].includes(nodeType) || isDataModelItems && !isUnLinkDataModelItems, size: "small", value: allowNull, onChange: function onChange() { if (updateAllowNull) { updateAllowNull(namePath, !allowNull); } } })), nodeType === 'array' && /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 4 }, t('element_unique'), /*#__PURE__*/React.createElement(Switch, { size: "small", value: schema === null || schema === void 0 ? void 0 : schema.uniqueItems, onChange: function onChange(val) { if (updateSchema) { updateSchema(namePath.concat('uniqueItems'), val); } } }))), ['number', 'integer', 'string'].includes(nodeType) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { className: "line" }), /*#__PURE__*/React.createElement(Flex, { vertical: true, gap: 2 }, /*#__PURE__*/React.createElement(Flex, { gap: 20 }, /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 4 }, t('enum'), /*#__PURE__*/React.createElement(Switch, { size: "small", onChange: function onChange() { setEnumOpen(!enumOpen); setConstOpen(false); if (enumOpen && updateSchema) { removeProperty(namePath.concat('enum')); } }, value: enumOpen })), /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 4 }, t('const'), /*#__PURE__*/React.createElement(Switch, { size: "small", value: constOpen, onChange: function onChange() { setConstOpen(!constOpen); setEnumOpen(false); if (constOpen && updateSchema) { removeProperty(namePath.concat('const')); } } }))), constOpen && ['integer', 'number'].includes(nodeType) && /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: isNumber(constValue) ? constValue : null, onChange: function onChange(v) { return setConstValue(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('const'), constValue); } } }), constOpen && ['string'].includes(nodeType) && /*#__PURE__*/React.createElement(Input, { style: { width: '100%' }, size: "small", value: constValue, onChange: function onChange(e) { return setConstValue(e.target.value); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('const'), constValue); } } }), enumOpen && /*#__PURE__*/React.createElement(Select, { style: { width: '100%' }, mode: "tags", value: isArray(schema === null || schema === void 0 ? void 0 : schema.enum) ? schema === null || schema === void 0 ? void 0 : schema.enum : [], onChange: function onChange(val) { if (updateSchema) { var value = val; if (['integer', 'number'].includes(nodeType)) { value = value.reduce(function (acc, item) { var num = Number(item); if (!isNaN(num) && isFinite(num)) { acc.push(num); } return acc; }, []); } updateSchema(namePath.concat('enum'), value); } }, options: schema === null || schema === void 0 || (_schema$enum = schema.enum) === null || _schema$enum === void 0 ? void 0 : _schema$enum.map(function (e) { return { label: e, value: e }; }) })), /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, "Mock", MockInput), /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, t('sample_value'), /*#__PURE__*/React.createElement(Select, { style: { width: '100%' }, mode: "tags", value: examples || [], onChange: function onChange(val) { var value = val; if (['integer', 'number'].includes(nodeType)) { value = value.reduce(function (acc, item) { var num = Number(item); if (!isNaN(num) && isFinite(num)) { acc.push(num); } return acc; }, []); } onExampleChange(value); }, options: examples === null || examples === void 0 ? void 0 : examples.map(function (e) { return { label: e, value: e }; }) })), /*#__PURE__*/React.createElement(Flex, { gap: 8 }, /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, t('default_value'), nodeType === 'string' ? /*#__PURE__*/React.createElement(Input, { size: "small", placeholder: "default", value: tmpDefaultValue || null, onChange: function onChange(e) { return setTmpdefaultValue(e.target.value); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('default'), tmpDefaultValue); } } }) : /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: isNumber(tmpDefaultValue) ? tmpDefaultValue : null, onChange: function onChange(v) { return setTmpdefaultValue(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('default'), tmpDefaultValue); } } })), /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, "Format", /*#__PURE__*/React.createElement(Select, { allowClear: true, placeholder: "Please select", value: schema === null || schema === void 0 ? void 0 : schema.format, onChange: function onChange(val) { if (updateSchema) { updateSchema(namePath.concat('format'), val || ''); } } }, nodeType === 'string' && STRING_FOTMATS.map(function (i) { return /*#__PURE__*/React.createElement(Option, { key: i, value: i }, i); }), nodeType === 'number' && NUMBER_FOTMATS.map(function (i) { return /*#__PURE__*/React.createElement(Option, { key: i, value: i }, i); }), nodeType === 'integer' && INTEGER_FOTMATS.map(function (i) { return /*#__PURE__*/React.createElement(Option, { key: i, value: i }, i); }))))), nodeType === 'boolean' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, t('default_value'), /*#__PURE__*/React.createElement(Select, { allowClear: true, value: isBoolean(tmpDefaultValue) ? tmpDefaultValue ? 'true' : 'false' : null, onChange: function onChange(v) { setTmpdefaultValue(v === 'true' ? true : v === 'false' ? false : null); if (updateSchema) { updateSchema(namePath.concat('default'), v === 'true' ? true : v === 'false' ? false : null); } } }, /*#__PURE__*/React.createElement(Option, { key: 'true' }, "true"), /*#__PURE__*/React.createElement(Option, { key: 'false' }, "false"))), /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, "Mock", MockInput)), ['number', 'integer'].includes(nodeType) && /*#__PURE__*/React.createElement(Flex, { vertical: true, gap: 12 }, /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 8 }, /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('min_value'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: minimum, onChange: function onChange(v) { return setMinimum(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('minimum'), minimum); } } })), /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('max_value'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: maximum, onChange: function onChange(v) { return setMaximum(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('maximum'), maximum); } } })), /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('multiple'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: multipleOf, onChange: function onChange(v) { return setMultipleOf(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('multipleOf'), multipleOf); } } }))), /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 8 }, isNumber(minimum) && /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 8 }, t('cannot_equal_min_value'), ' ', /*#__PURE__*/React.createElement(Switch, { size: "small", onChange: function onChange(v) { if (updateSchema) { updateSchema(namePath.concat('exclusiveMinimum'), v ? minimum : false); } }, value: schema === null || schema === void 0 ? void 0 : schema.exclusiveMinimum })), isNumber(maximum) && /*#__PURE__*/React.createElement(Flex, { align: "center", flex: 1, gap: 8 }, t('cannot_equal_max_value'), ' ', /*#__PURE__*/React.createElement(Switch, { size: "small", onChange: function onChange(v) { if (updateSchema) { updateSchema(namePath.concat('exclusiveMaximum'), v ? maximum : false); } }, value: schema === null || schema === void 0 ? void 0 : schema.exclusiveMaximum })))), nodeType === 'number' && /*#__PURE__*/React.createElement(Flex, { vertical: true, gap: 2 }, t('retain_decimal_place'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, placeholder: t('retain_decimal_place'), value: isNumber(decimalPlaces) ? decimalPlaces : null, onChange: function onChange(val) { return setDecimalPlaces(val); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('x-schema-decimal-places'), decimalPlaces); } } })), nodeType === 'array' && /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 8 }, /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('min_element_value'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: isNumber(minItems) ? minItems : 0, onChange: function onChange(v) { return setMinItems(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('minItems'), minItems); } } })), /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('max_element_value'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: isNumber(maxItems) ? maxItems : 0, onChange: function onChange(v) { return setMaxItems(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('maxItems'), maxItems); } } }))), nodeType === 'string' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Flex, { align: "center", gap: 8 }, /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('min_length'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: isNumber(minLength) ? minLength : 0, onChange: function onChange(v) { return setMinLength(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('minLength'), minLength); } } })), /*#__PURE__*/React.createElement(Flex, { vertical: true, flex: 1, gap: 2 }, t('max_length'), /*#__PURE__*/React.createElement(InputNumber, { style: { width: '100%' }, size: "small", min: -Infinity, value: isNumber(maxLength) ? maxLength : 0, onChange: function onChange(v) { return setMaxLength(v); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('maxLength'), maxLength); } } }))), /*#__PURE__*/React.createElement(Flex, { flex: 1, vertical: true, gap: 2 }, "Pattern", /*#__PURE__*/React.createElement(Input, { size: "small", placeholder: "^[A-Za-z0-9 -_]+", value: pattern || null, onChange: function onChange(e) { setPattern(e.target.value); }, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('pattern'), pattern); } } }))), ['number', 'integer', 'string', 'boolean', 'object', 'array', 'null'].includes(nodeType) && /*#__PURE__*/React.createElement(Flex, { gap: 2, vertical: true }, t('filed_desc'), /*#__PURE__*/React.createElement(Input.TextArea, { // size="small" autoSize: { minRows: 1, maxRows: 3 }, value: schemaDescription, onBlur: function onBlur() { if (updateSchema) { updateSchema(namePath.concat('description'), schemaDescription); } }, onChange: function onChange(description) { return setSchemaDescription(description.target.value); } })), ['number', 'integer', 'string'].includes(nodeType) && /*#__PURE__*/React.createElement(Flex, { className: "scheme-sample-value-rule" }, t('schema_generation_rule_tip'))), activeTab === 'dataModel' && (nodeType === 'dataModel' || showDataModelSettings) && /*#__PURE__*/React.createElement(Flex, { gap: 8, vertical: true, style: { width: '100%' } }, /*#__PURE__*/React.createElement(Select, { value: showDataModelSettings ? 'dataModel' : nodeType, style: { width: '100%' }, onChange: function onChange(val) { if (val === 'dataModel') { setShowDataModelSettings(true); } else { setShowDataModelSettings(false); } if (updateSchema && val !== 'dataModel') { updateSchema(namePath, _objectSpread(_objectSpread({}, getDefaultSchema(val, schema)), pick(schema, ['description', 'x-schema-mock']))); } }, options: [{ label: /*#__PURE__*/React.createElement("span", null, t('reference')), title: t('reference'), options: [{ label: /*#__PURE__*/React.createElement("span", null, t('reference_model')), value: 'dataModel' }] }, { label: /*#__PURE__*/React.createElement("span", null, t('basic_type')), title: t('basic_type'), options: SchemaTypeOptions.map(function (i) { return { label: /*#__PURE__*/React.createElement("span", null, i.value), value: i.value }; }) }] }), /*#__PURE__*/React.createElement("div", { className: "line" }), /*#__PURE__*/React.createElement(SchemaRefTree, { current_model_id: refId || '', onLinkSchema: function onLinkSchema(val) { if (isPlainObject(val) && addRef) { addRef(namePath, val, true); } }, schemaData: (components === null || components === void 0 ? void 0 : components.schemas) || {} })), activeTab === 'schema' && /*#__PURE__*/React.createElement("div", { className: "source-setting" }, /*#__PURE__*/React.createElement(MonacoEditor, { height: 230, value: beautifulSchema, handleEditorDidMount: function handleEditorDidMount(editor) { editor.onDidBlurEditorWidget(function () { var currentValue = editor.getValue(); var jsonData; try { jsonData = JSON.parse(currentValue); } catch (ex) {} if (isPlainObject(jsonData)) { if (updateSchema) { updateSchema(namePath, jsonData); } } }); }, onChange: function onChange(v) { setBeautifulSchema(v); } }))); }; export default Settings;