UNPKG

react-schema-based-json-editor

Version:
46 lines (45 loc) 1.82 kB
import { __assign, __extends } from "tslib"; import * as React from 'react'; import { ObjectEditor } from './object-editor'; import { ArrayEditor } from './array-editor'; import { NumberEditor } from './number-editor'; import { BooleanEditor } from './boolean-editor'; import { NullEditor } from './null-editor'; import { StringEditor } from './string-editor'; import { AnyEditor } from './any-editor'; var Editor = /** @class */ (function (_super) { __extends(Editor, _super); function Editor() { return _super !== null && _super.apply(this, arguments) || this; } Editor.prototype.render = function () { var props = this.props; if (props.schema.$ref) { var reference = props.getReference(props.schema.$ref); if (reference) { props = __assign(__assign({}, this.props), { schema: reference }); } } switch (props.schema.type) { case 'object': return React.createElement(ObjectEditor, __assign({}, props)); case 'array': return React.createElement(ArrayEditor, __assign({}, props)); case 'number': case 'integer': return React.createElement(NumberEditor, __assign({}, props)); case 'boolean': return React.createElement(BooleanEditor, __assign({}, props)); case 'null': return React.createElement(NullEditor, __assign({}, props)); case 'string': return React.createElement(StringEditor, __assign({}, props)); case undefined: return React.createElement(AnyEditor, __assign({}, props)); default: return null; } }; return Editor; }(React.Component)); export { Editor };