hyperion.ng/assets/webconfig/js/lib/jsoneditor.js.map
2016-09-03 19:51:30 +02:00

1 line
650 KiB
Plaintext
Executable File

{"version":3,"sources":["../src/intro.js","../src/class.js","../src/ie9.js","../src/utilities.js","../src/core.js","../src/validator.js","../src/editor.js","../src/editors/null.js","../src/editors/string.js","../src/editors/number.js","../src/editors/integer.js","../src/editors/object.js","../src/editors/array.js","../src/editors/table.js","../src/editors/multiple.js","../src/editors/enum.js","../src/editors/select.js","../src/editors/selectize.js","../src/editors/multiselect.js","../src/editors/base64.js","../src/editors/upload.js","../src/editors/checkbox.js","../src/editors/array/selectize.js","../src/theme.js","../src/themes/bootstrap2.js","../src/themes/bootstrap3.js","../src/themes/foundation.js","../src/themes/html.js","../src/themes/jqueryui.js","../src/themes/jsoneditor.barebones-theme.js","../src/iconlib.js","../src/iconlibs/bootstrap2.js","../src/iconlibs/bootstrap3.js","../src/iconlibs/fontawesome3.js","../src/iconlibs/fontawesome4.js","../src/iconlibs/foundation2.js","../src/iconlibs/foundation3.js","../src/iconlibs/jqueryui.js","../src/templates/default.js","../src/templates/ejs.js","../src/templates/handlebars.js","../src/templates/hogan.js","../src/templates/markup.js","../src/templates/mustache.js","../src/templates/swig.js","../src/templates/underscore.js","../src/defaults.js","../src/jquery.js","../src/outro.js"],"names":[],"mappings":"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","file":"jsoneditor.js","sourcesContent":["/*! JSON Editor v0.7.28 - JSON Schema -> HTML Editor\n * By Jeremy Dorn - https://github.com/jdorn/json-editor/\n * Released under the MIT license\n *\n * Date: 2016-08-07\n */\n\n/**\n * See README.md for requirements and usage info\n */\n\n(function() {\n","/*jshint loopfunc: true */\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n */\n// Inspired by base2 and Prototype\nvar Class;\n(function(){\n var initializing = false, fnTest = /xyz/.test(function(){window.postMessage(\"xyz\");}) ? /\\b_super\\b/ : /.*/;\n \n // The base Class implementation (does nothing)\n Class = function(){};\n \n // Create a new Class that inherits from this class\n Class.extend = function extend(prop) {\n var _super = this.prototype;\n \n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n initializing = true;\n var prototype = new this();\n initializing = false;\n \n // Copy the properties over onto the new prototype\n for (var name in prop) {\n // Check if we're overwriting an existing function\n prototype[name] = typeof prop[name] == \"function\" &&\n typeof _super[name] == \"function\" && fnTest.test(prop[name]) ?\n (function(name, fn){\n return function() {\n var tmp = this._super;\n \n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n \n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n var ret = fn.apply(this, arguments); \n this._super = tmp;\n \n return ret;\n };\n })(name, prop[name]) :\n prop[name];\n }\n \n // The dummy class constructor\n function Class() {\n // All construction is actually done in the init method\n if ( !initializing && this.init )\n this.init.apply(this, arguments);\n }\n \n // Populate our constructed prototype object\n Class.prototype = prototype;\n \n // Enforce the constructor to be what we expect\n Class.prototype.constructor = Class;\n \n // And make this class extendable\n Class.extend = extend;\n \n return Class;\n };\n \n return Class;\n})();\n","// CustomEvent constructor polyfill\n// From MDN\n(function () {\n function CustomEvent ( event, params ) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n})();\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n// MIT license\n(function() {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || \n window[vendors[x]+'CancelRequestAnimationFrame'];\n }\n \n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() { callback(currTime + timeToCall); }, \n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n \n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n}());\n\n// Array.isArray polyfill\n// From MDN\n(function() {\n\tif(!Array.isArray) {\n\t Array.isArray = function(arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t };\n\t}\n}());","/**\n * Taken from jQuery 2.1.3\n *\n * @param obj\n * @returns {boolean}\n */\nvar $isplainobject = function( obj ) {\n // Not plain objects:\n // - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n // - DOM nodes\n // - window\n if (typeof obj !== \"object\" || obj.nodeType || (obj !== null && obj === obj.window)) {\n return false;\n }\n\n if (obj.constructor && !Object.prototype.hasOwnProperty.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n\n // If the function hasn't returned already, we're confident that\n // |obj| is a plain object, created by {} or constructed with new Object\n return true;\n};\n\nvar $extend = function(destination) {\n var source, i,property;\n for(i=1; i<arguments.length; i++) {\n source = arguments[i];\n for (property in source) {\n if(!source.hasOwnProperty(property)) continue;\n if(source[property] && $isplainobject(source[property])) {\n if(!destination.hasOwnProperty(property)) destination[property] = {};\n $extend(destination[property], source[property]);\n }\n else {\n destination[property] = source[property];\n }\n }\n }\n return destination;\n};\n\nvar $each = function(obj,callback) {\n if(!obj || typeof obj !== \"object\") return;\n var i;\n if(Array.isArray(obj) || (typeof obj.length === 'number' && obj.length > 0 && (obj.length - 1) in obj)) {\n for(i=0; i<obj.length; i++) {\n if(callback(i,obj[i])===false) return;\n }\n }\n else {\n if (Object.keys) {\n var keys = Object.keys(obj);\n for(i=0; i<keys.length; i++) {\n if(callback(keys[i],obj[keys[i]])===false) return;\n }\n }\n else {\n for(i in obj) {\n if(!obj.hasOwnProperty(i)) continue;\n if(callback(i,obj[i])===false) return;\n }\n }\n }\n};\n\nvar $trigger = function(el,event) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(event, true, true);\n el.dispatchEvent(e);\n};\nvar $triggerc = function(el,event) {\n var e = new CustomEvent(event,{\n bubbles: true,\n cancelable: true\n });\n\n el.dispatchEvent(e);\n};\n","var JSONEditor = function(element,options) {\n if (!(element instanceof Element)) {\n throw new Error('element should be an instance of Element');\n }\n options = $extend({},JSONEditor.defaults.options,options||{});\n this.element = element;\n this.options = options;\n this.init();\n};\nJSONEditor.prototype = {\n // necessary since we remove the ctor property by doing a literal assignment. Without this\n // the $isplainobject function will think that this is a plain object.\n constructor: JSONEditor,\n init: function() {\n var self = this;\n \n this.ready = false;\n\n var theme_class = JSONEditor.defaults.themes[this.options.theme || JSONEditor.defaults.theme];\n if(!theme_class) throw \"Unknown theme \" + (this.options.theme || JSONEditor.defaults.theme);\n \n this.schema = this.options.schema;\n this.theme = new theme_class();\n this.template = this.options.template;\n this.refs = this.options.refs || {};\n this.uuid = 0;\n this.__data = {};\n \n var icon_class = JSONEditor.defaults.iconlibs[this.options.iconlib || JSONEditor.defaults.iconlib];\n if(icon_class) this.iconlib = new icon_class();\n\n this.root_container = this.theme.getContainer();\n this.element.appendChild(this.root_container);\n \n this.translate = this.options.translate || JSONEditor.defaults.translate;\n\n // Fetch all external refs via ajax\n this._loadExternalRefs(this.schema, function() {\n self._getDefinitions(self.schema);\n \n // Validator options\n var validator_options = {};\n if(self.options.custom_validators) {\n validator_options.custom_validators = self.options.custom_validators;\n }\n self.validator = new JSONEditor.Validator(self,null,validator_options);\n \n // Create the root editor\n var editor_class = self.getEditorClass(self.schema);\n self.root = self.createEditor(editor_class, {\n jsoneditor: self,\n schema: self.schema,\n required: true,\n container: self.root_container\n });\n \n self.root.preBuild();\n self.root.build();\n self.root.postBuild();\n\n // Starting data\n if(self.options.startval) self.root.setValue(self.options.startval);\n\n self.validation_results = self.validator.validate(self.root.getValue());\n self.root.showValidationErrors(self.validation_results);\n self.ready = true;\n\n // Fire ready event asynchronously\n window.requestAnimationFrame(function() {\n if(!self.ready) return;\n self.validation_results = self.validator.validate(self.root.getValue());\n self.root.showValidationErrors(self.validation_results);\n self.trigger('ready');\n self.trigger('change');\n });\n });\n },\n getValue: function() {\n if(!this.ready) throw \"JSON Editor not ready yet. Listen for 'ready' event before getting the value\";\n\n return this.root.getValue();\n },\n setValue: function(value) {\n if(!this.ready) throw \"JSON Editor not ready yet. Listen for 'ready' event before setting the value\";\n\n this.root.setValue(value);\n return this;\n },\n validate: function(value) {\n if(!this.ready) throw \"JSON Editor not ready yet. Listen for 'ready' event before validating\";\n \n // Custom value\n if(arguments.length === 1) {\n return this.validator.validate(value);\n }\n // Current value (use cached result)\n else {\n return this.validation_results;\n }\n },\n destroy: function() {\n if(this.destroyed) return;\n if(!this.ready) return;\n \n this.schema = null;\n this.options = null;\n this.root.destroy();\n this.root = null;\n this.root_container = null;\n this.validator = null;\n this.validation_results = null;\n this.theme = null;\n this.iconlib = null;\n this.template = null;\n this.__data = null;\n this.ready = false;\n this.element.innerHTML = '';\n \n this.destroyed = true;\n },\n on: function(event, callback) {\n this.callbacks = this.callbacks || {};\n this.callbacks[event] = this.callbacks[event] || [];\n this.callbacks[event].push(callback);\n \n return this;\n },\n off: function(event, callback) {\n // Specific callback\n if(event && callback) {\n this.callbacks = this.callbacks || {};\n this.callbacks[event] = this.callbacks[event] || [];\n var newcallbacks = [];\n for(var i=0; i<this.callbacks[event].length; i++) {\n if(this.callbacks[event][i]===callback) continue;\n newcallbacks.push(this.callbacks[event][i]);\n }\n this.callbacks[event] = newcallbacks;\n }\n // All callbacks for a specific event\n else if(event) {\n this.callbacks = this.callbacks || {};\n this.callbacks[event] = [];\n }\n // All callbacks for all events\n else {\n this.callbacks = {};\n }\n \n return this;\n },\n trigger: function(event) {\n if(this.callbacks && this.callbacks[event] && this.callbacks[event].length) {\n for(var i=0; i<this.callbacks[event].length; i++) {\n this.callbacks[event][i]();\n }\n }\n \n return this;\n },\n setOption: function(option, value) {\n if(option === \"show_errors\") {\n this.options.show_errors = value;\n this.onChange();\n }\n // Only the `show_errors` option is supported for now\n else {\n throw \"Option \"+option+\" must be set during instantiation and cannot be changed later\";\n }\n \n return this;\n },\n getEditorClass: function(schema) {\n var classname;\n\n schema = this.expandSchema(schema);\n\n $each(JSONEditor.defaults.resolvers,function(i,resolver) {\n var tmp = resolver(schema);\n if(tmp) {\n if(JSONEditor.defaults.editors[tmp]) {\n classname = tmp;\n return false;\n }\n }\n });\n\n if(!classname) throw \"Unknown editor for schema \"+JSON.stringify(schema);\n if(!JSONEditor.defaults.editors[classname]) throw \"Unknown editor \"+classname;\n\n return JSONEditor.defaults.editors[classname];\n },\n createEditor: function(editor_class, options) {\n options = $extend({},editor_class.options||{},options);\n return new editor_class(options);\n },\n onChange: function() {\n if(!this.ready) return;\n \n if(this.firing_change) return;\n this.firing_change = true;\n \n var self = this;\n \n window.requestAnimationFrame(function() {\n self.firing_change = false;\n if(!self.ready) return;\n\n // Validate and cache results\n self.validation_results = self.validator.validate(self.root.getValue());\n \n if(self.options.show_errors !== \"never\") {\n self.root.showValidationErrors(self.validation_results);\n }\n else {\n self.root.showValidationErrors([]);\n }\n \n // Fire change event\n self.trigger('change');\n });\n \n return this;\n },\n compileTemplate: function(template, name) {\n name = name || JSONEditor.defaults.template;\n\n var engine;\n\n // Specifying a preset engine\n if(typeof name === 'string') {\n if(!JSONEditor.defaults.templates[name]) throw \"Unknown template engine \"+name;\n engine = JSONEditor.defaults.templates[name]();\n\n if(!engine) throw \"Template engine \"+name+\" missing required library.\";\n }\n // Specifying a custom engine\n else {\n engine = name;\n }\n\n if(!engine) throw \"No template engine set\";\n if(!engine.compile) throw \"Invalid template engine set\";\n\n return engine.compile(template);\n },\n _data: function(el,key,value) {\n // Setting data\n if(arguments.length === 3) {\n var uuid;\n if(el.hasAttribute('data-jsoneditor-'+key)) {\n uuid = el.getAttribute('data-jsoneditor-'+key);\n }\n else {\n uuid = this.uuid++;\n el.setAttribute('data-jsoneditor-'+key,uuid);\n }\n\n this.__data[uuid] = value;\n }\n // Getting data\n else {\n // No data stored\n if(!el.hasAttribute('data-jsoneditor-'+key)) return null;\n \n return this.__data[el.getAttribute('data-jsoneditor-'+key)];\n }\n },\n registerEditor: function(editor) {\n this.editors = this.editors || {};\n this.editors[editor.path] = editor;\n return this;\n },\n unregisterEditor: function(editor) {\n this.editors = this.editors || {};\n this.editors[editor.path] = null;\n return this;\n },\n getEditor: function(path) {\n if(!this.editors) return;\n return this.editors[path];\n },\n watch: function(path,callback) {\n this.watchlist = this.watchlist || {};\n this.watchlist[path] = this.watchlist[path] || [];\n this.watchlist[path].push(callback);\n \n return this;\n },\n unwatch: function(path,callback) {\n if(!this.watchlist || !this.watchlist[path]) return this;\n // If removing all callbacks for a path\n if(!callback) {\n this.watchlist[path] = null;\n return this;\n }\n \n var newlist = [];\n for(var i=0; i<this.watchlist[path].length; i++) {\n if(this.watchlist[path][i] === callback) continue;\n else newlist.push(this.watchlist[path][i]);\n }\n this.watchlist[path] = newlist.length? newlist : null;\n return this;\n },\n notifyWatchers: function(path) {\n if(!this.watchlist || !this.watchlist[path]) return this;\n for(var i=0; i<this.watchlist[path].length; i++) {\n this.watchlist[path][i]();\n }\n },\n isEnabled: function() {\n return !this.root || this.root.isEnabled();\n },\n enable: function() {\n this.root.enable();\n },\n disable: function() {\n this.root.disable();\n },\n _getDefinitions: function(schema,path) {\n path = path || '#/definitions/';\n if(schema.definitions) {\n for(var i in schema.definitions) {\n if(!schema.definitions.hasOwnProperty(i)) continue;\n this.refs[path+i] = schema.definitions[i];\n if(schema.definitions[i].definitions) {\n this._getDefinitions(schema.definitions[i],path+i+'/definitions/');\n }\n }\n }\n },\n _getExternalRefs: function(schema) {\n var refs = {};\n var merge_refs = function(newrefs) {\n for(var i in newrefs) {\n if(newrefs.hasOwnProperty(i)) {\n refs[i] = true;\n }\n }\n };\n \n if(schema.$ref && typeof schema.$ref !== \"object\" && schema.$ref.substr(0,1) !== \"#\" && !this.refs[schema.$ref]) {\n refs[schema.$ref] = true;\n }\n \n for(var i in schema) {\n if(!schema.hasOwnProperty(i)) continue;\n if(schema[i] && typeof schema[i] === \"object\" && Array.isArray(schema[i])) {\n for(var j=0; j<schema[i].length; j++) {\n if(typeof schema[i][j]===\"object\") {\n merge_refs(this._getExternalRefs(schema[i][j]));\n }\n }\n }\n else if(schema[i] && typeof schema[i] === \"object\") {\n merge_refs(this._getExternalRefs(schema[i]));\n }\n }\n \n return refs;\n },\n _loadExternalRefs: function(schema, callback) {\n var self = this;\n var refs = this._getExternalRefs(schema);\n \n var done = 0, waiting = 0, callback_fired = false;\n \n $each(refs,function(url) {\n if(self.refs[url]) return;\n if(!self.options.ajax) throw \"Must set ajax option to true to load external ref \"+url;\n self.refs[url] = 'loading';\n waiting++;\n\n var r = new XMLHttpRequest(); \n r.open(\"GET\", url, true);\n r.onreadystatechange = function () {\n if (r.readyState != 4) return; \n // Request succeeded\n if(r.status === 200) {\n var response;\n try {\n response = JSON.parse(r.responseText);\n }\n catch(e) {\n window.console.log(e);\n throw \"Failed to parse external ref \"+url;\n }\n if(!response || typeof response !== \"object\") throw \"External ref does not contain a valid schema - \"+url;\n \n self.refs[url] = response;\n self._loadExternalRefs(response,function() {\n done++;\n if(done >= waiting && !callback_fired) {\n callback_fired = true;\n callback();\n }\n });\n }\n // Request failed\n else {\n window.console.log(r);\n throw \"Failed to fetch ref via ajax- \"+url;\n }\n };\n r.send();\n });\n \n if(!waiting) {\n callback();\n }\n },\n expandRefs: function(schema) {\n schema = $extend({},schema);\n \n while (schema.$ref) {\n var ref = schema.$ref;\n delete schema.$ref;\n \n if(!this.refs[ref]) ref = decodeURIComponent(ref);\n \n schema = this.extendSchemas(schema,this.refs[ref]);\n }\n return schema;\n },\n expandSchema: function(schema) {\n var self = this;\n var extended = $extend({},schema);\n var i;\n\n // Version 3 `type`\n if(typeof schema.type === 'object') {\n // Array of types\n if(Array.isArray(schema.type)) {\n $each(schema.type, function(key,value) {\n // Schema\n if(typeof value === 'object') {\n schema.type[key] = self.expandSchema(value);\n }\n });\n }\n // Schema\n else {\n schema.type = self.expandSchema(schema.type);\n }\n }\n // Version 3 `disallow`\n if(typeof schema.disallow === 'object') {\n // Array of types\n if(Array.isArray(schema.disallow)) {\n $each(schema.disallow, function(key,value) {\n // Schema\n if(typeof value === 'object') {\n schema.disallow[key] = self.expandSchema(value);\n }\n });\n }\n // Schema\n else {\n schema.disallow = self.expandSchema(schema.disallow);\n }\n }\n // Version 4 `anyOf`\n if(schema.anyOf) {\n $each(schema.anyOf, function(key,value) {\n schema.anyOf[key] = self.expandSchema(value);\n });\n }\n // Version 4 `dependencies` (schema dependencies)\n if(schema.dependencies) {\n $each(schema.dependencies,function(key,value) {\n if(typeof value === \"object\" && !(Array.isArray(value))) {\n schema.dependencies[key] = self.expandSchema(value);\n }\n });\n }\n // Version 4 `not`\n if(schema.not) {\n schema.not = this.expandSchema(schema.not);\n }\n \n // allOf schemas should be merged into the parent\n if(schema.allOf) {\n for(i=0; i<schema.allOf.length; i++) {\n extended = this.extendSchemas(extended,this.expandSchema(schema.allOf[i]));\n }\n delete extended.allOf;\n }\n // extends schemas should be merged into parent\n if(schema[\"extends\"]) {\n // If extends is a schema\n if(!(Array.isArray(schema[\"extends\"]))) {\n extended = this.extendSchemas(extended,this.expandSchema(schema[\"extends\"]));\n }\n // If extends is an array of schemas\n else {\n for(i=0; i<schema[\"extends\"].length; i++) {\n extended = this.extendSchemas(extended,this.expandSchema(schema[\"extends\"][i]));\n }\n }\n delete extended[\"extends\"];\n }\n // parent should be merged into oneOf schemas\n if(schema.oneOf) {\n var tmp = $extend({},extended);\n delete tmp.oneOf;\n for(i=0; i<schema.oneOf.length; i++) {\n extended.oneOf[i] = this.extendSchemas(this.expandSchema(schema.oneOf[i]),tmp);\n }\n }\n \n return this.expandRefs(extended);\n },\n extendSchemas: function(obj1, obj2) {\n obj1 = $extend({},obj1);\n obj2 = $extend({},obj2);\n\n var self = this;\n var extended = {};\n $each(obj1, function(prop,val) {\n // If this key is also defined in obj2, merge them\n if(typeof obj2[prop] !== \"undefined\") {\n // Required and defaultProperties arrays should be unioned together\n if((prop === 'required'||prop === 'defaultProperties') && typeof val === \"object\" && Array.isArray(val)) {\n // Union arrays and unique\n extended[prop] = val.concat(obj2[prop]).reduce(function(p, c) {\n if (p.indexOf(c) < 0) p.push(c);\n return p;\n }, []);\n }\n // Type should be intersected and is either an array or string\n else if(prop === 'type' && (typeof val === \"string\" || Array.isArray(val))) {\n // Make sure we're dealing with arrays\n if(typeof val === \"string\") val = [val];\n if(typeof obj2.type === \"string\") obj2.type = [obj2.type];\n\n // If type is only defined in the first schema, keep it\n if(!obj2.type || !obj2.type.length) {\n extended.type = val;\n }\n // If type is defined in both schemas, do an intersect\n else {\n extended.type = val.filter(function(n) {\n return obj2.type.indexOf(n) !== -1;\n });\n }\n\n // If there's only 1 type and it's a primitive, use a string instead of array\n if(extended.type.length === 1 && typeof extended.type[0] === \"string\") {\n extended.type = extended.type[0];\n }\n // Remove the type property if it's empty\n else if(extended.type.length === 0) {\n delete extended.type;\n }\n }\n // All other arrays should be intersected (enum, etc.)\n else if(typeof val === \"object\" && Array.isArray(val)){\n extended[prop] = val.filter(function(n) {\n return obj2[prop].indexOf(n) !== -1;\n });\n }\n // Objects should be recursively merged\n else if(typeof val === \"object\" && val !== null) {\n extended[prop] = self.extendSchemas(val,obj2[prop]);\n }\n // Otherwise, use the first value\n else {\n extended[prop] = val;\n }\n }\n // Otherwise, just use the one in obj1\n else {\n extended[prop] = val;\n }\n });\n // Properties in obj2 that aren't in obj1\n $each(obj2, function(prop,val) {\n if(typeof obj1[prop] === \"undefined\") {\n extended[prop] = val;\n }\n });\n\n return extended;\n }\n};\n\nJSONEditor.defaults = {\n themes: {},\n templates: {},\n iconlibs: {},\n editors: {},\n languages: {},\n resolvers: [],\n custom_validators: []\n};\n","JSONEditor.Validator = Class.extend({\n init: function(jsoneditor,schema,options) {\n this.jsoneditor = jsoneditor;\n this.schema = schema || this.jsoneditor.schema;\n this.options = options || {};\n this.translate = this.jsoneditor.translate || JSONEditor.defaults.translate;\n },\n validate: function(value) {\n return this._validateSchema(this.schema, value);\n },\n _validateSchema: function(schema,value,path) {\n var self = this;\n var errors = [];\n var valid, i, j;\n var stringified = JSON.stringify(value);\n\n path = path || 'root';\n\n // Work on a copy of the schema\n schema = $extend({},this.jsoneditor.expandRefs(schema));\n\n /*\n * Type Agnostic Validation\n */\n\n // Version 3 `required`\n if(schema.required && schema.required === true) {\n if(typeof value === \"undefined\") {\n errors.push({\n path: path,\n property: 'required',\n message: this.translate(\"error_notset\")\n });\n\n // Can't do any more validation at this point\n return errors;\n }\n }\n // Value not defined\n else if(typeof value === \"undefined\") {\n // If required_by_default is set, all fields are required\n if(this.jsoneditor.options.required_by_default) {\n errors.push({\n path: path,\n property: 'required',\n message: this.translate(\"error_notset\")\n });\n }\n // Not required, no further validation needed\n else {\n return errors;\n }\n }\n\n // `enum`\n if(schema[\"enum\"]) {\n valid = false;\n for(i=0; i<schema[\"enum\"].length; i++) {\n if(stringified === JSON.stringify(schema[\"enum\"][i])) valid = true;\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'enum',\n message: this.translate(\"error_enum\")\n });\n }\n }\n\n // `extends` (version 3)\n if(schema[\"extends\"]) {\n for(i=0; i<schema[\"extends\"].length; i++) {\n errors = errors.concat(this._validateSchema(schema[\"extends\"][i],value,path));\n }\n }\n\n // `allOf`\n if(schema.allOf) {\n for(i=0; i<schema.allOf.length; i++) {\n errors = errors.concat(this._validateSchema(schema.allOf[i],value,path));\n }\n }\n\n // `anyOf`\n if(schema.anyOf) {\n valid = false;\n for(i=0; i<schema.anyOf.length; i++) {\n if(!this._validateSchema(schema.anyOf[i],value,path).length) {\n valid = true;\n break;\n }\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'anyOf',\n message: this.translate('error_anyOf')\n });\n }\n }\n\n // `oneOf`\n if(schema.oneOf) {\n valid = 0;\n var oneof_errors = [];\n for(i=0; i<schema.oneOf.length; i++) {\n // Set the error paths to be path.oneOf[i].rest.of.path\n var tmp = this._validateSchema(schema.oneOf[i],value,path);\n if(!tmp.length) {\n valid++;\n }\n\n for(j=0; j<tmp.length; j++) {\n tmp[j].path = path+'.oneOf['+i+']'+tmp[j].path.substr(path.length);\n }\n oneof_errors = oneof_errors.concat(tmp);\n\n }\n if(valid !== 1) {\n errors.push({\n path: path,\n property: 'oneOf',\n message: this.translate('error_oneOf', [valid])\n });\n errors = errors.concat(oneof_errors);\n }\n }\n\n // `not`\n if(schema.not) {\n if(!this._validateSchema(schema.not,value,path).length) {\n errors.push({\n path: path,\n property: 'not',\n message: this.translate('error_not')\n });\n }\n }\n\n // `type` (both Version 3 and Version 4 support)\n if(schema.type) {\n // Union type\n if(Array.isArray(schema.type)) {\n valid = false;\n for(i=0;i<schema.type.length;i++) {\n if(this._checkType(schema.type[i], value)) {\n valid = true;\n break;\n }\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'type',\n message: this.translate('error_type_union')\n });\n }\n }\n // Simple type\n else {\n if(!this._checkType(schema.type, value)) {\n errors.push({\n path: path,\n property: 'type',\n message: this.translate('error_type', [schema.type])\n });\n }\n }\n }\n\n\n // `disallow` (version 3)\n if(schema.disallow) {\n // Union type\n if(Array.isArray(schema.disallow)) {\n valid = true;\n for(i=0;i<schema.disallow.length;i++) {\n if(this._checkType(schema.disallow[i], value)) {\n valid = false;\n break;\n }\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'disallow',\n message: this.translate('error_disallow_union')\n });\n }\n }\n // Simple type\n else {\n if(this._checkType(schema.disallow, value)) {\n errors.push({\n path: path,\n property: 'disallow',\n message: this.translate('error_disallow', [schema.disallow])\n });\n }\n }\n }\n\n /*\n * Type Specific Validation\n */\n\n // Number Specific Validation\n if(typeof value === \"number\") {\n // `multipleOf` and `divisibleBy`\n if(schema.multipleOf || schema.divisibleBy) {\n var divisor = schema.multipleOf || schema.divisibleBy;\n // Vanilla JS, prone to floating point rounding errors (e.g. 1.14 / .01 == 113.99999)\n valid = (value/divisor === Math.floor(value/divisor));\n\n // Use math.js is available\n if(window.math) {\n valid = window.math.mod(window.math.bignumber(value), window.math.bignumber(divisor)).equals(0);\n }\n // Use decimal.js is available\n else if(window.Decimal) {\n valid = (new window.Decimal(value)).mod(new window.Decimal(divisor)).equals(0);\n }\n\n if(!valid) {\n errors.push({\n path: path,\n property: schema.multipleOf? 'multipleOf' : 'divisibleBy',\n message: this.translate('error_multipleOf', [divisor])\n });\n }\n }\n\n // `maximum`\n if(schema.hasOwnProperty('maximum')) {\n // Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1)\n valid = schema.exclusiveMaximum? (value < schema.maximum) : (value <= schema.maximum);\n\n // Use math.js is available\n if(window.math) {\n valid = window.math[schema.exclusiveMaximum?'smaller':'smallerEq'](\n window.math.bignumber(value),\n window.math.bignumber(schema.maximum)\n );\n }\n // Use Decimal.js if available\n else if(window.Decimal) {\n valid = (new window.Decimal(value))[schema.exclusiveMaximum?'lt':'lte'](new window.Decimal(schema.maximum));\n }\n\n if(!valid) {\n errors.push({\n path: path,\n property: 'maximum',\n message: this.translate(\n (schema.exclusiveMaximum?'error_maximum_excl':'error_maximum_incl'),\n [schema.maximum]\n )\n });\n }\n }\n\n // `minimum`\n if(schema.hasOwnProperty('minimum')) {\n // Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1)\n valid = schema.exclusiveMinimum? (value > schema.minimum) : (value >= schema.minimum);\n\n // Use math.js is available\n if(window.math) {\n valid = window.math[schema.exclusiveMinimum?'larger':'largerEq'](\n window.math.bignumber(value),\n window.math.bignumber(schema.minimum)\n );\n }\n // Use Decimal.js if available\n else if(window.Decimal) {\n valid = (new window.Decimal(value))[schema.exclusiveMinimum?'gt':'gte'](new window.Decimal(schema.minimum));\n }\n\n if(!valid) {\n errors.push({\n path: path,\n property: 'minimum',\n message: this.translate(\n (schema.exclusiveMinimum?'error_minimum_excl':'error_minimum_incl'),\n [schema.minimum]\n )\n });\n }\n }\n }\n // String specific validation\n else if(typeof value === \"string\") {\n // `maxLength`\n if(schema.maxLength) {\n if((value+\"\").length > schema.maxLength) {\n errors.push({\n path: path,\n property: 'maxLength',\n message: this.translate('error_maxLength', [schema.maxLength])\n });\n }\n }\n\n // `minLength`\n if(schema.minLength) {\n if((value+\"\").length < schema.minLength) {\n errors.push({\n path: path,\n property: 'minLength',\n message: this.translate((schema.minLength===1?'error_notempty':'error_minLength'), [schema.minLength])\n });\n }\n }\n\n // `pattern`\n if(schema.pattern) {\n if(!(new RegExp(schema.pattern)).test(value)) {\n errors.push({\n path: path,\n property: 'pattern',\n message: this.translate('error_pattern', [schema.pattern])\n });\n }\n }\n }\n // Array specific validation\n else if(typeof value === \"object\" && value !== null && Array.isArray(value)) {\n // `items` and `additionalItems`\n if(schema.items) {\n // `items` is an array\n if(Array.isArray(schema.items)) {\n for(i=0; i<value.length; i++) {\n // If this item has a specific schema tied to it\n // Validate against it\n if(schema.items[i]) {\n errors = errors.concat(this._validateSchema(schema.items[i],value[i],path+'.'+i));\n }\n // If all additional items are allowed\n else if(schema.additionalItems === true) {\n break;\n }\n // If additional items is a schema\n // TODO: Incompatibility between version 3 and 4 of the spec\n else if(schema.additionalItems) {\n errors = errors.concat(this._validateSchema(schema.additionalItems,value[i],path+'.'+i));\n }\n // If no additional items are allowed\n else if(schema.additionalItems === false) {\n errors.push({\n path: path,\n property: 'additionalItems',\n message: this.translate('error_additionalItems')\n });\n break;\n }\n // Default for `additionalItems` is an empty schema\n else {\n break;\n }\n }\n }\n // `items` is a schema\n else {\n // Each item in the array must validate against the schema\n for(i=0; i<value.length; i++) {\n errors = errors.concat(this._validateSchema(schema.items,value[i],path+'.'+i));\n }\n }\n }\n\n // `maxItems`\n if(schema.maxItems) {\n if(value.length > schema.maxItems) {\n errors.push({\n path: path,\n property: 'maxItems',\n message: this.translate('error_maxItems', [schema.maxItems])\n });\n }\n }\n\n // `minItems`\n if(schema.minItems) {\n if(value.length < schema.minItems) {\n errors.push({\n path: path,\n property: 'minItems',\n message: this.translate('error_minItems', [schema.minItems])\n });\n }\n }\n\n // `uniqueItems`\n if(schema.uniqueItems) {\n var seen = {};\n for(i=0; i<value.length; i++) {\n valid = JSON.stringify(value[i]);\n if(seen[valid]) {\n errors.push({\n path: path,\n property: 'uniqueItems',\n message: this.translate('error_uniqueItems')\n });\n break;\n }\n seen[valid] = true;\n }\n }\n }\n // Object specific validation\n else if(typeof value === \"object\" && value !== null) {\n // `maxProperties`\n if(schema.maxProperties) {\n valid = 0;\n for(i in value) {\n if(!value.hasOwnProperty(i)) continue;\n valid++;\n }\n if(valid > schema.maxProperties) {\n errors.push({\n path: path,\n property: 'maxProperties',\n message: this.translate('error_maxProperties', [schema.maxProperties])\n });\n }\n }\n\n // `minProperties`\n if(schema.minProperties) {\n valid = 0;\n for(i in value) {\n if(!value.hasOwnProperty(i)) continue;\n valid++;\n }\n if(valid < schema.minProperties) {\n errors.push({\n path: path,\n property: 'minProperties',\n message: this.translate('error_minProperties', [schema.minProperties])\n });\n }\n }\n\n // Version 4 `required`\n if(schema.required && Array.isArray(schema.required)) {\n for(i=0; i<schema.required.length; i++) {\n if(typeof value[schema.required[i]] === \"undefined\") {\n errors.push({\n path: path,\n property: 'required',\n message: this.translate('error_required', [schema.required[i]])\n });\n }\n }\n }\n\n // `properties`\n var validated_properties = {};\n if(schema.properties) {\n for(i in schema.properties) {\n if(!schema.properties.hasOwnProperty(i)) continue;\n validated_properties[i] = true;\n errors = errors.concat(this._validateSchema(schema.properties[i],value[i],path+'.'+i));\n }\n }\n\n // `patternProperties`\n if(schema.patternProperties) {\n for(i in schema.patternProperties) {\n if(!schema.patternProperties.hasOwnProperty(i)) continue;\n\n var regex = new RegExp(i);\n\n // Check which properties match\n for(j in value) {\n if(!value.hasOwnProperty(j)) continue;\n if(regex.test(j)) {\n validated_properties[j] = true;\n errors = errors.concat(this._validateSchema(schema.patternProperties[i],value[j],path+'.'+j));\n }\n }\n }\n }\n\n // The no_additional_properties option currently doesn't work with extended schemas that use oneOf or anyOf\n if(typeof schema.additionalProperties === \"undefined\" && this.jsoneditor.options.no_additional_properties && !schema.oneOf && !schema.anyOf) {\n schema.additionalProperties = false;\n }\n\n // `additionalProperties`\n if(typeof schema.additionalProperties !== \"undefined\") {\n for(i in value) {\n if(!value.hasOwnProperty(i)) continue;\n if(!validated_properties[i]) {\n // No extra properties allowed\n if(!schema.additionalProperties) {\n errors.push({\n path: path,\n property: 'additionalProperties',\n message: this.translate('error_additional_properties', [i])\n });\n break;\n }\n // Allowed\n else if(schema.additionalProperties === true) {\n break;\n }\n // Must match schema\n // TODO: incompatibility between version 3 and 4 of the spec\n else {\n errors = errors.concat(this._validateSchema(schema.additionalProperties,value[i],path+'.'+i));\n }\n }\n }\n }\n\n // `dependencies`\n if(schema.dependencies) {\n for(i in schema.dependencies) {\n if(!schema.dependencies.hasOwnProperty(i)) continue;\n\n // Doesn't need to meet the dependency\n if(typeof value[i] === \"undefined\") continue;\n\n // Property dependency\n if(Array.isArray(schema.dependencies[i])) {\n for(j=0; j<schema.dependencies[i].length; j++) {\n if(typeof value[schema.dependencies[i][j]] === \"undefined\") {\n errors.push({\n path: path,\n property: 'dependencies',\n message: this.translate('error_dependency', [schema.dependencies[i][j]])\n });\n }\n }\n }\n // Schema dependency\n else {\n errors = errors.concat(this._validateSchema(schema.dependencies[i],value,path));\n }\n }\n }\n }\n\n // Custom type validation (global)\n $each(JSONEditor.defaults.custom_validators,function(i,validator) {\n errors = errors.concat(validator.call(self,schema,value,path));\n });\n // Custom type validation (instance specific)\n if(this.options.custom_validators) {\n $each(this.options.custom_validators,function(i,validator) {\n errors = errors.concat(validator.call(self,schema,value,path));\n });\n }\n\n return errors;\n },\n _checkType: function(type, value) {\n // Simple types\n if(typeof type === \"string\") {\n if(type===\"string\") return typeof value === \"string\";\n else if(type===\"number\") return typeof value === \"number\";\n else if(type===\"integer\") return typeof value === \"number\" && value === Math.floor(value);\n else if(type===\"boolean\") return typeof value === \"boolean\";\n else if(type===\"array\") return Array.isArray(value);\n else if(type === \"object\") return value !== null && !(Array.isArray(value)) && typeof value === \"object\";\n else if(type === \"null\") return value === null;\n else return true;\n }\n // Schema\n else {\n return !this._validateSchema(type,value).length;\n }\n }\n});\n","/**\n * All editors should extend from this class\n */\nJSONEditor.AbstractEditor = Class.extend({\n onChildEditorChange: function(editor) {\n this.onChange(true);\n },\n notify: function() {\n this.jsoneditor.notifyWatchers(this.path);\n },\n change: function() {\n if(this.parent) this.parent.onChildEditorChange(this);\n else this.jsoneditor.onChange();\n },\n onChange: function(bubble) {\n this.notify();\n if(this.watch_listener) this.watch_listener();\n if(bubble) this.change();\n },\n register: function() {\n this.jsoneditor.registerEditor(this);\n this.onChange();\n },\n unregister: function() {\n if(!this.jsoneditor) return;\n this.jsoneditor.unregisterEditor(this);\n },\n getNumColumns: function() {\n return 12;\n },\n init: function(options) {\n this.jsoneditor = options.jsoneditor;\n \n this.theme = this.jsoneditor.theme;\n this.template_engine = this.jsoneditor.template;\n this.iconlib = this.jsoneditor.iconlib;\n \n this.translate = this.jsoneditor.translate || JSONEditor.defaults.translate;\n\n this.original_schema = options.schema;\n this.schema = this.jsoneditor.expandSchema(this.original_schema);\n \n this.options = $extend({}, (this.options || {}), (options.schema.options || {}), options);\n \n if(!options.path && !this.schema.id) this.schema.id = 'root';\n this.path = options.path || 'root';\n this.formname = options.formname || this.path.replace(/\\.([^.]+)/g,'[$1]');\n if(this.jsoneditor.options.form_name_root) this.formname = this.formname.replace(/^root\\[/,this.jsoneditor.options.form_name_root+'[');\n this.key = this.path.split('.').pop();\n this.parent = options.parent;\n \n this.link_watchers = [];\n \n if(options.container) this.setContainer(options.container);\n },\n setContainer: function(container) {\n this.container = container;\n if(this.schema.id) this.container.setAttribute('data-schemaid',this.schema.id);\n if(this.schema.type && typeof this.schema.type === \"string\") this.container.setAttribute('data-schematype',this.schema.type);\n this.container.setAttribute('data-schemapath',this.path);\n },\n \n preBuild: function() {\n\n },\n build: function() {\n \n },\n postBuild: function() {\n this.setupWatchListeners();\n this.addLinks();\n this.setValue(this.getDefault(), true);\n this.updateHeaderText();\n this.register();\n this.onWatchedFieldChange();\n },\n \n setupWatchListeners: function() {\n var self = this;\n \n // Watched fields\n this.watched = {};\n if(this.schema.vars) this.schema.watch = this.schema.vars;\n this.watched_values = {};\n this.watch_listener = function() {\n if(self.refreshWatchedFieldValues()) {\n self.onWatchedFieldChange();\n }\n };\n \n this.register();\n if(this.schema.hasOwnProperty('watch')) {\n var path,path_parts,first,root,adjusted_path;\n\n for(var name in this.schema.watch) {\n if(!this.schema.watch.hasOwnProperty(name)) continue;\n path = this.schema.watch[name];\n\n if(Array.isArray(path)) {\n if(path.length<2) continue;\n path_parts = [path[0]].concat(path[1].split('.'));\n }\n else {\n path_parts = path.split('.');\n if(!self.theme.closest(self.container,'[data-schemaid=\"'+path_parts[0]+'\"]')) path_parts.unshift('#');\n }\n first = path_parts.shift();\n\n if(first === '#') first = self.jsoneditor.schema.id || 'root';\n\n // Find the root node for this template variable\n root = self.theme.closest(self.container,'[data-schemaid=\"'+first+'\"]');\n if(!root) throw \"Could not find ancestor node with id \"+first;\n\n // Keep track of the root node and path for use when rendering the template\n adjusted_path = root.getAttribute('data-schemapath') + '.' + path_parts.join('.');\n \n self.jsoneditor.watch(adjusted_path,self.watch_listener);\n \n self.watched[name] = adjusted_path;\n }\n }\n \n // Dynamic header\n if(this.schema.headerTemplate) {\n this.header_template = this.jsoneditor.compileTemplate(this.schema.headerTemplate, this.template_engine);\n }\n },\n \n addLinks: function() {\n // Add links\n if(!this.no_link_holder) {\n this.link_holder = this.theme.getLinksHolder();\n this.container.appendChild(this.link_holder);\n if(this.schema.links) {\n for(var i=0; i<this.schema.links.length; i++) {\n this.addLink(this.getLink(this.schema.links[i]));\n }\n }\n }\n },\n \n \n getButton: function(text, icon, title) {\n var btnClass = 'json-editor-btn-'+icon;\n if(!this.iconlib) icon = null;\n else icon = this.iconlib.getIcon(icon);\n \n if(!icon && title) {\n text = title;\n title = null;\n }\n \n var btn = this.theme.getButton(text, icon, title);\n btn.className += ' ' + btnClass + ' ';\n return btn;\n },\n setButtonText: function(button, text, icon, title) {\n if(!this.iconlib) icon = null;\n else icon = this.iconlib.getIcon(icon);\n \n if(!icon && title) {\n text = title;\n title = null;\n }\n \n return this.theme.setButtonText(button, text, icon, title);\n },\n addLink: function(link) {\n if(this.link_holder) this.link_holder.appendChild(link);\n },\n getLink: function(data) {\n var holder, link;\n \n // Get mime type of the link\n var mime = data.mediaType || 'application/javascript';\n var type = mime.split('/')[0];\n \n // Template to generate the link href\n var href = this.jsoneditor.compileTemplate(data.href,this.template_engine);\n\n // Template to generate the link's download attribute\n var download = null;\n if(data.download) download = data.download;\n\n if(download && download !== true) {\n download = this.jsoneditor.compileTemplate(download, this.template_engine);\n }\n\n // Image links\n if(type === 'image') {\n holder = this.theme.getBlockLinkHolder();\n link = document.createElement('a');\n link.setAttribute('target','_blank');\n var image = document.createElement('img');\n \n this.theme.createImageLink(holder,link,image);\n \n // When a watched field changes, update the url \n this.link_watchers.push(function(vars) {\n var url = href(vars);\n link.setAttribute('href',url);\n link.setAttribute('title',data.rel || url);\n image.setAttribute('src',url);\n });\n }\n // Audio/Video links\n else if(['audio','video'].indexOf(type) >=0) {\n holder = this.theme.getBlockLinkHolder();\n \n link = this.theme.getBlockLink();\n link.setAttribute('target','_blank');\n \n var media = document.createElement(type);\n media.setAttribute('controls','controls');\n \n this.theme.createMediaLink(holder,link,media);\n \n // When a watched field changes, update the url \n this.link_watchers.push(function(vars) {\n var url = href(vars);\n link.setAttribute('href',url);\n link.textContent = data.rel || url;\n media.setAttribute('src',url);\n });\n }\n // Text links\n else {\n link = holder = this.theme.getBlockLink();\n holder.setAttribute('target','_blank');\n holder.textContent = data.rel;\n\n // When a watched field changes, update the url\n this.link_watchers.push(function(vars) {\n var url = href(vars);\n holder.setAttribute('href',url);\n holder.textContent = data.rel || url;\n });\n }\n\n if(download && link) {\n if(download === true) {\n link.setAttribute('download','');\n }\n else {\n this.link_watchers.push(function(vars) {\n link.setAttribute('download',download(vars));\n });\n }\n }\n \n if(data.class) link.className = link.className + ' ' + data.class;\n\n return holder;\n },\n refreshWatchedFieldValues: function() {\n if(!this.watched_values) return;\n var watched = {};\n var changed = false;\n var self = this;\n \n if(this.watched) {\n var val,editor;\n for(var name in this.watched) {\n if(!this.watched.hasOwnProperty(name)) continue;\n editor = self.jsoneditor.getEditor(this.watched[name]);\n val = editor? editor.getValue() : null;\n if(self.watched_values[name] !== val) changed = true;\n watched[name] = val;\n }\n }\n \n watched.self = this.getValue();\n if(this.watched_values.self !== watched.self) changed = true;\n \n this.watched_values = watched;\n \n return changed;\n },\n getWatchedFieldValues: function() {\n return this.watched_values;\n },\n updateHeaderText: function() {\n if(this.header) {\n // If the header has children, only update the text node's value\n if(this.header.children.length) {\n for(var i=0; i<this.header.childNodes.length; i++) {\n if(this.header.childNodes[i].nodeType===3) {\n this.header.childNodes[i].nodeValue = this.getHeaderText();\n break;\n }\n }\n }\n // Otherwise, just update the entire node\n else {\n this.header.textContent = this.getHeaderText();\n }\n }\n },\n getHeaderText: function(title_only) {\n if(this.header_text) return this.header_text;\n else if(title_only) return this.schema.title;\n else return this.getTitle();\n },\n onWatchedFieldChange: function() {\n var vars;\n if(this.header_template) { \n vars = $extend(this.getWatchedFieldValues(),{\n key: this.key,\n i: this.key,\n i0: (this.key*1),\n i1: (this.key*1+1),\n title: this.getTitle()\n });\n var header_text = this.header_template(vars);\n \n if(header_text !== this.header_text) {\n this.header_text = header_text;\n this.updateHeaderText();\n this.notify();\n //this.fireChangeHeaderEvent();\n }\n }\n if(this.link_watchers.length) {\n vars = this.getWatchedFieldValues();\n for(var i=0; i<this.link_watchers.length; i++) {\n this.link_watchers[i](vars);\n }\n }\n },\n setValue: function(value) {\n this.value = value;\n },\n getValue: function() {\n return this.value;\n },\n refreshValue: function() {\n\n },\n getChildEditors: function() {\n return false;\n },\n destroy: function() {\n var self = this;\n this.unregister(this);\n $each(this.watched,function(name,adjusted_path) {\n self.jsoneditor.unwatch(adjusted_path,self.watch_listener);\n });\n this.watched = null;\n this.watched_values = null;\n this.watch_listener = null;\n this.header_text = null;\n this.header_template = null;\n this.value = null;\n if(this.container && this.container.parentNode) this.container.parentNode.removeChild(this.container);\n this.container = null;\n this.jsoneditor = null;\n this.schema = null;\n this.path = null;\n this.key = null;\n this.parent = null;\n },\n getDefault: function() {\n if(this.schema[\"default\"]) return this.schema[\"default\"];\n if(this.schema[\"enum\"]) return this.schema[\"enum\"][0];\n \n var type = this.schema.type || this.schema.oneOf;\n if(type && Array.isArray(type)) type = type[0];\n if(type && typeof type === \"object\") type = type.type;\n if(type && Array.isArray(type)) type = type[0];\n \n if(typeof type === \"string\") {\n if(type === \"number\") return 0.0;\n if(type === \"boolean\") return false;\n if(type === \"integer\") return 0;\n if(type === \"string\") return \"\";\n if(type === \"object\") return {};\n if(type === \"array\") return [];\n }\n \n return null;\n },\n getTitle: function() {\n return this.schema.title || this.key;\n },\n enable: function() {\n this.disabled = false;\n },\n disable: function() {\n this.disabled = true;\n },\n isEnabled: function() {\n return !this.disabled;\n },\n isRequired: function() {\n if(typeof this.schema.required === \"boolean\") return this.schema.required;\n else if(this.parent && this.parent.schema && Array.isArray(this.parent.schema.required)) return this.parent.schema.required.indexOf(this.key) > -1;\n else if(this.jsoneditor.options.required_by_default) return true;\n else return false;\n }, \n getDisplayText: function(arr) {\n var disp = [];\n var used = {};\n \n // Determine how many times each attribute name is used.\n // This helps us pick the most distinct display text for the schemas.\n $each(arr,function(i,el) {\n if(el.title) {\n used[el.title] = used[el.title] || 0;\n used[el.title]++;\n }\n if(el.description) {\n used[el.description] = used[el.description] || 0;\n used[el.description]++;\n }\n if(el.format) {\n used[el.format] = used[el.format] || 0;\n used[el.format]++;\n }\n if(el.type) {\n used[el.type] = used[el.type] || 0;\n used[el.type]++;\n }\n });\n \n // Determine display text for each element of the array\n $each(arr,function(i,el) {\n var name;\n \n // If it's a simple string\n if(typeof el === \"string\") name = el;\n // Object\n else if(el.title && used[el.title]<=1) name = el.title;\n else if(el.format && used[el.format]<=1) name = el.format;\n else if(el.type && used[el.type]<=1) name = el.type;\n else if(el.description && used[el.description]<=1) name = el.descripton;\n else if(el.title) name = el.title;\n else if(el.format) name = el.format;\n else if(el.type) name = el.type;\n else if(el.description) name = el.description;\n else if(JSON.stringify(el).length < 50) name = JSON.stringify(el);\n else name = \"type\";\n \n disp.push(name);\n });\n \n // Replace identical display text with \"text 1\", \"text 2\", etc.\n var inc = {};\n $each(disp,function(i,name) {\n inc[name] = inc[name] || 0;\n inc[name]++;\n \n if(used[name] > 1) disp[i] = name + \" \" + inc[name];\n });\n \n return disp;\n },\n getOption: function(key) {\n try {\n throw \"getOption is deprecated\";\n }\n catch(e) {\n window.console.error(e);\n }\n \n return this.options[key];\n },\n showValidationErrors: function(errors) {\n\n }\n});\n","JSONEditor.defaults.editors[\"null\"] = JSONEditor.AbstractEditor.extend({\n getValue: function() {\n return null;\n },\n setValue: function() {\n this.onChange();\n },\n getNumColumns: function() {\n return 2;\n }\n});\n","JSONEditor.defaults.editors.string = JSONEditor.AbstractEditor.extend({\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n setValue: function(value,initial,from_template) {\n var self = this;\n \n if(this.template && !from_template) {\n return;\n }\n \n if(value === null || typeof value === 'undefined') value = \"\";\n else if(typeof value === \"object\") value = JSON.stringify(value);\n else if(typeof value !== \"string\") value = \"\"+value;\n \n if(value === this.serialized) return;\n\n // Sanitize value before setting it\n var sanitized = this.sanitize(value);\n\n if(this.input.value === sanitized) {\n return;\n }\n\n this.input.value = sanitized;\n \n // If using SCEditor, update the WYSIWYG\n if(this.sceditor_instance) {\n this.sceditor_instance.val(sanitized);\n }\n else if(this.epiceditor) {\n this.epiceditor.importFile(null,sanitized);\n }\n else if(this.ace_editor) {\n this.ace_editor.setValue(sanitized);\n }\n \n var changed = from_template || this.getValue() !== value;\n \n this.refreshValue();\n \n if(initial) this.is_dirty = false;\n else if(this.jsoneditor.options.show_errors === \"change\") this.is_dirty = true;\n \n if(this.adjust_height) this.adjust_height(this.input);\n\n // Bubble this setValue to parents if the value changed\n this.onChange(changed);\n },\n getNumColumns: function() {\n var min = Math.ceil(Math.max(this.getTitle().length,this.schema.maxLength||0,this.schema.minLength||0)/5);\n var num;\n \n if(this.input_type === 'textarea') num = 6;\n else if(['text','email'].indexOf(this.input_type) >= 0) num = 4;\n else num = 2;\n \n return Math.min(12,Math.max(min,num));\n },\n build: function() {\n var self = this, i;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n\n this.format = this.schema.format;\n if(!this.format && this.schema.media && this.schema.media.type) {\n this.format = this.schema.media.type.replace(/(^(application|text)\\/(x-)?(script\\.)?)|(-source$)/g,'');\n }\n if(!this.format && this.options.default_format) {\n this.format = this.options.default_format;\n }\n if(this.options.format) {\n this.format = this.options.format;\n }\n\n // Specific format\n if(this.format) {\n // Text Area\n if(this.format === 'textarea') {\n this.input_type = 'textarea';\n this.input = this.theme.getTextareaInput();\n }\n // Range Input\n else if(this.format === 'range') {\n this.input_type = 'range';\n var min = this.schema.minimum || 0;\n var max = this.schema.maximum || Math.max(100,min+1);\n var step = 1;\n if(this.schema.multipleOf) {\n if(min%this.schema.multipleOf) min = Math.ceil(min/this.schema.multipleOf)*this.schema.multipleOf;\n if(max%this.schema.multipleOf) max = Math.floor(max/this.schema.multipleOf)*this.schema.multipleOf;\n step = this.schema.multipleOf;\n }\n\n this.input = this.theme.getRangeInput(min,max,step);\n }\n // Source Code\n else if([\n 'actionscript',\n 'batchfile',\n 'bbcode',\n 'c',\n 'c++',\n 'cpp',\n 'coffee',\n 'csharp',\n 'css',\n 'dart',\n 'django',\n 'ejs',\n 'erlang',\n 'golang',\n 'groovy',\n 'handlebars',\n 'haskell',\n 'haxe',\n 'html',\n 'ini',\n 'jade',\n 'java',\n 'javascript',\n 'json',\n 'less',\n 'lisp',\n 'lua',\n 'makefile',\n 'markdown',\n 'matlab',\n 'mysql',\n 'objectivec',\n 'pascal',\n 'perl',\n 'pgsql',\n 'php',\n 'python',\n 'r',\n 'ruby',\n 'sass',\n 'scala',\n 'scss',\n 'smarty',\n 'sql',\n 'stylus',\n 'svg',\n 'twig',\n 'vbscript',\n 'xml',\n 'yaml'\n ].indexOf(this.format) >= 0\n ) {\n this.input_type = this.format;\n this.source_code = true;\n \n this.input = this.theme.getTextareaInput();\n }\n // HTML5 Input type\n else {\n this.input_type = this.format;\n this.input = this.theme.getFormInputField(this.input_type);\n }\n }\n // Normal text input\n else {\n this.input_type = 'text';\n this.input = this.theme.getFormInputField(this.input_type);\n }\n \n // minLength, maxLength, and pattern\n if(typeof this.schema.maxLength !== \"undefined\") this.input.setAttribute('maxlength',this.schema.maxLength);\n if(typeof this.schema.pattern !== \"undefined\") this.input.setAttribute('pattern',this.schema.pattern);\n else if(typeof this.schema.minLength !== \"undefined\") this.input.setAttribute('pattern','.{'+this.schema.minLength+',}');\n\n if(this.options.compact) {\n this.container.className += ' compact';\n }\n else {\n if(this.options.input_width) this.input.style.width = this.options.input_width;\n }\n\n if(this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.input\n .addEventListener('change',function(e) { \n e.preventDefault();\n e.stopPropagation();\n \n // Don't allow changing if this field is a template\n if(self.schema.template) {\n this.value = self.value;\n return;\n }\n\n var val = this.value;\n \n // sanitize value\n var sanitized = self.sanitize(val);\n if(val !== sanitized) {\n this.value = sanitized;\n }\n \n self.is_dirty = true;\n\n self.refreshValue();\n self.onChange(true);\n });\n \n if(this.options.input_height) this.input.style.height = this.options.input_height;\n if(this.options.expand_height) {\n this.adjust_height = function(el) {\n if(!el) return;\n var i, ch=el.offsetHeight;\n // Input too short\n if(el.offsetHeight < el.scrollHeight) {\n i=0;\n while(el.offsetHeight < el.scrollHeight+3) {\n if(i>100) break;\n i++;\n ch++;\n el.style.height = ch+'px';\n }\n }\n else {\n i=0;\n while(el.offsetHeight >= el.scrollHeight+3) {\n if(i>100) break;\n i++;\n ch--;\n el.style.height = ch+'px';\n }\n el.style.height = (ch+1)+'px';\n }\n };\n \n this.input.addEventListener('keyup',function(e) {\n self.adjust_height(this);\n });\n this.input.addEventListener('change',function(e) {\n self.adjust_height(this);\n });\n this.adjust_height();\n }\n\n if(this.format) this.input.setAttribute('data-schemaformat',this.format);\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description);\n this.container.appendChild(this.control);\n\n // Any special formatting that needs to happen after the input is added to the dom\n window.requestAnimationFrame(function() {\n // Skip in case the input is only a temporary editor,\n // otherwise, in the case of an ace_editor creation,\n // it will generate an error trying to append it to the missing parentNode\n if(self.input.parentNode) self.afterInputReady();\n if(self.adjust_height) self.adjust_height(self.input);\n });\n\n // Compile and store the template\n if(this.schema.template) {\n this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine);\n this.refreshValue();\n }\n else {\n this.refreshValue();\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n // TODO: WYSIWYG and Markdown editors\n }\n this._super();\n },\n disable: function() {\n this.input.disabled = true;\n // TODO: WYSIWYG and Markdown editors\n this._super();\n },\n afterInputReady: function() {\n var self = this, options;\n \n // Code editor\n if(this.source_code) { \n // WYSIWYG html and bbcode editor\n if(this.options.wysiwyg && \n ['html','bbcode'].indexOf(this.input_type) >= 0 && \n window.jQuery && window.jQuery.fn && window.jQuery.fn.sceditor\n ) {\n options = $extend({},{\n plugins: self.input_type==='html'? 'xhtml' : 'bbcode',\n emoticonsEnabled: false,\n width: '100%',\n height: 300\n },JSONEditor.plugins.sceditor,self.options.sceditor_options||{});\n \n window.jQuery(self.input).sceditor(options);\n \n self.sceditor_instance = window.jQuery(self.input).sceditor('instance');\n \n self.sceditor_instance.blur(function() {\n // Get editor's value\n var val = window.jQuery(\"<div>\"+self.sceditor_instance.val()+\"</div>\");\n // Remove sceditor spans/divs\n window.jQuery('#sceditor-start-marker,#sceditor-end-marker,.sceditor-nlf',val).remove();\n // Set the value and update\n self.input.value = val.html();\n self.value = self.input.value;\n self.is_dirty = true;\n self.onChange(true);\n });\n }\n // EpicEditor for markdown (if it's loaded)\n else if (this.input_type === 'markdown' && window.EpicEditor) {\n this.epiceditor_container = document.createElement('div');\n this.input.parentNode.insertBefore(this.epiceditor_container,this.input);\n this.input.style.display = 'none';\n \n options = $extend({},JSONEditor.plugins.epiceditor,{\n container: this.epiceditor_container,\n clientSideStorage: false\n });\n \n this.epiceditor = new window.EpicEditor(options).load();\n \n this.epiceditor.importFile(null,this.getValue());\n \n this.epiceditor.on('update',function() {\n var val = self.epiceditor.exportFile();\n self.input.value = val;\n self.value = val;\n self.is_dirty = true;\n self.onChange(true);\n });\n }\n // ACE editor for everything else\n else if(window.ace) {\n var mode = this.input_type;\n // aliases for c/cpp\n if(mode === 'cpp' || mode === 'c++' || mode === 'c') {\n mode = 'c_cpp';\n }\n \n this.ace_container = document.createElement('div');\n this.ace_container.style.width = '100%';\n this.ace_container.style.position = 'relative';\n this.ace_container.style.height = '400px';\n this.input.parentNode.insertBefore(this.ace_container,this.input);\n this.input.style.display = 'none';\n this.ace_editor = window.ace.edit(this.ace_container);\n \n this.ace_editor.setValue(this.getValue());\n \n // The theme\n if(JSONEditor.plugins.ace.theme) this.ace_editor.setTheme('ace/theme/'+JSONEditor.plugins.ace.theme);\n // The mode\n mode = window.ace.require(\"ace/mode/\"+mode);\n if(mode) this.ace_editor.getSession().setMode(new mode.Mode());\n \n // Listen for changes\n this.ace_editor.on('change',function() {\n var val = self.ace_editor.getValue();\n self.input.value = val;\n self.refreshValue();\n self.is_dirty = true;\n self.onChange(true);\n });\n }\n }\n \n self.theme.afterInputReady(self.input);\n },\n refreshValue: function() {\n this.value = this.input.value;\n if(typeof this.value !== \"string\") this.value = '';\n this.serialized = this.value;\n },\n destroy: function() {\n // If using SCEditor, destroy the editor instance\n if(this.sceditor_instance) {\n this.sceditor_instance.destroy();\n }\n else if(this.epiceditor) {\n this.epiceditor.unload();\n }\n else if(this.ace_editor) {\n this.ace_editor.destroy();\n }\n \n \n this.template = null;\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n\n this._super();\n },\n /**\n * This is overridden in derivative editors\n */\n sanitize: function(value) {\n return value;\n },\n /**\n * Re-calculates the value if needed\n */\n onWatchedFieldChange: function() { \n var self = this, vars, j;\n \n // If this editor needs to be rendered by a macro template\n if(this.template) {\n vars = this.getWatchedFieldValues();\n this.setValue(this.template(vars),false,true);\n }\n \n this._super();\n },\n showValidationErrors: function(errors) {\n var self = this;\n \n if(this.jsoneditor.options.show_errors === \"always\") {}\n else if(!this.is_dirty && this.previous_error_setting===this.jsoneditor.options.show_errors) return;\n \n this.previous_error_setting = this.jsoneditor.options.show_errors;\n\n var messages = [];\n $each(errors,function(i,error) {\n if(error.path === self.path) {\n messages.push(error.message);\n }\n });\n\n if(messages.length) {\n this.theme.addInputError(this.input, messages.join('. ')+'.');\n }\n else {\n this.theme.removeInputError(this.input);\n }\n }\n});\n","JSONEditor.defaults.editors.number = JSONEditor.defaults.editors.string.extend({\n sanitize: function(value) {\n return (value+\"\").replace(/[^0-9\\.\\-eE]/g,'');\n },\n getNumColumns: function() {\n return 2;\n },\n getValue: function() {\n return this.value*1;\n }\n});\n","JSONEditor.defaults.editors.integer = JSONEditor.defaults.editors.number.extend({\n sanitize: function(value) {\n value = value + \"\";\n return value.replace(/[^0-9\\-]/g,'');\n },\n getNumColumns: function() {\n return 2;\n }\n});\n","JSONEditor.defaults.editors.object = JSONEditor.AbstractEditor.extend({\n getDefault: function() {\n return $extend({},this.schema[\"default\"] || {});\n },\n getChildEditors: function() {\n return this.editors;\n },\n register: function() {\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].register();\n }\n }\n },\n unregister: function() {\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n return Math.max(Math.min(12,this.maxwidth),3);\n },\n enable: function() {\n if(this.editjson_button) this.editjson_button.disabled = false;\n if(this.addproperty_button) this.addproperty_button.disabled = false;\n\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].enable();\n }\n }\n },\n disable: function() {\n if(this.editjson_button) this.editjson_button.disabled = true;\n if(this.addproperty_button) this.addproperty_button.disabled = true;\n this.hideEditJSON();\n\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].disable();\n }\n }\n },\n layoutEditors: function() {\n var self = this, i, j;\n\n if(!this.row_container) return;\n\n // Sort editors by propertyOrder\n this.property_order = Object.keys(this.editors);\n this.property_order = this.property_order.sort(function(a,b) {\n var ordera = self.editors[a].schema.propertyOrder;\n var orderb = self.editors[b].schema.propertyOrder;\n if(typeof ordera !== \"number\") ordera = 1000;\n if(typeof orderb !== \"number\") orderb = 1000;\n\n return ordera - orderb;\n });\n\n var container;\n\n if(this.format === 'grid') {\n var rows = [];\n $each(this.property_order, function(j,key) {\n var editor = self.editors[key];\n if(editor.property_removed) return;\n var found = false;\n var width = editor.options.hidden? 0 : (editor.options.grid_columns || editor.getNumColumns());\n var height = editor.options.hidden? 0 : editor.container.offsetHeight;\n // See if the editor will fit in any of the existing rows first\n for(var i=0; i<rows.length; i++) {\n // If the editor will fit in the row horizontally\n if(rows[i].width + width <= 12) {\n // If the editor is close to the other elements in height\n // i.e. Don't put a really tall editor in an otherwise short row or vice versa\n if(!height || (rows[i].minh*0.5 < height && rows[i].maxh*2 > height)) {\n found = i;\n }\n }\n }\n\n // If there isn't a spot in any of the existing rows, start a new row\n if(found === false) {\n rows.push({\n width: 0,\n minh: 999999,\n maxh: 0,\n editors: []\n });\n found = rows.length-1;\n }\n\n rows[found].editors.push({\n key: key,\n //editor: editor,\n width: width,\n height: height\n });\n rows[found].width += width;\n rows[found].minh = Math.min(rows[found].minh,height);\n rows[found].maxh = Math.max(rows[found].maxh,height);\n });\n\n // Make almost full rows width 12\n // Do this by increasing all editors' sizes proprotionately\n // Any left over space goes to the biggest editor\n // Don't touch rows with a width of 6 or less\n for(i=0; i<rows.length; i++) {\n if(rows[i].width < 12) {\n var biggest = false;\n var new_width = 0;\n for(j=0; j<rows[i].editors.length; j++) {\n if(biggest === false) biggest = j;\n else if(rows[i].editors[j].width > rows[i].editors[biggest].width) biggest = j;\n rows[i].editors[j].width *= 12/rows[i].width;\n rows[i].editors[j].width = Math.floor(rows[i].editors[j].width);\n new_width += rows[i].editors[j].width;\n }\n if(new_width < 12) rows[i].editors[biggest].width += 12-new_width;\n rows[i].width = 12;\n }\n }\n\n // layout hasn't changed\n if(this.layout === JSON.stringify(rows)) return false;\n this.layout = JSON.stringify(rows);\n\n // Layout the form\n container = document.createElement('div');\n for(i=0; i<rows.length; i++) {\n var row = this.theme.getGridRow();\n container.appendChild(row);\n for(j=0; j<rows[i].editors.length; j++) {\n var key = rows[i].editors[j].key;\n var editor = this.editors[key];\n\n if(editor.options.hidden) editor.container.style.display = 'none';\n else this.theme.setGridColumnSize(editor.container,rows[i].editors[j].width);\n row.appendChild(editor.container);\n }\n }\n }\n // Normal layout\n else {\n container = document.createElement('div');\n $each(this.property_order, function(i,key) {\n var editor = self.editors[key];\n if(editor.property_removed) return;\n var row = self.theme.getGridRow();\n container.appendChild(row);\n\n if(editor.options.hidden) editor.container.style.display = 'none';\n else self.theme.setGridColumnSize(editor.container,12);\n row.appendChild(editor.container);\n });\n }\n this.row_container.innerHTML = '';\n this.row_container.appendChild(container);\n },\n getPropertySchema: function(key) {\n // Schema declared directly in properties\n var schema = this.schema.properties[key] || {};\n schema = $extend({},schema);\n var matched = this.schema.properties[key]? true : false;\n\n // Any matching patternProperties should be merged in\n if(this.schema.patternProperties) {\n for(var i in this.schema.patternProperties) {\n if(!this.schema.patternProperties.hasOwnProperty(i)) continue;\n var regex = new RegExp(i);\n if(regex.test(key)) {\n schema.allOf = schema.allOf || [];\n schema.allOf.push(this.schema.patternProperties[i]);\n matched = true;\n }\n }\n }\n\n // Hasn't matched other rules, use additionalProperties schema\n if(!matched && this.schema.additionalProperties && typeof this.schema.additionalProperties === \"object\") {\n schema = $extend({},this.schema.additionalProperties);\n }\n\n return schema;\n },\n preBuild: function() {\n this._super();\n\n this.editors = {};\n this.cached_editors = {};\n var self = this;\n\n this.format = this.options.layout || this.options.object_layout || this.schema.format || this.jsoneditor.options.object_layout || 'normal';\n\n this.schema.properties = this.schema.properties || {};\n\n this.minwidth = 0;\n this.maxwidth = 0;\n\n // If the object should be rendered as a table row\n if(this.options.table_row) {\n $each(this.schema.properties, function(key,schema) {\n var editor = self.jsoneditor.getEditorClass(schema);\n self.editors[key] = self.jsoneditor.createEditor(editor,{\n jsoneditor: self.jsoneditor,\n schema: schema,\n path: self.path+'.'+key,\n parent: self,\n compact: true,\n required: true\n });\n self.editors[key].preBuild();\n\n var width = self.editors[key].options.hidden? 0 : (self.editors[key].options.grid_columns || self.editors[key].getNumColumns());\n\n self.minwidth += width;\n self.maxwidth += width;\n });\n this.no_link_holder = true;\n }\n // If the object should be rendered as a table\n else if(this.options.table) {\n // TODO: table display format\n throw \"Not supported yet\";\n }\n // If the object should be rendered as a div\n else {\n if(!this.schema.defaultProperties) {\n if(this.jsoneditor.options.display_required_only || this.options.display_required_only) {\n this.schema.defaultProperties = [];\n $each(this.schema.properties, function(k,s) {\n if(self.isRequired({key: k, schema: s})) {\n self.schema.defaultProperties.push(k);\n }\n });\n }\n else {\n self.schema.defaultProperties = Object.keys(self.schema.properties);\n }\n }\n\n // Increase the grid width to account for padding\n self.maxwidth += 1;\n\n $each(this.schema.defaultProperties, function(i,key) {\n self.addObjectProperty(key, true);\n\n if(self.editors[key]) {\n self.minwidth = Math.max(self.minwidth,(self.editors[key].options.grid_columns || self.editors[key].getNumColumns()));\n self.maxwidth += (self.editors[key].options.grid_columns || self.editors[key].getNumColumns());\n }\n });\n }\n\n // Sort editors by propertyOrder\n this.property_order = Object.keys(this.editors);\n this.property_order = this.property_order.sort(function(a,b) {\n var ordera = self.editors[a].schema.propertyOrder;\n var orderb = self.editors[b].schema.propertyOrder;\n if(typeof ordera !== \"number\") ordera = 1000;\n if(typeof orderb !== \"number\") orderb = 1000;\n\n return ordera - orderb;\n });\n },\n build: function() {\n var self = this;\n\n // If the object should be rendered as a table row\n if(this.options.table_row) {\n this.editor_holder = this.container;\n $each(this.editors, function(key,editor) {\n var holder = self.theme.getTableCell();\n self.editor_holder.appendChild(holder);\n\n editor.setContainer(holder);\n editor.build();\n editor.postBuild();\n\n if(self.editors[key].options.hidden) {\n holder.style.display = 'none';\n }\n if(self.editors[key].options.input_width) {\n holder.style.width = self.editors[key].options.input_width;\n }\n });\n }\n // If the object should be rendered as a table\n else if(this.options.table) {\n // TODO: table display format\n throw \"Not supported yet\";\n }\n // If the object should be rendered as a div\n else {\n this.header = document.createElement('span');\n this.header.textContent = this.getTitle();\n this.title = this.theme.getHeader(this.header);\n this.container.appendChild(this.title);\n this.container.style.position = 'relative';\n\n // Edit JSON modal\n this.editjson_holder = this.theme.getModal();\n this.editjson_textarea = this.theme.getTextareaInput();\n this.editjson_textarea.style.height = '170px';\n this.editjson_textarea.style.width = '300px';\n this.editjson_textarea.style.display = 'block';\n this.editjson_save = this.getButton('Save','save','Save');\n this.editjson_save.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.saveJSON();\n });\n this.editjson_cancel = this.getButton('Cancel','cancel','Cancel');\n this.editjson_cancel.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.hideEditJSON();\n });\n this.editjson_holder.appendChild(this.editjson_textarea);\n this.editjson_holder.appendChild(this.editjson_save);\n this.editjson_holder.appendChild(this.editjson_cancel);\n\n // Manage Properties modal\n this.addproperty_holder = this.theme.getModal();\n this.addproperty_list = document.createElement('div');\n this.addproperty_list.style.width = '295px';\n this.addproperty_list.style.maxHeight = '160px';\n this.addproperty_list.style.padding = '5px 0';\n this.addproperty_list.style.overflowY = 'auto';\n this.addproperty_list.style.overflowX = 'hidden';\n this.addproperty_list.style.paddingLeft = '5px';\n this.addproperty_list.setAttribute('class', 'property-selector');\n this.addproperty_add = this.getButton('add','add','add');\n this.addproperty_input = this.theme.getFormInputField('text');\n this.addproperty_input.setAttribute('placeholder','Property name...');\n this.addproperty_input.style.width = '220px';\n this.addproperty_input.style.marginBottom = '0';\n this.addproperty_input.style.display = 'inline-block';\n this.addproperty_add.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n if(self.addproperty_input.value) {\n if(self.editors[self.addproperty_input.value]) {\n window.alert('there is already a property with that name');\n return;\n }\n\n self.addObjectProperty(self.addproperty_input.value);\n if(self.editors[self.addproperty_input.value]) {\n self.editors[self.addproperty_input.value].disable();\n }\n self.onChange(true);\n }\n });\n this.addproperty_holder.appendChild(this.addproperty_list);\n this.addproperty_holder.appendChild(this.addproperty_input);\n this.addproperty_holder.appendChild(this.addproperty_add);\n var spacer = document.createElement('div');\n spacer.style.clear = 'both';\n this.addproperty_holder.appendChild(spacer);\n\n\n // Description\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n this.container.appendChild(this.description);\n }\n\n // Validation error placeholder area\n this.error_holder = document.createElement('div');\n this.container.appendChild(this.error_holder);\n\n // Container for child editor area\n this.editor_holder = this.theme.getIndentedPanel();\n this.container.appendChild(this.editor_holder);\n\n // Container for rows of child editors\n this.row_container = this.theme.getGridContainer();\n this.editor_holder.appendChild(this.row_container);\n\n $each(this.editors, function(key,editor) {\n var holder = self.theme.getGridColumn();\n self.row_container.appendChild(holder);\n\n editor.setContainer(holder);\n editor.build();\n editor.postBuild();\n });\n\n // Control buttons\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.editjson_controls = this.theme.getHeaderButtonHolder();\n this.addproperty_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n this.title.appendChild(this.editjson_controls);\n this.title.appendChild(this.addproperty_controls);\n\n // Show/Hide button\n this.collapsed = false;\n this.toggle_button = this.getButton('','collapse',this.translate('button_collapse'));\n this.title_controls.appendChild(this.toggle_button);\n this.toggle_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n if(self.collapsed) {\n self.editor_holder.style.display = '';\n self.collapsed = false;\n self.setButtonText(self.toggle_button,'','collapse',self.translate('button_collapse'));\n }\n else {\n self.editor_holder.style.display = 'none';\n self.collapsed = true;\n self.setButtonText(self.toggle_button,'','expand',self.translate('button_expand'));\n }\n });\n\n // If it should start collapsed\n if(this.options.collapsed) {\n $trigger(this.toggle_button,'click');\n }\n\n // Collapse button disabled\n if(this.schema.options && typeof this.schema.options.disable_collapse !== \"undefined\") {\n if(this.schema.options.disable_collapse) this.toggle_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none';\n }\n\n // Edit JSON Button\n this.editjson_button = this.getButton('JSON','edit','Edit JSON');\n this.editjson_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.toggleEditJSON();\n });\n this.editjson_controls.appendChild(this.editjson_button);\n this.editjson_controls.appendChild(this.editjson_holder);\n\n // Edit JSON Buttton disabled\n if(this.schema.options && typeof this.schema.options.disable_edit_json !== \"undefined\") {\n if(this.schema.options.disable_edit_json) this.editjson_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_edit_json) {\n this.editjson_button.style.display = 'none';\n }\n\n // Object Properties Button\n this.addproperty_button = this.getButton('Properties','edit','Object Properties');\n this.addproperty_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.toggleAddProperty();\n });\n this.addproperty_controls.appendChild(this.addproperty_button);\n this.addproperty_controls.appendChild(this.addproperty_holder);\n this.refreshAddProperties();\n }\n\n // Fix table cell ordering\n if(this.options.table_row) {\n this.editor_holder = this.container;\n $each(this.property_order,function(i,key) {\n self.editor_holder.appendChild(self.editors[key].container);\n });\n }\n // Layout object editors in grid if needed\n else {\n // Initial layout\n this.layoutEditors();\n // Do it again now that we know the approximate heights of elements\n this.layoutEditors();\n }\n },\n showEditJSON: function() {\n if(!this.editjson_holder) return;\n this.hideAddProperty();\n\n // Position the form directly beneath the button\n // TODO: edge detection\n this.editjson_holder.style.left = this.editjson_button.offsetLeft+\"px\";\n this.editjson_holder.style.top = this.editjson_button.offsetTop + this.editjson_button.offsetHeight+\"px\";\n\n // Start the textarea with the current value\n this.editjson_textarea.value = JSON.stringify(this.getValue(),null,2);\n\n // Disable the rest of the form while editing JSON\n this.disable();\n\n this.editjson_holder.style.display = '';\n this.editjson_button.disabled = false;\n this.editing_json = true;\n },\n hideEditJSON: function() {\n if(!this.editjson_holder) return;\n if(!this.editing_json) return;\n\n this.editjson_holder.style.display = 'none';\n this.enable();\n this.editing_json = false;\n },\n saveJSON: function() {\n if(!this.editjson_holder) return;\n\n try {\n var json = JSON.parse(this.editjson_textarea.value);\n this.setValue(json);\n this.hideEditJSON();\n }\n catch(e) {\n window.alert('invalid JSON');\n throw e;\n }\n },\n toggleEditJSON: function() {\n if(this.editing_json) this.hideEditJSON();\n else this.showEditJSON();\n },\n insertPropertyControlUsingPropertyOrder: function (property, control, container) {\n var propertyOrder;\n if (this.schema.properties[property])\n propertyOrder = this.schema.properties[property].propertyOrder;\n if (typeof propertyOrder !== \"number\") propertyOrder = 1000;\n control.propertyOrder = propertyOrder;\n\n for (var i = 0; i < container.childNodes.length; i++) {\n var child = container.childNodes[i];\n if (control.propertyOrder < child.propertyOrder) {\n this.addproperty_list.insertBefore(control, child);\n control = null;\n break;\n }\n }\n if (control) {\n this.addproperty_list.appendChild(control);\n }\n },\n addPropertyCheckbox: function(key) {\n var self = this;\n var checkbox, label, labelText, control;\n\n checkbox = self.theme.getCheckbox();\n checkbox.style.width = 'auto';\n\n if (this.schema.properties[key] && this.schema.properties[key].title)\n labelText = this.schema.properties[key].title;\n else\n labelText = key;\n\n label = self.theme.getCheckboxLabel(labelText);\n\n control = self.theme.getFormControl(label,checkbox);\n control.style.paddingBottom = control.style.marginBottom = control.style.paddingTop = control.style.marginTop = 0;\n control.style.height = 'auto';\n //control.style.overflowY = 'hidden';\n\n this.insertPropertyControlUsingPropertyOrder(key, control, this.addproperty_list);\n\n checkbox.checked = key in this.editors;\n checkbox.addEventListener('change',function() {\n if(checkbox.checked) {\n self.addObjectProperty(key);\n }\n else {\n self.removeObjectProperty(key);\n }\n self.onChange(true);\n });\n self.addproperty_checkboxes[key] = checkbox;\n\n return checkbox;\n },\n showAddProperty: function() {\n if(!this.addproperty_holder) return;\n this.hideEditJSON();\n\n // Position the form directly beneath the button\n // TODO: edge detection\n this.addproperty_holder.style.left = this.addproperty_button.offsetLeft+\"px\";\n this.addproperty_holder.style.top = this.addproperty_button.offsetTop + this.addproperty_button.offsetHeight+\"px\";\n\n // Disable the rest of the form while editing JSON\n this.disable();\n\n this.adding_property = true;\n this.addproperty_button.disabled = false;\n this.addproperty_holder.style.display = '';\n this.refreshAddProperties();\n },\n hideAddProperty: function() {\n if(!this.addproperty_holder) return;\n if(!this.adding_property) return;\n\n this.addproperty_holder.style.display = 'none';\n this.enable();\n\n this.adding_property = false;\n },\n toggleAddProperty: function() {\n if(this.adding_property) this.hideAddProperty();\n else this.showAddProperty();\n },\n removeObjectProperty: function(property) {\n if(this.editors[property]) {\n this.editors[property].unregister();\n delete this.editors[property];\n\n this.refreshValue();\n this.layoutEditors();\n }\n },\n addObjectProperty: function(name, prebuild_only) {\n var self = this;\n\n // Property is already added\n if(this.editors[name]) return;\n\n // Property was added before and is cached\n if(this.cached_editors[name]) {\n this.editors[name] = this.cached_editors[name];\n if(prebuild_only) return;\n this.editors[name].register();\n }\n // New property\n else {\n if(!this.canHaveAdditionalProperties() && (!this.schema.properties || !this.schema.properties[name])) {\n return;\n }\n\n var schema = self.getPropertySchema(name);\n\n\n // Add the property\n var editor = self.jsoneditor.getEditorClass(schema);\n\n self.editors[name] = self.jsoneditor.createEditor(editor,{\n jsoneditor: self.jsoneditor,\n schema: schema,\n path: self.path+'.'+name,\n parent: self\n });\n self.editors[name].preBuild();\n\n if(!prebuild_only) {\n var holder = self.theme.getChildEditorHolder();\n self.editor_holder.appendChild(holder);\n self.editors[name].setContainer(holder);\n self.editors[name].build();\n self.editors[name].postBuild();\n }\n\n self.cached_editors[name] = self.editors[name];\n }\n\n // If we're only prebuilding the editors, don't refresh values\n if(!prebuild_only) {\n self.refreshValue();\n self.layoutEditors();\n }\n },\n onChildEditorChange: function(editor) {\n this.refreshValue();\n this._super(editor);\n },\n canHaveAdditionalProperties: function() {\n if (typeof this.schema.additionalProperties === \"boolean\") {\n return this.schema.additionalProperties;\n }\n return !this.jsoneditor.options.no_additional_properties;\n },\n destroy: function() {\n $each(this.cached_editors, function(i,el) {\n el.destroy();\n });\n if(this.editor_holder) this.editor_holder.innerHTML = '';\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.error_holder && this.error_holder.parentNode) this.error_holder.parentNode.removeChild(this.error_holder);\n\n this.editors = null;\n this.cached_editors = null;\n if(this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder);\n this.editor_holder = null;\n\n this._super();\n },\n getValue: function() {\n var result = this._super();\n if(this.jsoneditor.options.remove_empty_properties || this.options.remove_empty_properties) {\n for(var i in result) {\n if(result.hasOwnProperty(i)) {\n if(!result[i]) delete result[i];\n }\n }\n }\n return result;\n },\n refreshValue: function() {\n this.value = {};\n var self = this;\n\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.value[i] = this.editors[i].getValue();\n }\n \n if(this.adding_property) this.refreshAddProperties();\n },\n refreshAddProperties: function() {\n if(this.options.disable_properties || (this.options.disable_properties !== false && this.jsoneditor.options.disable_properties)) {\n this.addproperty_controls.style.display = 'none';\n return;\n }\n\n var can_add = false, can_remove = false, num_props = 0, i, show_modal = false;\n\n // Get number of editors\n for(i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n num_props++;\n }\n\n // Determine if we can add back removed properties\n can_add = this.canHaveAdditionalProperties() && !(typeof this.schema.maxProperties !== \"undefined\" && num_props >= this.schema.maxProperties);\n\n if(this.addproperty_checkboxes) {\n this.addproperty_list.innerHTML = '';\n }\n this.addproperty_checkboxes = {};\n\n // Check for which editors can't be removed or added back\n for(i in this.cached_editors) {\n if(!this.cached_editors.hasOwnProperty(i)) continue;\n\n this.addPropertyCheckbox(i);\n\n if(this.isRequired(this.cached_editors[i]) && i in this.editors) {\n this.addproperty_checkboxes[i].disabled = true;\n }\n\n if(typeof this.schema.minProperties !== \"undefined\" && num_props <= this.schema.minProperties) {\n this.addproperty_checkboxes[i].disabled = this.addproperty_checkboxes[i].checked;\n if(!this.addproperty_checkboxes[i].checked) show_modal = true;\n }\n else if(!(i in this.editors)) {\n if(!can_add && !this.schema.properties.hasOwnProperty(i)) {\n this.addproperty_checkboxes[i].disabled = true;\n }\n else {\n this.addproperty_checkboxes[i].disabled = false;\n show_modal = true;\n }\n }\n else {\n show_modal = true;\n can_remove = true;\n }\n }\n\n if(this.canHaveAdditionalProperties()) {\n show_modal = true;\n }\n\n // Additional addproperty checkboxes not tied to a current editor\n for(i in this.schema.properties) {\n if(!this.schema.properties.hasOwnProperty(i)) continue;\n if(this.cached_editors[i]) continue;\n show_modal = true;\n this.addPropertyCheckbox(i);\n }\n\n // If no editors can be added or removed, hide the modal button\n if(!show_modal) {\n this.hideAddProperty();\n this.addproperty_controls.style.display = 'none';\n }\n // If additional properties are disabled\n else if(!this.canHaveAdditionalProperties()) {\n this.addproperty_add.style.display = 'none';\n this.addproperty_input.style.display = 'none';\n }\n // If no new properties can be added\n else if(!can_add) {\n this.addproperty_add.disabled = true;\n }\n // If new properties can be added\n else {\n this.addproperty_add.disabled = false;\n }\n },\n isRequired: function(editor) {\n if(typeof editor.schema.required === \"boolean\") return editor.schema.required;\n else if(Array.isArray(this.schema.required)) return this.schema.required.indexOf(editor.key) > -1;\n else if(this.jsoneditor.options.required_by_default) return true;\n else return false;\n },\n setValue: function(value, initial) {\n var self = this;\n value = value || {};\n\n if(typeof value !== \"object\" || Array.isArray(value)) value = {};\n\n // First, set the values for all of the defined properties\n $each(this.cached_editors, function(i,editor) {\n // Value explicitly set\n if(typeof value[i] !== \"undefined\") {\n self.addObjectProperty(i);\n editor.setValue(value[i],initial);\n }\n // Otherwise, remove value unless this is the initial set or it's required\n else if(!initial && !self.isRequired(editor)) {\n self.removeObjectProperty(i);\n }\n // Otherwise, set the value to the default\n else {\n editor.setValue(editor.getDefault(),initial);\n }\n });\n\n $each(value, function(i,val) {\n if(!self.cached_editors[i]) {\n self.addObjectProperty(i);\n if(self.editors[i]) self.editors[i].setValue(val,initial);\n }\n });\n\n this.refreshValue();\n this.layoutEditors();\n this.onChange();\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // Get all the errors that pertain to this editor\n var my_errors = [];\n var other_errors = [];\n $each(errors, function(i,error) {\n if(error.path === self.path) {\n my_errors.push(error);\n }\n else {\n other_errors.push(error);\n }\n });\n\n // Show errors for this editor\n if(this.error_holder) {\n if(my_errors.length) {\n var message = [];\n this.error_holder.innerHTML = '';\n this.error_holder.style.display = '';\n $each(my_errors, function(i,error) {\n self.error_holder.appendChild(self.theme.getErrorMessage(error.message));\n });\n }\n // Hide error area\n else {\n this.error_holder.style.display = 'none';\n }\n }\n\n // Show error for the table row if this is inside a table\n if(this.options.table_row) {\n if(my_errors.length) {\n this.theme.addTableRowError(this.container);\n }\n else {\n this.theme.removeTableRowError(this.container);\n }\n }\n\n // Show errors for child editors\n $each(this.editors, function(i,editor) {\n editor.showValidationErrors(other_errors);\n });\n }\n});\n","JSONEditor.defaults.editors.array = JSONEditor.AbstractEditor.extend({\n getDefault: function() {\n return this.schema[\"default\"] || [];\n },\n register: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].register();\n }\n }\n },\n unregister: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n var info = this.getItemInfo(0);\n // Tabs require extra horizontal space\n if(this.tabs_holder) {\n return Math.max(Math.min(12,info.width+2),4);\n }\n else {\n return info.width;\n }\n },\n enable: function() {\n if(this.add_row_button) this.add_row_button.disabled = false;\n if(this.remove_all_rows_button) this.remove_all_rows_button.disabled = false;\n if(this.delete_last_row_button) this.delete_last_row_button.disabled = false;\n \n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].enable();\n \n if(this.rows[i].moveup_button) this.rows[i].moveup_button.disabled = false;\n if(this.rows[i].movedown_button) this.rows[i].movedown_button.disabled = false;\n if(this.rows[i].delete_button) this.rows[i].delete_button.disabled = false;\n }\n }\n this._super();\n },\n disable: function() {\n if(this.add_row_button) this.add_row_button.disabled = true;\n if(this.remove_all_rows_button) this.remove_all_rows_button.disabled = true;\n if(this.delete_last_row_button) this.delete_last_row_button.disabled = true;\n\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].disable();\n \n if(this.rows[i].moveup_button) this.rows[i].moveup_button.disabled = true;\n if(this.rows[i].movedown_button) this.rows[i].movedown_button.disabled = true;\n if(this.rows[i].delete_button) this.rows[i].delete_button.disabled = true;\n }\n }\n this._super();\n },\n preBuild: function() {\n this._super();\n \n this.rows = [];\n this.row_cache = [];\n\n this.hide_delete_buttons = this.options.disable_array_delete || this.jsoneditor.options.disable_array_delete;\n this.hide_delete_all_rows_buttons = this.hide_delete_buttons || this.options.disable_array_delete_all_rows || this.jsoneditor.options.disable_array_delete_all_rows;\n this.hide_delete_last_row_buttons = this.hide_delete_buttons || this.options.disable_array_delete_last_row || this.jsoneditor.options.disable_array_delete_last_row;\n this.hide_move_buttons = this.options.disable_array_reorder || this.jsoneditor.options.disable_array_reorder;\n this.hide_add_button = this.options.disable_array_add || this.jsoneditor.options.disable_array_add;\n },\n build: function() {\n var self = this;\n\n if(!this.options.compact) {\n this.header = document.createElement('span');\n this.header.textContent = this.getTitle();\n this.title = this.theme.getHeader(this.header);\n this.container.appendChild(this.title);\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n this.container.appendChild(this.description);\n }\n this.error_holder = document.createElement('div');\n this.container.appendChild(this.error_holder);\n\n if(this.schema.format === 'tabs') {\n this.controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.controls);\n this.tabs_holder = this.theme.getTabHolder();\n this.container.appendChild(this.tabs_holder);\n this.row_holder = this.theme.getTabContentHolder(this.tabs_holder);\n\n this.active_tab = null;\n }\n else {\n this.panel = this.theme.getIndentedPanel();\n this.container.appendChild(this.panel);\n this.row_holder = document.createElement('div');\n this.panel.appendChild(this.row_holder);\n this.controls = this.theme.getButtonHolder();\n this.panel.appendChild(this.controls);\n }\n }\n else {\n this.panel = this.theme.getIndentedPanel();\n this.container.appendChild(this.panel);\n this.controls = this.theme.getButtonHolder();\n this.panel.appendChild(this.controls);\n this.row_holder = document.createElement('div');\n this.panel.appendChild(this.row_holder);\n }\n\n // Add controls\n this.addControls();\n },\n onChildEditorChange: function(editor) {\n this.refreshValue();\n this.refreshTabs(true);\n this._super(editor);\n },\n getItemTitle: function() {\n if(!this.item_title) {\n if(this.schema.items && !Array.isArray(this.schema.items)) {\n var tmp = this.jsoneditor.expandRefs(this.schema.items);\n this.item_title = tmp.title || 'item';\n }\n else {\n this.item_title = 'item';\n }\n }\n return this.item_title;\n },\n getItemSchema: function(i) {\n if(Array.isArray(this.schema.items)) {\n if(i >= this.schema.items.length) {\n if(this.schema.additionalItems===true) {\n return {};\n }\n else if(this.schema.additionalItems) {\n return $extend({},this.schema.additionalItems);\n }\n }\n else {\n return $extend({},this.schema.items[i]);\n }\n }\n else if(this.schema.items) {\n return $extend({},this.schema.items);\n }\n else {\n return {};\n }\n },\n getItemInfo: function(i) {\n var schema = this.getItemSchema(i);\n \n // Check if it's cached\n this.item_info = this.item_info || {};\n var stringified = JSON.stringify(schema);\n if(typeof this.item_info[stringified] !== \"undefined\") return this.item_info[stringified];\n \n // Get the schema for this item\n schema = this.jsoneditor.expandRefs(schema);\n \n this.item_info[stringified] = {\n title: schema.title || \"item\",\n 'default': schema[\"default\"],\n width: 12,\n child_editors: schema.properties || schema.items\n };\n \n return this.item_info[stringified];\n },\n getElementEditor: function(i) {\n var item_info = this.getItemInfo(i);\n var schema = this.getItemSchema(i);\n schema = this.jsoneditor.expandRefs(schema);\n schema.title = item_info.title+' '+(i+1);\n\n var editor = this.jsoneditor.getEditorClass(schema);\n\n var holder;\n if(this.tabs_holder) {\n holder = this.theme.getTabContent();\n }\n else if(item_info.child_editors) {\n holder = this.theme.getChildEditorHolder();\n }\n else {\n holder = this.theme.getIndentedPanel();\n }\n\n this.row_holder.appendChild(holder);\n\n var ret = this.jsoneditor.createEditor(editor,{\n jsoneditor: this.jsoneditor,\n schema: schema,\n container: holder,\n path: this.path+'.'+i,\n parent: this,\n required: true\n });\n ret.preBuild();\n ret.build();\n ret.postBuild();\n\n if(!ret.title_controls) {\n ret.array_controls = this.theme.getButtonHolder();\n holder.appendChild(ret.array_controls);\n }\n \n return ret;\n },\n destroy: function() {\n this.empty(true);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.row_holder && this.row_holder.parentNode) this.row_holder.parentNode.removeChild(this.row_holder);\n if(this.controls && this.controls.parentNode) this.controls.parentNode.removeChild(this.controls);\n if(this.panel && this.panel.parentNode) this.panel.parentNode.removeChild(this.panel);\n \n this.rows = this.row_cache = this.title = this.description = this.row_holder = this.panel = this.controls = null;\n\n this._super();\n },\n empty: function(hard) {\n if(!this.rows) return;\n var self = this;\n $each(this.rows,function(i,row) {\n if(hard) {\n if(row.tab && row.tab.parentNode) row.tab.parentNode.removeChild(row.tab);\n self.destroyRow(row,true);\n self.row_cache[i] = null;\n }\n self.rows[i] = null;\n });\n self.rows = [];\n if(hard) self.row_cache = [];\n },\n destroyRow: function(row,hard) {\n var holder = row.container;\n if(hard) {\n row.destroy();\n if(holder.parentNode) holder.parentNode.removeChild(holder);\n if(row.tab && row.tab.parentNode) row.tab.parentNode.removeChild(row.tab);\n }\n else {\n if(row.tab) row.tab.style.display = 'none';\n holder.style.display = 'none';\n row.unregister();\n }\n },\n getMax: function() {\n if((Array.isArray(this.schema.items)) && this.schema.additionalItems === false) {\n return Math.min(this.schema.items.length,this.schema.maxItems || Infinity);\n }\n else {\n return this.schema.maxItems || Infinity;\n }\n },\n refreshTabs: function(refresh_headers) {\n var self = this;\n $each(this.rows, function(i,row) {\n if(!row.tab) return;\n\n if(refresh_headers) {\n row.tab_text.textContent = row.getHeaderText();\n }\n else {\n if(row.tab === self.active_tab) {\n self.theme.markTabActive(row.tab);\n row.container.style.display = '';\n }\n else {\n self.theme.markTabInactive(row.tab);\n row.container.style.display = 'none';\n }\n }\n });\n },\n setValue: function(value, initial) {\n // Update the array's value, adding/removing rows when necessary\n value = value || [];\n \n if(!(Array.isArray(value))) value = [value];\n \n var serialized = JSON.stringify(value);\n if(serialized === this.serialized) return;\n\n // Make sure value has between minItems and maxItems items in it\n if(this.schema.minItems) {\n while(value.length < this.schema.minItems) {\n value.push(this.getItemInfo(value.length)[\"default\"]);\n }\n }\n if(this.getMax() && value.length > this.getMax()) {\n value = value.slice(0,this.getMax());\n }\n\n var self = this;\n $each(value,function(i,val) {\n if(self.rows[i]) {\n // TODO: don't set the row's value if it hasn't changed\n self.rows[i].setValue(val,initial);\n }\n else if(self.row_cache[i]) {\n self.rows[i] = self.row_cache[i];\n self.rows[i].setValue(val,initial);\n self.rows[i].container.style.display = '';\n if(self.rows[i].tab) self.rows[i].tab.style.display = '';\n self.rows[i].register();\n }\n else {\n self.addRow(val,initial);\n }\n });\n\n for(var j=value.length; j<self.rows.length; j++) {\n self.destroyRow(self.rows[j]);\n self.rows[j] = null;\n }\n self.rows = self.rows.slice(0,value.length);\n\n // Set the active tab\n var new_active_tab = null;\n $each(self.rows, function(i,row) {\n if(row.tab === self.active_tab) {\n new_active_tab = row.tab;\n return false;\n }\n });\n if(!new_active_tab && self.rows.length) new_active_tab = self.rows[0].tab;\n\n self.active_tab = new_active_tab;\n\n self.refreshValue(initial);\n self.refreshTabs(true);\n self.refreshTabs();\n\n self.onChange();\n \n // TODO: sortable\n },\n refreshValue: function(force) {\n var self = this;\n var oldi = this.value? this.value.length : 0;\n this.value = [];\n\n $each(this.rows,function(i,editor) {\n // Get the value for this editor\n self.value[i] = editor.getValue();\n });\n \n if(oldi !== this.value.length || force) {\n // If we currently have minItems items in the array\n var minItems = this.schema.minItems && this.schema.minItems >= this.rows.length;\n \n $each(this.rows,function(i,editor) {\n // Hide the move down button for the last row\n if(editor.movedown_button) {\n if(i === self.rows.length - 1) {\n editor.movedown_button.style.display = 'none';\n }\n else {\n editor.movedown_button.style.display = '';\n }\n }\n\n // Hide the delete button if we have minItems items\n if(editor.delete_button) {\n if(minItems) {\n editor.delete_button.style.display = 'none';\n }\n else {\n editor.delete_button.style.display = '';\n }\n }\n\n // Get the value for this editor\n self.value[i] = editor.getValue();\n });\n \n var controls_needed = false;\n \n if(!this.value.length) {\n this.delete_last_row_button.style.display = 'none';\n this.remove_all_rows_button.style.display = 'none';\n }\n else if(this.value.length === 1) { \n this.remove_all_rows_button.style.display = 'none'; \n\n // If there are minItems items in the array, or configured to hide the delete_last_row button, hide the delete button beneath the rows\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n }\n else {\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(minItems || this.hide_delete_all_rows_buttons) {\n this.remove_all_rows_button.style.display = 'none';\n }\n else {\n this.remove_all_rows_button.style.display = '';\n controls_needed = true;\n }\n }\n\n // If there are maxItems in the array, hide the add button beneath the rows\n if((this.getMax() && this.getMax() <= this.rows.length) || this.hide_add_button){\n this.add_row_button.style.display = 'none';\n }\n else {\n this.add_row_button.style.display = '';\n controls_needed = true;\n } \n \n if(!this.collapsed && controls_needed) {\n this.controls.style.display = 'inline-block';\n }\n else {\n this.controls.style.display = 'none';\n }\n }\n },\n addRow: function(value, initial) {\n var self = this;\n var i = this.rows.length;\n \n self.rows[i] = this.getElementEditor(i);\n self.row_cache[i] = self.rows[i];\n\n if(self.tabs_holder) {\n self.rows[i].tab_text = document.createElement('span');\n self.rows[i].tab_text.textContent = self.rows[i].getHeaderText();\n self.rows[i].tab = self.theme.getTab(self.rows[i].tab_text);\n self.rows[i].tab.addEventListener('click', function(e) {\n self.active_tab = self.rows[i].tab;\n self.refreshTabs();\n e.preventDefault();\n e.stopPropagation();\n });\n\n self.theme.addTab(self.tabs_holder, self.rows[i].tab);\n }\n \n var controls_holder = self.rows[i].title_controls || self.rows[i].array_controls;\n \n // Buttons to delete row, move row up, and move row down\n if(!self.hide_delete_buttons) {\n self.rows[i].delete_button = this.getButton(self.getItemTitle(),'delete',this.translate('button_delete_row_title',[self.getItemTitle()]));\n self.rows[i].delete_button.className += ' delete';\n self.rows[i].delete_button.setAttribute('data-i',i);\n self.rows[i].delete_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n var value = self.getValue();\n\n var newval = [];\n var new_active_tab = null;\n $each(value,function(j,row) {\n if(j===i) {\n // If the one we're deleting is the active tab\n if(self.rows[j].tab === self.active_tab) {\n // Make the next tab active if there is one\n // Note: the next tab is going to be the current tab after deletion\n if(self.rows[j+1]) new_active_tab = self.rows[j].tab;\n // Otherwise, make the previous tab active if there is one\n else if(j) new_active_tab = self.rows[j-1].tab;\n }\n \n return; // If this is the one we're deleting\n }\n newval.push(row);\n });\n self.setValue(newval);\n if(new_active_tab) {\n self.active_tab = new_active_tab;\n self.refreshTabs();\n }\n\n self.onChange(true);\n });\n \n if(controls_holder) {\n controls_holder.appendChild(self.rows[i].delete_button);\n }\n }\n \n if(i && !self.hide_move_buttons) {\n self.rows[i].moveup_button = this.getButton('','moveup',this.translate('button_move_up_title'));\n self.rows[i].moveup_button.className += ' moveup';\n self.rows[i].moveup_button.setAttribute('data-i',i);\n self.rows[i].moveup_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n if(i<=0) return;\n var rows = self.getValue();\n var tmp = rows[i-1];\n rows[i-1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.active_tab = self.rows[i-1].tab;\n self.refreshTabs();\n\n self.onChange(true);\n });\n \n if(controls_holder) {\n controls_holder.appendChild(self.rows[i].moveup_button);\n }\n }\n \n if(!self.hide_move_buttons) {\n self.rows[i].movedown_button = this.getButton('','movedown',this.translate('button_move_down_title'));\n self.rows[i].movedown_button.className += ' movedown';\n self.rows[i].movedown_button.setAttribute('data-i',i);\n self.rows[i].movedown_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n var rows = self.getValue();\n if(i>=rows.length-1) return;\n var tmp = rows[i+1];\n rows[i+1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.active_tab = self.rows[i+1].tab;\n self.refreshTabs();\n self.onChange(true);\n });\n \n if(controls_holder) {\n controls_holder.appendChild(self.rows[i].movedown_button);\n }\n }\n\n if(value) self.rows[i].setValue(value, initial);\n self.refreshTabs();\n },\n addControls: function() {\n var self = this;\n \n this.collapsed = false;\n this.toggle_button = this.getButton('','collapse',this.translate('button_collapse'));\n this.title_controls.appendChild(this.toggle_button);\n var row_holder_display = self.row_holder.style.display;\n var controls_display = self.controls.style.display;\n this.toggle_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n if(self.collapsed) {\n self.collapsed = false;\n if(self.panel) self.panel.style.display = '';\n self.row_holder.style.display = row_holder_display;\n if(self.tabs_holder) self.tabs_holder.style.display = '';\n self.controls.style.display = controls_display;\n self.setButtonText(this,'','collapse',self.translate('button_collapse'));\n }\n else {\n self.collapsed = true;\n self.row_holder.style.display = 'none';\n if(self.tabs_holder) self.tabs_holder.style.display = 'none';\n self.controls.style.display = 'none';\n if(self.panel) self.panel.style.display = 'none';\n self.setButtonText(this,'','expand',self.translate('button_expand'));\n }\n });\n\n // If it should start collapsed\n if(this.options.collapsed) {\n $trigger(this.toggle_button,'click');\n }\n \n // Collapse button disabled\n if(this.schema.options && typeof this.schema.options.disable_collapse !== \"undefined\") {\n if(this.schema.options.disable_collapse) this.toggle_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none';\n }\n \n // Add \"new row\" and \"delete last\" buttons below editor\n this.add_row_button = this.getButton(this.getItemTitle(),'add',this.translate('button_add_row_title',[this.getItemTitle()]));\n \n this.add_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = self.rows.length;\n if(self.row_cache[i]) {\n self.rows[i] = self.row_cache[i];\n self.rows[i].setValue(self.rows[i].getDefault(), true);\n self.rows[i].container.style.display = '';\n if(self.rows[i].tab) self.rows[i].tab.style.display = '';\n self.rows[i].register();\n }\n else {\n self.addRow();\n }\n self.active_tab = self.rows[i].tab;\n self.refreshTabs();\n self.refreshValue();\n self.onChange(true);\n });\n self.controls.appendChild(this.add_row_button);\n\n this.delete_last_row_button = this.getButton(this.translate('button_delete_last',[this.getItemTitle()]),'delete',this.translate('button_delete_last_title',[this.getItemTitle()]));\n this.delete_last_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var rows = self.getValue();\n \n var new_active_tab = null;\n if(self.rows.length > 1 && self.rows[self.rows.length-1].tab === self.active_tab) new_active_tab = self.rows[self.rows.length-2].tab;\n \n rows.pop();\n self.setValue(rows);\n if(new_active_tab) {\n self.active_tab = new_active_tab;\n self.refreshTabs();\n }\n self.onChange(true);\n });\n self.controls.appendChild(this.delete_last_row_button);\n\n this.remove_all_rows_button = this.getButton(this.translate('button_delete_all'),'delete',this.translate('button_delete_all_title'));\n this.remove_all_rows_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.setValue([]);\n self.onChange(true);\n });\n self.controls.appendChild(this.remove_all_rows_button);\n\n if(self.tabs) {\n this.add_row_button.style.width = '100%';\n this.add_row_button.style.textAlign = 'left';\n this.add_row_button.style.marginBottom = '3px';\n \n this.delete_last_row_button.style.width = '100%';\n this.delete_last_row_button.style.textAlign = 'left';\n this.delete_last_row_button.style.marginBottom = '3px';\n \n this.remove_all_rows_button.style.width = '100%';\n this.remove_all_rows_button.style.textAlign = 'left';\n this.remove_all_rows_button.style.marginBottom = '3px';\n }\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // Get all the errors that pertain to this editor\n var my_errors = [];\n var other_errors = [];\n $each(errors, function(i,error) {\n if(error.path === self.path) {\n my_errors.push(error);\n }\n else {\n other_errors.push(error);\n }\n });\n\n // Show errors for this editor\n if(this.error_holder) {\n if(my_errors.length) {\n var message = [];\n this.error_holder.innerHTML = '';\n this.error_holder.style.display = '';\n $each(my_errors, function(i,error) {\n self.error_holder.appendChild(self.theme.getErrorMessage(error.message));\n });\n }\n // Hide error area\n else {\n this.error_holder.style.display = 'none';\n }\n }\n\n // Show errors for child editors\n $each(this.rows, function(i,row) {\n row.showValidationErrors(other_errors);\n });\n }\n});\n","JSONEditor.defaults.editors.table = JSONEditor.defaults.editors.array.extend({\n register: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].register();\n }\n }\n },\n unregister: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n return Math.max(Math.min(12,this.width),3);\n },\n preBuild: function() {\n var item_schema = this.jsoneditor.expandRefs(this.schema.items || {});\n\n this.item_title = item_schema.title || 'row';\n this.item_default = item_schema[\"default\"] || null;\n this.item_has_child_editors = item_schema.properties || item_schema.items;\n this.width = 12;\n this._super();\n },\n build: function() {\n var self = this;\n this.table = this.theme.getTable();\n this.container.appendChild(this.table);\n this.thead = this.theme.getTableHead();\n this.table.appendChild(this.thead);\n this.header_row = this.theme.getTableRow();\n this.thead.appendChild(this.header_row);\n this.row_holder = this.theme.getTableBody();\n this.table.appendChild(this.row_holder);\n\n // Determine the default value of array element\n var tmp = this.getElementEditor(0,true);\n this.item_default = tmp.getDefault();\n this.width = tmp.getNumColumns() + 2;\n\n if(!this.options.compact) {\n this.title = this.theme.getHeader(this.getTitle());\n this.container.appendChild(this.title);\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n this.container.appendChild(this.description);\n }\n this.panel = this.theme.getIndentedPanel();\n this.container.appendChild(this.panel);\n this.error_holder = document.createElement('div');\n this.panel.appendChild(this.error_holder);\n }\n else {\n this.panel = document.createElement('div');\n this.container.appendChild(this.panel);\n }\n\n this.panel.appendChild(this.table);\n this.controls = this.theme.getButtonHolder();\n this.panel.appendChild(this.controls);\n\n if(this.item_has_child_editors) {\n var ce = tmp.getChildEditors();\n var order = tmp.property_order || Object.keys(ce);\n for(var i=0; i<order.length; i++) {\n var th = self.theme.getTableHeaderCell(ce[order[i]].getTitle());\n if(ce[order[i]].options.hidden) th.style.display = 'none';\n self.header_row.appendChild(th);\n }\n }\n else {\n self.header_row.appendChild(self.theme.getTableHeaderCell(this.item_title));\n }\n\n tmp.destroy();\n this.row_holder.innerHTML = '';\n\n // Row Controls column\n this.controls_header_cell = self.theme.getTableHeaderCell(\" \");\n self.header_row.appendChild(this.controls_header_cell);\n\n // Add controls\n this.addControls();\n },\n onChildEditorChange: function(editor) {\n this.refreshValue();\n this._super();\n },\n getItemDefault: function() {\n return $extend({},{\"default\":this.item_default})[\"default\"];\n },\n getItemTitle: function() {\n return this.item_title;\n },\n getElementEditor: function(i,ignore) {\n var schema_copy = $extend({},this.schema.items);\n var editor = this.jsoneditor.getEditorClass(schema_copy, this.jsoneditor);\n var row = this.row_holder.appendChild(this.theme.getTableRow());\n var holder = row;\n if(!this.item_has_child_editors) {\n holder = this.theme.getTableCell();\n row.appendChild(holder);\n }\n\n var ret = this.jsoneditor.createEditor(editor,{\n jsoneditor: this.jsoneditor,\n schema: schema_copy,\n container: holder,\n path: this.path+'.'+i,\n parent: this,\n compact: true,\n table_row: true\n });\n\n ret.preBuild();\n if(!ignore) {\n ret.build();\n ret.postBuild();\n\n ret.controls_cell = row.appendChild(this.theme.getTableCell());\n ret.row = row;\n ret.table_controls = this.theme.getButtonHolder();\n ret.controls_cell.appendChild(ret.table_controls);\n ret.table_controls.style.margin = 0;\n ret.table_controls.style.padding = 0;\n }\n\n return ret;\n },\n destroy: function() {\n this.innerHTML = '';\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.row_holder && this.row_holder.parentNode) this.row_holder.parentNode.removeChild(this.row_holder);\n if(this.table && this.table.parentNode) this.table.parentNode.removeChild(this.table);\n if(this.panel && this.panel.parentNode) this.panel.parentNode.removeChild(this.panel);\n\n this.rows = this.title = this.description = this.row_holder = this.table = this.panel = null;\n\n this._super();\n },\n setValue: function(value, initial) {\n // Update the array's value, adding/removing rows when necessary\n value = value || [];\n\n // Make sure value has between minItems and maxItems items in it\n if(this.schema.minItems) {\n while(value.length < this.schema.minItems) {\n value.push(this.getItemDefault());\n }\n }\n if(this.schema.maxItems && value.length > this.schema.maxItems) {\n value = value.slice(0,this.schema.maxItems);\n }\n\n var serialized = JSON.stringify(value);\n if(serialized === this.serialized) return;\n\n var numrows_changed = false;\n\n var self = this;\n $each(value,function(i,val) {\n if(self.rows[i]) {\n // TODO: don't set the row's value if it hasn't changed\n self.rows[i].setValue(val);\n }\n else {\n self.addRow(val);\n numrows_changed = true;\n }\n });\n\n for(var j=value.length; j<self.rows.length; j++) {\n var holder = self.rows[j].container;\n if(!self.item_has_child_editors) {\n self.rows[j].row.parentNode.removeChild(self.rows[j].row);\n }\n self.rows[j].destroy();\n if(holder.parentNode) holder.parentNode.removeChild(holder);\n self.rows[j] = null;\n numrows_changed = true;\n }\n self.rows = self.rows.slice(0,value.length);\n\n self.refreshValue();\n if(numrows_changed || initial) self.refreshRowButtons();\n\n self.onChange();\n\n // TODO: sortable\n },\n refreshRowButtons: function() {\n var self = this;\n\n // If we currently have minItems items in the array\n var minItems = this.schema.minItems && this.schema.minItems >= this.rows.length;\n\n var need_row_buttons = false;\n $each(this.rows,function(i,editor) {\n // Hide the move down button for the last row\n if(editor.movedown_button) {\n if(i === self.rows.length - 1) {\n editor.movedown_button.style.display = 'none';\n }\n else {\n need_row_buttons = true;\n editor.movedown_button.style.display = '';\n }\n }\n\n // Hide the delete button if we have minItems items\n if(editor.delete_button) {\n if(minItems) {\n editor.delete_button.style.display = 'none';\n }\n else {\n need_row_buttons = true;\n editor.delete_button.style.display = '';\n }\n }\n\n if(editor.moveup_button) {\n need_row_buttons = true;\n }\n });\n\n // Show/hide controls column in table\n $each(this.rows,function(i,editor) {\n if(need_row_buttons) {\n editor.controls_cell.style.display = '';\n }\n else {\n editor.controls_cell.style.display = 'none';\n }\n });\n if(need_row_buttons) {\n this.controls_header_cell.style.display = '';\n }\n else {\n this.controls_header_cell.style.display = 'none';\n }\n\n var controls_needed = false;\n\n if(!this.value.length) {\n this.delete_last_row_button.style.display = 'none';\n this.remove_all_rows_button.style.display = 'none';\n this.table.style.display = 'none';\n }\n else if(this.value.length === 1) {\n this.table.style.display = '';\n this.remove_all_rows_button.style.display = 'none';\n\n // If there are minItems items in the array, or configured to hide the delete_last_row button, hide the delete button beneath the rows\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n }\n else {\n this.table.style.display = '';\n\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(minItems || this.hide_delete_all_rows_buttons) {\n this.remove_all_rows_button.style.display = 'none';\n }\n else {\n this.remove_all_rows_button.style.display = '';\n controls_needed = true;\n }\n }\n\n // If there are maxItems in the array, hide the add button beneath the rows\n if((this.schema.maxItems && this.schema.maxItems <= this.rows.length) || this.hide_add_button) {\n this.add_row_button.style.display = 'none';\n }\n else {\n this.add_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(!controls_needed) {\n this.controls.style.display = 'none';\n }\n else {\n this.controls.style.display = '';\n }\n },\n refreshValue: function() {\n var self = this;\n this.value = [];\n\n $each(this.rows,function(i,editor) {\n // Get the value for this editor\n self.value[i] = editor.getValue();\n });\n this.serialized = JSON.stringify(this.value);\n },\n addRow: function(value) {\n var self = this;\n var i = this.rows.length;\n\n self.rows[i] = this.getElementEditor(i);\n\n var controls_holder = self.rows[i].table_controls;\n\n // Buttons to delete row, move row up, and move row down\n if(!this.hide_delete_buttons) {\n self.rows[i].delete_button = this.getButton('','delete',this.translate('button_delete_row_title_short'));\n self.rows[i].delete_button.className += ' delete';\n self.rows[i].delete_button.setAttribute('data-i',i);\n self.rows[i].delete_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n var value = self.getValue();\n\n var newval = [];\n $each(value,function(j,row) {\n if(j===i) return; // If this is the one we're deleting\n newval.push(row);\n });\n self.setValue(newval);\n self.onChange(true);\n });\n controls_holder.appendChild(self.rows[i].delete_button);\n }\n\n\n if(i && !this.hide_move_buttons) {\n self.rows[i].moveup_button = this.getButton('','moveup',this.translate('button_move_up_title'));\n self.rows[i].moveup_button.className += ' moveup';\n self.rows[i].moveup_button.setAttribute('data-i',i);\n self.rows[i].moveup_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n if(i<=0) return;\n var rows = self.getValue();\n var tmp = rows[i-1];\n rows[i-1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.onChange(true);\n });\n controls_holder.appendChild(self.rows[i].moveup_button);\n }\n\n if(!this.hide_move_buttons) {\n self.rows[i].movedown_button = this.getButton('','movedown',this.translate('button_move_down_title'));\n self.rows[i].movedown_button.className += ' movedown';\n self.rows[i].movedown_button.setAttribute('data-i',i);\n self.rows[i].movedown_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n var rows = self.getValue();\n if(i>=rows.length-1) return;\n var tmp = rows[i+1];\n rows[i+1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.onChange(true);\n });\n controls_holder.appendChild(self.rows[i].movedown_button);\n }\n\n if(value) self.rows[i].setValue(value);\n },\n addControls: function() {\n var self = this;\n\n this.collapsed = false;\n this.toggle_button = this.getButton('','collapse',this.translate('button_collapse'));\n if(this.title_controls) {\n this.title_controls.appendChild(this.toggle_button);\n this.toggle_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if(self.collapsed) {\n self.collapsed = false;\n self.panel.style.display = '';\n self.setButtonText(this,'','collapse',self.translate('button_collapse'));\n }\n else {\n self.collapsed = true;\n self.panel.style.display = 'none';\n self.setButtonText(this,'','expand',self.translate('button_expand'));\n }\n });\n\n // If it should start collapsed\n if(this.options.collapsed) {\n $trigger(this.toggle_button,'click');\n }\n\n // Collapse button disabled\n if(this.schema.options && typeof this.schema.options.disable_collapse !== \"undefined\") {\n if(this.schema.options.disable_collapse) this.toggle_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none';\n }\n }\n\n // Add \"new row\" and \"delete last\" buttons below editor\n this.add_row_button = this.getButton(this.getItemTitle(),'add',this.translate('button_add_row_title',[this.getItemTitle()]));\n this.add_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n self.addRow();\n self.refreshValue();\n self.refreshRowButtons();\n self.onChange(true);\n });\n self.controls.appendChild(this.add_row_button);\n\n this.delete_last_row_button = this.getButton(this.translate('button_delete_last',[this.getItemTitle()]),'delete',this.translate('button_delete_last_title',[this.getItemTitle()]));\n this.delete_last_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var rows = self.getValue();\n rows.pop();\n self.setValue(rows);\n self.onChange(true);\n });\n self.controls.appendChild(this.delete_last_row_button);\n\n this.remove_all_rows_button = this.getButton(this.translate('button_delete_all'),'delete',this.translate('button_delete_all_title'));\n this.remove_all_rows_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n self.setValue([]);\n self.onChange(true);\n });\n self.controls.appendChild(this.remove_all_rows_button);\n }\n});\n","// Multiple Editor (for when `type` is an array)\nJSONEditor.defaults.editors.multiple = JSONEditor.AbstractEditor.extend({\n register: function() {\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].unregister();\n }\n if(this.editors[this.type]) this.editors[this.type].register();\n }\n this._super();\n },\n unregister: function() {\n this._super();\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n if(!this.editors[this.type]) return 4;\n return Math.max(this.editors[this.type].getNumColumns(),4);\n },\n enable: function() {\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].enable();\n }\n }\n this.switcher.disabled = false;\n this._super();\n },\n disable: function() {\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].disable();\n }\n }\n this.switcher.disabled = true;\n this._super();\n },\n switchEditor: function(i) {\n var self = this;\n\n if(!this.editors[i]) {\n this.buildChildEditor(i);\n }\n \n var current_value = self.getValue();\n\n self.type = i;\n\n self.register();\n\n $each(self.editors,function(type,editor) {\n if(!editor) return;\n if(self.type === type) {\n if(self.keep_values) editor.setValue(current_value,true);\n editor.container.style.display = '';\n }\n else editor.container.style.display = 'none';\n });\n self.refreshValue();\n self.refreshHeaderText();\n },\n buildChildEditor: function(i) {\n var self = this;\n var type = this.types[i];\n var holder = self.theme.getChildEditorHolder();\n self.editor_holder.appendChild(holder);\n\n var schema;\n\n if(typeof type === \"string\") {\n schema = $extend({},self.schema);\n schema.type = type;\n }\n else {\n schema = $extend({},self.schema,type);\n schema = self.jsoneditor.expandRefs(schema);\n\n // If we need to merge `required` arrays\n if(type.required && Array.isArray(type.required) && self.schema.required && Array.isArray(self.schema.required)) {\n schema.required = self.schema.required.concat(type.required);\n }\n }\n\n var editor = self.jsoneditor.getEditorClass(schema);\n\n self.editors[i] = self.jsoneditor.createEditor(editor,{\n jsoneditor: self.jsoneditor,\n schema: schema,\n container: holder,\n path: self.path,\n parent: self,\n required: true\n });\n self.editors[i].preBuild();\n self.editors[i].build();\n self.editors[i].postBuild();\n\n if(self.editors[i].header) self.editors[i].header.style.display = 'none';\n\n self.editors[i].option = self.switcher_options[i];\n\n holder.addEventListener('change_header_text',function() {\n self.refreshHeaderText();\n });\n\n if(i !== self.type) holder.style.display = 'none';\n },\n preBuild: function() {\n var self = this;\n\n this.types = [];\n this.type = 0;\n this.editors = [];\n this.validators = [];\n\n this.keep_values = true;\n if(typeof this.jsoneditor.options.keep_oneof_values !== \"undefined\") this.keep_values = this.jsoneditor.options.keep_oneof_values;\n if(typeof this.options.keep_oneof_values !== \"undefined\") this.keep_values = this.options.keep_oneof_values;\n\n if(this.schema.oneOf) {\n this.oneOf = true;\n this.types = this.schema.oneOf;\n delete this.schema.oneOf;\n }\n else if(this.schema.anyOf) {\n this.anyOf = true;\n this.types = this.schema.anyOf;\n delete this.schema.anyOf;\n }\n else {\n if(!this.schema.type || this.schema.type === \"any\") {\n this.types = ['string','number','integer','boolean','object','array','null'];\n\n // If any of these primitive types are disallowed\n if(this.schema.disallow) {\n var disallow = this.schema.disallow;\n if(typeof disallow !== 'object' || !(Array.isArray(disallow))) {\n disallow = [disallow];\n }\n var allowed_types = [];\n $each(this.types,function(i,type) {\n if(disallow.indexOf(type) === -1) allowed_types.push(type);\n });\n this.types = allowed_types;\n }\n }\n else if(Array.isArray(this.schema.type)) {\n this.types = this.schema.type;\n }\n else {\n this.types = [this.schema.type];\n }\n delete this.schema.type;\n }\n\n this.display_text = this.getDisplayText(this.types);\n },\n build: function() {\n var self = this;\n var container = this.container;\n\n this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n this.container.appendChild(this.header);\n\n this.switcher = this.theme.getSwitcher(this.display_text);\n container.appendChild(this.switcher);\n this.switcher.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n self.switchEditor(self.display_text.indexOf(this.value));\n self.onChange(true);\n });\n\n this.editor_holder = document.createElement('div');\n container.appendChild(this.editor_holder);\n \n \n var validator_options = {};\n if(self.jsoneditor.options.custom_validators) {\n validator_options.custom_validators = self.jsoneditor.options.custom_validators;\n }\n\n this.switcher_options = this.theme.getSwitcherOptions(this.switcher);\n $each(this.types,function(i,type) {\n self.editors[i] = false;\n\n var schema;\n\n if(typeof type === \"string\") {\n schema = $extend({},self.schema);\n schema.type = type;\n }\n else {\n schema = $extend({},self.schema,type);\n\n // If we need to merge `required` arrays\n if(type.required && Array.isArray(type.required) && self.schema.required && Array.isArray(self.schema.required)) {\n schema.required = self.schema.required.concat(type.required);\n }\n }\n\n self.validators[i] = new JSONEditor.Validator(self.jsoneditor,schema,validator_options);\n });\n\n this.switchEditor(0);\n },\n onChildEditorChange: function(editor) {\n if(this.editors[this.type]) {\n this.refreshValue();\n this.refreshHeaderText();\n }\n\n this._super();\n },\n refreshHeaderText: function() {\n var display_text = this.getDisplayText(this.types);\n $each(this.switcher_options, function(i,option) {\n option.textContent = display_text[i];\n });\n },\n refreshValue: function() {\n this.value = this.editors[this.type].getValue();\n },\n setValue: function(val,initial) {\n // Determine type by getting the first one that validates\n var self = this;\n $each(this.validators, function(i,validator) {\n if(!validator.validate(val).length) {\n self.type = i;\n self.switcher.value = self.display_text[i];\n return false;\n }\n });\n\n this.switchEditor(this.type);\n\n this.editors[this.type].setValue(val,initial);\n\n this.refreshValue();\n self.onChange();\n },\n destroy: function() {\n $each(this.editors, function(type,editor) {\n if(editor) editor.destroy();\n });\n if(this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder);\n if(this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher);\n this._super();\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // oneOf and anyOf error paths need to remove the oneOf[i] part before passing to child editors\n if(this.oneOf || this.anyOf) {\n var check_part = this.oneOf? 'oneOf' : 'anyOf';\n $each(this.editors,function(i,editor) {\n if(!editor) return;\n var check = self.path+'.'+check_part+'['+i+']';\n var new_errors = [];\n $each(errors, function(j,error) {\n if(error.path.substr(0,check.length)===check) {\n var new_error = $extend({},error);\n new_error.path = self.path+new_error.path.substr(check.length);\n new_errors.push(new_error);\n }\n });\n\n editor.showValidationErrors(new_errors);\n });\n }\n else {\n $each(this.editors,function(type,editor) {\n if(!editor) return;\n editor.showValidationErrors(errors);\n });\n }\n }\n});\n","// Enum Editor (used for objects and arrays with enumerated values)\nJSONEditor.defaults.editors[\"enum\"] = JSONEditor.AbstractEditor.extend({\n getNumColumns: function() {\n return 4;\n },\n build: function() {\n var container = this.container;\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n this.container.appendChild(this.title);\n\n this.options.enum_titles = this.options.enum_titles || [];\n\n this[\"enum\"] = this.schema[\"enum\"];\n this.selected = 0;\n this.select_options = [];\n this.html_values = [];\n\n var self = this;\n for(var i=0; i<this[\"enum\"].length; i++) {\n this.select_options[i] = this.options.enum_titles[i] || \"Value \"+(i+1);\n this.html_values[i] = this.getHTML(this[\"enum\"][i]);\n }\n\n // Switcher\n this.switcher = this.theme.getSwitcher(this.select_options);\n this.container.appendChild(this.switcher);\n\n // Display area\n this.display_area = this.theme.getIndentedPanel();\n this.container.appendChild(this.display_area);\n\n if(this.options.hide_display) this.display_area.style.display = \"none\";\n\n this.switcher.addEventListener('change',function() {\n self.selected = self.select_options.indexOf(this.value);\n self.value = self[\"enum\"][self.selected];\n self.refreshValue();\n self.onChange(true);\n });\n this.value = this[\"enum\"][0];\n this.refreshValue();\n\n if(this[\"enum\"].length === 1) this.switcher.style.display = 'none';\n },\n refreshValue: function() {\n var self = this;\n self.selected = -1;\n var stringified = JSON.stringify(this.value);\n $each(this[\"enum\"], function(i, el) {\n if(stringified === JSON.stringify(el)) {\n self.selected = i;\n return false;\n }\n });\n\n if(self.selected<0) {\n self.setValue(self[\"enum\"][0]);\n return;\n }\n\n this.switcher.value = this.select_options[this.selected];\n this.display_area.innerHTML = this.html_values[this.selected];\n },\n enable: function() {\n if(!this.always_disabled) this.switcher.disabled = false;\n this._super();\n },\n disable: function() {\n this.switcher.disabled = true;\n this._super();\n },\n getHTML: function(el) {\n var self = this;\n\n if(el === null) {\n return '<em>null</em>';\n }\n // Array or Object\n else if(typeof el === \"object\") {\n // TODO: use theme\n var ret = '';\n\n $each(el,function(i,child) {\n var html = self.getHTML(child);\n\n // Add the keys to object children\n if(!(Array.isArray(el))) {\n // TODO: use theme\n html = '<div><em>'+i+'</em>: '+html+'</div>';\n }\n\n // TODO: use theme\n ret += '<li>'+html+'</li>';\n });\n\n if(Array.isArray(el)) ret = '<ol>'+ret+'</ol>';\n else ret = \"<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>\"+ret+'</ul>';\n\n return ret;\n }\n // Boolean\n else if(typeof el === \"boolean\") {\n return el? 'true' : 'false';\n }\n // String\n else if(typeof el === \"string\") {\n return el.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');\n }\n // Number\n else {\n return el;\n }\n },\n setValue: function(val) {\n if(this.value !== val) {\n this.value = val;\n this.refreshValue();\n this.onChange();\n }\n },\n destroy: function() {\n if(this.display_area && this.display_area.parentNode) this.display_area.parentNode.removeChild(this.display_area);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher);\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.select = JSONEditor.AbstractEditor.extend({\n setValue: function(value,initial) {\n value = this.typecast(value||'');\n\n // Sanitize value before setting it\n var sanitized = value;\n if(this.enum_values.indexOf(sanitized) < 0) {\n sanitized = this.enum_values[0];\n }\n\n if(this.value === sanitized) {\n return;\n }\n\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)];\n if(this.select2) this.select2.select2('val',this.input.value);\n this.value = sanitized;\n this.onChange();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n if(!this.enum_options) return 3;\n var longest_text = this.getTitle().length;\n for(var i=0; i<this.enum_options.length; i++) {\n longest_text = Math.max(longest_text,this.enum_options[i].length+4);\n }\n return Math.min(12,Math.max(longest_text/7,2));\n },\n typecast: function(value) {\n if(this.schema.type === \"boolean\") {\n return !!value;\n }\n else if(this.schema.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n },\n getValue: function() {\n return this.value;\n },\n preBuild: function() {\n var self = this;\n this.input_type = 'select';\n this.enum_options = [];\n this.enum_values = [];\n this.enum_display = [];\n var i;\n\n // Enum options enumerated\n if(this.schema[\"enum\"]) {\n var display = this.schema.options && this.schema.options.enum_titles || [];\n \n $each(this.schema[\"enum\"],function(i,option) {\n self.enum_options[i] = \"\"+option;\n self.enum_display[i] = \"\"+(display[i] || option);\n self.enum_values[i] = self.typecast(option);\n });\n\n if(!this.isRequired()){\n self.enum_display.unshift(' ');\n self.enum_options.unshift('undefined');\n self.enum_values.unshift(undefined);\n }\n \n }\n // Boolean\n else if(this.schema.type === \"boolean\") {\n self.enum_display = this.schema.options && this.schema.options.enum_titles || ['true','false'];\n self.enum_options = ['1',''];\n self.enum_values = [true,false];\n \n if(!this.isRequired()){\n self.enum_display.unshift(' ');\n self.enum_options.unshift('undefined');\n self.enum_values.unshift(undefined);\n }\n \n }\n // Dynamic Enum\n else if(this.schema.enumSource) {\n this.enumSource = [];\n this.enum_display = [];\n this.enum_options = [];\n this.enum_values = [];\n \n // Shortcut declaration for using a single array\n if(!(Array.isArray(this.schema.enumSource))) {\n if(this.schema.enumValue) {\n this.enumSource = [\n {\n source: this.schema.enumSource,\n value: this.schema.enumValue\n }\n ];\n }\n else {\n this.enumSource = [\n {\n source: this.schema.enumSource\n }\n ];\n }\n }\n else {\n for(i=0; i<this.schema.enumSource.length; i++) {\n // Shorthand for watched variable\n if(typeof this.schema.enumSource[i] === \"string\") {\n this.enumSource[i] = {\n source: this.schema.enumSource[i]\n };\n }\n // Make a copy of the schema\n else if(!(Array.isArray(this.schema.enumSource[i]))) {\n this.enumSource[i] = $extend({},this.schema.enumSource[i]);\n }\n else {\n this.enumSource[i] = this.schema.enumSource[i];\n }\n }\n }\n \n // Now, enumSource is an array of sources\n // Walk through this array and fix up the values\n for(i=0; i<this.enumSource.length; i++) {\n if(this.enumSource[i].value) {\n this.enumSource[i].value = this.jsoneditor.compileTemplate(this.enumSource[i].value, this.template_engine);\n }\n if(this.enumSource[i].title) {\n this.enumSource[i].title = this.jsoneditor.compileTemplate(this.enumSource[i].title, this.template_engine);\n }\n if(this.enumSource[i].filter) {\n this.enumSource[i].filter = this.jsoneditor.compileTemplate(this.enumSource[i].filter, this.template_engine);\n }\n }\n }\n // Other, not supported\n else {\n throw \"'select' editor requires the enum property to be set.\";\n }\n },\n build: function() {\n var self = this;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n\n if(this.options.compact) this.container.className += ' compact';\n\n this.input = this.theme.getSelectInput(this.enum_options);\n this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display);\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.input.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.onInputChange();\n });\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description);\n this.container.appendChild(this.control);\n\n this.value = this.enum_values[0];\n },\n onInputChange: function() {\n var val = this.input.value;\n\n var new_val;\n // Invalid option, use first option instead\n if(this.enum_options.indexOf(val) === -1) {\n new_val = this.enum_values[0];\n }\n else {\n new_val = this.enum_values[this.enum_options.indexOf(val)];\n }\n\n // If valid hasn't changed\n if(new_val === this.value) return;\n\n // Store new value and propogate change event\n this.value = new_val;\n this.onChange(true);\n },\n setupSelect2: function() {\n // If the Select2 library is loaded use it when we have lots of items\n if(window.jQuery && window.jQuery.fn && window.jQuery.fn.select2 && (this.enum_options.length > 2 || (this.enum_options.length && this.enumSource))) {\n var options = $extend({},JSONEditor.plugins.select2);\n if(this.schema.options && this.schema.options.select2_options) options = $extend(options,this.schema.options.select2_options);\n this.select2 = window.jQuery(this.input).select2(options);\n var self = this;\n this.select2.on('select2-blur',function() {\n self.input.value = self.select2.select2('val');\n self.onInputChange();\n });\n this.select2.on('change',function() {\n self.input.value = self.select2.select2('val');\n self.onInputChange();\n });\n }\n else {\n this.select2 = null;\n }\n },\n postBuild: function() {\n this._super();\n this.theme.afterInputReady(this.input);\n this.setupSelect2();\n },\n onWatchedFieldChange: function() {\n var self = this, vars, j;\n \n // If this editor uses a dynamic select box\n if(this.enumSource) {\n vars = this.getWatchedFieldValues();\n var select_options = [];\n var select_titles = [];\n \n for(var i=0; i<this.enumSource.length; i++) {\n // Constant values\n if(Array.isArray(this.enumSource[i])) {\n select_options = select_options.concat(this.enumSource[i]);\n select_titles = select_titles.concat(this.enumSource[i]);\n }\n else {\n var items = [];\n // Static list of items\n if(Array.isArray(this.enumSource[i].source)) {\n items = this.enumSource[i].source;\n // A watched field\n } else {\n items = vars[this.enumSource[i].source];\n }\n \n if(items) {\n // Only use a predefined part of the array\n if(this.enumSource[i].slice) {\n items = Array.prototype.slice.apply(items,this.enumSource[i].slice);\n }\n // Filter the items\n if(this.enumSource[i].filter) {\n var new_items = [];\n for(j=0; j<items.length; j++) {\n if(this.enumSource[i].filter({i:j,item:items[j],watched:vars})) new_items.push(items[j]);\n }\n items = new_items;\n }\n \n var item_titles = [];\n var item_values = [];\n for(j=0; j<items.length; j++) {\n var item = items[j];\n \n // Rendered value\n if(this.enumSource[i].value) {\n item_values[j] = this.enumSource[i].value({\n i: j,\n item: item\n });\n }\n // Use value directly\n else {\n item_values[j] = items[j];\n }\n \n // Rendered title\n if(this.enumSource[i].title) {\n item_titles[j] = this.enumSource[i].title({\n i: j,\n item: item\n });\n }\n // Use value as the title also\n else {\n item_titles[j] = item_values[j];\n }\n }\n \n // TODO: sort\n \n select_options = select_options.concat(item_values);\n select_titles = select_titles.concat(item_titles);\n }\n }\n }\n \n var prev_value = this.value;\n \n this.theme.setSelectOptions(this.input, select_options, select_titles);\n this.enum_options = select_options;\n this.enum_display = select_titles;\n this.enum_values = select_options;\n \n if(this.select2) {\n this.select2.select2('destroy');\n }\n \n // If the previous value is still in the new select options, stick with it\n if(select_options.indexOf(prev_value) !== -1) {\n this.input.value = prev_value;\n this.value = prev_value;\n }\n // Otherwise, set the value to the first select option\n else {\n this.input.value = select_options[0];\n this.value = select_options[0] || \"\"; \n if(this.parent) this.parent.onChildEditorChange(this);\n else this.jsoneditor.onChange();\n this.jsoneditor.notifyWatchers(this.path);\n }\n \n this.setupSelect2();\n }\n\n this._super();\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n if(this.select2) this.select2.select2(\"enable\",true);\n }\n this._super();\n },\n disable: function() {\n this.input.disabled = true;\n if(this.select2) this.select2.select2(\"enable\",false);\n this._super();\n },\n destroy: function() {\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.select2) {\n this.select2.select2('destroy');\n this.select2 = null;\n }\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.selectize = JSONEditor.AbstractEditor.extend({\n setValue: function(value,initial) {\n value = this.typecast(value||'');\n\n // Sanitize value before setting it\n var sanitized = value;\n if(this.enum_values.indexOf(sanitized) < 0) {\n sanitized = this.enum_values[0];\n }\n\n if(this.value === sanitized) {\n return;\n }\n\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)];\n\n if(this.selectize) {\n this.selectize[0].selectize.addItem(sanitized);\n }\n\n this.value = sanitized;\n this.onChange();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n if(!this.enum_options) return 3;\n var longest_text = this.getTitle().length;\n for(var i=0; i<this.enum_options.length; i++) {\n longest_text = Math.max(longest_text,this.enum_options[i].length+4);\n }\n return Math.min(12,Math.max(longest_text/7,2));\n },\n typecast: function(value) {\n if(this.schema.type === \"boolean\") {\n return !!value;\n }\n else if(this.schema.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n },\n getValue: function() {\n return this.value;\n },\n preBuild: function() {\n var self = this;\n this.input_type = 'select';\n this.enum_options = [];\n this.enum_values = [];\n this.enum_display = [];\n var i;\n\n // Enum options enumerated\n if(this.schema.enum) {\n var display = this.schema.options && this.schema.options.enum_titles || [];\n\n $each(this.schema.enum,function(i,option) {\n self.enum_options[i] = \"\"+option;\n self.enum_display[i] = \"\"+(display[i] || option);\n self.enum_values[i] = self.typecast(option);\n });\n }\n // Boolean\n else if(this.schema.type === \"boolean\") {\n self.enum_display = this.schema.options && this.schema.options.enum_titles || ['true','false'];\n self.enum_options = ['1','0'];\n self.enum_values = [true,false];\n }\n // Dynamic Enum\n else if(this.schema.enumSource) {\n this.enumSource = [];\n this.enum_display = [];\n this.enum_options = [];\n this.enum_values = [];\n\n // Shortcut declaration for using a single array\n if(!(Array.isArray(this.schema.enumSource))) {\n if(this.schema.enumValue) {\n this.enumSource = [\n {\n source: this.schema.enumSource,\n value: this.schema.enumValue\n }\n ];\n }\n else {\n this.enumSource = [\n {\n source: this.schema.enumSource\n }\n ];\n }\n }\n else {\n for(i=0; i<this.schema.enumSource.length; i++) {\n // Shorthand for watched variable\n if(typeof this.schema.enumSource[i] === \"string\") {\n this.enumSource[i] = {\n source: this.schema.enumSource[i]\n };\n }\n // Make a copy of the schema\n else if(!(Array.isArray(this.schema.enumSource[i]))) {\n this.enumSource[i] = $extend({},this.schema.enumSource[i]);\n }\n else {\n this.enumSource[i] = this.schema.enumSource[i];\n }\n }\n }\n\n // Now, enumSource is an array of sources\n // Walk through this array and fix up the values\n for(i=0; i<this.enumSource.length; i++) {\n if(this.enumSource[i].value) {\n this.enumSource[i].value = this.jsoneditor.compileTemplate(this.enumSource[i].value, this.template_engine);\n }\n if(this.enumSource[i].title) {\n this.enumSource[i].title = this.jsoneditor.compileTemplate(this.enumSource[i].title, this.template_engine);\n }\n if(this.enumSource[i].filter) {\n this.enumSource[i].filter = this.jsoneditor.compileTemplate(this.enumSource[i].filter, this.template_engine);\n }\n }\n }\n // Other, not supported\n else {\n throw \"'select' editor requires the enum property to be set.\";\n }\n },\n build: function() {\n var self = this;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n\n if(this.options.compact) this.container.className += ' compact';\n\n this.input = this.theme.getSelectInput(this.enum_options);\n this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display);\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.input.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.onInputChange();\n });\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description);\n this.container.appendChild(this.control);\n\n this.value = this.enum_values[0];\n },\n onInputChange: function() {\n var val = this.input.value;\n\n var sanitized = val;\n if(this.enum_options.indexOf(val) === -1) {\n sanitized = this.enum_options[0];\n }\n\n this.value = this.enum_values[this.enum_options.indexOf(val)];\n this.onChange(true);\n },\n setupSelectize: function() {\n // If the Selectize library is loaded use it when we have lots of items\n var self = this;\n if(window.jQuery && window.jQuery.fn && window.jQuery.fn.selectize && (this.enum_options.length >= 2 || (this.enum_options.length && this.enumSource))) {\n var options = $extend({},JSONEditor.plugins.selectize);\n if(this.schema.options && this.schema.options.selectize_options) options = $extend(options,this.schema.options.selectize_options);\n this.selectize = window.jQuery(this.input).selectize($extend(options,\n {\n create: true,\n onChange : function() {\n self.onInputChange();\n }\n }));\n }\n else {\n this.selectize = null;\n }\n },\n postBuild: function() {\n this._super();\n this.theme.afterInputReady(this.input);\n this.setupSelectize();\n },\n onWatchedFieldChange: function() {\n var self = this, vars, j;\n\n // If this editor uses a dynamic select box\n if(this.enumSource) {\n vars = this.getWatchedFieldValues();\n var select_options = [];\n var select_titles = [];\n\n for(var i=0; i<this.enumSource.length; i++) {\n // Constant values\n if(Array.isArray(this.enumSource[i])) {\n select_options = select_options.concat(this.enumSource[i]);\n select_titles = select_titles.concat(this.enumSource[i]);\n }\n // A watched field\n else if(vars[this.enumSource[i].source]) {\n var items = vars[this.enumSource[i].source];\n\n // Only use a predefined part of the array\n if(this.enumSource[i].slice) {\n items = Array.prototype.slice.apply(items,this.enumSource[i].slice);\n }\n // Filter the items\n if(this.enumSource[i].filter) {\n var new_items = [];\n for(j=0; j<items.length; j++) {\n if(this.enumSource[i].filter({i:j,item:items[j]})) new_items.push(items[j]);\n }\n items = new_items;\n }\n\n var item_titles = [];\n var item_values = [];\n for(j=0; j<items.length; j++) {\n var item = items[j];\n\n // Rendered value\n if(this.enumSource[i].value) {\n item_values[j] = this.enumSource[i].value({\n i: j,\n item: item\n });\n }\n // Use value directly\n else {\n item_values[j] = items[j];\n }\n\n // Rendered title\n if(this.enumSource[i].title) {\n item_titles[j] = this.enumSource[i].title({\n i: j,\n item: item\n });\n }\n // Use value as the title also\n else {\n item_titles[j] = item_values[j];\n }\n }\n\n // TODO: sort\n\n select_options = select_options.concat(item_values);\n select_titles = select_titles.concat(item_titles);\n }\n }\n\n var prev_value = this.value;\n\n this.theme.setSelectOptions(this.input, select_options, select_titles);\n this.enum_options = select_options;\n this.enum_display = select_titles;\n this.enum_values = select_options;\n\n // If the previous value is still in the new select options, stick with it\n if(select_options.indexOf(prev_value) !== -1) {\n this.input.value = prev_value;\n this.value = prev_value;\n }\n\n // Otherwise, set the value to the first select option\n else {\n this.input.value = select_options[0];\n this.value = select_options[0] || \"\";\n if(this.parent) this.parent.onChildEditorChange(this);\n else this.jsoneditor.onChange();\n this.jsoneditor.notifyWatchers(this.path);\n }\n\n if(this.selectize) {\n // Update the Selectize options\n this.updateSelectizeOptions(select_options);\n }\n else {\n this.setupSelectize();\n }\n\n this._super();\n }\n },\n updateSelectizeOptions: function(select_options) {\n var selectized = this.selectize[0].selectize,\n self = this;\n\n selectized.off();\n selectized.clearOptions();\n for(var n in select_options) {\n selectized.addOption({value:select_options[n],text:select_options[n]});\n }\n selectized.addItem(this.value);\n selectized.on('change',function() {\n self.onInputChange();\n });\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n if(this.selectize) {\n this.selectize[0].selectize.unlock();\n }\n }\n this._super();\n },\n disable: function() {\n this.input.disabled = true;\n if(this.selectize) {\n this.selectize[0].selectize.lock();\n }\n this._super();\n },\n destroy: function() {\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.selectize) {\n this.selectize[0].selectize.destroy();\n this.selectize = null;\n }\n this._super();\n }\n});\n","JSONEditor.defaults.editors.multiselect = JSONEditor.AbstractEditor.extend({\n preBuild: function() {\n this._super();\n var i;\n\n this.select_options = {};\n this.select_values = {};\n\n var items_schema = this.jsoneditor.expandRefs(this.schema.items || {});\n\n var e = items_schema[\"enum\"] || [];\n var t = items_schema.options? items_schema.options.enum_titles || [] : [];\n this.option_keys = [];\n this.option_titles = [];\n for(i=0; i<e.length; i++) {\n // If the sanitized value is different from the enum value, don't include it\n if(this.sanitize(e[i]) !== e[i]) continue;\n\n this.option_keys.push(e[i]+\"\");\n this.option_titles.push((t[i]||e[i])+\"\");\n this.select_values[e[i]+\"\"] = e[i];\n }\n },\n build: function() {\n var self = this, i;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n\n if((!this.schema.format && this.option_keys.length < 8) || this.schema.format === \"checkbox\") {\n this.input_type = 'checkboxes';\n\n this.inputs = {};\n this.controls = {};\n for(i=0; i<this.option_keys.length; i++) {\n this.inputs[this.option_keys[i]] = this.theme.getCheckbox();\n this.select_options[this.option_keys[i]] = this.inputs[this.option_keys[i]];\n var label = this.theme.getCheckboxLabel(this.option_titles[i]);\n this.controls[this.option_keys[i]] = this.theme.getFormControl(label, this.inputs[this.option_keys[i]]);\n }\n\n this.control = this.theme.getMultiCheckboxHolder(this.controls,this.label,this.description);\n }\n else {\n this.input_type = 'select';\n this.input = this.theme.getSelectInput(this.option_keys);\n this.theme.setSelectOptions(this.input,this.option_keys,this.option_titles);\n this.input.multiple = true;\n this.input.size = Math.min(10,this.option_keys.length);\n\n for(i=0; i<this.option_keys.length; i++) {\n this.select_options[this.option_keys[i]] = this.input.children[i];\n }\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description);\n }\n\n this.container.appendChild(this.control);\n this.control.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var new_value = [];\n for(i = 0; i<self.option_keys.length; i++) {\n if(self.select_options[self.option_keys[i]].selected || self.select_options[self.option_keys[i]].checked) new_value.push(self.select_values[self.option_keys[i]]);\n }\n\n self.updateValue(new_value);\n self.onChange(true);\n });\n },\n setValue: function(value, initial) {\n var i;\n value = value || [];\n if(typeof value !== \"object\") value = [value];\n else if(!(Array.isArray(value))) value = [];\n\n // Make sure we are dealing with an array of strings so we can check for strict equality\n for(i=0; i<value.length; i++) {\n if(typeof value[i] !== \"string\") value[i] += \"\";\n }\n\n // Update selected status of options\n for(i in this.select_options) {\n if(!this.select_options.hasOwnProperty(i)) continue;\n\n this.select_options[i][this.input_type === \"select\"? \"selected\" : \"checked\"] = (value.indexOf(i) !== -1);\n }\n\n this.updateValue(value);\n this.onChange();\n },\n setupSelect2: function() {\n if(window.jQuery && window.jQuery.fn && window.jQuery.fn.select2) {\n var options = window.jQuery.extend({},JSONEditor.plugins.select2);\n if(this.schema.options && this.schema.options.select2_options) options = $extend(options,this.schema.options.select2_options);\n this.select2 = window.jQuery(this.input).select2(options);\n var self = this;\n this.select2.on('select2-blur',function() {\n var val =self.select2.select2('val');\n self.value = val;\n self.onChange(true);\n });\n }\n else {\n this.select2 = null;\n }\n },\n onInputChange: function() {\n this.value = this.input.value;\n this.onChange(true);\n },\n postBuild: function() {\n this._super();\n this.setupSelect2();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n var longest_text = this.getTitle().length;\n for(var i in this.select_values) {\n if(!this.select_values.hasOwnProperty(i)) continue;\n longest_text = Math.max(longest_text,(this.select_values[i]+\"\").length+4);\n }\n\n return Math.min(12,Math.max(longest_text/7,2));\n },\n updateValue: function(value) {\n var changed = false;\n var new_value = [];\n for(var i=0; i<value.length; i++) {\n if(!this.select_options[value[i]+\"\"]) {\n changed = true;\n continue;\n }\n var sanitized = this.sanitize(this.select_values[value[i]]);\n new_value.push(sanitized);\n if(sanitized !== value[i]) changed = true;\n }\n this.value = new_value;\n if(this.select2) this.select2.select2('val',this.value);\n return changed;\n },\n sanitize: function(value) {\n if(this.schema.items.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.items.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.input) {\n this.input.disabled = false;\n }\n else if(this.inputs) {\n for(var i in this.inputs) {\n if(!this.inputs.hasOwnProperty(i)) continue;\n this.inputs[i].disabled = false;\n }\n }\n if(this.select2) this.select2.select2(\"enable\",true);\n }\n this._super();\n },\n disable: function() {\n if(this.input) {\n this.input.disabled = true;\n }\n else if(this.inputs) {\n for(var i in this.inputs) {\n if(!this.inputs.hasOwnProperty(i)) continue;\n this.inputs[i].disabled = true;\n }\n }\n if(this.select2) this.select2.select2(\"enable\",false);\n this._super();\n },\n destroy: function() {\n if(this.select2) {\n this.select2.select2('destroy');\n this.select2 = null;\n }\n this._super();\n }\n});\n","JSONEditor.defaults.editors.base64 = JSONEditor.AbstractEditor.extend({\n getNumColumns: function() {\n return 4;\n },\n build: function() { \n var self = this;\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n\n // Input that holds the base64 string\n this.input = this.theme.getFormInputField('hidden');\n this.container.appendChild(this.input);\n \n // Don't show uploader if this is readonly\n if(!this.schema.readOnly && !this.schema.readonly) {\n if(!window.FileReader) throw \"FileReader required for base64 editor\";\n \n // File uploader\n this.uploader = this.theme.getFormInputField('file');\n \n this.uploader.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n \n if(this.files && this.files.length) {\n var fr = new FileReader();\n fr.onload = function(evt) {\n self.value = evt.target.result;\n self.refreshPreview();\n self.onChange(true);\n fr = null;\n };\n fr.readAsDataURL(this.files[0]);\n }\n });\n }\n\n this.preview = this.theme.getFormInputDescription(this.schema.description);\n this.container.appendChild(this.preview);\n\n this.control = this.theme.getFormControl(this.label, this.uploader||this.input, this.preview);\n this.container.appendChild(this.control);\n },\n refreshPreview: function() {\n if(this.last_preview === this.value) return;\n this.last_preview = this.value;\n \n this.preview.innerHTML = '';\n \n if(!this.value) return;\n \n var mime = this.value.match(/^data:([^;,]+)[;,]/);\n if(mime) mime = mime[1];\n \n if(!mime) {\n this.preview.innerHTML = '<em>Invalid data URI</em>';\n }\n else {\n this.preview.innerHTML = '<strong>Type:</strong> '+mime+', <strong>Size:</strong> '+Math.floor((this.value.length-this.value.split(',')[0].length-1)/1.33333)+' bytes';\n if(mime.substr(0,5)===\"image\") {\n this.preview.innerHTML += '<br>';\n var img = document.createElement('img');\n img.style.maxWidth = '100%';\n img.style.maxHeight = '100px';\n img.src = this.value;\n this.preview.appendChild(img);\n }\n }\n },\n enable: function() {\n if(this.uploader) this.uploader.disabled = false;\n this._super();\n },\n disable: function() {\n if(this.uploader) this.uploader.disabled = true;\n this._super();\n },\n setValue: function(val) {\n if(this.value !== val) {\n this.value = val;\n this.input.value = this.value;\n this.refreshPreview();\n this.onChange();\n }\n },\n destroy: function() {\n if(this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.uploader && this.uploader.parentNode) this.uploader.parentNode.removeChild(this.uploader);\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.upload = JSONEditor.AbstractEditor.extend({\n getNumColumns: function() {\n return 4;\n },\n build: function() { \n var self = this;\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n\n // Input that holds the base64 string\n this.input = this.theme.getFormInputField('hidden');\n this.container.appendChild(this.input);\n \n // Don't show uploader if this is readonly\n if(!this.schema.readOnly && !this.schema.readonly) {\n\n if(!this.jsoneditor.options.upload) throw \"Upload handler required for upload editor\";\n\n // File uploader\n this.uploader = this.theme.getFormInputField('file');\n \n this.uploader.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n \n if(this.files && this.files.length) {\n var fr = new FileReader();\n fr.onload = function(evt) {\n self.preview_value = evt.target.result;\n self.refreshPreview();\n self.onChange(true);\n fr = null;\n };\n fr.readAsDataURL(this.files[0]);\n }\n });\n }\n\n var description = this.schema.description;\n if (!description) description = '';\n\n this.preview = this.theme.getFormInputDescription(description);\n this.container.appendChild(this.preview);\n\n this.control = this.theme.getFormControl(this.label, this.uploader||this.input, this.preview);\n this.container.appendChild(this.control);\n },\n refreshPreview: function() {\n if(this.last_preview === this.preview_value) return;\n this.last_preview = this.preview_value;\n\n this.preview.innerHTML = '';\n \n if(!this.preview_value) return;\n\n var self = this;\n\n var mime = this.preview_value.match(/^data:([^;,]+)[;,]/);\n if(mime) mime = mime[1];\n if(!mime) mime = 'unknown';\n\n var file = this.uploader.files[0];\n\n this.preview.innerHTML = '<strong>Type:</strong> '+mime+', <strong>Size:</strong> '+file.size+' bytes';\n if(mime.substr(0,5)===\"image\") {\n this.preview.innerHTML += '<br>';\n var img = document.createElement('img');\n img.style.maxWidth = '100%';\n img.style.maxHeight = '100px';\n img.src = this.preview_value;\n this.preview.appendChild(img);\n }\n\n this.preview.innerHTML += '<br>';\n var uploadButton = this.getButton('Upload', 'upload', 'Upload');\n this.preview.appendChild(uploadButton);\n uploadButton.addEventListener('click',function(event) {\n event.preventDefault();\n\n uploadButton.setAttribute(\"disabled\", \"disabled\");\n self.theme.removeInputError(self.uploader);\n\n if (self.theme.getProgressBar) {\n self.progressBar = self.theme.getProgressBar();\n self.preview.appendChild(self.progressBar);\n }\n\n self.jsoneditor.options.upload(self.path, file, {\n success: function(url) {\n self.setValue(url);\n\n if(self.parent) self.parent.onChildEditorChange(self);\n else self.jsoneditor.onChange();\n\n if (self.progressBar) self.preview.removeChild(self.progressBar);\n uploadButton.removeAttribute(\"disabled\");\n },\n failure: function(error) {\n self.theme.addInputError(self.uploader, error);\n if (self.progressBar) self.preview.removeChild(self.progressBar);\n uploadButton.removeAttribute(\"disabled\");\n },\n updateProgress: function(progress) {\n if (self.progressBar) {\n if (progress) self.theme.updateProgressBar(self.progressBar, progress);\n else self.theme.updateProgressBarUnknown(self.progressBar);\n }\n }\n });\n });\n },\n enable: function() {\n if(this.uploader) this.uploader.disabled = false;\n this._super();\n },\n disable: function() {\n if(this.uploader) this.uploader.disabled = true;\n this._super();\n },\n setValue: function(val) {\n if(this.value !== val) {\n this.value = val;\n this.input.value = this.value;\n this.onChange();\n }\n },\n destroy: function() {\n if(this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.uploader && this.uploader.parentNode) this.uploader.parentNode.removeChild(this.uploader);\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.checkbox = JSONEditor.AbstractEditor.extend({\n setValue: function(value,initial) {\n this.value = !!value;\n this.input.checked = this.value;\n this.onChange();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n return Math.min(12,Math.max(this.getTitle().length/7,2));\n },\n build: function() {\n var self = this;\n if(!this.options.compact) {\n this.label = this.header = this.theme.getCheckboxLabel(this.getTitle());\n }\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.compact) this.container.className += ' compact';\n\n this.input = this.theme.getCheckbox();\n this.control = this.theme.getFormControl(this.label, this.input, this.description);\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.input.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.value = this.checked;\n self.onChange(true);\n });\n\n this.container.appendChild(this.control);\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n }\n this._super();\n },\n disable: function() {\n this.input.disabled = true;\n this._super();\n },\n destroy: function() {\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n this._super();\n }\n});\n","JSONEditor.defaults.editors.arraySelectize = JSONEditor.AbstractEditor.extend({\n build: function() {\n this.title = this.theme.getFormInputLabel(this.getTitle());\n\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n this.error_holder = document.createElement('div');\n\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n }\n\n this.input = document.createElement('select');\n this.input.setAttribute('multiple', 'multiple');\n\n var group = this.theme.getFormControl(this.title, this.input, this.description);\n\n this.container.appendChild(group);\n this.container.appendChild(this.error_holder);\n\n window.jQuery(this.input).selectize({\n delimiter: false,\n createOnBlur: true,\n create: true\n });\n },\n postBuild: function() {\n var self = this;\n this.input.selectize.on('change', function(event) {\n self.refreshValue();\n self.onChange(true);\n });\n },\n destroy: function() {\n this.empty(true);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n\n this._super();\n },\n empty: function(hard) {},\n setValue: function(value, initial) {\n var self = this;\n // Update the array's value, adding/removing rows when necessary\n value = value || [];\n if(!(Array.isArray(value))) value = [value];\n\n this.input.selectize.clearOptions();\n this.input.selectize.clear(true);\n\n value.forEach(function(item) {\n self.input.selectize.addOption({text: item, value: item});\n });\n this.input.selectize.setValue(value);\n\n this.refreshValue(initial);\n },\n refreshValue: function(force) {\n this.value = this.input.selectize.getValue();\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // Get all the errors that pertain to this editor\n var my_errors = [];\n var other_errors = [];\n $each(errors, function(i,error) {\n if(error.path === self.path) {\n my_errors.push(error);\n }\n else {\n other_errors.push(error);\n }\n });\n\n // Show errors for this editor\n if(this.error_holder) {\n\n if(my_errors.length) {\n var message = [];\n this.error_holder.innerHTML = '';\n this.error_holder.style.display = '';\n $each(my_errors, function(i,error) {\n self.error_holder.appendChild(self.theme.getErrorMessage(error.message));\n });\n }\n // Hide error area\n else {\n this.error_holder.style.display = 'none';\n }\n }\n }\n});\n","var matchKey = (function () {\n var elem = document.documentElement;\n\n if (elem.matches) return 'matches';\n else if (elem.webkitMatchesSelector) return 'webkitMatchesSelector';\n else if (elem.mozMatchesSelector) return 'mozMatchesSelector';\n else if (elem.msMatchesSelector) return 'msMatchesSelector';\n else if (elem.oMatchesSelector) return 'oMatchesSelector';\n})();\n\nJSONEditor.AbstractTheme = Class.extend({\n getContainer: function() {\n return document.createElement('div');\n },\n getFloatRightLinkHolder: function() {\n var el = document.createElement('div');\n el.style = el.style || {};\n el.style.cssFloat = 'right';\n el.style.marginLeft = '10px';\n return el;\n },\n getModal: function() {\n var el = document.createElement('div');\n el.style.backgroundColor = 'white';\n el.style.border = '1px solid black';\n el.style.boxShadow = '3px 3px black';\n el.style.position = 'absolute';\n el.style.zIndex = '10';\n el.style.display = 'none';\n return el;\n },\n getGridContainer: function() {\n var el = document.createElement('div');\n return el;\n },\n getGridRow: function() {\n var el = document.createElement('div');\n el.className = 'row';\n return el;\n },\n getGridColumn: function() {\n var el = document.createElement('div');\n return el;\n },\n setGridColumnSize: function(el,size) {\n\n },\n getLink: function(text) {\n var el = document.createElement('a');\n el.setAttribute('href','#');\n el.appendChild(document.createTextNode(text));\n return el;\n },\n disableHeader: function(header) {\n header.style.color = '#ccc';\n },\n disableLabel: function(label) {\n label.style.color = '#ccc';\n },\n enableHeader: function(header) {\n header.style.color = '';\n },\n enableLabel: function(label) {\n label.style.color = '';\n },\n getFormInputLabel: function(text) {\n var el = document.createElement('label');\n el.appendChild(document.createTextNode(text));\n return el;\n },\n getCheckboxLabel: function(text) {\n var el = this.getFormInputLabel(text);\n el.style.fontWeight = 'normal';\n return el;\n },\n getHeader: function(text) {\n var el = document.createElement('h3');\n if(typeof text === \"string\") {\n el.textContent = text;\n }\n else {\n el.appendChild(text);\n }\n\n return el;\n },\n getCheckbox: function() {\n var el = this.getFormInputField('checkbox');\n el.style.display = 'inline-block';\n el.style.width = 'auto';\n return el;\n },\n getMultiCheckboxHolder: function(controls,label,description) {\n var el = document.createElement('div');\n\n if(label) {\n label.style.display = 'block';\n el.appendChild(label);\n }\n\n for(var i in controls) {\n if(!controls.hasOwnProperty(i)) continue;\n controls[i].style.display = 'inline-block';\n controls[i].style.marginRight = '20px';\n el.appendChild(controls[i]);\n }\n\n if(description) el.appendChild(description);\n\n return el;\n },\n getSelectInput: function(options) {\n var select = document.createElement('select');\n if(options) this.setSelectOptions(select, options);\n return select;\n },\n getSwitcher: function(options) {\n var switcher = this.getSelectInput(options);\n switcher.style.backgroundColor = 'transparent';\n switcher.style.display = 'inline-block';\n switcher.style.fontStyle = 'italic';\n switcher.style.fontWeight = 'normal';\n switcher.style.height = 'auto';\n switcher.style.marginBottom = 0;\n switcher.style.marginLeft = '5px';\n switcher.style.padding = '0 0 0 3px';\n switcher.style.width = 'auto';\n return switcher;\n },\n getSwitcherOptions: function(switcher) {\n return switcher.getElementsByTagName('option');\n },\n setSwitcherOptions: function(switcher, options, titles) {\n this.setSelectOptions(switcher, options, titles);\n },\n setSelectOptions: function(select, options, titles) {\n titles = titles || [];\n select.innerHTML = '';\n for(var i=0; i<options.length; i++) {\n var option = document.createElement('option');\n option.setAttribute('value',options[i]);\n option.textContent = titles[i] || options[i];\n select.appendChild(option);\n }\n },\n getTextareaInput: function() {\n var el = document.createElement('textarea');\n el.style = el.style || {};\n el.style.width = '100%';\n el.style.height = '300px';\n el.style.boxSizing = 'border-box';\n return el;\n },\n getRangeInput: function(min,max,step) {\n var el = this.getFormInputField('range');\n el.setAttribute('min',min);\n el.setAttribute('max',max);\n el.setAttribute('step',step);\n return el;\n },\n getFormInputField: function(type) {\n var el = document.createElement('input');\n el.setAttribute('type',type);\n return el;\n },\n afterInputReady: function(input) {\n\n },\n getFormControl: function(label, input, description) {\n var el = document.createElement('div');\n el.className = 'form-control';\n if(label) el.appendChild(label);\n if(input.type === 'checkbox') {\n label.insertBefore(input,label.firstChild);\n }\n else {\n el.appendChild(input);\n }\n\n if(description) el.appendChild(description);\n return el;\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.style = el.style || {};\n el.style.paddingLeft = '10px';\n el.style.marginLeft = '10px';\n el.style.borderLeft = '1px solid #ccc';\n return el;\n },\n getChildEditorHolder: function() {\n return document.createElement('div');\n },\n getDescription: function(text) {\n var el = document.createElement('p');\n el.innerHTML = text;\n return el;\n },\n getCheckboxDescription: function(text) {\n return this.getDescription(text);\n },\n getFormInputDescription: function(text) {\n return this.getDescription(text);\n },\n getHeaderButtonHolder: function() {\n return this.getButtonHolder();\n },\n getButtonHolder: function() {\n return document.createElement('div');\n },\n getButton: function(text, icon, title) {\n var el = document.createElement('button');\n el.type = 'button';\n this.setButtonText(el,text,icon,title);\n return el;\n },\n setButtonText: function(button, text, icon, title) {\n button.innerHTML = '';\n if(icon) {\n button.appendChild(icon);\n button.innerHTML += ' ';\n }\n button.appendChild(document.createTextNode(text));\n if(title) button.setAttribute('title',title);\n },\n getTable: function() {\n return document.createElement('table');\n },\n getTableRow: function() {\n return document.createElement('tr');\n },\n getTableHead: function() {\n return document.createElement('thead');\n },\n getTableBody: function() {\n return document.createElement('tbody');\n },\n getTableHeaderCell: function(text) {\n var el = document.createElement('th');\n el.textContent = text;\n return el;\n },\n getTableCell: function() {\n var el = document.createElement('td');\n return el;\n },\n getErrorMessage: function(text) {\n var el = document.createElement('p');\n el.style = el.style || {};\n el.style.color = 'red';\n el.appendChild(document.createTextNode(text));\n return el;\n },\n addInputError: function(input, text) {\n },\n removeInputError: function(input) {\n },\n addTableRowError: function(row) {\n },\n removeTableRowError: function(row) {\n },\n getTabHolder: function() {\n var el = document.createElement('div');\n el.innerHTML = \"<div style='float: left; width: 130px;' class='tabs'></div><div class='content' style='margin-left: 130px;'></div><div style='clear:both;'></div>\";\n return el;\n },\n applyStyles: function(el,styles) {\n el.style = el.style || {};\n for(var i in styles) {\n if(!styles.hasOwnProperty(i)) continue;\n el.style[i] = styles[i];\n }\n },\n closest: function(elem, selector) {\n while (elem && elem !== document) {\n if (elem[matchKey]) {\n if (elem[matchKey](selector)) {\n return elem;\n } else {\n elem = elem.parentNode;\n }\n }\n else {\n return false;\n }\n }\n return false;\n },\n getTab: function(span) {\n var el = document.createElement('div');\n el.appendChild(span);\n el.style = el.style || {};\n this.applyStyles(el,{\n border: '1px solid #ccc',\n borderWidth: '1px 0 1px 1px',\n textAlign: 'center',\n lineHeight: '30px',\n borderRadius: '5px',\n borderBottomRightRadius: 0,\n borderTopRightRadius: 0,\n fontWeight: 'bold',\n cursor: 'pointer'\n });\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n return this.getIndentedPanel();\n },\n markTabActive: function(tab) {\n this.applyStyles(tab,{\n opacity: 1,\n background: 'white'\n });\n },\n markTabInactive: function(tab) {\n this.applyStyles(tab,{\n opacity:0.5,\n background: ''\n });\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n getBlockLink: function() {\n var link = document.createElement('a');\n link.style.display = 'block';\n return link;\n },\n getBlockLinkHolder: function() {\n var el = document.createElement('div');\n return el;\n },\n getLinksHolder: function() {\n var el = document.createElement('div');\n return el;\n },\n createMediaLink: function(holder,link,media) {\n holder.appendChild(link);\n media.style.width='100%';\n holder.appendChild(media);\n },\n createImageLink: function(holder,link,image) {\n holder.appendChild(link);\n link.appendChild(image);\n }\n});\n","JSONEditor.defaults.themes.bootstrap2 = JSONEditor.AbstractTheme.extend({\n getRangeInput: function(min, max, step) {\n // TODO: use bootstrap slider\n return this._super(min, max, step);\n },\n getGridContainer: function() {\n var el = document.createElement('div');\n el.className = 'container-fluid';\n return el;\n },\n getGridRow: function() {\n var el = document.createElement('div');\n el.className = 'row-fluid';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'inline-block';\n el.style.fontWeight = 'bold';\n return el;\n },\n setGridColumnSize: function(el,size) {\n el.className = 'span'+size;\n },\n getSelectInput: function(options) {\n var input = this._super(options);\n input.style.width = 'auto';\n input.style.maxWidth = '98%';\n return input;\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n el.style.width = '98%';\n return el;\n },\n afterInputReady: function(input) {\n if(input.controlgroup) return;\n input.controlgroup = this.closest(input,'.control-group');\n input.controls = this.closest(input,'.controls');\n if(this.closest(input,'.compact')) {\n input.controlgroup.className = input.controlgroup.className.replace(/control-group/g,'').replace(/[ ]{2,}/g,' ');\n input.controls.className = input.controlgroup.className.replace(/controls/g,'').replace(/[ ]{2,}/g,' ');\n input.style.marginBottom = 0;\n }\n\n // TODO: use bootstrap slider\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.className = 'well well-small';\n el.style.paddingBottom = 0;\n return el;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement('p');\n el.className = 'help-inline';\n el.textContent = text;\n return el;\n },\n getFormControl: function(label, input, description) {\n var ret = document.createElement('div');\n ret.className = 'control-group';\n\n var controls = document.createElement('div');\n controls.className = 'controls';\n\n if(label && input.getAttribute('type') === 'checkbox') {\n ret.appendChild(controls);\n label.className += ' checkbox';\n label.appendChild(input);\n controls.appendChild(label);\n controls.style.height = '30px';\n }\n else {\n if(label) {\n label.className += ' control-label';\n ret.appendChild(label);\n }\n controls.appendChild(input);\n ret.appendChild(controls);\n }\n\n if(description) controls.appendChild(description);\n\n return ret;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = '10px';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.className = 'btn-group';\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.className += ' btn btn-default';\n return el;\n },\n getTable: function() {\n var el = document.createElement('table');\n el.className = 'table table-bordered';\n el.style.width = 'auto';\n el.style.maxWidth = 'none';\n return el;\n },\n addInputError: function(input,text) {\n if(!input.controlgroup || !input.controls) return;\n input.controlgroup.className += ' error';\n if(!input.errmsg) {\n input.errmsg = document.createElement('p');\n input.errmsg.className = 'help-block errormsg';\n input.controls.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.errmsg) return;\n input.errmsg.style.display = 'none';\n input.controlgroup.className = input.controlgroup.className.replace(/\\s?error/g,'');\n },\n getTabHolder: function() {\n var el = document.createElement('div');\n el.className = 'tabbable tabs-left';\n el.innerHTML = \"<ul class='nav nav-tabs span2' style='margin-right: 0;'></ul><div class='tab-content span10' style='overflow:visible;'></div>\";\n return el;\n },\n getTab: function(text) {\n var el = document.createElement('li');\n var a = document.createElement('a');\n a.setAttribute('href','#');\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.className = 'tab-pane active';\n return el;\n },\n markTabActive: function(tab) {\n tab.className += ' active';\n },\n markTabInactive: function(tab) {\n tab.className = tab.className.replace(/\\s?active/g,'');\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n getProgressBar: function() {\n var container = document.createElement('div');\n container.className = 'progress';\n\n var bar = document.createElement('div');\n bar.className = 'bar';\n bar.style.width = '0%';\n container.appendChild(bar);\n\n return container;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n\n progressBar.firstChild.style.width = progress + \"%\";\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n\n progressBar.className = 'progress progress-striped active';\n progressBar.firstChild.style.width = '100%';\n }\n});\n","JSONEditor.defaults.themes.bootstrap3 = JSONEditor.AbstractTheme.extend({\n getSelectInput: function(options) {\n var el = this._super(options);\n el.className += 'form-control';\n //el.style.width = 'auto';\n return el;\n },\n setGridColumnSize: function(el,size) {\n el.className = 'col-md-'+size;\n },\n afterInputReady: function(input) {\n if(input.controlgroup) return;\n input.controlgroup = this.closest(input,'.form-group');\n if(this.closest(input,'.compact')) {\n input.controlgroup.style.marginBottom = 0;\n }\n\n // TODO: use bootstrap slider\n },\n getTextareaInput: function() {\n var el = document.createElement('textarea');\n el.className = 'form-control';\n return el;\n },\n getRangeInput: function(min, max, step) {\n // TODO: use better slider\n return this._super(min, max, step);\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n if(type !== 'checkbox') {\n el.className += 'form-control';\n }\n return el;\n },\n getFormControl: function(label, input, description) {\n var group = document.createElement('div');\n\n if(label && input.type === 'checkbox') {\n group.className += ' checkbox';\n label.appendChild(input);\n label.style.fontSize = '14px';\n group.style.marginTop = '0';\n group.appendChild(label);\n input.style.position = 'relative';\n input.style.cssFloat = 'left';\n } \n else {\n group.className += ' form-group';\n if(label) {\n label.className += ' control-label';\n group.appendChild(label);\n }\n group.appendChild(input);\n }\n\n if(description) group.appendChild(description);\n\n return group;\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.className = 'well well-sm';\n el.style.paddingBottom = 0;\n return el;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement('p');\n el.className = 'help-block';\n el.innerHTML = text;\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = '10px';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.className = 'btn-group';\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.className += 'btn btn-default';\n return el;\n },\n getTable: function() {\n var el = document.createElement('table');\n el.className = 'table table-bordered';\n el.style.width = 'auto';\n el.style.maxWidth = 'none';\n return el;\n },\n\n addInputError: function(input,text) {\n if(!input.controlgroup) return;\n input.controlgroup.className += ' has-error';\n if(!input.errmsg) {\n input.errmsg = document.createElement('p');\n input.errmsg.className = 'help-block errormsg';\n input.controlgroup.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.errmsg) return;\n input.errmsg.style.display = 'none';\n input.controlgroup.className = input.controlgroup.className.replace(/\\s?has-error/g,'');\n },\n getTabHolder: function() {\n var el = document.createElement('div');\n el.innerHTML = \"<div class='tabs list-group col-md-2'></div><div class='col-md-10'></div>\";\n el.className = 'rows';\n return el;\n },\n getTab: function(text) {\n var el = document.createElement('a');\n el.className = 'list-group-item';\n el.setAttribute('href','#');\n el.appendChild(text);\n return el;\n },\n markTabActive: function(tab) {\n tab.className += ' active';\n },\n markTabInactive: function(tab) {\n tab.className = tab.className.replace(/\\s?active/g,'');\n },\n getProgressBar: function() {\n var min = 0, max = 100, start = 0;\n\n var container = document.createElement('div');\n container.className = 'progress';\n\n var bar = document.createElement('div');\n bar.className = 'progress-bar';\n bar.setAttribute('role', 'progressbar');\n bar.setAttribute('aria-valuenow', start);\n bar.setAttribute('aria-valuemin', min);\n bar.setAttribute('aria-valuenax', max);\n bar.innerHTML = start + \"%\";\n container.appendChild(bar);\n\n return container;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n\n var bar = progressBar.firstChild;\n var percentage = progress + \"%\";\n bar.setAttribute('aria-valuenow', progress);\n bar.style.width = percentage;\n bar.innerHTML = percentage;\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n\n var bar = progressBar.firstChild;\n progressBar.className = 'progress progress-striped active';\n bar.removeAttribute('aria-valuenow');\n bar.style.width = '100%';\n bar.innerHTML = '';\n }\n});\n","// Base Foundation theme\nJSONEditor.defaults.themes.foundation = JSONEditor.AbstractTheme.extend({\n getChildEditorHolder: function() {\n var el = document.createElement('div');\n el.style.marginBottom = '15px';\n return el;\n },\n getSelectInput: function(options) {\n var el = this._super(options);\n el.style.minWidth = 'none';\n el.style.padding = '5px';\n el.style.marginTop = '3px';\n return el;\n },\n getSwitcher: function(options) {\n var el = this._super(options);\n el.style.paddingRight = '8px';\n return el;\n },\n afterInputReady: function(input) {\n if(this.closest(input,'.compact')) {\n input.style.marginBottom = 0;\n }\n input.group = this.closest(input,'.form-control');\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'inline-block';\n return el;\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n el.style.width = '100%';\n el.style.marginBottom = type==='checkbox'? '0' : '12px';\n return el;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement('p');\n el.textContent = text;\n el.style.marginTop = '-10px';\n el.style.fontStyle = 'italic';\n return el;\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.className = 'panel';\n el.style.paddingBottom = 0;\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.display = 'inline-block';\n el.style.marginLeft = '10px';\n el.style.verticalAlign = 'middle';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.className = 'button-group';\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.className += ' small button';\n return el;\n },\n addInputError: function(input,text) {\n if(!input.group) return;\n input.group.className += ' error';\n\n if(!input.errmsg) {\n input.insertAdjacentHTML('afterend','<small class=\"error\"></small>');\n input.errmsg = input.parentNode.getElementsByClassName('error')[0];\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.errmsg) return;\n input.group.className = input.group.className.replace(/ error/g,'');\n input.errmsg.style.display = 'none';\n },\n getProgressBar: function() {\n var progressBar = document.createElement('div');\n progressBar.className = 'progress';\n\n var meter = document.createElement('span');\n meter.className = 'meter';\n meter.style.width = '0%';\n progressBar.appendChild(meter);\n return progressBar;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n progressBar.firstChild.style.width = progress + '%';\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n progressBar.firstChild.style.width = '100%';\n }\n});\n\n// Foundation 3 Specific Theme\nJSONEditor.defaults.themes.foundation3 = JSONEditor.defaults.themes.foundation.extend({\n getHeaderButtonHolder: function() {\n var el = this._super();\n el.style.fontSize = '.6em';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.fontWeight = 'bold';\n return el;\n },\n getTabHolder: function() {\n var el = document.createElement('div');\n el.className = 'row';\n el.innerHTML = \"<dl class='tabs vertical two columns'></dl><div class='tabs-content ten columns'></div>\";\n return el;\n },\n setGridColumnSize: function(el,size) {\n var sizes = ['zero','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve'];\n el.className = 'columns '+sizes[size];\n },\n getTab: function(text) {\n var el = document.createElement('dd');\n var a = document.createElement('a');\n a.setAttribute('href','#');\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.className = 'content active';\n el.style.paddingLeft = '5px';\n return el;\n },\n markTabActive: function(tab) {\n tab.className += ' active';\n },\n markTabInactive: function(tab) {\n tab.className = tab.className.replace(/\\s*active/g,'');\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n }\n});\n\n// Foundation 4 Specific Theme\nJSONEditor.defaults.themes.foundation4 = JSONEditor.defaults.themes.foundation.extend({\n getHeaderButtonHolder: function() {\n var el = this._super();\n el.style.fontSize = '.6em';\n return el;\n },\n setGridColumnSize: function(el,size) {\n el.className = 'columns large-'+size;\n },\n getFormInputDescription: function(text) {\n var el = this._super(text);\n el.style.fontSize = '.8rem';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.fontWeight = 'bold';\n return el;\n }\n});\n\n// Foundation 5 Specific Theme\nJSONEditor.defaults.themes.foundation5 = JSONEditor.defaults.themes.foundation.extend({\n getFormInputDescription: function(text) {\n var el = this._super(text);\n el.style.fontSize = '.8rem';\n return el;\n },\n setGridColumnSize: function(el,size) {\n el.className = 'columns medium-'+size;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text,icon,title);\n el.className = el.className.replace(/\\s*small/g,'') + ' tiny';\n return el;\n },\n getTabHolder: function() {\n var el = document.createElement('div');\n el.innerHTML = \"<dl class='tabs vertical'></dl><div class='tabs-content vertical'></div>\";\n return el;\n },\n getTab: function(text) {\n var el = document.createElement('dd');\n var a = document.createElement('a');\n a.setAttribute('href','#');\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.className = 'content active';\n el.style.paddingLeft = '5px';\n return el;\n },\n markTabActive: function(tab) {\n tab.className += ' active';\n },\n markTabInactive: function(tab) {\n tab.className = tab.className.replace(/\\s*active/g,'');\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n }\n});\n\nJSONEditor.defaults.themes.foundation6 = JSONEditor.defaults.themes.foundation5.extend({\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.className = 'callout secondary';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.className = 'button-group tiny';\n el.style.marginBottom = 0;\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'block';\n return el;\n },\n getFormControl: function(label, input, description) {\n var el = document.createElement('div');\n el.className = 'form-control';\n if(label) el.appendChild(label);\n if(input.type === 'checkbox') {\n label.insertBefore(input,label.firstChild);\n }\n else if (label) {\n label.appendChild(input);\n } else {\n el.appendChild(input);\n }\n\n if(description) label.appendChild(description);\n return el;\n },\n addInputError: function(input,text) {\n if(!input.group) return;\n input.group.className += ' error';\n\n if(!input.errmsg) {\n var errorEl = document.createElement('span');\n errorEl.className = 'form-error is-visible';\n input.group.getElementsByTagName('label')[0].appendChild(errorEl);\n\n input.className = input.className + ' is-invalid-input';\n\n input.errmsg = errorEl;\n }\n else {\n input.errmsg.style.display = '';\n input.className = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.errmsg) return;\n input.className = input.className.replace(/ is-invalid-input/g,'');\n if(input.errmsg.parentNode) {\n input.errmsg.parentNode.removeChild(input.errmsg);\n }\n },\n});\n","JSONEditor.defaults.themes.html = JSONEditor.AbstractTheme.extend({\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'block';\n el.style.marginBottom = '3px';\n el.style.fontWeight = 'bold';\n return el;\n },\n getFormInputDescription: function(text) {\n var el = this._super(text);\n el.style.fontSize = '.8em';\n el.style.margin = 0;\n el.style.display = 'inline-block';\n el.style.fontStyle = 'italic';\n return el;\n },\n getIndentedPanel: function() {\n var el = this._super();\n el.style.border = '1px solid #ddd';\n el.style.padding = '5px';\n el.style.margin = '5px';\n el.style.borderRadius = '3px';\n return el;\n },\n getChildEditorHolder: function() {\n var el = this._super();\n el.style.marginBottom = '8px';\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.display = 'inline-block';\n el.style.marginLeft = '10px';\n el.style.fontSize = '.8em';\n el.style.verticalAlign = 'middle';\n return el;\n },\n getTable: function() {\n var el = this._super();\n el.style.borderBottom = '1px solid #ccc';\n el.style.marginBottom = '5px';\n return el;\n },\n addInputError: function(input, text) {\n input.style.borderColor = 'red';\n \n if(!input.errmsg) {\n var group = this.closest(input,'.form-control');\n input.errmsg = document.createElement('div');\n input.errmsg.setAttribute('class','errmsg');\n input.errmsg.style = input.errmsg.style || {};\n input.errmsg.style.color = 'red';\n group.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = 'block';\n }\n \n input.errmsg.innerHTML = '';\n input.errmsg.appendChild(document.createTextNode(text));\n },\n removeInputError: function(input) {\n input.style.borderColor = '';\n if(input.errmsg) input.errmsg.style.display = 'none';\n },\n getProgressBar: function() {\n var max = 100, start = 0;\n\n var progressBar = document.createElement('progress');\n progressBar.setAttribute('max', max);\n progressBar.setAttribute('value', start);\n return progressBar;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n progressBar.setAttribute('value', progress);\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n progressBar.removeAttribute('value');\n }\n});\n","JSONEditor.defaults.themes.jqueryui = JSONEditor.AbstractTheme.extend({\n getTable: function() {\n var el = this._super();\n el.setAttribute('cellpadding',5);\n el.setAttribute('cellspacing',0);\n return el;\n },\n getTableHeaderCell: function(text) {\n var el = this._super(text);\n el.className = 'ui-state-active';\n el.style.fontWeight = 'bold';\n return el;\n },\n getTableCell: function() {\n var el = this._super();\n el.className = 'ui-widget-content';\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = '10px';\n el.style.fontSize = '.6em';\n el.style.display = 'inline-block';\n return el;\n },\n getFormInputDescription: function(text) {\n var el = this.getDescription(text);\n el.style.marginLeft = '10px';\n el.style.display = 'inline-block';\n return el;\n },\n getFormControl: function(label, input, description) {\n var el = this._super(label,input,description);\n if(input.type === 'checkbox') {\n el.style.lineHeight = '25px';\n \n el.style.padding = '3px 0';\n }\n else {\n el.style.padding = '4px 0 8px 0';\n }\n return el;\n },\n getDescription: function(text) {\n var el = document.createElement('span');\n el.style.fontSize = '.8em';\n el.style.fontStyle = 'italic';\n el.textContent = text;\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.className = 'ui-buttonset';\n el.style.fontSize = '.7em';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = document.createElement('label');\n el.style.fontWeight = 'bold';\n el.style.display = 'block';\n el.textContent = text;\n return el;\n },\n getButton: function(text, icon, title) {\n var button = document.createElement(\"button\");\n button.className = 'ui-button ui-widget ui-state-default ui-corner-all';\n\n // Icon only\n if(icon && !text) {\n button.className += ' ui-button-icon-only';\n icon.className += ' ui-button-icon-primary ui-icon-primary';\n button.appendChild(icon);\n }\n // Icon and Text\n else if(icon) {\n button.className += ' ui-button-text-icon-primary';\n icon.className += ' ui-button-icon-primary ui-icon-primary';\n button.appendChild(icon);\n }\n // Text only\n else {\n button.className += ' ui-button-text-only';\n }\n\n var el = document.createElement('span');\n el.className = 'ui-button-text';\n el.textContent = text||title||\".\";\n button.appendChild(el);\n\n button.setAttribute('title',title);\n \n return button;\n },\n setButtonText: function(button,text, icon, title) {\n button.innerHTML = '';\n button.className = 'ui-button ui-widget ui-state-default ui-corner-all';\n\n // Icon only\n if(icon && !text) {\n button.className += ' ui-button-icon-only';\n icon.className += ' ui-button-icon-primary ui-icon-primary';\n button.appendChild(icon);\n }\n // Icon and Text\n else if(icon) {\n button.className += ' ui-button-text-icon-primary';\n icon.className += ' ui-button-icon-primary ui-icon-primary';\n button.appendChild(icon);\n }\n // Text only\n else {\n button.className += ' ui-button-text-only';\n }\n\n var el = document.createElement('span');\n el.className = 'ui-button-text';\n el.textContent = text||title||\".\";\n button.appendChild(el);\n\n button.setAttribute('title',title);\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.className = 'ui-widget-content ui-corner-all';\n el.style.padding = '1em 1.4em';\n el.style.marginBottom = '20px';\n return el;\n },\n afterInputReady: function(input) {\n if(input.controls) return;\n input.controls = this.closest(input,'.form-control');\n },\n addInputError: function(input,text) {\n if(!input.controls) return;\n if(!input.errmsg) {\n input.errmsg = document.createElement('div');\n input.errmsg.className = 'ui-state-error';\n input.controls.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.errmsg) return;\n input.errmsg.style.display = 'none';\n },\n markTabActive: function(tab) {\n tab.className = tab.className.replace(/\\s*ui-widget-header/g,'')+' ui-state-active';\n },\n markTabInactive: function(tab) {\n tab.className = tab.className.replace(/\\s*ui-state-active/g,'')+' ui-widget-header';\n }\n});\n","JSONEditor.defaults.themes.barebones = JSONEditor.AbstractTheme.extend({\n getFormInputLabel: function (text) {\n var el = this._super(text);\n return el;\n },\n getFormInputDescription: function (text) {\n var el = this._super(text);\n return el;\n },\n getIndentedPanel: function () {\n var el = this._super();\n return el;\n },\n getChildEditorHolder: function () {\n var el = this._super();\n return el;\n },\n getHeaderButtonHolder: function () {\n var el = this.getButtonHolder();\n return el;\n },\n getTable: function () {\n var el = this._super();\n return el;\n },\n addInputError: function (input, text) {\n if (!input.errmsg) {\n var group = this.closest(input, '.form-control');\n input.errmsg = document.createElement('div');\n input.errmsg.setAttribute('class', 'errmsg');\n group.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = 'block';\n }\n\n input.errmsg.innerHTML = '';\n input.errmsg.appendChild(document.createTextNode(text));\n },\n removeInputError: function (input) {\n input.style.borderColor = '';\n if (input.errmsg) input.errmsg.style.display = 'none';\n },\n getProgressBar: function () {\n var max = 100, start = 0;\n\n var progressBar = document.createElement('progress');\n progressBar.setAttribute('max', max);\n progressBar.setAttribute('value', start);\n return progressBar;\n },\n updateProgressBar: function (progressBar, progress) {\n if (!progressBar) return;\n progressBar.setAttribute('value', progress);\n },\n updateProgressBarUnknown: function (progressBar) {\n if (!progressBar) return;\n progressBar.removeAttribute('value');\n }\n});\n","JSONEditor.AbstractIconLib = Class.extend({\n mapping: {\n collapse: '',\n expand: '',\n \"delete\": '',\n edit: '',\n add: '',\n cancel: '',\n save: '',\n moveup: '',\n movedown: ''\n },\n icon_prefix: '',\n getIconClass: function(key) {\n if(this.mapping[key]) return this.icon_prefix+this.mapping[key];\n else return null;\n },\n getIcon: function(key) {\n var iconclass = this.getIconClass(key);\n \n if(!iconclass) return null;\n \n var i = document.createElement('i');\n i.className = iconclass;\n return i;\n }\n});\n","JSONEditor.defaults.iconlibs.bootstrap2 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'chevron-down',\n expand: 'chevron-up',\n \"delete\": 'trash',\n edit: 'pencil',\n add: 'plus',\n cancel: 'ban-circle',\n save: 'ok',\n moveup: 'arrow-up',\n movedown: 'arrow-down'\n },\n icon_prefix: 'icon-'\n});\n","JSONEditor.defaults.iconlibs.bootstrap3 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'chevron-down',\n expand: 'chevron-right',\n \"delete\": 'remove',\n edit: 'pencil',\n add: 'plus',\n cancel: 'floppy-remove',\n save: 'floppy-saved',\n moveup: 'arrow-up',\n movedown: 'arrow-down'\n },\n icon_prefix: 'glyphicon glyphicon-'\n});\n","JSONEditor.defaults.iconlibs.fontawesome3 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'chevron-down',\n expand: 'chevron-right',\n \"delete\": 'remove',\n edit: 'pencil',\n add: 'plus',\n cancel: 'ban-circle',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down'\n },\n icon_prefix: 'icon-'\n});\n","JSONEditor.defaults.iconlibs.fontawesome4 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'caret-square-o-down',\n expand: 'caret-square-o-right',\n \"delete\": 'times',\n edit: 'pencil',\n add: 'plus',\n cancel: 'ban',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down'\n },\n icon_prefix: 'fa fa-'\n});\n","JSONEditor.defaults.iconlibs.foundation2 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'minus',\n expand: 'plus',\n \"delete\": 'remove',\n edit: 'edit',\n add: 'add-doc',\n cancel: 'error',\n save: 'checkmark',\n moveup: 'up-arrow',\n movedown: 'down-arrow'\n },\n icon_prefix: 'foundicon-'\n});\n","JSONEditor.defaults.iconlibs.foundation3 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'minus',\n expand: 'plus',\n \"delete\": 'x',\n edit: 'pencil',\n add: 'page-add',\n cancel: 'x-circle',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down'\n },\n icon_prefix: 'fi-'\n});\n","JSONEditor.defaults.iconlibs.jqueryui = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'triangle-1-s',\n expand: 'triangle-1-e',\n \"delete\": 'trash',\n edit: 'pencil',\n add: 'plusthick',\n cancel: 'closethick',\n save: 'disk',\n moveup: 'arrowthick-1-n',\n movedown: 'arrowthick-1-s'\n },\n icon_prefix: 'ui-icon ui-icon-'\n});\n","JSONEditor.defaults.templates[\"default\"] = function() {\n return {\n compile: function(template) {\n var matches = template.match(/{{\\s*([a-zA-Z0-9\\-_ \\.]+)\\s*}}/g);\n var l = matches && matches.length;\n\n // Shortcut if the template contains no variables\n if(!l) return function() { return template; };\n\n // Pre-compute the search/replace functions\n // This drastically speeds up template execution\n var replacements = [];\n var get_replacement = function(i) {\n var p = matches[i].replace(/[{}]+/g,'').trim().split('.');\n var n = p.length;\n var func;\n \n if(n > 1) {\n var cur;\n func = function(vars) {\n cur = vars;\n for(i=0; i<n; i++) {\n cur = cur[p[i]];\n if(!cur) break;\n }\n return cur;\n };\n }\n else {\n p = p[0];\n func = function(vars) {\n return vars[p];\n };\n }\n \n replacements.push({\n s: matches[i],\n r: func\n });\n };\n for(var i=0; i<l; i++) {\n get_replacement(i);\n }\n\n // The compiled function\n return function(vars) {\n var ret = template+\"\";\n var r;\n for(i=0; i<l; i++) {\n r = replacements[i];\n ret = ret.replace(r.s, r.r(vars));\n }\n return ret;\n };\n }\n };\n};\n","JSONEditor.defaults.templates.ejs = function() {\n if(!window.EJS) return false;\n\n return {\n compile: function(template) {\n var compiled = new window.EJS({\n text: template\n });\n\n return function(context) {\n return compiled.render(context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.handlebars = function() {\n return window.Handlebars;\n};\n","JSONEditor.defaults.templates.hogan = function() {\n if(!window.Hogan) return false;\n\n return {\n compile: function(template) {\n var compiled = window.Hogan.compile(template);\n return function(context) {\n return compiled.render(context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.markup = function() {\n if(!window.Mark || !window.Mark.up) return false;\n\n return {\n compile: function(template) {\n return function(context) {\n return window.Mark.up(template,context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.mustache = function() {\n if(!window.Mustache) return false;\n\n return {\n compile: function(template) {\n return function(view) {\n return window.Mustache.render(template, view);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.swig = function() {\n return window.swig;\n};\n","JSONEditor.defaults.templates.underscore = function() {\n if(!window._) return false;\n\n return {\n compile: function(template) {\n return function(context) {\n return window._.template(template, context);\n };\n }\n };\n};\n","// Set the default theme\nJSONEditor.defaults.theme = 'html';\n\n// Set the default template engine\nJSONEditor.defaults.template = 'default';\n\n// Default options when initializing JSON Editor\nJSONEditor.defaults.options = {};\n\n// String translate function\nJSONEditor.defaults.translate = function(key, variables) {\n var lang = JSONEditor.defaults.languages[JSONEditor.defaults.language];\n if(!lang) throw \"Unknown language \"+JSONEditor.defaults.language;\n \n var string = lang[key] || JSONEditor.defaults.languages[JSONEditor.defaults.default_language][key];\n \n if(typeof string === \"undefined\") throw \"Unknown translate string \"+key;\n \n if(variables) {\n for(var i=0; i<variables.length; i++) {\n string = string.replace(new RegExp('\\\\{\\\\{'+i+'}}','g'),variables[i]);\n }\n }\n \n return string;\n};\n\n// Translation strings and default languages\nJSONEditor.defaults.default_language = 'en';\nJSONEditor.defaults.language = JSONEditor.defaults.default_language;\nJSONEditor.defaults.languages.en = {\n /**\n * When a property is not set\n */\n error_notset: \"Property must be set\",\n /**\n * When a string must not be empty\n */\n error_notempty: \"Value required\",\n /**\n * When a value is not one of the enumerated values\n */\n error_enum: \"Value must be one of the enumerated values\",\n /**\n * When a value doesn't validate any schema of a 'anyOf' combination\n */\n error_anyOf: \"Value must validate against at least one of the provided schemas\",\n /**\n * When a value doesn't validate\n * @variables This key takes one variable: The number of schemas the value does not validate\n */\n error_oneOf: 'Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.',\n /**\n * When a value does not validate a 'not' schema\n */\n error_not: \"Value must not validate against the provided schema\",\n /**\n * When a value does not match any of the provided types\n */\n error_type_union: \"Value must be one of the provided types\",\n /**\n * When a value does not match the given type\n * @variables This key takes one variable: The type the value should be of\n */\n error_type: \"Value must be of type {{0}}\",\n /**\n * When the value validates one of the disallowed types\n */\n error_disallow_union: \"Value must not be one of the provided disallowed types\",\n /**\n * When the value validates a disallowed type\n * @variables This key takes one variable: The type the value should not be of\n */\n error_disallow: \"Value must not be of type {{0}}\",\n /**\n * When a value is not a multiple of or divisible by a given number\n * @variables This key takes one variable: The number mentioned above\n */\n error_multipleOf: \"Value must be a multiple of {{0}}\",\n /**\n * When a value is greater than it's supposed to be (exclusive)\n * @variables This key takes one variable: The maximum\n */\n error_maximum_excl: \"Value must be less than {{0}}\",\n /**\n * When a value is greater than it's supposed to be (inclusive\n * @variables This key takes one variable: The maximum\n */\n error_maximum_incl: \"Value must be at most {{0}}\",\n /**\n * When a value is lesser than it's supposed to be (exclusive)\n * @variables This key takes one variable: The minimum\n */\n error_minimum_excl: \"Value must be greater than {{0}}\",\n /**\n * When a value is lesser than it's supposed to be (inclusive)\n * @variables This key takes one variable: The minimum\n */\n error_minimum_incl: \"Value must be at least {{0}}\",\n /**\n * When a value have too many characters\n * @variables This key takes one variable: The maximum character count\n */\n error_maxLength: \"Value must be at most {{0}} characters long\",\n /**\n * When a value does not have enough characters\n * @variables This key takes one variable: The minimum character count\n */\n error_minLength: \"Value must be at least {{0}} characters long\",\n /**\n * When a value does not match a given pattern\n */\n error_pattern: \"Value must match the pattern {{0}}\",\n /**\n * When an array has additional items whereas it is not supposed to\n */\n error_additionalItems: \"No additional items allowed in this array\",\n /**\n * When there are to many items in an array\n * @variables This key takes one variable: The maximum item count\n */\n error_maxItems: \"Value must have at most {{0}} items\",\n /**\n * When there are not enough items in an array\n * @variables This key takes one variable: The minimum item count\n */\n error_minItems: \"Value must have at least {{0}} items\",\n /**\n * When an array is supposed to have unique items but has duplicates\n */\n error_uniqueItems: \"Array must have unique items\",\n /**\n * When there are too many properties in an object\n * @variables This key takes one variable: The maximum property count\n */\n error_maxProperties: \"Object must have at most {{0}} properties\",\n /**\n * When there are not enough properties in an object\n * @variables This key takes one variable: The minimum property count\n */\n error_minProperties: \"Object must have at least {{0}} properties\",\n /**\n * When a required property is not defined\n * @variables This key takes one variable: The name of the missing property\n */\n error_required: \"Object is missing the required property '{{0}}'\",\n /**\n * When there is an additional property is set whereas there should be none\n * @variables This key takes one variable: The name of the additional property\n */\n error_additional_properties: \"No additional properties allowed, but property {{0}} is set\",\n /**\n * When a dependency is not resolved\n * @variables This key takes one variable: The name of the missing property for the dependency\n */\n error_dependency: \"Must have property {{0}}\",\n /**\n * Text on Delete All buttons\n */\n button_delete_all: \"All\",\n /**\n * Title on Delete All buttons\n */\n button_delete_all_title: \"Delete All\",\n /**\n * Text on Delete Last buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_last: \"Last {{0}}\",\n /**\n * Title on Delete Last buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_last_title: \"Delete Last {{0}}\",\n /**\n * Title on Add Row buttons\n * @variable This key takes one variable: The title of object to add\n */\n button_add_row_title: \"Add {{0}}\",\n /**\n * Title on Move Down buttons\n */\n button_move_down_title: \"Move down\",\n /**\n * Title on Move Up buttons\n */\n button_move_up_title: \"Move up\",\n /**\n * Title on Delete Row buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_row_title: \"Delete {{0}}\",\n /**\n * Title on Delete Row buttons, short version (no parameter with the object title)\n */\n button_delete_row_title_short: \"Delete\",\n /**\n * Title on Collapse buttons\n */\n button_collapse: \"Collapse\",\n /**\n * Title on Expand buttons\n */\n button_expand: \"Expand\"\n};\n\n// Miscellaneous Plugin Settings\nJSONEditor.plugins = {\n ace: {\n theme: ''\n },\n epiceditor: {\n\n },\n sceditor: {\n\n },\n select2: {\n \n },\n selectize: {\n }\n};\n\n// Default per-editor options\n$each(JSONEditor.defaults.editors, function(i,editor) {\n JSONEditor.defaults.editors[i].options = editor.options || {};\n});\n\n// Set the default resolvers\n// Use \"multiple\" as a fall back for everything\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(typeof schema.type !== \"string\") return \"multiple\";\n});\n// If the type is not set but properties are defined, we can infer the type is actually object\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema is a simple type\n if(!schema.type && schema.properties ) return \"object\";\n});\n// If the type is set and it's a basic type, use the primitive editor\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema is a simple type\n if(typeof schema.type === \"string\") return schema.type;\n});\n// Boolean editors\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === 'boolean') {\n // If explicitly set to 'checkbox', use that\n if(schema.format === \"checkbox\" || (schema.options && schema.options.checkbox)) {\n return \"checkbox\";\n }\n // Otherwise, default to select menu\n return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';\n }\n});\n// Use the multiple editor for schemas where the `type` is set to \"any\"\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema can be of any type\n if(schema.type === \"any\") return \"multiple\";\n});\n// Editor for base64 encoded files\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema can be of any type\n if(schema.type === \"string\" && schema.media && schema.media.binaryEncoding===\"base64\") {\n return \"base64\";\n }\n});\n// Editor for uploading files\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === \"string\" && schema.format === \"url\" && schema.options && schema.options.upload === true) {\n if(window.FileReader) return \"upload\";\n }\n});\n// Use the table editor for arrays with the format set to `table`\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // Type `array` with format set to `table`\n if(schema.type == \"array\" && schema.format == \"table\") {\n return \"table\";\n }\n});\n// Use the `select` editor for dynamic enumSource enums\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.enumSource) return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';\n});\n// Use the `enum` or `select` editors for schemas with enumerated properties\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema[\"enum\"]) {\n if(schema.type === \"array\" || schema.type === \"object\") {\n return \"enum\";\n }\n else if(schema.type === \"number\" || schema.type === \"integer\" || schema.type === \"string\") {\n return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';\n }\n }\n});\n// Specialized editors for arrays of strings\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === \"array\" && schema.items && !(Array.isArray(schema.items)) && schema.uniqueItems && ['string','number','integer'].indexOf(schema.items.type) >= 0) {\n // For enumerated strings, number, or integers\n if(schema.items.enum) {\n return 'multiselect';\n }\n // For non-enumerated strings (tag editor)\n else if(JSONEditor.plugins.selectize.enable && schema.items.type === \"string\") {\n return 'arraySelectize';\n }\n }\n});\n// Use the multiple editor for schemas with `oneOf` set\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If this schema uses `oneOf` or `anyOf`\n if(schema.oneOf || schema.anyOf) return \"multiple\";\n});\n","/**\n * This is a small wrapper for using JSON Editor like a typical jQuery plugin.\n */\n(function() {\n if(window.jQuery || window.Zepto) {\n var $ = window.jQuery || window.Zepto;\n $.jsoneditor = JSONEditor.defaults;\n \n $.fn.jsoneditor = function(options) {\n var self = this;\n var editor = this.data('jsoneditor');\n if(options === 'value') {\n if(!editor) throw \"Must initialize jsoneditor before getting/setting the value\";\n \n // Set value\n if(arguments.length > 1) {\n editor.setValue(arguments[1]);\n }\n // Get value\n else {\n return editor.getValue();\n }\n }\n else if(options === 'validate') {\n if(!editor) throw \"Must initialize jsoneditor before validating\";\n \n // Validate a specific value\n if(arguments.length > 1) {\n return editor.validate(arguments[1]);\n }\n // Validate current value\n else {\n return editor.validate();\n }\n }\n else if(options === 'destroy') {\n if(editor) {\n editor.destroy();\n this.data('jsoneditor',null);\n }\n }\n else {\n // Destroy first\n if(editor) {\n editor.destroy();\n }\n \n // Create editor\n editor = new JSONEditor(this.get(0),options);\n this.data('jsoneditor',editor);\n \n // Setup event listeners\n editor.on('change',function() {\n self.trigger('change');\n });\n editor.on('ready',function() {\n self.trigger('ready');\n });\n }\n \n return this;\n };\n }\n})();\n"," window.JSONEditor = JSONEditor;\n})();\n"]}