json-schema-editor
Advanced tools
Comparing version
@@ -79,2 +79,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
var self = this; | ||
self.element.children[0].remove(); | ||
this.react = ReactDOM.render(React.createElement(SchemaObject, { onChange: this.onChange, data: data }), self.element); | ||
@@ -237,2 +238,26 @@ } | ||
var SchemaAny = React.createClass({ | ||
displayName: 'SchemaAny', | ||
getInitialState: function getInitialState() { | ||
return this.props.data; | ||
}, | ||
export: function _export() { | ||
return { | ||
type: ["string", "number", "object", "array", "boolean", "null"], | ||
default: this.state.default, | ||
description: this.state.description | ||
}; | ||
}, | ||
componentWillReceiveProps: function componentWillReceiveProps(newProps) { | ||
if (typeof newProps.data.description !== 'undefined') { | ||
this.state.description = newProps.data.description; | ||
} | ||
this.setState(this.state); | ||
}, | ||
render: function render() { | ||
return React.createElement('div', null); | ||
} | ||
}); | ||
var SchemaBoolean = React.createClass({ | ||
@@ -300,4 +325,9 @@ displayName: 'SchemaBoolean', | ||
function mapType(type) { | ||
return Array.isArray(type) ? 'any' : type; | ||
} | ||
var mapping = function mapping(name, data, changeHandler) { | ||
return { | ||
any: React.createElement(SchemaAny, { onChange: changeHandler, ref: name, data: data }), | ||
string: React.createElement(SchemaString, { onChange: changeHandler, ref: name, data: data }), | ||
@@ -308,3 +338,3 @@ number: React.createElement(SchemaNumber, { onChange: changeHandler, ref: name, data: data }), | ||
boolean: React.createElement(SchemaBoolean, { onChange: changeHandler, ref: name, data: data }) | ||
}[data.type]; | ||
}[mapType(data.type)]; | ||
}; | ||
@@ -367,3 +397,3 @@ | ||
'select', | ||
{ name: 'itemtype', onChange: this.change, value: this.state.items.type }, | ||
{ name: 'itemtype', onChange: this.change, value: mapType(this.state.items.type) }, | ||
React.createElement( | ||
@@ -393,2 +423,7 @@ 'option', | ||
'boolean' | ||
), | ||
React.createElement( | ||
'option', | ||
{ value: 'any' }, | ||
'any' | ||
) | ||
@@ -593,3 +628,3 @@ ), | ||
'select', | ||
{ style: typeSelectStyle, name: 'type', onChange: self.changeItem, value: value.type }, | ||
{ style: typeSelectStyle, name: 'type', onChange: self.changeItem, value: mapType(value.type) }, | ||
React.createElement( | ||
@@ -619,2 +654,7 @@ 'option', | ||
'boolean' | ||
), | ||
React.createElement( | ||
'option', | ||
{ value: 'any' }, | ||
'any' | ||
) | ||
@@ -621,0 +661,0 @@ ), |
{ | ||
"name": "json-schema-editor", | ||
"version": "0.2.7", | ||
"version": "0.2.8", | ||
"description": "React based editor for JSON Schemas", | ||
@@ -5,0 +5,0 @@ "main": "dist/jsonschemaeditor.js", |
# JSON Schema Editor | ||
### This project is no longer being actively maintained. I have ported it over to Vue.js in [vue-json-schema-editor](https://github.com/thomas4019/vue-json-schema-editor) and that is an improved and less buggy implementation. | ||
 | ||
@@ -63,1 +65,3 @@ | ||
* allOf, anyOf, oneOf | ||
[Online Schema Tester](https://www.jsonschemavalidator.net/) |
@@ -35,2 +35,3 @@ window.JSONSchemaEditor = function(element,options) { | ||
var self = this; | ||
self.element.children[0].remove(); | ||
this.react = ReactDOM.render( | ||
@@ -127,2 +128,26 @@ <SchemaObject onChange={this.onChange} data={data}/>, | ||
var SchemaAny = React.createClass({ | ||
getInitialState: function() { | ||
return this.props.data; | ||
}, | ||
export: function() { | ||
return { | ||
type: ["string", "number", "object", "array", "boolean", "null"], | ||
default: this.state.default, | ||
description: this.state.description | ||
} | ||
}, | ||
componentWillReceiveProps: function(newProps) { | ||
if (typeof newProps.data.description !== 'undefined') { | ||
this.state.description = newProps.data.description; | ||
} | ||
this.setState(this.state); | ||
}, | ||
render() { | ||
return ( | ||
<div></div> | ||
); | ||
} | ||
}) | ||
var SchemaBoolean = React.createClass({ | ||
@@ -186,5 +211,9 @@ getInitialState: function() { | ||
function mapType(type) { | ||
return Array.isArray(type) ? 'any' : type; | ||
} | ||
var mapping = function(name, data, changeHandler) { | ||
return { | ||
any: <SchemaAny onChange={changeHandler} ref={name} data={data}/>, | ||
string: <SchemaString onChange={changeHandler} ref={name} data={data} />, | ||
@@ -195,3 +224,3 @@ number: <SchemaNumber onChange={changeHandler} ref={name} data={data} />, | ||
boolean: <SchemaBoolean onChange={changeHandler} ref={name} data={data}/>, | ||
}[data.type]; | ||
}[mapType(data.type)]; | ||
}; | ||
@@ -251,3 +280,3 @@ | ||
Items Type: | ||
<select name="itemtype" onChange={this.change} value={this.state.items.type}> | ||
<select name="itemtype" onChange={this.change} value={mapType(this.state.items.type)}> | ||
<option value="string">string</option> | ||
@@ -258,2 +287,3 @@ <option value="number">number</option> | ||
<option value="boolean">boolean</option> | ||
<option value="any">any</option> | ||
</select> | ||
@@ -432,3 +462,3 @@ minItems: <input name="minItems" style={shortNumberStyle} type="number" onChange={self.change} value={self.state.minItems} /> | ||
<input name="field" type="string" onChange={self.changeItem} value={name} /> | ||
<select style={typeSelectStyle} name="type" onChange={self.changeItem} value={value.type}> | ||
<select style={typeSelectStyle} name="type" onChange={self.changeItem} value={mapType(value.type)}> | ||
<option value="string">string</option> | ||
@@ -439,2 +469,3 @@ <option value="number">number</option> | ||
<option value="boolean">boolean</option> | ||
<option value="any">any</option> | ||
</select> | ||
@@ -441,0 +472,0 @@ <input style={descriptionStyle} placeholder="description" name="description" type="text" value={value.description} onChange={self.changeItem} /> |
Sorry, the diff of this file is not supported yet
43259
5.91%1230
5.76%66
4.76%