0&&m>l.maximum.inspectionLevels)C(r,o,l,"",e.text.maximumInspectionLevelsReached,!0,!1,"",d,g,m),f=!1;else{if(l.reverseArrayValues)for(let e=p;e--;){const t=Arr.getIndex(e,l),n=""===c?t.toString():`${c}\\${t}`;C(r,o,l,Arr.getIndexName(l,t,p),r[e],0===e,!0,n,d,g,m)}else 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,l.classList.add("editable-name"),l.innerHTML=r?Arr.getIndexFromBrackets(o).toString():o,l.setAttribute("contenteditable","true"),l.focus(),DomElement.selectAllText(l),l.onblur=()=>{i(t,!1),Is.definedString(u)&&V(t,u)},l.onkeydown=i=>{if("Escape"===i.code)i.preventDefault(),l.setAttribute("contenteditable","false");else if("Enter"===i.code){i.preventDefault();const a=l.innerText;if(r)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)}l.setAttribute("contenteditable","false")}}})}(l,t,r,B,u),Is.definedString(c)&&x.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME,c),u||(S(l,r,B),D(l,r,B)),function(e,t,n,l,r){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;twindow.open(a)),A(l,t,r,a,y,u,M,H),Trigger.customEvent(l.events.onUrlRender,l._currentView.element,y),P(l,x,s)}else if(Is.definedString(a)&&Is.definedEmail(a))if(v="email",l.ignore.emailValues)h=!0;else{let n=Str.getMaximumLengthDisplay(a,l.maximum.emailLength,e.text.ellipsisText);b=l.showValueColors?`${v} value`:"value",y=DomElement.createWithHTML(x,"span",b,n),M=l.allowEditing.emailValues&&!m,l.showEmailOpenButtons&&(H=DomElement.createWithHTML(x,"span",l.showValueColors?"open-button-color":"open-button",`${e.text.openText} ${e.text.openSymbolText}`),H.onclick=()=>window.open(`mailto:${a}`)),A(l,t,r,a,y,u,M,H),Trigger.customEvent(l.events.onEmailRender,l._currentView.element,y),P(l,x,s)}else if(Is.definedStringAny(a))if(v="string",!l.ignore.stringValues||j){const o=Convert2.stringToParsedValue(a,l);if(Is.defined(o))C(t,n,l,r,o,s,u,c,g,m,f),h=!0,w=!0;else{let n=a;j?(b="no-properties-text",M=!1,N=!1):(Is.definedString(n)||(n=l.emptyStringValue),n=Str.getMaximumLengthDisplay(n,l.maximum.stringLength,e.text.ellipsisText),n=l.showStringQuotes?`"${n}"`:n,b=l.showValueColors?`${v} value`:"value",M=l.allowEditing.stringValues&&!m),y=DomElement.createWithHTML(x,"span",b,n),j||(A(l,t,r,a,y,u,M),Trigger.customEvent(l.events.onStringRender,l._currentView.element,y),P(l,x,s))}}else h=!0;else if(Is.definedDate(a))v="date",l.ignore.dateValues?h=!0:(b=l.showValueColors?`${v} value`:"value",y=DomElement.createWithHTML(x,"span",b,DateTime.getCustomFormattedDateText(e,a,l.dateTimeFormat)),M=l.allowEditing.dateValues&&!m,A(l,t,r,a,y,u,M),Trigger.customEvent(l.events.onDateRender,l._currentView.element,y),P(l,x,s));else if(Is.definedSymbol(a))v="symbol",l.ignore.symbolValues?h=!0:(b=l.showValueColors?`${v} value`:"value",y=DomElement.createWithHTML(x,"span",b,a.toString()),M=l.allowEditing.symbolValues&&!m,A(l,t,r,a,y,u,M),Trigger.customEvent(l.events.onSymbolRender,l._currentView.element,y),P(l,x,s));else if(Is.definedRegExp(a))v="regexp",l.ignore.regexpValues?h=!0:(b=l.showValueColors?`${v} value`:"value",y=DomElement.createWithHTML(x,"span",b,a.source.toString()),M=l.allowEditing.regExpValues&&!m,A(l,t,r,a,y,u,M),Trigger.customEvent(l.events.onRegExpRender,l._currentView.element,y),P(l,x,s));else if(Is.definedImage(a))if(v="image",l.ignore.imageValues)h=!0;else{b=l.showValueColors?`${v} value`:"value",y=DomElement.create(x,"span",b),M=l.allowEditing.imageValues&&!m,A(l,t,r,a,y,u,M);DomElement.create(y,"img").src=a.src,Trigger.customEvent(l.events.onImageRender,l._currentView.element,y),P(l,x,s)}else if(Is.definedHtml(a))if(v="html",l.ignore.htmlValues)h=!0;else{const t=Convert2.htmlToObject(a,l.showCssStylesForHtmlObjects),n=Obj.getPropertyNames(t,l),o=n.length;if(0===o&&l.ignore.emptyObjects)h=!0;else{const r=DomElement.create(x,"span",l.showValueColors?v:""),i=DomElement.create(p,"div","object-type-contents");let a=null,u=null;_(i,l),s&&i.classList.add("last-item"),y=DomElement.createWithHTML(r,"span","main-title",e.text.htmlText),l.showObjectSizes&&(o>0||!l.ignore.emptyObjects)&&DomElement.createWithHTML(r,"span","size",`<${o}>`),l.showOpeningClosingCurlyBraces&&(a=DomElement.createWithHTML(r,"span","opening-symbol","{")),l.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(r,"span","closed-symbols","{ ... }"));!E(T,P(l,r,s),i,l,t,n,a,u,!0,s,c,v,!0,f+1)&&l.showOpeningClosingCurlyBraces&&(a.parentNode.removeChild(a),u.parentNode.removeChild(u))}}else if(Is.definedSet(a))if(v="set",l.ignore.setValues)h=!0;else{const t=Convert2.setToArray(a),n=DomElement.create(x,"span",l.showValueColors?v:""),o=DomElement.create(p,"div","object-type-contents");let r=null,i=null;_(o,l),s&&o.classList.add("last-item"),y=DomElement.createWithHTML(n,"span","main-title",e.text.setText),l.showObjectSizes&&DomElement.createWithHTML(n,"span","size",`[${t.length}]`),l.showOpeningClosingSquaredBrackets&&(r=DomElement.createWithHTML(n,"span","opening-symbol","[")),l.showClosedArraySquaredBrackets&&(i=DomElement.createWithHTML(n,"span","closed-symbols","[ ... ]"));!I(T,P(l,n,s),o,l,t,r,i,!0,s,c,v,!0,f+1)&&l.showOpeningClosingSquaredBrackets&&(r.parentNode.removeChild(r),i.parentNode.removeChild(i))}else if(Is.definedArray(a))if(v="array",l.ignore.arrayValues)h=!0;else{const t=DomElement.create(x,"span",l.showValueColors?v:""),n=DomElement.create(p,"div","object-type-contents");let o=null,r=null;_(n,l),s&&n.classList.add("last-item"),y=DomElement.createWithHTML(t,"span","main-title",e.text.arrayText),l.showObjectSizes&&DomElement.createWithHTML(t,"span","size",`[${a.length}]`),l.showOpeningClosingSquaredBrackets&&(o=DomElement.createWithHTML(t,"span","opening-symbol","[")),l.showClosedArraySquaredBrackets&&(r=DomElement.createWithHTML(t,"span","closed-symbols","[ ... ]"));!I(T,P(l,t,s),n,l,a,o,r,!0,s,c,v,!1,f+1)&&l.showOpeningClosingSquaredBrackets&&(o.parentNode.removeChild(o),r.parentNode.removeChild(r))}else if(Is.definedMap(a))if(v="map",l.ignore.mapValues)h=!0;else{const t=Convert2.mapToObject(a),n=Obj.getPropertyNames(t,l),o=n.length;if(0===o&&l.ignore.emptyObjects)h=!0;else{const r=DomElement.create(x,"span",l.showValueColors?v:""),i=DomElement.create(p,"div","object-type-contents");let a=null,u=null;_(i,l),s&&i.classList.add("last-item"),y=DomElement.createWithHTML(r,"span","main-title",e.text.mapText),l.showObjectSizes&&(o>0||!l.ignore.emptyObjects)&&DomElement.createWithHTML(r,"span","size",`{${o}}`),l.showOpeningClosingCurlyBraces&&(a=DomElement.createWithHTML(r,"span","opening-symbol","{")),l.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(r,"span","closed-symbols","{ ... }"));!E(T,P(l,r,s),i,l,t,n,a,u,!0,s,c,v,!0,f+1)&&l.showOpeningClosingCurlyBraces&&(a.parentNode.removeChild(a),u.parentNode.removeChild(u))}}else if(Is.definedObject(a))if(v="object",l.ignore.objectValues)h=!0;else{const t=Obj.getPropertyNames(a,l),n=t.length;if(0===n&&l.ignore.emptyObjects)h=!0;else{const o=DomElement.create(x,"span",l.showValueColors?v:""),r=DomElement.create(p,"div","object-type-contents");let i=null,u=null;_(r,l),s&&r.classList.add("last-item"),y=DomElement.createWithHTML(o,"span","main-title",e.text.objectText),l.showObjectSizes&&(n>0||!l.ignore.emptyObjects)&&DomElement.createWithHTML(o,"span","size",`{${n}}`),l.showOpeningClosingCurlyBraces&&(i=DomElement.createWithHTML(o,"span","opening-symbol","{")),l.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(o,"span","closed-symbols","{ ... }"));!E(T,P(l,o,s),r,l,a,t,i,u,!0,s,c,v,!1,f+1)&&l.showOpeningClosingCurlyBraces&&(i.parentNode.removeChild(i),u.parentNode.removeChild(u))}}else v="unknown",l.ignore.unknownValues?h=!0:(b=l.showValueColors?`${v} value non-value`:"value non-value",y=DomElement.createWithHTML(x,"span",b,a.toString()),Trigger.customEvent(l.events.onUnknownRender,l._currentView.element,y),P(l,x,s));j||w||function(e,t){e._currentView.dataTypeCounts.hasOwnProperty(t)||(e._currentView.dataTypeCounts[t]=0);e._currentView.dataTypeCounts[t]++}(l,v),h?n.removeChild(p):Is.defined(y)&&(j||(S(l,a,y),D(l,a,y),function(t,n,o){t.footer.enabled&&t.footer.showDataTypes&&(o.addEventListener("mousemove",(()=>{const o=DomElement.createWithHTML(null,"span","status-count",n).outerHTML,l=e.text.dataTypeText.replace("{0}",o);t._currentView.footerDataTypeText.style.display="block",t._currentView.footerDataTypeText.innerHTML=l})),o.addEventListener("mouseleave",(()=>{t._currentView.footerDataTypeText.style.display="none",t._currentView.footerDataTypeText.innerHTML=""})))}(l,v,y),F(l,y,M,t,a,r,u,H)),Is.defined(L)&&("null"!==v&&"undefined"!==v&&"array"!==v&&"object"!==v&&"map"!==v&&"set"!==v?L.innerHTML=`(${v})`:(L.parentNode.removeChild(L),L=null)),N?(!function(e,t,n,o,l){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,l,r,a)})}function M(t,n,o,l,r,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(r)&&!n.includeTimeZoneInDates?a.innerText=JSON.stringify(r).replace(/['"]+/g,""):Is.definedRegExp(r)?a.innerText=r.source:Is.definedSymbol(r)?a.innerText=Convert2.symbolToString(r):Is.definedImage(r)?a.innerText=r.src:a.innerText=r.toString(),a.focus(),DomElement.selectAllText(a),Is.defined(u)&&u.parentNode.removeChild(u),a.onblur=()=>{i(n,!1),Is.definedString(c)&&V(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(l),1):delete o[l],c=e.text.itemDeletedText;else{let t=Convert2.stringToDataTypeValue(r,i);null!==t&&(s?o[Arr.getIndexFromBrackets(l)]=t:o[l]=t,c=e.text.valueUpdatedText,Trigger.customEvent(n.events.onJsonEdit,n._currentView.element))}a.setAttribute("contenteditable","false")}}}function O(t,n,o,l,r){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)),r?t._currentView.valueClickTimerId=setTimeout((()=>{t._currentView.editMode||Trigger.customEvent(t.events.onValueClick,t._currentView.element,i,l)}),t.editingValueClickDelay):(n.ondblclick=DomElement.cancelBubble,Trigger.customEvent(t.events.onValueClick,t._currentView.element,i,l))}:n.classList.add("no-hover")}function L(e,t,n,l,r,i,a,s){const u=e._currentView.contentPanelsIndex,c=e._currentView.contentPanelsDataIndex,g=e._currentView.currentColumnBuildingIndex;e._currentView.contentPanelsOpen.hasOwnProperty(c)||(e._currentView.contentPanelsOpen[c]={});const m=(a,s=!0)=>{Is.defined(a)&&(DomElement.cancelBubble(a),o||N(e)),l.style.display="block",e._currentView.contentPanelsOpen[c][u]=!1,Is.defined(t)&&(t.className=`opened-${e.expandIconType}`),Is.defined(r)&&(r.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,f=!0)=>{Is.defined(a)&&(DomElement.cancelBubble(a),o||N(e)),s?((o=!0)=>{l.style.display="none",e._currentView.contentPanelsOpen[c][u]=!0,Is.defined(t)&&(t.className=`closed-${e.expandIconType}`),Is.defined(r)&&(r.style.display="none"),Is.defined(i)&&(i.style.display="inline-block"),Is.defined(n)&&(n.style.display="inline-block"),o&&d(g,e)})(f):m(null,f)};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=n=>f(n,t.className===`opened-${e.expandIconType}`),t.ondblclick=DomElement.cancelBubble),Is.defined(i)&&(i.onclick=e=>m(e),i.ondblclick=DomElement.cancelBubble),f(null,p,!1),e._currentView.contentPanelsIndex++}function P(e,t,n){let o=null;return e.showCommas&&!n&&(o=DomElement.createWithHTML(t,"span","comma",",")),o}function j(e,t,n,o,l){const r=DomElement.create(t,"div","closing-symbol");(o&&e.showExpandIcons||e.showOpenedObjectArrayBorders)&&DomElement.create(r,"div",`no-${e.expandIconType}`),DomElement.createWithHTML(r,"div","object-type-end",n),P(e,r,l)}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,l,r,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,l,r,i,a){DomElement.cancelBubble(e),M(e,t,o,l,r,n,i,a),ContextMenu.hide(t)}(e,t,n,l,a,r,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,r),o&&t._currentView.selectedValues.length<=1){ContextMenu.addMenuItem(t,e.text.removeSymbolButtonText,e.text.removeButtonText).onclick=n=>function(t,n,o,l,r){DomElement.cancelBubble(t),r?o.splice(Arr.getIndexFromBrackets(l),1):delete o[l];ContextMenu.hide(n),i(n,!1),V(n,e.text.itemDeletedText)}(n,t,l,a,s)}DomElement.showElementAtMousePosition(c,t._currentView.contextMenu,0)}}function H(e,t){e._currentView.columnDragging||(t.style.display="block")}function R(t,n,o=null){let l=t.length,r=0,a={};const s=(t,s)=>{r++,a[s]=t,r===l&&function(t,n,o,l,r){t._currentView.contentPanelsOpen={};const a=Object.keys(n);if(a.sort(),Is.definedNumber(o)){for(let e=0;et.data.length-1?t.data.push(n[a[e]]):t.data.splice(o,0,n[a[e]]);t._currentView.currentDataArrayPageIndex=o-o%t.paging.columnsPerPage}else if(t._currentView.currentDataArrayPageIndex=0,1===l)t.data=n[a[0]];else{t.data=[];for(let e=0;en(l,t.name),o.onload=n=>{const o=Convert2.jsonStringToObject(n.target.result,e);o.parsed&&Is.definedObject(o.object)&&(l=new ImportedFilename,l.filename=t.name,l.object=o.object)},o.readAsText(t)}function $(t,n){const o=JSON.stringify(Convert2.toJsonStringifyClone(n,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces);if(Is.definedString(o)){const n=DomElement.create(document.body,"a");n.style.display="none",n.setAttribute("target","_blank"),n.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(o)}`),n.setAttribute("download",function(t){const n=new Date,o=DateTime.getCustomFormattedDateText(e,n,t.exportFilenameFormat);return o}(t)),n.click(),document.body.removeChild(n),y(t),V(t,e.text.exportedText),Trigger.customEvent(t.events.onExport,t._currentView.element)}}function J(e,l=!0){const r=l?document.addEventListener:document.removeEventListener,i=l?window.addEventListener:window.removeEventListener;r("keydown",(l=>function(e,l){o=U(e),l.shortcutKeysEnabled&&1===n&&t.hasOwnProperty(l._currentView.element.id)&&!l._currentView.editMode&&(U(e)&&"F11"===e.code?(e.preventDefault(),m(l)):"ArrowLeft"===e.code?(e.preventDefault(),x(l)):"ArrowRight"===e.code?(e.preventDefault(),T(l)):"ArrowUp"===e.code?(e.preventDefault(),p(l)):"ArrowDown"===e.code?(e.preventDefault(),f(l)):"Escape"===e.code&&(e.preventDefault(),y(l)||o||N(l)))}(l,e))),r("keyup",(e=>function(e){o=U(e)}(e))),r("contextmenu",(()=>z(e))),i("click",(()=>z(e))),i("focus",(()=>o=!1))}function z(e){o||N(e)}function U(e){return e.ctrlKey||e.metaKey}function q(e){if(e._currentView.element.innerHTML="",e._currentView.element.classList.remove("json-tree-js"),e._currentView.element.classList.remove("full-screen"),Is.definedString(e.class)){const t=e.class.split(" "),n=t.length;for(let o=0;ol())),Is.defined(window.$jsontree)||(window.$jsontree=Z)})();
\ No newline at end of file
+"use strict";var ImportedFilename=class{constructor(){this.filename=null,this.object=null}},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,Str,Str2,Default,DomElement,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 l(e){return o(e)&&"object"==typeof e}function r(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}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+|)(?:Z|(?:\+|\-)(?:\d{2}):?(?:\d{2}))/)},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=l,e.definedBoolean=function(e){return o(e)&&"boolean"==typeof e},e.definedString=function(e){return o(e)&&"string"==typeof e},e.definedStringAny=function(e){return null!=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=r,e.definedDate=function(e){return l(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!r(e)||e.length{function toJsonStringifyClone(e,t,n){let o=null;if(Is.defined(e))if(Is.definedImportedFilename(e))o=e.object;else 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 l=e.length;for(let r=0;r0;)a.children[0].nodeType!==Node.TEXT_NODE&&a.removeChild(a.children[0]),s--;n[r]=[],n[i]=a.innerText;for(let t=0;t0&&o.length>t&&(o=`${o.substring(0,t)} ${n} `),o},(e=>{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,n){const o=e.toString(),l=o.substring(0,o.indexOf(")")+1);let r=l.trim(),i=!1;return"("===l[0]&&(r=`${t.text.functionText}${r}`,i=!0),r=i?Str.getMaximumLengthDisplay(r,n.maximum.lambdaLength,t.text.ellipsisText):Str.getMaximumLengthDisplay(r,n.maximum.functionLength,t.text.ellipsisText),{name:r,isLambda:i}},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,l=Convert2.jsonStringToObject(e,t);l.parsed&&n(l.object)}else n(null)}}})(Default||(Default={})),(e=>{function t(e,t,n="",o=null){const l=t.toLowerCase(),r="text"===l?document.createTextNode(""):document.createElement(l);return Is.defined(n)&&(r.className=n),Is.defined(e)&&(Is.defined(o)?e.insertBefore(r,o):e.appendChild(r)),r}function n(e,n,o,l,r=null){const i=t(e,n,o,r);return i.innerHTML=l,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?l-=t.offsetWidth+n:(l++,l+=n),r+t.offsetHeight>window.innerHeight?r-=t.offsetHeight+n:(r++,r+=n),l{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),Is.definedString(n)&&(n=`${n}`),n}e.getWeekdayNumber=t,e.getDayOrdinal=n,e.getCustomFormattedDateText=function(e,o,l){const r=isNaN(+o)?new Date:o;let i=l;const a=t(r);return i=i.replace("{hh}",Str.padNumber(r.getHours(),2)),i=i.replace("{h}",r.getHours().toString()),i=i.replace("{MM}",Str.padNumber(r.getMinutes(),2)),i=i.replace("{M}",r.getMinutes().toString()),i=i.replace("{ss}",Str.padNumber(r.getSeconds(),2)),i=i.replace("{s}",r.getSeconds().toString()),i=i.replace("{fff}",Str.padNumber(r.getMilliseconds(),3)),i=i.replace("{ff}",Str.padNumber(r.getMilliseconds(),2)),i=i.replace("{f}",r.getMilliseconds().toString()),i=i.replace("{dddd}",e.text.dayNames[a]),i=i.replace("{ddd}",e.text.dayNamesAbbreviated[a]),i=i.replace("{dd}",Str.padNumber(r.getDate())),i=i.replace("{d}",r.getDate().toString()),i=i.replace("{o}",n(e,r.getDate())),i=i.replace("{mmmm}",e.text.monthNames[r.getMonth()]),i=i.replace("{mmm}",e.text.monthNamesAbbreviated[r.getMonth()]),i=i.replace("{mm}",Str.padNumber(r.getMonth()+1)),i=i.replace("{m}",(r.getMonth()+1).toString()),i=i.replace("{yyyy}",r.getFullYear().toString()),i=i.replace("{yyy}",r.getFullYear().toString().substring(1)),i=i.replace("{yy}",r.getFullYear().toString().substring(2)),i=i.replace("{y}",Number.parseInt(r.getFullYear().toString().substring(2)).toString()),i}})(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),l=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.backPageButton=null,o._currentView.nextPageButton=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 l)if(!l[e]){o.allowEditing.bulk=!1;break}return o},n.get=function(e){const t=Default.getObject(e,{});return t.id=Default.getString(t.id,""),t.class=Default.getString(t.class,""),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.showExpandIcons=Default.getBoolean(t.showExpandIcons,!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.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.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.rootName=Default.getString(t.rootName,"root"),t.emptyStringValue=Default.getString(t.emptyStringValue,""),t.expandIconType=Default.getString(t.expandIconType,"arrow"),t.openUrlsInSameWindow=Default.getBoolean(t.openUrlsInSameWindow,!1),t.maximum=function(e){return e.maximum=Default.getObject(e.maximum,{}),e.maximum.decimalPlaces=Default.getNumber(e.maximum.decimalPlaces,2),e.maximum.stringLength=Default.getNumber(e.maximum.stringLength,0),e.maximum.urlLength=Default.getNumber(e.maximum.urlLength,0),e.maximum.emailLength=Default.getNumber(e.maximum.emailLength,0),e.maximum.numberLength=Default.getNumber(e.maximum.numberLength,0),e.maximum.bigIntLength=Default.getNumber(e.maximum.bigIntLength,0),e.maximum.inspectionLevels=Default.getNumber(e.maximum.inspectionLevels,10),e.maximum.propertyNameLength=Default.getNumber(e.maximum.propertyNameLength,0),e.maximum.functionLength=Default.getNumber(e.maximum.functionLength,0),e.maximum.lambdaLength=Default.getNumber(e.maximum.lambdaLength,0),e.maximum}(t),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.showImportButton=Default.getBoolean(e.controlPanel.showImportButton,!0),e.controlPanel.showExportButton=Default.getBoolean(e.controlPanel.showExportButton,!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.stringsToFloats=Default.getBoolean(e.parse.stringsToFloats,!1),e.parse.stringsToBigInts=Default.getBoolean(e.parse.stringsToBigInts,!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.showClearJsonButton=Default.getBoolean(e.sideMenu.showClearJsonButton,!0),e.sideMenu.updateDisplayDelay=Default.getNumber(e.sideMenu.updateDisplayDelay,500),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.onSelectionChange=Default.getFunction(e.events.onSelectionChange,null),e.events.onCustomDataTypeRender=Default.getFunction(e.events.onCustomDataTypeRender,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"),e.text.clearJsonSymbolText=Default.getAnyString(e.text.clearJsonSymbolText,"⏎"),e.text.clearJsonText=Default.getAnyString(e.text.clearJsonText,"Clear JSON"),e.text.maximumInspectionLevelsReached=Default.getAnyString(e.text.maximumInspectionLevelsReached,"Maximum inspection levels have been reached."),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,l=t?document.addEventListener:document.removeEventListener;n("mousemove",(()=>o(e))),l("scroll",(()=>o(e)))}function n(e,t,n,l){DomElement.cancelBubble(e),o(t),t._currentView.tooltipTimerId=setTimeout((()=>{t._currentView.tooltip.className=l,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,l="jsontree-js-tooltip"){null!==e&&e.addEventListener("mousemove",(e=>n(e,t,o,l)))},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 l=e.length;for(let r=0;r0){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,l=t?document.addEventListener:document.removeEventListener;o("contextmenu",(()=>n(e))),o("click",(()=>n(e))),l("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 l(){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 l=Convert2.jsonStringToObject(o,e);l.parsed&&Is.definedObject(l.object)?r(Binding.Options.getForNewInstance(l.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 r(e){if(Trigger.customEvent(e.events.onBeforeRender,e._currentView.element),ToolTip.renderControl(e),ContextMenu.renderControl(e),Is.definedString(e._currentView.element.id)||(Is.definedString(e.id)?e._currentView.element.id=e.id:e._currentView.element.id=crypto.randomUUID(),e._currentView.idSet=!0),e._currentView.element.classList.add("json-tree-js"),e._currentView.element.removeAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME),Is.definedString(e.class)){const t=e.class.split(" "),n=t.length;for(let o=0;o{a(n,o,e)})):a(n,o,l)}function a(t,n,o){const l=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=()=>f(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=()=>p(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=()=>x(t),o.ondblclick=DomElement.cancelBubble,ToolTip.add(o,t,e.text.closeAllButtonText)}if(t.paging.enabled&&Is.definedArray(n)&&n.length>1?(t._currentView.backPageButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","back-page",e.text.backButtonSymbolText),t._currentView.backPageButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.backPageButton,t,e.text.backButtonText),t._currentView.currentDataArrayPageIndex>0?t._currentView.backPageButton.onclick=()=>T(t):t._currentView.backPageButton.disabled=!0,t._currentView.nextPageButton=DomElement.createWithHTML(t._currentView.titleBarButtons,"button","next-page",e.text.nextButtonSymbolText),t._currentView.nextPageButton.ondblclick=DomElement.cancelBubble,ToolTip.add(t._currentView.nextPageButton,t,e.text.nextButtonText),t._currentView.currentDataArrayPageIndex+(t.paging.columnsPerPage-1)b(t):t._currentView.nextPageButton.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 r=DomElement.create(t._currentView.element,"div","contents");if(n&&r.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;oh(e)}(t),function(t){if(t.sideMenu.enabled){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.showClearJsonButton&&Is.definedObject(t.data)){const n=DomElement.createWithHTML(o,"button","clear-json",e.text.clearJsonSymbolText);n.onclick=()=>function(t){t.data=null,i(t),v(t,e.text.jsonUpdatedText)}(t),ToolTip.add(n,t,e.text.clearJsonText)}if(t.sideMenu.showExportButton&&Is.definedObject(t.data)){const n=DomElement.createWithHTML(o,"button","export",e.text.exportButtonSymbolText);n.onclick=()=>J(t,t.data),ToolTip.add(n,t,e.text.exportButtonText)}if(t.sideMenu.showImportButton){const n=DomElement.createWithHTML(o,"button","import",e.text.importButtonSymbolText);n.onclick=()=>y(t),ToolTip.add(n,t,e.text.importButtonText)}const l=DomElement.createWithHTML(o,"button","close",e.text.closeButtonSymbolText);if(l.onclick=()=>h(t),ToolTip.add(l,t,e.text.closeButtonText),Is.definedObject(t.data)){!function(t,n){const o=[],l=DomElement.create(t,"div","settings-panel"),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"),a=DomElement.create(i,"div","settings-panel-control-button settings-panel-fill"),s=DomElement.create(i,"div","settings-panel-control-button");a.onclick=()=>w(n,o,!0),s.onclick=()=>w(n,o,!1),ToolTip.add(a,n,e.text.selectAllText),ToolTip.add(s,n,e.text.selectNoneText);const u=DomElement.create(l,"div","settings-panel-contents"),c=Object.keys(DataType),d=n.ignore;for(const e in n._currentView.dataTypeCounts)-1===c.indexOf(e)&&c.push(e);c.sort(),c.forEach(((e,t)=>{const l=function(e,t,n,o){let l=null;const r=n._currentView.dataTypeCounts[t];if(!n.sideMenu.showOnlyDataTypesAvailable||r>0){let i=Str.capitalizeFirstLetter(t),a="";n.sideMenu.showAvailableDataTypeCounts&&n._currentView.dataTypeCounts.hasOwnProperty(t)&&(a=`(${r})`),l=DomElement.createCheckBox(e,i,t,o,n.showValueColors?t:"",a),l.onchange=()=>{const e=n.ignore;e[`${t}Values`]=!l.checked,n.ignore=e,n._currentView.sideMenuChanged=!0}}return l}(u,e,n,!d[`${e}Values`]);Is.defined(l)&&o.push(l)}))}(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"),D(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),l=DomElement.createWithHTML(null,"span","status-count",n.toFixed()).outerHTML,r=DomElement.createWithHTML(null,"span","status-count",o.toFixed()).outerHTML,i=e.text.pageOfText.replace("{0}",l).replace("{1}",r);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&&W(e.dataTransfer.files,t)}(e,t)}}(t),t._currentView.initialized=!0}function s(t,n,o,l,r,a,s){const m=DomElement.create(n,"div",a>1?"contents-column-multiple":"contents-column"),f=o._currentView.currentColumnBuildingIndex;if(Is.defined(t)){m.onscroll=()=>function(e,t,n){ToolTip.hide(t),ContextMenu.hide(t);const o=e.scrollTop,l=e.scrollLeft,r=t._currentView.currentContentColumns.length;if(t.controlPanel.enabled){const e=t._currentView.currentContentColumns[n];Is.defined(e.controlButtons)&&(e.controlButtons.style.top=`${e.column.scrollTop}px`,e.controlButtons.style.right=`-${e.column.scrollLeft}px`)}for(let n=0;n1&&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,l),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,l));let n=m,a=null,p=null;o.lineNumbers.enabled&&(a=DomElement.create(m,"div","contents-column-line-numbers"),p=DomElement.create(m,"div","contents-column-lines"),n=p);const x={column:m,lineNumbers:a,lines:p,controlButtons:null};o._currentView.currentContentColumns.push(x),o._currentView.currentColumnBuildingIndex=o._currentView.currentContentColumns.length-1,Is.definedArray(t)?E(n,o,t,"array"):Is.definedSet(t)?E(n,o,Convert2.setToArray(t),"set"):Is.definedHtml(t)?B(n,o,Convert2.htmlToObject(t,o.showCssStylesForHtmlObjects),l,"html"):Is.definedMap(t)?B(n,o,Convert2.mapToObject(t),l,"map"):Is.definedObject(t)?B(n,o,t,l,"object"):B(n,o,Obj.createFromValue(t),l,"object"),d(o._currentView.currentColumnBuildingIndex,o),function(t,n,o,l){if(t.controlPanel.enabled){const r=t._currentView.currentColumnBuildingIndex,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 r=DomElement.createWithHTML(a,"button","edit",e.text.editSymbolButtonText);r.onclick=()=>u(null,t,o,n,l),r.ondblclick=DomElement.cancelBubble,ToolTip.add(r,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=()=>g(t,o),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(s&&t.controlPanel.showExportButton){const n=DomElement.createWithHTML(a,"button","export",e.text.exportButtonSymbolText);n.onclick=()=>J(t,o),ToolTip.add(n,t,e.text.exportButtonText)}if(s&&t.allowEditing.bulk&&t.controlPanel.showImportButton){const n=DomElement.createWithHTML(a,"button","import",e.text.importButtonSymbolText);n.onclick=()=>y(t,l+1),ToolTip.add(n,t,e.text.importButtonText)}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.currentDataArrayPageIndex&&t._currentView.currentDataArrayPageIndex>0&&(t._currentView.currentDataArrayPageIndex-=t.paging.columnsPerPage)):t.data=null;i(t),v(t,e.text.arrayJsonItemDeleted)}(t,l),n.ondblclick=DomElement.cancelBubble,ToolTip.add(n,t,e.text.removeButtonText)}if(!s&&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)}if(""!==a.innerHTML){const e=DomElement.getStyleValueByName(n,"padding-left",!0);t._currentView.currentContentColumns[r].controlButtons=a,n.style.minHeight=`${a.offsetHeight}px`,n.style.paddingRight=`${a.offsetWidth+e}px`}else n.removeChild(a)}}(o,m,t,l),Is.defined(r)&&(m.scrollTop=r),o._currentView.titleBarButtons.style.display="block",o.allowEditing.bulk&&(m.ondblclick=e=>{u(e,o,t,m,l)})}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=()=>y(o)}}}function u(t,n,o,l,r){let a=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(Convert2.toJsonStringifyClone(o,e,n),n.events.onCopyJsonReplacer,n.jsonIndentSpaces),l.focus(),DomElement.selectAllText(l),l.onblur=()=>{i(n,!1),Is.definedString(a)&&v(n,a)},l.onkeydown=t=>{if("Escape"===t.code)t.preventDefault(),l.setAttribute("contenteditable","false");else if(q(t)&&"Enter"===t.code){t.preventDefault();const o=l.innerText,i=Convert2.jsonStringToObject(o,e);i.parsed&&(a=e.text.jsonUpdatedText,n.paging.enabled?Is.defined(i.object)?n.data[r]=i.object:(n.data.splice(r,1),a=e.text.arrayJsonItemDeleted,r===n._currentView.currentDataArrayPageIndex&&n._currentView.currentDataArrayPageIndex>0&&(n._currentView.currentDataArrayPageIndex-=n.paging.columnsPerPage)):n.data=i.object),l.setAttribute("contenteditable","false")}else"Enter"===t.code&&(t.preventDefault(),document.execCommand("insertLineBreak"))}}function c(t,n,o){if(n!==o){const l=t.data[o],r=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]=r,t.data[n]=l,t._currentView.contentPanelsOpen[o]=s,t._currentView.contentPanelsOpen[n]=a,t._currentView.currentDataArrayPageIndex+(t.paging.columnsPerPage-1)0){let r=DomElement.getOffset(s).top;1===e&&(o=r),r-=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=r+s.offsetHeight/2-a.offsetHeight/2;a.style.top=`${c}px`,l=Math.max(l,a.offsetWidth)}e++}n.lineNumbers.style.height=`${n.lines.offsetHeight}px`,n.lineNumbers.style.width=`${l}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),v(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),D(t),Trigger.customEvent(t.events.onFullScreenChange,t._currentView.element,t._currentView.element.classList.contains("full-screen")))}function f(t,n){const o=JSON.stringify(Convert2.toJsonStringifyClone(n,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces);navigator.clipboard.writeText(o),v(t,e.text.copiedText),Trigger.customEvent(t.events.onCopyAll,t._currentView.element,o)}function p(e){e.showAllAsClosed=!1,e._currentView.contentPanelsOpen={},i(e),Trigger.customEvent(e.events.onOpenAll,e._currentView.element)}function x(e){e.showAllAsClosed=!0,e._currentView.contentPanelsOpen={},i(e),Trigger.customEvent(e.events.onCloseAll,e._currentView.element)}function T(e){null===e._currentView.backPageButton||e._currentView.backPageButton.disabled||(e._currentView.currentDataArrayPageIndex-=e.paging.columnsPerPage,i(e,!0),Trigger.customEvent(e.events.onBackPage,e._currentView.element))}function b(e){null===e._currentView.nextPageButton||e._currentView.nextPageButton.disabled||(e._currentView.currentDataArrayPageIndex+=e.paging.columnsPerPage,i(e,!0),Trigger.customEvent(e.events.onNextPage,e._currentView.element))}function y(e,t=null){const n=DomElement.createWithNoContainer("input");n.type="file",n.accept=".json",n.multiple=!0,h(e),n.onchange=()=>W(n.files,e,t),n.click()}function h(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),v(t,e.text.ignoreDataTypesUpdated)}),t.sideMenu.updateDisplayDelay),n=!0),n}function w(e,t,n){const o=t.length,l=e.ignore;for(let e=0;e0&&(o.addEventListener("mousemove",(()=>{const n=DomElement.createWithHTML(null,"span","status-count",l.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 l=Size.of(n,t.showCssStylesForHtmlObjects);Is.definedString(l)&&(o.addEventListener("mousemove",(()=>{const n=DomElement.createWithHTML(null,"span","status-count",l.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 v(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 B(t,n,o,l,r){let i=o;Is.definedImportedFilename(o)&&(i=i.object);const a=Obj.getPropertyNames(i,n),s=a.length;if(0!==s||!n.ignore.emptyObjects){let u=null;"object"===r?u=e.text.objectText:"map"===r?u=e.text.mapText:"html"===r&&(u=e.text.htmlText);const c=DomElement.create(t,"div","object-type-title"),d=DomElement.create(t,"div","object-type-contents last-item"),g=n.showExpandIcons?DomElement.create(c,"div",`opened-${n.expandIconType}`):null;let m=null;if(!n.paging.enabled||!Is.definedNumber(l)||Is.definedImportedFilename(o)){let t=n.rootName;Is.definedImportedFilename(o)&&(t=o.filename),n.showPropertyNameQuotes&&(t=`"${t}"`),m=DomElement.createWithHTML(c,"span","root-name",t),DomElement.createWithHTML(c,"span","split",e.text.propertyColonCharacter)}const f=DomElement.createWithHTML(c,"span",n.showValueColors?`${r} main-title`:"main-title",u);let p=null,x=null;if(A(d,n),n.paging.enabled&&Is.definedNumber(l)){let t=n.useZeroIndexingForArrays?l.toString():(l+1).toString();n.showArrayIndexBrackets&&(t=`[${t}]`);const o=Is.defined(m)?m:f;DomElement.createWithHTML(c,"span",n.showValueColors?`${r} data-array-index`:"data-array-index",t,o),DomElement.createWithHTML(c,"span","split",e.text.propertyColonCharacter,o)}n.showObjectSizes&&s>0&&("html"===r?DomElement.createWithHTML(c,"span",n.showValueColors?`${r} size`:"size",`<${s}>`):DomElement.createWithHTML(c,"span",n.showValueColors?`${r} size`:"size",`{${s}}`)),n.showOpeningClosingCurlyBraces&&(p=DomElement.createWithHTML(c,"span","opening-symbol","{")),n.showClosedObjectCurlyBraces&&(x=DomElement.createWithHTML(c,"span","closed-symbols","{ ... }")),I(g,null,d,n,i,a,p,x,!1,!0,"",r,"object"!==r,1),L(n,f,i,r,!1),V(n,i,f),S(n,i,f),H(n,c,!1,i,i,null,!1,null)}}function E(t,n,o,l){let r=o;Is.definedImportedFilename(o)&&(r=r.object);let i=null;"set"===l?i=e.text.setText:"array"===l&&(i=e.text.arrayText);const a=DomElement.create(t,"div","object-type-title"),s=DomElement.create(t,"div","object-type-contents last-item"),u=n.showExpandIcons?DomElement.create(a,"div",`opened-${n.expandIconType}`):null;if(!n.paging.enabled||Is.definedImportedFilename(o)){let t=n.rootName;Is.definedImportedFilename(o)&&(t=o.filename),n.showPropertyNameQuotes&&(t=`"${t}"`),DomElement.createWithHTML(a,"span","root-name",t),DomElement.createWithHTML(a,"span","split",e.text.propertyColonCharacter)}const c=DomElement.createWithHTML(a,"span",n.showValueColors?`${l} main-title`:"main-title",i);let d=null,g=null;A(s,n),n.showObjectSizes&&DomElement.createWithHTML(a,"span",n.showValueColors?`${l} size`:"size",`[${o.length}]`),n.showOpeningClosingSquaredBrackets&&(d=DomElement.createWithHTML(a,"span","opening-symbol","[")),n.showClosedArraySquaredBrackets&&(g=DomElement.createWithHTML(a,"span","closed-symbols","[ ... ]")),C(u,null,s,n,o,d,g,!1,!0,"",l,"array"!==l,1),L(n,c,o,l,!1),V(n,o,c),S(n,o,c),H(n,a,!1,o,o,null,!1,null)}function I(t,n,o,l,r,i,a,s,u,c,d,g,m,f){let p=!0;const x=i.length,T=""!==d?x:0;if(0!==x||l.ignore.emptyObjects)if(l.maximum.inspectionLevels>0&&f>l.maximum.inspectionLevels)_(r,o,l,"",e.text.maximumInspectionLevelsReached,!0,!1,"",g,m,f),p=!1;else{for(let e=0;e0&&m>l.maximum.inspectionLevels)_(r,o,l,"",e.text.maximumInspectionLevelsReached,!0,!1,"",d,g,m),f=!1;else{if(l.reverseArrayValues)for(let e=p;e--;){const t=Arr.getIndex(e,l),n=""===c?t.toString():`${c}\\${t}`;_(r,o,l,Arr.getIndexName(l,t,p),r[e],0===e,!0,n,d,g,m)}else 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,l.classList.add("editable-name"),l.innerHTML=r?Arr.getIndexFromBrackets(o).toString():o,l.setAttribute("contenteditable","true"),l.focus(),DomElement.selectAllText(l),l.onblur=()=>{i(t,!1),Is.definedString(u)&&v(t,u)},l.onkeydown=i=>{if("Escape"===i.code)i.preventDefault(),l.setAttribute("contenteditable","false");else if("Enter"===i.code){i.preventDefault();const a=l.innerText;if(r)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)}l.setAttribute("contenteditable","false")}}})}(l,t,r,B,u),Is.definedString(c)&&x.setAttribute(Constants.JSONTREE_JS_ATTRIBUTE_PATH_NAME,c),u||(V(l,r,B),S(l,r,B)),function(e,t,n,l,r){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;t{l.openUrlsInSameWindow?window.location=a:window.open(a)}),M(l,t,r,a,y,u,E,k),Trigger.customEvent(l.events.onUrlRender,l._currentView.element,y),N(l,x,s)}else if(Is.definedString(a)&&Is.definedEmail(a))if(D="email",l.ignore.emailValues)h=!0;else{let n=Str.getMaximumLengthDisplay(a,l.maximum.emailLength,e.text.ellipsisText);b=l.showValueColors?`${D} value`:"value",y=DomElement.createWithHTML(x,"span",b,n),E=l.allowEditing.emailValues&&!m,l.showEmailOpenButtons&&(k=DomElement.createWithHTML(x,"span",l.showValueColors?"open-button-color":"open-button",`${e.text.openText} ${e.text.openSymbolText}`),k.onclick=()=>window.open(`mailto:${a}`)),M(l,t,r,a,y,u,E,k),Trigger.customEvent(l.events.onEmailRender,l._currentView.element,y),N(l,x,s)}else if(Is.definedStringAny(a))if(D="string",!l.ignore.stringValues||P){const o=Convert2.stringToParsedValue(a,l);if(Is.defined(o))_(t,n,l,r,o,s,u,c,g,m,f),h=!0,w=!0;else{let n=a;P?(b="no-properties-text",E=!1,j=!1):(Is.definedString(n)||(n=l.emptyStringValue),n=Str.getMaximumLengthDisplay(n,l.maximum.stringLength,e.text.ellipsisText),n=l.showStringQuotes?`"${n}"`:n,b=l.showValueColors?`${D} value`:"value",E=l.allowEditing.stringValues&&!m),y=DomElement.createWithHTML(x,"span",b,n),P||(M(l,t,r,a,y,u,E),Trigger.customEvent(l.events.onStringRender,l._currentView.element,y),N(l,x,s))}}else h=!0;else if(Is.definedDate(a))D="date",l.ignore.dateValues?h=!0:(b=l.showValueColors?`${D} value`:"value",y=DomElement.createWithHTML(x,"span",b,DateTime.getCustomFormattedDateText(e,a,l.dateTimeFormat)),E=l.allowEditing.dateValues&&!m,M(l,t,r,a,y,u,E),Trigger.customEvent(l.events.onDateRender,l._currentView.element,y),N(l,x,s));else if(Is.definedSymbol(a))D="symbol",l.ignore.symbolValues?h=!0:(b=l.showValueColors?`${D} value`:"value",y=DomElement.createWithHTML(x,"span",b,Convert2.symbolToSpacedOutString(a)),E=l.allowEditing.symbolValues&&!m,M(l,t,r,a,y,u,E),Trigger.customEvent(l.events.onSymbolRender,l._currentView.element,y),N(l,x,s));else if(Is.definedRegExp(a))D="regexp",l.ignore.regexpValues?h=!0:(b=l.showValueColors?`${D} value`:"value",y=DomElement.createWithHTML(x,"span",b,a.source.toString()),E=l.allowEditing.regExpValues&&!m,M(l,t,r,a,y,u,E),Trigger.customEvent(l.events.onRegExpRender,l._currentView.element,y),N(l,x,s));else if(Is.definedImage(a))if(D="image",l.ignore.imageValues)h=!0;else{b=l.showValueColors?`${D} value`:"value",y=DomElement.create(x,"span",b),E=l.allowEditing.imageValues&&!m,M(l,t,r,a,y,u,E);DomElement.create(y,"img").src=a.src,Trigger.customEvent(l.events.onImageRender,l._currentView.element,y),N(l,x,s)}else if(Is.definedHtml(a))if(D="html",l.ignore.htmlValues)h=!0;else{const t=Convert2.htmlToObject(a,l.showCssStylesForHtmlObjects),n=Obj.getPropertyNames(t,l),o=n.length;if(0===o&&l.ignore.emptyObjects)h=!0;else{const r=DomElement.create(x,"span",l.showValueColors?D:""),i=DomElement.create(p,"div","object-type-contents");let a=null,u=null;A(i,l),s&&i.classList.add("last-item"),y=DomElement.createWithHTML(r,"span","main-title",e.text.htmlText),l.showObjectSizes&&(o>0||!l.ignore.emptyObjects)&&DomElement.createWithHTML(r,"span","size",`<${o}>`),l.showOpeningClosingCurlyBraces&&(a=DomElement.createWithHTML(r,"span","opening-symbol","{")),l.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(r,"span","closed-symbols","{ ... }"));!I(T,N(l,r,s),i,l,t,n,a,u,!0,s,c,D,!0,f+1)&&l.showOpeningClosingCurlyBraces&&(a.parentNode.removeChild(a),u.parentNode.removeChild(u))}}else if(Is.definedSet(a))if(D="set",l.ignore.setValues)h=!0;else{const t=Convert2.setToArray(a),n=DomElement.create(x,"span",l.showValueColors?D:""),o=DomElement.create(p,"div","object-type-contents");let r=null,i=null;A(o,l),s&&o.classList.add("last-item"),y=DomElement.createWithHTML(n,"span","main-title",e.text.setText),l.showObjectSizes&&DomElement.createWithHTML(n,"span","size",`[${t.length}]`),l.showOpeningClosingSquaredBrackets&&(r=DomElement.createWithHTML(n,"span","opening-symbol","[")),l.showClosedArraySquaredBrackets&&(i=DomElement.createWithHTML(n,"span","closed-symbols","[ ... ]"));!C(T,N(l,n,s),o,l,t,r,i,!0,s,c,D,!0,f+1)&&l.showOpeningClosingSquaredBrackets&&(r.parentNode.removeChild(r),i.parentNode.removeChild(i))}else if(Is.definedArray(a))if(D="array",l.ignore.arrayValues)h=!0;else{const t=DomElement.create(x,"span",l.showValueColors?D:""),n=DomElement.create(p,"div","object-type-contents");let o=null,r=null;A(n,l),s&&n.classList.add("last-item"),y=DomElement.createWithHTML(t,"span","main-title",e.text.arrayText),l.showObjectSizes&&DomElement.createWithHTML(t,"span","size",`[${a.length}]`),l.showOpeningClosingSquaredBrackets&&(o=DomElement.createWithHTML(t,"span","opening-symbol","[")),l.showClosedArraySquaredBrackets&&(r=DomElement.createWithHTML(t,"span","closed-symbols","[ ... ]"));!C(T,N(l,t,s),n,l,a,o,r,!0,s,c,D,!1,f+1)&&l.showOpeningClosingSquaredBrackets&&(o.parentNode.removeChild(o),r.parentNode.removeChild(r))}else if(Is.definedMap(a))if(D="map",l.ignore.mapValues)h=!0;else{const t=Convert2.mapToObject(a),n=Obj.getPropertyNames(t,l),o=n.length;if(0===o&&l.ignore.emptyObjects)h=!0;else{const r=DomElement.create(x,"span",l.showValueColors?D:""),i=DomElement.create(p,"div","object-type-contents");let a=null,u=null;A(i,l),s&&i.classList.add("last-item"),y=DomElement.createWithHTML(r,"span","main-title",e.text.mapText),l.showObjectSizes&&(o>0||!l.ignore.emptyObjects)&&DomElement.createWithHTML(r,"span","size",`{${o}}`),l.showOpeningClosingCurlyBraces&&(a=DomElement.createWithHTML(r,"span","opening-symbol","{")),l.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(r,"span","closed-symbols","{ ... }"));!I(T,N(l,r,s),i,l,t,n,a,u,!0,s,c,D,!0,f+1)&&l.showOpeningClosingCurlyBraces&&(a.parentNode.removeChild(a),u.parentNode.removeChild(u))}}else if(Is.definedObject(a))if(D="object",l.ignore.objectValues)h=!0;else{const t=Obj.getPropertyNames(a,l),n=t.length;if(0===n&&l.ignore.emptyObjects)h=!0;else{const o=DomElement.create(x,"span",l.showValueColors?D:""),r=DomElement.create(p,"div","object-type-contents");let i=null,u=null;A(r,l),s&&r.classList.add("last-item"),y=DomElement.createWithHTML(o,"span","main-title",e.text.objectText),l.showObjectSizes&&(n>0||!l.ignore.emptyObjects)&&DomElement.createWithHTML(o,"span","size",`{${n}}`),l.showOpeningClosingCurlyBraces&&(i=DomElement.createWithHTML(o,"span","opening-symbol","{")),l.showClosedObjectCurlyBraces&&(u=DomElement.createWithHTML(o,"span","closed-symbols","{ ... }"));!I(T,N(l,o,s),r,l,a,t,i,u,!0,s,c,D,!1,f+1)&&l.showOpeningClosingCurlyBraces&&(i.parentNode.removeChild(i),u.parentNode.removeChild(u))}}else D="unknown",l.ignore.unknownValues?h=!0:(b=l.showValueColors?`${D} value non-value`:"value non-value",y=DomElement.createWithHTML(x,"span",b,a.toString()),Trigger.customEvent(l.events.onUnknownRender,l._currentView.element,y),N(l,x,s));P||w||function(e,t){e._currentView.dataTypeCounts.hasOwnProperty(t)||(e._currentView.dataTypeCounts[t]=0);e._currentView.dataTypeCounts[t]++}(l,D),h?n.removeChild(p):Is.defined(y)&&(P||(V(l,a,y),S(l,a,y),function(t,n,o){t.footer.enabled&&t.footer.showDataTypes&&(o.addEventListener("mousemove",(()=>{const o=DomElement.createWithHTML(null,"span","status-count",n).outerHTML,l=e.text.dataTypeText.replace("{0}",o);t._currentView.footerDataTypeText.style.display="block",t._currentView.footerDataTypeText.innerHTML=l})),o.addEventListener("mouseleave",(()=>{t._currentView.footerDataTypeText.style.display="none",t._currentView.footerDataTypeText.innerHTML=""})))}(l,D,y),H(l,y,E,t,a,r,u,k)),Is.defined(O)&&("null"!==D&&"undefined"!==D&&"array"!==D&&"object"!==D&&"map"!==D&&"set"!==D?O.innerHTML=`(${D})`:(O.parentNode.removeChild(O),O=null)),j?(!function(e,t,n,o,l){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{O(i,e,t,n,o,l,r,a)})}function O(t,n,o,l,r,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(r)&&!n.includeTimeZoneInDates?a.innerText=JSON.stringify(r).replace(/['"]+/g,""):Is.definedRegExp(r)?a.innerText=r.source:Is.definedSymbol(r)?a.innerText=Convert2.symbolToString(r):Is.definedImage(r)?a.innerText=r.src:a.innerText=r.toString(),a.focus(),DomElement.selectAllText(a),Is.defined(u)&&u.parentNode.removeChild(u),a.onblur=()=>{i(n,!1),Is.definedString(c)&&v(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(l),1):delete o[l],c=e.text.itemDeletedText;else{let t=Convert2.stringToDataTypeValue(r,i);null!==t&&(s?o[Arr.getIndexFromBrackets(l)]=t:o[l]=t,c=e.text.valueUpdatedText,Trigger.customEvent(n.events.onJsonEdit,n._currentView.element))}a.setAttribute("contenteditable","false")}}}function L(t,n,o,l,r){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)),r?t._currentView.valueClickTimerId=setTimeout((()=>{t._currentView.editMode||Trigger.customEvent(t.events.onValueClick,t._currentView.element,i,l)}),t.editingValueClickDelay):(n.ondblclick=DomElement.cancelBubble,Trigger.customEvent(t.events.onValueClick,t._currentView.element,i,l))}:n.classList.add("no-hover")}function P(e,t,n,l,r,i,a,s){const u=e._currentView.contentPanelsIndex,c=e._currentView.contentPanelsDataIndex,g=e._currentView.currentColumnBuildingIndex;e._currentView.contentPanelsOpen.hasOwnProperty(c)||(e._currentView.contentPanelsOpen[c]={});const m=(a,s=!0)=>{Is.defined(a)&&(DomElement.cancelBubble(a),o||k(e)),l.style.display="block",e._currentView.contentPanelsOpen[c][u]=!1,Is.defined(t)&&(t.className=`opened-${e.expandIconType}`),Is.defined(r)&&(r.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,f=!0)=>{Is.defined(a)&&(DomElement.cancelBubble(a),o||k(e)),s?((o=!0)=>{l.style.display="none",e._currentView.contentPanelsOpen[c][u]=!0,Is.defined(t)&&(t.className=`closed-${e.expandIconType}`),Is.defined(r)&&(r.style.display="none"),Is.defined(i)&&(i.style.display="inline-block"),Is.defined(n)&&(n.style.display="inline-block"),o&&d(g,e)})(f):m(null,f)};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=n=>f(n,t.className===`opened-${e.expandIconType}`),t.ondblclick=DomElement.cancelBubble),Is.defined(i)&&(i.onclick=e=>m(e),i.ondblclick=DomElement.cancelBubble),f(null,p,!1),e._currentView.contentPanelsIndex++}function N(e,t,n){let o=null;return e.showCommas&&!n&&(o=DomElement.createWithHTML(t,"span","comma",",")),o}function j(e,t,n,o,l){const r=DomElement.create(t,"div","closing-symbol");(o&&e.showExpandIcons||e.showOpenedObjectArrayBorders)&&DomElement.create(r,"div",`no-${e.expandIconType}`),DomElement.createWithHTML(r,"div","object-type-end",n),N(e,r,l)}function k(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 H(t,n,o,l,r,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,l,r,i,a){DomElement.cancelBubble(e),O(e,t,o,l,r,n,i,a),ContextMenu.hide(t)}(e,t,n,l,a,r,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,r),o&&t._currentView.selectedValues.length<=1){ContextMenu.addMenuItem(t,e.text.removeSymbolButtonText,e.text.removeButtonText).onclick=n=>function(t,n,o,l,r){DomElement.cancelBubble(t),r?o.splice(Arr.getIndexFromBrackets(l),1):delete o[l];ContextMenu.hide(n),i(n,!1),v(n,e.text.itemDeletedText)}(n,t,l,a,s)}DomElement.showElementAtMousePosition(c,t._currentView.contextMenu,0)}}function R(e,t){e._currentView.columnDragging||(t.style.display="block")}function W(t,n,o=null){let l=t.length,r=0,a={};const s=(t,s)=>{r++,a[s]=t,r===l&&function(t,n,o,l,r){t._currentView.contentPanelsOpen={};const a=Object.keys(n);if(a.sort(),Is.definedNumber(o)){for(let e=0;et.data.length-1?t.data.push(n[a[e]]):t.data.splice(o,0,n[a[e]]);t._currentView.currentDataArrayPageIndex=o-o%t.paging.columnsPerPage}else if(t._currentView.currentDataArrayPageIndex=0,1===l)t.data=n[a[0]];else{t.data=[];for(let e=0;en(l,t.name),o.onload=n=>{const o=Convert2.jsonStringToObject(n.target.result,e);o.parsed&&Is.definedObject(o.object)&&(l=new ImportedFilename,l.filename=t.name,l.object=o.object)},o.readAsText(t)}function J(t,n){const o=JSON.stringify(Convert2.toJsonStringifyClone(n,e,t),t.events.onCopyJsonReplacer,t.jsonIndentSpaces);if(Is.definedString(o)){const n=DomElement.create(document.body,"a");n.style.display="none",n.setAttribute("target","_blank"),n.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(o)}`),n.setAttribute("download",function(t){const n=new Date,o=DateTime.getCustomFormattedDateText(e,n,t.exportFilenameFormat);return o}(t)),n.click(),document.body.removeChild(n),h(t),v(t,e.text.exportedText),Trigger.customEvent(t.events.onExport,t._currentView.element)}}function z(e,l=!0){const r=l?document.addEventListener:document.removeEventListener,i=l?window.addEventListener:window.removeEventListener;r("keydown",(l=>function(e,l){o=q(e),l.shortcutKeysEnabled&&1===n&&t.hasOwnProperty(l._currentView.element.id)&&!l._currentView.editMode&&(q(e)&&"KeyC"===e.code?(e.preventDefault(),f(l,l.data)):q(e)&&"F11"===e.code?(e.preventDefault(),m(l)):"ArrowLeft"===e.code?(e.preventDefault(),T(l)):"ArrowRight"===e.code?(e.preventDefault(),b(l)):"ArrowUp"===e.code?(e.preventDefault(),x(l)):"ArrowDown"===e.code?(e.preventDefault(),p(l)):"Escape"===e.code&&(e.preventDefault(),h(l)||o||k(l)))}(l,e))),r("keyup",(e=>function(e){o=q(e)}(e))),r("contextmenu",(()=>U(e))),i("click",(()=>U(e))),i("focus",(()=>o=!1))}function U(e){o||k(e)}function q(e){return e.ctrlKey||e.metaKey}function Z(e){if(e._currentView.element.innerHTML="",e._currentView.element.classList.remove("json-tree-js"),e._currentView.element.classList.remove("full-screen"),Is.definedString(e.class)){const t=e.class.split(" "),n=t.length;for(let o=0;ol())),Is.defined(window.$jsontree)||(window.$jsontree=Q)})();
\ No newline at end of file
diff --git a/dist/themes/dark/jsontree.js.default.theme.css b/dist/themes/dark/jsontree.js.default.theme.css
index 576a1f4a..1891d9aa 100644
--- a/dist/themes/dark/jsontree.js.default.theme.css
+++ b/dist/themes/dark/jsontree.js.default.theme.css
@@ -20,11 +20,14 @@
--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;
/* ToolTip */
--json-tree-js-tooltip-background-color: var(--json-tree-js-container-background-color);
diff --git a/dist/themes/light/jsontree.js.light.theme.css b/dist/themes/light/jsontree.js.light.theme.css
index 6c4526ba..c76e4497 100644
--- a/dist/themes/light/jsontree.js.light.theme.css
+++ b/dist/themes/light/jsontree.js.light.theme.css
@@ -20,11 +20,14 @@
--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: #89CFF0;
+ --json-tree-js-color-email: #FA8072;
--json-tree-js-color-link: #0047AB;
+ --json-tree-js-color-html: #FF00FF;
/* Colors - Editable Fields */
--json-tree-js-editable-text-color: var(--json-tree-js-color-snow-white);
diff --git a/dist/translations/jsontree.translations.af.js b/dist/translations/jsontree.translations.af.js
index 9af796ac..a40ac367 100644
--- a/dist/translations/jsontree.translations.af.js
+++ b/dist/translations/jsontree.translations.af.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Afrikaans | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 217e161a..798d495b 100644
--- a/dist/translations/jsontree.translations.ar.js
+++ b/dist/translations/jsontree.translations.ar.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Arabic | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 4632aa00..52a7a2b6 100644
--- a/dist/translations/jsontree.translations.be.js
+++ b/dist/translations/jsontree.translations.be.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Belarusian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 231cc756..2ababda2 100644
--- a/dist/translations/jsontree.translations.bg.js
+++ b/dist/translations/jsontree.translations.bg.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Bulgarian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 0ebf2ced..2a4142b9 100644
--- a/dist/translations/jsontree.translations.bn.js
+++ b/dist/translations/jsontree.translations.bn.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Bengali | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 2072223d..4ae49572 100644
--- a/dist/translations/jsontree.translations.da.js
+++ b/dist/translations/jsontree.translations.da.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Danish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 af4597d6..7375ce08 100644
--- a/dist/translations/jsontree.translations.de.js
+++ b/dist/translations/jsontree.translations.de.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - German | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 e97a742c..15e06e54 100644
--- a/dist/translations/jsontree.translations.el.js
+++ b/dist/translations/jsontree.translations.el.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Greek | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 41f82263..ca39bdc4 100644
--- a/dist/translations/jsontree.translations.en.js
+++ b/dist/translations/jsontree.translations.en.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - English | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 4f91798c..1540f0e8 100644
--- a/dist/translations/jsontree.translations.eo.js
+++ b/dist/translations/jsontree.translations.eo.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Esperanto | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 78783636..e0dce1f6 100644
--- a/dist/translations/jsontree.translations.es.js
+++ b/dist/translations/jsontree.translations.es.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Spanish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 da7c7c87..75eae006 100644
--- a/dist/translations/jsontree.translations.et.js
+++ b/dist/translations/jsontree.translations.et.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Estonian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 fd4165ff..e51547c9 100644
--- a/dist/translations/jsontree.translations.fa.js
+++ b/dist/translations/jsontree.translations.fa.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Farsi | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 0c231b5e..ed3843fc 100644
--- a/dist/translations/jsontree.translations.fi.js
+++ b/dist/translations/jsontree.translations.fi.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Finnish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 cc9b4c94..47cb7cd3 100644
--- a/dist/translations/jsontree.translations.fr.js
+++ b/dist/translations/jsontree.translations.fr.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - French | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 56f17060..7c43345f 100644
--- a/dist/translations/jsontree.translations.fy.js
+++ b/dist/translations/jsontree.translations.fy.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Frisian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 2f0422a7..dbd20a2d 100644
--- a/dist/translations/jsontree.translations.ga.js
+++ b/dist/translations/jsontree.translations.ga.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Irish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 0184653b..a4aacfb3 100644
--- a/dist/translations/jsontree.translations.gl.js
+++ b/dist/translations/jsontree.translations.gl.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Galician | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 3ff0898c..f9bae0b9 100644
--- a/dist/translations/jsontree.translations.he.js
+++ b/dist/translations/jsontree.translations.he.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Hebrew | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 a2bfcef2..578cfd7f 100644
--- a/dist/translations/jsontree.translations.hi.js
+++ b/dist/translations/jsontree.translations.hi.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Hindi | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 a3538023..217b3e09 100644
--- a/dist/translations/jsontree.translations.hu.js
+++ b/dist/translations/jsontree.translations.hu.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Hungarian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 90b2bc04..b82fd12e 100644
--- a/dist/translations/jsontree.translations.hy.js
+++ b/dist/translations/jsontree.translations.hy.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Armenian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 9bffcee3..b40d1d3f 100644
--- a/dist/translations/jsontree.translations.id.js
+++ b/dist/translations/jsontree.translations.id.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Indonesian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 2a7f5c1e..0272d801 100644
--- a/dist/translations/jsontree.translations.is.js
+++ b/dist/translations/jsontree.translations.is.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Icelandic | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 b763ce97..d529ed34 100644
--- a/dist/translations/jsontree.translations.it.js
+++ b/dist/translations/jsontree.translations.it.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Italian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 980cc59f..0b470ed7 100644
--- a/dist/translations/jsontree.translations.ja.js
+++ b/dist/translations/jsontree.translations.ja.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Japanese | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 16d9724d..2cbc9c64 100644
--- a/dist/translations/jsontree.translations.ka.js
+++ b/dist/translations/jsontree.translations.ka.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Georgian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 3e31b31e..2964d215 100644
--- a/dist/translations/jsontree.translations.ko.js
+++ b/dist/translations/jsontree.translations.ko.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Korean | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 422aec82..60444f62 100644
--- a/dist/translations/jsontree.translations.lb.js
+++ b/dist/translations/jsontree.translations.lb.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Luxembourgish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 feccbf4c..4b0151c9 100644
--- a/dist/translations/jsontree.translations.lt.js
+++ b/dist/translations/jsontree.translations.lt.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Lithuanian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 b416a9cb..0f6ca1ff 100644
--- a/dist/translations/jsontree.translations.lv.js
+++ b/dist/translations/jsontree.translations.lv.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Latvian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 e7a9215b..d071dfb4 100644
--- a/dist/translations/jsontree.translations.ms.js
+++ b/dist/translations/jsontree.translations.ms.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Malay | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 3d918472..8e204a09 100644
--- a/dist/translations/jsontree.translations.ne.js
+++ b/dist/translations/jsontree.translations.ne.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Nepali | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 c65b8a2b..a40a6fc2 100644
--- a/dist/translations/jsontree.translations.nl.js
+++ b/dist/translations/jsontree.translations.nl.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Dutch | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 2c5e0df9..37812ee0 100644
--- a/dist/translations/jsontree.translations.no.js
+++ b/dist/translations/jsontree.translations.no.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Norwegian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 2a66df9a..fc71936d 100644
--- a/dist/translations/jsontree.translations.pl.js
+++ b/dist/translations/jsontree.translations.pl.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Portuguese | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 83817f28..dd0ac4ce 100644
--- a/dist/translations/jsontree.translations.pt.js
+++ b/dist/translations/jsontree.translations.pt.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Polish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 acd1494d..4304458a 100644
--- a/dist/translations/jsontree.translations.ro.js
+++ b/dist/translations/jsontree.translations.ro.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Romanian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 51564f2c..8649d285 100644
--- a/dist/translations/jsontree.translations.si.js
+++ b/dist/translations/jsontree.translations.si.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Sinhalese | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 2078f5a7..3cb8bd57 100644
--- a/dist/translations/jsontree.translations.sk.js
+++ b/dist/translations/jsontree.translations.sk.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Slovak | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 a48a97ca..9248c651 100644
--- a/dist/translations/jsontree.translations.sl.js
+++ b/dist/translations/jsontree.translations.sl.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Slovenian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 f07e75fe..8d6acc70 100644
--- a/dist/translations/jsontree.translations.sv.js
+++ b/dist/translations/jsontree.translations.sv.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Swedish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 c1470cd7..65f37df4 100644
--- a/dist/translations/jsontree.translations.ta.js
+++ b/dist/translations/jsontree.translations.ta.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Tamil | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 35794927..b7adaca4 100644
--- a/dist/translations/jsontree.translations.te.js
+++ b/dist/translations/jsontree.translations.te.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Telugu | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 6315185f..76e4e337 100644
--- a/dist/translations/jsontree.translations.th.js
+++ b/dist/translations/jsontree.translations.th.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Thai | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 1920194c..adf632db 100644
--- a/dist/translations/jsontree.translations.tl.js
+++ b/dist/translations/jsontree.translations.tl.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Tagalog | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 33cfce10..12f8812c 100644
--- a/dist/translations/jsontree.translations.tr.js
+++ b/dist/translations/jsontree.translations.tr.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Turkish | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 bdc5a5cc..fe404aec 100644
--- a/dist/translations/jsontree.translations.uk.js
+++ b/dist/translations/jsontree.translations.uk.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Ukrainian | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 e457b32c..caffbaa4 100644
--- a/dist/translations/jsontree.translations.vi.js
+++ b/dist/translations/jsontree.translations.vi.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Vietnamese | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 d4962d87..f0addd49 100644
--- a/dist/translations/jsontree.translations.zh-tw.js
+++ b/dist/translations/jsontree.translations.zh-tw.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Taiwanese | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.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 d28c6a7a..bc29f372 100644
--- a/dist/translations/jsontree.translations.zh.js
+++ b/dist/translations/jsontree.translations.zh.js
@@ -1,4 +1,4 @@
-/*! JsonTree.js v4.4.0 - Chinese (simplified) | (c) Bunoon 2024 | MIT License */
+/*! JsonTree.js v4.5.0 - Chinese (simplified) | (c) Bunoon 2024 | MIT License */
$jsontree.setConfiguration( {
"text": {
"dayNames": [
diff --git a/jsontree.js.nuspec b/jsontree.js.nuspec
index e7ebb7c6..f06c038e 100755
--- a/jsontree.js.nuspec
+++ b/jsontree.js.nuspec
@@ -2,7 +2,7 @@
jJsonTree.js
- 4.4.0
+ 4.5.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 7991fcd5..b3b63a91 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "jjsontree.js",
- "version": "4.4.0",
+ "version": "4.5.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "jjsontree.js",
- "version": "4.4.0",
+ "version": "4.5.0",
"license": "MIT",
"devDependencies": {
"@swc/core": "^1.7.26",
diff --git a/package.json b/package.json
index 9bfb21ee..3a69fb89 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.4.0",
+ "version": "4.5.0",
"homepage": "https://www.william-troup.com/jsontree-js/",
"author": {
"name": "Bunoon"
diff --git a/src/jsontree.js.scss b/src/jsontree.js.scss
index edc86924..832dbe33 100755
--- a/src/jsontree.js.scss
+++ b/src/jsontree.js.scss
@@ -1,5 +1,5 @@
/*
- * JsonTree.js Library v4.4.0
+ * JsonTree.js Library v4.5.0
*
* Copyright 2024 Bunoon
* Released under the MIT License
@@ -278,6 +278,7 @@ div.json-tree-js {
display: inline-block;
width: 10px;
height: 10px;
+ margin-left: 1px;
margin-right: calc( var(--json-tree-js-spacing) );
border-radius: var(--json-tree-js-border-radius-toggle);
}
@@ -316,6 +317,7 @@ div.json-tree-js {
display: inline-block;
width: 10px;
height: 10px;
+ margin-left: 1px;
margin-right: calc( var(--json-tree-js-spacing) );
border-radius: 50%;
}
@@ -354,6 +356,7 @@ div.json-tree-js {
display: inline-block;
width: 10px;
height: 10px;
+ margin-left: 1px;
margin-right: calc( var(--json-tree-js-spacing) );
}
@@ -933,7 +936,7 @@ 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;
+ margin-left: 5.5px;
}
div.object-border-no-toggles {
diff --git a/src/jsontree.ts b/src/jsontree.ts
index 54e4d242..d985ed6a 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
@@ -208,6 +208,7 @@ type JsonTreeData = Record;
function renderControlContentsPanel( data: any, contents: HTMLElement, bindingOptions: BindingOptions, dataIndex: number, scrollTop: number, totalColumns: number, enableColumnOrder: boolean ) : void {
const contentsColumn: HTMLElement = DomElement.create( contents, "div", totalColumns > 1 ? "contents-column-multiple" : "contents-column" );
+ const contentsColumnIndex: number = bindingOptions._currentView.currentColumnBuildingIndex;
if ( !Is.defined( data ) ) {
const noJson: HTMLElement = DomElement.create( contentsColumn, "div", "no-json" );
@@ -219,7 +220,7 @@ type JsonTreeData = Record;
}
} else {
- contentsColumn.onscroll = () => onContentsColumnScroll( contentsColumn, bindingOptions, bindingOptions._currentView.currentColumnBuildingIndex );
+ contentsColumn.onscroll = () => onContentsColumnScroll( contentsColumn, bindingOptions, contentsColumnIndex );
if ( bindingOptions.paging!.enabled && Is.definedNumber( dataIndex ) ) {
contentsColumn.setAttribute( Constants.JSONTREE_JS_ATTRIBUTE_ARRAY_INDEX_NAME, dataIndex.toString() );
@@ -379,32 +380,26 @@ type JsonTreeData = Record;
const columnsLength: number = bindingOptions._currentView.currentContentColumns.length;
if ( bindingOptions.controlPanel!.enabled ) {
- const controlButtons: HTMLElement = bindingOptions._currentView.currentContentColumns[ dataIndex ].controlButtons;
+ const columnLayout: ColumnLayout = bindingOptions._currentView.currentContentColumns[ dataIndex ];
- if ( Is.defined( controlButtons ) ) {
- controlButtons.style.top = `${bindingOptions._currentView.currentContentColumns[ dataIndex ].column.scrollTop}px`;
- controlButtons.style.right = `-${bindingOptions._currentView.currentContentColumns[ dataIndex ].column.scrollLeft}px`;
+ if ( Is.defined( columnLayout.controlButtons ) ) {
+ columnLayout.controlButtons.style.top = `${columnLayout.column.scrollTop}px`;
+ columnLayout.controlButtons.style.right = `-${columnLayout.column.scrollLeft}px`;
}
}
- if ( bindingOptions.paging!.synchronizeScrolling ) {
- for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) {
- if ( dataIndex !== columnIndex ) {
- bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollTop = scrollTop;
- bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollLeft = scrollLeft;
+ for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) {
+ const columnLayout: ColumnLayout = bindingOptions._currentView.currentContentColumns[ columnIndex ];
+
+ if ( columnLayout.column !== column ) {
+ if ( bindingOptions.paging!.synchronizeScrolling ) {
+ columnLayout.column.scrollTop = scrollTop;
+ columnLayout.column.scrollLeft = scrollLeft;
}
- }
- }
- if ( bindingOptions.controlPanel!.enabled ) {
- for ( let columnIndex: number = 0; columnIndex < columnsLength; columnIndex++ ) {
- if ( dataIndex !== columnIndex ) {
- const controlButtons: HTMLElement = bindingOptions._currentView.currentContentColumns[ columnIndex ].controlButtons;
-
- if ( Is.defined( controlButtons ) ) {
- controlButtons.style.top = `${bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollTop}px`;
- controlButtons.style.right = `-${bindingOptions._currentView.currentContentColumns[ columnIndex ].column.scrollLeft}px`;
- }
+ if ( bindingOptions.controlPanel!.enabled && Is.defined( columnLayout.controlButtons ) ) {
+ columnLayout.controlButtons.style.top = `${columnLayout.column.scrollTop}px`;
+ columnLayout.controlButtons.style.right = `-${columnLayout.column.scrollLeft}px`;
}
}
}
@@ -1528,7 +1523,7 @@ type JsonTreeData = Record;
}
} else if ( Is.definedFunction( value ) ) {
- const functionName: FunctionName = Default.getFunctionName( value, _configuration );
+ const functionName: FunctionName = Default.getFunctionName( value, _configuration, bindingOptions );
if ( functionName.isLambda ) {
dataType = DataType.lambda;
@@ -1677,7 +1672,13 @@ type JsonTreeData = Record;
if ( bindingOptions.showUrlOpenButtons ) {
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 );
+ openButton.onclick = () => {
+ if ( bindingOptions.openUrlsInSameWindow ) {
+ window.location = value;
+ } else {
+ window.open( value )
+ }
+ };
}
makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing, openButton );
@@ -1776,7 +1777,7 @@ type JsonTreeData = Record;
if ( !bindingOptions.ignore!.symbolValues ) {
valueClass = bindingOptions.showValueColors ? `${dataType} value` : "value";
- valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, value.toString() );
+ valueElement = DomElement.createWithHTML( objectTypeValueTitle, "span", valueClass, Convert.symbolToSpacedOutString( value ) );
allowEditing = bindingOptions.allowEditing!.symbolValues! && !preventEditing;
makePropertyValueEditable( bindingOptions, data, name, value, valueElement, isArrayItem, allowEditing );
@@ -2864,7 +2865,11 @@ type JsonTreeData = Record;
_key_Control_Pressed = isCommandKey( ev );
if ( bindingOptions.shortcutKeysEnabled && _elements_Data_Count === 1 && _elements_Data.hasOwnProperty( bindingOptions._currentView.element.id ) && !bindingOptions._currentView.editMode ) {
- if ( isCommandKey( ev ) && ev.code === KeyCode.f11 ) {
+ if ( isCommandKey( ev ) && ev.code === KeyCode.C ) {
+ ev.preventDefault();
+ onTitleBarCopyAllClick( bindingOptions, bindingOptions.data );
+
+ } else if ( isCommandKey( ev ) && ev.code === KeyCode.f11 ) {
ev.preventDefault();
onTitleBarDblClick( bindingOptions );
@@ -3210,7 +3215,7 @@ type JsonTreeData = Record;
},
getVersion: function () : string {
- return "4.4.0";
+ return "4.5.0";
}
};
diff --git a/src/ts/api.ts b/src/ts/api.ts
index ec6ca848..0649ff16 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.4.0
+ * @version v4.5.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
index 0ced4d7c..a36e4688 100644
--- a/src/ts/area/context-menu.ts
+++ b/src/ts/area/context-menu.ts
@@ -4,7 +4,7 @@
* A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data.
*
* @file context-menu.ts
- * @version v4.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/area/tooltip.ts b/src/ts/area/tooltip.ts
index 3e7de76e..5f4e36a4 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/area/trigger.ts b/src/ts/area/trigger.ts
index 619c9caa..83ae0014 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/constant.ts b/src/ts/constant.ts
index b9d0cf30..5d1314cd 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/data/arr.ts b/src/ts/data/arr.ts
index d12c69c0..76ad0690 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/data/convert.ts b/src/ts/data/convert.ts
index 6894ab4d..e2222995 100644
--- a/src/ts/data/convert.ts
+++ b/src/ts/data/convert.ts
@@ -4,7 +4,7 @@
* A lightweight JavaScript library that generates customizable tree views to better visualize, and edit, JSON data.
*
* @file convert.ts
- * @version v4.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
@@ -17,7 +17,7 @@ import {
type BindingOptions } from "../type";
import { Default } from "./default";
-import { Char } from "./enum";
+import { Char, Value } from "./enum";
import { Is } from "./is";
@@ -119,7 +119,7 @@ export namespace Convert {
} else if ( Is.definedNumber( oldValue ) && !isNaN( +newValue ) ) {
result = parseInt( newValue );
- } else if ( Is.definedString( oldValue ) ) {
+ } else if ( Is.definedStringAny( oldValue ) ) {
result = newValue;
} else if ( Is.definedDate( oldValue ) ) {
@@ -267,7 +267,7 @@ export namespace Convert {
export function stringToParsedValue( value: any, bindingOptions: BindingOptions ) : any {
let parsedValue: any = null;
- if ( Is.definedString( value ) ) {
+ if ( Is.definedString( value ) && value.trim() !== Char.empty ) {
const floatValue: number = parseFloat( value );
if ( bindingOptions.parse!.stringsToBooleans && Is.String.boolean( value ) ) {
@@ -292,4 +292,16 @@ export namespace Convert {
return parsedValue;
}
+
+ export function symbolToSpacedOutString( value: Symbol ) : string {
+ let result: string = value.toString();
+
+ if ( result.indexOf( "()" ) === Value.notFound ) {
+ result = result.replace( "(", `(${Char.space}` ).replace( ")", `${Char.space})` );
+ } else {
+ result = result.replace( "()", Char.empty );
+ }
+
+ return result;
+ }
}
\ No newline at end of file
diff --git a/src/ts/data/datetime.ts b/src/ts/data/datetime.ts
index 8cc80961..7fdf3bda 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/data/default.ts b/src/ts/data/default.ts
index 35916e33..0c70e968 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
@@ -14,11 +14,13 @@
import {
type StringToJson,
type Configuration,
- type FunctionName } from "../type";
+ type FunctionName,
+ type BindingOptions } from "../type";
import { Convert } from "./convert";
import { Char } from "./enum";
import { Is } from "./is";
+import { Str } from "./str";
export namespace Default {
@@ -77,21 +79,23 @@ export namespace Default {
return result;
}
- export function getFunctionName( value: any, configuration: Configuration ) : FunctionName {
- let name: string;
+ export function getFunctionName( value: any, configuration: Configuration, bindingOptions: BindingOptions ) : FunctionName {
+ const functionName = value.toString();
+ const functionNameWithParameters: string = functionName.substring( 0, functionName.indexOf( ")" ) + 1 );
+ let name: string = functionNameWithParameters.trim();
let isLambda: boolean = false;
- const valueParts: string[] = value.toString().split( "(" );
- const valueNameParts: string[] = valueParts[ 0 ].split( Char.space );
- const functionBrackets: string = "()";
-
- name = `${valueNameParts.join(Char.space)}${functionBrackets}`;
-
- if ( name.trim() === functionBrackets ) {
- name = `${configuration.text!.functionText!}${functionBrackets}`;
+ if ( functionNameWithParameters[ 0 ] === "(" ) {
+ name = `${configuration.text!.functionText!}${name}`;
isLambda = true;
}
+ if ( !isLambda ) {
+ name = Str.getMaximumLengthDisplay( name, bindingOptions.maximum!.functionLength!, configuration.text!.ellipsisText! );
+ } else {
+ name = Str.getMaximumLengthDisplay( name, bindingOptions.maximum!.lambdaLength!, configuration.text!.ellipsisText! );
+ }
+
return {
name: name,
isLambda: isLambda
diff --git a/src/ts/data/enum.ts b/src/ts/data/enum.ts
index a0b0352a..c14e8f61 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
@@ -54,6 +54,7 @@ export enum DataType {
}
export enum KeyCode {
+ C = "KeyC",
escape = "Escape",
enter = "Enter",
left = "ArrowLeft",
diff --git a/src/ts/data/is.ts b/src/ts/data/is.ts
index daaa81d8..0f3eb338 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/data/obj.ts b/src/ts/data/obj.ts
index 2254b57e..ad87a163 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/data/size.ts b/src/ts/data/size.ts
index 13a5f19d..f2eb97eb 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/data/str.ts b/src/ts/data/str.ts
index a9fc107c..b86ed89c 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/dom/dom.ts b/src/ts/dom/dom.ts
index 9e08f4e9..76aadc3b 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/options/binding.ts b/src/ts/options/binding.ts
index 21d95cb3..1c5ae57e 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
@@ -134,6 +134,7 @@ export namespace Binding {
options.rootName = Default.getString( options.rootName, "root" );
options.emptyStringValue = Default.getString( options.emptyStringValue, Char.empty );
options.expandIconType = Default.getString( options.expandIconType, "arrow" );
+ options.openUrlsInSameWindow = Default.getBoolean( options.openUrlsInSameWindow, false );
options.maximum = getMaximum( options );
options.paging = getPaging( options );
@@ -162,6 +163,8 @@ export namespace Binding {
options.maximum!.bigIntLength = Default.getNumber( options.maximum!.bigIntLength, 0 );
options.maximum!.inspectionLevels = Default.getNumber( options.maximum!.inspectionLevels, 10 );
options.maximum!.propertyNameLength = Default.getNumber( options.maximum!.propertyNameLength, 0 );
+ options.maximum!.functionLength = Default.getNumber( options.maximum!.functionLength, 0 );
+ options.maximum!.lambdaLength = Default.getNumber( options.maximum!.lambdaLength, 0 );
return options.maximum!;
}
diff --git a/src/ts/options/config.ts b/src/ts/options/config.ts
index 055b2f06..e0b9facc 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
diff --git a/src/ts/type.ts b/src/ts/type.ts
index 9ce2284b..450806ae 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.4.0
+ * @version v4.5.0
* @author Bunoon
* @license MIT License
* @copyright Bunoon 2024
@@ -183,6 +183,7 @@ export type BindingOptions = {
rootName?: string;
emptyStringValue?: string;
expandIconType?: string;
+ openUrlsInSameWindow?: boolean;
lineNumbers?: BindingOptionsLineNumbers;
maximum?: BindingOptionsMaximum;
controlPanel?: BindingOptionsControlPanel;
@@ -244,6 +245,8 @@ export type BindingOptionsMaximum = {
bigIntLength?: number;
inspectionLevels?: number;
propertyNameLength?: number;
+ functionLength?: number;
+ lambdaLength?: number;
};
export type BindingOptionsPaging = {
diff --git a/test/js/scripts.js b/test/js/scripts.js
index 809c01d2..082bcaed 100644
--- a/test/js/scripts.js
+++ b/test/js/scripts.js
@@ -99,6 +99,7 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show
rootName: "root",
emptyStringValue: "",
expandIconType: "arrow",
+ openUrlsInSameWindow: 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",
@@ -115,6 +116,8 @@ function bindingOptions( showValueColors = true, allowValueToolTips = true, show
bigIntLength: 0,
inspectionLevels: 10,
propertyNameLength: 0,
+ functionLength: 0,
+ lambdaLength: 0,
},
parse: {
stringsToDates: true,
@@ -244,7 +247,10 @@ function getArrayData() {
namedFunction: testFunctionName,
function: function( message ) {
console.log( message );
- }
+ },
+ functionNoParameters: function() {
+ console.log( "Function without parameters" );
+ },
},
value13: "rgb(144, 238, 144)",
value14: crypto.randomUUID(),
@@ -291,6 +297,7 @@ function getArrayData() {
array: [],
html: document.createElement( "div" ),
string: "",
+ blankString: " ",
symbol: Symbol(),
invalidDate: new Date( "" ),
},