diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index ac0d240..950b87e 100644 --- a/dist/jsoneditor-minimalist.js +++ b/dist/jsoneditor-minimalist.js @@ -96,9 +96,9 @@ return /******/ (function(modules) { // webpackBootstrap var ace = __webpack_require__(1); // may be undefined in case of minimalist bundle var VanillaPicker = __webpack_require__(5); // may be undefined in case of minimalist bundle - var treemode = __webpack_require__(7); - var textmode = __webpack_require__(29); - var util = __webpack_require__(13); + var treemode = __webpack_require__(6); + var textmode = __webpack_require__(28); + var util = __webpack_require__(12); /** * @constructor JSONEditor @@ -1428,7 +1428,7 @@ return /******/ (function(modules) { // webpackBootstrap // Note that we load the ES5 distribution bundle // instead of the "default" as the default currently // points to `src/picker.js` which is ES6 code (v2.3.0). - VanillaPicker = __webpack_require__(6); + VanillaPicker = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"vanilla-picker/dist/vanilla-picker\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())); } catch (err) { // probably running the minimalist bundle @@ -1440,1030 +1440,25 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 6 */ -/***/ function(module, exports, __webpack_require__) { - - /*! - * vanilla-picker v2.3.0 - * https://github.com/Sphinxxxx/vanilla-picker - * - * Copyright 2017-2018 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate) - * Released under the ISC license. - */ - (function (global, factory) { - true ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.Picker = factory()); - }(this, (function () { 'use strict'; - - var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - - var createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - var slicedToArray = function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (Symbol.iterator in Object(arr)) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; - }(); - - String.prototype.startsWith = String.prototype.startsWith || function (needle) { - return this.indexOf(needle) === 0; - }; - String.prototype.padStart = String.prototype.padStart || function (len, pad) { - var str = this;while (str.length < len) { - str = pad + str; - }return str; - }; - - var colorNames = '735AACA770//Xub218Pj/mo5+uvX6mdAP//gtpf//Ur258P//q1d9fXcxop/+TEq9zAAAAqfg/+vN6m1AAD/ngoiiviqt6pSoqzyo3riHxvdX56grk1f/8Aax10mkeqts/39QxbtZJXttkb//jcyxm3BQ86rmAP//wl5AACLwqqAIuL3y8uIYLwv1qampniqAGQAns5vbdrmohiwCLw5uVWsvsdd/4wAsegmTLMqagiwAAsqi6ZZ6uz6j7yPxtzSD2Lxk3L09PudbAM7RwsolADT0kz/xSTfuhAL//vfhaWlpyuxHpD/43rsiIiwn9//rw39uIosi9bp/wD/6w73Nzc9s5+Pj/6v8/9cA3b42qUg6vxgICArmaAIAAtdfrf8vf9n8P/wek3/2m0xnczVxc3bvSwCCsdt///wrvp8OaMs5i5ub6iyk//D1e8ifPwAoui//rNpyxrdjmw9c8ICAq4i4P//mx9+vrSq8t09PTx1ukO6Qqlv/7bBuuy/6B690uILKqpfdh876sd9d4iZnehsMTe0dv///g71lAP8A4nmMs0ys9u+vDmg9d/wD/4pmgAAAcurZs2qzllAADN4lkulXT6txk3Db66qPLNxozre2juokuAPqalj3SNHMgdkxxWF60pGRlwxfl9f/6hr5/+Thx6q/+S1m85/96tutd/fXmszxgIAAe4ma44j8rl/6UAmu0/0UA8so2nDWji87uiqumqmPuY9xbr+7u4rs23CTsb8/+/V95a/9q577xzYU/78z/8DL7b53aDdsu1sODmb11gACAy5nZjOZ1so/wAAlvevI+Pn09QWnhm7ui0UT94q+oBy7ei9KRg5aqLotXad5oFItasmwMDAaihh87r9fdalrN9p9cICQ7gz//r6k5uAP9/4qhRoK01te0rSM7cwAICA91x2L/Yclr/2NHcw1QODQd6w7oLuua09d6zudh////t359fX1enn//8Ao0ims0y'; - var colorNamesDeser = void 0; - - var Color = function () { - function Color(r, g, b, a) { - classCallCheck(this, Color); - - - var that = this; - function parseString(input) { - - if (input.startsWith('hsl')) { - var _input$match$map = input.match(/([\-\d\.e]+)/g).map(Number), - _input$match$map2 = slicedToArray(_input$match$map, 4), - h = _input$match$map2[0], - s = _input$match$map2[1], - l = _input$match$map2[2], - _a = _input$match$map2[3]; - - if (_a === undefined) { - _a = 1; - } - - h /= 360; - s /= 100; - l /= 100; - that.hsla = [h, s, l, _a]; - } - - else if (input.startsWith('rgb')) { - var _input$match$map3 = input.match(/([\-\d\.e]+)/g).map(Number), - _input$match$map4 = slicedToArray(_input$match$map3, 4), - _r = _input$match$map4[0], - _g = _input$match$map4[1], - _b = _input$match$map4[2], - _a2 = _input$match$map4[3]; - - if (_a2 === undefined) { - _a2 = 1; - } - - that.rgba = [_r, _g, _b, _a2]; - } - - else { - if (input.startsWith('#')) { - that.rgba = Color.hexToRgb(input); - } else { - that.rgba = Color.nameToRgb(input) || Color.hexToRgb(input); - } - } - } - - if (r === undefined) ; - - - else if (Array.isArray(r)) { - this.rgba = r; - } - - else if (b === undefined) { - var color = r && ('' + r).trim(); - if (color) { - parseString(color.toLowerCase()); - } - } else { - this.rgba = [r, g, b, a === undefined ? 1 : a]; - } - } - - - createClass(Color, [{ - key: 'rgba', - get: function get$$1() { - if (this._rgba) { - return this._rgba; - } - if (!this._hsla) { - throw new Error('No color is set'); - } - - return this._rgba = Color.hslToRgb(this._hsla); - }, - set: function set$$1(rgb) { - if (rgb.length === 3) { - rgb[3] = 1; - } - - this._rgba = rgb; - this._hsla = null; - } - - - }, { - key: 'rgbString', - get: function get$$1() { - return 'rgb(' + this.rgba.slice(0, 3) + ')'; - } - }, { - key: 'rgbaString', - get: function get$$1() { - return 'rgba(' + this.rgba + ')'; - } - }, { - key: 'hsla', - get: function get$$1() { - if (this._hsla) { - return this._hsla; - } - if (!this._rgba) { - throw new Error('No color is set'); - } - - return this._hsla = Color.rgbToHsl(this._rgba); - }, - set: function set$$1(hsl) { - if (hsl.length === 3) { - hsl[3] = 1; - } - - this._hsla = hsl; - this._rgba = null; - } - - - }, { - key: 'hslString', - get: function get$$1() { - var c = this.hsla; - return 'hsl(' + c[0] * 360 + ',' + c[1] * 100 + '%,' + c[2] * 100 + '%)'; - } - }, { - key: 'hslaString', - get: function get$$1() { - var c = this.hsla; - return 'hsla(' + c[0] * 360 + ',' + c[1] * 100 + '%,' + c[2] * 100 + '%,' + c[3] + ')'; - } - }, { - key: 'hex', - get: function get$$1() { - var rgb = this.rgba, - hex = rgb.map(function (x, i) { - return i < 3 ? x.toString(16) : Math.round(x * 255).toString(16); - }); - - return '#' + hex.map(function (x) { - return x.padStart(2, '0'); - }).join(''); - }, - set: function set$$1(hex) { - this.rgba = Color.hexToRgb(hex); - } - - - - }], [{ - key: 'hexToRgb', - value: function hexToRgb(input) { - var hex = (input.startsWith('#') ? input.slice(1) : input).replace(/^(\w{3})$/, '$1F') - .replace(/^(\w)(\w)(\w)(\w)$/, '$1$1$2$2$3$3$4$4') - .replace(/^(\w{6})$/, '$1FF'); - - if (!hex.match(/^([0-9a-fA-F]{8})$/)) { - throw new Error('Unknown hex color; ' + input); - } - - var rgba = hex.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1) - .map(function (x) { - return parseInt(x, 16); - }); - - rgba[3] = rgba[3] / 255; - return rgba; - } - - - }, { - key: 'nameToRgb', - value: function nameToRgb(input) { - - if (!colorNamesDeser) { - colorNamesDeser = {}; - colorNames.match(/.{7}/g).forEach(function (x) { - return colorNamesDeser[x.slice(0, 3)] = atob(x.slice(-4)).split('').map(function (b) { - return b.charCodeAt(0); - }); - }); - } - var hash = [].reduce.call(input.replace('ey', 'ay'), function (h, c) { - return (h << 2) + c.charCodeAt(0); - }, 0).toString(36).slice(-3); - - return colorNamesDeser[hash]; - } - - - }, { - key: 'rgbToHsl', - value: function rgbToHsl(_ref) { - var _ref2 = slicedToArray(_ref, 4), - r = _ref2[0], - g = _ref2[1], - b = _ref2[2], - a = _ref2[3]; - - r /= 255; - g /= 255; - b /= 255; - - var max = Math.max(r, g, b), - min = Math.min(r, g, b); - var h = void 0, - s = void 0, - l = (max + min) / 2; - - if (max === min) { - h = s = 0; - } else { - var d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0);break; - case g: - h = (b - r) / d + 2;break; - case b: - h = (r - g) / d + 4;break; - } - - h /= 6; - } - - return [h, s, l, a]; - } - - - }, { - key: 'hslToRgb', - value: function hslToRgb(_ref3) { - var _ref4 = slicedToArray(_ref3, 4), - h = _ref4[0], - s = _ref4[1], - l = _ref4[2], - a = _ref4[3]; - - var r = void 0, - g = void 0, - b = void 0; - - if (s === 0) { - r = g = b = l; - } else { - var hue2rgb = function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - }; - - var q = l < 0.5 ? l * (1 + s) : l + s - l * s, - p = 2 * l - q; - - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } - - var rgba = [r * 255, g * 255, b * 255].map(Math.round); - rgba[3] = a; - - return rgba; - } - }]); - return Color; - }(); - - var root = window; - - function dragTracker(options) { - - - var ep = Element.prototype; - if (!ep.matches) ep.matches = ep.msMatchesSelector || ep.webkitMatchesSelector; - if (!ep.closest) ep.closest = function (s) { - var node = this; - do { - if (node.matches(s)) return node; - node = node.tagName === 'svg' ? node.parentNode : node.parentElement; - } while (node); - - return null; - }; - - options = options || {}; - var container = options.container || document.documentElement, - selector = options.selector, - callback = options.callback || console.log, - callbackStart = options.callbackDragStart, - callbackEnd = options.callbackDragEnd, - - callbackClick = options.callbackClick, - propagate = options.propagateEvents, - roundCoords = options.roundCoords !== false, - dragOutside = options.dragOutside !== false, - - handleOffset = options.handleOffset || options.handleOffset !== false; - var offsetToCenter = null; - switch (handleOffset) { - case 'center': - offsetToCenter = true;break; - case 'topleft': - case 'top-left': - offsetToCenter = false;break; - } - - var dragState = void 0; - - function getMousePos(e, elm, offset, stayWithin) { - var x = e.clientX, - y = e.clientY; - - function respectBounds(value, min, max) { - return Math.max(min, Math.min(value, max)); - } - - if (elm) { - var bounds = elm.getBoundingClientRect(); - x -= bounds.left; - y -= bounds.top; - - if (offset) { - x -= offset[0]; - y -= offset[1]; - } - if (stayWithin) { - x = respectBounds(x, 0, bounds.width); - y = respectBounds(y, 0, bounds.height); - } - - if (elm !== container) { - var center = offsetToCenter !== null ? offsetToCenter - : elm.nodeName === 'circle' || elm.nodeName === 'ellipse'; - - if (center) { - x -= bounds.width / 2; - y -= bounds.height / 2; - } - } - } - return roundCoords ? [Math.round(x), Math.round(y)] : [x, y]; - } - - function stopEvent(e) { - e.preventDefault(); - if (!propagate) { - e.stopPropagation(); - } - } - - function onDown(e) { - var target = void 0; - if (selector) { - target = selector instanceof Element ? selector.contains(e.target) ? selector : null : e.target.closest(selector); - } else { - target = {}; - } - - if (target) { - stopEvent(e); - - var mouseOffset = selector && handleOffset ? getMousePos(e, target) : [0, 0], - startPos = getMousePos(e, container, mouseOffset); - dragState = { - target: target, - mouseOffset: mouseOffset, - startPos: startPos, - actuallyDragged: false - }; - - if (callbackStart) { - callbackStart(target, startPos); - } - } - } - - function onMove(e) { - if (!dragState) { - return; - } - stopEvent(e); - - var start = dragState.startPos, - pos = getMousePos(e, container, dragState.mouseOffset, !dragOutside); - - dragState.actuallyDragged = dragState.actuallyDragged || start[0] !== pos[0] || start[1] !== pos[1]; - - callback(dragState.target, pos, start); - } - - function onEnd(e, cancelled) { - if (!dragState) { - return; - } - - if (callbackEnd || callbackClick) { - var isClick = !dragState.actuallyDragged, - pos = isClick ? dragState.startPos : getMousePos(e, container, dragState.mouseOffset, !dragOutside); - - if (callbackClick && isClick && !cancelled) { - callbackClick(dragState.target, pos); - } - if (callbackEnd) { - callbackEnd(dragState.target, pos, dragState.startPos, cancelled || isClick && callbackClick); - } - } - dragState = null; - } - - - addEvent(container, 'mousedown', function (e) { - if (isLeftButton(e)) { - onDown(e); - } else { - onEnd(e, true); - } - }); - addEvent(container, 'touchstart', function (e) { - return relayTouch(e, onDown); - }); - - addEvent(root, 'mousemove', function (e) { - if (!dragState) { - return; - } - - if (isLeftButton(e)) { - onMove(e); - } - else { - onEnd(e); - } - }); - addEvent(root, 'touchmove', function (e) { - return relayTouch(e, onMove); - }); - - addEvent(container, 'mouseup', function (e) { - if (dragState && !isLeftButton(e)) { - onEnd(e); - } - }); - function onTouchEnd(e, cancelled) { - onEnd(tweakTouch(e), cancelled); - } - addEvent(container, 'touchend', function (e) { - return onTouchEnd(e); - }); - addEvent(container, 'touchcancel', function (e) { - return onTouchEnd(e, true); - }); - - function addEvent(target, type, handler) { - target.addEventListener(type, handler); - } - function isLeftButton(e) { - return e.buttons !== undefined ? e.buttons === 1 : - e.which === 1; - } - function relayTouch(e, handler) { - if (e.touches.length !== 1) { - onEnd(e, true);return; - } - - handler(tweakTouch(e)); - } - function tweakTouch(e) { - var touch = e.targetTouches[0]; - if (!touch) { - touch = e.changedTouches[0]; - } - - touch.preventDefault = e.preventDefault.bind(e); - touch.stopPropagation = e.stopPropagation.bind(e); - return touch; - } - } - - - function parseHTML(htmlString) { - var div = document.createElement('div'); - div.innerHTML = htmlString; - return div.firstElementChild; - } - - function addEvent(target, type, handler) { - target.addEventListener(type, handler, false); - } - - var BG_TRANSP = 'url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'2\' height=\'2\'%3E%3Cpath d=\'M1,0H0V1H2V2H1\' fill=\'lightgrey\'/%3E%3C/svg%3E")'; - var HUES = 360; - - document.documentElement.firstElementChild - .appendChild(document.createElement('style')).textContent = '.picker_wrapper.no_alpha .picker_alpha,.picker_wrapper.no_editor .picker_editor{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:\'\';display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:\'\';display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6rem}.layout_default .picker_editor input{width:calc(100% + 2px);height:calc(100% + 2px)}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;cursor:default;font-family:sans-serif;pointer-events:auto}.picker_wrapper button,.picker_wrapper input{margin:-1px}.picker_selector{position:absolute;z-index:1;display:block;transform:translate(-50%, -50%);border:2px solid white;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255,255,255,0) 50%),linear-gradient(0deg, black, rgba(0,0,0,0) 50%),linear-gradient(90deg, gray, rgba(128,128,128,0))}.picker_alpha,.picker_sample{position:relative;background:url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'2\' height=\'2\'%3E%3Cpath d=\'M1,0H0V1H2V2H1\' fill=\'lightgrey\'/%3E%3C/svg%3E") left top/contain white;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{box-sizing:border-box;font-family:monospace;padding:.1em .2em}.picker_sample::before{content:\'\';position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_done button{box-sizing:border-box;padding:.2em .5em;cursor:pointer}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,0.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;transform:skew(45deg);transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}'; - - var Picker = function () { - - function Picker(options) { - classCallCheck(this, Picker); - - - this.settings = { - popup: 'right', - layout: 'default', - alpha: true, - editor: true - }; - - this.setOptions(options); - } - - - - createClass(Picker, [{ - key: 'setOptions', - value: function setOptions(options) { - var _this = this; - - if (!options) { - return; - } - var settings = this.settings; - - function transfer(source, target, skipKeys) { - for (var key in source) { - if (skipKeys && skipKeys.indexOf(key) >= 0) { - continue; - } - - target[key] = source[key]; - } - } - - if (options instanceof HTMLElement) { - settings.parent = options; - } else { - - transfer(options, settings ); - } - - if (options.onChange) { - this.onChange = options.onChange; - } - if (options.onDone) { - this.onDone = options.onDone; - } - if (options.onOpen) { - this.onOpen = options.onOpen; - } - if (options.onClose) { - this.onClose = options.onClose; - } - - var col = options.color || options.colour; - if (col) { - this._setColor(col); - } - - if (settings.parent && settings.popup && !this._popupInited) { - - addEvent(settings.parent, 'click', function (e) { - return _this.openHandler(e); - }); - - - this._popupInited = true; - } else if (options.parent && !settings.popup) { - this.show(); - } - } - - - }, { - key: 'openHandler', - value: function openHandler(e) { - if (this.show()) { - this.settings.parent.style.pointerEvents = 'none'; - - if (this.onOpen) { - this.onOpen(this.colour); - } - } - } - - - }, { - key: 'closeHandler', - value: function closeHandler(e) { - var doHide = false; - - if (e.type === 'mousedown') { - if (!this.domElement.contains(e.target)) { - doHide = true; - } - } - else { - e.preventDefault(); - e.stopPropagation(); - - doHide = true; - } - - if (doHide && this.hide()) { - this.settings.parent.style.pointerEvents = ''; - - if (this.onClose) { - this.onClose(this.colour); - } - } - } - - - }, { - key: 'setColor', - value: function setColor(color) { - this._setColor(color); - } - }, { - key: '_setColor', - value: function _setColor(color, fromEditor) { - var c = new Color(color); - if (!this.settings.alpha) { - var hsla = c.hsla; - hsla[3] = 1; - c.hsla = hsla; - } - this.colour = this.color = c; - this._setHSLA(null, null, null, null, fromEditor); - } - - }, { - key: 'setColour', - value: function setColour(colour) { - this.setColor(colour); - } - - - }, { - key: 'show', - value: function show() { - var parent = this.settings.parent; - if (!parent) { - return false; - } - - if (this.domElement) { - var toggled = this._toggleDOM(true); - - this._setPosition(); - - return toggled; - } - - var html = this.settings.template || '
'; - var wrapper = parseHTML(html); - - this.domElement = wrapper; - this._domH = wrapper.querySelector('.picker_hue'); - this._domSL = wrapper.querySelector('.picker_sl'); - this._domA = wrapper.querySelector('.picker_alpha'); - this._domEdit = wrapper.querySelector('.picker_editor input'); - this._domSample = wrapper.querySelector('.picker_sample'); - this._domOkay = wrapper.querySelector('.picker_done button'); - - wrapper.classList.add('layout_' + this.settings.layout); - if (!this.settings.alpha) { - wrapper.classList.add('no_alpha'); - } - if (!this.settings.editor) { - wrapper.classList.add('no_editor'); - } - this._ifPopup(function () { - return wrapper.classList.add('popup'); - }); - - this._setPosition(); - - if (this.colour) { - this._updateUI(); - } else { - this._setColor('#0cf'); - } - this._bindEvents(); - - return true; - } - - - }, { - key: 'hide', - value: function hide() { - return this._toggleDOM(false); - } - - - }, { - key: '_bindEvents', - value: function _bindEvents() { - var _this2 = this; - - var that = this; - - - function createDragConfig(container, callbackRelative) { - - function relayDrag(_, pos) { - var relX = pos[0] / container.clientWidth, - relY = pos[1] / container.clientHeight; - callbackRelative(relX, relY); - } - - var config = { - container: container, - dragOutside: false, - callback: relayDrag, - callbackClick: relayDrag, - callbackDragStart: relayDrag, - propagateEvents: true - }; - return config; - } - - dragTracker(createDragConfig(this._domH, function (x, y) { - return that._setHSLA(x); - })); - - dragTracker(createDragConfig(this._domSL, function (x, y) { - return that._setHSLA(null, x, 1 - y); - })); - - if (this.settings.alpha) { - dragTracker(createDragConfig(this._domA, function (x, y) { - return that._setHSLA(null, null, null, 1 - y); - })); - } - - - if (this.settings.editor) { - addEvent(this._domEdit, 'input', function (e) { - var color = this.value; - try { - new Color(this.value); - - that._setColor(color, true); - } catch (ex) {} - }); - } - - - addEvent(window, 'mousedown', function (e) { - return _this2._ifPopup(function () { - return _this2.closeHandler(e); - }); - }); - - addEvent(this._domOkay, 'click', function (e) { - _this2._ifPopup(function () { - return _this2.closeHandler(e); - }); - - if (_this2.onDone) { - _this2.onDone(_this2.colour); - } - }); - } - - - }, { - key: '_setPosition', - value: function _setPosition() { - var parent = this.settings.parent, - elm = this.domElement; - - if (parent !== elm.parentNode) { - parent.appendChild(elm); - } - - this._ifPopup(function (popup) { - - if (getComputedStyle(parent).position === 'static') { - parent.style.position = 'relative'; - } - - var cssClass = popup === true ? 'popup_right' : 'popup_' + popup; - - ['popup_top', 'popup_bottom', 'popup_left', 'popup_right'].forEach(function (c) { - if (c === cssClass) { - elm.classList.add(c); - } else { - elm.classList.remove(c); - } - }); - - elm.classList.add(cssClass); - }); - } - - - }, { - key: '_setHSLA', - value: function _setHSLA(h, s, l, a, fromEditor) { - var col = this.colour; - - var hsla = col.hsla; - [h, s, l, a].forEach(function (x, i) { - if (x || x === 0) { - hsla[i] = x; - } - }); - col.hsla = hsla; - - this._updateUI(fromEditor); - - if (this.onChange) { - this.onChange(col); - } - } - }, { - key: '_updateUI', - value: function _updateUI(fromEditor) { - if (!this.domElement) { - return; - } - - var col = this.colour, - hsl = col.hsla, - cssHue = 'hsl(' + hsl[0] * HUES + ', 100%, 50%)', - cssHSL = col.hslString, - cssHSLA = col.hslaString; - - var uiH = this._domH, - uiSL = this._domSL, - uiA = this._domA; - - function posX(parent, child, relX) { - child.style.left = relX * 100 + '%'; - } - function posY(parent, child, relY) { - child.style.top = relY * 100 + '%'; - } - - - posX(uiH, uiH.firstElementChild, hsl[0]); - - this._domSL.style.backgroundColor = this._domH.style.color = cssHue; - - - posX(uiSL, uiSL.firstElementChild, hsl[1]); - posY(uiSL, uiSL.firstElementChild, 1 - hsl[2]); - - uiSL.style.color = cssHSL; - - - posY(uiA, uiA.firstElementChild, 1 - hsl[3]); - - var opaque = cssHSL, - transp = opaque.replace('hsl', 'hsla').replace(')', ', 0)'), - bg = 'linear-gradient(' + [opaque, transp] + ')'; - - this._domA.style.backgroundImage = bg + ', ' + BG_TRANSP; - - - if (!fromEditor) { - var hex = col.hex; - this._domEdit.value = this.settings.alpha ? hex : hex.substr(0, 7); - } - - - this._domSample.style.color = cssHSLA; - } - }, { - key: '_ifPopup', - value: function _ifPopup(actionIf, actionElse) { - if (this.settings.parent && this.settings.popup) { - actionIf && actionIf(this.settings.popup); - } else { - actionElse && actionElse(); - } - } - }, { - key: '_toggleDOM', - value: function _toggleDOM(toVisible) { - var dom = this.domElement; - if (!dom) { - return false; - } - - var displayStyle = toVisible ? '' : 'none', - toggle = dom.style.display !== displayStyle; - - if (toggle) { - dom.style.display = displayStyle; - } - return toggle; - } - - - }]); - return Picker; - }(); - - return Picker; - - }))); - - -/***/ }, -/* 7 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var VanillaPicker = __webpack_require__(5); - var Highlighter = __webpack_require__(8); - var History = __webpack_require__(9); - var SearchBox = __webpack_require__(10); - var ContextMenu = __webpack_require__(11); - var TreePath = __webpack_require__(17); - var Node = __webpack_require__(18); - var ModeSwitcher = __webpack_require__(27); - var util = __webpack_require__(13); - var autocomplete = __webpack_require__(28); - var showSortModal = __webpack_require__(23); - var showTransformModal = __webpack_require__(25); - var translate = __webpack_require__(16).translate; - var setLanguages = __webpack_require__(16).setLanguages; - var setLanguage = __webpack_require__(16).setLanguage; + var Highlighter = __webpack_require__(7); + var History = __webpack_require__(8); + var SearchBox = __webpack_require__(9); + var ContextMenu = __webpack_require__(10); + var TreePath = __webpack_require__(16); + var Node = __webpack_require__(17); + var ModeSwitcher = __webpack_require__(26); + var util = __webpack_require__(12); + var autocomplete = __webpack_require__(27); + var showSortModal = __webpack_require__(22); + var showTransformModal = __webpack_require__(24); + var translate = __webpack_require__(15).translate; + var setLanguages = __webpack_require__(15).setLanguages; + var setLanguage = __webpack_require__(15).setLanguage; var DEFAULT_MODAL_ANCHOR = document.body; // TODO: this constant is defined twice @@ -4241,7 +3236,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 8 */ +/* 7 */ /***/ function(module, exports) { 'use strict'; @@ -4333,7 +3328,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 9 */ +/* 8 */ /***/ function(module, exports) { 'use strict'; @@ -4670,7 +3665,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 10 */ +/* 9 */ /***/ function(module, exports) { 'use strict'; @@ -5029,14 +4024,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 11 */ +/* 10 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var createAbsoluteAnchor = __webpack_require__(12).createAbsoluteAnchor; - var util = __webpack_require__(13); - var translate = __webpack_require__(16).translate; + var createAbsoluteAnchor = __webpack_require__(11).createAbsoluteAnchor; + var util = __webpack_require__(12); + var translate = __webpack_require__(15).translate; /** * A context menu @@ -5472,10 +4467,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 12 */ +/* 11 */ /***/ function(module, exports, __webpack_require__) { - var util = __webpack_require__(13); + var util = __webpack_require__(12); /** * Create an anchor element absolutely positioned in the `parent` @@ -5557,13 +4552,13 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 13 */ +/* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var jsonlint = __webpack_require__(14); - var jsonMap = __webpack_require__(15); + var jsonlint = __webpack_require__(13); + var jsonMap = __webpack_require__(14); /** * Parse JSON using the parser built-in in the browser. @@ -6625,7 +5620,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 14 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { /* Jison generated parser */ @@ -7048,7 +6043,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 15 */ +/* 14 */ /***/ function(module, exports) { 'use strict'; @@ -7464,7 +6459,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 16 */ +/* 15 */ /***/ function(module, exports) { 'use strict'; @@ -7698,13 +6693,13 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 17 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ContextMenu = __webpack_require__(11); - var translate = __webpack_require__(16).translate; + var ContextMenu = __webpack_require__(10); + var translate = __webpack_require__(15).translate; /** * Creates a component that visualize path selection in tree based editors @@ -7813,21 +6808,21 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TreePath; /***/ }, -/* 18 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var jmespath = __webpack_require__(19); - var naturalSort = __webpack_require__(20); - var createAbsoluteAnchor = __webpack_require__(12).createAbsoluteAnchor; - var ContextMenu = __webpack_require__(11); - var appendNodeFactory = __webpack_require__(21); - var showMoreNodeFactory = __webpack_require__(22); - var showSortModal = __webpack_require__(23); - var showTransformModal = __webpack_require__(25); - var util = __webpack_require__(13); - var translate = __webpack_require__(16).translate; + var jmespath = __webpack_require__(18); + var naturalSort = __webpack_require__(19); + var createAbsoluteAnchor = __webpack_require__(11).createAbsoluteAnchor; + var ContextMenu = __webpack_require__(10); + var appendNodeFactory = __webpack_require__(20); + var showMoreNodeFactory = __webpack_require__(21); + var showSortModal = __webpack_require__(22); + var showTransformModal = __webpack_require__(24); + var util = __webpack_require__(12); + var translate = __webpack_require__(15).translate; var DEFAULT_MODAL_ANCHOR = document.body; // TODO: this constant is defined twice @@ -12297,7 +11292,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 19 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { (function(exports) { @@ -13970,7 +12965,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 20 */ +/* 19 */ /***/ function(module, exports) { /* @@ -14021,14 +13016,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 21 */ +/* 20 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var util = __webpack_require__(13); - var ContextMenu = __webpack_require__(11); - var translate = __webpack_require__(16).translate; + var util = __webpack_require__(12); + var ContextMenu = __webpack_require__(10); + var translate = __webpack_require__(15).translate; /** * A factory function to create an AppendNode, which depends on a Node @@ -14276,12 +13271,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 22 */ +/* 21 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var translate = __webpack_require__(16).translate; + var translate = __webpack_require__(15).translate; /** * A factory function to create an ShowMoreNode, which depends on a Node @@ -14437,11 +13432,11 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 23 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { - var picoModal = __webpack_require__(24); - var translate = __webpack_require__(16).translate; + var picoModal = __webpack_require__(23); + var translate = __webpack_require__(15).translate; /** * Show advanced sorting modal @@ -14557,7 +13552,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 24 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** @@ -15166,14 +14161,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 25 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { - var jmespath = __webpack_require__(19); - var picoModal = __webpack_require__(24); - var Selectr = __webpack_require__(26); - var translate = __webpack_require__(16).translate; - var debounce = __webpack_require__(13).debounce; + var jmespath = __webpack_require__(18); + var picoModal = __webpack_require__(23); + var Selectr = __webpack_require__(25); + var translate = __webpack_require__(15).translate; + var debounce = __webpack_require__(12).debounce; var MAX_PREVIEW_LINES = 100; @@ -15473,7 +14468,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 26 */ +/* 25 */ /***/ function(module, exports) { /*! @@ -17652,12 +16647,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 27 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ContextMenu = __webpack_require__(11); + var ContextMenu = __webpack_require__(10); /** * Create a select box to be used in the editor menu's, which allows to switch mode @@ -17773,7 +16768,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 28 */ +/* 27 */ /***/ function(module, exports) { 'use strict'; @@ -18160,14 +17155,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 29 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var ace = __webpack_require__(1); - var ModeSwitcher = __webpack_require__(27); - var util = __webpack_require__(13); + var ModeSwitcher = __webpack_require__(26); + var util = __webpack_require__(12); // create a mixin with the functions for text mode var textmode = {}; @@ -18238,7 +17233,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(30); + __webpack_require__(29); } catch (err) { console.error(err); @@ -19254,7 +18249,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 30 */ +/* 29 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index fa4e907..1a8141e 100644 --- a/dist/jsoneditor-minimalist.map +++ b/dist/jsoneditor-minimalist.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","onChangeJSON","mode","modes","indexOf","Object","keys","forEach","option","VALID_OPTIONS","arguments","length","_create","Ajv","e","code","err","ace","VanillaPicker","treemode","textmode","prototype","DEBOUNCE_INTERVAL","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","create","data","extend","oldMode","config","asText","clear","mixin","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","window","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","start","token","regex","next","string","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","line","input","test","autoOutdent","doc","row","getLine","match","column","openBracePos","findMatchingBracket","indent","$getIndent","replace","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","source","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","index","openingBracketBlock","range","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","subRange","re","depth","exec","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","state","tab","createWorker","worker","attachToDocument","getDocument","on","setAnnotations","clearAnnotations","$id","src","dom","lang","event","HashHandler","keyUtil","importCssString","html","SearchBox","editor","showReplaceForm","div","createElement","innerHTML","element","firstChild","setSession","bind","$init","setEditor","searchBox","renderer","scroller","appendChild","searchRange","$syncOptions","$initElements","sb","querySelector","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","setTimeout","activeInput","focus","stopPropagation","t","target","srcElement","action","getAttribute","$searchBarKb","commands","addCommandKeyListener","hashId","keyCode","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","value","highlight","$closeSearchBarKb","bindKey","hide","bindKeys","Ctrl-f|Command-f","isReplace","style","display","checked","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","updateCounter","all","before","getTextRange","getValue","offset","positionToIndex","selection","anchor","last","lastIndex","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","show","select","addKeyboardHandler","isFocused","el","document","activeElement","Search","Picker","global","dragTracker","getMousePos","elm","stayWithin","respectBounds","min","max","Math","x","clientX","y","clientY","bounds","getBoundingClientRect","left","top","width","height","offsetToCenter","nodeName","roundCoords","round","preventDefault","propagate","onDown","selector","Element","contains","closest","mouseOffset","handleOffset","startPos","dragState","actuallyDragged","callbackStart","onMove","pos","dragOutside","callback","onEnd","cancelled","callbackEnd","callbackClick","isClick","onTouchEnd","tweakTouch","addEvent","type","handler","addEventListener","isLeftButton","undefined","buttons","which","relayTouch","touches","touch","targetTouches","changedTouches","ep","matches","msMatchesSelector","webkitMatchesSelector","s","node","tagName","parentNode","parentElement","documentElement","log","callbackDragStart","callbackDragEnd","propagateEvents","parseHTML","htmlString","firstElementChild","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","done","push","Array","String","startsWith","needle","padStart","len","pad","str","colorNames","colorNamesDeser","Color","r","g","b","a","that","rgba","color","trim","_input$match$map","map","Number","_input$match$map2","h","l","_a","hsla","_input$match$map3","_input$match$map4","_r","_g","_b","_a2","hexToRgb","nameToRgb","toLowerCase","_rgba","_hsla","hslToRgb","rgb","slice","rgbToHsl","hsl","toString","join","hex","parseInt","atob","split","charCodeAt","hash","reduce","_ref","_ref2","d","_ref3","_ref4","hue2rgb","q","settings","popup","layout","alpha","setOptions","HTMLElement","parent","skipKeys","onDone","onOpen","onClose","col","colour","_setColor","_popupInited","openHandler","pointerEvents","doHide","domElement","fromEditor","_setHSLA","setColor","toggled","_toggleDOM","_setPosition","template","wrapper","_domH","_domSL","_domA","_domEdit","_domSample","_domOkay","classList","add","_ifPopup","_updateUI","_bindEvents","createDragConfig","callbackRelative","relayDrag","_","relX","clientWidth","relY","clientHeight","_this2","ex","closeHandler","getComputedStyle","position","cssClass","remove","posX","child","posY","cssHue","cssHSL","hslString","cssHSLA","hslaString","uiH","uiSL","uiA","backgroundColor","opaque","transp","bg","backgroundImage","substr","actionIf","actionElse","toVisible","displayStyle","toggle","Highlighter","History","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","showSortModal","showTransformModal","translate","setLanguages","setLanguage","DEFAULT_MODAL_ANCHOR","body","highlighter","multiselection","nodes","validationSequence","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","removeChild","_debouncedValidate","modeSwitcher","navigationBar","onSelectionChange","colorPicker","onColorPicker","timestampTag","onEvent","hasOwnProperty","debounce","languages","language","Function","content","table","params","field","_setRoot","expand","update","deepEqual","getSelection","onChangeDisabled","isEmpty","forceSearch","startNode","findNodeByPath","path","endNode","setSelection","getNodeFromTarget","blur","sanitizedJsonText","sanitize","updateText","updateField","scrollableContent","menu","treePath","reset","tbody","getDom","text","results","expandAll","collapseAll","collapse","_onAction","_onChange","onChangeText","duplicateErrors","schemaErrors","errors","improveSchemaError","findNode","dataPath","filter","entry","me","seq","_validateCustom","then","customValidationErrors","concat","_renderValidationErrors","catch","setError","parentPairs","findParents","some","pair","message","onValidate","customValidateResults","isPromise","Promise","resolve","customValidationPathErrors","valid","isValidValidationError","reject","updateDom","recurse","startAutoScroll","mouseY","getAbsoluteTop","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","paths","findNodeByInternalPath","domName","assign","setSelectionOffset","getDomSelection","getSelectionOffset","getInternalPath","scrollTo","animateTimeout","animateCallback","finalScrollTop","animate","diff","abs","_onEvent","className","onclick","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","onfocusin","onfocusout","title","sort","modalAnchor","transform","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","targetIsColorPicker","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","removeClassName","pathObjs","pathObj","children","childs","childNode","setPath","addClassName","expandTo","selectionObj","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","mousemove","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","first","expandPathToNode","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","keynum","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","jsonElementType","hnode","innerText","result","getOptions","getPath","hideDropDown","startFrom","contentOuter","colgroupContent","items","click","onDuplicate","onRemove","close","selection1","selection2","serialize","_getNodeInstancesByRange","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","parentPath","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","beforeNode","beforePath","insertBefore","insertAfterNodes","afterNode","afterPath","insertAfter","removeNodes","append","duplicateNodes","clonePaths","clone","moveNodes","oldParentNode","oldParentPath","newParentNode","newParentPath","oldBeforeNode","oldIndex","newIndex","count","fieldNames","moveBefore","newParentPathRedo","oldParentPathRedo","newBeforeNode","newIndexRedo","oldIndexRedo","hideChilds","oldChilds","updateIndexes","showChilds","newChilds","setInternalValue","timestamp","Date","splice","oldSelection","newSelection","timeout","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","elem","searchFieldActive","searchValueActive","_clearDelay","MAX_SEARCH_RESULTS","Infinity","activeResultIndex","resultCount","createMenuItems","list","domItems","item","separator","li","domItem","button","submenu","divIcon","divText","createTextNode","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","createAbsoluteAnchor","_getVisibleButtons","expandedItem","subItem","visibleMenu","showBelow","anchorRect","parentRect","frameRect","absoluteAnchor","topGap","anchorHeight","offsetHeight","alreadyVisible","padding","childsHeight","childNodes","targetIndex","prevButton","nextButton","getRootNode","onDestroy","fn","boxSizing","destroyIfOutside","isChildOf","mousedown","mousewheel","jsonlint","jsonMap","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","object","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","iMax","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","stringifyPath","keyword","enums","more","additionalProperty","validationError","insideRect","margin","_margin","right","func","wait","immediate","context","args","later","apply","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","_positionForIndex","textTillIndex","lastIndexOf","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","getPositionForPath","jsmap","pathArr","pointerName","pointer","pointers","getColorCSS","ele","isValidColor","polyfill","CharacterData","DocumentType","searchString","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","lex","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","newState","expected","yyval","errStr","showPosition","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","validType","VALID_TYPES","quoted","ESC_QUOTE","ESC_F","ESC_B","ESC_N","ESC_R","ESC_T","escapeJsonPointer","ESC_0","ESC_1","escapedChars","\"","/","\\","A_CODE","_parse","ptr","topLevel","whitespace","char","getChar","read","parseArray","parseObject","backChar","parseNumber","unexpectedToken","loop","getCharCode","wasUnexpectedToken","numStr","getDigits","itemPtr","getLoc","propPtr","mapLoc","checkUnexpectedEnd","fromCharCode","digits","_stringify","_data","lvl","out","toJSON","itemLvl","propLvl","repeat","wsLine","wsColumn","wsPos","floor","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","ok","removeText","removeTitle","removeField","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","transformTitle","transformTitleShort","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","langFound","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","internalValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","getField","jmespath","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","unshift","internalPath","childIndex","shift","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","contentRect","popoverRect","setParent","previousField","_getDomField","childValue","visible","previousChilds","_getType","childField","findChildByProperty","sortObjectKeys","recreateDom","previousValue","domAnchor","_detachFromDom","clearDom","_attachToDom","_getDomValue","getInternalValue","getLevel","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","trTemp","AppendNode","lastVisibleNode","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","removedNode","_remove","_stringCast","propCount","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","tdColor","_deleteDomColor","isNaN","valueOf","date","toISOString","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","cursor","oldPaths","oldParent","oldNextNode","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","levelNext","_nextNode","sameParent","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","expandable","_onExpand","_showColorPicker","open","offsetX","onKeyDown","info","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","colorAnchor","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","lastTr","query","oldInternalValue","newInternalValue","getChildPaths","includeObjects","pathsMap","_getChildPaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","escapeUnicode","escapedText","_escapeJSON","escaped","isObject","strictDeepEqual","second","keysSeen","key2","isFalse","objValues","values","isAlpha","isNum","isAlphaNum","Lexer","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","types","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","ceil","_functionCeil","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","merge","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","stream","tokenize","expression","trimLeft","basicTokens",".","*","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","tokens","_current","identifier","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","bindingPower","_loadTokens","ast","_lookahead","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","number","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","parts","comparator","lookahead","expressions","keyToken","keyName","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","base","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","argValue","subtype","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","typeName","sortedArray","requiredType","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","msg","oFxNcL","oFyNcL","sre","dre","hre","insensitive","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","picoModal","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","sortedBy","pathArray","onsubmit","afterClose","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isNode","nodeType","isString","observable","callbacks","watch","trigger","detail","unprevented","isHidden","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","-ms-transform","-moz-transform","-webkit-transform","-o-transform","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","afterShow","focusable","tabKey","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","opts","beforeClose","preprocessPath","generateQueryFromWizard","filterField","filterRelation","filterValue","field1","value1","sortField","sortOrder","field2","selectFields","debouncedUpdatePreview","updatePreview","transformed","MAX_PREVIEW_LINES","preview","wizard","fontStyle","formattedPath","filterOption","sortOption","allPaths","selectrFilterField","Selectr","defaultSelected","clearable","allowDeselect","placeholder","selectrFilterRelation","selectrSortField","selectrSortOrder","selectrSelectFields","multiple","isset","appendItem","custom","removeClass","defaultConfig","searchable","sortSelected","closeOnScroll","nativeDropdown","taggable","tagPlaceholder","Events","_events","emit","each","hasClass","addClass","isInt","val","isFinite","rect","w","includes","truncate","render","createDocumentFragment","pagination","pages","pageIndex","customOption","childElementCount","navIndex","dismiss","opened","createItem","renderOption","class","role","aria-selected","requiresPagination","customClass","mobileDevice","tabIndex","aria-expanded","label","dropdown","aria-hidden","notice","tags","selectedValues","getSelectedProperties","selectedIndexes","selectClear","tagIndex","autocorrect","autocapitalize","tagSeperators","inputClear","inputContainer","group","optgroup","Option","paginate","placeEl","setPlaceholder","disable","navigate","navigating","prevEl","searching","lastElementChild","optsRect","addTag","docFrag","customSelected","renderSelection","btn","$2","ac","bc","ax","by","nn","tg","removeTag","total","page","clearSearch","rendered","originalType","originalIndex","originalOptionCount","bindEvents","selectedIndex","getSelected","querySelectorAll","events","getChangedOptions","added","removed","indexes","changes","k","setMessage","invert","paginateItems","selectedValue","replaceChild","maxSelections","o","force","selIndex","valIndex","toObject","toJson","checkDuplicate","dupe","getOptionByIndex","getOptionByValue","removeAll","removeMessage","firstEl","enable","serialise","v","rt","oh","wh","innerHeight","isInverted","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","ix","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","distanceToTop","distanceToBottom","divRow","move","wasDropDownHidden","format","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","annotations","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","aceSession","getSession","$blockScrolling","setTheme","readOnly","setShowPrintMargin","setFontSize","setTabSize","setUseSoftTabs","setUseWrapMode","originalSetAnnotations","poweredBy","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","additinalErrorsIndication","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","validationErrorIcon","validationErrorCount","validationErrorIndication","parseErrorIndication","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","_refreshAnnotations","sanitizedText","resize","doValidate","parseErrors","_renderErrors","validationErrorsCount","validationErrors","marginBottom","paddingBottom","errorPaths","acc","errorLocations","errLoc","trEl","setTextSelection","onscroll","showIndication","aceSelection","getRange","lead","getSelectionLead","endPos","setSelectionRange","selectionScrollPos","setRange","isDark","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","onChangeJSON","mode","modes","indexOf","Object","keys","forEach","option","VALID_OPTIONS","arguments","length","_create","Ajv","e","code","err","ace","VanillaPicker","treemode","textmode","prototype","DEBOUNCE_INTERVAL","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","create","data","extend","oldMode","config","asText","clear","mixin","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","window","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","start","token","regex","next","string","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","line","input","test","autoOutdent","doc","row","getLine","match","column","openBracePos","findMatchingBracket","indent","$getIndent","replace","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","source","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","index","openingBracketBlock","range","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","subRange","re","depth","exec","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","state","tab","createWorker","worker","attachToDocument","getDocument","on","setAnnotations","clearAnnotations","$id","src","dom","lang","event","HashHandler","keyUtil","importCssString","html","SearchBox","editor","showReplaceForm","div","createElement","innerHTML","element","firstChild","setSession","bind","$init","setEditor","searchBox","renderer","scroller","appendChild","searchRange","$syncOptions","$initElements","sb","querySelector","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","setTimeout","activeInput","focus","stopPropagation","t","target","srcElement","action","getAttribute","$searchBarKb","commands","addCommandKeyListener","hashId","keyCode","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","value","highlight","$closeSearchBarKb","bindKey","hide","bindKeys","Ctrl-f|Command-f","isReplace","style","display","checked","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","updateCounter","all","before","getTextRange","getValue","offset","positionToIndex","selection","anchor","last","lastIndex","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","show","select","addKeyboardHandler","isFocused","el","document","activeElement","Search","Picker","Highlighter","History","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","showSortModal","showTransformModal","translate","setLanguages","setLanguage","DEFAULT_MODAL_ANCHOR","body","highlighter","undefined","multiselection","nodes","validationSequence","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","modeSwitcher","navigationBar","onSelectionChange","colorPicker","onColorPicker","parent","color","popup","onDone","alpha","rgba","hex","substr","timestampTag","onEvent","hasOwnProperty","debounce","languages","language","Function","content","table","params","field","_setRoot","expand","update","deepEqual","getSelection","onChangeDisabled","isEmpty","forceSearch","startNode","findNodeByPath","path","endNode","setSelection","getNodeFromTarget","blur","sanitizedJsonText","sanitize","updateText","updateField","scrollableContent","menu","treePath","reset","tbody","getDom","text","results","expandAll","collapseAll","collapse","_onAction","add","_onChange","onChangeText","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","me","seq","_validateCustom","then","customValidationErrors","concat","_renderValidationErrors","catch","setError","parentPairs","reduce","findParents","some","pair","child","message","type","onValidate","customValidateResults","isPromise","Promise","resolve","customValidationPathErrors","Array","valid","isValidValidationError","reject","updateDom","recurse","startAutoScroll","mouseY","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","paths","findNodeByInternalPath","domName","assign","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","getInternalPath","scrollTo","callback","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","_onEvent","className","onclick","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","sort","modalAnchor","transform","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","targetIsColorPicker","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","mousemove","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","slice","first","expandPathToNode","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","keynum","which","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","key","jsonElementType","hnode","innerText","result","getOptions","getPath","hideDropDown","startFrom","contentOuter","col","colgroupContent","width","onClose","items","click","onDuplicate","onRemove","close","selection1","selection2","serialize","_getNodeInstancesByRange","getIndex","current","nextSibling","getNodesByRange","serializableNodes","locked","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","parentPath","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","beforeNode","beforePath","insertBefore","insertAfterNodes","afterNode","afterPath","insertAfter","removeNodes","append","duplicateNodes","clonePaths","clone","moveNodes","oldParentNode","oldParentPath","newParentNode","newParentPath","oldBeforeNode","oldIndex","newIndex","count","fieldNames","moveBefore","newParentPathRedo","oldParentPathRedo","newBeforeNode","newIndexRedo","oldIndexRedo","hideChilds","oldChilds","updateIndexes","showChilds","newChilds","setInternalValue","timestamp","Date","splice","oldSelection","newSelection","timeout","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","elem","searchFieldActive","searchValueActive","_clearDelay","MAX_SEARCH_RESULTS","Infinity","activeResultIndex","resultCount","createMenuItems","list","domItems","item","separator","li","domItem","button","submenu","divIcon","divText","createTextNode","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","createAbsoluteAnchor","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","showBelow","anchorRect","getBoundingClientRect","parentRect","frameRect","absoluteAnchor","topGap","anchorHeight","offsetHeight","left","alreadyVisible","padding","childsHeight","childNodes","targetIndex","prevButton","nextButton","getRootNode","onDestroy","fn","position","boxSizing","destroyIfOutside","isChildOf","mousedown","mousewheel","jsonlint","jsonMap","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","join","escapeUnicodeChars","charCodeAt","toString","a","b","object","Number","String","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","iMax","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","stringifyPath","keyword","enums","more","additionalProperty","validationError","insideRect","margin","_margin","right","func","wait","immediate","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","_positionForIndex","textTillIndex","lastIndexOf","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","getIndexForPosition","rows","columnCount","getPositionForPath","jsmap","pathArr","pointerName","pointer","pointers","getColorCSS","ele","toLowerCase","isValidColor","Element","polyfill","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","r","newState","expected","yyval","errStr","showPosition","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","validType","VALID_TYPES","quoted","ESC_QUOTE","ESC_F","ESC_B","ESC_N","ESC_R","ESC_T","escapeJsonPointer","ESC_0","ESC_1","escapedChars","\"","/","\\","A_CODE","_parse","ptr","topLevel","whitespace","char","getChar","read","parseArray","parseObject","backChar","parseNumber","unexpectedToken","pos","loop","getCharCode","wasUnexpectedToken","numStr","getDigits","arr","itemPtr","getLoc","propPtr","mapLoc","checkUnexpectedEnd","fromCharCode","digits","_","_stringify","_data","lvl","out","toJSON","itemLvl","propLvl","repeat","wsLine","wsColumn","wsPos","floor","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","ok","removeText","removeTitle","removeField","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","transformTitle","transformTitleShort","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","langFound","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","internalValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","getField","jmespath","naturalSort","appendNodeFactory","showMoreNodeFactory","MAX_VISIBLE_CHILDS","visibleChilds","_updateEditability","unshift","internalPath","childIndex","shift","parents","errorChild","updateError","tdError","tdValue","popover","onfocus","directions","contentRect","popoverRect","setParent","previousField","_getDomField","childValue","visible","previousChilds","_getType","childField","findChildByProperty","sortObjectKeys","recreateDom","previousValue","domAnchor","_detachFromDom","clearDom","_attachToDom","_getDomValue","getInternalValue","getLevel","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppendDom","nextTr","_getNextTr","getShowMoreDom","resetVisibleChilds","currentNode","_hasChilds","newTr","trTemp","AppendNode","lastVisibleNode","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","removedNode","_remove","_stringCast","props","propCount","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","tdColor","backgroundColor","_deleteDomColor","isNaN","valueOf","date","toISOString","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","cursor","oldPaths","oldParent","oldNextNode","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_nextNode","sameParent","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","expandable","_onExpand","_showColorPicker","open","offsetX","onKeyDown","info","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","colorAnchor","blurNodes","clones","newNode","_onAppend","_onChangeType","order","nodeA","getNestedChild","nodeB","valueA","valueB","lastTr","query","oldInternalValue","newInternalValue","getChildPaths","includeObjects","pathsMap","_getChildPaths","rootPath","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","escapeUnicode","escapedText","_escapeJSON","escaped","isObject","strictDeepEqual","second","keysSeen","key2","isFalse","objValues","values","isAlpha","isNum","isAlphaNum","Lexer","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","types","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","ceil","_functionCeil","contains","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","merge","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","stream","tokenize","expression","trimLeft","basicTokens",".","*","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","tokens","_current","identifier","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","parseInt","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","ast","_lookahead","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","number","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","parts","comparator","lookahead","expressions","keyToken","keyName","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","base","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","argValue","subtype","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","typeName","sortedArray","requiredType","that","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","x","msg","oFxNcL","oFyNcL","sre","dre","hre","s","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","picoModal","overlayClass","modalClass","afterCreate","modal","setDirection","form","modalElem","sortedBy","pathArray","onsubmit","afterClose","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isNode","nodeType","isString","observable","callbacks","watch","trigger","detail","unprevented","isHidden","getComputedStyle","Elem","buildOverlay","getOption","make","clazz","stylize","zIndex","opacity","background","onClick","buildModal","autoinc","-ms-transform","-moz-transform","-webkit-transform","-o-transform","borderRadius","attr","anyAncestor","buildClose","border","fontSize","textAlign","lineHeight","buildElemAccessor","builder","manageFocus","iface","isEnabled","matches","selector","msMatchesSelector","webkitMatchesSelector","canFocus","hasAttribute","firstFocusable","getElementsByTagName","lastFocusable","focused","beforeShow","afterShow","focusable","tabKey","manageBodyOverflow","origOverflow","tag","styles","setAttribute","predicate","escapeKey","documentElement","keycode","opt","defaultValue","forceClose","shadowElem","afterCloseEvent","beforeCloseEvent","returnIface","build","built","overlay","afterCreateEvent","beforeShowEvent","afterShowEvent","closeElem","overlayElem","buildDom","opts","beforeClose","preprocessPath","generateQueryFromWizard","filterField","filterRelation","filterValue","field1","value1","sortField","sortOrder","field2","selectFields","debouncedUpdatePreview","updatePreview","transformed","MAX_PREVIEW_LINES","preview","wizard","fontStyle","formattedPath","filterOption","sortOption","allPaths","selectrFilterField","Selectr","defaultSelected","clearable","allowDeselect","placeholder","selectrFilterRelation","selectrSortField","selectrSortOrder","selectrSelectFields","multiple","isset","appendItem","custom","removeClass","defaultConfig","searchable","sortSelected","closeOnScroll","nativeDropdown","taggable","tagPlaceholder","Events","_events","emit","each","d","hasClass","classList","addClass","trim","remove","closest","isInt","val","isFinite","g","h","rect","w","includes","truncate","render","createDocumentFragment","pagination","pages","pageIndex","customOption","childElementCount","navIndex","dismiss","opened","createItem","renderOption","class","role","aria-selected","requiresPagination","customClass","mobileDevice","tabIndex","aria-expanded","label","dropdown","aria-hidden","notice","tags","selectedValues","getSelectedProperties","selectedIndexes","selectClear","tagIndex","autocorrect","autocapitalize","tagSeperators","inputClear","inputContainer","group","optgroup","Option","paginate","placeEl","setPlaceholder","disable","navigate","navigating","prevEl","searching","lastElementChild","firstElementChild","optsRect","addTag","docFrag","customSelected","renderSelection","btn","$2","ac","bc","ax","by","nn","tg","removeTag","total","page","clearSearch","rendered","originalType","originalIndex","originalOptionCount","bindEvents","selectedIndex","getSelected","querySelectorAll","events","changedTouches","toggle","getChangedOptions","added","removed","indexes","changes","k","setMessage","invert","paginateItems","selectedValue","replaceChild","maxSelections","o","force","selIndex","valIndex","toObject","toJson","checkDuplicate","dupe","getOptionByIndex","getOptionByValue","removeAll","removeMessage","firstEl","enable","serialise","v","rt","oh","wh","innerHeight","isInverted","onSwitch","availableModes","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","whiteSpace","fontFamily","fontWeight","confirmKeys","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getPropertyValue","marginTop","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","realInnerText","clientWidth","ix","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","distanceToTop","distanceToBottom","divRow","move","wasDropDownHidden","format","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","annotations","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","aceSession","getSession","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","setTabSize","setUseSoftTabs","setUseWrapMode","originalSetAnnotations","poweredBy","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","additinalErrorsIndication","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","validationErrorIcon","validationErrorCount","validationErrorIndication","parseErrorIndication","_updateCursorInfo","_emitSelectionChange","updateDisplay","selectionRange","cursorInfo","curserPos","getCursorPosition","selectedText","getSelectedText","currentSelection","getTextSelection","_refreshAnnotations","sanitizedText","resize","doValidate","parseErrors","_renderErrors","validationErrorsCount","validationErrors","marginBottom","paddingBottom","errorPaths","acc","errorLocations","errLoc","trEl","setTextSelection","onscroll","showIndication","aceSelection","getRange","lead","getSelectionLead","endPos","setSelectionRange","selectionScrollPos","setRange","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index 0042181..d5d2c92 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -27,9 +27,9 @@ * @version 5.24.3 * @date 2018-08-29 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=c.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t.onChangeJSON&&("text"===t.mode||"code"===t.mode||t.modes&&(-1!==t.modes.indexOf("text")||-1!==t.modes.indexOf("code")))&&console.warn('Option "onChangeJSON" is not applicable to modes "text" and "code". Use "onChangeText" or "onChange" instead.'),t&&Object.keys(t).forEach(function(e){-1===i.VALID_OPTIONS.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})),arguments.length&&this._create(e,t,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=n(1),s=n(5),a=n(7),l=n(29),c=n(13);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.VALID_OPTIONS=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onChangeJSON","onChangeText","onEditable","onError","onEvent","onModeChange","onValidate","onSelectionChange","onTextSelectionChange","colorPicker","onColorPicker","timestampTag","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"],i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=c.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){if(e!==this.options.mode||!this.create){var t,n,o=this.container,r=c.extend({},this.options),s=r.mode;r.mode=e;var a=i.modes[e];if(!a)throw new Error('Unknown mode "'+r.mode+'"');try{var l="text"==a.data;if(n=this.getName(),t=this[l?"getText":"get"](),this.destroy(),c.clear(this),c.extend(this,a.mixin),this.create(o,r),this.setName(n),this[l?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(c.isArray(e))for(t=0;tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=r)break;if(h.isMultiLine())t=h.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(d,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new h(["ace"],n(3),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=a.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()}, -this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t,n){var i;if(window.Picker)i=window.Picker;else try{i=n(6)}catch(e){}e.exports=i},function(e,t,n){!function(t,n){e.exports=n()}(0,function(){"use strict";function e(e){function t(e,t,n,i){function o(e,t,n){return Math.max(t,Math.min(e,n))}var r=e.clientX,s=e.clientY;if(t){var a=t.getBoundingClientRect();if(r-=a.left,s-=a.top,n&&(r-=n[0],s-=n[1]),i&&(r=o(r,0,a.width),s=o(s,0,a.height)),t!==p){(null!==C?C:"circle"===t.nodeName||"ellipse"===t.nodeName)&&(r-=a.width/2,s-=a.height/2)}}return w?[Math.round(r),Math.round(s)]:[r,s]}function n(e){e.preventDefault(),b||e.stopPropagation()}function i(e){var i=void 0;if(i=f?f instanceof Element?f.contains(e.target)?f:null:e.target.closest(f):{}){n(e);var o=f&&_?t(e,i):[0,0],r=t(e,p,o);E={target:i,mouseOffset:o,startPos:r,actuallyDragged:!1},g&&g(i,r)}}function o(e){if(E){n(e);var i=E.startPos,o=t(e,p,E.mouseOffset,!x);E.actuallyDragged=E.actuallyDragged||i[0]!==o[0]||i[1]!==o[1],m(E.target,o,i)}}function r(e,n){if(E){if(v||y){var i=!E.actuallyDragged,o=i?E.startPos:t(e,p,E.mouseOffset,!x);y&&i&&!n&&y(E.target,o),v&&v(E.target,o,E.startPos,n||i&&y)}E=null}}function s(e,t){r(d(e),t)}function a(e,t,n){e.addEventListener(t,n)}function l(e){return void 0!==e.buttons?1===e.buttons:1===e.which}function h(e,t){if(1!==e.touches.length)return void r(e,!0);t(d(e))}function d(e){var t=e.targetTouches[0];return t||(t=e.changedTouches[0]),t.preventDefault=e.preventDefault.bind(e),t.stopPropagation=e.stopPropagation.bind(e),t}var u=Element.prototype;u.matches||(u.matches=u.msMatchesSelector||u.webkitMatchesSelector),u.closest||(u.closest=function(e){var t=this;do{if(t.matches(e))return t;t="svg"===t.tagName?t.parentNode:t.parentElement}while(t);return null}),e=e||{};var p=e.container||document.documentElement,f=e.selector,m=e.callback||console.log,g=e.callbackDragStart,v=e.callbackDragEnd,y=e.callbackClick,b=e.propagateEvents,w=!1!==e.roundCoords,x=!1!==e.dragOutside,_=e.handleOffset||!1!==e.handleOffset,C=null;switch(_){case"center":C=!0;break;case"topleft":case"top-left":C=!1}var E=void 0;a(p,"mousedown",function(e){l(e)?i(e):r(e,!0)}),a(p,"touchstart",function(e){return h(e,i)}),a(c,"mousemove",function(e){E&&(l(e)?o(e):r(e))}),a(c,"touchmove",function(e){return h(e,o)}),a(p,"mouseup",function(e){E&&!l(e)&&r(e)}),a(p,"touchend",function(e){return s(e)}),a(p,"touchcancel",function(e){return s(e,!0)})}function t(e){var t=document.createElement("div");return t.innerHTML=e,t.firstElementChild}function n(e,t,n){e.addEventListener(t,n,!1)}var i=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},o=function(){function e(e,t){for(var n=0;n.5?u/(2-a-l):u/(a+l),a){case n:c=(i-o)/u+(i1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},d=o<.5?o*(1+i):o+i-o*i,u=2*o-d;a=h(u,d,n+1/3),l=h(u,d,n),c=h(u,d,n-1/3)}var p=[255*a,255*l,255*c].map(Math.round);return p[3]=s,p}}]),e}(),c=window;return document.documentElement.firstElementChild.appendChild(document.createElement("style")).textContent=".picker_wrapper.no_alpha .picker_alpha,.picker_wrapper.no_editor .picker_editor{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:'';display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:'';display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6rem}.layout_default .picker_editor input{width:calc(100% + 2px);height:calc(100% + 2px)}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;cursor:default;font-family:sans-serif;pointer-events:auto}.picker_wrapper button,.picker_wrapper input{margin:-1px}.picker_selector{position:absolute;z-index:1;display:block;transform:translate(-50%, -50%);border:2px solid white;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255,255,255,0) 50%),linear-gradient(0deg, black, rgba(0,0,0,0) 50%),linear-gradient(90deg, gray, rgba(128,128,128,0))}.picker_alpha,.picker_sample{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\") left top/contain white;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{box-sizing:border-box;font-family:monospace;padding:.1em .2em}.picker_sample::before{content:'';position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_done button{box-sizing:border-box;padding:.2em .5em;cursor:pointer}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,0.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:\"\";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;transform:skew(45deg);transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}",function(){function r(e){i(this,r),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0},this.setOptions(e)}return o(r,[{key:"setOptions",value:function(e){var t=this;if(e){var i=this.settings;e instanceof HTMLElement?i.parent=e:function(e,t,n){for(var i in e)n&&n.indexOf(i)>=0||(t[i]=e[i])}(e,i),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var o=e.color||e.colour;o&&this._setColor(o),i.parent&&i.popup&&!this._popupInited?(n(i.parent,"click",function(e){return t.openHandler(e)}),this._popupInited=!0):e.parent&&!i.popup&&this.show()}}},{key:"openHandler",value:function(e){this.show()&&(this.settings.parent.style.pointerEvents="none",this.onOpen&&this.onOpen(this.colour))}},{key:"closeHandler",value:function(e){var t=!1;"mousedown"===e.type?this.domElement.contains(e.target)||(t=!0):(e.preventDefault(),e.stopPropagation(),t=!0),t&&this.hide()&&(this.settings.parent.style.pointerEvents="",this.onClose&&this.onClose(this.colour))}},{key:"setColor",value:function(e){this._setColor(e)}},{key:"_setColor",value:function(e,t){var n=new l(e);if(!this.settings.alpha){var i=n.hsla;i[3]=1,n.hsla=i}this.colour=this.color=n,this._setHSLA(null,null,null,null,t)}},{key:"setColour",value:function(e){this.setColor(e)}},{key:"show",value:function(){if(!this.settings.parent)return!1;if(this.domElement){var e=this._toggleDOM(!0);return this._setPosition(),e}var n=this.settings.template||'
',i=t(n);return this.domElement=i,this._domH=i.querySelector(".picker_hue"),this._domSL=i.querySelector(".picker_sl"),this._domA=i.querySelector(".picker_alpha"),this._domEdit=i.querySelector(".picker_editor input"),this._domSample=i.querySelector(".picker_sample"),this._domOkay=i.querySelector(".picker_done button"),i.classList.add("layout_"+this.settings.layout),this.settings.alpha||i.classList.add("no_alpha"),this.settings.editor||i.classList.add("no_editor"),this._ifPopup(function(){return i.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor("#0cf"),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"_bindEvents",value:function(){function t(e,t){function n(n,i){var o=i[0]/e.clientWidth,r=i[1]/e.clientHeight;t(o,r)}return{container:e,dragOutside:!1,callback:n,callbackClick:n,callbackDragStart:n,propagateEvents:!0}}var i=this,o=this;e(t(this._domH,function(e,t){return o._setHSLA(e)})),e(t(this._domSL,function(e,t){return o._setHSLA(null,e,1-t)})),this.settings.alpha&&e(t(this._domA,function(e,t){return o._setHSLA(null,null,null,1-t)})),this.settings.editor&&n(this._domEdit,"input",function(e){var t=this.value;try{new l(this.value),o._setColor(t,!0)}catch(e){}}),n(window,"mousedown",function(e){return i._ifPopup(function(){return i.closeHandler(e)})}),n(this._domOkay,"click",function(e){i._ifPopup(function(){return i.closeHandler(e)}),i.onDone&&i.onDone(i.colour)})}},{key:"_setPosition",value:function(){var e=this.settings.parent,t=this.domElement;e!==t.parentNode&&e.appendChild(t),this._ifPopup(function(n){"static"===getComputedStyle(e).position&&(e.style.position="relative");var i=!0===n?"popup_right":"popup_"+n;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(e){e===i?t.classList.add(e):t.classList.remove(e)}),t.classList.add(i)})}},{key:"_setHSLA",value:function(e,t,n,i,o){var r=this.colour,s=r.hsla;[e,t,n,i].forEach(function(e,t){(e||0===e)&&(s[t]=e)}),r.hsla=s,this._updateUI(o),this.onChange&&this.onChange(r)}},{key:"_updateUI",value:function(e){function t(e,t,n){t.style.left=100*n+"%"}function n(e,t,n){t.style.top=100*n+"%"}if(this.domElement){var i=this.colour,o=i.hsla,r="hsl("+360*o[0]+", 100%, 50%)",s=i.hslString,a=i.hslaString,l=this._domH,c=this._domSL,h=this._domA;t(l,l.firstElementChild,o[0]),this._domSL.style.backgroundColor=this._domH.style.color=r,t(c,c.firstElementChild,o[1]),n(c,c.firstElementChild,1-o[2]),c.style.color=s,n(h,h.firstElementChild,1-o[3]);var d=s,u=d.replace("hsl","hsla").replace(")",", 0)"),p="linear-gradient("+[d,u]+")";if(this._domA.style.backgroundImage=p+", url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\")",!e){var f=i.hex;this._domEdit.value=this.settings.alpha?f:f.substr(0,7)}this._domSample.style.color=a}}},{key:"_ifPopup",value:function(e,t){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):t&&t()}},{key:"_toggleDOM",value:function(e){var t=this.domElement;if(!t)return!1;var n=e?"":"none",i=t.style.display!==n;return i&&(t.style.display=n),i}}]),r}()})},function(e,t,n){"use strict";var i=n(5),o=n(8),r=n(9),s=n(10),a=n(11),l=n(17),c=n(18),h=n(27),d=n(13),u=n(28),p=n(23),f=n(25),m=n(16).translate,g=n(16).setLanguages,v=n(16).setLanguage,y=document.body,b={};b.create=function(e,t){if(!e)throw new Error("No container element provided.");this.container=e,this.dom={},this.highlighter=new o,this.selection=void 0,this.multiselection={nodes:[]},this.validateSchema=null,this.validationSequence=0,this.errorNodes=[],this.node=null,this.focusTarget=null,this._setOptions(t),t.autocomplete&&(this.autocomplete=new u(t.autocomplete)),this.options.history&&"view"!==this.options.mode&&(this.history=new r(this)),this._createFrame(),this._createTable()},b.destroy=function(){this.frame&&this.container&&this.frame.parentNode==this.container&&(this.container.removeChild(this.frame),this.frame=null),this.container=null,this.dom=null,this.clear(),this.node=null,this.focusTarget=null,this.selection=null,this.multiselection=null,this.errorNodes=null,this.validateSchema=null,this._debouncedValidate=null,this.history&&(this.history.destroy(),this.history=null),this.searchBox&&(this.searchBox.destroy(),this.searchBox=null),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null)},b._setOptions=function(e){if(this.options={search:!0,history:!0,mode:"tree",name:void 0,schema:null,schemaRefs:null,autocomplete:null,navigationBar:!0,onSelectionChange:null,colorPicker:!0,onColorPicker:function(e,t,n){i?new i({parent:e,color:t,popup:"bottom",onDone:function(e){var t=e.rgba[3],i=1===t?e.hex.substr(0,7):e.hex;n(i)}}).show():console.warn("Cannot open color picker: the `vanilla-picker` library is not included in the bundle. Either use the full bundle or implement your own color picker using `onColorPicker`.")},timestampTag:!0,onEvent:null},e)for(var t in e)e.hasOwnProperty(t)&&(this.options[t]=e[t]);this.setSchema(this.options.schema,this.options.schemaRefs),this._debouncedValidate=d.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),e.onSelectionChange&&this.onSelectionChange(e.onSelectionChange),g(this.options.languages),v(this.options.language)},b.set=function(e){if(e instanceof Function||void 0===e)this.clear();else{this.content.removeChild(this.table);var t={field:this.options.name,value:e},n=new c(this,t);this._setRoot(n),this.validate();this.node.expand(!1),this.content.appendChild(this.table)}this.history&&this.history.clear(),this.searchBox&&this.searchBox.clear()},b.update=function(e){if(!this.node.deepEqual(e)){var t=this.getSelection();if(this.onChangeDisabled=!0,this.node.update(e),this.onChangeDisabled=!1,this.validate(),this.searchBox&&!this.searchBox.isEmpty()&&this.searchBox.forceSearch(),t&&t.start&&t.end){var n=this.node.findNodeByPath(t.start.path),i=this.node.findNodeByPath(t.end.path);n&&i?this.setSelection(t.start,t.end):this.setSelection({},{})}else this.setSelection({},{})}},b.get=function(){if(this.focusTarget){var e=c.getNodeFromTarget(this.focusTarget);e&&e.blur()}return this.node?this.node.getValue():void 0},b.getText=function(){return JSON.stringify(this.get())},b.setText=function(e){try{this.set(d.parse(e))}catch(n){var t=d.sanitize(e);this.set(d.parse(t))}},b.updateText=function(e){try{this.update(d.parse(e))}catch(n){var t=d.sanitize(e);this.update(d.parse(t))}},b.setName=function(e){this.options.name=e,this.node&&this.node.updateField(this.options.name)},b.getName=function(){return this.options.name},b.focus=function(){var e=this.scrollableContent.querySelector("[contenteditable=true]");e?e.focus():this.node.dom.expand?this.node.dom.expand.focus():this.node.dom.menu?this.node.dom.menu.focus():(e=this.frame.querySelector("button"))&&e.focus()},b.clear=function(){this.node&&(this.node.hide(),delete this.node),this.treePath&&this.treePath.reset()},b._setRoot=function(e){this.clear(),this.node=e,this.tbody.appendChild(e.getDom())},b.search=function(e){var t;return this.node?(this.content.removeChild(this.table),t=this.node.search(e),this.content.appendChild(this.table)):t=[],t},b.expandAll=function(){this.node&&(this.content.removeChild(this.table),this.node.expand(),this.content.appendChild(this.table))},b.collapseAll=function(){this.node&&(this.content.removeChild(this.table),this.node.collapse(),this.content.appendChild(this.table))},b._onAction=function(e,t){this.history&&this.history.add(e,t),this._onChange()},b._onChange=function(){if(!this.onChangeDisabled){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}if(this.options.onChangeJSON)try{this.options.onChangeJSON(this.get())}catch(e){console.error("Error in onChangeJSON callback: ",e)}if(this.options.onChangeText)try{this.options.onChangeText(this.getText())}catch(e){console.error("Error in onChangeText callback: ",e)}}},b.validate=function(){var e=this.node;if(e){var t=e.getValue(),n=e.validate(),i=[];if(this.validateSchema){this.validateSchema(t)||(i=this.validateSchema.errors.map(function(e){return d.improveSchemaError(e)}).map(function(t){return{node:e.findNode(t.dataPath),error:t}}).filter(function(e){return null!=e.node}))}this.validationSequence++;var o=this,r=this.validationSequence;this._validateCustom(t).then(function(e){if(r===o.validationSequence){var t=[].concat(n,i,e||[]);o._renderValidationErrors(t)}}).catch(function(e){console.error(e)})}},b._renderValidationErrors=function(e){this.errorNodes&&this.errorNodes.forEach(function(e){e.setError(null)});var t=e.reduce(function(e,t){return t.node.findParents().filter(function(t){return!e.some(function(e){return e[0]===t})}).map(function(e){return[e,t.node]}).concat(e)},[]);this.errorNodes=t.map(function(e){return{node:e[0],child:e[1],error:{message:"object"===e[0].type?"Contains invalid properties":"Contains invalid items"}}}).concat(e).map(function(e){return e.node.setError(e.error,e.child),e.node})},b._validateCustom=function(e){try{if(this.options.onValidate){var t=this.node,n=this.options.onValidate(e);return(d.isPromise(n)?n:Promise.resolve(n)).then(function(e){return Array.isArray(e)?e.filter(function(e){var t=d.isValidValidationError(e);return t||console.warn('Ignoring a custom validation error with invalid structure. Expected structure: {path: [...], message: "..."}. Actual error:',e),t}).map(function(e){var n;try{n=e&&e.path?t.findNodeByPath(e.path):null}catch(e){}return n||console.warn("Ignoring validation error: node not found. Path:",e.path,"Error:",e),{node:n,error:e}}).filter(function(e){return e&&e.node&&e.error&&e.error.message}):null})}}catch(e){return Promise.reject(e)}return Promise.resolve(null)},b.refresh=function(){this.node&&this.node.updateDom({recurse:!0})},b.startAutoScroll=function(e){var t=this,n=this.scrollableContent,i=d.getAbsoluteTop(n),o=n.clientHeight,r=i+o;e0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop0?this.multiselection.nodes.map(function(e){return e.getInternalPath()}):null,scrollTop:this.scrollableContent?this.scrollableContent.scrollTop:0}},b.scrollTo=function(e,t){var n=this.scrollableContent;if(n){var i=this;i.animateTimeout&&(clearTimeout(i.animateTimeout),delete i.animateTimeout),i.animateCallback&&(i.animateCallback(!1),delete i.animateCallback);var o=n.clientHeight,r=n.scrollHeight-o,s=Math.min(Math.max(e-o/4,0),r),a=function(){var e=n.scrollTop,o=s-e;Math.abs(o)>3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},b._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=m("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");i.type="button",i.title=m("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i);var o=document.createElement("button");o.type="button",o.className="jsoneditor-sort",o.title=m("sortTitleShort"),o.onclick=function(){var e=t.options.modalAnchor||y;p(t.node,e)},this.menu.appendChild(o);var r=document.createElement("button");if(r.type="button",r.title=m("transformTitleShort"),r.className="jsoneditor-transform",r.onclick=function(){var e=t.options.modalAnchor||y;f(t.node,e)},this.menu.appendChild(r),this.history){var a=document.createElement("button");a.type="button",a.className="jsoneditor-undo jsoneditor-separator",a.title=m("undo"),a.onclick=function(){t._onUndo()},this.menu.appendChild(a),this.dom.undo=a;var c=document.createElement("button");c.type="button",c.className="jsoneditor-redo",c.title=m("redo"),c.onclick=function(){t._onRedo()},this.menu.appendChild(c),this.dom.redo=c,this.history.onChange=function(){a.disabled=!t.history.canUndo(),c.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var u=this;this.modeSwitcher=new h(this.menu,this.options.modes,this.options.mode,function(e){u.setMode(e),u.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new s(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new l(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},b._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},b._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},b._onEvent=function(e){if(!c.targetIsColorPicker(e.target)){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=c.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&c.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?c.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)}},b._updateTreePath=function(e){function t(e){return e.parent?"array"===e.parent.type?e.index:e.field:e.type}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},b._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},b._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},b._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},b._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},b._onMultiSelectStart=function(e){var t=c.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},b._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=c.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;if(n&&i){if(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.multiselection.nodes&&this.multiselection.nodes.length){var o=this.multiselection.nodes[0];this.multiselection.start===o||this.multiselection.start.isDescendantOf(o)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},b._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},b.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},b.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},b._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(l="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(l="field");var h=c.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),l,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},b._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.scrollableContent=document.createElement("div"),this.scrollableContent.className="jsoneditor-tree",e.appendChild(this.scrollableContent),this.content=document.createElement("div"),this.content.className="jsoneditor-tree-inner",this.scrollableContent.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},b.showContextMenu=function(e,t){var n=[],i=this;n.push({text:m("duplicateText"),title:m("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){c.onDuplicate(i.multiselection.nodes)}}),n.push({text:m("remove"),title:m("removeTitle"),className:"jsoneditor-remove",click:function(){c.onRemove(i.multiselection.nodes)}}),new a(n,{close:t}).show(e,i.frame)},b.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],n=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=n.serialize()):(e.start=n.serialize(),e.end=t.serialize())}return e},b.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=d.debounce(e,this.DEBOUNCE_INTERVAL))},b.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var n=this._getNodeInstancesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},b._getNodeInstancesByRange=function(e,t){var n,i;e&&e.path&&(n=this.node.findNodeByPath(e.path),t&&t.path&&(i=this.node.findNodeByPath(t.path)));var o=[];if(n instanceof c)if(i instanceof c&&i!==n)if(n.parent===i.parent){var e,t;n.getIndex()=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!==this.lastText||e){this.lastText=n,this.results=this.editor.search(n);var i=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0,o=0;if(this.activeResult)for(var r=0;ri?i+"+ results":s+" results"}else this.dom.results.innerHTML=""}},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.forceSearch=function(){this._onSearch(!0)},n.prototype.isEmpty=function(){return""===this.dom.search.value},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var d=document.createElement("div");d.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(o.text)),c.appendChild(d);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var f=document.createElement("div");f.className="jsoneditor-expand",c.appendChild(f),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var m=[];a.subItems=m;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,m,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var o=n(12).createAbsoluteAnchor,r=n(13),s=n(16).translate;i.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},i.visibleMenu=void 0,i.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect(),c=t.getBoundingClientRect(),h=this;this.dom.absoluteAnchor=o(e,t,function(){h.hide()}),a.bottom+this.maxHeightc.top&&(n=!1);var d=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left="0",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";this.dom.absoluteAnchor.appendChild(this.dom.root),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){h.dom.focusButton.focus()},0),i.visibleMenu&&i.visibleMenu.hide(),i.visibleMenu=this},i.prototype.hide=function(){this.dom.absoluteAnchor&&(this.dom.absoluteAnchor.destroy(),delete this.dom.absoluteAnchor),this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose()),i.visibleMenu==this&&(i.visibleMenu=void 0)},i.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.isPromise=function(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isValidValidationError=function(e){return"object"==typeof e&&Array.isArray(e.path)&&"string"==typeof e.message},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){function t(t){var n=e.value.substring(0,t);return{row:(n.match(/\n/g)||[]).length+1,column:n.length-n.lastIndexOf("\n")}}var n,i,o,r,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,n=e.value.replace(/\r\n/g,"\n"),o=e.createTextRange(),o.moveToBookmark(i.getBookmark()),s=e.createTextRange(),s.collapse(!1),o.compareEndPoints("StartToEnd",s)>-1?a=l=r:(a=-o.moveStart("character",-r),a+=n.slice(0,a).split("\n").length-1,o.compareEndPoints("EndToEnd",s)>-1?l=r:(l=-o.moveEnd("character",-r),l+=n.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,n){var i=e.value||"";if(t>0&&n>0){var o=i.split("\n",t);t=Math.min(o.length,t),n=Math.min(o[t-1].length,n-1);var r=1==t?n:n+1;return o.slice(0,t-1).join("\n").length+r}return-1},t.getPositionForPath=function(e,t){var n,i=this,r=[];if(!t||!t.length)return r;try{n=o.parse(e)}catch(e){return r}return t.forEach(function(e){var t=i.parsePath(e),o=t.length?"/"+t.join("/"):"",s=n.pointers[o];s&&r.push({path:e,line:s.key?s.key.line:s.value?s.value.line:0,column:s.key?s.key.column:s.value?s.value.column:0})}),r},t.getColorCSS=function(e){var t=document.createElement("div");return t.style.color=e,t.style.color.split(/\s+/).join("").toLowerCase()||null},t.isValidColor=function(e){return!!t.getColorCSS(e)},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&x.push("'"+this.terminals_[y]+"'");var C="";C=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==h){if(1==p)throw new Error(C||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(C||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=i[i.length-1]}f=p,p=d,m=i[i.length-1],g=s[m]&&s[m][d],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,f?(p=f,f=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e){return a.indexOf(typeof e)>=0}function i(e){return'"'+(e=e.replace(l,"\\$&").replace(h,"\\f").replace(c,"\\b").replace(d,"\\n").replace(u,"\\r").replace(p,"\\t"))+'"'}function o(e){return e.replace(f,"~0").replace(m,"~1")}var r={b:"\b",f:"\f",n:"\n",r:"\r",t:"\t",'"':'"',"/":"/","\\":"\\"},s="a".charCodeAt();t.parse=function(e){function t(t,o){n();var r;m(t,"value");var s=d();switch(s){case"t":h("rue"),r=!0;break;case"f":h("alse"),r=!1;break;case"n":h("ull"),r=null;break;case'"':r=i();break;case"[":r=l(t);break;case"{":r=c(t);break;default:u(),"-0123456789".indexOf(s)>=0?r=a():y()}return m(t,"valueEnd"),n(),o&&E="a"&&n<="f"?t+=n.charCodeAt()-s+10:n>="0"&&n<="9"?t+=+n:b()}return String.fromCharCode(t)}function f(){for(var t="";e[E]>="0"&&e[E]<="9";)t+=d();if(t.length)return t;w(),y()}function m(e,t){g(e,t,v())}function g(e,t,n){x[e]=x[e]||{},x[e][t]=n}function v(){return{line:_,column:C,pos:E}}function y(){throw new SyntaxError("Unexpected token "+e[E]+" in JSON at position "+E)}function b(){u(),y()}function w(){if(E>=e.length)throw new SyntaxError("Unexpected end of JSON input")}var x={},_=0,C=0,E=0;return{data:t("",!0),pointers:x}},t.stringify=function(e,t,r){function s(e,t,h){switch(c(h,"value"),typeof e){case"number":case"boolean":a(""+e);break;case"string":a(i(e));break;case"object":null===e?a("null"):"function"==typeof e.toJSON?a(i(e.toJSON())):Array.isArray(e)?function(){if(e.length){a("[");for(var i=t+1,o=0;o10?10:r<0?0:Math.floor(r);r=f&&h(f," "),d=f,u=f;break;case"string":r=r.slice(0,10),d=0,u=0;for(var m=0;m0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},i.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr){f.addClassName(this.dom.tr,"jsoneditor-validation-error"),t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var i=document.createElement("button");i.type="button",i.className="jsoneditor-button jsoneditor-schema-error",i.appendChild(n),i.onmouseover=i.onfocus=function(){for(var e=["right","above","below","left"],t=0;t=e.length;a--)this.removeChild(this.childs[a],!1)}else if("object"===this.type){for(this.childs||(this.childs=[]),a=this.childs.length-1;a>=0;a--)e.hasOwnProperty(this.childs[a].field)||this.removeChild(this.childs[a],!1);s=0;for(var c in e)e.hasOwnProperty(c)&&(n=e[c],void 0===n||n instanceof Function||(o=this.findChildByProperty(c),o?(o.setField(c,!0),o.setValue(n)):(o=new i(this.editor,{field:c,value:n}),r=s=e.childs.length;s--)this.removeChild(this.childs[s],!1)}else if("object"===e.type){for(this.childs||(this.childs=[]),r=0;r=e.childs.length;s--)this.removeChild(this.childs[s],!1)}else this.hideChilds(),delete this.append,delete this.showMore,delete this.expanded,delete this.childs,this.value=e.value;Array.isArray(a)!==Array.isArray(this.childs)&&this.recreateDom(),this.updateDom({updateIndexes:!0}),this.previousValue=this.value},i.prototype.recreateDom=function(){if(this.dom&&this.dom.tr&&this.dom.tr.parentNode){var e=this._detachFromDom();this.clearDom(),this._attachToDom(e)}else this.clearDom()},i.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},i.prototype.getInternalValue=function(){return"array"===this.type?{type:this.type,childs:this.childs.map(function(e){return e.getInternalValue()})}:"object"===this.type?{type:this.type,childs:this.childs.map(function(e){return{field:e.getField(),value:e.getInternalValue()}})}:(void 0===this.value&&this._getDomValue(),{type:this.type,value:this.value})},i.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},i.prototype.getNodePath=function(){var e=this.parent?this.parent.getNodePath():[];return e.push(this),e},i.prototype.clone=function(){var e=new i(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.previousField=this.previousField,e.value=this.value,e.valueInnerText=this.valueInnerText,e.previousValue=this.previousValue,e.expanded=this.expanded,e.visibleChilds=this.visibleChilds,this.childs){var t=[];this.childs.forEach(function(n){var i=n.clone();i.setParent(e),t.push(i)}),e.childs=t}else e.childs=void 0;return e},i.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-button jsoneditor-expanded"),this.showChilds(),!1!==e&&this.childs.forEach(function(t){t.expand(e)}))},i.prototype.collapse=function(e){this.childs&&(this.hideChilds(),!1!==e&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-button jsoneditor-collapsed"),this.expanded=!1)},i.prototype.showChilds=function(){if(this.childs&&this.expanded){var e=this.dom.tr,t=e?e.parentNode:void 0;if(t){var n=this.getAppendDom();if(!n.parentNode){var i=e.nextSibling;i?t.insertBefore(n,i):t.appendChild(n)}for(var o=Math.min(this.childs.length,this.visibleChilds),i=this._getNextTr(),r=0;rthis.visibleChilds){var o=this.childs[this.visibleChilds-1];this.insertBefore(e,o)}else this.appendChild(e);else this.insertBefore(e,t);n&&n.removeChild(i)}},i.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(this.visibleChilds++,"object"===this.type&&void 0==e.field&&e.setField(""),t===this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var n=this.childs.indexOf(t);if(-1==n)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(n,0,e)}if(this.expanded){var i=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(i,o),e.showChilds(),this.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.insertAfter=function(e,t){if(this._hasChilds()){var n=this.childs.indexOf(t),i=this.childs[n+1];i?this.insertBefore(e,i):this.appendChild(e)}},i.prototype.search=function(e,t){Array.isArray(t)||(t=[]);var n,i=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!==this.field&&t.length<=this.MAX_SEARCH_RESULTS){n=String(this.field).toLowerCase().indexOf(i),-1!==n&&(this.searchField=!0,t.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds())this.childs&&this.childs.forEach(function(n){n.search(e,t)});else if(void 0!==this.value&&t.length<=this.MAX_SEARCH_RESULTS){var o=String(this.value).toLowerCase();n=o.indexOf(i),-1!==n&&(this.searchValue=!0,t.push({node:this,elem:"value"})),this._updateDomValue()}return t},i.prototype.scrollTo=function(e){this.expandPathToNode(),this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},i.prototype.expandPathToNode=function(){for(var e=this;e&&e.parent;){for(var t="array"===e.parent.type?e.index:e.parent.childs.indexOf(e);e.parent.visibleChilds9466848e5&&!isNaN(new Date(n).valueOf())?(this.dom.date||(this.dom.date=document.createElement("div"),this.dom.date.className="jsoneditor-date",this.dom.value.parentNode.appendChild(this.dom.date)),this.dom.date.innerHTML=new Date(n).toISOString(),this.dom.date.title=new Date(n).toString()):this.dom.date&&(this.dom.date.parentNode.removeChild(this.dom.date),delete this.dom.date),f.stripFormatting(e)}},i.prototype._deleteDomColor=function(){this.dom.color&&(this.dom.tdColor.parentNode.removeChild(this.dom.tdColor),delete this.dom.tdColor,delete this.dom.color,this.dom.value.style.color="")},i.prototype._updateDomField=function(){var e=this.dom.field;if(e){""==String(this.field)&&"array"!=this.parent.type?f.addClassName(e,"jsoneditor-empty"):f.removeClassName(e,"jsoneditor-empty"),this.searchFieldActive?f.addClassName(e,"jsoneditor-highlight-active"):f.removeClassName(e,"jsoneditor-highlight-active"),this.searchField?f.addClassName(e,"jsoneditor-highlight"):f.removeClassName(e,"jsoneditor-highlight"),f.stripFormatting(e)}},i.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=f.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);t!==this.field&&(this.field=t,this._debouncedOnChangeField())}catch(t){if(this.field=void 0,!0!==e)throw t}},i.prototype.validate=function(){var e=[];if("object"===this.type){for(var t={},n=[],i=0;i0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:m("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");n.type="button",e.drag=n,n.className="jsoneditor-button jsoneditor-dragarea",n.title=m("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-button jsoneditor-contextmenu",o.title=m("actionsMenu"),i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],r=e[e.length-1],s=n.parent,a=i.getNodeFromTarget(t.target),l=n.editor,c=f.getAbsoluteTop(a.dom.tr)-f.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=f.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=f.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getDomSelection(),oldPaths:e.map(o),oldParent:s,oldNextNode:s.childs[r.getIndex()+1]||s.append,oldParentPathRedo:s.getInternalPath(),oldIndexRedo:n.getIndex(),mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,a,l,c,h,d,u,p,m,g,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,C=e[0];if(n=C.dom.tr,d=f.getAbsoluteTop(n),m=n.offsetHeight,wu+m&&(c=void 0)),c&&(e.forEach(function(e){c.parent.moveBefore(e,c)}),_=!0)}else{var E=e[e.length-1];if(a=E.expanded&&E.append?E.append.getDom():E.dom.tr,s=a?a.nextSibling:void 0){p=f.getAbsoluteTop(s),r=s;do{h=i.getNodeFromTarget(r),r&&(g=r.nextSibling?f.getAbsoluteTop(r.nextSibling):0,y=r?g-p:0,h&&h.parent.childs.length==e.length&&h.parent.childs[e.length-1]==E&&(d+=27),r=r.nextSibling)}while(r&&w>d+y);if(h&&h.parent){var S=x-b.drag.mouseX,k=Math.round(S/24/2),j=b.drag.level+k,N=h.getLevel();for(o=h.dom.tr&&h.dom.tr.previousSibling;N0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],k=S[0],j=S[S.length-1];if(13==y){if(b==this.dom.value)this.editable.value&&!e.ctrlKey||f.isUrl(this.value)&&(window.open(this.value,"_blank"),C=!0);else if(b==this.dom.expand){var N=this._hasChilds();if(N){var T=e.ctrlKey;this._onExpand(T),b.focus(),C=!0}}}else if(68==y)w&&E&&(i.onDuplicate(S),C=!0);else if(69==y)w&&(this._onExpand(x),b.focus(),C=!0);else if(77==y&&E)w&&(this.showContextMenu(b),C=!0);else if(46==y&&E)w&&(i.onRemove(S),C=!0);else if(45==y&&E)w&&!x?(this._onInsertBefore(),C=!0):w&&x&&(this._onInsertAfter(),C=!0);else if(35==y){if(_){var I=this._lastNode();I&&I.focus(i.focusElement||this._getElementName(b)),C=!0}}else if(36==y){if(_){var O=this._firstNode();O&&O.focus(i.focusElement||this._getElementName(b)),C=!0}}else if(37==y){if(_&&!x){var A=this._previousElement(b);A&&this.focus(this._getElementName(A)),C=!0}else if(_&&x&&E){if(j.expanded){var P=j.getAppendDom();o=P?P.nextSibling:void 0}else{var D=j.getDom();o=D.nextSibling}o&&(n=i.getNodeFromTarget(o),s=o.nextSibling,M=i.getNodeFromTarget(s),n&&n instanceof v&&1!=j.parent.childs.length&&M&&M.parent&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=M.getIndex(),u=c.getInternalPath(),p=M.parent.getInternalPath(),S.forEach(function(e){M.parent.moveBefore(e,M)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:k.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()})))}}else if(38==y)_&&!x?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(b))),C=!0):!_&&w&&x&&E?(t=this._previousNode(),t&&(g=this.editor.multiselection,g.start=g.start||this,g.end=t,m=this.editor._findTopLevelNodes(g.start,g.end),this.editor.select(m),t.focus("field")),C=!0):_&&x&&E&&(t=k._previousNode(),t&&t.parent&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=t.getIndex(),u=c.getInternalPath(),p=t.parent.getInternalPath(),S.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:k.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()})),C=!0);else if(39==y){if(_&&!x){var L=this._nextElement(b);L&&this.focus(this._getElementName(L)),C=!0}else if(_&&x&&E){D=k.getDom();var R=D.previousSibling;R&&(t=i.getNodeFromTarget(R))&&t.parent&&!t.isVisible()&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=t.getIndex(),u=c.getInternalPath(),p=t.parent.getInternalPath(),S.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:k.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()}))}}else if(40==y)if(_&&!x)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(b))),C=!0;else if(!_&&w&&x&&E)n=this._nextNode(),n&&(g=this.editor.multiselection,g.start=g.start||this,g.end=n,m=this.editor._findTopLevelNodes(g.start,g.end),this.editor.select(m),n.focus("field")),C=!0;else if(_&&x&&E){n=j.expanded?j.append?j.append._nextNode():void 0:j._nextNode(),n&&!n.isVisible()&&(n=n.parent.showMore),n&&n instanceof v&&(n=j);var M=n&&(n._nextNode()||n.parent.append);M&&M.parent&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=M.getIndex(),u=c.getInternalPath(),p=M.parent.getInternalPath(),S.forEach(function(e){M.parent.moveBefore(e,M)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldParentPathRedo:u,newParentPathRedo:p,oldIndexRedo:h,newIndexRedo:d,oldIndex:l.getIndex(),newIndex:k.getIndex(),oldSelection:a,newSelection:this.editor.getDomSelection()})),C=!0}C&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.prototype._showColorPicker=function(){if("function"==typeof this.editor.options.onColorPicker&&this.dom.color){var e=this;e._deleteDomColor(),e.updateDom();var t=l(this.dom.color,this.editor.frame);this.editor.options.onColorPicker(t,this.value,function(t){"string"==typeof t&&t!==e.value&&(e._deleteDomColor(),e.value=t,e.updateDom(),e._debouncedOnChangeValue())})}},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,r=t.editor,s=t.getIndex();r.highlighter.unhighlight();var a=r.getDomSelection();i.blurNodes(e);var l=r.getDomSelection(),c=e.map(o);e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e,paths:c,parentPath:n.getInternalPath(),index:s,oldSelection:a,newSelection:l})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var s=r.getDomSelection(),a=t,l=e.map(function(e){var t=e.clone();return n.insertAfter(t,a),a=t,t});1===e.length?l[0].focus():r.select(l);var c=r.getDomSelection();r._onAction("duplicateNodes",{paths:e.map(o),clonePaths:l.map(o),afterPath:t.getInternalPath(),parentPath:n.getInternalPath(),oldSelection:s,newSelection:c})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0);var s=this.getInternalPath();this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var a=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],paths:[r.getInternalPath()],beforePath:s,parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:a})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],paths:[r.getInternalPath()],afterPath:this.getInternalPath(),parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[r],paths:[r.getInternalPath()],parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getDomSelection();this.changeType(e);var i=this.editor.getDomSelection();this.editor._onAction("changeType",{path:this.getInternalPath(),oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var n=this.childs;this.childs=this.childs.concat();var i="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return i*a(e.field,t.field)}):this.childs.sort(function(t,n){var o=t.getNestedChild(e),r=n.getNestedChild(e);if(!o)return i;if(!r)return-i;var s=o.value,l=r.value;return"string"!=typeof s&&"string"!=typeof l?s>l?i:s/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=f.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return f.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;n="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function d(e){this.runtime=e}function u(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[v]}]},avg:{_func:this._functionAvg,_signature:[{types:[C]}]},ceil:{_func:this._functionCeil,_signature:[{types:[v]}]},contains:{_func:this._functionContains,_signature:[{types:[b,w]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[v]}]},length:{_func:this._functionLength,_signature:[{types:[b,w,x]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[w]}]},max:{_func:this._functionMax,_signature:[{types:[C,E]}]},merge:{_func:this._functionMerge,_signature:[{types:[x],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[w]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[C]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[C,E]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[w]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[x]}]},values:{_func:this._functionValues,_signature:[{types:[x]}]},sort:{_func:this._functionSort,_signature:[{types:[E,C]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[w]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[E]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,w]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function p(e){return(new h).parse(e)}function f(e){return(new c).tokenize(e)}function m(e,t){var n=new h,i=new u,o=new d(i);i._interpreter=o;var r=n.parse(t);return o.search(r,e)}var g;g="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var v=0,y=1,b=2,w=3,x=4,_=6,C=8,E=9,S={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},k={"<":!0,">":!0,"=":!0,"!":!0},j={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var n,i,o;this._current"===n?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===n&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,n=this._current,i=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(n.indexOf(e)>=0)return!0;if(!(i.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var N={};N.EOF=0,N.UnquotedIdentifier=0,N.QuotedIdentifier=0,N.Rbracket=0,N.Rparen=0,N.Comma=0,N.Rbrace=0,N.Number=0,N.Current=0,N.Expref=0,N.Pipe=1,N.Or=2,N.And=3,N.EQ=5,N.GT=5,N.LT=5,N.GTE=5,N.LTE=5,N.NE=5,N.Flatten=9,N.Star=20,N.Filter=21,N.Dot=40,N.Not=45,N.Lbrace=50,N.Lbracket=55,N.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var n=this._lookaheadToken(0),i=new Error("Unexpected token type: "+n.type+", value: "+n.value);throw i.name="ParserError",i}return t},_loadTokens:function(e){var t=new c,n=t.tokenize(e);n.push({type:"EOF",value:"",start:e.length}),this.tokens=n},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var n=this.nud(t),i=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(N[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var n=this._lookaheadToken(0),i=new Error("Sytanx error, unexpected token: "+n.value+"("+n.type+")");throw i.name="ParserError",i}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,n,i,o=[],r=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),r.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),n=this.expression(0),i={type:"KeyValuePair",name:t,value:n},o.push(i),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:o}}},d.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,l,c,h,d,u,p,f,m;switch(e.type){case"Field":return null===s?null:n(s)?(u=s[e.name],void 0===u?null:u):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mw;m+=x)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(f=[],m=0;m<_.length;m++)null!==(l=this.visit(e.children[1],_[m]))&&f.push(l);return f;case"ValueProjection":if(_=this.visit(e.children[0],s),!n(_))return null;f=[];var C=r(_);for(m=0;md;break;case"GTE":c=h>=d;break;case"LT":c=h=e&&(t=n<0?e-1:e),t}},u.prototype={callFunction:function(e,t){var n=this.functionTable[e];if(void 0===n)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,n._signature),n._func.call(this,t)},_validateArgs:function(e,t,n){var i;if(n[n.length-1].variadic){if(t.length=0;i--)n+=t[i];return n}var o=e[0].slice(0);return o.reverse(),o},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,n=e[0],i=0;i=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return n(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],n=this._interpreter,i=e[0],o=e[1],r=0;r0){if(this._getTypeName(e[0][0])===v)return Math.max.apply(Math,e[0]);for(var t=e[0],n=t[0],i=1;i0){if(this._getTypeName(e[0][0])===v)return Math.min.apply(Math,e[0]);for(var t=e[0],n=t[0],i=1;ia?1:ss&&(s=n,t=o[a]);return t},_functionMinBy:function(e){for(var t,n,i=e[1],o=e[0],r=this.createKeyFunction(i,[v,b]),s=1/0,a=0;am)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.className="jsoneditor-append",t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="button",i.className="jsoneditor-button jsoneditor-contextmenu",i.title="Click to open the actions menu (Ctrl+M)",e.menu=i,n.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="("+s("empty")+")",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.getPath=function(){return null},t.prototype.getIndex=function(){return null},t.prototype.updateDom=function(e){var t=this.dom,n=t.td;n&&(n.style.paddingLeft=24*this.getLevel()+26+"px");var i=t.text;i&&(i.innerHTML="("+s("empty")+" "+this.parent.type+")");var o=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&o.appendChild(t.tdDrag),t.tdMenu&&o.appendChild(t.tdMenu),o.appendChild(n)):t.tr.firstChild&&(t.tdDrag&&o.removeChild(t.tdDrag),t.tdMenu&&o.removeChild(t.tdMenu),o.removeChild(n))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,n){var i=this,o=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:a}];new r(l,{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(13),r=n(11),s=n(16).translate;e.exports=i},function(e,t,n){"use strict";function i(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,n=document.createElement("a");n.appendChild(document.createTextNode(o("showMore"))),n.href="#",n.onclick=function(n){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var i=document.createElement("a");i.appendChild(document.createTextNode(o("showAll"))),i.href="#",i.onclick=function(n){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var r=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());r.className="jsoneditor-show-more",r.appendChild(s),r.appendChild(n),r.appendChild(document.createTextNode(". ")),r.appendChild(i),r.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(r);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=r,this.dom.moreText=s}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return o("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var o=n(16).translate;e.exports=i},function(e,t,n){function i(e,t){var n='
'+r("sort")+"
"+r("sortFieldLabel")+'
'+r("sortDirectionLabel")+'
';o({parent:t,content:n,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-sort"}).afterCreate(function(t){function n(e){s.value=e,s.className="jsoneditor-button-group jsoneditor-button-group-value-"+s.value}var i=t.modalElem().querySelector("form"),o=t.modalElem().querySelector("#ok"),r=t.modalElem().querySelector("#field"),s=t.modalElem().querySelector("#direction"),a="array"===e.type?e.getChildPaths():["."];a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,r.appendChild(t)}),r.value=e.sortedBy?e.sortedBy.path:a[0],n(e.sortedBy?e.sortedBy.direction:"asc"),s.onclick=function(e){n(e.target.getAttribute("data-value"))},o.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close();var i=r.value,o="."===i?[]:i.split(".").slice(1);e.sortedBy={path:i,direction:s.value},e.sort(o,s.value)},i&&(i.onsubmit=o.onclick)}).afterClose(function(e){e.destroy()}).show()}var o=n(24),r=n(16).translate;e.exports=i},function(e,t,n){var i,o,r;!function(n,s){"use strict";o=[],i=s,void 0!==(r="function"==typeof i?i.apply(t,o):i)&&(e.exports=r)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function n(){var e=[];return{watch:e.push.bind(e),trigger:function(t,n){for(var i=!0,o={detail:n,preventDefault:function(){i=!1}},r=0;r
'+a("transform")+'

Enter a JMESPath query to filter, sort, or transform the JSON data.
To learn JMESPath, go to the interactive tutorial.

'+a("transformWizardLabel")+'
'+a("transformWizardFilter")+'
'+a("transformWizardSortBy")+'
'+a("transformWizardSelectFields")+'
'+a("transformQueryLabel")+'
'+a("transformPreviewLabel")+'
';r({parent:t,content:i,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-transform",focus:!1}).afterCreate(function(t){function i(e){return"."===e[0]?"."===e?"@":e.slice(1):e}function r(){if(p.value&&f.value&&m.value){var t=p.value,n=JSON.stringify(e._stringCast(m.value));b.value="[? "+t+" "+f.value+" `"+n+"`]"}else b.value="[*]";if(g.value&&v.value){var i=g.value;"desc"===v.value?b.value+=" | reverse(sort_by(@, &"+i+"))":b.value+=" | sort_by(@, &"+i+")"}if(y.value){for(var o=[],r=0;r1&&(b.value+=".{"+o.map(function(e){var t=e.split(".");return t[t.length-1]+": "+e}).join(", ")+"}")}j()}function a(){try{var e=o.search(n,b.value),t=JSON.stringify(e,null,2).split("\n");t.length>c&&(t=t.slice(0,c).concat(["..."])),w.className="jsoneditor-transform-preview",w.value=t.join("\n"),u.disabled=!1}catch(e){w.className="jsoneditor-transform-preview jsoneditor-error",w.value=e.toString(),u.disabled=!0}}var h=t.modalElem(),d=h.querySelector("#wizard"),u=h.querySelector("#ok"),p=h.querySelector("#filterField"),f=h.querySelector("#filterRelation"),m=h.querySelector("#filterValue"),g=h.querySelector("#sortField"),v=h.querySelector("#sortOrder"),y=h.querySelector("#selectFields"),b=h.querySelector("#query"),w=h.querySelector("#preview");Array.isArray(n)||(d.style.display="none",d.parentNode.style.fontStyle="italic",d.parentNode.appendChild(document.createTextNode("(wizard not available for objects, only for arrays)"))),e.getChildPaths().forEach(function(e){var t=i(e),n=document.createElement("option");n.text=t,n.value=t,p.appendChild(n);var o=document.createElement("option");o.text=t,o.value=t,g.appendChild(o)});var x=e.getChildPaths(!0).filter(function(e){return"."!==e});x.length>0?x.forEach(function(e){var t=i(e),n=document.createElement("option");n.text=t,n.value=t,y.appendChild(n)}):h.querySelector("#selectFieldsPart").style.display="none";var _=new s(p,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),C=new s(f,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"compare..."}),E=new s(g,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),S=new s(v,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"order..."}),k=new s(y,{multiple:!0,clearable:!0,defaultSelected:!1});_.on("selectr.change",r),C.on("selectr.change",r),m.oninput=r,E.on("selectr.change",r),S.on("selectr.change",r),k.on("selectr.change",r),h.querySelector(".pico-modal-contents").onclick=function(e){e.preventDefault()},b.value=Array.isArray(n)?"[*]":"@";var j=l(a,300);b.oninput=j,j(),u.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close(),e.transform(b.value)},setTimeout(function(){b.select(),b.focus(),b.selectionStart=3,b.selectionEnd=3})}).afterClose(function(e){e.destroy()}).show()}var o=n(19),r=n(24),s=n(26),a=n(16).translate,l=n(13).debounce,c=100;e.exports=i},function(e,t){"use strict";function n(e,t){return e.hasOwnProperty(t)&&(!0===e[t]||e[t].length)}function i(e,t,n){e.parentNode?e.parentNode.parentNode||t.appendChild(e.parentNode):t.appendChild(e),s.removeClass(e,"excluded"),n||(e.innerHTML=e.textContent)}var o={defaultSelected:!0,width:"auto",disabled:!1,searchable:!0,clearable:!1,sortSelected:!1,allowDeselect:!1,closeOnScroll:!1,nativeDropdown:!1,placeholder:"Select an option...",taggable:!1,tagPlaceholder:"Enter a tag..."},r=function(){};r.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t-1},truncate:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}},a=function(){if(this.items.length){var e=document.createDocumentFragment();if(this.config.pagination){var t=this.pages.slice(0,this.pageIndex);s.each(t,function(t,n){s.each(n,function(t,n){i(n,e,this.customOption)},this)},this)}else s.each(this.items,function(t,n){i(n,e,this.customOption)},this);e.childElementCount&&(s.removeClass(this.items[this.navIndex],"active"),this.navIndex=e.querySelector(".selectr-option").idx,s.addClass(this.items[this.navIndex],"active")),this.tree.appendChild(e)}},l=function(e){var t=e.target;this.container.contains(t)||!this.opened&&!s.hasClass(this.container,"notice")||this.close()},c=function(e,t){t=t||e;var n=this.customOption?this.config.renderOption(t):e.textContent,i=s.createElement("li",{class:"selectr-option",html:n,role:"treeitem","aria-selected":!1});return i.idx=e.idx,this.items.push(i),e.defaultSelected&&this.defaultSelected.push(e.idx),e.disabled&&(i.disabled=!0,s.addClass(i,"disabled")),i},h=function(){this.requiresPagination=this.config.pagination&&this.config.pagination>0,n(this.config,"width")&&(s.isInt(this.config.width)?this.width=this.config.width+"px":"auto"===this.config.width?this.width="100%":s.includes(this.config.width,"%")&&(this.width=this.config.width)),this.container=s.createElement("div",{class:"selectr-container"}),this.config.customClass&&s.addClass(this.container,this.config.customClass),this.mobileDevice?s.addClass(this.container,"selectr-mobile"):s.addClass(this.container,"selectr-desktop"),this.el.tabIndex=-1,this.config.nativeDropdown||this.mobileDevice?s.addClass(this.el,"selectr-visible"):s.addClass(this.el,"selectr-hidden"),this.selected=s.createElement("div",{class:"selectr-selected",disabled:this.disabled,tabIndex:1,"aria-expanded":!1}),this.label=s.createElement(this.el.multiple?"ul":"span",{class:"selectr-label"});var e=s.createElement("div",{class:"selectr-options-container"});if(this.tree=s.createElement("ul",{class:"selectr-options",role:"tree","aria-hidden":!0,"aria-expanded":!1}),this.notice=s.createElement("div",{class:"selectr-notice"}),this.el.setAttribute("aria-hidden",!0),this.disabled&&(this.el.disabled=!0),this.el.multiple&&(s.addClass(this.label,"selectr-tags"),s.addClass(this.container,"multiple"),this.tags=[],this.selectedValues=this.getSelectedProperties("value"),this.selectedIndexes=this.getSelectedProperties("idx")),this.selected.appendChild(this.label),this.config.clearable&&(this.selectClear=s.createElement("button",{class:"selectr-clear",type:"button"}),this.container.appendChild(this.selectClear),s.addClass(this.container,"clearable")),this.config.taggable){var t=s.createElement("li",{class:"input-tag"});this.input=s.createElement("input",{class:"selectr-tag-input",placeholder:this.config.tagPlaceholder,tagIndex:0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),t.appendChild(this.input),this.label.appendChild(t),s.addClass(this.container,"taggable"),this.tagSeperators=[","],this.config.tagSeperators&&(this.tagSeperators=this.tagSeperators.concat(this.config.tagSeperators))}this.config.searchable&&(this.input=s.createElement("input",{class:"selectr-input",tagIndex:-1,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),this.inputClear=s.createElement("button",{class:"selectr-input-clear",type:"button"}),this.inputContainer=s.createElement("div",{class:"selectr-input-container"}),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.inputClear),e.appendChild(this.inputContainer)),e.appendChild(this.notice),e.appendChild(this.tree),this.items=[],this.options=[],this.el.options.length&&(this.options=[].slice.call(this.el.options));var i=!1,o=0;if(this.el.children.length&&s.each(this.el.children,function(e,t){"OPTGROUP"===t.nodeName?(i=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.label+"
  • "}),s.each(t.children,function(e,t){t.idx=o,i.appendChild(c.call(this,t,i)),o++},this)):(t.idx=o,c.call(this,t),o++)},this),this.config.data&&Array.isArray(this.config.data)){this.data=[];var r,a=!1;i=!1,o=0,s.each(this.config.data,function(e,t){n(t,"children")?(a=s.createElement("optgroup",{label:t.text}),i=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.text+"
  • "}),s.each(t.children,function(e,t){r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=n(t,"disabled"),this.options.push(r),a.appendChild(r),r.idx=o,i.appendChild(c.call(this,r,t)),this.data[o]=t,o++},this)):(r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=n(t,"disabled"),this.options.push(r),r.idx=o,c.call(this,r,t),this.data[o]=t,o++)},this)}this.setSelected(!0);var l;this.navIndex=0;for(var h=0;h0)&&this.change(this.navIndex);var t,n=this.items[this.navIndex];switch(e.which){case 38:t=0,this.navIndex>0&&this.navIndex--;break;case 40:t=1,this.navIndexthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(i.top+i.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&f.call(this)):0===this.navIndex?this.tree.scrollTop=0:i.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(i.top-this.optsRect.top)),n&&s.removeClass(n,"active"),s.addClass(this.items[this.navIndex],"active")},u=function(e){var t,n=this,i=document.createDocumentFragment(),o=this.options[e.idx],r=this.data?this.data[e.idx]:o,a=this.customSelected?this.config.renderSelection(r):o.textContent,l=s.createElement("li",{class:"selectr-tag",html:a}),c=s.createElement("button",{class:"selectr-tag-remove",type:"button"});if(l.appendChild(c),l.idx=e.idx,l.tag=o.value,this.tags.push(l),this.config.sortSelected){var h=this.tags.slice();t=function(e,t){e.replace(/(\d+)|(\D+)/g,function(e,n,i){t.push([n||1/0,i||""])})},h.sort(function(e,i){var o,r,s=[],a=[];for(!0===n.config.sortSelected?(o=e.tag,r=i.tag):"text"===n.config.sortSelected&&(o=e.textContent,r=i.textContent),t(o,s),t(r,a);s.length&&a.length;){var l=s.shift(),c=a.shift(),h=l[0]-c[0]||l[1].localeCompare(c[1]);if(h)return h}return s.length-a.length}),s.each(h,function(e,t){i.appendChild(t)}),this.label.innerHTML=""}else i.appendChild(l);this.config.taggable?this.label.insertBefore(i,this.input.parentNode):this.label.appendChild(i)},p=function(e){var t=!1;s.each(this.tags,function(n,i){i.idx===e.idx&&(t=i)},this),t&&(this.label.removeChild(t),this.tags.splice(this.tags.indexOf(t),1))},f=function(){var e=this.tree;if(e.scrollTop>=e.scrollHeight-e.offsetHeight&&this.pageIndex"+n[0]+"")},v=function(e,t){if(t=t||{},!e)throw new Error("You must supply either a HTMLSelectElement or a CSS3 selector string.");if(this.el=e,"string"==typeof e&&(this.el=document.querySelector(e)),null===this.el)throw new Error("The element you passed to Selectr can not be found.");if("select"!==this.el.nodeName.toLowerCase())throw new Error("The element you passed to Selectr is not a HTMLSelectElement.");this.render(t)};v.prototype.render=function(e){if(!this.rendered){this.config=s.extend(o,e),this.originalType=this.el.type,this.originalIndex=this.el.tabIndex,this.defaultSelected=[],this.originalOptionCount=this.el.options.length,(this.config.multiple||this.config.taggable)&&(this.el.multiple=!0),this.disabled=n(this.config,"disabled"),this.opened=!1,this.config.taggable&&(this.config.searchable=!1),this.navigating=!1,this.mobileDevice=!1,/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent)&&(this.mobileDevice=!0),this.customOption=this.config.hasOwnProperty("renderOption")&&"function"==typeof this.config.renderOption,this.customSelected=this.config.hasOwnProperty("renderSelection")&&"function"==typeof this.config.renderSelection,r.mixin(this),h.call(this),this.bindEvents(),this.update(),this.optsRect=s.rect(this.tree),this.rendered=!0,this.el.multiple||(this.el.selectedIndex=this.selectedIndex);var t=this;setTimeout(function(){t.emit("selectr.init")},20)}},v.prototype.getSelected=function(){return this.el.querySelectorAll("option:checked")},v.prototype.getSelectedProperties=function(e){var t=this.getSelected();return[].slice.call(t).map(function(t){return t[e]}).filter(function(e){return null!==e&&void 0!==e})},v.prototype.bindEvents=function(){var e=this;if(this.events={},this.events.dismiss=l.bind(this),this.events.navigate=d.bind(this),this.events.reset=this.reset.bind(this),this.config.nativeDropdown||this.mobileDevice){this.container.addEventListener("touchstart",function(t){t.changedTouches[0].target===e.el&&e.toggle()}),(this.config.nativeDropdown||this.mobileDevice)&&this.container.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),t.target===e.el&&e.toggle()});var t=function(e,t){for(var n,i=[],o=e.slice(0),r=0;r-1?o.splice(n,1):i.push(t[r]);return[i,o]};this.el.addEventListener("change",function(n){if(e.el.multiple){var i=e.getSelectedProperties("idx"),o=t(e.selectedIndexes,i);s.each(o[0],function(t,n){e.select(n)},e),s.each(o[1],function(t,n){e.deselect(n)},e)}else e.el.selectedIndex>-1&&e.select(e.el.selectedIndex)})}this.config.nativeDropdown&&this.container.addEventListener("keydown",function(t){"Enter"===t.key&&e.selected===document.activeElement&&(e.toggle(),setTimeout(function(){e.el.focus()},200))}),this.selected.addEventListener("click",function(t){e.disabled||e.toggle(),t.preventDefault(),t.stopPropagation()}),this.label.addEventListener("click",function(t){s.hasClass(t.target,"selectr-tag-remove")&&e.deselect(t.target.parentNode.idx)}),this.selectClear&&this.selectClear.addEventListener("click",this.clear.bind(this)),this.tree.addEventListener("mousedown",function(e){e.preventDefault()}),this.tree.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation();var n=s.closest(t.target,function(e){return e&&s.hasClass(e,"selectr-option")});n&&(s.hasClass(n,"disabled")||(s.hasClass(n,"selected")?(e.el.multiple||!e.el.multiple&&e.config.allowDeselect)&&e.deselect(n.idx):e.select(n.idx),e.opened&&!e.el.multiple&&e.close()))}),this.tree.addEventListener("mouseover",function(t){s.hasClass(t.target,"selectr-option")&&(s.hasClass(t.target,"disabled")||(s.removeClass(e.items[e.navIndex],"active"),s.addClass(t.target,"active"),e.navIndex=[].slice.call(e.items).indexOf(t.target)))}),this.config.searchable&&(this.input.addEventListener("focus",function(t){e.searching=!0}),this.input.addEventListener("blur",function(t){e.searching=!1}),this.input.addEventListener("keyup",function(t){e.search(),e.config.taggable||(this.value.length?s.addClass(this.parentNode,"active"):s.removeClass(this.parentNode,"active"))}),this.inputClear.addEventListener("click",function(t){e.input.value=null,m.call(e),e.tree.childElementCount||a.call(e)})),this.config.taggable&&this.input.addEventListener("keyup",function(t){if(e.search(),e.config.taggable&&this.value.length){var n=this.value.trim();if(13===t.which||s.includes(e.tagSeperators,t.key)){s.each(e.tagSeperators,function(e,t){n=n.replace(t,"")});e.add({value:n,text:n,selected:!0},!0)?(e.close(),m.call(e)):(this.value="",e.setMessage("That tag is already in use."))}}}),this.update=s.debounce(function(){e.opened&&e.config.closeOnScroll&&e.close(),e.width&&(e.container.style.width=e.width),e.invert()},50),this.requiresPagination&&(this.paginateItems=s.debounce(function(){f.call(this)},50),this.tree.addEventListener("scroll",this.paginateItems.bind(this))),document.addEventListener("click",this.events.dismiss),window.addEventListener("keydown",this.events.navigate),window.addEventListener("resize",this.update),window.addEventListener("scroll",this.update),this.el.form&&this.el.form.addEventListener("reset",this.events.reset)},v.prototype.setSelected=function(e){if(this.config.data||this.el.multiple||!this.el.options.length||(0===this.el.selectedIndex&&(this.el.options[0].defaultSelected||this.config.defaultSelected||(this.el.selectedIndex=-1)),this.selectedIndex=this.el.selectedIndex,this.selectedIndex>-1&&this.select(this.selectedIndex)),this.config.multiple&&"select-one"===this.originalType&&!this.config.data&&this.el.options[0].selected&&!this.el.options[0].defaultSelected&&(this.el.options[0].selected=!1),s.each(this.options,function(e,t){t.selected&&t.defaultSelected&&this.select(t.idx)},this),this.config.selectedValue&&this.setValue(this.config.selectedValue),this.config.data){!this.el.multiple&&this.config.defaultSelected&&this.el.selectedIndex<0&&this.select(0);var t=0;s.each(this.config.data,function(e,i){n(i,"children")?s.each(i.children,function(e,n){n.hasOwnProperty("selected")&&!0===n.selected&&this.select(t),t++},this):(i.hasOwnProperty("selected")&&!0===i.selected&&this.select(t),t++)},this)}},v.prototype.destroy=function(){this.rendered&&(this.emit("selectr.destroy"),"select-one"===this.originalType&&(this.el.multiple=!1),this.config.data&&(this.el.innerHTML=""),s.removeClass(this.el,"selectr-hidden"),this.el.form&&s.off(this.el.form,"reset",this.events.reset),s.off(document,"click",this.events.dismiss),s.off(document,"keydown",this.events.navigate),s.off(window,"resize",this.update),s.off(window,"scroll",this.update),this.container.parentNode.replaceChild(this.el,this.container),this.rendered=!1)},v.prototype.change=function(e){var t=this.items[e],n=this.options[e];n.disabled||(n.selected&&s.hasClass(t,"selected")?this.deselect(e):this.select(e),this.opened&&!this.el.multiple&&this.close())},v.prototype.select=function(e){var t=this.items[e],n=[].slice.call(this.el.options),i=this.options[e];if(this.el.multiple){ -if(s.includes(this.selectedIndexes,e))return!1;if(this.config.maxSelections&&this.tags.length===this.config.maxSelections)return this.setMessage("A maximum of "+this.config.maxSelections+" items can be selected.",!0),!1;this.selectedValues.push(i.value),this.selectedIndexes.push(e),u.call(this,t)}else{var o=this.data?this.data[e]:i;this.label.innerHTML=this.customSelected?this.config.renderSelection(o):i.textContent,this.selectedValue=i.value,this.selectedIndex=e,s.each(this.options,function(t,n){var i=this.items[t];t!==e&&(i&&s.removeClass(i,"selected"),n.selected=!1,n.removeAttribute("selected"))},this)}s.includes(n,i)||this.el.add(i),t.setAttribute("aria-selected",!0),s.addClass(t,"selected"),s.addClass(this.container,"has-selected"),i.selected=!0,i.setAttribute("selected",""),this.emit("selectr.change",i),this.emit("selectr.select",i)},v.prototype.deselect=function(e,t){var n=this.items[e],i=this.options[e];if(this.el.multiple){var o=this.selectedIndexes.indexOf(e);this.selectedIndexes.splice(o,1);var r=this.selectedValues.indexOf(i.value);this.selectedValues.splice(r,1),p.call(this,n),this.tags.length||s.removeClass(this.container,"has-selected")}else{if(!t&&!this.config.clearable&&!this.config.allowDeselect)return!1;this.label.innerHTML="",this.selectedValue=null,this.el.selectedIndex=this.selectedIndex=-1,s.removeClass(this.container,"has-selected")}this.items[e].setAttribute("aria-selected",!1),s.removeClass(this.items[e],"selected"),i.selected=!1,i.removeAttribute("selected"),this.emit("selectr.change",null),this.emit("selectr.deselect",i)},v.prototype.setValue=function(e){var t=Array.isArray(e);if(t||(e=e.toString().trim()),!this.el.multiple&&t)return!1;s.each(this.options,function(n,i){(t&&s.includes(e.toString(),i.value)||i.value===e)&&this.change(i.idx)},this)},v.prototype.getValue=function(e,t){var n;if(this.el.multiple)e?this.selectedIndexes.length&&(n={},n.values=[],s.each(this.selectedIndexes,function(e,t){var i=this.options[t];n.values[e]={value:i.value,text:i.textContent}},this)):n=this.selectedValues.slice();else if(e){var i=this.options[this.selectedIndex];n={value:i.value,text:i.textContent}}else n=this.selectedValue;return e&&t&&(n=JSON.stringify(n)),n},v.prototype.add=function(e,t){if(e){if(this.data=this.data||[],this.items=this.items||[],this.options=this.options||[],Array.isArray(e))s.each(e,function(e,n){this.add(n,t)},this);else if("[object Object]"===Object.prototype.toString.call(e)){if(t){var n=!1;if(s.each(this.options,function(t,i){i.value.toLowerCase()===e.value.toLowerCase()&&(n=!0)}),n)return!1}var i=s.createElement("option",e);return this.data.push(e),this.options.push(i),i.idx=this.options.length>0?this.options.length-1:0,c.call(this,i),e.selected&&this.select(i.idx),i}return this.setPlaceholder(),this.config.pagination&&this.paginate(),!0}},v.prototype.remove=function(e){var t=[];if(Array.isArray(e)?s.each(e,function(n,i){s.isInt(i)?t.push(this.getOptionByIndex(i)):"string"==typeof e&&t.push(this.getOptionByValue(i))},this):s.isInt(e)?t.push(this.getOptionByIndex(e)):"string"==typeof e&&t.push(this.getOptionByValue(e)),t.length){var n;s.each(t,function(e,t){n=t.idx,this.el.remove(t),this.options.splice(n,1);var i=this.items[n].parentNode;i&&i.removeChild(this.items[n]),this.items.splice(n,1),s.each(this.options,function(e,t){t.idx=e,this.items[e].idx=e},this)},this),this.setPlaceholder(),this.config.pagination&&this.paginate()}},v.prototype.removeAll=function(){this.clear(!0),s.each(this.el.options,function(e,t){this.el.remove(t)},this),s.truncate(this.tree),this.items=[],this.options=[],this.data=[],this.navIndex=0,this.requiresPagination&&(this.requiresPagination=!1,this.pageIndex=1,this.pages=[]),this.setPlaceholder()},v.prototype.search=function(e){if(!this.navigating){e=e||this.input.value;var t=document.createDocumentFragment();if(this.removeMessage(),s.truncate(this.tree),e.length>1)if(s.each(this.options,function(n,o){var r=this.items[o.idx];s.includes(o.textContent.toLowerCase(),e.toLowerCase())&&!o.disabled?(i(r,t,this.customOption),s.removeClass(r,"excluded"),this.customOption||(r.innerHTML=g(e,o))):s.addClass(r,"excluded")},this),t.childElementCount){var n=this.items[this.navIndex],o=t.firstElementChild;s.removeClass(n,"active"),this.navIndex=o.idx,s.addClass(o,"active")}else this.config.taggable||this.setMessage("no results.");else a.call(this);this.tree.appendChild(t)}},v.prototype.toggle=function(){this.disabled||(this.opened?this.close():this.open())},v.prototype.open=function(){var e=this;return!!this.options.length&&(this.opened||this.emit("selectr.open"),this.opened=!0,this.mobileDevice||this.config.nativeDropdown?(s.addClass(this.container,"native-open"),void(this.config.data&&s.each(this.options,function(e,t){this.el.add(t)},this))):(s.addClass(this.container,"open"),a.call(this),this.invert(),this.tree.scrollTop=0,s.removeClass(this.container,"notice"),this.selected.setAttribute("aria-expanded",!0),this.tree.setAttribute("aria-hidden",!1),this.tree.setAttribute("aria-expanded",!0),void(this.config.searchable&&!this.config.taggable&&setTimeout(function(){e.input.focus(),e.input.tabIndex=0},10))))},v.prototype.close=function(){if(this.opened&&this.emit("selectr.close"),this.opened=!1,this.mobileDevice||this.config.nativeDropdown)return void s.removeClass(this.container,"native-open");var e=s.hasClass(this.container,"notice");this.config.searchable&&!e&&(this.input.blur(),this.input.tabIndex=-1,this.searching=!1),e&&(s.removeClass(this.container,"notice"),this.notice.textContent=""),s.removeClass(this.container,"open"),s.removeClass(this.container,"native-open"),this.selected.setAttribute("aria-expanded",!1),this.tree.setAttribute("aria-hidden",!0),this.tree.setAttribute("aria-expanded",!1),s.truncate(this.tree),m.call(this)},v.prototype.enable=function(){this.disabled=!1,this.el.disabled=!1,this.selected.tabIndex=this.originalIndex,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=0}),s.removeClass(this.container,"selectr-disabled")},v.prototype.disable=function(e){e||(this.el.disabled=!0),this.selected.tabIndex=-1,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=-1}),this.disabled=!0,s.addClass(this.container,"selectr-disabled")},v.prototype.reset=function(){this.disabled||(this.clear(),this.setSelected(!0),s.each(this.defaultSelected,function(e,t){this.select(t)},this),this.emit("selectr.reset"))},v.prototype.clear=function(e){if(this.el.multiple){if(this.selectedIndexes.length){var t=this.selectedIndexes.slice();s.each(t,function(e,t){this.deselect(t)},this)}}else this.selectedIndex>-1&&this.deselect(this.selectedIndex,e);this.emit("selectr.clear")},v.prototype.serialise=function(e){var t=[];return s.each(this.options,function(e,n){var i={value:n.value,text:n.textContent};n.selected&&(i.selected=!0),n.disabled&&(i.disabled=!0),t[e]=i}),e?JSON.stringify(t):t},v.prototype.serialize=function(e){return this.serialise(e)},v.prototype.setPlaceholder=function(e){e=e||this.config.placeholder||this.el.getAttribute("placeholder"),this.options.length||(e="No options available"),this.placeEl.innerHTML=e},v.prototype.paginate=function(){if(this.items.length){var e=this;return this.pages=this.items.map(function(t,n){return n%e.config.pagination==0?e.items.slice(n,n+e.config.pagination):null}).filter(function(e){return e}),this.pages}},v.prototype.setMessage=function(e,t){t&&this.close(),s.addClass(this.container,"notice"),this.notice.textContent=e},v.prototype.removeMessage=function(){s.removeClass(this.container,"notice"),this.notice.innerHTML=""},v.prototype.invert=function(){var e=s.rect(this.selected),t=this.tree.parentNode.offsetHeight,n=window.innerHeight;e.top+e.height+t>n?(s.addClass(this.container,"inverted"),this.isInverted=!0):(s.removeClass(this.container,"inverted"),this.isInverted=!1),this.optsRect=s.rect(this.tree)},v.prototype.getOptionByIndex=function(e){return this.options[e]},v.prototype.getOptionByValue=function(e){for(var t=!1,n=0,i=this.options.length;n/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[f].substring(n.length)+"",i.push(m),t.appendChild(m)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),d=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==s.style.visibility;if(h.hide(),d)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";function i(){try{this.format()}catch(e){}}var o=n(1),r=n(27),s=n(13),a={};a.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var i=t.ace?t.ace:o;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===i&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&i)try{n(30)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this.validationSequence=0,this.annotations=[],this._debouncedValidate=s.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=i.edit(this.editorDom),f=p.getSession();p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),f.setMode("ace/mode/json"),f.setTabSize(this.indentation),f.setUseSoftTabs(!0),f.setUseWrapMode(!0);var m=f.setAnnotations;f.setAnnotations=function(e){m.call(this,e&&e.length?e:a.annotations)},p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var g=document.createElement("a");g.appendChild(document.createTextNode("powered by ace")),g.href="http://ace.ajax.org",g.target="_blank",g.className="jsoneditor-poweredBy",g.onclick=function(){window.open(g.href,g.target)},this.menu.appendChild(g),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var v=document.createElement("textarea");v.className="jsoneditor-text",v.spellcheck=!1,this.content.appendChild(v),this.textarea=v,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),v.onselect=this._onSelect.bind(this),v.onmousedown=this._onMouseDown.bind(this),v.onblur=this._onBlur.bind(this)}var y=document.createElement("div");y.className="jsoneditor-validation-errors-container",this.dom.validationErrorsContainer=y,this.frame.appendChild(y);var b=document.createElement("div");if(b.style.display="none",b.className="jsoneditor-additional-errors fadein",b.innerHTML="Scroll for more ▿",this.dom.additinalErrorsIndication=b,y.appendChild(b),t.statusBar){s.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var w=document.createElement("div");this.dom.statusBar=w,w.className="jsoneditor-statusbar",this.frame.appendChild(w);var x=document.createElement("span");x.className="jsoneditor-curserinfo-label",x.innerText="Ln:";var _=document.createElement("span");_.className="jsoneditor-curserinfo-val",_.innerText="1",w.appendChild(x),w.appendChild(_);var C=document.createElement("span");C.className="jsoneditor-curserinfo-label",C.innerText="Col:";var E=document.createElement("span");E.className="jsoneditor-curserinfo-val",E.innerText="1",w.appendChild(C),w.appendChild(E),this.curserInfoElements.colVal=E,this.curserInfoElements.lnVal=_;var S=document.createElement("span");S.className="jsoneditor-curserinfo-label",S.innerText="characters selected",S.style.display="none";var k=document.createElement("span");k.className="jsoneditor-curserinfo-count",k.innerText="0",k.style.display="none",this.curserInfoElements.countLabel=S,this.curserInfoElements.countVal=k,w.appendChild(k),w.appendChild(S);var j=document.createElement("span");j.className="jsoneditor-validation-error-icon",j.style.display="none";var N=document.createElement("span");N.className="jsoneditor-validation-error-count",N.style.display="none",this.validationErrorIndication={validationErrorIcon:j,validationErrorCount:N},w.appendChild(N),w.appendChild(j),this.parseErrorIndication=document.createElement("span"),this.parseErrorIndication.className="jsoneditor-parse-error-icon",this.parseErrorIndication.style.display="none",w.appendChild(this.parseErrorIndication)}this.setSchema(this.options.schema,this.options.schemaRefs)},a._onChange=function(){if(!this.onChangeDisabled){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}if(this.options.onChangeText)try{this.options.onChangeText(this.getText())}catch(e){console.error("Error in onChangeText callback: ",e)}}},a._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},a._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfo(),this._emitSelectionChange()},a._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},a._onBlur=function(e){var t=this;setTimeout(function(){t.isFocused||(t._updateCursorInfo(),t._emitSelectionChange()),t.isFocused=!1})},a._updateCursorInfo=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.textarea)setTimeout(function(){var r=s.getInputSelection(o.textarea);r.startIndex!==r.endIndex&&(i=r.endIndex-r.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===r.end.row&&o.cursorInfo.column===r.end.column?(t=r.start.row,n=r.start.column):(t=r.end.row,n=r.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var r=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=r.row+1,n=r.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},this.options.statusBar&&e()}},a._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},a._refreshAnnotations=function(){this.aceEditor&&this.aceEditor.getSession().setAnnotations()},a.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},a.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},a.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},a.repair=function(){var e=this.getText(),t=s.sanitize(e);this.setText(t)},a.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},a.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},a.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},a.update=function(e){this.updateText(JSON.stringify(e,null,this.indentation))},a.get=function(){var e,t=this.getText();try{e=s.parse(t)}catch(n){t=s.sanitize(t),e=s.parse(t)}return e},a.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},a.setText=function(e){var t;t=!0===this.options.escapeUnicode?s.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor&&(this.onChangeDisabled=!0,this.aceEditor.setValue(t,-1),this.onChangeDisabled=!1),this._debouncedValidate()},a.updateText=function(e){this.getText()!==e&&(this.onChangeDisabled=!0,this.setText(e),this.onChangeDisabled=!1)},a.validate=function(){var e,t=!1,n=[],i=[];try{e=this.get(),this.parseErrorIndication.style.display="none",t=!0}catch(e){if(this.getText()){this.parseErrorIndication.style.display="block";var o,r=/\w*line\s*(\d+)\w*/g.exec(e.message);r&&(o=+r[1]),this.parseErrorIndication.title=isNaN(o)?"parse error - check that the json is valid":"parse error on line "+o,i.push({type:"error",message:e.message.replace(/\n/g,"
    "),line:o})}}if(t){if(this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return e.type="validation",s.improveSchemaError(e)}))}this.validationSequence++;var a=this,l=this.validationSequence;this._validateCustom(e).then(function(e){if(l===a.validationSequence){var t=n.concat(i||[]).concat(e||[]);a._renderErrors(t)}}).catch(function(e){console.error(e)})}else this._renderErrors(i||[])},a._validateCustom=function(e){if(this.options.onValidate)try{var t=this.options.onValidate(e);return(s.isPromise(t)?t:Promise.resolve(t)).then(function(e){return Array.isArray(e)?e.filter(function(e){var t=s.isValidValidationError(e);return t||console.warn('Ignoring a custom validation error with invalid structure. Expected structure: {path: [...], message: "..."}. Actual error:',e),t}).map(function(e){return{dataPath:s.stringifyPath(e.path),message:e.message}}):null})}catch(e){return Promise.reject(e)}return Promise.resolve(null)},a._renderErrors=function(e){var t=this,n=0;this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.dom.additinalErrorsIndication.style.display="none",this.content.style.marginBottom="",this.content.style.paddingBottom="");var i=this.getText(),o=[];e.reduce(function(e,t){return-1===e.indexOf(t.dataPath)&&e.push(t.dataPath),e},o);var r=s.getPositionForPath(i,o);if(e.length>0)if(this.aceEditor)this.annotations=r.map(function(t){var n=e.filter(function(e){return e.dataPath===t.path}),i=n.map(function(e){return e.message}).join("\n");return i?{row:t.line,column:t.column,text:"Schema validation error"+(1!==n.length?"s":"")+": \n"+i,type:"warning",source:"jsoneditor"}:{}}),this._refreshAnnotations();else{var a=document.createElement("div");a.innerHTML='
    ';var l=a.getElementsByTagName("tbody")[0];e.forEach(function(e){var i;i="string"==typeof e?'
    '+e+"
    ":""+(e.dataPath||"")+""+e.message+"";var o;if(isNaN(e.line)){if(e.dataPath){var s=r.find(function(t){return t.path===e.dataPath});s&&(o=s.line+1)}}else o=e.line;var a=document.createElement("tr");a.className=isNaN(o)?"":"jump-to-line","error"===e.type?a.className+=" parse-error":(a.className+=" validation-error",++n),a.innerHTML=''+(isNaN(o)?"":"Ln "+o)+""+i,a.onclick=function(){t.isFocused=!0,isNaN(o)||t.setTextSelection({row:o,column:1},{row:o,column:1e3})},l.appendChild(a)}),this.dom.validationErrors=a,this.dom.validationErrorsContainer.appendChild(a),this.dom.additinalErrorsIndication.title=e.length+" errors total",this.dom.validationErrorsContainer.clientHeight0&&0===t.dom.validationErrorsContainer.scrollTop?"block":"none"}):this.dom.validationErrorsContainer.onscroll=void 0;var c=this.dom.validationErrorsContainer.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-c+"px",this.content.style.paddingBottom=c+"px"}else this.aceEditor&&(this.annotations=[],this._refreshAnnotations());if(this.options.statusBar){n=n||this.annotations.length;var h=!!n;this.validationErrorIndication.validationErrorIcon.style.display=h?"inline":"none",this.validationErrorIndication.validationErrorCount.style.display=h?"inline":"none",h&&(this.validationErrorIndication.validationErrorCount.innerText=n,this.validationErrorIndication.validationErrorIcon.title=n+" schema validation error(s) found")}if(this.aceEditor){this.aceEditor.resize(!1)}},a.getTextSelection=function(){var e={};if(this.textarea){var t=s.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),r=n.getSelectionLead();return r.row===o.end.row&&r.column===o.end.column?e=o:(e.start=o.end,e.end=o.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:i}}},a.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=s.debounce(e,this.DEBOUNCE_INTERVAL))},a.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var n=s.getIndexForPosition(this.textarea,e.row,e.column),i=s.getIndexForPosition(this.textarea,t.row,t.column);if(n>-1&&i>-1){if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(n,i);else if(this.textarea.createTextRange){var o=this.textarea.createTextRange();o.collapse(!0),o.moveEnd("character",i),o.moveStart("character",n),o.select()}var r=(this.textarea.value.match(/\n/g)||[]).length+1,a=this.textarea.scrollHeight/r,l=e.row*a;this.textarea.scrollTop=l>this.textarea.clientHeight?l-this.textarea.clientHeight/2:0}}else if(this.aceEditor){var o={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(o)}},e.exports=[{mode:"text",mixin:a,data:"text",load:i},{mode:"code",mixin:a,data:"text",load:i}]},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=c.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t.onChangeJSON&&("text"===t.mode||"code"===t.mode||t.modes&&(-1!==t.modes.indexOf("text")||-1!==t.modes.indexOf("code")))&&console.warn('Option "onChangeJSON" is not applicable to modes "text" and "code". Use "onChangeText" or "onChange" instead.'),t&&Object.keys(t).forEach(function(e){-1===i.VALID_OPTIONS.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})),arguments.length&&this._create(e,t,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=n(1),s=n(5),a=n(6),l=n(28),c=n(12);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.VALID_OPTIONS=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onChangeJSON","onChangeText","onEditable","onError","onEvent","onModeChange","onValidate","onSelectionChange","onTextSelectionChange","colorPicker","onColorPicker","timestampTag","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"],i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=c.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){if(e!==this.options.mode||!this.create){var t,n,o=this.container,r=c.extend({},this.options),s=r.mode;r.mode=e;var a=i.modes[e];if(!a)throw new Error('Unknown mode "'+r.mode+'"');try{var l="text"==a.data;if(n=this.getName(),t=this[l?"getText":"get"](),this.destroy(),c.clear(this),c.extend(this,a.mixin),this.create(o,r),this.setName(n),this[l?"setText":"set"](t),"function"==typeof a.load)try{a.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(c.isArray(e))for(t=0;tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=r)break;if(h.isMultiLine())t=h.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(d,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new h(["ace"],n(3),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=a.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()}, +this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t,n){var i;if(window.Picker)i=window.Picker;else try{i=n(!function(){var e=new Error('Cannot find module "vanilla-picker/dist/vanilla-picker"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}e.exports=i},function(e,t,n){"use strict";var i=n(5),o=n(7),r=n(8),s=n(9),a=n(10),l=n(16),c=n(17),h=n(26),d=n(12),u=n(27),p=n(22),f=n(24),m=n(15).translate,g=n(15).setLanguages,v=n(15).setLanguage,y=document.body,b={};b.create=function(e,t){if(!e)throw new Error("No container element provided.");this.container=e,this.dom={},this.highlighter=new o,this.selection=void 0,this.multiselection={nodes:[]},this.validateSchema=null,this.validationSequence=0,this.errorNodes=[],this.node=null,this.focusTarget=null,this._setOptions(t),t.autocomplete&&(this.autocomplete=new u(t.autocomplete)),this.options.history&&"view"!==this.options.mode&&(this.history=new r(this)),this._createFrame(),this._createTable()},b.destroy=function(){this.frame&&this.container&&this.frame.parentNode==this.container&&(this.container.removeChild(this.frame),this.frame=null),this.container=null,this.dom=null,this.clear(),this.node=null,this.focusTarget=null,this.selection=null,this.multiselection=null,this.errorNodes=null,this.validateSchema=null,this._debouncedValidate=null,this.history&&(this.history.destroy(),this.history=null),this.searchBox&&(this.searchBox.destroy(),this.searchBox=null),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null)},b._setOptions=function(e){if(this.options={search:!0,history:!0,mode:"tree",name:void 0,schema:null,schemaRefs:null,autocomplete:null,navigationBar:!0,onSelectionChange:null,colorPicker:!0,onColorPicker:function(e,t,n){i?new i({parent:e,color:t,popup:"bottom",onDone:function(e){var t=e.rgba[3],i=1===t?e.hex.substr(0,7):e.hex;n(i)}}).show():console.warn("Cannot open color picker: the `vanilla-picker` library is not included in the bundle. Either use the full bundle or implement your own color picker using `onColorPicker`.")},timestampTag:!0,onEvent:null},e)for(var t in e)e.hasOwnProperty(t)&&(this.options[t]=e[t]);this.setSchema(this.options.schema,this.options.schemaRefs),this._debouncedValidate=d.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),e.onSelectionChange&&this.onSelectionChange(e.onSelectionChange),g(this.options.languages),v(this.options.language)},b.set=function(e){if(e instanceof Function||void 0===e)this.clear();else{this.content.removeChild(this.table);var t={field:this.options.name,value:e},n=new c(this,t);this._setRoot(n),this.validate();this.node.expand(!1),this.content.appendChild(this.table)}this.history&&this.history.clear(),this.searchBox&&this.searchBox.clear()},b.update=function(e){if(!this.node.deepEqual(e)){var t=this.getSelection();if(this.onChangeDisabled=!0,this.node.update(e),this.onChangeDisabled=!1,this.validate(),this.searchBox&&!this.searchBox.isEmpty()&&this.searchBox.forceSearch(),t&&t.start&&t.end){var n=this.node.findNodeByPath(t.start.path),i=this.node.findNodeByPath(t.end.path);n&&i?this.setSelection(t.start,t.end):this.setSelection({},{})}else this.setSelection({},{})}},b.get=function(){if(this.focusTarget){var e=c.getNodeFromTarget(this.focusTarget);e&&e.blur()}return this.node?this.node.getValue():void 0},b.getText=function(){return JSON.stringify(this.get())},b.setText=function(e){try{this.set(d.parse(e))}catch(n){var t=d.sanitize(e);this.set(d.parse(t))}},b.updateText=function(e){try{this.update(d.parse(e))}catch(n){var t=d.sanitize(e);this.update(d.parse(t))}},b.setName=function(e){this.options.name=e,this.node&&this.node.updateField(this.options.name)},b.getName=function(){return this.options.name},b.focus=function(){var e=this.scrollableContent.querySelector("[contenteditable=true]");e?e.focus():this.node.dom.expand?this.node.dom.expand.focus():this.node.dom.menu?this.node.dom.menu.focus():(e=this.frame.querySelector("button"))&&e.focus()},b.clear=function(){this.node&&(this.node.hide(),delete this.node),this.treePath&&this.treePath.reset()},b._setRoot=function(e){this.clear(),this.node=e,this.tbody.appendChild(e.getDom())},b.search=function(e){var t;return this.node?(this.content.removeChild(this.table),t=this.node.search(e),this.content.appendChild(this.table)):t=[],t},b.expandAll=function(){this.node&&(this.content.removeChild(this.table),this.node.expand(),this.content.appendChild(this.table))},b.collapseAll=function(){this.node&&(this.content.removeChild(this.table),this.node.collapse(),this.content.appendChild(this.table))},b._onAction=function(e,t){this.history&&this.history.add(e,t),this._onChange()},b._onChange=function(){if(!this.onChangeDisabled){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}if(this.options.onChangeJSON)try{this.options.onChangeJSON(this.get())}catch(e){console.error("Error in onChangeJSON callback: ",e)}if(this.options.onChangeText)try{this.options.onChangeText(this.getText())}catch(e){console.error("Error in onChangeText callback: ",e)}}},b.validate=function(){var e=this.node;if(e){var t=e.getValue(),n=e.validate(),i=[];if(this.validateSchema){this.validateSchema(t)||(i=this.validateSchema.errors.map(function(e){return d.improveSchemaError(e)}).map(function(t){return{node:e.findNode(t.dataPath),error:t}}).filter(function(e){return null!=e.node}))}this.validationSequence++;var o=this,r=this.validationSequence;this._validateCustom(t).then(function(e){if(r===o.validationSequence){var t=[].concat(n,i,e||[]);o._renderValidationErrors(t)}}).catch(function(e){console.error(e)})}},b._renderValidationErrors=function(e){this.errorNodes&&this.errorNodes.forEach(function(e){e.setError(null)});var t=e.reduce(function(e,t){return t.node.findParents().filter(function(t){return!e.some(function(e){return e[0]===t})}).map(function(e){return[e,t.node]}).concat(e)},[]);this.errorNodes=t.map(function(e){return{node:e[0],child:e[1],error:{message:"object"===e[0].type?"Contains invalid properties":"Contains invalid items"}}}).concat(e).map(function(e){return e.node.setError(e.error,e.child),e.node})},b._validateCustom=function(e){try{if(this.options.onValidate){var t=this.node,n=this.options.onValidate(e);return(d.isPromise(n)?n:Promise.resolve(n)).then(function(e){return Array.isArray(e)?e.filter(function(e){var t=d.isValidValidationError(e);return t||console.warn('Ignoring a custom validation error with invalid structure. Expected structure: {path: [...], message: "..."}. Actual error:',e),t}).map(function(e){var n;try{n=e&&e.path?t.findNodeByPath(e.path):null}catch(e){}return n||console.warn("Ignoring validation error: node not found. Path:",e.path,"Error:",e),{node:n,error:e}}).filter(function(e){return e&&e.node&&e.error&&e.error.message}):null})}}catch(e){return Promise.reject(e)}return Promise.resolve(null)},b.refresh=function(){this.node&&this.node.updateDom({recurse:!0})},b.startAutoScroll=function(e){var t=this,n=this.scrollableContent,i=d.getAbsoluteTop(n),o=n.clientHeight,r=i+o;e0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop0?this.multiselection.nodes.map(function(e){return e.getInternalPath()}):null,scrollTop:this.scrollableContent?this.scrollableContent.scrollTop:0}},b.scrollTo=function(e,t){var n=this.scrollableContent;if(n){var i=this;i.animateTimeout&&(clearTimeout(i.animateTimeout),delete i.animateTimeout),i.animateCallback&&(i.animateCallback(!1),delete i.animateCallback);var o=n.clientHeight,r=n.scrollHeight-o,s=Math.min(Math.max(e-o/4,0),r),a=function(){var e=n.scrollTop,o=s-e;Math.abs(o)>3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},b._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=m("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");i.type="button",i.title=m("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i);var o=document.createElement("button");o.type="button",o.className="jsoneditor-sort",o.title=m("sortTitleShort"),o.onclick=function(){var e=t.options.modalAnchor||y;p(t.node,e)},this.menu.appendChild(o);var r=document.createElement("button");if(r.type="button",r.title=m("transformTitleShort"),r.className="jsoneditor-transform",r.onclick=function(){var e=t.options.modalAnchor||y;f(t.node,e)},this.menu.appendChild(r),this.history){var a=document.createElement("button");a.type="button",a.className="jsoneditor-undo jsoneditor-separator",a.title=m("undo"),a.onclick=function(){t._onUndo()},this.menu.appendChild(a),this.dom.undo=a;var c=document.createElement("button");c.type="button",c.className="jsoneditor-redo",c.title=m("redo"),c.onclick=function(){t._onRedo()},this.menu.appendChild(c),this.dom.redo=c,this.history.onChange=function(){a.disabled=!t.history.canUndo(),c.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var u=this;this.modeSwitcher=new h(this.menu,this.options.modes,this.options.mode,function(e){u.setMode(e),u.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new s(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new l(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},b._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},b._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},b._onEvent=function(e){if(!c.targetIsColorPicker(e.target)){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=c.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&c.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?c.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)}},b._updateTreePath=function(e){function t(e){return e.parent?"array"===e.parent.type?e.index:e.field:e.type}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},b._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},b._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},b._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},b._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},b._onMultiSelectStart=function(e){var t=c.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},b._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=c.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;if(n&&i){if(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.multiselection.nodes&&this.multiselection.nodes.length){var o=this.multiselection.nodes[0];this.multiselection.start===o||this.multiselection.start.isDescendantOf(o)?this.multiselection.direction="down":this.multiselection.direction="up"}this.select(this.multiselection.nodes)}}},b._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},b.deselect=function(e){var t=!!this.multiselection.nodes.length;this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null),t&&this._selectionChangedHandler&&this._selectionChangedHandler()},b.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},b._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(l="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(l="field");var h=c.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),l,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},b._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.scrollableContent=document.createElement("div"),this.scrollableContent.className="jsoneditor-tree",e.appendChild(this.scrollableContent),this.content=document.createElement("div"),this.content.className="jsoneditor-tree-inner",this.scrollableContent.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},b.showContextMenu=function(e,t){var n=[],i=this;n.push({text:m("duplicateText"),title:m("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){c.onDuplicate(i.multiselection.nodes)}}),n.push({text:m("remove"),title:m("removeTitle"),className:"jsoneditor-remove",click:function(){c.onRemove(i.multiselection.nodes)}}),new a(n,{close:t}).show(e,i.frame)},b.getSelection=function(){var e={start:null,end:null};if(this.multiselection.nodes&&this.multiselection.nodes.length&&this.multiselection.nodes.length){var t=this.multiselection.nodes[0],n=this.multiselection.nodes[this.multiselection.nodes.length-1];"down"===this.multiselection.direction?(e.start=t.serialize(),e.end=n.serialize()):(e.start=n.serialize(),e.end=t.serialize())}return e},b.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=d.debounce(e,this.DEBOUNCE_INTERVAL))},b.setSelection=function(e,t){e&&e.dom&&e.range&&(console.warn("setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options"),this.setDomSelection(e));var n=this._getNodeInstancesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},b._getNodeInstancesByRange=function(e,t){var n,i;e&&e.path&&(n=this.node.findNodeByPath(e.path),t&&t.path&&(i=this.node.findNodeByPath(t.path)));var o=[];if(n instanceof c)if(i instanceof c&&i!==n)if(n.parent===i.parent){var e,t;n.getIndex()=0},n.prototype.canRedo=function(){return this.indexthis.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!==this.lastText||e){this.lastText=n,this.results=this.editor.search(n);var i=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0,o=0;if(this.activeResult)for(var r=0;ri?i+"+ results":s+" results"}else this.dom.results.innerHTML=""}},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.forceSearch=function(){this._onSearch(!0)},n.prototype.isEmpty=function(){return""===this.dom.search.value},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var d=document.createElement("div");d.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),d.appendChild(document.createTextNode(o.text)),c.appendChild(d);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
    ',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var f=document.createElement("div");f.className="jsoneditor-expand",c.appendChild(f),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var m=[];a.subItems=m;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,m,o.submenu)}else c.innerHTML='
    '+s(o.text)+"
    ";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var o=n(11).createAbsoluteAnchor,r=n(12),s=n(15).translate;i.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},i.visibleMenu=void 0,i.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect(),c=t.getBoundingClientRect(),h=this;this.dom.absoluteAnchor=o(e,t,function(){h.hide()}),a.bottom+this.maxHeightc.top&&(n=!1);var d=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left="0",this.dom.menu.style.top=d+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";this.dom.absoluteAnchor.appendChild(this.dom.root),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){h.dom.focusButton.focus()},0),i.visibleMenu&&i.visibleMenu.hide(),i.visibleMenu=this},i.prototype.hide=function(){this.dom.absoluteAnchor&&(this.dom.absoluteAnchor.destroy(),delete this.dom.absoluteAnchor),this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose()),i.visibleMenu==this&&(i.visibleMenu=void 0)},i.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.isPromise=function(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isValidValidationError=function(e){return"object"==typeof e&&Array.isArray(e.path)&&"string"==typeof e.message},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){function t(t){var n=e.value.substring(0,t);return{row:(n.match(/\n/g)||[]).length+1,column:n.length-n.lastIndexOf("\n")}}var n,i,o,r,s,a=0,l=0;return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(a=e.selectionStart,l=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,n=e.value.replace(/\r\n/g,"\n"),o=e.createTextRange(),o.moveToBookmark(i.getBookmark()),s=e.createTextRange(),s.collapse(!1),o.compareEndPoints("StartToEnd",s)>-1?a=l=r:(a=-o.moveStart("character",-r),a+=n.slice(0,a).split("\n").length-1,o.compareEndPoints("EndToEnd",s)>-1?l=r:(l=-o.moveEnd("character",-r),l+=n.slice(0,l).split("\n").length-1))),{startIndex:a,endIndex:l,start:t(a),end:t(l)}},t.getIndexForPosition=function(e,t,n){var i=e.value||"";if(t>0&&n>0){var o=i.split("\n",t);t=Math.min(o.length,t),n=Math.min(o[t-1].length,n-1);var r=1==t?n:n+1;return o.slice(0,t-1).join("\n").length+r}return-1},t.getPositionForPath=function(e,t){var n,i=this,r=[];if(!t||!t.length)return r;try{n=o.parse(e)}catch(e){return r}return t.forEach(function(e){var t=i.parsePath(e),o=t.length?"/"+t.join("/"):"",s=n.pointers[o];s&&r.push({path:e,line:s.key?s.key.line:s.value?s.value.line:0,column:s.key?s.key.column:s.value?s.value.column:0})}),r},t.getColorCSS=function(e){var t=document.createElement("div");return t.style.color=e,t.style.color.split(/\s+/).join("").toLowerCase()||null},t.isValidColor=function(e){return!!t.getColorCSS(e)},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&w.push("'"+this.terminals_[y]+"'");var C="";C=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:w})}if(3==h){if(1==p)throw new Error(C||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(C||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=i[i.length-1]}f=p,p=d,m=i[i.length-1],g=s[m]&&s[m][d],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,f?(p=f,f=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),x=s[i[i.length-2]][i[i.length-1]],i.push(x);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e){return a.indexOf(typeof e)>=0}function i(e){return'"'+(e=e.replace(l,"\\$&").replace(h,"\\f").replace(c,"\\b").replace(d,"\\n").replace(u,"\\r").replace(p,"\\t"))+'"'}function o(e){return e.replace(f,"~0").replace(m,"~1")}var r={b:"\b",f:"\f",n:"\n",r:"\r",t:"\t",'"':'"',"/":"/","\\":"\\"},s="a".charCodeAt();t.parse=function(e){function t(t,o){n();var r;m(t,"value");var s=d();switch(s){case"t":h("rue"),r=!0;break;case"f":h("alse"),r=!1;break;case"n":h("ull"),r=null;break;case'"':r=i();break;case"[":r=l(t);break;case"{":r=c(t);break;default:u(),"-0123456789".indexOf(s)>=0?r=a():y()}return m(t,"valueEnd"),n(),o&&E="a"&&n<="f"?t+=n.charCodeAt()-s+10:n>="0"&&n<="9"?t+=+n:b()}return String.fromCharCode(t)}function f(){for(var t="";e[E]>="0"&&e[E]<="9";)t+=d();if(t.length)return t;x(),y()}function m(e,t){g(e,t,v())}function g(e,t,n){w[e]=w[e]||{},w[e][t]=n}function v(){return{line:_,column:C,pos:E}}function y(){throw new SyntaxError("Unexpected token "+e[E]+" in JSON at position "+E)}function b(){u(),y()}function x(){if(E>=e.length)throw new SyntaxError("Unexpected end of JSON input")}var w={},_=0,C=0,E=0;return{data:t("",!0),pointers:w}},t.stringify=function(e,t,r){function s(e,t,h){switch(c(h,"value"),typeof e){case"number":case"boolean":a(""+e);break;case"string":a(i(e));break;case"object":null===e?a("null"):"function"==typeof e.toJSON?a(i(e.toJSON())):Array.isArray(e)?function(){if(e.length){a("[");for(var i=t+1,o=0;o10?10:r<0?0:Math.floor(r);r=f&&h(f," "),d=f,u=f;break;case"string":r=r.slice(0,10),d=0,u=0;for(var m=0;m0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.error=e,this.errorChild=t,this.dom&&this.dom.tr&&this.updateError()},i.prototype.updateError=function(){var e=this.error,t=this.dom.tdError;if(e&&this.dom&&this.dom.tr){f.addClassName(this.dom.tr,"jsoneditor-validation-error"),t||(t=document.createElement("td"),this.dom.tdError=t,this.dom.tdValue.parentNode.appendChild(t));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var i=document.createElement("button");i.type="button",i.className="jsoneditor-button jsoneditor-schema-error",i.appendChild(n),i.onmouseover=i.onfocus=function(){for(var e=["right","above","below","left"],t=0;t=e.length;a--)this.removeChild(this.childs[a],!1)}else if("object"===this.type){for(this.childs||(this.childs=[]),a=this.childs.length-1;a>=0;a--)e.hasOwnProperty(this.childs[a].field)||this.removeChild(this.childs[a],!1);s=0;for(var c in e)e.hasOwnProperty(c)&&(n=e[c],void 0===n||n instanceof Function||(o=this.findChildByProperty(c),o?(o.setField(c,!0),o.setValue(n)):(o=new i(this.editor,{field:c,value:n}),r=s=e.childs.length;s--)this.removeChild(this.childs[s],!1)}else if("object"===e.type){for(this.childs||(this.childs=[]),r=0;r=e.childs.length;s--)this.removeChild(this.childs[s],!1)}else this.hideChilds(),delete this.append,delete this.showMore,delete this.expanded,delete this.childs,this.value=e.value;Array.isArray(a)!==Array.isArray(this.childs)&&this.recreateDom(),this.updateDom({updateIndexes:!0}),this.previousValue=this.value},i.prototype.recreateDom=function(){if(this.dom&&this.dom.tr&&this.dom.tr.parentNode){var e=this._detachFromDom();this.clearDom(),this._attachToDom(e)}else this.clearDom()},i.prototype.getValue=function(){if("array"==this.type){var e=[];return this.childs.forEach(function(t){e.push(t.getValue())}),e}if("object"==this.type){var t={};return this.childs.forEach(function(e){t[e.getField()]=e.getValue()}),t}return void 0===this.value&&this._getDomValue(),this.value},i.prototype.getInternalValue=function(){return"array"===this.type?{type:this.type,childs:this.childs.map(function(e){return e.getInternalValue()})}:"object"===this.type?{type:this.type,childs:this.childs.map(function(e){return{field:e.getField(),value:e.getInternalValue()}})}:(void 0===this.value&&this._getDomValue(),{type:this.type,value:this.value})},i.prototype.getLevel=function(){return this.parent?this.parent.getLevel()+1:0},i.prototype.getNodePath=function(){var e=this.parent?this.parent.getNodePath():[];return e.push(this),e},i.prototype.clone=function(){var e=new i(this.editor);if(e.type=this.type,e.field=this.field,e.fieldInnerText=this.fieldInnerText,e.fieldEditable=this.fieldEditable,e.previousField=this.previousField,e.value=this.value,e.valueInnerText=this.valueInnerText,e.previousValue=this.previousValue,e.expanded=this.expanded,e.visibleChilds=this.visibleChilds,this.childs){var t=[];this.childs.forEach(function(n){var i=n.clone();i.setParent(e),t.push(i)}),e.childs=t}else e.childs=void 0;return e},i.prototype.expand=function(e){this.childs&&(this.expanded=!0,this.dom.expand&&(this.dom.expand.className="jsoneditor-button jsoneditor-expanded"),this.showChilds(),!1!==e&&this.childs.forEach(function(t){t.expand(e)}))},i.prototype.collapse=function(e){this.childs&&(this.hideChilds(),!1!==e&&this.childs.forEach(function(t){t.collapse(e)}),this.dom.expand&&(this.dom.expand.className="jsoneditor-button jsoneditor-collapsed"),this.expanded=!1)},i.prototype.showChilds=function(){if(this.childs&&this.expanded){var e=this.dom.tr,t=e?e.parentNode:void 0;if(t){var n=this.getAppendDom();if(!n.parentNode){var i=e.nextSibling;i?t.insertBefore(n,i):t.appendChild(n)}for(var o=Math.min(this.childs.length,this.visibleChilds),i=this._getNextTr(),r=0;rthis.visibleChilds){var o=this.childs[this.visibleChilds-1];this.insertBefore(e,o)}else this.appendChild(e);else this.insertBefore(e,t);n&&n.removeChild(i)}},i.prototype.insertBefore=function(e,t){if(this._hasChilds()){if(this.visibleChilds++,"object"===this.type&&void 0==e.field&&e.setField(""),t===this.append)e.setParent(this),e.fieldEditable="object"==this.type,this.childs.push(e);else{var n=this.childs.indexOf(t);if(-1==n)throw new Error("Node not found");e.setParent(this),e.fieldEditable="object"==this.type,this.childs.splice(n,0,e)}if(this.expanded){var i=e.getDom(),o=t.getDom(),r=o?o.parentNode:void 0;o&&r&&r.insertBefore(i,o),e.showChilds(),this.showChilds()}this.updateDom({updateIndexes:!0}),e.updateDom({recurse:!0})}},i.prototype.insertAfter=function(e,t){if(this._hasChilds()){var n=this.childs.indexOf(t),i=this.childs[n+1];i?this.insertBefore(e,i):this.appendChild(e)}},i.prototype.search=function(e,t){Array.isArray(t)||(t=[]);var n,i=e?e.toLowerCase():void 0;if(delete this.searchField,delete this.searchValue,void 0!==this.field&&t.length<=this.MAX_SEARCH_RESULTS){n=String(this.field).toLowerCase().indexOf(i),-1!==n&&(this.searchField=!0,t.push({node:this,elem:"field"})),this._updateDomField()}if(this._hasChilds())this.childs&&this.childs.forEach(function(n){n.search(e,t)});else if(void 0!==this.value&&t.length<=this.MAX_SEARCH_RESULTS){var o=String(this.value).toLowerCase();n=o.indexOf(i),-1!==n&&(this.searchValue=!0,t.push({node:this,elem:"value"})),this._updateDomValue()}return t},i.prototype.scrollTo=function(e){this.expandPathToNode(),this.dom.tr&&this.dom.tr.parentNode&&this.editor.scrollTo(this.dom.tr.offsetTop,e)},i.prototype.expandPathToNode=function(){for(var e=this;e&&e.parent;){for(var t="array"===e.parent.type?e.index:e.parent.childs.indexOf(e);e.parent.visibleChilds9466848e5&&!isNaN(new Date(n).valueOf())?(this.dom.date||(this.dom.date=document.createElement("div"),this.dom.date.className="jsoneditor-date",this.dom.value.parentNode.appendChild(this.dom.date)),this.dom.date.innerHTML=new Date(n).toISOString(),this.dom.date.title=new Date(n).toString()):this.dom.date&&(this.dom.date.parentNode.removeChild(this.dom.date),delete this.dom.date),f.stripFormatting(e)}},i.prototype._deleteDomColor=function(){this.dom.color&&(this.dom.tdColor.parentNode.removeChild(this.dom.tdColor),delete this.dom.tdColor,delete this.dom.color,this.dom.value.style.color="")},i.prototype._updateDomField=function(){var e=this.dom.field;if(e){""==String(this.field)&&"array"!=this.parent.type?f.addClassName(e,"jsoneditor-empty"):f.removeClassName(e,"jsoneditor-empty"),this.searchFieldActive?f.addClassName(e,"jsoneditor-highlight-active"):f.removeClassName(e,"jsoneditor-highlight-active"),this.searchField?f.addClassName(e,"jsoneditor-highlight"):f.removeClassName(e,"jsoneditor-highlight"),f.stripFormatting(e)}},i.prototype._getDomField=function(e){if(this.dom.field&&this.fieldEditable&&(this.fieldInnerText=f.getInnerText(this.dom.field)),void 0!=this.fieldInnerText)try{var t=this._unescapeHTML(this.fieldInnerText);t!==this.field&&(this.field=t,this._debouncedOnChangeField())}catch(t){if(this.field=void 0,!0!==e)throw t}},i.prototype.validate=function(){var e=[];if("object"===this.type){for(var t={},n=[],i=0;i0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:m("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");n.type="button",e.drag=n,n.className="jsoneditor-button jsoneditor-dragarea",n.title=m("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-button jsoneditor-contextmenu",o.title=m("actionsMenu"),i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.prototype.isVisible=function(){return this.dom&&this.dom.tr&&this.dom.tr.parentNode||!1},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],r=e[e.length-1],s=n.parent,a=i.getNodeFromTarget(t.target),l=n.editor,c=f.getAbsoluteTop(a.dom.tr)-f.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=f.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=f.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getDomSelection(),oldPaths:e.map(o),oldParent:s,oldNextNode:s.childs[r.getIndex()+1]||s.append,oldParentPathRedo:s.getInternalPath(),oldIndexRedo:n.getIndex(),mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,a,l,c,h,d,u,p,m,g,y,b=e[0].editor,x=t.pageY-b.drag.offsetY,w=t.pageX,_=!1,C=e[0];if(n=C.dom.tr,d=f.getAbsoluteTop(n),m=n.offsetHeight,xu+m&&(c=void 0)),c&&(e.forEach(function(e){c.parent.moveBefore(e,c)}),_=!0)}else{var E=e[e.length-1];if(a=E.expanded&&E.append?E.append.getDom():E.dom.tr,s=a?a.nextSibling:void 0){p=f.getAbsoluteTop(s),r=s;do{h=i.getNodeFromTarget(r),r&&(g=r.nextSibling?f.getAbsoluteTop(r.nextSibling):0,y=r?g-p:0,h&&h.parent.childs.length==e.length&&h.parent.childs[e.length-1]==E&&(d+=27),r=r.nextSibling)}while(r&&x>d+y);if(h&&h.parent){var S=w-b.drag.mouseX,k=Math.round(S/24/2),j=b.drag.level+k,N=h.getLevel();for(o=h.dom.tr&&h.dom.tr.previousSibling;N0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],k=S[0],j=S[S.length-1];if(13==y){if(b==this.dom.value)this.editable.value&&!e.ctrlKey||f.isUrl(this.value)&&(window.open(this.value,"_blank"),C=!0);else if(b==this.dom.expand){var N=this._hasChilds();if(N){var T=e.ctrlKey;this._onExpand(T),b.focus(),C=!0}}}else if(68==y)x&&E&&(i.onDuplicate(S),C=!0);else if(69==y)x&&(this._onExpand(w),b.focus(),C=!0);else if(77==y&&E)x&&(this.showContextMenu(b),C=!0);else if(46==y&&E)x&&(i.onRemove(S),C=!0);else if(45==y&&E)x&&!w?(this._onInsertBefore(),C=!0):x&&w&&(this._onInsertAfter(),C=!0);else if(35==y){if(_){var I=this._lastNode();I&&I.focus(i.focusElement||this._getElementName(b)),C=!0}}else if(36==y){if(_){var O=this._firstNode();O&&O.focus(i.focusElement||this._getElementName(b)),C=!0}}else if(37==y){if(_&&!w){var P=this._previousElement(b);P&&this.focus(this._getElementName(P)),C=!0}else if(_&&w&&E){if(j.expanded){var A=j.getAppendDom();o=A?A.nextSibling:void 0}else{var D=j.getDom();o=D.nextSibling}o&&(n=i.getNodeFromTarget(o),s=o.nextSibling,M=i.getNodeFromTarget(s),n&&n instanceof v&&1!=j.parent.childs.length&&M&&M.parent&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=M.getIndex(),u=c.getInternalPath(),p=M.parent.getInternalPath(),S.forEach(function(e){M.parent.moveBefore(e,M)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:k.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()})))}}else if(38==y)_&&!w?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(b))),C=!0):!_&&x&&w&&E?(t=this._previousNode(),t&&(g=this.editor.multiselection,g.start=g.start||this,g.end=t,m=this.editor._findTopLevelNodes(g.start,g.end),this.editor.select(m),t.focus("field")),C=!0):_&&w&&E&&(t=k._previousNode(),t&&t.parent&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=t.getIndex(),u=c.getInternalPath(),p=t.parent.getInternalPath(),S.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:k.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()})),C=!0);else if(39==y){if(_&&!w){var R=this._nextElement(b);R&&this.focus(this._getElementName(R)),C=!0}else if(_&&w&&E){D=k.getDom();var L=D.previousSibling;L&&(t=i.getNodeFromTarget(L))&&t.parent&&!t.isVisible()&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=t.getIndex(),u=c.getInternalPath(),p=t.parent.getInternalPath(),S.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldIndex:l.getIndex(),newIndex:k.getIndex(),oldIndexRedo:h,newIndexRedo:d,oldParentPathRedo:u,newParentPathRedo:p,oldSelection:a,newSelection:this.editor.getDomSelection()}))}}else if(40==y)if(_&&!w)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(b))),C=!0;else if(!_&&x&&w&&E)n=this._nextNode(),n&&(g=this.editor.multiselection,g.start=g.start||this,g.end=n,m=this.editor._findTopLevelNodes(g.start,g.end),this.editor.select(m),n.focus("field")),C=!0;else if(_&&w&&E){n=j.expanded?j.append?j.append._nextNode():void 0:j._nextNode(),n&&!n.isVisible()&&(n=n.parent.showMore),n&&n instanceof v&&(n=j);var M=n&&(n._nextNode()||n.parent.append);M&&M.parent&&(a=this.editor.getDomSelection(),c=k.parent,l=c.childs[j.getIndex()+1]||c.append,h=k.getIndex(),d=M.getIndex(),u=c.getInternalPath(),p=M.parent.getInternalPath(),S.forEach(function(e){M.parent.moveBefore(e,M)}),this.focus(i.focusElement||this._getElementName(b)),this.editor._onAction("moveNodes",{count:S.length,fieldNames:S.map(r),oldParentPath:c.getInternalPath(),newParentPath:k.parent.getInternalPath(),oldParentPathRedo:u,newParentPathRedo:p,oldIndexRedo:h,newIndexRedo:d,oldIndex:l.getIndex(),newIndex:k.getIndex(),oldSelection:a,newSelection:this.editor.getDomSelection()})),C=!0}C&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.prototype._showColorPicker=function(){if("function"==typeof this.editor.options.onColorPicker&&this.dom.color){var e=this;e._deleteDomColor(),e.updateDom();var t=l(this.dom.color,this.editor.frame);this.editor.options.onColorPicker(t,this.value,function(t){"string"==typeof t&&t!==e.value&&(e._deleteDomColor(),e.value=t,e.updateDom(),e._debouncedOnChangeValue())})}},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,r=t.editor,s=t.getIndex();r.highlighter.unhighlight();var a=r.getDomSelection();i.blurNodes(e);var l=r.getDomSelection(),c=e.map(o);e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e,paths:c,parentPath:n.getInternalPath(),index:s,oldSelection:a,newSelection:l})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var s=r.getDomSelection(),a=t,l=e.map(function(e){var t=e.clone();return n.insertAfter(t,a),a=t,t});1===e.length?l[0].focus():r.select(l);var c=r.getDomSelection();r._onAction("duplicateNodes",{paths:e.map(o),clonePaths:l.map(o),afterPath:t.getInternalPath(),parentPath:n.getInternalPath(),oldSelection:s,newSelection:c})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0);var s=this.getInternalPath();this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var a=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],paths:[r.getInternalPath()],beforePath:s,parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:a})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],paths:[r.getInternalPath()],afterPath:this.getInternalPath(),parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getDomSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[r],paths:[r.getInternalPath()],parentPath:this.parent.getInternalPath(),oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getDomSelection();this.changeType(e);var i=this.editor.getDomSelection();this.editor._onAction("changeType",{path:this.getInternalPath(),oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e,t){if(this._hasChilds()){this.hideChilds();var n=this.childs;this.childs=this.childs.concat();var i="desc"===t?-1:1;"object"===this.type?this.childs.sort(function(e,t){return i*a(e.field,t.field)}):this.childs.sort(function(t,n){var o=t.getNestedChild(e),r=n.getNestedChild(e);if(!o)return i;if(!r)return-i;var s=o.value,l=r.value;return"string"!=typeof s&&"string"!=typeof l?s>l?i:s/g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=f.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return f.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;n="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function d(e){this.runtime=e}function u(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[v]}]},avg:{_func:this._functionAvg,_signature:[{types:[C]}]},ceil:{_func:this._functionCeil,_signature:[{types:[v]}]},contains:{_func:this._functionContains,_signature:[{types:[b,x]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[v]}]},length:{_func:this._functionLength,_signature:[{types:[b,x,w]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[x]}]},max:{_func:this._functionMax,_signature:[{types:[C,E]}]},merge:{_func:this._functionMerge,_signature:[{types:[w],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[x]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[C]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[C,E]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[x]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[w]}]},values:{_func:this._functionValues,_signature:[{types:[w]}]},sort:{_func:this._functionSort,_signature:[{types:[E,C]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[x]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[E]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,x]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function p(e){return(new h).parse(e)}function f(e){return(new c).tokenize(e)}function m(e,t){var n=new h,i=new u,o=new d(i);i._interpreter=o;var r=n.parse(t);return o.search(r,e)}var g;g="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var v=0,y=1,b=2,x=3,w=4,_=6,C=8,E=9,S={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},k={"<":!0,">":!0,"=":!0,"!":!0},j={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var n,i,o;this._current"===n?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===n&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,n=this._current,i=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(n.indexOf(e)>=0)return!0;if(!(i.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var N={};N.EOF=0,N.UnquotedIdentifier=0,N.QuotedIdentifier=0,N.Rbracket=0,N.Rparen=0,N.Comma=0,N.Rbrace=0,N.Number=0,N.Current=0,N.Expref=0,N.Pipe=1,N.Or=2,N.And=3,N.EQ=5,N.GT=5,N.LT=5,N.GTE=5,N.LTE=5,N.NE=5,N.Flatten=9,N.Star=20,N.Filter=21,N.Dot=40,N.Not=45,N.Lbrace=50,N.Lbracket=55,N.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var n=this._lookaheadToken(0),i=new Error("Unexpected token type: "+n.type+", value: "+n.value);throw i.name="ParserError",i}return t},_loadTokens:function(e){var t=new c,n=t.tokenize(e);n.push({type:"EOF",value:"",start:e.length}),this.tokens=n},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var n=this.nud(t),i=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(N[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var n=this._lookaheadToken(0),i=new Error("Sytanx error, unexpected token: "+n.value+"("+n.type+")");throw i.name="ParserError",i}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,n,i,o=[],r=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),r.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),n=this.expression(0),i={type:"KeyValuePair",name:t,value:n},o.push(i),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:o}}},d.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,l,c,h,d,u,p,f,m;switch(e.type){case"Field":return null===s?null:n(s)?(u=s[e.name],void 0===u?null:u):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mx;m+=w)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(f=[],m=0;m<_.length;m++)null!==(l=this.visit(e.children[1],_[m]))&&f.push(l);return f;case"ValueProjection":if(_=this.visit(e.children[0],s),!n(_))return null;f=[];var C=r(_);for(m=0;md;break;case"GTE":c=h>=d;break;case"LT":c=h=e&&(t=n<0?e-1:e),t}},u.prototype={callFunction:function(e,t){var n=this.functionTable[e];if(void 0===n)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,n._signature),n._func.call(this,t)},_validateArgs:function(e,t,n){var i;if(n[n.length-1].variadic){if(t.length=0;i--)n+=t[i];return n}var o=e[0].slice(0);return o.reverse(),o},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,n=e[0],i=0;i=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return n(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],n=this._interpreter,i=e[0],o=e[1],r=0;r0){if(this._getTypeName(e[0][0])===v)return Math.max.apply(Math,e[0]);for(var t=e[0],n=t[0],i=1;i0){if(this._getTypeName(e[0][0])===v)return Math.min.apply(Math,e[0]);for(var t=e[0],n=t[0],i=1;ia?1:ss&&(s=n,t=o[a]);return t},_functionMinBy:function(e){for(var t,n,i=e[1],o=e[0],r=this.createKeyFunction(i,[v,b]),s=1/0,a=0;am)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.className="jsoneditor-append",t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="button",i.className="jsoneditor-button jsoneditor-contextmenu",i.title="Click to open the actions menu (Ctrl+M)",e.menu=i,n.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="("+s("empty")+")",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.getPath=function(){return null},t.prototype.getIndex=function(){return null},t.prototype.updateDom=function(e){var t=this.dom,n=t.td;n&&(n.style.paddingLeft=24*this.getLevel()+26+"px");var i=t.text;i&&(i.innerHTML="("+s("empty")+" "+this.parent.type+")");var o=t.tr;this.isVisible()?t.tr.firstChild||(t.tdDrag&&o.appendChild(t.tdDrag),t.tdMenu&&o.appendChild(t.tdMenu),o.appendChild(n)):t.tr.firstChild&&(t.tdDrag&&o.removeChild(t.tdDrag),t.tdMenu&&o.removeChild(t.tdMenu),o.removeChild(n))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,n){var i=this,o=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:a}];new r(l,{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(12),r=n(10),s=n(15).translate;e.exports=i},function(e,t,n){"use strict";function i(e){function t(e,t){this.editor=e,this.parent=t,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){if(this.dom.tr)return this.dom.tr;if(this._updateEditability(),!this.dom.tr){var e=this,t=this.parent,n=document.createElement("a");n.appendChild(document.createTextNode(o("showMore"))),n.href="#",n.onclick=function(n){return t.visibleChilds=Math.floor(t.visibleChilds/t.MAX_VISIBLE_CHILDS+1)*t.MAX_VISIBLE_CHILDS,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var i=document.createElement("a");i.appendChild(document.createTextNode(o("showAll"))),i.href="#",i.onclick=function(n){return t.visibleChilds=1/0,e.updateDom(),t.showChilds(),n.preventDefault(),!1};var r=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());r.className="jsoneditor-show-more",r.appendChild(s),r.appendChild(n),r.appendChild(document.createTextNode(". ")),r.appendChild(i),r.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(r);var l=document.createElement("tr");l.appendChild(document.createElement("td")),l.appendChild(document.createElement("td")),l.appendChild(a),l.className="jsoneditor-show-more",this.dom.tr=l,this.dom.moreContents=r,this.dom.moreText=s}return this.updateDom(),this.dom.tr},t.prototype.updateDom=function(e){if(this.isVisible()){if(this.dom.tr.node=this.parent.childs[this.parent.visibleChilds],!this.dom.tr.parentNode){var t=this.parent._getNextTr();t&&t.parentNode.insertBefore(this.dom.tr,t)}this.dom.moreText.nodeValue=this._getShowMoreText(),this.dom.moreContents.style.marginLeft=24*(this.getLevel()+1)+"px"}else this.dom.tr&&this.dom.tr.parentNode&&this.dom.tr.parentNode.removeChild(this.dom.tr)},t.prototype._getShowMoreText=function(){return o("showMoreStatus",{visibleChilds:this.parent.visibleChilds,totalChilds:this.parent.childs.length})+" "},t.prototype.isVisible=function(){return this.parent.expanded&&this.parent.childs.length>this.parent.visibleChilds},t.prototype.onEvent=function(e){"keydown"===e.type&&this.onKeyDown(e)},t}var o=n(15).translate;e.exports=i},function(e,t,n){function i(e,t){var n='
    '+r("sort")+"
    "+r("sortFieldLabel")+'
    '+r("sortDirectionLabel")+'
    ';o({parent:t,content:n,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-sort"}).afterCreate(function(t){function n(e){s.value=e,s.className="jsoneditor-button-group jsoneditor-button-group-value-"+s.value}var i=t.modalElem().querySelector("form"),o=t.modalElem().querySelector("#ok"),r=t.modalElem().querySelector("#field"),s=t.modalElem().querySelector("#direction"),a="array"===e.type?e.getChildPaths():["."];a.forEach(function(e){var t=document.createElement("option");t.text=e,t.value=e,r.appendChild(t)}),r.value=e.sortedBy?e.sortedBy.path:a[0],n(e.sortedBy?e.sortedBy.direction:"asc"),s.onclick=function(e){n(e.target.getAttribute("data-value"))},o.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close();var i=r.value,o="."===i?[]:i.split(".").slice(1);e.sortedBy={path:i,direction:s.value},e.sort(o,s.value)},i&&(i.onsubmit=o.onclick)}).afterClose(function(e){e.destroy()}).show()}var o=n(23),r=n(15).translate;e.exports=i},function(e,t,n){var i,o,r;!function(n,s){"use strict";o=[],i=s,void 0!==(r="function"==typeof i?i.apply(t,o):i)&&(e.exports=r)}(0,function(){"use strict";function e(e){return"object"==typeof Node?e instanceof Node:e&&"object"==typeof e&&"number"==typeof e.nodeType}function t(e){return"string"==typeof e}function n(){var e=[];return{watch:e.push.bind(e),trigger:function(t,n){for(var i=!0,o={detail:n,preventDefault:function(){i=!1}},r=0;r
    '+a("transform")+'

    Enter a JMESPath query to filter, sort, or transform the JSON data.
    To learn JMESPath, go to the interactive tutorial.

    '+a("transformWizardLabel")+'
    '+a("transformWizardFilter")+'
    '+a("transformWizardSortBy")+'
    '+a("transformWizardSelectFields")+'
    '+a("transformQueryLabel")+'
    '+a("transformPreviewLabel")+'
    ';r({parent:t,content:i,overlayClass:"jsoneditor-modal-overlay",modalClass:"jsoneditor-modal jsoneditor-modal-transform",focus:!1}).afterCreate(function(t){function i(e){return"."===e[0]?"."===e?"@":e.slice(1):e}function r(){if(p.value&&f.value&&m.value){var t=p.value,n=JSON.stringify(e._stringCast(m.value));b.value="[? "+t+" "+f.value+" `"+n+"`]"}else b.value="[*]";if(g.value&&v.value){var i=g.value;"desc"===v.value?b.value+=" | reverse(sort_by(@, &"+i+"))":b.value+=" | sort_by(@, &"+i+")"}if(y.value){for(var o=[],r=0;r1&&(b.value+=".{"+o.map(function(e){var t=e.split(".");return t[t.length-1]+": "+e}).join(", ")+"}")}j()}function a(){try{var e=o.search(n,b.value),t=JSON.stringify(e,null,2).split("\n");t.length>c&&(t=t.slice(0,c).concat(["..."])),x.className="jsoneditor-transform-preview",x.value=t.join("\n"),u.disabled=!1}catch(e){x.className="jsoneditor-transform-preview jsoneditor-error",x.value=e.toString(),u.disabled=!0}}var h=t.modalElem(),d=h.querySelector("#wizard"),u=h.querySelector("#ok"),p=h.querySelector("#filterField"),f=h.querySelector("#filterRelation"),m=h.querySelector("#filterValue"),g=h.querySelector("#sortField"),v=h.querySelector("#sortOrder"),y=h.querySelector("#selectFields"),b=h.querySelector("#query"),x=h.querySelector("#preview");Array.isArray(n)||(d.style.display="none",d.parentNode.style.fontStyle="italic",d.parentNode.appendChild(document.createTextNode("(wizard not available for objects, only for arrays)"))),e.getChildPaths().forEach(function(e){var t=i(e),n=document.createElement("option");n.text=t,n.value=t,p.appendChild(n);var o=document.createElement("option");o.text=t,o.value=t,g.appendChild(o)});var w=e.getChildPaths(!0).filter(function(e){return"."!==e});w.length>0?w.forEach(function(e){var t=i(e),n=document.createElement("option");n.text=t,n.value=t,y.appendChild(n)}):h.querySelector("#selectFieldsPart").style.display="none";var _=new s(p,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),C=new s(f,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"compare..."}),E=new s(g,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"field..."}),S=new s(v,{defaultSelected:!1,clearable:!0,allowDeselect:!0,placeholder:"order..."}),k=new s(y,{multiple:!0,clearable:!0,defaultSelected:!1});_.on("selectr.change",r),C.on("selectr.change",r),m.oninput=r,E.on("selectr.change",r),S.on("selectr.change",r),k.on("selectr.change",r),h.querySelector(".pico-modal-contents").onclick=function(e){e.preventDefault()},b.value=Array.isArray(n)?"[*]":"@";var j=l(a,300);b.oninput=j,j(),u.onclick=function(n){n.preventDefault(),n.stopPropagation(),t.close(),e.transform(b.value)},setTimeout(function(){b.select(),b.focus(),b.selectionStart=3,b.selectionEnd=3})}).afterClose(function(e){e.destroy()}).show()}var o=n(18),r=n(23),s=n(25),a=n(15).translate,l=n(12).debounce,c=100;e.exports=i},function(e,t){"use strict";function n(e,t){return e.hasOwnProperty(t)&&(!0===e[t]||e[t].length)}function i(e,t,n){e.parentNode?e.parentNode.parentNode||t.appendChild(e.parentNode):t.appendChild(e),s.removeClass(e,"excluded"),n||(e.innerHTML=e.textContent)}var o={defaultSelected:!0,width:"auto",disabled:!1,searchable:!0,clearable:!1,sortSelected:!1,allowDeselect:!1,closeOnScroll:!1,nativeDropdown:!1,placeholder:"Select an option...",taggable:!1,tagPlaceholder:"Enter a tag..."},r=function(){};r.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t-1},truncate:function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}},a=function(){if(this.items.length){var e=document.createDocumentFragment();if(this.config.pagination){var t=this.pages.slice(0,this.pageIndex);s.each(t,function(t,n){s.each(n,function(t,n){i(n,e,this.customOption)},this)},this)}else s.each(this.items,function(t,n){i(n,e,this.customOption)},this);e.childElementCount&&(s.removeClass(this.items[this.navIndex],"active"),this.navIndex=e.querySelector(".selectr-option").idx,s.addClass(this.items[this.navIndex],"active")),this.tree.appendChild(e)}},l=function(e){var t=e.target;this.container.contains(t)||!this.opened&&!s.hasClass(this.container,"notice")||this.close()},c=function(e,t){t=t||e;var n=this.customOption?this.config.renderOption(t):e.textContent,i=s.createElement("li",{class:"selectr-option",html:n,role:"treeitem","aria-selected":!1});return i.idx=e.idx,this.items.push(i),e.defaultSelected&&this.defaultSelected.push(e.idx),e.disabled&&(i.disabled=!0,s.addClass(i,"disabled")),i},h=function(){this.requiresPagination=this.config.pagination&&this.config.pagination>0,n(this.config,"width")&&(s.isInt(this.config.width)?this.width=this.config.width+"px":"auto"===this.config.width?this.width="100%":s.includes(this.config.width,"%")&&(this.width=this.config.width)),this.container=s.createElement("div",{class:"selectr-container"}),this.config.customClass&&s.addClass(this.container,this.config.customClass),this.mobileDevice?s.addClass(this.container,"selectr-mobile"):s.addClass(this.container,"selectr-desktop"),this.el.tabIndex=-1,this.config.nativeDropdown||this.mobileDevice?s.addClass(this.el,"selectr-visible"):s.addClass(this.el,"selectr-hidden"),this.selected=s.createElement("div",{class:"selectr-selected",disabled:this.disabled,tabIndex:1,"aria-expanded":!1}),this.label=s.createElement(this.el.multiple?"ul":"span",{class:"selectr-label"});var e=s.createElement("div",{class:"selectr-options-container"});if(this.tree=s.createElement("ul",{class:"selectr-options",role:"tree","aria-hidden":!0,"aria-expanded":!1}),this.notice=s.createElement("div",{class:"selectr-notice"}),this.el.setAttribute("aria-hidden",!0),this.disabled&&(this.el.disabled=!0),this.el.multiple&&(s.addClass(this.label,"selectr-tags"),s.addClass(this.container,"multiple"),this.tags=[],this.selectedValues=this.getSelectedProperties("value"),this.selectedIndexes=this.getSelectedProperties("idx")),this.selected.appendChild(this.label),this.config.clearable&&(this.selectClear=s.createElement("button",{class:"selectr-clear",type:"button"}),this.container.appendChild(this.selectClear),s.addClass(this.container,"clearable")),this.config.taggable){var t=s.createElement("li",{class:"input-tag"});this.input=s.createElement("input",{class:"selectr-tag-input",placeholder:this.config.tagPlaceholder,tagIndex:0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),t.appendChild(this.input),this.label.appendChild(t),s.addClass(this.container,"taggable"),this.tagSeperators=[","],this.config.tagSeperators&&(this.tagSeperators=this.tagSeperators.concat(this.config.tagSeperators))}this.config.searchable&&(this.input=s.createElement("input",{class:"selectr-input",tagIndex:-1,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox",type:"search"}),this.inputClear=s.createElement("button",{class:"selectr-input-clear",type:"button"}),this.inputContainer=s.createElement("div",{class:"selectr-input-container"}),this.inputContainer.appendChild(this.input),this.inputContainer.appendChild(this.inputClear),e.appendChild(this.inputContainer)),e.appendChild(this.notice),e.appendChild(this.tree),this.items=[],this.options=[],this.el.options.length&&(this.options=[].slice.call(this.el.options));var i=!1,o=0;if(this.el.children.length&&s.each(this.el.children,function(e,t){"OPTGROUP"===t.nodeName?(i=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.label+"
  • "}),s.each(t.children,function(e,t){t.idx=o,i.appendChild(c.call(this,t,i)),o++},this)):(t.idx=o,c.call(this,t),o++)},this),this.config.data&&Array.isArray(this.config.data)){this.data=[];var r,a=!1;i=!1,o=0,s.each(this.config.data,function(e,t){n(t,"children")?(a=s.createElement("optgroup",{label:t.text}),i=s.createElement("ul",{class:"selectr-optgroup",role:"group",html:"
  • "+t.text+"
  • "}),s.each(t.children,function(e,t){r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=n(t,"disabled"),this.options.push(r),a.appendChild(r),r.idx=o,i.appendChild(c.call(this,r,t)),this.data[o]=t,o++},this)):(r=new Option(t.text,t.value,!1,t.hasOwnProperty("selected")&&!0===t.selected),r.disabled=n(t,"disabled"),this.options.push(r),r.idx=o,c.call(this,r,t),this.data[o]=t,o++)},this)}this.setSelected(!0);var l;this.navIndex=0;for(var h=0;h0)&&this.change(this.navIndex);var t,n=this.items[this.navIndex];switch(e.which){case 38:t=0,this.navIndex>0&&this.navIndex--;break;case 40:t=1,this.navIndexthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(i.top+i.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&f.call(this)):0===this.navIndex?this.tree.scrollTop=0:i.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(i.top-this.optsRect.top)),n&&s.removeClass(n,"active"),s.addClass(this.items[this.navIndex],"active")},u=function(e){var t,n=this,i=document.createDocumentFragment(),o=this.options[e.idx],r=this.data?this.data[e.idx]:o,a=this.customSelected?this.config.renderSelection(r):o.textContent,l=s.createElement("li",{class:"selectr-tag",html:a}),c=s.createElement("button",{class:"selectr-tag-remove",type:"button"});if(l.appendChild(c),l.idx=e.idx,l.tag=o.value,this.tags.push(l),this.config.sortSelected){var h=this.tags.slice();t=function(e,t){e.replace(/(\d+)|(\D+)/g,function(e,n,i){t.push([n||1/0,i||""])})},h.sort(function(e,i){var o,r,s=[],a=[];for(!0===n.config.sortSelected?(o=e.tag,r=i.tag):"text"===n.config.sortSelected&&(o=e.textContent,r=i.textContent),t(o,s),t(r,a);s.length&&a.length;){var l=s.shift(),c=a.shift(),h=l[0]-c[0]||l[1].localeCompare(c[1]);if(h)return h}return s.length-a.length}),s.each(h,function(e,t){i.appendChild(t)}),this.label.innerHTML=""}else i.appendChild(l);this.config.taggable?this.label.insertBefore(i,this.input.parentNode):this.label.appendChild(i)},p=function(e){var t=!1;s.each(this.tags,function(n,i){i.idx===e.idx&&(t=i)},this),t&&(this.label.removeChild(t),this.tags.splice(this.tags.indexOf(t),1))},f=function(){var e=this.tree;if(e.scrollTop>=e.scrollHeight-e.offsetHeight&&this.pageIndex"+n[0]+"")},v=function(e,t){if(t=t||{},!e)throw new Error("You must supply either a HTMLSelectElement or a CSS3 selector string.");if(this.el=e,"string"==typeof e&&(this.el=document.querySelector(e)),null===this.el)throw new Error("The element you passed to Selectr can not be found.");if("select"!==this.el.nodeName.toLowerCase())throw new Error("The element you passed to Selectr is not a HTMLSelectElement.");this.render(t)};v.prototype.render=function(e){if(!this.rendered){this.config=s.extend(o,e),this.originalType=this.el.type,this.originalIndex=this.el.tabIndex,this.defaultSelected=[],this.originalOptionCount=this.el.options.length,(this.config.multiple||this.config.taggable)&&(this.el.multiple=!0),this.disabled=n(this.config,"disabled"),this.opened=!1,this.config.taggable&&(this.config.searchable=!1),this.navigating=!1,this.mobileDevice=!1,/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent)&&(this.mobileDevice=!0),this.customOption=this.config.hasOwnProperty("renderOption")&&"function"==typeof this.config.renderOption,this.customSelected=this.config.hasOwnProperty("renderSelection")&&"function"==typeof this.config.renderSelection,r.mixin(this),h.call(this),this.bindEvents(),this.update(),this.optsRect=s.rect(this.tree),this.rendered=!0,this.el.multiple||(this.el.selectedIndex=this.selectedIndex);var t=this;setTimeout(function(){t.emit("selectr.init")},20)}},v.prototype.getSelected=function(){return this.el.querySelectorAll("option:checked")},v.prototype.getSelectedProperties=function(e){var t=this.getSelected();return[].slice.call(t).map(function(t){return t[e]}).filter(function(e){return null!==e&&void 0!==e})},v.prototype.bindEvents=function(){var e=this;if(this.events={},this.events.dismiss=l.bind(this),this.events.navigate=d.bind(this),this.events.reset=this.reset.bind(this),this.config.nativeDropdown||this.mobileDevice){this.container.addEventListener("touchstart",function(t){t.changedTouches[0].target===e.el&&e.toggle()}),(this.config.nativeDropdown||this.mobileDevice)&&this.container.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),t.target===e.el&&e.toggle()});var t=function(e,t){for(var n,i=[],o=e.slice(0),r=0;r-1?o.splice(n,1):i.push(t[r]);return[i,o]};this.el.addEventListener("change",function(n){if(e.el.multiple){var i=e.getSelectedProperties("idx"),o=t(e.selectedIndexes,i);s.each(o[0],function(t,n){e.select(n)},e),s.each(o[1],function(t,n){e.deselect(n)},e)}else e.el.selectedIndex>-1&&e.select(e.el.selectedIndex)})}this.config.nativeDropdown&&this.container.addEventListener("keydown",function(t){"Enter"===t.key&&e.selected===document.activeElement&&(e.toggle(),setTimeout(function(){e.el.focus()},200))}),this.selected.addEventListener("click",function(t){e.disabled||e.toggle(),t.preventDefault(),t.stopPropagation()}),this.label.addEventListener("click",function(t){s.hasClass(t.target,"selectr-tag-remove")&&e.deselect(t.target.parentNode.idx)}),this.selectClear&&this.selectClear.addEventListener("click",this.clear.bind(this)),this.tree.addEventListener("mousedown",function(e){e.preventDefault()}),this.tree.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation();var n=s.closest(t.target,function(e){return e&&s.hasClass(e,"selectr-option")});n&&(s.hasClass(n,"disabled")||(s.hasClass(n,"selected")?(e.el.multiple||!e.el.multiple&&e.config.allowDeselect)&&e.deselect(n.idx):e.select(n.idx),e.opened&&!e.el.multiple&&e.close()))}),this.tree.addEventListener("mouseover",function(t){s.hasClass(t.target,"selectr-option")&&(s.hasClass(t.target,"disabled")||(s.removeClass(e.items[e.navIndex],"active"),s.addClass(t.target,"active"),e.navIndex=[].slice.call(e.items).indexOf(t.target)))}),this.config.searchable&&(this.input.addEventListener("focus",function(t){e.searching=!0}),this.input.addEventListener("blur",function(t){e.searching=!1}),this.input.addEventListener("keyup",function(t){e.search(),e.config.taggable||(this.value.length?s.addClass(this.parentNode,"active"):s.removeClass(this.parentNode,"active"))}),this.inputClear.addEventListener("click",function(t){e.input.value=null,m.call(e),e.tree.childElementCount||a.call(e)})),this.config.taggable&&this.input.addEventListener("keyup",function(t){if(e.search(),e.config.taggable&&this.value.length){var n=this.value.trim();if(13===t.which||s.includes(e.tagSeperators,t.key)){s.each(e.tagSeperators,function(e,t){n=n.replace(t,"")});e.add({value:n,text:n,selected:!0},!0)?(e.close(),m.call(e)):(this.value="",e.setMessage("That tag is already in use."))}}}),this.update=s.debounce(function(){e.opened&&e.config.closeOnScroll&&e.close(),e.width&&(e.container.style.width=e.width),e.invert()},50),this.requiresPagination&&(this.paginateItems=s.debounce(function(){f.call(this)},50),this.tree.addEventListener("scroll",this.paginateItems.bind(this))),document.addEventListener("click",this.events.dismiss),window.addEventListener("keydown",this.events.navigate),window.addEventListener("resize",this.update),window.addEventListener("scroll",this.update),this.el.form&&this.el.form.addEventListener("reset",this.events.reset)},v.prototype.setSelected=function(e){if(this.config.data||this.el.multiple||!this.el.options.length||(0===this.el.selectedIndex&&(this.el.options[0].defaultSelected||this.config.defaultSelected||(this.el.selectedIndex=-1)),this.selectedIndex=this.el.selectedIndex,this.selectedIndex>-1&&this.select(this.selectedIndex)),this.config.multiple&&"select-one"===this.originalType&&!this.config.data&&this.el.options[0].selected&&!this.el.options[0].defaultSelected&&(this.el.options[0].selected=!1),s.each(this.options,function(e,t){t.selected&&t.defaultSelected&&this.select(t.idx)},this),this.config.selectedValue&&this.setValue(this.config.selectedValue),this.config.data){!this.el.multiple&&this.config.defaultSelected&&this.el.selectedIndex<0&&this.select(0);var t=0;s.each(this.config.data,function(e,i){n(i,"children")?s.each(i.children,function(e,n){n.hasOwnProperty("selected")&&!0===n.selected&&this.select(t),t++},this):(i.hasOwnProperty("selected")&&!0===i.selected&&this.select(t),t++)},this)}},v.prototype.destroy=function(){this.rendered&&(this.emit("selectr.destroy"),"select-one"===this.originalType&&(this.el.multiple=!1),this.config.data&&(this.el.innerHTML=""),s.removeClass(this.el,"selectr-hidden"),this.el.form&&s.off(this.el.form,"reset",this.events.reset),s.off(document,"click",this.events.dismiss),s.off(document,"keydown",this.events.navigate),s.off(window,"resize",this.update),s.off(window,"scroll",this.update),this.container.parentNode.replaceChild(this.el,this.container),this.rendered=!1)},v.prototype.change=function(e){var t=this.items[e],n=this.options[e];n.disabled||(n.selected&&s.hasClass(t,"selected")?this.deselect(e):this.select(e),this.opened&&!this.el.multiple&&this.close())},v.prototype.select=function(e){var t=this.items[e],n=[].slice.call(this.el.options),i=this.options[e];if(this.el.multiple){if(s.includes(this.selectedIndexes,e))return!1;if(this.config.maxSelections&&this.tags.length===this.config.maxSelections)return this.setMessage("A maximum of "+this.config.maxSelections+" items can be selected.",!0),!1;this.selectedValues.push(i.value),this.selectedIndexes.push(e),u.call(this,t)}else{var o=this.data?this.data[e]:i;this.label.innerHTML=this.customSelected?this.config.renderSelection(o):i.textContent,this.selectedValue=i.value,this.selectedIndex=e,s.each(this.options,function(t,n){var i=this.items[t];t!==e&&(i&&s.removeClass(i,"selected"),n.selected=!1,n.removeAttribute("selected"))},this)}s.includes(n,i)||this.el.add(i),t.setAttribute("aria-selected",!0),s.addClass(t,"selected"),s.addClass(this.container,"has-selected"),i.selected=!0,i.setAttribute("selected",""),this.emit("selectr.change",i),this.emit("selectr.select",i)},v.prototype.deselect=function(e,t){var n=this.items[e],i=this.options[e];if(this.el.multiple){var o=this.selectedIndexes.indexOf(e);this.selectedIndexes.splice(o,1);var r=this.selectedValues.indexOf(i.value);this.selectedValues.splice(r,1),p.call(this,n),this.tags.length||s.removeClass(this.container,"has-selected")}else{if(!t&&!this.config.clearable&&!this.config.allowDeselect)return!1;this.label.innerHTML="",this.selectedValue=null,this.el.selectedIndex=this.selectedIndex=-1,s.removeClass(this.container,"has-selected")}this.items[e].setAttribute("aria-selected",!1),s.removeClass(this.items[e],"selected"),i.selected=!1,i.removeAttribute("selected"),this.emit("selectr.change",null),this.emit("selectr.deselect",i)},v.prototype.setValue=function(e){var t=Array.isArray(e);if(t||(e=e.toString().trim()),!this.el.multiple&&t)return!1;s.each(this.options,function(n,i){(t&&s.includes(e.toString(),i.value)||i.value===e)&&this.change(i.idx)},this)},v.prototype.getValue=function(e,t){var n;if(this.el.multiple)e?this.selectedIndexes.length&&(n={},n.values=[],s.each(this.selectedIndexes,function(e,t){var i=this.options[t];n.values[e]={value:i.value,text:i.textContent}},this)):n=this.selectedValues.slice();else if(e){var i=this.options[this.selectedIndex];n={value:i.value,text:i.textContent}}else n=this.selectedValue;return e&&t&&(n=JSON.stringify(n)),n},v.prototype.add=function(e,t){if(e){if(this.data=this.data||[],this.items=this.items||[],this.options=this.options||[],Array.isArray(e))s.each(e,function(e,n){this.add(n,t)},this);else if("[object Object]"===Object.prototype.toString.call(e)){if(t){var n=!1;if(s.each(this.options,function(t,i){i.value.toLowerCase()===e.value.toLowerCase()&&(n=!0)}),n)return!1}var i=s.createElement("option",e);return this.data.push(e),this.options.push(i),i.idx=this.options.length>0?this.options.length-1:0,c.call(this,i),e.selected&&this.select(i.idx),i}return this.setPlaceholder(),this.config.pagination&&this.paginate(),!0}},v.prototype.remove=function(e){var t=[];if(Array.isArray(e)?s.each(e,function(n,i){s.isInt(i)?t.push(this.getOptionByIndex(i)):"string"==typeof e&&t.push(this.getOptionByValue(i))},this):s.isInt(e)?t.push(this.getOptionByIndex(e)):"string"==typeof e&&t.push(this.getOptionByValue(e)),t.length){var n;s.each(t,function(e,t){n=t.idx,this.el.remove(t),this.options.splice(n,1);var i=this.items[n].parentNode;i&&i.removeChild(this.items[n]),this.items.splice(n,1),s.each(this.options,function(e,t){t.idx=e,this.items[e].idx=e},this)},this),this.setPlaceholder(),this.config.pagination&&this.paginate()}},v.prototype.removeAll=function(){this.clear(!0),s.each(this.el.options,function(e,t){this.el.remove(t)},this),s.truncate(this.tree),this.items=[],this.options=[],this.data=[],this.navIndex=0,this.requiresPagination&&(this.requiresPagination=!1,this.pageIndex=1,this.pages=[]),this.setPlaceholder()},v.prototype.search=function(e){if(!this.navigating){e=e||this.input.value;var t=document.createDocumentFragment();if(this.removeMessage(),s.truncate(this.tree),e.length>1)if(s.each(this.options,function(n,o){var r=this.items[o.idx];s.includes(o.textContent.toLowerCase(),e.toLowerCase())&&!o.disabled?(i(r,t,this.customOption),s.removeClass(r,"excluded"),this.customOption||(r.innerHTML=g(e,o))):s.addClass(r,"excluded")},this),t.childElementCount){var n=this.items[this.navIndex],o=t.firstElementChild;s.removeClass(n,"active"),this.navIndex=o.idx,s.addClass(o,"active")}else this.config.taggable||this.setMessage("no results.");else a.call(this);this.tree.appendChild(t)}},v.prototype.toggle=function(){this.disabled||(this.opened?this.close():this.open())},v.prototype.open=function(){var e=this;return!!this.options.length&&(this.opened||this.emit("selectr.open"),this.opened=!0,this.mobileDevice||this.config.nativeDropdown?(s.addClass(this.container,"native-open"),void(this.config.data&&s.each(this.options,function(e,t){this.el.add(t)},this))):(s.addClass(this.container,"open"),a.call(this),this.invert(),this.tree.scrollTop=0,s.removeClass(this.container,"notice"),this.selected.setAttribute("aria-expanded",!0),this.tree.setAttribute("aria-hidden",!1),this.tree.setAttribute("aria-expanded",!0),void(this.config.searchable&&!this.config.taggable&&setTimeout(function(){e.input.focus(),e.input.tabIndex=0},10))))},v.prototype.close=function(){if(this.opened&&this.emit("selectr.close"),this.opened=!1,this.mobileDevice||this.config.nativeDropdown)return void s.removeClass(this.container,"native-open");var e=s.hasClass(this.container,"notice");this.config.searchable&&!e&&(this.input.blur(),this.input.tabIndex=-1,this.searching=!1),e&&(s.removeClass(this.container,"notice"),this.notice.textContent=""),s.removeClass(this.container,"open"),s.removeClass(this.container,"native-open"),this.selected.setAttribute("aria-expanded",!1),this.tree.setAttribute("aria-hidden",!0),this.tree.setAttribute("aria-expanded",!1),s.truncate(this.tree),m.call(this)},v.prototype.enable=function(){this.disabled=!1,this.el.disabled=!1,this.selected.tabIndex=this.originalIndex,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=0}),s.removeClass(this.container,"selectr-disabled")},v.prototype.disable=function(e){e||(this.el.disabled=!0),this.selected.tabIndex=-1,this.el.multiple&&s.each(this.tags,function(e,t){t.lastElementChild.tabIndex=-1}),this.disabled=!0,s.addClass(this.container,"selectr-disabled")},v.prototype.reset=function(){this.disabled||(this.clear(),this.setSelected(!0),s.each(this.defaultSelected,function(e,t){this.select(t)},this),this.emit("selectr.reset"))},v.prototype.clear=function(e){if(this.el.multiple){if(this.selectedIndexes.length){var t=this.selectedIndexes.slice();s.each(t,function(e,t){this.deselect(t)},this)}}else this.selectedIndex>-1&&this.deselect(this.selectedIndex,e);this.emit("selectr.clear")},v.prototype.serialise=function(e){var t=[];return s.each(this.options,function(e,n){var i={value:n.value,text:n.textContent};n.selected&&(i.selected=!0),n.disabled&&(i.disabled=!0),t[e]=i}),e?JSON.stringify(t):t},v.prototype.serialize=function(e){return this.serialise(e)},v.prototype.setPlaceholder=function(e){e=e||this.config.placeholder||this.el.getAttribute("placeholder"),this.options.length||(e="No options available"),this.placeEl.innerHTML=e},v.prototype.paginate=function(){if(this.items.length){var e=this;return this.pages=this.items.map(function(t,n){return n%e.config.pagination==0?e.items.slice(n,n+e.config.pagination):null}).filter(function(e){return e}),this.pages}},v.prototype.setMessage=function(e,t){t&&this.close(),s.addClass(this.container,"notice"),this.notice.textContent=e},v.prototype.removeMessage=function(){s.removeClass(this.container,"notice"),this.notice.innerHTML=""},v.prototype.invert=function(){var e=s.rect(this.selected),t=this.tree.parentNode.offsetHeight,n=window.innerHeight;e.top+e.height+t>n?(s.addClass(this.container,"inverted"),this.isInverted=!0):(s.removeClass(this.container,"inverted"),this.isInverted=!1),this.optsRect=s.rect(this.tree)},v.prototype.getOptionByIndex=function(e){return this.options[e]},v.prototype.getOptionByValue=function(e){for(var t=!1,n=0,i=this.options.length;n/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[f].substring(n.length)+"",i.push(m),t.appendChild(m)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),d=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var d="hidden"==s.style.visibility;if(h.hide(),d)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}} +}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";function i(){try{this.format()}catch(e){}}var o=n(1),r=n(26),s=n(12),a={};a.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var i=t.ace?t.ace:o;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===i&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&i)try{n(29)}catch(e){console.error(e)}t.onTextSelectionChange&&this.onTextSelectionChange(t.onTextSelectionChange);var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this.validationSequence=0,this.annotations=[],this._debouncedValidate=s.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var d={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(d);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=i.edit(this.editorDom),f=p.getSession();p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),f.setMode("ace/mode/json"),f.setTabSize(this.indentation),f.setUseSoftTabs(!0),f.setUseWrapMode(!0);var m=f.setAnnotations;f.setAnnotations=function(e){m.call(this,e&&e.length?e:a.annotations)},p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var g=document.createElement("a");g.appendChild(document.createTextNode("powered by ace")),g.href="http://ace.ajax.org",g.target="_blank",g.className="jsoneditor-poweredBy",g.onclick=function(){window.open(g.href,g.target)},this.menu.appendChild(g),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var v=document.createElement("textarea");v.className="jsoneditor-text",v.spellcheck=!1,this.content.appendChild(v),this.textarea=v,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),v.onselect=this._onSelect.bind(this),v.onmousedown=this._onMouseDown.bind(this),v.onblur=this._onBlur.bind(this)}var y=document.createElement("div");y.className="jsoneditor-validation-errors-container",this.dom.validationErrorsContainer=y,this.frame.appendChild(y);var b=document.createElement("div");if(b.style.display="none",b.className="jsoneditor-additional-errors fadein",b.innerHTML="Scroll for more ▿",this.dom.additinalErrorsIndication=b,y.appendChild(b),t.statusBar){s.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var x=document.createElement("div");this.dom.statusBar=x,x.className="jsoneditor-statusbar",this.frame.appendChild(x);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var _=document.createElement("span");_.className="jsoneditor-curserinfo-val",_.innerText="1",x.appendChild(w),x.appendChild(_);var C=document.createElement("span");C.className="jsoneditor-curserinfo-label",C.innerText="Col:";var E=document.createElement("span");E.className="jsoneditor-curserinfo-val",E.innerText="1",x.appendChild(C),x.appendChild(E),this.curserInfoElements.colVal=E,this.curserInfoElements.lnVal=_;var S=document.createElement("span");S.className="jsoneditor-curserinfo-label",S.innerText="characters selected",S.style.display="none";var k=document.createElement("span");k.className="jsoneditor-curserinfo-count",k.innerText="0",k.style.display="none",this.curserInfoElements.countLabel=S,this.curserInfoElements.countVal=k,x.appendChild(k),x.appendChild(S);var j=document.createElement("span");j.className="jsoneditor-validation-error-icon",j.style.display="none";var N=document.createElement("span");N.className="jsoneditor-validation-error-count",N.style.display="none",this.validationErrorIndication={validationErrorIcon:j,validationErrorCount:N},x.appendChild(N),x.appendChild(j),this.parseErrorIndication=document.createElement("span"),this.parseErrorIndication.className="jsoneditor-parse-error-icon",this.parseErrorIndication.style.display="none",x.appendChild(this.parseErrorIndication)}this.setSchema(this.options.schema,this.options.schemaRefs)},a._onChange=function(){if(!this.onChangeDisabled){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}if(this.options.onChangeText)try{this.options.onChangeText(this.getText())}catch(e){console.error("Error in onChangeText callback: ",e)}}},a._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},a._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfo(),this._emitSelectionChange()},a._onMouseDown=function(e){this._updateCursorInfo(),this._emitSelectionChange()},a._onBlur=function(e){var t=this;setTimeout(function(){t.isFocused||(t._updateCursorInfo(),t._emitSelectionChange()),t.isFocused=!1})},a._updateCursorInfo=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.textarea)setTimeout(function(){var r=s.getInputSelection(o.textarea);r.startIndex!==r.endIndex&&(i=r.endIndex-r.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===r.end.row&&o.cursorInfo.column===r.end.column?(t=r.start.row,n=r.start.column):(t=r.end.row,n=r.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var r=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=r.row+1,n=r.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},this.options.statusBar&&e()}},a._emitSelectionChange=function(){if(this._selectionChangedHandler){var e=this.getTextSelection();this._selectionChangedHandler(e.start,e.end,e.text)}},a._refreshAnnotations=function(){this.aceEditor&&this.aceEditor.getSession().setAnnotations()},a.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},a.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},a.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},a.repair=function(){var e=this.getText(),t=s.sanitize(e);this.setText(t)},a.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},a.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},a.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},a.update=function(e){this.updateText(JSON.stringify(e,null,this.indentation))},a.get=function(){var e,t=this.getText();try{e=s.parse(t)}catch(n){t=s.sanitize(t),e=s.parse(t)}return e},a.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},a.setText=function(e){var t;t=!0===this.options.escapeUnicode?s.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor&&(this.onChangeDisabled=!0,this.aceEditor.setValue(t,-1),this.onChangeDisabled=!1),this._debouncedValidate()},a.updateText=function(e){this.getText()!==e&&(this.onChangeDisabled=!0,this.setText(e),this.onChangeDisabled=!1)},a.validate=function(){var e,t=!1,n=[],i=[];try{e=this.get(),this.parseErrorIndication.style.display="none",t=!0}catch(e){if(this.getText()){this.parseErrorIndication.style.display="block";var o,r=/\w*line\s*(\d+)\w*/g.exec(e.message);r&&(o=+r[1]),this.parseErrorIndication.title=isNaN(o)?"parse error - check that the json is valid":"parse error on line "+o,i.push({type:"error",message:e.message.replace(/\n/g,"
    "),line:o})}}if(t){if(this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return e.type="validation",s.improveSchemaError(e)}))}this.validationSequence++;var a=this,l=this.validationSequence;this._validateCustom(e).then(function(e){if(l===a.validationSequence){var t=n.concat(i||[]).concat(e||[]);a._renderErrors(t)}}).catch(function(e){console.error(e)})}else this._renderErrors(i||[])},a._validateCustom=function(e){if(this.options.onValidate)try{var t=this.options.onValidate(e);return(s.isPromise(t)?t:Promise.resolve(t)).then(function(e){return Array.isArray(e)?e.filter(function(e){var t=s.isValidValidationError(e);return t||console.warn('Ignoring a custom validation error with invalid structure. Expected structure: {path: [...], message: "..."}. Actual error:',e),t}).map(function(e){return{dataPath:s.stringifyPath(e.path),message:e.message}}):null})}catch(e){return Promise.reject(e)}return Promise.resolve(null)},a._renderErrors=function(e){var t=this,n=0;this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.dom.additinalErrorsIndication.style.display="none",this.content.style.marginBottom="",this.content.style.paddingBottom="");var i=this.getText(),o=[];e.reduce(function(e,t){return-1===e.indexOf(t.dataPath)&&e.push(t.dataPath),e},o);var r=s.getPositionForPath(i,o);if(e.length>0)if(this.aceEditor)this.annotations=r.map(function(t){var n=e.filter(function(e){return e.dataPath===t.path}),i=n.map(function(e){return e.message}).join("\n");return i?{row:t.line,column:t.column,text:"Schema validation error"+(1!==n.length?"s":"")+": \n"+i,type:"warning",source:"jsoneditor"}:{}}),this._refreshAnnotations();else{var a=document.createElement("div");a.innerHTML='
    ';var l=a.getElementsByTagName("tbody")[0];e.forEach(function(e){var i;i="string"==typeof e?'
    '+e+"
    ":""+(e.dataPath||"")+""+e.message+"";var o;if(isNaN(e.line)){if(e.dataPath){var s=r.find(function(t){return t.path===e.dataPath});s&&(o=s.line+1)}}else o=e.line;var a=document.createElement("tr");a.className=isNaN(o)?"":"jump-to-line","error"===e.type?a.className+=" parse-error":(a.className+=" validation-error",++n),a.innerHTML=''+(isNaN(o)?"":"Ln "+o)+""+i,a.onclick=function(){t.isFocused=!0,isNaN(o)||t.setTextSelection({row:o,column:1},{row:o,column:1e3})},l.appendChild(a)}),this.dom.validationErrors=a,this.dom.validationErrorsContainer.appendChild(a),this.dom.additinalErrorsIndication.title=e.length+" errors total",this.dom.validationErrorsContainer.clientHeight0&&0===t.dom.validationErrorsContainer.scrollTop?"block":"none"}):this.dom.validationErrorsContainer.onscroll=void 0;var c=this.dom.validationErrorsContainer.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-c+"px",this.content.style.paddingBottom=c+"px"}else this.aceEditor&&(this.annotations=[],this._refreshAnnotations());if(this.options.statusBar){n=n||this.annotations.length;var h=!!n;this.validationErrorIndication.validationErrorIcon.style.display=h?"inline":"none",this.validationErrorIndication.validationErrorCount.style.display=h?"inline":"none",h&&(this.validationErrorIndication.validationErrorCount.innerText=n,this.validationErrorIndication.validationErrorIcon.title=n+" schema validation error(s) found")}if(this.aceEditor){this.aceEditor.resize(!1)}},a.getTextSelection=function(){var e={};if(this.textarea){var t=s.getInputSelection(this.textarea);return this.cursorInfo&&this.cursorInfo.line===t.end.row&&this.cursorInfo.column===t.end.column?(e.start=t.end,e.end=t.start):e=t,{start:e.start,end:e.end,text:this.textarea.value.substring(t.startIndex,t.endIndex)}}if(this.aceEditor){var n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),r=n.getSelectionLead();return r.row===o.end.row&&r.column===o.end.column?e=o:(e.start=o.end,e.end=o.start),{start:{row:e.start.row+1,column:e.start.column+1},end:{row:e.end.row+1,column:e.end.column+1},text:i}}},a.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=s.debounce(e,this.DEBOUNCE_INTERVAL))},a.setTextSelection=function(e,t){if(e&&t)if(this.textarea){var n=s.getIndexForPosition(this.textarea,e.row,e.column),i=s.getIndexForPosition(this.textarea,t.row,t.column);if(n>-1&&i>-1){if(this.textarea.setSelectionRange)this.textarea.focus(),this.textarea.setSelectionRange(n,i);else if(this.textarea.createTextRange){var o=this.textarea.createTextRange();o.collapse(!0),o.moveEnd("character",i),o.moveStart("character",n),o.select()}var r=(this.textarea.value.match(/\n/g)||[]).length+1,a=this.textarea.scrollHeight/r,l=e.row*a;this.textarea.scrollTop=l>this.textarea.clientHeight?l-this.textarea.clientHeight/2:0}}else if(this.aceEditor){var o={start:{row:e.row-1,column:e.column-1},end:{row:t.row-1,column:t.column-1}};this.aceEditor.selection.setRange(o)}},e.exports=[{mode:"text",mixin:a,data:"text",load:i},{mode:"code",mixin:a,data:"text",load:i}]},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index c691e7a..8c372d3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -62,7 +62,7 @@ var compilerMinimalist = webpack({ bannerPlugin, new webpack.IgnorePlugin(new RegExp('^brace$')), new webpack.IgnorePlugin(new RegExp('^ajv')), - new webpack.IgnorePlugin(new RegExp('^vanilla-picker$')) + new webpack.IgnorePlugin(new RegExp('^vanilla-picker')) ], cache: true });