diff --git a/README.md b/README.md index 11c49cca..ef688fae 100755 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ JsonTree.js [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=JsonTree.js%2C%20a%20free%20JavaScript%json%20treeview&url=https://github.com/williamtroup/JsonTree.js&hashtags=javascript,treeview,json) -[![npm](https://img.shields.io/badge/npmjs-v4.0.0-blue)](https://www.npmjs.com/package/jjsontree.js) -[![nuget](https://img.shields.io/badge/nuget-v4.0.0-purple)](https://www.nuget.org/packages/jJsonTree.js/) +[![npm](https://img.shields.io/badge/npmjs-v4.1.0-blue)](https://www.npmjs.com/package/jjsontree.js) +[![nuget](https://img.shields.io/badge/nuget-v4.1.0-purple)](https://www.nuget.org/packages/jJsonTree.js/) [![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/williamtroup/JsonTree.js/blob/main/LICENSE.txt) [![discussions Welcome](https://img.shields.io/badge/discussions-Welcome-red)](https://github.com/williamtroup/JsonTree.js/discussions) [![coded by William Troup](https://img.shields.io/badge/coded_by-William_Troup-yellow)](https://william-troup.com/) >

🔗 A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data.

->

v4.0.0

+>

v4.1.0


![JsonTree.js](docs/images/main.png) @@ -28,12 +28,13 @@ JsonTree.js - 🔍 22 types supported by default (such as Object, Array, primitive types, and even Sets, Maps, and HTML DOM elements). - 🔣 Support to show the data types, array/object sizes, comas, and opening/closing symbols! - ☑️ Fully configurable per DOM element! -- 📂 Close and open all objects, arrays, sets, and maps. +- 📂 Close and open all objects, arrays, sets, maps, and HTML objects. - 🚀 Clickable values via custom triggers! - ⭐ Custom value rendering. - 📃 Array paging, with configurable column count support (show array objects on different pages)! +- 💥 Compare the property name and index values in multiple page columns! - 💧 Drag & Drop JSON files support! -- 📋 Copy to clipboard (all JSON, or just the current page). +- 📋 Copy to clipboard (all JSON, a specific page, a specific JSON value, or selected JSON values). - ✏️ Full editing support (double click a value, property, index, or anywhere for everything). - 🔠 Keyboard navigation keys support! - 🎥 Toggle between regular and full-screen views. @@ -171,8 +172,8 @@ Or, you can download the latest zipped up version [here](https://www.william-tro Or, you can also use the following CDN links: ```markdown -https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.0.0/dist/jsontree.min.js -https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.0.0/dist/jsontree.js.min.css +https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.1.0/dist/jsontree.min.js +https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.1.0/dist/jsontree.js.min.css ```

diff --git a/README_NUGET.md b/README_NUGET.md index b1c42242..cc2f7a6b 100755 --- a/README_NUGET.md +++ b/README_NUGET.md @@ -1,8 +1,8 @@ -# JsonTree.js v4.0.0 +# JsonTree.js v4.1.0 [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=JsonTree.js%2C%20a%20free%20JavaScript%json%20treeview&url=https://github.com/williamtroup/JsonTree.js&hashtags=javascript,treeview,json) -[![npm](https://img.shields.io/badge/npmjs-v4.0.0-blue)](https://www.npmjs.com/package/jjsontree.js) -[![nuget](https://img.shields.io/badge/nuget-v4.0.0-purple)](https://www.nuget.org/packages/jJsonTree.js/) +[![npm](https://img.shields.io/badge/npmjs-v4.1.0-blue)](https://www.npmjs.com/package/jjsontree.js) +[![nuget](https://img.shields.io/badge/nuget-v4.1.0-purple)](https://www.nuget.org/packages/jJsonTree.js/) [![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/williamtroup/JsonTree.js/blob/main/LICENSE.txt) [![discussions Welcome](https://img.shields.io/badge/discussions-Welcome-red)](https://github.com/williamtroup/JsonTree.js/discussions) [![coded by William Troup](https://img.shields.io/badge/coded_by-William_Troup-yellow)](https://william-troup.com/) @@ -21,12 +21,13 @@ - 🔍 22 types supported by default (such as Object, Array, primitive types, and even Sets, Maps, and HTML DOM elements). - 🔣 Support to show the data types, array/object sizes, comas, and opening/closing symbols! - ☑️ Fully configurable per DOM element! -- 📂 Close and open all objects, arrays, sets, and maps. +- 📂 Close and open all objects, arrays, sets, maps, and HTML objects. - 🚀 Clickable values via custom triggers! - ⭐ Custom value rendering. - 📃 Array paging, with configurable column count support (show array objects on different pages)! +- 💥 Compare the property name and index values in multiple page columns! - 💧 Drag & Drop JSON files support! -- 📋 Copy to clipboard (all JSON, or just the current page). +- 📋 Copy to clipboard (all JSON, a specific page, a specific JSON value, or selected JSON values). - ✏️ Full editing support (double click a value, property, index, or anywhere for everything). - 🔠 Keyboard navigation keys support! - 🎥 Toggle between regular and full-screen views. @@ -150,8 +151,8 @@ Or, you can download the latest zipped up version [here](https://www.william-tro Or, you can also use the following CDN links: ```markdown -https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.0.0/dist/jsontree.min.js -https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.0.0/dist/jsontree.js.min.css +https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.1.0/dist/jsontree.min.js +https://cdn.jsdelivr.net/gh/williamtroup/JsonTree.js@4.1.0/dist/jsontree.js.min.css ``` diff --git a/dist/jsontree.esm.js b/dist/jsontree.esm.js index f9b91988..b6d9c301 100644 --- a/dist/jsontree.esm.js +++ b/dist/jsontree.esm.js @@ -66,6 +66,10 @@ var Is; return t; } e.bigInt = i; + function s(e) { + return e.startsWith("Symbol(") && e.endsWith(")"); + } + e.symbol = s; })(t = e.String || (e.String = {})); function n(e) { return e !== null && e !== void 0 && e.toString() !== ""; @@ -87,14 +91,14 @@ var Is; return n(e) && typeof e === "function"; } e.definedFunction = i; - function a(e) { + function s(e) { return n(e) && typeof e === "number"; } - e.definedNumber = a; - function s(e) { + e.definedNumber = s; + function a(e) { return n(e) && typeof e === "bigint"; } - e.definedBigInt = s; + e.definedBigInt = a; function u(e) { return e !== null && e !== void 0 && e instanceof Array; } @@ -123,14 +127,14 @@ var Is; return n(e) && (e instanceof Set || e instanceof WeakSet); } e.definedSet = p; - function T(e) { + function x(e) { return n(e) && e instanceof Image; } - e.definedImage = T; - function x(e) { + e.definedImage = x; + function T(e) { return n(e) && e instanceof HTMLElement; } - e.definedHtml = x; + e.definedHtml = T; function b(e) { let t; try { @@ -155,25 +159,62 @@ var Is; var Convert2; (Convert => { - function stringifyJson(e, t, n) { - if (Is.definedBigInt(t)) { - t = t.toString(); - } else if (Is.definedSymbol(t)) { - t = symbolToString(t); - } else if (Is.definedFunction(t)) { - t = Default.getFunctionName(t, n).name; - } else if (Is.definedMap(t)) { - t = mapToObject(t); - } else if (Is.definedSet(t)) { - t = setToArray(t); - } else if (Is.definedRegExp(t)) { - t = t.source; - } else if (Is.definedImage(t)) { - t = t.src; + function toJsonStringifyClone(e, t, n) { + let o = null; + if (!Is.defined(e)) { + o = null; + } else if (Is.definedDate(e)) { + if (!n.includeTimeZoneInDates) { + o = JSON.stringify(e).replace(/['"]+/g, ""); + } else { + o = e.toString(); + } + } else if (Is.definedSymbol(e)) { + o = symbolToString(e); + } else if (Is.definedBigInt(e)) { + o = e.toString(); + } else if (Is.definedFunction(e)) { + o = Default.getFunctionName(e, t).name; + } else if (Is.definedRegExp(e)) { + o = e.source; + } else if (Is.definedImage(e)) { + o = e.src; + } else if (Is.definedHtml(e)) { + o = htmlToObject(e, n.showCssStylesForHtmlObjects); + } else if (Is.definedArray(e)) { + o = []; + const l = e.length; + for (let r = 0; r < l; r++) { + o.push(toJsonStringifyClone(e[r], t, n)); + } + } else if (Is.definedSet(e)) { + o = []; + const l = setToArray(e); + const r = l.length; + for (let e = 0; e < r; e++) { + o.push(toJsonStringifyClone(l[e], t, n)); + } + } else if (Is.definedMap(e)) { + o = {}; + const l = mapToObject(e); + for (const e in l) { + if (l.hasOwnProperty(e)) { + o[e] = toJsonStringifyClone(l[e], t, n); + } + } + } else if (Is.definedObject(e)) { + o = {}; + for (const l in e) { + if (e.hasOwnProperty(l)) { + o[l] = toJsonStringifyClone(e[l], t, n); + } + } + } else { + o = e; } - return t; + return o; } - Convert.stringifyJson = stringifyJson; + Convert.toJsonStringifyClone = toJsonStringifyClone; function stringToDataTypeValue(e, t) { let n = null; try { @@ -213,16 +254,16 @@ var Convert2; const l = e.children.length; const r = "&children"; const i = "#text"; - const a = e.cloneNode(true); - let s = a.children.length; - while (s > 0) { - if (a.children[0].nodeType !== Node.TEXT_NODE) { - a.removeChild(a.children[0]); + const s = e.cloneNode(true); + let a = s.children.length; + while (a > 0) { + if (s.children[0].nodeType !== Node.TEXT_NODE) { + s.removeChild(s.children[0]); } - s--; + a--; } n[r] = []; - n[i] = a.innerText; + n[i] = s.innerText; for (let t = 0; t < o; t++) { const o = e.attributes[t]; if (Is.definedString(o.nodeName)) { @@ -270,7 +311,7 @@ var Convert2; if (Is.definedString(objectString)) { result.object = JSON.parse(objectString); } - } catch (e1) { + } catch (exception1) { try { result.object = eval(`(${objectString})`); if (Is.definedFunction(result.object)) { @@ -278,7 +319,7 @@ var Convert2; } } catch (e) { if (!configuration.safeMode) { - console.error(configuration.text.objectErrorText.replace("{{error_1}}", e1.message).replace("{{error_2}}", e.message)); + console.error(configuration.text.objectErrorText.replace("{{error_1}}", exception1.message).replace("{{error_2}}", e.message)); result.parsed = false; } result.object = null; @@ -329,14 +370,14 @@ var Default; return Is.definedArray(e) ? e : t; } e.getArray = i; - function a(e, t) { + function s(e, t) { return Is.definedObject(e) ? e : t; } - e.getObject = a; - function s(e, t, n) { + e.getObject = s; + function a(e, t, n) { return Is.definedNumber(e) ? e >= n ? e : n : t; } - e.getNumberMinimum = s; + e.getNumberMinimum = a; function u(e, t, n) { return Is.definedNumber(e) ? e > n ? n : e : t; } @@ -412,7 +453,7 @@ var DomElement; function n(e, t, n = "", o = null) { const l = t.toLowerCase(); const r = l === "text"; - let i = r ? document.createTextNode("") : document.createElement(l); + const i = r ? document.createTextNode("") : document.createElement(l); if (Is.defined(n)) { i.className = n; } @@ -435,7 +476,7 @@ var DomElement; function l(e) { const t = e.toLowerCase(); const n = t === "text"; - let o = n ? document.createTextNode("") : document.createElement(t); + const o = n ? document.createTextNode("") : document.createElement(t); return o; } e.createWithNoContainer = l; @@ -453,7 +494,7 @@ var DomElement; return t; } e.getScrollPosition = i; - function a(e, t, n) { + function s(e, t, n) { let o = e.pageX; let l = e.pageY; const r = i(); @@ -479,18 +520,18 @@ var DomElement; t.style.left = `${o}px`; t.style.top = `${l}px`; } - e.showElementAtMousePosition = a; - function s(e) { + e.showElementAtMousePosition = s; + function a(e) { const t = document.createRange(); t.selectNodeContents(e); const n = window.getSelection(); n.removeAllRanges(); n.addRange(t); } - e.selectAllText = s; - function u(e, t, l, r, i, a) { - const s = n(e, "div", "checkbox"); - const u = n(s, "label", "checkbox"); + e.selectAllText = a; + function u(e, t, l, r, i, s) { + const a = n(e, "div", "checkbox"); + const u = n(a, "label", "checkbox"); const c = n(u, "input"); c.type = "checkbox"; c.name = l; @@ -498,12 +539,24 @@ var DomElement; c.autocomplete = "off"; n(u, "span", "check-mark"); o(u, "span", `text ${i}`, t); - if (Is.definedString(a)) { - o(u, "span", `additional-text`, a); + if (Is.definedString(s)) { + o(u, "span", `additional-text`, s); } return c; } e.createCheckBox = u; + function c(e) { + const t = {}; + t.left = 0; + t.top = 0; + while (e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop)) { + t.left += e.offsetLeft - e.scrollLeft; + t.top += e.offsetTop - e.scrollTop; + e = e.offsetParent; + } + return t; + } + e.getOffset = c; })(DomElement || (DomElement = {})); var Str; @@ -592,7 +645,7 @@ var Binding; const l = o.allowEditing; o._currentView = {}; o._currentView.element = n; - o._currentView.dataArrayCurrentIndex = (o.paging.startPage - 1) * o.paging.columnsPerPage; + o._currentView.currentDataArrayPageIndex = (o.paging.startPage - 1) * o.paging.columnsPerPage; o._currentView.titleBarButtons = null; o._currentView.valueClickTimerId = 0; o._currentView.editMode = false; @@ -609,7 +662,7 @@ var Binding; o._currentView.fullScreenOn = false; o._currentView.dragAndDropBackground = null; o._currentView.initialized = false; - o._currentView.contentColumns = []; + o._currentView.currentContentColumns = []; o._currentView.footer = null; o._currentView.footerStatusText = null; o._currentView.footerDataTypeText = null; @@ -620,9 +673,11 @@ var Binding; o._currentView.columnDragging = false; o._currentView.columnDraggingDataIndex = 0; o._currentView.dataTypeCounts = {}; - o._currentView.contentControlButtons = []; - if (o.paging.enabled && Is.definedArray(o.data) && o.data.length > 1 && o._currentView.dataArrayCurrentIndex > o.data.length - 1) { - o._currentView.dataArrayCurrentIndex = 0; + o._currentView.contextMenu = null; + o._currentView.currentColumnBuildingIndex = 0; + o._currentView.selectedValues = []; + if (o.paging.enabled && Is.definedArray(o.data) && o.data.length > 1 && o._currentView.currentDataArrayPageIndex > o.data.length - 1) { + o._currentView.currentDataArrayPageIndex = 0; } for (const e in l) { if (!l[e]) { @@ -634,7 +689,7 @@ var Binding; } t.getForNewInstance = n; function o(e) { - let t = Default.getObject(e, {}); + const t = Default.getObject(e, {}); t.showObjectSizes = Default.getBoolean(t.showObjectSizes, true); t.useZeroIndexingForArrays = Default.getBoolean(t.useZeroIndexingForArrays, true); t.dateTimeFormat = Default.getString(t.dateTimeFormat, "{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}"); @@ -654,7 +709,7 @@ var Binding; t.showArrayIndexBrackets = Default.getBoolean(t.showArrayIndexBrackets, true); t.showOpeningClosingCurlyBraces = Default.getBoolean(t.showOpeningClosingCurlyBraces, false); t.showOpeningClosingSquaredBrackets = Default.getBoolean(t.showOpeningClosingSquaredBrackets, false); - t.includeTimeZoneInDateTimeEditing = Default.getBoolean(t.includeTimeZoneInDateTimeEditing, true); + t.includeTimeZoneInDates = Default.getBoolean(t.includeTimeZoneInDates, true); t.shortcutKeysEnabled = Default.getBoolean(t.shortcutKeysEnabled, true); t.openInFullScreenMode = Default.getBoolean(t.openInFullScreenMode, false); t.valueToolTips = Default.getObject(t.valueToolTips, null); @@ -675,17 +730,21 @@ var Binding; t.jsonPathAny = Default.getString(t.jsonPathAny, ".."); t.jsonPathSeparator = Default.getString(t.jsonPathSeparator, "\\"); t.showChildIndexes = Default.getBoolean(t.showChildIndexes, true); - t = l(t); - t = r(t); - t = i(t); - t = a(t); - t = s(t); - t = u(t); - t = c(t); - t = d(t); - t = f(t); - t = g(t); - t = m(t); + t.showClosedArraySquaredBrackets = Default.getBoolean(t.showClosedArraySquaredBrackets, true); + t.showClosedObjectCurlyBraces = Default.getBoolean(t.showClosedObjectCurlyBraces, true); + t.convertClickedValuesToString = Default.getBoolean(t.convertClickedValuesToString, false); + t.paging = l(t); + t.title = r(t); + t.footer = i(t); + t.controlPanel = s(t); + t.lineNumbers = a(t); + t.ignore = u(t); + t.tooltip = c(t); + t.parse = d(t); + t.allowEditing = f(t); + t.sideMenu = g(t); + t.autoClose = m(t); + t.events = p(t); return t; } t.get = o; @@ -696,7 +755,8 @@ var Binding; e.paging.startPage = Default.getNumberMinimum(e.paging.startPage, 1, 1); e.paging.synchronizeScrolling = Default.getBoolean(e.paging.synchronizeScrolling, false); e.paging.allowColumnReordering = Default.getBoolean(e.paging.allowColumnReordering, true); - return e; + e.paging.allowComparisons = Default.getBoolean(e.paging.allowComparisons, false); + return e.paging; } function r(e) { e.title = Default.getObject(e.title, {}); @@ -705,7 +765,7 @@ var Binding; e.title.showCopyButton = Default.getBoolean(e.title.showCopyButton, true); e.title.enableFullScreenToggling = Default.getBoolean(e.title.enableFullScreenToggling, true); e.title.showFullScreenButton = Default.getBoolean(e.title.showFullScreenButton, true); - return e; + return e.title; } function i(e) { e.footer = Default.getObject(e.footer, {}); @@ -715,9 +775,9 @@ var Binding; e.footer.showSizes = Default.getBoolean(e.footer.showSizes, true); e.footer.showPageOf = Default.getBoolean(e.footer.showPageOf, true); e.footer.statusResetDelay = Default.getNumber(e.footer.statusResetDelay, 5e3); - return e; + return e.footer; } - function a(e) { + function s(e) { e.controlPanel = Default.getObject(e.controlPanel, {}); e.controlPanel.enabled = Default.getBoolean(e.controlPanel.enabled, true); e.controlPanel.showCopyButton = Default.getBoolean(e.controlPanel.showCopyButton, true); @@ -726,9 +786,16 @@ var Binding; e.controlPanel.showEditButton = Default.getBoolean(e.controlPanel.showEditButton, true); e.controlPanel.showCloseOpenAllButtons = Default.getBoolean(e.controlPanel.showCloseOpenAllButtons, true); e.controlPanel.showSwitchToPagesButton = Default.getBoolean(e.controlPanel.showSwitchToPagesButton, true); - return e; + return e.controlPanel; } - function s(e) { + function a(e) { + e.lineNumbers = Default.getObject(e.lineNumbers, {}); + e.lineNumbers.enabled = Default.getBoolean(e.lineNumbers.enabled, true); + e.lineNumbers.padNumbers = Default.getBoolean(e.lineNumbers.padNumbers, false); + e.lineNumbers.addDots = Default.getBoolean(e.lineNumbers.addDots, true); + return e.lineNumbers; + } + function u(e) { e.ignore = Default.getObject(e.ignore, {}); e.ignore.nullValues = Default.getBoolean(e.ignore.nullValues, false); e.ignore.functionValues = Default.getBoolean(e.ignore.functionValues, false); @@ -754,22 +821,23 @@ var Binding; e.ignore.emailValues = Default.getBoolean(e.ignore.emailValues, false); e.ignore.htmlValues = Default.getBoolean(e.ignore.htmlValues, false); e.ignore.lambdaValues = Default.getBoolean(e.ignore.lambdaValues, false); - return e; + return e.ignore; } - function u(e) { + function c(e) { e.tooltip = Default.getObject(e.tooltip, {}); e.tooltip.delay = Default.getNumber(e.tooltip.delay, 750); e.tooltip.offset = Default.getNumber(e.tooltip.offset, 0); - return e; + return e.tooltip; } - function c(e) { + function d(e) { e.parse = Default.getObject(e.parse, {}); e.parse.stringsToDates = Default.getBoolean(e.parse.stringsToDates, false); e.parse.stringsToBooleans = Default.getBoolean(e.parse.stringsToBooleans, false); e.parse.stringsToNumbers = Default.getBoolean(e.parse.stringsToNumbers, false); - return e; + e.parse.stringsToSymbols = Default.getBoolean(e.parse.stringsToSymbols, false); + return e.parse; } - function d(e) { + function f(e) { let t = Default.getBoolean(e.allowEditing, true); e.allowEditing = Default.getObject(e.allowEditing, {}); e.allowEditing.booleanValues = Default.getBoolean(e.allowEditing.booleanValues, t); @@ -787,9 +855,16 @@ var Binding; e.allowEditing.imageValues = Default.getBoolean(e.allowEditing.imageValues, t); e.allowEditing.propertyNames = Default.getBoolean(e.allowEditing.propertyNames, t); e.allowEditing.bulk = Default.getBoolean(e.allowEditing.bulk, t); - return e; + const n = e.allowEditing; + for (const t in n) { + if (n.hasOwnProperty(t) && !n[t]) { + e.allowEditing.bulk = false; + break; + } + } + return e.allowEditing; } - function f(e) { + function g(e) { e.sideMenu = Default.getObject(e.sideMenu, {}); e.sideMenu.enabled = Default.getBoolean(e.sideMenu.enabled, true); e.sideMenu.showImportButton = Default.getBoolean(e.sideMenu.showImportButton, true); @@ -797,18 +872,18 @@ var Binding; e.sideMenu.titleText = Default.getAnyString(e.sideMenu.titleText, e.title.text); e.sideMenu.showAvailableDataTypeCounts = Default.getBoolean(e.sideMenu.showAvailableDataTypeCounts, true); e.sideMenu.showOnlyDataTypesAvailable = Default.getBoolean(e.sideMenu.showOnlyDataTypesAvailable, false); - return e; + return e.sideMenu; } - function g(e) { + function m(e) { e.autoClose = Default.getObject(e.autoClose, {}); e.autoClose.objectSize = Default.getNumber(e.autoClose.objectSize, 0); e.autoClose.arraySize = Default.getNumber(e.autoClose.arraySize, 0); e.autoClose.mapSize = Default.getNumber(e.autoClose.mapSize, 0); e.autoClose.setSize = Default.getNumber(e.autoClose.setSize, 0); e.autoClose.htmlSize = Default.getNumber(e.autoClose.htmlSize, 0); - return e; + return e.autoClose; } - function m(e) { + function p(e) { e.events = Default.getObject(e.events, {}); e.events.onBeforeRender = Default.getFunction(e.events.onBeforeRender, null); e.events.onRenderComplete = Default.getFunction(e.events.onRenderComplete, null); @@ -841,7 +916,7 @@ var Binding; e.events.onLambdaRender = Default.getFunction(e.events.onLambdaRender, null); e.events.onCopy = Default.getFunction(e.events.onCopy, null); e.events.onFullScreenChange = Default.getFunction(e.events.onFullScreenChange, null); - return e; + return e.events; } })(t = e.Options || (e.Options = {})); })(Binding || (Binding = {})); @@ -852,10 +927,10 @@ var Config; let t; (e => { function t(e = null) { - let t = Default.getObject(e, {}); + const t = Default.getObject(e, {}); t.safeMode = Default.getBoolean(t.safeMode, true); t.domElementTypes = Default.getStringOrArray(t.domElementTypes, [ "*" ]); - t = n(t); + t.text = n(t); return t; } e.get = t; @@ -945,7 +1020,7 @@ var Config; if (Is.invalidOptionArray(e.text.monthNamesAbbreviated, 12)) { e.text.monthNamesAbbreviated = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; } - return e; + return e.text; } })(t = e.Options || (e.Options = {})); })(Config || (Config = {})); @@ -975,8 +1050,8 @@ var ToolTip; } e.renderControl = t; function n(e, t = true) { - let n = t ? window.addEventListener : window.removeEventListener; - let o = t ? document.addEventListener : document.removeEventListener; + const n = t ? window.addEventListener : window.removeEventListener; + const o = t ? document.addEventListener : document.removeEventListener; n("mousemove", (() => r(e))); o("scroll", (() => r(e))); } @@ -1053,88 +1128,100 @@ var Arr; e.splice(n, 0, e.splice(t, 1)[0]); } e.moveIndex = l; + function r(e) { + let t = []; + const n = e.length; + for (let o = 0; o < n; o++) { + const n = e[o]; + if (Is.defined(n)) { + t.push(n); + } + } + return t; + } + e.removeNullOrUndefinedEntries = r; })(Arr || (Arr = {})); var Size; (e => { - function t(e) { - let t = null; - const n = o(e); - if (n > 0) { - const e = Math.floor(Math.log(n) / Math.log(1024)); - return `${Convert2.numberToFloatWithDecimalPlaces(n / Math.pow(1024, e), 2)} ${" KMGTP".charAt(e)}B`; + function t(e, t) { + let n = null; + const l = o(e, t); + if (l > 0) { + const e = Math.floor(Math.log(l) / Math.log(1024)); + return `${Convert2.numberToFloatWithDecimalPlaces(l / Math.pow(1024, e), 2)} ${" KMGTP".charAt(e)}B`; } - return t; + return n; } e.of = t; - function n(t) { - let n = 0; - if (Is.defined(t)) { - if (Is.definedDate(t)) { - n = t.toString().length; - } else if (Is.definedImage(t)) { - n = t.src.length; - } else if (Is.definedRegExp(t)) { - n = t.source.length; - } else if (Is.definedSet(t)) { - n = e.length(Convert2.setToArray(t)); - } else if (Is.definedMap(t)) { - n = e.length(Convert2.mapToObject(t)); - } else if (Is.definedHtml(t)) { - n = e.length(Convert2.htmlToObject(t)); - } else if (Is.definedArray(t)) { - n = t.length; - } else if (Is.definedObject(t)) { - for (const e in t) { - if (t.hasOwnProperty(e)) { - n++; + function n(e, t) { + let o = 0; + if (Is.defined(e)) { + if (Is.definedDate(e)) { + o = e.toString().length; + } else if (Is.definedImage(e)) { + o = e.src.length; + } else if (Is.definedRegExp(e)) { + o = e.source.length; + } else if (Is.definedSet(e)) { + o = n(Convert2.setToArray(e), t); + } else if (Is.definedMap(e)) { + o = n(Convert2.mapToObject(e), t); + } else if (Is.definedHtml(e)) { + o = n(Convert2.htmlToObject(e, t), t); + } else if (Is.definedArray(e)) { + o = e.length; + } else if (Is.definedObject(e)) { + for (const t in e) { + if (e.hasOwnProperty(t)) { + o++; } } } else { - if (!Is.definedFunction(t) && !Is.definedSymbol(t)) { - n = t.toString().length; + if (!Is.definedFunction(e) && !Is.definedSymbol(e)) { + o = e.toString().length; } } } - return n; + return o; } e.length = n; - function o(e) { - let t = 0; + function o(e, t) { + let n = 0; if (Is.defined(e)) { if (Is.definedNumber(e)) { - t = 8; + n = 8; } else if (Is.definedString(e)) { - t = e.length * 2; + n = e.length * 2; } else if (Is.definedBoolean(e)) { - t = 4; + n = 4; } else if (Is.definedBigInt(e)) { - t = o(e.toString()); + n = o(e.toString(), t); } else if (Is.definedRegExp(e)) { - t = o(e.toString()); + n = o(e.toString(), t); } else if (Is.definedDate(e)) { - t = o(e.toString()); + n = o(e.toString(), t); } else if (Is.definedSet(e)) { - t = o(Convert2.setToArray(e)); + n = o(Convert2.setToArray(e), t); } else if (Is.definedMap(e)) { - t = o(Convert2.mapToObject(e)); + n = o(Convert2.mapToObject(e), t); } else if (Is.definedHtml(e)) { - t = o(Convert2.htmlToObject(e)); + n = o(Convert2.htmlToObject(e, t), t); } else if (Is.definedArray(e)) { - const n = e.length; - for (let l = 0; l < n; l++) { - t += o(e[l]); + const l = e.length; + for (let r = 0; r < l; r++) { + n += o(e[r], t); } } else if (Is.definedObject(e)) { - for (const n in e) { - if (e.hasOwnProperty(n)) { - t += o(n) + o(e[n]); + for (const l in e) { + if (e.hasOwnProperty(l)) { + n += o(l, t) + o(e[l], t); } } } } - return t; + return n; } })(Size || (Size = {})); @@ -1161,13 +1248,64 @@ var Obj; return n; } e.getPropertyNames = t; + function n(e) { + const t = {}; + t[crypto.randomUUID()] = e; + return t; + } + e.createFromValue = n; })(Obj || (Obj = {})); +var ContextMenu; + +(e => { + function t(e) { + if (!Is.defined(e._currentView.contextMenu)) { + e._currentView.contextMenu = DomElement.create(document.body, "div", "jsontree-js-context-menu"); + e._currentView.contextMenu.style.display = "none"; + n(e); + } + } + e.renderControl = t; + function n(e, t = true) { + const n = t ? window.addEventListener : window.removeEventListener; + const o = t ? document.addEventListener : document.removeEventListener; + n("contextmenu", (() => l(e))); + n("click", (() => l(e))); + o("scroll", (() => l(e))); + } + e.assignToEvents = n; + function o(e, t) { + DomElement.cancelBubble(e); + DomElement.showElementAtMousePosition(e, t._currentView.contextMenu, 0); + } + e.show = o; + function l(e) { + if (Is.defined(e._currentView.contextMenu) && e._currentView.contextMenu.style.display !== "none") { + e._currentView.contextMenu.style.display = "none"; + } + } + e.hide = l; + function r(e) { + if (Is.defined(e._currentView.contextMenu)) { + e._currentView.contextMenu.parentNode.removeChild(e._currentView.contextMenu); + } + } + e.remove = r; + function i(e, t, n) { + const o = DomElement.create(e._currentView.contextMenu, "div", "context-menu-item"); + DomElement.createWithHTML(o, "span", "symbol", t); + DomElement.createWithHTML(o, "span", "text", n); + return o; + } + e.addMenuItem = i; +})(ContextMenu || (ContextMenu = {})); + (() => { let e = {}; let t = {}; let n = 0; - let o = (t, n) => Convert2.stringifyJson(t, n, e); + let o = false; function l() { DomElement.find(e.domElementTypes, (t => { let n = true; @@ -1196,6 +1334,7 @@ var Obj; function r(e) { Trigger.customEvent(e.events.onBeforeRender, e._currentView.element); ToolTip.renderControl(e); + ContextMenu.renderControl(e); if (!Is.definedString(e._currentView.element.id)) { e._currentView.element.id = crypto.randomUUID(); e._currentView.idSet = true; @@ -1211,101 +1350,122 @@ var Obj; n++; } i(e); - ce(e); + we(e); Trigger.customEvent(e.events.onRenderComplete, e._currentView.element); } function i(n, o = false) { let l = t[n._currentView.element.id].data; if (Is.definedUrl(l)) { Default.getObjectFromUrl(l, e, (e => { - a(n, o, e); + s(n, o, e); })); } else { - a(n, o, l); + s(n, o, l); } } - function a(e, t, n) { + function s(e, t, n) { const o = c(e); ToolTip.hide(e); + ContextMenu.hide(e); + e.data = n; e._currentView.element.innerHTML = ""; e._currentView.editMode = false; e._currentView.contentPanelsIndex = 0; e._currentView.sideMenuChanged = false; - e._currentView.contentColumns = []; + e._currentView.currentContentColumns = []; e._currentView.dataTypeCounts = {}; - e._currentView.contentControlButtons = []; - D(e, n); + v(e, n); const l = DomElement.create(e._currentView.element, "div", "contents"); if (t) { l.classList.add("page-switch"); } if (e.paging.enabled && Is.definedArray(n)) { - const t = Is.defined(n[e._currentView.dataArrayCurrentIndex + 1]); - for (let r = 0; r < e.paging.columnsPerPage; r++) { - const i = r + e._currentView.dataArrayCurrentIndex; - const a = n[i]; - e._currentView.contentPanelsIndex = 0; - e._currentView.contentPanelsDataIndex = i; - if (Is.defined(a)) { - s(a, l, e, i, o[r], e.paging.columnsPerPage, t); + const t = Is.defined(n[e._currentView.currentDataArrayPageIndex + 1]); + const r = Arr.removeNullOrUndefinedEntries(n); + e.data = r; + for (let n = 0; n < e.paging.columnsPerPage; n++) { + const i = n + e._currentView.currentDataArrayPageIndex; + if (i <= r.length - 1) { + const s = r[i]; + e._currentView.contentPanelsIndex = 0; + e._currentView.contentPanelsDataIndex = i; + a(s, l, e, i, o[n], e.paging.columnsPerPage, t); } } } else { e._currentView.contentPanelsIndex = 0; e._currentView.contentPanelsDataIndex = 0; - s(n, l, e, null, o[0], 1, false); + a(n, l, e, null, o[0], 1, false); } - C(e); - P(e); - oe(e); + _(e); + N(e); + fe(e); e._currentView.initialized = true; } - function s(t, n, o, l, r, i, a) { - const s = DomElement.create(n, "div", i > 1 ? "contents-column-multiple" : "contents-column"); + function a(t, n, o, l, r, i, s) { + const a = DomElement.create(n, "div", i > 1 ? "contents-column-multiple" : "contents-column"); if (!Is.defined(t)) { - const t = DomElement.create(s, "div", "no-json"); + const t = DomElement.create(a, "div", "no-json"); DomElement.createWithHTML(t, "span", "no-json-text", e.text.noJsonToViewText); if (o.sideMenu.showImportButton) { const n = DomElement.createWithHTML(t, "span", "no-json-import-text", `${e.text.importButtonText}${e.text.ellipsisText}`); - n.onclick = () => _(o); + n.onclick = () => A(o); } } else { - s.onscroll = () => d(s, o, l); + a.onscroll = () => d(a, o, l); if (o.paging.enabled && Is.definedNumber(l)) { - s.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME, l.toString()); + a.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME, l.toString()); } - if (a && o.paging.allowColumnReordering && o.paging.columnsPerPage > 1 && o.allowEditing.bulk) { - s.setAttribute("draggable", "true"); - s.ondragstart = () => f(s, o, l); - s.ondragend = () => g(s, o); - s.ondragover = e => e.preventDefault(); - s.ondrop = () => m(o, l); + if (s && o.paging.allowColumnReordering && o.paging.columnsPerPage > 1 && o.allowEditing.bulk) { + a.setAttribute("draggable", "true"); + a.ondragstart = () => f(a, o, l); + a.ondragend = () => g(a, o); + a.ondragover = e => e.preventDefault(); + a.ondrop = () => m(o, l); } - o._currentView.contentColumns.push(s); + let e = a; + let n = null; + let i = null; + if (o.lineNumbers.enabled) { + n = DomElement.create(a, "div", "contents-column-line-numbers"); + i = DomElement.create(a, "div", "contents-column-lines"); + e = i; + } + const c = { + column: a, + lineNumbers: n, + lines: i, + controlButtons: null + }; + o._currentView.currentContentColumns.push(c); + o._currentView.currentColumnBuildingIndex = o._currentView.currentContentColumns.length - 1; if (Is.definedArray(t)) { - z(s, o, t, "array"); + z(e, o, t, "array"); } else if (Is.definedSet(t)) { - z(s, o, Convert2.setToArray(t), "set"); + z(e, o, Convert2.setToArray(t), "set"); } else if (Is.definedHtml(t)) { - $(s, o, Convert2.htmlToObject(t, o.showCssStylesForHtmlObjects), l, "html"); + J(e, o, Convert2.htmlToObject(t, o.showCssStylesForHtmlObjects), l, "html"); } else if (Is.definedMap(t)) { - $(s, o, Convert2.mapToObject(t), l, "map"); + J(e, o, Convert2.mapToObject(t), l, "map"); } else if (Is.definedObject(t)) { - $(s, o, t, l, "object"); + J(e, o, t, l, "object"); + } else { + J(e, o, Obj.createFromValue(t), l, "object"); } - T(o, s, t, l); + x(o._currentView.currentColumnBuildingIndex, o); + T(o, a, t, l); if (Is.defined(r)) { - s.scrollTop = r; + a.scrollTop = r; } o._currentView.titleBarButtons.style.display = "block"; if (o.allowEditing.bulk) { - s.ondblclick = e => { - u(e, o, t, s, l); + a.ondblclick = e => { + u(e, o, t, a, l); }; } } } - function u(t, n, l, r, a) { + function u(t, n, o, l, r) { let s = null; if (Is.defined(t)) { DomElement.cancelBubble(t); @@ -1313,43 +1473,43 @@ var Obj; clearTimeout(n._currentView.valueClickTimerId); n._currentView.valueClickTimerId = 0; n._currentView.editMode = true; - r.classList.add("editable"); - r.setAttribute("contenteditable", "true"); - r.setAttribute("draggable", "false"); - r.innerText = JSON.stringify(l, o, n.jsonIndentSpaces); - r.focus(); - DomElement.selectAllText(r); - r.onblur = () => { + l.classList.add("editable"); + l.setAttribute("contenteditable", "true"); + l.setAttribute("draggable", "false"); + l.innerText = JSON.stringify(Convert2.toJsonStringifyClone(o, e, n), n.events.onCopyJsonReplacer, n.jsonIndentSpaces); + l.focus(); + DomElement.selectAllText(l); + l.onblur = () => { i(n, false); if (Is.definedString(s)) { - W(n, s); + $(n, s); } }; - r.onkeydown = t => { + l.onkeydown = t => { if (t.code === "Escape") { t.preventDefault(); - r.setAttribute("contenteditable", "false"); - } else if (fe(t) && t.code === "Enter") { + l.setAttribute("contenteditable", "false"); + } else if (ve(t) && t.code === "Enter") { t.preventDefault(); - const o = r.innerText; - const l = Convert2.jsonStringToObject(o, e); - if (l.parsed) { + const o = l.innerText; + const i = Convert2.jsonStringToObject(o, e); + if (i.parsed) { s = e.text.jsonUpdatedText; if (n.paging.enabled) { - if (Is.defined(l.object)) { - n.data[a] = l.object; + if (Is.defined(i.object)) { + n.data[r] = i.object; } else { - n.data.splice(a, 1); + n.data.splice(r, 1); s = e.text.arrayJsonItemDeleted; - if (a === n._currentView.dataArrayCurrentIndex && n._currentView.dataArrayCurrentIndex > 0) { - n._currentView.dataArrayCurrentIndex -= n.paging.columnsPerPage; + if (r === n._currentView.currentDataArrayPageIndex && n._currentView.currentDataArrayPageIndex > 0) { + n._currentView.currentDataArrayPageIndex -= n.paging.columnsPerPage; } } } else { - n.data = l.object; + n.data = i.object; } } - r.setAttribute("contenteditable", "false"); + l.setAttribute("contenteditable", "false"); } else if (t.code === "Enter") { t.preventDefault(); document.execCommand("insertLineBreak"); @@ -1359,41 +1519,43 @@ var Obj; function c(e) { const t = []; ToolTip.hide(e); + ContextMenu.hide(e); if (e._currentView.editMode || e._currentView.sideMenuChanged) { - const n = e._currentView.contentColumns.length; + const n = e._currentView.currentContentColumns.length; for (let o = 0; o < n; o++) { - t.push(e._currentView.contentColumns[o].scrollTop); + t.push(e._currentView.currentContentColumns[o].column.scrollTop); } } return t; } function d(e, t, n) { ToolTip.hide(t); + ContextMenu.hide(t); const o = e.scrollTop; const l = e.scrollLeft; - const r = t._currentView.contentColumns.length; + const r = t._currentView.currentContentColumns.length; if (t.controlPanel.enabled) { - const e = t._currentView.contentControlButtons[n]; + const e = t._currentView.currentContentColumns[n].controlButtons; if (Is.defined(e)) { - e.style.top = `${t._currentView.contentColumns[n].scrollTop}px`; - e.style.right = `-${t._currentView.contentColumns[n].scrollLeft}px`; + e.style.top = `${t._currentView.currentContentColumns[n].column.scrollTop}px`; + e.style.right = `-${t._currentView.currentContentColumns[n].column.scrollLeft}px`; } } if (t.paging.synchronizeScrolling) { for (let e = 0; e < r; e++) { if (n !== e) { - t._currentView.contentColumns[e].scrollTop = o; - t._currentView.contentColumns[e].scrollLeft = l; + t._currentView.currentContentColumns[e].column.scrollTop = o; + t._currentView.currentContentColumns[e].column.scrollLeft = l; } } } if (t.controlPanel.enabled) { for (let e = 0; e < r; e++) { if (n !== e) { - const n = t._currentView.contentControlButtons[e]; + const n = t._currentView.currentContentColumns[e].controlButtons; if (Is.defined(n)) { - n.style.top = `${t._currentView.contentColumns[e].scrollTop}px`; - n.style.right = `-${t._currentView.contentColumns[e].scrollLeft}px`; + n.style.top = `${t._currentView.currentContentColumns[e].column.scrollTop}px`; + n.style.right = `-${t._currentView.currentContentColumns[e].column.scrollLeft}px`; } } } @@ -1416,25 +1578,64 @@ var Obj; if (n !== o) { const l = t.data[o]; const r = t.data[n]; - let a = t._currentView.contentPanelsOpen[o]; - let s = t._currentView.contentPanelsOpen[n]; - if (!Is.defined(a)) { - a = {}; - } + let s = t._currentView.contentPanelsOpen[o]; + let a = t._currentView.contentPanelsOpen[n]; if (!Is.defined(s)) { s = {}; } + if (!Is.defined(a)) { + a = {}; + } t.data[o] = r; t.data[n] = l; - t._currentView.contentPanelsOpen[o] = s; - t._currentView.contentPanelsOpen[n] = a; - if (t._currentView.dataArrayCurrentIndex + (t.paging.columnsPerPage - 1) < o) { - t._currentView.dataArrayCurrentIndex += t.paging.columnsPerPage; - } else if (o < t._currentView.dataArrayCurrentIndex) { - t._currentView.dataArrayCurrentIndex -= t.paging.columnsPerPage; + t._currentView.contentPanelsOpen[o] = a; + t._currentView.contentPanelsOpen[n] = s; + if (t._currentView.currentDataArrayPageIndex + (t.paging.columnsPerPage - 1) < o) { + t._currentView.currentDataArrayPageIndex += t.paging.columnsPerPage; + } else if (o < t._currentView.currentDataArrayPageIndex) { + t._currentView.currentDataArrayPageIndex -= t.paging.columnsPerPage; } i(t); - W(t, e.text.jsonUpdatedText); + $(t, e.text.jsonUpdatedText); + } + } + function x(e, t) { + const n = t._currentView.currentContentColumns[e]; + if (t.lineNumbers.enabled) { + let e = 1; + let o = 0; + let l = 0; + const r = n.column.querySelectorAll(".object-type-title, .object-type-value-title, .object-type-end"); + const i = r.length; + n.lineNumbers.innerHTML = ""; + for (let s = 0; s < i; s++) { + const a = r[s]; + if (a.offsetHeight > 0) { + let r = DomElement.getOffset(a).top; + if (e === 1) { + o = r; + } + r -= o; + const s = DomElement.create(n.lineNumbers, "div", "contents-column-line-number"); + const u = t.lineNumbers.addDots ? "." : ""; + if (t.lineNumbers.padNumbers) { + s.innerHTML = `${Str.padNumber(e, i.toString().length)}${u}`; + } else { + s.innerHTML = `${e}${u}`; + } + const c = r + a.offsetHeight / 2 - s.offsetHeight / 2; + s.style.top = `${c}px`; + l = Math.max(l, s.offsetWidth); + } + e++; + } + n.lineNumbers.style.height = `${n.lines.offsetHeight}px`; + n.lineNumbers.style.width = `${l}px`; + } else { + if (Is.defined(n.lineNumbers)) { + n.lineNumbers.parentNode.removeChild(n.lineNumbers); + n.lineNumbers = null; + } } } function T(t, n, o, l) { @@ -1467,44 +1668,44 @@ var Obj; } if (i && t.controlPanel.showCopyButton) { const n = DomElement.createWithHTML(r, "button", "copy", e.text.copyButtonSymbolText); - n.onclick = () => h(t, o); + n.onclick = () => D(t, o); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.copyButtonText); } if (i && t.controlPanel.showCloseOpenAllButtons) { const n = DomElement.createWithHTML(r, "button", "open-all", e.text.openAllButtonSymbolText); - n.onclick = () => b(t, l); + n.onclick = () => w(t, l); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.openAllButtonText); const o = DomElement.createWithHTML(r, "button", "close-all", e.text.closeAllButtonSymbolText); - o.onclick = () => w(t, l); + o.onclick = () => y(t, l); o.ondblclick = DomElement.cancelBubble; ToolTip.add(o, t, e.text.closeAllButtonText); } if (t.allowEditing.bulk && t.controlPanel.showRemoveButton) { const n = DomElement.createWithHTML(r, "button", "remove", e.text.removeSymbolButtonText); - n.onclick = () => y(t, l); + n.onclick = () => h(t, l); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.removeButtonText); } if (!t.paging.enabled && Is.definedArray(t.data) && t.data.length > 1 && t.controlPanel.showSwitchToPagesButton) { const n = DomElement.createWithHTML(r, "button", "switch-to-pages", e.text.switchToPagesSymbolText); - n.onclick = () => x(t); + n.onclick = () => b(t); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.switchToPagesText); } if (r.innerHTML !== "") { - t._currentView.contentControlButtons.push(r); + t._currentView.currentContentColumns[t._currentView.currentColumnBuildingIndex].controlButtons = r; n.style.minHeight = `${r.offsetHeight}px`; } else { n.removeChild(r); } } - function x(e) { + function b(e) { e.paging.enabled = true; i(e); } - function b(e, t) { + function w(e, t) { const n = e._currentView.contentPanelsOpen[t]; for (const e in n) { if (n.hasOwnProperty(e)) { @@ -1513,7 +1714,7 @@ var Obj; } i(e); } - function w(e, t) { + function y(e, t) { const n = e._currentView.contentPanelsOpen[t]; for (const e in n) { if (n.hasOwnProperty(e)) { @@ -1522,37 +1723,33 @@ var Obj; } i(e); } - function y(t, n) { + function h(t, n) { if (t.paging.enabled) { t.data.splice(n, 1); - if (n === t._currentView.dataArrayCurrentIndex && t._currentView.dataArrayCurrentIndex > 0) { - t._currentView.dataArrayCurrentIndex -= t.paging.columnsPerPage; + if (n === t._currentView.currentDataArrayPageIndex && t._currentView.currentDataArrayPageIndex > 0) { + t._currentView.currentDataArrayPageIndex -= t.paging.columnsPerPage; } } else { t.data = null; } i(t); - W(t, e.text.arrayJsonItemDeleted); - } - function h(t, n) { - let l = o; - if (Is.definedFunction(t.events.onCopyJsonReplacer)) { - l = t.events.onCopyJsonReplacer; - } - let r = JSON.stringify(n, l, t.jsonIndentSpaces); - navigator.clipboard.writeText(r); - W(t, e.text.copiedText); - Trigger.customEvent(t.events.onCopy, t._currentView.element, r); + $(t, e.text.arrayJsonItemDeleted); } function D(t, n) { + const o = JSON.stringify(Convert2.toJsonStringifyClone(n, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); + navigator.clipboard.writeText(o); + $(t, e.text.copiedText); + Trigger.customEvent(t.events.onCopy, t._currentView.element, o); + } + function v(t, n) { if (Is.definedString(t.title.text) || t.title.showCloseOpenAllButtons || t.title.showCopyButton || t.sideMenu.enabled || t.paging.enabled || t.title.enableFullScreenToggling) { const o = DomElement.create(t._currentView.element, "div", "title-bar"); if (t.title.enableFullScreenToggling) { - o.ondblclick = () => v(t); + o.ondblclick = () => V(t); } if (t.sideMenu.enabled) { const n = DomElement.createWithHTML(o, "button", "side-menu", e.text.sideMenuButtonSymbolText); - n.onclick = () => A(t); + n.onclick = () => M(t); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.sideMenuButtonText); } @@ -1562,13 +1759,13 @@ var Obj; } if (t.title.showCopyButton && Is.defined(n)) { const o = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "copy-all", e.text.copyButtonSymbolText); - o.onclick = () => V(t, n); + o.onclick = () => S(t, n); o.ondblclick = DomElement.cancelBubble; ToolTip.add(o, t, e.text.copyAllButtonText); } if (t.title.showCloseOpenAllButtons && Is.defined(n)) { const n = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "open-all", e.text.openAllButtonSymbolText); - n.onclick = () => S(t); + n.onclick = () => B(t); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.openAllButtonText); const o = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "close-all", e.text.closeAllButtonSymbolText); @@ -1580,15 +1777,15 @@ var Obj; t._currentView.backButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "back", e.text.backButtonSymbolText); t._currentView.backButton.ondblclick = DomElement.cancelBubble; ToolTip.add(t._currentView.backButton, t, e.text.backButtonText); - if (t._currentView.dataArrayCurrentIndex > 0) { - t._currentView.backButton.onclick = () => B(t); + if (t._currentView.currentDataArrayPageIndex > 0) { + t._currentView.backButton.onclick = () => C(t); } else { t._currentView.backButton.disabled = true; } t._currentView.nextButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "next", e.text.nextButtonSymbolText); t._currentView.nextButton.ondblclick = DomElement.cancelBubble; ToolTip.add(t._currentView.nextButton, t, e.text.nextButtonText); - if (t._currentView.dataArrayCurrentIndex + (t.paging.columnsPerPage - 1) < n.length - 1) { + if (t._currentView.currentDataArrayPageIndex + (t.paging.columnsPerPage - 1) < n.length - 1) { t._currentView.nextButton.onclick = () => I(t); } else { t._currentView.nextButton.disabled = true; @@ -1601,13 +1798,13 @@ var Obj; if (t.title.enableFullScreenToggling && t.title.showFullScreenButton) { const n = !t._currentView.fullScreenOn ? e.text.fullScreenOnButtonSymbolText : e.text.fullScreenOffButtonSymbolText; t._currentView.toggleFullScreenButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "toggle-full-screen", n); - t._currentView.toggleFullScreenButton.onclick = () => v(t); + t._currentView.toggleFullScreenButton.onclick = () => V(t); t._currentView.toggleFullScreenButton.ondblclick = DomElement.cancelBubble; ToolTip.add(t._currentView.toggleFullScreenButton, t, e.text.fullScreenButtonText); } } } - function v(t) { + function V(t) { if (t.title.enableFullScreenToggling) { if (t._currentView.element.classList.contains("full-screen")) { t._currentView.element.classList.remove("full-screen"); @@ -1619,21 +1816,18 @@ var Obj; t._currentView.fullScreenOn = true; } ToolTip.hide(t); - k(t); + ContextMenu.hide(t); + F(t); Trigger.customEvent(t.events.onFullScreenChange, t._currentView.element, t._currentView.element.classList.contains("full-screen")); } } - function V(t, n) { - let l = o; - if (Is.definedFunction(t.events.onCopyJsonReplacer)) { - l = t.events.onCopyJsonReplacer; - } - let r = JSON.stringify(n, l, t.jsonIndentSpaces); - navigator.clipboard.writeText(r); - W(t, e.text.copiedText); - Trigger.customEvent(t.events.onCopyAll, t._currentView.element, r); + function S(t, n) { + const o = JSON.stringify(Convert2.toJsonStringifyClone(n, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); + navigator.clipboard.writeText(o); + $(t, e.text.copiedText); + Trigger.customEvent(t.events.onCopyAll, t._currentView.element, o); } - function S(e) { + function B(e) { e.showAllAsClosed = false; e._currentView.contentPanelsOpen = {}; i(e); @@ -1645,21 +1839,21 @@ var Obj; i(e); Trigger.customEvent(e.events.onCloseAll, e._currentView.element); } - function B(e) { + function C(e) { if (e._currentView.backButton !== null && !e._currentView.backButton.disabled) { - e._currentView.dataArrayCurrentIndex -= e.paging.columnsPerPage; + e._currentView.currentDataArrayPageIndex -= e.paging.columnsPerPage; i(e, true); Trigger.customEvent(e.events.onBackPage, e._currentView.element); } } function I(e) { if (e._currentView.nextButton !== null && !e._currentView.nextButton.disabled) { - e._currentView.dataArrayCurrentIndex += e.paging.columnsPerPage; + e._currentView.currentDataArrayPageIndex += e.paging.columnsPerPage; i(e, true); Trigger.customEvent(e.events.onNextPage, e._currentView.element); } } - function C(t) { + function _(t) { if (t.sideMenu.enabled) { t._currentView.disabledBackground = DomElement.create(t._currentView.element, "div", "side-menu-disabled-background"); t._currentView.disabledBackground.onclick = () => O(t); @@ -1672,12 +1866,12 @@ var Obj; const o = DomElement.create(n, "div", "side-menu-title-controls"); if (t.sideMenu.showExportButton && Is.definedObject(t.data)) { const n = DomElement.createWithHTML(o, "button", "export", e.text.exportButtonSymbolText); - n.onclick = () => se(t); + n.onclick = () => Te(t); ToolTip.add(n, t, e.text.exportButtonText); } if (t.sideMenu.showImportButton) { const n = DomElement.createWithHTML(o, "button", "import", e.text.importButtonSymbolText); - n.onclick = () => _(t); + n.onclick = () => A(t); ToolTip.add(n, t, e.text.importButtonText); } const l = DomElement.createWithHTML(o, "button", "close", e.text.closeButtonSymbolText); @@ -1685,63 +1879,68 @@ var Obj; ToolTip.add(l, t, e.text.closeButtonText); if (Is.definedObject(t.data)) { const e = DomElement.create(t._currentView.sideMenu, "div", "side-menu-contents"); - M(e, t); + L(e, t); } } } - function _(e) { + function A(e) { const t = DomElement.createWithNoContainer("input"); t.type = "file"; t.accept = ".json"; t.multiple = true; O(e); - t.onchange = () => ie(t.files, e); + t.onchange = () => pe(t.files, e); t.click(); } - function A(e) { + function M(e) { if (!e._currentView.sideMenu.classList.contains("side-menu-open")) { e._currentView.sideMenu.classList.add("side-menu-open"); e._currentView.disabledBackground.style.display = "block"; ToolTip.hide(e); + ContextMenu.hide(e); } } function O(t) { + let n = false; if (t._currentView.sideMenu.classList.contains("side-menu-open")) { t._currentView.sideMenu.classList.remove("side-menu-open"); t._currentView.disabledBackground.style.display = "none"; ToolTip.hide(t); + ContextMenu.hide(t); if (t._currentView.sideMenuChanged) { setTimeout((() => { i(t); - W(t, e.text.ignoreDataTypesUpdated); + $(t, e.text.ignoreDataTypesUpdated); }), 500); } + n = true; } + return n; } - function M(t, n) { + function L(t, n) { const o = []; const l = DomElement.create(t, "div", "settings-panel"); const r = DomElement.create(l, "div", "settings-panel-title-bar"); DomElement.createWithHTML(r, "div", "settings-panel-title-text", `${e.text.showDataTypesText}:`); const i = DomElement.create(r, "div", "settings-panel-control-buttons"); - const a = DomElement.create(i, "div", "settings-panel-control-button settings-panel-fill"); - const s = DomElement.create(i, "div", "settings-panel-control-button"); - a.onclick = () => L(n, o, true); - s.onclick = () => L(n, o, false); - ToolTip.add(a, n, e.text.selectAllText); - ToolTip.add(s, n, e.text.selectNoneText); + const s = DomElement.create(i, "div", "settings-panel-control-button settings-panel-fill"); + const a = DomElement.create(i, "div", "settings-panel-control-button"); + s.onclick = () => j(n, o, true); + a.onclick = () => j(n, o, false); + ToolTip.add(s, n, e.text.selectAllText); + ToolTip.add(a, n, e.text.selectNoneText); const u = DomElement.create(l, "div", "settings-panel-contents"); const c = Object.keys(DataType); const d = n.ignore; c.sort(); c.forEach(((e, t) => { - const l = j(u, e, n, !d[`${e}Values`]); + const l = P(u, e, n, !d[`${e}Values`]); if (Is.defined(l)) { o.push(l); } })); } - function L(e, t, n) { + function j(e, t, n) { const o = t.length; const l = e.ignore; for (let e = 0; e < o; e++) { @@ -1750,18 +1949,18 @@ var Obj; } e._currentView.sideMenuChanged = true; } - function j(e, t, n, o) { + function P(e, t, n, o) { let l = null; const r = n._currentView.dataTypeCounts[t]; if (!n.sideMenu.showOnlyDataTypesAvailable || r > 0) { let i = Str.capitalizeFirstLetter(t); - let a = ""; + let s = ""; if (n.sideMenu.showAvailableDataTypeCounts) { if (n._currentView.dataTypeCounts.hasOwnProperty(t)) { - a = `(${r})`; + s = `(${r})`; } } - l = DomElement.createCheckBox(e, i, t, o, n.showValueColors ? t : "", a); + l = DomElement.createCheckBox(e, i, t, o, n.showValueColors ? t : "", s); l.onchange = () => { const e = n.ignore; e[`${t}Values`] = !l.checked; @@ -1771,10 +1970,10 @@ var Obj; } return l; } - function P(t) { + function N(t) { if (t.footer.enabled && Is.defined(t.data)) { t._currentView.footer = DomElement.create(t._currentView.element, "div", "footer-bar"); - k(t); + F(t); t._currentView.footerStatusText = DomElement.createWithHTML(t._currentView.footer, "div", "status-text", e.text.waitingText); if (t.footer.showDataTypes) { t._currentView.footerDataTypeText = DomElement.create(t._currentView.footer, "div", "status-value-data-type"); @@ -1790,13 +1989,13 @@ var Obj; } if (t.paging.enabled && Is.definedArray(t.data) && t.data.length > 1 && t.footer.showPageOf) { t._currentView.footerPageText = DomElement.create(t._currentView.footer, "div", "status-page-index"); - N(t); + k(t); } } } - function N(t) { + function k(t) { if (t.paging.enabled) { - const n = Math.ceil((t._currentView.dataArrayCurrentIndex + 1) / t.paging.columnsPerPage); + const n = Math.ceil((t._currentView.currentDataArrayPageIndex + 1) / t.paging.columnsPerPage); const o = Math.ceil(t.data.length / t.paging.columnsPerPage); const l = DomElement.createWithHTML(null, "span", "status-count", n.toFixed()).outerHTML; const r = DomElement.createWithHTML(null, "span", "status-count", o.toFixed()).outerHTML; @@ -1804,12 +2003,12 @@ var Obj; t._currentView.footerPageText.innerHTML = i; } } - function k(e) { + function F(e) { if (Is.defined(e._currentView.footer)) { e._currentView.footer.style.display = e._currentView.fullScreenOn ? "flex" : "none"; } } - function F(t, n, o) { + function R(t, n, o) { if (t.footer.enabled && t.footer.showDataTypes) { o.addEventListener("mousemove", (() => { const o = DomElement.createWithHTML(null, "span", "status-count", n).outerHTML; @@ -1823,9 +2022,9 @@ var Obj; })); } } - function R(t, n, o) { + function H(t, n, o) { if (t.footer.enabled && t.footer.showLengths) { - const l = Size.length(n); + const l = Size.length(n, t.showCssStylesForHtmlObjects); if (l > 0) { o.addEventListener("mousemove", (() => { const n = DomElement.createWithHTML(null, "span", "status-count", l.toString()).outerHTML; @@ -1840,9 +2039,9 @@ var Obj; } } } - function H(t, n, o) { + function W(t, n, o) { if (t.footer.enabled && t.footer.showSizes) { - const l = Size.of(n); + const l = Size.of(n, t.showCssStylesForHtmlObjects); if (Is.definedString(l)) { o.addEventListener("mousemove", (() => { const n = DomElement.createWithHTML(null, "span", "status-count", l.toString()).outerHTML; @@ -1857,7 +2056,7 @@ var Obj; } } } - function W(t, n) { + function $(t, n) { if (t.footer.enabled) { t._currentView.footerStatusText.innerHTML = n; clearTimeout(t._currentView.footerStatusTextTimerId); @@ -1866,22 +2065,22 @@ var Obj; }), t.footer.statusResetDelay); } } - function $(t, n, o, l, r) { + function J(t, n, o, l, r) { const i = Obj.getPropertyNames(o, n); - const a = i.length; - if (a !== 0 || !n.ignore.emptyObjects) { - let s = null; + const s = i.length; + if (s !== 0 || !n.ignore.emptyObjects) { + let a = null; if (r === "object") { - s = e.text.objectText; + a = e.text.objectText; } else if (r === "map") { - s = e.text.mapText; + a = e.text.mapText; } else if (r === "html") { - s = e.text.htmlText; + a = e.text.htmlText; } const u = DomElement.create(t, "div", "object-type-title"); const c = DomElement.create(t, "div", "object-type-contents last-item"); const d = n.showArrowToggles ? DomElement.create(u, "div", "down-arrow") : null; - const f = DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} main-title` : "main-title", s); + const f = DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} main-title` : "main-title", a); let g = null; let m = null; G(c, n); @@ -1893,21 +2092,24 @@ var Obj; DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} data-array-index` : "data-array-index", t, f); DomElement.createWithHTML(u, "span", "split", e.text.propertyColonCharacter, f); } - if (n.showObjectSizes && a > 0) { + if (n.showObjectSizes && s > 0) { if (r === "html") { - DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `<${a}>`); + DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `<${s}>`); } else { - DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `{${a}}`); + DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `{${s}}`); } } if (n.showOpeningClosingCurlyBraces) { g = DomElement.createWithHTML(u, "span", "opening-symbol", "{"); + } + if (n.showClosedObjectCurlyBraces) { m = DomElement.createWithHTML(u, "span", "closed-symbols", "{ ... }"); } - J(d, null, c, n, o, i, g, m, false, true, "", r, r !== "object"); - q(n, f, o, r, false); + U(d, null, c, n, o, i, g, m, false, true, "", r, r !== "object"); + te(n, f, o, r, false); + W(n, o, f); H(n, o, f); - R(n, o, f); + ae(n, u, false, o, o, null, false, null); } } function z(t, n, o, l) { @@ -1918,28 +2120,31 @@ var Obj; r = e.text.arrayText; } const i = DomElement.create(t, "div", "object-type-title"); - const a = DomElement.create(t, "div", "object-type-contents last-item"); - const s = n.showArrowToggles ? DomElement.create(i, "div", "down-arrow") : null; + const s = DomElement.create(t, "div", "object-type-contents last-item"); + const a = n.showArrowToggles ? DomElement.create(i, "div", "down-arrow") : null; const u = DomElement.createWithHTML(i, "span", n.showValueColors ? `${l} main-title` : "main-title", r); let c = null; let d = null; - G(a, n); + G(s, n); if (n.showObjectSizes) { DomElement.createWithHTML(i, "span", n.showValueColors ? `${l} size` : "size", `[${o.length}]`); } - if (n.showOpeningClosingCurlyBraces) { + if (n.showOpeningClosingSquaredBrackets) { c = DomElement.createWithHTML(i, "span", "opening-symbol", "["); + } + if (n.showClosedArraySquaredBrackets) { d = DomElement.createWithHTML(i, "span", "closed-symbols", "[ ... ]"); } - U(s, null, a, n, o, c, d, false, true, "", l, l !== "array"); - q(n, u, o, l, false); + q(a, null, s, n, o, c, d, false, true, "", l, l !== "array"); + te(n, u, o, l, false); + W(n, o, u); H(n, o, u); - R(n, o, u); + ae(n, i, false, o, o, null, false, null); } - function J(t, n, o, l, r, i, a, s, u, c, d, f, g) { + function U(t, n, o, l, r, i, s, a, u, c, d, f, g) { let m = true; const p = i.length; - const T = d !== "" ? p : 0; + const x = d !== "" ? p : 0; if (p === 0 && !l.ignore.emptyObjects) { Z(r, o, l, "", e.text.noPropertiesText, true, false, "", f, g); m = false; @@ -1956,14 +2161,14 @@ var Obj; m = false; } else { if (l.showOpeningClosingCurlyBraces) { - ne(l, o, "}", u, c); + le(l, o, "}", u, c); } } } - ee(l, t, n, o, a, s, T, f); + ne(l, t, n, o, s, a, x, f); return m; } - function U(t, n, o, l, r, i, a, s, u, c, d, f) { + function q(t, n, o, l, r, i, s, a, u, c, d, f) { let g = true; const m = r.length; const p = c !== "" ? m : 0; @@ -1984,551 +2189,568 @@ var Obj; Z(r, o, l, "", e.text.noPropertiesText, true, false, "", d, f); g = false; } else { - if (l.showOpeningClosingCurlyBraces) { - ne(l, o, "]", s, u); + if (l.showOpeningClosingSquaredBrackets) { + le(l, o, "]", a, u); } } - ee(l, t, n, o, i, a, p, d); + ne(l, t, n, o, i, s, p, d); return g; } - function Z(t, n, o, l, r, i, a, s, u, c) { + function Z(t, n, o, l, r, i, s, a, u, c) { const d = DomElement.create(n, "div", "object-type-value"); - const f = o.showArrowToggles ? DomElement.create(d, "div", "no-arrow") : null; - let g = null; + const f = DomElement.create(d, "div", "object-type-value-title"); + const g = o.showArrowToggles ? DomElement.create(f, "div", "no-arrow") : null; let m = null; - let p = false; + let p = null; + let x = false; let T = false; - let x = null; - let b = DomElement.create(d, "span", "title"); - let w = false; - let y = null; - const h = !Is.definedString(l); - let D = true; - if (!h) { - if (a || !o.showPropertyNameQuotes) { - b.innerHTML = l; + let b = null; + let w = DomElement.create(f, "span"); + let y = false; + let h = null; + const D = !Is.definedString(l); + let v = true; + let V = null; + const S = o._currentView.currentColumnBuildingIndex; + if (!D) { + if (s || !o.showPropertyNameQuotes) { + w.innerHTML = l; } else { - b.innerHTML = `"${l}"`; + w.innerHTML = `"${l}"`; } - if (a && !o.showChildIndexes) { - b.parentNode.removeChild(b); - b = null; + if (s && !o.showChildIndexes) { + w.parentNode.removeChild(w); + w = null; } } else { - b.parentNode.removeChild(b); - b = null; + w.parentNode.removeChild(w); + w = null; } if (i) { d.classList.add("last-item"); } - if (o.showDataTypes) { - y = DomElement.createWithHTML(d, "span", o.showValueColors ? "type-color" : "type", ""); + if (o.showDataTypes && !D) { + h = DomElement.createWithHTML(f, "span", o.showValueColors ? "data-type-color" : "data-type", ""); } - if (Is.defined(b) && !h && o.showValueColors && o.showPropertyNameAndIndexColors) { - b.classList.add(u); + if (Is.defined(w) && !D && o.showValueColors && o.showPropertyNameAndIndexColors) { + w.classList.add(u); } - if (Is.defined(b) && !h) { - DomElement.createWithHTML(d, "span", "split", e.text.propertyColonCharacter); + if (Is.defined(w) && !D) { + DomElement.createWithHTML(f, "span", "split", e.text.propertyColonCharacter); if (!c) { - Q(o, t, l, b, a); + Q(o, t, l, w, s); } else { - b.ondblclick = DomElement.cancelBubble; + w.ondblclick = DomElement.cancelBubble; } - if (Is.definedString(s)) { - d.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME, s); + if (Is.definedString(a)) { + f.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME, a); } - if (!a) { - H(o, l, b); - R(o, l, b); + if (!s) { + W(o, l, w); + H(o, l, w); } + re(o, f, a, S, r); } if (r === null) { - x = "null"; + b = "null"; if (!o.ignore.nullValues) { - g = o.showValueColors ? `${x} value undefined-or-null` : "value undefined-or-null"; - m = DomElement.createWithHTML(d, "span", g, "null"); + m = o.showValueColors ? `${b} value undefined-or-null` : "value undefined-or-null"; + p = DomElement.createWithHTML(f, "span", m, "null"); if (Is.definedFunction(o.events.onNullRender)) { - Trigger.customEvent(o.events.onNullRender, o._currentView.element, m); + Trigger.customEvent(o.events.onNullRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (r === void 0) { - x = "undefined"; + b = "undefined"; if (!o.ignore.undefinedValues) { - g = o.showValueColors ? `${x} value undefined-or-null` : "value undefined-or-null"; - m = DomElement.createWithHTML(d, "span", g, "undefined"); + m = o.showValueColors ? `${b} value undefined-or-null` : "value undefined-or-null"; + p = DomElement.createWithHTML(f, "span", m, "undefined"); if (Is.definedFunction(o.events.onUndefinedRender)) { - Trigger.customEvent(o.events.onUndefinedRender, o._currentView.element, m); + Trigger.customEvent(o.events.onUndefinedRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedFunction(r)) { const t = Default.getFunctionName(r, e); if (t.isLambda) { - x = "lambda"; + b = "lambda"; if (!o.ignore.lambdaValues) { - g = o.showValueColors ? `${x} value non-value` : "value non-value"; - m = DomElement.createWithHTML(d, "span", g, t.name); + m = o.showValueColors ? `${b} value non-value` : "value non-value"; + p = DomElement.createWithHTML(f, "span", m, t.name); if (Is.definedFunction(o.events.onLambdaRender)) { - Trigger.customEvent(o.events.onLambdaRender, o._currentView.element, m); + Trigger.customEvent(o.events.onLambdaRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else { - x = "function"; + b = "function"; if (!o.ignore.functionValues) { - g = o.showValueColors ? `${x} value non-value` : "value non-value"; - m = DomElement.createWithHTML(d, "span", g, t.name); + m = o.showValueColors ? `${b} value non-value` : "value non-value"; + p = DomElement.createWithHTML(f, "span", m, t.name); if (Is.definedFunction(o.events.onFunctionRender)) { - Trigger.customEvent(o.events.onFunctionRender, o._currentView.element, m); + Trigger.customEvent(o.events.onFunctionRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } } else if (Is.definedBoolean(r)) { - x = "boolean"; + b = "boolean"; if (!o.ignore.booleanValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.booleanValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.booleanValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onBooleanRender)) { - Trigger.customEvent(o.events.onBooleanRender, o._currentView.element, m); + Trigger.customEvent(o.events.onBooleanRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedFloat(r)) { - x = "float"; + b = "float"; if (!o.ignore.floatValues) { const e = Convert2.numberToFloatWithDecimalPlaces(r, o.maximumDecimalPlaces); - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, e); - w = o.allowEditing.floatValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, e); + y = o.allowEditing.floatValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onFloatRender)) { - Trigger.customEvent(o.events.onFloatRender, o._currentView.element, m); + Trigger.customEvent(o.events.onFloatRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedNumber(r)) { - x = "number"; + b = "number"; if (!o.ignore.numberValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.numberValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.numberValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onNumberRender)) { - Trigger.customEvent(o.events.onNumberRender, o._currentView.element, m); + Trigger.customEvent(o.events.onNumberRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedBigInt(r)) { - x = "bigint"; + b = "bigint"; if (!o.ignore.bigintValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.bigIntValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.bigIntValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onBigIntRender)) { - Trigger.customEvent(o.events.onBigIntRender, o._currentView.element, m); + Trigger.customEvent(o.events.onBigIntRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && Is.String.guid(r)) { - x = "guid"; + b = "guid"; if (!o.ignore.guidValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.guidValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.guidValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onGuidRender)) { - Trigger.customEvent(o.events.onGuidRender, o._currentView.element, m); + Trigger.customEvent(o.events.onGuidRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && (Is.String.hexColor(r) || Is.String.rgbColor(r))) { - x = "color"; + b = "color"; if (!o.ignore.colorValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.colorValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.colorValues && !c; if (o.showValueColors) { - m.style.color = r; + p.style.color = r; } - X(o, t, l, r, m, a, w); + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onColorRender)) { - Trigger.customEvent(o.events.onColorRender, o._currentView.element, m); + Trigger.customEvent(o.events.onColorRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && Is.definedUrl(r)) { - x = "url"; + b = "url"; if (!o.ignore.urlValues) { let n = r; - let s = null; if (o.maximumUrlLength > 0 && n.length > o.maximumUrlLength) { n = `${n.substring(0, o.maximumUrlLength)}${" "}${e.text.ellipsisText}${" "}`; } - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, n); - w = o.allowEditing.urlValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, n); + y = o.allowEditing.urlValues && !c; if (o.showUrlOpenButtons) { - s = DomElement.createWithHTML(d, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); - s.onclick = () => window.open(r); + V = DomElement.createWithHTML(f, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); + V.onclick = () => window.open(r); } - X(o, t, l, r, m, a, w, s); + X(o, t, l, r, p, s, y, V); if (Is.definedFunction(o.events.onUrlRender)) { - Trigger.customEvent(o.events.onUrlRender, o._currentView.element, m); + Trigger.customEvent(o.events.onUrlRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && Is.definedEmail(r)) { - x = "email"; + b = "email"; if (!o.ignore.emailValues) { let n = r; - let s = null; if (o.maximumEmailLength > 0 && n.length > o.maximumEmailLength) { n = `${n.substring(0, o.maximumEmailLength)}${" "}${e.text.ellipsisText}${" "}`; } - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, n); - w = o.allowEditing.emailValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, n); + y = o.allowEditing.emailValues && !c; if (o.showEmailOpenButtons) { - s = DomElement.createWithHTML(d, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); - s.onclick = () => window.open(`mailto:${r}`); + V = DomElement.createWithHTML(f, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); + V.onclick = () => window.open(`mailto:${r}`); } - X(o, t, l, r, m, a, w, s); + X(o, t, l, r, p, s, y, V); if (Is.definedFunction(o.events.onEmailRender)) { - Trigger.customEvent(o.events.onEmailRender, o._currentView.element, m); + Trigger.customEvent(o.events.onEmailRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r)) { - x = "string"; - if (!o.ignore.stringValues || h) { + b = "string"; + if (!o.ignore.stringValues || D) { if (o.parse.stringsToBooleans && Is.String.boolean(r)) { - Z(t, n, o, l, r.toString().toLowerCase().trim() === "true", i, a, s, u, c); - p = true; + Z(t, n, o, l, r.toString().toLowerCase().trim() === "true", i, s, a, u, c); + x = true; T = true; } else if (o.parse.stringsToNumbers && Is.String.bigInt(r)) { - Z(t, n, o, l, Convert2.stringToBigInt(r), i, a, s, u, c); - p = true; + Z(t, n, o, l, Convert2.stringToBigInt(r), i, s, a, u, c); + x = true; T = true; } else if (o.parse.stringsToNumbers && !isNaN(r)) { - Z(t, n, o, l, parseFloat(r), i, a, s, u, c); - p = true; + Z(t, n, o, l, parseFloat(r), i, s, a, u, c); + x = true; T = true; } else if (o.parse.stringsToDates && Is.String.date(r)) { - Z(t, n, o, l, new Date(r), i, a, s, u, c); - p = true; + Z(t, n, o, l, new Date(r), i, s, a, u, c); + x = true; + T = true; + } else if (o.parse.stringsToSymbols && Is.String.symbol(r)) { + Z(t, n, o, l, Symbol(Convert2.symbolToString(r)), i, s, a, u, c); + x = true; T = true; } else { let n = r; - if (!h) { + if (!D) { if (o.maximumStringLength > 0 && n.length > o.maximumStringLength) { n = `${n.substring(0, o.maximumStringLength)}${" "}${e.text.ellipsisText}${" "}`; } n = o.showStringQuotes ? `"${n}"` : n; - g = o.showValueColors ? `${x} value` : "value"; - w = o.allowEditing.stringValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + y = o.allowEditing.stringValues && !c; } else { - g = "no-properties-text"; - w = false; - D = false; + m = "no-properties-text"; + y = false; + v = false; } - m = DomElement.createWithHTML(d, "span", g, n); - if (!h) { - X(o, t, l, r, m, a, w); + p = DomElement.createWithHTML(f, "span", m, n); + if (!D) { + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onStringRender)) { - Trigger.customEvent(o.events.onStringRender, o._currentView.element, m); + Trigger.customEvent(o.events.onStringRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } } } else { - p = true; + x = true; } } else if (Is.definedDate(r)) { - x = "date"; + b = "date"; if (!o.ignore.dateValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, DateTime.getCustomFormattedDateText(e, r, o.dateTimeFormat)); - w = o.allowEditing.dateValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, DateTime.getCustomFormattedDateText(e, r, o.dateTimeFormat)); + y = o.allowEditing.dateValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onDateRender)) { - Trigger.customEvent(o.events.onDateRender, o._currentView.element, m); + Trigger.customEvent(o.events.onDateRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedSymbol(r)) { - x = "symbol"; + b = "symbol"; if (!o.ignore.symbolValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r.toString()); - w = o.allowEditing.symbolValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r.toString()); + y = o.allowEditing.symbolValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onSymbolRender)) { - Trigger.customEvent(o.events.onSymbolRender, o._currentView.element, m); + Trigger.customEvent(o.events.onSymbolRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedRegExp(r)) { - x = "regexp"; + b = "regexp"; if (!o.ignore.regexpValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r.source.toString()); - w = o.allowEditing.regExpValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r.source.toString()); + y = o.allowEditing.regExpValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onRegExpRender)) { - Trigger.customEvent(o.events.onRegExpRender, o._currentView.element, m); + Trigger.customEvent(o.events.onRegExpRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedImage(r)) { - x = "image"; + b = "image"; if (!o.ignore.imageValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.create(d, "span", g); - w = o.allowEditing.imageValues && !c; - X(o, t, l, r, m, a, w); - const e = DomElement.create(m, "img"); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.create(f, "span", m); + y = o.allowEditing.imageValues && !c; + X(o, t, l, r, p, s, y); + const e = DomElement.create(p, "img"); e.src = r.src; if (Is.definedFunction(o.events.onImageRender)) { - Trigger.customEvent(o.events.onImageRender, o._currentView.element, m); + Trigger.customEvent(o.events.onImageRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedHtml(r)) { - x = "html"; + b = "html"; if (!o.ignore.htmlValues) { const t = Convert2.htmlToObject(r, o.showCssStylesForHtmlObjects); const n = Obj.getPropertyNames(t, o); const l = n.length; if (l === 0 && o.ignore.emptyObjects) { - p = true; + x = true; } else { - const r = DomElement.create(d, "span", o.showValueColors ? x : ""); - const a = DomElement.create(d, "div", "object-type-contents"); + const r = DomElement.create(f, "span", o.showValueColors ? b : ""); + const s = DomElement.create(d, "div", "object-type-contents"); let u = null; let c = null; - G(a, o); + G(s, o); if (i) { - a.classList.add("last-item"); + s.classList.add("last-item"); } - m = DomElement.createWithHTML(r, "span", "main-title", e.text.htmlText); + p = DomElement.createWithHTML(r, "span", "main-title", e.text.htmlText); if (o.showObjectSizes && (l > 0 || !o.ignore.emptyObjects)) { DomElement.createWithHTML(r, "span", "size", `<${l}>`); } if (o.showOpeningClosingCurlyBraces) { u = DomElement.createWithHTML(r, "span", "opening-symbol", "{"); + } + if (o.showClosedObjectCurlyBraces) { c = DomElement.createWithHTML(r, "span", "closed-symbols", "{ ... }"); } - let g = te(o, r, i); - const p = J(f, g, a, o, t, n, u, c, true, i, s, x, true); - if (!p && o.showOpeningClosingCurlyBraces) { + const m = oe(o, r, i); + const x = U(g, m, s, o, t, n, u, c, true, i, a, b, true); + if (!x && o.showOpeningClosingCurlyBraces) { u.parentNode.removeChild(u); c.parentNode.removeChild(c); } } } else { - p = true; + x = true; } } else if (Is.definedSet(r)) { - x = "set"; + b = "set"; if (!o.ignore.setValues) { const t = Convert2.setToArray(r); - const n = DomElement.create(d, "span", o.showValueColors ? x : ""); + const n = DomElement.create(f, "span", o.showValueColors ? b : ""); const l = DomElement.create(d, "div", "object-type-contents"); - let a = null; + let s = null; let u = null; G(l, o); if (i) { l.classList.add("last-item"); } - m = DomElement.createWithHTML(n, "span", "main-title", e.text.setText); + p = DomElement.createWithHTML(n, "span", "main-title", e.text.setText); if (o.showObjectSizes) { DomElement.createWithHTML(n, "span", "size", `[${t.length}]`); } - if (o.showOpeningClosingCurlyBraces) { - a = DomElement.createWithHTML(n, "span", "opening-symbol", "["); + if (o.showOpeningClosingSquaredBrackets) { + s = DomElement.createWithHTML(n, "span", "opening-symbol", "["); + } + if (o.showClosedArraySquaredBrackets) { u = DomElement.createWithHTML(n, "span", "closed-symbols", "[ ... ]"); } - let c = te(o, n, i); - const g = U(f, c, l, o, t, a, u, true, i, s, x, true); - if (!g && o.showOpeningClosingCurlyBraces) { - a.parentNode.removeChild(a); + const c = oe(o, n, i); + const m = q(g, c, l, o, t, s, u, true, i, a, b, true); + if (!m && o.showOpeningClosingSquaredBrackets) { + s.parentNode.removeChild(s); u.parentNode.removeChild(u); } } else { - p = true; + x = true; } } else if (Is.definedArray(r)) { - x = "array"; + b = "array"; if (!o.ignore.arrayValues) { - const t = DomElement.create(d, "span", o.showValueColors ? x : ""); + const t = DomElement.create(f, "span", o.showValueColors ? b : ""); const n = DomElement.create(d, "div", "object-type-contents"); let l = null; - let a = null; + let s = null; G(n, o); if (i) { n.classList.add("last-item"); } - m = DomElement.createWithHTML(t, "span", "main-title", e.text.arrayText); + p = DomElement.createWithHTML(t, "span", "main-title", e.text.arrayText); if (o.showObjectSizes) { DomElement.createWithHTML(t, "span", "size", `[${r.length}]`); } - if (o.showOpeningClosingCurlyBraces) { + if (o.showOpeningClosingSquaredBrackets) { l = DomElement.createWithHTML(t, "span", "opening-symbol", "["); - a = DomElement.createWithHTML(t, "span", "closed-symbols", "[ ... ]"); } - let u = te(o, t, i); - const c = U(f, u, n, o, r, l, a, true, i, s, x, false); - if (!c && o.showOpeningClosingCurlyBraces) { + if (o.showClosedArraySquaredBrackets) { + s = DomElement.createWithHTML(t, "span", "closed-symbols", "[ ... ]"); + } + const u = oe(o, t, i); + const c = q(g, u, n, o, r, l, s, true, i, a, b, false); + if (!c && o.showOpeningClosingSquaredBrackets) { l.parentNode.removeChild(l); - a.parentNode.removeChild(a); + s.parentNode.removeChild(s); } } else { - p = true; + x = true; } } else if (Is.definedMap(r)) { - x = "map"; + b = "map"; if (!o.ignore.mapValues) { const t = Convert2.mapToObject(r); const n = Obj.getPropertyNames(t, o); const l = n.length; if (l === 0 && o.ignore.emptyObjects) { - p = true; + x = true; } else { - const r = DomElement.create(d, "span", o.showValueColors ? x : ""); - const a = DomElement.create(d, "div", "object-type-contents"); + const r = DomElement.create(f, "span", o.showValueColors ? b : ""); + const s = DomElement.create(d, "div", "object-type-contents"); let u = null; let c = null; - G(a, o); + G(s, o); if (i) { - a.classList.add("last-item"); + s.classList.add("last-item"); } - m = DomElement.createWithHTML(r, "span", "main-title", e.text.mapText); + p = DomElement.createWithHTML(r, "span", "main-title", e.text.mapText); if (o.showObjectSizes && (l > 0 || !o.ignore.emptyObjects)) { DomElement.createWithHTML(r, "span", "size", `{${l}}`); } if (o.showOpeningClosingCurlyBraces) { u = DomElement.createWithHTML(r, "span", "opening-symbol", "{"); + } + if (o.showClosedObjectCurlyBraces) { c = DomElement.createWithHTML(r, "span", "closed-symbols", "{ ... }"); } - let g = te(o, r, i); - const p = J(f, g, a, o, t, n, u, c, true, i, s, x, true); - if (!p && o.showOpeningClosingCurlyBraces) { + const m = oe(o, r, i); + const x = U(g, m, s, o, t, n, u, c, true, i, a, b, true); + if (!x && o.showOpeningClosingCurlyBraces) { u.parentNode.removeChild(u); c.parentNode.removeChild(c); } } } else { - p = true; + x = true; } } else if (Is.definedObject(r)) { - x = "object"; + b = "object"; if (!o.ignore.objectValues) { const t = Obj.getPropertyNames(r, o); const n = t.length; if (n === 0 && o.ignore.emptyObjects) { - p = true; + x = true; } else { - const l = DomElement.create(d, "span", o.showValueColors ? x : ""); - const a = DomElement.create(d, "div", "object-type-contents"); + const l = DomElement.create(f, "span", o.showValueColors ? b : ""); + const s = DomElement.create(d, "div", "object-type-contents"); let u = null; let c = null; - G(a, o); + G(s, o); if (i) { - a.classList.add("last-item"); + s.classList.add("last-item"); } - m = DomElement.createWithHTML(l, "span", "main-title", e.text.objectText); + p = DomElement.createWithHTML(l, "span", "main-title", e.text.objectText); if (o.showObjectSizes && (n > 0 || !o.ignore.emptyObjects)) { DomElement.createWithHTML(l, "span", "size", `{${n}}`); } if (o.showOpeningClosingCurlyBraces) { u = DomElement.createWithHTML(l, "span", "opening-symbol", "{"); + } + if (o.showClosedObjectCurlyBraces) { c = DomElement.createWithHTML(l, "span", "closed-symbols", "{ ... }"); } - let g = te(o, l, i); - const p = J(f, g, a, o, r, t, u, c, true, i, s, x, false); - if (!p && o.showOpeningClosingCurlyBraces) { + const m = oe(o, l, i); + const x = U(g, m, s, o, r, t, u, c, true, i, a, b, false); + if (!x && o.showOpeningClosingCurlyBraces) { u.parentNode.removeChild(u); c.parentNode.removeChild(c); } } } else { - p = true; + x = true; } } else { - x = "unknown"; + b = "unknown"; if (!o.ignore.unknownValues) { - g = o.showValueColors ? `${x} value non-value` : "value non-value"; - m = DomElement.createWithHTML(d, "span", g, r.toString()); + m = o.showValueColors ? `${b} value non-value` : "value non-value"; + p = DomElement.createWithHTML(f, "span", m, r.toString()); if (Is.definedFunction(o.events.onUnknownRender)) { - Trigger.customEvent(o.events.onUnknownRender, o._currentView.element, m); + Trigger.customEvent(o.events.onUnknownRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } - if (!h && !T) { - Y(o, x); + if (!D && !T) { + Y(o, b); } - if (p) { + if (x) { n.removeChild(d); } else { - if (Is.defined(m)) { - if (!h) { - H(o, r, m); - R(o, r, m); - F(o, x, m); - } - if (Is.defined(y)) { - if (x !== "null" && x !== "undefined" && x !== "array" && x !== "object" && x !== "map" && x !== "set") { - y.innerHTML = `(${x})`; + if (Is.defined(p)) { + if (!D) { + W(o, r, p); + H(o, r, p); + R(o, b, p); + ae(o, p, y, t, r, l, s, V); + } + if (Is.defined(h)) { + if (b !== "null" && b !== "undefined" && b !== "array" && b !== "object" && b !== "map" && b !== "set") { + h.innerHTML = `(${b})`; } else { - y.parentNode.removeChild(y); - y = null; + h.parentNode.removeChild(h); + h = null; } } - if (D) { - K(o, s, b, y, m); - q(o, m, r, x, w); + if (v) { + K(o, a, w, h, p); + te(o, p, r, b, y); } else { - m.ondblclick = DomElement.cancelBubble; + p.ondblclick = DomElement.cancelBubble; } } } @@ -2570,17 +2792,17 @@ var Obj; } function Q(t, n, o, l, r) { if (t.allowEditing.propertyNames) { - l.ondblclick = a => { - DomElement.cancelBubble(a); - let s = 0; + l.ondblclick = s => { + DomElement.cancelBubble(s); + let a = 0; let u = null; clearTimeout(t._currentView.valueClickTimerId); t._currentView.valueClickTimerId = 0; t._currentView.editMode = true; l.classList.add("editable-name"); if (r) { - s = Arr.getIndexFromBrackets(l.innerHTML); - l.innerHTML = s.toString(); + a = Arr.getIndexFromBrackets(l.innerHTML); + l.innerHTML = a.toString(); } else { l.innerHTML = l.innerHTML.replace(/['"]+/g, ""); } @@ -2590,7 +2812,7 @@ var Obj; l.onblur = () => { i(t, false); if (Is.definedString(u)) { - W(t, u); + $(t, u); } }; l.onkeydown = i => { @@ -2599,30 +2821,33 @@ var Obj; l.setAttribute("contenteditable", "false"); } else if (i.code === "Enter") { i.preventDefault(); - const a = l.innerText; + const s = l.innerText; if (r) { - if (!isNaN(+a)) { - let o = +a; + if (Is.definedString(s) && !isNaN(+s)) { + let o = +s; if (!t.useZeroIndexingForArrays) { o--; } - if (s !== o) { + if (a !== o) { u = e.text.indexUpdatedText; - Arr.moveIndex(n, s, o); + Arr.moveIndex(n, a, o); Trigger.customEvent(t.events.onJsonEdit, t._currentView.element); } + } else { + n.splice(Arr.getIndexFromBrackets(o), 1); + u = e.text.itemDeletedText; } } else { - if (a !== o) { - if (a.trim() === "") { + if (s !== o) { + if (s.trim() === "") { u = e.text.itemDeletedText; delete n[o]; } else { - if (!n.hasOwnProperty(a)) { + if (!n.hasOwnProperty(s)) { u = e.text.nameUpdatedText; const t = n[o]; delete n[o]; - n[a] = t; + n[s] = t; } } Trigger.customEvent(t.events.onJsonEdit, t._currentView.element); @@ -2634,175 +2859,322 @@ var Obj; }; } } - function X(t, n, o, l, r, a, s, u = null) { - if (s) { - r.ondblclick = s => { - let c = null; - DomElement.cancelBubble(s); - clearTimeout(t._currentView.valueClickTimerId); - t._currentView.valueClickTimerId = 0; - t._currentView.editMode = true; - r.classList.add("editable"); - r.setAttribute("contenteditable", "true"); - if (Is.definedDate(l) && !t.includeTimeZoneInDateTimeEditing) { - r.innerText = JSON.stringify(l).replace(/['"]+/g, ""); - } else if (Is.definedRegExp(l)) { - r.innerText = l.source; - } else if (Is.definedSymbol(l)) { - r.innerText = Convert2.symbolToString(l); - } else if (Is.definedImage(l)) { - r.innerText = l.src; - } else { - r.innerText = l.toString(); - } - r.focus(); - DomElement.selectAllText(r); - if (Is.defined(u)) { - u.parentNode.removeChild(u); - } - r.onblur = () => { - i(t, false); - if (Is.definedString(c)) { - W(t, c); + function X(e, t, n, o, l, r, i, s = null) { + if (i) { + l.ondblclick = i => { + ee(i, e, t, n, o, l, r, s); + }; + } + } + function ee(t, n, o, l, r, s, a, u = null) { + let c = null; + DomElement.cancelBubble(t); + clearTimeout(n._currentView.valueClickTimerId); + n._currentView.valueClickTimerId = 0; + n._currentView.editMode = true; + s.classList.add("editable"); + s.setAttribute("contenteditable", "true"); + if (Is.definedDate(r) && !n.includeTimeZoneInDates) { + s.innerText = JSON.stringify(r).replace(/['"]+/g, ""); + } else if (Is.definedRegExp(r)) { + s.innerText = r.source; + } else if (Is.definedSymbol(r)) { + s.innerText = Convert2.symbolToString(r); + } else if (Is.definedImage(r)) { + s.innerText = r.src; + } else { + s.innerText = r.toString(); + } + s.focus(); + DomElement.selectAllText(s); + if (Is.defined(u)) { + u.parentNode.removeChild(u); + } + s.onblur = () => { + i(n, false); + if (Is.definedString(c)) { + $(n, c); + } + }; + s.onkeydown = t => { + if (t.code === "Escape") { + t.preventDefault(); + s.setAttribute("contenteditable", "false"); + } else if (t.code === "Enter") { + t.preventDefault(); + const i = s.innerText; + if (i.trim() === "") { + if (a) { + o.splice(Arr.getIndexFromBrackets(l), 1); + } else { + delete o[l]; } - }; - r.onkeydown = i => { - if (i.code === "Escape") { - i.preventDefault(); - r.setAttribute("contenteditable", "false"); - } else if (i.code === "Enter") { - i.preventDefault(); - const s = r.innerText; - if (s.trim() === "") { - if (a) { - n.splice(Arr.getIndexFromBrackets(o), 1); - } else { - delete n[o]; - } - c = e.text.itemDeletedText; + c = e.text.itemDeletedText; + } else { + let t = Convert2.stringToDataTypeValue(r, i); + if (t !== null) { + if (a) { + o[Arr.getIndexFromBrackets(l)] = t; } else { - let r = Convert2.stringToDataTypeValue(l, s); - if (r !== null) { - if (a) { - n[Arr.getIndexFromBrackets(o)] = r; - } else { - n[o] = r; - } - c = e.text.valueUpdatedText; - Trigger.customEvent(t.events.onJsonEdit, t._currentView.element); - } + o[l] = t; } - r.setAttribute("contenteditable", "false"); + c = e.text.valueUpdatedText; + Trigger.customEvent(n.events.onJsonEdit, n._currentView.element); } - }; - }; - } + } + s.setAttribute("contenteditable", "false"); + } + }; } - function q(e, t, n, o, l) { - if (Is.definedFunction(e.events.onValueClick)) { - t.onclick = () => { - if (l) { - e._currentView.valueClickTimerId = setTimeout((() => { - if (!e._currentView.editMode) { - Trigger.customEvent(e.events.onValueClick, e._currentView.element, n, o); + function te(t, n, o, l, r) { + if (Is.definedFunction(t.events.onValueClick)) { + n.onclick = () => { + let i = o; + if (t.convertClickedValuesToString) { + i = JSON.stringify(Convert2.toJsonStringifyClone(o, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); + } + if (r) { + t._currentView.valueClickTimerId = setTimeout((() => { + if (!t._currentView.editMode) { + Trigger.customEvent(t.events.onValueClick, t._currentView.element, i, l); } - }), e.editingValueClickDelay); + }), t.editingValueClickDelay); } else { - t.ondblclick = DomElement.cancelBubble; - Trigger.customEvent(e.events.onValueClick, e._currentView.element, n, o); + n.ondblclick = DomElement.cancelBubble; + Trigger.customEvent(t.events.onValueClick, t._currentView.element, i, l); } }; } else { - t.classList.add("no-hover"); + n.classList.add("no-hover"); } } - function ee(e, t, n, o, l, r, i, a) { - const s = e._currentView.contentPanelsIndex; - const u = e._currentView.contentPanelsDataIndex; - if (!e._currentView.contentPanelsOpen.hasOwnProperty(u)) { - e._currentView.contentPanelsOpen[u] = {}; + function ne(e, t, n, l, r, i, s, a) { + const u = e._currentView.contentPanelsIndex; + const c = e._currentView.contentPanelsDataIndex; + const d = e._currentView.currentColumnBuildingIndex; + const f = e._currentView.currentContentColumns[d]; + if (!e._currentView.contentPanelsOpen.hasOwnProperty(c)) { + e._currentView.contentPanelsOpen[c] = {}; } - const c = () => { - o.style.display = "none"; - e._currentView.contentPanelsOpen[u][s] = true; + const g = (o = true) => { + l.style.display = "none"; + e._currentView.contentPanelsOpen[c][u] = true; if (Is.defined(t)) { t.className = "right-arrow"; } - if (Is.defined(l)) { - l.style.display = "none"; - } if (Is.defined(r)) { - r.style.display = "inline-block"; + r.style.display = "none"; + } + if (Is.defined(i)) { + i.style.display = "inline-block"; } if (Is.defined(n)) { n.style.display = "inline-block"; } + if (o) { + x(d, e); + } }; - const d = () => { - o.style.display = "block"; - e._currentView.contentPanelsOpen[u][s] = false; + const m = (s, a = true) => { + if (Is.defined(s)) { + DomElement.cancelBubble(s); + if (!o) { + ie(e); + } + } + l.style.display = "block"; + e._currentView.contentPanelsOpen[c][u] = false; if (Is.defined(t)) { t.className = "down-arrow"; } - if (Is.defined(l)) { - l.style.display = "inline-block"; - } if (Is.defined(r)) { - r.style.display = "none"; + r.style.display = "inline-block"; + } + if (Is.defined(i)) { + i.style.display = "none"; } if (Is.defined(n)) { n.style.display = "none"; } + if (a) { + x(d, e); + } }; - const f = e => { - if (e) { - c(); + const p = (t, n) => { + if (Is.defined(t)) { + DomElement.cancelBubble(t); + if (!o) { + ie(e); + } + } + if (n) { + g(); } else { - d(); + m(null); } }; - let g = e.showAllAsClosed; - if (e._currentView.contentPanelsOpen[u].hasOwnProperty(s)) { - g = e._currentView.contentPanelsOpen[u][s]; + let T = e.showAllAsClosed; + if (e._currentView.contentPanelsOpen[c].hasOwnProperty(u)) { + T = e._currentView.contentPanelsOpen[c][u]; } else { if (!e._currentView.initialized) { - if (a === "object" && e.autoClose.objectSize > 0 && i >= e.autoClose.objectSize) { - g = true; - } else if (a === "array" && e.autoClose.arraySize > 0 && i >= e.autoClose.arraySize) { - g = true; - } else if (a === "map" && e.autoClose.mapSize > 0 && i >= e.autoClose.mapSize) { - g = true; - } else if (a === "set" && e.autoClose.setSize > 0 && i >= e.autoClose.setSize) { - g = true; - } else if (a === "html" && e.autoClose.htmlSize > 0 && i >= e.autoClose.htmlSize) { - g = true; + if (a === "object" && e.autoClose.objectSize > 0 && s >= e.autoClose.objectSize) { + T = true; + } else if (a === "array" && e.autoClose.arraySize > 0 && s >= e.autoClose.arraySize) { + T = true; + } else if (a === "map" && e.autoClose.mapSize > 0 && s >= e.autoClose.mapSize) { + T = true; + } else if (a === "set" && e.autoClose.setSize > 0 && s >= e.autoClose.setSize) { + T = true; + } else if (a === "html" && e.autoClose.htmlSize > 0 && s >= e.autoClose.htmlSize) { + T = true; } } - e._currentView.contentPanelsOpen[u][s] = g; + e._currentView.contentPanelsOpen[c][u] = T; } if (Is.defined(t)) { - t.onclick = () => f(t.className === "down-arrow"); + t.onclick = e => p(e, t.className === "down-arrow"); t.ondblclick = DomElement.cancelBubble; } - f(g); + if (Is.defined(i)) { + i.onclick = e => m(e); + i.ondblclick = DomElement.cancelBubble; + } + p(null, T, false); e._currentView.contentPanelsIndex++; } - function te(e, t, n) { + function oe(e, t, n) { let o = null; if (e.showCommas && !n) { o = DomElement.createWithHTML(t, "span", "comma", ","); } return o; } - function ne(e, t, n, o, l) { - let r = DomElement.create(t, "div", "closing-symbol"); + function le(e, t, n, o, l) { + const r = DomElement.create(t, "div", "closing-symbol"); if (o && e.showArrowToggles || e.showOpenedObjectArrayBorders) { DomElement.create(r, "div", "no-arrow"); } DomElement.createWithHTML(r, "div", "object-type-end", n); - te(e, r, l); + oe(e, r, l); + } + function re(e, t, n, l, r) { + t.onclick = i => { + DomElement.cancelBubble(i); + const s = t.classList.contains("highlight-selected") && o; + const a = e._currentView.currentContentColumns; + const u = e._currentView.currentContentColumns.length; + let c = false; + if (!o) { + e._currentView.selectedValues = []; + } + for (let t = 0; t < u; t++) { + const r = a[t].column.querySelectorAll(".object-type-value-title"); + const i = r.length; + for (let a = 0; a < i; a++) { + const i = r[a]; + if (!o) { + i.classList.remove("highlight-selected"); + i.classList.remove("highlight-compare"); + } + if (se(e) && t !== l) { + const e = i.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME); + if (Is.definedString(e) && e === n) { + if (!s) { + i.classList.add("highlight-compare"); + } else { + i.classList.remove("highlight-compare"); + } + c = true; + } + } + } + if (c) { + x(t, e); + } + } + if (!s) { + t.classList.add("highlight-selected"); + e._currentView.selectedValues.push(r); + } else { + t.classList.remove("highlight-selected"); + e._currentView.selectedValues.splice(e._currentView.selectedValues.indexOf(r), 1); + } + x(l, e); + }; } - function oe(t) { + function ie(e) { + if (e._currentView.selectedValues.length > 0) { + const t = e._currentView.currentContentColumns; + const n = e._currentView.currentContentColumns.length; + e._currentView.selectedValues = []; + for (let o = 0; o < n; o++) { + let n = false; + const l = t[o].column.querySelectorAll(".object-type-value-title"); + const r = l.length; + for (let t = 0; t < r; t++) { + const o = l[t]; + if (o.classList.contains("highlight-selected")) { + o.classList.remove("highlight-selected"); + n = true; + } + if (se(e) && o.classList.contains("highlight-compare")) { + o.classList.remove("highlight-compare"); + n = true; + } + } + if (n) { + x(o, e); + } + } + } + } + function se(e) { + return e.paging.enabled && e.paging.columnsPerPage > 1 && e.paging.allowComparisons; + } + function ae(t, n, o, l, r, i, s, a) { + n.oncontextmenu = u => { + DomElement.cancelBubble(u); + t._currentView.contextMenu.innerHTML = ""; + if (o && t._currentView.selectedValues.length <= 1) { + const o = ContextMenu.addMenuItem(t, e.text.editSymbolButtonText, e.text.editButtonText); + o.onclick = e => ue(e, t, n, l, i, r, s, a); + } + const c = ContextMenu.addMenuItem(t, e.text.copyButtonSymbolText, e.text.copyButtonText); + c.onclick = e => ce(e, t, r); + if (o && t._currentView.selectedValues.length <= 1) { + const n = ContextMenu.addMenuItem(t, e.text.removeSymbolButtonText, e.text.removeButtonText); + n.onclick = e => de(e, t, l, i, s); + } + DomElement.showElementAtMousePosition(u, t._currentView.contextMenu, 0); + }; + } + function ue(e, t, n, o, l, r, i, s) { + DomElement.cancelBubble(e); + ee(e, t, o, l, r, n, i, s); + ContextMenu.hide(t); + } + function ce(e, t, n) { + DomElement.cancelBubble(e); + let o = n; + if (t._currentView.selectedValues.length !== 0) { + o = t._currentView.selectedValues; + } + D(t, o); + ContextMenu.hide(t); + } + function de(t, n, o, l, r) { + DomElement.cancelBubble(t); + if (r) { + o.splice(Arr.getIndexFromBrackets(l), 1); + } else { + delete o[l]; + } + ContextMenu.hide(n); + i(n, false); + $(n, e.text.itemDeletedText); + } + function fe(t) { if (t.fileDroppingEnabled) { const n = DomElement.create(t._currentView.element, "div", "drag-and-drop-background"); const o = DomElement.create(n, "div", "notice-text"); @@ -2810,39 +3182,39 @@ var Obj; DomElement.createWithHTML(o, "p", "notice-text-title", e.text.dragAndDropTitleText); DomElement.createWithHTML(o, "p", "notice-text-description", e.text.dragAndDropDescriptionText); t._currentView.dragAndDropBackground = n; - t._currentView.element.ondragover = () => le(t, n); - t._currentView.element.ondragenter = () => le(t, n); + t._currentView.element.ondragover = () => ge(t, n); + t._currentView.element.ondragenter = () => ge(t, n); n.ondragover = DomElement.cancelBubble; n.ondragenter = DomElement.cancelBubble; n.ondragleave = () => n.style.display = "none"; - n.ondrop = e => re(e, t); + n.ondrop = e => me(e, t); } } - function le(e, t) { + function ge(e, t) { if (!e._currentView.columnDragging) { t.style.display = "block"; } } - function re(e, t) { + function me(e, t) { DomElement.cancelBubble(e); t._currentView.dragAndDropBackground.style.display = "none"; if (Is.defined(window.FileReader) && e.dataTransfer.files.length > 0) { - ie(e.dataTransfer.files, t); + pe(e.dataTransfer.files, t); } } - function ie(t, n) { + function pe(t, n) { const o = t.length; let l = 0; let r = []; - const a = t => { + const s = t => { l++; r.push(t); if (l === o) { - n._currentView.dataArrayCurrentIndex = 0; + n._currentView.currentDataArrayPageIndex = 0; n._currentView.contentPanelsOpen = {}; n.data = r.length === 1 ? r[0] : r; i(n); - W(n, e.text.importedText.replace("{0}", o.toString())); + $(n, e.text.importedText.replace("{0}", o.toString())); Trigger.customEvent(n.events.onSetJson, n._currentView.element); } }; @@ -2850,11 +3222,11 @@ var Obj; const n = t[e]; const o = n.name.split(".").pop().toLowerCase(); if (o === "json") { - ae(n, a); + xe(n, s); } } } - function ae(t, n) { + function xe(t, n) { const o = new FileReader; let l = null; o.onloadend = () => n(l); @@ -2866,57 +3238,73 @@ var Obj; }; o.readAsText(t); } - function se(t) { - let n = JSON.stringify(t.data, o, t.jsonIndentSpaces); + function Te(t) { + const n = JSON.stringify(Convert2.toJsonStringifyClone(t.data, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); if (Is.definedString(n)) { const o = DomElement.create(document.body, "a"); o.style.display = "none"; o.setAttribute("target", "_blank"); o.setAttribute("href", `data:application/json;charset=utf-8,${encodeURIComponent(n)}`); - o.setAttribute("download", ue(t)); + o.setAttribute("download", be(t)); o.click(); document.body.removeChild(o); O(t); - W(t, e.text.exportedText); + $(t, e.text.exportedText); Trigger.customEvent(t.events.onExport, t._currentView.element); } } - function ue(t) { + function be(t) { const n = new Date; const o = DateTime.getCustomFormattedDateText(e, n, t.exportFilenameFormat); return o; } - function ce(e, t = true) { + function we(e, t = true) { const n = t ? document.addEventListener : document.removeEventListener; - n("keydown", (t => de(t, e))); - } - function de(e, o) { - if (o.shortcutKeysEnabled && n === 1 && t.hasOwnProperty(o._currentView.element.id) && !o._currentView.editMode) { - if (fe(e) && e.code === "F11") { + const l = t ? window.addEventListener : window.removeEventListener; + n("keydown", (t => he(t, e))); + n("keyup", (e => De(e))); + n("contextmenu", (() => ye(e))); + l("click", (() => ye(e))); + l("focus", (() => o = false)); + } + function ye(e) { + if (!o) { + ie(e); + } + } + function he(e, l) { + o = ve(e); + if (l.shortcutKeysEnabled && n === 1 && t.hasOwnProperty(l._currentView.element.id) && !l._currentView.editMode) { + if (ve(e) && e.code === "F11") { e.preventDefault(); - v(o); + V(l); } else if (e.code === "ArrowLeft") { e.preventDefault(); - B(o); + C(l); } else if (e.code === "ArrowRight") { e.preventDefault(); - I(o); + I(l); } else if (e.code === "ArrowUp") { e.preventDefault(); - E(o); + E(l); } else if (e.code === "ArrowDown") { e.preventDefault(); - S(o); + B(l); } else if (e.code === "Escape") { e.preventDefault(); - O(o); + if (!O(l) && !o) { + ie(l); + } } } } - function fe(e) { + function De(e) { + o = ve(e); + } + function ve(e) { return e.ctrlKey || e.metaKey; } - function ge(e) { + function Ve(e) { e._currentView.element.innerHTML = ""; e._currentView.element.classList.remove("json-tree-js"); if (e._currentView.element.className.trim() === "") { @@ -2925,19 +3313,21 @@ var Obj; if (e._currentView.idSet) { e._currentView.element.removeAttribute("id"); } - ce(e, false); + we(e, false); ToolTip.assignToEvents(e, false); + ContextMenu.assignToEvents(e, false); ToolTip.remove(e); + ContextMenu.remove(e); Trigger.customEvent(e.events.onDestroy, e._currentView.element); } - const me = { + const Se = { refresh: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { const n = t[e]; i(n); Trigger.customEvent(n.events.onRefresh, n._currentView.element); } - return me; + return Se; }, refreshAll: function() { for (const e in t) { @@ -2947,38 +3337,38 @@ var Obj; Trigger.customEvent(n.events.onRefresh, n._currentView.element); } } - return me; + return Se; }, render: function(e, t) { if (Is.definedObject(e) && Is.definedObject(t)) { r(Binding.Options.getForNewInstance(t, e)); } - return me; + return Se; }, renderAll: function() { l(); - return me; + return Se; }, openAll: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { - S(t[e]); + B(t[e]); } - return me; + return Se; }, closeAll: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { E(t[e]); } - return me; + return Se; }, backPage: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { const n = t[e]; if (n.paging.enabled) { - B(t[e]); + C(t[e]); } } - return me; + return Se; }, nextPage: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { @@ -2987,13 +3377,13 @@ var Obj; I(t[e]); } } - return me; + return Se; }, getPageNumber: function(e) { let n = 1; if (Is.definedString(e) && t.hasOwnProperty(e)) { const o = t[e]; - n = Math.ceil((o._currentView.dataArrayCurrentIndex + 1) / o.paging.columnsPerPage); + n = Math.ceil((o._currentView.currentDataArrayPageIndex + 1) / o.paging.columnsPerPage); } return n; }, @@ -3009,13 +3399,13 @@ var Obj; l = o; } const r = t[n]; - r._currentView.dataArrayCurrentIndex = 0; + r._currentView.currentDataArrayPageIndex = 0; r._currentView.contentPanelsOpen = {}; r.data = l; i(r); Trigger.customEvent(r.events.onSetJson, r._currentView.element); } - return me; + return Se; }, getJson: function(e) { let n = null; @@ -3034,7 +3424,7 @@ var Obj; t[e]._currentView = r; i(t[e]); } - return me; + return Se; }, getBindingOptions: function(e) { let n = null; @@ -3045,21 +3435,21 @@ var Obj; }, destroy: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { - ge(t[e]); + Ve(t[e]); delete t[e]; n--; } - return me; + return Se; }, destroyAll: function() { for (const e in t) { if (t.hasOwnProperty(e)) { - ge(t[e]); + Ve(t[e]); } } t = {}; n = 0; - return me; + return Se; }, setConfiguration: function(t) { if (Is.definedObject(t)) { @@ -3075,7 +3465,7 @@ var Obj; e = Config.Options.get(o); } } - return me; + return Se; }, getIds: function() { const e = []; @@ -3087,14 +3477,14 @@ var Obj; return e; }, getVersion: function() { - return "4.0.0"; + return "4.1.0"; } }; (() => { e = Config.Options.get(); document.addEventListener("DOMContentLoaded", (() => l())); if (!Is.defined(window.$jsontree)) { - window.$jsontree = me; + window.$jsontree = Se; } })(); })();//# sourceMappingURL=jsontree.esm.js.map \ No newline at end of file diff --git a/dist/jsontree.esm.js.map b/dist/jsontree.esm.js.map index eaf63271..476cd2c6 100644 --- a/dist/jsontree.esm.js.map +++ b/dist/jsontree.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":["/Users/williamtroup/Documents/GitHub%20Repos/JsonTree.js/dist/jsontree.esm.js"],"names":["DataType","DataType2","Is","Is2","String","String2","hexColor","value","valid","length","isNaN","substring","rgbColor","startsWith","endsWith","boolean","object","toString","toLowerCase","trim","date","dateTimeString","regExp","match","guid","regex","test","bigInt","result2","defined","definedObject","definedBoolean","definedString","definedFunction","definedNumber","definedBigInt","definedArray","Array","definedDate","Date","definedFloat","definedSymbol","definedRegExp","RegExp","definedMap","Map","WeakMap","definedSet","Set","WeakSet","definedImage","Image","definedHtml","HTMLElement","definedUrl","data","url","URL","protocol","definedEmail","invalidOptionArray","array","minimumLength","Convert2","Convert","stringifyJson","_","configuration2","symbolToString","Default","getFunctionName","name","mapToObject","setToArray","source","src","stringToDataTypeValue","oldValue","newValue","parseFloat","parseInt","BigInt","Symbol","e","htmlToObject","addCssStyles","attributesLength","attributes","childrenLength","children","childrenKeyName","textKeyName","valueCloned","cloneNode","valueClonedChildrenLength","nodeType","Node","TEXT_NODE","removeChild","innerText","attributeIndex","attribute","nodeName","nodeValue","childIndex","push","computedStyles","getComputedStyle","computedStylesLength","cssComputedStyleIndex","cssComputedStyleName","cssComputedStyleNameStorage","cssComputedValue","getPropertyValue","map","Object","fromEntries","entries","set","from","values","jsonStringToObject","objectString","configuration","result","parsed","JSON","parse","e1","eval","e2","safeMode","console","error","text","objectErrorText","replace","message","numberToFloatWithDecimalPlaces","decimalPlaces","stringToBigInt","Default2","getAnyString","defaultValue","getString","getBoolean","getNumber","getFunction","getArray","getObject","getNumberMinimum","minimum","getNumberMaximum","maximum","getStringOrArray","split","isLambda","valueParts","valueNameParts","functionBrackets","join","functionText","getObjectFromUrl","callback","request","XMLHttpRequest","open","send","onreadystatechange","readyState","status","responseText","dataJson","DomElement","DomElement2","find","tagTypes","func","tagTypesLength","tagTypeIndex","domElements","document","getElementsByTagName","elements","slice","call","elementsLength","elementIndex","create","container","type","className","beforeNode","isText","createTextNode","createElement","insertBefore","appendChild","createWithHTML","html","element","innerHTML","createWithNoContainer","cancelBubble","preventDefault","stopPropagation","getScrollPosition","documentElement","left","scrollLeft","clientLeft","top","scrollTop","clientTop","showElementAtMousePosition","offset","pageX","pageY","scrollPosition","style","display","offsetWidth","window","innerWidth","offsetHeight","innerHeight","selectAllText","range","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","createCheckBox","labelText","checked","spanClass","additionalText","lineContainer","label","input","autocomplete","Str","Str2","padNumber","number","paddingCharacter","numberString","numberResult","arrayLength","capitalizeFirstLetter","string","charAt","toUpperCase","DateTime","DateTime2","getWeekdayNumber","getDay","getDayOrdinal","thText","stText","ndText","rdText","getCustomFormattedDateText","dateFormat","weekDayNumber","getHours","getMinutes","getSeconds","getMilliseconds","dayNames","dayNamesAbbreviated","getDate","monthNames","getMonth","monthNamesAbbreviated","getFullYear","Number","Constants","Constants2","JSONTREE_JS_ATTRIBUTE_NAME","JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME","JSONTREE_JS_ATTRIBUTE_PATH_NAME","Binding","Binding2","Options","Options2","getForNewInstance","bindingOptions","get","allowEditing","_currentView","dataArrayCurrentIndex","paging","startPage","columnsPerPage","titleBarButtons","valueClickTimerId","editMode","idSet","contentPanelsOpen","contentPanelsIndex","contentPanelsDataIndex","backButton","nextButton","disabledBackground","sideMenu","sideMenuChanged","toggleFullScreenButton","fullScreenOn","dragAndDropBackground","initialized","contentColumns","footer","footerStatusText","footerDataTypeText","footerLengthText","footerSizeText","footerPageText","footerStatusTextTimerId","columnDragging","columnDraggingDataIndex","dataTypeCounts","contentControlButtons","enabled","key","bulk","newOptions","options","showObjectSizes","useZeroIndexingForArrays","dateTimeFormat","showArrowToggles","showStringQuotes","showAllAsClosed","sortPropertyNames","sortPropertyNamesInAlphabeticalOrder","showCommas","reverseArrayValues","addArrayIndexPadding","showValueColors","maximumDecimalPlaces","maximumStringLength","fileDroppingEnabled","jsonIndentSpaces","showArrayIndexBrackets","showOpeningClosingCurlyBraces","showOpeningClosingSquaredBrackets","includeTimeZoneInDateTimeEditing","shortcutKeysEnabled","openInFullScreenMode","valueToolTips","editingValueClickDelay","showDataTypes","logJsonValueToolTipPaths","exportFilenameFormat","showPropertyNameQuotes","showOpenedObjectArrayBorders","showPropertyNameAndIndexColors","showUrlOpenButtons","showEmailOpenButtons","minimumArrayIndexPadding","arrayIndexPaddingCharacter","maximumUrlLength","maximumEmailLength","showCssStylesForHtmlObjects","jsonPathAny","jsonPathSeparator","showChildIndexes","getPaging","getTitle","getFooter","getControlPanel","getIgnore","getToolTip","getParse","getAllowEditing","getSideMenu","getAutoClose","getCustomTriggers","synchronizeScrolling","allowColumnReordering","title","showCloseOpenAllButtons","showCopyButton","enableFullScreenToggling","showFullScreenButton","showLengths","showSizes","showPageOf","statusResetDelay","controlPanel","showMovingButtons","showRemoveButton","showEditButton","showSwitchToPagesButton","ignore","nullValues","functionValues","unknownValues","booleanValues","floatValues","numberValues","stringValues","dateValues","objectValues","arrayValues","bigintValues","symbolValues","emptyObjects","undefinedValues","guidValues","colorValues","regexpValues","mapValues","setValues","urlValues","imageValues","emailValues","htmlValues","lambdaValues","tooltip","delay","stringsToDates","stringsToBooleans","stringsToNumbers","defaultFlag","bigIntValues","regExpValues","propertyNames","showImportButton","showExportButton","titleText","showAvailableDataTypeCounts","showOnlyDataTypesAvailable","autoClose","objectSize","arraySize","mapSize","setSize","htmlSize","events","onBeforeRender","onRenderComplete","onValueClick","onRefresh","onCopyAll","onOpenAll","onCloseAll","onDestroy","onBooleanRender","onFloatRender","onNumberRender","onBigIntRender","onStringRender","onDateRender","onFunctionRender","onNullRender","onUnknownRender","onSymbolRender","onCopyJsonReplacer","onUndefinedRender","onGuidRender","onColorRender","onJsonEdit","onRegExpRender","onExport","onUrlRender","onImageRender","onEmailRender","onLambdaRender","onCopy","onFullScreenChange","Config","Config2","newConfiguration","domElementTypes","getText","objectText","arrayText","mapText","setText","htmlText","closeAllButtonText","openAllButtonText","copyAllButtonText","attributeNotValidErrorText","attributeNotSetErrorText","ellipsisText","closeAllButtonSymbolText","openAllButtonSymbolText","copyButtonSymbolText","backButtonText","nextButtonText","backButtonSymbolText","nextButtonSymbolText","noJsonToViewText","sideMenuButtonSymbolText","sideMenuButtonText","closeButtonSymbolText","closeButtonText","showDataTypesText","selectNoneText","importButtonSymbolText","importButtonText","fullScreenOnButtonSymbolText","fullScreenOffButtonSymbolText","fullScreenButtonText","copyButtonText","dragAndDropSymbolText","dragAndDropTitleText","dragAndDropDescriptionText","exportButtonSymbolText","exportButtonText","propertyColonCharacter","noPropertiesText","openText","openSymbolText","waitingText","pageOfText","sizeText","copiedText","exportedText","importedText","ignoreDataTypesUpdated","lengthText","valueUpdatedText","jsonUpdatedText","nameUpdatedText","indexUpdatedText","itemDeletedText","arrayJsonItemDeleted","dataTypeText","editSymbolButtonText","editButtonText","moveRightSymbolButtonText","moveRightButtonText","moveLeftSymbolButtonText","moveLeftButtonText","removeSymbolButtonText","removeButtonText","switchToPagesSymbolText","switchToPagesText","Trigger","Trigger2","customEvent","triggerFunction","args","apply","ToolTip","ToolTip2","renderControl","body","assignToEvents","add2","addEventListener_Window","addEventListener","removeEventListener","addEventListener_Document","hide","add","tooltipClass","show","tooltipTimerId","setTimeout","clearTimeout","remove","parentNode","Arr","Arr2","getIndex","index","getIndexName","largestValue","paddingLength","getIndexFromBrackets","propertyName","moveIndex","arrayData","oldIndex","newIndex","splice","Size","Size2","of","bytes","getSize","Math","floor","log","pow","length2","itemKey","hasOwnProperty","arrayIndex","Obj","Obj2","getPropertyNames","properties","collator","Intl","Collator","numeric","sensitivity","sort","compare","reverse","_configuration","_elements_Data","_elements_Data_Count","_jsonStringifyReplacer","render","hasAttribute","bindingOptionsData","getAttribute","id","crypto","randomUUID","removeAttribute","classList","renderControlContainer","buildDocumentEvents","isForPageSwitch","ajaxData","renderControlContainerForData","scrollTopsForColumns","getContentColumnScrollTops","renderControlTitleBar","contents","pageIndex","actualDataIndex","actualData","renderControlContentsPanel","renderControlSideMenu","renderControlFooterBar","renderControlDragAndDrop","dataIndex","totalColumns","enableColumnOrder","contentsColumn","noJson","importText","onclick","onSideMenuImportClick","onscroll","onContentsColumnScroll","setAttribute","ondragstart","onContentsColumnDragStart","ondragend","onContentsColumnDragEnd","ondragover","ondrop","onContentsColumnDrop","renderArray","renderObject","renderControlContentsControlButtons","ondblclick","enableContentsColumnEditMode","statusBarMessage","stringify","focus","onblur","setFooterStatusText","onkeydown","code","isCommandKey","newData","execCommand","contentColumnsLength","contentColumnIndex","column","columnsLength","controlButtons","right","columnIndex","moveDataArrayIndex","dataArray1","dataArray2","dataPanelsOpen1","dataPanelsOpen2","isPagingEnabled","editButton","moveRightButton","disabled","moveLeftButton","copyButton","openAllButton","onOpenAllForPage","closeAllButton","onCloseAllForPage","removeButton","onRemoveArrayJson","switchToPagesButton","onSwitchToPages","minHeight","panels","panelId","replaceFunction","copyDataJson","navigator","clipboard","writeText","titleBar","onTitleBarDblClick","sideMenuButton","onSideMenuOpen","onTitleBarCopyAllClick","onBackPage","onNextPage","buttonText","contains","updateFooterDisplay","onSideMenuClose","titleBarText","titleBarControls","exportButton","importButton","closeButton","addSideMenuIgnoreTypes","accept","multiple","onchange","importFromFiles","files","click","checkboxes","ignoreTypes","selectAll","selectNone","changeSidePanelCheckboxSelection","ignoreTypesContent","dataTypes","keys","forEach","createSideMenuIgnoreTypeCheckBox","flag","checkboxesLength","checkboxIndex","dataTypeDisplayCount","checkBoxName","checkBoxAdditionalText","getFooterPageText","currentPage","ceil","totalPages","currentReplacement","toFixed","outerHTML","totalReplacement","addFooterDataTypeStatus","dataType","valueElement","replacement","addFooterLengthStatus","addFooterSizeStatus","size","statusText","propertyCount","mainTitle","objectTypeTitle","objectTypeContents","arrow","openingBrace","closedBraces","addObjectContentsBorder","dataArrayIndex","renderObjectValues","addValueClickEvent","openingBracket","closedBrackets","renderArrayValues","coma","addNoArrowToClosingSymbol","isLastItem","jsonPath","parentType","preventEditing","propertiesAdded","propertiesLength","propertiesLengthForAutoClose","renderValue","propertyIndex","newJsonPath","createClosingSymbol","addArrowEvent","dataLength","dataLengthForAutoClose","dataIndex1","actualIndex","dataIndex2","isArrayItem","objectTypeValue","valueClass","ignored","ignoredDataType","nameElement","typeElement","isForEmptyProperties","assignClickEvent","makePropertyNameEditable","createComma","functionName","makePropertyValueEditable","color","newUrlValue","openButton","newEmailValue","newStringValue","image","htmlObject","objectTitle","arrayTypeContents","valueObject","updateDataTypeCount","addValueElementToolTip","objectContents","jsonPathParts","jsonPathPartsLength","jsonPathPartIndex","originalPropertyName","originalArrayIndex","newPropertyName","newArrayIndex","originalValue","originalPropertyValue","propertyValue","newPropertyValue","newDataPropertyValue","openingSymbol","hideFunc","showFunc","conditionFunc","condition","isClosed","symbol","addNoArrow","symbolContainer","dragAndDropText","onDragStart","ondragenter","ondragleave","onDropFiles","FileReader","dataTransfer","filesLength","filesRead","filesData","onFileLoad","onSetJson","fileIndex","file","fileExtension","pop","importFromJson","reader","renderData","onloadend","onload","json","target","readAsText","tempLink","encodeURIComponent","getExportFilename","filename","addEvents","documentFunc","onWindowKeyDown","ctrlKey","metaKey","destroyElement","_public","refresh","elementId","refreshAll","renderAll","openAll","closeAll","backPage","nextPage","getPageNumber","setJson","jsonObject","jsonResult","getJson","updateBindingOptions","currentView","getBindingOptions","destroy","destroyAll","setConfiguration","configurationHasChanged","newInternalConfiguration","getIds","getVersion","$jsontree"],"mappings":"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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["/Users/williamtroup/Documents/GitHub%20Repos/JsonTree.js/dist/jsontree.esm.js"],"names":["DataType","DataType2","Is","Is2","String","String2","hexColor","value","valid","length","isNaN","substring","rgbColor","startsWith","endsWith","boolean","object","toString","toLowerCase","trim","date","dateTimeString","regExp","match","guid","regex","test","bigInt","result2","symbol","defined","definedObject","definedBoolean","definedString","definedFunction","definedNumber","definedBigInt","definedArray","Array","definedDate","Date","definedFloat","definedSymbol","definedRegExp","RegExp","definedMap","Map","WeakMap","definedSet","Set","WeakSet","definedImage","Image","definedHtml","HTMLElement","definedUrl","data","url","URL","protocol","definedEmail","invalidOptionArray","array","minimumLength","Convert2","Convert","toJsonStringifyClone","configuration2","bindingOptions","includeTimeZoneInDates","JSON","stringify","replace","symbolToString","Default","getFunctionName","name","source","src","htmlToObject","showCssStylesForHtmlObjects","arrayLength","arrayIndex","push","setToArray","obj","mapToObject","key","hasOwnProperty","stringToDataTypeValue","oldValue","newValue","parseFloat","parseInt","BigInt","Symbol","exception","addCssStyles","attributesLength","attributes","childrenLength","children","childrenKeyName","textKeyName","valueCloned","cloneNode","valueClonedChildrenLength","nodeType","Node","TEXT_NODE","removeChild","innerText","attributeIndex","attribute","nodeName","nodeValue","childIndex","computedStyles","getComputedStyle","computedStylesLength","cssComputedStyleIndex","cssComputedStyleName","cssComputedStyleNameStorage","cssComputedValue","getPropertyValue","map","Object","fromEntries","entries","set","from","values","jsonStringToObject","objectString","configuration","result","parsed","parse","exception1","eval","exception2","safeMode","console","error","text","objectErrorText","message","numberToFloatWithDecimalPlaces","decimalPlaces","stringToBigInt","Default2","getAnyString","defaultValue","getString","getBoolean","getNumber","getFunction","getArray","getObject","getNumberMinimum","minimum","getNumberMaximum","maximum","getStringOrArray","split","isLambda","valueParts","valueNameParts","functionBrackets","join","functionText","getObjectFromUrl","callback","request","XMLHttpRequest","open","send","onreadystatechange","readyState","status","responseText","dataJson","DomElement","DomElement2","find","tagTypes","func","tagTypesLength","tagTypeIndex","domElements","document","getElementsByTagName","elements","slice","call","elementsLength","elementIndex","create","container","type","className","beforeNode","isText","createTextNode","createElement","insertBefore","appendChild","createWithHTML","html","element","innerHTML","createWithNoContainer","cancelBubble","ev","preventDefault","stopPropagation","getScrollPosition","documentElement","left","scrollLeft","clientLeft","top","scrollTop","clientTop","showElementAtMousePosition","offset","pageX","pageY","scrollPosition","style","display","offsetWidth","window","innerWidth","offsetHeight","innerHeight","selectAllText","range","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","createCheckBox","labelText","checked","spanClass","additionalText","lineContainer","label","input","autocomplete","getOffset","position","offsetLeft","offsetTop","offsetParent","Str","Str2","padNumber","number","paddingCharacter","numberString","numberResult","capitalizeFirstLetter","string","charAt","toUpperCase","DateTime","DateTime2","getWeekdayNumber","getDay","getDayOrdinal","thText","stText","ndText","rdText","getCustomFormattedDateText","dateFormat","weekDayNumber","getHours","getMinutes","getSeconds","getMilliseconds","dayNames","dayNamesAbbreviated","getDate","monthNames","getMonth","monthNamesAbbreviated","getFullYear","Number","Constants","Constants2","JSONTREE_JS_ATTRIBUTE_NAME","JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME","JSONTREE_JS_ATTRIBUTE_PATH_NAME","Binding","Binding2","Options","Options2","getForNewInstance","get","allowEditing","_currentView","currentDataArrayPageIndex","paging","startPage","columnsPerPage","titleBarButtons","valueClickTimerId","editMode","idSet","contentPanelsOpen","contentPanelsIndex","contentPanelsDataIndex","backButton","nextButton","disabledBackground","sideMenu","sideMenuChanged","toggleFullScreenButton","fullScreenOn","dragAndDropBackground","initialized","currentContentColumns","footer","footerStatusText","footerDataTypeText","footerLengthText","footerSizeText","footerPageText","footerStatusTextTimerId","columnDragging","columnDraggingDataIndex","dataTypeCounts","contextMenu","currentColumnBuildingIndex","selectedValues","enabled","bulk","newOptions","options","showObjectSizes","useZeroIndexingForArrays","dateTimeFormat","showArrowToggles","showStringQuotes","showAllAsClosed","sortPropertyNames","sortPropertyNamesInAlphabeticalOrder","showCommas","reverseArrayValues","addArrayIndexPadding","showValueColors","maximumDecimalPlaces","maximumStringLength","fileDroppingEnabled","jsonIndentSpaces","showArrayIndexBrackets","showOpeningClosingCurlyBraces","showOpeningClosingSquaredBrackets","shortcutKeysEnabled","openInFullScreenMode","valueToolTips","editingValueClickDelay","showDataTypes","logJsonValueToolTipPaths","exportFilenameFormat","showPropertyNameQuotes","showOpenedObjectArrayBorders","showPropertyNameAndIndexColors","showUrlOpenButtons","showEmailOpenButtons","minimumArrayIndexPadding","arrayIndexPaddingCharacter","maximumUrlLength","maximumEmailLength","jsonPathAny","jsonPathSeparator","showChildIndexes","showClosedArraySquaredBrackets","showClosedObjectCurlyBraces","convertClickedValuesToString","getPaging","title","getTitle","getFooter","controlPanel","getControlPanel","lineNumbers","getLineNumbers","ignore","getIgnore","tooltip","getToolTip","getParse","getAllowEditing","getSideMenu","autoClose","getAutoClose","events","getCustomTriggers","synchronizeScrolling","allowColumnReordering","allowComparisons","showCloseOpenAllButtons","showCopyButton","enableFullScreenToggling","showFullScreenButton","showLengths","showSizes","showPageOf","statusResetDelay","showMovingButtons","showRemoveButton","showEditButton","showSwitchToPagesButton","padNumbers","addDots","nullValues","functionValues","unknownValues","booleanValues","floatValues","numberValues","stringValues","dateValues","objectValues","arrayValues","bigintValues","symbolValues","emptyObjects","undefinedValues","guidValues","colorValues","regexpValues","mapValues","setValues","urlValues","imageValues","emailValues","htmlValues","lambdaValues","delay","stringsToDates","stringsToBooleans","stringsToNumbers","stringsToSymbols","defaultFlag","bigIntValues","regExpValues","propertyNames","properties","property","showImportButton","showExportButton","titleText","showAvailableDataTypeCounts","showOnlyDataTypesAvailable","objectSize","arraySize","mapSize","setSize","htmlSize","onBeforeRender","onRenderComplete","onValueClick","onRefresh","onCopyAll","onOpenAll","onCloseAll","onDestroy","onBooleanRender","onFloatRender","onNumberRender","onBigIntRender","onStringRender","onDateRender","onFunctionRender","onNullRender","onUnknownRender","onSymbolRender","onCopyJsonReplacer","onUndefinedRender","onGuidRender","onColorRender","onJsonEdit","onRegExpRender","onExport","onUrlRender","onImageRender","onEmailRender","onLambdaRender","onCopy","onFullScreenChange","Config","Config2","newConfiguration","domElementTypes","getText","objectText","arrayText","mapText","setText","htmlText","closeAllButtonText","openAllButtonText","copyAllButtonText","attributeNotValidErrorText","attributeNotSetErrorText","ellipsisText","closeAllButtonSymbolText","openAllButtonSymbolText","copyButtonSymbolText","backButtonText","nextButtonText","backButtonSymbolText","nextButtonSymbolText","noJsonToViewText","sideMenuButtonSymbolText","sideMenuButtonText","closeButtonSymbolText","closeButtonText","showDataTypesText","selectNoneText","importButtonSymbolText","importButtonText","fullScreenOnButtonSymbolText","fullScreenOffButtonSymbolText","fullScreenButtonText","copyButtonText","dragAndDropSymbolText","dragAndDropTitleText","dragAndDropDescriptionText","exportButtonSymbolText","exportButtonText","propertyColonCharacter","noPropertiesText","openText","openSymbolText","waitingText","pageOfText","sizeText","copiedText","exportedText","importedText","ignoreDataTypesUpdated","lengthText","valueUpdatedText","jsonUpdatedText","nameUpdatedText","indexUpdatedText","itemDeletedText","arrayJsonItemDeleted","dataTypeText","editSymbolButtonText","editButtonText","moveRightSymbolButtonText","moveRightButtonText","moveLeftSymbolButtonText","moveLeftButtonText","removeSymbolButtonText","removeButtonText","switchToPagesSymbolText","switchToPagesText","Trigger","Trigger2","customEvent","triggerFunction","args","apply","ToolTip","ToolTip2","renderControl","body","assignToEvents","add2","addEventListener_Window","addEventListener","removeEventListener","addEventListener_Document","hide","add","tooltipClass","show","tooltipTimerId","setTimeout","clearTimeout","remove","parentNode","Arr","Arr2","getIndex","index","getIndexName","largestValue","paddingLength","getIndexFromBrackets","propertyName","moveIndex","arrayData","oldIndex","newIndex","splice","removeNullOrUndefinedEntries","dataLength","dataIndex","Size","Size2","of","bytes","getSize","Math","floor","log","pow","itemKey","Obj","Obj2","getPropertyNames","collator","Intl","Collator","numeric","sensitivity","sort","compare","reverse","createFromValue","crypto","randomUUID","ContextMenu","ContextMenu2","addMenuItem","symbolText","menuItem","_configuration","_elements_Data","_elements_Data_Count","_key_Control_Pressed","render","hasAttribute","bindingOptionsData","getAttribute","id","removeAttribute","classList","renderControlContainer","buildDocumentEvents","isForPageSwitch","ajaxData","renderControlContainerForData","scrollTopsForColumns","getContentColumnScrollTops","renderControlTitleBar","contents","updatedData","pageIndex","actualDataIndex","actualData","renderControlContentsPanel","renderControlSideMenu","renderControlFooterBar","renderControlDragAndDrop","totalColumns","enableColumnOrder","contentsColumn","noJson","importText","onclick","onSideMenuImportClick","onscroll","onContentsColumnScroll","setAttribute","ondragstart","onContentsColumnDragStart","ondragend","onContentsColumnDragEnd","ondragover","ondrop","onContentsColumnDrop","renderValuesContainer","lines","columnLayout","column","controlButtons","renderArray","renderObject","renderControlColumnLineNumbers","renderControlContentsControlButtons","ondblclick","enableContentsColumnEditMode","statusBarMessage","focus","onblur","setFooterStatusText","onkeydown","ev2","code","isCommandKey","newData","execCommand","contentColumnsLength","contentColumnIndex","columnsLength","right","columnIndex","moveDataArrayIndex","dataArray1","dataArray2","dataPanelsOpen1","dataPanelsOpen2","columnLayoutIndex","lineNumberCount","firstLineTop","largestLineNumberWidth","valueElements","querySelectorAll","valueElementsLength","valueElementIndex","valueElement","elementTop","lineNumber","lineNumberDot","newTop","max","height","width","isPagingEnabled","editButton","moveRightButton","disabled","moveLeftButton","copyButton","openAllButton","onOpenAllForPage","closeAllButton","onCloseAllForPage","removeButton","onRemoveArrayJson","switchToPagesButton","onSwitchToPages","minHeight","panels","panelId","copyDataJson","navigator","clipboard","writeText","titleBar","onTitleBarDblClick","sideMenuButton","onSideMenuOpen","onTitleBarCopyAllClick","onBackPage","onNextPage","buttonText","contains","updateFooterDisplay","onSideMenuClose","titleBarText","titleBarControls","exportButton","importButton","closeButton","addSideMenuIgnoreTypes","accept","multiple","onchange","importFromFiles","files","click","closed","checkboxes","ignoreTypes","selectAll","selectNone","changeSidePanelCheckboxSelection","ignoreTypesContent","dataTypes","keys","forEach","_","createSideMenuIgnoreTypeCheckBox","flag","checkboxesLength","checkboxIndex","dataTypeDisplayCount","checkBoxName","checkBoxAdditionalText","getFooterPageText","currentPage","ceil","totalPages","currentReplacement","toFixed","outerHTML","totalReplacement","addFooterDataTypeStatus","dataType","replacement","addFooterLengthStatus","addFooterSizeStatus","size","statusText","propertyCount","mainTitle","objectTypeTitle","objectTypeContents","arrow","openingBrace","closedBraces","addObjectContentsBorder","dataArrayIndex","renderObjectValues","addValueClickEvent","renderValueContextMenuItems","openingBracket","closedBrackets","renderArrayValues","coma","addNoArrowToClosingSymbol","isLastItem","jsonPath","parentType","preventEditing","propertiesAdded","propertiesLength","propertiesLengthForAutoClose","renderValue","propertyIndex","newJsonPath","createClosingSymbol","addArrowEvent","dataLengthForAutoClose","dataIndex1","actualIndex","dataIndex2","isArrayItem","objectTypeValue","objectTypeValueTitle","valueClass","ignored","ignoredDataType","nameElement","typeElement","isForEmptyProperties","assignClickEvent","openButton","makePropertyNameEditable","selectItemAndCompareProperties","createComma","functionName","makePropertyValueEditable","color","newUrlValue","newEmailValue","newStringValue","image","htmlObject","objectTitle","arrayTypeContents","valueObject","updateDataTypeCount","addValueElementToolTip","objectContents","jsonPathParts","jsonPathPartsLength","jsonPathPartIndex","originalPropertyName","originalArrayIndex","newPropertyName","newArrayIndex","originalValue","originalPropertyValue","propertyValue","enableValueEditingMode","newPropertyValue","newDataPropertyValue","clickValue","openingSymbol","closedSymbols","columnLayoutProcessingIndex","hideFunc","updateLineNumbers","showFunc","removeSelectedItemsAndComparedProperties","conditionFunc","condition","isClosed","addNoArrow","symbolContainer","currentColumnIndex","itemIsSelected","columns","elementsHighlighted","isCompareColumnValuesEnabled","valueJsonPath","indexOf","classesRemoved","oncontextmenu","editMenuItem","onContextMenuItemEdit","copyMenuItem","onContextMenuItemCopy","removeMenuItem","onContextMenuItemRemove","copyValue","dragAndDropText","onDragStart","ondragenter","ondragleave","onDropFiles","FileReader","dataTransfer","filesLength","filesRead","filesData","onFileLoad","onSetJson","fileIndex","file","fileExtension","pop","importFromJson","reader","renderData","onloadend","onload","json","target","readAsText","tempLink","encodeURIComponent","getExportFilename","filename","addEvents","documentFunc","windowFunc","onDocumentKeyDown","onDocumentKeyUp","onWindowContextMenuOrClick","ctrlKey","metaKey","destroyElement","_public","refresh","elementId","refreshAll","renderAll","openAll","closeAll","backPage","nextPage","getPageNumber","setJson","jsonObject","jsonResult","getJson","updateBindingOptions","currentView","getBindingOptions","destroy","destroyAll","setConfiguration","configurationHasChanged","newInternalConfiguration","getIds","getVersion","$jsontree"],"mappings":"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","sourcesContent":[null]} \ No newline at end of file diff --git a/dist/jsontree.js b/dist/jsontree.js index 390ea570..5e91ec65 100644 --- a/dist/jsontree.js +++ b/dist/jsontree.js @@ -68,6 +68,10 @@ var Is; return t; } e.bigInt = i; + function s(e) { + return e.startsWith("Symbol(") && e.endsWith(")"); + } + e.symbol = s; })(t = e.String || (e.String = {})); function n(e) { return e !== null && e !== void 0 && e.toString() !== ""; @@ -89,14 +93,14 @@ var Is; return n(e) && typeof e === "function"; } e.definedFunction = i; - function a(e) { + function s(e) { return n(e) && typeof e === "number"; } - e.definedNumber = a; - function s(e) { + e.definedNumber = s; + function a(e) { return n(e) && typeof e === "bigint"; } - e.definedBigInt = s; + e.definedBigInt = a; function u(e) { return e !== null && e !== void 0 && e instanceof Array; } @@ -125,14 +129,14 @@ var Is; return n(e) && (e instanceof Set || e instanceof WeakSet); } e.definedSet = p; - function T(e) { + function x(e) { return n(e) && e instanceof Image; } - e.definedImage = T; - function x(e) { + e.definedImage = x; + function T(e) { return n(e) && e instanceof HTMLElement; } - e.definedHtml = x; + e.definedHtml = T; function b(e) { let t; try { @@ -157,25 +161,62 @@ var Is; var Convert2; (Convert => { - function stringifyJson(e, t, n) { - if (Is.definedBigInt(t)) { - t = t.toString(); - } else if (Is.definedSymbol(t)) { - t = symbolToString(t); - } else if (Is.definedFunction(t)) { - t = Default.getFunctionName(t, n).name; - } else if (Is.definedMap(t)) { - t = mapToObject(t); - } else if (Is.definedSet(t)) { - t = setToArray(t); - } else if (Is.definedRegExp(t)) { - t = t.source; - } else if (Is.definedImage(t)) { - t = t.src; + function toJsonStringifyClone(e, t, n) { + let o = null; + if (!Is.defined(e)) { + o = null; + } else if (Is.definedDate(e)) { + if (!n.includeTimeZoneInDates) { + o = JSON.stringify(e).replace(/['"]+/g, ""); + } else { + o = e.toString(); + } + } else if (Is.definedSymbol(e)) { + o = symbolToString(e); + } else if (Is.definedBigInt(e)) { + o = e.toString(); + } else if (Is.definedFunction(e)) { + o = Default.getFunctionName(e, t).name; + } else if (Is.definedRegExp(e)) { + o = e.source; + } else if (Is.definedImage(e)) { + o = e.src; + } else if (Is.definedHtml(e)) { + o = htmlToObject(e, n.showCssStylesForHtmlObjects); + } else if (Is.definedArray(e)) { + o = []; + const l = e.length; + for (let r = 0; r < l; r++) { + o.push(toJsonStringifyClone(e[r], t, n)); + } + } else if (Is.definedSet(e)) { + o = []; + const l = setToArray(e); + const r = l.length; + for (let e = 0; e < r; e++) { + o.push(toJsonStringifyClone(l[e], t, n)); + } + } else if (Is.definedMap(e)) { + o = {}; + const l = mapToObject(e); + for (const e in l) { + if (l.hasOwnProperty(e)) { + o[e] = toJsonStringifyClone(l[e], t, n); + } + } + } else if (Is.definedObject(e)) { + o = {}; + for (const l in e) { + if (e.hasOwnProperty(l)) { + o[l] = toJsonStringifyClone(e[l], t, n); + } + } + } else { + o = e; } - return t; + return o; } - Convert.stringifyJson = stringifyJson; + Convert.toJsonStringifyClone = toJsonStringifyClone; function stringToDataTypeValue(e, t) { let n = null; try { @@ -215,16 +256,16 @@ var Convert2; const l = e.children.length; const r = "&children"; const i = "#text"; - const a = e.cloneNode(true); - let s = a.children.length; - while (s > 0) { - if (a.children[0].nodeType !== Node.TEXT_NODE) { - a.removeChild(a.children[0]); + const s = e.cloneNode(true); + let a = s.children.length; + while (a > 0) { + if (s.children[0].nodeType !== Node.TEXT_NODE) { + s.removeChild(s.children[0]); } - s--; + a--; } n[r] = []; - n[i] = a.innerText; + n[i] = s.innerText; for (let t = 0; t < o; t++) { const o = e.attributes[t]; if (Is.definedString(o.nodeName)) { @@ -272,7 +313,7 @@ var Convert2; if (Is.definedString(objectString)) { result.object = JSON.parse(objectString); } - } catch (e1) { + } catch (exception1) { try { result.object = eval(`(${objectString})`); if (Is.definedFunction(result.object)) { @@ -280,7 +321,7 @@ var Convert2; } } catch (e) { if (!configuration.safeMode) { - console.error(configuration.text.objectErrorText.replace("{{error_1}}", e1.message).replace("{{error_2}}", e.message)); + console.error(configuration.text.objectErrorText.replace("{{error_1}}", exception1.message).replace("{{error_2}}", e.message)); result.parsed = false; } result.object = null; @@ -331,14 +372,14 @@ var Default; return Is.definedArray(e) ? e : t; } e.getArray = i; - function a(e, t) { + function s(e, t) { return Is.definedObject(e) ? e : t; } - e.getObject = a; - function s(e, t, n) { + e.getObject = s; + function a(e, t, n) { return Is.definedNumber(e) ? e >= n ? e : n : t; } - e.getNumberMinimum = s; + e.getNumberMinimum = a; function u(e, t, n) { return Is.definedNumber(e) ? e > n ? n : e : t; } @@ -414,7 +455,7 @@ var DomElement; function n(e, t, n = "", o = null) { const l = t.toLowerCase(); const r = l === "text"; - let i = r ? document.createTextNode("") : document.createElement(l); + const i = r ? document.createTextNode("") : document.createElement(l); if (Is.defined(n)) { i.className = n; } @@ -437,7 +478,7 @@ var DomElement; function l(e) { const t = e.toLowerCase(); const n = t === "text"; - let o = n ? document.createTextNode("") : document.createElement(t); + const o = n ? document.createTextNode("") : document.createElement(t); return o; } e.createWithNoContainer = l; @@ -455,7 +496,7 @@ var DomElement; return t; } e.getScrollPosition = i; - function a(e, t, n) { + function s(e, t, n) { let o = e.pageX; let l = e.pageY; const r = i(); @@ -481,18 +522,18 @@ var DomElement; t.style.left = `${o}px`; t.style.top = `${l}px`; } - e.showElementAtMousePosition = a; - function s(e) { + e.showElementAtMousePosition = s; + function a(e) { const t = document.createRange(); t.selectNodeContents(e); const n = window.getSelection(); n.removeAllRanges(); n.addRange(t); } - e.selectAllText = s; - function u(e, t, l, r, i, a) { - const s = n(e, "div", "checkbox"); - const u = n(s, "label", "checkbox"); + e.selectAllText = a; + function u(e, t, l, r, i, s) { + const a = n(e, "div", "checkbox"); + const u = n(a, "label", "checkbox"); const c = n(u, "input"); c.type = "checkbox"; c.name = l; @@ -500,12 +541,24 @@ var DomElement; c.autocomplete = "off"; n(u, "span", "check-mark"); o(u, "span", `text ${i}`, t); - if (Is.definedString(a)) { - o(u, "span", `additional-text`, a); + if (Is.definedString(s)) { + o(u, "span", `additional-text`, s); } return c; } e.createCheckBox = u; + function c(e) { + const t = {}; + t.left = 0; + t.top = 0; + while (e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop)) { + t.left += e.offsetLeft - e.scrollLeft; + t.top += e.offsetTop - e.scrollTop; + e = e.offsetParent; + } + return t; + } + e.getOffset = c; })(DomElement || (DomElement = {})); var Str; @@ -594,7 +647,7 @@ var Binding; const l = o.allowEditing; o._currentView = {}; o._currentView.element = n; - o._currentView.dataArrayCurrentIndex = (o.paging.startPage - 1) * o.paging.columnsPerPage; + o._currentView.currentDataArrayPageIndex = (o.paging.startPage - 1) * o.paging.columnsPerPage; o._currentView.titleBarButtons = null; o._currentView.valueClickTimerId = 0; o._currentView.editMode = false; @@ -611,7 +664,7 @@ var Binding; o._currentView.fullScreenOn = false; o._currentView.dragAndDropBackground = null; o._currentView.initialized = false; - o._currentView.contentColumns = []; + o._currentView.currentContentColumns = []; o._currentView.footer = null; o._currentView.footerStatusText = null; o._currentView.footerDataTypeText = null; @@ -622,9 +675,11 @@ var Binding; o._currentView.columnDragging = false; o._currentView.columnDraggingDataIndex = 0; o._currentView.dataTypeCounts = {}; - o._currentView.contentControlButtons = []; - if (o.paging.enabled && Is.definedArray(o.data) && o.data.length > 1 && o._currentView.dataArrayCurrentIndex > o.data.length - 1) { - o._currentView.dataArrayCurrentIndex = 0; + o._currentView.contextMenu = null; + o._currentView.currentColumnBuildingIndex = 0; + o._currentView.selectedValues = []; + if (o.paging.enabled && Is.definedArray(o.data) && o.data.length > 1 && o._currentView.currentDataArrayPageIndex > o.data.length - 1) { + o._currentView.currentDataArrayPageIndex = 0; } for (const e in l) { if (!l[e]) { @@ -636,7 +691,7 @@ var Binding; } t.getForNewInstance = n; function o(e) { - let t = Default.getObject(e, {}); + const t = Default.getObject(e, {}); t.showObjectSizes = Default.getBoolean(t.showObjectSizes, true); t.useZeroIndexingForArrays = Default.getBoolean(t.useZeroIndexingForArrays, true); t.dateTimeFormat = Default.getString(t.dateTimeFormat, "{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}"); @@ -656,7 +711,7 @@ var Binding; t.showArrayIndexBrackets = Default.getBoolean(t.showArrayIndexBrackets, true); t.showOpeningClosingCurlyBraces = Default.getBoolean(t.showOpeningClosingCurlyBraces, false); t.showOpeningClosingSquaredBrackets = Default.getBoolean(t.showOpeningClosingSquaredBrackets, false); - t.includeTimeZoneInDateTimeEditing = Default.getBoolean(t.includeTimeZoneInDateTimeEditing, true); + t.includeTimeZoneInDates = Default.getBoolean(t.includeTimeZoneInDates, true); t.shortcutKeysEnabled = Default.getBoolean(t.shortcutKeysEnabled, true); t.openInFullScreenMode = Default.getBoolean(t.openInFullScreenMode, false); t.valueToolTips = Default.getObject(t.valueToolTips, null); @@ -677,17 +732,21 @@ var Binding; t.jsonPathAny = Default.getString(t.jsonPathAny, ".."); t.jsonPathSeparator = Default.getString(t.jsonPathSeparator, "\\"); t.showChildIndexes = Default.getBoolean(t.showChildIndexes, true); - t = l(t); - t = r(t); - t = i(t); - t = a(t); - t = s(t); - t = u(t); - t = c(t); - t = d(t); - t = f(t); - t = g(t); - t = m(t); + t.showClosedArraySquaredBrackets = Default.getBoolean(t.showClosedArraySquaredBrackets, true); + t.showClosedObjectCurlyBraces = Default.getBoolean(t.showClosedObjectCurlyBraces, true); + t.convertClickedValuesToString = Default.getBoolean(t.convertClickedValuesToString, false); + t.paging = l(t); + t.title = r(t); + t.footer = i(t); + t.controlPanel = s(t); + t.lineNumbers = a(t); + t.ignore = u(t); + t.tooltip = c(t); + t.parse = d(t); + t.allowEditing = f(t); + t.sideMenu = g(t); + t.autoClose = m(t); + t.events = p(t); return t; } t.get = o; @@ -698,7 +757,8 @@ var Binding; e.paging.startPage = Default.getNumberMinimum(e.paging.startPage, 1, 1); e.paging.synchronizeScrolling = Default.getBoolean(e.paging.synchronizeScrolling, false); e.paging.allowColumnReordering = Default.getBoolean(e.paging.allowColumnReordering, true); - return e; + e.paging.allowComparisons = Default.getBoolean(e.paging.allowComparisons, false); + return e.paging; } function r(e) { e.title = Default.getObject(e.title, {}); @@ -707,7 +767,7 @@ var Binding; e.title.showCopyButton = Default.getBoolean(e.title.showCopyButton, true); e.title.enableFullScreenToggling = Default.getBoolean(e.title.enableFullScreenToggling, true); e.title.showFullScreenButton = Default.getBoolean(e.title.showFullScreenButton, true); - return e; + return e.title; } function i(e) { e.footer = Default.getObject(e.footer, {}); @@ -717,9 +777,9 @@ var Binding; e.footer.showSizes = Default.getBoolean(e.footer.showSizes, true); e.footer.showPageOf = Default.getBoolean(e.footer.showPageOf, true); e.footer.statusResetDelay = Default.getNumber(e.footer.statusResetDelay, 5e3); - return e; + return e.footer; } - function a(e) { + function s(e) { e.controlPanel = Default.getObject(e.controlPanel, {}); e.controlPanel.enabled = Default.getBoolean(e.controlPanel.enabled, true); e.controlPanel.showCopyButton = Default.getBoolean(e.controlPanel.showCopyButton, true); @@ -728,9 +788,16 @@ var Binding; e.controlPanel.showEditButton = Default.getBoolean(e.controlPanel.showEditButton, true); e.controlPanel.showCloseOpenAllButtons = Default.getBoolean(e.controlPanel.showCloseOpenAllButtons, true); e.controlPanel.showSwitchToPagesButton = Default.getBoolean(e.controlPanel.showSwitchToPagesButton, true); - return e; + return e.controlPanel; } - function s(e) { + function a(e) { + e.lineNumbers = Default.getObject(e.lineNumbers, {}); + e.lineNumbers.enabled = Default.getBoolean(e.lineNumbers.enabled, true); + e.lineNumbers.padNumbers = Default.getBoolean(e.lineNumbers.padNumbers, false); + e.lineNumbers.addDots = Default.getBoolean(e.lineNumbers.addDots, true); + return e.lineNumbers; + } + function u(e) { e.ignore = Default.getObject(e.ignore, {}); e.ignore.nullValues = Default.getBoolean(e.ignore.nullValues, false); e.ignore.functionValues = Default.getBoolean(e.ignore.functionValues, false); @@ -756,22 +823,23 @@ var Binding; e.ignore.emailValues = Default.getBoolean(e.ignore.emailValues, false); e.ignore.htmlValues = Default.getBoolean(e.ignore.htmlValues, false); e.ignore.lambdaValues = Default.getBoolean(e.ignore.lambdaValues, false); - return e; + return e.ignore; } - function u(e) { + function c(e) { e.tooltip = Default.getObject(e.tooltip, {}); e.tooltip.delay = Default.getNumber(e.tooltip.delay, 750); e.tooltip.offset = Default.getNumber(e.tooltip.offset, 0); - return e; + return e.tooltip; } - function c(e) { + function d(e) { e.parse = Default.getObject(e.parse, {}); e.parse.stringsToDates = Default.getBoolean(e.parse.stringsToDates, false); e.parse.stringsToBooleans = Default.getBoolean(e.parse.stringsToBooleans, false); e.parse.stringsToNumbers = Default.getBoolean(e.parse.stringsToNumbers, false); - return e; + e.parse.stringsToSymbols = Default.getBoolean(e.parse.stringsToSymbols, false); + return e.parse; } - function d(e) { + function f(e) { let t = Default.getBoolean(e.allowEditing, true); e.allowEditing = Default.getObject(e.allowEditing, {}); e.allowEditing.booleanValues = Default.getBoolean(e.allowEditing.booleanValues, t); @@ -789,9 +857,16 @@ var Binding; e.allowEditing.imageValues = Default.getBoolean(e.allowEditing.imageValues, t); e.allowEditing.propertyNames = Default.getBoolean(e.allowEditing.propertyNames, t); e.allowEditing.bulk = Default.getBoolean(e.allowEditing.bulk, t); - return e; + const n = e.allowEditing; + for (const t in n) { + if (n.hasOwnProperty(t) && !n[t]) { + e.allowEditing.bulk = false; + break; + } + } + return e.allowEditing; } - function f(e) { + function g(e) { e.sideMenu = Default.getObject(e.sideMenu, {}); e.sideMenu.enabled = Default.getBoolean(e.sideMenu.enabled, true); e.sideMenu.showImportButton = Default.getBoolean(e.sideMenu.showImportButton, true); @@ -799,18 +874,18 @@ var Binding; e.sideMenu.titleText = Default.getAnyString(e.sideMenu.titleText, e.title.text); e.sideMenu.showAvailableDataTypeCounts = Default.getBoolean(e.sideMenu.showAvailableDataTypeCounts, true); e.sideMenu.showOnlyDataTypesAvailable = Default.getBoolean(e.sideMenu.showOnlyDataTypesAvailable, false); - return e; + return e.sideMenu; } - function g(e) { + function m(e) { e.autoClose = Default.getObject(e.autoClose, {}); e.autoClose.objectSize = Default.getNumber(e.autoClose.objectSize, 0); e.autoClose.arraySize = Default.getNumber(e.autoClose.arraySize, 0); e.autoClose.mapSize = Default.getNumber(e.autoClose.mapSize, 0); e.autoClose.setSize = Default.getNumber(e.autoClose.setSize, 0); e.autoClose.htmlSize = Default.getNumber(e.autoClose.htmlSize, 0); - return e; + return e.autoClose; } - function m(e) { + function p(e) { e.events = Default.getObject(e.events, {}); e.events.onBeforeRender = Default.getFunction(e.events.onBeforeRender, null); e.events.onRenderComplete = Default.getFunction(e.events.onRenderComplete, null); @@ -843,7 +918,7 @@ var Binding; e.events.onLambdaRender = Default.getFunction(e.events.onLambdaRender, null); e.events.onCopy = Default.getFunction(e.events.onCopy, null); e.events.onFullScreenChange = Default.getFunction(e.events.onFullScreenChange, null); - return e; + return e.events; } })(t = e.Options || (e.Options = {})); })(Binding || (Binding = {})); @@ -854,10 +929,10 @@ var Config; let t; (e => { function t(e = null) { - let t = Default.getObject(e, {}); + const t = Default.getObject(e, {}); t.safeMode = Default.getBoolean(t.safeMode, true); t.domElementTypes = Default.getStringOrArray(t.domElementTypes, [ "*" ]); - t = n(t); + t.text = n(t); return t; } e.get = t; @@ -947,7 +1022,7 @@ var Config; if (Is.invalidOptionArray(e.text.monthNamesAbbreviated, 12)) { e.text.monthNamesAbbreviated = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; } - return e; + return e.text; } })(t = e.Options || (e.Options = {})); })(Config || (Config = {})); @@ -977,8 +1052,8 @@ var ToolTip; } e.renderControl = t; function n(e, t = true) { - let n = t ? window.addEventListener : window.removeEventListener; - let o = t ? document.addEventListener : document.removeEventListener; + const n = t ? window.addEventListener : window.removeEventListener; + const o = t ? document.addEventListener : document.removeEventListener; n("mousemove", (() => r(e))); o("scroll", (() => r(e))); } @@ -1055,88 +1130,100 @@ var Arr; e.splice(n, 0, e.splice(t, 1)[0]); } e.moveIndex = l; + function r(e) { + let t = []; + const n = e.length; + for (let o = 0; o < n; o++) { + const n = e[o]; + if (Is.defined(n)) { + t.push(n); + } + } + return t; + } + e.removeNullOrUndefinedEntries = r; })(Arr || (Arr = {})); var Size; (e => { - function t(e) { - let t = null; - const n = o(e); - if (n > 0) { - const e = Math.floor(Math.log(n) / Math.log(1024)); - return `${Convert2.numberToFloatWithDecimalPlaces(n / Math.pow(1024, e), 2)} ${" KMGTP".charAt(e)}B`; + function t(e, t) { + let n = null; + const l = o(e, t); + if (l > 0) { + const e = Math.floor(Math.log(l) / Math.log(1024)); + return `${Convert2.numberToFloatWithDecimalPlaces(l / Math.pow(1024, e), 2)} ${" KMGTP".charAt(e)}B`; } - return t; + return n; } e.of = t; - function n(t) { - let n = 0; - if (Is.defined(t)) { - if (Is.definedDate(t)) { - n = t.toString().length; - } else if (Is.definedImage(t)) { - n = t.src.length; - } else if (Is.definedRegExp(t)) { - n = t.source.length; - } else if (Is.definedSet(t)) { - n = e.length(Convert2.setToArray(t)); - } else if (Is.definedMap(t)) { - n = e.length(Convert2.mapToObject(t)); - } else if (Is.definedHtml(t)) { - n = e.length(Convert2.htmlToObject(t)); - } else if (Is.definedArray(t)) { - n = t.length; - } else if (Is.definedObject(t)) { - for (const e in t) { - if (t.hasOwnProperty(e)) { - n++; + function n(e, t) { + let o = 0; + if (Is.defined(e)) { + if (Is.definedDate(e)) { + o = e.toString().length; + } else if (Is.definedImage(e)) { + o = e.src.length; + } else if (Is.definedRegExp(e)) { + o = e.source.length; + } else if (Is.definedSet(e)) { + o = n(Convert2.setToArray(e), t); + } else if (Is.definedMap(e)) { + o = n(Convert2.mapToObject(e), t); + } else if (Is.definedHtml(e)) { + o = n(Convert2.htmlToObject(e, t), t); + } else if (Is.definedArray(e)) { + o = e.length; + } else if (Is.definedObject(e)) { + for (const t in e) { + if (e.hasOwnProperty(t)) { + o++; } } } else { - if (!Is.definedFunction(t) && !Is.definedSymbol(t)) { - n = t.toString().length; + if (!Is.definedFunction(e) && !Is.definedSymbol(e)) { + o = e.toString().length; } } } - return n; + return o; } e.length = n; - function o(e) { - let t = 0; + function o(e, t) { + let n = 0; if (Is.defined(e)) { if (Is.definedNumber(e)) { - t = 8; + n = 8; } else if (Is.definedString(e)) { - t = e.length * 2; + n = e.length * 2; } else if (Is.definedBoolean(e)) { - t = 4; + n = 4; } else if (Is.definedBigInt(e)) { - t = o(e.toString()); + n = o(e.toString(), t); } else if (Is.definedRegExp(e)) { - t = o(e.toString()); + n = o(e.toString(), t); } else if (Is.definedDate(e)) { - t = o(e.toString()); + n = o(e.toString(), t); } else if (Is.definedSet(e)) { - t = o(Convert2.setToArray(e)); + n = o(Convert2.setToArray(e), t); } else if (Is.definedMap(e)) { - t = o(Convert2.mapToObject(e)); + n = o(Convert2.mapToObject(e), t); } else if (Is.definedHtml(e)) { - t = o(Convert2.htmlToObject(e)); + n = o(Convert2.htmlToObject(e, t), t); } else if (Is.definedArray(e)) { - const n = e.length; - for (let l = 0; l < n; l++) { - t += o(e[l]); + const l = e.length; + for (let r = 0; r < l; r++) { + n += o(e[r], t); } } else if (Is.definedObject(e)) { - for (const n in e) { - if (e.hasOwnProperty(n)) { - t += o(n) + o(e[n]); + for (const l in e) { + if (e.hasOwnProperty(l)) { + n += o(l, t) + o(e[l], t); } } } } - return t; + return n; } })(Size || (Size = {})); @@ -1163,13 +1250,64 @@ var Obj; return n; } e.getPropertyNames = t; + function n(e) { + const t = {}; + t[crypto.randomUUID()] = e; + return t; + } + e.createFromValue = n; })(Obj || (Obj = {})); +var ContextMenu; + +(e => { + function t(e) { + if (!Is.defined(e._currentView.contextMenu)) { + e._currentView.contextMenu = DomElement.create(document.body, "div", "jsontree-js-context-menu"); + e._currentView.contextMenu.style.display = "none"; + n(e); + } + } + e.renderControl = t; + function n(e, t = true) { + const n = t ? window.addEventListener : window.removeEventListener; + const o = t ? document.addEventListener : document.removeEventListener; + n("contextmenu", (() => l(e))); + n("click", (() => l(e))); + o("scroll", (() => l(e))); + } + e.assignToEvents = n; + function o(e, t) { + DomElement.cancelBubble(e); + DomElement.showElementAtMousePosition(e, t._currentView.contextMenu, 0); + } + e.show = o; + function l(e) { + if (Is.defined(e._currentView.contextMenu) && e._currentView.contextMenu.style.display !== "none") { + e._currentView.contextMenu.style.display = "none"; + } + } + e.hide = l; + function r(e) { + if (Is.defined(e._currentView.contextMenu)) { + e._currentView.contextMenu.parentNode.removeChild(e._currentView.contextMenu); + } + } + e.remove = r; + function i(e, t, n) { + const o = DomElement.create(e._currentView.contextMenu, "div", "context-menu-item"); + DomElement.createWithHTML(o, "span", "symbol", t); + DomElement.createWithHTML(o, "span", "text", n); + return o; + } + e.addMenuItem = i; +})(ContextMenu || (ContextMenu = {})); + (() => { let e = {}; let t = {}; let n = 0; - let o = (t, n) => Convert2.stringifyJson(t, n, e); + let o = false; function l() { DomElement.find(e.domElementTypes, (t => { let n = true; @@ -1198,6 +1336,7 @@ var Obj; function r(e) { Trigger.customEvent(e.events.onBeforeRender, e._currentView.element); ToolTip.renderControl(e); + ContextMenu.renderControl(e); if (!Is.definedString(e._currentView.element.id)) { e._currentView.element.id = crypto.randomUUID(); e._currentView.idSet = true; @@ -1213,101 +1352,122 @@ var Obj; n++; } i(e); - ce(e); + we(e); Trigger.customEvent(e.events.onRenderComplete, e._currentView.element); } function i(n, o = false) { let l = t[n._currentView.element.id].data; if (Is.definedUrl(l)) { Default.getObjectFromUrl(l, e, (e => { - a(n, o, e); + s(n, o, e); })); } else { - a(n, o, l); + s(n, o, l); } } - function a(e, t, n) { + function s(e, t, n) { const o = c(e); ToolTip.hide(e); + ContextMenu.hide(e); + e.data = n; e._currentView.element.innerHTML = ""; e._currentView.editMode = false; e._currentView.contentPanelsIndex = 0; e._currentView.sideMenuChanged = false; - e._currentView.contentColumns = []; + e._currentView.currentContentColumns = []; e._currentView.dataTypeCounts = {}; - e._currentView.contentControlButtons = []; - D(e, n); + v(e, n); const l = DomElement.create(e._currentView.element, "div", "contents"); if (t) { l.classList.add("page-switch"); } if (e.paging.enabled && Is.definedArray(n)) { - const t = Is.defined(n[e._currentView.dataArrayCurrentIndex + 1]); - for (let r = 0; r < e.paging.columnsPerPage; r++) { - const i = r + e._currentView.dataArrayCurrentIndex; - const a = n[i]; - e._currentView.contentPanelsIndex = 0; - e._currentView.contentPanelsDataIndex = i; - if (Is.defined(a)) { - s(a, l, e, i, o[r], e.paging.columnsPerPage, t); + const t = Is.defined(n[e._currentView.currentDataArrayPageIndex + 1]); + const r = Arr.removeNullOrUndefinedEntries(n); + e.data = r; + for (let n = 0; n < e.paging.columnsPerPage; n++) { + const i = n + e._currentView.currentDataArrayPageIndex; + if (i <= r.length - 1) { + const s = r[i]; + e._currentView.contentPanelsIndex = 0; + e._currentView.contentPanelsDataIndex = i; + a(s, l, e, i, o[n], e.paging.columnsPerPage, t); } } } else { e._currentView.contentPanelsIndex = 0; e._currentView.contentPanelsDataIndex = 0; - s(n, l, e, null, o[0], 1, false); + a(n, l, e, null, o[0], 1, false); } - C(e); - P(e); - oe(e); + _(e); + N(e); + fe(e); e._currentView.initialized = true; } - function s(t, n, o, l, r, i, a) { - const s = DomElement.create(n, "div", i > 1 ? "contents-column-multiple" : "contents-column"); + function a(t, n, o, l, r, i, s) { + const a = DomElement.create(n, "div", i > 1 ? "contents-column-multiple" : "contents-column"); if (!Is.defined(t)) { - const t = DomElement.create(s, "div", "no-json"); + const t = DomElement.create(a, "div", "no-json"); DomElement.createWithHTML(t, "span", "no-json-text", e.text.noJsonToViewText); if (o.sideMenu.showImportButton) { const n = DomElement.createWithHTML(t, "span", "no-json-import-text", `${e.text.importButtonText}${e.text.ellipsisText}`); - n.onclick = () => _(o); + n.onclick = () => A(o); } } else { - s.onscroll = () => d(s, o, l); + a.onscroll = () => d(a, o, l); if (o.paging.enabled && Is.definedNumber(l)) { - s.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME, l.toString()); + a.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME, l.toString()); } - if (a && o.paging.allowColumnReordering && o.paging.columnsPerPage > 1 && o.allowEditing.bulk) { - s.setAttribute("draggable", "true"); - s.ondragstart = () => f(s, o, l); - s.ondragend = () => g(s, o); - s.ondragover = e => e.preventDefault(); - s.ondrop = () => m(o, l); + if (s && o.paging.allowColumnReordering && o.paging.columnsPerPage > 1 && o.allowEditing.bulk) { + a.setAttribute("draggable", "true"); + a.ondragstart = () => f(a, o, l); + a.ondragend = () => g(a, o); + a.ondragover = e => e.preventDefault(); + a.ondrop = () => m(o, l); } - o._currentView.contentColumns.push(s); + let e = a; + let n = null; + let i = null; + if (o.lineNumbers.enabled) { + n = DomElement.create(a, "div", "contents-column-line-numbers"); + i = DomElement.create(a, "div", "contents-column-lines"); + e = i; + } + const c = { + column: a, + lineNumbers: n, + lines: i, + controlButtons: null + }; + o._currentView.currentContentColumns.push(c); + o._currentView.currentColumnBuildingIndex = o._currentView.currentContentColumns.length - 1; if (Is.definedArray(t)) { - z(s, o, t, "array"); + z(e, o, t, "array"); } else if (Is.definedSet(t)) { - z(s, o, Convert2.setToArray(t), "set"); + z(e, o, Convert2.setToArray(t), "set"); } else if (Is.definedHtml(t)) { - $(s, o, Convert2.htmlToObject(t, o.showCssStylesForHtmlObjects), l, "html"); + J(e, o, Convert2.htmlToObject(t, o.showCssStylesForHtmlObjects), l, "html"); } else if (Is.definedMap(t)) { - $(s, o, Convert2.mapToObject(t), l, "map"); + J(e, o, Convert2.mapToObject(t), l, "map"); } else if (Is.definedObject(t)) { - $(s, o, t, l, "object"); + J(e, o, t, l, "object"); + } else { + J(e, o, Obj.createFromValue(t), l, "object"); } - T(o, s, t, l); + x(o._currentView.currentColumnBuildingIndex, o); + T(o, a, t, l); if (Is.defined(r)) { - s.scrollTop = r; + a.scrollTop = r; } o._currentView.titleBarButtons.style.display = "block"; if (o.allowEditing.bulk) { - s.ondblclick = e => { - u(e, o, t, s, l); + a.ondblclick = e => { + u(e, o, t, a, l); }; } } } - function u(t, n, l, r, a) { + function u(t, n, o, l, r) { let s = null; if (Is.defined(t)) { DomElement.cancelBubble(t); @@ -1315,43 +1475,43 @@ var Obj; clearTimeout(n._currentView.valueClickTimerId); n._currentView.valueClickTimerId = 0; n._currentView.editMode = true; - r.classList.add("editable"); - r.setAttribute("contenteditable", "true"); - r.setAttribute("draggable", "false"); - r.innerText = JSON.stringify(l, o, n.jsonIndentSpaces); - r.focus(); - DomElement.selectAllText(r); - r.onblur = () => { + l.classList.add("editable"); + l.setAttribute("contenteditable", "true"); + l.setAttribute("draggable", "false"); + l.innerText = JSON.stringify(Convert2.toJsonStringifyClone(o, e, n), n.events.onCopyJsonReplacer, n.jsonIndentSpaces); + l.focus(); + DomElement.selectAllText(l); + l.onblur = () => { i(n, false); if (Is.definedString(s)) { - W(n, s); + $(n, s); } }; - r.onkeydown = t => { + l.onkeydown = t => { if (t.code === "Escape") { t.preventDefault(); - r.setAttribute("contenteditable", "false"); - } else if (fe(t) && t.code === "Enter") { + l.setAttribute("contenteditable", "false"); + } else if (ve(t) && t.code === "Enter") { t.preventDefault(); - const o = r.innerText; - const l = Convert2.jsonStringToObject(o, e); - if (l.parsed) { + const o = l.innerText; + const i = Convert2.jsonStringToObject(o, e); + if (i.parsed) { s = e.text.jsonUpdatedText; if (n.paging.enabled) { - if (Is.defined(l.object)) { - n.data[a] = l.object; + if (Is.defined(i.object)) { + n.data[r] = i.object; } else { - n.data.splice(a, 1); + n.data.splice(r, 1); s = e.text.arrayJsonItemDeleted; - if (a === n._currentView.dataArrayCurrentIndex && n._currentView.dataArrayCurrentIndex > 0) { - n._currentView.dataArrayCurrentIndex -= n.paging.columnsPerPage; + if (r === n._currentView.currentDataArrayPageIndex && n._currentView.currentDataArrayPageIndex > 0) { + n._currentView.currentDataArrayPageIndex -= n.paging.columnsPerPage; } } } else { - n.data = l.object; + n.data = i.object; } } - r.setAttribute("contenteditable", "false"); + l.setAttribute("contenteditable", "false"); } else if (t.code === "Enter") { t.preventDefault(); document.execCommand("insertLineBreak"); @@ -1361,41 +1521,43 @@ var Obj; function c(e) { const t = []; ToolTip.hide(e); + ContextMenu.hide(e); if (e._currentView.editMode || e._currentView.sideMenuChanged) { - const n = e._currentView.contentColumns.length; + const n = e._currentView.currentContentColumns.length; for (let o = 0; o < n; o++) { - t.push(e._currentView.contentColumns[o].scrollTop); + t.push(e._currentView.currentContentColumns[o].column.scrollTop); } } return t; } function d(e, t, n) { ToolTip.hide(t); + ContextMenu.hide(t); const o = e.scrollTop; const l = e.scrollLeft; - const r = t._currentView.contentColumns.length; + const r = t._currentView.currentContentColumns.length; if (t.controlPanel.enabled) { - const e = t._currentView.contentControlButtons[n]; + const e = t._currentView.currentContentColumns[n].controlButtons; if (Is.defined(e)) { - e.style.top = `${t._currentView.contentColumns[n].scrollTop}px`; - e.style.right = `-${t._currentView.contentColumns[n].scrollLeft}px`; + e.style.top = `${t._currentView.currentContentColumns[n].column.scrollTop}px`; + e.style.right = `-${t._currentView.currentContentColumns[n].column.scrollLeft}px`; } } if (t.paging.synchronizeScrolling) { for (let e = 0; e < r; e++) { if (n !== e) { - t._currentView.contentColumns[e].scrollTop = o; - t._currentView.contentColumns[e].scrollLeft = l; + t._currentView.currentContentColumns[e].column.scrollTop = o; + t._currentView.currentContentColumns[e].column.scrollLeft = l; } } } if (t.controlPanel.enabled) { for (let e = 0; e < r; e++) { if (n !== e) { - const n = t._currentView.contentControlButtons[e]; + const n = t._currentView.currentContentColumns[e].controlButtons; if (Is.defined(n)) { - n.style.top = `${t._currentView.contentColumns[e].scrollTop}px`; - n.style.right = `-${t._currentView.contentColumns[e].scrollLeft}px`; + n.style.top = `${t._currentView.currentContentColumns[e].column.scrollTop}px`; + n.style.right = `-${t._currentView.currentContentColumns[e].column.scrollLeft}px`; } } } @@ -1418,25 +1580,64 @@ var Obj; if (n !== o) { const l = t.data[o]; const r = t.data[n]; - let a = t._currentView.contentPanelsOpen[o]; - let s = t._currentView.contentPanelsOpen[n]; - if (!Is.defined(a)) { - a = {}; - } + let s = t._currentView.contentPanelsOpen[o]; + let a = t._currentView.contentPanelsOpen[n]; if (!Is.defined(s)) { s = {}; } + if (!Is.defined(a)) { + a = {}; + } t.data[o] = r; t.data[n] = l; - t._currentView.contentPanelsOpen[o] = s; - t._currentView.contentPanelsOpen[n] = a; - if (t._currentView.dataArrayCurrentIndex + (t.paging.columnsPerPage - 1) < o) { - t._currentView.dataArrayCurrentIndex += t.paging.columnsPerPage; - } else if (o < t._currentView.dataArrayCurrentIndex) { - t._currentView.dataArrayCurrentIndex -= t.paging.columnsPerPage; + t._currentView.contentPanelsOpen[o] = a; + t._currentView.contentPanelsOpen[n] = s; + if (t._currentView.currentDataArrayPageIndex + (t.paging.columnsPerPage - 1) < o) { + t._currentView.currentDataArrayPageIndex += t.paging.columnsPerPage; + } else if (o < t._currentView.currentDataArrayPageIndex) { + t._currentView.currentDataArrayPageIndex -= t.paging.columnsPerPage; } i(t); - W(t, e.text.jsonUpdatedText); + $(t, e.text.jsonUpdatedText); + } + } + function x(e, t) { + const n = t._currentView.currentContentColumns[e]; + if (t.lineNumbers.enabled) { + let e = 1; + let o = 0; + let l = 0; + const r = n.column.querySelectorAll(".object-type-title, .object-type-value-title, .object-type-end"); + const i = r.length; + n.lineNumbers.innerHTML = ""; + for (let s = 0; s < i; s++) { + const a = r[s]; + if (a.offsetHeight > 0) { + let r = DomElement.getOffset(a).top; + if (e === 1) { + o = r; + } + r -= o; + const s = DomElement.create(n.lineNumbers, "div", "contents-column-line-number"); + const u = t.lineNumbers.addDots ? "." : ""; + if (t.lineNumbers.padNumbers) { + s.innerHTML = `${Str.padNumber(e, i.toString().length)}${u}`; + } else { + s.innerHTML = `${e}${u}`; + } + const c = r + a.offsetHeight / 2 - s.offsetHeight / 2; + s.style.top = `${c}px`; + l = Math.max(l, s.offsetWidth); + } + e++; + } + n.lineNumbers.style.height = `${n.lines.offsetHeight}px`; + n.lineNumbers.style.width = `${l}px`; + } else { + if (Is.defined(n.lineNumbers)) { + n.lineNumbers.parentNode.removeChild(n.lineNumbers); + n.lineNumbers = null; + } } } function T(t, n, o, l) { @@ -1469,44 +1670,44 @@ var Obj; } if (i && t.controlPanel.showCopyButton) { const n = DomElement.createWithHTML(r, "button", "copy", e.text.copyButtonSymbolText); - n.onclick = () => h(t, o); + n.onclick = () => D(t, o); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.copyButtonText); } if (i && t.controlPanel.showCloseOpenAllButtons) { const n = DomElement.createWithHTML(r, "button", "open-all", e.text.openAllButtonSymbolText); - n.onclick = () => b(t, l); + n.onclick = () => w(t, l); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.openAllButtonText); const o = DomElement.createWithHTML(r, "button", "close-all", e.text.closeAllButtonSymbolText); - o.onclick = () => w(t, l); + o.onclick = () => y(t, l); o.ondblclick = DomElement.cancelBubble; ToolTip.add(o, t, e.text.closeAllButtonText); } if (t.allowEditing.bulk && t.controlPanel.showRemoveButton) { const n = DomElement.createWithHTML(r, "button", "remove", e.text.removeSymbolButtonText); - n.onclick = () => y(t, l); + n.onclick = () => h(t, l); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.removeButtonText); } if (!t.paging.enabled && Is.definedArray(t.data) && t.data.length > 1 && t.controlPanel.showSwitchToPagesButton) { const n = DomElement.createWithHTML(r, "button", "switch-to-pages", e.text.switchToPagesSymbolText); - n.onclick = () => x(t); + n.onclick = () => b(t); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.switchToPagesText); } if (r.innerHTML !== "") { - t._currentView.contentControlButtons.push(r); + t._currentView.currentContentColumns[t._currentView.currentColumnBuildingIndex].controlButtons = r; n.style.minHeight = `${r.offsetHeight}px`; } else { n.removeChild(r); } } - function x(e) { + function b(e) { e.paging.enabled = true; i(e); } - function b(e, t) { + function w(e, t) { const n = e._currentView.contentPanelsOpen[t]; for (const e in n) { if (n.hasOwnProperty(e)) { @@ -1515,7 +1716,7 @@ var Obj; } i(e); } - function w(e, t) { + function y(e, t) { const n = e._currentView.contentPanelsOpen[t]; for (const e in n) { if (n.hasOwnProperty(e)) { @@ -1524,37 +1725,33 @@ var Obj; } i(e); } - function y(t, n) { + function h(t, n) { if (t.paging.enabled) { t.data.splice(n, 1); - if (n === t._currentView.dataArrayCurrentIndex && t._currentView.dataArrayCurrentIndex > 0) { - t._currentView.dataArrayCurrentIndex -= t.paging.columnsPerPage; + if (n === t._currentView.currentDataArrayPageIndex && t._currentView.currentDataArrayPageIndex > 0) { + t._currentView.currentDataArrayPageIndex -= t.paging.columnsPerPage; } } else { t.data = null; } i(t); - W(t, e.text.arrayJsonItemDeleted); - } - function h(t, n) { - let l = o; - if (Is.definedFunction(t.events.onCopyJsonReplacer)) { - l = t.events.onCopyJsonReplacer; - } - let r = JSON.stringify(n, l, t.jsonIndentSpaces); - navigator.clipboard.writeText(r); - W(t, e.text.copiedText); - Trigger.customEvent(t.events.onCopy, t._currentView.element, r); + $(t, e.text.arrayJsonItemDeleted); } function D(t, n) { + const o = JSON.stringify(Convert2.toJsonStringifyClone(n, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); + navigator.clipboard.writeText(o); + $(t, e.text.copiedText); + Trigger.customEvent(t.events.onCopy, t._currentView.element, o); + } + function v(t, n) { if (Is.definedString(t.title.text) || t.title.showCloseOpenAllButtons || t.title.showCopyButton || t.sideMenu.enabled || t.paging.enabled || t.title.enableFullScreenToggling) { const o = DomElement.create(t._currentView.element, "div", "title-bar"); if (t.title.enableFullScreenToggling) { - o.ondblclick = () => v(t); + o.ondblclick = () => V(t); } if (t.sideMenu.enabled) { const n = DomElement.createWithHTML(o, "button", "side-menu", e.text.sideMenuButtonSymbolText); - n.onclick = () => A(t); + n.onclick = () => M(t); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.sideMenuButtonText); } @@ -1564,13 +1761,13 @@ var Obj; } if (t.title.showCopyButton && Is.defined(n)) { const o = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "copy-all", e.text.copyButtonSymbolText); - o.onclick = () => V(t, n); + o.onclick = () => S(t, n); o.ondblclick = DomElement.cancelBubble; ToolTip.add(o, t, e.text.copyAllButtonText); } if (t.title.showCloseOpenAllButtons && Is.defined(n)) { const n = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "open-all", e.text.openAllButtonSymbolText); - n.onclick = () => S(t); + n.onclick = () => B(t); n.ondblclick = DomElement.cancelBubble; ToolTip.add(n, t, e.text.openAllButtonText); const o = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "close-all", e.text.closeAllButtonSymbolText); @@ -1582,15 +1779,15 @@ var Obj; t._currentView.backButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "back", e.text.backButtonSymbolText); t._currentView.backButton.ondblclick = DomElement.cancelBubble; ToolTip.add(t._currentView.backButton, t, e.text.backButtonText); - if (t._currentView.dataArrayCurrentIndex > 0) { - t._currentView.backButton.onclick = () => B(t); + if (t._currentView.currentDataArrayPageIndex > 0) { + t._currentView.backButton.onclick = () => C(t); } else { t._currentView.backButton.disabled = true; } t._currentView.nextButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "next", e.text.nextButtonSymbolText); t._currentView.nextButton.ondblclick = DomElement.cancelBubble; ToolTip.add(t._currentView.nextButton, t, e.text.nextButtonText); - if (t._currentView.dataArrayCurrentIndex + (t.paging.columnsPerPage - 1) < n.length - 1) { + if (t._currentView.currentDataArrayPageIndex + (t.paging.columnsPerPage - 1) < n.length - 1) { t._currentView.nextButton.onclick = () => I(t); } else { t._currentView.nextButton.disabled = true; @@ -1603,13 +1800,13 @@ var Obj; if (t.title.enableFullScreenToggling && t.title.showFullScreenButton) { const n = !t._currentView.fullScreenOn ? e.text.fullScreenOnButtonSymbolText : e.text.fullScreenOffButtonSymbolText; t._currentView.toggleFullScreenButton = DomElement.createWithHTML(t._currentView.titleBarButtons, "button", "toggle-full-screen", n); - t._currentView.toggleFullScreenButton.onclick = () => v(t); + t._currentView.toggleFullScreenButton.onclick = () => V(t); t._currentView.toggleFullScreenButton.ondblclick = DomElement.cancelBubble; ToolTip.add(t._currentView.toggleFullScreenButton, t, e.text.fullScreenButtonText); } } } - function v(t) { + function V(t) { if (t.title.enableFullScreenToggling) { if (t._currentView.element.classList.contains("full-screen")) { t._currentView.element.classList.remove("full-screen"); @@ -1621,21 +1818,18 @@ var Obj; t._currentView.fullScreenOn = true; } ToolTip.hide(t); - k(t); + ContextMenu.hide(t); + F(t); Trigger.customEvent(t.events.onFullScreenChange, t._currentView.element, t._currentView.element.classList.contains("full-screen")); } } - function V(t, n) { - let l = o; - if (Is.definedFunction(t.events.onCopyJsonReplacer)) { - l = t.events.onCopyJsonReplacer; - } - let r = JSON.stringify(n, l, t.jsonIndentSpaces); - navigator.clipboard.writeText(r); - W(t, e.text.copiedText); - Trigger.customEvent(t.events.onCopyAll, t._currentView.element, r); + function S(t, n) { + const o = JSON.stringify(Convert2.toJsonStringifyClone(n, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); + navigator.clipboard.writeText(o); + $(t, e.text.copiedText); + Trigger.customEvent(t.events.onCopyAll, t._currentView.element, o); } - function S(e) { + function B(e) { e.showAllAsClosed = false; e._currentView.contentPanelsOpen = {}; i(e); @@ -1647,21 +1841,21 @@ var Obj; i(e); Trigger.customEvent(e.events.onCloseAll, e._currentView.element); } - function B(e) { + function C(e) { if (e._currentView.backButton !== null && !e._currentView.backButton.disabled) { - e._currentView.dataArrayCurrentIndex -= e.paging.columnsPerPage; + e._currentView.currentDataArrayPageIndex -= e.paging.columnsPerPage; i(e, true); Trigger.customEvent(e.events.onBackPage, e._currentView.element); } } function I(e) { if (e._currentView.nextButton !== null && !e._currentView.nextButton.disabled) { - e._currentView.dataArrayCurrentIndex += e.paging.columnsPerPage; + e._currentView.currentDataArrayPageIndex += e.paging.columnsPerPage; i(e, true); Trigger.customEvent(e.events.onNextPage, e._currentView.element); } } - function C(t) { + function _(t) { if (t.sideMenu.enabled) { t._currentView.disabledBackground = DomElement.create(t._currentView.element, "div", "side-menu-disabled-background"); t._currentView.disabledBackground.onclick = () => O(t); @@ -1674,12 +1868,12 @@ var Obj; const o = DomElement.create(n, "div", "side-menu-title-controls"); if (t.sideMenu.showExportButton && Is.definedObject(t.data)) { const n = DomElement.createWithHTML(o, "button", "export", e.text.exportButtonSymbolText); - n.onclick = () => se(t); + n.onclick = () => Te(t); ToolTip.add(n, t, e.text.exportButtonText); } if (t.sideMenu.showImportButton) { const n = DomElement.createWithHTML(o, "button", "import", e.text.importButtonSymbolText); - n.onclick = () => _(t); + n.onclick = () => A(t); ToolTip.add(n, t, e.text.importButtonText); } const l = DomElement.createWithHTML(o, "button", "close", e.text.closeButtonSymbolText); @@ -1687,63 +1881,68 @@ var Obj; ToolTip.add(l, t, e.text.closeButtonText); if (Is.definedObject(t.data)) { const e = DomElement.create(t._currentView.sideMenu, "div", "side-menu-contents"); - M(e, t); + L(e, t); } } } - function _(e) { + function A(e) { const t = DomElement.createWithNoContainer("input"); t.type = "file"; t.accept = ".json"; t.multiple = true; O(e); - t.onchange = () => ie(t.files, e); + t.onchange = () => pe(t.files, e); t.click(); } - function A(e) { + function M(e) { if (!e._currentView.sideMenu.classList.contains("side-menu-open")) { e._currentView.sideMenu.classList.add("side-menu-open"); e._currentView.disabledBackground.style.display = "block"; ToolTip.hide(e); + ContextMenu.hide(e); } } function O(t) { + let n = false; if (t._currentView.sideMenu.classList.contains("side-menu-open")) { t._currentView.sideMenu.classList.remove("side-menu-open"); t._currentView.disabledBackground.style.display = "none"; ToolTip.hide(t); + ContextMenu.hide(t); if (t._currentView.sideMenuChanged) { setTimeout((() => { i(t); - W(t, e.text.ignoreDataTypesUpdated); + $(t, e.text.ignoreDataTypesUpdated); }), 500); } + n = true; } + return n; } - function M(t, n) { + function L(t, n) { const o = []; const l = DomElement.create(t, "div", "settings-panel"); const r = DomElement.create(l, "div", "settings-panel-title-bar"); DomElement.createWithHTML(r, "div", "settings-panel-title-text", `${e.text.showDataTypesText}:`); const i = DomElement.create(r, "div", "settings-panel-control-buttons"); - const a = DomElement.create(i, "div", "settings-panel-control-button settings-panel-fill"); - const s = DomElement.create(i, "div", "settings-panel-control-button"); - a.onclick = () => L(n, o, true); - s.onclick = () => L(n, o, false); - ToolTip.add(a, n, e.text.selectAllText); - ToolTip.add(s, n, e.text.selectNoneText); + const s = DomElement.create(i, "div", "settings-panel-control-button settings-panel-fill"); + const a = DomElement.create(i, "div", "settings-panel-control-button"); + s.onclick = () => j(n, o, true); + a.onclick = () => j(n, o, false); + ToolTip.add(s, n, e.text.selectAllText); + ToolTip.add(a, n, e.text.selectNoneText); const u = DomElement.create(l, "div", "settings-panel-contents"); const c = Object.keys(DataType); const d = n.ignore; c.sort(); c.forEach(((e, t) => { - const l = j(u, e, n, !d[`${e}Values`]); + const l = P(u, e, n, !d[`${e}Values`]); if (Is.defined(l)) { o.push(l); } })); } - function L(e, t, n) { + function j(e, t, n) { const o = t.length; const l = e.ignore; for (let e = 0; e < o; e++) { @@ -1752,18 +1951,18 @@ var Obj; } e._currentView.sideMenuChanged = true; } - function j(e, t, n, o) { + function P(e, t, n, o) { let l = null; const r = n._currentView.dataTypeCounts[t]; if (!n.sideMenu.showOnlyDataTypesAvailable || r > 0) { let i = Str.capitalizeFirstLetter(t); - let a = ""; + let s = ""; if (n.sideMenu.showAvailableDataTypeCounts) { if (n._currentView.dataTypeCounts.hasOwnProperty(t)) { - a = `(${r})`; + s = `(${r})`; } } - l = DomElement.createCheckBox(e, i, t, o, n.showValueColors ? t : "", a); + l = DomElement.createCheckBox(e, i, t, o, n.showValueColors ? t : "", s); l.onchange = () => { const e = n.ignore; e[`${t}Values`] = !l.checked; @@ -1773,10 +1972,10 @@ var Obj; } return l; } - function P(t) { + function N(t) { if (t.footer.enabled && Is.defined(t.data)) { t._currentView.footer = DomElement.create(t._currentView.element, "div", "footer-bar"); - k(t); + F(t); t._currentView.footerStatusText = DomElement.createWithHTML(t._currentView.footer, "div", "status-text", e.text.waitingText); if (t.footer.showDataTypes) { t._currentView.footerDataTypeText = DomElement.create(t._currentView.footer, "div", "status-value-data-type"); @@ -1792,13 +1991,13 @@ var Obj; } if (t.paging.enabled && Is.definedArray(t.data) && t.data.length > 1 && t.footer.showPageOf) { t._currentView.footerPageText = DomElement.create(t._currentView.footer, "div", "status-page-index"); - N(t); + k(t); } } } - function N(t) { + function k(t) { if (t.paging.enabled) { - const n = Math.ceil((t._currentView.dataArrayCurrentIndex + 1) / t.paging.columnsPerPage); + const n = Math.ceil((t._currentView.currentDataArrayPageIndex + 1) / t.paging.columnsPerPage); const o = Math.ceil(t.data.length / t.paging.columnsPerPage); const l = DomElement.createWithHTML(null, "span", "status-count", n.toFixed()).outerHTML; const r = DomElement.createWithHTML(null, "span", "status-count", o.toFixed()).outerHTML; @@ -1806,12 +2005,12 @@ var Obj; t._currentView.footerPageText.innerHTML = i; } } - function k(e) { + function F(e) { if (Is.defined(e._currentView.footer)) { e._currentView.footer.style.display = e._currentView.fullScreenOn ? "flex" : "none"; } } - function F(t, n, o) { + function R(t, n, o) { if (t.footer.enabled && t.footer.showDataTypes) { o.addEventListener("mousemove", (() => { const o = DomElement.createWithHTML(null, "span", "status-count", n).outerHTML; @@ -1825,9 +2024,9 @@ var Obj; })); } } - function R(t, n, o) { + function H(t, n, o) { if (t.footer.enabled && t.footer.showLengths) { - const l = Size.length(n); + const l = Size.length(n, t.showCssStylesForHtmlObjects); if (l > 0) { o.addEventListener("mousemove", (() => { const n = DomElement.createWithHTML(null, "span", "status-count", l.toString()).outerHTML; @@ -1842,9 +2041,9 @@ var Obj; } } } - function H(t, n, o) { + function W(t, n, o) { if (t.footer.enabled && t.footer.showSizes) { - const l = Size.of(n); + const l = Size.of(n, t.showCssStylesForHtmlObjects); if (Is.definedString(l)) { o.addEventListener("mousemove", (() => { const n = DomElement.createWithHTML(null, "span", "status-count", l.toString()).outerHTML; @@ -1859,7 +2058,7 @@ var Obj; } } } - function W(t, n) { + function $(t, n) { if (t.footer.enabled) { t._currentView.footerStatusText.innerHTML = n; clearTimeout(t._currentView.footerStatusTextTimerId); @@ -1868,22 +2067,22 @@ var Obj; }), t.footer.statusResetDelay); } } - function $(t, n, o, l, r) { + function J(t, n, o, l, r) { const i = Obj.getPropertyNames(o, n); - const a = i.length; - if (a !== 0 || !n.ignore.emptyObjects) { - let s = null; + const s = i.length; + if (s !== 0 || !n.ignore.emptyObjects) { + let a = null; if (r === "object") { - s = e.text.objectText; + a = e.text.objectText; } else if (r === "map") { - s = e.text.mapText; + a = e.text.mapText; } else if (r === "html") { - s = e.text.htmlText; + a = e.text.htmlText; } const u = DomElement.create(t, "div", "object-type-title"); const c = DomElement.create(t, "div", "object-type-contents last-item"); const d = n.showArrowToggles ? DomElement.create(u, "div", "down-arrow") : null; - const f = DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} main-title` : "main-title", s); + const f = DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} main-title` : "main-title", a); let g = null; let m = null; G(c, n); @@ -1895,21 +2094,24 @@ var Obj; DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} data-array-index` : "data-array-index", t, f); DomElement.createWithHTML(u, "span", "split", e.text.propertyColonCharacter, f); } - if (n.showObjectSizes && a > 0) { + if (n.showObjectSizes && s > 0) { if (r === "html") { - DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `<${a}>`); + DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `<${s}>`); } else { - DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `{${a}}`); + DomElement.createWithHTML(u, "span", n.showValueColors ? `${r} size` : "size", `{${s}}`); } } if (n.showOpeningClosingCurlyBraces) { g = DomElement.createWithHTML(u, "span", "opening-symbol", "{"); + } + if (n.showClosedObjectCurlyBraces) { m = DomElement.createWithHTML(u, "span", "closed-symbols", "{ ... }"); } - J(d, null, c, n, o, i, g, m, false, true, "", r, r !== "object"); - q(n, f, o, r, false); + U(d, null, c, n, o, i, g, m, false, true, "", r, r !== "object"); + te(n, f, o, r, false); + W(n, o, f); H(n, o, f); - R(n, o, f); + ae(n, u, false, o, o, null, false, null); } } function z(t, n, o, l) { @@ -1920,28 +2122,31 @@ var Obj; r = e.text.arrayText; } const i = DomElement.create(t, "div", "object-type-title"); - const a = DomElement.create(t, "div", "object-type-contents last-item"); - const s = n.showArrowToggles ? DomElement.create(i, "div", "down-arrow") : null; + const s = DomElement.create(t, "div", "object-type-contents last-item"); + const a = n.showArrowToggles ? DomElement.create(i, "div", "down-arrow") : null; const u = DomElement.createWithHTML(i, "span", n.showValueColors ? `${l} main-title` : "main-title", r); let c = null; let d = null; - G(a, n); + G(s, n); if (n.showObjectSizes) { DomElement.createWithHTML(i, "span", n.showValueColors ? `${l} size` : "size", `[${o.length}]`); } - if (n.showOpeningClosingCurlyBraces) { + if (n.showOpeningClosingSquaredBrackets) { c = DomElement.createWithHTML(i, "span", "opening-symbol", "["); + } + if (n.showClosedArraySquaredBrackets) { d = DomElement.createWithHTML(i, "span", "closed-symbols", "[ ... ]"); } - U(s, null, a, n, o, c, d, false, true, "", l, l !== "array"); - q(n, u, o, l, false); + q(a, null, s, n, o, c, d, false, true, "", l, l !== "array"); + te(n, u, o, l, false); + W(n, o, u); H(n, o, u); - R(n, o, u); + ae(n, i, false, o, o, null, false, null); } - function J(t, n, o, l, r, i, a, s, u, c, d, f, g) { + function U(t, n, o, l, r, i, s, a, u, c, d, f, g) { let m = true; const p = i.length; - const T = d !== "" ? p : 0; + const x = d !== "" ? p : 0; if (p === 0 && !l.ignore.emptyObjects) { Z(r, o, l, "", e.text.noPropertiesText, true, false, "", f, g); m = false; @@ -1958,14 +2163,14 @@ var Obj; m = false; } else { if (l.showOpeningClosingCurlyBraces) { - ne(l, o, "}", u, c); + le(l, o, "}", u, c); } } } - ee(l, t, n, o, a, s, T, f); + ne(l, t, n, o, s, a, x, f); return m; } - function U(t, n, o, l, r, i, a, s, u, c, d, f) { + function q(t, n, o, l, r, i, s, a, u, c, d, f) { let g = true; const m = r.length; const p = c !== "" ? m : 0; @@ -1986,551 +2191,568 @@ var Obj; Z(r, o, l, "", e.text.noPropertiesText, true, false, "", d, f); g = false; } else { - if (l.showOpeningClosingCurlyBraces) { - ne(l, o, "]", s, u); + if (l.showOpeningClosingSquaredBrackets) { + le(l, o, "]", a, u); } } - ee(l, t, n, o, i, a, p, d); + ne(l, t, n, o, i, s, p, d); return g; } - function Z(t, n, o, l, r, i, a, s, u, c) { + function Z(t, n, o, l, r, i, s, a, u, c) { const d = DomElement.create(n, "div", "object-type-value"); - const f = o.showArrowToggles ? DomElement.create(d, "div", "no-arrow") : null; - let g = null; + const f = DomElement.create(d, "div", "object-type-value-title"); + const g = o.showArrowToggles ? DomElement.create(f, "div", "no-arrow") : null; let m = null; - let p = false; + let p = null; + let x = false; let T = false; - let x = null; - let b = DomElement.create(d, "span", "title"); - let w = false; - let y = null; - const h = !Is.definedString(l); - let D = true; - if (!h) { - if (a || !o.showPropertyNameQuotes) { - b.innerHTML = l; + let b = null; + let w = DomElement.create(f, "span"); + let y = false; + let h = null; + const D = !Is.definedString(l); + let v = true; + let V = null; + const S = o._currentView.currentColumnBuildingIndex; + if (!D) { + if (s || !o.showPropertyNameQuotes) { + w.innerHTML = l; } else { - b.innerHTML = `"${l}"`; + w.innerHTML = `"${l}"`; } - if (a && !o.showChildIndexes) { - b.parentNode.removeChild(b); - b = null; + if (s && !o.showChildIndexes) { + w.parentNode.removeChild(w); + w = null; } } else { - b.parentNode.removeChild(b); - b = null; + w.parentNode.removeChild(w); + w = null; } if (i) { d.classList.add("last-item"); } - if (o.showDataTypes) { - y = DomElement.createWithHTML(d, "span", o.showValueColors ? "type-color" : "type", ""); + if (o.showDataTypes && !D) { + h = DomElement.createWithHTML(f, "span", o.showValueColors ? "data-type-color" : "data-type", ""); } - if (Is.defined(b) && !h && o.showValueColors && o.showPropertyNameAndIndexColors) { - b.classList.add(u); + if (Is.defined(w) && !D && o.showValueColors && o.showPropertyNameAndIndexColors) { + w.classList.add(u); } - if (Is.defined(b) && !h) { - DomElement.createWithHTML(d, "span", "split", e.text.propertyColonCharacter); + if (Is.defined(w) && !D) { + DomElement.createWithHTML(f, "span", "split", e.text.propertyColonCharacter); if (!c) { - Q(o, t, l, b, a); + Q(o, t, l, w, s); } else { - b.ondblclick = DomElement.cancelBubble; + w.ondblclick = DomElement.cancelBubble; } - if (Is.definedString(s)) { - d.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME, s); + if (Is.definedString(a)) { + f.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME, a); } - if (!a) { - H(o, l, b); - R(o, l, b); + if (!s) { + W(o, l, w); + H(o, l, w); } + re(o, f, a, S, r); } if (r === null) { - x = "null"; + b = "null"; if (!o.ignore.nullValues) { - g = o.showValueColors ? `${x} value undefined-or-null` : "value undefined-or-null"; - m = DomElement.createWithHTML(d, "span", g, "null"); + m = o.showValueColors ? `${b} value undefined-or-null` : "value undefined-or-null"; + p = DomElement.createWithHTML(f, "span", m, "null"); if (Is.definedFunction(o.events.onNullRender)) { - Trigger.customEvent(o.events.onNullRender, o._currentView.element, m); + Trigger.customEvent(o.events.onNullRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (r === void 0) { - x = "undefined"; + b = "undefined"; if (!o.ignore.undefinedValues) { - g = o.showValueColors ? `${x} value undefined-or-null` : "value undefined-or-null"; - m = DomElement.createWithHTML(d, "span", g, "undefined"); + m = o.showValueColors ? `${b} value undefined-or-null` : "value undefined-or-null"; + p = DomElement.createWithHTML(f, "span", m, "undefined"); if (Is.definedFunction(o.events.onUndefinedRender)) { - Trigger.customEvent(o.events.onUndefinedRender, o._currentView.element, m); + Trigger.customEvent(o.events.onUndefinedRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedFunction(r)) { const t = Default.getFunctionName(r, e); if (t.isLambda) { - x = "lambda"; + b = "lambda"; if (!o.ignore.lambdaValues) { - g = o.showValueColors ? `${x} value non-value` : "value non-value"; - m = DomElement.createWithHTML(d, "span", g, t.name); + m = o.showValueColors ? `${b} value non-value` : "value non-value"; + p = DomElement.createWithHTML(f, "span", m, t.name); if (Is.definedFunction(o.events.onLambdaRender)) { - Trigger.customEvent(o.events.onLambdaRender, o._currentView.element, m); + Trigger.customEvent(o.events.onLambdaRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else { - x = "function"; + b = "function"; if (!o.ignore.functionValues) { - g = o.showValueColors ? `${x} value non-value` : "value non-value"; - m = DomElement.createWithHTML(d, "span", g, t.name); + m = o.showValueColors ? `${b} value non-value` : "value non-value"; + p = DomElement.createWithHTML(f, "span", m, t.name); if (Is.definedFunction(o.events.onFunctionRender)) { - Trigger.customEvent(o.events.onFunctionRender, o._currentView.element, m); + Trigger.customEvent(o.events.onFunctionRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } } else if (Is.definedBoolean(r)) { - x = "boolean"; + b = "boolean"; if (!o.ignore.booleanValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.booleanValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.booleanValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onBooleanRender)) { - Trigger.customEvent(o.events.onBooleanRender, o._currentView.element, m); + Trigger.customEvent(o.events.onBooleanRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedFloat(r)) { - x = "float"; + b = "float"; if (!o.ignore.floatValues) { const e = Convert2.numberToFloatWithDecimalPlaces(r, o.maximumDecimalPlaces); - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, e); - w = o.allowEditing.floatValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, e); + y = o.allowEditing.floatValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onFloatRender)) { - Trigger.customEvent(o.events.onFloatRender, o._currentView.element, m); + Trigger.customEvent(o.events.onFloatRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedNumber(r)) { - x = "number"; + b = "number"; if (!o.ignore.numberValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.numberValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.numberValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onNumberRender)) { - Trigger.customEvent(o.events.onNumberRender, o._currentView.element, m); + Trigger.customEvent(o.events.onNumberRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedBigInt(r)) { - x = "bigint"; + b = "bigint"; if (!o.ignore.bigintValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.bigIntValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.bigIntValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onBigIntRender)) { - Trigger.customEvent(o.events.onBigIntRender, o._currentView.element, m); + Trigger.customEvent(o.events.onBigIntRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && Is.String.guid(r)) { - x = "guid"; + b = "guid"; if (!o.ignore.guidValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.guidValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.guidValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onGuidRender)) { - Trigger.customEvent(o.events.onGuidRender, o._currentView.element, m); + Trigger.customEvent(o.events.onGuidRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && (Is.String.hexColor(r) || Is.String.rgbColor(r))) { - x = "color"; + b = "color"; if (!o.ignore.colorValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r); - w = o.allowEditing.colorValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r); + y = o.allowEditing.colorValues && !c; if (o.showValueColors) { - m.style.color = r; + p.style.color = r; } - X(o, t, l, r, m, a, w); + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onColorRender)) { - Trigger.customEvent(o.events.onColorRender, o._currentView.element, m); + Trigger.customEvent(o.events.onColorRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && Is.definedUrl(r)) { - x = "url"; + b = "url"; if (!o.ignore.urlValues) { let n = r; - let s = null; if (o.maximumUrlLength > 0 && n.length > o.maximumUrlLength) { n = `${n.substring(0, o.maximumUrlLength)}${" "}${e.text.ellipsisText}${" "}`; } - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, n); - w = o.allowEditing.urlValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, n); + y = o.allowEditing.urlValues && !c; if (o.showUrlOpenButtons) { - s = DomElement.createWithHTML(d, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); - s.onclick = () => window.open(r); + V = DomElement.createWithHTML(f, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); + V.onclick = () => window.open(r); } - X(o, t, l, r, m, a, w, s); + X(o, t, l, r, p, s, y, V); if (Is.definedFunction(o.events.onUrlRender)) { - Trigger.customEvent(o.events.onUrlRender, o._currentView.element, m); + Trigger.customEvent(o.events.onUrlRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r) && Is.definedEmail(r)) { - x = "email"; + b = "email"; if (!o.ignore.emailValues) { let n = r; - let s = null; if (o.maximumEmailLength > 0 && n.length > o.maximumEmailLength) { n = `${n.substring(0, o.maximumEmailLength)}${" "}${e.text.ellipsisText}${" "}`; } - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, n); - w = o.allowEditing.emailValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, n); + y = o.allowEditing.emailValues && !c; if (o.showEmailOpenButtons) { - s = DomElement.createWithHTML(d, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); - s.onclick = () => window.open(`mailto:${r}`); + V = DomElement.createWithHTML(f, "span", o.showValueColors ? "open-button-color" : "open-button", `${e.text.openText}${" "}${e.text.openSymbolText}`); + V.onclick = () => window.open(`mailto:${r}`); } - X(o, t, l, r, m, a, w, s); + X(o, t, l, r, p, s, y, V); if (Is.definedFunction(o.events.onEmailRender)) { - Trigger.customEvent(o.events.onEmailRender, o._currentView.element, m); + Trigger.customEvent(o.events.onEmailRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedString(r)) { - x = "string"; - if (!o.ignore.stringValues || h) { + b = "string"; + if (!o.ignore.stringValues || D) { if (o.parse.stringsToBooleans && Is.String.boolean(r)) { - Z(t, n, o, l, r.toString().toLowerCase().trim() === "true", i, a, s, u, c); - p = true; + Z(t, n, o, l, r.toString().toLowerCase().trim() === "true", i, s, a, u, c); + x = true; T = true; } else if (o.parse.stringsToNumbers && Is.String.bigInt(r)) { - Z(t, n, o, l, Convert2.stringToBigInt(r), i, a, s, u, c); - p = true; + Z(t, n, o, l, Convert2.stringToBigInt(r), i, s, a, u, c); + x = true; T = true; } else if (o.parse.stringsToNumbers && !isNaN(r)) { - Z(t, n, o, l, parseFloat(r), i, a, s, u, c); - p = true; + Z(t, n, o, l, parseFloat(r), i, s, a, u, c); + x = true; T = true; } else if (o.parse.stringsToDates && Is.String.date(r)) { - Z(t, n, o, l, new Date(r), i, a, s, u, c); - p = true; + Z(t, n, o, l, new Date(r), i, s, a, u, c); + x = true; + T = true; + } else if (o.parse.stringsToSymbols && Is.String.symbol(r)) { + Z(t, n, o, l, Symbol(Convert2.symbolToString(r)), i, s, a, u, c); + x = true; T = true; } else { let n = r; - if (!h) { + if (!D) { if (o.maximumStringLength > 0 && n.length > o.maximumStringLength) { n = `${n.substring(0, o.maximumStringLength)}${" "}${e.text.ellipsisText}${" "}`; } n = o.showStringQuotes ? `"${n}"` : n; - g = o.showValueColors ? `${x} value` : "value"; - w = o.allowEditing.stringValues && !c; + m = o.showValueColors ? `${b} value` : "value"; + y = o.allowEditing.stringValues && !c; } else { - g = "no-properties-text"; - w = false; - D = false; + m = "no-properties-text"; + y = false; + v = false; } - m = DomElement.createWithHTML(d, "span", g, n); - if (!h) { - X(o, t, l, r, m, a, w); + p = DomElement.createWithHTML(f, "span", m, n); + if (!D) { + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onStringRender)) { - Trigger.customEvent(o.events.onStringRender, o._currentView.element, m); + Trigger.customEvent(o.events.onStringRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } } } else { - p = true; + x = true; } } else if (Is.definedDate(r)) { - x = "date"; + b = "date"; if (!o.ignore.dateValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, DateTime.getCustomFormattedDateText(e, r, o.dateTimeFormat)); - w = o.allowEditing.dateValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, DateTime.getCustomFormattedDateText(e, r, o.dateTimeFormat)); + y = o.allowEditing.dateValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onDateRender)) { - Trigger.customEvent(o.events.onDateRender, o._currentView.element, m); + Trigger.customEvent(o.events.onDateRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedSymbol(r)) { - x = "symbol"; + b = "symbol"; if (!o.ignore.symbolValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r.toString()); - w = o.allowEditing.symbolValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r.toString()); + y = o.allowEditing.symbolValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onSymbolRender)) { - Trigger.customEvent(o.events.onSymbolRender, o._currentView.element, m); + Trigger.customEvent(o.events.onSymbolRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedRegExp(r)) { - x = "regexp"; + b = "regexp"; if (!o.ignore.regexpValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.createWithHTML(d, "span", g, r.source.toString()); - w = o.allowEditing.regExpValues && !c; - X(o, t, l, r, m, a, w); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.createWithHTML(f, "span", m, r.source.toString()); + y = o.allowEditing.regExpValues && !c; + X(o, t, l, r, p, s, y); if (Is.definedFunction(o.events.onRegExpRender)) { - Trigger.customEvent(o.events.onRegExpRender, o._currentView.element, m); + Trigger.customEvent(o.events.onRegExpRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedImage(r)) { - x = "image"; + b = "image"; if (!o.ignore.imageValues) { - g = o.showValueColors ? `${x} value` : "value"; - m = DomElement.create(d, "span", g); - w = o.allowEditing.imageValues && !c; - X(o, t, l, r, m, a, w); - const e = DomElement.create(m, "img"); + m = o.showValueColors ? `${b} value` : "value"; + p = DomElement.create(f, "span", m); + y = o.allowEditing.imageValues && !c; + X(o, t, l, r, p, s, y); + const e = DomElement.create(p, "img"); e.src = r.src; if (Is.definedFunction(o.events.onImageRender)) { - Trigger.customEvent(o.events.onImageRender, o._currentView.element, m); + Trigger.customEvent(o.events.onImageRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } else if (Is.definedHtml(r)) { - x = "html"; + b = "html"; if (!o.ignore.htmlValues) { const t = Convert2.htmlToObject(r, o.showCssStylesForHtmlObjects); const n = Obj.getPropertyNames(t, o); const l = n.length; if (l === 0 && o.ignore.emptyObjects) { - p = true; + x = true; } else { - const r = DomElement.create(d, "span", o.showValueColors ? x : ""); - const a = DomElement.create(d, "div", "object-type-contents"); + const r = DomElement.create(f, "span", o.showValueColors ? b : ""); + const s = DomElement.create(d, "div", "object-type-contents"); let u = null; let c = null; - G(a, o); + G(s, o); if (i) { - a.classList.add("last-item"); + s.classList.add("last-item"); } - m = DomElement.createWithHTML(r, "span", "main-title", e.text.htmlText); + p = DomElement.createWithHTML(r, "span", "main-title", e.text.htmlText); if (o.showObjectSizes && (l > 0 || !o.ignore.emptyObjects)) { DomElement.createWithHTML(r, "span", "size", `<${l}>`); } if (o.showOpeningClosingCurlyBraces) { u = DomElement.createWithHTML(r, "span", "opening-symbol", "{"); + } + if (o.showClosedObjectCurlyBraces) { c = DomElement.createWithHTML(r, "span", "closed-symbols", "{ ... }"); } - let g = te(o, r, i); - const p = J(f, g, a, o, t, n, u, c, true, i, s, x, true); - if (!p && o.showOpeningClosingCurlyBraces) { + const m = oe(o, r, i); + const x = U(g, m, s, o, t, n, u, c, true, i, a, b, true); + if (!x && o.showOpeningClosingCurlyBraces) { u.parentNode.removeChild(u); c.parentNode.removeChild(c); } } } else { - p = true; + x = true; } } else if (Is.definedSet(r)) { - x = "set"; + b = "set"; if (!o.ignore.setValues) { const t = Convert2.setToArray(r); - const n = DomElement.create(d, "span", o.showValueColors ? x : ""); + const n = DomElement.create(f, "span", o.showValueColors ? b : ""); const l = DomElement.create(d, "div", "object-type-contents"); - let a = null; + let s = null; let u = null; G(l, o); if (i) { l.classList.add("last-item"); } - m = DomElement.createWithHTML(n, "span", "main-title", e.text.setText); + p = DomElement.createWithHTML(n, "span", "main-title", e.text.setText); if (o.showObjectSizes) { DomElement.createWithHTML(n, "span", "size", `[${t.length}]`); } - if (o.showOpeningClosingCurlyBraces) { - a = DomElement.createWithHTML(n, "span", "opening-symbol", "["); + if (o.showOpeningClosingSquaredBrackets) { + s = DomElement.createWithHTML(n, "span", "opening-symbol", "["); + } + if (o.showClosedArraySquaredBrackets) { u = DomElement.createWithHTML(n, "span", "closed-symbols", "[ ... ]"); } - let c = te(o, n, i); - const g = U(f, c, l, o, t, a, u, true, i, s, x, true); - if (!g && o.showOpeningClosingCurlyBraces) { - a.parentNode.removeChild(a); + const c = oe(o, n, i); + const m = q(g, c, l, o, t, s, u, true, i, a, b, true); + if (!m && o.showOpeningClosingSquaredBrackets) { + s.parentNode.removeChild(s); u.parentNode.removeChild(u); } } else { - p = true; + x = true; } } else if (Is.definedArray(r)) { - x = "array"; + b = "array"; if (!o.ignore.arrayValues) { - const t = DomElement.create(d, "span", o.showValueColors ? x : ""); + const t = DomElement.create(f, "span", o.showValueColors ? b : ""); const n = DomElement.create(d, "div", "object-type-contents"); let l = null; - let a = null; + let s = null; G(n, o); if (i) { n.classList.add("last-item"); } - m = DomElement.createWithHTML(t, "span", "main-title", e.text.arrayText); + p = DomElement.createWithHTML(t, "span", "main-title", e.text.arrayText); if (o.showObjectSizes) { DomElement.createWithHTML(t, "span", "size", `[${r.length}]`); } - if (o.showOpeningClosingCurlyBraces) { + if (o.showOpeningClosingSquaredBrackets) { l = DomElement.createWithHTML(t, "span", "opening-symbol", "["); - a = DomElement.createWithHTML(t, "span", "closed-symbols", "[ ... ]"); } - let u = te(o, t, i); - const c = U(f, u, n, o, r, l, a, true, i, s, x, false); - if (!c && o.showOpeningClosingCurlyBraces) { + if (o.showClosedArraySquaredBrackets) { + s = DomElement.createWithHTML(t, "span", "closed-symbols", "[ ... ]"); + } + const u = oe(o, t, i); + const c = q(g, u, n, o, r, l, s, true, i, a, b, false); + if (!c && o.showOpeningClosingSquaredBrackets) { l.parentNode.removeChild(l); - a.parentNode.removeChild(a); + s.parentNode.removeChild(s); } } else { - p = true; + x = true; } } else if (Is.definedMap(r)) { - x = "map"; + b = "map"; if (!o.ignore.mapValues) { const t = Convert2.mapToObject(r); const n = Obj.getPropertyNames(t, o); const l = n.length; if (l === 0 && o.ignore.emptyObjects) { - p = true; + x = true; } else { - const r = DomElement.create(d, "span", o.showValueColors ? x : ""); - const a = DomElement.create(d, "div", "object-type-contents"); + const r = DomElement.create(f, "span", o.showValueColors ? b : ""); + const s = DomElement.create(d, "div", "object-type-contents"); let u = null; let c = null; - G(a, o); + G(s, o); if (i) { - a.classList.add("last-item"); + s.classList.add("last-item"); } - m = DomElement.createWithHTML(r, "span", "main-title", e.text.mapText); + p = DomElement.createWithHTML(r, "span", "main-title", e.text.mapText); if (o.showObjectSizes && (l > 0 || !o.ignore.emptyObjects)) { DomElement.createWithHTML(r, "span", "size", `{${l}}`); } if (o.showOpeningClosingCurlyBraces) { u = DomElement.createWithHTML(r, "span", "opening-symbol", "{"); + } + if (o.showClosedObjectCurlyBraces) { c = DomElement.createWithHTML(r, "span", "closed-symbols", "{ ... }"); } - let g = te(o, r, i); - const p = J(f, g, a, o, t, n, u, c, true, i, s, x, true); - if (!p && o.showOpeningClosingCurlyBraces) { + const m = oe(o, r, i); + const x = U(g, m, s, o, t, n, u, c, true, i, a, b, true); + if (!x && o.showOpeningClosingCurlyBraces) { u.parentNode.removeChild(u); c.parentNode.removeChild(c); } } } else { - p = true; + x = true; } } else if (Is.definedObject(r)) { - x = "object"; + b = "object"; if (!o.ignore.objectValues) { const t = Obj.getPropertyNames(r, o); const n = t.length; if (n === 0 && o.ignore.emptyObjects) { - p = true; + x = true; } else { - const l = DomElement.create(d, "span", o.showValueColors ? x : ""); - const a = DomElement.create(d, "div", "object-type-contents"); + const l = DomElement.create(f, "span", o.showValueColors ? b : ""); + const s = DomElement.create(d, "div", "object-type-contents"); let u = null; let c = null; - G(a, o); + G(s, o); if (i) { - a.classList.add("last-item"); + s.classList.add("last-item"); } - m = DomElement.createWithHTML(l, "span", "main-title", e.text.objectText); + p = DomElement.createWithHTML(l, "span", "main-title", e.text.objectText); if (o.showObjectSizes && (n > 0 || !o.ignore.emptyObjects)) { DomElement.createWithHTML(l, "span", "size", `{${n}}`); } if (o.showOpeningClosingCurlyBraces) { u = DomElement.createWithHTML(l, "span", "opening-symbol", "{"); + } + if (o.showClosedObjectCurlyBraces) { c = DomElement.createWithHTML(l, "span", "closed-symbols", "{ ... }"); } - let g = te(o, l, i); - const p = J(f, g, a, o, r, t, u, c, true, i, s, x, false); - if (!p && o.showOpeningClosingCurlyBraces) { + const m = oe(o, l, i); + const x = U(g, m, s, o, r, t, u, c, true, i, a, b, false); + if (!x && o.showOpeningClosingCurlyBraces) { u.parentNode.removeChild(u); c.parentNode.removeChild(c); } } } else { - p = true; + x = true; } } else { - x = "unknown"; + b = "unknown"; if (!o.ignore.unknownValues) { - g = o.showValueColors ? `${x} value non-value` : "value non-value"; - m = DomElement.createWithHTML(d, "span", g, r.toString()); + m = o.showValueColors ? `${b} value non-value` : "value non-value"; + p = DomElement.createWithHTML(f, "span", m, r.toString()); if (Is.definedFunction(o.events.onUnknownRender)) { - Trigger.customEvent(o.events.onUnknownRender, o._currentView.element, m); + Trigger.customEvent(o.events.onUnknownRender, o._currentView.element, p); } - te(o, d, i); + oe(o, f, i); } else { - p = true; + x = true; } } - if (!h && !T) { - Y(o, x); + if (!D && !T) { + Y(o, b); } - if (p) { + if (x) { n.removeChild(d); } else { - if (Is.defined(m)) { - if (!h) { - H(o, r, m); - R(o, r, m); - F(o, x, m); - } - if (Is.defined(y)) { - if (x !== "null" && x !== "undefined" && x !== "array" && x !== "object" && x !== "map" && x !== "set") { - y.innerHTML = `(${x})`; + if (Is.defined(p)) { + if (!D) { + W(o, r, p); + H(o, r, p); + R(o, b, p); + ae(o, p, y, t, r, l, s, V); + } + if (Is.defined(h)) { + if (b !== "null" && b !== "undefined" && b !== "array" && b !== "object" && b !== "map" && b !== "set") { + h.innerHTML = `(${b})`; } else { - y.parentNode.removeChild(y); - y = null; + h.parentNode.removeChild(h); + h = null; } } - if (D) { - K(o, s, b, y, m); - q(o, m, r, x, w); + if (v) { + K(o, a, w, h, p); + te(o, p, r, b, y); } else { - m.ondblclick = DomElement.cancelBubble; + p.ondblclick = DomElement.cancelBubble; } } } @@ -2572,17 +2794,17 @@ var Obj; } function Q(t, n, o, l, r) { if (t.allowEditing.propertyNames) { - l.ondblclick = a => { - DomElement.cancelBubble(a); - let s = 0; + l.ondblclick = s => { + DomElement.cancelBubble(s); + let a = 0; let u = null; clearTimeout(t._currentView.valueClickTimerId); t._currentView.valueClickTimerId = 0; t._currentView.editMode = true; l.classList.add("editable-name"); if (r) { - s = Arr.getIndexFromBrackets(l.innerHTML); - l.innerHTML = s.toString(); + a = Arr.getIndexFromBrackets(l.innerHTML); + l.innerHTML = a.toString(); } else { l.innerHTML = l.innerHTML.replace(/['"]+/g, ""); } @@ -2592,7 +2814,7 @@ var Obj; l.onblur = () => { i(t, false); if (Is.definedString(u)) { - W(t, u); + $(t, u); } }; l.onkeydown = i => { @@ -2601,30 +2823,33 @@ var Obj; l.setAttribute("contenteditable", "false"); } else if (i.code === "Enter") { i.preventDefault(); - const a = l.innerText; + const s = l.innerText; if (r) { - if (!isNaN(+a)) { - let o = +a; + if (Is.definedString(s) && !isNaN(+s)) { + let o = +s; if (!t.useZeroIndexingForArrays) { o--; } - if (s !== o) { + if (a !== o) { u = e.text.indexUpdatedText; - Arr.moveIndex(n, s, o); + Arr.moveIndex(n, a, o); Trigger.customEvent(t.events.onJsonEdit, t._currentView.element); } + } else { + n.splice(Arr.getIndexFromBrackets(o), 1); + u = e.text.itemDeletedText; } } else { - if (a !== o) { - if (a.trim() === "") { + if (s !== o) { + if (s.trim() === "") { u = e.text.itemDeletedText; delete n[o]; } else { - if (!n.hasOwnProperty(a)) { + if (!n.hasOwnProperty(s)) { u = e.text.nameUpdatedText; const t = n[o]; delete n[o]; - n[a] = t; + n[s] = t; } } Trigger.customEvent(t.events.onJsonEdit, t._currentView.element); @@ -2636,175 +2861,322 @@ var Obj; }; } } - function X(t, n, o, l, r, a, s, u = null) { - if (s) { - r.ondblclick = s => { - let c = null; - DomElement.cancelBubble(s); - clearTimeout(t._currentView.valueClickTimerId); - t._currentView.valueClickTimerId = 0; - t._currentView.editMode = true; - r.classList.add("editable"); - r.setAttribute("contenteditable", "true"); - if (Is.definedDate(l) && !t.includeTimeZoneInDateTimeEditing) { - r.innerText = JSON.stringify(l).replace(/['"]+/g, ""); - } else if (Is.definedRegExp(l)) { - r.innerText = l.source; - } else if (Is.definedSymbol(l)) { - r.innerText = Convert2.symbolToString(l); - } else if (Is.definedImage(l)) { - r.innerText = l.src; - } else { - r.innerText = l.toString(); - } - r.focus(); - DomElement.selectAllText(r); - if (Is.defined(u)) { - u.parentNode.removeChild(u); - } - r.onblur = () => { - i(t, false); - if (Is.definedString(c)) { - W(t, c); + function X(e, t, n, o, l, r, i, s = null) { + if (i) { + l.ondblclick = i => { + ee(i, e, t, n, o, l, r, s); + }; + } + } + function ee(t, n, o, l, r, s, a, u = null) { + let c = null; + DomElement.cancelBubble(t); + clearTimeout(n._currentView.valueClickTimerId); + n._currentView.valueClickTimerId = 0; + n._currentView.editMode = true; + s.classList.add("editable"); + s.setAttribute("contenteditable", "true"); + if (Is.definedDate(r) && !n.includeTimeZoneInDates) { + s.innerText = JSON.stringify(r).replace(/['"]+/g, ""); + } else if (Is.definedRegExp(r)) { + s.innerText = r.source; + } else if (Is.definedSymbol(r)) { + s.innerText = Convert2.symbolToString(r); + } else if (Is.definedImage(r)) { + s.innerText = r.src; + } else { + s.innerText = r.toString(); + } + s.focus(); + DomElement.selectAllText(s); + if (Is.defined(u)) { + u.parentNode.removeChild(u); + } + s.onblur = () => { + i(n, false); + if (Is.definedString(c)) { + $(n, c); + } + }; + s.onkeydown = t => { + if (t.code === "Escape") { + t.preventDefault(); + s.setAttribute("contenteditable", "false"); + } else if (t.code === "Enter") { + t.preventDefault(); + const i = s.innerText; + if (i.trim() === "") { + if (a) { + o.splice(Arr.getIndexFromBrackets(l), 1); + } else { + delete o[l]; } - }; - r.onkeydown = i => { - if (i.code === "Escape") { - i.preventDefault(); - r.setAttribute("contenteditable", "false"); - } else if (i.code === "Enter") { - i.preventDefault(); - const s = r.innerText; - if (s.trim() === "") { - if (a) { - n.splice(Arr.getIndexFromBrackets(o), 1); - } else { - delete n[o]; - } - c = e.text.itemDeletedText; + c = e.text.itemDeletedText; + } else { + let t = Convert2.stringToDataTypeValue(r, i); + if (t !== null) { + if (a) { + o[Arr.getIndexFromBrackets(l)] = t; } else { - let r = Convert2.stringToDataTypeValue(l, s); - if (r !== null) { - if (a) { - n[Arr.getIndexFromBrackets(o)] = r; - } else { - n[o] = r; - } - c = e.text.valueUpdatedText; - Trigger.customEvent(t.events.onJsonEdit, t._currentView.element); - } + o[l] = t; } - r.setAttribute("contenteditable", "false"); + c = e.text.valueUpdatedText; + Trigger.customEvent(n.events.onJsonEdit, n._currentView.element); } - }; - }; - } + } + s.setAttribute("contenteditable", "false"); + } + }; } - function q(e, t, n, o, l) { - if (Is.definedFunction(e.events.onValueClick)) { - t.onclick = () => { - if (l) { - e._currentView.valueClickTimerId = setTimeout((() => { - if (!e._currentView.editMode) { - Trigger.customEvent(e.events.onValueClick, e._currentView.element, n, o); + function te(t, n, o, l, r) { + if (Is.definedFunction(t.events.onValueClick)) { + n.onclick = () => { + let i = o; + if (t.convertClickedValuesToString) { + i = JSON.stringify(Convert2.toJsonStringifyClone(o, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); + } + if (r) { + t._currentView.valueClickTimerId = setTimeout((() => { + if (!t._currentView.editMode) { + Trigger.customEvent(t.events.onValueClick, t._currentView.element, i, l); } - }), e.editingValueClickDelay); + }), t.editingValueClickDelay); } else { - t.ondblclick = DomElement.cancelBubble; - Trigger.customEvent(e.events.onValueClick, e._currentView.element, n, o); + n.ondblclick = DomElement.cancelBubble; + Trigger.customEvent(t.events.onValueClick, t._currentView.element, i, l); } }; } else { - t.classList.add("no-hover"); + n.classList.add("no-hover"); } } - function ee(e, t, n, o, l, r, i, a) { - const s = e._currentView.contentPanelsIndex; - const u = e._currentView.contentPanelsDataIndex; - if (!e._currentView.contentPanelsOpen.hasOwnProperty(u)) { - e._currentView.contentPanelsOpen[u] = {}; + function ne(e, t, n, l, r, i, s, a) { + const u = e._currentView.contentPanelsIndex; + const c = e._currentView.contentPanelsDataIndex; + const d = e._currentView.currentColumnBuildingIndex; + const f = e._currentView.currentContentColumns[d]; + if (!e._currentView.contentPanelsOpen.hasOwnProperty(c)) { + e._currentView.contentPanelsOpen[c] = {}; } - const c = () => { - o.style.display = "none"; - e._currentView.contentPanelsOpen[u][s] = true; + const g = (o = true) => { + l.style.display = "none"; + e._currentView.contentPanelsOpen[c][u] = true; if (Is.defined(t)) { t.className = "right-arrow"; } - if (Is.defined(l)) { - l.style.display = "none"; - } if (Is.defined(r)) { - r.style.display = "inline-block"; + r.style.display = "none"; + } + if (Is.defined(i)) { + i.style.display = "inline-block"; } if (Is.defined(n)) { n.style.display = "inline-block"; } + if (o) { + x(d, e); + } }; - const d = () => { - o.style.display = "block"; - e._currentView.contentPanelsOpen[u][s] = false; + const m = (s, a = true) => { + if (Is.defined(s)) { + DomElement.cancelBubble(s); + if (!o) { + ie(e); + } + } + l.style.display = "block"; + e._currentView.contentPanelsOpen[c][u] = false; if (Is.defined(t)) { t.className = "down-arrow"; } - if (Is.defined(l)) { - l.style.display = "inline-block"; - } if (Is.defined(r)) { - r.style.display = "none"; + r.style.display = "inline-block"; + } + if (Is.defined(i)) { + i.style.display = "none"; } if (Is.defined(n)) { n.style.display = "none"; } + if (a) { + x(d, e); + } }; - const f = e => { - if (e) { - c(); + const p = (t, n) => { + if (Is.defined(t)) { + DomElement.cancelBubble(t); + if (!o) { + ie(e); + } + } + if (n) { + g(); } else { - d(); + m(null); } }; - let g = e.showAllAsClosed; - if (e._currentView.contentPanelsOpen[u].hasOwnProperty(s)) { - g = e._currentView.contentPanelsOpen[u][s]; + let T = e.showAllAsClosed; + if (e._currentView.contentPanelsOpen[c].hasOwnProperty(u)) { + T = e._currentView.contentPanelsOpen[c][u]; } else { if (!e._currentView.initialized) { - if (a === "object" && e.autoClose.objectSize > 0 && i >= e.autoClose.objectSize) { - g = true; - } else if (a === "array" && e.autoClose.arraySize > 0 && i >= e.autoClose.arraySize) { - g = true; - } else if (a === "map" && e.autoClose.mapSize > 0 && i >= e.autoClose.mapSize) { - g = true; - } else if (a === "set" && e.autoClose.setSize > 0 && i >= e.autoClose.setSize) { - g = true; - } else if (a === "html" && e.autoClose.htmlSize > 0 && i >= e.autoClose.htmlSize) { - g = true; + if (a === "object" && e.autoClose.objectSize > 0 && s >= e.autoClose.objectSize) { + T = true; + } else if (a === "array" && e.autoClose.arraySize > 0 && s >= e.autoClose.arraySize) { + T = true; + } else if (a === "map" && e.autoClose.mapSize > 0 && s >= e.autoClose.mapSize) { + T = true; + } else if (a === "set" && e.autoClose.setSize > 0 && s >= e.autoClose.setSize) { + T = true; + } else if (a === "html" && e.autoClose.htmlSize > 0 && s >= e.autoClose.htmlSize) { + T = true; } } - e._currentView.contentPanelsOpen[u][s] = g; + e._currentView.contentPanelsOpen[c][u] = T; } if (Is.defined(t)) { - t.onclick = () => f(t.className === "down-arrow"); + t.onclick = e => p(e, t.className === "down-arrow"); t.ondblclick = DomElement.cancelBubble; } - f(g); + if (Is.defined(i)) { + i.onclick = e => m(e); + i.ondblclick = DomElement.cancelBubble; + } + p(null, T, false); e._currentView.contentPanelsIndex++; } - function te(e, t, n) { + function oe(e, t, n) { let o = null; if (e.showCommas && !n) { o = DomElement.createWithHTML(t, "span", "comma", ","); } return o; } - function ne(e, t, n, o, l) { - let r = DomElement.create(t, "div", "closing-symbol"); + function le(e, t, n, o, l) { + const r = DomElement.create(t, "div", "closing-symbol"); if (o && e.showArrowToggles || e.showOpenedObjectArrayBorders) { DomElement.create(r, "div", "no-arrow"); } DomElement.createWithHTML(r, "div", "object-type-end", n); - te(e, r, l); + oe(e, r, l); + } + function re(e, t, n, l, r) { + t.onclick = i => { + DomElement.cancelBubble(i); + const s = t.classList.contains("highlight-selected") && o; + const a = e._currentView.currentContentColumns; + const u = e._currentView.currentContentColumns.length; + let c = false; + if (!o) { + e._currentView.selectedValues = []; + } + for (let t = 0; t < u; t++) { + const r = a[t].column.querySelectorAll(".object-type-value-title"); + const i = r.length; + for (let a = 0; a < i; a++) { + const i = r[a]; + if (!o) { + i.classList.remove("highlight-selected"); + i.classList.remove("highlight-compare"); + } + if (se(e) && t !== l) { + const e = i.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME); + if (Is.definedString(e) && e === n) { + if (!s) { + i.classList.add("highlight-compare"); + } else { + i.classList.remove("highlight-compare"); + } + c = true; + } + } + } + if (c) { + x(t, e); + } + } + if (!s) { + t.classList.add("highlight-selected"); + e._currentView.selectedValues.push(r); + } else { + t.classList.remove("highlight-selected"); + e._currentView.selectedValues.splice(e._currentView.selectedValues.indexOf(r), 1); + } + x(l, e); + }; } - function oe(t) { + function ie(e) { + if (e._currentView.selectedValues.length > 0) { + const t = e._currentView.currentContentColumns; + const n = e._currentView.currentContentColumns.length; + e._currentView.selectedValues = []; + for (let o = 0; o < n; o++) { + let n = false; + const l = t[o].column.querySelectorAll(".object-type-value-title"); + const r = l.length; + for (let t = 0; t < r; t++) { + const o = l[t]; + if (o.classList.contains("highlight-selected")) { + o.classList.remove("highlight-selected"); + n = true; + } + if (se(e) && o.classList.contains("highlight-compare")) { + o.classList.remove("highlight-compare"); + n = true; + } + } + if (n) { + x(o, e); + } + } + } + } + function se(e) { + return e.paging.enabled && e.paging.columnsPerPage > 1 && e.paging.allowComparisons; + } + function ae(t, n, o, l, r, i, s, a) { + n.oncontextmenu = u => { + DomElement.cancelBubble(u); + t._currentView.contextMenu.innerHTML = ""; + if (o && t._currentView.selectedValues.length <= 1) { + const o = ContextMenu.addMenuItem(t, e.text.editSymbolButtonText, e.text.editButtonText); + o.onclick = e => ue(e, t, n, l, i, r, s, a); + } + const c = ContextMenu.addMenuItem(t, e.text.copyButtonSymbolText, e.text.copyButtonText); + c.onclick = e => ce(e, t, r); + if (o && t._currentView.selectedValues.length <= 1) { + const n = ContextMenu.addMenuItem(t, e.text.removeSymbolButtonText, e.text.removeButtonText); + n.onclick = e => de(e, t, l, i, s); + } + DomElement.showElementAtMousePosition(u, t._currentView.contextMenu, 0); + }; + } + function ue(e, t, n, o, l, r, i, s) { + DomElement.cancelBubble(e); + ee(e, t, o, l, r, n, i, s); + ContextMenu.hide(t); + } + function ce(e, t, n) { + DomElement.cancelBubble(e); + let o = n; + if (t._currentView.selectedValues.length !== 0) { + o = t._currentView.selectedValues; + } + D(t, o); + ContextMenu.hide(t); + } + function de(t, n, o, l, r) { + DomElement.cancelBubble(t); + if (r) { + o.splice(Arr.getIndexFromBrackets(l), 1); + } else { + delete o[l]; + } + ContextMenu.hide(n); + i(n, false); + $(n, e.text.itemDeletedText); + } + function fe(t) { if (t.fileDroppingEnabled) { const n = DomElement.create(t._currentView.element, "div", "drag-and-drop-background"); const o = DomElement.create(n, "div", "notice-text"); @@ -2812,39 +3184,39 @@ var Obj; DomElement.createWithHTML(o, "p", "notice-text-title", e.text.dragAndDropTitleText); DomElement.createWithHTML(o, "p", "notice-text-description", e.text.dragAndDropDescriptionText); t._currentView.dragAndDropBackground = n; - t._currentView.element.ondragover = () => le(t, n); - t._currentView.element.ondragenter = () => le(t, n); + t._currentView.element.ondragover = () => ge(t, n); + t._currentView.element.ondragenter = () => ge(t, n); n.ondragover = DomElement.cancelBubble; n.ondragenter = DomElement.cancelBubble; n.ondragleave = () => n.style.display = "none"; - n.ondrop = e => re(e, t); + n.ondrop = e => me(e, t); } } - function le(e, t) { + function ge(e, t) { if (!e._currentView.columnDragging) { t.style.display = "block"; } } - function re(e, t) { + function me(e, t) { DomElement.cancelBubble(e); t._currentView.dragAndDropBackground.style.display = "none"; if (Is.defined(window.FileReader) && e.dataTransfer.files.length > 0) { - ie(e.dataTransfer.files, t); + pe(e.dataTransfer.files, t); } } - function ie(t, n) { + function pe(t, n) { const o = t.length; let l = 0; let r = []; - const a = t => { + const s = t => { l++; r.push(t); if (l === o) { - n._currentView.dataArrayCurrentIndex = 0; + n._currentView.currentDataArrayPageIndex = 0; n._currentView.contentPanelsOpen = {}; n.data = r.length === 1 ? r[0] : r; i(n); - W(n, e.text.importedText.replace("{0}", o.toString())); + $(n, e.text.importedText.replace("{0}", o.toString())); Trigger.customEvent(n.events.onSetJson, n._currentView.element); } }; @@ -2852,11 +3224,11 @@ var Obj; const n = t[e]; const o = n.name.split(".").pop().toLowerCase(); if (o === "json") { - ae(n, a); + xe(n, s); } } } - function ae(t, n) { + function xe(t, n) { const o = new FileReader; let l = null; o.onloadend = () => n(l); @@ -2868,57 +3240,73 @@ var Obj; }; o.readAsText(t); } - function se(t) { - let n = JSON.stringify(t.data, o, t.jsonIndentSpaces); + function Te(t) { + const n = JSON.stringify(Convert2.toJsonStringifyClone(t.data, e, t), t.events.onCopyJsonReplacer, t.jsonIndentSpaces); if (Is.definedString(n)) { const o = DomElement.create(document.body, "a"); o.style.display = "none"; o.setAttribute("target", "_blank"); o.setAttribute("href", `data:application/json;charset=utf-8,${encodeURIComponent(n)}`); - o.setAttribute("download", ue(t)); + o.setAttribute("download", be(t)); o.click(); document.body.removeChild(o); O(t); - W(t, e.text.exportedText); + $(t, e.text.exportedText); Trigger.customEvent(t.events.onExport, t._currentView.element); } } - function ue(t) { + function be(t) { const n = new Date; const o = DateTime.getCustomFormattedDateText(e, n, t.exportFilenameFormat); return o; } - function ce(e, t = true) { + function we(e, t = true) { const n = t ? document.addEventListener : document.removeEventListener; - n("keydown", (t => de(t, e))); - } - function de(e, o) { - if (o.shortcutKeysEnabled && n === 1 && t.hasOwnProperty(o._currentView.element.id) && !o._currentView.editMode) { - if (fe(e) && e.code === "F11") { + const l = t ? window.addEventListener : window.removeEventListener; + n("keydown", (t => he(t, e))); + n("keyup", (e => De(e))); + n("contextmenu", (() => ye(e))); + l("click", (() => ye(e))); + l("focus", (() => o = false)); + } + function ye(e) { + if (!o) { + ie(e); + } + } + function he(e, l) { + o = ve(e); + if (l.shortcutKeysEnabled && n === 1 && t.hasOwnProperty(l._currentView.element.id) && !l._currentView.editMode) { + if (ve(e) && e.code === "F11") { e.preventDefault(); - v(o); + V(l); } else if (e.code === "ArrowLeft") { e.preventDefault(); - B(o); + C(l); } else if (e.code === "ArrowRight") { e.preventDefault(); - I(o); + I(l); } else if (e.code === "ArrowUp") { e.preventDefault(); - E(o); + E(l); } else if (e.code === "ArrowDown") { e.preventDefault(); - S(o); + B(l); } else if (e.code === "Escape") { e.preventDefault(); - O(o); + if (!O(l) && !o) { + ie(l); + } } } } - function fe(e) { + function De(e) { + o = ve(e); + } + function ve(e) { return e.ctrlKey || e.metaKey; } - function ge(e) { + function Ve(e) { e._currentView.element.innerHTML = ""; e._currentView.element.classList.remove("json-tree-js"); if (e._currentView.element.className.trim() === "") { @@ -2927,19 +3315,21 @@ var Obj; if (e._currentView.idSet) { e._currentView.element.removeAttribute("id"); } - ce(e, false); + we(e, false); ToolTip.assignToEvents(e, false); + ContextMenu.assignToEvents(e, false); ToolTip.remove(e); + ContextMenu.remove(e); Trigger.customEvent(e.events.onDestroy, e._currentView.element); } - const me = { + const Se = { refresh: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { const n = t[e]; i(n); Trigger.customEvent(n.events.onRefresh, n._currentView.element); } - return me; + return Se; }, refreshAll: function() { for (const e in t) { @@ -2949,38 +3339,38 @@ var Obj; Trigger.customEvent(n.events.onRefresh, n._currentView.element); } } - return me; + return Se; }, render: function(e, t) { if (Is.definedObject(e) && Is.definedObject(t)) { r(Binding.Options.getForNewInstance(t, e)); } - return me; + return Se; }, renderAll: function() { l(); - return me; + return Se; }, openAll: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { - S(t[e]); + B(t[e]); } - return me; + return Se; }, closeAll: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { E(t[e]); } - return me; + return Se; }, backPage: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { const n = t[e]; if (n.paging.enabled) { - B(t[e]); + C(t[e]); } } - return me; + return Se; }, nextPage: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { @@ -2989,13 +3379,13 @@ var Obj; I(t[e]); } } - return me; + return Se; }, getPageNumber: function(e) { let n = 1; if (Is.definedString(e) && t.hasOwnProperty(e)) { const o = t[e]; - n = Math.ceil((o._currentView.dataArrayCurrentIndex + 1) / o.paging.columnsPerPage); + n = Math.ceil((o._currentView.currentDataArrayPageIndex + 1) / o.paging.columnsPerPage); } return n; }, @@ -3011,13 +3401,13 @@ var Obj; l = o; } const r = t[n]; - r._currentView.dataArrayCurrentIndex = 0; + r._currentView.currentDataArrayPageIndex = 0; r._currentView.contentPanelsOpen = {}; r.data = l; i(r); Trigger.customEvent(r.events.onSetJson, r._currentView.element); } - return me; + return Se; }, getJson: function(e) { let n = null; @@ -3036,7 +3426,7 @@ var Obj; t[e]._currentView = r; i(t[e]); } - return me; + return Se; }, getBindingOptions: function(e) { let n = null; @@ -3047,21 +3437,21 @@ var Obj; }, destroy: function(e) { if (Is.definedString(e) && t.hasOwnProperty(e)) { - ge(t[e]); + Ve(t[e]); delete t[e]; n--; } - return me; + return Se; }, destroyAll: function() { for (const e in t) { if (t.hasOwnProperty(e)) { - ge(t[e]); + Ve(t[e]); } } t = {}; n = 0; - return me; + return Se; }, setConfiguration: function(t) { if (Is.definedObject(t)) { @@ -3077,7 +3467,7 @@ var Obj; e = Config.Options.get(o); } } - return me; + return Se; }, getIds: function() { const e = []; @@ -3089,14 +3479,14 @@ var Obj; return e; }, getVersion: function() { - return "4.0.0"; + return "4.1.0"; } }; (() => { e = Config.Options.get(); document.addEventListener("DOMContentLoaded", (() => l())); if (!Is.defined(window.$jsontree)) { - window.$jsontree = me; + window.$jsontree = Se; } })(); })();//# sourceMappingURL=jsontree.js.map \ No newline at end of file diff --git a/dist/jsontree.js.css b/dist/jsontree.js.css index 594462cb..ea935bf2 100644 --- a/dist/jsontree.js.css +++ b/dist/jsontree.js.css @@ -1,5 +1,5 @@ /* - * JsonTree.js Library v4.0.0 + * JsonTree.js Library v4.1.0 * * Copyright 2024 Bunoon * Released under the MIT License @@ -52,6 +52,9 @@ --json-tree-js-editable-text-color: var(--json-tree-js-color-snow-white); --json-tree-js-editable-background-color: #2d333b; --json-tree-js-editable-border-color: #454c56; + --json-tree-js-highlight-selected-color: #353e4b; + --json-tree-js-highlight-compare-color: #4a5768; + --json-tree-js-highlight-selected-border-color: #97a4b5; --json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color); --json-tree-js-tooltip-border-color: var(--json-tree-js-container-border-color); --json-tree-js-tooltip-text-color: var(--json-tree-js-color-white); @@ -69,6 +72,13 @@ --json-tree-js-button-text-color-hover: var(--json-tree-js-color-snow-white); --json-tree-js-button-background-color-active: #616b79; --json-tree-js-button-text-color-active: var(--json-tree-js-color-snow-white); + --json-tree-js-context-menu-background-color: var(--json-tree-js-container-background-color); + --json-tree-js-context-menu-border-color: var(--json-tree-js-container-border-color); + --json-tree-js-context-menu-text-color: var(--json-tree-js-color-white); + --json-tree-js-context-menu-item-background-color-hover: var(--json-tree-js-container-border-color); + --json-tree-js-context-menu-item-text-color-hover: var(--json-tree-js-color-snow-white); + --json-tree-js-context-menu-item-background-color-active: var(--json-tree-js-button-background-color-active); + --json-tree-js-context-menu-item-text-color-active: var(--json-tree-js-color-snow-white); --json-tree-js-setting-panel-background-color: var(--json-tree-js-button-background-color); --json-tree-js-checkbox-background-color-checked: var(--json-tree-js-color-white); --json-tree-js-checkbox-background-color: var(--json-tree-js-setting-panel-background-color); @@ -80,6 +90,7 @@ --json-tree-js-spacing: 10px; --json-tree-js-spacing-font-size: 0.85rem; --json-tree-js-spacing-arrow-toggle-size: 12px; + --json-tree-js-spacing-title-bar: calc( ( var(--json-tree-js-spacing) / 2 ) + 2px ); --json-tree-js-transition: all .3s; --json-tree-js-animation-length: 0.5s; } @@ -206,7 +217,7 @@ div.json-tree-js div.right-arrow { */ div.json-tree-js div.title-bar { display: flex; - padding: calc(var(--json-tree-js-spacing) / 2); + padding: var(--json-tree-js-spacing-title-bar); background-color: var(--json-tree-js-color-dark-black); border-radius: var(--json-tree-js-border-radius); border-bottom: var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size); @@ -222,7 +233,6 @@ div.json-tree-js div.title-bar button { padding-bottom: 5px; padding-left: 9px; padding-right: 9px; - margin: 3px; outline: none; transition: var(--json-tree-js-transition); } @@ -262,7 +272,7 @@ div.json-tree-js div.title-bar div.controls { white-space: nowrap; } div.json-tree-js div.title-bar div.controls button { - margin-left: calc(var(--json-tree-js-spacing) / 2) !important; + margin-left: var(--json-tree-js-spacing-title-bar) !important; } div.json-tree-js div.title-bar div.controls button.copy-all { display: none; @@ -339,7 +349,7 @@ div.json-tree-js div.side-menu { } div.json-tree-js div.side-menu div.side-menu-title-bar { display: flex; - padding: calc(var(--json-tree-js-spacing) / 2); + padding: var(--json-tree-js-spacing-title-bar); background-color: var(--json-tree-js-color-dark-black); border-radius: var(--json-tree-js-border-radius); border-bottom: var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size); @@ -369,7 +379,6 @@ div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-contr padding-bottom: 5px; padding-left: 9px; padding-right: 9px; - margin: 3px; outline: none; transition: var(--json-tree-js-transition); } @@ -386,7 +395,7 @@ div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-contr color: var(--json-tree-js-button-text-color-hover); } div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button { - margin-left: calc(var(--json-tree-js-spacing) / 2) !important; + margin-left: var(--json-tree-js-spacing-title-bar) !important; font-weight: var(--json-tree-js-bold-weight-heavy); min-width: 30px; min-height: 30px; @@ -528,7 +537,7 @@ div.json-tree-js div.editable { cursor: text !important; outline: none; box-shadow: none; - white-space: pre; + white-space: pre !important; } div.json-tree-js div.contents { display: flex; @@ -547,6 +556,29 @@ div.json-tree-js div.contents div.contents-column-multiple { overflow: auto; padding-right: var(--json-tree-js-spacing); margin-right: var(--json-tree-js-spacing); + white-space: nowrap; +} +div.json-tree-js div.contents div.contents-column div.contents-column-line-numbers, +div.json-tree-js div.contents div.contents-column-multiple div.contents-column-line-numbers { + position: relative; + vertical-align: top; + display: inline-block; + left: 0; +} +div.json-tree-js div.contents div.contents-column div.contents-column-line-numbers div.contents-column-line-number, +div.json-tree-js div.contents div.contents-column-multiple div.contents-column-line-numbers div.contents-column-line-number { + position: absolute; + display: flex; + align-items: center; + left: 0; + padding-right: var(--json-tree-js-spacing); +} +div.json-tree-js div.contents div.contents-column div.contents-column-lines, +div.json-tree-js div.contents div.contents-column-multiple div.contents-column-lines { + vertical-align: top; + display: inline-block; + width: fit-content; + height: fit-content; } div.json-tree-js div.contents div.contents-column div.column-control-buttons, div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons { @@ -559,7 +591,7 @@ div.json-tree-js div.contents div.contents-column-multiple div.column-control-bu border-bottom-left-radius: var(--json-tree-js-border-radius); border-bottom: var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color); border-left: var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color); - padding: calc(var(--json-tree-js-spacing) / 2); + padding: var(--json-tree-js-spacing-title-bar); z-index: 50; } div.json-tree-js div.contents div.contents-column div.column-control-buttons button, @@ -572,7 +604,6 @@ div.json-tree-js div.contents div.contents-column-multiple div.column-control-bu padding-bottom: 5px; padding-left: 9px; padding-right: 9px; - margin: 3px; outline: none; transition: var(--json-tree-js-transition); } @@ -593,12 +624,16 @@ div.json-tree-js div.contents div.contents-column-multiple div.column-control-bu } div.json-tree-js div.contents div.contents-column div.column-control-buttons button, div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button { - margin-bottom: calc(var(--json-tree-js-spacing) / 2); + margin-bottom: var(--json-tree-js-spacing-title-bar); font-weight: var(--json-tree-js-bold-weight-heavy); min-width: 30px; min-height: 30px; text-align: center; } +div.json-tree-js div.contents div.contents-column div.column-control-buttons button:last-child, +div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:last-child { + margin-bottom: 0; +} div.json-tree-js div.contents div.contents-column:last-child, div.json-tree-js div.contents div.contents-column-multiple:last-child { padding-right: 0; @@ -774,6 +809,14 @@ div.json-tree-js div.object-type-title span.closed-symbols { font-weight: var(--json-tree-js-bold-weight-light); color: var(--json-tree-js-color-snow-white) !important; } +div.json-tree-js div.object-type-title span.closed-symbols:hover { + transition: var(--json-tree-js-transition); + transition-property: opacity; +} +div.json-tree-js div.object-type-title span.closed-symbols:hover:not(.no-hover):not(.editable):hover { + cursor: pointer; + opacity: 0.7; +} /* ------------------------------------------------------------------------- @@ -819,6 +862,14 @@ div.json-tree-js div.object-type-contents span.closed-symbols { font-weight: var(--json-tree-js-bold-weight-light); color: var(--json-tree-js-color-snow-white) !important; } +div.json-tree-js div.object-type-contents span.closed-symbols { + transition: var(--json-tree-js-transition); + transition-property: opacity; +} +div.json-tree-js div.object-type-contents span.closed-symbols:not(.no-hover):not(.editable):hover { + cursor: pointer; + opacity: 0.7; +} div.json-tree-js div.object-type-contents div.closing-symbol div { display: inline-block !important; } @@ -832,6 +883,9 @@ div.json-tree-js div.object-type-contents div.object-type-value { margin-bottom: calc(var(--json-tree-js-spacing) / 2); margin-left: calc(var(--json-tree-js-spacing) * 2); } +div.json-tree-js div.object-type-contents div.object-type-value div.object-type-value-title { + width: fit-content; +} div.json-tree-js div.object-type-contents div.object-type-value img { vertical-align: middle; } @@ -840,13 +894,27 @@ div.json-tree-js div.object-type-contents div.object-type-value span.split { margin-right: calc(var(--json-tree-js-spacing) / 2); font-weight: var(--json-tree-js-bold-weight-light); } -div.json-tree-js div.object-type-contents div.object-type-value span.type, -div.json-tree-js div.object-type-contents div.object-type-value span.type-color { +div.json-tree-js div.object-type-contents div.object-type-value div.highlight-selected, +div.json-tree-js div.object-type-contents div.object-type-value div.highlight-compare { + padding: calc(var(--json-tree-js-spacing) / 2); + border-radius: var(--json-tree-js-border-radius); + transition: var(--json-tree-js-transition); + transition-property: background-color, border, padding; +} +div.json-tree-js div.object-type-contents div.object-type-value div.highlight-selected { + background-color: var(--json-tree-js-highlight-selected-color); + border: var(--json-tree-js-border-size) dashed var(--json-tree-js-highlight-selected-border-color); +} +div.json-tree-js div.object-type-contents div.object-type-value div.highlight-compare { + background-color: var(--json-tree-js-highlight-compare-color); +} +div.json-tree-js div.object-type-contents div.object-type-value span.data-type, +div.json-tree-js div.object-type-contents div.object-type-value span.data-type-color { margin-left: calc(var(--json-tree-js-spacing) / 2); font-style: italic; font-size: smaller; } -div.json-tree-js div.object-type-contents div.object-type-value span.type-color { +div.json-tree-js div.object-type-contents div.object-type-value span.data-type-color { color: var(--json-tree-js-color-light-gray); } div.json-tree-js div.object-type-contents div.object-type-value span.value, @@ -978,6 +1046,61 @@ div.json-tree-js div.checkbox label.checkbox span.check-mark::before { border-width: 0 3px 3px 0; } +/* + ------------------------------------------------------------------------- + JsonTree.js - Context Menu + ------------------------------------------------------------------------- +*/ +div.jsontree-js-context-menu { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + cursor: default; + box-sizing: border-box; + line-height: normal; + font-family: var(--json-tree-js-default-font); + animation: fade-in-animation var(--json-tree-js-animation-length); + position: absolute; + background-color: var(--json-tree-js-context-menu-background-color); + border: var(--json-tree-js-border-size) solid var(--json-tree-js-context-menu-border-color); + color: var(--json-tree-js-context-menu-text-color); + border-radius: var(--json-tree-js-border-radius); + z-index: 2000; + max-width: 300px; + font-size: var(--json-tree-js-spacing-font-size); + font-weight: var(--json-tree-js-bold-weight-light); + overflow: hidden; + display: none; +} +div.jsontree-js-context-menu div.context-menu-item { + border-bottom: var(--json-tree-js-border-size) dotted var(--json-tree-js-tooltip-border-color); + padding: var(--json-tree-js-spacing); + transition: var(--json-tree-js-transition); + transition-property: background-color, color; + padding-right: 40px; +} +div.jsontree-js-context-menu div.context-menu-item span.symbol { + margin-right: var(--json-tree-js-spacing); + font-weight: var(--json-tree-js-bold-weight-heavy); +} +div.jsontree-js-context-menu div.context-menu-item span.text { + font-weight: var(--json-tree-js-bold-weight-light); +} +div.jsontree-js-context-menu div.context-menu-item:active { + background: var(--json-tree-js-context-menu-item-background-color-active) !important; + color: var(--json-tree-js-context-menu-item-text-color-active) !important; +} +div.jsontree-js-context-menu div.context-menu-item:hover { + cursor: pointer; + background: var(--json-tree-js-context-menu-item-background-color-hover); + color: var(--json-tree-js-context-menu-item-text-color-hover); +} +div.jsontree-js-context-menu div.context-menu-item:last-child { + border-bottom: none; +} + /* ------------------------------------------------------------------------- JsonTree.js - ToolTip diff --git a/dist/jsontree.js.css.map b/dist/jsontree.js.css.map index 3a5f117e..0c82aad6 100644 --- a/dist/jsontree.js.css.map +++ b/dist/jsontree.js.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../src/jsontree.js.scss","../src/sass/_styles.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EAEI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAcA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EC1HI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;ED6GA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EC5IA;EACA;;AD8II;EC/IJ;EACA;;;ADqJJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEI;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AC5OJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;ADuNJ;ECxHJ;EACA;EACA;EACA;;ADyHI;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EAHJ;IAIQ;;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAGJ;AAAA;AAAA;EAGI;;AAGJ;EACI;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;ACxXZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;ADmWI;EACI;ECrQhB;EACA;EACA;EACA;;ADyQI;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAKZ;EACI;EACA;EACA;;AC5ZhB;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AD4UY;EACI;;AAOpB;EACI;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGI;EACI;EACA;;AAIR;AAAA;EAEI;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AC7fZ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;EACA;;ADweI;AAAA;EACI;EC1YhB;EACA;EACA;EACA;;AD6YQ;AAAA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;ACnfR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;ADoaA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;EAEA;EACA;;AAEA;EACI;EACA;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAQQ;AAAA;EAEI;EACA;EACA;;AAIA;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;;AAEA;AAAA;EACI;EACA;;AAIR;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;AAAA;EAEI;;AAEA;AAAA;EACI;EACA;;AAIR;EACI;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;;AAEA;EC11BJ;EACA;EACA;EACA;EACA;EACA;EDu1BQ;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;ECp6BI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;EDw5BA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;IACI;;EAEJ;IACI","file":"jsontree.js.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/jsontree.js.scss","../src/sass/_styles.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EAEI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAcA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EAGA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;ECzII;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;ED4HA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EC3JA;EACA;;AD6JI;EC9JJ;EACA;;;ADoKJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEI;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AC3PJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;ADuOJ;ECxIJ;EACA;EACA;EACA;;ADyII;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EAHJ;IAIQ;;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAGJ;AAAA;AAAA;EAGI;;AAGJ;EACI;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;ACvYZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;ADmXI;EACI;ECrRhB;EACA;EACA;EACA;;ADyRI;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAKZ;EACI;EACA;EACA;;AC5ahB;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AD4VY;EACI;;AAOpB;EACI;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGI;EACI;EACA;;AAIR;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;EACA;EACA;;AAIR;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ACniBZ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;EACA;;AD+gBI;AAAA;EACI;ECjbhB;EACA;EACA;EACA;;ADkbgB;AAAA;EACI;;AAKZ;AAAA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AC9hBR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AD+cA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;EAEA;EACA;;AAEA;EACI;EACA;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAQQ;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;;AAKJ;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;;AAGJ;AAAA;EAEI;EACA;;AAEA;AAAA;EACI;EACA;;AAIR;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;AAAA;EAEI;;AAEA;AAAA;EACI;EACA;;AAIR;EACI;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;;AAEA;EC76BJ;EACA;EACA;EACA;EACA;EACA;ED06BQ;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAQpB;AAAA;AAAA;AAAA;AAAA;AAMA;ECv/BI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;ED0+BA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;EChjCI;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;EDoiCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;IACI;;EAEJ;IACI","file":"jsontree.js.css"} \ No newline at end of file diff --git a/dist/jsontree.js.map b/dist/jsontree.js.map index 49be9614..bd1b1919 100644 --- a/dist/jsontree.js.map +++ b/dist/jsontree.js.map @@ -1 +1 @@ -{"version":3,"sources":["/Users/williamtroup/Documents/GitHub%20Repos/JsonTree.js/dist/jsontree.js"],"names":["DataType","DataType2","Is","Is2","String","String2","hexColor","value","valid","length","isNaN","substring","rgbColor","startsWith","endsWith","boolean","object","toString","toLowerCase","trim","date","dateTimeString","regExp","match","guid","regex","test","bigInt","result2","defined","definedObject","definedBoolean","definedString","definedFunction","definedNumber","definedBigInt","definedArray","Array","definedDate","Date","definedFloat","definedSymbol","definedRegExp","RegExp","definedMap","Map","WeakMap","definedSet","Set","WeakSet","definedImage","Image","definedHtml","HTMLElement","definedUrl","data","url","URL","protocol","definedEmail","invalidOptionArray","array","minimumLength","Convert2","Convert","stringifyJson","_","configuration2","symbolToString","Default","getFunctionName","name","mapToObject","setToArray","source","src","stringToDataTypeValue","oldValue","newValue","parseFloat","parseInt","BigInt","Symbol","e","htmlToObject","addCssStyles","attributesLength","attributes","childrenLength","children","childrenKeyName","textKeyName","valueCloned","cloneNode","valueClonedChildrenLength","nodeType","Node","TEXT_NODE","removeChild","innerText","attributeIndex","attribute","nodeName","nodeValue","childIndex","push","computedStyles","getComputedStyle","computedStylesLength","cssComputedStyleIndex","cssComputedStyleName","cssComputedStyleNameStorage","cssComputedValue","getPropertyValue","map","Object","fromEntries","entries","set","from","values","jsonStringToObject","objectString","configuration","result","parsed","JSON","parse","e1","eval","e2","safeMode","console","error","text","objectErrorText","replace","message","numberToFloatWithDecimalPlaces","decimalPlaces","stringToBigInt","Default2","getAnyString","defaultValue","getString","getBoolean","getNumber","getFunction","getArray","getObject","getNumberMinimum","minimum","getNumberMaximum","maximum","getStringOrArray","split","isLambda","valueParts","valueNameParts","functionBrackets","join","functionText","getObjectFromUrl","callback","request","XMLHttpRequest","open","send","onreadystatechange","readyState","status","responseText","dataJson","DomElement","DomElement2","find","tagTypes","func","tagTypesLength","tagTypeIndex","domElements","document","getElementsByTagName","elements","slice","call","elementsLength","elementIndex","create","container","type","className","beforeNode","isText","createTextNode","createElement","insertBefore","appendChild","createWithHTML","html","element","innerHTML","createWithNoContainer","cancelBubble","preventDefault","stopPropagation","getScrollPosition","documentElement","left","scrollLeft","clientLeft","top","scrollTop","clientTop","showElementAtMousePosition","offset","pageX","pageY","scrollPosition","style","display","offsetWidth","window","innerWidth","offsetHeight","innerHeight","selectAllText","range","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","createCheckBox","labelText","checked","spanClass","additionalText","lineContainer","label","input","autocomplete","Str","Str2","padNumber","number","paddingCharacter","numberString","numberResult","arrayLength","capitalizeFirstLetter","string","charAt","toUpperCase","DateTime","DateTime2","getWeekdayNumber","getDay","getDayOrdinal","thText","stText","ndText","rdText","getCustomFormattedDateText","dateFormat","weekDayNumber","getHours","getMinutes","getSeconds","getMilliseconds","dayNames","dayNamesAbbreviated","getDate","monthNames","getMonth","monthNamesAbbreviated","getFullYear","Number","Constants","Constants2","JSONTREE_JS_ATTRIBUTE_NAME","JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME","JSONTREE_JS_ATTRIBUTE_PATH_NAME","Binding","Binding2","Options","Options2","getForNewInstance","bindingOptions","get","allowEditing","_currentView","dataArrayCurrentIndex","paging","startPage","columnsPerPage","titleBarButtons","valueClickTimerId","editMode","idSet","contentPanelsOpen","contentPanelsIndex","contentPanelsDataIndex","backButton","nextButton","disabledBackground","sideMenu","sideMenuChanged","toggleFullScreenButton","fullScreenOn","dragAndDropBackground","initialized","contentColumns","footer","footerStatusText","footerDataTypeText","footerLengthText","footerSizeText","footerPageText","footerStatusTextTimerId","columnDragging","columnDraggingDataIndex","dataTypeCounts","contentControlButtons","enabled","key","bulk","newOptions","options","showObjectSizes","useZeroIndexingForArrays","dateTimeFormat","showArrowToggles","showStringQuotes","showAllAsClosed","sortPropertyNames","sortPropertyNamesInAlphabeticalOrder","showCommas","reverseArrayValues","addArrayIndexPadding","showValueColors","maximumDecimalPlaces","maximumStringLength","fileDroppingEnabled","jsonIndentSpaces","showArrayIndexBrackets","showOpeningClosingCurlyBraces","showOpeningClosingSquaredBrackets","includeTimeZoneInDateTimeEditing","shortcutKeysEnabled","openInFullScreenMode","valueToolTips","editingValueClickDelay","showDataTypes","logJsonValueToolTipPaths","exportFilenameFormat","showPropertyNameQuotes","showOpenedObjectArrayBorders","showPropertyNameAndIndexColors","showUrlOpenButtons","showEmailOpenButtons","minimumArrayIndexPadding","arrayIndexPaddingCharacter","maximumUrlLength","maximumEmailLength","showCssStylesForHtmlObjects","jsonPathAny","jsonPathSeparator","showChildIndexes","getPaging","getTitle","getFooter","getControlPanel","getIgnore","getToolTip","getParse","getAllowEditing","getSideMenu","getAutoClose","getCustomTriggers","synchronizeScrolling","allowColumnReordering","title","showCloseOpenAllButtons","showCopyButton","enableFullScreenToggling","showFullScreenButton","showLengths","showSizes","showPageOf","statusResetDelay","controlPanel","showMovingButtons","showRemoveButton","showEditButton","showSwitchToPagesButton","ignore","nullValues","functionValues","unknownValues","booleanValues","floatValues","numberValues","stringValues","dateValues","objectValues","arrayValues","bigintValues","symbolValues","emptyObjects","undefinedValues","guidValues","colorValues","regexpValues","mapValues","setValues","urlValues","imageValues","emailValues","htmlValues","lambdaValues","tooltip","delay","stringsToDates","stringsToBooleans","stringsToNumbers","defaultFlag","bigIntValues","regExpValues","propertyNames","showImportButton","showExportButton","titleText","showAvailableDataTypeCounts","showOnlyDataTypesAvailable","autoClose","objectSize","arraySize","mapSize","setSize","htmlSize","events","onBeforeRender","onRenderComplete","onValueClick","onRefresh","onCopyAll","onOpenAll","onCloseAll","onDestroy","onBooleanRender","onFloatRender","onNumberRender","onBigIntRender","onStringRender","onDateRender","onFunctionRender","onNullRender","onUnknownRender","onSymbolRender","onCopyJsonReplacer","onUndefinedRender","onGuidRender","onColorRender","onJsonEdit","onRegExpRender","onExport","onUrlRender","onImageRender","onEmailRender","onLambdaRender","onCopy","onFullScreenChange","Config","Config2","newConfiguration","domElementTypes","getText","objectText","arrayText","mapText","setText","htmlText","closeAllButtonText","openAllButtonText","copyAllButtonText","attributeNotValidErrorText","attributeNotSetErrorText","ellipsisText","closeAllButtonSymbolText","openAllButtonSymbolText","copyButtonSymbolText","backButtonText","nextButtonText","backButtonSymbolText","nextButtonSymbolText","noJsonToViewText","sideMenuButtonSymbolText","sideMenuButtonText","closeButtonSymbolText","closeButtonText","showDataTypesText","selectNoneText","importButtonSymbolText","importButtonText","fullScreenOnButtonSymbolText","fullScreenOffButtonSymbolText","fullScreenButtonText","copyButtonText","dragAndDropSymbolText","dragAndDropTitleText","dragAndDropDescriptionText","exportButtonSymbolText","exportButtonText","propertyColonCharacter","noPropertiesText","openText","openSymbolText","waitingText","pageOfText","sizeText","copiedText","exportedText","importedText","ignoreDataTypesUpdated","lengthText","valueUpdatedText","jsonUpdatedText","nameUpdatedText","indexUpdatedText","itemDeletedText","arrayJsonItemDeleted","dataTypeText","editSymbolButtonText","editButtonText","moveRightSymbolButtonText","moveRightButtonText","moveLeftSymbolButtonText","moveLeftButtonText","removeSymbolButtonText","removeButtonText","switchToPagesSymbolText","switchToPagesText","Trigger","Trigger2","customEvent","triggerFunction","args","apply","ToolTip","ToolTip2","renderControl","body","assignToEvents","add2","addEventListener_Window","addEventListener","removeEventListener","addEventListener_Document","hide","add","tooltipClass","show","tooltipTimerId","setTimeout","clearTimeout","remove","parentNode","Arr","Arr2","getIndex","index","getIndexName","largestValue","paddingLength","getIndexFromBrackets","propertyName","moveIndex","arrayData","oldIndex","newIndex","splice","Size","Size2","of","bytes","getSize","Math","floor","log","pow","length2","itemKey","hasOwnProperty","arrayIndex","Obj","Obj2","getPropertyNames","properties","collator","Intl","Collator","numeric","sensitivity","sort","compare","reverse","_configuration","_elements_Data","_elements_Data_Count","_jsonStringifyReplacer","render","hasAttribute","bindingOptionsData","getAttribute","id","crypto","randomUUID","removeAttribute","classList","renderControlContainer","buildDocumentEvents","isForPageSwitch","ajaxData","renderControlContainerForData","scrollTopsForColumns","getContentColumnScrollTops","renderControlTitleBar","contents","pageIndex","actualDataIndex","actualData","renderControlContentsPanel","renderControlSideMenu","renderControlFooterBar","renderControlDragAndDrop","dataIndex","totalColumns","enableColumnOrder","contentsColumn","noJson","importText","onclick","onSideMenuImportClick","onscroll","onContentsColumnScroll","setAttribute","ondragstart","onContentsColumnDragStart","ondragend","onContentsColumnDragEnd","ondragover","ondrop","onContentsColumnDrop","renderArray","renderObject","renderControlContentsControlButtons","ondblclick","enableContentsColumnEditMode","statusBarMessage","stringify","focus","onblur","setFooterStatusText","onkeydown","code","isCommandKey","newData","execCommand","contentColumnsLength","contentColumnIndex","column","columnsLength","controlButtons","right","columnIndex","moveDataArrayIndex","dataArray1","dataArray2","dataPanelsOpen1","dataPanelsOpen2","isPagingEnabled","editButton","moveRightButton","disabled","moveLeftButton","copyButton","openAllButton","onOpenAllForPage","closeAllButton","onCloseAllForPage","removeButton","onRemoveArrayJson","switchToPagesButton","onSwitchToPages","minHeight","panels","panelId","replaceFunction","copyDataJson","navigator","clipboard","writeText","titleBar","onTitleBarDblClick","sideMenuButton","onSideMenuOpen","onTitleBarCopyAllClick","onBackPage","onNextPage","buttonText","contains","updateFooterDisplay","onSideMenuClose","titleBarText","titleBarControls","exportButton","importButton","closeButton","addSideMenuIgnoreTypes","accept","multiple","onchange","importFromFiles","files","click","checkboxes","ignoreTypes","selectAll","selectNone","changeSidePanelCheckboxSelection","ignoreTypesContent","dataTypes","keys","forEach","createSideMenuIgnoreTypeCheckBox","flag","checkboxesLength","checkboxIndex","dataTypeDisplayCount","checkBoxName","checkBoxAdditionalText","getFooterPageText","currentPage","ceil","totalPages","currentReplacement","toFixed","outerHTML","totalReplacement","addFooterDataTypeStatus","dataType","valueElement","replacement","addFooterLengthStatus","addFooterSizeStatus","size","statusText","propertyCount","mainTitle","objectTypeTitle","objectTypeContents","arrow","openingBrace","closedBraces","addObjectContentsBorder","dataArrayIndex","renderObjectValues","addValueClickEvent","openingBracket","closedBrackets","renderArrayValues","coma","addNoArrowToClosingSymbol","isLastItem","jsonPath","parentType","preventEditing","propertiesAdded","propertiesLength","propertiesLengthForAutoClose","renderValue","propertyIndex","newJsonPath","createClosingSymbol","addArrowEvent","dataLength","dataLengthForAutoClose","dataIndex1","actualIndex","dataIndex2","isArrayItem","objectTypeValue","valueClass","ignored","ignoredDataType","nameElement","typeElement","isForEmptyProperties","assignClickEvent","makePropertyNameEditable","createComma","functionName","makePropertyValueEditable","color","newUrlValue","openButton","newEmailValue","newStringValue","image","htmlObject","objectTitle","arrayTypeContents","valueObject","updateDataTypeCount","addValueElementToolTip","objectContents","jsonPathParts","jsonPathPartsLength","jsonPathPartIndex","originalPropertyName","originalArrayIndex","newPropertyName","newArrayIndex","originalValue","originalPropertyValue","propertyValue","newPropertyValue","newDataPropertyValue","openingSymbol","hideFunc","showFunc","conditionFunc","condition","isClosed","symbol","addNoArrow","symbolContainer","dragAndDropText","onDragStart","ondragenter","ondragleave","onDropFiles","FileReader","dataTransfer","filesLength","filesRead","filesData","onFileLoad","onSetJson","fileIndex","file","fileExtension","pop","importFromJson","reader","renderData","onloadend","onload","json","target","readAsText","tempLink","encodeURIComponent","getExportFilename","filename","addEvents","documentFunc","onWindowKeyDown","ctrlKey","metaKey","destroyElement","_public","refresh","elementId","refreshAll","renderAll","openAll","closeAll","backPage","nextPage","getPageNumber","setJson","jsonObject","jsonResult","getJson","updateBindingOptions","currentView","getBindingOptions","destroy","destroyAll","setConfiguration","configurationHasChanged","newInternalConfiguration","getIds","getVersion","$jsontree"],"mappings":"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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["/Users/williamtroup/Documents/GitHub%20Repos/JsonTree.js/dist/jsontree.js"],"names":["DataType","DataType2","Is","Is2","String","String2","hexColor","value","valid","length","isNaN","substring","rgbColor","startsWith","endsWith","boolean","object","toString","toLowerCase","trim","date","dateTimeString","regExp","match","guid","regex","test","bigInt","result2","symbol","defined","definedObject","definedBoolean","definedString","definedFunction","definedNumber","definedBigInt","definedArray","Array","definedDate","Date","definedFloat","definedSymbol","definedRegExp","RegExp","definedMap","Map","WeakMap","definedSet","Set","WeakSet","definedImage","Image","definedHtml","HTMLElement","definedUrl","data","url","URL","protocol","definedEmail","invalidOptionArray","array","minimumLength","Convert2","Convert","toJsonStringifyClone","configuration2","bindingOptions","includeTimeZoneInDates","JSON","stringify","replace","symbolToString","Default","getFunctionName","name","source","src","htmlToObject","showCssStylesForHtmlObjects","arrayLength","arrayIndex","push","setToArray","obj","mapToObject","key","hasOwnProperty","stringToDataTypeValue","oldValue","newValue","parseFloat","parseInt","BigInt","Symbol","exception","addCssStyles","attributesLength","attributes","childrenLength","children","childrenKeyName","textKeyName","valueCloned","cloneNode","valueClonedChildrenLength","nodeType","Node","TEXT_NODE","removeChild","innerText","attributeIndex","attribute","nodeName","nodeValue","childIndex","computedStyles","getComputedStyle","computedStylesLength","cssComputedStyleIndex","cssComputedStyleName","cssComputedStyleNameStorage","cssComputedValue","getPropertyValue","map","Object","fromEntries","entries","set","from","values","jsonStringToObject","objectString","configuration","result","parsed","parse","exception1","eval","exception2","safeMode","console","error","text","objectErrorText","message","numberToFloatWithDecimalPlaces","decimalPlaces","stringToBigInt","Default2","getAnyString","defaultValue","getString","getBoolean","getNumber","getFunction","getArray","getObject","getNumberMinimum","minimum","getNumberMaximum","maximum","getStringOrArray","split","isLambda","valueParts","valueNameParts","functionBrackets","join","functionText","getObjectFromUrl","callback","request","XMLHttpRequest","open","send","onreadystatechange","readyState","status","responseText","dataJson","DomElement","DomElement2","find","tagTypes","func","tagTypesLength","tagTypeIndex","domElements","document","getElementsByTagName","elements","slice","call","elementsLength","elementIndex","create","container","type","className","beforeNode","isText","createTextNode","createElement","insertBefore","appendChild","createWithHTML","html","element","innerHTML","createWithNoContainer","cancelBubble","ev","preventDefault","stopPropagation","getScrollPosition","documentElement","left","scrollLeft","clientLeft","top","scrollTop","clientTop","showElementAtMousePosition","offset","pageX","pageY","scrollPosition","style","display","offsetWidth","window","innerWidth","offsetHeight","innerHeight","selectAllText","range","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","createCheckBox","labelText","checked","spanClass","additionalText","lineContainer","label","input","autocomplete","getOffset","position","offsetLeft","offsetTop","offsetParent","Str","Str2","padNumber","number","paddingCharacter","numberString","numberResult","capitalizeFirstLetter","string","charAt","toUpperCase","DateTime","DateTime2","getWeekdayNumber","getDay","getDayOrdinal","thText","stText","ndText","rdText","getCustomFormattedDateText","dateFormat","weekDayNumber","getHours","getMinutes","getSeconds","getMilliseconds","dayNames","dayNamesAbbreviated","getDate","monthNames","getMonth","monthNamesAbbreviated","getFullYear","Number","Constants","Constants2","JSONTREE_JS_ATTRIBUTE_NAME","JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME","JSONTREE_JS_ATTRIBUTE_PATH_NAME","Binding","Binding2","Options","Options2","getForNewInstance","get","allowEditing","_currentView","currentDataArrayPageIndex","paging","startPage","columnsPerPage","titleBarButtons","valueClickTimerId","editMode","idSet","contentPanelsOpen","contentPanelsIndex","contentPanelsDataIndex","backButton","nextButton","disabledBackground","sideMenu","sideMenuChanged","toggleFullScreenButton","fullScreenOn","dragAndDropBackground","initialized","currentContentColumns","footer","footerStatusText","footerDataTypeText","footerLengthText","footerSizeText","footerPageText","footerStatusTextTimerId","columnDragging","columnDraggingDataIndex","dataTypeCounts","contextMenu","currentColumnBuildingIndex","selectedValues","enabled","bulk","newOptions","options","showObjectSizes","useZeroIndexingForArrays","dateTimeFormat","showArrowToggles","showStringQuotes","showAllAsClosed","sortPropertyNames","sortPropertyNamesInAlphabeticalOrder","showCommas","reverseArrayValues","addArrayIndexPadding","showValueColors","maximumDecimalPlaces","maximumStringLength","fileDroppingEnabled","jsonIndentSpaces","showArrayIndexBrackets","showOpeningClosingCurlyBraces","showOpeningClosingSquaredBrackets","shortcutKeysEnabled","openInFullScreenMode","valueToolTips","editingValueClickDelay","showDataTypes","logJsonValueToolTipPaths","exportFilenameFormat","showPropertyNameQuotes","showOpenedObjectArrayBorders","showPropertyNameAndIndexColors","showUrlOpenButtons","showEmailOpenButtons","minimumArrayIndexPadding","arrayIndexPaddingCharacter","maximumUrlLength","maximumEmailLength","jsonPathAny","jsonPathSeparator","showChildIndexes","showClosedArraySquaredBrackets","showClosedObjectCurlyBraces","convertClickedValuesToString","getPaging","title","getTitle","getFooter","controlPanel","getControlPanel","lineNumbers","getLineNumbers","ignore","getIgnore","tooltip","getToolTip","getParse","getAllowEditing","getSideMenu","autoClose","getAutoClose","events","getCustomTriggers","synchronizeScrolling","allowColumnReordering","allowComparisons","showCloseOpenAllButtons","showCopyButton","enableFullScreenToggling","showFullScreenButton","showLengths","showSizes","showPageOf","statusResetDelay","showMovingButtons","showRemoveButton","showEditButton","showSwitchToPagesButton","padNumbers","addDots","nullValues","functionValues","unknownValues","booleanValues","floatValues","numberValues","stringValues","dateValues","objectValues","arrayValues","bigintValues","symbolValues","emptyObjects","undefinedValues","guidValues","colorValues","regexpValues","mapValues","setValues","urlValues","imageValues","emailValues","htmlValues","lambdaValues","delay","stringsToDates","stringsToBooleans","stringsToNumbers","stringsToSymbols","defaultFlag","bigIntValues","regExpValues","propertyNames","properties","property","showImportButton","showExportButton","titleText","showAvailableDataTypeCounts","showOnlyDataTypesAvailable","objectSize","arraySize","mapSize","setSize","htmlSize","onBeforeRender","onRenderComplete","onValueClick","onRefresh","onCopyAll","onOpenAll","onCloseAll","onDestroy","onBooleanRender","onFloatRender","onNumberRender","onBigIntRender","onStringRender","onDateRender","onFunctionRender","onNullRender","onUnknownRender","onSymbolRender","onCopyJsonReplacer","onUndefinedRender","onGuidRender","onColorRender","onJsonEdit","onRegExpRender","onExport","onUrlRender","onImageRender","onEmailRender","onLambdaRender","onCopy","onFullScreenChange","Config","Config2","newConfiguration","domElementTypes","getText","objectText","arrayText","mapText","setText","htmlText","closeAllButtonText","openAllButtonText","copyAllButtonText","attributeNotValidErrorText","attributeNotSetErrorText","ellipsisText","closeAllButtonSymbolText","openAllButtonSymbolText","copyButtonSymbolText","backButtonText","nextButtonText","backButtonSymbolText","nextButtonSymbolText","noJsonToViewText","sideMenuButtonSymbolText","sideMenuButtonText","closeButtonSymbolText","closeButtonText","showDataTypesText","selectNoneText","importButtonSymbolText","importButtonText","fullScreenOnButtonSymbolText","fullScreenOffButtonSymbolText","fullScreenButtonText","copyButtonText","dragAndDropSymbolText","dragAndDropTitleText","dragAndDropDescriptionText","exportButtonSymbolText","exportButtonText","propertyColonCharacter","noPropertiesText","openText","openSymbolText","waitingText","pageOfText","sizeText","copiedText","exportedText","importedText","ignoreDataTypesUpdated","lengthText","valueUpdatedText","jsonUpdatedText","nameUpdatedText","indexUpdatedText","itemDeletedText","arrayJsonItemDeleted","dataTypeText","editSymbolButtonText","editButtonText","moveRightSymbolButtonText","moveRightButtonText","moveLeftSymbolButtonText","moveLeftButtonText","removeSymbolButtonText","removeButtonText","switchToPagesSymbolText","switchToPagesText","Trigger","Trigger2","customEvent","triggerFunction","args","apply","ToolTip","ToolTip2","renderControl","body","assignToEvents","add2","addEventListener_Window","addEventListener","removeEventListener","addEventListener_Document","hide","add","tooltipClass","show","tooltipTimerId","setTimeout","clearTimeout","remove","parentNode","Arr","Arr2","getIndex","index","getIndexName","largestValue","paddingLength","getIndexFromBrackets","propertyName","moveIndex","arrayData","oldIndex","newIndex","splice","removeNullOrUndefinedEntries","dataLength","dataIndex","Size","Size2","of","bytes","getSize","Math","floor","log","pow","itemKey","Obj","Obj2","getPropertyNames","collator","Intl","Collator","numeric","sensitivity","sort","compare","reverse","createFromValue","crypto","randomUUID","ContextMenu","ContextMenu2","addMenuItem","symbolText","menuItem","_configuration","_elements_Data","_elements_Data_Count","_key_Control_Pressed","render","hasAttribute","bindingOptionsData","getAttribute","id","removeAttribute","classList","renderControlContainer","buildDocumentEvents","isForPageSwitch","ajaxData","renderControlContainerForData","scrollTopsForColumns","getContentColumnScrollTops","renderControlTitleBar","contents","updatedData","pageIndex","actualDataIndex","actualData","renderControlContentsPanel","renderControlSideMenu","renderControlFooterBar","renderControlDragAndDrop","totalColumns","enableColumnOrder","contentsColumn","noJson","importText","onclick","onSideMenuImportClick","onscroll","onContentsColumnScroll","setAttribute","ondragstart","onContentsColumnDragStart","ondragend","onContentsColumnDragEnd","ondragover","ondrop","onContentsColumnDrop","renderValuesContainer","lines","columnLayout","column","controlButtons","renderArray","renderObject","renderControlColumnLineNumbers","renderControlContentsControlButtons","ondblclick","enableContentsColumnEditMode","statusBarMessage","focus","onblur","setFooterStatusText","onkeydown","ev2","code","isCommandKey","newData","execCommand","contentColumnsLength","contentColumnIndex","columnsLength","right","columnIndex","moveDataArrayIndex","dataArray1","dataArray2","dataPanelsOpen1","dataPanelsOpen2","columnLayoutIndex","lineNumberCount","firstLineTop","largestLineNumberWidth","valueElements","querySelectorAll","valueElementsLength","valueElementIndex","valueElement","elementTop","lineNumber","lineNumberDot","newTop","max","height","width","isPagingEnabled","editButton","moveRightButton","disabled","moveLeftButton","copyButton","openAllButton","onOpenAllForPage","closeAllButton","onCloseAllForPage","removeButton","onRemoveArrayJson","switchToPagesButton","onSwitchToPages","minHeight","panels","panelId","copyDataJson","navigator","clipboard","writeText","titleBar","onTitleBarDblClick","sideMenuButton","onSideMenuOpen","onTitleBarCopyAllClick","onBackPage","onNextPage","buttonText","contains","updateFooterDisplay","onSideMenuClose","titleBarText","titleBarControls","exportButton","importButton","closeButton","addSideMenuIgnoreTypes","accept","multiple","onchange","importFromFiles","files","click","closed","checkboxes","ignoreTypes","selectAll","selectNone","changeSidePanelCheckboxSelection","ignoreTypesContent","dataTypes","keys","forEach","_","createSideMenuIgnoreTypeCheckBox","flag","checkboxesLength","checkboxIndex","dataTypeDisplayCount","checkBoxName","checkBoxAdditionalText","getFooterPageText","currentPage","ceil","totalPages","currentReplacement","toFixed","outerHTML","totalReplacement","addFooterDataTypeStatus","dataType","replacement","addFooterLengthStatus","addFooterSizeStatus","size","statusText","propertyCount","mainTitle","objectTypeTitle","objectTypeContents","arrow","openingBrace","closedBraces","addObjectContentsBorder","dataArrayIndex","renderObjectValues","addValueClickEvent","renderValueContextMenuItems","openingBracket","closedBrackets","renderArrayValues","coma","addNoArrowToClosingSymbol","isLastItem","jsonPath","parentType","preventEditing","propertiesAdded","propertiesLength","propertiesLengthForAutoClose","renderValue","propertyIndex","newJsonPath","createClosingSymbol","addArrowEvent","dataLengthForAutoClose","dataIndex1","actualIndex","dataIndex2","isArrayItem","objectTypeValue","objectTypeValueTitle","valueClass","ignored","ignoredDataType","nameElement","typeElement","isForEmptyProperties","assignClickEvent","openButton","makePropertyNameEditable","selectItemAndCompareProperties","createComma","functionName","makePropertyValueEditable","color","newUrlValue","newEmailValue","newStringValue","image","htmlObject","objectTitle","arrayTypeContents","valueObject","updateDataTypeCount","addValueElementToolTip","objectContents","jsonPathParts","jsonPathPartsLength","jsonPathPartIndex","originalPropertyName","originalArrayIndex","newPropertyName","newArrayIndex","originalValue","originalPropertyValue","propertyValue","enableValueEditingMode","newPropertyValue","newDataPropertyValue","clickValue","openingSymbol","closedSymbols","columnLayoutProcessingIndex","hideFunc","updateLineNumbers","showFunc","removeSelectedItemsAndComparedProperties","conditionFunc","condition","isClosed","addNoArrow","symbolContainer","currentColumnIndex","itemIsSelected","columns","elementsHighlighted","isCompareColumnValuesEnabled","valueJsonPath","indexOf","classesRemoved","oncontextmenu","editMenuItem","onContextMenuItemEdit","copyMenuItem","onContextMenuItemCopy","removeMenuItem","onContextMenuItemRemove","copyValue","dragAndDropText","onDragStart","ondragenter","ondragleave","onDropFiles","FileReader","dataTransfer","filesLength","filesRead","filesData","onFileLoad","onSetJson","fileIndex","file","fileExtension","pop","importFromJson","reader","renderData","onloadend","onload","json","target","readAsText","tempLink","encodeURIComponent","getExportFilename","filename","addEvents","documentFunc","windowFunc","onDocumentKeyDown","onDocumentKeyUp","onWindowContextMenuOrClick","ctrlKey","metaKey","destroyElement","_public","refresh","elementId","refreshAll","renderAll","openAll","closeAll","backPage","nextPage","getPageNumber","setJson","jsonObject","jsonResult","getJson","updateBindingOptions","currentView","getBindingOptions","destroy","destroyAll","setConfiguration","configurationHasChanged","newInternalConfiguration","getIds","getVersion","$jsontree"],"mappings":"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","sourcesContent":[null]} \ No newline at end of file diff --git a/dist/jsontree.js.min.css b/dist/jsontree.js.min.css index 150c17cf..d74a8cff 100644 --- a/dist/jsontree.js.min.css +++ b/dist/jsontree.js.min.css @@ -1 +1 @@ -:root{--json-tree-js-default-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--json-tree-js-bold-weight-light: 300;--json-tree-js-bold-weight-medium: 600;--json-tree-js-bold-weight-heavy: 900;--json-tree-js-title-bold-weight: var(--json-tree-js-bold-weight-heavy);--json-tree-js-color-dark-black: #1c2128;--json-tree-js-color-black: #3b3a3a;--json-tree-js-color-white: #F5F5F5;--json-tree-js-color-snow-white: #F5F5F5;--json-tree-js-color-light-gray: #BBBBBB;--json-tree-js-color-array: #F28C28;--json-tree-js-color-object: var(--json-tree-js-color-snow-white);--json-tree-js-color-map: #BDB5D5;--json-tree-js-color-set: #FFD700;--json-tree-js-color-boolean: #FF0000;--json-tree-js-color-float: #e3c868;--json-tree-js-color-number: #666bf9;--json-tree-js-color-bigint: #6495ED;--json-tree-js-color-string: #78b13f;--json-tree-js-color-date: #a656f5;--json-tree-js-color-null: var(--json-tree-js-color-light-gray);--json-tree-js-color-undefined: var(--json-tree-js-color-null);--json-tree-js-color-symbol: #DAA06D;--json-tree-js-color-function: var(--json-tree-js-color-null);--json-tree-js-color-lambda: var(--json-tree-js-color-function);--json-tree-js-color-unknown: var(--json-tree-js-color-null);--json-tree-js-color-guid: #c45600;--json-tree-js-color-regexp: #AA336A;--json-tree-js-color-url: #00FFFF;--json-tree-js-color-email: #FA8072;--json-tree-js-color-link: #89CFF0;--json-tree-js-color-html: #FF00FF;--json-tree-js-editable-text-color: var(--json-tree-js-color-snow-white);--json-tree-js-editable-background-color: #2d333b;--json-tree-js-editable-border-color: #454c56;--json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color);--json-tree-js-tooltip-border-color: var(--json-tree-js-container-border-color);--json-tree-js-tooltip-text-color: var(--json-tree-js-color-white);--json-tree-js-side-menu-width: 320px;--json-tree-js-side-menu-right-border-width: calc( var(--json-tree-js-border-size) * 12 );--json-tree-js-container-background-color: #22272e;--json-tree-js-container-border-color: #454c56;--json-tree-js-container-object-left-border-color: #677180;--json-tree-js-paging-column-background-color: #272e37;--json-tree-js-paging-column-border-color: var(--json-tree-js-container-border-color);--json-tree-js-button-background-color: #2d333b;--json-tree-js-button-border-color: var(--json-tree-js-container-border-color);--json-tree-js-button-text-color: var(--json-tree-js-color-white);--json-tree-js-button-background-color-hover: var(--json-tree-js-container-border-color);--json-tree-js-button-text-color-hover: var(--json-tree-js-color-snow-white);--json-tree-js-button-background-color-active: #616b79;--json-tree-js-button-text-color-active: var(--json-tree-js-color-snow-white);--json-tree-js-setting-panel-background-color: var(--json-tree-js-button-background-color);--json-tree-js-checkbox-background-color-checked: var(--json-tree-js-color-white);--json-tree-js-checkbox-background-color: var(--json-tree-js-setting-panel-background-color);--json-tree-js-checkbox-border-color-checked: var(--json-tree-js-checkbox-background-color-checked);--json-tree-js-checkbox-border-color: var(--json-tree-js-color-white);--json-tree-js-border-radius-editable: 0.25rem;--json-tree-js-border-radius: 0.5rem;--json-tree-js-border-size: 0.5px;--json-tree-js-spacing: 10px;--json-tree-js-spacing-font-size: 0.85rem;--json-tree-js-spacing-arrow-toggle-size: 12px;--json-tree-js-transition: all .3s;--json-tree-js-animation-length: 0.5s}div.json-tree-js{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--json-tree-js-default-font) !important;display:inline-block;position:relative;border-radius:var(--json-tree-js-border-radius);background-color:var(--json-tree-js-container-background-color);color:var(--json-tree-js-color-white);border:var(--json-tree-js-border-size) solid var(--json-tree-js-container-border-color);font-size:var(--json-tree-js-spacing-font-size);font-weight:var(--json-tree-js-bold-weight-light);width:100%;overflow:hidden;margin:0 !important;max-width:500px}div.json-tree-js *.draggable-item{overflow:hidden !important}div.json-tree-js button{font-family:var(--json-tree-js-default-font)}div.json-tree-js div.no-click{pointer-events:none !important}div.json-tree-js div.page-switch{animation:fade-in-animation var(--json-tree-js-animation-length)}div.json-tree-js *{box-sizing:border-box;line-height:normal}div.json-tree-js *::before,div.json-tree-js *::after{box-sizing:border-box;line-height:normal}div.full-screen{position:fixed;display:flex;flex-direction:column;top:0;left:0;height:100%;width:100%;max-width:none;border-radius:0;border:none;z-index:1000}div.full-screen div.title-bar,div.full-screen div.footer-bar{border-radius:0 !important}div.full-screen div.contents{flex-grow:1;position:relative;max-height:none !important;overflow:auto}div.full-screen div.contents div.no-json{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}div.json-tree-js div.no-arrow{display:inline-block;width:var(--json-tree-js-spacing-arrow-toggle-size);height:8px;margin-right:calc(var(--json-tree-js-spacing))}div.json-tree-js div.down-arrow,div.json-tree-js div.right-arrow{display:inline-block;width:0;height:0;margin-right:calc(var(--json-tree-js-spacing));cursor:pointer;transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.down-arrow:hover,div.json-tree-js div.right-arrow:hover{opacity:.7}div.json-tree-js div.down-arrow{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:8px solid var(--json-tree-js-color-white)}div.json-tree-js div.right-arrow{border-top:5px solid rgba(0,0,0,0);border-bottom:5px solid rgba(0,0,0,0);border-left:var(--json-tree-js-spacing-arrow-toggle-size) solid var(--json-tree-js-color-white)}div.json-tree-js div.title-bar{display:flex;padding:calc(var(--json-tree-js-spacing)/2);background-color:var(--json-tree-js-color-dark-black);border-radius:var(--json-tree-js-border-radius);border-bottom:var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size);justify-content:left;align-items:center}div.json-tree-js div.title-bar button{background-color:var(--json-tree-js-button-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color);color:var(--json-tree-js-button-text-color);border-radius:var(--json-tree-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;margin:3px;outline:none;transition:var(--json-tree-js-transition)}div.json-tree-js div.title-bar button:disabled{color:var(--json-tree-js-button-border-color)}div.json-tree-js div.title-bar button:not(.active):not(:disabled):active{background:var(--json-tree-js-button-background-color-active) !important;color:var(--json-tree-js-button-text-color-active) !important}div.json-tree-js div.title-bar button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--json-tree-js-button-background-color-hover);color:var(--json-tree-js-button-text-color-hover)}div.json-tree-js div.title-bar button{font-weight:var(--json-tree-js-bold-weight-heavy);min-width:30px;min-height:30px;text-align:center}div.json-tree-js div.title-bar button.side-menu{margin-right:calc(var(--json-tree-js-spacing)/2) !important}div.json-tree-js div.title-bar div.title{text-align:left;width:auto;font-weight:var(--json-tree-js-title-bold-weight);font-size:1.2rem;margin:3px;margin-left:calc(var(--json-tree-js-spacing)/2)}div.json-tree-js div.title-bar div.controls{margin-left:calc(var(--json-tree-js-spacing)*2);flex-grow:1;text-align:right;white-space:nowrap}div.json-tree-js div.title-bar div.controls button{margin-left:calc(var(--json-tree-js-spacing)/2) !important}div.json-tree-js div.title-bar div.controls button.copy-all{display:none}@media(min-width: 768px){div.json-tree-js div.title-bar div.controls button.copy-all{display:inline-block}}div.json-tree-js div.footer-bar{display:flex;padding:calc(var(--json-tree-js-spacing));background-color:var(--json-tree-js-color-dark-black);border-radius:var(--json-tree-js-border-radius);border-top:var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size);justify-content:left;align-items:center}div.json-tree-js div.footer-bar div.status-text{flex-grow:1;text-align:left !important}div.json-tree-js div.footer-bar div.status-value-data-type,div.json-tree-js div.footer-bar div.status-value-length,div.json-tree-js div.footer-bar div.status-value-size,div.json-tree-js div.footer-bar div.status-page-index{margin-left:calc(var(--json-tree-js-spacing)*3)}div.json-tree-js div.footer-bar div.status-value-data-type,div.json-tree-js div.footer-bar div.status-value-length,div.json-tree-js div.footer-bar div.status-value-size{animation:fade-in-animation var(--json-tree-js-animation-length)}div.json-tree-js div.footer-bar span.status-count{font-weight:var(--json-tree-js-bold-weight-heavy)}div.json-tree-js div.side-menu-disabled-background{position:absolute;background-color:rgba(0,0,0,.3);top:0;left:0;height:100%;width:100%;z-index:1000;display:none}div.json-tree-js div.side-menu{display:flex;flex-direction:column;position:absolute;height:100%;top:0;z-index:1500;transition:var(--json-tree-js-transition);background-color:var(--json-tree-js-container-background-color);border-right:var(--json-tree-js-side-menu-right-border-width) solid var(--json-tree-js-color-white);border-radius:var(--json-tree-js-border-radius);width:var(--json-tree-js-side-menu-width);left:calc(0px - (var(--json-tree-js-side-menu-width) + var(--json-tree-js-side-menu-right-border-width)));overflow-x:hidden;overflow-y:auto}div.json-tree-js div.side-menu div.side-menu-title-bar{display:flex;padding:calc(var(--json-tree-js-spacing)/2);background-color:var(--json-tree-js-color-dark-black);border-radius:var(--json-tree-js-border-radius);border-bottom:var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size);justify-content:left;align-items:center}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-bar-text{text-align:left;width:auto;font-weight:var(--json-tree-js-title-bold-weight);font-size:1.2rem;margin:3px;margin-left:calc(var(--json-tree-js-spacing)/2)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls{margin-left:calc(var(--json-tree-js-spacing)*6);flex-grow:1;text-align:right;white-space:nowrap}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button{background-color:var(--json-tree-js-button-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color);color:var(--json-tree-js-button-text-color);border-radius:var(--json-tree-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;margin:3px;outline:none;transition:var(--json-tree-js-transition)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button:disabled{color:var(--json-tree-js-button-border-color)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button:not(.active):not(:disabled):active{background:var(--json-tree-js-button-background-color-active) !important;color:var(--json-tree-js-button-text-color-active) !important}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--json-tree-js-button-background-color-hover);color:var(--json-tree-js-button-text-color-hover)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button{margin-left:calc(var(--json-tree-js-spacing)/2) !important;font-weight:var(--json-tree-js-bold-weight-heavy);min-width:30px;min-height:30px;text-align:center}div.json-tree-js div.side-menu div.side-menu-contents{flex-grow:1;overflow-x:hidden;overflow-y:auto;margin:var(--json-tree-js-spacing)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel{padding:var(--json-tree-js-spacing);background-color:var(--json-tree-js-setting-panel-background-color);color:var(--json-tree-js-color-snow-white);border-radius:var(--json-tree-js-border-radius);border:var(--json-tree-js-border-size) solid var(--json-tree-js-container-border-color)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar{display:flex;justify-content:left;align-items:center}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-title-text{text-align:left;font-weight:var(--json-tree-js-title-bold-weight);font-size:.9rem;margin:3px;color:var(--json-tree-js-color-white)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons{flex-grow:1;text-align:right}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons div.settings-panel-control-button{margin-left:calc(var(--json-tree-js-spacing)/2);border:4px solid var(--json-tree-js-color-white);height:15px;width:15px;border-radius:var(--json-tree-js-border-radius-editable);display:inline-block;transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons div.settings-panel-control-button:not(.no-hover):hover{cursor:pointer;opacity:.7}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons div.settings-panel-fill{background-color:var(--json-tree-js-color-white)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents{margin-top:var(--json-tree-js-spacing);margin-left:var(--json-tree-js-spacing);text-align:left}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.array{color:var(--json-tree-js-color-array)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.object{color:var(--json-tree-js-color-object)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.map{color:var(--json-tree-js-color-map)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.set{color:var(--json-tree-js-color-set)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.boolean{color:var(--json-tree-js-color-boolean)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.float{color:var(--json-tree-js-color-float)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.number{color:var(--json-tree-js-color-number)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.bigint{color:var(--json-tree-js-color-bigint)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.string{color:var(--json-tree-js-color-string)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.date{color:var(--json-tree-js-color-date)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.symbol{color:var(--json-tree-js-color-symbol)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.function{color:var(--json-tree-js-color-function)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.unknown{color:var(--json-tree-js-color-unknown)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.guid{color:var(--json-tree-js-color-guid)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.regexp{color:var(--json-tree-js-color-regexp)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.url{color:var(--json-tree-js-color-url)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.email{color:var(--json-tree-js-color-email)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.html{color:var(--json-tree-js-color-html)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.lambda{color:var(--json-tree-js-color-lambda)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.null,div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.undefined{background-color:var(--json-tree-js-color-null);border-radius:var(--json-tree-js-border-radius-editable);padding-top:2px;padding-bottom:2px;padding-left:4px;padding-right:4px;color:var(--json-tree-js-color-dark-black)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents div.checkbox:last-child{margin-bottom:0}div.json-tree-js div.side-menu-open{left:0 !important;transition:var(--json-tree-js-transition);box-shadow:0 0 10px 10px var(--json-tree-js-color-black)}div.json-tree-js div.editable{cursor:text !important;outline:none;box-shadow:none;white-space:pre}div.json-tree-js div.contents{display:flex;padding:var(--json-tree-js-spacing);margin:0 !important;width:100%}div.json-tree-js div.contents div.contents-column div.column-control-buttons{border-radius:var(--json-tree-js-border-radius);border:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color)}div.json-tree-js div.contents div.contents-column,div.json-tree-js div.contents div.contents-column-multiple{position:relative;flex-basis:100%;overflow:auto;padding-right:var(--json-tree-js-spacing);margin-right:var(--json-tree-js-spacing)}div.json-tree-js div.contents div.contents-column div.column-control-buttons,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons{position:absolute;display:flex;flex-direction:column;top:0;right:0;background-color:var(--json-tree-js-color-dark-black);border-bottom-left-radius:var(--json-tree-js-border-radius);border-bottom:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color);border-left:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color);padding:calc(var(--json-tree-js-spacing)/2);z-index:50}div.json-tree-js div.contents div.contents-column div.column-control-buttons button,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button{background-color:var(--json-tree-js-button-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color);color:var(--json-tree-js-button-text-color);border-radius:var(--json-tree-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;margin:3px;outline:none;transition:var(--json-tree-js-transition)}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:disabled,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:disabled{color:var(--json-tree-js-button-border-color)}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:not(.active):not(:disabled):active,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:not(.active):not(:disabled):active{background:var(--json-tree-js-button-background-color-active) !important;color:var(--json-tree-js-button-text-color-active) !important}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:not(.active):not(:disabled):hover,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--json-tree-js-button-background-color-hover);color:var(--json-tree-js-button-text-color-hover)}div.json-tree-js div.contents div.contents-column div.column-control-buttons button,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button{margin-bottom:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-heavy);min-width:30px;min-height:30px;text-align:center}div.json-tree-js div.contents div.contents-column:last-child,div.json-tree-js div.contents div.contents-column-multiple:last-child{padding-right:0;margin-right:0}div.json-tree-js div.contents div.contents-column-multiple{background-color:var(--json-tree-js-paging-column-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color);padding:var(--json-tree-js-spacing);border-radius:var(--json-tree-js-border-radius)}div.json-tree-js div.contents span.array{color:var(--json-tree-js-color-array)}div.json-tree-js div.contents span.object{color:var(--json-tree-js-color-object)}div.json-tree-js div.contents span.map{color:var(--json-tree-js-color-map)}div.json-tree-js div.contents span.set{color:var(--json-tree-js-color-set)}div.json-tree-js div.contents span.boolean{color:var(--json-tree-js-color-boolean)}div.json-tree-js div.contents span.float{color:var(--json-tree-js-color-float)}div.json-tree-js div.contents span.number{color:var(--json-tree-js-color-number)}div.json-tree-js div.contents span.bigint{color:var(--json-tree-js-color-bigint)}div.json-tree-js div.contents span.string{color:var(--json-tree-js-color-string)}div.json-tree-js div.contents span.date{color:var(--json-tree-js-color-date)}div.json-tree-js div.contents span.symbol{color:var(--json-tree-js-color-symbol)}div.json-tree-js div.contents span.function{color:var(--json-tree-js-color-function)}div.json-tree-js div.contents span.unknown{color:var(--json-tree-js-color-unknown)}div.json-tree-js div.contents span.guid{color:var(--json-tree-js-color-guid)}div.json-tree-js div.contents span.regexp{color:var(--json-tree-js-color-regexp)}div.json-tree-js div.contents span.url{color:var(--json-tree-js-color-url)}div.json-tree-js div.contents span.email{color:var(--json-tree-js-color-email)}div.json-tree-js div.contents span.html{color:var(--json-tree-js-color-html)}div.json-tree-js div.contents span.lambda{color:var(--json-tree-js-color-lambda)}div.json-tree-js div.contents span.null,div.json-tree-js div.contents span.undefined{background-color:var(--json-tree-js-color-null);border-radius:var(--json-tree-js-border-radius-editable);padding-top:2px;padding-bottom:2px;padding-left:4px;padding-right:4px;color:var(--json-tree-js-color-dark-black)}div.json-tree-js div.contents span.size{margin-left:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.contents div.last-item{margin-bottom:0 !important}div.json-tree-js div.contents div.no-json{font-style:italic}div.json-tree-js div.contents div.no-json span.no-json-text{color:var(--json-tree-js-color-light-gray) !important}div.json-tree-js div.contents div.no-json span.no-json-import-text{margin-left:calc(var(--json-tree-js-spacing)/2);text-decoration:underline;transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.contents div.no-json span.no-json-import-text:not(.no-hover):hover{cursor:pointer;opacity:.7}div.json-tree-js div.drag-and-drop-background{position:absolute;background-color:rgba(0,0,0,.7);top:0;left:0;height:100%;width:100%;z-index:1000;display:none;text-align:center}div.json-tree-js div.drag-and-drop-background div.notice-text{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);font-size:1rem;pointer-events:none}div.json-tree-js div.drag-and-drop-background div.notice-text p{margin:0;padding:0}div.json-tree-js div.drag-and-drop-background div.notice-text p.notice-text-symbol{font-size:4.5rem;font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.drag-and-drop-background div.notice-text p.notice-text-title{margin-top:calc(var(--json-tree-js-spacing));font-weight:var(--json-tree-js-title-bold-weight)}div.json-tree-js div.drag-and-drop-background div.notice-text p.notice-text-description{margin-top:calc(var(--json-tree-js-spacing));font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-title{font-weight:var(--json-tree-js-bold-weight-heavy);text-align:left !important;width:fit-content}div.json-tree-js div.object-type-title span.main-title{transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.object-type-title span.main-title:not(.no-hover):hover{cursor:pointer;opacity:.7}div.json-tree-js div.object-type-title span.data-array-index{margin-right:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-title span.split{margin-right:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-title span.opening-symbol,div.json-tree-js div.object-type-title span.closed-symbols{margin-left:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light);color:var(--json-tree-js-color-snow-white) !important}div.json-tree-js div.object-type-contents{margin-top:calc(var(--json-tree-js-spacing)/2);text-align:left !important;width:fit-content;margin-bottom:var(--json-tree-js-spacing);position:relative}div.json-tree-js div.object-type-contents img{height:30px;width:30px;border-radius:var(--json-tree-js-border-radius-editable)}div.json-tree-js div.object-border{border-left:var(--json-tree-js-border-size) dotted var(--json-tree-js-container-object-left-border-color);margin-left:5px}div.json-tree-js div.object-border-no-arrow-toggles{margin-left:var(--json-tree-js-border-size)}div.json-tree-js div.object-border-bottom{position:absolute;bottom:0;left:var(--json-tree-js-border-size);height:var(--json-tree-js-border-size);width:var(--json-tree-js-spacing-arrow-toggle-size);border-bottom:var(--json-tree-js-border-size) dotted var(--json-tree-js-container-object-left-border-color)}div.json-tree-js div.object-type-contents span.opening-symbol,div.json-tree-js div.object-type-contents span.closed-symbols{margin-left:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light);color:var(--json-tree-js-color-snow-white) !important}div.json-tree-js div.object-type-contents div.closing-symbol div{display:inline-block !important}div.json-tree-js div.object-type-contents div.closing-symbol div.object-type-end{margin-top:3px;font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-contents div.object-type-value{white-space:nowrap;margin-top:calc(var(--json-tree-js-spacing)/2);margin-bottom:calc(var(--json-tree-js-spacing)/2);margin-left:calc(var(--json-tree-js-spacing)*2)}div.json-tree-js div.object-type-contents div.object-type-value img{vertical-align:middle}div.json-tree-js div.object-type-contents div.object-type-value span.split{margin-left:calc(var(--json-tree-js-spacing)/2);margin-right:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-contents div.object-type-value span.type,div.json-tree-js div.object-type-contents div.object-type-value span.type-color{margin-left:calc(var(--json-tree-js-spacing)/2);font-style:italic;font-size:smaller}div.json-tree-js div.object-type-contents div.object-type-value span.type-color{color:var(--json-tree-js-color-light-gray)}div.json-tree-js div.object-type-contents div.object-type-value span.value,div.json-tree-js div.object-type-contents div.object-type-value span.main-title{transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.object-type-contents div.object-type-value span.value:not(.no-hover):not(.editable):hover,div.json-tree-js div.object-type-contents div.object-type-value span.main-title:not(.no-hover):not(.editable):hover{cursor:pointer;opacity:.7}div.json-tree-js div.object-type-contents div.object-type-value span.editable,div.json-tree-js div.object-type-contents div.object-type-value span.editable-name{display:inline-block;background-color:var(--json-tree-js-editable-background-color) !important;color:var(--json-tree-js-editable-text-color) !important;border:var(--json-tree-js-border-size) solid var(--json-tree-js-editable-border-color);outline:none !important;box-shadow:none !important;padding:calc(var(--json-tree-js-spacing)/2) !important;border-radius:var(--json-tree-js-border-radius-editable) !important;max-width:250px;cursor:text !important;overflow:scroll;vertical-align:middle}div.json-tree-js div.object-type-contents div.object-type-value span.editable{min-width:70px}div.json-tree-js div.object-type-contents div.object-type-value span.main-title{font-weight:var(--json-tree-js-bold-weight-heavy)}div.json-tree-js div.object-type-contents div.object-type-value span.non-value{font-style:italic}div.json-tree-js div.object-type-contents div.object-type-value span.undefined-or-null{font-style:italic;padding-right:5px;text-transform:uppercase;font-weight:var(--json-tree-js-bold-weight-medium)}div.json-tree-js div.object-type-contents div.object-type-value span.no-properties-text{font-style:italic}div.json-tree-js div.object-type-contents div.object-type-value span.comma{color:var(--json-tree-js-color-white);font-weight:var(--json-tree-js-bold-weight-medium);margin-left:2px}div.json-tree-js div.object-type-contents div.object-type-value span.open-button,div.json-tree-js div.object-type-contents div.object-type-value span.open-button-color{margin-left:calc(var(--json-tree-js-spacing)*2)}div.json-tree-js div.object-type-contents div.object-type-value span.open-button:hover,div.json-tree-js div.object-type-contents div.object-type-value span.open-button-color:hover{text-decoration:underline;cursor:pointer}div.json-tree-js div.object-type-contents div.object-type-value span.open-button-color{color:var(--json-tree-js-color-link)}div.json-tree-js div.checkbox{margin-bottom:calc(var(--json-tree-js-spacing)/3)}div.json-tree-js div.checkbox label.checkbox{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;display:inline-block;position:relative;padding-left:20px;padding-top:1px;padding-bottom:2px;color:var(--json-tree-js-color-white)}div.json-tree-js div.checkbox label.checkbox input{display:none !important}div.json-tree-js div.checkbox label.checkbox input:checked~span.check-mark{background-color:var(--json-tree-js-checkbox-background-color-checked);border:var(--json-tree-js-border-size) solid var(--json-tree-js-checkbox-border-color-checked)}div.json-tree-js div.checkbox label.checkbox input:checked~span.check-mark::before{display:block}div.json-tree-js div.checkbox label.checkbox input:disabled~span.check-mark,div.json-tree-js div.checkbox label.checkbox input:disabled~span.text{opacity:.5}div.json-tree-js div.checkbox label.checkbox input:disabled~span.check-mark{border:var(--json-tree-js-border-size) solid var(--json-tree-js-color-black) !important}div.json-tree-js div.checkbox label.checkbox span.text{margin-left:calc(var(--json-tree-js-spacing)/3)}div.json-tree-js div.checkbox label.checkbox span.additional-text{margin-left:calc(var(--json-tree-js-spacing)/2)}div.json-tree-js div.checkbox label.checkbox span.check-mark{position:absolute;top:1px;left:0;height:15px;width:15px;background-color:var(--json-tree-js-checkbox-background-color);border-radius:var(--json-tree-js-border-radius-editable);border:var(--json-tree-js-border-size) solid var(--json-tree-js-checkbox-border-color);transition:var(--json-tree-js-transition)}div.json-tree-js div.checkbox label.checkbox span.check-mark::before{content:"";transform:rotate(45deg);position:absolute;display:none;left:4px;top:.5px;width:6px;height:11px;border:solid var(--json-tree-js-color-black);border-width:0 3px 3px 0}div.jsontree-js-tooltip,div.jsontree-js-tooltip-value{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--json-tree-js-default-font);animation:fade-in-animation var(--json-tree-js-animation-length);position:absolute;background-color:var(--json-tree-js-tooltip-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-tooltip-border-color);color:var(--json-tree-js-tooltip-text-color);border-radius:var(--json-tree-js-border-radius);z-index:2000;max-width:300px;padding:var(--json-tree-js-spacing);font-size:var(--json-tree-js-spacing-font-size);font-weight:var(--json-tree-js-bold-weight-light);display:none}@keyframes fade-in-animation{0%{opacity:0}100%{opacity:1}} +:root{--json-tree-js-default-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--json-tree-js-bold-weight-light: 300;--json-tree-js-bold-weight-medium: 600;--json-tree-js-bold-weight-heavy: 900;--json-tree-js-title-bold-weight: var(--json-tree-js-bold-weight-heavy);--json-tree-js-color-dark-black: #1c2128;--json-tree-js-color-black: #3b3a3a;--json-tree-js-color-white: #F5F5F5;--json-tree-js-color-snow-white: #F5F5F5;--json-tree-js-color-light-gray: #BBBBBB;--json-tree-js-color-array: #F28C28;--json-tree-js-color-object: var(--json-tree-js-color-snow-white);--json-tree-js-color-map: #BDB5D5;--json-tree-js-color-set: #FFD700;--json-tree-js-color-boolean: #FF0000;--json-tree-js-color-float: #e3c868;--json-tree-js-color-number: #666bf9;--json-tree-js-color-bigint: #6495ED;--json-tree-js-color-string: #78b13f;--json-tree-js-color-date: #a656f5;--json-tree-js-color-null: var(--json-tree-js-color-light-gray);--json-tree-js-color-undefined: var(--json-tree-js-color-null);--json-tree-js-color-symbol: #DAA06D;--json-tree-js-color-function: var(--json-tree-js-color-null);--json-tree-js-color-lambda: var(--json-tree-js-color-function);--json-tree-js-color-unknown: var(--json-tree-js-color-null);--json-tree-js-color-guid: #c45600;--json-tree-js-color-regexp: #AA336A;--json-tree-js-color-url: #00FFFF;--json-tree-js-color-email: #FA8072;--json-tree-js-color-link: #89CFF0;--json-tree-js-color-html: #FF00FF;--json-tree-js-editable-text-color: var(--json-tree-js-color-snow-white);--json-tree-js-editable-background-color: #2d333b;--json-tree-js-editable-border-color: #454c56;--json-tree-js-highlight-selected-color: #353e4b;--json-tree-js-highlight-compare-color: #4a5768;--json-tree-js-highlight-selected-border-color: #97a4b5;--json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color);--json-tree-js-tooltip-border-color: var(--json-tree-js-container-border-color);--json-tree-js-tooltip-text-color: var(--json-tree-js-color-white);--json-tree-js-side-menu-width: 320px;--json-tree-js-side-menu-right-border-width: calc( var(--json-tree-js-border-size) * 12 );--json-tree-js-container-background-color: #22272e;--json-tree-js-container-border-color: #454c56;--json-tree-js-container-object-left-border-color: #677180;--json-tree-js-paging-column-background-color: #272e37;--json-tree-js-paging-column-border-color: var(--json-tree-js-container-border-color);--json-tree-js-button-background-color: #2d333b;--json-tree-js-button-border-color: var(--json-tree-js-container-border-color);--json-tree-js-button-text-color: var(--json-tree-js-color-white);--json-tree-js-button-background-color-hover: var(--json-tree-js-container-border-color);--json-tree-js-button-text-color-hover: var(--json-tree-js-color-snow-white);--json-tree-js-button-background-color-active: #616b79;--json-tree-js-button-text-color-active: var(--json-tree-js-color-snow-white);--json-tree-js-context-menu-background-color: var(--json-tree-js-container-background-color);--json-tree-js-context-menu-border-color: var(--json-tree-js-container-border-color);--json-tree-js-context-menu-text-color: var(--json-tree-js-color-white);--json-tree-js-context-menu-item-background-color-hover: var(--json-tree-js-container-border-color);--json-tree-js-context-menu-item-text-color-hover: var(--json-tree-js-color-snow-white);--json-tree-js-context-menu-item-background-color-active: var(--json-tree-js-button-background-color-active);--json-tree-js-context-menu-item-text-color-active: var(--json-tree-js-color-snow-white);--json-tree-js-setting-panel-background-color: var(--json-tree-js-button-background-color);--json-tree-js-checkbox-background-color-checked: var(--json-tree-js-color-white);--json-tree-js-checkbox-background-color: var(--json-tree-js-setting-panel-background-color);--json-tree-js-checkbox-border-color-checked: var(--json-tree-js-checkbox-background-color-checked);--json-tree-js-checkbox-border-color: var(--json-tree-js-color-white);--json-tree-js-border-radius-editable: 0.25rem;--json-tree-js-border-radius: 0.5rem;--json-tree-js-border-size: 0.5px;--json-tree-js-spacing: 10px;--json-tree-js-spacing-font-size: 0.85rem;--json-tree-js-spacing-arrow-toggle-size: 12px;--json-tree-js-spacing-title-bar: calc( ( var(--json-tree-js-spacing) / 2 ) + 2px );--json-tree-js-transition: all .3s;--json-tree-js-animation-length: 0.5s}div.json-tree-js{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--json-tree-js-default-font) !important;display:inline-block;position:relative;border-radius:var(--json-tree-js-border-radius);background-color:var(--json-tree-js-container-background-color);color:var(--json-tree-js-color-white);border:var(--json-tree-js-border-size) solid var(--json-tree-js-container-border-color);font-size:var(--json-tree-js-spacing-font-size);font-weight:var(--json-tree-js-bold-weight-light);width:100%;overflow:hidden;margin:0 !important;max-width:500px}div.json-tree-js *.draggable-item{overflow:hidden !important}div.json-tree-js button{font-family:var(--json-tree-js-default-font)}div.json-tree-js div.no-click{pointer-events:none !important}div.json-tree-js div.page-switch{animation:fade-in-animation var(--json-tree-js-animation-length)}div.json-tree-js *{box-sizing:border-box;line-height:normal}div.json-tree-js *::before,div.json-tree-js *::after{box-sizing:border-box;line-height:normal}div.full-screen{position:fixed;display:flex;flex-direction:column;top:0;left:0;height:100%;width:100%;max-width:none;border-radius:0;border:none;z-index:1000}div.full-screen div.title-bar,div.full-screen div.footer-bar{border-radius:0 !important}div.full-screen div.contents{flex-grow:1;position:relative;max-height:none !important;overflow:auto}div.full-screen div.contents div.no-json{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}div.json-tree-js div.no-arrow{display:inline-block;width:var(--json-tree-js-spacing-arrow-toggle-size);height:8px;margin-right:calc(var(--json-tree-js-spacing))}div.json-tree-js div.down-arrow,div.json-tree-js div.right-arrow{display:inline-block;width:0;height:0;margin-right:calc(var(--json-tree-js-spacing));cursor:pointer;transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.down-arrow:hover,div.json-tree-js div.right-arrow:hover{opacity:.7}div.json-tree-js div.down-arrow{border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-top:8px solid var(--json-tree-js-color-white)}div.json-tree-js div.right-arrow{border-top:5px solid rgba(0,0,0,0);border-bottom:5px solid rgba(0,0,0,0);border-left:var(--json-tree-js-spacing-arrow-toggle-size) solid var(--json-tree-js-color-white)}div.json-tree-js div.title-bar{display:flex;padding:var(--json-tree-js-spacing-title-bar);background-color:var(--json-tree-js-color-dark-black);border-radius:var(--json-tree-js-border-radius);border-bottom:var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size);justify-content:left;align-items:center}div.json-tree-js div.title-bar button{background-color:var(--json-tree-js-button-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color);color:var(--json-tree-js-button-text-color);border-radius:var(--json-tree-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;outline:none;transition:var(--json-tree-js-transition)}div.json-tree-js div.title-bar button:disabled{color:var(--json-tree-js-button-border-color)}div.json-tree-js div.title-bar button:not(.active):not(:disabled):active{background:var(--json-tree-js-button-background-color-active) !important;color:var(--json-tree-js-button-text-color-active) !important}div.json-tree-js div.title-bar button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--json-tree-js-button-background-color-hover);color:var(--json-tree-js-button-text-color-hover)}div.json-tree-js div.title-bar button{font-weight:var(--json-tree-js-bold-weight-heavy);min-width:30px;min-height:30px;text-align:center}div.json-tree-js div.title-bar button.side-menu{margin-right:calc(var(--json-tree-js-spacing)/2) !important}div.json-tree-js div.title-bar div.title{text-align:left;width:auto;font-weight:var(--json-tree-js-title-bold-weight);font-size:1.2rem;margin:3px;margin-left:calc(var(--json-tree-js-spacing)/2)}div.json-tree-js div.title-bar div.controls{margin-left:calc(var(--json-tree-js-spacing)*2);flex-grow:1;text-align:right;white-space:nowrap}div.json-tree-js div.title-bar div.controls button{margin-left:var(--json-tree-js-spacing-title-bar) !important}div.json-tree-js div.title-bar div.controls button.copy-all{display:none}@media(min-width: 768px){div.json-tree-js div.title-bar div.controls button.copy-all{display:inline-block}}div.json-tree-js div.footer-bar{display:flex;padding:calc(var(--json-tree-js-spacing));background-color:var(--json-tree-js-color-dark-black);border-radius:var(--json-tree-js-border-radius);border-top:var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size);justify-content:left;align-items:center}div.json-tree-js div.footer-bar div.status-text{flex-grow:1;text-align:left !important}div.json-tree-js div.footer-bar div.status-value-data-type,div.json-tree-js div.footer-bar div.status-value-length,div.json-tree-js div.footer-bar div.status-value-size,div.json-tree-js div.footer-bar div.status-page-index{margin-left:calc(var(--json-tree-js-spacing)*3)}div.json-tree-js div.footer-bar div.status-value-data-type,div.json-tree-js div.footer-bar div.status-value-length,div.json-tree-js div.footer-bar div.status-value-size{animation:fade-in-animation var(--json-tree-js-animation-length)}div.json-tree-js div.footer-bar span.status-count{font-weight:var(--json-tree-js-bold-weight-heavy)}div.json-tree-js div.side-menu-disabled-background{position:absolute;background-color:rgba(0,0,0,.3);top:0;left:0;height:100%;width:100%;z-index:1000;display:none}div.json-tree-js div.side-menu{display:flex;flex-direction:column;position:absolute;height:100%;top:0;z-index:1500;transition:var(--json-tree-js-transition);background-color:var(--json-tree-js-container-background-color);border-right:var(--json-tree-js-side-menu-right-border-width) solid var(--json-tree-js-color-white);border-radius:var(--json-tree-js-border-radius);width:var(--json-tree-js-side-menu-width);left:calc(0px - (var(--json-tree-js-side-menu-width) + var(--json-tree-js-side-menu-right-border-width)));overflow-x:hidden;overflow-y:auto}div.json-tree-js div.side-menu div.side-menu-title-bar{display:flex;padding:var(--json-tree-js-spacing-title-bar);background-color:var(--json-tree-js-color-dark-black);border-radius:var(--json-tree-js-border-radius);border-bottom:var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size);justify-content:left;align-items:center}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-bar-text{text-align:left;width:auto;font-weight:var(--json-tree-js-title-bold-weight);font-size:1.2rem;margin:3px;margin-left:calc(var(--json-tree-js-spacing)/2)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls{margin-left:calc(var(--json-tree-js-spacing)*6);flex-grow:1;text-align:right;white-space:nowrap}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button{background-color:var(--json-tree-js-button-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color);color:var(--json-tree-js-button-text-color);border-radius:var(--json-tree-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;outline:none;transition:var(--json-tree-js-transition)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button:disabled{color:var(--json-tree-js-button-border-color)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button:not(.active):not(:disabled):active{background:var(--json-tree-js-button-background-color-active) !important;color:var(--json-tree-js-button-text-color-active) !important}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--json-tree-js-button-background-color-hover);color:var(--json-tree-js-button-text-color-hover)}div.json-tree-js div.side-menu div.side-menu-title-bar div.side-menu-title-controls button{margin-left:var(--json-tree-js-spacing-title-bar) !important;font-weight:var(--json-tree-js-bold-weight-heavy);min-width:30px;min-height:30px;text-align:center}div.json-tree-js div.side-menu div.side-menu-contents{flex-grow:1;overflow-x:hidden;overflow-y:auto;margin:var(--json-tree-js-spacing)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel{padding:var(--json-tree-js-spacing);background-color:var(--json-tree-js-setting-panel-background-color);color:var(--json-tree-js-color-snow-white);border-radius:var(--json-tree-js-border-radius);border:var(--json-tree-js-border-size) solid var(--json-tree-js-container-border-color)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar{display:flex;justify-content:left;align-items:center}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-title-text{text-align:left;font-weight:var(--json-tree-js-title-bold-weight);font-size:.9rem;margin:3px;color:var(--json-tree-js-color-white)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons{flex-grow:1;text-align:right}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons div.settings-panel-control-button{margin-left:calc(var(--json-tree-js-spacing)/2);border:4px solid var(--json-tree-js-color-white);height:15px;width:15px;border-radius:var(--json-tree-js-border-radius-editable);display:inline-block;transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons div.settings-panel-control-button:not(.no-hover):hover{cursor:pointer;opacity:.7}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-title-bar div.settings-panel-control-buttons div.settings-panel-fill{background-color:var(--json-tree-js-color-white)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents{margin-top:var(--json-tree-js-spacing);margin-left:var(--json-tree-js-spacing);text-align:left}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.array{color:var(--json-tree-js-color-array)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.object{color:var(--json-tree-js-color-object)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.map{color:var(--json-tree-js-color-map)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.set{color:var(--json-tree-js-color-set)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.boolean{color:var(--json-tree-js-color-boolean)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.float{color:var(--json-tree-js-color-float)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.number{color:var(--json-tree-js-color-number)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.bigint{color:var(--json-tree-js-color-bigint)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.string{color:var(--json-tree-js-color-string)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.date{color:var(--json-tree-js-color-date)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.symbol{color:var(--json-tree-js-color-symbol)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.function{color:var(--json-tree-js-color-function)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.unknown{color:var(--json-tree-js-color-unknown)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.guid{color:var(--json-tree-js-color-guid)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.regexp{color:var(--json-tree-js-color-regexp)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.url{color:var(--json-tree-js-color-url)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.email{color:var(--json-tree-js-color-email)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.html{color:var(--json-tree-js-color-html)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.lambda{color:var(--json-tree-js-color-lambda)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.null,div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents span.undefined{background-color:var(--json-tree-js-color-null);border-radius:var(--json-tree-js-border-radius-editable);padding-top:2px;padding-bottom:2px;padding-left:4px;padding-right:4px;color:var(--json-tree-js-color-dark-black)}div.json-tree-js div.side-menu div.side-menu-contents div.settings-panel div.settings-panel-contents div.checkbox:last-child{margin-bottom:0}div.json-tree-js div.side-menu-open{left:0 !important;transition:var(--json-tree-js-transition);box-shadow:0 0 10px 10px var(--json-tree-js-color-black)}div.json-tree-js div.editable{cursor:text !important;outline:none;box-shadow:none;white-space:pre !important}div.json-tree-js div.contents{display:flex;padding:var(--json-tree-js-spacing);margin:0 !important;width:100%}div.json-tree-js div.contents div.contents-column div.column-control-buttons{border-radius:var(--json-tree-js-border-radius);border:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color)}div.json-tree-js div.contents div.contents-column,div.json-tree-js div.contents div.contents-column-multiple{position:relative;flex-basis:100%;overflow:auto;padding-right:var(--json-tree-js-spacing);margin-right:var(--json-tree-js-spacing);white-space:nowrap}div.json-tree-js div.contents div.contents-column div.contents-column-line-numbers,div.json-tree-js div.contents div.contents-column-multiple div.contents-column-line-numbers{position:relative;vertical-align:top;display:inline-block;left:0}div.json-tree-js div.contents div.contents-column div.contents-column-line-numbers div.contents-column-line-number,div.json-tree-js div.contents div.contents-column-multiple div.contents-column-line-numbers div.contents-column-line-number{position:absolute;display:flex;align-items:center;left:0;padding-right:var(--json-tree-js-spacing)}div.json-tree-js div.contents div.contents-column div.contents-column-lines,div.json-tree-js div.contents div.contents-column-multiple div.contents-column-lines{vertical-align:top;display:inline-block;width:fit-content;height:fit-content}div.json-tree-js div.contents div.contents-column div.column-control-buttons,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons{position:absolute;display:flex;flex-direction:column;top:0;right:0;background-color:var(--json-tree-js-color-dark-black);border-bottom-left-radius:var(--json-tree-js-border-radius);border-bottom:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color);border-left:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color);padding:var(--json-tree-js-spacing-title-bar);z-index:50}div.json-tree-js div.contents div.contents-column div.column-control-buttons button,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button{background-color:var(--json-tree-js-button-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-button-border-color);color:var(--json-tree-js-button-text-color);border-radius:var(--json-tree-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;outline:none;transition:var(--json-tree-js-transition)}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:disabled,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:disabled{color:var(--json-tree-js-button-border-color)}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:not(.active):not(:disabled):active,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:not(.active):not(:disabled):active{background:var(--json-tree-js-button-background-color-active) !important;color:var(--json-tree-js-button-text-color-active) !important}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:not(.active):not(:disabled):hover,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--json-tree-js-button-background-color-hover);color:var(--json-tree-js-button-text-color-hover)}div.json-tree-js div.contents div.contents-column div.column-control-buttons button,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button{margin-bottom:var(--json-tree-js-spacing-title-bar);font-weight:var(--json-tree-js-bold-weight-heavy);min-width:30px;min-height:30px;text-align:center}div.json-tree-js div.contents div.contents-column div.column-control-buttons button:last-child,div.json-tree-js div.contents div.contents-column-multiple div.column-control-buttons button:last-child{margin-bottom:0}div.json-tree-js div.contents div.contents-column:last-child,div.json-tree-js div.contents div.contents-column-multiple:last-child{padding-right:0;margin-right:0}div.json-tree-js div.contents div.contents-column-multiple{background-color:var(--json-tree-js-paging-column-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color);padding:var(--json-tree-js-spacing);border-radius:var(--json-tree-js-border-radius)}div.json-tree-js div.contents span.array{color:var(--json-tree-js-color-array)}div.json-tree-js div.contents span.object{color:var(--json-tree-js-color-object)}div.json-tree-js div.contents span.map{color:var(--json-tree-js-color-map)}div.json-tree-js div.contents span.set{color:var(--json-tree-js-color-set)}div.json-tree-js div.contents span.boolean{color:var(--json-tree-js-color-boolean)}div.json-tree-js div.contents span.float{color:var(--json-tree-js-color-float)}div.json-tree-js div.contents span.number{color:var(--json-tree-js-color-number)}div.json-tree-js div.contents span.bigint{color:var(--json-tree-js-color-bigint)}div.json-tree-js div.contents span.string{color:var(--json-tree-js-color-string)}div.json-tree-js div.contents span.date{color:var(--json-tree-js-color-date)}div.json-tree-js div.contents span.symbol{color:var(--json-tree-js-color-symbol)}div.json-tree-js div.contents span.function{color:var(--json-tree-js-color-function)}div.json-tree-js div.contents span.unknown{color:var(--json-tree-js-color-unknown)}div.json-tree-js div.contents span.guid{color:var(--json-tree-js-color-guid)}div.json-tree-js div.contents span.regexp{color:var(--json-tree-js-color-regexp)}div.json-tree-js div.contents span.url{color:var(--json-tree-js-color-url)}div.json-tree-js div.contents span.email{color:var(--json-tree-js-color-email)}div.json-tree-js div.contents span.html{color:var(--json-tree-js-color-html)}div.json-tree-js div.contents span.lambda{color:var(--json-tree-js-color-lambda)}div.json-tree-js div.contents span.null,div.json-tree-js div.contents span.undefined{background-color:var(--json-tree-js-color-null);border-radius:var(--json-tree-js-border-radius-editable);padding-top:2px;padding-bottom:2px;padding-left:4px;padding-right:4px;color:var(--json-tree-js-color-dark-black)}div.json-tree-js div.contents span.size{margin-left:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.contents div.last-item{margin-bottom:0 !important}div.json-tree-js div.contents div.no-json{font-style:italic}div.json-tree-js div.contents div.no-json span.no-json-text{color:var(--json-tree-js-color-light-gray) !important}div.json-tree-js div.contents div.no-json span.no-json-import-text{margin-left:calc(var(--json-tree-js-spacing)/2);text-decoration:underline;transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.contents div.no-json span.no-json-import-text:not(.no-hover):hover{cursor:pointer;opacity:.7}div.json-tree-js div.drag-and-drop-background{position:absolute;background-color:rgba(0,0,0,.7);top:0;left:0;height:100%;width:100%;z-index:1000;display:none;text-align:center}div.json-tree-js div.drag-and-drop-background div.notice-text{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);font-size:1rem;pointer-events:none}div.json-tree-js div.drag-and-drop-background div.notice-text p{margin:0;padding:0}div.json-tree-js div.drag-and-drop-background div.notice-text p.notice-text-symbol{font-size:4.5rem;font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.drag-and-drop-background div.notice-text p.notice-text-title{margin-top:calc(var(--json-tree-js-spacing));font-weight:var(--json-tree-js-title-bold-weight)}div.json-tree-js div.drag-and-drop-background div.notice-text p.notice-text-description{margin-top:calc(var(--json-tree-js-spacing));font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-title{font-weight:var(--json-tree-js-bold-weight-heavy);text-align:left !important;width:fit-content}div.json-tree-js div.object-type-title span.main-title{transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.object-type-title span.main-title:not(.no-hover):hover{cursor:pointer;opacity:.7}div.json-tree-js div.object-type-title span.data-array-index{margin-right:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-title span.split{margin-right:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-title span.opening-symbol,div.json-tree-js div.object-type-title span.closed-symbols{margin-left:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light);color:var(--json-tree-js-color-snow-white) !important}div.json-tree-js div.object-type-title span.closed-symbols:hover{transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.object-type-title span.closed-symbols:hover:not(.no-hover):not(.editable):hover{cursor:pointer;opacity:.7}div.json-tree-js div.object-type-contents{margin-top:calc(var(--json-tree-js-spacing)/2);text-align:left !important;width:fit-content;margin-bottom:var(--json-tree-js-spacing);position:relative}div.json-tree-js div.object-type-contents img{height:30px;width:30px;border-radius:var(--json-tree-js-border-radius-editable)}div.json-tree-js div.object-border{border-left:var(--json-tree-js-border-size) dotted var(--json-tree-js-container-object-left-border-color);margin-left:5px}div.json-tree-js div.object-border-no-arrow-toggles{margin-left:var(--json-tree-js-border-size)}div.json-tree-js div.object-border-bottom{position:absolute;bottom:0;left:var(--json-tree-js-border-size);height:var(--json-tree-js-border-size);width:var(--json-tree-js-spacing-arrow-toggle-size);border-bottom:var(--json-tree-js-border-size) dotted var(--json-tree-js-container-object-left-border-color)}div.json-tree-js div.object-type-contents span.opening-symbol,div.json-tree-js div.object-type-contents span.closed-symbols{margin-left:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light);color:var(--json-tree-js-color-snow-white) !important}div.json-tree-js div.object-type-contents span.closed-symbols{transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.object-type-contents span.closed-symbols:not(.no-hover):not(.editable):hover{cursor:pointer;opacity:.7}div.json-tree-js div.object-type-contents div.closing-symbol div{display:inline-block !important}div.json-tree-js div.object-type-contents div.closing-symbol div.object-type-end{margin-top:3px;font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-contents div.object-type-value{white-space:nowrap;margin-top:calc(var(--json-tree-js-spacing)/2);margin-bottom:calc(var(--json-tree-js-spacing)/2);margin-left:calc(var(--json-tree-js-spacing)*2)}div.json-tree-js div.object-type-contents div.object-type-value div.object-type-value-title{width:fit-content}div.json-tree-js div.object-type-contents div.object-type-value img{vertical-align:middle}div.json-tree-js div.object-type-contents div.object-type-value span.split{margin-left:calc(var(--json-tree-js-spacing)/2);margin-right:calc(var(--json-tree-js-spacing)/2);font-weight:var(--json-tree-js-bold-weight-light)}div.json-tree-js div.object-type-contents div.object-type-value div.highlight-selected,div.json-tree-js div.object-type-contents div.object-type-value div.highlight-compare{padding:calc(var(--json-tree-js-spacing)/2);border-radius:var(--json-tree-js-border-radius);transition:var(--json-tree-js-transition);transition-property:background-color,border,padding}div.json-tree-js div.object-type-contents div.object-type-value div.highlight-selected{background-color:var(--json-tree-js-highlight-selected-color);border:var(--json-tree-js-border-size) dashed var(--json-tree-js-highlight-selected-border-color)}div.json-tree-js div.object-type-contents div.object-type-value div.highlight-compare{background-color:var(--json-tree-js-highlight-compare-color)}div.json-tree-js div.object-type-contents div.object-type-value span.data-type,div.json-tree-js div.object-type-contents div.object-type-value span.data-type-color{margin-left:calc(var(--json-tree-js-spacing)/2);font-style:italic;font-size:smaller}div.json-tree-js div.object-type-contents div.object-type-value span.data-type-color{color:var(--json-tree-js-color-light-gray)}div.json-tree-js div.object-type-contents div.object-type-value span.value,div.json-tree-js div.object-type-contents div.object-type-value span.main-title{transition:var(--json-tree-js-transition);transition-property:opacity}div.json-tree-js div.object-type-contents div.object-type-value span.value:not(.no-hover):not(.editable):hover,div.json-tree-js div.object-type-contents div.object-type-value span.main-title:not(.no-hover):not(.editable):hover{cursor:pointer;opacity:.7}div.json-tree-js div.object-type-contents div.object-type-value span.editable,div.json-tree-js div.object-type-contents div.object-type-value span.editable-name{display:inline-block;background-color:var(--json-tree-js-editable-background-color) !important;color:var(--json-tree-js-editable-text-color) !important;border:var(--json-tree-js-border-size) solid var(--json-tree-js-editable-border-color);outline:none !important;box-shadow:none !important;padding:calc(var(--json-tree-js-spacing)/2) !important;border-radius:var(--json-tree-js-border-radius-editable) !important;max-width:250px;cursor:text !important;overflow:scroll;vertical-align:middle}div.json-tree-js div.object-type-contents div.object-type-value span.editable{min-width:70px}div.json-tree-js div.object-type-contents div.object-type-value span.main-title{font-weight:var(--json-tree-js-bold-weight-heavy)}div.json-tree-js div.object-type-contents div.object-type-value span.non-value{font-style:italic}div.json-tree-js div.object-type-contents div.object-type-value span.undefined-or-null{font-style:italic;padding-right:5px;text-transform:uppercase;font-weight:var(--json-tree-js-bold-weight-medium)}div.json-tree-js div.object-type-contents div.object-type-value span.no-properties-text{font-style:italic}div.json-tree-js div.object-type-contents div.object-type-value span.comma{color:var(--json-tree-js-color-white);font-weight:var(--json-tree-js-bold-weight-medium);margin-left:2px}div.json-tree-js div.object-type-contents div.object-type-value span.open-button,div.json-tree-js div.object-type-contents div.object-type-value span.open-button-color{margin-left:calc(var(--json-tree-js-spacing)*2)}div.json-tree-js div.object-type-contents div.object-type-value span.open-button:hover,div.json-tree-js div.object-type-contents div.object-type-value span.open-button-color:hover{text-decoration:underline;cursor:pointer}div.json-tree-js div.object-type-contents div.object-type-value span.open-button-color{color:var(--json-tree-js-color-link)}div.json-tree-js div.checkbox{margin-bottom:calc(var(--json-tree-js-spacing)/3)}div.json-tree-js div.checkbox label.checkbox{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;display:inline-block;position:relative;padding-left:20px;padding-top:1px;padding-bottom:2px;color:var(--json-tree-js-color-white)}div.json-tree-js div.checkbox label.checkbox input{display:none !important}div.json-tree-js div.checkbox label.checkbox input:checked~span.check-mark{background-color:var(--json-tree-js-checkbox-background-color-checked);border:var(--json-tree-js-border-size) solid var(--json-tree-js-checkbox-border-color-checked)}div.json-tree-js div.checkbox label.checkbox input:checked~span.check-mark::before{display:block}div.json-tree-js div.checkbox label.checkbox input:disabled~span.check-mark,div.json-tree-js div.checkbox label.checkbox input:disabled~span.text{opacity:.5}div.json-tree-js div.checkbox label.checkbox input:disabled~span.check-mark{border:var(--json-tree-js-border-size) solid var(--json-tree-js-color-black) !important}div.json-tree-js div.checkbox label.checkbox span.text{margin-left:calc(var(--json-tree-js-spacing)/3)}div.json-tree-js div.checkbox label.checkbox span.additional-text{margin-left:calc(var(--json-tree-js-spacing)/2)}div.json-tree-js div.checkbox label.checkbox span.check-mark{position:absolute;top:1px;left:0;height:15px;width:15px;background-color:var(--json-tree-js-checkbox-background-color);border-radius:var(--json-tree-js-border-radius-editable);border:var(--json-tree-js-border-size) solid var(--json-tree-js-checkbox-border-color);transition:var(--json-tree-js-transition)}div.json-tree-js div.checkbox label.checkbox span.check-mark::before{content:"";transform:rotate(45deg);position:absolute;display:none;left:4px;top:.5px;width:6px;height:11px;border:solid var(--json-tree-js-color-black);border-width:0 3px 3px 0}div.jsontree-js-context-menu{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--json-tree-js-default-font);animation:fade-in-animation var(--json-tree-js-animation-length);position:absolute;background-color:var(--json-tree-js-context-menu-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-context-menu-border-color);color:var(--json-tree-js-context-menu-text-color);border-radius:var(--json-tree-js-border-radius);z-index:2000;max-width:300px;font-size:var(--json-tree-js-spacing-font-size);font-weight:var(--json-tree-js-bold-weight-light);overflow:hidden;display:none}div.jsontree-js-context-menu div.context-menu-item{border-bottom:var(--json-tree-js-border-size) dotted var(--json-tree-js-tooltip-border-color);padding:var(--json-tree-js-spacing);transition:var(--json-tree-js-transition);transition-property:background-color,color;padding-right:40px}div.jsontree-js-context-menu div.context-menu-item span.symbol{margin-right:var(--json-tree-js-spacing);font-weight:var(--json-tree-js-bold-weight-heavy)}div.jsontree-js-context-menu div.context-menu-item span.text{font-weight:var(--json-tree-js-bold-weight-light)}div.jsontree-js-context-menu div.context-menu-item:active{background:var(--json-tree-js-context-menu-item-background-color-active) !important;color:var(--json-tree-js-context-menu-item-text-color-active) !important}div.jsontree-js-context-menu div.context-menu-item:hover{cursor:pointer;background:var(--json-tree-js-context-menu-item-background-color-hover);color:var(--json-tree-js-context-menu-item-text-color-hover)}div.jsontree-js-context-menu div.context-menu-item:last-child{border-bottom:none}div.jsontree-js-tooltip,div.jsontree-js-tooltip-value{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--json-tree-js-default-font);animation:fade-in-animation var(--json-tree-js-animation-length);position:absolute;background-color:var(--json-tree-js-tooltip-background-color);border:var(--json-tree-js-border-size) solid var(--json-tree-js-tooltip-border-color);color:var(--json-tree-js-tooltip-text-color);border-radius:var(--json-tree-js-border-radius);z-index:2000;max-width:300px;padding:var(--json-tree-js-spacing);font-size:var(--json-tree-js-spacing-font-size);font-weight:var(--json-tree-js-bold-weight-light);display:none}@keyframes fade-in-animation{0%{opacity:0}100%{opacity:1}} diff --git a/dist/jsontree.min.js b/dist/jsontree.min.js index 6be3e940..2c20882a 100644 --- a/dist/jsontree.min.js +++ b/dist/jsontree.min.js @@ -1 +1 @@ -"use strict";var DataType=(e=>(e.null="null",e.function="function",e.boolean="boolean",e.float="float",e.number="number",e.bigint="bigint",e.string="string",e.date="date",e.symbol="symbol",e.object="object",e.array="array",e.unknown="unknown",e[void 0]="undefined",e.color="color",e.guid="guid",e.regexp="regexp",e.map="map",e.set="set",e.url="url",e.image="image",e.email="email",e.html="html",e.lambda="lambda",e))(DataType||{}),Is,Convert2,Default,DomElement,Str,Str2,DateTime,Constants,Constants2,Binding,Config,Trigger,ToolTip,Arr,Arr2,Size,Obj;(e=>{let t;var n;function o(e){return null!=e&&""!==e.toString()}function r(e){return o(e)&&"object"==typeof e}function l(e){return null!=e&&e instanceof Array}(n=t=e.String||(e.String={})).hexColor=function(e){let t=e.length>=2&&e.length<=7;return t=!(!t||"#"!==e[0])&&isNaN(+e.substring(1,e.length-1)),t},n.rgbColor=function(e){return(e.startsWith("rgb(")||e.startsWith("rgba("))&&e.endsWith(")")},n.boolean=function(e){return"true"===e.toString().toLowerCase().trim()||"false"===e.toString().toLowerCase().trim()},n.date=function(e){return e.match(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/)},n.guid=function(e){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(e)},n.bigInt=function(e){let t=e.endsWith("n");return t&&(t=!isNaN(+e.substring(0,e.length-1))),t},e.defined=o,e.definedObject=r,e.definedBoolean=function(e){return o(e)&&"boolean"==typeof e},e.definedString=function(e){return o(e)&&"string"==typeof e},e.definedFunction=function(e){return o(e)&&"function"==typeof e},e.definedNumber=function(e){return o(e)&&"number"==typeof e},e.definedBigInt=function(e){return o(e)&&"bigint"==typeof e},e.definedArray=l,e.definedDate=function(e){return r(e)&&e instanceof Date},e.definedFloat=function(e){return o(e)&&"number"==typeof e&&e%1!=0},e.definedSymbol=function(e){return o(e)&&"symbol"==typeof e},e.definedRegExp=function(e){return o(e)&&e instanceof RegExp},e.definedMap=function(e){return o(e)&&(e instanceof Map||e instanceof WeakMap)},e.definedSet=function(e){return o(e)&&(e instanceof Set||e instanceof WeakSet)},e.definedImage=function(e){return o(e)&&e instanceof Image},e.definedHtml=function(e){return o(e)&&e instanceof HTMLElement},e.definedUrl=function(e){let t;try{t=new URL(e)}catch{t=null}return null!==t&&("http:"===t.protocol||"https:"===t.protocol)},e.definedEmail=function(e){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)},e.invalidOptionArray=function(e,t=1){return!l(e)||e.length{function stringifyJson(e,t,n){return Is.definedBigInt(t)?t=t.toString():Is.definedSymbol(t)?t=symbolToString(t):Is.definedFunction(t)?t=Default.getFunctionName(t,n).name:Is.definedMap(t)?t=mapToObject(t):Is.definedSet(t)?t=setToArray(t):Is.definedRegExp(t)?t=t.source:Is.definedImage(t)&&(t=t.src),t}function stringToDataTypeValue(e,t){let n=null;try{Is.definedBoolean(e)?"true"===t.toLowerCase().trim()?n=!0:"false"===t.toLowerCase().trim()&&(n=!1):Is.definedFloat(e)&&!isNaN(+t)?n=parseFloat(t):Is.definedNumber(e)&&!isNaN(+t)?n=parseInt(t):Is.definedString(e)?n=t:Is.definedDate(e)?n=new Date(t):Is.definedBigInt(e)?n=BigInt(t):Is.definedRegExp(e)?n=new RegExp(t):Is.definedSymbol(e)?n=Symbol(t):Is.definedImage(e)&&(n=new Image,n.src=t)}catch(e){n=null}return n}function htmlToObject(e,t){const n={},o=e.attributes.length,r=e.children.length,l="&children",i="#text",a=e.cloneNode(!0);let s=a.children.length;for(;s>0;)a.children[0].nodeType!==Node.TEXT_NODE&&a.removeChild(a.children[0]),s--;n[l]=[],n[i]=a.innerText;for(let t=0;t{function t(e,t){return Is.definedArray(e)?e:t}e.getAnyString=function(e,t){return"string"==typeof e?e:t},e.getString=function(e,t){return Is.definedString(e)?e:t},e.getBoolean=function(e,t){return Is.definedBoolean(e)?e:t},e.getNumber=function(e,t){return Is.definedNumber(e)?e:t},e.getFunction=function(e,t){return Is.definedFunction(e)?e:t},e.getArray=t,e.getObject=function(e,t){return Is.definedObject(e)?e:t},e.getNumberMinimum=function(e,t,n){return Is.definedNumber(e)?e>=n?e:n:t},e.getNumberMaximum=function(e,t,n){return Is.definedNumber(e)?e>n?n:e:t},e.getStringOrArray=function(e,n){let o=n;if(Is.definedString(e)){const t=e.toString().split(" ");0===t.length?e=n:o=t}else o=t(e,n);return o},e.getFunctionName=function(e,t){let n,o=!1;const r="()";return n=`${e.toString().split("(")[0].split(" ").join(" ")}${r}`,n.trim()===r&&(n=`${t.text.functionText}${r}`,o=!0),{name:n,isLambda:o}},e.getObjectFromUrl=function(e,t,n){const o=new XMLHttpRequest;o.open("GET",e,!0),o.send(),o.onreadystatechange=()=>{if(4===o.readyState&&200===o.status){const e=o.responseText,r=Convert2.jsonStringToObject(e,t);r.parsed&&n(r.object)}else n(null)}}})(Default||(Default={})),(e=>{function t(e,t,n="",o=null){const r=t.toLowerCase();let l="text"===r?document.createTextNode(""):document.createElement(r);return Is.defined(n)&&(l.className=n),Is.defined(e)&&(Is.defined(o)?e.insertBefore(l,o):e.appendChild(l)),l}function n(e,n,o,r,l=null){const i=t(e,n,o,l);return i.innerHTML=r,i}function o(){const e=document.documentElement;return{left:e.scrollLeft-(e.clientLeft||0),top:e.scrollTop-(e.clientTop||0)}}e.find=function(e,t){const n=e.length;for(let o=0;owindow.innerWidth?r-=t.offsetWidth+n:(r++,r+=n),l+t.offsetHeight>window.innerHeight?l-=t.offsetHeight+n:(l++,l+=n),r{function t(e){return e.getDay()-1<0?6:e.getDay()-1}function n(e,t){let n=e.text.thText;return 31===t||21===t||1===t?n=e.text.stText:22===t||2===t?n=e.text.ndText:23!==t&&3!==t||(n=e.text.rdText),n}e.getWeekdayNumber=t,e.getDayOrdinal=n,e.getCustomFormattedDateText=function(e,o,r){let l=r;const i=t(o);return l=l.replace("{hh}",Str.padNumber(o.getHours(),2)),l=l.replace("{h}",o.getHours().toString()),l=l.replace("{MM}",Str.padNumber(o.getMinutes(),2)),l=l.replace("{M}",o.getMinutes().toString()),l=l.replace("{ss}",Str.padNumber(o.getSeconds(),2)),l=l.replace("{s}",o.getSeconds().toString()),l=l.replace("{fff}",Str.padNumber(o.getMilliseconds(),3)),l=l.replace("{ff}",Str.padNumber(o.getMilliseconds(),2)),l=l.replace("{f}",o.getMilliseconds().toString()),l=l.replace("{dddd}",e.text.dayNames[i]),l=l.replace("{ddd}",e.text.dayNamesAbbreviated[i]),l=l.replace("{dd}",Str.padNumber(o.getDate())),l=l.replace("{d}",o.getDate().toString()),l=l.replace("{o}",n(e,o.getDate())),l=l.replace("{mmmm}",e.text.monthNames[o.getMonth()]),l=l.replace("{mmm}",e.text.monthNamesAbbreviated[o.getMonth()]),l=l.replace("{mm}",Str.padNumber(o.getMonth()+1)),l=l.replace("{m}",(o.getMonth()+1).toString()),l=l.replace("{yyyy}",o.getFullYear().toString()),l=l.replace("{yyy}",o.getFullYear().toString().substring(1)),l=l.replace("{yy}",o.getFullYear().toString().substring(2)),l=l.replace("{y}",Number.parseInt(o.getFullYear().toString().substring(2)).toString()),l}})(DateTime||(DateTime={})),Constants2=Constants||(Constants={}),Constants2.JSONTREE_JS_ATTRIBUTE_NAME="data-jsontree-js",Constants2.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME="data-jsontree-js-array-index",Constants2.JSONTREE_JS_ATTRIBUTE_PATH_NAME="data-jsontree-js-path",(e=>{let t;var n;(n=t=e.Options||(e.Options={})).getForNewInstance=function(t,n){const o=e.Options.get(t),r=o.allowEditing;o._currentView={},o._currentView.element=n,o._currentView.dataArrayCurrentIndex=(o.paging.startPage-1)*o.paging.columnsPerPage,o._currentView.titleBarButtons=null,o._currentView.valueClickTimerId=0,o._currentView.editMode=!1,o._currentView.idSet=!1,o._currentView.contentPanelsOpen={},o._currentView.contentPanelsIndex=0,o._currentView.contentPanelsDataIndex=0,o._currentView.backButton=null,o._currentView.nextButton=null,o._currentView.disabledBackground=null,o._currentView.sideMenu=null,o._currentView.sideMenuChanged=!1,o._currentView.toggleFullScreenButton=null,o._currentView.fullScreenOn=!1,o._currentView.dragAndDropBackground=null,o._currentView.initialized=!1,o._currentView.contentColumns=[],o._currentView.footer=null,o._currentView.footerStatusText=null,o._currentView.footerDataTypeText=null,o._currentView.footerLengthText=null,o._currentView.footerSizeText=null,o._currentView.footerPageText=null,o._currentView.footerStatusTextTimerId=0,o._currentView.columnDragging=!1,o._currentView.columnDraggingDataIndex=0,o._currentView.dataTypeCounts={},o._currentView.contentControlButtons=[],o.paging.enabled&&Is.definedArray(o.data)&&o.data.length>1&&o._currentView.dataArrayCurrentIndex>o.data.length-1&&(o._currentView.dataArrayCurrentIndex=0);for(const e in r)if(!r[e]){o.allowEditing.bulk=!1;break}return o},n.get=function(e){let t=Default.getObject(e,{});return t.showObjectSizes=Default.getBoolean(t.showObjectSizes,!0),t.useZeroIndexingForArrays=Default.getBoolean(t.useZeroIndexingForArrays,!0),t.dateTimeFormat=Default.getString(t.dateTimeFormat,"{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}"),t.showArrowToggles=Default.getBoolean(t.showArrowToggles,!0),t.showStringQuotes=Default.getBoolean(t.showStringQuotes,!0),t.showAllAsClosed=Default.getBoolean(t.showAllAsClosed,!1),t.sortPropertyNames=Default.getBoolean(t.sortPropertyNames,!0),t.sortPropertyNamesInAlphabeticalOrder=Default.getBoolean(t.sortPropertyNamesInAlphabeticalOrder,!0),t.showCommas=Default.getBoolean(t.showCommas,!0),t.reverseArrayValues=Default.getBoolean(t.reverseArrayValues,!1),t.addArrayIndexPadding=Default.getBoolean(t.addArrayIndexPadding,!1),t.showValueColors=Default.getBoolean(t.showValueColors,!0),t.maximumDecimalPlaces=Default.getNumber(t.maximumDecimalPlaces,2),t.maximumStringLength=Default.getNumber(t.maximumStringLength,0),t.fileDroppingEnabled=Default.getBoolean(t.fileDroppingEnabled,!0),t.jsonIndentSpaces=Default.getNumber(t.jsonIndentSpaces,8),t.showArrayIndexBrackets=Default.getBoolean(t.showArrayIndexBrackets,!0),t.showOpeningClosingCurlyBraces=Default.getBoolean(t.showOpeningClosingCurlyBraces,!1),t.showOpeningClosingSquaredBrackets=Default.getBoolean(t.showOpeningClosingSquaredBrackets,!1),t.includeTimeZoneInDateTimeEditing=Default.getBoolean(t.includeTimeZoneInDateTimeEditing,!0),t.shortcutKeysEnabled=Default.getBoolean(t.shortcutKeysEnabled,!0),t.openInFullScreenMode=Default.getBoolean(t.openInFullScreenMode,!1),t.valueToolTips=Default.getObject(t.valueToolTips,null),t.editingValueClickDelay=Default.getNumber(t.editingValueClickDelay,500),t.showDataTypes=Default.getBoolean(t.showDataTypes,!1),t.logJsonValueToolTipPaths=Default.getBoolean(t.logJsonValueToolTipPaths,!1),t.exportFilenameFormat=Default.getString(t.exportFilenameFormat,"JsonTree_{dd}-{mm}-{yyyy}_{hh}-{MM}-{ss}.json"),t.showPropertyNameQuotes=Default.getBoolean(t.showPropertyNameQuotes,!0),t.showOpenedObjectArrayBorders=Default.getBoolean(t.showOpenedObjectArrayBorders,!0),t.showPropertyNameAndIndexColors=Default.getBoolean(t.showPropertyNameAndIndexColors,!0),t.showUrlOpenButtons=Default.getBoolean(t.showUrlOpenButtons,!0),t.showEmailOpenButtons=Default.getBoolean(t.showEmailOpenButtons,!0),t.minimumArrayIndexPadding=Default.getNumber(t.minimumArrayIndexPadding,0),t.arrayIndexPaddingCharacter=Default.getString(t.arrayIndexPaddingCharacter,"0"),t.maximumUrlLength=Default.getNumber(t.maximumUrlLength,0),t.maximumEmailLength=Default.getNumber(t.maximumEmailLength,0),t.showCssStylesForHtmlObjects=Default.getBoolean(t.showCssStylesForHtmlObjects,!1),t.jsonPathAny=Default.getString(t.jsonPathAny,".."),t.jsonPathSeparator=Default.getString(t.jsonPathSeparator,"\\"),t.showChildIndexes=Default.getBoolean(t.showChildIndexes,!0),t=function(e){return e.paging=Default.getObject(e.paging,{}),e.paging.enabled=Default.getBoolean(e.paging.enabled,!0),e.paging.columnsPerPage=Default.getNumberMaximum(e.paging.columnsPerPage,1,6),e.paging.startPage=Default.getNumberMinimum(e.paging.startPage,1,1),e.paging.synchronizeScrolling=Default.getBoolean(e.paging.synchronizeScrolling,!1),e.paging.allowColumnReordering=Default.getBoolean(e.paging.allowColumnReordering,!0),e}(t),t=function(e){return e.title=Default.getObject(e.title,{}),e.title.text=Default.getAnyString(e.title.text,"JsonTree.js"),e.title.showCloseOpenAllButtons=Default.getBoolean(e.title.showCloseOpenAllButtons,!0),e.title.showCopyButton=Default.getBoolean(e.title.showCopyButton,!0),e.title.enableFullScreenToggling=Default.getBoolean(e.title.enableFullScreenToggling,!0),e.title.showFullScreenButton=Default.getBoolean(e.title.showFullScreenButton,!0),e}(t),t=function(e){return e.footer=Default.getObject(e.footer,{}),e.footer.enabled=Default.getBoolean(e.footer.enabled,!0),e.footer.showDataTypes=Default.getBoolean(e.footer.showDataTypes,!0),e.footer.showLengths=Default.getBoolean(e.footer.showLengths,!0),e.footer.showSizes=Default.getBoolean(e.footer.showSizes,!0),e.footer.showPageOf=Default.getBoolean(e.footer.showPageOf,!0),e.footer.statusResetDelay=Default.getNumber(e.footer.statusResetDelay,5e3),e}(t),t=function(e){return e.controlPanel=Default.getObject(e.controlPanel,{}),e.controlPanel.enabled=Default.getBoolean(e.controlPanel.enabled,!0),e.controlPanel.showCopyButton=Default.getBoolean(e.controlPanel.showCopyButton,!0),e.controlPanel.showMovingButtons=Default.getBoolean(e.controlPanel.showMovingButtons,!0),e.controlPanel.showRemoveButton=Default.getBoolean(e.controlPanel.showRemoveButton,!1),e.controlPanel.showEditButton=Default.getBoolean(e.controlPanel.showEditButton,!0),e.controlPanel.showCloseOpenAllButtons=Default.getBoolean(e.controlPanel.showCloseOpenAllButtons,!0),e.controlPanel.showSwitchToPagesButton=Default.getBoolean(e.controlPanel.showSwitchToPagesButton,!0),e}(t),t=function(e){return e.ignore=Default.getObject(e.ignore,{}),e.ignore.nullValues=Default.getBoolean(e.ignore.nullValues,!1),e.ignore.functionValues=Default.getBoolean(e.ignore.functionValues,!1),e.ignore.unknownValues=Default.getBoolean(e.ignore.unknownValues,!1),e.ignore.booleanValues=Default.getBoolean(e.ignore.booleanValues,!1),e.ignore.floatValues=Default.getBoolean(e.ignore.floatValues,!1),e.ignore.numberValues=Default.getBoolean(e.ignore.numberValues,!1),e.ignore.stringValues=Default.getBoolean(e.ignore.stringValues,!1),e.ignore.dateValues=Default.getBoolean(e.ignore.dateValues,!1),e.ignore.objectValues=Default.getBoolean(e.ignore.objectValues,!1),e.ignore.arrayValues=Default.getBoolean(e.ignore.arrayValues,!1),e.ignore.bigintValues=Default.getBoolean(e.ignore.bigintValues,!1),e.ignore.symbolValues=Default.getBoolean(e.ignore.symbolValues,!1),e.ignore.emptyObjects=Default.getBoolean(e.ignore.emptyObjects,!1),e.ignore.undefinedValues=Default.getBoolean(e.ignore.undefinedValues,!1),e.ignore.guidValues=Default.getBoolean(e.ignore.guidValues,!1),e.ignore.colorValues=Default.getBoolean(e.ignore.colorValues,!1),e.ignore.regexpValues=Default.getBoolean(e.ignore.regexpValues,!1),e.ignore.mapValues=Default.getBoolean(e.ignore.mapValues,!1),e.ignore.setValues=Default.getBoolean(e.ignore.setValues,!1),e.ignore.urlValues=Default.getBoolean(e.ignore.urlValues,!1),e.ignore.imageValues=Default.getBoolean(e.ignore.imageValues,!1),e.ignore.emailValues=Default.getBoolean(e.ignore.emailValues,!1),e.ignore.htmlValues=Default.getBoolean(e.ignore.htmlValues,!1),e.ignore.lambdaValues=Default.getBoolean(e.ignore.lambdaValues,!1),e}(t),t=function(e){return e.tooltip=Default.getObject(e.tooltip,{}),e.tooltip.delay=Default.getNumber(e.tooltip.delay,750),e.tooltip.offset=Default.getNumber(e.tooltip.offset,0),e}(t),t=function(e){return e.parse=Default.getObject(e.parse,{}),e.parse.stringsToDates=Default.getBoolean(e.parse.stringsToDates,!1),e.parse.stringsToBooleans=Default.getBoolean(e.parse.stringsToBooleans,!1),e.parse.stringsToNumbers=Default.getBoolean(e.parse.stringsToNumbers,!1),e}(t),t=function(e){let t=Default.getBoolean(e.allowEditing,!0);return e.allowEditing=Default.getObject(e.allowEditing,{}),e.allowEditing.booleanValues=Default.getBoolean(e.allowEditing.booleanValues,t),e.allowEditing.floatValues=Default.getBoolean(e.allowEditing.floatValues,t),e.allowEditing.numberValues=Default.getBoolean(e.allowEditing.numberValues,t),e.allowEditing.stringValues=Default.getBoolean(e.allowEditing.stringValues,t),e.allowEditing.dateValues=Default.getBoolean(e.allowEditing.dateValues,t),e.allowEditing.bigIntValues=Default.getBoolean(e.allowEditing.bigIntValues,t),e.allowEditing.guidValues=Default.getBoolean(e.allowEditing.guidValues,t),e.allowEditing.colorValues=Default.getBoolean(e.allowEditing.colorValues,t),e.allowEditing.urlValues=Default.getBoolean(e.allowEditing.urlValues,t),e.allowEditing.emailValues=Default.getBoolean(e.allowEditing.emailValues,t),e.allowEditing.regExpValues=Default.getBoolean(e.allowEditing.regExpValues,t),e.allowEditing.symbolValues=Default.getBoolean(e.allowEditing.symbolValues,t),e.allowEditing.imageValues=Default.getBoolean(e.allowEditing.imageValues,t),e.allowEditing.propertyNames=Default.getBoolean(e.allowEditing.propertyNames,t),e.allowEditing.bulk=Default.getBoolean(e.allowEditing.bulk,t),e}(t),t=function(e){return e.sideMenu=Default.getObject(e.sideMenu,{}),e.sideMenu.enabled=Default.getBoolean(e.sideMenu.enabled,!0),e.sideMenu.showImportButton=Default.getBoolean(e.sideMenu.showImportButton,!0),e.sideMenu.showExportButton=Default.getBoolean(e.sideMenu.showExportButton,!0),e.sideMenu.titleText=Default.getAnyString(e.sideMenu.titleText,e.title.text),e.sideMenu.showAvailableDataTypeCounts=Default.getBoolean(e.sideMenu.showAvailableDataTypeCounts,!0),e.sideMenu.showOnlyDataTypesAvailable=Default.getBoolean(e.sideMenu.showOnlyDataTypesAvailable,!1),e}(t),t=function(e){return e.autoClose=Default.getObject(e.autoClose,{}),e.autoClose.objectSize=Default.getNumber(e.autoClose.objectSize,0),e.autoClose.arraySize=Default.getNumber(e.autoClose.arraySize,0),e.autoClose.mapSize=Default.getNumber(e.autoClose.mapSize,0),e.autoClose.setSize=Default.getNumber(e.autoClose.setSize,0),e.autoClose.htmlSize=Default.getNumber(e.autoClose.htmlSize,0),e}(t),t=function(e){return e.events=Default.getObject(e.events,{}),e.events.onBeforeRender=Default.getFunction(e.events.onBeforeRender,null),e.events.onRenderComplete=Default.getFunction(e.events.onRenderComplete,null),e.events.onValueClick=Default.getFunction(e.events.onValueClick,null),e.events.onRefresh=Default.getFunction(e.events.onRefresh,null),e.events.onCopyAll=Default.getFunction(e.events.onCopyAll,null),e.events.onOpenAll=Default.getFunction(e.events.onOpenAll,null),e.events.onCloseAll=Default.getFunction(e.events.onCloseAll,null),e.events.onDestroy=Default.getFunction(e.events.onDestroy,null),e.events.onBooleanRender=Default.getFunction(e.events.onBooleanRender,null),e.events.onFloatRender=Default.getFunction(e.events.onFloatRender,null),e.events.onNumberRender=Default.getFunction(e.events.onNumberRender,null),e.events.onBigIntRender=Default.getFunction(e.events.onBigIntRender,null),e.events.onStringRender=Default.getFunction(e.events.onStringRender,null),e.events.onDateRender=Default.getFunction(e.events.onDateRender,null),e.events.onFunctionRender=Default.getFunction(e.events.onFunctionRender,null),e.events.onNullRender=Default.getFunction(e.events.onNullRender,null),e.events.onUnknownRender=Default.getFunction(e.events.onUnknownRender,null),e.events.onSymbolRender=Default.getFunction(e.events.onSymbolRender,null),e.events.onCopyJsonReplacer=Default.getFunction(e.events.onCopyJsonReplacer,null),e.events.onUndefinedRender=Default.getFunction(e.events.onUndefinedRender,null),e.events.onGuidRender=Default.getFunction(e.events.onGuidRender,null),e.events.onColorRender=Default.getFunction(e.events.onColorRender,null),e.events.onJsonEdit=Default.getFunction(e.events.onJsonEdit,null),e.events.onRegExpRender=Default.getFunction(e.events.onRegExpRender,null),e.events.onExport=Default.getFunction(e.events.onExport,null),e.events.onUrlRender=Default.getFunction(e.events.onUrlRender,null),e.events.onImageRender=Default.getFunction(e.events.onImageRender,null),e.events.onEmailRender=Default.getFunction(e.events.onEmailRender,null),e.events.onLambdaRender=Default.getFunction(e.events.onLambdaRender,null),e.events.onCopy=Default.getFunction(e.events.onCopy,null),e.events.onFullScreenChange=Default.getFunction(e.events.onFullScreenChange,null),e}(t),t}})(Binding||(Binding={})),(e=>{let t;(t=e.Options||(e.Options={})).get=function(e=null){let t=Default.getObject(e,{});return t.safeMode=Default.getBoolean(t.safeMode,!0),t.domElementTypes=Default.getStringOrArray(t.domElementTypes,["*"]),t=function(e){return e.text=Default.getObject(e.text,{}),e.text.objectText=Default.getAnyString(e.text.objectText,"object"),e.text.arrayText=Default.getAnyString(e.text.arrayText,"array"),e.text.mapText=Default.getAnyString(e.text.mapText,"map"),e.text.setText=Default.getAnyString(e.text.setText,"set"),e.text.htmlText=Default.getAnyString(e.text.htmlText,"html"),e.text.closeAllButtonText=Default.getAnyString(e.text.closeAllButtonText,"Close All"),e.text.openAllButtonText=Default.getAnyString(e.text.openAllButtonText,"Open All"),e.text.copyAllButtonText=Default.getAnyString(e.text.copyAllButtonText,"Copy All"),e.text.objectErrorText=Default.getAnyString(e.text.objectErrorText,"Errors in object: {{error_1}}, {{error_2}}"),e.text.attributeNotValidErrorText=Default.getAnyString(e.text.attributeNotValidErrorText,"The attribute '{{attribute_name}}' is not a valid object."),e.text.attributeNotSetErrorText=Default.getAnyString(e.text.attributeNotSetErrorText,"The attribute '{{attribute_name}}' has not been set correctly."),e.text.stText=Default.getAnyString(e.text.stText,"st"),e.text.ndText=Default.getAnyString(e.text.ndText,"nd"),e.text.rdText=Default.getAnyString(e.text.rdText,"rd"),e.text.thText=Default.getAnyString(e.text.thText,"th"),e.text.ellipsisText=Default.getAnyString(e.text.ellipsisText,"..."),e.text.closeAllButtonSymbolText=Default.getAnyString(e.text.closeAllButtonSymbolText,"⇈"),e.text.openAllButtonSymbolText=Default.getAnyString(e.text.openAllButtonSymbolText,"⇊"),e.text.copyButtonSymbolText=Default.getAnyString(e.text.copyButtonSymbolText,"❐"),e.text.backButtonText=Default.getAnyString(e.text.backButtonText,"Back"),e.text.nextButtonText=Default.getAnyString(e.text.nextButtonText,"Next"),e.text.backButtonSymbolText=Default.getAnyString(e.text.backButtonSymbolText,"←"),e.text.nextButtonSymbolText=Default.getAnyString(e.text.nextButtonSymbolText,"→"),e.text.noJsonToViewText=Default.getAnyString(e.text.noJsonToViewText,"There is currently no JSON to view."),e.text.functionText=Default.getAnyString(e.text.functionText,"function"),e.text.sideMenuButtonSymbolText=Default.getAnyString(e.text.sideMenuButtonSymbolText,"☰"),e.text.sideMenuButtonText=Default.getAnyString(e.text.sideMenuButtonText,"Show Menu"),e.text.closeButtonSymbolText=Default.getAnyString(e.text.closeButtonSymbolText,"✕"),e.text.closeButtonText=Default.getAnyString(e.text.closeButtonText,"Close"),e.text.showDataTypesText=Default.getAnyString(e.text.showDataTypesText,"Show Data Types"),e.text.selectAllText=Default.getAnyString(e.text.selectAllText,"Select All"),e.text.selectNoneText=Default.getAnyString(e.text.selectNoneText,"Select None"),e.text.importButtonSymbolText=Default.getAnyString(e.text.importButtonSymbolText,"↑"),e.text.importButtonText=Default.getAnyString(e.text.importButtonText,"Import"),e.text.fullScreenOnButtonSymbolText=Default.getAnyString(e.text.fullScreenOnButtonSymbolText,"↗"),e.text.fullScreenOffButtonSymbolText=Default.getAnyString(e.text.fullScreenOffButtonSymbolText,"↙"),e.text.fullScreenButtonText=Default.getAnyString(e.text.fullScreenButtonText,"Toggle Full-Screen"),e.text.copyButtonText=Default.getAnyString(e.text.copyButtonText,"Copy"),e.text.dragAndDropSymbolText=Default.getAnyString(e.text.dragAndDropSymbolText,"⇪"),e.text.dragAndDropTitleText=Default.getAnyString(e.text.dragAndDropTitleText,"Drag and drop your JSON files to upload"),e.text.dragAndDropDescriptionText=Default.getAnyString(e.text.dragAndDropDescriptionText,"Multiple files will be joined as an array"),e.text.exportButtonSymbolText=Default.getAnyString(e.text.exportButtonSymbolText,"↓"),e.text.exportButtonText=Default.getAnyString(e.text.exportButtonText,"Export"),e.text.propertyColonCharacter=Default.getAnyString(e.text.propertyColonCharacter,":"),e.text.noPropertiesText=Default.getAnyString(e.text.noPropertiesText,"There are no properties to view."),e.text.openText=Default.getAnyString(e.text.openText,"open"),e.text.openSymbolText=Default.getAnyString(e.text.openSymbolText,"⤤"),e.text.waitingText=Default.getAnyString(e.text.waitingText,"Waiting..."),e.text.pageOfText=Default.getAnyString(e.text.pageOfText,"Page {0} of {1}"),e.text.sizeText=Default.getAnyString(e.text.sizeText,"Size: {0}"),e.text.copiedText=Default.getAnyString(e.text.copiedText,"JSON copied to clipboard."),e.text.exportedText=Default.getAnyString(e.text.exportedText,"JSON exported."),e.text.importedText=Default.getAnyString(e.text.importedText,"{0} JSON files imported."),e.text.ignoreDataTypesUpdated=Default.getAnyString(e.text.ignoreDataTypesUpdated,"Ignore data types updated."),e.text.lengthText=Default.getAnyString(e.text.lengthText,"Length: {0}"),e.text.valueUpdatedText=Default.getAnyString(e.text.valueUpdatedText,"Value updated."),e.text.jsonUpdatedText=Default.getAnyString(e.text.jsonUpdatedText,"JSON updated."),e.text.nameUpdatedText=Default.getAnyString(e.text.nameUpdatedText,"Property name updated."),e.text.indexUpdatedText=Default.getAnyString(e.text.indexUpdatedText,"Array index updated."),e.text.itemDeletedText=Default.getAnyString(e.text.itemDeletedText,"Item deleted."),e.text.arrayJsonItemDeleted=Default.getAnyString(e.text.arrayJsonItemDeleted,"Array JSON item deleted."),e.text.dataTypeText=Default.getAnyString(e.text.dataTypeText,"Data Type: {0}"),e.text.editSymbolButtonText=Default.getAnyString(e.text.editSymbolButtonText,"✎"),e.text.editButtonText=Default.getAnyString(e.text.editButtonText,"Edit"),e.text.moveRightSymbolButtonText=Default.getAnyString(e.text.moveRightSymbolButtonText,"→"),e.text.moveRightButtonText=Default.getAnyString(e.text.moveRightButtonText,"Move Right"),e.text.moveLeftSymbolButtonText=Default.getAnyString(e.text.moveLeftSymbolButtonText,"←"),e.text.moveLeftButtonText=Default.getAnyString(e.text.moveLeftButtonText,"Move Left"),e.text.removeSymbolButtonText=Default.getAnyString(e.text.removeSymbolButtonText,"✕"),e.text.removeButtonText=Default.getAnyString(e.text.removeButtonText,"Remove"),e.text.switchToPagesSymbolText=Default.getAnyString(e.text.switchToPagesSymbolText,"☷"),e.text.switchToPagesText=Default.getAnyString(e.text.switchToPagesText,"Switch To Pages"),Is.invalidOptionArray(e.text.dayNames,7)&&(e.text.dayNames=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]),Is.invalidOptionArray(e.text.dayNamesAbbreviated,7)&&(e.text.dayNamesAbbreviated=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]),Is.invalidOptionArray(e.text.monthNames,12)&&(e.text.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"]),Is.invalidOptionArray(e.text.monthNamesAbbreviated,12)&&(e.text.monthNamesAbbreviated=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e}(t),t}})(Config||(Config={})),(Trigger||(Trigger={})).customEvent=function(e,...t){let n=null;return Is.definedFunction(e)&&(n=e.apply(null,[].slice.call(t,0))),n},(e=>{function t(e,t=!0){let n=t?window.addEventListener:window.removeEventListener,r=t?document.addEventListener:document.removeEventListener;n("mousemove",(()=>o(e))),r("scroll",(()=>o(e)))}function n(e,t,n,r){DomElement.cancelBubble(e),o(t),t._currentView.tooltipTimerId=setTimeout((()=>{t._currentView.tooltip.className=r,t._currentView.tooltip.innerHTML=n,t._currentView.tooltip.style.display="block",DomElement.showElementAtMousePosition(e,t._currentView.tooltip,t.tooltip.offset)}),t.tooltip.delay)}function o(e){Is.defined(e._currentView.tooltip)&&(0!==e._currentView.tooltipTimerId&&(clearTimeout(e._currentView.tooltipTimerId),e._currentView.tooltipTimerId=0),"none"!==e._currentView.tooltip.style.display&&(e._currentView.tooltip.style.display="none"))}e.renderControl=function(e){Is.defined(e._currentView.tooltip)||(e._currentView.tooltip=DomElement.create(document.body,"div","jsontree-js-tooltip"),e._currentView.tooltip.style.display="none",t(e))},e.assignToEvents=t,e.add=function(e,t,o,r="jsontree-js-tooltip"){null!==e&&e.addEventListener("mousemove",(e=>n(e,t,o,r)))},e.show=n,e.hide=o,e.remove=function(e){Is.defined(e._currentView.tooltip)&&e._currentView.tooltip.parentNode.removeChild(e._currentView.tooltip)}})(ToolTip||(ToolTip={})),Arr2=Arr||(Arr={}),Arr2.getIndex=function(e,t){return t.useZeroIndexingForArrays?e:e+1},Arr2.getIndexName=function(e,t,n){let o=t.toString();if(e.addArrayIndexPadding){let t=n.toString().length;te.length-1&&(n=e.length-1),e.splice(n,0,e.splice(t,1)[0])},(e=>{function t(e){let n=0;if(Is.defined(e))if(Is.definedNumber(e))n=8;else if(Is.definedString(e))n=2*e.length;else if(Is.definedBoolean(e))n=4;else if(Is.definedBigInt(e))n=t(e.toString());else if(Is.definedRegExp(e))n=t(e.toString());else if(Is.definedDate(e))n=t(e.toString());else if(Is.definedSet(e))n=t(Convert2.setToArray(e));else if(Is.definedMap(e))n=t(Convert2.mapToObject(e));else if(Is.definedHtml(e))n=t(Convert2.htmlToObject(e));else if(Is.definedArray(e)){const o=e.length;for(let r=0;r0){const e=Math.floor(Math.log(n)/Math.log(1024));return`${Convert2.numberToFloatWithDecimalPlaces(n/Math.pow(1024,e),2)} ${" KMGTP".charAt(e)}B`}return null},e.length=function(t){let n=0;if(Is.defined(t))if(Is.definedDate(t))n=t.toString().length;else if(Is.definedImage(t))n=t.src.length;else if(Is.definedRegExp(t))n=t.source.length;else if(Is.definedSet(t))n=e.length(Convert2.setToArray(t));else if(Is.definedMap(t))n=e.length(Convert2.mapToObject(t));else if(Is.definedHtml(t))n=e.length(Convert2.htmlToObject(t));else if(Is.definedArray(t))n=t.length;else if(Is.definedObject(t))for(const e in t)t.hasOwnProperty(e)&&n++;else Is.definedFunction(t)||Is.definedSymbol(t)||(n=t.toString().length);return n}})(Size||(Size={})),(Obj||(Obj={})).getPropertyNames=function(e,t){let n=[];for(const t in e)e.hasOwnProperty(t)&&n.push(t);if(t.sortPropertyNames){let e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});n=n.sort(e.compare),t.sortPropertyNamesInAlphabeticalOrder||(n=n.reverse())}return n},(()=>{let e={},t={},n=0,o=(t,n)=>Convert2.stringifyJson(t,n,e);function r(){DomElement.find(e.domElementTypes,(t=>{let n=!0;if(Is.defined(t)&&t.hasAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME)){const o=t.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME);if(Is.definedString(o)){const r=Convert2.jsonStringToObject(o,e);r.parsed&&Is.definedObject(r.object)?l(Binding.Options.getForNewInstance(r.object,t)):e.safeMode||(console.error(e.text.attributeNotValidErrorText.replace("{{attribute_name}}",Constants.JSONTREE_JS_ATTRIBUTE_NAME)),n=!1)}else e.safeMode||(console.error(e.text.attributeNotSetErrorText.replace("{{attribute_name}}",Constants.JSONTREE_JS_ATTRIBUTE_NAME)),n=!1)}return n}))}function l(e){Trigger.customEvent(e.events.onBeforeRender,e._currentView.element),ToolTip.renderControl(e),Is.definedString(e._currentView.element.id)||(e._currentView.element.id=crypto.randomUUID(),e._currentView.idSet=!0),e._currentView.element.className="json-tree-js",e._currentView.element.removeAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME),e.openInFullScreenMode&&(e._currentView.element.classList.add("full-screen"),e._currentView.fullScreenOn=!0),t.hasOwnProperty(e._currentView.element.id)||(t[e._currentView.element.id]=e,n++),i(e),N(e),Trigger.customEvent(e.events.onRenderComplete,e._currentView.element)}function i(n,o=!1){let r=t[n._currentView.element.id].data;Is.definedUrl(r)?Default.getObjectFromUrl(r,e,(e=>{a(n,o,e)})):a(n,o,r)}function a(t,n,r){const l=function(e){const t=[];if(ToolTip.hide(e),e._currentView.editMode||e._currentView.sideMenuChanged){const n=e._currentView.contentColumns.length;for(let o=0;od(t)),t.sideMenu.enabled){const n=DomElement.createWithHTML(r,"button","side-menu",e.text.sideMenuButtonSymbolText);n.onclick=()=>function(e){e._currentView.sideMenu.classList.contains("side-menu-open")||(e._currentView.sideMenu.classList.add("side-menu-open"),e._currentView.disabledBackground.style.display="block",ToolTip.hide(e))}(t),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.sideMenuButtonText)}if(t._currentView.titleBarButtons=DomElement.create(r,"div","controls"),Is.definedString(t.title.text)&&DomElement.createWithHTML(r,"div","title",t.title.text,t._currentView.titleBarButtons),t.title.showCopyButton&&Is.defined(n)){const r=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","copy-all",e.text.copyButtonSymbolText);r.onclick=()=>function(t,n){let r=o;Is.definedFunction(t.events.onCopyJsonReplacer)&&(r=t.events.onCopyJsonReplacer);let l=JSON.stringify(n,r,t.jsonIndentSpaces);navigator.clipboard.writeText(l),D(t,e.text.copiedText),Trigger.customEvent(t.events.onCopyAll,t._currentView.element,l)}(t,n),r.ondblclick=DomElement.cancelBubble,ToolTip.add(r,t,e.text.copyAllButtonText)}if(t.title.showCloseOpenAllButtons&&Is.defined(n)){const n=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","open-all",e.text.openAllButtonSymbolText);n.onclick=()=>g(t),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.openAllButtonText);const o=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","close-all",e.text.closeAllButtonSymbolText);o.onclick=()=>m(t),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.closeAllButtonText)}if(t.paging.enabled&&Is.definedArray(n)&&n.length>1?(t._currentView.backButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","back",e.text.backButtonSymbolText),t._currentView.backButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.backButton,t,e.text.backButtonText),t._currentView.dataArrayCurrentIndex>0?t._currentView.backButton.onclick=()=>f(t):t._currentView.backButton.disabled=!0,t._currentView.nextButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","next",e.text.nextButtonSymbolText),t._currentView.nextButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.nextButton,t,e.text.nextButtonText),t._currentView.dataArrayCurrentIndex+(t.paging.columnsPerPage-1)p(t):t._currentView.nextButton.disabled=!0):Is.definedArray(n)&&(t.paging.enabled=!1),t.title.enableFullScreenToggling&&t.title.showFullScreenButton){const n=t._currentView.fullScreenOn?e.text.fullScreenOffButtonSymbolText:e.text.fullScreenOnButtonSymbolText;t._currentView.toggleFullScreenButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","toggle-full-screen",n),t._currentView.toggleFullScreenButton.onclick=()=>d(t),t._currentView.toggleFullScreenButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.toggleFullScreenButton,t,e.text.fullScreenButtonText)}}}(t,r);const i=DomElement.create(t._currentView.element,"div","contents");if(n&&i.classList.add("page-switch"),t.paging.enabled&&Is.definedArray(r)){const e=Is.defined(r[t._currentView.dataArrayCurrentIndex+1]);for(let n=0;nx(t),t._currentView.sideMenu=DomElement.create(t._currentView.element,"div","side-menu");const n=DomElement.create(t._currentView.sideMenu,"div","side-menu-title-bar");if(Is.definedString(t.sideMenu.titleText)){DomElement.create(n,"div","side-menu-title-bar-text").innerHTML=t.sideMenu.titleText}const r=DomElement.create(n,"div","side-menu-title-controls");if(t.sideMenu.showExportButton&&Is.definedObject(t.data)){const n=DomElement.createWithHTML(r,"button","export",e.text.exportButtonSymbolText);n.onclick=()=>function(t){let n=JSON.stringify(t.data,o,t.jsonIndentSpaces);if(Is.definedString(n)){const o=DomElement.create(document.body,"a");o.style.display="none",o.setAttribute("target","_blank"),o.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),o.setAttribute("download",function(t){const n=new Date,o=DateTime.getCustomFormattedDateText(e,n,t.exportFilenameFormat);return o}(t)),o.click(),document.body.removeChild(o),x(t),D(t,e.text.exportedText),Trigger.customEvent(t.events.onExport,t._currentView.element)}}(t),ToolTip.add(n,t,e.text.exportButtonText)}if(t.sideMenu.showImportButton){const n=DomElement.createWithHTML(r,"button","import",e.text.importButtonSymbolText);n.onclick=()=>T(t),ToolTip.add(n,t,e.text.importButtonText)}const l=DomElement.createWithHTML(r,"button","close",e.text.closeButtonSymbolText);if(l.onclick=()=>x(t),ToolTip.add(l,t,e.text.closeButtonText),Is.definedObject(t.data)){!function(t,n){const o=[],r=DomElement.create(t,"div","settings-panel"),l=DomElement.create(r,"div","settings-panel-title-bar");DomElement.createWithHTML(l,"div","settings-panel-title-text",`${e.text.showDataTypesText}:`);const i=DomElement.create(l,"div","settings-panel-control-buttons"),a=DomElement.create(i,"div","settings-panel-control-button settings-panel-fill"),s=DomElement.create(i,"div","settings-panel-control-button");a.onclick=()=>b(n,o,!0),s.onclick=()=>b(n,o,!1),ToolTip.add(a,n,e.text.selectAllText),ToolTip.add(s,n,e.text.selectNoneText);const u=DomElement.create(r,"div","settings-panel-contents"),c=Object.keys(DataType),d=n.ignore;c.sort(),c.forEach(((e,t)=>{const r=function(e,t,n,o){let r=null;const l=n._currentView.dataTypeCounts[t];if(!n.sideMenu.showOnlyDataTypesAvailable||l>0){let i=Str.capitalizeFirstLetter(t),a="";n.sideMenu.showAvailableDataTypeCounts&&n._currentView.dataTypeCounts.hasOwnProperty(t)&&(a=`(${l})`),r=DomElement.createCheckBox(e,i,t,o,n.showValueColors?t:"",a),r.onchange=()=>{const e=n.ignore;e[`${t}Values`]=!r.checked,n.ignore=e,n._currentView.sideMenuChanged=!0}}return r}(u,e,n,!d[`${e}Values`]);Is.defined(r)&&o.push(r)}))}(DomElement.create(t._currentView.sideMenu,"div","side-menu-contents"),t)}}}(t),function(t){t.footer.enabled&&Is.defined(t.data)&&(t._currentView.footer=DomElement.create(t._currentView.element,"div","footer-bar"),w(t),t._currentView.footerStatusText=DomElement.createWithHTML(t._currentView.footer,"div","status-text",e.text.waitingText),t.footer.showDataTypes&&(t._currentView.footerDataTypeText=DomElement.create(t._currentView.footer,"div","status-value-data-type"),t._currentView.footerDataTypeText.style.display="none"),t.footer.showLengths&&(t._currentView.footerLengthText=DomElement.create(t._currentView.footer,"div","status-value-length"),t._currentView.footerLengthText.style.display="none"),t.footer.showSizes&&(t._currentView.footerSizeText=DomElement.create(t._currentView.footer,"div","status-value-size"),t._currentView.footerSizeText.style.display="none"),t.paging.enabled&&Is.definedArray(t.data)&&t.data.length>1&&t.footer.showPageOf&&(t._currentView.footerPageText=DomElement.create(t._currentView.footer,"div","status-page-index"),function(t){if(t.paging.enabled){const n=Math.ceil((t._currentView.dataArrayCurrentIndex+1)/t.paging.columnsPerPage),o=Math.ceil(t.data.length/t.paging.columnsPerPage),r=DomElement.createWithHTML(null,"span","status-count",n.toFixed()).outerHTML,l=DomElement.createWithHTML(null,"span","status-count",o.toFixed()).outerHTML,i=e.text.pageOfText.replace("{0}",r).replace("{1}",l);t._currentView.footerPageText.innerHTML=i}}(t)))}(t),function(t){if(t.fileDroppingEnabled){const n=DomElement.create(t._currentView.element,"div","drag-and-drop-background"),o=DomElement.create(n,"div","notice-text");DomElement.createWithHTML(o,"p","notice-text-symbol",e.text.dragAndDropSymbolText),DomElement.createWithHTML(o,"p","notice-text-title",e.text.dragAndDropTitleText),DomElement.createWithHTML(o,"p","notice-text-description",e.text.dragAndDropDescriptionText),t._currentView.dragAndDropBackground=n,t._currentView.element.ondragover=()=>L(t,n),t._currentView.element.ondragenter=()=>L(t,n),n.ondragover=DomElement.cancelBubble,n.ondragenter=DomElement.cancelBubble,n.ondragleave=()=>n.style.display="none",n.ondrop=e=>function(e,t){DomElement.cancelBubble(e),t._currentView.dragAndDropBackground.style.display="none",Is.defined(window.FileReader)&&e.dataTransfer.files.length>0&&j(e.dataTransfer.files,t)}(e,t)}}(t),t._currentView.initialized=!0}function s(t,n,r,l,a,s,d){const g=DomElement.create(n,"div",s>1?"contents-column-multiple":"contents-column");if(Is.defined(t))g.onscroll=()=>function(e,t,n){ToolTip.hide(t);const o=e.scrollTop,r=e.scrollLeft,l=t._currentView.contentColumns.length;if(t.controlPanel.enabled){const e=t._currentView.contentControlButtons[n];Is.defined(e)&&(e.style.top=`${t._currentView.contentColumns[n].scrollTop}px`,e.style.right=`-${t._currentView.contentColumns[n].scrollLeft}px`)}if(t.paging.synchronizeScrolling)for(let e=0;e1&&r.allowEditing.bulk&&(g.setAttribute("draggable","true"),g.ondragstart=()=>function(e,t,n){t._currentView.columnDragging=!0,t._currentView.columnDraggingDataIndex=n,e.classList.add("draggable-item")}(g,r,l),g.ondragend=()=>function(e,t){t._currentView.columnDragging=!1,e.classList.remove("draggable-item")}(g,r),g.ondragover=e=>e.preventDefault(),g.ondrop=()=>function(e,t){e._currentView.columnDragging=!1,c(e,e._currentView.columnDraggingDataIndex,t)}(r,l)),r._currentView.contentColumns.push(g),Is.definedArray(t)?S(g,r,t,"array"):Is.definedSet(t)?S(g,r,Convert2.setToArray(t),"set"):Is.definedHtml(t)?V(g,r,Convert2.htmlToObject(t,r.showCssStylesForHtmlObjects),l,"html"):Is.definedMap(t)?V(g,r,Convert2.mapToObject(t),l,"map"):Is.definedObject(t)&&V(g,r,t,l,"object"),function(t,n,r,l){const a=DomElement.create(n,"div","column-control-buttons");a.ondblclick=DomElement.cancelBubble;const s=t.paging.enabled&&Is.definedArray(t.data)&&t.data.length>1;if(t.allowEditing.bulk&&t.controlPanel.showEditButton){const o=DomElement.createWithHTML(a,"button","edit",e.text.editSymbolButtonText);o.onclick=()=>u(null,t,r,n,l),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.editButtonText)}if(s&&t.allowEditing.bulk&&t.paging.allowColumnReordering&&t.controlPanel.showMovingButtons){const n=DomElement.createWithHTML(a,"button","move-right",e.text.moveRightSymbolButtonText);n.ondblclick=DomElement.cancelBubble,l+1>t.data.length-1?n.disabled=!0:n.onclick=()=>c(t,l,l+1),ToolTip.add(n,t,e.text.moveRightButtonText);const o=DomElement.createWithHTML(a,"button","move-left",e.text.moveLeftSymbolButtonText);o.ondblclick=DomElement.cancelBubble,l-1<0?o.disabled=!0:o.onclick=()=>c(t,l,l-1),ToolTip.add(o,t,e.text.moveLeftButtonText)}if(s&&t.controlPanel.showCopyButton){const n=DomElement.createWithHTML(a,"button","copy",e.text.copyButtonSymbolText);n.onclick=()=>function(t,n){let r=o;Is.definedFunction(t.events.onCopyJsonReplacer)&&(r=t.events.onCopyJsonReplacer);let l=JSON.stringify(n,r,t.jsonIndentSpaces);navigator.clipboard.writeText(l),D(t,e.text.copiedText),Trigger.customEvent(t.events.onCopy,t._currentView.element,l)}(t,r),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.copyButtonText)}if(s&&t.controlPanel.showCloseOpenAllButtons){const n=DomElement.createWithHTML(a,"button","open-all",e.text.openAllButtonSymbolText);n.onclick=()=>function(e,t){const n=e._currentView.contentPanelsOpen[t];for(const e in n)n.hasOwnProperty(e)&&(n[e]=!1);i(e)}(t,l),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.openAllButtonText);const o=DomElement.createWithHTML(a,"button","close-all",e.text.closeAllButtonSymbolText);o.onclick=()=>function(e,t){const n=e._currentView.contentPanelsOpen[t];for(const e in n)n.hasOwnProperty(e)&&(n[e]=!0);i(e)}(t,l),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.closeAllButtonText)}if(t.allowEditing.bulk&&t.controlPanel.showRemoveButton){const n=DomElement.createWithHTML(a,"button","remove",e.text.removeSymbolButtonText);n.onclick=()=>function(t,n){t.paging.enabled?(t.data.splice(n,1),n===t._currentView.dataArrayCurrentIndex&&t._currentView.dataArrayCurrentIndex>0&&(t._currentView.dataArrayCurrentIndex-=t.paging.columnsPerPage)):t.data=null;i(t),D(t,e.text.arrayJsonItemDeleted)}(t,l),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.removeButtonText)}if(!t.paging.enabled&&Is.definedArray(t.data)&&t.data.length>1&&t.controlPanel.showSwitchToPagesButton){const n=DomElement.createWithHTML(a,"button","switch-to-pages",e.text.switchToPagesSymbolText);n.onclick=()=>function(e){e.paging.enabled=!0,i(e)}(t),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.switchToPagesText)}""!==a.innerHTML?(t._currentView.contentControlButtons.push(a),n.style.minHeight=`${a.offsetHeight}px`):n.removeChild(a)}(r,g,t,l),Is.defined(a)&&(g.scrollTop=a),r._currentView.titleBarButtons.style.display="block",r.allowEditing.bulk&&(g.ondblclick=e=>{u(e,r,t,g,l)});else{const t=DomElement.create(g,"div","no-json");if(DomElement.createWithHTML(t,"span","no-json-text",e.text.noJsonToViewText),r.sideMenu.showImportButton){DomElement.createWithHTML(t,"span","no-json-import-text",`${e.text.importButtonText}${e.text.ellipsisText}`).onclick=()=>T(r)}}}function u(t,n,r,l,a){let s=null;Is.defined(t)&&DomElement.cancelBubble(t),clearTimeout(n._currentView.valueClickTimerId),n._currentView.valueClickTimerId=0,n._currentView.editMode=!0,l.classList.add("editable"),l.setAttribute("contenteditable","true"),l.setAttribute("draggable","false"),l.innerText=JSON.stringify(r,o,n.jsonIndentSpaces),l.focus(),DomElement.selectAllText(l),l.onblur=()=>{i(n,!1),Is.definedString(s)&&D(n,s)},l.onkeydown=t=>{if("Escape"===t.code)t.preventDefault(),l.setAttribute("contenteditable","false");else if(k(t)&&"Enter"===t.code){t.preventDefault();const o=l.innerText,r=Convert2.jsonStringToObject(o,e);r.parsed&&(s=e.text.jsonUpdatedText,n.paging.enabled?Is.defined(r.object)?n.data[a]=r.object:(n.data.splice(a,1),s=e.text.arrayJsonItemDeleted,a===n._currentView.dataArrayCurrentIndex&&n._currentView.dataArrayCurrentIndex>0&&(n._currentView.dataArrayCurrentIndex-=n.paging.columnsPerPage)):n.data=r.object),l.setAttribute("contenteditable","false")}else"Enter"===t.code&&(t.preventDefault(),document.execCommand("insertLineBreak"))}}function c(t,n,o){if(n!==o){const r=t.data[o],l=t.data[n];let a=t._currentView.contentPanelsOpen[o],s=t._currentView.contentPanelsOpen[n];Is.defined(a)||(a={}),Is.defined(s)||(s={}),t.data[o]=l,t.data[n]=r,t._currentView.contentPanelsOpen[o]=s,t._currentView.contentPanelsOpen[n]=a,t._currentView.dataArrayCurrentIndex+(t.paging.columnsPerPage-1)j(t.files,e),t.click()}function x(t){t._currentView.sideMenu.classList.contains("side-menu-open")&&(t._currentView.sideMenu.classList.remove("side-menu-open"),t._currentView.disabledBackground.style.display="none",ToolTip.hide(t),t._currentView.sideMenuChanged&&setTimeout((()=>{i(t),D(t,e.text.ignoreDataTypesUpdated)}),500))}function b(e,t,n){const o=t.length,r=e.ignore;for(let e=0;e0&&(o.addEventListener("mousemove",(()=>{const n=DomElement.createWithHTML(null,"span","status-count",r.toString()).outerHTML,o=e.text.lengthText.replace("{0}",n);t._currentView.footerLengthText.style.display="block",t._currentView.footerLengthText.innerHTML=o})),o.addEventListener("mouseleave",(()=>{t._currentView.footerLengthText.style.display="none",t._currentView.footerLengthText.innerHTML=""})))}}function h(t,n,o){if(t.footer.enabled&&t.footer.showSizes){const r=Size.of(n);Is.definedString(r)&&(o.addEventListener("mousemove",(()=>{const n=DomElement.createWithHTML(null,"span","status-count",r.toString()).outerHTML,o=e.text.sizeText.replace("{0}",n);t._currentView.footerSizeText.style.display="block",t._currentView.footerSizeText.innerHTML=o})),o.addEventListener("mouseleave",(()=>{t._currentView.footerSizeText.style.display="none",t._currentView.footerSizeText.innerHTML=""})))}}function D(t,n){t.footer.enabled&&(t._currentView.footerStatusText.innerHTML=n,clearTimeout(t._currentView.footerStatusTextTimerId),t._currentView.footerStatusTextTimerId=setTimeout((()=>{t._currentView.footerStatusText.innerHTML=e.text.waitingText}),t.footer.statusResetDelay))}function V(t,n,o,r,l){const i=Obj.getPropertyNames(o,n),a=i.length;if(0!==a||!n.ignore.emptyObjects){let s=null;"object"===l?s=e.text.objectText:"map"===l?s=e.text.mapText:"html"===l&&(s=e.text.htmlText);const u=DomElement.create(t,"div","object-type-title"),c=DomElement.create(t,"div","object-type-contents last-item"),d=n.showArrowToggles?DomElement.create(u,"div","down-arrow"):null,g=DomElement.createWithHTML(u,"span",n.showValueColors?`${l} main-title`:"main-title",s);let m=null,f=null;if(I(c,n),n.paging.enabled&&Is.definedNumber(r)){let t=n.useZeroIndexingForArrays?r.toString():(r+1).toString();n.showArrayIndexBrackets&&(t=`[${t}]`),DomElement.createWithHTML(u,"span",n.showValueColors?`${l} data-array-index`:"data-array-index",t,g),DomElement.createWithHTML(u,"span","split",e.text.propertyColonCharacter,g)}n.showObjectSizes&&a>0&&("html"===l?DomElement.createWithHTML(u,"span",n.showValueColors?`${l} size`:"size",`<${a}>`):DomElement.createWithHTML(u,"span",n.showValueColors?`${l} size`:"size",`{${a}}`)),n.showOpeningClosingCurlyBraces&&(m=DomElement.createWithHTML(u,"span","opening-symbol","{"),f=DomElement.createWithHTML(u,"span","closed-symbols","{ ... }")),v(d,null,c,n,o,i,m,f,!1,!0,"",l,"object"!==l),A(n,g,o,l,!1),h(n,o,g),y(n,o,g)}}function S(t,n,o,r){let l=null;"set"===r?l=e.text.setText:"array"===r&&(l=e.text.arrayText);const i=DomElement.create(t,"div","object-type-title"),a=DomElement.create(t,"div","object-type-contents last-item"),s=n.showArrowToggles?DomElement.create(i,"div","down-arrow"):null,u=DomElement.createWithHTML(i,"span",n.showValueColors?`${r} main-title`:"main-title",l);let c=null,d=null;I(a,n),n.showObjectSizes&&DomElement.createWithHTML(i,"span",n.showValueColors?`${r} size`:"size",`[${o.length}]`),n.showOpeningClosingCurlyBraces&&(c=DomElement.createWithHTML(i,"span","opening-symbol","["),d=DomElement.createWithHTML(i,"span","closed-symbols","[ ... ]")),E(s,null,a,n,o,c,d,!1,!0,"",r,"array"!==r),A(n,u,o,r,!1),h(n,o,u),y(n,o,u)}function v(t,n,o,r,l,i,a,s,u,c,d,g,m){let f=!0;const p=i.length,T=""!==d?p:0;if(0!==p||r.ignore.emptyObjects){for(let e=0;e{DomElement.cancelBubble(a);let s=0,u=null;clearTimeout(t._currentView.valueClickTimerId),t._currentView.valueClickTimerId=0,t._currentView.editMode=!0,r.classList.add("editable-name"),l?(s=Arr.getIndexFromBrackets(r.innerHTML),r.innerHTML=s.toString()):r.innerHTML=r.innerHTML.replace(/['"]+/g,""),r.setAttribute("contenteditable","true"),r.focus(),DomElement.selectAllText(r),r.onblur=()=>{i(t,!1),Is.definedString(u)&&D(t,u)},r.onkeydown=i=>{if("Escape"===i.code)i.preventDefault(),r.setAttribute("contenteditable","false");else if("Enter"===i.code){i.preventDefault();const a=r.innerText;if(l){if(!isNaN(+a)){let o=+a;t.useZeroIndexingForArrays||o--,s!==o&&(u=e.text.indexUpdatedText,Arr.moveIndex(n,s,o),Trigger.customEvent(t.events.onJsonEdit,t._currentView.element))}}else if(a!==o){if(""===a.trim())u=e.text.itemDeletedText,delete n[o];else if(!n.hasOwnProperty(a)){u=e.text.nameUpdatedText;const t=n[o];delete n[o],n[a]=t}Trigger.customEvent(t.events.onJsonEdit,t._currentView.element)}r.setAttribute("contenteditable","false")}}})}(o,t,r,w,s),Is.definedString(u)&&g.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME,u),s||(h(o,r,w),y(o,r,w))),null===l)b="null",o.ignore.nullValues?T=!0:(f=o.showValueColors?`${b} value undefined-or-null`:"value undefined-or-null",p=DomElement.createWithHTML(g,"span",f,"null"),Is.definedFunction(o.events.onNullRender)&&Trigger.customEvent(o.events.onNullRender,o._currentView.element,p),O(o,g,a));else if(void 0===l)b="undefined",o.ignore.undefinedValues?T=!0:(f=o.showValueColors?`${b} value undefined-or-null`:"value undefined-or-null",p=DomElement.createWithHTML(g,"span",f,"undefined"),Is.definedFunction(o.events.onUndefinedRender)&&Trigger.customEvent(o.events.onUndefinedRender,o._currentView.element,p),O(o,g,a));else if(Is.definedFunction(l)){const t=Default.getFunctionName(l,e);t.isLambda?(b="lambda",o.ignore.lambdaValues?T=!0:(f=o.showValueColors?`${b} value non-value`:"value non-value",p=DomElement.createWithHTML(g,"span",f,t.name),Is.definedFunction(o.events.onLambdaRender)&&Trigger.customEvent(o.events.onLambdaRender,o._currentView.element,p),O(o,g,a))):(b="function",o.ignore.functionValues?T=!0:(f=o.showValueColors?`${b} value non-value`:"value non-value",p=DomElement.createWithHTML(g,"span",f,t.name),Is.definedFunction(o.events.onFunctionRender)&&Trigger.customEvent(o.events.onFunctionRender,o._currentView.element,p),O(o,g,a)))}else if(Is.definedBoolean(l))b="boolean",o.ignore.booleanValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l),V=o.allowEditing.booleanValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onBooleanRender)&&Trigger.customEvent(o.events.onBooleanRender,o._currentView.element,p),O(o,g,a));else if(Is.definedFloat(l))if(b="float",o.ignore.floatValues)T=!0;else{const e=Convert2.numberToFloatWithDecimalPlaces(l,o.maximumDecimalPlaces);f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,e),V=o.allowEditing.floatValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onFloatRender)&&Trigger.customEvent(o.events.onFloatRender,o._currentView.element,p),O(o,g,a)}else if(Is.definedNumber(l))b="number",o.ignore.numberValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l),V=o.allowEditing.numberValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onNumberRender)&&Trigger.customEvent(o.events.onNumberRender,o._currentView.element,p),O(o,g,a));else if(Is.definedBigInt(l))b="bigint",o.ignore.bigintValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l),V=o.allowEditing.bigIntValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onBigIntRender)&&Trigger.customEvent(o.events.onBigIntRender,o._currentView.element,p),O(o,g,a));else if(Is.definedString(l)&&Is.String.guid(l))b="guid",o.ignore.guidValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l),V=o.allowEditing.guidValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onGuidRender)&&Trigger.customEvent(o.events.onGuidRender,o._currentView.element,p),O(o,g,a));else if(Is.definedString(l)&&(Is.String.hexColor(l)||Is.String.rgbColor(l)))b="color",o.ignore.colorValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l),V=o.allowEditing.colorValues&&!d,o.showValueColors&&(p.style.color=l),C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onColorRender)&&Trigger.customEvent(o.events.onColorRender,o._currentView.element,p),O(o,g,a));else if(Is.definedString(l)&&Is.definedUrl(l))if(b="url",o.ignore.urlValues)T=!0;else{let n=l,i=null;o.maximumUrlLength>0&&n.length>o.maximumUrlLength&&(n=`${n.substring(0,o.maximumUrlLength)} ${e.text.ellipsisText} `),f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,n),V=o.allowEditing.urlValues&&!d,o.showUrlOpenButtons&&(i=DomElement.createWithHTML(g,"span",o.showValueColors?"open-button-color":"open-button",`${e.text.openText} ${e.text.openSymbolText}`),i.onclick=()=>window.open(l)),C(o,t,r,l,p,s,V,i),Is.definedFunction(o.events.onUrlRender)&&Trigger.customEvent(o.events.onUrlRender,o._currentView.element,p),O(o,g,a)}else if(Is.definedString(l)&&Is.definedEmail(l))if(b="email",o.ignore.emailValues)T=!0;else{let n=l,i=null;o.maximumEmailLength>0&&n.length>o.maximumEmailLength&&(n=`${n.substring(0,o.maximumEmailLength)} ${e.text.ellipsisText} `),f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,n),V=o.allowEditing.emailValues&&!d,o.showEmailOpenButtons&&(i=DomElement.createWithHTML(g,"span",o.showValueColors?"open-button-color":"open-button",`${e.text.openText} ${e.text.openSymbolText}`),i.onclick=()=>window.open(`mailto:${l}`)),C(o,t,r,l,p,s,V,i),Is.definedFunction(o.events.onEmailRender)&&Trigger.customEvent(o.events.onEmailRender,o._currentView.element,p),O(o,g,a)}else if(Is.definedString(l))if(b="string",!o.ignore.stringValues||_)if(o.parse.stringsToBooleans&&Is.String.boolean(l))B(t,n,o,r,"true"===l.toString().toLowerCase().trim(),a,s,u,c,d),T=!0,x=!0;else if(o.parse.stringsToNumbers&&Is.String.bigInt(l))B(t,n,o,r,Convert2.stringToBigInt(l),a,s,u,c,d),T=!0,x=!0;else if(o.parse.stringsToNumbers&&!isNaN(l))B(t,n,o,r,parseFloat(l),a,s,u,c,d),T=!0,x=!0;else if(o.parse.stringsToDates&&Is.String.date(l))B(t,n,o,r,new Date(l),a,s,u,c,d),T=!0,x=!0;else{let n=l;_?(f="no-properties-text",V=!1,M=!1):(o.maximumStringLength>0&&n.length>o.maximumStringLength&&(n=`${n.substring(0,o.maximumStringLength)} ${e.text.ellipsisText} `),n=o.showStringQuotes?`"${n}"`:n,f=o.showValueColors?`${b} value`:"value",V=o.allowEditing.stringValues&&!d),p=DomElement.createWithHTML(g,"span",f,n),_||(C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onStringRender)&&Trigger.customEvent(o.events.onStringRender,o._currentView.element,p),O(o,g,a))}else T=!0;else if(Is.definedDate(l))b="date",o.ignore.dateValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,DateTime.getCustomFormattedDateText(e,l,o.dateTimeFormat)),V=o.allowEditing.dateValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onDateRender)&&Trigger.customEvent(o.events.onDateRender,o._currentView.element,p),O(o,g,a));else if(Is.definedSymbol(l))b="symbol",o.ignore.symbolValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l.toString()),V=o.allowEditing.symbolValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onSymbolRender)&&Trigger.customEvent(o.events.onSymbolRender,o._currentView.element,p),O(o,g,a));else if(Is.definedRegExp(l))b="regexp",o.ignore.regexpValues?T=!0:(f=o.showValueColors?`${b} value`:"value",p=DomElement.createWithHTML(g,"span",f,l.source.toString()),V=o.allowEditing.regExpValues&&!d,C(o,t,r,l,p,s,V),Is.definedFunction(o.events.onRegExpRender)&&Trigger.customEvent(o.events.onRegExpRender,o._currentView.element,p),O(o,g,a));else if(Is.definedImage(l))if(b="image",o.ignore.imageValues)T=!0;else{f=o.showValueColors?`${b} value`:"value",p=DomElement.create(g,"span",f),V=o.allowEditing.imageValues&&!d,C(o,t,r,l,p,s,V);DomElement.create(p,"img").src=l.src,Is.definedFunction(o.events.onImageRender)&&Trigger.customEvent(o.events.onImageRender,o._currentView.element,p),O(o,g,a)}else if(Is.definedHtml(l))if(b="html",o.ignore.htmlValues)T=!0;else{const t=Convert2.htmlToObject(l,o.showCssStylesForHtmlObjects),n=Obj.getPropertyNames(t,o),r=n.length;if(0===r&&o.ignore.emptyObjects)T=!0;else{const l=DomElement.create(g,"span",o.showValueColors?b:""),i=DomElement.create(g,"div","object-type-contents");let s=null,c=null;I(i,o),a&&i.classList.add("last-item"),p=DomElement.createWithHTML(l,"span","main-title",e.text.htmlText),o.showObjectSizes&&(r>0||!o.ignore.emptyObjects)&&DomElement.createWithHTML(l,"span","size",`<${r}>`),o.showOpeningClosingCurlyBraces&&(s=DomElement.createWithHTML(l,"span","opening-symbol","{"),c=DomElement.createWithHTML(l,"span","closed-symbols","{ ... }"));!v(m,O(o,l,a),i,o,t,n,s,c,!0,a,u,b,!0)&&o.showOpeningClosingCurlyBraces&&(s.parentNode.removeChild(s),c.parentNode.removeChild(c))}}else if(Is.definedSet(l))if(b="set",o.ignore.setValues)T=!0;else{const t=Convert2.setToArray(l),n=DomElement.create(g,"span",o.showValueColors?b:""),r=DomElement.create(g,"div","object-type-contents");let i=null,s=null;I(r,o),a&&r.classList.add("last-item"),p=DomElement.createWithHTML(n,"span","main-title",e.text.setText),o.showObjectSizes&&DomElement.createWithHTML(n,"span","size",`[${t.length}]`),o.showOpeningClosingCurlyBraces&&(i=DomElement.createWithHTML(n,"span","opening-symbol","["),s=DomElement.createWithHTML(n,"span","closed-symbols","[ ... ]"));!E(m,O(o,n,a),r,o,t,i,s,!0,a,u,b,!0)&&o.showOpeningClosingCurlyBraces&&(i.parentNode.removeChild(i),s.parentNode.removeChild(s))}else if(Is.definedArray(l))if(b="array",o.ignore.arrayValues)T=!0;else{const t=DomElement.create(g,"span",o.showValueColors?b:""),n=DomElement.create(g,"div","object-type-contents");let r=null,i=null;I(n,o),a&&n.classList.add("last-item"),p=DomElement.createWithHTML(t,"span","main-title",e.text.arrayText),o.showObjectSizes&&DomElement.createWithHTML(t,"span","size",`[${l.length}]`),o.showOpeningClosingCurlyBraces&&(r=DomElement.createWithHTML(t,"span","opening-symbol","["),i=DomElement.createWithHTML(t,"span","closed-symbols","[ ... ]"));!E(m,O(o,t,a),n,o,l,r,i,!0,a,u,b,!1)&&o.showOpeningClosingCurlyBraces&&(r.parentNode.removeChild(r),i.parentNode.removeChild(i))}else if(Is.definedMap(l))if(b="map",o.ignore.mapValues)T=!0;else{const t=Convert2.mapToObject(l),n=Obj.getPropertyNames(t,o),r=n.length;if(0===r&&o.ignore.emptyObjects)T=!0;else{const l=DomElement.create(g,"span",o.showValueColors?b:""),i=DomElement.create(g,"div","object-type-contents");let s=null,c=null;I(i,o),a&&i.classList.add("last-item"),p=DomElement.createWithHTML(l,"span","main-title",e.text.mapText),o.showObjectSizes&&(r>0||!o.ignore.emptyObjects)&&DomElement.createWithHTML(l,"span","size",`{${r}}`),o.showOpeningClosingCurlyBraces&&(s=DomElement.createWithHTML(l,"span","opening-symbol","{"),c=DomElement.createWithHTML(l,"span","closed-symbols","{ ... }"));!v(m,O(o,l,a),i,o,t,n,s,c,!0,a,u,b,!0)&&o.showOpeningClosingCurlyBraces&&(s.parentNode.removeChild(s),c.parentNode.removeChild(c))}}else if(Is.definedObject(l))if(b="object",o.ignore.objectValues)T=!0;else{const t=Obj.getPropertyNames(l,o),n=t.length;if(0===n&&o.ignore.emptyObjects)T=!0;else{const r=DomElement.create(g,"span",o.showValueColors?b:""),i=DomElement.create(g,"div","object-type-contents");let s=null,c=null;I(i,o),a&&i.classList.add("last-item"),p=DomElement.createWithHTML(r,"span","main-title",e.text.objectText),o.showObjectSizes&&(n>0||!o.ignore.emptyObjects)&&DomElement.createWithHTML(r,"span","size",`{${n}}`),o.showOpeningClosingCurlyBraces&&(s=DomElement.createWithHTML(r,"span","opening-symbol","{"),c=DomElement.createWithHTML(r,"span","closed-symbols","{ ... }"));!v(m,O(o,r,a),i,o,l,t,s,c,!0,a,u,b,!1)&&o.showOpeningClosingCurlyBraces&&(s.parentNode.removeChild(s),c.parentNode.removeChild(c))}}else b="unknown",o.ignore.unknownValues?T=!0:(f=o.showValueColors?`${b} value non-value`:"value non-value",p=DomElement.createWithHTML(g,"span",f,l.toString()),Is.definedFunction(o.events.onUnknownRender)&&Trigger.customEvent(o.events.onUnknownRender,o._currentView.element,p),O(o,g,a));_||x||function(e,t){e._currentView.dataTypeCounts.hasOwnProperty(t)||(e._currentView.dataTypeCounts[t]=0);e._currentView.dataTypeCounts[t]++}(o,b),T?n.removeChild(g):Is.defined(p)&&(_||(h(o,l,p),y(o,l,p),function(t,n,o){t.footer.enabled&&t.footer.showDataTypes&&(o.addEventListener("mousemove",(()=>{const o=DomElement.createWithHTML(null,"span","status-count",n).outerHTML,r=e.text.dataTypeText.replace("{0}",o);t._currentView.footerDataTypeText.style.display="block",t._currentView.footerDataTypeText.innerHTML=r})),o.addEventListener("mouseleave",(()=>{t._currentView.footerDataTypeText.style.display="none",t._currentView.footerDataTypeText.innerHTML=""})))}(o,b,p)),Is.defined(S)&&("null"!==b&&"undefined"!==b&&"array"!==b&&"object"!==b&&"map"!==b&&"set"!==b?S.innerHTML=`(${b})`:(S.parentNode.removeChild(S),S=null)),M?(!function(e,t,n,o,r){if(Is.definedObject(e.valueToolTips)){if(e.logJsonValueToolTipPaths&&console.log(t),!e.valueToolTips.hasOwnProperty(t)){const n=t.split("\\"),o=n.length-1;for(let t=0;t{let c=null;DomElement.cancelBubble(s),clearTimeout(t._currentView.valueClickTimerId),t._currentView.valueClickTimerId=0,t._currentView.editMode=!0,l.classList.add("editable"),l.setAttribute("contenteditable","true"),Is.definedDate(r)&&!t.includeTimeZoneInDateTimeEditing?l.innerText=JSON.stringify(r).replace(/['"]+/g,""):Is.definedRegExp(r)?l.innerText=r.source:Is.definedSymbol(r)?l.innerText=Convert2.symbolToString(r):Is.definedImage(r)?l.innerText=r.src:l.innerText=r.toString(),l.focus(),DomElement.selectAllText(l),Is.defined(u)&&u.parentNode.removeChild(u),l.onblur=()=>{i(t,!1),Is.definedString(c)&&D(t,c)},l.onkeydown=i=>{if("Escape"===i.code)i.preventDefault(),l.setAttribute("contenteditable","false");else if("Enter"===i.code){i.preventDefault();const s=l.innerText;if(""===s.trim())a?n.splice(Arr.getIndexFromBrackets(o),1):delete n[o],c=e.text.itemDeletedText;else{let l=Convert2.stringToDataTypeValue(r,s);null!==l&&(a?n[Arr.getIndexFromBrackets(o)]=l:n[o]=l,c=e.text.valueUpdatedText,Trigger.customEvent(t.events.onJsonEdit,t._currentView.element))}l.setAttribute("contenteditable","false")}}})}function A(e,t,n,o,r){Is.definedFunction(e.events.onValueClick)?t.onclick=()=>{r?e._currentView.valueClickTimerId=setTimeout((()=>{e._currentView.editMode||Trigger.customEvent(e.events.onValueClick,e._currentView.element,n,o)}),e.editingValueClickDelay):(t.ondblclick=DomElement.cancelBubble,Trigger.customEvent(e.events.onValueClick,e._currentView.element,n,o))}:t.classList.add("no-hover")}function _(e,t,n,o,r,l,i,a){const s=e._currentView.contentPanelsIndex,u=e._currentView.contentPanelsDataIndex;e._currentView.contentPanelsOpen.hasOwnProperty(u)||(e._currentView.contentPanelsOpen[u]={});const c=i=>{i?(o.style.display="none",e._currentView.contentPanelsOpen[u][s]=!0,Is.defined(t)&&(t.className="right-arrow"),Is.defined(r)&&(r.style.display="none"),Is.defined(l)&&(l.style.display="inline-block"),Is.defined(n)&&(n.style.display="inline-block")):(o.style.display="block",e._currentView.contentPanelsOpen[u][s]=!1,Is.defined(t)&&(t.className="down-arrow"),Is.defined(r)&&(r.style.display="inline-block"),Is.defined(l)&&(l.style.display="none"),Is.defined(n)&&(n.style.display="none"))};let d=e.showAllAsClosed;e._currentView.contentPanelsOpen[u].hasOwnProperty(s)?d=e._currentView.contentPanelsOpen[u][s]:(e._currentView.initialized||("object"===a&&e.autoClose.objectSize>0&&i>=e.autoClose.objectSize||"array"===a&&e.autoClose.arraySize>0&&i>=e.autoClose.arraySize||"map"===a&&e.autoClose.mapSize>0&&i>=e.autoClose.mapSize||"set"===a&&e.autoClose.setSize>0&&i>=e.autoClose.setSize||"html"===a&&e.autoClose.htmlSize>0&&i>=e.autoClose.htmlSize)&&(d=!0),e._currentView.contentPanelsOpen[u][s]=d),Is.defined(t)&&(t.onclick=()=>c("down-arrow"===t.className),t.ondblclick=DomElement.cancelBubble),c(d),e._currentView.contentPanelsIndex++}function O(e,t,n){let o=null;return e.showCommas&&!n&&(o=DomElement.createWithHTML(t,"span","comma",",")),o}function M(e,t,n,o,r){let l=DomElement.create(t,"div","closing-symbol");(o&&e.showArrowToggles||e.showOpenedObjectArrayBorders)&&DomElement.create(l,"div","no-arrow"),DomElement.createWithHTML(l,"div","object-type-end",n),O(e,l,r)}function L(e,t){e._currentView.columnDragging||(t.style.display="block")}function j(t,n){const o=t.length;let r=0,l=[];const a=t=>{r++,l.push(t),r===o&&(n._currentView.dataArrayCurrentIndex=0,n._currentView.contentPanelsOpen={},n.data=1===l.length?l[0]:l,i(n),D(n,e.text.importedText.replace("{0}",o.toString())),Trigger.customEvent(n.events.onSetJson,n._currentView.element))};for(let e=0;en(r),o.onload=t=>{const n=Convert2.jsonStringToObject(t.target.result,e);n.parsed&&Is.definedObject(n.object)&&(r=n.object)},o.readAsText(t)}function N(e,o=!0){(o?document.addEventListener:document.removeEventListener)("keydown",(o=>function(e,o){o.shortcutKeysEnabled&&1===n&&t.hasOwnProperty(o._currentView.element.id)&&!o._currentView.editMode&&(k(e)&&"F11"===e.code?(e.preventDefault(),d(o)):"ArrowLeft"===e.code?(e.preventDefault(),f(o)):"ArrowRight"===e.code?(e.preventDefault(),p(o)):"ArrowUp"===e.code?(e.preventDefault(),m(o)):"ArrowDown"===e.code?(e.preventDefault(),g(o)):"Escape"===e.code&&(e.preventDefault(),x(o)))}(o,e)))}function k(e){return e.ctrlKey||e.metaKey}function F(e){e._currentView.element.innerHTML="",e._currentView.element.classList.remove("json-tree-js"),""===e._currentView.element.className.trim()&&e._currentView.element.removeAttribute("class"),e._currentView.idSet&&e._currentView.element.removeAttribute("id"),N(e,!1),ToolTip.assignToEvents(e,!1),ToolTip.remove(e),Trigger.customEvent(e.events.onDestroy,e._currentView.element)}const R={refresh:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){const n=t[e];i(n),Trigger.customEvent(n.events.onRefresh,n._currentView.element)}return R},refreshAll:function(){for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];i(n),Trigger.customEvent(n.events.onRefresh,n._currentView.element)}return R},render:function(e,t){return Is.definedObject(e)&&Is.definedObject(t)&&l(Binding.Options.getForNewInstance(t,e)),R},renderAll:function(){return r(),R},openAll:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&g(t[e]),R},closeAll:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&m(t[e]),R},backPage:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){t[e].paging.enabled&&f(t[e])}return R},nextPage:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){t[e].paging.enabled&&p(t[e])}return R},getPageNumber:function(e){let n=1;if(Is.definedString(e)&&t.hasOwnProperty(e)){const o=t[e];n=Math.ceil((o._currentView.dataArrayCurrentIndex+1)/o.paging.columnsPerPage)}return n},setJson:function(n,o){if(Is.definedString(n)&&Is.defined(o)&&t.hasOwnProperty(n)){let r=null;if(Is.definedString(o)){const t=Convert2.jsonStringToObject(o,e);t.parsed&&(r=t.object)}else r=o;const l=t[n];l._currentView.dataArrayCurrentIndex=0,l._currentView.contentPanelsOpen={},l.data=r,i(l),Trigger.customEvent(l.events.onSetJson,l._currentView.element)}return R},getJson:function(e){let n=null;return Is.definedString(e)&&t.hasOwnProperty(e)&&(n=t[e].data),n},updateBindingOptions:function(e,n){if(Is.definedString(e)&&t.hasOwnProperty(e)){const o=t[e],r=o.data,l=o._currentView;t[e]=Binding.Options.get(n),t[e].data=r,t[e]._currentView=l,i(t[e])}return R},getBindingOptions:function(e){let n=null;return Is.definedString(e)&&t.hasOwnProperty(e)&&(n=t[e]),n},destroy:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&(F(t[e]),delete t[e],n--),R},destroyAll:function(){for(const e in t)t.hasOwnProperty(e)&&F(t[e]);return t={},n=0,R},setConfiguration:function(t){if(Is.definedObject(t)){let n=!1;const o=e;for(const r in t)t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o[r]!==t[r]&&(o[r]=t[r],n=!0);n&&(e=Config.Options.get(o))}return R},getIds:function(){const e=[];for(const n in t)t.hasOwnProperty(n)&&e.push(n);return e},getVersion:function(){return"4.0.0"}};e=Config.Options.get(),document.addEventListener("DOMContentLoaded",(()=>r())),Is.defined(window.$jsontree)||(window.$jsontree=R)})(); \ No newline at end of file +"use strict";var DataType=(e=>(e.null="null",e.function="function",e.boolean="boolean",e.float="float",e.number="number",e.bigint="bigint",e.string="string",e.date="date",e.symbol="symbol",e.object="object",e.array="array",e.unknown="unknown",e[void 0]="undefined",e.color="color",e.guid="guid",e.regexp="regexp",e.map="map",e.set="set",e.url="url",e.image="image",e.email="email",e.html="html",e.lambda="lambda",e))(DataType||{}),Is,Convert2,Default,DomElement,Str,Str2,DateTime,Constants,Constants2,Binding,Config,Trigger,ToolTip,Arr,Arr2,Size,Obj,Obj2,ContextMenu;(e=>{let t;var n;function o(e){return null!=e&&""!==e.toString()}function r(e){return o(e)&&"object"==typeof e}function l(e){return null!=e&&e instanceof Array}(n=t=e.String||(e.String={})).hexColor=function(e){let t=e.length>=2&&e.length<=7;return t=!(!t||"#"!==e[0])&&isNaN(+e.substring(1,e.length-1)),t},n.rgbColor=function(e){return(e.startsWith("rgb(")||e.startsWith("rgba("))&&e.endsWith(")")},n.boolean=function(e){return"true"===e.toString().toLowerCase().trim()||"false"===e.toString().toLowerCase().trim()},n.date=function(e){return e.match(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/)},n.guid=function(e){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(e)},n.bigInt=function(e){let t=e.endsWith("n");return t&&(t=!isNaN(+e.substring(0,e.length-1))),t},n.symbol=function(e){return e.startsWith("Symbol(")&&e.endsWith(")")},e.defined=o,e.definedObject=r,e.definedBoolean=function(e){return o(e)&&"boolean"==typeof e},e.definedString=function(e){return o(e)&&"string"==typeof e},e.definedFunction=function(e){return o(e)&&"function"==typeof e},e.definedNumber=function(e){return o(e)&&"number"==typeof e},e.definedBigInt=function(e){return o(e)&&"bigint"==typeof e},e.definedArray=l,e.definedDate=function(e){return r(e)&&e instanceof Date},e.definedFloat=function(e){return o(e)&&"number"==typeof e&&e%1!=0},e.definedSymbol=function(e){return o(e)&&"symbol"==typeof e},e.definedRegExp=function(e){return o(e)&&e instanceof RegExp},e.definedMap=function(e){return o(e)&&(e instanceof Map||e instanceof WeakMap)},e.definedSet=function(e){return o(e)&&(e instanceof Set||e instanceof WeakSet)},e.definedImage=function(e){return o(e)&&e instanceof Image},e.definedHtml=function(e){return o(e)&&e instanceof HTMLElement},e.definedUrl=function(e){let t;try{t=new URL(e)}catch{t=null}return null!==t&&("http:"===t.protocol||"https:"===t.protocol)},e.definedEmail=function(e){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)},e.invalidOptionArray=function(e,t=1){return!l(e)||e.length{function toJsonStringifyClone(e,t,n){let o=null;if(Is.defined(e))if(Is.definedDate(e))o=n.includeTimeZoneInDates?e.toString():JSON.stringify(e).replace(/['"]+/g,"");else if(Is.definedSymbol(e))o=symbolToString(e);else if(Is.definedBigInt(e))o=e.toString();else if(Is.definedFunction(e))o=Default.getFunctionName(e,t).name;else if(Is.definedRegExp(e))o=e.source;else if(Is.definedImage(e))o=e.src;else if(Is.definedHtml(e))o=htmlToObject(e,n.showCssStylesForHtmlObjects);else if(Is.definedArray(e)){o=[];const r=e.length;for(let l=0;l0;)a.children[0].nodeType!==Node.TEXT_NODE&&a.removeChild(a.children[0]),s--;n[l]=[],n[i]=a.innerText;for(let t=0;t{function t(e,t){return Is.definedArray(e)?e:t}e.getAnyString=function(e,t){return"string"==typeof e?e:t},e.getString=function(e,t){return Is.definedString(e)?e:t},e.getBoolean=function(e,t){return Is.definedBoolean(e)?e:t},e.getNumber=function(e,t){return Is.definedNumber(e)?e:t},e.getFunction=function(e,t){return Is.definedFunction(e)?e:t},e.getArray=t,e.getObject=function(e,t){return Is.definedObject(e)?e:t},e.getNumberMinimum=function(e,t,n){return Is.definedNumber(e)?e>=n?e:n:t},e.getNumberMaximum=function(e,t,n){return Is.definedNumber(e)?e>n?n:e:t},e.getStringOrArray=function(e,n){let o=n;if(Is.definedString(e)){const t=e.toString().split(" ");0===t.length?e=n:o=t}else o=t(e,n);return o},e.getFunctionName=function(e,t){let n,o=!1;const r="()";return n=`${e.toString().split("(")[0].split(" ").join(" ")}${r}`,n.trim()===r&&(n=`${t.text.functionText}${r}`,o=!0),{name:n,isLambda:o}},e.getObjectFromUrl=function(e,t,n){const o=new XMLHttpRequest;o.open("GET",e,!0),o.send(),o.onreadystatechange=()=>{if(4===o.readyState&&200===o.status){const e=o.responseText,r=Convert2.jsonStringToObject(e,t);r.parsed&&n(r.object)}else n(null)}}})(Default||(Default={})),(e=>{function t(e,t,n="",o=null){const r=t.toLowerCase(),l="text"===r?document.createTextNode(""):document.createElement(r);return Is.defined(n)&&(l.className=n),Is.defined(e)&&(Is.defined(o)?e.insertBefore(l,o):e.appendChild(l)),l}function n(e,n,o,r,l=null){const i=t(e,n,o,l);return i.innerHTML=r,i}function o(){const e=document.documentElement;return{left:e.scrollLeft-(e.clientLeft||0),top:e.scrollTop-(e.clientTop||0)}}e.find=function(e,t){const n=e.length;for(let o=0;owindow.innerWidth?r-=t.offsetWidth+n:(r++,r+=n),l+t.offsetHeight>window.innerHeight?l-=t.offsetHeight+n:(l++,l+=n),r{function t(e){return e.getDay()-1<0?6:e.getDay()-1}function n(e,t){let n=e.text.thText;return 31===t||21===t||1===t?n=e.text.stText:22===t||2===t?n=e.text.ndText:23!==t&&3!==t||(n=e.text.rdText),n}e.getWeekdayNumber=t,e.getDayOrdinal=n,e.getCustomFormattedDateText=function(e,o,r){let l=r;const i=t(o);return l=l.replace("{hh}",Str.padNumber(o.getHours(),2)),l=l.replace("{h}",o.getHours().toString()),l=l.replace("{MM}",Str.padNumber(o.getMinutes(),2)),l=l.replace("{M}",o.getMinutes().toString()),l=l.replace("{ss}",Str.padNumber(o.getSeconds(),2)),l=l.replace("{s}",o.getSeconds().toString()),l=l.replace("{fff}",Str.padNumber(o.getMilliseconds(),3)),l=l.replace("{ff}",Str.padNumber(o.getMilliseconds(),2)),l=l.replace("{f}",o.getMilliseconds().toString()),l=l.replace("{dddd}",e.text.dayNames[i]),l=l.replace("{ddd}",e.text.dayNamesAbbreviated[i]),l=l.replace("{dd}",Str.padNumber(o.getDate())),l=l.replace("{d}",o.getDate().toString()),l=l.replace("{o}",n(e,o.getDate())),l=l.replace("{mmmm}",e.text.monthNames[o.getMonth()]),l=l.replace("{mmm}",e.text.monthNamesAbbreviated[o.getMonth()]),l=l.replace("{mm}",Str.padNumber(o.getMonth()+1)),l=l.replace("{m}",(o.getMonth()+1).toString()),l=l.replace("{yyyy}",o.getFullYear().toString()),l=l.replace("{yyy}",o.getFullYear().toString().substring(1)),l=l.replace("{yy}",o.getFullYear().toString().substring(2)),l=l.replace("{y}",Number.parseInt(o.getFullYear().toString().substring(2)).toString()),l}})(DateTime||(DateTime={})),Constants2=Constants||(Constants={}),Constants2.JSONTREE_JS_ATTRIBUTE_NAME="data-jsontree-js",Constants2.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME="data-jsontree-js-array-index",Constants2.JSONTREE_JS_ATTRIBUTE_PATH_NAME="data-jsontree-js-path",(e=>{let t;var n;(n=t=e.Options||(e.Options={})).getForNewInstance=function(t,n){const o=e.Options.get(t),r=o.allowEditing;o._currentView={},o._currentView.element=n,o._currentView.currentDataArrayPageIndex=(o.paging.startPage-1)*o.paging.columnsPerPage,o._currentView.titleBarButtons=null,o._currentView.valueClickTimerId=0,o._currentView.editMode=!1,o._currentView.idSet=!1,o._currentView.contentPanelsOpen={},o._currentView.contentPanelsIndex=0,o._currentView.contentPanelsDataIndex=0,o._currentView.backButton=null,o._currentView.nextButton=null,o._currentView.disabledBackground=null,o._currentView.sideMenu=null,o._currentView.sideMenuChanged=!1,o._currentView.toggleFullScreenButton=null,o._currentView.fullScreenOn=!1,o._currentView.dragAndDropBackground=null,o._currentView.initialized=!1,o._currentView.currentContentColumns=[],o._currentView.footer=null,o._currentView.footerStatusText=null,o._currentView.footerDataTypeText=null,o._currentView.footerLengthText=null,o._currentView.footerSizeText=null,o._currentView.footerPageText=null,o._currentView.footerStatusTextTimerId=0,o._currentView.columnDragging=!1,o._currentView.columnDraggingDataIndex=0,o._currentView.dataTypeCounts={},o._currentView.contextMenu=null,o._currentView.currentColumnBuildingIndex=0,o._currentView.selectedValues=[],o.paging.enabled&&Is.definedArray(o.data)&&o.data.length>1&&o._currentView.currentDataArrayPageIndex>o.data.length-1&&(o._currentView.currentDataArrayPageIndex=0);for(const e in r)if(!r[e]){o.allowEditing.bulk=!1;break}return o},n.get=function(e){const t=Default.getObject(e,{});return t.showObjectSizes=Default.getBoolean(t.showObjectSizes,!0),t.useZeroIndexingForArrays=Default.getBoolean(t.useZeroIndexingForArrays,!0),t.dateTimeFormat=Default.getString(t.dateTimeFormat,"{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}"),t.showArrowToggles=Default.getBoolean(t.showArrowToggles,!0),t.showStringQuotes=Default.getBoolean(t.showStringQuotes,!0),t.showAllAsClosed=Default.getBoolean(t.showAllAsClosed,!1),t.sortPropertyNames=Default.getBoolean(t.sortPropertyNames,!0),t.sortPropertyNamesInAlphabeticalOrder=Default.getBoolean(t.sortPropertyNamesInAlphabeticalOrder,!0),t.showCommas=Default.getBoolean(t.showCommas,!0),t.reverseArrayValues=Default.getBoolean(t.reverseArrayValues,!1),t.addArrayIndexPadding=Default.getBoolean(t.addArrayIndexPadding,!1),t.showValueColors=Default.getBoolean(t.showValueColors,!0),t.maximumDecimalPlaces=Default.getNumber(t.maximumDecimalPlaces,2),t.maximumStringLength=Default.getNumber(t.maximumStringLength,0),t.fileDroppingEnabled=Default.getBoolean(t.fileDroppingEnabled,!0),t.jsonIndentSpaces=Default.getNumber(t.jsonIndentSpaces,8),t.showArrayIndexBrackets=Default.getBoolean(t.showArrayIndexBrackets,!0),t.showOpeningClosingCurlyBraces=Default.getBoolean(t.showOpeningClosingCurlyBraces,!1),t.showOpeningClosingSquaredBrackets=Default.getBoolean(t.showOpeningClosingSquaredBrackets,!1),t.includeTimeZoneInDates=Default.getBoolean(t.includeTimeZoneInDates,!0),t.shortcutKeysEnabled=Default.getBoolean(t.shortcutKeysEnabled,!0),t.openInFullScreenMode=Default.getBoolean(t.openInFullScreenMode,!1),t.valueToolTips=Default.getObject(t.valueToolTips,null),t.editingValueClickDelay=Default.getNumber(t.editingValueClickDelay,500),t.showDataTypes=Default.getBoolean(t.showDataTypes,!1),t.logJsonValueToolTipPaths=Default.getBoolean(t.logJsonValueToolTipPaths,!1),t.exportFilenameFormat=Default.getString(t.exportFilenameFormat,"JsonTree_{dd}-{mm}-{yyyy}_{hh}-{MM}-{ss}.json"),t.showPropertyNameQuotes=Default.getBoolean(t.showPropertyNameQuotes,!0),t.showOpenedObjectArrayBorders=Default.getBoolean(t.showOpenedObjectArrayBorders,!0),t.showPropertyNameAndIndexColors=Default.getBoolean(t.showPropertyNameAndIndexColors,!0),t.showUrlOpenButtons=Default.getBoolean(t.showUrlOpenButtons,!0),t.showEmailOpenButtons=Default.getBoolean(t.showEmailOpenButtons,!0),t.minimumArrayIndexPadding=Default.getNumber(t.minimumArrayIndexPadding,0),t.arrayIndexPaddingCharacter=Default.getString(t.arrayIndexPaddingCharacter,"0"),t.maximumUrlLength=Default.getNumber(t.maximumUrlLength,0),t.maximumEmailLength=Default.getNumber(t.maximumEmailLength,0),t.showCssStylesForHtmlObjects=Default.getBoolean(t.showCssStylesForHtmlObjects,!1),t.jsonPathAny=Default.getString(t.jsonPathAny,".."),t.jsonPathSeparator=Default.getString(t.jsonPathSeparator,"\\"),t.showChildIndexes=Default.getBoolean(t.showChildIndexes,!0),t.showClosedArraySquaredBrackets=Default.getBoolean(t.showClosedArraySquaredBrackets,!0),t.showClosedObjectCurlyBraces=Default.getBoolean(t.showClosedObjectCurlyBraces,!0),t.convertClickedValuesToString=Default.getBoolean(t.convertClickedValuesToString,!1),t.paging=function(e){return e.paging=Default.getObject(e.paging,{}),e.paging.enabled=Default.getBoolean(e.paging.enabled,!0),e.paging.columnsPerPage=Default.getNumberMaximum(e.paging.columnsPerPage,1,6),e.paging.startPage=Default.getNumberMinimum(e.paging.startPage,1,1),e.paging.synchronizeScrolling=Default.getBoolean(e.paging.synchronizeScrolling,!1),e.paging.allowColumnReordering=Default.getBoolean(e.paging.allowColumnReordering,!0),e.paging.allowComparisons=Default.getBoolean(e.paging.allowComparisons,!1),e.paging}(t),t.title=function(e){return e.title=Default.getObject(e.title,{}),e.title.text=Default.getAnyString(e.title.text,"JsonTree.js"),e.title.showCloseOpenAllButtons=Default.getBoolean(e.title.showCloseOpenAllButtons,!0),e.title.showCopyButton=Default.getBoolean(e.title.showCopyButton,!0),e.title.enableFullScreenToggling=Default.getBoolean(e.title.enableFullScreenToggling,!0),e.title.showFullScreenButton=Default.getBoolean(e.title.showFullScreenButton,!0),e.title}(t),t.footer=function(e){return e.footer=Default.getObject(e.footer,{}),e.footer.enabled=Default.getBoolean(e.footer.enabled,!0),e.footer.showDataTypes=Default.getBoolean(e.footer.showDataTypes,!0),e.footer.showLengths=Default.getBoolean(e.footer.showLengths,!0),e.footer.showSizes=Default.getBoolean(e.footer.showSizes,!0),e.footer.showPageOf=Default.getBoolean(e.footer.showPageOf,!0),e.footer.statusResetDelay=Default.getNumber(e.footer.statusResetDelay,5e3),e.footer}(t),t.controlPanel=function(e){return e.controlPanel=Default.getObject(e.controlPanel,{}),e.controlPanel.enabled=Default.getBoolean(e.controlPanel.enabled,!0),e.controlPanel.showCopyButton=Default.getBoolean(e.controlPanel.showCopyButton,!0),e.controlPanel.showMovingButtons=Default.getBoolean(e.controlPanel.showMovingButtons,!0),e.controlPanel.showRemoveButton=Default.getBoolean(e.controlPanel.showRemoveButton,!1),e.controlPanel.showEditButton=Default.getBoolean(e.controlPanel.showEditButton,!0),e.controlPanel.showCloseOpenAllButtons=Default.getBoolean(e.controlPanel.showCloseOpenAllButtons,!0),e.controlPanel.showSwitchToPagesButton=Default.getBoolean(e.controlPanel.showSwitchToPagesButton,!0),e.controlPanel}(t),t.lineNumbers=function(e){return e.lineNumbers=Default.getObject(e.lineNumbers,{}),e.lineNumbers.enabled=Default.getBoolean(e.lineNumbers.enabled,!0),e.lineNumbers.padNumbers=Default.getBoolean(e.lineNumbers.padNumbers,!1),e.lineNumbers.addDots=Default.getBoolean(e.lineNumbers.addDots,!0),e.lineNumbers}(t),t.ignore=function(e){return e.ignore=Default.getObject(e.ignore,{}),e.ignore.nullValues=Default.getBoolean(e.ignore.nullValues,!1),e.ignore.functionValues=Default.getBoolean(e.ignore.functionValues,!1),e.ignore.unknownValues=Default.getBoolean(e.ignore.unknownValues,!1),e.ignore.booleanValues=Default.getBoolean(e.ignore.booleanValues,!1),e.ignore.floatValues=Default.getBoolean(e.ignore.floatValues,!1),e.ignore.numberValues=Default.getBoolean(e.ignore.numberValues,!1),e.ignore.stringValues=Default.getBoolean(e.ignore.stringValues,!1),e.ignore.dateValues=Default.getBoolean(e.ignore.dateValues,!1),e.ignore.objectValues=Default.getBoolean(e.ignore.objectValues,!1),e.ignore.arrayValues=Default.getBoolean(e.ignore.arrayValues,!1),e.ignore.bigintValues=Default.getBoolean(e.ignore.bigintValues,!1),e.ignore.symbolValues=Default.getBoolean(e.ignore.symbolValues,!1),e.ignore.emptyObjects=Default.getBoolean(e.ignore.emptyObjects,!1),e.ignore.undefinedValues=Default.getBoolean(e.ignore.undefinedValues,!1),e.ignore.guidValues=Default.getBoolean(e.ignore.guidValues,!1),e.ignore.colorValues=Default.getBoolean(e.ignore.colorValues,!1),e.ignore.regexpValues=Default.getBoolean(e.ignore.regexpValues,!1),e.ignore.mapValues=Default.getBoolean(e.ignore.mapValues,!1),e.ignore.setValues=Default.getBoolean(e.ignore.setValues,!1),e.ignore.urlValues=Default.getBoolean(e.ignore.urlValues,!1),e.ignore.imageValues=Default.getBoolean(e.ignore.imageValues,!1),e.ignore.emailValues=Default.getBoolean(e.ignore.emailValues,!1),e.ignore.htmlValues=Default.getBoolean(e.ignore.htmlValues,!1),e.ignore.lambdaValues=Default.getBoolean(e.ignore.lambdaValues,!1),e.ignore}(t),t.tooltip=function(e){return e.tooltip=Default.getObject(e.tooltip,{}),e.tooltip.delay=Default.getNumber(e.tooltip.delay,750),e.tooltip.offset=Default.getNumber(e.tooltip.offset,0),e.tooltip}(t),t.parse=function(e){return e.parse=Default.getObject(e.parse,{}),e.parse.stringsToDates=Default.getBoolean(e.parse.stringsToDates,!1),e.parse.stringsToBooleans=Default.getBoolean(e.parse.stringsToBooleans,!1),e.parse.stringsToNumbers=Default.getBoolean(e.parse.stringsToNumbers,!1),e.parse.stringsToSymbols=Default.getBoolean(e.parse.stringsToSymbols,!1),e.parse}(t),t.allowEditing=function(e){let t=Default.getBoolean(e.allowEditing,!0);e.allowEditing=Default.getObject(e.allowEditing,{}),e.allowEditing.booleanValues=Default.getBoolean(e.allowEditing.booleanValues,t),e.allowEditing.floatValues=Default.getBoolean(e.allowEditing.floatValues,t),e.allowEditing.numberValues=Default.getBoolean(e.allowEditing.numberValues,t),e.allowEditing.stringValues=Default.getBoolean(e.allowEditing.stringValues,t),e.allowEditing.dateValues=Default.getBoolean(e.allowEditing.dateValues,t),e.allowEditing.bigIntValues=Default.getBoolean(e.allowEditing.bigIntValues,t),e.allowEditing.guidValues=Default.getBoolean(e.allowEditing.guidValues,t),e.allowEditing.colorValues=Default.getBoolean(e.allowEditing.colorValues,t),e.allowEditing.urlValues=Default.getBoolean(e.allowEditing.urlValues,t),e.allowEditing.emailValues=Default.getBoolean(e.allowEditing.emailValues,t),e.allowEditing.regExpValues=Default.getBoolean(e.allowEditing.regExpValues,t),e.allowEditing.symbolValues=Default.getBoolean(e.allowEditing.symbolValues,t),e.allowEditing.imageValues=Default.getBoolean(e.allowEditing.imageValues,t),e.allowEditing.propertyNames=Default.getBoolean(e.allowEditing.propertyNames,t),e.allowEditing.bulk=Default.getBoolean(e.allowEditing.bulk,t);const n=e.allowEditing;for(const t in n)if(n.hasOwnProperty(t)&&!n[t]){e.allowEditing.bulk=!1;break}return e.allowEditing}(t),t.sideMenu=function(e){return e.sideMenu=Default.getObject(e.sideMenu,{}),e.sideMenu.enabled=Default.getBoolean(e.sideMenu.enabled,!0),e.sideMenu.showImportButton=Default.getBoolean(e.sideMenu.showImportButton,!0),e.sideMenu.showExportButton=Default.getBoolean(e.sideMenu.showExportButton,!0),e.sideMenu.titleText=Default.getAnyString(e.sideMenu.titleText,e.title.text),e.sideMenu.showAvailableDataTypeCounts=Default.getBoolean(e.sideMenu.showAvailableDataTypeCounts,!0),e.sideMenu.showOnlyDataTypesAvailable=Default.getBoolean(e.sideMenu.showOnlyDataTypesAvailable,!1),e.sideMenu}(t),t.autoClose=function(e){return e.autoClose=Default.getObject(e.autoClose,{}),e.autoClose.objectSize=Default.getNumber(e.autoClose.objectSize,0),e.autoClose.arraySize=Default.getNumber(e.autoClose.arraySize,0),e.autoClose.mapSize=Default.getNumber(e.autoClose.mapSize,0),e.autoClose.setSize=Default.getNumber(e.autoClose.setSize,0),e.autoClose.htmlSize=Default.getNumber(e.autoClose.htmlSize,0),e.autoClose}(t),t.events=function(e){return e.events=Default.getObject(e.events,{}),e.events.onBeforeRender=Default.getFunction(e.events.onBeforeRender,null),e.events.onRenderComplete=Default.getFunction(e.events.onRenderComplete,null),e.events.onValueClick=Default.getFunction(e.events.onValueClick,null),e.events.onRefresh=Default.getFunction(e.events.onRefresh,null),e.events.onCopyAll=Default.getFunction(e.events.onCopyAll,null),e.events.onOpenAll=Default.getFunction(e.events.onOpenAll,null),e.events.onCloseAll=Default.getFunction(e.events.onCloseAll,null),e.events.onDestroy=Default.getFunction(e.events.onDestroy,null),e.events.onBooleanRender=Default.getFunction(e.events.onBooleanRender,null),e.events.onFloatRender=Default.getFunction(e.events.onFloatRender,null),e.events.onNumberRender=Default.getFunction(e.events.onNumberRender,null),e.events.onBigIntRender=Default.getFunction(e.events.onBigIntRender,null),e.events.onStringRender=Default.getFunction(e.events.onStringRender,null),e.events.onDateRender=Default.getFunction(e.events.onDateRender,null),e.events.onFunctionRender=Default.getFunction(e.events.onFunctionRender,null),e.events.onNullRender=Default.getFunction(e.events.onNullRender,null),e.events.onUnknownRender=Default.getFunction(e.events.onUnknownRender,null),e.events.onSymbolRender=Default.getFunction(e.events.onSymbolRender,null),e.events.onCopyJsonReplacer=Default.getFunction(e.events.onCopyJsonReplacer,null),e.events.onUndefinedRender=Default.getFunction(e.events.onUndefinedRender,null),e.events.onGuidRender=Default.getFunction(e.events.onGuidRender,null),e.events.onColorRender=Default.getFunction(e.events.onColorRender,null),e.events.onJsonEdit=Default.getFunction(e.events.onJsonEdit,null),e.events.onRegExpRender=Default.getFunction(e.events.onRegExpRender,null),e.events.onExport=Default.getFunction(e.events.onExport,null),e.events.onUrlRender=Default.getFunction(e.events.onUrlRender,null),e.events.onImageRender=Default.getFunction(e.events.onImageRender,null),e.events.onEmailRender=Default.getFunction(e.events.onEmailRender,null),e.events.onLambdaRender=Default.getFunction(e.events.onLambdaRender,null),e.events.onCopy=Default.getFunction(e.events.onCopy,null),e.events.onFullScreenChange=Default.getFunction(e.events.onFullScreenChange,null),e.events}(t),t}})(Binding||(Binding={})),(e=>{let t;(t=e.Options||(e.Options={})).get=function(e=null){const t=Default.getObject(e,{});return t.safeMode=Default.getBoolean(t.safeMode,!0),t.domElementTypes=Default.getStringOrArray(t.domElementTypes,["*"]),t.text=function(e){return e.text=Default.getObject(e.text,{}),e.text.objectText=Default.getAnyString(e.text.objectText,"object"),e.text.arrayText=Default.getAnyString(e.text.arrayText,"array"),e.text.mapText=Default.getAnyString(e.text.mapText,"map"),e.text.setText=Default.getAnyString(e.text.setText,"set"),e.text.htmlText=Default.getAnyString(e.text.htmlText,"html"),e.text.closeAllButtonText=Default.getAnyString(e.text.closeAllButtonText,"Close All"),e.text.openAllButtonText=Default.getAnyString(e.text.openAllButtonText,"Open All"),e.text.copyAllButtonText=Default.getAnyString(e.text.copyAllButtonText,"Copy All"),e.text.objectErrorText=Default.getAnyString(e.text.objectErrorText,"Errors in object: {{error_1}}, {{error_2}}"),e.text.attributeNotValidErrorText=Default.getAnyString(e.text.attributeNotValidErrorText,"The attribute '{{attribute_name}}' is not a valid object."),e.text.attributeNotSetErrorText=Default.getAnyString(e.text.attributeNotSetErrorText,"The attribute '{{attribute_name}}' has not been set correctly."),e.text.stText=Default.getAnyString(e.text.stText,"st"),e.text.ndText=Default.getAnyString(e.text.ndText,"nd"),e.text.rdText=Default.getAnyString(e.text.rdText,"rd"),e.text.thText=Default.getAnyString(e.text.thText,"th"),e.text.ellipsisText=Default.getAnyString(e.text.ellipsisText,"..."),e.text.closeAllButtonSymbolText=Default.getAnyString(e.text.closeAllButtonSymbolText,"⇈"),e.text.openAllButtonSymbolText=Default.getAnyString(e.text.openAllButtonSymbolText,"⇊"),e.text.copyButtonSymbolText=Default.getAnyString(e.text.copyButtonSymbolText,"❐"),e.text.backButtonText=Default.getAnyString(e.text.backButtonText,"Back"),e.text.nextButtonText=Default.getAnyString(e.text.nextButtonText,"Next"),e.text.backButtonSymbolText=Default.getAnyString(e.text.backButtonSymbolText,"←"),e.text.nextButtonSymbolText=Default.getAnyString(e.text.nextButtonSymbolText,"→"),e.text.noJsonToViewText=Default.getAnyString(e.text.noJsonToViewText,"There is currently no JSON to view."),e.text.functionText=Default.getAnyString(e.text.functionText,"function"),e.text.sideMenuButtonSymbolText=Default.getAnyString(e.text.sideMenuButtonSymbolText,"☰"),e.text.sideMenuButtonText=Default.getAnyString(e.text.sideMenuButtonText,"Show Menu"),e.text.closeButtonSymbolText=Default.getAnyString(e.text.closeButtonSymbolText,"✕"),e.text.closeButtonText=Default.getAnyString(e.text.closeButtonText,"Close"),e.text.showDataTypesText=Default.getAnyString(e.text.showDataTypesText,"Show Data Types"),e.text.selectAllText=Default.getAnyString(e.text.selectAllText,"Select All"),e.text.selectNoneText=Default.getAnyString(e.text.selectNoneText,"Select None"),e.text.importButtonSymbolText=Default.getAnyString(e.text.importButtonSymbolText,"↑"),e.text.importButtonText=Default.getAnyString(e.text.importButtonText,"Import"),e.text.fullScreenOnButtonSymbolText=Default.getAnyString(e.text.fullScreenOnButtonSymbolText,"↗"),e.text.fullScreenOffButtonSymbolText=Default.getAnyString(e.text.fullScreenOffButtonSymbolText,"↙"),e.text.fullScreenButtonText=Default.getAnyString(e.text.fullScreenButtonText,"Toggle Full-Screen"),e.text.copyButtonText=Default.getAnyString(e.text.copyButtonText,"Copy"),e.text.dragAndDropSymbolText=Default.getAnyString(e.text.dragAndDropSymbolText,"⇪"),e.text.dragAndDropTitleText=Default.getAnyString(e.text.dragAndDropTitleText,"Drag and drop your JSON files to upload"),e.text.dragAndDropDescriptionText=Default.getAnyString(e.text.dragAndDropDescriptionText,"Multiple files will be joined as an array"),e.text.exportButtonSymbolText=Default.getAnyString(e.text.exportButtonSymbolText,"↓"),e.text.exportButtonText=Default.getAnyString(e.text.exportButtonText,"Export"),e.text.propertyColonCharacter=Default.getAnyString(e.text.propertyColonCharacter,":"),e.text.noPropertiesText=Default.getAnyString(e.text.noPropertiesText,"There are no properties to view."),e.text.openText=Default.getAnyString(e.text.openText,"open"),e.text.openSymbolText=Default.getAnyString(e.text.openSymbolText,"⤤"),e.text.waitingText=Default.getAnyString(e.text.waitingText,"Waiting..."),e.text.pageOfText=Default.getAnyString(e.text.pageOfText,"Page {0} of {1}"),e.text.sizeText=Default.getAnyString(e.text.sizeText,"Size: {0}"),e.text.copiedText=Default.getAnyString(e.text.copiedText,"JSON copied to clipboard."),e.text.exportedText=Default.getAnyString(e.text.exportedText,"JSON exported."),e.text.importedText=Default.getAnyString(e.text.importedText,"{0} JSON files imported."),e.text.ignoreDataTypesUpdated=Default.getAnyString(e.text.ignoreDataTypesUpdated,"Ignore data types updated."),e.text.lengthText=Default.getAnyString(e.text.lengthText,"Length: {0}"),e.text.valueUpdatedText=Default.getAnyString(e.text.valueUpdatedText,"Value updated."),e.text.jsonUpdatedText=Default.getAnyString(e.text.jsonUpdatedText,"JSON updated."),e.text.nameUpdatedText=Default.getAnyString(e.text.nameUpdatedText,"Property name updated."),e.text.indexUpdatedText=Default.getAnyString(e.text.indexUpdatedText,"Array index updated."),e.text.itemDeletedText=Default.getAnyString(e.text.itemDeletedText,"Item deleted."),e.text.arrayJsonItemDeleted=Default.getAnyString(e.text.arrayJsonItemDeleted,"Array JSON item deleted."),e.text.dataTypeText=Default.getAnyString(e.text.dataTypeText,"Data Type: {0}"),e.text.editSymbolButtonText=Default.getAnyString(e.text.editSymbolButtonText,"✎"),e.text.editButtonText=Default.getAnyString(e.text.editButtonText,"Edit"),e.text.moveRightSymbolButtonText=Default.getAnyString(e.text.moveRightSymbolButtonText,"→"),e.text.moveRightButtonText=Default.getAnyString(e.text.moveRightButtonText,"Move Right"),e.text.moveLeftSymbolButtonText=Default.getAnyString(e.text.moveLeftSymbolButtonText,"←"),e.text.moveLeftButtonText=Default.getAnyString(e.text.moveLeftButtonText,"Move Left"),e.text.removeSymbolButtonText=Default.getAnyString(e.text.removeSymbolButtonText,"✕"),e.text.removeButtonText=Default.getAnyString(e.text.removeButtonText,"Remove"),e.text.switchToPagesSymbolText=Default.getAnyString(e.text.switchToPagesSymbolText,"☷"),e.text.switchToPagesText=Default.getAnyString(e.text.switchToPagesText,"Switch To Pages"),Is.invalidOptionArray(e.text.dayNames,7)&&(e.text.dayNames=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]),Is.invalidOptionArray(e.text.dayNamesAbbreviated,7)&&(e.text.dayNamesAbbreviated=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]),Is.invalidOptionArray(e.text.monthNames,12)&&(e.text.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"]),Is.invalidOptionArray(e.text.monthNamesAbbreviated,12)&&(e.text.monthNamesAbbreviated=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e.text}(t),t}})(Config||(Config={})),(Trigger||(Trigger={})).customEvent=function(e,...t){let n=null;return Is.definedFunction(e)&&(n=e.apply(null,[].slice.call(t,0))),n},(e=>{function t(e,t=!0){const n=t?window.addEventListener:window.removeEventListener,r=t?document.addEventListener:document.removeEventListener;n("mousemove",(()=>o(e))),r("scroll",(()=>o(e)))}function n(e,t,n,r){DomElement.cancelBubble(e),o(t),t._currentView.tooltipTimerId=setTimeout((()=>{t._currentView.tooltip.className=r,t._currentView.tooltip.innerHTML=n,t._currentView.tooltip.style.display="block",DomElement.showElementAtMousePosition(e,t._currentView.tooltip,t.tooltip.offset)}),t.tooltip.delay)}function o(e){Is.defined(e._currentView.tooltip)&&(0!==e._currentView.tooltipTimerId&&(clearTimeout(e._currentView.tooltipTimerId),e._currentView.tooltipTimerId=0),"none"!==e._currentView.tooltip.style.display&&(e._currentView.tooltip.style.display="none"))}e.renderControl=function(e){Is.defined(e._currentView.tooltip)||(e._currentView.tooltip=DomElement.create(document.body,"div","jsontree-js-tooltip"),e._currentView.tooltip.style.display="none",t(e))},e.assignToEvents=t,e.add=function(e,t,o,r="jsontree-js-tooltip"){null!==e&&e.addEventListener("mousemove",(e=>n(e,t,o,r)))},e.show=n,e.hide=o,e.remove=function(e){Is.defined(e._currentView.tooltip)&&e._currentView.tooltip.parentNode.removeChild(e._currentView.tooltip)}})(ToolTip||(ToolTip={})),Arr2=Arr||(Arr={}),Arr2.getIndex=function(e,t){return t.useZeroIndexingForArrays?e:e+1},Arr2.getIndexName=function(e,t,n){let o=t.toString();if(e.addArrayIndexPadding){let t=n.toString().length;te.length-1&&(n=e.length-1),e.splice(n,0,e.splice(t,1)[0])},Arr2.removeNullOrUndefinedEntries=function(e){let t=[];const n=e.length;for(let o=0;o{function t(e,n){let o=0;if(Is.defined(e))if(Is.definedNumber(e))o=8;else if(Is.definedString(e))o=2*e.length;else if(Is.definedBoolean(e))o=4;else if(Is.definedBigInt(e))o=t(e.toString(),n);else if(Is.definedRegExp(e))o=t(e.toString(),n);else if(Is.definedDate(e))o=t(e.toString(),n);else if(Is.definedSet(e))o=t(Convert2.setToArray(e),n);else if(Is.definedMap(e))o=t(Convert2.mapToObject(e),n);else if(Is.definedHtml(e))o=t(Convert2.htmlToObject(e,n),n);else if(Is.definedArray(e)){const r=e.length;for(let l=0;l0){const e=Math.floor(Math.log(o)/Math.log(1024));return`${Convert2.numberToFloatWithDecimalPlaces(o/Math.pow(1024,e),2)} ${" KMGTP".charAt(e)}B`}return null},e.length=function e(t,n){let o=0;if(Is.defined(t))if(Is.definedDate(t))o=t.toString().length;else if(Is.definedImage(t))o=t.src.length;else if(Is.definedRegExp(t))o=t.source.length;else if(Is.definedSet(t))o=e(Convert2.setToArray(t),n);else if(Is.definedMap(t))o=e(Convert2.mapToObject(t),n);else if(Is.definedHtml(t))o=e(Convert2.htmlToObject(t,n),n);else if(Is.definedArray(t))o=t.length;else if(Is.definedObject(t))for(const e in t)t.hasOwnProperty(e)&&o++;else Is.definedFunction(t)||Is.definedSymbol(t)||(o=t.toString().length);return o}})(Size||(Size={})),Obj2=Obj||(Obj={}),Obj2.getPropertyNames=function(e,t){let n=[];for(const t in e)e.hasOwnProperty(t)&&n.push(t);if(t.sortPropertyNames){let e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});n=n.sort(e.compare),t.sortPropertyNamesInAlphabeticalOrder||(n=n.reverse())}return n},Obj2.createFromValue=function(e){const t={};return t[crypto.randomUUID()]=e,t},(e=>{function t(e,t=!0){const o=t?window.addEventListener:window.removeEventListener,r=t?document.addEventListener:document.removeEventListener;o("contextmenu",(()=>n(e))),o("click",(()=>n(e))),r("scroll",(()=>n(e)))}function n(e){Is.defined(e._currentView.contextMenu)&&"none"!==e._currentView.contextMenu.style.display&&(e._currentView.contextMenu.style.display="none")}e.renderControl=function(e){Is.defined(e._currentView.contextMenu)||(e._currentView.contextMenu=DomElement.create(document.body,"div","jsontree-js-context-menu"),e._currentView.contextMenu.style.display="none",t(e))},e.assignToEvents=t,e.show=function(e,t){DomElement.cancelBubble(e),DomElement.showElementAtMousePosition(e,t._currentView.contextMenu,0)},e.hide=n,e.remove=function(e){Is.defined(e._currentView.contextMenu)&&e._currentView.contextMenu.parentNode.removeChild(e._currentView.contextMenu)},e.addMenuItem=function(e,t,n){const o=DomElement.create(e._currentView.contextMenu,"div","context-menu-item");return DomElement.createWithHTML(o,"span","symbol",t),DomElement.createWithHTML(o,"span","text",n),o}})(ContextMenu||(ContextMenu={})),(()=>{let e={},t={},n=0,o=!1;function r(){DomElement.find(e.domElementTypes,(t=>{let n=!0;if(Is.defined(t)&&t.hasAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME)){const o=t.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME);if(Is.definedString(o)){const r=Convert2.jsonStringToObject(o,e);r.parsed&&Is.definedObject(r.object)?l(Binding.Options.getForNewInstance(r.object,t)):e.safeMode||(console.error(e.text.attributeNotValidErrorText.replace("{{attribute_name}}",Constants.JSONTREE_JS_ATTRIBUTE_NAME)),n=!1)}else e.safeMode||(console.error(e.text.attributeNotSetErrorText.replace("{{attribute_name}}",Constants.JSONTREE_JS_ATTRIBUTE_NAME)),n=!1)}return n}))}function l(e){Trigger.customEvent(e.events.onBeforeRender,e._currentView.element),ToolTip.renderControl(e),ContextMenu.renderControl(e),Is.definedString(e._currentView.element.id)||(e._currentView.element.id=crypto.randomUUID(),e._currentView.idSet=!0),e._currentView.element.className="json-tree-js",e._currentView.element.removeAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME),e.openInFullScreenMode&&(e._currentView.element.classList.add("full-screen"),e._currentView.fullScreenOn=!0),t.hasOwnProperty(e._currentView.element.id)||(t[e._currentView.element.id]=e,n++),i(e),$(e),Trigger.customEvent(e.events.onRenderComplete,e._currentView.element)}function i(n,o=!1){let r=t[n._currentView.element.id].data;Is.definedUrl(r)?Default.getObjectFromUrl(r,e,(e=>{a(n,o,e)})):a(n,o,r)}function a(t,n,o){const r=function(e){const t=[];if(ToolTip.hide(e),ContextMenu.hide(e),e._currentView.editMode||e._currentView.sideMenuChanged){const n=e._currentView.currentContentColumns.length;for(let o=0;om(t)),t.sideMenu.enabled){const n=DomElement.createWithHTML(o,"button","side-menu",e.text.sideMenuButtonSymbolText);n.onclick=()=>function(e){e._currentView.sideMenu.classList.contains("side-menu-open")||(e._currentView.sideMenu.classList.add("side-menu-open"),e._currentView.disabledBackground.style.display="block",ToolTip.hide(e),ContextMenu.hide(e))}(t),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.sideMenuButtonText)}if(t._currentView.titleBarButtons=DomElement.create(o,"div","controls"),Is.definedString(t.title.text)&&DomElement.createWithHTML(o,"div","title",t.title.text,t._currentView.titleBarButtons),t.title.showCopyButton&&Is.defined(n)){const o=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","copy-all",e.text.copyButtonSymbolText);o.onclick=()=>function(t,n){const o=JSON.stringify(Convert2.toJsonStringifyClone(n,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces);navigator.clipboard.writeText(o),S(t,e.text.copiedText),Trigger.customEvent(t.events.onCopyAll,t._currentView.element,o)}(t,n),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.copyAllButtonText)}if(t.title.showCloseOpenAllButtons&&Is.defined(n)){const n=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","open-all",e.text.openAllButtonSymbolText);n.onclick=()=>f(t),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.openAllButtonText);const o=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","close-all",e.text.closeAllButtonSymbolText);o.onclick=()=>p(t),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.closeAllButtonText)}if(t.paging.enabled&&Is.definedArray(n)&&n.length>1?(t._currentView.backButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","back",e.text.backButtonSymbolText),t._currentView.backButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.backButton,t,e.text.backButtonText),t._currentView.currentDataArrayPageIndex>0?t._currentView.backButton.onclick=()=>x(t):t._currentView.backButton.disabled=!0,t._currentView.nextButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","next",e.text.nextButtonSymbolText),t._currentView.nextButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.nextButton,t,e.text.nextButtonText),t._currentView.currentDataArrayPageIndex+(t.paging.columnsPerPage-1)T(t):t._currentView.nextButton.disabled=!0):Is.definedArray(n)&&(t.paging.enabled=!1),t.title.enableFullScreenToggling&&t.title.showFullScreenButton){const n=t._currentView.fullScreenOn?e.text.fullScreenOffButtonSymbolText:e.text.fullScreenOnButtonSymbolText;t._currentView.toggleFullScreenButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","toggle-full-screen",n),t._currentView.toggleFullScreenButton.onclick=()=>m(t),t._currentView.toggleFullScreenButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.toggleFullScreenButton,t,e.text.fullScreenButtonText)}}}(t,o);const l=DomElement.create(t._currentView.element,"div","contents");if(n&&l.classList.add("page-switch"),t.paging.enabled&&Is.definedArray(o)){const e=Is.defined(o[t._currentView.currentDataArrayPageIndex+1]),n=Arr.removeNullOrUndefinedEntries(o);t.data=n;for(let o=0;ow(t),t._currentView.sideMenu=DomElement.create(t._currentView.element,"div","side-menu");const n=DomElement.create(t._currentView.sideMenu,"div","side-menu-title-bar");if(Is.definedString(t.sideMenu.titleText)){DomElement.create(n,"div","side-menu-title-bar-text").innerHTML=t.sideMenu.titleText}const o=DomElement.create(n,"div","side-menu-title-controls");if(t.sideMenu.showExportButton&&Is.definedObject(t.data)){const n=DomElement.createWithHTML(o,"button","export",e.text.exportButtonSymbolText);n.onclick=()=>function(t){const n=JSON.stringify(Convert2.toJsonStringifyClone(t.data,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces);if(Is.definedString(n)){const o=DomElement.create(document.body,"a");o.style.display="none",o.setAttribute("target","_blank"),o.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),o.setAttribute("download",function(t){const n=new Date,o=DateTime.getCustomFormattedDateText(e,n,t.exportFilenameFormat);return o}(t)),o.click(),document.body.removeChild(o),w(t),S(t,e.text.exportedText),Trigger.customEvent(t.events.onExport,t._currentView.element)}}(t),ToolTip.add(n,t,e.text.exportButtonText)}if(t.sideMenu.showImportButton){const n=DomElement.createWithHTML(o,"button","import",e.text.importButtonSymbolText);n.onclick=()=>b(t),ToolTip.add(n,t,e.text.importButtonText)}const r=DomElement.createWithHTML(o,"button","close",e.text.closeButtonSymbolText);if(r.onclick=()=>w(t),ToolTip.add(r,t,e.text.closeButtonText),Is.definedObject(t.data)){!function(t,n){const o=[],r=DomElement.create(t,"div","settings-panel"),l=DomElement.create(r,"div","settings-panel-title-bar");DomElement.createWithHTML(l,"div","settings-panel-title-text",`${e.text.showDataTypesText}:`);const i=DomElement.create(l,"div","settings-panel-control-buttons"),a=DomElement.create(i,"div","settings-panel-control-button settings-panel-fill"),s=DomElement.create(i,"div","settings-panel-control-button");a.onclick=()=>y(n,o,!0),s.onclick=()=>y(n,o,!1),ToolTip.add(a,n,e.text.selectAllText),ToolTip.add(s,n,e.text.selectNoneText);const u=DomElement.create(r,"div","settings-panel-contents"),c=Object.keys(DataType),d=n.ignore;c.sort(),c.forEach(((e,t)=>{const r=function(e,t,n,o){let r=null;const l=n._currentView.dataTypeCounts[t];if(!n.sideMenu.showOnlyDataTypesAvailable||l>0){let i=Str.capitalizeFirstLetter(t),a="";n.sideMenu.showAvailableDataTypeCounts&&n._currentView.dataTypeCounts.hasOwnProperty(t)&&(a=`(${l})`),r=DomElement.createCheckBox(e,i,t,o,n.showValueColors?t:"",a),r.onchange=()=>{const e=n.ignore;e[`${t}Values`]=!r.checked,n.ignore=e,n._currentView.sideMenuChanged=!0}}return r}(u,e,n,!d[`${e}Values`]);Is.defined(r)&&o.push(r)}))}(DomElement.create(t._currentView.sideMenu,"div","side-menu-contents"),t)}}}(t),function(t){t.footer.enabled&&Is.defined(t.data)&&(t._currentView.footer=DomElement.create(t._currentView.element,"div","footer-bar"),h(t),t._currentView.footerStatusText=DomElement.createWithHTML(t._currentView.footer,"div","status-text",e.text.waitingText),t.footer.showDataTypes&&(t._currentView.footerDataTypeText=DomElement.create(t._currentView.footer,"div","status-value-data-type"),t._currentView.footerDataTypeText.style.display="none"),t.footer.showLengths&&(t._currentView.footerLengthText=DomElement.create(t._currentView.footer,"div","status-value-length"),t._currentView.footerLengthText.style.display="none"),t.footer.showSizes&&(t._currentView.footerSizeText=DomElement.create(t._currentView.footer,"div","status-value-size"),t._currentView.footerSizeText.style.display="none"),t.paging.enabled&&Is.definedArray(t.data)&&t.data.length>1&&t.footer.showPageOf&&(t._currentView.footerPageText=DomElement.create(t._currentView.footer,"div","status-page-index"),function(t){if(t.paging.enabled){const n=Math.ceil((t._currentView.currentDataArrayPageIndex+1)/t.paging.columnsPerPage),o=Math.ceil(t.data.length/t.paging.columnsPerPage),r=DomElement.createWithHTML(null,"span","status-count",n.toFixed()).outerHTML,l=DomElement.createWithHTML(null,"span","status-count",o.toFixed()).outerHTML,i=e.text.pageOfText.replace("{0}",r).replace("{1}",l);t._currentView.footerPageText.innerHTML=i}}(t)))}(t),function(t){if(t.fileDroppingEnabled){const n=DomElement.create(t._currentView.element,"div","drag-and-drop-background"),o=DomElement.create(n,"div","notice-text");DomElement.createWithHTML(o,"p","notice-text-symbol",e.text.dragAndDropSymbolText),DomElement.createWithHTML(o,"p","notice-text-title",e.text.dragAndDropTitleText),DomElement.createWithHTML(o,"p","notice-text-description",e.text.dragAndDropDescriptionText),t._currentView.dragAndDropBackground=n,t._currentView.element.ondragover=()=>R(t,n),t._currentView.element.ondragenter=()=>R(t,n),n.ondragover=DomElement.cancelBubble,n.ondragenter=DomElement.cancelBubble,n.ondragleave=()=>n.style.display="none",n.ondrop=e=>function(e,t){DomElement.cancelBubble(e),t._currentView.dragAndDropBackground.style.display="none",Is.defined(window.FileReader)&&e.dataTransfer.files.length>0&&H(e.dataTransfer.files,t)}(e,t)}}(t),t._currentView.initialized=!0}function s(t,n,o,r,l,a,s){const m=DomElement.create(n,"div",a>1?"contents-column-multiple":"contents-column");if(Is.defined(t)){m.onscroll=()=>function(e,t,n){ToolTip.hide(t),ContextMenu.hide(t);const o=e.scrollTop,r=e.scrollLeft,l=t._currentView.currentContentColumns.length;if(t.controlPanel.enabled){const e=t._currentView.currentContentColumns[n].controlButtons;Is.defined(e)&&(e.style.top=`${t._currentView.currentContentColumns[n].column.scrollTop}px`,e.style.right=`-${t._currentView.currentContentColumns[n].column.scrollLeft}px`)}if(t.paging.synchronizeScrolling)for(let e=0;e1&&o.allowEditing.bulk&&(m.setAttribute("draggable","true"),m.ondragstart=()=>function(e,t,n){t._currentView.columnDragging=!0,t._currentView.columnDraggingDataIndex=n,e.classList.add("draggable-item")}(m,o,r),m.ondragend=()=>function(e,t){t._currentView.columnDragging=!1,e.classList.remove("draggable-item")}(m,o),m.ondragover=e=>e.preventDefault(),m.ondrop=()=>function(e,t){e._currentView.columnDragging=!1,c(e,e._currentView.columnDraggingDataIndex,t)}(o,r));let n=m,a=null,f=null;o.lineNumbers.enabled&&(a=DomElement.create(m,"div","contents-column-line-numbers"),f=DomElement.create(m,"div","contents-column-lines"),n=f);const p={column:m,lineNumbers:a,lines:f,controlButtons:null};o._currentView.currentContentColumns.push(p),o._currentView.currentColumnBuildingIndex=o._currentView.currentContentColumns.length-1,Is.definedArray(t)?B(n,o,t,"array"):Is.definedSet(t)?B(n,o,Convert2.setToArray(t),"set"):Is.definedHtml(t)?v(n,o,Convert2.htmlToObject(t,o.showCssStylesForHtmlObjects),r,"html"):Is.definedMap(t)?v(n,o,Convert2.mapToObject(t),r,"map"):Is.definedObject(t)?v(n,o,t,r,"object"):v(n,o,Obj.createFromValue(t),r,"object"),d(o._currentView.currentColumnBuildingIndex,o),function(t,n,o,r){const l=DomElement.create(n,"div","column-control-buttons");l.ondblclick=DomElement.cancelBubble;const a=t.paging.enabled&&Is.definedArray(t.data)&&t.data.length>1;if(t.allowEditing.bulk&&t.controlPanel.showEditButton){const i=DomElement.createWithHTML(l,"button","edit",e.text.editSymbolButtonText);i.onclick=()=>u(null,t,o,n,r),i.ondblclick=DomElement.cancelBubble,ToolTip.add(i,t,e.text.editButtonText)}if(a&&t.allowEditing.bulk&&t.paging.allowColumnReordering&&t.controlPanel.showMovingButtons){const n=DomElement.createWithHTML(l,"button","move-right",e.text.moveRightSymbolButtonText);n.ondblclick=DomElement.cancelBubble,r+1>t.data.length-1?n.disabled=!0:n.onclick=()=>c(t,r,r+1),ToolTip.add(n,t,e.text.moveRightButtonText);const o=DomElement.createWithHTML(l,"button","move-left",e.text.moveLeftSymbolButtonText);o.ondblclick=DomElement.cancelBubble,r-1<0?o.disabled=!0:o.onclick=()=>c(t,r,r-1),ToolTip.add(o,t,e.text.moveLeftButtonText)}if(a&&t.controlPanel.showCopyButton){const n=DomElement.createWithHTML(l,"button","copy",e.text.copyButtonSymbolText);n.onclick=()=>g(t,o),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.copyButtonText)}if(a&&t.controlPanel.showCloseOpenAllButtons){const n=DomElement.createWithHTML(l,"button","open-all",e.text.openAllButtonSymbolText);n.onclick=()=>function(e,t){const n=e._currentView.contentPanelsOpen[t];for(const e in n)n.hasOwnProperty(e)&&(n[e]=!1);i(e)}(t,r),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.openAllButtonText);const o=DomElement.createWithHTML(l,"button","close-all",e.text.closeAllButtonSymbolText);o.onclick=()=>function(e,t){const n=e._currentView.contentPanelsOpen[t];for(const e in n)n.hasOwnProperty(e)&&(n[e]=!0);i(e)}(t,r),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.closeAllButtonText)}if(t.allowEditing.bulk&&t.controlPanel.showRemoveButton){const n=DomElement.createWithHTML(l,"button","remove",e.text.removeSymbolButtonText);n.onclick=()=>function(t,n){t.paging.enabled?(t.data.splice(n,1),n===t._currentView.currentDataArrayPageIndex&&t._currentView.currentDataArrayPageIndex>0&&(t._currentView.currentDataArrayPageIndex-=t.paging.columnsPerPage)):t.data=null;i(t),S(t,e.text.arrayJsonItemDeleted)}(t,r),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.removeButtonText)}if(!t.paging.enabled&&Is.definedArray(t.data)&&t.data.length>1&&t.controlPanel.showSwitchToPagesButton){const n=DomElement.createWithHTML(l,"button","switch-to-pages",e.text.switchToPagesSymbolText);n.onclick=()=>function(e){e.paging.enabled=!0,i(e)}(t),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.switchToPagesText)}""!==l.innerHTML?(t._currentView.currentContentColumns[t._currentView.currentColumnBuildingIndex].controlButtons=l,n.style.minHeight=`${l.offsetHeight}px`):n.removeChild(l)}(o,m,t,r),Is.defined(l)&&(m.scrollTop=l),o._currentView.titleBarButtons.style.display="block",o.allowEditing.bulk&&(m.ondblclick=e=>{u(e,o,t,m,r)})}else{const t=DomElement.create(m,"div","no-json");if(DomElement.createWithHTML(t,"span","no-json-text",e.text.noJsonToViewText),o.sideMenu.showImportButton){DomElement.createWithHTML(t,"span","no-json-import-text",`${e.text.importButtonText}${e.text.ellipsisText}`).onclick=()=>b(o)}}}function u(t,n,o,r,l){let a=null;Is.defined(t)&&DomElement.cancelBubble(t),clearTimeout(n._currentView.valueClickTimerId),n._currentView.valueClickTimerId=0,n._currentView.editMode=!0,r.classList.add("editable"),r.setAttribute("contenteditable","true"),r.setAttribute("draggable","false"),r.innerText=JSON.stringify(Convert2.toJsonStringifyClone(o,e,n),n.events.onCopyJsonReplacer,n.jsonIndentSpaces),r.focus(),DomElement.selectAllText(r),r.onblur=()=>{i(n,!1),Is.definedString(a)&&S(n,a)},r.onkeydown=t=>{if("Escape"===t.code)t.preventDefault(),r.setAttribute("contenteditable","false");else if(z(t)&&"Enter"===t.code){t.preventDefault();const o=r.innerText,i=Convert2.jsonStringToObject(o,e);i.parsed&&(a=e.text.jsonUpdatedText,n.paging.enabled?Is.defined(i.object)?n.data[l]=i.object:(n.data.splice(l,1),a=e.text.arrayJsonItemDeleted,l===n._currentView.currentDataArrayPageIndex&&n._currentView.currentDataArrayPageIndex>0&&(n._currentView.currentDataArrayPageIndex-=n.paging.columnsPerPage)):n.data=i.object),r.setAttribute("contenteditable","false")}else"Enter"===t.code&&(t.preventDefault(),document.execCommand("insertLineBreak"))}}function c(t,n,o){if(n!==o){const r=t.data[o],l=t.data[n];let a=t._currentView.contentPanelsOpen[o],s=t._currentView.contentPanelsOpen[n];Is.defined(a)||(a={}),Is.defined(s)||(s={}),t.data[o]=l,t.data[n]=r,t._currentView.contentPanelsOpen[o]=s,t._currentView.contentPanelsOpen[n]=a,t._currentView.currentDataArrayPageIndex+(t.paging.columnsPerPage-1)0){let l=DomElement.getOffset(s).top;1===e&&(o=l),l-=o;const a=DomElement.create(n.lineNumbers,"div","contents-column-line-number"),u=t.lineNumbers.addDots?".":"";t.lineNumbers.padNumbers?a.innerHTML=`${Str.padNumber(e,i.toString().length)}${u}`:a.innerHTML=`${e}${u}`;const c=l+s.offsetHeight/2-a.offsetHeight/2;a.style.top=`${c}px`,r=Math.max(r,a.offsetWidth)}e++}n.lineNumbers.style.height=`${n.lines.offsetHeight}px`,n.lineNumbers.style.width=`${r}px`}else Is.defined(n.lineNumbers)&&(n.lineNumbers.parentNode.removeChild(n.lineNumbers),n.lineNumbers=null)}function g(t,n){const o=JSON.stringify(Convert2.toJsonStringifyClone(n,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces);navigator.clipboard.writeText(o),S(t,e.text.copiedText),Trigger.customEvent(t.events.onCopy,t._currentView.element,o)}function m(t){t.title.enableFullScreenToggling&&(t._currentView.element.classList.contains("full-screen")?(t._currentView.element.classList.remove("full-screen"),t._currentView.toggleFullScreenButton.innerHTML=e.text.fullScreenOnButtonSymbolText,t._currentView.fullScreenOn=!1):(t._currentView.element.classList.add("full-screen"),t._currentView.toggleFullScreenButton.innerHTML=e.text.fullScreenOffButtonSymbolText,t._currentView.fullScreenOn=!0),ToolTip.hide(t),ContextMenu.hide(t),h(t),Trigger.customEvent(t.events.onFullScreenChange,t._currentView.element,t._currentView.element.classList.contains("full-screen")))}function f(e){e.showAllAsClosed=!1,e._currentView.contentPanelsOpen={},i(e),Trigger.customEvent(e.events.onOpenAll,e._currentView.element)}function p(e){e.showAllAsClosed=!0,e._currentView.contentPanelsOpen={},i(e),Trigger.customEvent(e.events.onCloseAll,e._currentView.element)}function x(e){null===e._currentView.backButton||e._currentView.backButton.disabled||(e._currentView.currentDataArrayPageIndex-=e.paging.columnsPerPage,i(e,!0),Trigger.customEvent(e.events.onBackPage,e._currentView.element))}function T(e){null===e._currentView.nextButton||e._currentView.nextButton.disabled||(e._currentView.currentDataArrayPageIndex+=e.paging.columnsPerPage,i(e,!0),Trigger.customEvent(e.events.onNextPage,e._currentView.element))}function b(e){const t=DomElement.createWithNoContainer("input");t.type="file",t.accept=".json",t.multiple=!0,w(e),t.onchange=()=>H(t.files,e),t.click()}function w(t){let n=!1;return t._currentView.sideMenu.classList.contains("side-menu-open")&&(t._currentView.sideMenu.classList.remove("side-menu-open"),t._currentView.disabledBackground.style.display="none",ToolTip.hide(t),ContextMenu.hide(t),t._currentView.sideMenuChanged&&setTimeout((()=>{i(t),S(t,e.text.ignoreDataTypesUpdated)}),500),n=!0),n}function y(e,t,n){const o=t.length,r=e.ignore;for(let e=0;e0&&(o.addEventListener("mousemove",(()=>{const n=DomElement.createWithHTML(null,"span","status-count",r.toString()).outerHTML,o=e.text.lengthText.replace("{0}",n);t._currentView.footerLengthText.style.display="block",t._currentView.footerLengthText.innerHTML=o})),o.addEventListener("mouseleave",(()=>{t._currentView.footerLengthText.style.display="none",t._currentView.footerLengthText.innerHTML=""})))}}function V(t,n,o){if(t.footer.enabled&&t.footer.showSizes){const r=Size.of(n,t.showCssStylesForHtmlObjects);Is.definedString(r)&&(o.addEventListener("mousemove",(()=>{const n=DomElement.createWithHTML(null,"span","status-count",r.toString()).outerHTML,o=e.text.sizeText.replace("{0}",n);t._currentView.footerSizeText.style.display="block",t._currentView.footerSizeText.innerHTML=o})),o.addEventListener("mouseleave",(()=>{t._currentView.footerSizeText.style.display="none",t._currentView.footerSizeText.innerHTML=""})))}}function S(t,n){t.footer.enabled&&(t._currentView.footerStatusText.innerHTML=n,clearTimeout(t._currentView.footerStatusTextTimerId),t._currentView.footerStatusTextTimerId=setTimeout((()=>{t._currentView.footerStatusText.innerHTML=e.text.waitingText}),t.footer.statusResetDelay))}function v(t,n,o,r,l){const i=Obj.getPropertyNames(o,n),a=i.length;if(0!==a||!n.ignore.emptyObjects){let s=null;"object"===l?s=e.text.objectText:"map"===l?s=e.text.mapText:"html"===l&&(s=e.text.htmlText);const u=DomElement.create(t,"div","object-type-title"),c=DomElement.create(t,"div","object-type-contents last-item"),d=n.showArrowToggles?DomElement.create(u,"div","down-arrow"):null,g=DomElement.createWithHTML(u,"span",n.showValueColors?`${l} main-title`:"main-title",s);let m=null,f=null;if(_(c,n),n.paging.enabled&&Is.definedNumber(r)){let t=n.useZeroIndexingForArrays?r.toString():(r+1).toString();n.showArrayIndexBrackets&&(t=`[${t}]`),DomElement.createWithHTML(u,"span",n.showValueColors?`${l} data-array-index`:"data-array-index",t,g),DomElement.createWithHTML(u,"span","split",e.text.propertyColonCharacter,g)}n.showObjectSizes&&a>0&&("html"===l?DomElement.createWithHTML(u,"span",n.showValueColors?`${l} size`:"size",`<${a}>`):DomElement.createWithHTML(u,"span",n.showValueColors?`${l} size`:"size",`{${a}}`)),n.showOpeningClosingCurlyBraces&&(m=DomElement.createWithHTML(u,"span","opening-symbol","{")),n.showClosedObjectCurlyBraces&&(f=DomElement.createWithHTML(u,"span","closed-symbols","{ ... }")),E(d,null,c,n,o,i,m,f,!1,!0,"",l,"object"!==l),O(n,g,o,l,!1),V(n,o,g),D(n,o,g),F(n,u,!1,o,o,null,!1,null)}}function B(t,n,o,r){let l=null;"set"===r?l=e.text.setText:"array"===r&&(l=e.text.arrayText);const i=DomElement.create(t,"div","object-type-title"),a=DomElement.create(t,"div","object-type-contents last-item"),s=n.showArrowToggles?DomElement.create(i,"div","down-arrow"):null,u=DomElement.createWithHTML(i,"span",n.showValueColors?`${r} main-title`:"main-title",l);let c=null,d=null;_(a,n),n.showObjectSizes&&DomElement.createWithHTML(i,"span",n.showValueColors?`${r} size`:"size",`[${o.length}]`),n.showOpeningClosingSquaredBrackets&&(c=DomElement.createWithHTML(i,"span","opening-symbol","[")),n.showClosedArraySquaredBrackets&&(d=DomElement.createWithHTML(i,"span","closed-symbols","[ ... ]")),C(s,null,a,n,o,c,d,!1,!0,"",r,"array"!==r),O(n,u,o,r,!1),V(n,o,u),D(n,o,u),F(n,i,!1,o,o,null,!1,null)}function E(t,n,o,r,l,i,a,s,u,c,d,g,m){let f=!0;const p=i.length,x=""!==d?p:0;if(0!==p||r.ignore.emptyObjects){for(let e=0;e{DomElement.cancelBubble(a);let s=0,u=null;clearTimeout(t._currentView.valueClickTimerId),t._currentView.valueClickTimerId=0,t._currentView.editMode=!0,r.classList.add("editable-name"),l?(s=Arr.getIndexFromBrackets(r.innerHTML),r.innerHTML=s.toString()):r.innerHTML=r.innerHTML.replace(/['"]+/g,""),r.setAttribute("contenteditable","true"),r.focus(),DomElement.selectAllText(r),r.onblur=()=>{i(t,!1),Is.definedString(u)&&S(t,u)},r.onkeydown=i=>{if("Escape"===i.code)i.preventDefault(),r.setAttribute("contenteditable","false");else if("Enter"===i.code){i.preventDefault();const a=r.innerText;if(l)if(Is.definedString(a)&&!isNaN(+a)){let o=+a;t.useZeroIndexingForArrays||o--,s!==o&&(u=e.text.indexUpdatedText,Arr.moveIndex(n,s,o),Trigger.customEvent(t.events.onJsonEdit,t._currentView.element))}else n.splice(Arr.getIndexFromBrackets(o),1),u=e.text.itemDeletedText;else if(a!==o){if(""===a.trim())u=e.text.itemDeletedText,delete n[o];else if(!n.hasOwnProperty(a)){u=e.text.nameUpdatedText;const t=n[o];delete n[o],n[a]=t}Trigger.customEvent(t.events.onJsonEdit,t._currentView.element)}r.setAttribute("contenteditable","false")}}})}(r,t,l,v,u),Is.definedString(c)&&p.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME,c),u||(V(r,l,v),D(r,l,v)),function(e,t,n,r,l){t.onclick=i=>{DomElement.cancelBubble(i);const a=t.classList.contains("highlight-selected")&&o,s=e._currentView.currentContentColumns,u=e._currentView.currentContentColumns.length;let c=!1;o||(e._currentView.selectedValues=[]);for(let t=0;t0&&n.length>r.maximumUrlLength&&(n=`${n.substring(0,r.maximumUrlLength)} ${e.text.ellipsisText} `),T=r.showValueColors?`${h} value`:"value",b=DomElement.createWithHTML(p,"span",T,n),B=r.allowEditing.urlValues&&!m,r.showUrlOpenButtons&&(N=DomElement.createWithHTML(p,"span",r.showValueColors?"open-button-color":"open-button",`${e.text.openText} ${e.text.openSymbolText}`),N.onclick=()=>window.open(a)),A(r,t,l,a,b,u,B,N),Is.definedFunction(r.events.onUrlRender)&&Trigger.customEvent(r.events.onUrlRender,r._currentView.element,b),j(r,p,s)}else if(Is.definedString(a)&&Is.definedEmail(a))if(h="email",r.ignore.emailValues)w=!0;else{let n=a;r.maximumEmailLength>0&&n.length>r.maximumEmailLength&&(n=`${n.substring(0,r.maximumEmailLength)} ${e.text.ellipsisText} `),T=r.showValueColors?`${h} value`:"value",b=DomElement.createWithHTML(p,"span",T,n),B=r.allowEditing.emailValues&&!m,r.showEmailOpenButtons&&(N=DomElement.createWithHTML(p,"span",r.showValueColors?"open-button-color":"open-button",`${e.text.openText} ${e.text.openSymbolText}`),N.onclick=()=>window.open(`mailto:${a}`)),A(r,t,l,a,b,u,B,N),Is.definedFunction(r.events.onEmailRender)&&Trigger.customEvent(r.events.onEmailRender,r._currentView.element,b),j(r,p,s)}else if(Is.definedString(a))if(h="string",!r.ignore.stringValues||L)if(r.parse.stringsToBooleans&&Is.String.boolean(a))I(t,n,r,l,"true"===a.toString().toLowerCase().trim(),s,u,c,g,m),w=!0,y=!0;else if(r.parse.stringsToNumbers&&Is.String.bigInt(a))I(t,n,r,l,Convert2.stringToBigInt(a),s,u,c,g,m),w=!0,y=!0;else if(r.parse.stringsToNumbers&&!isNaN(a))I(t,n,r,l,parseFloat(a),s,u,c,g,m),w=!0,y=!0;else if(r.parse.stringsToDates&&Is.String.date(a))I(t,n,r,l,new Date(a),s,u,c,g,m),w=!0,y=!0;else if(r.parse.stringsToSymbols&&Is.String.symbol(a))I(t,n,r,l,Symbol(Convert2.symbolToString(a)),s,u,c,g,m),w=!0,y=!0;else{let n=a;L?(T="no-properties-text",B=!1,P=!1):(r.maximumStringLength>0&&n.length>r.maximumStringLength&&(n=`${n.substring(0,r.maximumStringLength)} ${e.text.ellipsisText} `),n=r.showStringQuotes?`"${n}"`:n,T=r.showValueColors?`${h} value`:"value",B=r.allowEditing.stringValues&&!m),b=DomElement.createWithHTML(p,"span",T,n),L||(A(r,t,l,a,b,u,B),Is.definedFunction(r.events.onStringRender)&&Trigger.customEvent(r.events.onStringRender,r._currentView.element,b),j(r,p,s))}else w=!0;else if(Is.definedDate(a))h="date",r.ignore.dateValues?w=!0:(T=r.showValueColors?`${h} value`:"value",b=DomElement.createWithHTML(p,"span",T,DateTime.getCustomFormattedDateText(e,a,r.dateTimeFormat)),B=r.allowEditing.dateValues&&!m,A(r,t,l,a,b,u,B),Is.definedFunction(r.events.onDateRender)&&Trigger.customEvent(r.events.onDateRender,r._currentView.element,b),j(r,p,s));else if(Is.definedSymbol(a))h="symbol",r.ignore.symbolValues?w=!0:(T=r.showValueColors?`${h} value`:"value",b=DomElement.createWithHTML(p,"span",T,a.toString()),B=r.allowEditing.symbolValues&&!m,A(r,t,l,a,b,u,B),Is.definedFunction(r.events.onSymbolRender)&&Trigger.customEvent(r.events.onSymbolRender,r._currentView.element,b),j(r,p,s));else if(Is.definedRegExp(a))h="regexp",r.ignore.regexpValues?w=!0:(T=r.showValueColors?`${h} value`:"value",b=DomElement.createWithHTML(p,"span",T,a.source.toString()),B=r.allowEditing.regExpValues&&!m,A(r,t,l,a,b,u,B),Is.definedFunction(r.events.onRegExpRender)&&Trigger.customEvent(r.events.onRegExpRender,r._currentView.element,b),j(r,p,s));else if(Is.definedImage(a))if(h="image",r.ignore.imageValues)w=!0;else{T=r.showValueColors?`${h} value`:"value",b=DomElement.create(p,"span",T),B=r.allowEditing.imageValues&&!m,A(r,t,l,a,b,u,B);DomElement.create(b,"img").src=a.src,Is.definedFunction(r.events.onImageRender)&&Trigger.customEvent(r.events.onImageRender,r._currentView.element,b),j(r,p,s)}else if(Is.definedHtml(a))if(h="html",r.ignore.htmlValues)w=!0;else{const t=Convert2.htmlToObject(a,r.showCssStylesForHtmlObjects),n=Obj.getPropertyNames(t,r),o=n.length;if(0===o&&r.ignore.emptyObjects)w=!0;else{const l=DomElement.create(p,"span",r.showValueColors?h:""),i=DomElement.create(f,"div","object-type-contents");let a=null,u=null;_(i,r),s&&i.classList.add("last-item"),b=DomElement.createWithHTML(l,"span","main-title",e.text.htmlText),r.showObjectSizes&&(o>0||!r.ignore.emptyObjects)&&DomElement.createWithHTML(l,"span","size",`<${o}>`),r.showOpeningClosingCurlyBraces&&(a=DomElement.createWithHTML(l,"span","opening-symbol","{")),r.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(l,"span","closed-symbols","{ ... }"));!E(x,j(r,l,s),i,r,t,n,a,u,!0,s,c,h,!0)&&r.showOpeningClosingCurlyBraces&&(a.parentNode.removeChild(a),u.parentNode.removeChild(u))}}else if(Is.definedSet(a))if(h="set",r.ignore.setValues)w=!0;else{const t=Convert2.setToArray(a),n=DomElement.create(p,"span",r.showValueColors?h:""),o=DomElement.create(f,"div","object-type-contents");let l=null,i=null;_(o,r),s&&o.classList.add("last-item"),b=DomElement.createWithHTML(n,"span","main-title",e.text.setText),r.showObjectSizes&&DomElement.createWithHTML(n,"span","size",`[${t.length}]`),r.showOpeningClosingSquaredBrackets&&(l=DomElement.createWithHTML(n,"span","opening-symbol","[")),r.showClosedArraySquaredBrackets&&(i=DomElement.createWithHTML(n,"span","closed-symbols","[ ... ]"));!C(x,j(r,n,s),o,r,t,l,i,!0,s,c,h,!0)&&r.showOpeningClosingSquaredBrackets&&(l.parentNode.removeChild(l),i.parentNode.removeChild(i))}else if(Is.definedArray(a))if(h="array",r.ignore.arrayValues)w=!0;else{const t=DomElement.create(p,"span",r.showValueColors?h:""),n=DomElement.create(f,"div","object-type-contents");let o=null,l=null;_(n,r),s&&n.classList.add("last-item"),b=DomElement.createWithHTML(t,"span","main-title",e.text.arrayText),r.showObjectSizes&&DomElement.createWithHTML(t,"span","size",`[${a.length}]`),r.showOpeningClosingSquaredBrackets&&(o=DomElement.createWithHTML(t,"span","opening-symbol","[")),r.showClosedArraySquaredBrackets&&(l=DomElement.createWithHTML(t,"span","closed-symbols","[ ... ]"));!C(x,j(r,t,s),n,r,a,o,l,!0,s,c,h,!1)&&r.showOpeningClosingSquaredBrackets&&(o.parentNode.removeChild(o),l.parentNode.removeChild(l))}else if(Is.definedMap(a))if(h="map",r.ignore.mapValues)w=!0;else{const t=Convert2.mapToObject(a),n=Obj.getPropertyNames(t,r),o=n.length;if(0===o&&r.ignore.emptyObjects)w=!0;else{const l=DomElement.create(p,"span",r.showValueColors?h:""),i=DomElement.create(f,"div","object-type-contents");let a=null,u=null;_(i,r),s&&i.classList.add("last-item"),b=DomElement.createWithHTML(l,"span","main-title",e.text.mapText),r.showObjectSizes&&(o>0||!r.ignore.emptyObjects)&&DomElement.createWithHTML(l,"span","size",`{${o}}`),r.showOpeningClosingCurlyBraces&&(a=DomElement.createWithHTML(l,"span","opening-symbol","{")),r.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(l,"span","closed-symbols","{ ... }"));!E(x,j(r,l,s),i,r,t,n,a,u,!0,s,c,h,!0)&&r.showOpeningClosingCurlyBraces&&(a.parentNode.removeChild(a),u.parentNode.removeChild(u))}}else if(Is.definedObject(a))if(h="object",r.ignore.objectValues)w=!0;else{const t=Obj.getPropertyNames(a,r),n=t.length;if(0===n&&r.ignore.emptyObjects)w=!0;else{const o=DomElement.create(p,"span",r.showValueColors?h:""),l=DomElement.create(f,"div","object-type-contents");let i=null,u=null;_(l,r),s&&l.classList.add("last-item"),b=DomElement.createWithHTML(o,"span","main-title",e.text.objectText),r.showObjectSizes&&(n>0||!r.ignore.emptyObjects)&&DomElement.createWithHTML(o,"span","size",`{${n}}`),r.showOpeningClosingCurlyBraces&&(i=DomElement.createWithHTML(o,"span","opening-symbol","{")),r.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(o,"span","closed-symbols","{ ... }"));!E(x,j(r,o,s),l,r,a,t,i,u,!0,s,c,h,!1)&&r.showOpeningClosingCurlyBraces&&(i.parentNode.removeChild(i),u.parentNode.removeChild(u))}}else h="unknown",r.ignore.unknownValues?w=!0:(T=r.showValueColors?`${h} value non-value`:"value non-value",b=DomElement.createWithHTML(p,"span",T,a.toString()),Is.definedFunction(r.events.onUnknownRender)&&Trigger.customEvent(r.events.onUnknownRender,r._currentView.element,b),j(r,p,s));L||y||function(e,t){e._currentView.dataTypeCounts.hasOwnProperty(t)||(e._currentView.dataTypeCounts[t]=0);e._currentView.dataTypeCounts[t]++}(r,h),w?n.removeChild(f):Is.defined(b)&&(L||(V(r,a,b),D(r,a,b),function(t,n,o){t.footer.enabled&&t.footer.showDataTypes&&(o.addEventListener("mousemove",(()=>{const o=DomElement.createWithHTML(null,"span","status-count",n).outerHTML,r=e.text.dataTypeText.replace("{0}",o);t._currentView.footerDataTypeText.style.display="block",t._currentView.footerDataTypeText.innerHTML=r})),o.addEventListener("mouseleave",(()=>{t._currentView.footerDataTypeText.style.display="none",t._currentView.footerDataTypeText.innerHTML=""})))}(r,h,b),F(r,b,B,t,a,l,u,N)),Is.defined(M)&&("null"!==h&&"undefined"!==h&&"array"!==h&&"object"!==h&&"map"!==h&&"set"!==h?M.innerHTML=`(${h})`:(M.parentNode.removeChild(M),M=null)),P?(!function(e,t,n,o,r){if(Is.definedObject(e.valueToolTips)){if(e.logJsonValueToolTipPaths&&console.log(t),!e.valueToolTips.hasOwnProperty(t)){const n=t.split("\\"),o=n.length-1;for(let t=0;t{M(i,e,t,n,o,r,l,a)})}function M(t,n,o,r,l,a,s,u=null){let c=null;DomElement.cancelBubble(t),clearTimeout(n._currentView.valueClickTimerId),n._currentView.valueClickTimerId=0,n._currentView.editMode=!0,a.classList.add("editable"),a.setAttribute("contenteditable","true"),Is.definedDate(l)&&!n.includeTimeZoneInDates?a.innerText=JSON.stringify(l).replace(/['"]+/g,""):Is.definedRegExp(l)?a.innerText=l.source:Is.definedSymbol(l)?a.innerText=Convert2.symbolToString(l):Is.definedImage(l)?a.innerText=l.src:a.innerText=l.toString(),a.focus(),DomElement.selectAllText(a),Is.defined(u)&&u.parentNode.removeChild(u),a.onblur=()=>{i(n,!1),Is.definedString(c)&&S(n,c)},a.onkeydown=t=>{if("Escape"===t.code)t.preventDefault(),a.setAttribute("contenteditable","false");else if("Enter"===t.code){t.preventDefault();const i=a.innerText;if(""===i.trim())s?o.splice(Arr.getIndexFromBrackets(r),1):delete o[r],c=e.text.itemDeletedText;else{let t=Convert2.stringToDataTypeValue(l,i);null!==t&&(s?o[Arr.getIndexFromBrackets(r)]=t:o[r]=t,c=e.text.valueUpdatedText,Trigger.customEvent(n.events.onJsonEdit,n._currentView.element))}a.setAttribute("contenteditable","false")}}}function O(t,n,o,r,l){Is.definedFunction(t.events.onValueClick)?n.onclick=()=>{let i=o;t.convertClickedValuesToString&&(i=JSON.stringify(Convert2.toJsonStringifyClone(o,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces)),l?t._currentView.valueClickTimerId=setTimeout((()=>{t._currentView.editMode||Trigger.customEvent(t.events.onValueClick,t._currentView.element,i,r)}),t.editingValueClickDelay):(n.ondblclick=DomElement.cancelBubble,Trigger.customEvent(t.events.onValueClick,t._currentView.element,i,r))}:n.classList.add("no-hover")}function L(e,t,n,r,l,i,a,s){const u=e._currentView.contentPanelsIndex,c=e._currentView.contentPanelsDataIndex,g=e._currentView.currentColumnBuildingIndex;e._currentView.currentContentColumns[g];e._currentView.contentPanelsOpen.hasOwnProperty(c)||(e._currentView.contentPanelsOpen[c]={});const m=(a,s=!0)=>{Is.defined(a)&&(DomElement.cancelBubble(a),o||N(e)),r.style.display="block",e._currentView.contentPanelsOpen[c][u]=!1,Is.defined(t)&&(t.className="down-arrow"),Is.defined(l)&&(l.style.display="inline-block"),Is.defined(i)&&(i.style.display="none"),Is.defined(n)&&(n.style.display="none"),s&&d(g,e)},f=(a,s)=>{Is.defined(a)&&(DomElement.cancelBubble(a),o||N(e)),s?((o=!0)=>{r.style.display="none",e._currentView.contentPanelsOpen[c][u]=!0,Is.defined(t)&&(t.className="right-arrow"),Is.defined(l)&&(l.style.display="none"),Is.defined(i)&&(i.style.display="inline-block"),Is.defined(n)&&(n.style.display="inline-block"),o&&d(g,e)})():m(null)};let p=e.showAllAsClosed;e._currentView.contentPanelsOpen[c].hasOwnProperty(u)?p=e._currentView.contentPanelsOpen[c][u]:(e._currentView.initialized||("object"===s&&e.autoClose.objectSize>0&&a>=e.autoClose.objectSize||"array"===s&&e.autoClose.arraySize>0&&a>=e.autoClose.arraySize||"map"===s&&e.autoClose.mapSize>0&&a>=e.autoClose.mapSize||"set"===s&&e.autoClose.setSize>0&&a>=e.autoClose.setSize||"html"===s&&e.autoClose.htmlSize>0&&a>=e.autoClose.htmlSize)&&(p=!0),e._currentView.contentPanelsOpen[c][u]=p),Is.defined(t)&&(t.onclick=e=>f(e,"down-arrow"===t.className),t.ondblclick=DomElement.cancelBubble),Is.defined(i)&&(i.onclick=e=>m(e),i.ondblclick=DomElement.cancelBubble),f(null,p),e._currentView.contentPanelsIndex++}function j(e,t,n){let o=null;return e.showCommas&&!n&&(o=DomElement.createWithHTML(t,"span","comma",",")),o}function P(e,t,n,o,r){const l=DomElement.create(t,"div","closing-symbol");(o&&e.showArrowToggles||e.showOpenedObjectArrayBorders)&&DomElement.create(l,"div","no-arrow"),DomElement.createWithHTML(l,"div","object-type-end",n),j(e,l,r)}function N(e){if(e._currentView.selectedValues.length>0){const t=e._currentView.currentContentColumns,n=e._currentView.currentContentColumns.length;e._currentView.selectedValues=[];for(let o=0;o1&&e.paging.allowComparisons}function F(t,n,o,r,l,a,s,u){n.oncontextmenu=c=>{if(DomElement.cancelBubble(c),t._currentView.contextMenu.innerHTML="",o&&t._currentView.selectedValues.length<=1){ContextMenu.addMenuItem(t,e.text.editSymbolButtonText,e.text.editButtonText).onclick=e=>function(e,t,n,o,r,l,i,a){DomElement.cancelBubble(e),M(e,t,o,r,l,n,i,a),ContextMenu.hide(t)}(e,t,n,r,a,l,s,u)}if(ContextMenu.addMenuItem(t,e.text.copyButtonSymbolText,e.text.copyButtonText).onclick=e=>function(e,t,n){DomElement.cancelBubble(e);let o=n;0!==t._currentView.selectedValues.length&&(o=t._currentView.selectedValues);g(t,o),ContextMenu.hide(t)}(e,t,l),o&&t._currentView.selectedValues.length<=1){ContextMenu.addMenuItem(t,e.text.removeSymbolButtonText,e.text.removeButtonText).onclick=n=>function(t,n,o,r,l){DomElement.cancelBubble(t),l?o.splice(Arr.getIndexFromBrackets(r),1):delete o[r];ContextMenu.hide(n),i(n,!1),S(n,e.text.itemDeletedText)}(n,t,r,a,s)}DomElement.showElementAtMousePosition(c,t._currentView.contextMenu,0)}}function R(e,t){e._currentView.columnDragging||(t.style.display="block")}function H(t,n){const o=t.length;let r=0,l=[];const a=t=>{r++,l.push(t),r===o&&(n._currentView.currentDataArrayPageIndex=0,n._currentView.contentPanelsOpen={},n.data=1===l.length?l[0]:l,i(n),S(n,e.text.importedText.replace("{0}",o.toString())),Trigger.customEvent(n.events.onSetJson,n._currentView.element))};for(let e=0;en(r),o.onload=t=>{const n=Convert2.jsonStringToObject(t.target.result,e);n.parsed&&Is.definedObject(n.object)&&(r=n.object)},o.readAsText(t)}function $(e,r=!0){const l=r?document.addEventListener:document.removeEventListener,i=r?window.addEventListener:window.removeEventListener;l("keydown",(r=>function(e,r){o=z(e),r.shortcutKeysEnabled&&1===n&&t.hasOwnProperty(r._currentView.element.id)&&!r._currentView.editMode&&(z(e)&&"F11"===e.code?(e.preventDefault(),m(r)):"ArrowLeft"===e.code?(e.preventDefault(),x(r)):"ArrowRight"===e.code?(e.preventDefault(),T(r)):"ArrowUp"===e.code?(e.preventDefault(),p(r)):"ArrowDown"===e.code?(e.preventDefault(),f(r)):"Escape"===e.code&&(e.preventDefault(),w(r)||o||N(r)))}(r,e))),l("keyup",(e=>function(e){o=z(e)}(e))),l("contextmenu",(()=>J(e))),i("click",(()=>J(e))),i("focus",(()=>o=!1))}function J(e){o||N(e)}function z(e){return e.ctrlKey||e.metaKey}function U(e){e._currentView.element.innerHTML="",e._currentView.element.classList.remove("json-tree-js"),""===e._currentView.element.className.trim()&&e._currentView.element.removeAttribute("class"),e._currentView.idSet&&e._currentView.element.removeAttribute("id"),$(e,!1),ToolTip.assignToEvents(e,!1),ContextMenu.assignToEvents(e,!1),ToolTip.remove(e),ContextMenu.remove(e),Trigger.customEvent(e.events.onDestroy,e._currentView.element)}const q={refresh:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){const n=t[e];i(n),Trigger.customEvent(n.events.onRefresh,n._currentView.element)}return q},refreshAll:function(){for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];i(n),Trigger.customEvent(n.events.onRefresh,n._currentView.element)}return q},render:function(e,t){return Is.definedObject(e)&&Is.definedObject(t)&&l(Binding.Options.getForNewInstance(t,e)),q},renderAll:function(){return r(),q},openAll:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&f(t[e]),q},closeAll:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&p(t[e]),q},backPage:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){t[e].paging.enabled&&x(t[e])}return q},nextPage:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){t[e].paging.enabled&&T(t[e])}return q},getPageNumber:function(e){let n=1;if(Is.definedString(e)&&t.hasOwnProperty(e)){const o=t[e];n=Math.ceil((o._currentView.currentDataArrayPageIndex+1)/o.paging.columnsPerPage)}return n},setJson:function(n,o){if(Is.definedString(n)&&Is.defined(o)&&t.hasOwnProperty(n)){let r=null;if(Is.definedString(o)){const t=Convert2.jsonStringToObject(o,e);t.parsed&&(r=t.object)}else r=o;const l=t[n];l._currentView.currentDataArrayPageIndex=0,l._currentView.contentPanelsOpen={},l.data=r,i(l),Trigger.customEvent(l.events.onSetJson,l._currentView.element)}return q},getJson:function(e){let n=null;return Is.definedString(e)&&t.hasOwnProperty(e)&&(n=t[e].data),n},updateBindingOptions:function(e,n){if(Is.definedString(e)&&t.hasOwnProperty(e)){const o=t[e],r=o.data,l=o._currentView;t[e]=Binding.Options.get(n),t[e].data=r,t[e]._currentView=l,i(t[e])}return q},getBindingOptions:function(e){let n=null;return Is.definedString(e)&&t.hasOwnProperty(e)&&(n=t[e]),n},destroy:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&(U(t[e]),delete t[e],n--),q},destroyAll:function(){for(const e in t)t.hasOwnProperty(e)&&U(t[e]);return t={},n=0,q},setConfiguration:function(t){if(Is.definedObject(t)){let n=!1;const o=e;for(const r in t)t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o[r]!==t[r]&&(o[r]=t[r],n=!0);n&&(e=Config.Options.get(o))}return q},getIds:function(){const e=[];for(const n in t)t.hasOwnProperty(n)&&e.push(n);return e},getVersion:function(){return"4.1.0"}};e=Config.Options.get(),document.addEventListener("DOMContentLoaded",(()=>r())),Is.defined(window.$jsontree)||(window.$jsontree=q)})(); \ No newline at end of file diff --git a/dist/themes/light/jsontree.js.light.theme.css b/dist/themes/light/jsontree.js.light.theme.css index 17e42b0c..34ce7441 100644 --- a/dist/themes/light/jsontree.js.light.theme.css +++ b/dist/themes/light/jsontree.js.light.theme.css @@ -31,6 +31,11 @@ --json-tree-js-editable-text-color: var(--json-tree-js-color-white); --json-tree-js-editable-background-color: var(--json-tree-js-color-snow-white); + /* Colors - Highlights */ + --json-tree-js-highlight-selected-color: #aba0a0; + --json-tree-js-highlight-compare-color: #c3bbbb; + --json-tree-js-highlight-selected-border-color: var(--json-tree-js-color-black); + /* ToolTip */ --json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color); --json-tree-js-tooltip-border-color: var(--json-tree-js-container-border-color); diff --git a/dist/translations/jsontree.translations.af.js b/dist/translations/jsontree.translations.af.js index 005b0699..a7617924 100644 --- a/dist/translations/jsontree.translations.af.js +++ b/dist/translations/jsontree.translations.af.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Afrikaans | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Afrikaans | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ar.js b/dist/translations/jsontree.translations.ar.js index d46bac4e..0ac97bdc 100644 --- a/dist/translations/jsontree.translations.ar.js +++ b/dist/translations/jsontree.translations.ar.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Arabic | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Arabic | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.be.js b/dist/translations/jsontree.translations.be.js index c689c709..c6b57832 100644 --- a/dist/translations/jsontree.translations.be.js +++ b/dist/translations/jsontree.translations.be.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Belarusian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Belarusian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayHeaderNames": [ diff --git a/dist/translations/jsontree.translations.bg.js b/dist/translations/jsontree.translations.bg.js index 270f45a8..e0506553 100644 --- a/dist/translations/jsontree.translations.bg.js +++ b/dist/translations/jsontree.translations.bg.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Bulgarian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Bulgarian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.bn.js b/dist/translations/jsontree.translations.bn.js index 901ea7e4..a1c40cc8 100644 --- a/dist/translations/jsontree.translations.bn.js +++ b/dist/translations/jsontree.translations.bn.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Bengali | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Bengali | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.da.js b/dist/translations/jsontree.translations.da.js index 993e89b3..6e280b7e 100644 --- a/dist/translations/jsontree.translations.da.js +++ b/dist/translations/jsontree.translations.da.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Danish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Danish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.de.js b/dist/translations/jsontree.translations.de.js index 20a6a0f7..d26499c6 100644 --- a/dist/translations/jsontree.translations.de.js +++ b/dist/translations/jsontree.translations.de.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - German | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - German | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.el.js b/dist/translations/jsontree.translations.el.js index 88c2fdc8..36ddcbd8 100644 --- a/dist/translations/jsontree.translations.el.js +++ b/dist/translations/jsontree.translations.el.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Greek | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Greek | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.en.js b/dist/translations/jsontree.translations.en.js index 28154ac7..de2f1167 100644 --- a/dist/translations/jsontree.translations.en.js +++ b/dist/translations/jsontree.translations.en.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - English | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - English | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.eo.js b/dist/translations/jsontree.translations.eo.js index bd4cb7ff..166faed6 100644 --- a/dist/translations/jsontree.translations.eo.js +++ b/dist/translations/jsontree.translations.eo.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Esperanto | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Esperanto | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.es.js b/dist/translations/jsontree.translations.es.js index fd520ef8..52e6c92e 100644 --- a/dist/translations/jsontree.translations.es.js +++ b/dist/translations/jsontree.translations.es.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Spanish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Spanish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.et.js b/dist/translations/jsontree.translations.et.js index 5fcb15fd..72c8e49a 100644 --- a/dist/translations/jsontree.translations.et.js +++ b/dist/translations/jsontree.translations.et.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Estonian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Estonian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.fa.js b/dist/translations/jsontree.translations.fa.js index d11f8af8..6fb45bad 100644 --- a/dist/translations/jsontree.translations.fa.js +++ b/dist/translations/jsontree.translations.fa.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Farsi | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Farsi | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.fi.js b/dist/translations/jsontree.translations.fi.js index 8ceb6e8f..c2cbc9cd 100644 --- a/dist/translations/jsontree.translations.fi.js +++ b/dist/translations/jsontree.translations.fi.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Finnish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Finnish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.fr.js b/dist/translations/jsontree.translations.fr.js index 041929f0..5f8cb6cc 100644 --- a/dist/translations/jsontree.translations.fr.js +++ b/dist/translations/jsontree.translations.fr.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - French | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - French | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.fy.js b/dist/translations/jsontree.translations.fy.js index 8a69c54b..d04bb9eb 100644 --- a/dist/translations/jsontree.translations.fy.js +++ b/dist/translations/jsontree.translations.fy.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Frisian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Frisian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ga.js b/dist/translations/jsontree.translations.ga.js index c86d7b93..274b98d3 100644 --- a/dist/translations/jsontree.translations.ga.js +++ b/dist/translations/jsontree.translations.ga.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Irish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Irish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.gl.js b/dist/translations/jsontree.translations.gl.js index 6fee9aee..d4b46efc 100644 --- a/dist/translations/jsontree.translations.gl.js +++ b/dist/translations/jsontree.translations.gl.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Galician | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Galician | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.he.js b/dist/translations/jsontree.translations.he.js index e0641fea..4ec5f6ea 100644 --- a/dist/translations/jsontree.translations.he.js +++ b/dist/translations/jsontree.translations.he.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Hebrew | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Hebrew | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.hi.js b/dist/translations/jsontree.translations.hi.js index b6a7bec9..a7aea888 100644 --- a/dist/translations/jsontree.translations.hi.js +++ b/dist/translations/jsontree.translations.hi.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Hindi | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Hindi | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.hu.js b/dist/translations/jsontree.translations.hu.js index 14a0ca44..703342ea 100644 --- a/dist/translations/jsontree.translations.hu.js +++ b/dist/translations/jsontree.translations.hu.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Hungarian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Hungarian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.hy.js b/dist/translations/jsontree.translations.hy.js index 0d8375f6..4f25e7ba 100644 --- a/dist/translations/jsontree.translations.hy.js +++ b/dist/translations/jsontree.translations.hy.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Armenian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Armenian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.id.js b/dist/translations/jsontree.translations.id.js index 0cade305..38d34b43 100644 --- a/dist/translations/jsontree.translations.id.js +++ b/dist/translations/jsontree.translations.id.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Indonesian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Indonesian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.is.js b/dist/translations/jsontree.translations.is.js index 3413e046..4dafb22f 100644 --- a/dist/translations/jsontree.translations.is.js +++ b/dist/translations/jsontree.translations.is.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Icelandic | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Icelandic | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.it.js b/dist/translations/jsontree.translations.it.js index 8d729239..c6344d47 100644 --- a/dist/translations/jsontree.translations.it.js +++ b/dist/translations/jsontree.translations.it.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Italian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Italian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ja.js b/dist/translations/jsontree.translations.ja.js index bbde18f3..c41e61c8 100644 --- a/dist/translations/jsontree.translations.ja.js +++ b/dist/translations/jsontree.translations.ja.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Japanese | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Japanese | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ka.js b/dist/translations/jsontree.translations.ka.js index 71448ecf..02400058 100644 --- a/dist/translations/jsontree.translations.ka.js +++ b/dist/translations/jsontree.translations.ka.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Georgian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Georgian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ko.js b/dist/translations/jsontree.translations.ko.js index b19533ac..175c54e4 100644 --- a/dist/translations/jsontree.translations.ko.js +++ b/dist/translations/jsontree.translations.ko.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Korean | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Korean | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.lb.js b/dist/translations/jsontree.translations.lb.js index 6d7a1c87..1497f7b5 100644 --- a/dist/translations/jsontree.translations.lb.js +++ b/dist/translations/jsontree.translations.lb.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Luxembourgish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Luxembourgish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.lt.js b/dist/translations/jsontree.translations.lt.js index 434dfec0..80feef14 100644 --- a/dist/translations/jsontree.translations.lt.js +++ b/dist/translations/jsontree.translations.lt.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Lithuanian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Lithuanian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.lv.js b/dist/translations/jsontree.translations.lv.js index 016ac1ce..034e9f09 100644 --- a/dist/translations/jsontree.translations.lv.js +++ b/dist/translations/jsontree.translations.lv.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Latvian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Latvian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ms.js b/dist/translations/jsontree.translations.ms.js index 305e61ad..4696a5c3 100644 --- a/dist/translations/jsontree.translations.ms.js +++ b/dist/translations/jsontree.translations.ms.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Malay | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Malay | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ne.js b/dist/translations/jsontree.translations.ne.js index d0664f6c..253c3073 100644 --- a/dist/translations/jsontree.translations.ne.js +++ b/dist/translations/jsontree.translations.ne.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Nepali | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Nepali | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.nl.js b/dist/translations/jsontree.translations.nl.js index b8535642..a3097134 100644 --- a/dist/translations/jsontree.translations.nl.js +++ b/dist/translations/jsontree.translations.nl.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Dutch | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Dutch | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.no.js b/dist/translations/jsontree.translations.no.js index 5a4902b5..27125f58 100644 --- a/dist/translations/jsontree.translations.no.js +++ b/dist/translations/jsontree.translations.no.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Norwegian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Norwegian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.pl.js b/dist/translations/jsontree.translations.pl.js index 3dabe30f..21041046 100644 --- a/dist/translations/jsontree.translations.pl.js +++ b/dist/translations/jsontree.translations.pl.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Portuguese | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Portuguese | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.pt.js b/dist/translations/jsontree.translations.pt.js index f9b15a8b..b1ef3193 100644 --- a/dist/translations/jsontree.translations.pt.js +++ b/dist/translations/jsontree.translations.pt.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Polish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Polish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ro.js b/dist/translations/jsontree.translations.ro.js index 0cb20cc2..77fe07cf 100644 --- a/dist/translations/jsontree.translations.ro.js +++ b/dist/translations/jsontree.translations.ro.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Romanian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Romanian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.si.js b/dist/translations/jsontree.translations.si.js index 84f13927..ba7e838d 100644 --- a/dist/translations/jsontree.translations.si.js +++ b/dist/translations/jsontree.translations.si.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Sinhalese | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Sinhalese | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.sk.js b/dist/translations/jsontree.translations.sk.js index 82ef5682..5696cf27 100644 --- a/dist/translations/jsontree.translations.sk.js +++ b/dist/translations/jsontree.translations.sk.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Slovak | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Slovak | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.sl.js b/dist/translations/jsontree.translations.sl.js index bfb2061e..deda9c82 100644 --- a/dist/translations/jsontree.translations.sl.js +++ b/dist/translations/jsontree.translations.sl.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Slovenian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Slovenian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.sv.js b/dist/translations/jsontree.translations.sv.js index 5922541d..3f2d4fd5 100644 --- a/dist/translations/jsontree.translations.sv.js +++ b/dist/translations/jsontree.translations.sv.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Swedish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Swedish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.ta.js b/dist/translations/jsontree.translations.ta.js index 5ea8416e..8f11e2cc 100644 --- a/dist/translations/jsontree.translations.ta.js +++ b/dist/translations/jsontree.translations.ta.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Tamil | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Tamil | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.te.js b/dist/translations/jsontree.translations.te.js index 1ab82289..0cb4814f 100644 --- a/dist/translations/jsontree.translations.te.js +++ b/dist/translations/jsontree.translations.te.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Telugu | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Telugu | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.th.js b/dist/translations/jsontree.translations.th.js index be9200f8..a8f10c16 100644 --- a/dist/translations/jsontree.translations.th.js +++ b/dist/translations/jsontree.translations.th.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Thai | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Thai | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.tl.js b/dist/translations/jsontree.translations.tl.js index 432a6ec5..974ce229 100644 --- a/dist/translations/jsontree.translations.tl.js +++ b/dist/translations/jsontree.translations.tl.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Tagalog | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Tagalog | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.tr.js b/dist/translations/jsontree.translations.tr.js index b6ac526a..526c08c7 100644 --- a/dist/translations/jsontree.translations.tr.js +++ b/dist/translations/jsontree.translations.tr.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Turkish | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Turkish | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.uk.js b/dist/translations/jsontree.translations.uk.js index cb2e251e..60f5d532 100644 --- a/dist/translations/jsontree.translations.uk.js +++ b/dist/translations/jsontree.translations.uk.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Ukrainian | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Ukrainian | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.vi.js b/dist/translations/jsontree.translations.vi.js index aa5fd365..59d4cc80 100644 --- a/dist/translations/jsontree.translations.vi.js +++ b/dist/translations/jsontree.translations.vi.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Vietnamese | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Vietnamese | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.zh-tw.js b/dist/translations/jsontree.translations.zh-tw.js index ae3d826f..cc241e53 100644 --- a/dist/translations/jsontree.translations.zh-tw.js +++ b/dist/translations/jsontree.translations.zh-tw.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Taiwanese | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Taiwanese | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/dist/translations/jsontree.translations.zh.js b/dist/translations/jsontree.translations.zh.js index d3c92d04..2001693f 100644 --- a/dist/translations/jsontree.translations.zh.js +++ b/dist/translations/jsontree.translations.zh.js @@ -1,4 +1,4 @@ -/*! JsonTree.js v4.0.0 - Chinese (simplified) | (c) Bunoon 2024 | MIT License */ +/*! JsonTree.js v4.1.0 - Chinese (simplified) | (c) Bunoon 2024 | MIT License */ $jsontree.setConfiguration( { "text": { "dayNames": [ diff --git a/jsontree.js.nuspec b/jsontree.js.nuspec index 13e15602..89c16785 100755 --- a/jsontree.js.nuspec +++ b/jsontree.js.nuspec @@ -2,7 +2,7 @@ jJsonTree.js - 4.0.0 + 4.1.0 JsonTree.js A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. William Troup diff --git a/package-lock.json b/package-lock.json index c087a1e1..a1d55a60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "jjsontree.js", - "version": "4.0.0", + "version": "4.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "jjsontree.js", - "version": "4.0.0", + "version": "4.1.0", "license": "MIT", "devDependencies": { "@swc/core": "^1.7.26", - "sass": "^1.79.2", - "terser": "^5.33.0", + "sass": "^1.79.4", + "terser": "^5.34.1", "tsup": "^8.3.0", "typescript": "^5.6.2" } @@ -518,9 +518,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", - "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.5.tgz", + "integrity": "sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==", "cpu": [ "arm" ], @@ -532,9 +532,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", - "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.5.tgz", + "integrity": "sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==", "cpu": [ "arm64" ], @@ -546,9 +546,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", - "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.5.tgz", + "integrity": "sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==", "cpu": [ "arm64" ], @@ -560,9 +560,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", - "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.5.tgz", + "integrity": "sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==", "cpu": [ "x64" ], @@ -574,9 +574,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", - "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.5.tgz", + "integrity": "sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==", "cpu": [ "arm" ], @@ -588,9 +588,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", - "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.5.tgz", + "integrity": "sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==", "cpu": [ "arm" ], @@ -602,9 +602,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", - "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.5.tgz", + "integrity": "sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==", "cpu": [ "arm64" ], @@ -616,9 +616,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", - "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.5.tgz", + "integrity": "sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==", "cpu": [ "arm64" ], @@ -630,9 +630,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", - "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.5.tgz", + "integrity": "sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==", "cpu": [ "ppc64" ], @@ -644,9 +644,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", - "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.5.tgz", + "integrity": "sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==", "cpu": [ "riscv64" ], @@ -658,9 +658,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", - "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.5.tgz", + "integrity": "sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==", "cpu": [ "s390x" ], @@ -672,9 +672,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", - "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.5.tgz", + "integrity": "sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==", "cpu": [ "x64" ], @@ -686,9 +686,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", - "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.5.tgz", + "integrity": "sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==", "cpu": [ "x64" ], @@ -700,9 +700,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", - "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.5.tgz", + "integrity": "sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==", "cpu": [ "arm64" ], @@ -714,9 +714,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", - "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.5.tgz", + "integrity": "sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==", "cpu": [ "ia32" ], @@ -728,9 +728,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", - "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.5.tgz", + "integrity": "sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==", "cpu": [ "x64" ], @@ -968,9 +968,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, @@ -1803,13 +1803,13 @@ } }, "node_modules/rollup": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", - "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.5.tgz", + "integrity": "sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -1819,29 +1819,29 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.0", - "@rollup/rollup-android-arm64": "4.21.0", - "@rollup/rollup-darwin-arm64": "4.21.0", - "@rollup/rollup-darwin-x64": "4.21.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", - "@rollup/rollup-linux-arm-musleabihf": "4.21.0", - "@rollup/rollup-linux-arm64-gnu": "4.21.0", - "@rollup/rollup-linux-arm64-musl": "4.21.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", - "@rollup/rollup-linux-riscv64-gnu": "4.21.0", - "@rollup/rollup-linux-s390x-gnu": "4.21.0", - "@rollup/rollup-linux-x64-gnu": "4.21.0", - "@rollup/rollup-linux-x64-musl": "4.21.0", - "@rollup/rollup-win32-arm64-msvc": "4.21.0", - "@rollup/rollup-win32-ia32-msvc": "4.21.0", - "@rollup/rollup-win32-x64-msvc": "4.21.0", + "@rollup/rollup-android-arm-eabi": "4.22.5", + "@rollup/rollup-android-arm64": "4.22.5", + "@rollup/rollup-darwin-arm64": "4.22.5", + "@rollup/rollup-darwin-x64": "4.22.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.5", + "@rollup/rollup-linux-arm-musleabihf": "4.22.5", + "@rollup/rollup-linux-arm64-gnu": "4.22.5", + "@rollup/rollup-linux-arm64-musl": "4.22.5", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.5", + "@rollup/rollup-linux-riscv64-gnu": "4.22.5", + "@rollup/rollup-linux-s390x-gnu": "4.22.5", + "@rollup/rollup-linux-x64-gnu": "4.22.5", + "@rollup/rollup-linux-x64-musl": "4.22.5", + "@rollup/rollup-win32-arm64-msvc": "4.22.5", + "@rollup/rollup-win32-ia32-msvc": "4.22.5", + "@rollup/rollup-win32-x64-msvc": "4.22.5", "fsevents": "~2.3.2" } }, "node_modules/sass": { - "version": "1.79.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.2.tgz", - "integrity": "sha512-YmT1aoF1MwHsZEu/eXhbAJNsPGAhNP4UixW9ckEwWCvPcVdVF0/C104OGDVEqtoctKq0N+wM20O/rj+sSPsWeg==", + "version": "1.79.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.4.tgz", + "integrity": "sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==", "dev": true, "license": "MIT", "dependencies": { @@ -2095,9 +2095,9 @@ } }, "node_modules/terser": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.33.0.tgz", - "integrity": "sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==", + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { diff --git a/package.json b/package.json index 9778f7e5..79bb3038 100755 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "jjsontree.js", "title": "JsonTree.js", "description": "A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data.", - "version": "4.0.0", + "version": "4.1.0", "homepage": "https://www.william-troup.com/jsontree-js/", "author": { "name": "Bunoon" @@ -40,8 +40,8 @@ }, "devDependencies": { "@swc/core": "^1.7.26", - "sass": "^1.79.2", - "terser": "^5.33.0", + "sass": "^1.79.4", + "terser": "^5.34.1", "tsup": "^8.3.0", "typescript": "^5.6.2" } diff --git a/src/jsontree.js.scss b/src/jsontree.js.scss index 8f6384da..83f0ef70 100755 --- a/src/jsontree.js.scss +++ b/src/jsontree.js.scss @@ -1,5 +1,5 @@ /* - * JsonTree.js Library v4.0.0 + * JsonTree.js Library v4.1.0 * * Copyright 2024 Bunoon * Released under the MIT License @@ -65,6 +65,11 @@ --json-tree-js-editable-background-color: #2d333b; --json-tree-js-editable-border-color: #454c56; + // Colors - Highlights + --json-tree-js-highlight-selected-color: #353e4b; + --json-tree-js-highlight-compare-color: #4a5768; + --json-tree-js-highlight-selected-border-color: #97a4b5; + // ToolTip --json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color); --json-tree-js-tooltip-border-color: var(--json-tree-js-container-border-color); @@ -92,6 +97,15 @@ --json-tree-js-button-background-color-active: #616b79; --json-tree-js-button-text-color-active: var(--json-tree-js-color-snow-white); + // Context Menu + --json-tree-js-context-menu-background-color: var(--json-tree-js-container-background-color); + --json-tree-js-context-menu-border-color: var(--json-tree-js-container-border-color); + --json-tree-js-context-menu-text-color: var(--json-tree-js-color-white); + --json-tree-js-context-menu-item-background-color-hover: var(--json-tree-js-container-border-color); + --json-tree-js-context-menu-item-text-color-hover: var(--json-tree-js-color-snow-white); + --json-tree-js-context-menu-item-background-color-active: var(--json-tree-js-button-background-color-active); + --json-tree-js-context-menu-item-text-color-active: var(--json-tree-js-color-snow-white); + // Button --json-tree-js-setting-panel-background-color: var(--json-tree-js-button-background-color); @@ -110,6 +124,7 @@ --json-tree-js-spacing: 10px; --json-tree-js-spacing-font-size: 0.85rem; --json-tree-js-spacing-arrow-toggle-size: 12px; + --json-tree-js-spacing-title-bar: calc( ( var(--json-tree-js-spacing) / 2 ) + 2px ); // Transitions --json-tree-js-transition: all .3s; @@ -252,7 +267,7 @@ div.json-tree-js { div.json-tree-js { div.title-bar { display: flex; - padding: calc( var(--json-tree-js-spacing) / 2 ); + padding: var(--json-tree-js-spacing-title-bar); background-color: var(--json-tree-js-color-dark-black); border-radius: var(--json-tree-js-border-radius); border-bottom: var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size); @@ -285,7 +300,7 @@ div.json-tree-js { white-space: nowrap; button { - margin-left: calc( var(--json-tree-js-spacing) / 2 ) !important; + margin-left: var(--json-tree-js-spacing-title-bar) !important; } button.copy-all { @@ -377,7 +392,7 @@ div.json-tree-js { div.side-menu-title-bar { display: flex; - padding: calc( var(--json-tree-js-spacing) / 2 ); + padding: var(--json-tree-js-spacing-title-bar); background-color: var(--json-tree-js-color-dark-black); border-radius: var(--json-tree-js-border-radius); border-bottom: var(--json-tree-js-container-border-color) solid var(--json-tree-js-border-size); @@ -402,7 +417,7 @@ div.json-tree-js { @include buttons; button { - margin-left: calc( var(--json-tree-js-spacing) / 2 ) !important; + margin-left: var(--json-tree-js-spacing-title-bar) !important; @include symbol-buttons; } @@ -495,7 +510,7 @@ div.json-tree-js { cursor: text !important; outline: none; box-shadow: none; - white-space: pre; + white-space: pre !important; } div.contents { @@ -518,6 +533,29 @@ div.json-tree-js { overflow: auto; padding-right: var(--json-tree-js-spacing); margin-right: var(--json-tree-js-spacing); + white-space: nowrap; + + div.contents-column-line-numbers { + position: relative; + vertical-align: top; + display: inline-block; + left: 0; + + div.contents-column-line-number { + position: absolute; + display: flex; + align-items: center; + left: 0; + padding-right: var(--json-tree-js-spacing); + } + } + + div.contents-column-lines { + vertical-align: top; + display: inline-block; + width: fit-content; + height: fit-content; + } div.column-control-buttons { position: absolute; @@ -529,15 +567,19 @@ div.json-tree-js { border-bottom-left-radius: var(--json-tree-js-border-radius); border-bottom: var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color); border-left: var(--json-tree-js-border-size) solid var(--json-tree-js-paging-column-border-color); - padding: calc( var(--json-tree-js-spacing) / 2 ); + padding: var(--json-tree-js-spacing-title-bar); z-index: 50; @include buttons; button { - margin-bottom: calc( var(--json-tree-js-spacing) / 2 ); + margin-bottom: var(--json-tree-js-spacing-title-bar); @include symbol-buttons; + + &:last-child { + margin-bottom: 0; + } } } @@ -677,6 +719,16 @@ div.json-tree-js { font-weight: var(--json-tree-js-bold-weight-light); color: var(--json-tree-js-color-snow-white) !important; } + + span.closed-symbols:hover { + transition: var(--json-tree-js-transition); + transition-property: opacity; + + &:not(.no-hover):not(.editable):hover { + cursor: pointer; + opacity: 0.7; + } + } } } @@ -737,6 +789,16 @@ div.json-tree-js { color: var(--json-tree-js-color-snow-white) !important; } + span.closed-symbols { + transition: var(--json-tree-js-transition); + transition-property: opacity; + + &:not(.no-hover):not(.editable):hover { + cursor: pointer; + opacity: 0.7; + } + } + div.closing-symbol { div { display: inline-block !important; @@ -754,6 +816,10 @@ div.json-tree-js { margin-bottom: calc( var(--json-tree-js-spacing) / 2 ); margin-left: calc( var(--json-tree-js-spacing) * 2 ); + div.object-type-value-title { + width: fit-content; + } + img { vertical-align: middle; } @@ -764,14 +830,31 @@ div.json-tree-js { font-weight: var(--json-tree-js-bold-weight-light); } - span.type, - span.type-color { + div.highlight-selected, + div.highlight-compare { + padding: calc( var(--json-tree-js-spacing) / 2 ); + border-radius: var(--json-tree-js-border-radius); + transition: var(--json-tree-js-transition); + transition-property: background-color, border, padding; + } + + div.highlight-selected { + background-color: var(--json-tree-js-highlight-selected-color); + border: var(--json-tree-js-border-size) dashed var(--json-tree-js-highlight-selected-border-color); + } + + div.highlight-compare { + background-color: var(--json-tree-js-highlight-compare-color); + } + + span.data-type, + span.data-type-color { margin-left: calc( var(--json-tree-js-spacing) / 2 ); font-style: italic; font-size: smaller; } - span.type-color { + span.data-type-color { color: var(--json-tree-js-color-light-gray); } @@ -927,6 +1010,63 @@ div.json-tree-js { } +/* + ------------------------------------------------------------------------- + JsonTree.js - Context Menu + ------------------------------------------------------------------------- +*/ + +div.jsontree-js-context-menu { + @include no-selection-allowed; + @include box-sizing; + font-family: var(--json-tree-js-default-font); + animation: fade-in-animation var(--json-tree-js-animation-length); + position: absolute; + background-color: var(--json-tree-js-context-menu-background-color); + border: var(--json-tree-js-border-size) solid var(--json-tree-js-context-menu-border-color); + color: var(--json-tree-js-context-menu-text-color); + border-radius: var(--json-tree-js-border-radius); + z-index: 2000; + max-width: 300px; + font-size: var(--json-tree-js-spacing-font-size); + font-weight: var(--json-tree-js-bold-weight-light); + overflow: hidden; + display: none; + + div.context-menu-item { + border-bottom: var(--json-tree-js-border-size) dotted var(--json-tree-js-tooltip-border-color); + padding: var(--json-tree-js-spacing); + transition: var(--json-tree-js-transition); + transition-property: background-color, color; + padding-right: 40px; + + span.symbol { + margin-right: var(--json-tree-js-spacing); + font-weight: var(--json-tree-js-bold-weight-heavy); + } + + span.text { + font-weight: var(--json-tree-js-bold-weight-light); + } + + &:active { + background: var(--json-tree-js-context-menu-item-background-color-active) !important; + color: var(--json-tree-js-context-menu-item-text-color-active) !important; + } + + &:hover { + cursor: pointer; + background: var(--json-tree-js-context-menu-item-background-color-hover); + color: var(--json-tree-js-context-menu-item-text-color-hover); + } + + &:last-child { + border-bottom: none; + } + } +} + + /* ------------------------------------------------------------------------- JsonTree.js - ToolTip diff --git a/src/jsontree.ts b/src/jsontree.ts index 3388aaf6..ae415845 100644 --- a/src/jsontree.ts +++ b/src/jsontree.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file jsontree.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -18,7 +18,8 @@ import { type ContentPanelsForArrayIndex, type ContentPanels, type FunctionName, - type BindingOptionsCurrentView } from "./ts/type"; + type BindingOptionsCurrentView, + type ColumnLayout } from "./ts/type"; import { type PublicApi } from "./ts/api"; import { Default } from "./ts/data/default"; @@ -36,6 +37,7 @@ import { Arr } from "./ts/data/arr"; import { Size } from "./ts/data/size"; import { Obj } from "./ts/data/obj"; import { Convert } from "./ts/data/convert"; +import { ContextMenu } from "./ts/area/context-menu"; type JsonTreeData = Record; @@ -49,9 +51,8 @@ type JsonTreeData = Record; let _elements_Data: JsonTreeData = {} as JsonTreeData; let _elements_Data_Count: number = 0; - let _jsonStringifyReplacer: any = ( key: string, value: any ) : any => { - return Convert.stringifyJson( key, value, _configuration ); - }; + // Variables: Global Keys + let _key_Control_Pressed: boolean = false; /* @@ -95,6 +96,7 @@ type JsonTreeData = Record; function renderControl( bindingOptions: BindingOptions ) : void { Trigger.customEvent( bindingOptions.events!.onBeforeRender!, bindingOptions._currentView.element ); ToolTip.renderControl( bindingOptions ); + ContextMenu.renderControl( bindingOptions ); if ( !Is.definedString( bindingOptions._currentView.element.id ) ) { bindingOptions._currentView.element.id = crypto.randomUUID(); @@ -136,14 +138,15 @@ type JsonTreeData = Record; const scrollTopsForColumns: number[] = getContentColumnScrollTops( bindingOptions ); ToolTip.hide( bindingOptions ); + ContextMenu.hide( bindingOptions ); + bindingOptions.data = data; bindingOptions._currentView.element.innerHTML = Char.empty; bindingOptions._currentView.editMode = false; bindingOptions._currentView.contentPanelsIndex = 0; bindingOptions._currentView.sideMenuChanged = false; - bindingOptions._currentView.contentColumns = []; + bindingOptions._currentView.currentContentColumns = []; bindingOptions._currentView.dataTypeCounts = {} as Record; - bindingOptions._currentView.contentControlButtons = []; renderControlTitleBar( bindingOptions, data ); @@ -154,16 +157,20 @@ type JsonTreeData = Record; } if ( bindingOptions.paging!.enabled && Is.definedArray( data ) ) { - const allowColumnReordering: boolean = Is.defined( data[ bindingOptions._currentView.dataArrayCurrentIndex + 1 ] ); + const allowColumnReordering: boolean = Is.defined( data[ bindingOptions._currentView.currentDataArrayPageIndex + 1 ] ); + const updatedData: Array = Arr.removeNullOrUndefinedEntries( data ); + + bindingOptions.data = updatedData; for ( let pageIndex: number = 0; pageIndex < bindingOptions.paging!.columnsPerPage!; pageIndex++ ) { - const actualDataIndex: number = pageIndex + bindingOptions._currentView.dataArrayCurrentIndex; - const actualData: any = data[ actualDataIndex ]; + const actualDataIndex: number = pageIndex + bindingOptions._currentView.currentDataArrayPageIndex; - bindingOptions._currentView.contentPanelsIndex = 0; - bindingOptions._currentView.contentPanelsDataIndex = actualDataIndex; + if ( actualDataIndex <= updatedData.length - 1 ) { + const actualData: any = updatedData[ actualDataIndex ]; - if ( Is.defined( actualData ) ) { + bindingOptions._currentView.contentPanelsIndex = 0; + bindingOptions._currentView.contentPanelsDataIndex = actualDataIndex; + renderControlContentsPanel( actualData, contents, bindingOptions, actualDataIndex, scrollTopsForColumns[ pageIndex ], bindingOptions.paging!.columnsPerPage!, allowColumnReordering ); } } @@ -205,24 +212,45 @@ type JsonTreeData = Record; contentsColumn.setAttribute( "draggable", "true" ); contentsColumn.ondragstart = () => onContentsColumnDragStart( contentsColumn, bindingOptions, dataIndex ); contentsColumn.ondragend = () => onContentsColumnDragEnd( contentsColumn, bindingOptions ); - contentsColumn.ondragover = ( e: DragEvent ) => e.preventDefault(); + contentsColumn.ondragover = ( ev: DragEvent ) => ev.preventDefault(); contentsColumn.ondrop = () => onContentsColumnDrop( bindingOptions, dataIndex ); } - - bindingOptions._currentView.contentColumns.push( contentsColumn ); - + + let renderValuesContainer: HTMLElement = contentsColumn; + let lineNumbers: HTMLElement = null!; + let lines: HTMLElement = null!; + + if ( bindingOptions.lineNumbers!.enabled ) { + lineNumbers = DomElement.create( contentsColumn, "div", "contents-column-line-numbers" ); + lines = DomElement.create( contentsColumn, "div", "contents-column-lines" ); + renderValuesContainer = lines; + } + + const columnLayout: ColumnLayout = { + column: contentsColumn, + lineNumbers: lineNumbers, + lines: lines, + controlButtons: null! + }; + + bindingOptions._currentView.currentContentColumns.push( columnLayout ); + bindingOptions._currentView.currentColumnBuildingIndex = bindingOptions._currentView.currentContentColumns.length - 1; + if ( Is.definedArray( data ) ) { - renderArray( contentsColumn, bindingOptions, data, DataType.array ); + renderArray( renderValuesContainer, bindingOptions, data, DataType.array ); } else if ( Is.definedSet( data ) ) { - renderArray( contentsColumn, bindingOptions, Convert.setToArray( data ), DataType.set ); + renderArray( renderValuesContainer, bindingOptions, Convert.setToArray( data ), DataType.set ); } else if ( Is.definedHtml( data ) ) { - renderObject( contentsColumn, bindingOptions, Convert.htmlToObject( data, bindingOptions.showCssStylesForHtmlObjects! ), dataIndex, DataType.html ); + renderObject( renderValuesContainer, bindingOptions, Convert.htmlToObject( data, bindingOptions.showCssStylesForHtmlObjects! ), dataIndex, DataType.html ); } else if ( Is.definedMap( data ) ) { - renderObject( contentsColumn, bindingOptions, Convert.mapToObject( data ), dataIndex, DataType.map ); + renderObject( renderValuesContainer, bindingOptions, Convert.mapToObject( data ), dataIndex, DataType.map ); } else if ( Is.definedObject( data ) ) { - renderObject( contentsColumn, bindingOptions, data, dataIndex, DataType.object ); + renderObject( renderValuesContainer, bindingOptions, data, dataIndex, DataType.object ); + } else { + renderObject( renderValuesContainer, bindingOptions, Obj.createFromValue( data ), dataIndex, DataType.object ); } + renderControlColumnLineNumbers( bindingOptions._currentView.currentColumnBuildingIndex, bindingOptions ); renderControlContentsControlButtons( bindingOptions, contentsColumn, data, dataIndex ); if ( Is.defined( scrollTop ) ) { @@ -232,18 +260,18 @@ type JsonTreeData = Record; bindingOptions._currentView.titleBarButtons.style.display = "block"; if ( bindingOptions.allowEditing!.bulk ) { - contentsColumn.ondblclick = ( e: MouseEvent ) => { - enableContentsColumnEditMode( e, bindingOptions, data, contentsColumn, dataIndex ); + contentsColumn.ondblclick = ( ev: MouseEvent ) => { + enableContentsColumnEditMode( ev, bindingOptions, data, contentsColumn, dataIndex ); }; } } } - function enableContentsColumnEditMode( e: MouseEvent, bindingOptions: BindingOptions, data: any, contentsColumn: HTMLElement, dataIndex: number ) : void { + function enableContentsColumnEditMode( ev: MouseEvent, bindingOptions: BindingOptions, data: any, contentsColumn: HTMLElement, dataIndex: number ) : void { let statusBarMessage: string = null!; - if ( Is.defined( e ) ) { - DomElement.cancelBubble( e ); + if ( Is.defined( ev ) ) { + DomElement.cancelBubble( ev ); } clearTimeout( bindingOptions._currentView.valueClickTimerId ); @@ -254,7 +282,7 @@ type JsonTreeData = Record; contentsColumn.classList.add( "editable" ); contentsColumn.setAttribute( "contenteditable", "true" ); contentsColumn.setAttribute( "draggable", "false" ); - contentsColumn.innerText = JSON.stringify( data, _jsonStringifyReplacer, bindingOptions.jsonIndentSpaces ); + contentsColumn.innerText = JSON.stringify( Convert.toJsonStringifyClone( data, _configuration, bindingOptions ), bindingOptions.events!.onCopyJsonReplacer, bindingOptions.jsonIndentSpaces ); contentsColumn.focus(); DomElement.selectAllText( contentsColumn ); @@ -267,13 +295,13 @@ type JsonTreeData = Record; } }; - contentsColumn.onkeydown = ( e: KeyboardEvent ) => { - if ( e.code === KeyCode.escape ) { - e.preventDefault(); + contentsColumn.onkeydown = ( ev: KeyboardEvent ) => { + if ( ev.code === KeyCode.escape ) { + ev.preventDefault(); contentsColumn.setAttribute( "contenteditable", "false" ); - } else if ( isCommandKey( e ) && e.code === KeyCode.enter ) { - e.preventDefault(); + } else if ( isCommandKey( ev ) && ev.code === KeyCode.enter ) { + ev.preventDefault(); const newValue: string = contentsColumn.innerText; const newData: StringToJson = Convert.jsonStringToObject( newValue, _configuration ); @@ -289,8 +317,8 @@ type JsonTreeData = Record; bindingOptions.data.splice( dataIndex, 1 ); statusBarMessage = _configuration.text!.arrayJsonItemDeleted!; - if ( dataIndex === bindingOptions._currentView.dataArrayCurrentIndex && bindingOptions._currentView.dataArrayCurrentIndex > 0 ) { - bindingOptions._currentView.dataArrayCurrentIndex -= bindingOptions.paging!.columnsPerPage! + if ( dataIndex === bindingOptions._currentView.currentDataArrayPageIndex && bindingOptions._currentView.currentDataArrayPageIndex > 0 ) { + bindingOptions._currentView.currentDataArrayPageIndex -= bindingOptions.paging!.columnsPerPage! } } @@ -301,8 +329,8 @@ type JsonTreeData = Record; contentsColumn.setAttribute( "contenteditable", "false" ); - } else if ( e.code === KeyCode.enter ) { - e.preventDefault(); + } else if ( ev.code === KeyCode.enter ) { + ev.preventDefault(); document.execCommand( "insertLineBreak" ); } }; @@ -312,12 +340,13 @@ type JsonTreeData = Record; const result: number[] = []; ToolTip.hide( bindingOptions ); + ContextMenu.hide( bindingOptions ); if ( bindingOptions._currentView.editMode || bindingOptions._currentView.sideMenuChanged ) { - const contentColumnsLength: number = bindingOptions._currentView.contentColumns.length; + const contentColumnsLength: number = bindingOptions._currentView.currentContentColumns.length; for ( let contentColumnIndex: number = 0; contentColumnIndex < contentColumnsLength; contentColumnIndex++ ) { - result.push( bindingOptions._currentView.contentColumns[ contentColumnIndex ].scrollTop ); + result.push( bindingOptions._currentView.currentContentColumns[ contentColumnIndex ].column.scrollTop ); } } @@ -326,25 +355,26 @@ type JsonTreeData = Record; function onContentsColumnScroll( column: HTMLElement, bindingOptions: BindingOptions, dataIndex: number ) : void { ToolTip.hide( bindingOptions ); + ContextMenu.hide( bindingOptions ); const scrollTop: number = column.scrollTop; const scrollLeft: number = column.scrollLeft; - const columnsLength: number = bindingOptions._currentView.contentColumns.length; + const columnsLength: number = bindingOptions._currentView.currentContentColumns.length; if ( bindingOptions.controlPanel!.enabled ) { - const controlButtons: HTMLElement = bindingOptions._currentView.contentControlButtons[ dataIndex ]; + const controlButtons: HTMLElement = bindingOptions._currentView.currentContentColumns[ dataIndex ].controlButtons; if ( Is.defined( controlButtons ) ) { - controlButtons.style.top = `${bindingOptions._currentView.contentColumns[ dataIndex ].scrollTop}px`; - controlButtons.style.right = `-${bindingOptions._currentView.contentColumns[ dataIndex ].scrollLeft}px`; + controlButtons.style.top = `${bindingOptions._currentView.currentContentColumns[ dataIndex ].column.scrollTop}px`; + controlButtons.style.right = `-${bindingOptions._currentView.currentContentColumns[ dataIndex ].column.scrollLeft}px`; } } if ( bindingOptions.paging!.synchronizeScrolling ) { for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) { if ( dataIndex !== columnIndex ) { - bindingOptions._currentView.contentColumns[ columnIndex ].scrollTop = scrollTop; - bindingOptions._currentView.contentColumns[ columnIndex ].scrollLeft = scrollLeft; + bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollTop = scrollTop; + bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollLeft = scrollLeft; } } } @@ -352,11 +382,11 @@ type JsonTreeData = Record; if ( bindingOptions.controlPanel!.enabled ) { for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) { if ( dataIndex !== columnIndex ) { - const controlButtons: HTMLElement = bindingOptions._currentView.contentControlButtons[ columnIndex ]; + const controlButtons: HTMLElement = bindingOptions._currentView.currentContentColumns[ columnIndex ].controlButtons; if ( Is.defined( controlButtons ) ) { - controlButtons.style.top = `${bindingOptions._currentView.contentColumns[ columnIndex ].scrollTop}px`; - controlButtons.style.right = `-${bindingOptions._currentView.contentColumns[ columnIndex ].scrollLeft}px`; + controlButtons.style.top = `${bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollTop}px`; + controlButtons.style.right = `-${bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollLeft}px`; } } } @@ -403,10 +433,10 @@ type JsonTreeData = Record; bindingOptions._currentView.contentPanelsOpen[ newIndex ] = dataPanelsOpen2; bindingOptions._currentView.contentPanelsOpen[ oldIndex ] = dataPanelsOpen1; - if ( ( bindingOptions._currentView.dataArrayCurrentIndex + ( bindingOptions.paging!.columnsPerPage! - 1 ) ) < newIndex ) { - bindingOptions._currentView.dataArrayCurrentIndex += bindingOptions.paging!.columnsPerPage!; - } else if ( newIndex < bindingOptions._currentView.dataArrayCurrentIndex ) { - bindingOptions._currentView.dataArrayCurrentIndex -= bindingOptions.paging!.columnsPerPage!; + if ( ( bindingOptions._currentView.currentDataArrayPageIndex + ( bindingOptions.paging!.columnsPerPage! - 1 ) ) < newIndex ) { + bindingOptions._currentView.currentDataArrayPageIndex += bindingOptions.paging!.columnsPerPage!; + } else if ( newIndex < bindingOptions._currentView.currentDataArrayPageIndex ) { + bindingOptions._currentView.currentDataArrayPageIndex -= bindingOptions.paging!.columnsPerPage!; } renderControlContainer( bindingOptions ); @@ -415,6 +445,67 @@ type JsonTreeData = Record; } + /* + * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + * Render: Line Numbers + * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + + function renderControlColumnLineNumbers( columnLayoutIndex: number, bindingOptions: BindingOptions ) : void { + const columnLayout: ColumnLayout = bindingOptions._currentView.currentContentColumns[ columnLayoutIndex ]; + + if ( bindingOptions.lineNumbers!.enabled ) { + let lineNumberCount: number = 1; + let firstLineTop: number = 0; + let largestLineNumberWidth: number = 0; + const valueElements: NodeListOf = columnLayout.column.querySelectorAll( ".object-type-title, .object-type-value-title, .object-type-end" ); + const valueElementsLength: number = valueElements.length; + + columnLayout.lineNumbers.innerHTML = Char.empty; + + for ( let valueElementIndex = 0; valueElementIndex < valueElementsLength; valueElementIndex++ ) { + const valueElement: HTMLElement = valueElements[ valueElementIndex ] as HTMLElement; + + if ( valueElement.offsetHeight > 0 ) { + let elementTop: number = DomElement.getOffset( valueElement ).top; + + if ( lineNumberCount === 1 ) { + firstLineTop = elementTop; + } + + elementTop -= firstLineTop; + + const lineNumber: HTMLElement = DomElement.create( columnLayout.lineNumbers, "div", "contents-column-line-number" ); + const lineNumberDot: string = bindingOptions.lineNumbers!.addDots ? "." : Char.empty; + + if ( bindingOptions.lineNumbers!.padNumbers ) { + lineNumber.innerHTML = `${Str.padNumber( lineNumberCount, valueElementsLength.toString().length )}${lineNumberDot}`; + } else { + lineNumber.innerHTML = `${lineNumberCount}${lineNumberDot}`; + } + + const newTop: number = elementTop + ( valueElement.offsetHeight / 2 ) - ( lineNumber.offsetHeight / 2 ); + + lineNumber.style.top = `${newTop}px`; + + largestLineNumberWidth = Math.max( largestLineNumberWidth, lineNumber.offsetWidth ); + } + + lineNumberCount++; + } + + columnLayout.lineNumbers.style.height = `${columnLayout.lines.offsetHeight}px`; + columnLayout.lineNumbers.style.width = `${largestLineNumberWidth}px`; + + } else { + if ( Is.defined( columnLayout.lineNumbers ) ) { + columnLayout.lineNumbers.parentNode!.removeChild( columnLayout.lineNumbers ); + columnLayout.lineNumbers = null!; + } + } + } + + /* * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * Render: Control Buttons Panel @@ -498,7 +589,7 @@ type JsonTreeData = Record; } if ( controlButtons.innerHTML !== Char.empty ) { - bindingOptions._currentView.contentControlButtons.push( controlButtons ); + bindingOptions._currentView.currentContentColumns[ bindingOptions._currentView.currentColumnBuildingIndex ].controlButtons = controlButtons; contentsColumn.style.minHeight = `${controlButtons.offsetHeight}px`; } else { @@ -540,8 +631,8 @@ type JsonTreeData = Record; if ( bindingOptions.paging!.enabled ) { bindingOptions.data.splice( dataIndex, 1 ); - if ( dataIndex === bindingOptions._currentView.dataArrayCurrentIndex && bindingOptions._currentView.dataArrayCurrentIndex > 0 ) { - bindingOptions._currentView.dataArrayCurrentIndex -= bindingOptions.paging!.columnsPerPage! + if ( dataIndex === bindingOptions._currentView.currentDataArrayPageIndex && bindingOptions._currentView.currentDataArrayPageIndex > 0 ) { + bindingOptions._currentView.currentDataArrayPageIndex -= bindingOptions.paging!.columnsPerPage! } } else { @@ -553,13 +644,7 @@ type JsonTreeData = Record; } function onCopy( bindingOptions: BindingOptions, data: any ) : void { - let replaceFunction: any = _jsonStringifyReplacer; - - if ( Is.definedFunction( bindingOptions.events!.onCopyJsonReplacer ) ) { - replaceFunction = bindingOptions.events!.onCopyJsonReplacer!; - } - - let copyDataJson: string = JSON.stringify( data, replaceFunction, bindingOptions.jsonIndentSpaces ); + const copyDataJson: string = JSON.stringify( Convert.toJsonStringifyClone( data, _configuration, bindingOptions ), bindingOptions.events!.onCopyJsonReplacer, bindingOptions.jsonIndentSpaces ); navigator.clipboard.writeText( copyDataJson ); @@ -624,7 +709,7 @@ type JsonTreeData = Record; ToolTip.add( bindingOptions._currentView.backButton, bindingOptions, _configuration.text!.backButtonText! ); - if ( bindingOptions._currentView.dataArrayCurrentIndex > 0 ) { + if ( bindingOptions._currentView.currentDataArrayPageIndex > 0 ) { bindingOptions._currentView.backButton.onclick = () => onBackPage( bindingOptions ); } else { bindingOptions._currentView.backButton.disabled = true; @@ -635,7 +720,7 @@ type JsonTreeData = Record; ToolTip.add( bindingOptions._currentView.nextButton, bindingOptions, _configuration.text!.nextButtonText! ); - if ( ( bindingOptions._currentView.dataArrayCurrentIndex + ( bindingOptions.paging!.columnsPerPage! - 1 ) ) < data.length - 1 ) { + if ( ( bindingOptions._currentView.currentDataArrayPageIndex + ( bindingOptions.paging!.columnsPerPage! - 1 ) ) < data.length - 1 ) { bindingOptions._currentView.nextButton.onclick = () => onNextPage( bindingOptions ); } else { bindingOptions._currentView.nextButton.disabled = true; @@ -674,19 +759,14 @@ type JsonTreeData = Record; } ToolTip.hide( bindingOptions ); + ContextMenu.hide( bindingOptions ); updateFooterDisplay( bindingOptions ); Trigger.customEvent( bindingOptions.events!.onFullScreenChange!, bindingOptions._currentView.element, bindingOptions._currentView.element.classList.contains( "full-screen" ) ); } } function onTitleBarCopyAllClick( bindingOptions: BindingOptions, data: any ) : void { - let replaceFunction: any = _jsonStringifyReplacer; - - if ( Is.definedFunction( bindingOptions.events!.onCopyJsonReplacer ) ) { - replaceFunction = bindingOptions.events!.onCopyJsonReplacer!; - } - - let copyDataJson: string = JSON.stringify( data, replaceFunction, bindingOptions.jsonIndentSpaces ); + const copyDataJson: string = JSON.stringify( Convert.toJsonStringifyClone( data, _configuration, bindingOptions ), bindingOptions.events!.onCopyJsonReplacer, bindingOptions.jsonIndentSpaces ); navigator.clipboard.writeText( copyDataJson ); @@ -712,7 +792,7 @@ type JsonTreeData = Record; function onBackPage( bindingOptions: BindingOptions ) : void { if ( bindingOptions._currentView.backButton !== null && !bindingOptions._currentView.backButton.disabled ) { - bindingOptions._currentView.dataArrayCurrentIndex -= bindingOptions.paging!.columnsPerPage!; + bindingOptions._currentView.currentDataArrayPageIndex -= bindingOptions.paging!.columnsPerPage!; renderControlContainer( bindingOptions, true ); Trigger.customEvent( bindingOptions.events!.onBackPage!, bindingOptions._currentView.element ); @@ -721,7 +801,7 @@ type JsonTreeData = Record; function onNextPage( bindingOptions: BindingOptions ) : void { if ( bindingOptions._currentView.nextButton !== null && !bindingOptions._currentView.nextButton.disabled ) { - bindingOptions._currentView.dataArrayCurrentIndex += bindingOptions.paging!.columnsPerPage!; + bindingOptions._currentView.currentDataArrayPageIndex += bindingOptions.paging!.columnsPerPage!; renderControlContainer( bindingOptions, true ); Trigger.customEvent( bindingOptions.events!.onNextPage!, bindingOptions._currentView.element ); @@ -795,15 +875,19 @@ type JsonTreeData = Record; bindingOptions._currentView.disabledBackground.style.display = "block"; ToolTip.hide( bindingOptions ); + ContextMenu.hide( bindingOptions ); } } - function onSideMenuClose( bindingOptions: BindingOptions ) : void { + function onSideMenuClose( bindingOptions: BindingOptions ) : boolean { + let closed: boolean = false; + if ( bindingOptions._currentView.sideMenu.classList.contains( "side-menu-open" ) ) { bindingOptions._currentView.sideMenu.classList.remove( "side-menu-open" ); bindingOptions._currentView.disabledBackground.style.display = "none"; ToolTip.hide( bindingOptions ); + ContextMenu.hide( bindingOptions ); if ( bindingOptions._currentView.sideMenuChanged ) { setTimeout( () => { @@ -811,7 +895,11 @@ type JsonTreeData = Record; setFooterStatusText( bindingOptions, _configuration.text!.ignoreDataTypesUpdated! ); }, 500 ); } + + closed = true; } + + return closed; } function addSideMenuIgnoreTypes( contents: HTMLElement, bindingOptions: BindingOptions ) : void { @@ -927,7 +1015,7 @@ type JsonTreeData = Record; function getFooterPageText( bindingOptions: BindingOptions ) : void { if ( bindingOptions.paging!.enabled ) { - const currentPage: number = Math.ceil( ( bindingOptions._currentView.dataArrayCurrentIndex + 1 ) / bindingOptions.paging!.columnsPerPage! ); + const currentPage: number = Math.ceil( ( bindingOptions._currentView.currentDataArrayPageIndex + 1 ) / bindingOptions.paging!.columnsPerPage! ); const totalPages: number = Math.ceil( bindingOptions.data.length / bindingOptions.paging!.columnsPerPage! ); const currentReplacement: string = DomElement.createWithHTML( null!, "span", "status-count", currentPage.toFixed() ).outerHTML; const totalReplacement: string = DomElement.createWithHTML( null!, "span", "status-count", totalPages.toFixed() ).outerHTML; @@ -963,7 +1051,7 @@ type JsonTreeData = Record; function addFooterLengthStatus( bindingOptions: BindingOptions, value: any, valueElement: HTMLElement ) : void { if ( bindingOptions.footer!.enabled && bindingOptions.footer!.showLengths ) { - const length: number = Size.length( value ); + const length: number = Size.length( value, bindingOptions.showCssStylesForHtmlObjects! ); if ( length > 0 ) { valueElement.addEventListener( "mousemove", () => { @@ -985,7 +1073,7 @@ type JsonTreeData = Record; function addFooterSizeStatus( bindingOptions: BindingOptions, value: any, valueElement: HTMLElement ) : void { if ( bindingOptions.footer!.enabled && bindingOptions.footer!.showSizes ) { - const size: string = Size.of( value ); + const size: string = Size.of( value, bindingOptions.showCssStylesForHtmlObjects! ); if ( Is.definedString( size ) ) { valueElement.addEventListener( "mousemove", () => { @@ -1068,6 +1156,9 @@ type JsonTreeData = Record; if ( bindingOptions.showOpeningClosingCurlyBraces ) { openingBrace = DomElement.createWithHTML( objectTypeTitle, "span", "opening-symbol", "{" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedObjectCurlyBraces ) { closedBraces = DomElement.createWithHTML( objectTypeTitle, "span", "closed-symbols", "{ ... }" ) as HTMLSpanElement; } @@ -1075,6 +1166,7 @@ type JsonTreeData = Record; addValueClickEvent( bindingOptions, titleText, data, dataType, false ); addFooterSizeStatus( bindingOptions, data, titleText ); addFooterLengthStatus( bindingOptions, data, titleText ); + renderValueContextMenuItems( bindingOptions, objectTypeTitle, false, data, data, null!, false, null! ); } } @@ -1100,8 +1192,11 @@ type JsonTreeData = Record; DomElement.createWithHTML( objectTypeTitle, "span", bindingOptions.showValueColors ? `${dataType} size` : "size", `[${data.length}]` ); } - if ( bindingOptions.showOpeningClosingCurlyBraces ) { + if ( bindingOptions.showOpeningClosingSquaredBrackets ) { openingBracket = DomElement.createWithHTML( objectTypeTitle, "span", "opening-symbol", "[" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedArraySquaredBrackets ) { closedBrackets = DomElement.createWithHTML( objectTypeTitle, "span", "closed-symbols", "[ ... ]" ) as HTMLSpanElement; } @@ -1109,6 +1204,7 @@ type JsonTreeData = Record; addValueClickEvent( bindingOptions, titleText, data, dataType, false ); addFooterSizeStatus( bindingOptions, data, titleText ); addFooterLengthStatus( bindingOptions, data, titleText ); + renderValueContextMenuItems( bindingOptions, objectTypeTitle, false, data, data, null!, false, null! ); } function renderObjectValues( arrow: HTMLElement, coma: HTMLSpanElement, objectTypeContents: HTMLElement, bindingOptions: BindingOptions, data: any, propertyNames: string[], openingBrace: HTMLSpanElement, closedBraces: HTMLElement, addNoArrowToClosingSymbol: boolean, isLastItem: boolean, jsonPath: string, parentType: string, preventEditing: boolean ) : boolean { @@ -1173,7 +1269,7 @@ type JsonTreeData = Record; propertiesAdded = false; } else { - if ( bindingOptions.showOpeningClosingCurlyBraces ) { + if ( bindingOptions.showOpeningClosingSquaredBrackets ) { createClosingSymbol( bindingOptions, objectTypeContents, "]", addNoArrowToClosingSymbol, isLastItem ); } } @@ -1185,18 +1281,21 @@ type JsonTreeData = Record; function renderValue( data: any, container: HTMLElement, bindingOptions: BindingOptions, name: string, value: any, isLastItem: boolean, isArrayItem: boolean, jsonPath: string, parentType: string, preventEditing: boolean ) : void { const objectTypeValue: HTMLElement = DomElement.create( container, "div", "object-type-value" ); - const arrow: HTMLElement = bindingOptions.showArrowToggles ? DomElement.create( objectTypeValue, "div", "no-arrow" ) : null!; + const objectTypeValueTitle: HTMLElement = DomElement.create( objectTypeValue, "div", "object-type-value-title" ); + const arrow: HTMLElement = bindingOptions.showArrowToggles ? DomElement.create( objectTypeValueTitle, "div", "no-arrow" ) : null!; let valueClass: string = null!; let valueElement: HTMLElement = null!; let ignored: boolean = false; let ignoredDataType: boolean = false; let dataType: string = null!; - let nameElement: HTMLSpanElement = DomElement.create( objectTypeValue, "span", "title" ); + let nameElement: HTMLSpanElement = DomElement.create( objectTypeValueTitle, "span" ); let allowEditing: boolean = false; let typeElement: HTMLSpanElement = null!; const isForEmptyProperties: boolean = !Is.definedString( name ); let assignClickEvent: boolean = true; - + let openButton: HTMLSpanElement = null!; + const columnIndex: number = bindingOptions._currentView.currentColumnBuildingIndex; + if ( !isForEmptyProperties ) { if ( isArrayItem || !bindingOptions.showPropertyNameQuotes ) { nameElement.innerHTML = name; @@ -1218,8 +1317,8 @@ type JsonTreeData = Record; objectTypeValue.classList.add( "last-item" ); } - if ( bindingOptions.showDataTypes ) { - typeElement = DomElement.createWithHTML( objectTypeValue, "span", bindingOptions.showValueColors ? "type-color" : "type", Char.empty ) as HTMLSpanElement; + if ( bindingOptions.showDataTypes && !isForEmptyProperties ) { + typeElement = DomElement.createWithHTML( objectTypeValueTitle, "span", bindingOptions.showValueColors ? "data-type-color" : "data-type", Char.empty ) as HTMLSpanElement; } if ( Is.defined( nameElement ) && !isForEmptyProperties && bindingOptions.showValueColors && bindingOptions.showPropertyNameAndIndexColors ) { @@ -1227,7 +1326,7 @@ type JsonTreeData = Record; } if ( Is.defined( nameElement ) && !isForEmptyProperties ) { - DomElement.createWithHTML( objectTypeValue, "span", "split", _configuration.text!.propertyColonCharacter! ); + DomElement.createWithHTML( objectTypeValueTitle, "span", "split", _configuration.text!.propertyColonCharacter! ); if ( !preventEditing ) { makePropertyNameEditable( bindingOptions, data, name, nameElement, isArrayItem ); @@ -1236,13 +1335,15 @@ type JsonTreeData = Record; } if ( Is.definedString( jsonPath ) ) { - objectTypeValue.setAttribute( Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME, jsonPath ); + objectTypeValueTitle.setAttribute( Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME, jsonPath ); } if ( !isArrayItem ) { addFooterSizeStatus( bindingOptions, name, nameElement ); addFooterLengthStatus( bindingOptions, name, nameElement ); } + + selectItemAndCompareProperties( bindingOptions, objectTypeValueTitle, jsonPath, columnIndex, value ); } if ( value === null ) { @@ -1250,13 +1351,13 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.nullValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value undefined-or-null` : "value undefined-or-null"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, "null" ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, "null" ); if ( Is.definedFunction( bindingOptions.events!.onNullRender ) ) { Trigger.customEvent( bindingOptions.events!.onNullRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1267,13 +1368,13 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.undefinedValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value undefined-or-null` : "value undefined-or-null"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, "undefined" ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, "undefined" ); if ( Is.definedFunction( bindingOptions.events!.onUndefinedRender ) ) { Trigger.customEvent( bindingOptions.events!.onUndefinedRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1287,13 +1388,13 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.lambdaValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value non-value` : "value non-value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, functionName.name ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, functionName.name ); if ( Is.definedFunction( bindingOptions.events!.onLambdaRender ) ) { Trigger.customEvent( bindingOptions.events!.onLambdaRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1304,13 +1405,13 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.functionValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value non-value` : "value non-value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, functionName.name ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, functionName.name ); if ( Is.definedFunction( bindingOptions.events!.onFunctionRender ) ) { Trigger.customEvent( bindingOptions.events!.onFunctionRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1322,7 +1423,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.booleanValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value ); allowEditing = bindingOptions.allowEditing!.booleanValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1331,7 +1432,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onBooleanRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1344,7 +1445,7 @@ type JsonTreeData = Record; const newValue: string = Convert.numberToFloatWithDecimalPlaces( value, bindingOptions.maximumDecimalPlaces! ); valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, newValue ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, newValue ); allowEditing = bindingOptions.allowEditing!.floatValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1353,7 +1454,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onFloatRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1364,7 +1465,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.numberValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value ); allowEditing = bindingOptions.allowEditing!.numberValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1373,7 +1474,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onNumberRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1384,7 +1485,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.bigintValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value ); allowEditing = bindingOptions.allowEditing!.bigIntValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1393,7 +1494,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onBigIntRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1404,7 +1505,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.guidValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value ); allowEditing = bindingOptions.allowEditing!.guidValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1413,7 +1514,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onGuidRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1424,7 +1525,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.colorValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value ); allowEditing = bindingOptions.allowEditing!.colorValues! && !preventEditing; if ( bindingOptions.showValueColors ) { @@ -1437,7 +1538,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onColorRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1448,18 +1549,17 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.urlValues ) { let newUrlValue: string = value; - let openButton: HTMLSpanElement = null!; if ( bindingOptions.maximumUrlLength! > 0 && newUrlValue.length > bindingOptions.maximumUrlLength! ) { newUrlValue = `${newUrlValue.substring(0, bindingOptions.maximumUrlLength)}${Char.space}${_configuration.text!.ellipsisText}${Char.space}`; } valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, newUrlValue ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, newUrlValue ); allowEditing = bindingOptions.allowEditing!.urlValues! && !preventEditing; if ( bindingOptions.showUrlOpenButtons ) { - openButton = DomElement.createWithHTML( objectTypeValue, "span", bindingOptions.showValueColors ? "open-button-color" : "open-button", `${_configuration.text!.openText}${Char.space}${_configuration.text!.openSymbolText}` ); + openButton = DomElement.createWithHTML( objectTypeValueTitle, "span", bindingOptions.showValueColors ? "open-button-color" : "open-button", `${_configuration.text!.openText}${Char.space}${_configuration.text!.openSymbolText}` ); openButton.onclick = () => window.open( value ); } @@ -1469,7 +1569,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onUrlRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1480,18 +1580,17 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.emailValues ) { let newEmailValue: string = value; - let openButton: HTMLSpanElement = null!; if ( bindingOptions.maximumEmailLength! > 0 && newEmailValue.length > bindingOptions.maximumEmailLength! ) { newEmailValue = `${newEmailValue.substring(0, bindingOptions.maximumEmailLength)}${Char.space}${_configuration.text!.ellipsisText}${Char.space}`; } valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, newEmailValue ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, newEmailValue ); allowEditing = bindingOptions.allowEditing!.emailValues! && !preventEditing; if ( bindingOptions.showEmailOpenButtons ) { - openButton = DomElement.createWithHTML( objectTypeValue, "span", bindingOptions.showValueColors ? "open-button-color" : "open-button", `${_configuration.text!.openText}${Char.space}${_configuration.text!.openSymbolText}` ); + openButton = DomElement.createWithHTML( objectTypeValueTitle, "span", bindingOptions.showValueColors ? "open-button-color" : "open-button", `${_configuration.text!.openText}${Char.space}${_configuration.text!.openSymbolText}` ); openButton.onclick = () => window.open( `mailto:${value}` ); } @@ -1501,7 +1600,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onEmailRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1531,6 +1630,11 @@ type JsonTreeData = Record; ignored = true; ignoredDataType = true; + } else if ( bindingOptions.parse!.stringsToSymbols && Is.String.symbol( value ) ) { + renderValue( data, container, bindingOptions, name, Symbol( Convert.symbolToString( value ) ), isLastItem, isArrayItem, jsonPath, parentType, preventEditing ); + ignored = true; + ignoredDataType = true; + } else { let newStringValue: string = value; @@ -1549,7 +1653,7 @@ type JsonTreeData = Record; assignClickEvent = false; } - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, newStringValue ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, newStringValue ); if ( !isForEmptyProperties ) { makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1558,7 +1662,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onStringRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } } @@ -1571,7 +1675,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.dateValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, DateTime.getCustomFormattedDateText( _configuration, value, bindingOptions.dateTimeFormat! ) ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, DateTime.getCustomFormattedDateText( _configuration, value, bindingOptions.dateTimeFormat! ) ); allowEditing = bindingOptions.allowEditing!.dateValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1580,7 +1684,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onDateRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1591,7 +1695,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.symbolValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value.toString() ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value.toString() ); allowEditing = bindingOptions.allowEditing!.symbolValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1600,7 +1704,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onSymbolRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1611,7 +1715,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.regexpValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value.source.toString() ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value.source.toString() ); allowEditing = bindingOptions.allowEditing!.regExpValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1620,7 +1724,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onRegExpRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1631,7 +1735,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.imageValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value"; - valueElement = DomElement.create( objectTypeValue, "span", valueClass ); + valueElement = DomElement.create( objectTypeValueTitle, "span", valueClass ); allowEditing = bindingOptions.allowEditing!.imageValues! && !preventEditing; makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing ); @@ -1643,7 +1747,7 @@ type JsonTreeData = Record; Trigger.customEvent( bindingOptions.events!.onImageRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1661,7 +1765,7 @@ type JsonTreeData = Record; ignored = true; } else { - const objectTitle: HTMLElement = DomElement.create( objectTypeValue, "span", bindingOptions.showValueColors ? dataType : Char.empty ); + const objectTitle: HTMLElement = DomElement.create( objectTypeValueTitle, "span", bindingOptions.showValueColors ? dataType : Char.empty ); const objectTypeContents: HTMLElement = DomElement.create( objectTypeValue, "div", "object-type-contents" ); let openingBrace: HTMLSpanElement = null!; let closedBraces: HTMLSpanElement = null!; @@ -1680,11 +1784,13 @@ type JsonTreeData = Record; if ( bindingOptions.showOpeningClosingCurlyBraces ) { openingBrace = DomElement.createWithHTML( objectTitle, "span", "opening-symbol", "{" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedObjectCurlyBraces ) { closedBraces = DomElement.createWithHTML( objectTitle, "span", "closed-symbols", "{ ... }" ) as HTMLSpanElement; } - let coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); - + const coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); const propertiesAdded: boolean = renderObjectValues( arrow, coma, objectTypeContents, bindingOptions, htmlObject, propertyNames, openingBrace, closedBraces, true, isLastItem, jsonPath, dataType, true ); if ( !propertiesAdded && bindingOptions.showOpeningClosingCurlyBraces ) { @@ -1702,7 +1808,7 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.setValues ) { const arrayValues: any[] = Convert.setToArray( value ); - const objectTitle: HTMLElement = DomElement.create( objectTypeValue, "span", bindingOptions.showValueColors ? dataType : Char.empty ); + const objectTitle: HTMLElement = DomElement.create( objectTypeValueTitle, "span", bindingOptions.showValueColors ? dataType : Char.empty ); const arrayTypeContents: HTMLElement = DomElement.create( objectTypeValue, "div", "object-type-contents" ); let openingBracket: HTMLSpanElement = null!; let closedBrackets: HTMLSpanElement = null!; @@ -1719,16 +1825,18 @@ type JsonTreeData = Record; DomElement.createWithHTML( objectTitle, "span", "size", `[${arrayValues.length}]` ); } - if ( bindingOptions.showOpeningClosingCurlyBraces ) { + if ( bindingOptions.showOpeningClosingSquaredBrackets ) { openingBracket = DomElement.createWithHTML( objectTitle, "span", "opening-symbol", "[" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedArraySquaredBrackets ) { closedBrackets = DomElement.createWithHTML( objectTitle, "span", "closed-symbols", "[ ... ]" ) as HTMLSpanElement; } - let coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); - + const coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); const propertiesAdded: boolean = renderArrayValues( arrow, coma, arrayTypeContents, bindingOptions, arrayValues, openingBracket, closedBrackets, true, isLastItem, jsonPath, dataType, true ); - if ( !propertiesAdded && bindingOptions.showOpeningClosingCurlyBraces ) { + if ( !propertiesAdded && bindingOptions.showOpeningClosingSquaredBrackets ) { openingBracket.parentNode!.removeChild( openingBracket ); closedBrackets.parentNode!.removeChild( closedBrackets ); } @@ -1741,7 +1849,7 @@ type JsonTreeData = Record; dataType = DataType.array; if ( !bindingOptions.ignore!.arrayValues ) { - const objectTitle: HTMLElement = DomElement.create( objectTypeValue, "span", bindingOptions.showValueColors ? dataType : Char.empty ); + const objectTitle: HTMLElement = DomElement.create( objectTypeValueTitle, "span", bindingOptions.showValueColors ? dataType : Char.empty ); const arrayTypeContents: HTMLElement = DomElement.create( objectTypeValue, "div", "object-type-contents" ); let openingBracket: HTMLSpanElement = null!; let closedBrackets: HTMLSpanElement = null!; @@ -1758,16 +1866,18 @@ type JsonTreeData = Record; DomElement.createWithHTML( objectTitle, "span", "size", `[${value.length}]` ); } - if ( bindingOptions.showOpeningClosingCurlyBraces ) { + if ( bindingOptions.showOpeningClosingSquaredBrackets ) { openingBracket = DomElement.createWithHTML( objectTitle, "span", "opening-symbol", "[" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedArraySquaredBrackets ) { closedBrackets = DomElement.createWithHTML( objectTitle, "span", "closed-symbols", "[ ... ]" ) as HTMLSpanElement; } - let coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); - + const coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); const propertiesAdded: boolean = renderArrayValues( arrow, coma, arrayTypeContents, bindingOptions, value, openingBracket, closedBrackets, true, isLastItem, jsonPath, dataType, false ); - if ( !propertiesAdded && bindingOptions.showOpeningClosingCurlyBraces ) { + if ( !propertiesAdded && bindingOptions.showOpeningClosingSquaredBrackets ) { openingBracket.parentNode!.removeChild( openingBracket ); closedBrackets.parentNode!.removeChild( closedBrackets ); } @@ -1788,7 +1898,7 @@ type JsonTreeData = Record; ignored = true; } else { - const objectTitle: HTMLElement = DomElement.create( objectTypeValue, "span", bindingOptions.showValueColors ? dataType : Char.empty ); + const objectTitle: HTMLElement = DomElement.create( objectTypeValueTitle, "span", bindingOptions.showValueColors ? dataType : Char.empty ); const objectTypeContents: HTMLElement = DomElement.create( objectTypeValue, "div", "object-type-contents" ); let openingBrace: HTMLSpanElement = null!; let closedBraces: HTMLSpanElement = null!; @@ -1807,11 +1917,13 @@ type JsonTreeData = Record; if ( bindingOptions.showOpeningClosingCurlyBraces ) { openingBrace = DomElement.createWithHTML( objectTitle, "span", "opening-symbol", "{" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedObjectCurlyBraces ) { closedBraces = DomElement.createWithHTML( objectTitle, "span", "closed-symbols", "{ ... }" ) as HTMLSpanElement; } - let coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); - + const coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); const propertiesAdded: boolean = renderObjectValues( arrow, coma, objectTypeContents, bindingOptions, valueObject, propertyNames, openingBrace, closedBraces, true, isLastItem, jsonPath, dataType, true ); if ( !propertiesAdded && bindingOptions.showOpeningClosingCurlyBraces ) { @@ -1835,7 +1947,7 @@ type JsonTreeData = Record; ignored = true; } else { - const objectTitle: HTMLElement = DomElement.create( objectTypeValue, "span", bindingOptions.showValueColors ? dataType : Char.empty ); + const objectTitle: HTMLElement = DomElement.create( objectTypeValueTitle, "span", bindingOptions.showValueColors ? dataType : Char.empty ); const objectTypeContents: HTMLElement = DomElement.create( objectTypeValue, "div", "object-type-contents" ); let openingBrace: HTMLSpanElement = null!; let closedBraces: HTMLSpanElement = null!; @@ -1854,11 +1966,13 @@ type JsonTreeData = Record; if ( bindingOptions.showOpeningClosingCurlyBraces ) { openingBrace = DomElement.createWithHTML( objectTitle, "span", "opening-symbol", "{" ) as HTMLSpanElement; + } + + if ( bindingOptions.showClosedObjectCurlyBraces ) { closedBraces = DomElement.createWithHTML( objectTitle, "span", "closed-symbols", "{ ... }" ) as HTMLSpanElement; } - let coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); - + const coma: HTMLSpanElement = createComma( bindingOptions, objectTitle, isLastItem ); const propertiesAdded: boolean = renderObjectValues( arrow, coma, objectTypeContents, bindingOptions, value, propertyNames, openingBrace, closedBraces, true, isLastItem, jsonPath, dataType, false ); if ( !propertiesAdded && bindingOptions.showOpeningClosingCurlyBraces ) { @@ -1876,13 +1990,13 @@ type JsonTreeData = Record; if ( !bindingOptions.ignore!.unknownValues ) { valueClass = bindingOptions.showValueColors ? `${dataType} value non-value` : "value non-value"; - valueElement = DomElement.createWithHTML( objectTypeValue, "span", valueClass, value.toString() ); + valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value.toString() ); if ( Is.definedFunction( bindingOptions.events!.onUnknownRender ) ) { Trigger.customEvent( bindingOptions.events!.onUnknownRender!, bindingOptions._currentView.element, valueElement ); } - createComma( bindingOptions, objectTypeValue, isLastItem ); + createComma( bindingOptions, objectTypeValueTitle, isLastItem ); } else { ignored = true; @@ -1902,6 +2016,7 @@ type JsonTreeData = Record; addFooterSizeStatus( bindingOptions, value, valueElement ); addFooterLengthStatus( bindingOptions, value, valueElement ); addFooterDataTypeStatus( bindingOptions, dataType, valueElement ); + renderValueContextMenuItems( bindingOptions, valueElement, allowEditing, data, value, name, isArrayItem, openButton ); } if ( Is.defined( typeElement ) ) { @@ -1971,8 +2086,8 @@ type JsonTreeData = Record; function makePropertyNameEditable( bindingOptions: BindingOptions, data: any, originalPropertyName: string, propertyName: HTMLSpanElement, isArrayItem: boolean ) : void { if ( bindingOptions.allowEditing!.propertyNames ) { - propertyName.ondblclick = ( e: MouseEvent ) => { - DomElement.cancelBubble( e ); + propertyName.ondblclick = ( ev: MouseEvent ) => { + DomElement.cancelBubble( ev ); let originalArrayIndex: number = 0; let statusBarMessage: string = null!; @@ -2006,18 +2121,18 @@ type JsonTreeData = Record; } }; - propertyName.onkeydown = ( e: KeyboardEvent ) => { - if ( e.code === KeyCode.escape ) { - e.preventDefault(); + propertyName.onkeydown = ( ev: KeyboardEvent ) => { + if ( ev.code === KeyCode.escape ) { + ev.preventDefault(); propertyName.setAttribute( "contenteditable", "false" ); - } else if ( e.code === KeyCode.enter ) { - e.preventDefault(); + } else if ( ev.code === KeyCode.enter ) { + ev.preventDefault(); const newPropertyName: string = propertyName.innerText; if ( isArrayItem ) { - if ( !isNaN( +newPropertyName ) ) { + if ( Is.definedString( newPropertyName ) && !isNaN( +newPropertyName ) ) { let newArrayIndex: number = +newPropertyName; if ( !bindingOptions.useZeroIndexingForArrays ) { @@ -2030,6 +2145,11 @@ type JsonTreeData = Record; Arr.moveIndex( data, originalArrayIndex, newArrayIndex ); Trigger.customEvent( bindingOptions.events!.onJsonEdit!, bindingOptions._currentView.element ); } + + } else { + data.splice( Arr.getIndexFromBrackets( originalPropertyName ), 1 ); + + statusBarMessage = _configuration.text!.itemDeletedText!; } } else { @@ -2064,103 +2184,113 @@ type JsonTreeData = Record; function makePropertyValueEditable( bindingOptions: BindingOptions, data: any, originalPropertyName: string, originalPropertyValue: any, propertyValue: HTMLSpanElement, isArrayItem: boolean, allowEditing: boolean, openButton: HTMLSpanElement = null! ) : void { if ( allowEditing ) { - propertyValue.ondblclick = ( e: MouseEvent ) => { - let statusBarMessage: string = null!; + propertyValue.ondblclick = ( ev: MouseEvent ) => { + enableValueEditingMode( ev, bindingOptions, data, originalPropertyName, originalPropertyValue, propertyValue, isArrayItem, openButton ); + }; + } + } - DomElement.cancelBubble( e ); + function enableValueEditingMode( ev: MouseEvent, bindingOptions: BindingOptions, data: any, originalPropertyName: string, originalPropertyValue: any, propertyValue: HTMLSpanElement, isArrayItem: boolean, openButton: HTMLSpanElement = null! ) : void { + let statusBarMessage: string = null!; - clearTimeout( bindingOptions._currentView.valueClickTimerId ); + DomElement.cancelBubble( ev ); - bindingOptions._currentView.valueClickTimerId = 0; - bindingOptions._currentView.editMode = true; + clearTimeout( bindingOptions._currentView.valueClickTimerId ); - propertyValue.classList.add( "editable" ); - propertyValue.setAttribute( "contenteditable", "true" ); - - if ( Is.definedDate( originalPropertyValue ) && !bindingOptions.includeTimeZoneInDateTimeEditing ) { - propertyValue.innerText = JSON.stringify( originalPropertyValue ).replace( /['"]+/g, Char.empty ); - } else if ( Is.definedRegExp( originalPropertyValue ) ) { - propertyValue.innerText = originalPropertyValue.source; - } else if ( Is.definedSymbol( originalPropertyValue ) ) { - propertyValue.innerText = Convert.symbolToString( originalPropertyValue ); - } else if ( Is.definedImage( originalPropertyValue ) ) { - propertyValue.innerText = originalPropertyValue.src; - } else { - propertyValue.innerText = originalPropertyValue.toString(); - } - - propertyValue.focus(); + bindingOptions._currentView.valueClickTimerId = 0; + bindingOptions._currentView.editMode = true; - DomElement.selectAllText( propertyValue ); + propertyValue.classList.add( "editable" ); + propertyValue.setAttribute( "contenteditable", "true" ); + + if ( Is.definedDate( originalPropertyValue ) && !bindingOptions.includeTimeZoneInDates ) { + propertyValue.innerText = JSON.stringify( originalPropertyValue ).replace( /['"]+/g, Char.empty ); + } else if ( Is.definedRegExp( originalPropertyValue ) ) { + propertyValue.innerText = originalPropertyValue.source; + } else if ( Is.definedSymbol( originalPropertyValue ) ) { + propertyValue.innerText = Convert.symbolToString( originalPropertyValue ); + } else if ( Is.definedImage( originalPropertyValue ) ) { + propertyValue.innerText = originalPropertyValue.src; + } else { + propertyValue.innerText = originalPropertyValue.toString(); + } + + propertyValue.focus(); - if ( Is.defined( openButton ) ) { - openButton.parentNode!.removeChild( openButton ); - } + DomElement.selectAllText( propertyValue ); - propertyValue.onblur = () => { - renderControlContainer( bindingOptions, false ); + if ( Is.defined( openButton ) ) { + openButton.parentNode!.removeChild( openButton ); + } - if ( Is.definedString( statusBarMessage ) ) { - setFooterStatusText( bindingOptions, statusBarMessage ); - } - }; - - propertyValue.onkeydown = ( e: KeyboardEvent ) => { - if ( e.code === KeyCode.escape ) { - e.preventDefault(); - propertyValue.setAttribute( "contenteditable", "false" ); - - } else if ( e.code === KeyCode.enter ) { - e.preventDefault(); - - const newPropertyValue: string = propertyValue.innerText; - - if ( newPropertyValue.trim() === Char.empty ) { - if ( isArrayItem ) { - data.splice( Arr.getIndexFromBrackets( originalPropertyName ), 1 ); - } else { - delete data[ originalPropertyName ]; - } + propertyValue.onblur = () => { + renderControlContainer( bindingOptions, false ); - statusBarMessage = _configuration.text!.itemDeletedText!; - - } else { - let newDataPropertyValue: any = Convert.stringToDataTypeValue( originalPropertyValue, newPropertyValue ); + if ( Is.definedString( statusBarMessage ) ) { + setFooterStatusText( bindingOptions, statusBarMessage ); + } + }; - if ( newDataPropertyValue !== null ) { - if ( isArrayItem ) { - data[ Arr.getIndexFromBrackets( originalPropertyName ) ] = newDataPropertyValue; - } else { - data[ originalPropertyName ] = newDataPropertyValue; - } + propertyValue.onkeydown = ( ev: KeyboardEvent ) => { + if ( ev.code === KeyCode.escape ) { + ev.preventDefault(); + propertyValue.setAttribute( "contenteditable", "false" ); + + } else if ( ev.code === KeyCode.enter ) { + ev.preventDefault(); - statusBarMessage = _configuration.text!.valueUpdatedText!; + const newPropertyValue: string = propertyValue.innerText; - Trigger.customEvent( bindingOptions.events!.onJsonEdit!, bindingOptions._currentView.element ); - } + if ( newPropertyValue.trim() === Char.empty ) { + if ( isArrayItem ) { + data.splice( Arr.getIndexFromBrackets( originalPropertyName ), 1 ); + } else { + delete data[ originalPropertyName ]; + } + + statusBarMessage = _configuration.text!.itemDeletedText!; + + } else { + let newDataPropertyValue: any = Convert.stringToDataTypeValue( originalPropertyValue, newPropertyValue ); + + if ( newDataPropertyValue !== null ) { + if ( isArrayItem ) { + data[ Arr.getIndexFromBrackets( originalPropertyName ) ] = newDataPropertyValue; + } else { + data[ originalPropertyName ] = newDataPropertyValue; } - propertyValue.setAttribute( "contenteditable", "false" ); + statusBarMessage = _configuration.text!.valueUpdatedText!; + + Trigger.customEvent( bindingOptions.events!.onJsonEdit!, bindingOptions._currentView.element ); } - }; - }; - } + } + + propertyValue.setAttribute( "contenteditable", "false" ); + } + }; } function addValueClickEvent( bindingOptions: BindingOptions, valueElement: HTMLElement, value: any, type: string, allowEditing: boolean ) : void { if ( Is.definedFunction( bindingOptions.events!.onValueClick ) ) { valueElement.onclick = () => { + let clickValue: any = value; + + if ( bindingOptions.convertClickedValuesToString ) { + clickValue = JSON.stringify( Convert.toJsonStringifyClone( value, _configuration, bindingOptions ), bindingOptions.events!.onCopyJsonReplacer, bindingOptions.jsonIndentSpaces ); + } + if ( allowEditing ) { bindingOptions._currentView.valueClickTimerId = setTimeout( () => { if ( !bindingOptions._currentView.editMode ) { - Trigger.customEvent( bindingOptions.events!.onValueClick!, bindingOptions._currentView.element, value, type ); + Trigger.customEvent( bindingOptions.events!.onValueClick!, bindingOptions._currentView.element, clickValue, type ); } }, bindingOptions.editingValueClickDelay ); } else { valueElement.ondblclick = DomElement.cancelBubble; - Trigger.customEvent( bindingOptions.events!.onValueClick!, bindingOptions._currentView.element, value, type ); + Trigger.customEvent( bindingOptions.events!.onValueClick!, bindingOptions._currentView.element, clickValue, type ); } }; @@ -2169,15 +2299,17 @@ type JsonTreeData = Record; } } - function addArrowEvent( bindingOptions: BindingOptions, arrow: HTMLElement, coma: HTMLSpanElement, objectTypeContents: HTMLElement, openingSymbol: HTMLSpanElement, closedBraces: HTMLElement, dataLength: number, dataType: string ) : void { + function addArrowEvent( bindingOptions: BindingOptions, arrow: HTMLElement, coma: HTMLSpanElement, objectTypeContents: HTMLElement, openingSymbol: HTMLSpanElement, closedSymbols: HTMLElement, dataLength: number, dataType: string ) : void { const panelId: number = bindingOptions._currentView.contentPanelsIndex; const dataArrayIndex: number = bindingOptions._currentView.contentPanelsDataIndex; + const columnLayoutProcessingIndex: number = bindingOptions._currentView.currentColumnBuildingIndex; + const columnLayout: ColumnLayout = bindingOptions._currentView.currentContentColumns[ columnLayoutProcessingIndex ]; if ( !bindingOptions._currentView.contentPanelsOpen.hasOwnProperty( dataArrayIndex ) ) { bindingOptions._currentView.contentPanelsOpen[ dataArrayIndex ] = {} as ContentPanels; } - const hideFunc: Function = () : void => { + const hideFunc: Function = ( updateLineNumbers: boolean = true ) : void => { objectTypeContents.style.display = "none"; bindingOptions._currentView.contentPanelsOpen[ dataArrayIndex ][ panelId ] = true; @@ -2189,16 +2321,28 @@ type JsonTreeData = Record; openingSymbol.style.display = "none"; } - if ( Is.defined( closedBraces ) ) { - closedBraces.style.display = "inline-block"; + if ( Is.defined( closedSymbols ) ) { + closedSymbols.style.display = "inline-block"; } if ( Is.defined( coma ) ) { coma.style.display = "inline-block"; } + + if ( updateLineNumbers ) { + renderControlColumnLineNumbers( columnLayoutProcessingIndex, bindingOptions ); + } }; - const showFunc: Function = () : void => { + const showFunc: Function = ( ev: MouseEvent, updateLineNumbers: boolean = true ) : void => { + if ( Is.defined( ev ) ) { + DomElement.cancelBubble( ev ); + + if ( !_key_Control_Pressed ) { + removeSelectedItemsAndComparedProperties( bindingOptions ); + } + } + objectTypeContents.style.display = "block"; bindingOptions._currentView.contentPanelsOpen[ dataArrayIndex ][ panelId ] = false; @@ -2210,20 +2354,32 @@ type JsonTreeData = Record; openingSymbol.style.display = "inline-block"; } - if ( Is.defined( closedBraces ) ) { - closedBraces.style.display = "none"; + if ( Is.defined( closedSymbols ) ) { + closedSymbols.style.display = "none"; } if ( Is.defined( coma ) ) { coma.style.display = "none"; } + + if ( updateLineNumbers ) { + renderControlColumnLineNumbers( columnLayoutProcessingIndex, bindingOptions ); + } }; - const conditionFunc: Function = ( condition: boolean ) : void => { + const conditionFunc: Function = ( ev: MouseEvent, condition: boolean ) : void => { + if ( Is.defined( ev ) ) { + DomElement.cancelBubble( ev ); + + if ( !_key_Control_Pressed ) { + removeSelectedItemsAndComparedProperties( bindingOptions ); + } + } + if ( condition ) { hideFunc(); } else { - showFunc(); + showFunc( null ); } } @@ -2251,11 +2407,16 @@ type JsonTreeData = Record; } if ( Is.defined( arrow ) ) { - arrow.onclick = () => conditionFunc( arrow.className === "down-arrow" ); + arrow.onclick = ( ev: MouseEvent ) => conditionFunc( ev, arrow.className === "down-arrow" ); arrow.ondblclick = DomElement.cancelBubble; } - conditionFunc( isClosed ); + if ( Is.defined( closedSymbols ) ) { + closedSymbols.onclick = ( ev: MouseEvent ) => showFunc( ev ); + closedSymbols.ondblclick = DomElement.cancelBubble; + } + + conditionFunc( null, isClosed, false ); bindingOptions._currentView.contentPanelsIndex++; } @@ -2271,7 +2432,7 @@ type JsonTreeData = Record; } function createClosingSymbol( bindingOptions: BindingOptions, container: HTMLElement, symbol: string, addNoArrow: boolean, isLastItem: boolean ) : void { - let symbolContainer: HTMLElement = DomElement.create( container, "div", "closing-symbol" ); + const symbolContainer: HTMLElement = DomElement.create( container, "div", "closing-symbol" ); if ( ( addNoArrow && bindingOptions.showArrowToggles ) || bindingOptions.showOpenedObjectArrayBorders ) { DomElement.create( symbolContainer, "div", "no-arrow" ); @@ -2283,6 +2444,177 @@ type JsonTreeData = Record; } + /* + * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + * Render: Selected Items / Property Comparisons + * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + + function selectItemAndCompareProperties( bindingOptions: BindingOptions, objectTypeValueTitle: HTMLElement, jsonPath: string, currentColumnIndex: number, data: any ) : void { + objectTypeValueTitle.onclick = ( ev: MouseEvent ) => { + DomElement.cancelBubble( ev ); + + const itemIsSelected: boolean = objectTypeValueTitle.classList.contains( "highlight-selected" ) && _key_Control_Pressed; + const columns: ColumnLayout[] = bindingOptions._currentView.currentContentColumns; + const columnsLength: number = bindingOptions._currentView.currentContentColumns.length; + + let elementsHighlighted: boolean = false; + + if ( !_key_Control_Pressed ) { + bindingOptions._currentView.selectedValues = []; + } + + for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) { + const valueElements: NodeListOf = columns[ columnIndex ].column.querySelectorAll( ".object-type-value-title" ); + const valueElementsLength: number = valueElements.length; + + for ( let valueElementIndex: number = 0; valueElementIndex < valueElementsLength; valueElementIndex++ ) { + const valueElement: HTMLElement = valueElements[ valueElementIndex ] as HTMLElement; + + if ( !_key_Control_Pressed ) { + valueElement.classList.remove( "highlight-selected" ); + valueElement.classList.remove( "highlight-compare" ); + } + + if ( isCompareColumnValuesEnabled( bindingOptions ) && columnIndex !== currentColumnIndex ) { + const valueJsonPath: string = valueElement.getAttribute( Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME )!; + + if ( Is.definedString( valueJsonPath ) && valueJsonPath === jsonPath ) { + if ( !itemIsSelected ) { + valueElement.classList.add( "highlight-compare" ); + } else { + valueElement.classList.remove( "highlight-compare" ); + } + + elementsHighlighted = true; + } + } + } + + if ( elementsHighlighted ) { + renderControlColumnLineNumbers( columnIndex, bindingOptions ); + } + } + + if ( !itemIsSelected ) { + objectTypeValueTitle.classList.add( "highlight-selected" ); + bindingOptions._currentView.selectedValues.push( data ); + + } else { + objectTypeValueTitle.classList.remove( "highlight-selected" ); + bindingOptions._currentView.selectedValues.splice( bindingOptions._currentView.selectedValues.indexOf( data ), 1 ); + } + + renderControlColumnLineNumbers( currentColumnIndex, bindingOptions ); + }; + } + + function removeSelectedItemsAndComparedProperties( bindingOptions: BindingOptions ) : void { + if ( bindingOptions._currentView.selectedValues.length > 0 ) { + const columns: ColumnLayout[] = bindingOptions._currentView.currentContentColumns; + const columnsLength: number = bindingOptions._currentView.currentContentColumns.length; + + bindingOptions._currentView.selectedValues = []; + + for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) { + let classesRemoved: boolean = false; + + const valueElements: NodeListOf = columns[ columnIndex ].column.querySelectorAll( ".object-type-value-title" ); + const valueElementsLength: number = valueElements.length; + + for ( let valueElementIndex: number = 0; valueElementIndex < valueElementsLength; valueElementIndex++ ) { + const valueElement: HTMLElement = valueElements[ valueElementIndex ] as HTMLElement; + + if ( valueElement.classList.contains( "highlight-selected" ) ) { + valueElement.classList.remove( "highlight-selected" ); + classesRemoved = true; + } + + if ( isCompareColumnValuesEnabled( bindingOptions ) && valueElement.classList.contains( "highlight-compare" ) ) { + valueElement.classList.remove( "highlight-compare" ); + classesRemoved = true; + } + } + + if ( classesRemoved ) { + renderControlColumnLineNumbers( columnIndex, bindingOptions ); + } + } + } + } + + function isCompareColumnValuesEnabled( bindingOptions: BindingOptions ) : boolean { + return bindingOptions.paging!.enabled! && bindingOptions.paging!.columnsPerPage! > 1 && bindingOptions.paging!.allowComparisons!; + } + + + /* + * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + * Render: Value Context Menu + * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + + function renderValueContextMenuItems( bindingOptions: BindingOptions, valueElement: HTMLSpanElement, allowEditing: boolean, data: any, value: any, propertyName: string, isArrayItem: boolean, openButton: HTMLSpanElement ) : void { + valueElement.oncontextmenu = ( ev: MouseEvent ) => { + DomElement.cancelBubble( ev ); + + bindingOptions._currentView.contextMenu.innerHTML = Char.empty; + + if ( allowEditing && bindingOptions._currentView.selectedValues.length <= 1 ) { + const editMenuItem: HTMLElement = ContextMenu.addMenuItem( bindingOptions, _configuration.text!.editSymbolButtonText!, _configuration.text!.editButtonText! ); + editMenuItem.onclick = ( ev: MouseEvent ) => onContextMenuItemEdit( ev, bindingOptions, valueElement, data, propertyName, value, isArrayItem, openButton ); + } + + const copyMenuItem: HTMLElement = ContextMenu.addMenuItem( bindingOptions, _configuration.text!.copyButtonSymbolText!, _configuration.text!.copyButtonText! ); + copyMenuItem.onclick = ( ev: MouseEvent ) => onContextMenuItemCopy( ev, bindingOptions, value ); + + if ( allowEditing && bindingOptions._currentView.selectedValues.length <= 1 ) { + const removeMenuItem: HTMLElement = ContextMenu.addMenuItem( bindingOptions, _configuration.text!.removeSymbolButtonText!, _configuration.text!.removeButtonText! ); + removeMenuItem.onclick = ( ev: MouseEvent ) => onContextMenuItemRemove( ev, bindingOptions, data, propertyName, isArrayItem ); + } + + DomElement.showElementAtMousePosition( ev, bindingOptions._currentView.contextMenu, 0 ); + }; + } + + function onContextMenuItemEdit( ev: MouseEvent, bindingOptions: BindingOptions, valueElement: HTMLSpanElement, data: any, propertyName: string, value: any, isArrayItem: boolean, openButton: HTMLSpanElement ) : void { + DomElement.cancelBubble( ev ); + + enableValueEditingMode( ev, bindingOptions, data, propertyName, value, valueElement, isArrayItem, openButton ); + + ContextMenu.hide( bindingOptions ); + } + + function onContextMenuItemCopy( ev: MouseEvent, bindingOptions: BindingOptions, value: any ) : void { + DomElement.cancelBubble( ev ); + + let copyValue: any = value; + + if ( bindingOptions._currentView.selectedValues.length !== 0 ) { + copyValue = bindingOptions._currentView.selectedValues; + } + + onCopy( bindingOptions, copyValue ); + + ContextMenu.hide( bindingOptions ); + } + + function onContextMenuItemRemove( ev: MouseEvent, bindingOptions: BindingOptions, data: any, propertyName: string, isArrayItem: boolean ) : void { + DomElement.cancelBubble( ev ); + + if ( isArrayItem ) { + data.splice( Arr.getIndexFromBrackets( propertyName ), 1 ); + } else { + delete data[ propertyName ]; + } + + ContextMenu.hide( bindingOptions ); + + renderControlContainer( bindingOptions, false ); + setFooterStatusText( bindingOptions, _configuration.text!.itemDeletedText! ); + } + + /* * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * Render: Import / Drag & Drop Files @@ -2305,7 +2637,7 @@ type JsonTreeData = Record; dragAndDropBackground.ondragover = DomElement.cancelBubble; dragAndDropBackground.ondragenter = DomElement.cancelBubble; dragAndDropBackground.ondragleave = () => dragAndDropBackground.style.display = "none"; - dragAndDropBackground.ondrop = ( e: DragEvent ) => onDropFiles( e, bindingOptions ); + dragAndDropBackground.ondrop = ( ev: DragEvent ) => onDropFiles( ev, bindingOptions ); } } @@ -2315,13 +2647,13 @@ type JsonTreeData = Record; } } - function onDropFiles( e: DragEvent, bindingOptions: BindingOptions ) : void { - DomElement.cancelBubble( e ); + function onDropFiles( ev: DragEvent, bindingOptions: BindingOptions ) : void { + DomElement.cancelBubble( ev ); bindingOptions._currentView.dragAndDropBackground.style.display = "none"; - if ( Is.defined( window.FileReader ) && e.dataTransfer!.files.length > 0 ) { - importFromFiles( e.dataTransfer!.files, bindingOptions ); + if ( Is.defined( window.FileReader ) && ev.dataTransfer!.files.length > 0 ) { + importFromFiles( ev.dataTransfer!.files, bindingOptions ); } } @@ -2335,7 +2667,7 @@ type JsonTreeData = Record; filesData.push( data ); if ( filesRead === filesLength ) { - bindingOptions._currentView.dataArrayCurrentIndex = 0; + bindingOptions._currentView.currentDataArrayPageIndex = 0; bindingOptions._currentView.contentPanelsOpen = {} as ContentPanelsForArrayIndex; bindingOptions.data = filesData.length === 1 ? filesData[ 0 ] : filesData; @@ -2361,8 +2693,8 @@ type JsonTreeData = Record; reader.onloadend = () => onFileLoad( renderData ); - reader.onload = ( e: ProgressEvent ) => { - const json: StringToJson = Convert.jsonStringToObject( e.target!.result, _configuration ); + reader.onload = ( ev: ProgressEvent ) => { + const json: StringToJson = Convert.jsonStringToObject( ev.target!.result, _configuration ); if ( json.parsed && Is.definedObject( json.object ) ) { renderData = json.object; @@ -2380,13 +2712,13 @@ type JsonTreeData = Record; */ function onExport( bindingOptions: BindingOptions ) : void { - let contents: string = JSON.stringify( bindingOptions.data, _jsonStringifyReplacer, bindingOptions.jsonIndentSpaces ); + const contents: string = JSON.stringify( Convert.toJsonStringifyClone( bindingOptions.data, _configuration, bindingOptions ), bindingOptions.events!.onCopyJsonReplacer, bindingOptions.jsonIndentSpaces ); if ( Is.definedString( contents ) ) { const tempLink: HTMLElement = DomElement.create( document.body, "a" ); tempLink.style.display = "none"; tempLink.setAttribute( "target", "_blank" ); - tempLink.setAttribute( "href", `data:application/json;charset=utf-8,${encodeURIComponent(contents)}` ); + tempLink.setAttribute( "href", `data:application/json;charset=utf-8,${encodeURIComponent( contents )}` ); tempLink.setAttribute( "download", getExportFilename( bindingOptions ) ); tempLink.click(); @@ -2414,41 +2746,61 @@ type JsonTreeData = Record; function buildDocumentEvents( bindingOptions: BindingOptions, addEvents: boolean = true ) : void { const documentFunc: Function = addEvents ? document.addEventListener : document.removeEventListener; + const windowFunc: Function = addEvents ? window.addEventListener : window.removeEventListener; - documentFunc( "keydown", ( e: KeyboardEvent ) => onWindowKeyDown( e, bindingOptions ) ); + documentFunc( "keydown", ( ev: KeyboardEvent ) => onDocumentKeyDown( ev, bindingOptions ) ); + documentFunc( "keyup", ( ev: KeyboardEvent ) => onDocumentKeyUp( ev ) ); + documentFunc( "contextmenu", () => onWindowContextMenuOrClick( bindingOptions ) ); + windowFunc( "click", () => onWindowContextMenuOrClick( bindingOptions ) ); + windowFunc( "focus", () => _key_Control_Pressed = false ); } - function onWindowKeyDown( e: KeyboardEvent, bindingOptions: BindingOptions ) : void { + function onWindowContextMenuOrClick( bindingOptions: BindingOptions ) : void { + if ( !_key_Control_Pressed ) { + removeSelectedItemsAndComparedProperties( bindingOptions ); + } + } + + function onDocumentKeyDown( ev: KeyboardEvent, bindingOptions: BindingOptions ) : void { + _key_Control_Pressed = isCommandKey( ev ); + if ( bindingOptions.shortcutKeysEnabled && _elements_Data_Count === 1 && _elements_Data.hasOwnProperty( bindingOptions._currentView.element.id ) && !bindingOptions._currentView.editMode ) { - if ( isCommandKey( e ) && e.code === KeyCode.f11 ) { - e.preventDefault(); + if ( isCommandKey( ev ) && ev.code === KeyCode.f11 ) { + ev.preventDefault(); onTitleBarDblClick( bindingOptions ); - } else if ( e.code === KeyCode.left ) { - e.preventDefault(); + } else if ( ev.code === KeyCode.left ) { + ev.preventDefault(); onBackPage( bindingOptions ); - } else if ( e.code === KeyCode.right ) { - e.preventDefault(); + } else if ( ev.code === KeyCode.right ) { + ev.preventDefault(); onNextPage( bindingOptions ); - } else if ( e.code === KeyCode.up ) { - e.preventDefault(); + } else if ( ev.code === KeyCode.up ) { + ev.preventDefault(); onCloseAll( bindingOptions ); - } else if ( e.code === KeyCode.down ) { - e.preventDefault(); + } else if ( ev.code === KeyCode.down ) { + ev.preventDefault(); onOpenAll( bindingOptions ); - } else if ( e.code === KeyCode.escape ) { - e.preventDefault(); - onSideMenuClose( bindingOptions ); + } else if ( ev.code === KeyCode.escape ) { + ev.preventDefault(); + + if ( !onSideMenuClose( bindingOptions ) && !_key_Control_Pressed ) { + removeSelectedItemsAndComparedProperties( bindingOptions ); + } } } } - function isCommandKey( e: KeyboardEvent ) : boolean { - return e.ctrlKey || e.metaKey; + function onDocumentKeyUp( ev: KeyboardEvent ) : void { + _key_Control_Pressed = isCommandKey( ev ); + } + + function isCommandKey( ev: KeyboardEvent ) : boolean { + return ev.ctrlKey || ev.metaKey; } @@ -2473,7 +2825,9 @@ type JsonTreeData = Record; buildDocumentEvents( bindingOptions, false ); ToolTip.assignToEvents( bindingOptions, false ); + ContextMenu.assignToEvents( bindingOptions, false ); ToolTip.remove( bindingOptions ); + ContextMenu.remove( bindingOptions ); Trigger.customEvent( bindingOptions.events!.onDestroy!, bindingOptions._currentView.element ); } @@ -2575,7 +2929,7 @@ type JsonTreeData = Record; if ( Is.definedString( elementId ) && _elements_Data.hasOwnProperty( elementId ) ) { const bindingOptions: BindingOptions = _elements_Data[ elementId ]; - result = Math.ceil( ( bindingOptions._currentView.dataArrayCurrentIndex + 1 ) / bindingOptions.paging!.columnsPerPage! ); + result = Math.ceil( ( bindingOptions._currentView.currentDataArrayPageIndex + 1 ) / bindingOptions.paging!.columnsPerPage! ); } return result; @@ -2605,7 +2959,7 @@ type JsonTreeData = Record; const bindingOptions: BindingOptions = _elements_Data[ elementId ]; - bindingOptions._currentView.dataArrayCurrentIndex = 0; + bindingOptions._currentView.currentDataArrayPageIndex = 0; bindingOptions._currentView.contentPanelsOpen = {} as ContentPanelsForArrayIndex; bindingOptions.data = jsonObject; @@ -2737,7 +3091,7 @@ type JsonTreeData = Record; }, getVersion: function () : string { - return "4.0.0"; + return "4.1.0"; } }; diff --git a/src/sass/_styles.scss b/src/sass/_styles.scss index fe842fc5..69a72786 100644 --- a/src/sass/_styles.scss +++ b/src/sass/_styles.scss @@ -30,7 +30,6 @@ $minimum-width: 768px; padding-bottom: 5px; padding-left: 9px; padding-right: 9px; - margin: 3px; outline: none; transition: var(--json-tree-js-transition); @@ -85,11 +84,11 @@ $minimum-width: 768px; } span.string { - color: var(--json-tree-js-color-string) + color: var(--json-tree-js-color-string); } span.date { - color: var(--json-tree-js-color-date) + color: var(--json-tree-js-color-date); } span.symbol { diff --git a/src/ts/api.ts b/src/ts/api.ts index e164c501..92b51269 100644 --- a/src/ts/api.ts +++ b/src/ts/api.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file api.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/area/context-menu.ts b/src/ts/area/context-menu.ts new file mode 100644 index 00000000..b706b750 --- /dev/null +++ b/src/ts/area/context-menu.ts @@ -0,0 +1,63 @@ +/** + * JsonTree.js + * + * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. + * + * @file context-menu.ts + * @version v4.1.0 + * @author Bunoon + * @license MIT License + * @copyright Bunoon 2024 + */ + + +import { type BindingOptions } from "../type"; +import { DomElement } from "../dom/dom"; +import { Is } from "../data/is"; + + +export namespace ContextMenu { + export function renderControl( bindingOptions: BindingOptions ) : void { + if ( !Is.defined( bindingOptions._currentView.contextMenu ) ) { + bindingOptions._currentView.contextMenu = DomElement.create( document.body, "div", "jsontree-js-context-menu" ); + bindingOptions._currentView.contextMenu.style.display = "none"; + + assignToEvents( bindingOptions ); + } + } + + export function assignToEvents( bindingOptions: BindingOptions, add: boolean = true ) : void { + const addEventListener_Window: Function = add ? window.addEventListener : window.removeEventListener; + const addEventListener_Document: Function = add ? document.addEventListener : document.removeEventListener; + + addEventListener_Window( "contextmenu", () => hide( bindingOptions ) ); + addEventListener_Window( "click", () => hide( bindingOptions ) ); + addEventListener_Document( "scroll", () => hide( bindingOptions ) ); + } + + export function show( ev: MouseEvent, bindingOptions: BindingOptions ) : void { + DomElement.cancelBubble( ev ); + DomElement.showElementAtMousePosition( ev, bindingOptions._currentView.contextMenu, 0 ); + } + + export function hide( bindingOptions: BindingOptions ) : void { + if ( Is.defined( bindingOptions._currentView.contextMenu ) && bindingOptions._currentView.contextMenu.style.display !== "none" ) { + bindingOptions._currentView.contextMenu.style.display = "none"; + } + } + + export function remove( bindingOptions: BindingOptions ) : void { + if ( Is.defined( bindingOptions._currentView.contextMenu ) ) { + bindingOptions._currentView.contextMenu.parentNode!.removeChild( bindingOptions._currentView.contextMenu ); + } + } + + export function addMenuItem( bindingOptions: BindingOptions, symbolText: string, text: string ) : HTMLElement { + const menuItem: HTMLElement = DomElement.create( bindingOptions._currentView.contextMenu, "div", "context-menu-item" ); + + DomElement.createWithHTML( menuItem, "span", "symbol", symbolText ); + DomElement.createWithHTML( menuItem, "span", "text", text ); + + return menuItem; + } +} \ No newline at end of file diff --git a/src/ts/area/tooltip.ts b/src/ts/area/tooltip.ts index 76aa37f5..217cf3a9 100644 --- a/src/ts/area/tooltip.ts +++ b/src/ts/area/tooltip.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file tooltip.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -27,8 +27,8 @@ export namespace ToolTip { } export function assignToEvents( bindingOptions: BindingOptions, add: boolean = true ) : void { - let addEventListener_Window: Function = add ? window.addEventListener : window.removeEventListener; - let addEventListener_Document: Function = add ? document.addEventListener : document.removeEventListener; + const addEventListener_Window: Function = add ? window.addEventListener : window.removeEventListener; + const addEventListener_Document: Function = add ? document.addEventListener : document.removeEventListener; addEventListener_Window( "mousemove", () => hide( bindingOptions ) ); addEventListener_Document( "scroll", () => hide( bindingOptions ) ); @@ -36,12 +36,12 @@ export namespace ToolTip { export function add( element: HTMLElement, bindingOptions: BindingOptions, text: string, tooltipClass: string = "jsontree-js-tooltip" ) : void { if ( element !== null ) { - element.addEventListener( "mousemove", ( e: MouseEvent ) => show( e, bindingOptions, text, tooltipClass ) ); + element.addEventListener( "mousemove", ( ev: MouseEvent ) => show( ev, bindingOptions, text, tooltipClass ) ); } } - export function show( e: MouseEvent, bindingOptions: BindingOptions, text: string, tooltipClass: string ) : void { - DomElement.cancelBubble( e ); + export function show( ev: MouseEvent, bindingOptions: BindingOptions, text: string, tooltipClass: string ) : void { + DomElement.cancelBubble( ev ); hide( bindingOptions ); bindingOptions._currentView.tooltipTimerId = setTimeout( () => { @@ -49,7 +49,7 @@ export namespace ToolTip { bindingOptions._currentView.tooltip.innerHTML = text; bindingOptions._currentView.tooltip.style.display = "block"; - DomElement.showElementAtMousePosition( e, bindingOptions._currentView.tooltip, bindingOptions.tooltip!.offset! ); + DomElement.showElementAtMousePosition( ev, bindingOptions._currentView.tooltip, bindingOptions.tooltip!.offset! ); }, bindingOptions.tooltip!.delay ); } @@ -68,7 +68,7 @@ export namespace ToolTip { export function remove( bindingOptions: BindingOptions ) : void { if ( Is.defined( bindingOptions._currentView.tooltip ) ) { - bindingOptions._currentView.tooltip.parentNode!.removeChild( bindingOptions._currentView.tooltip ) + bindingOptions._currentView.tooltip.parentNode!.removeChild( bindingOptions._currentView.tooltip ); } } } \ No newline at end of file diff --git a/src/ts/area/trigger.ts b/src/ts/area/trigger.ts index cf06b611..5ff640c2 100644 --- a/src/ts/area/trigger.ts +++ b/src/ts/area/trigger.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file trigger.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/constant.ts b/src/ts/constant.ts index 46ad0f51..f3015e9b 100644 --- a/src/ts/constant.ts +++ b/src/ts/constant.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file constant.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/data/arr.ts b/src/ts/data/arr.ts index 550beee4..8f7d7a5e 100644 --- a/src/ts/data/arr.ts +++ b/src/ts/data/arr.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file arr.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -13,6 +13,7 @@ import { type BindingOptions } from "../type"; import { Char } from "./enum"; +import { Is } from "./is"; import { Str } from "./str"; @@ -25,7 +26,7 @@ export namespace Arr { let result: string = index.toString(); if ( bindingOptions.addArrayIndexPadding ) { - let paddingLength = largestValue.toString().length; + let paddingLength: number = largestValue.toString().length; if ( paddingLength < ( bindingOptions.minimumArrayIndexPadding! + 1 ) ) { paddingLength = bindingOptions.minimumArrayIndexPadding! + 1; @@ -54,4 +55,20 @@ export namespace Arr { arrayData.splice( newIndex, 0, arrayData.splice( oldIndex, 1 )[ 0 ] ); }; + + export function removeNullOrUndefinedEntries( data: Array ) : Array { + let result: Array = []; + + const dataLength: number = data.length; + + for ( let dataIndex: number = 0; dataIndex < dataLength; dataIndex++ ) { + const value: any = data[ dataIndex ]; + + if ( Is.defined( value ) ) { + result.push( value ); + } + } + + return result; + } } \ No newline at end of file diff --git a/src/ts/data/convert.ts b/src/ts/data/convert.ts index b1d6ce9e..90c4f95f 100644 --- a/src/ts/data/convert.ts +++ b/src/ts/data/convert.ts @@ -4,44 +4,95 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file convert.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 */ -import { type StringToJson, type Configuration } from "../type"; +import { type StringToJson, type Configuration, type BindingOptions } from "../type"; import { Default } from "./default"; import { Char } from "./enum"; import { Is } from "./is"; export namespace Convert { - export function stringifyJson( _: string, value: any, configuration: Configuration ) : any { - if ( Is.definedBigInt( value ) ) { - value = value.toString(); + export function toJsonStringifyClone( object: any, configuration: Configuration, bindingOptions: BindingOptions ) : any { + let result: any = null!; - } else if ( Is.definedSymbol( value ) ) { - value = symbolToString( value ); + if ( !Is.defined( object ) ) { + result = null; - } else if ( Is.definedFunction( value ) ) { - value = Default.getFunctionName( value, configuration ).name; + } else if ( Is.definedDate( object ) ) { + if ( !bindingOptions.includeTimeZoneInDates ) { + result = JSON.stringify( object ).replace( /['"]+/g, Char.empty ); + } else { + result = object.toString(); + } + + } else if ( Is.definedSymbol( object ) ) { + result = symbolToString( object ); + + } else if ( Is.definedBigInt( object ) ) { + result = object.toString(); + + } else if ( Is.definedFunction( object ) ) { + result = Default.getFunctionName( object, configuration ).name; + + } else if ( Is.definedRegExp( object ) ) { + result = object.source; + + } else if ( Is.definedImage( object ) ) { + result = object.src; + + } else if ( Is.definedHtml( object ) ) { + result = htmlToObject( object, bindingOptions.showCssStylesForHtmlObjects! ); + + } else if ( Is.definedArray( object ) ) { + result = []; + + const arrayLength: number = object.length; + + for ( let arrayIndex: number = 0; arrayIndex < arrayLength; arrayIndex++ ) { + result.push( toJsonStringifyClone( object[ arrayIndex ], configuration, bindingOptions ) ); + } - } else if ( Is.definedMap( value ) ) { - value = mapToObject( value ); + } else if ( Is.definedSet( object ) ) { + result = []; - } else if ( Is.definedSet( value ) ) { - value = setToArray( value ); + const array: Array = setToArray( object ); + const arrayLength: number = array.length; - } else if ( Is.definedRegExp( value ) ) { - value = value.source; + for ( let arrayIndex: number = 0; arrayIndex < arrayLength; arrayIndex++ ) { + result.push( toJsonStringifyClone( array[ arrayIndex ], configuration, bindingOptions ) ); + } + + } else if ( Is.definedMap( object ) ) { + result = {}; + + const obj: any = mapToObject( object ); + + for ( const key in obj ) { + if ( obj.hasOwnProperty( key ) ) { + result[ key ] = toJsonStringifyClone( obj[ key ], configuration, bindingOptions ); + } + } + + } else if ( Is.definedObject( object ) ) { + result = {}; + + for ( const key in object ) { + if ( object.hasOwnProperty( key ) ) { + result[ key ] = toJsonStringifyClone( object[ key ], configuration, bindingOptions ); + } + } - } else if ( Is.definedImage( value ) ) { - value = value.src; + } else { + result = object; } - return value; + return result; } export function stringToDataTypeValue( oldValue: any, newValue: string ) : any { @@ -81,7 +132,7 @@ export namespace Convert { result.src = newValue; } - } catch ( e: any ) { + } catch ( exception: any ) { result = null! } @@ -167,7 +218,7 @@ export namespace Convert { result.object = JSON.parse( objectString ); } - } catch ( e1: any ) { + } catch ( exception1: any ) { try { result.object = eval( `(${objectString})` ); @@ -175,9 +226,9 @@ export namespace Convert { result.object = result.object(); } - } catch ( e2: any ) { + } catch ( exception2: any ) { if ( !configuration.safeMode ) { - console.error( configuration.text!.objectErrorText!.replace( "{{error_1}}", e1.message ).replace( "{{error_2}}", e2.message ) ); + console.error( configuration.text!.objectErrorText!.replace( "{{error_1}}", exception1.message ).replace( "{{error_2}}", exception2.message ) ); result.parsed = false; } diff --git a/src/ts/data/datetime.ts b/src/ts/data/datetime.ts index 845ca814..68b6b08e 100644 --- a/src/ts/data/datetime.ts +++ b/src/ts/data/datetime.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file datetime.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/data/default.ts b/src/ts/data/default.ts index f1db3a0e..9b6d1646 100644 --- a/src/ts/data/default.ts +++ b/src/ts/data/default.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file default.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/data/enum.ts b/src/ts/data/enum.ts index c4c9c8d2..debac44e 100644 --- a/src/ts/data/enum.ts +++ b/src/ts/data/enum.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file enum.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/data/is.ts b/src/ts/data/is.ts index a16d2449..e8fa0096 100644 --- a/src/ts/data/is.ts +++ b/src/ts/data/is.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file is.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -57,6 +57,10 @@ export namespace Is { return result; } + + export function symbol( value: string ) : boolean { + return value.startsWith( "Symbol(" ) && value.endsWith( ")" ); + } } export function defined( value: any ) : boolean { diff --git a/src/ts/data/obj.ts b/src/ts/data/obj.ts index ecf68d50..ab385c52 100644 --- a/src/ts/data/obj.ts +++ b/src/ts/data/obj.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file obj.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -39,4 +39,11 @@ export namespace Obj { return properties; } + + export function createFromValue( value: any ) : any { + const object: any = {}; + object[ crypto.randomUUID() ] = value; + + return object; + } } \ No newline at end of file diff --git a/src/ts/data/size.ts b/src/ts/data/size.ts index f8ed14bd..0d043bbf 100644 --- a/src/ts/data/size.ts +++ b/src/ts/data/size.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file size.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -16,9 +16,9 @@ import { Is } from "./is"; export namespace Size { - export function of( value: any ) : string { + export function of( value: any, addCssStyles: boolean ) : string { let result: string = null!; - const bytes: number = getSize( value ); + const bytes: number = getSize( value, addCssStyles ); if ( bytes > 0 ) { const type: number = Math.floor( Math.log( bytes ) / Math.log( 1024 ) ); @@ -29,49 +29,49 @@ export namespace Size { return result; } - export function length( value: any ) : number { - let length: number = 0; + export function length( value: any, addCssStyles: boolean ) : number { + let result: number = 0; if ( Is.defined( value ) ) { if ( Is.definedDate( value ) ) { - length = value.toString().length; + result = value.toString().length; } else if ( Is.definedImage( value ) ) { - length = value.src.length; + result = value.src.length; } else if ( Is.definedRegExp( value ) ) { - length = value.source.length; + result = value.source.length; } else if ( Is.definedSet( value ) ) { - length = Size.length( Convert.setToArray( value ) ); + result = length( Convert.setToArray( value ), addCssStyles ); } else if ( Is.definedMap( value ) ) { - length = Size.length( Convert.mapToObject( value ) ); + result = length( Convert.mapToObject( value ), addCssStyles ); } else if ( Is.definedHtml( value ) ) { - length = Size.length( Convert.htmlToObject( value ) ); + result = length( Convert.htmlToObject( value, addCssStyles ), addCssStyles ); } else if ( Is.definedArray( value ) ) { - length = value.length; + result = value.length; } else if ( Is.definedObject( value ) ) { for ( const itemKey in value ) { if ( value.hasOwnProperty( itemKey ) ) { - length++; + result++; } } } else { if ( !Is.definedFunction( value ) && !Is.definedSymbol( value ) ) { - length = value.toString().length; + result = value.toString().length; } } } - return length; + return result; } - function getSize( value: any ) : number { + function getSize( value: any, addCssStyles: boolean ) : number { let bytes: number = 0; if ( Is.defined( value ) ) { @@ -85,34 +85,34 @@ export namespace Size { bytes = 4; } else if ( Is.definedBigInt( value ) ) { - bytes = getSize( value.toString() ); + bytes = getSize( value.toString(), addCssStyles ); } else if ( Is.definedRegExp( value ) ) { - bytes = getSize( value.toString() ); + bytes = getSize( value.toString(), addCssStyles ); } else if ( Is.definedDate( value ) ) { - bytes = getSize( value.toString() ); + bytes = getSize( value.toString(), addCssStyles ); } else if ( Is.definedSet( value ) ) { - bytes = getSize( Convert.setToArray( value ) ); + bytes = getSize( Convert.setToArray( value ), addCssStyles ); } else if ( Is.definedMap( value ) ) { - bytes = getSize( Convert.mapToObject( value ) ); + bytes = getSize( Convert.mapToObject( value ), addCssStyles ); } else if ( Is.definedHtml( value ) ) { - bytes = getSize( Convert.htmlToObject( value ) ); + bytes = getSize( Convert.htmlToObject( value, addCssStyles ), addCssStyles ); } else if ( Is.definedArray( value ) ) { const arrayLength: number = value.length; for ( let arrayIndex: number = 0; arrayIndex < arrayLength; arrayIndex++ ) { - bytes += getSize( value[ arrayIndex ] ); + bytes += getSize( value[ arrayIndex ], addCssStyles ); } } else if ( Is.definedObject( value ) ) { for ( const itemKey in value ) { if ( value.hasOwnProperty( itemKey ) ) { - bytes += ( getSize( itemKey ) + getSize( value[ itemKey ] ) ); + bytes += ( getSize( itemKey, addCssStyles ) + getSize( value[ itemKey ], addCssStyles ) ); } } } diff --git a/src/ts/data/str.ts b/src/ts/data/str.ts index e7ff7abc..bd9e8a88 100644 --- a/src/ts/data/str.ts +++ b/src/ts/data/str.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file str.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 diff --git a/src/ts/dom/dom.ts b/src/ts/dom/dom.ts index 46851a1d..368eee32 100644 --- a/src/ts/dom/dom.ts +++ b/src/ts/dom/dom.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file dom.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -36,8 +36,7 @@ export namespace DomElement { export function create( container: HTMLElement, type: string, className: string = Char.empty, beforeNode: HTMLElement = null! ) : HTMLElement { const nodeType: string = type.toLowerCase(); const isText: boolean = nodeType === "text"; - - let result: any = isText ? document.createTextNode( Char.empty ) : document.createElement( nodeType ); + const result: any = isText ? document.createTextNode( Char.empty ) : document.createElement( nodeType ); if ( Is.defined( className ) ) { result.className = className; @@ -64,15 +63,14 @@ export namespace DomElement { export function createWithNoContainer( type: string ) : HTMLElement { const nodeType: string = type.toLowerCase(); const isText: boolean = nodeType === "text"; - - let result: any = isText ? document.createTextNode( Char.empty ) : document.createElement( nodeType ); + const result: any = isText ? document.createTextNode( Char.empty ) : document.createElement( nodeType ); return result; } - export function cancelBubble( e: Event ) : void { - e.preventDefault(); - e.stopPropagation(); + export function cancelBubble( ev: Event ) : void { + ev.preventDefault(); + ev.stopPropagation(); } export function getScrollPosition() : Position { @@ -86,9 +84,9 @@ export namespace DomElement { return result; } - export function showElementAtMousePosition( e: any, element: HTMLElement, offset: number ) : void { - let left: number = e.pageX; - let top: number = e.pageY; + export function showElementAtMousePosition( ev: MouseEvent, element: HTMLElement, offset: number ) : void { + let left: number = ev.pageX; + let top: number = ev.pageY; const scrollPosition: Position = getScrollPosition(); element.style.display = "block"; @@ -108,11 +106,11 @@ export namespace DomElement { } if ( left < scrollPosition.left ) { - left = e.pageX + 1; + left = ev.pageX + 1; } if ( top < scrollPosition.top ) { - top = e.pageY + 1; + top = ev.pageY + 1; } element.style.left = `${left}px`; @@ -148,4 +146,19 @@ export namespace DomElement { return input; } + + export function getOffset( element: HTMLElement ) : Position { + const position: Position = {} as Position; + position.left = 0; + position.top = 0; + + while ( element && !isNaN( element.offsetLeft ) && !isNaN( element.offsetTop ) ) { + position.left += element.offsetLeft - element.scrollLeft; + position.top += element.offsetTop - element.scrollTop; + + element = element.offsetParent as HTMLElement; + } + + return position; + } } \ No newline at end of file diff --git a/src/ts/options/binding.ts b/src/ts/options/binding.ts index 7916743a..644f22c2 100644 --- a/src/ts/options/binding.ts +++ b/src/ts/options/binding.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file binding.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -25,7 +25,8 @@ import { type BindingOptionsAutoClose, type BindingOptionsPaging, type BindingOptionsFooter, - type BindingOptionsControlPanel } from "../type"; + type BindingOptionsControlPanel, + type BindingOptionsLineNumbers } from "../type"; import { Default } from "../data/default"; import { Is } from "../data/is"; @@ -40,7 +41,7 @@ export namespace Binding { bindingOptions._currentView = {} as BindingOptionsCurrentView; bindingOptions._currentView.element = element; - bindingOptions._currentView.dataArrayCurrentIndex = ( bindingOptions.paging!.startPage! - 1 ) * bindingOptions.paging!.columnsPerPage!; + bindingOptions._currentView.currentDataArrayPageIndex = ( bindingOptions.paging!.startPage! - 1 ) * bindingOptions.paging!.columnsPerPage!; bindingOptions._currentView.titleBarButtons = null!; bindingOptions._currentView.valueClickTimerId = 0; bindingOptions._currentView.editMode = false; @@ -57,7 +58,7 @@ export namespace Binding { bindingOptions._currentView.fullScreenOn = false; bindingOptions._currentView.dragAndDropBackground = null!; bindingOptions._currentView.initialized = false; - bindingOptions._currentView.contentColumns = []; + bindingOptions._currentView.currentContentColumns = []; bindingOptions._currentView.footer = null!; bindingOptions._currentView.footerStatusText = null!; bindingOptions._currentView.footerDataTypeText = null!; @@ -68,10 +69,12 @@ export namespace Binding { bindingOptions._currentView.columnDragging = false; bindingOptions._currentView.columnDraggingDataIndex = 0; bindingOptions._currentView.dataTypeCounts = {} as Record; - bindingOptions._currentView.contentControlButtons = []; + bindingOptions._currentView.contextMenu = null!; + bindingOptions._currentView.currentColumnBuildingIndex = 0; + bindingOptions._currentView.selectedValues = []; - if ( bindingOptions.paging!.enabled && Is.definedArray( bindingOptions.data ) && bindingOptions.data.length > 1 && bindingOptions._currentView.dataArrayCurrentIndex > ( bindingOptions.data.length - 1 ) ) { - bindingOptions._currentView.dataArrayCurrentIndex = 0; + if ( bindingOptions.paging!.enabled && Is.definedArray( bindingOptions.data ) && bindingOptions.data.length > 1 && bindingOptions._currentView.currentDataArrayPageIndex > ( bindingOptions.data.length - 1 ) ) { + bindingOptions._currentView.currentDataArrayPageIndex = 0; } for ( const key in allowEditing ) { @@ -85,7 +88,7 @@ export namespace Binding { } export function get( newOptions: any ) : BindingOptions { - let options: BindingOptions = Default.getObject( newOptions, {} as BindingOptions ); + const options: BindingOptions = Default.getObject( newOptions, {} as BindingOptions ); options.showObjectSizes = Default.getBoolean( options.showObjectSizes, true ); options.useZeroIndexingForArrays = Default.getBoolean( options.useZeroIndexingForArrays, true ); options.dateTimeFormat = Default.getString( options.dateTimeFormat, "{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}" ); @@ -105,7 +108,7 @@ export namespace Binding { options.showArrayIndexBrackets = Default.getBoolean( options.showArrayIndexBrackets, true ); options.showOpeningClosingCurlyBraces = Default.getBoolean( options.showOpeningClosingCurlyBraces, false ); options.showOpeningClosingSquaredBrackets = Default.getBoolean( options.showOpeningClosingSquaredBrackets, false ); - options.includeTimeZoneInDateTimeEditing = Default.getBoolean( options.includeTimeZoneInDateTimeEditing, true ); + options.includeTimeZoneInDates = Default.getBoolean( options.includeTimeZoneInDates, true ); options.shortcutKeysEnabled = Default.getBoolean( options.shortcutKeysEnabled, true ); options.openInFullScreenMode = Default.getBoolean( options.openInFullScreenMode, false ); options.valueToolTips = Default.getObject( options.valueToolTips, null! ); @@ -126,34 +129,39 @@ export namespace Binding { options.jsonPathAny = Default.getString( options.jsonPathAny, ".." ); options.jsonPathSeparator = Default.getString( options.jsonPathSeparator, Char.backslash ); options.showChildIndexes = Default.getBoolean( options.showChildIndexes, true ); + options.showClosedArraySquaredBrackets = Default.getBoolean( options.showClosedArraySquaredBrackets, true ); + options.showClosedObjectCurlyBraces = Default.getBoolean( options.showClosedObjectCurlyBraces, true ); + options.convertClickedValuesToString = Default.getBoolean( options.convertClickedValuesToString, false ); - options = getPaging( options ); - options = getTitle( options ); - options = getFooter( options ); - options = getControlPanel( options ); - options = getIgnore( options ); - options = getToolTip( options ); - options = getParse( options ); - options = getAllowEditing( options ); - options = getSideMenu( options ); - options = getAutoClose( options ); - options = getCustomTriggers( options ); + options.paging = getPaging( options ); + options.title = getTitle( options ); + options.footer = getFooter( options ); + options.controlPanel = getControlPanel( options ); + options.lineNumbers = getLineNumbers( options ); + options.ignore = getIgnore( options ); + options.tooltip = getToolTip( options ); + options.parse = getParse( options ); + options.allowEditing = getAllowEditing( options ); + options.sideMenu = getSideMenu( options ); + options.autoClose = getAutoClose( options ); + options.events = getCustomTriggers( options ); return options; } - function getPaging( options: BindingOptions ) : BindingOptions { + function getPaging( options: BindingOptions ) : BindingOptionsPaging { options.paging = Default.getObject( options.paging, {} as BindingOptionsPaging ); options.paging!.enabled = Default.getBoolean( options.paging!.enabled, true ); options.paging!.columnsPerPage = Default.getNumberMaximum( options.paging!.columnsPerPage, 1, 6 ); options.paging!.startPage = Default.getNumberMinimum( options.paging!.startPage, 1, 1 ); options.paging!.synchronizeScrolling = Default.getBoolean( options.paging!.synchronizeScrolling, false ); options.paging!.allowColumnReordering = Default.getBoolean( options.paging!.allowColumnReordering, true ); + options.paging!.allowComparisons = Default.getBoolean( options.paging!.allowComparisons, false ); - return options; + return options.paging!; } - function getTitle( options: BindingOptions ) : BindingOptions { + function getTitle( options: BindingOptions ) : BindingOptionsTitle { options.title = Default.getObject( options.title, {} as BindingOptionsTitle ); options.title!.text = Default.getAnyString( options.title!.text, "JsonTree.js" ); options.title!.showCloseOpenAllButtons = Default.getBoolean( options.title!.showCloseOpenAllButtons, true ); @@ -161,10 +169,10 @@ export namespace Binding { options.title!.enableFullScreenToggling = Default.getBoolean( options.title!.enableFullScreenToggling, true ); options.title!.showFullScreenButton = Default.getBoolean( options.title!.showFullScreenButton, true ); - return options; + return options.title!; } - function getFooter( options: BindingOptions ) : BindingOptions { + function getFooter( options: BindingOptions ) : BindingOptionsFooter { options.footer = Default.getObject( options.footer, {} as BindingOptionsFooter ); options.footer!.enabled = Default.getBoolean( options.footer!.enabled, true ); options.footer!.showDataTypes = Default.getBoolean( options.footer!.showDataTypes, true ); @@ -173,10 +181,10 @@ export namespace Binding { options.footer!.showPageOf = Default.getBoolean( options.footer!.showPageOf, true ); options.footer!.statusResetDelay = Default.getNumber( options.footer!.statusResetDelay, 5000 ); - return options; + return options.footer!; } - function getControlPanel( options: BindingOptions ) : BindingOptions { + function getControlPanel( options: BindingOptions ) : BindingOptionsControlPanel { options.controlPanel = Default.getObject( options.controlPanel, {} as BindingOptionsControlPanel ); options.controlPanel!.enabled = Default.getBoolean( options.controlPanel!.enabled, true ); options.controlPanel!.showCopyButton = Default.getBoolean( options.controlPanel!.showCopyButton, true ); @@ -186,10 +194,19 @@ export namespace Binding { options.controlPanel!.showCloseOpenAllButtons = Default.getBoolean( options.controlPanel!.showCloseOpenAllButtons, true ); options.controlPanel!.showSwitchToPagesButton = Default.getBoolean( options.controlPanel!.showSwitchToPagesButton, true ); - return options; + return options.controlPanel!; + } + + function getLineNumbers( options: BindingOptions ) : BindingOptionsLineNumbers { + options.lineNumbers = Default.getObject( options.lineNumbers, {} as BindingOptionsLineNumbers ); + options.lineNumbers!.enabled = Default.getBoolean( options.lineNumbers!.enabled, true ); + options.lineNumbers!.padNumbers = Default.getBoolean( options.lineNumbers!.padNumbers, false ); + options.lineNumbers!.addDots = Default.getBoolean( options.lineNumbers!.addDots, true ); + + return options.lineNumbers!; } - function getIgnore( options: BindingOptions ) : BindingOptions { + function getIgnore( options: BindingOptions ) : BindingOptionsIgnore { options.ignore = Default.getObject( options.ignore, {} as BindingOptionsIgnore ); options.ignore!.nullValues = Default.getBoolean( options.ignore!.nullValues, false ); options.ignore!.functionValues = Default.getBoolean( options.ignore!.functionValues, false ); @@ -216,27 +233,28 @@ export namespace Binding { options.ignore!.htmlValues = Default.getBoolean( options.ignore!.htmlValues, false ); options.ignore!.lambdaValues = Default.getBoolean( options.ignore!.lambdaValues, false ); - return options; + return options.ignore!; } - function getToolTip( options: BindingOptions ) : BindingOptions { + function getToolTip( options: BindingOptions ) : BindingOptionsTooltip { options.tooltip = Default.getObject( options.tooltip, {} as BindingOptionsTooltip ); options.tooltip!.delay = Default.getNumber( options.tooltip!.delay, 750 ); options.tooltip!.offset = Default.getNumber( options.tooltip!.offset, 0 ); - return options; + return options.tooltip!; } - function getParse( options: BindingOptions ) : BindingOptions { + function getParse( options: BindingOptions ) : BindingOptionsParse { options.parse = Default.getObject( options.parse, {} as BindingOptionsParse ); options.parse!.stringsToDates = Default.getBoolean( options.parse!.stringsToDates, false ); options.parse!.stringsToBooleans = Default.getBoolean( options.parse!.stringsToBooleans, false ); options.parse!.stringsToNumbers = Default.getBoolean( options.parse!.stringsToNumbers, false ); + options.parse!.stringsToSymbols = Default.getBoolean( options.parse!.stringsToSymbols, false ); - return options; + return options.parse!; } - function getAllowEditing( options: BindingOptions ) : BindingOptions { + function getAllowEditing( options: BindingOptions ) : BindingOptionsAllowEditing { let defaultFlag: boolean = Default.getBoolean( options.allowEditing, true ); options.allowEditing = Default.getObject( options.allowEditing, {} as BindingOptionsAllowEditing ); @@ -256,10 +274,19 @@ export namespace Binding { options.allowEditing!.propertyNames = Default.getBoolean( options.allowEditing!.propertyNames, defaultFlag ); options.allowEditing!.bulk = Default.getBoolean( options.allowEditing!.bulk, defaultFlag ); - return options; + const properties: any = options.allowEditing; + + for ( const property in properties ) { + if ( properties.hasOwnProperty( property ) && !properties[ property ] ) { + options.allowEditing!.bulk = false; + break; + } + } + + return options.allowEditing!; } - function getSideMenu( options: BindingOptions ) : BindingOptions { + function getSideMenu( options: BindingOptions ) : BindingOptionsSideMenu { options.sideMenu = Default.getObject( options.sideMenu, {} as BindingOptionsSideMenu ); options.sideMenu!.enabled = Default.getBoolean( options.sideMenu!.enabled, true ); options.sideMenu!.showImportButton = Default.getBoolean( options.sideMenu!.showImportButton, true ); @@ -268,10 +295,10 @@ export namespace Binding { options.sideMenu!.showAvailableDataTypeCounts = Default.getBoolean( options.sideMenu!.showAvailableDataTypeCounts, true ); options.sideMenu!.showOnlyDataTypesAvailable = Default.getBoolean( options.sideMenu!.showOnlyDataTypesAvailable, false ); - return options; + return options.sideMenu!; } - function getAutoClose( options: BindingOptions ) : BindingOptions { + function getAutoClose( options: BindingOptions ) : BindingOptionsAutoClose { options.autoClose = Default.getObject( options.autoClose, {} as BindingOptionsAutoClose ); options.autoClose!.objectSize = Default.getNumber( options.autoClose!.objectSize, 0 ); options.autoClose!.arraySize = Default.getNumber( options.autoClose!.arraySize, 0 ); @@ -279,10 +306,10 @@ export namespace Binding { options.autoClose!.setSize = Default.getNumber( options.autoClose!.setSize, 0 ); options.autoClose!.htmlSize = Default.getNumber( options.autoClose!.htmlSize, 0 ); - return options; + return options.autoClose!; } - function getCustomTriggers( options: BindingOptions ) : BindingOptions { + function getCustomTriggers( options: BindingOptions ) : BindingOptionsEvents { options.events = Default.getObject( options.events, {} as BindingOptionsEvents ); options.events!.onBeforeRender = Default.getFunction( options.events!.onBeforeRender, null! ); options.events!.onRenderComplete = Default.getFunction( options.events!.onRenderComplete, null! ); @@ -316,7 +343,7 @@ export namespace Binding { options.events!.onCopy = Default.getFunction( options.events!.onCopy, null! ); options.events!.onFullScreenChange = Default.getFunction( options.events!.onFullScreenChange, null! ); - return options; + return options.events!; } } } \ No newline at end of file diff --git a/src/ts/options/config.ts b/src/ts/options/config.ts index 7690693f..73338a33 100644 --- a/src/ts/options/config.ts +++ b/src/ts/options/config.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file config.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -19,16 +19,16 @@ import { Is } from "../data/is"; export namespace Config { export namespace Options { export function get( newConfiguration: any = null ) : Configuration { - let configuration: Configuration = Default.getObject( newConfiguration, {} as Configuration ); + const configuration: Configuration = Default.getObject( newConfiguration, {} as Configuration ); configuration.safeMode = Default.getBoolean( configuration.safeMode, true ); configuration.domElementTypes = Default.getStringOrArray( configuration.domElementTypes, [ "*" ] ); - configuration = getText( configuration ); + configuration.text = getText( configuration ); return configuration; } - function getText( configuration: Configuration ) : Configuration { + function getText( configuration: Configuration ) : ConfigurationText { configuration.text = Default.getObject( configuration.text, {} as ConfigurationText ); configuration.text!.objectText = Default.getAnyString( configuration.text!.objectText, "object" ); configuration.text!.arrayText = Default.getAnyString( configuration.text!.arrayText, "array" ); @@ -161,7 +161,7 @@ export namespace Config { ]; } - return configuration; + return configuration.text!; } } } \ No newline at end of file diff --git a/src/ts/type.ts b/src/ts/type.ts index 37c76cfd..bcc9e138 100644 --- a/src/ts/type.ts +++ b/src/ts/type.ts @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data. * * @file type.ts - * @version v4.0.0 + * @version v4.1.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -14,6 +14,13 @@ export type ContentPanels = Record; export type ContentPanelsForArrayIndex = Record; +export type ColumnLayout = { + column: HTMLElement; + lineNumbers: HTMLElement; + lines: HTMLElement; + controlButtons: HTMLElement; +}; + export type FunctionName = { name: string; isLambda: boolean; @@ -136,7 +143,7 @@ export type BindingOptions = { showArrayIndexBrackets?: boolean; showOpeningClosingCurlyBraces?: boolean; showOpeningClosingSquaredBrackets?: boolean; - includeTimeZoneInDateTimeEditing?: boolean; + includeTimeZoneInDates?: boolean; shortcutKeysEnabled?: boolean; openInFullScreenMode?: boolean; valueToolTips?: Record; @@ -157,6 +164,10 @@ export type BindingOptions = { jsonPathAny?: string; jsonPathSeparator?: string; showChildIndexes?: boolean; + showClosedArraySquaredBrackets?: boolean; + showClosedObjectCurlyBraces?: boolean; + convertClickedValuesToString?: boolean; + lineNumbers?: BindingOptionsLineNumbers; controlPanel?: BindingOptionsControlPanel; paging?: BindingOptionsPaging; autoClose?: BindingOptionsAutoClose; @@ -172,7 +183,6 @@ export type BindingOptions = { export type BindingOptionsCurrentView = { element: HTMLElement; - dataArrayCurrentIndex: number; titleBarButtons: HTMLElement; tooltip: HTMLElement; tooltipTimerId: number; @@ -191,7 +201,7 @@ export type BindingOptionsCurrentView = { fullScreenOn: boolean; dragAndDropBackground: HTMLElement; initialized: boolean; - contentColumns: HTMLElement[]; + currentContentColumns: ColumnLayout[]; footer: HTMLElement; footerStatusText: HTMLElement; footerDataTypeText: HTMLElement; @@ -202,7 +212,10 @@ export type BindingOptionsCurrentView = { columnDragging: boolean; columnDraggingDataIndex: number; dataTypeCounts: Record; - contentControlButtons: HTMLElement[]; + contextMenu: HTMLElement; + currentDataArrayPageIndex: number; + currentColumnBuildingIndex: number; + selectedValues: any[]; }; export type BindingOptionsPaging = { @@ -211,12 +224,14 @@ export type BindingOptionsPaging = { startPage?: number; synchronizeScrolling?: boolean; allowColumnReordering?: boolean; -} + allowComparisons?: boolean; +}; export type BindingOptionsParse = { stringsToDates?: boolean; stringsToBooleans?: boolean; stringsToNumbers?: boolean; + stringsToSymbols?: boolean; }; export type BindingOptionsTitle = { @@ -244,7 +259,13 @@ export type BindingOptionsControlPanel = { showEditButton?: boolean; showCloseOpenAllButtons?: boolean; showSwitchToPagesButton?: boolean; -} +}; + +export type BindingOptionsLineNumbers = { + enabled?: boolean; + padNumbers?: boolean; + addDots?: boolean; +}; export type BindingOptionsIgnore = { nullValues?: boolean; @@ -306,11 +327,11 @@ export type BindingOptionsSideMenu = { }; export type BindingOptionsAutoClose = { - objectSize: number; - arraySize: number; - mapSize: number; - setSize: number; - htmlSize: number; + objectSize?: number; + arraySize?: number; + mapSize?: number; + setSize?: number; + htmlSize?: number; }; export type BindingOptionsEvents = { diff --git a/test/css/styles.css b/test/css/styles.css index a5d00ad4..7628bf8c 100755 --- a/test/css/styles.css +++ b/test/css/styles.css @@ -44,7 +44,7 @@ div.contents { padding: 10px; } -button { +button.ctrl-button { margin: 3px !important; } diff --git a/test/js/scripts.js b/test/js/scripts.js index b0bc1a97..9c84dbcb 100644 --- a/test/js/scripts.js +++ b/test/js/scripts.js @@ -8,7 +8,7 @@ var _IMAGE_1 = null; ( () => { document.addEventListener( "DOMContentLoaded", function() { - document.title += " v" + $jsontree.getVersion(); + document.title += ` v${$jsontree.getVersion()}`; document.getElementById( "header" ).innerText += ` - v${$jsontree.getVersion()}`; } ); @@ -72,6 +72,8 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show showArrayIndexBrackets: true, showOpeningClosingCurlyBraces: false, showOpeningClosingSquaredBrackets: false, + showClosedArraySquaredBrackets: true, + showClosedObjectCurlyBraces: true, showCommas: true, showArrowToggles: true, openInFullScreenMode: columnSize > 1, @@ -92,7 +94,8 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show showCssStylesForHtmlObjects: false, jsonIndentSpaces: 8, showChildIndexes: true, - includeTimeZoneInDateTimeEditing: true, + includeTimeZoneInDates: true, + convertClickedValuesToString: false, valueToolTips: allowValueToolTips ? { "value1": "This is a boolean tooltip for Value 1", "value5\\1": "This is a string tooltip for Value 5 > Array Index 1", @@ -104,6 +107,7 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show stringsToDates: true, stringsToBooleans: true, stringsToNumbers: true, + stringsToSymbols: true, }, events: { onValueClick: onValueClickEvent, @@ -176,6 +180,7 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show startPage: 1, synchronizeScrolling: false, allowColumnReordering: true, + allowComparisons: false, }, footer: { enabled: true, @@ -192,6 +197,11 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show showEditButton: true, showCloseOpenAllButtons: true, showSwitchToPagesButton: true, + }, + lineNumbers: { + enabled: true, + padNumbers: false, + addDots: true, } }; } @@ -204,11 +214,11 @@ function getData() { value3: new Date(), value4: 5, value7: null, - value9: 3.1415926535, - value10: 9007199254740991n, - value11: Symbol( "id" ), - value12: undefined, - value13: { + value8: 3.1415926535, + value9: 9007199254740991n, + value10: Symbol( "id" ), + value11: undefined, + value12: { lambda: ( message ) => { console.log( message ); }, @@ -217,15 +227,15 @@ function getData() { console.log( message ); } }, - value14: "rgb(144, 238, 144)", - value15: crypto.randomUUID(), - value16: new RegExp( "ab+c" ), - value17: _MAP_1, - value18: _SET_1, - value19: "https://www.william-troup.com", - value20: "william@troup.uk", - value21: _IMAGE_1, - value22: _HTML_ELEMENT_1, + value13: "rgb(144, 238, 144)", + value14: crypto.randomUUID(), + value15: new RegExp( "ab+c" ), + value16: _MAP_1, + value17: _SET_1, + value18: "https://www.william-troup.com", + value19: "william@troup.uk", + value20: _IMAGE_1, + value21: _HTML_ELEMENT_1, value5: [ true, "This is another string", @@ -282,6 +292,10 @@ function getData() { value2: "9.876", value3: "986917361936291n", }, + symbols: { + value1: "Symbol(id)", + value2: "Symbol(name)", + }, }, booleans: [ true, @@ -292,7 +306,26 @@ function getData() { value1: false, value2: "This is a string for page 3", value3: new Date(), + value4: { + value1: 1, + value2: 1.3, + value3: Symbol( "id1" ) + } + }, + { + value1: true, + value2: "This is a string for page 4", + value3: new Date(), + value4: { + value1: 2, + value2: 1.6, + value3: Symbol( "id2" ) + } }, + true, + false, + null, + undefined ] } @@ -331,7 +364,7 @@ function onValueClickJsonReplacer( _, value ) { } function updateBindingOptions() { - var bindingOptions = $jsontree.getBindingOptions( "json-tree-1" ); + const bindingOptions = $jsontree.getBindingOptions( "json-tree-1" ); bindingOptions.showArrowToggles = false; $jsontree.updateBindingOptions( "json-tree-1", bindingOptions ); diff --git a/test/jsontree.js.bootstrap.html b/test/jsontree.js.bootstrap.html index 0090e546..4ebab722 100755 --- a/test/jsontree.js.bootstrap.html +++ b/test/jsontree.js.bootstrap.html @@ -26,44 +26,44 @@

JsonTree.js - Bootstrap

Manage Instances:

- - + +
- +
- +
- - + +
- - - + + +

Manage Data:

- - + +

Manage Binding Options:

- - + +

Destroy:

- +
- +

Configuration:

- +

Additional Data:

- - + +