Released v5.5.2

This commit is contained in:
jos 2016-04-18 20:44:00 +02:00
parent e8092db9b4
commit 7d283f1b90
8 changed files with 118 additions and 92 deletions

View File

@ -3,7 +3,7 @@
https://github.com/josdejong/jsoneditor https://github.com/josdejong/jsoneditor
## not yet released, version 5.5.2 ## 2016-04-18, version 5.5.2
- Fixed #294: Fields reset their caret location on every key press in Firefox. - Fixed #294: Fields reset their caret location on every key press in Firefox.

View File

@ -24,8 +24,8 @@
* Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org * Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org
* *
* @author Jos de Jong, <wjosdejong@gmail.com> * @author Jos de Jong, <wjosdejong@gmail.com>
* @version 5.5.1 * @version 5.5.2
* @date 2016-04-16 * @date 2016-04-18
*/ */
(function webpackUniversalModuleDefinition(root, factory) { (function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object') if(typeof exports === 'object' && typeof module === 'object')
@ -5938,48 +5938,22 @@ return /******/ (function(modules) { // webpackBootstrap
domField.className = 'jsoneditor-readonly'; domField.className = 'jsoneditor-readonly';
} }
var field; var fieldText;
if (this.index != undefined) { if (this.index != undefined) {
field = this.index; fieldText = this.index;
} }
else if (this.field != undefined) { else if (this.field != undefined) {
field = this.field; fieldText = this.field;
} }
else if (this._hasChilds()) { else if (this._hasChilds()) {
field = this.type; fieldText = this.type;
} }
else { else {
field = ''; fieldText = '';
}
domField.innerHTML = this._escapeHTML(field);
} }
domField.innerHTML = this._escapeHTML(fieldText);
//Locating the schema of the node and checking for any enum type this._updateSchema();
if(this.editor && this.editor.options) {
//Search for the schema element of the current node and store it in the schema attribute.
//Hereafter, wherever you have access in the node you will have also access in its own schema.
this.schema = this._getJsonObject(this.editor.options.schema, 'name', field)[0];
if(!this.schema) {
this.schema = this._getJsonObject(this.editor.options.schema, field)[0];
}
//Search for any enumeration type in the schema of the current node.
//Enum types can be also be part of a composite type.
if(this.schema){
if(this.schema.hasOwnProperty('enum')){
this.enum = new Object();
this.enum.enum = this.schema.enum;
} else if(this.schema.hasOwnProperty('oneOf')){
this.enum = this._getJsonObject(this.schema.oneOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('anyOf')){
this.enum = this._getJsonObject(this.schema.anyOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('allOf')){
this.enum = this._getJsonObject(this.schema.allOf, 'enum')[0];
} else {
delete this.enum;
}
} else {
delete this.enum;
}
} }
// apply value to DOM // apply value to DOM
@ -6025,6 +5999,43 @@ return /******/ (function(modules) { // webpackBootstrap
} }
}; };
/**
* Locate the JSON schema of the node and check for any enum type
* @private
*/
Node.prototype._updateSchema = function () {
//Locating the schema of the node and checking for any enum type
if(this.editor && this.editor.options) {
var field = (this.index != undefined) ? this.index : this.field;
//Search for the schema element of the current node and store it in the schema attribute.
//Hereafter, wherever you have access in the node you will have also access in its own schema.
this.schema = this._getJsonObject(this.editor.options.schema, 'name', field)[0];
if(!this.schema) {
this.schema = this._getJsonObject(this.editor.options.schema, field)[0];
}
//Search for any enumeration type in the schema of the current node.
//Enum types can be also be part of a composite type.
if(this.schema){
if(this.schema.hasOwnProperty('enum')){
this.enum = {};
this.enum.enum = this.schema.enum;
} else if(this.schema.hasOwnProperty('oneOf')){
this.enum = this._getJsonObject(this.schema.oneOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('anyOf')){
this.enum = this._getJsonObject(this.schema.anyOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('allOf')){
this.enum = this._getJsonObject(this.schema.allOf, 'enum')[0];
} else {
delete this.enum;
}
} else {
delete this.enum;
}
}
};
/** /**
* Get all sub-elements of the given object with the specified key and value. * Get all sub-elements of the given object with the specified key and value.
* @private * @private
@ -6316,7 +6327,9 @@ return /******/ (function(modules) { // webpackBootstrap
case 'input': case 'input':
this._getDomField(true); this._getDomField(true);
this.updateDom(); this._updateSchema();
this._updateDomField();
this._updateDomValue();
break; break;
case 'keydown': case 'keydown':

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

85
dist/jsoneditor.js vendored
View File

@ -24,8 +24,8 @@
* Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org * Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org
* *
* @author Jos de Jong, <wjosdejong@gmail.com> * @author Jos de Jong, <wjosdejong@gmail.com>
* @version 5.5.1 * @version 5.5.2
* @date 2016-04-16 * @date 2016-04-18
*/ */
(function webpackUniversalModuleDefinition(root, factory) { (function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object') if(typeof exports === 'object' && typeof module === 'object')
@ -13837,48 +13837,22 @@ return /******/ (function(modules) { // webpackBootstrap
domField.className = 'jsoneditor-readonly'; domField.className = 'jsoneditor-readonly';
} }
var field; var fieldText;
if (this.index != undefined) { if (this.index != undefined) {
field = this.index; fieldText = this.index;
} }
else if (this.field != undefined) { else if (this.field != undefined) {
field = this.field; fieldText = this.field;
} }
else if (this._hasChilds()) { else if (this._hasChilds()) {
field = this.type; fieldText = this.type;
} }
else { else {
field = ''; fieldText = '';
}
domField.innerHTML = this._escapeHTML(field);
} }
domField.innerHTML = this._escapeHTML(fieldText);
//Locating the schema of the node and checking for any enum type this._updateSchema();
if(this.editor && this.editor.options) {
//Search for the schema element of the current node and store it in the schema attribute.
//Hereafter, wherever you have access in the node you will have also access in its own schema.
this.schema = this._getJsonObject(this.editor.options.schema, 'name', field)[0];
if(!this.schema) {
this.schema = this._getJsonObject(this.editor.options.schema, field)[0];
}
//Search for any enumeration type in the schema of the current node.
//Enum types can be also be part of a composite type.
if(this.schema){
if(this.schema.hasOwnProperty('enum')){
this.enum = new Object();
this.enum.enum = this.schema.enum;
} else if(this.schema.hasOwnProperty('oneOf')){
this.enum = this._getJsonObject(this.schema.oneOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('anyOf')){
this.enum = this._getJsonObject(this.schema.anyOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('allOf')){
this.enum = this._getJsonObject(this.schema.allOf, 'enum')[0];
} else {
delete this.enum;
}
} else {
delete this.enum;
}
} }
// apply value to DOM // apply value to DOM
@ -13924,6 +13898,43 @@ return /******/ (function(modules) { // webpackBootstrap
} }
}; };
/**
* Locate the JSON schema of the node and check for any enum type
* @private
*/
Node.prototype._updateSchema = function () {
//Locating the schema of the node and checking for any enum type
if(this.editor && this.editor.options) {
var field = (this.index != undefined) ? this.index : this.field;
//Search for the schema element of the current node and store it in the schema attribute.
//Hereafter, wherever you have access in the node you will have also access in its own schema.
this.schema = this._getJsonObject(this.editor.options.schema, 'name', field)[0];
if(!this.schema) {
this.schema = this._getJsonObject(this.editor.options.schema, field)[0];
}
//Search for any enumeration type in the schema of the current node.
//Enum types can be also be part of a composite type.
if(this.schema){
if(this.schema.hasOwnProperty('enum')){
this.enum = {};
this.enum.enum = this.schema.enum;
} else if(this.schema.hasOwnProperty('oneOf')){
this.enum = this._getJsonObject(this.schema.oneOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('anyOf')){
this.enum = this._getJsonObject(this.schema.anyOf, 'enum')[0];
} else if(this.schema.hasOwnProperty('allOf')){
this.enum = this._getJsonObject(this.schema.allOf, 'enum')[0];
} else {
delete this.enum;
}
} else {
delete this.enum;
}
}
};
/** /**
* Get all sub-elements of the given object with the specified key and value. * Get all sub-elements of the given object with the specified key and value.
* @private * @private
@ -14215,7 +14226,9 @@ return /******/ (function(modules) { // webpackBootstrap
case 'input': case 'input':
this._getDomField(true); this._getDomField(true);
this.updateDom(); this._updateSchema();
this._updateDomField();
this._updateDomValue();
break; break;
case 'keydown': case 'keydown':

2
dist/jsoneditor.map vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "jsoneditor", "name": "jsoneditor",
"version": "5.5.1", "version": "5.5.2",
"main": "./index", "main": "./index",
"description": "A web-based tool to view, edit, format, and validate JSON", "description": "A web-based tool to view, edit, format, and validate JSON",
"tags": [ "tags": [