react-json-schema-editor-antd
Version:
Json Schema Editor
795 lines (793 loc) • 29.8 kB
JavaScript
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;