react-schema-based-json-editor
Version:
A reactjs component of schema based json editor.
46 lines (45 loc) • 1.82 kB
JavaScript
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 };