🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

json-edit-react

Package Overview
Dependencies
Maintainers
1
Versions
117
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-edit-react - npm Package Compare versions

Comparing version

to
1.27.0

2

build/index.cjs.js

@@ -1,1 +0,1 @@

"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("object-property-assigner"),r=require("object-property-extractor");function o(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i=({className:t,name:n,value:r,setValue:o,handleKeyPress:a,styles:i,textAreaRef:s})=>{if("string"!=typeof r)return null;const l="\n"===r.slice(-1)?r+".":r;return e.jsxs("div",{style:{display:"grid"},children:[e.jsx("textarea",{id:`${n}_textarea`,ref:s,style:Object.assign({height:"auto",gridArea:"1 / 1 / 2 / 2",overflowY:"auto",whiteSpace:"pre-wrap"},i),rows:1,className:t,name:`${n}_textarea`,value:r,onChange:e=>o(e.target.value),autoFocus:!0,onFocus:e=>{r.length<40&&e.target.select()},onKeyDown:a}),e.jsx("span",{className:t,style:Object.assign({visibility:"hidden",height:"auto",gridArea:"1 / 1 / 2 / 2",color:"red",opacity:.9,whiteSpace:"pre-wrap",overflowY:"auto",border:"1px solid transparent"},i),children:l})]})},s=e=>null!==e&&"object"==typeof e&&!(e instanceof Date),l=(e,t,n,r="")=>{if(!n&&!r)return!0;switch(e){case"collection":if(n){if(n(t,r))return!0;if(!c(r,t,n))return!1}if(!n&&r&&!c(r,t))return!1;break;case"value":if(n&&!n(t,r))return!1;if(!n&&r&&!d(t,r))return!1}return!0},c=(e="",t,n=d)=>{const r=t.value;return Object.entries(r).some((([o,a])=>{const i=[...t.path,o],l=Object.assign(Object.assign({},t),{key:o,path:i,level:t.level+1,value:a,size:i.length,parentData:r});return s(a)?c(e,l,n):n(l,e)}))},d=(e,t="")=>{const{value:n}=e;if(null===n&&"null".includes(t.toLowerCase()))return!0;switch(typeof n){case"string":return n.toLowerCase().includes(t.toLowerCase());case"number":return!!String(n).includes(t);case"boolean":return n?"true".includes(t.toLowerCase())||"1"===t:"false".includes(t.toLowerCase())||"0"===t;default:return!1}},u=({key:e,path:t},n="")=>!!d({value:e},n)||!!t.some((e=>d({value:e},n))),p=(e,t)=>(null!=t?t:"")+e.map((e=>""===e?String.fromCharCode(0):e)).join("."),g=e=>e.shiftKey?"Shift":e.metaKey?"Meta":e.ctrlKey?"Control":e.altKey?"Alt":void 0,h=(e,t,n)=>{const r=e.key,o=g(e);if(Array.isArray(t))return!!o&&t.includes(o);const{key:a,modifier:i}=t;return("stringLineBreak"!==n||"Enter"!==r||"Shift"!==o||"Enter"!==a||!(null==i?void 0:i.includes("Shift")))&&(r===a&&(i===o||Array.isArray(i)&&i.includes(o)))},m={key:"Enter"},y={confirm:m,cancel:{key:"Escape"},objectConfirm:Object.assign(Object.assign({},m),{modifier:["Meta","Shift","Control"]}),objectLineBreak:m,stringConfirm:m,stringLineBreak:Object.assign(Object.assign({},m),{modifier:["Shift"]}),numberConfirm:m,numberUp:{key:"ArrowUp"},numberDown:{key:"ArrowDown"},tabForward:{key:"Tab"},tabBack:{key:"Tab",modifier:"Shift"},booleanConfirm:m,booleanToggle:{key:" "},clipboardModifier:["Meta","Control"],collapseModifier:["Alt"]},f=(e,t,n="next",o)=>{const a=t.slice(0,t.length-1),i=t.slice(-1)[0];if(void 0===i)return null;const l=r(e,a),c=j(l);Array.isArray(l)||o(c,(({key:e,value:t})=>[e,t]));const d=c.findIndex((e=>e.key===i)),u=c[d+("next"===n?1:-1)];return u?s(u.value)?0===Object.keys(u.value).length?f(e,[...a,u.key],n,o):b(e,[...a,u.key],n,o):[...a,u.key]:0===a.length?null:f(e,a,n,o)},b=(e,t,n="next",o)=>{const a=r(e,t);if(!s(a))return t;const i=Array.isArray(a)?a.map(((e,t)=>t)):Object.keys(a);o(i,(e=>[e,a]));const l="next"===n?i[0]:i[i.length-1];return b(e,[...t,l],n,o)},j=e=>Array.isArray(e)?e.map(((e,t)=>({index:t,value:e,key:t}))):Object.entries(e).map((([e,t],n)=>({key:e,value:t,index:n}))),v=(e,t)=>{var n,r,o,a;const i=e.current,s=null!==(n=null==i?void 0:i.selectionStart)&&void 0!==n?n:1/0,l=null!==(r=null==i?void 0:i.selectionEnd)&&void 0!==r?r:1/0,c=(null===(o=null==i?void 0:i.textContent)||void 0===o?void 0:o.slice(0,s))+t+(null===(a=null==i?void 0:i.textContent)||void 0===a?void 0:a.slice(l));return i.value=c,null==i||i.setSelectionRange(s+1,s+1),c},x=e=>{if(e!==E){if(Array.isArray(e))return e.map((e=>x(e)));if(e&&"object"==typeof e)for(const t in e)e[t]=x(e[t]);return e}},E="__​undefined__",C={displayName:"Default",fragments:{edit:"rgb(42, 161, 152)"},styles:{container:{backgroundColor:"#f6f6f6",fontFamily:"monospace"},collection:{},collectionInner:{},collectionElement:{},dropZone:{},property:"#292929",bracket:{color:"rgb(0, 43, 54)",fontWeight:"bold"},itemCount:{color:"rgba(0, 0, 0, 0.3)",fontStyle:"italic"},string:"rgb(203, 75, 22)",number:"rgb(38, 139, 210)",boolean:"green",null:{color:"rgb(220, 50, 47)",fontVariant:"small-caps",fontWeight:"bold"},input:["#292929"],inputHighlight:"#b3d8ff",error:{fontSize:"0.8em",color:"red",fontWeight:"bold"},iconCollection:"rgb(0, 43, 54)",iconEdit:"edit",iconDelete:"rgb(203, 75, 22)",iconAdd:"edit",iconCopy:"rgb(38, 139, 210)",iconOk:"green",iconCancel:"rgb(203, 75, 22)"}},w=t.createContext({getStyles:()=>({}),icons:{}}),D=({theme:t=C,icons:n={},docRoot:r,children:o})=>{const a=O(t,r);return e.jsx(w.Provider,{value:{getStyles:(e,t)=>"function"==typeof a[e]?a[e](t):a[e],icons:n},children:o})},k=()=>t.useContext(w),O=(e,t)=>{var n,r,o,a;const i={},s=(Array.isArray(e)?e:[e]).map((e=>N(e)?S({fragments:{},styles:e},i):S(e,i))),l=S(C,{});Object.keys(l).forEach((e=>{const t=e;s.forEach((e=>{e[t]&&(l[t]=Object.assign(Object.assign({},l[t]),e[t]))}))}));const c=Object.assign({},l);return Object.entries(i).forEach((([e,t])=>{const n=e;c[n]=e=>{const r=t(e)||{};return Object.assign(Object.assign({},l[n]),r)}})),"function"!=typeof(null==c?void 0:c.inputHighlight)&&(null===(n=null==c?void 0:c.inputHighlight)||void 0===n?void 0:n.backgroundColor)&&t.style.setProperty("--jer-highlight-color",null===(r=null==c?void 0:c.inputHighlight)||void 0===r?void 0:r.backgroundColor),"function"!=typeof(null==c?void 0:c.iconCopy)&&(null===(o=null==c?void 0:c.iconCopy)||void 0===o?void 0:o.color)&&t.style.setProperty("--jer-icon-copy-color",null===(a=null==c?void 0:c.iconCopy)||void 0===a?void 0:a.color),c},S=(e,t)=>{const{fragments:n,styles:r}=e,o={};return Object.entries(r).forEach((([e,r])=>{const a=(Array.isArray(r)?r:[r]).reduce(((r,o)=>{var a,i;if("function"==typeof o)return t[e]=o,Object.assign({},r);if("string"==typeof o){const t=null!==(a=null==n?void 0:n[o])&&void 0!==a?a:o;return"string"==typeof t?Object.assign(Object.assign({},r),{[null!==(i=A[e])&&void 0!==i?i:"color"]:t}):Object.assign(Object.assign({},r),t)}return Object.assign(Object.assign({},r),o)}),{});o[e]=a})),o},N=e=>!("styles"in e),A={container:"backgroundColor",collection:"backgroundColor",collectionInner:"backgroundColor",collectionElement:"backgroundColor",dropZone:"borderColor",inputHighlight:"backgroundColor"},T=t.createContext(null),R=({children:n,onEditEvent:r,onCollapse:o})=>{const[a,i]=t.useState(null),[s,l]=t.useState(null),[c,d]=t.useState(null),[u,g]=t.useState({path:null,pathString:null}),h=t.useRef(null),m=t.useRef("next"),y=t.useRef(null);return e.jsx(T.Provider,{value:{collapseState:a,setCollapseState:e=>{i(e),o&&null!==e&&(Array.isArray(e)?e.forEach((e=>o(e))):o(e)),null!==e&&setTimeout((()=>i(null)),2e3)},getMatchingCollapseState:e=>{if(Array.isArray(a)){for(const t of a)if(P(e,t))return t;return null}return P(e,a)?a:null},currentlyEditingElement:s,setCurrentlyEditingElement:(e,t)=>{const n="string"==typeof e||null===e?e:p(e,"key"===t?"key_":void 0);null!==s&&null!==n&&null!==h.current&&h.current(),l(n),r&&r(e,"key"===t),h.current="function"==typeof t?t:null},areChildrenBeingEdited:e=>null!==s&&s.includes(e),previouslyEditedElement:y.current,setPreviouslyEditedElement:e=>{y.current=e},tabDirection:m.current,setTabDirection:e=>{m.current=e},previousValue:c,setPreviousValue:d,dragSource:u,setDragSource:g},children:n})},K=()=>{const e=t.useContext(T);if(!e)throw new Error("Missing Context Provider");return e},P=(e,t)=>{if(null===t)return!1;if(!t.includeChildren)return t.path.every(((t,n)=>e[n]===t))&&t.path.length===e.length;for(const[n,r]of t.path.entries())if(r!==e[n])return!1;return!0},V="**INVALID_FUNCTION**",M=({nodeData:n,showStringQuotes:r=!0,stringTruncate:o=200,pathString:a,canEdit:i,setIsEditing:s,styles:l,translate:c,value:d,TextWrapper:u=({children:e})=>e})=>{const p=null!=d?d:n.value,[g,h]=t.useState(!1),m=r?'"':"",y=p.length>o,f=()=>{i?s(!0):h(!g)};return e.jsxs("div",{id:`${a}_display`,onDoubleClick:f,onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&f()},className:"jer-value-string",style:l,children:[m,y?g?e.jsxs(e.Fragment,{children:[e.jsx(u,{children:e.jsxs("span",{children:[p,m]})}),e.jsxs("span",{className:"jer-string-expansion jer-show-less",onClick:()=>h(!1),children:[" ",c("SHOW_LESS",n)]})]}):e.jsxs(e.Fragment,{children:[e.jsxs(u,{children:[e.jsx("span",{children:p.slice(0,o-2).trimEnd()})," "]}),e.jsx("span",{className:"jer-string-expansion jer-ellipsis",onClick:()=>h(!0),children:"..."}),m]}):e.jsx(u,{children:`${p}${m}`})]})},F=({styles:n,pathString:r,value:o,setValue:a,handleEdit:s,handleKeyboard:l,keyboardCommon:c})=>{const d=t.useRef(null);return e.jsx(i,{className:"jer-input-text",textAreaRef:d,name:r,value:o,setValue:a,handleKeyPress:e=>{l(e,Object.assign({stringConfirm:s,stringLineBreak:()=>{const e=v(d,"\n");a(e)}},c))},styles:n})},_=t=>{var{isEditing:n,path:r,enumType:a}=t,i=o(t,["isEditing","path","enumType"]);const{getStyles:s}=k(),l=p(r),{value:c,setValue:d,nodeData:u,handleEdit:g,handleKeyboard:h,keyboardCommon:m}=i;return n&&a?e.jsxs("div",{className:"jer-select jer-select-enums",children:[e.jsx("select",{name:`${l}-value-select`,className:"jer-select-inner",onChange:e=>d(e.target.value),value:c,autoFocus:!0,onKeyDown:e=>{h(e,Object.assign({stringConfirm:g},m))},children:a.values.map((t=>e.jsx("option",{value:t,children:t},t)))}),e.jsx("span",{className:"focus"})]}):n?e.jsx(F,Object.assign({styles:s("input",u),pathString:l},i,{setValue:i.setValue})):e.jsx(M,Object.assign({pathString:l,styles:s("string",u)},i))},z=({value:t,setValue:n,isEditing:r,path:o,setIsEditing:a,handleEdit:i,nodeData:s,handleKeyboard:l,keyboardCommon:c})=>{const{getStyles:d}=k();return r?e.jsx("input",{className:"jer-input-number",type:"text",name:p(o),value:t,onChange:e=>n(e.target.value.replace(/[^0-9.-]/g,"")),autoFocus:!0,onFocus:e=>setTimeout((()=>e.target.select()),10),onKeyDown:e=>l(e,Object.assign({numberConfirm:i,numberUp:()=>n(Number(t)+1),numberDown:()=>n(Number(t)-1)},c)),style:Object.assign({width:String(t).length/1.5+2+"em"},d("input",s))}):e.jsx("span",{onDoubleClick:()=>a(!0),className:"jer-value-number",style:d("number",s),children:t})},I=({value:t,setValue:n,isEditing:r,path:o,setIsEditing:a,handleEdit:i,nodeData:s,handleKeyboard:l,keyboardCommon:c})=>{const{getStyles:d}=k();return"boolean"!=typeof t?null:r?e.jsx("input",{className:"jer-input-boolean",type:"checkbox",name:p(o),checked:t,onChange:()=>n(!t),onKeyDown:e=>{" "===e.key&&e.preventDefault(),l(e,Object.assign({booleanConfirm:i,booleanToggle:()=>n(!t)},c))},autoFocus:!0}):e.jsx("span",{onDoubleClick:()=>a(!0),className:"jer-value-boolean",style:d("boolean",s),children:String(t)})},L=(e,n)=>{const r=t.useRef(void 0),o=t.useRef(n);t.useEffect((()=>{o.current=n}),[n]);const a=e=>{o.current(e)};t.useEffect((()=>{if(window.clearTimeout(r.current),e)return r.current=window.setTimeout((()=>{window.addEventListener("keydown",a)}),100),()=>{window.clearTimeout(r.current),window.removeEventListener("keydown",a)}}),[e])},B=({value:t,isEditing:n,setIsEditing:r,handleEdit:o,nodeData:a,handleKeyboard:i,keyboardCommon:s})=>{const{getStyles:l}=k();return L(n,(e=>i(e,Object.assign({confirm:o},s)))),e.jsx("div",{onDoubleClick:()=>r(!0),className:"jer-value-null",style:l("null",a),children:String(t)})},W=({value:t})=>{let n="Error!";switch(typeof t){case"string":t===V&&(n="Function");break;case"undefined":n="Undefined";break;case"symbol":n="Symbol"}return e.jsx("span",{className:"jer-value-invalid",children:n})},G=({size:t,style:n,className:r})=>e.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,children:[e.jsx("path",{d:"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z"}),e.jsx("path",{d:"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z"})]}),Y=({size:t,style:n,className:r})=>e.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,transform:"translate(0, 0.5)",children:[e.jsx("path",{d:"M7 17.013l4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z"}),e.jsx("path",{d:"M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z"})]}),H=({size:t,style:n,className:r})=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,children:e.jsx("path",{d:"M6 19a2 2 0 002 2h8a2 2 0 002-2V7H6v12m2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12M15.5 4l-1-1h-5l-1 1H5v2h14V4h-3.5z"})}),U=({size:t,style:n,className:r})=>e.jsxs("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:t,height:t,className:r,style:n,children:[e.jsx("path",{d:"M9 2 H15 A1 1 0 0 1 16 3 V5 A1 1 0 0 1 15 6 H9 A1 1 0 0 1 8 5 V3 A1 1 0 0 1 9 2 z"}),e.jsx("path",{d:"M8 4H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2v-2M16 4h2a2 2 0 012 2v4M21 14H11"}),e.jsx("path",{d:"M15 10l-4 4 4 4"})]}),$=({size:t,style:n,className:r})=>e.jsxs("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:t,height:t,className:r,style:n,children:[e.jsx("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),e.jsx("path",{d:"M22 4L12 14.01l-3-3"})]}),Z=({size:t,style:n,className:r})=>e.jsx("svg",{baseProfile:"tiny",viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,children:e.jsx("path",{d:"M12 4c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8zm-5 8c0-.832.224-1.604.584-2.295l6.711 6.711A4.943 4.943 0 0112 17c-2.757 0-5-2.243-5-5zm9.416 2.295L9.705 7.584A4.943 4.943 0 0112 7c2.757 0 5 2.243 5 5 0 .832-.224 1.604-.584 2.295z"})}),J=({size:t,style:n,className:r})=>e.jsx("svg",{viewBox:"0 0 512 512",fill:"currentColor",width:t,height:t,className:r,style:n,children:e.jsx("path",{d:"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"})}),X=({name:t,nodeData:n})=>{var r,o,a,i,s,l,c;const{getStyles:d,icons:u}=k(),p={size:"1.4em",className:"jer-icon"};switch(t){case"add":return null!==(r=null==u?void 0:u.add)&&void 0!==r?r:e.jsx(G,Object.assign({},p,{style:d("iconAdd",n)}));case"edit":return null!==(o=null==u?void 0:u.edit)&&void 0!==o?o:e.jsx(Y,Object.assign({},p,{style:d("iconEdit",n)}));case"delete":return null!==(a=null==u?void 0:u.delete)&&void 0!==a?a:e.jsx(H,Object.assign({},p,{style:d("iconDelete",n),size:"1.45em"}));case"copy":return null!==(i=null==u?void 0:u.copy)&&void 0!==i?i:e.jsx(U,Object.assign({},p,{style:d("iconCopy",n),size:"1.2em"}));case"ok":return null!==(s=null==u?void 0:u.ok)&&void 0!==s?s:e.jsx($,Object.assign({},p,{style:Object.assign({fontSize:"90%"},d("iconOk",n))}));case"cancel":return null!==(l=null==u?void 0:u.cancel)&&void 0!==l?l:e.jsx(Z,Object.assign({},p,{style:Object.assign({fontSize:"130%"},d("iconCancel",n))}));case"chevron":return null!==(c=null==u?void 0:u.chevron)&&void 0!==c?c:e.jsx(J,{size:"1em",style:d("iconCollection",n)});default:return e.jsx(e.Fragment,{})}},q=({startEdit:n,handleDelete:o,handleAdd:a,enableClipboard:i,type:s,customButtons:l,nodeData:c,translate:d,keyboardControls:u,handleKeyboard:p,editConfirmRef:h,getNewKeyOptions:m,jsonStringify:y})=>{const{getStyles:f}=k(),b=d("KEY_NEW",c),[j,v]=t.useState(b),[x,E]=t.useState(!1),{key:C,path:w,value:D}=c,O=Array.isArray(x),S=e=>{var t;if(!e)return void E(!1);const n=Object.keys(r(c.fullData,w)),o=m?null===(t=m(c))||void 0===t?void 0:t.filter((e=>!n.includes(e))):null;o&&v(""),E(null==o||o)};return e.jsxs("div",{className:"jer-edit-buttons",style:{opacity:x?1:void 0},onClick:e=>e.stopPropagation(),children:[i&&e.jsx("div",{onClick:e=>{var t;e.stopPropagation();let n,r,o="value",a="",l=null;if(i){const c=g(e);if(c&&u.clipboardModifier.includes(c)?(n=ee(w),a=n,o="path"):(n=D,a=s?y(D):String(n)),!navigator.clipboard)return void("function"==typeof i&&i({success:!1,value:n,stringValue:a,path:w,key:C,type:o,errorMessage:"Can't access clipboard API"}));null===(t=navigator.clipboard)||void 0===t||t.writeText(a).then((()=>r=!0)).catch((e=>{r=!1,l=e.message})).finally((()=>{"function"==typeof i&&i({success:r,errorMessage:l,value:n,stringValue:a,path:w,key:C,type:o})}))}},className:"jer-copy-pulse",children:e.jsx(X,{name:"copy",nodeData:c})}),n&&e.jsx("div",{onClick:n,children:e.jsx(X,{name:"edit",nodeData:c})}),o&&e.jsx("div",{onClick:o,children:e.jsx(X,{name:"delete",nodeData:c})}),a&&e.jsx("div",{onClick:()=>{"object"===s?S(!0):a("")},children:e.jsx(X,{name:"add",nodeData:c})}),null==l?void 0:l.map((({Element:t,onClick:n},r)=>e.jsx("div",{onClick:e=>n&&n(c,e),children:e.jsx(t,{nodeData:c})},r))),x&&a&&"object"===s&&e.jsxs(e.Fragment,{children:[O?e.jsxs("div",{className:"jer-select jer-select-keys",children:[e.jsxs("select",{name:"new-key-select",className:"jer-select-inner",onChange:e=>{a(e.target.value),S(!1)},defaultValue:"",autoFocus:!0,onKeyDown:e=>{p(e,{cancel:()=>S(!1)})},children:[e.jsx("option",{value:"",disabled:!0,children:x.length>0?d("KEY_SELECT",c):d("NO_KEY_OPTIONS",c)}),x.map((t=>e.jsx("option",{value:t,children:t},t)))]}),e.jsx("span",{className:"focus"})]}):e.jsx("input",{className:"jer-input-new-key",type:"text",name:"new-object-key",value:j,onChange:e=>v(e.target.value),autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{p(e,{stringConfirm:()=>{a&&(S(!1),a(j),v(b))},cancel:()=>{S(!1),v(b)}})},style:f("input",c)}),e.jsx(Q,{onOk:()=>{O&&!j||(S(!1),a(j))},onCancel:()=>{S(!1)},nodeData:c,editConfirmRef:h,hideOk:O})]})]})},Q=({onOk:t,onCancel:n,nodeData:r,editConfirmRef:o,hideOk:a=!1})=>e.jsxs("div",{className:"jer-confirm-buttons",children:[!a&&e.jsx("div",{onClick:t,ref:o,children:e.jsx(X,{name:"ok",nodeData:r})}),e.jsx("div",{onClick:n,children:e.jsx(X,{name:"cancel",nodeData:r})})]}),ee=e=>e.reduce(((e,t)=>"number"==typeof t?`${e}[${t}]`:""===e?t:`${e}.${t}`),""),te=["string","number","boolean","null","object","array"],ne=(e=[],t)=>{const n=e.filter((({condition:e})=>e(t)));if(0===n.length)return{};const r=n[0],{element:a,wrapperElement:i,customNodeProps:s,wrapperProps:l,hideKey:c=!1,showEditTools:d=!0,showOnEdit:u=!1,showOnView:p=!0,showCollectionWrapper:g=!0}=r,h=o(r,["element","wrapperElement","customNodeProps","wrapperProps","hideKey","showEditTools","showOnEdit","showOnView","showCollectionWrapper"]);return Object.assign({CustomNode:a,CustomWrapper:i,customNodeProps:s,wrapperProps:l,hideKey:c,showEditTools:d,showOnEdit:u,showOnView:p,showCollectionWrapper:g},h)},re=({props:e,collapsed:n})=>{const{data:r,nodeData:o,parentData:a,onEdit:i,onError:s,showErrorMessages:l,restrictEditFilter:c,restrictDeleteFilter:d,restrictAddFilter:u,restrictDragFilter:g,translate:h,errorMessageTimeout:m}=e,{currentlyEditingElement:y,setCurrentlyEditingElement:f}=K(),[b,j]=t.useState(null),v=Object.assign(Object.assign({},o),{collapsed:n}),{path:x,key:E,size:C}=v,w=p(x),D=!c(v),k=!d(v),O=!u(v),S=!g(v)&&k&&null===y,N=e=>{l&&(j(e),setTimeout((()=>j(null)),m)),console.warn("Error",e)},A=t.useCallback(((e,t)=>{N(e.message),s&&s({currentData:v.fullData,errorValue:t,currentValue:r,name:E,path:x,error:e})}),[s,l]),T=y===w,R=y===`key_${w}`,P="number"==typeof x.slice(-1)[0];return{pathString:w,nodeData:v,path:x,name:E,size:C,canEdit:D,canDelete:k,canAdd:O,canDrag:S,error:b,showError:N,onError:A,setError:j,handleEditKey:e=>{if(f(null),E===e)return;if(!a)return;const t=x.slice(0,-1);if(Object.keys(a).includes(e))return void A({code:"KEY_EXISTS",message:h("ERROR_KEY_EXISTS",v)},e);const n=Object.fromEntries(Object.entries(a).map((([t,n])=>t===E?[e,n]:[t,n])));i(n,t).then((t=>{t&&A({code:"UPDATE_ERROR",message:t},e)}))},derivedValues:{isEditing:T,isEditingKey:R,isArray:P,canEditKey:null!==a&&D&&O&&k&&!P}}},oe=({canDrag:n,canDragOnto:r,path:o,nodeData:a,onMove:i,onError:s,translate:l})=>{const{getStyles:c}=k(),{dragSource:d,setDragSource:u}=K(),[g,h]=t.useState(!1),m=p(o),y=t.useMemo((()=>n?{onDragStart:e=>{e.stopPropagation(),u({path:o,pathString:m})},onDragEnd:e=>{e.stopPropagation(),u({path:null,pathString:null})}}:{}),[n,m]),f=t.useMemo((()=>e=>r?{onDragOver:e=>{e.stopPropagation(),e.preventDefault()},onDrop:t=>{t.stopPropagation(),j(e),u({path:null,pathString:null}),h(!1)},onDragEnter:t=>{var n;t.stopPropagation(),m.startsWith(null!==(n=d.pathString)&&void 0!==n?n:"")||h(e)},onDragExit:e=>{e.stopPropagation(),h(!1)}}:{}),[d,r,m]),b=t.useMemo((()=>r&&null!==d.pathString?e.jsx("div",Object.assign({className:"jer-drop-target-bottom",style:{height:"50%",position:"absolute",width:"100%",top:"50%",zIndex:o.length}},f("below"))):null),[d,r,o.length]),j=e=>{var t,n;const r=null===(t=d.path)||void 0===t?void 0:t.slice(-1)[0],c=null===(n=d.path)||void 0===n?void 0:n.slice(0,-1).join("."),u=o.slice(0,-1).join(""),{parentData:p}=a;"string"==typeof r&&p&&!Array.isArray(p)&&Object.keys(p).includes(r)&&r in p&&c!==u?s({code:"KEY_EXISTS",message:l("ERROR_KEY_EXISTS",a)},r):i(d.path,o,e).then((e=>{e&&s({code:"UPDATE_ERROR",message:e},a.value)}))};return{dragSourceProps:y,getDropTargetProps:f,BottomDropTarget:b,DropTargetPadding:({position:t,nodeData:n})=>g===t?e.jsx("div",{className:"jer-drag-n-drop-padding",style:c("dropZone",n)}):null,handleDrop:j}},ae=(e,t,n,r)=>{var o,a,i;if(!t.current)return 0;const s=parseInt(null!==(o=getComputedStyle(n.current).getPropertyValue("line-height"))&&void 0!==o?o:"16px"),l=(null!==(i=null===(a=t.current)||void 0===a?void 0:a.offsetWidth)&&void 0!==i?i:0)/(.5*s),c=r(e).replace(/\\n/g,"\n").split("\n").map((e=>Math.ceil(e.length/l))).reduce(((e,t)=>e+t),0)*s;return Math.min(c+30,window.innerHeight-50)},ie=({isEditingKey:t,canEditKey:n,pathString:r,path:o,name:a,handleKeyboard:i,handleEditKey:s,handleCancel:l,handleClick:c,keyValueArray:d,styles:u,getNextOrPrevious:p})=>{const{setCurrentlyEditingElement:g}=K();return t?e.jsx("input",{className:"jer-input-text jer-key-edit",type:"text",name:r,defaultValue:a,autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>i(e,{stringConfirm:()=>s(e.target.value),cancel:l,tabForward:()=>{if(s(e.target.value),d){const e=null==d?void 0:d[0][0];g(e?[...o,e]:p("next"))}else g(o)},tabBack:()=>{s(e.target.value),g(p("prev"))}}),style:{width:String(a).length/1.5+.5+"em"}}):e.jsxs("span",{className:"jer-key-text",style:Object.assign(Object.assign({},u),{minWidth:`${Math.min(String(a).length+1,5)}ch`,flexShrink:a.length>10?1:0}),onDoubleClick:()=>n&&g(o,"key"),onClick:c,children:[""===a?e.jsx("span",{className:o.length>0?"jer-empty-string":void 0}):`${a}`,e.jsx("span",{className:"jer-key-colon",children:":"})]})},se=n=>{const{data:r,parentData:o,onEdit:a,onDelete:i,onChange:s,onMove:c,enableClipboard:d,canDragOnto:u,restrictTypeSelection:p,searchFilter:g,searchText:h,showLabel:m,stringTruncate:y,showStringQuotes:b,indent:j,translate:v,customNodeDefinitions:x,handleKeyboard:E,keyboardControls:C,sort:w,editConfirmRef:D,jsonStringify:O}=n,{getStyles:S}=k(),{setCurrentlyEditingElement:N,setCollapseState:A,previouslyEditedElement:T,setPreviouslyEditedElement:R,tabDirection:P,setTabDirection:M,previousValue:F,setPreviousValue:_}=K(),[z,I]=t.useState("function"==typeof r?V:r),{pathString:L,nodeData:B,path:W,name:G,canEdit:Y,canDelete:H,canDrag:U,error:$,onError:Z,handleEditKey:J,derivedValues:X}=re({props:n}),{dragSourceProps:ee,getDropTargetProps:ae,BottomDropTarget:se,DropTargetPadding:ue}=oe({canDrag:U,canDragOnto:u,path:W,nodeData:B,onMove:c,onError:Z,translate:v}),pe=ne(x,B),[ge,he]=t.useState(le(r,pe)),me=t.useCallback((e=>{if(!s)return void I(e);const t=s({currentData:B.fullData,newValue:e,currentValue:z,name:G,path:W});I(t)}),[s]);t.useEffect((()=>{I("function"==typeof r?V:r),he(le(r,pe))}),[r,$]);const{CustomNode:ye,customNodeProps:fe,hideKey:be,showEditTools:je=!0,showOnEdit:ve,showOnView:xe,passOriginalNode:Ee}=pe,Ce=[...te,...x.filter((({showInTypesSelector:e=!1,name:t})=>e&&!!t)).map((({name:e})=>e))],we=t.useMemo((()=>{if("boolean"==typeof p)return p?[]:Ce;if(Array.isArray(p))return p;const e=p(B);return"boolean"==typeof e?e?[]:Ce:e}),[B,p]),[De,ke]=t.useState(((e,t)=>{var n;if("string"!=typeof e)return null;const r=t.filter((t=>t instanceof Object&&t.enum&&t.values.includes(e)&&t.matchPriority));return r.sort(((e,t)=>{var n,r;return(null!==(n=t.matchPriority)&&void 0!==n?n:0)-(null!==(r=e.matchPriority)&&void 0!==r?r:0)})),null!==(n=r[0])&&void 0!==n?n:null})(z,we)),{isEditing:Oe}=X,Se=l("value",B,g,h);if(Oe&&(!Se||!Y)){const e=f(B.fullData,W,P,w);N(e||T)}if(!Se)return null;const Ne=e=>{let t;if(N(null),_(null),void 0===e||(e=>e&&"object"==typeof e&&"type"in e&&"target"in e&&"preventDefault"in e&&"function"==typeof e.preventDefault)(e))switch(ge){case"object":t={[v("DEFAULT_NEW_KEY",B)]:z};break;case"array":t=null!=z?z:[];break;case"number":{const e=Number(z);t=isNaN(e)?0:e;break}default:t=z}else t=e;a(t,W).then((e=>{e&&Z({code:"UPDATE_ERROR",message:e},t)}))},Ae=()=>{N(null),null===F?(I(r),_(null)):a(F,W)},{isEditingKey:Te,canEditKey:Re}=X,Ke=!Oe&&$,Pe=Oe&&we.length>1,Ve=("invalid"!==ge||ye)&&!$&&je,Me=m&&!be,Fe=ye&&(Oe&&ve||!Oe&&xe),_e={value:z,parentData:o,setValue:me,isEditing:Oe,canEdit:Y,setIsEditing:Y?()=>N(W):()=>{},handleEdit:Ne,handleCancel:Ae,path:W,stringTruncate:y,showStringQuotes:b,nodeData:B,enumType:De,translate:v,handleKeyboard:E,keyboardCommon:{cancel:Ae,tabForward:()=>{M("next"),R(L);const e=f(B.fullData,W,"next",w);e&&(Ne(),N(e))},tabBack:()=>{M("prev"),R(L);const e=f(B.fullData,W,"prev",w);e&&(Ne(),N(e))}}},ze={canEditKey:Re,isEditingKey:Te,pathString:L,path:W,name:G,handleKeyboard:E,handleEditKey:J,handleCancel:Ae,styles:S("property",B),getNextOrPrevious:e=>f(B.fullData,W,e,w)},Ie=Fe?e.jsx(ye,Object.assign({},n,{value:z,customNodeProps:fe,setValue:me,handleEdit:Ne,handleCancel:Ae,handleKeyPress:e=>E(e,{stringConfirm:Ne,cancel:Ae}),isEditing:Oe,setIsEditing:()=>N(W),getStyles:S,originalNode:Ee?ce(r,_e):void 0,originalNodeKey:Ee?e.jsx(ie,Object.assign({},ze)):void 0,canEdit:Y,keyboardCommon:_e.keyboardCommon,onError:Z})):ce(r,_e);return e.jsxs("div",Object.assign({className:"jer-component jer-value-component",style:{marginLeft:j/2+"em",position:"relative"},draggable:U},ee,ae("above"),{children:[se,e.jsx(ue,{position:"above",nodeData:B}),e.jsxs("div",{className:"jer-value-main-row",style:{flexWrap:G.length>10?"wrap":"nowrap"},children:[Me&&e.jsx(ie,Object.assign({},ze)),e.jsxs("div",{className:"jer-value-and-buttons",children:[e.jsx("div",{className:"jer-input-component",children:Ie}),Oe?e.jsx(Q,{onOk:Ne,onCancel:Ae,nodeData:B,editConfirmRef:D}):Ve&&e.jsx(q,{startEdit:Y?()=>{_(F),N(W,Ae)}:void 0,handleDelete:H?()=>{i(z,W).then((e=>{e&&Z({code:"DELETE_ERROR",message:e},z)}))}:void 0,enableClipboard:d,translate:v,customButtons:n.customButtons,nodeData:B,handleKeyboard:E,keyboardControls:C,editConfirmRef:D,jsonStringify:O}),Pe&&e.jsxs("div",{className:"jer-select jer-select-types",children:[e.jsx("select",{name:`${G}-type-select`,className:"jer-select-inner",onChange:e=>(e=>{const t=x.find((t=>t.name===e));if(t)return a(t.defaultValue,W),he(e),ke(null),N(null),void A({path:W,collapsed:!1,includeChildren:!1});const n=we.find((t=>t instanceof Object&&t.enum===e));if(n)return"string"==typeof z&&n.values.includes(z)||a(n.values[0],W).then((e=>{e&&(Z({code:"UPDATE_ERROR",message:e},r),N(null))})),void ke(n);const r=de(z,e,v("DEFAULT_NEW_KEY",B),(null==pe?void 0:pe.CustomNode)?v("DEFAULT_STRING",B):void 0);a(r,W).then((e=>{e?(Z({code:"UPDATE_ERROR",message:e},r),N(null)):ke(null)}))})(e.target.value),value:De?De.enum:ge,children:we.map((t=>t instanceof Object&&"enum"in t?e.jsx("option",{value:t.enum,children:t.enum},t.enum):e.jsx("option",{value:t,children:t},t)))}),e.jsx("span",{className:"focus"})]}),Ke&&e.jsx("span",{className:"jer-error-slug",style:S("error",B),children:$})]})]}),e.jsx(ue,{position:"below",nodeData:B})]}))},le=(e,t)=>(null==t?void 0:t.CustomNode)&&(null==t?void 0:t.name)&&t.showInTypesSelector?t.name:"string"==typeof e?"string":"number"==typeof e?"number":"boolean"==typeof e?"boolean":null===e?"null":"invalid",ce=(t,n)=>{const r=le(t),{value:o}=n;switch(r){case"string":return e.jsx(_,Object.assign({},n,{value:o}));case"number":return e.jsx(z,Object.assign({},n,{value:o}));case"boolean":return e.jsx(I,Object.assign({},n,{value:o}));case"null":return e.jsx(B,Object.assign({},n));default:return e.jsx(W,Object.assign({},n))}},de=(e,t,n,r)=>{switch(t){case"string":return null!=r?r:String(e);case"number":{const t=Number(e);return isNaN(t)?0:t}case"boolean":return!!e;case"null":return null;case"object":return{[n]:e};case"array":return[e];default:return String(e)}},ue=n=>{const{getStyles:r}=k(),{collapseState:o,setCollapseState:c,getMatchingCollapseState:d,currentlyEditingElement:u,setCurrentlyEditingElement:p,areChildrenBeingEdited:h,previousValue:m,setPreviousValue:y}=K(),{mainContainerRef:b,data:j,nodeData:x,parentData:E,showCollectionCount:C,onEdit:w,onAdd:D,onDelete:O,canDragOnto:S,collapseFilter:N,collapseAnimationTime:A,onMove:T,enableClipboard:R,searchFilter:P,searchText:V,indent:M,sort:F,showArrayIndices:_,defaultValue:z,newKeyOptions:I,translate:L,customNodeDefinitions:B,jsonParse:W,jsonStringify:G,TextEditor:Y,keyboardControls:H,handleKeyboard:U,insertAtTop:$,onCollapse:Z,editConfirmRef:J,collapseClickZones:ee}=n,[te,le]=t.useState(G(j)),ce=N(x),{contentRef:de,isAnimating:pe,maxHeight:ge,collapsed:he,animateCollapse:me,cssTransitionValue:ye}=((e,n,r,o,a)=>{const[i,s]=t.useState(r?0:void 0),[l,c]=t.useState(r),d=t.useRef(!1),u=t.useRef(null),p=t.useRef(0),g=t.useRef(0),h=n/1e3+"s",m=t.useCallback((t=>{var r,i;if(l!==t){switch(window.clearTimeout(g.current),d.current=!0,t){case!0:{const e=null!==(i=null===(r=u.current)||void 0===r?void 0:r.offsetHeight)&&void 0!==i?i:0;p.current=e,s(e),setTimeout((()=>{s(0)}),5);break}case!1:s(p.current||ae(e,u,o,a))}c(!l),g.current=window.setTimeout((()=>{d.current=!1,t||s(void 0)}),n)}}),[n,l,e,o,a]);return{contentRef:u,isAnimating:d.current,animateCollapse:m,maxHeight:i,collapsed:l,cssTransitionValue:h}})(j,A,ce,b,G),{pathString:fe,nodeData:be,path:je,name:ve,size:xe,canEdit:Ee,canDelete:Ce,canAdd:we,canDrag:De,error:ke,setError:Oe,onError:Se,handleEditKey:Ne,derivedValues:Ae}=re({props:n,collapsed:he}),{dragSourceProps:Te,getDropTargetProps:Re,BottomDropTarget:Ke,DropTargetPadding:Pe}=oe({canDrag:De,canDragOnto:S,path:je,nodeData:be,onMove:T,onError:Se,translate:L}),Ve=t.useRef(!ce),{isEditing:Me,isEditingKey:Fe,isArray:_e,canEditKey:ze}=Ae;t.useEffect((()=>{le(G(j))}),[j,G]),t.useEffect((()=>{const e=N(be)&&!Me;Ve.current=!e,me(e)}),[N]),t.useEffect((()=>{if(null!==o){const e=d(je);e&&(Ve.current=!0,me(e.collapsed))}}),[o]);const Ie=t.useRef(null),Le=t.useCallback(((e,t)=>{if("function"!=typeof z)return z;const n=z(e,t);return void 0!==n?n:null}),[z]),Be=t.useCallback((e=>I?"function"!=typeof I?I:I(e):null),[I]),{CustomNode:We,customNodeProps:Ge,CustomWrapper:Ye,wrapperProps:He={},hideKey:Ue,showEditTools:$e=!0,showOnEdit:Ze,showOnView:Je,showCollectionWrapper:Xe=!0}=t.useMemo((()=>ne(B,be)),[be,B]),qe=h(fe);qe&&he&&me(!1);if(!(l("collection",be,P,V)||0===be.level)&&!qe)return null;const Qe=Array.isArray(j)?"array":"object",et="array"===Qe?{open:"[",close:"]"}:{open:"{",close:"}"},tt=e=>{if("Tab"!==e.key||e.getModifierState("Shift"))U(e,{objectConfirm:rt,cancel:at});else{e.preventDefault();const t=v(Ie,"\t");le(t)}},nt=e=>{e.stopPropagation();const t=g(e);if(t&&H.collapseModifier.includes(t))return Ve.current=!0,void c({collapsed:!he,path:je,includeChildren:!0});u&&u.includes(fe)||(Ve.current=!0,c(null),Z&&Z({path:je,collapsed:!he,includeChildren:!1}),me(!he))},rt=()=>{try{const e=W(te);if(p(null),y(null),Oe(null),G(e)===G(j))return;w(e,je).then((t=>{t&&Se({code:"UPDATE_ERROR",message:t},e)}))}catch(e){Se({code:"INVALID_JSON",message:L("ERROR_INVALID_JSON",be)},te)}},ot=je.length>0?()=>{O(j,je).then((e=>{e&&Se({code:"DELETE_ERROR",message:e},j)}))}:void 0,at=()=>{p(null),null===m?(Oe(null),le(G(j)),y(null)):w(m,je)},it="when-closed"===C?he:C,st=!Me&&$e,lt=(_||!_e)&&!Ue&&void 0!==ve,ct=We&&(Me&&Ze||!Me&&Je),dt=Object.entries(j).map((([e,t])=>["array"===Qe?Number(e):e,t]));"object"===Qe&&F(dt,(e=>e));const ut=Ve.current?Me?e.jsxs("div",{className:"jer-collection-text-edit",children:[Y?e.jsx(Y,{value:te,onChange:le,onKeyDown:e=>U(e,{objectConfirm:rt,cancel:at})}):e.jsx(i,{textAreaRef:Ie,className:"jer-collection-text-area",name:fe,value:te,setValue:le,handleKeyPress:tt,styles:r("input",be)}),e.jsx("div",{className:"jer-collection-input-button-row",children:e.jsx(Q,{onOk:rt,onCancel:at,nodeData:be,editConfirmRef:J})})]}):dt.map((([t,o],a)=>{const i={key:t,value:o,path:[...je,t],level:je.length+1,index:a,size:s(o)?Object.keys(o).length:null,parentData:j,fullData:be.fullData};return e.jsx("div",{className:"jer-collection-element",style:r("collectionElement",i),children:s(o)?e.jsx(ue,Object.assign({},n,{data:o,parentData:j,nodeData:i,showCollectionCount:C,canDragOnto:Ee}),t):e.jsx(se,Object.assign({},n,{data:o,parentData:j,nodeData:i,canDragOnto:Ee,showLabel:"object"===Qe||_}),t)},t)})):null,pt=!!Xe&&(he&&!qe);pt||(Ve.current=!0);const gt=Object.assign(Object.assign({},n),{data:j,value:j,parentData:E,nodeData:be,setValue:e=>a(void 0,void 0,void 0,(function*(){return yield w(e,je)})),handleEdit:rt,handleCancel:at,handleKeyPress:tt,isEditing:Me,setIsEditing:()=>p(je),getStyles:r,canDragOnto:Ee,canEdit:Ee,keyboardCommon:{},onError:Se}),ht=ct?e.jsx(We,Object.assign({customNodeProps:Ge},gt,{children:ut})):ut,mt=st&&e.jsx(q,{startEdit:Ee?()=>{Ve.current=!0,y(null),p(je)}:void 0,handleAdd:we?e=>{me(!1);const t=Le(be,e);if("array"===Qe){const e=$.array?0:j.length,n=$.array?{insert:!0}:{};D(t,[...je,e],n).then((e=>{e&&Se({code:"ADD_ERROR",message:e},t)}))}else if(e in j)Se({code:"KEY_EXISTS",message:L("ERROR_KEY_EXISTS",be)},e);else{const n=$.object?{insertBefore:0}:{};D(t,[...je,e],n).then((e=>{e&&Se({code:"ADD_ERROR",message:e},t)}))}}:void 0,handleDelete:Ce?ot:void 0,enableClipboard:R,type:Qe,nodeData:be,translate:L,customButtons:n.customButtons,keyboardControls:H,handleKeyboard:U,getNewKeyOptions:Be,editConfirmRef:J,jsonStringify:G}),yt={canEditKey:ze,isEditingKey:Fe,pathString:fe,path:je,name:ve,handleKeyboard:U,handleEditKey:Ne,handleCancel:at,keyValueArray:dt,styles:r("property",be),getNextOrPrevious:e=>f(be.fullData,je,e,F),handleClick:ee.includes("property")?nt:e=>e.stopPropagation()},ft=e.jsxs("div",Object.assign({className:"jer-component jer-collection-component",style:Object.assign(Object.assign({marginLeft:(0===je.length?0:M/2)+"em"},r("collection",be)),{position:"relative"}),draggable:De},Te,Re("above"),{children:[e.jsx("div",{className:"jer-clickzone",style:{width:M/2+1+"em",zIndex:10+2*be.level},onClick:ee.includes("left")?nt:void 0}),!Me&&Ke,e.jsx(Pe,{position:"above",nodeData:be}),Xe?e.jsxs("div",{className:"jer-collection-header-row",style:{position:"relative"},onClick:ee.includes("header")?nt:void 0,children:[e.jsxs("div",{className:"jer-collection-name",children:[e.jsx("div",{className:"jer-collapse-icon jer-accordion-icon"+(he?" jer-rotate-90":""),style:{zIndex:11+2*be.level,transition:ye},onClick:nt,children:e.jsx(X,{name:"chevron",rotate:he,nodeData:be})}),lt&&e.jsx(ie,Object.assign({},yt)),!Me&&e.jsx("span",{className:"jer-brackets jer-bracket-open",style:r("bracket",be),children:et.open})]}),!Me&&it&&e.jsx("div",{className:"jer-collection-item-count"+(it?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},r("itemCount",be)),{transition:ye}),children:1===xe?L("ITEM_SINGLE",Object.assign(Object.assign({},be),{size:1}),1):L("ITEMS_MULTIPLE",be,xe)}),e.jsx("div",{className:"jer-brackets"+(pt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},r("bracket",be)),{transition:ye}),children:et.close}),mt]}):Ue?e.jsx(e.Fragment,{}):e.jsxs("div",{className:"jer-collection-header-row",style:{position:"relative"},children:[e.jsx(ie,Object.assign({},yt)),mt]}),e.jsxs("div",{className:"jer-collection-inner",style:Object.assign(Object.assign({overflowY:pt||pe?"clip":"visible",maxHeight:qe?void 0:ge},r("collectionInner",be)),{transition:ye}),ref:de,children:[ht,e.jsx("div",{className:Me?"jer-collection-error-row":"jer-collection-error-row-edit",children:ke&&e.jsx("span",{className:"jer-error-slug",style:r("error",be),children:ke})}),!Me&&Xe&&e.jsx("div",{className:"jer-brackets jer-bracket-outside",style:Object.assign(Object.assign({},r("bracket",be)),{marginLeft:(M<3?-1:M<6?-.5:0)+"em"}),children:et.close})]}),e.jsx(Pe,{position:"below",nodeData:be})]}));return Ye?e.jsx(Ye,Object.assign({customNodeProps:He},gt,{children:ft})):ft},pe={ITEM_SINGLE:"{{count}} item",ITEMS_MULTIPLE:"{{count}} items",KEY_NEW:"Enter new key",KEY_SELECT:"Select key",NO_KEY_OPTIONS:"No key options",ERROR_KEY_EXISTS:"Key already exists",ERROR_INVALID_JSON:"Invalid JSON",ERROR_UPDATE:"Update unsuccessful",ERROR_DELETE:"Delete unsuccessful",ERROR_ADD:"Adding node unsuccessful",DEFAULT_STRING:"New data!",DEFAULT_NEW_KEY:"key",SHOW_LESS:"(Show less)"},ge=(e,t)=>(n,r,o)=>((e,t,n,r,o)=>{if(t[r]){const e=t[r](n);if(null!==e)return e}const a=r in e?e[r]:pe[r];return void 0===o?a:null==a?void 0:a.replace("{{count}}",String(o))})(e,t,r,n,o);var he=[],me=[];!function(e,t){if(e&&"undefined"!=typeof document){var n,r=!0===t.prepend?"prepend":"append",o=!0===t.singleTag,a="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(o){var i=he.indexOf(a);-1===i&&(i=he.push(a)-1,me[i]={}),n=me[i]&&me[i][r]?me[i][r]:me[i][r]=s()}else n=s();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function s(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),o=0;o<n.length;o++)e.setAttribute(n[o],t.attributes[n[o]]);var i="prepend"===r?"afterbegin":"beforeend";return a.insertAdjacentElement(i,e),e}}(':root{--jer-select-border:#b6b6b6;--jer-select-focus:#777;--jer-select-arrow:#777;--jer-form-border:1px solid #ededf0;--jer-form-border-focus:1px solid #e2e2e2;--jer-highlight-color:#b3d8ff}.jer-visible{opacity:1}.jer-hidden{opacity:0}.jer-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#000;cursor:inherit;font-family:inherit;font-size:.8em;line-height:inherit;margin:0;outline:none;padding:0 1em 0 0;z-index:1}select::-ms-expand{display:none}.jer-select{align-items:center;background-color:#fff;background-image:linear-gradient(0deg,#f9f9f9,#fff 33%);border:1px solid var(--jer-select-border);border-radius:.25em;cursor:pointer;display:grid;grid-template-areas:"select";line-height:1.1;max-width:15ch;min-width:12ch;padding:.25em .5em;position:relative}.jer-select select,.jer-select:after{grid-area:select}.jer-select:not(.jer-select--multiple):after{background-color:var(--jer-select-arrow);clip-path:polygon(100% 0,0 0,50% 100%);content:"";height:.5em;justify-self:end;width:.8em}select:focus+.focus{border:1px solid var(--jer-select-focus);border-radius:inherit;bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px}.jer-select-inner{text-overflow:ellipsis;width:100%}.jer-editor-container{border-radius:.5em;font-size:16px;line-height:1;padding:1em 1em 1em 2em;position:relative;text-align:left}.jer-editor-container textarea{border:var(--jer-form-border);border-radius:.3em;color:var(--jer-input-color);outline:none}.jer-editor-container textarea:focus{border:var(--jer-form-border-focus)}.jer-editor-container input{border:var(--jer-form-border);border-radius:.3em;font-family:inherit;outline:none}.jer-editor-container input:focus{border:var(--jer-form-border-focus)}.jer-editor-container ::selection{background-color:var(--jer-highlight-color)}.jer-collection-header-row,.jer-value-main-row{align-items:center;display:flex;gap:.3em;min-height:1.7em}.jer-collection-header-row{display:flex;flex-wrap:wrap}.jer-collapse-icon{left:-1.2em;position:absolute;top:.35em}.jer-collection-inner{position:relative}.jer-collection-text-edit{align-items:flex-start;display:flex;flex-direction:column;gap:.3em;line-height:1.1em}.jer-collection-text-area{font-family:inherit;font-size:.85em;max-height:40em;overflow:hidden;padding:.2em .5em 0;resize:both}.jer-collection-input-button-row{display:flex;font-size:150%;justify-content:flex-end;margin-top:.4em;width:100%}.jer-collection-error-row{bottom:.5em;position:absolute}.jer-error-slug{margin-left:1em}.jer-value-component{position:relative}.jer-value-main-row{display:flex;gap:0}.jer-value-and-buttons{align-items:center;display:flex;justify-content:flex-start;padding-left:.5em}.jer-value-error-row{position:absolute}.jer-value-string{line-height:1.3em;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.jer-string-expansion{cursor:pointer;filter:saturate(50%);opacity:.6}.jer-show-less{font-size:80%}.jer-hyperlink{text-decoration:underline}.jer-input-text{font-family:inherit;font-size:.9em;height:1.4em;line-height:1.2em;margin:0;min-width:6em;overflow:hidden;padding:.25em .5em .2em;resize:none}.jer-input-boolean{margin-left:.3em;margin-right:.3em;transform:scale(1.5)}.jer-key-text{line-height:1.1em;white-space:pre-wrap;word-break:break-word}.jer-key-edit{font-size:inherit;font-size:.9em;padding:0 .3em}.jer-value-invalid{font-style:italic;opacity:.5}.jer-input-number{font-size:90%;min-width:3em}.jer-confirm-buttons,.jer-edit-buttons{align-items:center;cursor:pointer;display:flex;height:1em}.jer-input-buttons{gap:.4em}.jer-edit-buttons{gap:.4em;margin-left:.5em;opacity:0}.jer-confirm-buttons{gap:.2em;margin-left:.4em}.jer-edit-buttons:hover{opacity:1;position:relative}.jer-collection-header-row:hover>.jer-edit-buttons,.jer-value-and-buttons:hover>.jer-edit-buttons,.jer-value-main-row:hover>.jer-edit-buttons{opacity:1}.jer-copy-pulse{position:relative;transition:.3s}.jer-copy-pulse:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-copy-pulse:after{border-radius:50%;box-shadow:0 0 15px 5px var(--jer-icon-copy-color);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .5s;width:100%}.jer-copy-pulse:active:after{border-radius:4em;box-shadow:0 0 0 0 var(--jer-icon-copy-color);left:0;opacity:1;position:absolute;top:0;transition:0s}.jer-copy-pulse:active{top:.07em}.jer-rotate-90{transform:rotate(-90deg)}.jer-icon:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-empty-string:after{content:"<empty string>";font-size:90%;font-style:italic}.jer-drag-n-drop-padding{border:1px dashed #e0e0e0;border-radius:.3em;height:.5em}.jer-clickzone{height:calc(100% - .8em);left:-1em;position:absolute;top:1.2em}',{});const ye=({data:n,setData:r,rootName:o="root",onUpdate:i=()=>{},onEdit:l=i,onDelete:c=i,onAdd:d=i,onChange:u,onError:g,showErrorMessages:m=!0,enableClipboard:f=!0,indent:b=2,collapse:j=!1,collapseAnimationTime:v=300,showCollectionCount:E=!0,restrictEdit:C=!1,restrictDelete:w=!1,restrictAdd:D=!1,restrictTypeSelection:O=!1,restrictDrag:S=!0,viewOnly:N,searchFilter:A,searchText:T,searchDebounceTime:R=350,keySort:P=!1,showArrayIndices:V=!0,showStringQuotes:M=!0,defaultValue:F=null,newKeyOptions:_,minWidth:z=250,maxWidth:I="min(600px, 90vw)",rootFontSize:L,stringTruncate:B=250,translations:W={},className:G,id:Y,customText:H={},customNodeDefinitions:U=[],customButtons:$=[],jsonParse:Z=JSON.parse,jsonStringify:J=(e,t)=>JSON.stringify(e,t,2),TextEditor:X,errorMessageTimeout:q=2500,keyboardControls:Q={},externalTriggers:ee,insertAtTop:te=!1,onCollapse:ne,collapseClickZones:re=["header","left"]})=>{const{getStyles:oe}=k(),{setCurrentlyEditingElement:ae}=K(),ie=t.useMemo((()=>be(j)),[j]),le=t.useMemo((()=>ge(W,H)),[W,H]),[ce,de]=t.useState(T),[pe,he]=(({setData:e,data:n})=>{const[r,o]=t.useState(e?void 0:n),a=t.useCallback((t=>{e?e(t):o(t)}),[e]);return t.useEffect((()=>{e||o(n)}),[n]),[e?n:r,a]})({setData:r,data:n}),me=t.useRef(null);t.useEffect((()=>{ae(null);const e=setTimeout((()=>de(T)),R);return()=>clearTimeout(e)}),[T,R]);const ye={key:o,path:[],level:0,index:0,value:pe,size:"object"==typeof pe&&null!==pe?Object.keys(pe).length:1,parentData:null,fullData:pe},Ee=(e,t)=>a(void 0,void 0,void 0,(function*(){const n=yield e(t);if(!0===n||void 0===n)return void he(t.newData);const r=ve(n)?n:["error",n],[o,a]=r;if("error"===o)return he(t.currentData),!1===a?le("ERROR_UPDATE",ye):String(a);he(a)})),Ce=t.useMemo((()=>be(C,N)),[C,N]),we=t.useMemo((()=>be(w,N)),[w,N]),De=t.useMemo((()=>be(D,N)),[D,N]),ke=t.useMemo((()=>be(S,N)),[S,N]),Oe=t.useMemo((()=>je(A)),[A]),Se=t.useMemo((()=>(e=>{const t=Object.assign({},y);for(const n of Object.keys(y)){const r=n;if(e[r]){const o=e[r],a=["clipboardModifier","collapseModifier"].includes(n)?Array.isArray(o)?o:[o]:"string"==typeof o?{key:o}:o;t[r]=a,["stringConfirm","numberConfirm","booleanConfirm"].forEach((n=>{!e[n]&&e.confirm&&(t[n]=t.confirm)}))}}return t})(Q)),[Q]),Ne=t.useCallback(((e,t)=>((e,t,n)=>{const r=Object.entries(t);for(const[t,o]of r)if(h(n,e[t],t)){n.preventDefault(),o();break}})(Se,t,e)),[Se]),Ae=t.useMemo((()=>{const e=xe(U,"stringifyReplacer");return t=>J(t,e)}),[U,J]),Te=t.useMemo((()=>{const e=xe(U,"parseReviver");return t=>{const n=Z(t,e);return x(n)}}),[U,Z]),Re=t.useRef(null);((e,n)=>{const{setCurrentlyEditingElement:r,currentlyEditingElement:o,setCollapseState:a}=K();t.useEffect((()=>{if(!e)return;const{collapse:t,edit:i}=e;t&&a(t);const s=!(null==i?void 0:i.path)||p(i.path)===o;switch(null==i?void 0:i.action){case"accept":s&&(n.current&&n.current.click(),r(null));break;case"cancel":s&&r(null);break;default:(null==i?void 0:i.path)&&r(i.path)}}),[e])})(ee,Re);const Ke=t.useCallback(((e,t)=>{!1!==P&&("function"!=typeof P?e.sort(((e,n)=>{const r=t(e)[0],o=t(n)[0];return r<o?-1:r>o?1:0})):e.sort(((e,n)=>P(t(e),t(n)))))}),[P]),Pe={mainContainerRef:me,name:o,nodeData:ye,onEdit:(e,t)=>a(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:a}=fe(pe,t,e,"update");if(o!==a)return yield Ee(l,{currentData:n,newData:r,currentValue:o,newValue:a,name:t.slice(-1)[0],path:t})})),onDelete:(e,t)=>a(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:a}=fe(pe,t,e,"delete");return yield Ee(c,{currentData:n,newData:r,currentValue:o,newValue:a,name:t.slice(-1)[0],path:t})})),onAdd:(e,t,n)=>a(void 0,void 0,void 0,(function*(){const{currentData:r,newData:o,currentValue:a,newValue:i}=fe(pe,t,e,"add",n);return yield Ee(d,{currentData:r,newData:o,currentValue:a,newValue:i,name:t.slice(-1)[0],path:t})})),onChange:u,onError:g,showErrorMessages:m,onMove:(e,t,n)=>a(void 0,void 0,void 0,(function*(){if(null===e)return;const{currentData:r,newData:o,currentValue:a}=fe(pe,e,"","delete"),i=e.slice(-1)[0],s=t.slice(0,-1),c=t.slice(-1)[0];let d="number"==typeof c?"above"===n?c:c+1:"number"==typeof i?`arr_${i}`:i;e.slice(0,-1).join(".")===t.slice(0,-1).join(".")&&"number"==typeof i&&"number"==typeof d&&i<d&&(d-=1);const u="number"==typeof d?{insert:!0}:"above"===n?{insertBefore:c}:{insertAfter:c},{newData:p,newValue:g}=fe(o,[...s,d],a,"add",u);return yield Ee(l,{currentData:r,newData:p,currentValue:a,newValue:g,name:t.slice(-1)[0],path:t})})),showCollectionCount:E,collapseFilter:ie,collapseAnimationTime:v,restrictEditFilter:Ce,restrictDeleteFilter:we,restrictAddFilter:De,restrictTypeSelection:O,restrictDragFilter:ke,canDragOnto:!1,searchFilter:Oe,searchText:ce,enableClipboard:f,keySort:P,sort:Ke,showArrayIndices:V,showStringQuotes:M,indent:b,defaultValue:F,newKeyOptions:_,stringTruncate:B,translate:le,customNodeDefinitions:U,customButtons:$,parentData:null,jsonParse:Te,jsonStringify:Ae,TextEditor:X,errorMessageTimeout:q,handleKeyboard:Ne,keyboardControls:Se,insertAtTop:{object:!0===te||"object"===te,array:!0===te||"array"===te},onCollapse:ne,editConfirmRef:Re,collapseClickZones:re},Ve=Object.assign(Object.assign({},oe("container",ye)),{minWidth:z,maxWidth:I});return Ve.fontSize=null!=L?L:Ve.fontSize,e.jsx("div",{id:Y,ref:me,className:`jer-editor-container ${null!=G?G:""}`,style:Ve,children:s(pe)?e.jsx(ue,Object.assign({data:pe},Pe)):e.jsx(se,Object.assign({data:pe,showLabel:!0},Pe))})},fe=(e,t,o,a,i={})=>{if(0===t.length)return{currentData:e,newData:o,currentValue:e,newValue:o};const s=Object.assign({remove:"delete"===a},i),l="add"!==a?r(e,t):void 0;return{currentData:e,newData:n(e,t,o,s),currentValue:l,newValue:"delete"!==a?o:void 0}},be=(e,t)=>t?()=>!0:"boolean"==typeof e?()=>e:"number"==typeof e?({level:t})=>t>=e:e,je=e=>{if(void 0!==e)return"value"===e?d:"key"===e?u:"all"===e?(e,t)=>d(e,t)||u(e,t):e},ve=e=>Array.isArray(e)&&2===e.length&&["error","value"].includes(e[0]),xe=(e,t)=>{const n="stringifyReplacer"===t?[e=>void 0===e?E:e]:[];if(n.push(...e.map((e=>e[t])).filter((e=>!!e))),0!==n.length)return(e,t)=>{let r=t;for(const e of n)r=e(r);return r}},Ee=t=>{var n;const{value:r,setIsEditing:o,getStyles:a,nodeData:i}=t,s=a("string",i);return e.jsx("div",{onDoubleClick:()=>o(!0),onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&o(!0)},className:"jer-value-string jer-hyperlink",style:s,children:e.jsx("a",{href:r,target:"_blank",rel:"noreferrer",style:{color:null!==(n=s.color)&&void 0!==n?n:void 0},children:e.jsx(M,Object.assign({},t,{pathString:p(i.path),styles:s,value:i.value}))})})},Ce={condition:({value:e})=>"string"==typeof e&&/^https?:\/\/.+\..+$/.test(e),element:Ee,showOnView:!0,showOnEdit:!1};exports.assign=n,exports.extract=r,exports.IconAdd=G,exports.IconCancel=Z,exports.IconChevron=J,exports.IconCopy=U,exports.IconDelete=H,exports.IconEdit=Y,exports.IconOk=$,exports.JsonEditor=n=>{var r;const[o,a]=t.useState();return t.useEffect((()=>{const e=document.documentElement;a(e)}),[]),o?e.jsx(D,{theme:null!==(r=n.theme)&&void 0!==r?r:C,icons:n.icons,docRoot:o,children:e.jsx(R,{onEditEvent:n.onEditEvent,onCollapse:n.onCollapse,children:e.jsx(ye,Object.assign({},n))})}):null},exports.LinkCustomComponent=Ee,exports.LinkCustomNodeDefinition=Ce,exports.StringDisplay=M,exports.StringEdit=F,exports.candyWrapperTheme={displayName:"Candy Wrapper",fragments:{minty:{backgroundColor:"#F1FAEE"},pale:{color:"#A8DADC"},mid:{color:"#457B9D"},dark:{color:"#1D3557"},pop:{color:"#E63946"},darkBlue:{color:"#2B2D42"}},styles:{container:"minty",property:"pop",dropZone:"#eb121217",bracket:"dark",itemCount:"pale",string:"mid",number:["darkBlue",{fontSize:"85%"}],boolean:["mid",{fontStyle:"italic",fontWeight:"bold",fontSize:"80%"}],null:["#cccccc",{fontWeight:"bold"}],input:{border:"1px solid rgb(115, 194, 198)"},iconCollection:"#1D3557",iconEdit:"#457B9D",iconDelete:"#E63946",iconAdd:"#2B2D42",iconCopy:"#1D3557",iconCancel:"#E63946"}},exports.defaultTheme=C,exports.githubDarkTheme={displayName:"Github Dark",styles:{container:{backgroundColor:"#0d1117",color:"white"},dropZone:"rgba(165, 214, 255, 0.17)",property:"#E6EDF3",bracket:"#56d364",itemCount:"#8B949E",string:"#A5D6FF",number:"#D2A8FF",boolean:{color:"#FF7B72",fontSize:"90%",fontWeight:"bold"},null:"green",iconCollection:"#D2A8FF",iconEdit:"#D2A8FF",iconDelete:"rgb(203, 75, 22)",iconAdd:"rgb(203, 75, 22)",iconCopy:"#A5D6FF",iconOk:"#56d364",iconCancel:"rgb(203, 75, 22)"}},exports.githubLightTheme={displayName:"Github Light",styles:{container:"white",property:"#1F2328",bracket:"#00802e",itemCount:"#8B949E",string:"#0A3069",number:"#953800",boolean:{color:"#CF222E",fontSize:"90%",fontWeight:"bold"},null:"#FF7B72",iconCollection:"#8250DF",iconEdit:"#8250DF",iconDelete:"rgb(203, 75, 22)",iconAdd:"#8250DF",iconCopy:"#57606A"}},exports.isCollection=s,exports.matchNode=d,exports.matchNodeKey=u,exports.monoDarkTheme={displayName:"Black & White",fragments:{lightText:{color:"white"},midGrey:"#5c5c5c"},styles:{container:["lightText",{backgroundColor:"black"}],dropZone:"#e0e0e029",property:"lightText",bracket:"midGrey",itemCount:"#4a4a4a",string:"#a8a8a8",number:"#666666",boolean:{color:"#848484",fontStyle:"italic"},null:"#333333",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},exports.monoLightTheme={fragments:{midGrey:"#a3a3a3"},displayName:"White & Black",styles:{container:"white",property:"black",bracket:"midGrey",itemCount:"#b5b5b5",string:"#575757",number:"#999999",boolean:{color:"#7b7b7b",fontStyle:"italic"},null:"#cccccc",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},exports.psychedelicTheme={displayName:"Psychedelic",fragments:{pale:{color:"#A8DADC"},fluroYellow:"rgb(242, 228, 21)",fluroGreen:"rgb(68, 255, 62)",hotPink:"#f7379a"},styles:{container:{backgroundColor:"unset",background:"linear-gradient(90deg, hsla(333, 100%, 53%, 1) 0%, hsla(33, 94%, 57%, 1) 100%)",color:"black"},dropZone:"fluroYellow",property:"black",bracket:"fluroYellow",itemCount:["pale",{opacity:.7}],string:"white",number:["#33d9ff",{fontSize:"90%",fontWeight:"bold"}],boolean:["fluroGreen",{fontWeight:"bold",fontSize:"80%"}],null:["black",{fontWeight:"bold",opacity:.3,backgroundColor:"rgb(255, 255, 255, 0.5)",padding:"0 0.4em",borderRadius:"0.4em"}],iconCollection:"fluroYellow",iconEdit:["black"],iconDelete:["white",{opacity:.5}],iconAdd:["white",{opacity:.5}],iconCopy:"rgb(32, 84, 242)",iconOk:"fluroGreen",iconCancel:"hotPink"}},exports.standardDataTypes=te,exports.toPathString=p,exports.useKeyboardListener=L;
"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("object-property-assigner"),r=require("object-property-extractor");function o(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i=({className:t,name:n,value:r,setValue:o,handleKeyPress:a,styles:i,textAreaRef:s})=>{if("string"!=typeof r)return null;const l="\n"===r.slice(-1)?r+".":r;return e.jsxs("div",{style:{display:"grid"},children:[e.jsx("textarea",{id:`${n}_textarea`,ref:s,style:Object.assign({height:"auto",gridArea:"1 / 1 / 2 / 2",overflowY:"auto",whiteSpace:"pre-wrap"},i),rows:1,className:t,name:`${n}_textarea`,value:r,onChange:e=>o(e.target.value),autoFocus:!0,onFocus:e=>{r.length<40&&e.target.select()},onKeyDown:a}),e.jsx("span",{className:t,style:Object.assign({visibility:"hidden",height:"auto",gridArea:"1 / 1 / 2 / 2",color:"red",opacity:.9,whiteSpace:"pre-wrap",overflowY:"auto",border:"1px solid transparent"},i),children:l})]})},s=e=>null!==e&&"object"==typeof e,l=(e,t,n,r="")=>{if(!n&&!r)return!0;switch(e){case"collection":if(n){if(n(t,r))return!0;if(!c(r,t,n))return!1}if(!n&&r&&!c(r,t))return!1;break;case"value":if(n&&!n(t,r))return!1;if(!n&&r&&!d(t,r))return!1}return!0},c=(e="",t,n=d)=>{const r=t.value;return Object.entries(r).some((([o,a])=>{const i=[...t.path,o],l=Object.assign(Object.assign({},t),{key:o,path:i,level:t.level+1,value:a,size:i.length,parentData:r});return s(a)?c(e,l,n):n(l,e)}))},d=(e,t="")=>{const{value:n}=e;if(null===n&&"null".includes(t.toLowerCase()))return!0;switch(typeof n){case"string":return n.toLowerCase().includes(t.toLowerCase());case"number":return!!String(n).includes(t);case"boolean":return n?"true".includes(t.toLowerCase())||"1"===t:"false".includes(t.toLowerCase())||"0"===t;default:return!1}},u=({key:e,path:t},n="")=>!!d({value:e},n)||!!t.some((e=>d({value:e},n))),p=(e,t)=>(null!=t?t:"")+e.map((e=>""===e?String.fromCharCode(0):e)).join("."),g=e=>e.shiftKey?"Shift":e.metaKey?"Meta":e.ctrlKey?"Control":e.altKey?"Alt":void 0,m=(e,t,n)=>{const r=e.key,o=g(e);if(Array.isArray(t))return!!o&&t.includes(o);const{key:a,modifier:i}=t;return("stringLineBreak"!==n||"Enter"!==r||"Shift"!==o||"Enter"!==a||!(null==i?void 0:i.includes("Shift")))&&(r===a&&(i===o||Array.isArray(i)&&i.includes(o)))},h={key:"Enter"},y={confirm:h,cancel:{key:"Escape"},objectConfirm:Object.assign(Object.assign({},h),{modifier:["Meta","Shift","Control"]}),objectLineBreak:h,stringConfirm:h,stringLineBreak:Object.assign(Object.assign({},h),{modifier:["Shift"]}),numberConfirm:h,numberUp:{key:"ArrowUp"},numberDown:{key:"ArrowDown"},tabForward:{key:"Tab"},tabBack:{key:"Tab",modifier:"Shift"},booleanConfirm:h,booleanToggle:{key:" "},clipboardModifier:["Meta","Control"],collapseModifier:["Alt"]},f=(e,t,n="next",o)=>{const a=t.slice(0,t.length-1),i=t.slice(-1)[0];if(void 0===i)return null;const l=r(e,a),c=j(l);Array.isArray(l)||o(c,(({key:e,value:t})=>[e,t]));const d=c.findIndex((e=>e.key===i)),u=c[d+("next"===n?1:-1)];return u?s(u.value)?0===Object.keys(u.value).length?f(e,[...a,u.key],n,o):b(e,[...a,u.key],n,o):[...a,u.key]:0===a.length?null:f(e,a,n,o)},b=(e,t,n="next",o)=>{const a=r(e,t);if(!s(a))return t;const i=Array.isArray(a)?a.map(((e,t)=>t)):Object.keys(a);o(i,(e=>[e,a]));const l="next"===n?i[0]:i[i.length-1];return b(e,[...t,l],n,o)},j=e=>Array.isArray(e)?e.map(((e,t)=>({index:t,value:e,key:t}))):Object.entries(e).map((([e,t],n)=>({key:e,value:t,index:n}))),v=(e,t)=>{var n,r,o,a;const i=e.current,s=null!==(n=null==i?void 0:i.selectionStart)&&void 0!==n?n:1/0,l=null!==(r=null==i?void 0:i.selectionEnd)&&void 0!==r?r:1/0,c=(null===(o=null==i?void 0:i.textContent)||void 0===o?void 0:o.slice(0,s))+t+(null===(a=null==i?void 0:i.textContent)||void 0===a?void 0:a.slice(l));return i.value=c,null==i||i.setSelectionRange(s+1,s+1),c},x=e=>{if(e!==E){if(Array.isArray(e))return e.map((e=>x(e)));if(e&&"object"==typeof e)for(const t in e)e[t]=x(e[t]);return e}},E="__​undefined__",C={displayName:"Default",fragments:{edit:"rgb(42, 161, 152)"},styles:{container:{backgroundColor:"#f6f6f6",fontFamily:"monospace"},collection:{},collectionInner:{},collectionElement:{},dropZone:{},property:"#292929",bracket:{color:"rgb(0, 43, 54)",fontWeight:"bold"},itemCount:{color:"rgba(0, 0, 0, 0.3)",fontStyle:"italic"},string:"rgb(203, 75, 22)",number:"rgb(38, 139, 210)",boolean:"green",null:{color:"rgb(220, 50, 47)",fontVariant:"small-caps",fontWeight:"bold"},input:["#292929"],inputHighlight:"#b3d8ff",error:{fontSize:"0.8em",color:"red",fontWeight:"bold"},iconCollection:"rgb(0, 43, 54)",iconEdit:"edit",iconDelete:"rgb(203, 75, 22)",iconAdd:"edit",iconCopy:"rgb(38, 139, 210)",iconOk:"green",iconCancel:"rgb(203, 75, 22)"}},D=t.createContext({getStyles:()=>({}),icons:{}}),w=({theme:t=C,icons:n={},docRoot:r,children:o})=>{const a=O(t,r);return e.jsx(D.Provider,{value:{getStyles:(e,t)=>"function"==typeof a[e]?a[e](t):a[e],icons:n},children:o})},k=()=>t.useContext(D),O=(e,t)=>{var n,r,o,a;const i={},s=(Array.isArray(e)?e:[e]).map((e=>N(e)?S({fragments:{},styles:e},i):S(e,i))),l=S(C,{});Object.keys(l).forEach((e=>{const t=e;s.forEach((e=>{e[t]&&(l[t]=Object.assign(Object.assign({},l[t]),e[t]))}))}));const c=Object.assign({},l);return Object.entries(i).forEach((([e,t])=>{const n=e;c[n]=e=>{const r=t(e)||{};return Object.assign(Object.assign({},l[n]),r)}})),"function"!=typeof(null==c?void 0:c.inputHighlight)&&(null===(n=null==c?void 0:c.inputHighlight)||void 0===n?void 0:n.backgroundColor)&&t.style.setProperty("--jer-highlight-color",null===(r=null==c?void 0:c.inputHighlight)||void 0===r?void 0:r.backgroundColor),"function"!=typeof(null==c?void 0:c.iconCopy)&&(null===(o=null==c?void 0:c.iconCopy)||void 0===o?void 0:o.color)&&t.style.setProperty("--jer-icon-copy-color",null===(a=null==c?void 0:c.iconCopy)||void 0===a?void 0:a.color),c},S=(e,t)=>{const{fragments:n,styles:r}=e,o={};return Object.entries(r).forEach((([e,r])=>{const a=(Array.isArray(r)?r:[r]).reduce(((r,o)=>{var a,i;if("function"==typeof o)return t[e]=o,Object.assign({},r);if("string"==typeof o){const t=null!==(a=null==n?void 0:n[o])&&void 0!==a?a:o;return"string"==typeof t?Object.assign(Object.assign({},r),{[null!==(i=T[e])&&void 0!==i?i:"color"]:t}):Object.assign(Object.assign({},r),t)}return Object.assign(Object.assign({},r),o)}),{});o[e]=a})),o},N=e=>!("styles"in e),T={container:"backgroundColor",collection:"backgroundColor",collectionInner:"backgroundColor",collectionElement:"backgroundColor",dropZone:"borderColor",inputHighlight:"backgroundColor"},A=t.createContext(null),R=({children:n,onEditEvent:r,onCollapse:o})=>{const[a,i]=t.useState(null),[s,l]=t.useState(null),[c,d]=t.useState(null),[u,g]=t.useState({path:null,pathString:null}),m=t.useRef(null),h=t.useRef("next"),y=t.useRef(null);return e.jsx(A.Provider,{value:{collapseState:a,setCollapseState:e=>{i(e),o&&null!==e&&(Array.isArray(e)?e.forEach((e=>o(e))):o(e)),null!==e&&setTimeout((()=>i(null)),2e3)},getMatchingCollapseState:e=>{if(Array.isArray(a)){for(const t of a)if(P(e,t))return t;return null}return P(e,a)?a:null},currentlyEditingElement:s,setCurrentlyEditingElement:(e,t)=>{const n="string"==typeof e||null===e?e:p(e,"key"===t?"key_":void 0);null!==s&&null!==n&&null!==m.current&&m.current(),l(n),r&&r(e,"key"===t),m.current="function"==typeof t?t:null},areChildrenBeingEdited:e=>null!==s&&s.includes(e),previouslyEditedElement:y.current,setPreviouslyEditedElement:e=>{y.current=e},tabDirection:h.current,setTabDirection:e=>{h.current=e},previousValue:c,setPreviousValue:d,dragSource:u,setDragSource:g},children:n})},K=()=>{const e=t.useContext(A);if(!e)throw new Error("Missing Context Provider");return e},P=(e,t)=>{if(null===t)return!1;if(!t.includeChildren)return t.path.every(((t,n)=>e[n]===t))&&t.path.length===e.length;for(const[n,r]of t.path.entries())if(r!==e[n])return!1;return!0},V="**INVALID_FUNCTION**",M=({nodeData:n,showStringQuotes:r=!0,stringTruncate:o=200,pathString:a,canEdit:i,setIsEditing:s,styles:l,translate:c,value:d,TextWrapper:u=({children:e})=>e})=>{const p=null!=d?d:n.value,[g,m]=t.useState(!1),h=r?'"':"",y=p.length>o,f=()=>{i?s(!0):m(!g)};return e.jsxs("div",{id:`${a}_display`,onDoubleClick:f,onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&f()},className:"jer-value-string",style:l,children:[h,y?g?e.jsxs(e.Fragment,{children:[e.jsx(u,{children:e.jsxs("span",{children:[p,h]})}),e.jsxs("span",{className:"jer-string-expansion jer-show-less",onClick:()=>m(!1),children:[" ",c("SHOW_LESS",n)]})]}):e.jsxs(e.Fragment,{children:[e.jsxs(u,{children:[e.jsx("span",{children:p.slice(0,o-2).trimEnd()})," "]}),e.jsx("span",{className:"jer-string-expansion jer-ellipsis",onClick:()=>m(!0),children:"..."}),h]}):e.jsx(u,{children:`${p}${h}`})]})},_=({styles:n,pathString:r,value:o,setValue:a,handleEdit:s,handleKeyboard:l,keyboardCommon:c})=>{const d=t.useRef(null);return e.jsx(i,{className:"jer-input-text",textAreaRef:d,name:r,value:o,setValue:a,handleKeyPress:e=>{l(e,Object.assign({stringConfirm:s,stringLineBreak:()=>{const e=v(d,"\n");a(e)}},c))},styles:n})},F=t=>{var{isEditing:n,path:r,enumType:a}=t,i=o(t,["isEditing","path","enumType"]);const{getStyles:s}=k(),l=p(r),{value:c,setValue:d,nodeData:u,handleEdit:g,handleKeyboard:m,keyboardCommon:h}=i;return n&&a?e.jsxs("div",{className:"jer-select jer-select-enums",children:[e.jsx("select",{name:`${l}-value-select`,className:"jer-select-inner",onChange:e=>d(e.target.value),value:c,autoFocus:!0,onKeyDown:e=>{m(e,Object.assign({stringConfirm:g},h))},children:a.values.map((t=>e.jsx("option",{value:t,children:t},t)))}),e.jsx("span",{className:"focus"})]}):n?e.jsx(_,Object.assign({styles:s("input",u),pathString:l},i,{setValue:i.setValue})):e.jsx(M,Object.assign({pathString:l,styles:s("string",u)},i))},z=({value:t,setValue:n,isEditing:r,path:o,setIsEditing:a,handleEdit:i,nodeData:s,handleKeyboard:l,keyboardCommon:c})=>{const{getStyles:d}=k();return r?e.jsx("input",{className:"jer-input-number",type:"text",name:p(o),value:t,onChange:e=>n(e.target.value.replace(/[^0-9.-]/g,"")),autoFocus:!0,onFocus:e=>setTimeout((()=>e.target.select()),10),onKeyDown:e=>l(e,Object.assign({numberConfirm:i,numberUp:()=>n(Number(t)+1),numberDown:()=>n(Number(t)-1)},c)),style:Object.assign({width:String(t).length/1.5+2+"em"},d("input",s))}):e.jsx("span",{onDoubleClick:()=>a(!0),className:"jer-value-number",style:d("number",s),children:t})},I=({value:t,setValue:n,isEditing:r,path:o,setIsEditing:a,handleEdit:i,nodeData:s,handleKeyboard:l,keyboardCommon:c})=>{const{getStyles:d}=k();return"boolean"!=typeof t?null:r?e.jsx("input",{className:"jer-input-boolean",type:"checkbox",name:p(o),checked:t,onChange:()=>n(!t),onKeyDown:e=>{" "===e.key&&e.preventDefault(),l(e,Object.assign({booleanConfirm:i,booleanToggle:()=>n(!t)},c))},autoFocus:!0}):e.jsx("span",{onDoubleClick:()=>a(!0),className:"jer-value-boolean",style:d("boolean",s),children:String(t)})},L=(e,n)=>{const r=t.useRef(void 0),o=t.useRef(n);t.useEffect((()=>{o.current=n}),[n]);const a=e=>{o.current(e)};t.useEffect((()=>{if(window.clearTimeout(r.current),e)return r.current=window.setTimeout((()=>{window.addEventListener("keydown",a)}),100),()=>{window.clearTimeout(r.current),window.removeEventListener("keydown",a)}}),[e])},B=({value:t,isEditing:n,setIsEditing:r,handleEdit:o,nodeData:a,handleKeyboard:i,keyboardCommon:s})=>{const{getStyles:l}=k();return L(n,(e=>i(e,Object.assign({confirm:o},s)))),e.jsx("div",{onDoubleClick:()=>r(!0),className:"jer-value-null",style:l("null",a),children:String(t)})},W=({value:t})=>{let n="Error!";switch(typeof t){case"string":t===V&&(n="Function");break;case"undefined":n="Undefined";break;case"symbol":n="Symbol"}return e.jsx("span",{className:"jer-value-invalid",children:n})},G=({size:t,style:n,className:r})=>e.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,children:[e.jsx("path",{d:"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z"}),e.jsx("path",{d:"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z"})]}),Y=({size:t,style:n,className:r})=>e.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,transform:"translate(0, 0.5)",children:[e.jsx("path",{d:"M7 17.013l4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z"}),e.jsx("path",{d:"M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z"})]}),H=({size:t,style:n,className:r})=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,children:e.jsx("path",{d:"M6 19a2 2 0 002 2h8a2 2 0 002-2V7H6v12m2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12M15.5 4l-1-1h-5l-1 1H5v2h14V4h-3.5z"})}),U=({size:t,style:n,className:r})=>e.jsxs("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:t,height:t,className:r,style:n,children:[e.jsx("path",{d:"M9 2 H15 A1 1 0 0 1 16 3 V5 A1 1 0 0 1 15 6 H9 A1 1 0 0 1 8 5 V3 A1 1 0 0 1 9 2 z"}),e.jsx("path",{d:"M8 4H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2v-2M16 4h2a2 2 0 012 2v4M21 14H11"}),e.jsx("path",{d:"M15 10l-4 4 4 4"})]}),$=({size:t,style:n,className:r})=>e.jsxs("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:t,height:t,className:r,style:n,children:[e.jsx("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),e.jsx("path",{d:"M22 4L12 14.01l-3-3"})]}),Z=({size:t,style:n,className:r})=>e.jsx("svg",{baseProfile:"tiny",viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:r,style:n,children:e.jsx("path",{d:"M12 4c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8zm-5 8c0-.832.224-1.604.584-2.295l6.711 6.711A4.943 4.943 0 0112 17c-2.757 0-5-2.243-5-5zm9.416 2.295L9.705 7.584A4.943 4.943 0 0112 7c2.757 0 5 2.243 5 5 0 .832-.224 1.604-.584 2.295z"})}),J=({size:t,style:n,className:r})=>e.jsx("svg",{viewBox:"0 0 512 512",fill:"currentColor",width:t,height:t,className:r,style:n,children:e.jsx("path",{d:"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"})}),X=({name:t,nodeData:n})=>{var r,o,a,i,s,l,c;const{getStyles:d,icons:u}=k(),p={size:"1.4em",className:"jer-icon"};switch(t){case"add":return null!==(r=null==u?void 0:u.add)&&void 0!==r?r:e.jsx(G,Object.assign({},p,{style:d("iconAdd",n)}));case"edit":return null!==(o=null==u?void 0:u.edit)&&void 0!==o?o:e.jsx(Y,Object.assign({},p,{style:d("iconEdit",n)}));case"delete":return null!==(a=null==u?void 0:u.delete)&&void 0!==a?a:e.jsx(H,Object.assign({},p,{style:d("iconDelete",n),size:"1.45em"}));case"copy":return null!==(i=null==u?void 0:u.copy)&&void 0!==i?i:e.jsx(U,Object.assign({},p,{style:d("iconCopy",n),size:"1.2em"}));case"ok":return null!==(s=null==u?void 0:u.ok)&&void 0!==s?s:e.jsx($,Object.assign({},p,{style:Object.assign({fontSize:"90%"},d("iconOk",n))}));case"cancel":return null!==(l=null==u?void 0:u.cancel)&&void 0!==l?l:e.jsx(Z,Object.assign({},p,{style:Object.assign({fontSize:"130%"},d("iconCancel",n))}));case"chevron":return null!==(c=null==u?void 0:u.chevron)&&void 0!==c?c:e.jsx(J,{size:"1em",style:d("iconCollection",n)});default:return e.jsx(e.Fragment,{})}},q=({startEdit:n,handleDelete:o,handleAdd:a,enableClipboard:i,type:s,customButtons:l,nodeData:c,translate:d,keyboardControls:u,handleKeyboard:p,editConfirmRef:m,getNewKeyOptions:h,jsonStringify:y})=>{const{getStyles:f}=k(),b=d("KEY_NEW",c),[j,v]=t.useState(b),[x,E]=t.useState(!1),{key:C,path:D,value:w}=c,O=Array.isArray(x),S=e=>{var t;if(!e)return void E(!1);const n=Object.keys(r(c.fullData,D)),o=h?null===(t=h(c))||void 0===t?void 0:t.filter((e=>!n.includes(e))):null;o&&v(""),E(null==o||o)};return e.jsxs("div",{className:"jer-edit-buttons",style:{opacity:x?1:void 0},onClick:e=>e.stopPropagation(),children:[i&&e.jsx("div",{onClick:e=>{var t;e.stopPropagation();let n,r,o="value",a="",l=null;if(i){const c=g(e);if(c&&u.clipboardModifier.includes(c)?(n=ee(D),a=n,o="path"):(n=w,a=s?y(w):String(n)),!navigator.clipboard)return void("function"==typeof i&&i({success:!1,value:n,stringValue:a,path:D,key:C,type:o,errorMessage:"Can't access clipboard API"}));null===(t=navigator.clipboard)||void 0===t||t.writeText(a).then((()=>r=!0)).catch((e=>{r=!1,l=e.message})).finally((()=>{"function"==typeof i&&i({success:r,errorMessage:l,value:n,stringValue:a,path:D,key:C,type:o})}))}},className:"jer-copy-pulse",children:e.jsx(X,{name:"copy",nodeData:c})}),n&&e.jsx("div",{onClick:n,children:e.jsx(X,{name:"edit",nodeData:c})}),o&&e.jsx("div",{onClick:o,children:e.jsx(X,{name:"delete",nodeData:c})}),a&&e.jsx("div",{onClick:()=>{"object"===s?S(!0):a("")},children:e.jsx(X,{name:"add",nodeData:c})}),null==l?void 0:l.map((({Element:t,onClick:n},r)=>e.jsx("div",{onClick:e=>n&&n(c,e),children:e.jsx(t,{nodeData:c})},r))),x&&a&&"object"===s&&e.jsxs(e.Fragment,{children:[O?e.jsxs("div",{className:"jer-select jer-select-keys",children:[e.jsxs("select",{name:"new-key-select",className:"jer-select-inner",onChange:e=>{a(e.target.value),S(!1)},defaultValue:"",autoFocus:!0,onKeyDown:e=>{p(e,{cancel:()=>S(!1)})},children:[e.jsx("option",{value:"",disabled:!0,children:x.length>0?d("KEY_SELECT",c):d("NO_KEY_OPTIONS",c)}),x.map((t=>e.jsx("option",{value:t,children:t},t)))]}),e.jsx("span",{className:"focus"})]}):e.jsx("input",{className:"jer-input-new-key",type:"text",name:"new-object-key",value:j,onChange:e=>v(e.target.value),autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{p(e,{stringConfirm:()=>{a&&(S(!1),a(j),v(b))},cancel:()=>{S(!1),v(b)}})},style:f("input",c)}),e.jsx(Q,{onOk:()=>{O&&!j||(S(!1),a(j))},onCancel:()=>{S(!1)},nodeData:c,editConfirmRef:m,hideOk:O})]})]})},Q=({onOk:t,onCancel:n,nodeData:r,editConfirmRef:o,hideOk:a=!1})=>e.jsxs("div",{className:"jer-confirm-buttons",children:[!a&&e.jsx("div",{onClick:t,ref:o,children:e.jsx(X,{name:"ok",nodeData:r})}),e.jsx("div",{onClick:n,children:e.jsx(X,{name:"cancel",nodeData:r})})]}),ee=e=>e.reduce(((e,t)=>"number"==typeof t?`${e}[${t}]`:""===e?t:`${e}.${t}`),""),te=["string","number","boolean","null","object","array"],ne=({props:e,collapsed:n})=>{const{data:r,nodeData:o,parentData:a,onEdit:i,onError:s,showErrorMessages:l,restrictEditFilter:c,restrictDeleteFilter:d,restrictAddFilter:u,restrictDragFilter:g,translate:m,errorMessageTimeout:h}=e,{currentlyEditingElement:y,setCurrentlyEditingElement:f}=K(),[b,j]=t.useState(null),v=Object.assign(Object.assign({},o),{collapsed:n}),{path:x,key:E,size:C}=v,D=p(x),w=!c(v),k=!d(v),O=!u(v),S=!g(v)&&k&&null===y,N=e=>{l&&(j(e),setTimeout((()=>j(null)),h)),console.warn("Error",e)},T=t.useCallback(((e,t)=>{N(e.message),s&&s({currentData:v.fullData,errorValue:t,currentValue:r,name:E,path:x,error:e})}),[s,l]),A=y===D,R=y===`key_${D}`,P="number"==typeof x.slice(-1)[0],V={isEditing:A,isEditingKey:R,isArray:P,canEditKey:null!==a&&w&&O&&k&&!P},M=""===E&&x.length>0?m("EMPTY_STRING",v):null;return{pathString:D,nodeData:v,path:x,name:E,size:C,canEdit:w,canDelete:k,canAdd:O,canDrag:S,error:b,showError:N,onError:T,setError:j,handleEditKey:e=>{if(f(null),E===e)return;if(!a)return;const t=x.slice(0,-1);if(Object.keys(a).includes(e))return void T({code:"KEY_EXISTS",message:m("ERROR_KEY_EXISTS",v)},e);const n=Object.fromEntries(Object.entries(a).map((([t,n])=>t===E?[e,n]:[t,n])));i(n,t).then((t=>{t&&T({code:"UPDATE_ERROR",message:t},e)}))},derivedValues:V,emptyStringKey:M}},re=({canDrag:n,canDragOnto:r,path:o,nodeData:a,onMove:i,onError:s,translate:l})=>{const{getStyles:c}=k(),{dragSource:d,setDragSource:u}=K(),[g,m]=t.useState(!1),h=p(o),y=t.useMemo((()=>n?{onDragStart:e=>{e.stopPropagation(),u({path:o,pathString:h})},onDragEnd:e=>{e.stopPropagation(),u({path:null,pathString:null})}}:{}),[n,h]),f=t.useMemo((()=>e=>r?{onDragOver:e=>{e.stopPropagation(),e.preventDefault()},onDrop:t=>{t.stopPropagation(),j(e),u({path:null,pathString:null}),m(!1)},onDragEnter:t=>{var n;t.stopPropagation(),h.startsWith(null!==(n=d.pathString)&&void 0!==n?n:"")||m(e)},onDragExit:e=>{e.stopPropagation(),m(!1)}}:{}),[d,r,h]),b=t.useMemo((()=>r&&null!==d.pathString?e.jsx("div",Object.assign({className:"jer-drop-target-bottom",style:{height:"50%",position:"absolute",width:"100%",top:"50%",zIndex:o.length}},f("below"))):null),[d,r,o.length]),j=e=>{var t,n;const r=null===(t=d.path)||void 0===t?void 0:t.slice(-1)[0],c=null===(n=d.path)||void 0===n?void 0:n.slice(0,-1).join("."),u=o.slice(0,-1).join(""),{parentData:p}=a;"string"==typeof r&&p&&!Array.isArray(p)&&Object.keys(p).includes(r)&&r in p&&c!==u?s({code:"KEY_EXISTS",message:l("ERROR_KEY_EXISTS",a)},r):i(d.path,o,e).then((e=>{e&&s({code:"UPDATE_ERROR",message:e},a.value)}))};return{dragSourceProps:y,getDropTargetProps:f,BottomDropTarget:b,DropTargetPadding:({position:t,nodeData:n})=>g===t?e.jsx("div",{className:"jer-drag-n-drop-padding",style:c("dropZone",n)}):null,handleDrop:j}},oe=(e,t,n,r)=>{var o,a,i;if(!t.current)return 0;const s=parseInt(null!==(o=getComputedStyle(n.current).getPropertyValue("line-height"))&&void 0!==o?o:"16px"),l=(null!==(i=null===(a=t.current)||void 0===a?void 0:a.offsetWidth)&&void 0!==i?i:0)/(.5*s),c=r(e).replace(/\\n/g,"\n").split("\n").map((e=>Math.ceil(e.length/l))).reduce(((e,t)=>e+t),0)*s;return Math.min(c+30,window.innerHeight-50)},ae=({isEditingKey:t,canEditKey:n,pathString:r,path:o,name:a,handleKeyboard:i,handleEditKey:s,handleCancel:l,handleClick:c,keyValueArray:d,styles:u,getNextOrPrevious:p,emptyStringKey:g})=>{const{setCurrentlyEditingElement:m}=K();return t?e.jsx("input",{className:"jer-input-text jer-key-edit",type:"text",name:r,defaultValue:a,autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>i(e,{stringConfirm:()=>s(e.target.value),cancel:l,tabForward:()=>{if(s(e.target.value),d){const e=null==d?void 0:d[0][0];m(e?[...o,e]:p("next"))}else m(o)},tabBack:()=>{s(e.target.value),m(p("prev"))}}),style:{width:String(a).length/1.5+.5+"em"}}):e.jsxs("span",{className:"jer-key-text",style:Object.assign(Object.assign({},u),{minWidth:`${Math.min(String(a).length+1,5)}ch`,flexShrink:a.length>10?1:0}),onDoubleClick:()=>n&&m(o,"key"),onClick:c,children:[g?e.jsx("span",{className:"jer-empty-string",children:g}):a,a||g?e.jsx("span",{className:"jer-key-colon",children:":"}):null]})},ie=n=>{const{data:r,parentData:o,onEdit:a,onDelete:i,onChange:s,onMove:c,enableClipboard:d,canDragOnto:u,restrictTypeSelection:p,searchFilter:g,searchText:m,showLabel:h,stringTruncate:y,showStringQuotes:b,indent:j,translate:v,customNodeDefinitions:x,customNodeData:E,handleKeyboard:C,keyboardControls:D,sort:w,editConfirmRef:O,jsonStringify:S}=n,{getStyles:N}=k(),{setCurrentlyEditingElement:T,setCollapseState:A,previouslyEditedElement:R,setPreviouslyEditedElement:P,tabDirection:M,setTabDirection:_,previousValue:F,setPreviousValue:z}=K(),[I,L]=t.useState("function"==typeof r?V:r),{pathString:B,nodeData:W,path:G,name:Y,canEdit:H,canDelete:U,canDrag:$,error:Z,onError:J,handleEditKey:X,emptyStringKey:ee,derivedValues:oe}=ne({props:n}),{dragSourceProps:ie,getDropTargetProps:de,BottomDropTarget:ue,DropTargetPadding:pe}=re({canDrag:$,canDragOnto:u,path:G,nodeData:W,onMove:c,onError:J,translate:v}),[ge,me]=t.useState(se(r,E)),he=t.useCallback((e=>{if(!s)return void L(e);const t=s({currentData:W.fullData,newValue:e,currentValue:I,name:Y,path:G});L(t)}),[s]);t.useEffect((()=>{L("function"==typeof r?V:r),me(se(r,E))}),[r,Z]);const{CustomNode:ye,customNodeProps:fe,hideKey:be,showEditTools:je=!0,showOnEdit:ve,showOnView:xe,passOriginalNode:Ee}=E,Ce=[...te,...x.filter((({showInTypesSelector:e=!1,name:t})=>e&&!!t)).map((({name:e})=>e))],De=t.useMemo((()=>{if("boolean"==typeof p)return p?[]:Ce;if(Array.isArray(p))return p;const e=p(W);return"boolean"==typeof e?e?[]:Ce:e}),[W,p]),[we,ke]=t.useState(((e,t)=>{var n;if("string"!=typeof e)return null;const r=t.filter((t=>t instanceof Object&&t.enum&&t.values.includes(e)&&t.matchPriority));return r.sort(((e,t)=>{var n,r;return(null!==(n=t.matchPriority)&&void 0!==n?n:0)-(null!==(r=e.matchPriority)&&void 0!==r?r:0)})),null!==(n=r[0])&&void 0!==n?n:null})(I,De)),{isEditing:Oe}=oe,Se=l("value",W,g,m);if(Oe&&(!Se||!H)){const e=f(W.fullData,G,M,w);T(e||R)}if(!Se)return null;const Ne=e=>{let t;if(T(null),z(null),void 0===e||(e=>e&&"object"==typeof e&&"type"in e&&"target"in e&&"preventDefault"in e&&"function"==typeof e.preventDefault)(e))switch(ge){case"object":t={[v("DEFAULT_NEW_KEY",W)]:I};break;case"array":t=null!=I?I:[];break;case"number":{const e=Number(I);t=isNaN(e)?0:e;break}default:t=I}else t=e;a(t,G).then((e=>{e&&J({code:"UPDATE_ERROR",message:e},t)}))},Te=()=>{T(null),null===F?(L(r),z(null)):a(F,G)},{isEditingKey:Ae,canEditKey:Re}=oe,Ke=!Oe&&Z,Pe=Oe&&De.length>1,Ve=("invalid"!==ge||ye)&&!Z&&je,Me=h&&!be,_e=ye&&(Oe&&ve||!Oe&&xe),Fe={value:I,parentData:o,setValue:he,isEditing:Oe,canEdit:H,setIsEditing:H?()=>T(G):()=>{},handleEdit:Ne,handleCancel:Te,path:G,stringTruncate:y,showStringQuotes:b,nodeData:W,enumType:we,translate:v,handleKeyboard:C,keyboardCommon:{cancel:Te,tabForward:()=>{_("next"),P(B);const e=f(W.fullData,G,"next",w);e&&(Ne(),T(e))},tabBack:()=>{_("prev"),P(B);const e=f(W.fullData,G,"prev",w);e&&(Ne(),T(e))}}},ze={canEditKey:Re,isEditingKey:Ae,pathString:B,path:G,name:Y,handleKeyboard:C,handleEditKey:X,handleCancel:Te,styles:N("property",W),getNextOrPrevious:e=>f(W.fullData,G,e,w),emptyStringKey:ee},Ie=_e?e.jsx(ye,Object.assign({},n,{value:I,customNodeProps:fe,setValue:he,handleEdit:Ne,handleCancel:Te,handleKeyPress:e=>C(e,{stringConfirm:Ne,cancel:Te}),isEditing:Oe,setIsEditing:()=>T(G),getStyles:N,originalNode:Ee?le(r,Fe):void 0,originalNodeKey:Ee?e.jsx(ae,Object.assign({},ze)):void 0,canEdit:H,keyboardCommon:Fe.keyboardCommon,onError:J})):le(r,Fe);return e.jsxs("div",Object.assign({className:"jer-component jer-value-component",style:{marginLeft:j/2+"em",position:"relative"},draggable:$},ie,de("above"),{children:[ue,e.jsx(pe,{position:"above",nodeData:W}),e.jsxs("div",{className:"jer-value-main-row",style:{flexWrap:Y.length>10?"wrap":"nowrap"},children:[Me&&e.jsx(ae,Object.assign({},ze)),e.jsxs("div",{className:"jer-value-and-buttons",children:[e.jsx("div",{className:"jer-input-component",children:Ie}),Oe?e.jsx(Q,{onOk:Ne,onCancel:Te,nodeData:W,editConfirmRef:O}):Ve&&e.jsx(q,{startEdit:H?()=>{z(F),T(G,Te)}:void 0,handleDelete:U?()=>{i(I,G).then((e=>{e&&J({code:"DELETE_ERROR",message:e},I)}))}:void 0,enableClipboard:d,translate:v,customButtons:n.customButtons,nodeData:W,handleKeyboard:C,keyboardControls:D,editConfirmRef:O,jsonStringify:S}),Pe&&e.jsxs("div",{className:"jer-select jer-select-types",children:[e.jsx("select",{name:`${Y}-type-select`,className:"jer-select-inner",onChange:e=>(e=>{const t=x.find((t=>t.name===e));if(t)return a(t.defaultValue,G),me(e),ke(null),T(null),void A({path:G,collapsed:!1,includeChildren:!1});const n=De.find((t=>t instanceof Object&&t.enum===e));if(n)return"string"==typeof I&&n.values.includes(I)||a(n.values[0],G).then((e=>{e&&(J({code:"UPDATE_ERROR",message:e},r),T(null))})),void ke(n);const r=ce(I,e,v("DEFAULT_NEW_KEY",W),(null==E?void 0:E.CustomNode)?v("DEFAULT_STRING",W):void 0);a(r,G).then((e=>{e?(J({code:"UPDATE_ERROR",message:e},r),T(null)):ke(null)}))})(e.target.value),value:we?we.enum:ge,children:De.map((t=>t instanceof Object&&"enum"in t?e.jsx("option",{value:t.enum,children:t.enum},t.enum):e.jsx("option",{value:t,children:t},t)))}),e.jsx("span",{className:"focus"})]}),Ke&&e.jsx("span",{className:"jer-error-slug",style:N("error",W),children:Z})]})]}),e.jsx(pe,{position:"below",nodeData:W})]}))},se=(e,t)=>(null==t?void 0:t.CustomNode)&&(null==t?void 0:t.name)&&t.showInTypesSelector?t.name:"string"==typeof e?"string":"number"==typeof e?"number":"boolean"==typeof e?"boolean":null===e?"null":"invalid",le=(t,n)=>{const r=se(t),{value:o}=n;switch(r){case"string":return e.jsx(F,Object.assign({},n,{value:o}));case"number":return e.jsx(z,Object.assign({},n,{value:o}));case"boolean":return e.jsx(I,Object.assign({},n,{value:o}));case"null":return e.jsx(B,Object.assign({},n));default:return e.jsx(W,Object.assign({},n))}},ce=(e,t,n,r)=>{switch(t){case"string":return null!=r?r:String(e);case"number":{const t=Number(e);return isNaN(t)?0:t}case"boolean":return!!e;case"null":return null;case"object":return{[n]:e};case"array":return[e];default:return String(e)}},de=(e=[],t)=>{const n=e.filter((({condition:e})=>e(t)));if(0===n.length)return{};const r=n[0],{element:a,wrapperElement:i,customNodeProps:s,wrapperProps:l,hideKey:c=!1,showEditTools:d=!0,showOnEdit:u=!1,showOnView:p=!0,showCollectionWrapper:g=!0}=r,m=o(r,["element","wrapperElement","customNodeProps","wrapperProps","hideKey","showEditTools","showOnEdit","showOnView","showCollectionWrapper"]);return Object.assign({CustomNode:a,CustomWrapper:i,customNodeProps:s,wrapperProps:l,hideKey:c,showEditTools:d,showOnEdit:u,showOnView:p,showCollectionWrapper:g},m)},ue=n=>{const{getStyles:r}=k(),{collapseState:o,setCollapseState:c,getMatchingCollapseState:d,currentlyEditingElement:u,setCurrentlyEditingElement:p,areChildrenBeingEdited:m,previousValue:h,setPreviousValue:y}=K(),{mainContainerRef:b,data:j,nodeData:x,parentData:E,showCollectionCount:C,onEdit:D,onAdd:w,onDelete:O,canDragOnto:S,collapseFilter:N,collapseAnimationTime:T,onMove:A,enableClipboard:R,searchFilter:P,searchText:V,indent:M,sort:_,showArrayIndices:F,defaultValue:z,newKeyOptions:I,translate:L,customNodeDefinitions:B,customNodeData:W,jsonParse:G,jsonStringify:Y,TextEditor:H,keyboardControls:U,handleKeyboard:$,insertAtTop:Z,onCollapse:J,editConfirmRef:ee,collapseClickZones:te}=n,[se,le]=t.useState(Y(j)),ce=N(x),{contentRef:pe,isAnimating:ge,maxHeight:me,collapsed:he,animateCollapse:ye,cssTransitionValue:fe}=((e,n,r,o,a)=>{const[i,s]=t.useState(r?0:void 0),[l,c]=t.useState(r),d=t.useRef(!1),u=t.useRef(null),p=t.useRef(0),g=t.useRef(0),m=n/1e3+"s",h=t.useCallback((t=>{var r,i;if(l!==t){switch(window.clearTimeout(g.current),d.current=!0,t){case!0:{const e=null!==(i=null===(r=u.current)||void 0===r?void 0:r.offsetHeight)&&void 0!==i?i:0;p.current=e,s(e),setTimeout((()=>{s(0)}),5);break}case!1:s(p.current||oe(e,u,o,a))}c(!l),g.current=window.setTimeout((()=>{d.current=!1,t||s(void 0)}),n)}}),[n,l,e,o,a]);return{contentRef:u,isAnimating:d.current,animateCollapse:h,maxHeight:i,collapsed:l,cssTransitionValue:m}})(j,T,ce,b,Y),{pathString:be,nodeData:je,path:ve,name:xe,size:Ee,canEdit:Ce,canDelete:De,canAdd:we,canDrag:ke,error:Oe,setError:Se,onError:Ne,handleEditKey:Te,emptyStringKey:Ae,derivedValues:Re}=ne({props:n,collapsed:he}),{dragSourceProps:Ke,getDropTargetProps:Pe,BottomDropTarget:Ve,DropTargetPadding:Me}=re({canDrag:ke,canDragOnto:S,path:ve,nodeData:je,onMove:A,onError:Ne,translate:L}),_e=t.useRef(!ce),{isEditing:Fe,isEditingKey:ze,isArray:Ie,canEditKey:Le}=Re;t.useEffect((()=>{le(Y(j))}),[j,Y]),t.useEffect((()=>{const e=N(je)&&!Fe;_e.current=!e,ye(e)}),[N]),t.useEffect((()=>{if(null!==o){const e=d(ve);e&&(_e.current=!0,ye(e.collapsed))}}),[o]);const Be=t.useRef(null),We=t.useCallback(((e,t)=>{if("function"!=typeof z)return z;const n=z(e,t);return void 0!==n?n:null}),[z]),Ge=t.useCallback((e=>I?"function"!=typeof I?I:I(e):null),[I]),{CustomNode:Ye,customNodeProps:He,CustomWrapper:Ue,wrapperProps:$e={},hideKey:Ze,showEditTools:Je=!0,showOnEdit:Xe,showOnView:qe,showCollectionWrapper:Qe=!0}=W,et=m(be);et&&he&&ye(!1);if(!(l("collection",je,P,V)||0===je.level)&&!et)return null;const tt=Array.isArray(j)?"array":"object",nt="array"===tt?{open:"[",close:"]"}:{open:"{",close:"}"},rt=e=>{if("Tab"!==e.key||e.getModifierState("Shift"))$(e,{objectConfirm:at,cancel:st});else{e.preventDefault();const t=v(Be,"\t");le(t)}},ot=e=>{e.stopPropagation();const t=g(e);if(t&&U.collapseModifier.includes(t))return _e.current=!0,void c({collapsed:!he,path:ve,includeChildren:!0});u&&u.includes(be)||(_e.current=!0,c(null),J&&J({path:ve,collapsed:!he,includeChildren:!1}),ye(!he))},at=()=>{try{const e=G(se);if(p(null),y(null),Se(null),Y(e)===Y(j))return;D(e,ve).then((t=>{t&&Ne({code:"UPDATE_ERROR",message:t},e)}))}catch(e){Ne({code:"INVALID_JSON",message:L("ERROR_INVALID_JSON",je)},se)}},it=ve.length>0?()=>{O(j,ve).then((e=>{e&&Ne({code:"DELETE_ERROR",message:e},j)}))}:void 0,st=()=>{p(null),null===h?(Se(null),le(Y(j)),y(null)):D(h,ve)},lt="when-closed"===C?he:C,ct=!Fe&&Je,dt=(F||!Ie)&&!Ze&&void 0!==xe,ut=Ye&&(Fe&&Xe||!Fe&&qe),pt=Object.entries(j).map((([e,t])=>["array"===tt?Number(e):e,t]));"object"===tt&&_(pt,(e=>e));const gt=_e.current?Fe?e.jsxs("div",{className:"jer-collection-text-edit",children:[H?e.jsx(H,{value:se,onChange:le,onKeyDown:e=>$(e,{objectConfirm:at,cancel:st})}):e.jsx(i,{textAreaRef:Be,className:"jer-collection-text-area",name:be,value:se,setValue:le,handleKeyPress:rt,styles:r("input",je)}),e.jsx("div",{className:"jer-collection-input-button-row",children:e.jsx(Q,{onOk:at,onCancel:st,nodeData:je,editConfirmRef:ee})})]}):pt.map((([t,o],a)=>{const i={key:t,value:o,path:[...ve,t],level:ve.length+1,index:a,size:s(o)?Object.keys(o).length:null,parentData:j,fullData:je.fullData},l=de(B,i);return e.jsx("div",{className:"jer-collection-element",style:r("collectionElement",i),children:s(o)&&!(null==l?void 0:l.renderCollectionAsValue)?e.jsx(ue,Object.assign({},n,{data:o,parentData:j,nodeData:i,showCollectionCount:C,canDragOnto:Ce,customNodeData:l}),t):e.jsx(ie,Object.assign({},n,{data:o,parentData:j,nodeData:i,canDragOnto:Ce,showLabel:"object"===tt||F,customNodeData:l}),t)},t)})):null,mt=!!Qe&&(he&&!et);mt||(_e.current=!0);const ht=Object.assign(Object.assign({},n),{data:j,value:j,parentData:E,nodeData:je,setValue:e=>a(void 0,void 0,void 0,(function*(){return yield D(e,ve)})),handleEdit:at,handleCancel:st,handleKeyPress:rt,isEditing:Fe,setIsEditing:()=>p(ve),getStyles:r,canDragOnto:Ce,canEdit:Ce,keyboardCommon:{},onError:Ne}),yt=ut?e.jsx(Ye,Object.assign({customNodeProps:He},ht,{children:gt})):gt,ft=ct&&e.jsx(q,{startEdit:Ce?()=>{_e.current=!0,y(null),p(ve)}:void 0,handleAdd:we?e=>{ye(!1);const t=We(je,e);if("array"===tt){const e=Z.array?0:j.length,n=Z.array?{insert:!0}:{};w(t,[...ve,e],n).then((e=>{e&&Ne({code:"ADD_ERROR",message:e},t)}))}else if(e in j)Ne({code:"KEY_EXISTS",message:L("ERROR_KEY_EXISTS",je)},e);else{const n=Z.object?{insertBefore:0}:{};w(t,[...ve,e],n).then((e=>{e&&Ne({code:"ADD_ERROR",message:e},t)}))}}:void 0,handleDelete:De?it:void 0,enableClipboard:R,type:tt,nodeData:je,translate:L,customButtons:n.customButtons,keyboardControls:U,handleKeyboard:$,getNewKeyOptions:Ge,editConfirmRef:ee,jsonStringify:Y}),bt={canEditKey:Le,isEditingKey:ze,pathString:be,path:ve,name:xe,handleKeyboard:$,handleEditKey:Te,handleCancel:st,keyValueArray:pt,styles:r("property",je),getNextOrPrevious:e=>f(je.fullData,ve,e,_),handleClick:te.includes("property")?ot:e=>e.stopPropagation(),emptyStringKey:Ae},jt=e.jsxs("div",Object.assign({className:"jer-component jer-collection-component",style:Object.assign(Object.assign({marginLeft:(0===ve.length?0:M/2)+"em"},r("collection",je)),{position:"relative"}),draggable:ke},Ke,Pe("above"),{children:[e.jsx("div",{className:"jer-clickzone",style:{width:M/2+1+"em",zIndex:10+2*je.level},onClick:te.includes("left")?ot:void 0}),!Fe&&Ve,e.jsx(Me,{position:"above",nodeData:je}),Qe?e.jsxs("div",{className:"jer-collection-header-row",style:{position:"relative"},onClick:te.includes("header")?ot:void 0,children:[e.jsxs("div",{className:"jer-collection-name",children:[e.jsx("div",{className:"jer-collapse-icon jer-accordion-icon"+(he?" jer-rotate-90":""),style:{zIndex:11+2*je.level,transition:fe},onClick:ot,children:e.jsx(X,{name:"chevron",rotate:he,nodeData:je})}),dt&&e.jsx(ae,Object.assign({},bt)),!Fe&&e.jsx("span",{className:"jer-brackets jer-bracket-open",style:r("bracket",je),children:nt.open})]}),!Fe&&lt&&e.jsx("div",{className:"jer-collection-item-count"+(lt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},r("itemCount",je)),{transition:fe}),children:1===Ee?L("ITEM_SINGLE",Object.assign(Object.assign({},je),{size:1}),1):L("ITEMS_MULTIPLE",je,Ee)}),e.jsx("div",{className:"jer-brackets"+(mt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},r("bracket",je)),{transition:fe}),children:nt.close}),ft]}):Ze?e.jsx(e.Fragment,{}):e.jsxs("div",{className:"jer-collection-header-row",style:{position:"relative"},children:[e.jsx(ae,Object.assign({},bt)),ft]}),e.jsxs("div",{className:"jer-collection-inner",style:Object.assign(Object.assign({overflowY:mt||ge?"clip":"visible",maxHeight:et?void 0:me},r("collectionInner",je)),{transition:fe}),ref:pe,children:[yt,e.jsx("div",{className:Fe?"jer-collection-error-row":"jer-collection-error-row-edit",children:Oe&&e.jsx("span",{className:"jer-error-slug",style:r("error",je),children:Oe})}),!Fe&&Qe&&e.jsx("div",{className:"jer-brackets jer-bracket-outside",style:Object.assign(Object.assign({},r("bracket",je)),{marginLeft:(M<3?-1:M<6?-.5:0)+"em"}),children:nt.close})]}),e.jsx(Me,{position:"below",nodeData:je})]}));return Ue?e.jsx(Ue,Object.assign({customNodeProps:$e},ht,{children:jt})):jt},pe={ITEM_SINGLE:"{{count}} item",ITEMS_MULTIPLE:"{{count}} items",KEY_NEW:"Enter new key",KEY_SELECT:"Select key",NO_KEY_OPTIONS:"No key options",ERROR_KEY_EXISTS:"Key already exists",ERROR_INVALID_JSON:"Invalid JSON",ERROR_UPDATE:"Update unsuccessful",ERROR_DELETE:"Delete unsuccessful",ERROR_ADD:"Adding node unsuccessful",DEFAULT_STRING:"New data!",DEFAULT_NEW_KEY:"key",SHOW_LESS:"(Show less)",EMPTY_STRING:"<empty string>"},ge=(e,t)=>(n,r,o)=>((e,t,n,r,o)=>{if(t[r]){const e=t[r](n);if(null!==e)return e}const a=r in e?e[r]:pe[r];return void 0===o?a:null==a?void 0:a.replace("{{count}}",String(o))})(e,t,r,n,o);var me=[],he=[];!function(e,t){if(e&&"undefined"!=typeof document){var n,r=!0===t.prepend?"prepend":"append",o=!0===t.singleTag,a="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(o){var i=me.indexOf(a);-1===i&&(i=me.push(a)-1,he[i]={}),n=he[i]&&he[i][r]?he[i][r]:he[i][r]=s()}else n=s();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function s(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),o=0;o<n.length;o++)e.setAttribute(n[o],t.attributes[n[o]]);var i="prepend"===r?"afterbegin":"beforeend";return a.insertAdjacentElement(i,e),e}}(':root{--jer-select-border:#b6b6b6;--jer-select-focus:#777;--jer-select-arrow:#777;--jer-form-border:1px solid #ededf0;--jer-form-border-focus:1px solid #e2e2e2;--jer-highlight-color:#b3d8ff}.jer-visible{opacity:1}.jer-hidden{opacity:0}.jer-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#000;cursor:inherit;font-family:inherit;font-size:.8em;line-height:inherit;margin:0;outline:none;padding:0 1em 0 0;z-index:1}select::-ms-expand{display:none}.jer-select{align-items:center;background-color:#fff;background-image:linear-gradient(0deg,#f9f9f9,#fff 33%);border:1px solid var(--jer-select-border);border-radius:.25em;cursor:pointer;display:grid;grid-template-areas:"select";line-height:1.1;max-width:15ch;min-width:12ch;padding:.25em .5em;position:relative}.jer-select select,.jer-select:after{grid-area:select}.jer-select:not(.jer-select--multiple):after{background-color:var(--jer-select-arrow);clip-path:polygon(100% 0,0 0,50% 100%);content:"";height:.5em;justify-self:end;width:.8em}select:focus+.focus{border:1px solid var(--jer-select-focus);border-radius:inherit;bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px}.jer-select-inner{text-overflow:ellipsis;width:100%}.jer-editor-container{border-radius:.5em;font-size:16px;line-height:1;padding:1em 1em 1em 2em;position:relative;text-align:left}.jer-editor-container textarea{border:var(--jer-form-border);border-radius:.3em;color:var(--jer-input-color);outline:none}.jer-editor-container textarea:focus{border:var(--jer-form-border-focus)}.jer-editor-container input{border:var(--jer-form-border);border-radius:.3em;font-family:inherit;outline:none}.jer-editor-container input:focus{border:var(--jer-form-border-focus)}.jer-editor-container ::selection{background-color:var(--jer-highlight-color)}.jer-collection-header-row,.jer-value-main-row{align-items:center;display:flex;gap:.3em;min-height:1.7em}.jer-collection-header-row{display:flex;flex-wrap:wrap}.jer-collapse-icon{left:-1.2em;position:absolute;top:.35em}.jer-collection-inner{position:relative}.jer-collection-text-edit{align-items:flex-start;display:flex;flex-direction:column;gap:.3em;line-height:1.1em}.jer-collection-text-area{font-family:inherit;font-size:.85em;max-height:40em;overflow:hidden;padding:.2em .5em 0;resize:both}.jer-collection-input-button-row{display:flex;font-size:150%;justify-content:flex-end;margin-top:.4em;width:100%}.jer-collection-error-row{bottom:.5em;position:absolute}.jer-error-slug{margin-left:1em}.jer-value-component{position:relative}.jer-value-main-row{display:flex;gap:0}.jer-value-and-buttons{align-items:center;display:flex;justify-content:flex-start;padding-left:.5em}.jer-value-error-row{position:absolute}.jer-value-string{line-height:1.3em;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.jer-string-expansion{cursor:pointer;filter:saturate(50%);opacity:.6}.jer-show-less{font-size:80%}.jer-hyperlink{text-decoration:underline}.jer-input-text{font-family:inherit;font-size:.9em;height:1.4em;line-height:1.2em;margin:0;min-width:6em;overflow:hidden;padding:.25em .5em .2em;resize:none}.jer-input-boolean{margin-left:.3em;margin-right:.3em;transform:scale(1.5)}.jer-key-text{line-height:1.1em;white-space:pre-wrap;word-break:break-word}.jer-key-edit{font-size:inherit;font-size:.9em;padding:0 .3em}.jer-value-invalid{font-style:italic;opacity:.5}.jer-input-number{font-size:90%;min-width:3em}.jer-confirm-buttons,.jer-edit-buttons{align-items:center;cursor:pointer;display:flex;height:1em}.jer-input-buttons{gap:.4em}.jer-edit-buttons{gap:.4em;margin-left:.5em;opacity:0}.jer-confirm-buttons{gap:.2em;margin-left:.4em}.jer-edit-buttons:hover{opacity:1;position:relative}.jer-collection-header-row:hover>.jer-edit-buttons,.jer-value-and-buttons:hover>.jer-edit-buttons,.jer-value-main-row:hover>.jer-edit-buttons{opacity:1}.jer-copy-pulse{position:relative;transition:.3s}.jer-copy-pulse:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-copy-pulse:after{border-radius:50%;box-shadow:0 0 15px 5px var(--jer-icon-copy-color);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .5s;width:100%}.jer-copy-pulse:active:after{border-radius:4em;box-shadow:0 0 0 0 var(--jer-icon-copy-color);left:0;opacity:1;position:absolute;top:0;transition:0s}.jer-copy-pulse:active{top:.07em}.jer-rotate-90{transform:rotate(-90deg)}.jer-icon:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-empty-string{font-size:90%;font-style:italic}.jer-drag-n-drop-padding{border:1px dashed #e0e0e0;border-radius:.3em;height:.5em}.jer-clickzone{height:calc(100% - .8em);left:-1em;position:absolute;top:1.2em}',{});const ye=({data:n,setData:r,rootName:o="root",onUpdate:i=()=>{},onEdit:l=i,onDelete:c=i,onAdd:d=i,onChange:u,onError:g,showErrorMessages:h=!0,enableClipboard:f=!0,indent:b=2,collapse:j=!1,collapseAnimationTime:v=300,showCollectionCount:E=!0,restrictEdit:C=!1,restrictDelete:D=!1,restrictAdd:w=!1,restrictTypeSelection:O=!1,restrictDrag:S=!0,viewOnly:N,searchFilter:T,searchText:A,searchDebounceTime:R=350,keySort:P=!1,showArrayIndices:V=!0,showStringQuotes:M=!0,defaultValue:_=null,newKeyOptions:F,minWidth:z=250,maxWidth:I="min(600px, 90vw)",rootFontSize:L,stringTruncate:B=250,translations:W={},className:G,id:Y,customText:H={},customNodeDefinitions:U=[],customButtons:$=[],jsonParse:Z=JSON.parse,jsonStringify:J=(e,t)=>JSON.stringify(e,t,2),TextEditor:X,errorMessageTimeout:q=2500,keyboardControls:Q={},externalTriggers:ee,insertAtTop:te=!1,onCollapse:ne,collapseClickZones:re=["header","left"]})=>{const{getStyles:oe}=k(),{setCurrentlyEditingElement:ae}=K(),se=t.useMemo((()=>be(j)),[j]),le=t.useMemo((()=>ge(W,H)),[W,H]),[ce,pe]=t.useState(A),[me,he]=(({setData:e,data:n})=>{const[r,o]=t.useState(e?void 0:n),a=t.useCallback((t=>{e?e(t):o(t)}),[e]);return t.useEffect((()=>{e||o(n)}),[n]),[e?n:r,a]})({setData:r,data:n}),ye=t.useRef(null);t.useEffect((()=>{ae(null);const e=setTimeout((()=>pe(A)),R);return()=>clearTimeout(e)}),[A,R]);const Ee={key:o,path:[],level:0,index:0,value:me,size:"object"==typeof me&&null!==me?Object.keys(me).length:1,parentData:null,fullData:me},Ce=(e,t)=>a(void 0,void 0,void 0,(function*(){const n=yield e(t);if(!0===n||void 0===n)return void he(t.newData);const r=ve(n)?n:["error",n],[o,a]=r;if("error"===o)return he(t.currentData),!1===a?le("ERROR_UPDATE",Ee):String(a);he(a)})),De=t.useMemo((()=>be(C,N)),[C,N]),we=t.useMemo((()=>be(D,N)),[D,N]),ke=t.useMemo((()=>be(w,N)),[w,N]),Oe=t.useMemo((()=>be(S,N)),[S,N]),Se=t.useMemo((()=>je(T)),[T]),Ne=t.useMemo((()=>(e=>{const t=Object.assign({},y);for(const n of Object.keys(y)){const r=n;if(e[r]){const o=e[r],a=["clipboardModifier","collapseModifier"].includes(n)?Array.isArray(o)?o:[o]:"string"==typeof o?{key:o}:o;t[r]=a,["stringConfirm","numberConfirm","booleanConfirm"].forEach((n=>{!e[n]&&e.confirm&&(t[n]=t.confirm)}))}}return t})(Q)),[Q]),Te=t.useCallback(((e,t)=>((e,t,n)=>{const r=Object.entries(t);for(const[t,o]of r)if(m(n,e[t],t)){n.preventDefault(),o();break}})(Ne,t,e)),[Ne]),Ae=t.useMemo((()=>{const e=xe(U,"stringifyReplacer");return t=>J(t,e)}),[U,J]),Re=t.useMemo((()=>{const e=xe(U,"parseReviver");return t=>{const n=Z(t,e);return x(n)}}),[U,Z]),Ke=t.useRef(null);((e,n)=>{const{setCurrentlyEditingElement:r,currentlyEditingElement:o,setCollapseState:a}=K();t.useEffect((()=>{if(!e)return;const{collapse:t,edit:i}=e;t&&a(t);const s=!(null==i?void 0:i.path)||p(i.path)===o;switch(null==i?void 0:i.action){case"accept":s&&(n.current&&n.current.click(),r(null));break;case"cancel":s&&r(null);break;default:(null==i?void 0:i.path)&&r(i.path)}}),[e])})(ee,Ke);const Pe=t.useCallback(((e,t)=>{!1!==P&&("function"!=typeof P?e.sort(((e,n)=>{const r=t(e)[0],o=t(n)[0];return r<o?-1:r>o?1:0})):e.sort(((e,n)=>P(t(e),t(n)))))}),[P]),Ve=de(U,Ee),Me={mainContainerRef:ye,name:o,nodeData:Ee,onEdit:(e,t)=>a(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:a}=fe(me,t,e,"update");if(o!==a)return yield Ce(l,{currentData:n,newData:r,currentValue:o,newValue:a,name:t.slice(-1)[0],path:t})})),onDelete:(e,t)=>a(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:a}=fe(me,t,e,"delete");return yield Ce(c,{currentData:n,newData:r,currentValue:o,newValue:a,name:t.slice(-1)[0],path:t})})),onAdd:(e,t,n)=>a(void 0,void 0,void 0,(function*(){const{currentData:r,newData:o,currentValue:a,newValue:i}=fe(me,t,e,"add",n);return yield Ce(d,{currentData:r,newData:o,currentValue:a,newValue:i,name:t.slice(-1)[0],path:t})})),onChange:u,onError:g,showErrorMessages:h,onMove:(e,t,n)=>a(void 0,void 0,void 0,(function*(){if(null===e)return;const{currentData:r,newData:o,currentValue:a}=fe(me,e,"","delete"),i=e.slice(-1)[0],s=t.slice(0,-1),c=t.slice(-1)[0];let d="number"==typeof c?"above"===n?c:c+1:"number"==typeof i?`arr_${i}`:i;e.slice(0,-1).join(".")===t.slice(0,-1).join(".")&&"number"==typeof i&&"number"==typeof d&&i<d&&(d-=1);const u="number"==typeof d?{insert:!0}:"above"===n?{insertBefore:c}:{insertAfter:c},{newData:p,newValue:g}=fe(o,[...s,d],a,"add",u);return yield Ce(l,{currentData:r,newData:p,currentValue:a,newValue:g,name:t.slice(-1)[0],path:t})})),showCollectionCount:E,collapseFilter:se,collapseAnimationTime:v,restrictEditFilter:De,restrictDeleteFilter:we,restrictAddFilter:ke,restrictTypeSelection:O,restrictDragFilter:Oe,canDragOnto:!1,searchFilter:Se,searchText:ce,enableClipboard:f,keySort:P,sort:Pe,showArrayIndices:V,showStringQuotes:M,indent:b,defaultValue:_,newKeyOptions:F,stringTruncate:B,translate:le,customNodeDefinitions:U,customNodeData:Ve,customButtons:$,parentData:null,jsonParse:Re,jsonStringify:Ae,TextEditor:X,errorMessageTimeout:q,handleKeyboard:Te,keyboardControls:Ne,insertAtTop:{object:!0===te||"object"===te,array:!0===te||"array"===te},onCollapse:ne,editConfirmRef:Ke,collapseClickZones:re},_e=Object.assign(Object.assign({},oe("container",Ee)),{minWidth:z,maxWidth:I});return _e.fontSize=null!=L?L:_e.fontSize,e.jsx("div",{id:Y,ref:ye,className:`jer-editor-container ${null!=G?G:""}`,style:_e,children:s(me)&&!Ve.renderCollectionAsValue?e.jsx(ue,Object.assign({data:me},Me)):e.jsx(ie,Object.assign({data:me,showLabel:!0},Me))})},fe=(e,t,o,a,i={})=>{if(0===t.length)return{currentData:e,newData:o,currentValue:e,newValue:o};const s=Object.assign({remove:"delete"===a},i),l="add"!==a?r(e,t):void 0;return{currentData:e,newData:n(e,t,o,s),currentValue:l,newValue:"delete"!==a?o:void 0}},be=(e,t)=>t?()=>!0:"boolean"==typeof e?()=>e:"number"==typeof e?({level:t})=>t>=e:e,je=e=>{if(void 0!==e)return"value"===e?d:"key"===e?u:"all"===e?(e,t)=>d(e,t)||u(e,t):e},ve=e=>Array.isArray(e)&&2===e.length&&["error","value"].includes(e[0]),xe=(e,t)=>{const n="stringifyReplacer"===t?[e=>void 0===e?E:e]:[];if(n.push(...e.map((e=>e[t])).filter((e=>!!e))),0!==n.length)return(e,t)=>{let r=t;for(const e of n)r=e(r);return r}},Ee=t=>{var n;const{value:r,setIsEditing:o,getStyles:a,nodeData:i}=t,s=a("string",i);return e.jsx("div",{onDoubleClick:()=>o(!0),onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&o(!0)},className:"jer-value-string jer-hyperlink",style:s,children:e.jsx("a",{href:r,target:"_blank",rel:"noreferrer",style:{color:null!==(n=s.color)&&void 0!==n?n:void 0},children:e.jsx(M,Object.assign({},t,{pathString:p(i.path),styles:s,value:i.value}))})})},Ce={condition:({value:e})=>"string"==typeof e&&/^https?:\/\/.+\..+$/.test(e),element:Ee,showOnView:!0,showOnEdit:!1};exports.assign=n,exports.extract=r,exports.IconAdd=G,exports.IconCancel=Z,exports.IconChevron=J,exports.IconCopy=U,exports.IconDelete=H,exports.IconEdit=Y,exports.IconOk=$,exports.JsonEditor=n=>{var r;const[o,a]=t.useState();return t.useEffect((()=>{const e=document.documentElement;a(e)}),[]),o?e.jsx(w,{theme:null!==(r=n.theme)&&void 0!==r?r:C,icons:n.icons,docRoot:o,children:e.jsx(R,{onEditEvent:n.onEditEvent,onCollapse:n.onCollapse,children:e.jsx(ye,Object.assign({},n))})}):null},exports.LinkCustomComponent=Ee,exports.LinkCustomNodeDefinition=Ce,exports.StringDisplay=M,exports.StringEdit=_,exports.candyWrapperTheme={displayName:"Candy Wrapper",fragments:{minty:{backgroundColor:"#F1FAEE"},pale:{color:"#A8DADC"},mid:{color:"#457B9D"},dark:{color:"#1D3557"},pop:{color:"#E63946"},darkBlue:{color:"#2B2D42"}},styles:{container:"minty",property:"pop",dropZone:"#eb121217",bracket:"dark",itemCount:"pale",string:"mid",number:["darkBlue",{fontSize:"85%"}],boolean:["mid",{fontStyle:"italic",fontWeight:"bold",fontSize:"80%"}],null:["#cccccc",{fontWeight:"bold"}],input:{border:"1px solid rgb(115, 194, 198)"},iconCollection:"#1D3557",iconEdit:"#457B9D",iconDelete:"#E63946",iconAdd:"#2B2D42",iconCopy:"#1D3557",iconCancel:"#E63946"}},exports.defaultTheme=C,exports.githubDarkTheme={displayName:"Github Dark",styles:{container:{backgroundColor:"#0d1117",color:"white"},dropZone:"rgba(165, 214, 255, 0.17)",property:"#E6EDF3",bracket:"#56d364",itemCount:"#8B949E",string:"#A5D6FF",number:"#D2A8FF",boolean:{color:"#FF7B72",fontSize:"90%",fontWeight:"bold"},null:"green",iconCollection:"#D2A8FF",iconEdit:"#D2A8FF",iconDelete:"rgb(203, 75, 22)",iconAdd:"rgb(203, 75, 22)",iconCopy:"#A5D6FF",iconOk:"#56d364",iconCancel:"rgb(203, 75, 22)"}},exports.githubLightTheme={displayName:"Github Light",styles:{container:"white",property:"#1F2328",bracket:"#00802e",itemCount:"#8B949E",string:"#0A3069",number:"#953800",boolean:{color:"#CF222E",fontSize:"90%",fontWeight:"bold"},null:"#FF7B72",iconCollection:"#8250DF",iconEdit:"#8250DF",iconDelete:"rgb(203, 75, 22)",iconAdd:"#8250DF",iconCopy:"#57606A"}},exports.isCollection=s,exports.matchNode=d,exports.matchNodeKey=u,exports.monoDarkTheme={displayName:"Black & White",fragments:{lightText:{color:"white"},midGrey:"#5c5c5c"},styles:{container:["lightText",{backgroundColor:"black"}],dropZone:"#e0e0e029",property:"lightText",bracket:"midGrey",itemCount:"#4a4a4a",string:"#a8a8a8",number:"#666666",boolean:{color:"#848484",fontStyle:"italic"},null:"#333333",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},exports.monoLightTheme={fragments:{midGrey:"#a3a3a3"},displayName:"White & Black",styles:{container:"white",property:"black",bracket:"midGrey",itemCount:"#b5b5b5",string:"#575757",number:"#999999",boolean:{color:"#7b7b7b",fontStyle:"italic"},null:"#cccccc",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},exports.psychedelicTheme={displayName:"Psychedelic",fragments:{pale:{color:"#A8DADC"},fluroYellow:"rgb(242, 228, 21)",fluroGreen:"rgb(68, 255, 62)",hotPink:"#f7379a"},styles:{container:{backgroundColor:"unset",background:"linear-gradient(90deg, hsla(333, 100%, 53%, 1) 0%, hsla(33, 94%, 57%, 1) 100%)",color:"black"},dropZone:"fluroYellow",property:"black",bracket:"fluroYellow",itemCount:["pale",{opacity:.7}],string:"white",number:["#33d9ff",{fontSize:"90%",fontWeight:"bold"}],boolean:["fluroGreen",{fontWeight:"bold",fontSize:"80%"}],null:["black",{fontWeight:"bold",opacity:.3,backgroundColor:"rgb(255, 255, 255, 0.5)",padding:"0 0.4em",borderRadius:"0.4em"}],iconCollection:"fluroYellow",iconEdit:["black"],iconDelete:["white",{opacity:.5}],iconAdd:["white",{opacity:.5}],iconCopy:"rgb(32, 84, 242)",iconOk:"fluroGreen",iconCancel:"hotPink"}},exports.standardDataTypes=te,exports.toPathString=p,exports.useKeyboardListener=L;

@@ -20,2 +20,3 @@ import React$1, { JSX } from 'react';

SHOW_LESS: string;
EMPTY_STRING: string;
};

@@ -34,2 +35,19 @@ type LocalisedStrings = typeof localisedStrings;

interface CustomNodeData {
CustomNode?: React.FC<CustomNodeProps>;
CustomWrapper?: React.FC<CustomNodeProps>;
name?: string;
customNodeProps?: Record<string, unknown>;
wrapperProps?: Record<string, unknown>;
hideKey?: boolean;
defaultValue?: unknown;
showInTypesSelector?: boolean;
showOnEdit?: boolean;
showOnView?: boolean;
showEditTools?: boolean;
showCollectionWrapper?: boolean;
passOriginalNode?: boolean;
renderCollectionAsValue?: boolean;
}
type JsonData = Record<string, unknown> | Array<unknown> | unknown;

@@ -232,2 +250,3 @@ interface JsonEditorProps {

customNodeDefinitions: CustomNodeDefinition[];
customNodeData: CustomNodeData;
customButtons: CustomButtonDefinition[];

@@ -300,2 +319,3 @@ errorMessageTimeout: number;

wrapperProps?: Record<string, unknown>;
renderCollectionAsValue?: boolean;
stringifyReplacer?: (value: unknown) => unknown;

@@ -302,0 +322,0 @@ parseReviver?: (stringified: string) => unknown;

@@ -1,1 +0,1 @@

import{jsxs as e,jsx as t,Fragment as n}from"react/jsx-runtime";import{createContext as r,useContext as o,useState as i,useRef as a,useEffect as l,useCallback as s,useMemo as c}from"react";import d from"object-property-assigner";export{default as assign}from"object-property-assigner";import u from"object-property-extractor";export{default as extract}from"object-property-extractor";function p(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function g(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function l(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const h=({className:n,name:r,value:o,setValue:i,handleKeyPress:a,styles:l,textAreaRef:s})=>{if("string"!=typeof o)return null;const c="\n"===o.slice(-1)?o+".":o;return e("div",{style:{display:"grid"},children:[t("textarea",{id:`${r}_textarea`,ref:s,style:Object.assign({height:"auto",gridArea:"1 / 1 / 2 / 2",overflowY:"auto",whiteSpace:"pre-wrap"},l),rows:1,className:n,name:`${r}_textarea`,value:o,onChange:e=>i(e.target.value),autoFocus:!0,onFocus:e=>{o.length<40&&e.target.select()},onKeyDown:a}),t("span",{className:n,style:Object.assign({visibility:"hidden",height:"auto",gridArea:"1 / 1 / 2 / 2",color:"red",opacity:.9,whiteSpace:"pre-wrap",overflowY:"auto",border:"1px solid transparent"},l),children:c})]})},m=e=>null!==e&&"object"==typeof e&&!(e instanceof Date),y=(e,t,n,r="")=>{if(!n&&!r)return!0;switch(e){case"collection":if(n){if(n(t,r))return!0;if(!f(r,t,n))return!1}if(!n&&r&&!f(r,t))return!1;break;case"value":if(n&&!n(t,r))return!1;if(!n&&r&&!b(t,r))return!1}return!0},f=(e="",t,n=b)=>{const r=t.value;return Object.entries(r).some((([o,i])=>{const a=[...t.path,o],l=Object.assign(Object.assign({},t),{key:o,path:a,level:t.level+1,value:i,size:a.length,parentData:r});return m(i)?f(e,l,n):n(l,e)}))},b=(e,t="")=>{const{value:n}=e;if(null===n&&"null".includes(t.toLowerCase()))return!0;switch(typeof n){case"string":return n.toLowerCase().includes(t.toLowerCase());case"number":return!!String(n).includes(t);case"boolean":return n?"true".includes(t.toLowerCase())||"1"===t:"false".includes(t.toLowerCase())||"0"===t;default:return!1}},v=({key:e,path:t},n="")=>!!b({value:e},n)||!!t.some((e=>b({value:e},n))),j=(e,t)=>(null!=t?t:"")+e.map((e=>""===e?String.fromCharCode(0):e)).join("."),E=e=>e.shiftKey?"Shift":e.metaKey?"Meta":e.ctrlKey?"Control":e.altKey?"Alt":void 0,w=(e,t,n)=>{const r=e.key,o=E(e);if(Array.isArray(t))return!!o&&t.includes(o);const{key:i,modifier:a}=t;return("stringLineBreak"!==n||"Enter"!==r||"Shift"!==o||"Enter"!==i||!(null==a?void 0:a.includes("Shift")))&&(r===i&&(a===o||Array.isArray(a)&&a.includes(o)))},D={key:"Enter"},C={confirm:D,cancel:{key:"Escape"},objectConfirm:Object.assign(Object.assign({},D),{modifier:["Meta","Shift","Control"]}),objectLineBreak:D,stringConfirm:D,stringLineBreak:Object.assign(Object.assign({},D),{modifier:["Shift"]}),numberConfirm:D,numberUp:{key:"ArrowUp"},numberDown:{key:"ArrowDown"},tabForward:{key:"Tab"},tabBack:{key:"Tab",modifier:"Shift"},booleanConfirm:D,booleanToggle:{key:" "},clipboardModifier:["Meta","Control"],collapseModifier:["Alt"]},k=(e,t,n="next",r)=>{const o=t.slice(0,t.length-1),i=t.slice(-1)[0];if(void 0===i)return null;const a=u(e,o),l=S(a);Array.isArray(a)||r(l,(({key:e,value:t})=>[e,t]));const s=l.findIndex((e=>e.key===i)),c=l[s+("next"===n?1:-1)];return c?m(c.value)?0===Object.keys(c.value).length?k(e,[...o,c.key],n,r):O(e,[...o,c.key],n,r):[...o,c.key]:0===o.length?null:k(e,o,n,r)},O=(e,t,n="next",r)=>{const o=u(e,t);if(!m(o))return t;const i=Array.isArray(o)?o.map(((e,t)=>t)):Object.keys(o);r(i,(e=>[e,o]));const a="next"===n?i[0]:i[i.length-1];return O(e,[...t,a],n,r)},S=e=>Array.isArray(e)?e.map(((e,t)=>({index:t,value:e,key:t}))):Object.entries(e).map((([e,t],n)=>({key:e,value:t,index:n}))),N=(e,t)=>{var n,r,o,i;const a=e.current,l=null!==(n=null==a?void 0:a.selectionStart)&&void 0!==n?n:1/0,s=null!==(r=null==a?void 0:a.selectionEnd)&&void 0!==r?r:1/0,c=(null===(o=null==a?void 0:a.textContent)||void 0===o?void 0:o.slice(0,l))+t+(null===(i=null==a?void 0:a.textContent)||void 0===i?void 0:i.slice(s));return a.value=c,null==a||a.setSelectionRange(l+1,l+1),c},x=e=>{if(e!==A){if(Array.isArray(e))return e.map((e=>x(e)));if(e&&"object"==typeof e)for(const t in e)e[t]=x(e[t]);return e}},A="__​undefined__",T={displayName:"Default",fragments:{edit:"rgb(42, 161, 152)"},styles:{container:{backgroundColor:"#f6f6f6",fontFamily:"monospace"},collection:{},collectionInner:{},collectionElement:{},dropZone:{},property:"#292929",bracket:{color:"rgb(0, 43, 54)",fontWeight:"bold"},itemCount:{color:"rgba(0, 0, 0, 0.3)",fontStyle:"italic"},string:"rgb(203, 75, 22)",number:"rgb(38, 139, 210)",boolean:"green",null:{color:"rgb(220, 50, 47)",fontVariant:"small-caps",fontWeight:"bold"},input:["#292929"],inputHighlight:"#b3d8ff",error:{fontSize:"0.8em",color:"red",fontWeight:"bold"},iconCollection:"rgb(0, 43, 54)",iconEdit:"edit",iconDelete:"rgb(203, 75, 22)",iconAdd:"edit",iconCopy:"rgb(38, 139, 210)",iconOk:"green",iconCancel:"rgb(203, 75, 22)"}},R=r({getStyles:()=>({}),icons:{}}),K=({theme:e=T,icons:n={},docRoot:r,children:o})=>{const i=V(e,r);return t(R.Provider,{value:{getStyles:(e,t)=>"function"==typeof i[e]?i[e](t):i[e],icons:n},children:o})},P=()=>o(R),V=(e,t)=>{var n,r,o,i;const a={},l=(Array.isArray(e)?e:[e]).map((e=>z(e)?_({fragments:{},styles:e},a):_(e,a))),s=_(T,{});Object.keys(s).forEach((e=>{const t=e;l.forEach((e=>{e[t]&&(s[t]=Object.assign(Object.assign({},s[t]),e[t]))}))}));const c=Object.assign({},s);return Object.entries(a).forEach((([e,t])=>{const n=e;c[n]=e=>{const r=t(e)||{};return Object.assign(Object.assign({},s[n]),r)}})),"function"!=typeof(null==c?void 0:c.inputHighlight)&&(null===(n=null==c?void 0:c.inputHighlight)||void 0===n?void 0:n.backgroundColor)&&t.style.setProperty("--jer-highlight-color",null===(r=null==c?void 0:c.inputHighlight)||void 0===r?void 0:r.backgroundColor),"function"!=typeof(null==c?void 0:c.iconCopy)&&(null===(o=null==c?void 0:c.iconCopy)||void 0===o?void 0:o.color)&&t.style.setProperty("--jer-icon-copy-color",null===(i=null==c?void 0:c.iconCopy)||void 0===i?void 0:i.color),c},_=(e,t)=>{const{fragments:n,styles:r}=e,o={};return Object.entries(r).forEach((([e,r])=>{const i=(Array.isArray(r)?r:[r]).reduce(((r,o)=>{var i,a;if("function"==typeof o)return t[e]=o,Object.assign({},r);if("string"==typeof o){const t=null!==(i=null==n?void 0:n[o])&&void 0!==i?i:o;return"string"==typeof t?Object.assign(Object.assign({},r),{[null!==(a=F[e])&&void 0!==a?a:"color"]:t}):Object.assign(Object.assign({},r),t)}return Object.assign(Object.assign({},r),o)}),{});o[e]=i})),o},z=e=>!("styles"in e),F={container:"backgroundColor",collection:"backgroundColor",collectionInner:"backgroundColor",collectionElement:"backgroundColor",dropZone:"borderColor",inputHighlight:"backgroundColor"},M=r(null),L=({children:e,onEditEvent:n,onCollapse:r})=>{const[o,l]=i(null),[s,c]=i(null),[d,u]=i(null),[p,g]=i({path:null,pathString:null}),h=a(null),m=a("next"),y=a(null);return t(M.Provider,{value:{collapseState:o,setCollapseState:e=>{l(e),r&&null!==e&&(Array.isArray(e)?e.forEach((e=>r(e))):r(e)),null!==e&&setTimeout((()=>l(null)),2e3)},getMatchingCollapseState:e=>{if(Array.isArray(o)){for(const t of o)if(B(e,t))return t;return null}return B(e,o)?o:null},currentlyEditingElement:s,setCurrentlyEditingElement:(e,t)=>{const r="string"==typeof e||null===e?e:j(e,"key"===t?"key_":void 0);null!==s&&null!==r&&null!==h.current&&h.current(),c(r),n&&n(e,"key"===t),h.current="function"==typeof t?t:null},areChildrenBeingEdited:e=>null!==s&&s.includes(e),previouslyEditedElement:y.current,setPreviouslyEditedElement:e=>{y.current=e},tabDirection:m.current,setTabDirection:e=>{m.current=e},previousValue:d,setPreviousValue:u,dragSource:p,setDragSource:g},children:e})},I=()=>{const e=o(M);if(!e)throw new Error("Missing Context Provider");return e},B=(e,t)=>{if(null===t)return!1;if(!t.includeChildren)return t.path.every(((t,n)=>e[n]===t))&&t.path.length===e.length;for(const[n,r]of t.path.entries())if(r!==e[n])return!1;return!0},W="**INVALID_FUNCTION**",G=({nodeData:r,showStringQuotes:o=!0,stringTruncate:a=200,pathString:l,canEdit:s,setIsEditing:c,styles:d,translate:u,value:p,TextWrapper:g=({children:e})=>e})=>{const h=null!=p?p:r.value,[m,y]=i(!1),f=o?'"':"",b=h.length>a,v=()=>{s?c(!0):y(!m)};return e("div",{id:`${l}_display`,onDoubleClick:v,onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&v()},className:"jer-value-string",style:d,children:[f,b?e(n,m?{children:[t(g,{children:e("span",{children:[h,f]})}),e("span",{className:"jer-string-expansion jer-show-less",onClick:()=>y(!1),children:[" ",u("SHOW_LESS",r)]})]}:{children:[e(g,{children:[t("span",{children:h.slice(0,a-2).trimEnd()})," "]}),t("span",{className:"jer-string-expansion jer-ellipsis",onClick:()=>y(!0),children:"..."}),f]}):t(g,{children:`${h}${f}`})]})},Y=({styles:e,pathString:n,value:r,setValue:o,handleEdit:i,handleKeyboard:l,keyboardCommon:s})=>{const c=a(null);return t(h,{className:"jer-input-text",textAreaRef:c,name:n,value:r,setValue:o,handleKeyPress:e=>{l(e,Object.assign({stringConfirm:i,stringLineBreak:()=>{const e=N(c,"\n");o(e)}},s))},styles:e})},H=n=>{var{isEditing:r,path:o,enumType:i}=n,a=p(n,["isEditing","path","enumType"]);const{getStyles:l}=P(),s=j(o),{value:c,setValue:d,nodeData:u,handleEdit:g,handleKeyboard:h,keyboardCommon:m}=a;return r&&i?e("div",{className:"jer-select jer-select-enums",children:[t("select",{name:`${s}-value-select`,className:"jer-select-inner",onChange:e=>d(e.target.value),value:c,autoFocus:!0,onKeyDown:e=>{h(e,Object.assign({stringConfirm:g},m))},children:i.values.map((e=>t("option",{value:e,children:e},e)))}),t("span",{className:"focus"})]}):r?t(Y,Object.assign({styles:l("input",u),pathString:s},a,{setValue:a.setValue})):t(G,Object.assign({pathString:s,styles:l("string",u)},a))},U=({value:e,setValue:n,isEditing:r,path:o,setIsEditing:i,handleEdit:a,nodeData:l,handleKeyboard:s,keyboardCommon:c})=>{const{getStyles:d}=P();return r?t("input",{className:"jer-input-number",type:"text",name:j(o),value:e,onChange:e=>n(e.target.value.replace(/[^0-9.-]/g,"")),autoFocus:!0,onFocus:e=>setTimeout((()=>e.target.select()),10),onKeyDown:t=>s(t,Object.assign({numberConfirm:a,numberUp:()=>n(Number(e)+1),numberDown:()=>n(Number(e)-1)},c)),style:Object.assign({width:String(e).length/1.5+2+"em"},d("input",l))}):t("span",{onDoubleClick:()=>i(!0),className:"jer-value-number",style:d("number",l),children:e})},$=({value:e,setValue:n,isEditing:r,path:o,setIsEditing:i,handleEdit:a,nodeData:l,handleKeyboard:s,keyboardCommon:c})=>{const{getStyles:d}=P();return"boolean"!=typeof e?null:r?t("input",{className:"jer-input-boolean",type:"checkbox",name:j(o),checked:e,onChange:()=>n(!e),onKeyDown:t=>{" "===t.key&&t.preventDefault(),s(t,Object.assign({booleanConfirm:a,booleanToggle:()=>n(!e)},c))},autoFocus:!0}):t("span",{onDoubleClick:()=>i(!0),className:"jer-value-boolean",style:d("boolean",l),children:String(e)})},Z=(e,t)=>{const n=a(void 0),r=a(t);l((()=>{r.current=t}),[t]);const o=e=>{r.current(e)};l((()=>{if(window.clearTimeout(n.current),e)return n.current=window.setTimeout((()=>{window.addEventListener("keydown",o)}),100),()=>{window.clearTimeout(n.current),window.removeEventListener("keydown",o)}}),[e])},X=({value:e,isEditing:n,setIsEditing:r,handleEdit:o,nodeData:i,handleKeyboard:a,keyboardCommon:l})=>{const{getStyles:s}=P();return Z(n,(e=>a(e,Object.assign({confirm:o},l)))),t("div",{onDoubleClick:()=>r(!0),className:"jer-value-null",style:s("null",i),children:String(e)})},J=({value:e})=>{let n="Error!";switch(typeof e){case"string":e===W&&(n="Function");break;case"undefined":n="Undefined";break;case"symbol":n="Symbol"}return t("span",{className:"jer-value-invalid",children:n})},Q=({size:n,style:r,className:o})=>e("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:n,height:n,className:o,style:r,children:[t("path",{d:"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z"}),t("path",{d:"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z"})]}),q=({size:n,style:r,className:o})=>e("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:n,height:n,className:o,style:r,transform:"translate(0, 0.5)",children:[t("path",{d:"M7 17.013l4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z"}),t("path",{d:"M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z"})]}),ee=({size:e,style:n,className:r})=>t("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:e,height:e,className:r,style:n,children:t("path",{d:"M6 19a2 2 0 002 2h8a2 2 0 002-2V7H6v12m2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12M15.5 4l-1-1h-5l-1 1H5v2h14V4h-3.5z"})}),te=({size:n,style:r,className:o})=>e("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:n,height:n,className:o,style:r,children:[t("path",{d:"M9 2 H15 A1 1 0 0 1 16 3 V5 A1 1 0 0 1 15 6 H9 A1 1 0 0 1 8 5 V3 A1 1 0 0 1 9 2 z"}),t("path",{d:"M8 4H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2v-2M16 4h2a2 2 0 012 2v4M21 14H11"}),t("path",{d:"M15 10l-4 4 4 4"})]}),ne=({size:n,style:r,className:o})=>e("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:n,height:n,className:o,style:r,children:[t("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),t("path",{d:"M22 4L12 14.01l-3-3"})]}),re=({size:e,style:n,className:r})=>t("svg",{baseProfile:"tiny",viewBox:"0 0 24 24",fill:"currentColor",width:e,height:e,className:r,style:n,children:t("path",{d:"M12 4c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8zm-5 8c0-.832.224-1.604.584-2.295l6.711 6.711A4.943 4.943 0 0112 17c-2.757 0-5-2.243-5-5zm9.416 2.295L9.705 7.584A4.943 4.943 0 0112 7c2.757 0 5 2.243 5 5 0 .832-.224 1.604-.584 2.295z"})}),oe=({size:e,style:n,className:r})=>t("svg",{viewBox:"0 0 512 512",fill:"currentColor",width:e,height:e,className:r,style:n,children:t("path",{d:"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"})}),ie=({name:e,nodeData:r})=>{var o,i,a,l,s,c,d;const{getStyles:u,icons:p}=P(),g={size:"1.4em",className:"jer-icon"};switch(e){case"add":return null!==(o=null==p?void 0:p.add)&&void 0!==o?o:t(Q,Object.assign({},g,{style:u("iconAdd",r)}));case"edit":return null!==(i=null==p?void 0:p.edit)&&void 0!==i?i:t(q,Object.assign({},g,{style:u("iconEdit",r)}));case"delete":return null!==(a=null==p?void 0:p.delete)&&void 0!==a?a:t(ee,Object.assign({},g,{style:u("iconDelete",r),size:"1.45em"}));case"copy":return null!==(l=null==p?void 0:p.copy)&&void 0!==l?l:t(te,Object.assign({},g,{style:u("iconCopy",r),size:"1.2em"}));case"ok":return null!==(s=null==p?void 0:p.ok)&&void 0!==s?s:t(ne,Object.assign({},g,{style:Object.assign({fontSize:"90%"},u("iconOk",r))}));case"cancel":return null!==(c=null==p?void 0:p.cancel)&&void 0!==c?c:t(re,Object.assign({},g,{style:Object.assign({fontSize:"130%"},u("iconCancel",r))}));case"chevron":return null!==(d=null==p?void 0:p.chevron)&&void 0!==d?d:t(oe,{size:"1em",style:u("iconCollection",r)});default:return t(n,{})}},ae=({startEdit:r,handleDelete:o,handleAdd:a,enableClipboard:l,type:s,customButtons:c,nodeData:d,translate:p,keyboardControls:g,handleKeyboard:h,editConfirmRef:m,getNewKeyOptions:y,jsonStringify:f})=>{const{getStyles:b}=P(),v=p("KEY_NEW",d),[j,w]=i(v),[D,C]=i(!1),{key:k,path:O,value:S}=d,N=Array.isArray(D),x=e=>{var t;if(!e)return void C(!1);const n=Object.keys(u(d.fullData,O)),r=y?null===(t=y(d))||void 0===t?void 0:t.filter((e=>!n.includes(e))):null;r&&w(""),C(null==r||r)};return e("div",{className:"jer-edit-buttons",style:{opacity:D?1:void 0},onClick:e=>e.stopPropagation(),children:[l&&t("div",{onClick:e=>{var t;e.stopPropagation();let n,r,o="value",i="",a=null;if(l){const c=E(e);if(c&&g.clipboardModifier.includes(c)?(n=se(O),i=n,o="path"):(n=S,i=s?f(S):String(n)),!navigator.clipboard)return void("function"==typeof l&&l({success:!1,value:n,stringValue:i,path:O,key:k,type:o,errorMessage:"Can't access clipboard API"}));null===(t=navigator.clipboard)||void 0===t||t.writeText(i).then((()=>r=!0)).catch((e=>{r=!1,a=e.message})).finally((()=>{"function"==typeof l&&l({success:r,errorMessage:a,value:n,stringValue:i,path:O,key:k,type:o})}))}},className:"jer-copy-pulse",children:t(ie,{name:"copy",nodeData:d})}),r&&t("div",{onClick:r,children:t(ie,{name:"edit",nodeData:d})}),o&&t("div",{onClick:o,children:t(ie,{name:"delete",nodeData:d})}),a&&t("div",{onClick:()=>{"object"===s?x(!0):a("")},children:t(ie,{name:"add",nodeData:d})}),null==c?void 0:c.map((({Element:e,onClick:n},r)=>t("div",{onClick:e=>n&&n(d,e),children:t(e,{nodeData:d})},r))),D&&a&&"object"===s&&e(n,{children:[N?e("div",{className:"jer-select jer-select-keys",children:[e("select",{name:"new-key-select",className:"jer-select-inner",onChange:e=>{a(e.target.value),x(!1)},defaultValue:"",autoFocus:!0,onKeyDown:e=>{h(e,{cancel:()=>x(!1)})},children:[t("option",{value:"",disabled:!0,children:D.length>0?p("KEY_SELECT",d):p("NO_KEY_OPTIONS",d)}),D.map((e=>t("option",{value:e,children:e},e)))]}),t("span",{className:"focus"})]}):t("input",{className:"jer-input-new-key",type:"text",name:"new-object-key",value:j,onChange:e=>w(e.target.value),autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{h(e,{stringConfirm:()=>{a&&(x(!1),a(j),w(v))},cancel:()=>{x(!1),w(v)}})},style:b("input",d)}),t(le,{onOk:()=>{N&&!j||(x(!1),a(j))},onCancel:()=>{x(!1)},nodeData:d,editConfirmRef:m,hideOk:N})]})]})},le=({onOk:n,onCancel:r,nodeData:o,editConfirmRef:i,hideOk:a=!1})=>e("div",{className:"jer-confirm-buttons",children:[!a&&t("div",{onClick:n,ref:i,children:t(ie,{name:"ok",nodeData:o})}),t("div",{onClick:r,children:t(ie,{name:"cancel",nodeData:o})})]}),se=e=>e.reduce(((e,t)=>"number"==typeof t?`${e}[${t}]`:""===e?t:`${e}.${t}`),""),ce=["string","number","boolean","null","object","array"],de=(e=[],t)=>{const n=e.filter((({condition:e})=>e(t)));if(0===n.length)return{};const r=n[0],{element:o,wrapperElement:i,customNodeProps:a,wrapperProps:l,hideKey:s=!1,showEditTools:c=!0,showOnEdit:d=!1,showOnView:u=!0,showCollectionWrapper:g=!0}=r,h=p(r,["element","wrapperElement","customNodeProps","wrapperProps","hideKey","showEditTools","showOnEdit","showOnView","showCollectionWrapper"]);return Object.assign({CustomNode:o,CustomWrapper:i,customNodeProps:a,wrapperProps:l,hideKey:s,showEditTools:c,showOnEdit:d,showOnView:u,showCollectionWrapper:g},h)},ue=({props:e,collapsed:t})=>{const{data:n,nodeData:r,parentData:o,onEdit:a,onError:l,showErrorMessages:c,restrictEditFilter:d,restrictDeleteFilter:u,restrictAddFilter:p,restrictDragFilter:g,translate:h,errorMessageTimeout:m}=e,{currentlyEditingElement:y,setCurrentlyEditingElement:f}=I(),[b,v]=i(null),E=Object.assign(Object.assign({},r),{collapsed:t}),{path:w,key:D,size:C}=E,k=j(w),O=!d(E),S=!u(E),N=!p(E),x=!g(E)&&S&&null===y,A=e=>{c&&(v(e),setTimeout((()=>v(null)),m)),console.warn("Error",e)},T=s(((e,t)=>{A(e.message),l&&l({currentData:E.fullData,errorValue:t,currentValue:n,name:D,path:w,error:e})}),[l,c]),R=y===k,K=y===`key_${k}`,P="number"==typeof w.slice(-1)[0];return{pathString:k,nodeData:E,path:w,name:D,size:C,canEdit:O,canDelete:S,canAdd:N,canDrag:x,error:b,showError:A,onError:T,setError:v,handleEditKey:e=>{if(f(null),D===e)return;if(!o)return;const t=w.slice(0,-1);if(Object.keys(o).includes(e))return void T({code:"KEY_EXISTS",message:h("ERROR_KEY_EXISTS",E)},e);const n=Object.fromEntries(Object.entries(o).map((([t,n])=>t===D?[e,n]:[t,n])));a(n,t).then((t=>{t&&T({code:"UPDATE_ERROR",message:t},e)}))},derivedValues:{isEditing:R,isEditingKey:K,isArray:P,canEditKey:null!==o&&O&&N&&S&&!P}}},pe=({canDrag:e,canDragOnto:n,path:r,nodeData:o,onMove:a,onError:l,translate:s})=>{const{getStyles:d}=P(),{dragSource:u,setDragSource:p}=I(),[g,h]=i(!1),m=j(r),y=c((()=>e?{onDragStart:e=>{e.stopPropagation(),p({path:r,pathString:m})},onDragEnd:e=>{e.stopPropagation(),p({path:null,pathString:null})}}:{}),[e,m]),f=c((()=>e=>n?{onDragOver:e=>{e.stopPropagation(),e.preventDefault()},onDrop:t=>{t.stopPropagation(),v(e),p({path:null,pathString:null}),h(!1)},onDragEnter:t=>{var n;t.stopPropagation(),m.startsWith(null!==(n=u.pathString)&&void 0!==n?n:"")||h(e)},onDragExit:e=>{e.stopPropagation(),h(!1)}}:{}),[u,n,m]),b=c((()=>n&&null!==u.pathString?t("div",Object.assign({className:"jer-drop-target-bottom",style:{height:"50%",position:"absolute",width:"100%",top:"50%",zIndex:r.length}},f("below"))):null),[u,n,r.length]),v=e=>{var t,n;const i=null===(t=u.path)||void 0===t?void 0:t.slice(-1)[0],c=null===(n=u.path)||void 0===n?void 0:n.slice(0,-1).join("."),d=r.slice(0,-1).join(""),{parentData:p}=o;"string"==typeof i&&p&&!Array.isArray(p)&&Object.keys(p).includes(i)&&i in p&&c!==d?l({code:"KEY_EXISTS",message:s("ERROR_KEY_EXISTS",o)},i):a(u.path,r,e).then((e=>{e&&l({code:"UPDATE_ERROR",message:e},o.value)}))};return{dragSourceProps:y,getDropTargetProps:f,BottomDropTarget:b,DropTargetPadding:({position:e,nodeData:n})=>g===e?t("div",{className:"jer-drag-n-drop-padding",style:d("dropZone",n)}):null,handleDrop:v}},ge=(e,t,n,r)=>{var o,i,a;if(!t.current)return 0;const l=parseInt(null!==(o=getComputedStyle(n.current).getPropertyValue("line-height"))&&void 0!==o?o:"16px"),s=(null!==(a=null===(i=t.current)||void 0===i?void 0:i.offsetWidth)&&void 0!==a?a:0)/(.5*l),c=r(e).replace(/\\n/g,"\n").split("\n").map((e=>Math.ceil(e.length/s))).reduce(((e,t)=>e+t),0)*l;return Math.min(c+30,window.innerHeight-50)},he=({isEditingKey:n,canEditKey:r,pathString:o,path:i,name:a,handleKeyboard:l,handleEditKey:s,handleCancel:c,handleClick:d,keyValueArray:u,styles:p,getNextOrPrevious:g})=>{const{setCurrentlyEditingElement:h}=I();return n?t("input",{className:"jer-input-text jer-key-edit",type:"text",name:o,defaultValue:a,autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>l(e,{stringConfirm:()=>s(e.target.value),cancel:c,tabForward:()=>{if(s(e.target.value),u){const e=null==u?void 0:u[0][0];h(e?[...i,e]:g("next"))}else h(i)},tabBack:()=>{s(e.target.value),h(g("prev"))}}),style:{width:String(a).length/1.5+.5+"em"}}):e("span",{className:"jer-key-text",style:Object.assign(Object.assign({},p),{minWidth:`${Math.min(String(a).length+1,5)}ch`,flexShrink:a.length>10?1:0}),onDoubleClick:()=>r&&h(i,"key"),onClick:d,children:[""===a?t("span",{className:i.length>0?"jer-empty-string":void 0}):`${a}`,t("span",{className:"jer-key-colon",children:":"})]})},me=n=>{const{data:r,parentData:o,onEdit:a,onDelete:d,onChange:u,onMove:p,enableClipboard:g,canDragOnto:h,restrictTypeSelection:m,searchFilter:f,searchText:b,showLabel:v,stringTruncate:j,showStringQuotes:E,indent:w,translate:D,customNodeDefinitions:C,handleKeyboard:O,keyboardControls:S,sort:N,editConfirmRef:x,jsonStringify:A}=n,{getStyles:T}=P(),{setCurrentlyEditingElement:R,setCollapseState:K,previouslyEditedElement:V,setPreviouslyEditedElement:_,tabDirection:z,setTabDirection:F,previousValue:M,setPreviousValue:L}=I(),[B,G]=i("function"==typeof r?W:r),{pathString:Y,nodeData:H,path:U,name:$,canEdit:Z,canDelete:X,canDrag:J,error:Q,onError:q,handleEditKey:ee,derivedValues:te}=ue({props:n}),{dragSourceProps:ne,getDropTargetProps:re,BottomDropTarget:oe,DropTargetPadding:ie}=pe({canDrag:J,canDragOnto:h,path:U,nodeData:H,onMove:p,onError:q,translate:D}),se=de(C,H),[ge,me]=i(ye(r,se)),ve=s((e=>{if(!u)return void G(e);const t=u({currentData:H.fullData,newValue:e,currentValue:B,name:$,path:U});G(t)}),[u]);l((()=>{G("function"==typeof r?W:r),me(ye(r,se))}),[r,Q]);const{CustomNode:je,customNodeProps:Ee,hideKey:we,showEditTools:De=!0,showOnEdit:Ce,showOnView:ke,passOriginalNode:Oe}=se,Se=[...ce,...C.filter((({showInTypesSelector:e=!1,name:t})=>e&&!!t)).map((({name:e})=>e))],Ne=c((()=>{if("boolean"==typeof m)return m?[]:Se;if(Array.isArray(m))return m;const e=m(H);return"boolean"==typeof e?e?[]:Se:e}),[H,m]),[xe,Ae]=i(((e,t)=>{var n;if("string"!=typeof e)return null;const r=t.filter((t=>t instanceof Object&&t.enum&&t.values.includes(e)&&t.matchPriority));return r.sort(((e,t)=>{var n,r;return(null!==(n=t.matchPriority)&&void 0!==n?n:0)-(null!==(r=e.matchPriority)&&void 0!==r?r:0)})),null!==(n=r[0])&&void 0!==n?n:null})(B,Ne)),{isEditing:Te}=te,Re=y("value",H,f,b);if(Te&&(!Re||!Z)){const e=k(H.fullData,U,z,N);R(e||V)}if(!Re)return null;const Ke=e=>{let t;if(R(null),L(null),void 0===e||(e=>e&&"object"==typeof e&&"type"in e&&"target"in e&&"preventDefault"in e&&"function"==typeof e.preventDefault)(e))switch(ge){case"object":t={[D("DEFAULT_NEW_KEY",H)]:B};break;case"array":t=null!=B?B:[];break;case"number":{const e=Number(B);t=isNaN(e)?0:e;break}default:t=B}else t=e;a(t,U).then((e=>{e&&q({code:"UPDATE_ERROR",message:e},t)}))},Pe=()=>{R(null),null===M?(G(r),L(null)):a(M,U)},{isEditingKey:Ve,canEditKey:_e}=te,ze=!Te&&Q,Fe=Te&&Ne.length>1,Me=("invalid"!==ge||je)&&!Q&&De,Le=v&&!we,Ie=je&&(Te&&Ce||!Te&&ke),Be={value:B,parentData:o,setValue:ve,isEditing:Te,canEdit:Z,setIsEditing:Z?()=>R(U):()=>{},handleEdit:Ke,handleCancel:Pe,path:U,stringTruncate:j,showStringQuotes:E,nodeData:H,enumType:xe,translate:D,handleKeyboard:O,keyboardCommon:{cancel:Pe,tabForward:()=>{F("next"),_(Y);const e=k(H.fullData,U,"next",N);e&&(Ke(),R(e))},tabBack:()=>{F("prev"),_(Y);const e=k(H.fullData,U,"prev",N);e&&(Ke(),R(e))}}},We={canEditKey:_e,isEditingKey:Ve,pathString:Y,path:U,name:$,handleKeyboard:O,handleEditKey:ee,handleCancel:Pe,styles:T("property",H),getNextOrPrevious:e=>k(H.fullData,U,e,N)},Ge=Ie?t(je,Object.assign({},n,{value:B,customNodeProps:Ee,setValue:ve,handleEdit:Ke,handleCancel:Pe,handleKeyPress:e=>O(e,{stringConfirm:Ke,cancel:Pe}),isEditing:Te,setIsEditing:()=>R(U),getStyles:T,originalNode:Oe?fe(r,Be):void 0,originalNodeKey:Oe?t(he,Object.assign({},We)):void 0,canEdit:Z,keyboardCommon:Be.keyboardCommon,onError:q})):fe(r,Be);return e("div",Object.assign({className:"jer-component jer-value-component",style:{marginLeft:w/2+"em",position:"relative"},draggable:J},ne,re("above"),{children:[oe,t(ie,{position:"above",nodeData:H}),e("div",{className:"jer-value-main-row",style:{flexWrap:$.length>10?"wrap":"nowrap"},children:[Le&&t(he,Object.assign({},We)),e("div",{className:"jer-value-and-buttons",children:[t("div",{className:"jer-input-component",children:Ge}),Te?t(le,{onOk:Ke,onCancel:Pe,nodeData:H,editConfirmRef:x}):Me&&t(ae,{startEdit:Z?()=>{L(M),R(U,Pe)}:void 0,handleDelete:X?()=>{d(B,U).then((e=>{e&&q({code:"DELETE_ERROR",message:e},B)}))}:void 0,enableClipboard:g,translate:D,customButtons:n.customButtons,nodeData:H,handleKeyboard:O,keyboardControls:S,editConfirmRef:x,jsonStringify:A}),Fe&&e("div",{className:"jer-select jer-select-types",children:[t("select",{name:`${$}-type-select`,className:"jer-select-inner",onChange:e=>(e=>{const t=C.find((t=>t.name===e));if(t)return a(t.defaultValue,U),me(e),Ae(null),R(null),void K({path:U,collapsed:!1,includeChildren:!1});const n=Ne.find((t=>t instanceof Object&&t.enum===e));if(n)return"string"==typeof B&&n.values.includes(B)||a(n.values[0],U).then((e=>{e&&(q({code:"UPDATE_ERROR",message:e},r),R(null))})),void Ae(n);const r=be(B,e,D("DEFAULT_NEW_KEY",H),(null==se?void 0:se.CustomNode)?D("DEFAULT_STRING",H):void 0);a(r,U).then((e=>{e?(q({code:"UPDATE_ERROR",message:e},r),R(null)):Ae(null)}))})(e.target.value),value:xe?xe.enum:ge,children:Ne.map((e=>e instanceof Object&&"enum"in e?t("option",{value:e.enum,children:e.enum},e.enum):t("option",{value:e,children:e},e)))}),t("span",{className:"focus"})]}),ze&&t("span",{className:"jer-error-slug",style:T("error",H),children:Q})]})]}),t(ie,{position:"below",nodeData:H})]}))},ye=(e,t)=>(null==t?void 0:t.CustomNode)&&(null==t?void 0:t.name)&&t.showInTypesSelector?t.name:"string"==typeof e?"string":"number"==typeof e?"number":"boolean"==typeof e?"boolean":null===e?"null":"invalid",fe=(e,n)=>{const r=ye(e),{value:o}=n;switch(r){case"string":return t(H,Object.assign({},n,{value:o}));case"number":return t(U,Object.assign({},n,{value:o}));case"boolean":return t($,Object.assign({},n,{value:o}));case"null":return t(X,Object.assign({},n));default:return t(J,Object.assign({},n))}},be=(e,t,n,r)=>{switch(t){case"string":return null!=r?r:String(e);case"number":{const t=Number(e);return isNaN(t)?0:t}case"boolean":return!!e;case"null":return null;case"object":return{[n]:e};case"array":return[e];default:return String(e)}},ve=r=>{const{getStyles:o}=P(),{collapseState:d,setCollapseState:u,getMatchingCollapseState:p,currentlyEditingElement:f,setCurrentlyEditingElement:b,areChildrenBeingEdited:v,previousValue:j,setPreviousValue:w}=I(),{mainContainerRef:D,data:C,nodeData:O,parentData:S,showCollectionCount:x,onEdit:A,onAdd:T,onDelete:R,canDragOnto:K,collapseFilter:V,collapseAnimationTime:_,onMove:z,enableClipboard:F,searchFilter:M,searchText:L,indent:B,sort:W,showArrayIndices:G,defaultValue:Y,newKeyOptions:H,translate:U,customNodeDefinitions:$,jsonParse:Z,jsonStringify:X,TextEditor:J,keyboardControls:Q,handleKeyboard:q,insertAtTop:ee,onCollapse:te,editConfirmRef:ne,collapseClickZones:re}=r,[oe,se]=i(X(C)),ce=V(O),{contentRef:ye,isAnimating:fe,maxHeight:be,collapsed:je,animateCollapse:Ee,cssTransitionValue:we}=((e,t,n,r,o)=>{const[l,c]=i(n?0:void 0),[d,u]=i(n),p=a(!1),g=a(null),h=a(0),m=a(0),y=t/1e3+"s",f=s((n=>{var i,a;if(d!==n){switch(window.clearTimeout(m.current),p.current=!0,n){case!0:{const e=null!==(a=null===(i=g.current)||void 0===i?void 0:i.offsetHeight)&&void 0!==a?a:0;h.current=e,c(e),setTimeout((()=>{c(0)}),5);break}case!1:c(h.current||ge(e,g,r,o))}u(!d),m.current=window.setTimeout((()=>{p.current=!1,n||c(void 0)}),t)}}),[t,d,e,r,o]);return{contentRef:g,isAnimating:p.current,animateCollapse:f,maxHeight:l,collapsed:d,cssTransitionValue:y}})(C,_,ce,D,X),{pathString:De,nodeData:Ce,path:ke,name:Oe,size:Se,canEdit:Ne,canDelete:xe,canAdd:Ae,canDrag:Te,error:Re,setError:Ke,onError:Pe,handleEditKey:Ve,derivedValues:_e}=ue({props:r,collapsed:je}),{dragSourceProps:ze,getDropTargetProps:Fe,BottomDropTarget:Me,DropTargetPadding:Le}=pe({canDrag:Te,canDragOnto:K,path:ke,nodeData:Ce,onMove:z,onError:Pe,translate:U}),Ie=a(!ce),{isEditing:Be,isEditingKey:We,isArray:Ge,canEditKey:Ye}=_e;l((()=>{se(X(C))}),[C,X]),l((()=>{const e=V(Ce)&&!Be;Ie.current=!e,Ee(e)}),[V]),l((()=>{if(null!==d){const e=p(ke);e&&(Ie.current=!0,Ee(e.collapsed))}}),[d]);const He=a(null),Ue=s(((e,t)=>{if("function"!=typeof Y)return Y;const n=Y(e,t);return void 0!==n?n:null}),[Y]),$e=s((e=>H?"function"!=typeof H?H:H(e):null),[H]),{CustomNode:Ze,customNodeProps:Xe,CustomWrapper:Je,wrapperProps:Qe={},hideKey:qe,showEditTools:et=!0,showOnEdit:tt,showOnView:nt,showCollectionWrapper:rt=!0}=c((()=>de($,Ce)),[Ce,$]),ot=v(De);ot&&je&&Ee(!1);if(!(y("collection",Ce,M,L)||0===Ce.level)&&!ot)return null;const it=Array.isArray(C)?"array":"object",at="array"===it?{open:"[",close:"]"}:{open:"{",close:"}"},lt=e=>{if("Tab"!==e.key||e.getModifierState("Shift"))q(e,{objectConfirm:ct,cancel:ut});else{e.preventDefault();const t=N(He,"\t");se(t)}},st=e=>{e.stopPropagation();const t=E(e);if(t&&Q.collapseModifier.includes(t))return Ie.current=!0,void u({collapsed:!je,path:ke,includeChildren:!0});f&&f.includes(De)||(Ie.current=!0,u(null),te&&te({path:ke,collapsed:!je,includeChildren:!1}),Ee(!je))},ct=()=>{try{const e=Z(oe);if(b(null),w(null),Ke(null),X(e)===X(C))return;A(e,ke).then((t=>{t&&Pe({code:"UPDATE_ERROR",message:t},e)}))}catch(e){Pe({code:"INVALID_JSON",message:U("ERROR_INVALID_JSON",Ce)},oe)}},dt=ke.length>0?()=>{R(C,ke).then((e=>{e&&Pe({code:"DELETE_ERROR",message:e},C)}))}:void 0,ut=()=>{b(null),null===j?(Ke(null),se(X(C)),w(null)):A(j,ke)},pt="when-closed"===x?je:x,gt=!Be&&et,ht=(G||!Ge)&&!qe&&void 0!==Oe,mt=Ze&&(Be&&tt||!Be&&nt),yt=Object.entries(C).map((([e,t])=>["array"===it?Number(e):e,t]));"object"===it&&W(yt,(e=>e));const ft=Ie.current?Be?e("div",{className:"jer-collection-text-edit",children:[J?t(J,{value:oe,onChange:se,onKeyDown:e=>q(e,{objectConfirm:ct,cancel:ut})}):t(h,{textAreaRef:He,className:"jer-collection-text-area",name:De,value:oe,setValue:se,handleKeyPress:lt,styles:o("input",Ce)}),t("div",{className:"jer-collection-input-button-row",children:t(le,{onOk:ct,onCancel:ut,nodeData:Ce,editConfirmRef:ne})})]}):yt.map((([e,n],i)=>{const a={key:e,value:n,path:[...ke,e],level:ke.length+1,index:i,size:m(n)?Object.keys(n).length:null,parentData:C,fullData:Ce.fullData};return t("div",{className:"jer-collection-element",style:o("collectionElement",a),children:m(n)?t(ve,Object.assign({},r,{data:n,parentData:C,nodeData:a,showCollectionCount:x,canDragOnto:Ne}),e):t(me,Object.assign({},r,{data:n,parentData:C,nodeData:a,canDragOnto:Ne,showLabel:"object"===it||G}),e)},e)})):null,bt=!!rt&&(je&&!ot);bt||(Ie.current=!0);const vt=Object.assign(Object.assign({},r),{data:C,value:C,parentData:S,nodeData:Ce,setValue:e=>g(void 0,void 0,void 0,(function*(){return yield A(e,ke)})),handleEdit:ct,handleCancel:ut,handleKeyPress:lt,isEditing:Be,setIsEditing:()=>b(ke),getStyles:o,canDragOnto:Ne,canEdit:Ne,keyboardCommon:{},onError:Pe}),jt=mt?t(Ze,Object.assign({customNodeProps:Xe},vt,{children:ft})):ft,Et=gt&&t(ae,{startEdit:Ne?()=>{Ie.current=!0,w(null),b(ke)}:void 0,handleAdd:Ae?e=>{Ee(!1);const t=Ue(Ce,e);if("array"===it){const e=ee.array?0:C.length,n=ee.array?{insert:!0}:{};T(t,[...ke,e],n).then((e=>{e&&Pe({code:"ADD_ERROR",message:e},t)}))}else if(e in C)Pe({code:"KEY_EXISTS",message:U("ERROR_KEY_EXISTS",Ce)},e);else{const n=ee.object?{insertBefore:0}:{};T(t,[...ke,e],n).then((e=>{e&&Pe({code:"ADD_ERROR",message:e},t)}))}}:void 0,handleDelete:xe?dt:void 0,enableClipboard:F,type:it,nodeData:Ce,translate:U,customButtons:r.customButtons,keyboardControls:Q,handleKeyboard:q,getNewKeyOptions:$e,editConfirmRef:ne,jsonStringify:X}),wt={canEditKey:Ye,isEditingKey:We,pathString:De,path:ke,name:Oe,handleKeyboard:q,handleEditKey:Ve,handleCancel:ut,keyValueArray:yt,styles:o("property",Ce),getNextOrPrevious:e=>k(Ce.fullData,ke,e,W),handleClick:re.includes("property")?st:e=>e.stopPropagation()},Dt=e("div",Object.assign({className:"jer-component jer-collection-component",style:Object.assign(Object.assign({marginLeft:(0===ke.length?0:B/2)+"em"},o("collection",Ce)),{position:"relative"}),draggable:Te},ze,Fe("above"),{children:[t("div",{className:"jer-clickzone",style:{width:B/2+1+"em",zIndex:10+2*Ce.level},onClick:re.includes("left")?st:void 0}),!Be&&Me,t(Le,{position:"above",nodeData:Ce}),rt?e("div",{className:"jer-collection-header-row",style:{position:"relative"},onClick:re.includes("header")?st:void 0,children:[e("div",{className:"jer-collection-name",children:[t("div",{className:"jer-collapse-icon jer-accordion-icon"+(je?" jer-rotate-90":""),style:{zIndex:11+2*Ce.level,transition:we},onClick:st,children:t(ie,{name:"chevron",rotate:je,nodeData:Ce})}),ht&&t(he,Object.assign({},wt)),!Be&&t("span",{className:"jer-brackets jer-bracket-open",style:o("bracket",Ce),children:at.open})]}),!Be&&pt&&t("div",{className:"jer-collection-item-count"+(pt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},o("itemCount",Ce)),{transition:we}),children:1===Se?U("ITEM_SINGLE",Object.assign(Object.assign({},Ce),{size:1}),1):U("ITEMS_MULTIPLE",Ce,Se)}),t("div",{className:"jer-brackets"+(bt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},o("bracket",Ce)),{transition:we}),children:at.close}),Et]}):qe?t(n,{}):e("div",{className:"jer-collection-header-row",style:{position:"relative"},children:[t(he,Object.assign({},wt)),Et]}),e("div",{className:"jer-collection-inner",style:Object.assign(Object.assign({overflowY:bt||fe?"clip":"visible",maxHeight:ot?void 0:be},o("collectionInner",Ce)),{transition:we}),ref:ye,children:[jt,t("div",{className:Be?"jer-collection-error-row":"jer-collection-error-row-edit",children:Re&&t("span",{className:"jer-error-slug",style:o("error",Ce),children:Re})}),!Be&&rt&&t("div",{className:"jer-brackets jer-bracket-outside",style:Object.assign(Object.assign({},o("bracket",Ce)),{marginLeft:(B<3?-1:B<6?-.5:0)+"em"}),children:at.close})]}),t(Le,{position:"below",nodeData:Ce})]}));return Je?t(Je,Object.assign({customNodeProps:Qe},vt,{children:Dt})):Dt},je={ITEM_SINGLE:"{{count}} item",ITEMS_MULTIPLE:"{{count}} items",KEY_NEW:"Enter new key",KEY_SELECT:"Select key",NO_KEY_OPTIONS:"No key options",ERROR_KEY_EXISTS:"Key already exists",ERROR_INVALID_JSON:"Invalid JSON",ERROR_UPDATE:"Update unsuccessful",ERROR_DELETE:"Delete unsuccessful",ERROR_ADD:"Adding node unsuccessful",DEFAULT_STRING:"New data!",DEFAULT_NEW_KEY:"key",SHOW_LESS:"(Show less)"},Ee=(e,t)=>(n,r,o)=>((e,t,n,r,o)=>{if(t[r]){const e=t[r](n);if(null!==e)return e}const i=r in e?e[r]:je[r];return void 0===o?i:null==i?void 0:i.replace("{{count}}",String(o))})(e,t,r,n,o);var we=[],De=[];!function(e,t){if(e&&"undefined"!=typeof document){var n,r=!0===t.prepend?"prepend":"append",o=!0===t.singleTag,i="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(o){var a=we.indexOf(i);-1===a&&(a=we.push(i)-1,De[a]={}),n=De[a]&&De[a][r]?De[a][r]:De[a][r]=l()}else n=l();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function l(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),o=0;o<n.length;o++)e.setAttribute(n[o],t.attributes[n[o]]);var a="prepend"===r?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}(':root{--jer-select-border:#b6b6b6;--jer-select-focus:#777;--jer-select-arrow:#777;--jer-form-border:1px solid #ededf0;--jer-form-border-focus:1px solid #e2e2e2;--jer-highlight-color:#b3d8ff}.jer-visible{opacity:1}.jer-hidden{opacity:0}.jer-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#000;cursor:inherit;font-family:inherit;font-size:.8em;line-height:inherit;margin:0;outline:none;padding:0 1em 0 0;z-index:1}select::-ms-expand{display:none}.jer-select{align-items:center;background-color:#fff;background-image:linear-gradient(0deg,#f9f9f9,#fff 33%);border:1px solid var(--jer-select-border);border-radius:.25em;cursor:pointer;display:grid;grid-template-areas:"select";line-height:1.1;max-width:15ch;min-width:12ch;padding:.25em .5em;position:relative}.jer-select select,.jer-select:after{grid-area:select}.jer-select:not(.jer-select--multiple):after{background-color:var(--jer-select-arrow);clip-path:polygon(100% 0,0 0,50% 100%);content:"";height:.5em;justify-self:end;width:.8em}select:focus+.focus{border:1px solid var(--jer-select-focus);border-radius:inherit;bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px}.jer-select-inner{text-overflow:ellipsis;width:100%}.jer-editor-container{border-radius:.5em;font-size:16px;line-height:1;padding:1em 1em 1em 2em;position:relative;text-align:left}.jer-editor-container textarea{border:var(--jer-form-border);border-radius:.3em;color:var(--jer-input-color);outline:none}.jer-editor-container textarea:focus{border:var(--jer-form-border-focus)}.jer-editor-container input{border:var(--jer-form-border);border-radius:.3em;font-family:inherit;outline:none}.jer-editor-container input:focus{border:var(--jer-form-border-focus)}.jer-editor-container ::selection{background-color:var(--jer-highlight-color)}.jer-collection-header-row,.jer-value-main-row{align-items:center;display:flex;gap:.3em;min-height:1.7em}.jer-collection-header-row{display:flex;flex-wrap:wrap}.jer-collapse-icon{left:-1.2em;position:absolute;top:.35em}.jer-collection-inner{position:relative}.jer-collection-text-edit{align-items:flex-start;display:flex;flex-direction:column;gap:.3em;line-height:1.1em}.jer-collection-text-area{font-family:inherit;font-size:.85em;max-height:40em;overflow:hidden;padding:.2em .5em 0;resize:both}.jer-collection-input-button-row{display:flex;font-size:150%;justify-content:flex-end;margin-top:.4em;width:100%}.jer-collection-error-row{bottom:.5em;position:absolute}.jer-error-slug{margin-left:1em}.jer-value-component{position:relative}.jer-value-main-row{display:flex;gap:0}.jer-value-and-buttons{align-items:center;display:flex;justify-content:flex-start;padding-left:.5em}.jer-value-error-row{position:absolute}.jer-value-string{line-height:1.3em;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.jer-string-expansion{cursor:pointer;filter:saturate(50%);opacity:.6}.jer-show-less{font-size:80%}.jer-hyperlink{text-decoration:underline}.jer-input-text{font-family:inherit;font-size:.9em;height:1.4em;line-height:1.2em;margin:0;min-width:6em;overflow:hidden;padding:.25em .5em .2em;resize:none}.jer-input-boolean{margin-left:.3em;margin-right:.3em;transform:scale(1.5)}.jer-key-text{line-height:1.1em;white-space:pre-wrap;word-break:break-word}.jer-key-edit{font-size:inherit;font-size:.9em;padding:0 .3em}.jer-value-invalid{font-style:italic;opacity:.5}.jer-input-number{font-size:90%;min-width:3em}.jer-confirm-buttons,.jer-edit-buttons{align-items:center;cursor:pointer;display:flex;height:1em}.jer-input-buttons{gap:.4em}.jer-edit-buttons{gap:.4em;margin-left:.5em;opacity:0}.jer-confirm-buttons{gap:.2em;margin-left:.4em}.jer-edit-buttons:hover{opacity:1;position:relative}.jer-collection-header-row:hover>.jer-edit-buttons,.jer-value-and-buttons:hover>.jer-edit-buttons,.jer-value-main-row:hover>.jer-edit-buttons{opacity:1}.jer-copy-pulse{position:relative;transition:.3s}.jer-copy-pulse:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-copy-pulse:after{border-radius:50%;box-shadow:0 0 15px 5px var(--jer-icon-copy-color);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .5s;width:100%}.jer-copy-pulse:active:after{border-radius:4em;box-shadow:0 0 0 0 var(--jer-icon-copy-color);left:0;opacity:1;position:absolute;top:0;transition:0s}.jer-copy-pulse:active{top:.07em}.jer-rotate-90{transform:rotate(-90deg)}.jer-icon:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-empty-string:after{content:"<empty string>";font-size:90%;font-style:italic}.jer-drag-n-drop-padding{border:1px dashed #e0e0e0;border-radius:.3em;height:.5em}.jer-clickzone{height:calc(100% - .8em);left:-1em;position:absolute;top:1.2em}',{});const Ce=({data:e,setData:n,rootName:r="root",onUpdate:o=()=>{},onEdit:d=o,onDelete:u=o,onAdd:p=o,onChange:h,onError:y,showErrorMessages:f=!0,enableClipboard:b=!0,indent:v=2,collapse:E=!1,collapseAnimationTime:D=300,showCollectionCount:k=!0,restrictEdit:O=!1,restrictDelete:S=!1,restrictAdd:N=!1,restrictTypeSelection:A=!1,restrictDrag:T=!0,viewOnly:R,searchFilter:K,searchText:V,searchDebounceTime:_=350,keySort:z=!1,showArrayIndices:F=!0,showStringQuotes:M=!0,defaultValue:L=null,newKeyOptions:B,minWidth:W=250,maxWidth:G="min(600px, 90vw)",rootFontSize:Y,stringTruncate:H=250,translations:U={},className:$,id:Z,customText:X={},customNodeDefinitions:J=[],customButtons:Q=[],jsonParse:q=JSON.parse,jsonStringify:ee=(e,t)=>JSON.stringify(e,t,2),TextEditor:te,errorMessageTimeout:ne=2500,keyboardControls:re={},externalTriggers:oe,insertAtTop:ie=!1,onCollapse:ae,collapseClickZones:le=["header","left"]})=>{const{getStyles:se}=P(),{setCurrentlyEditingElement:ce}=I(),de=c((()=>Se(E)),[E]),ue=c((()=>Ee(U,X)),[U,X]),[pe,ge]=i(V),[he,ye]=(({setData:e,data:t})=>{const[n,r]=i(e?void 0:t),o=s((t=>{e?e(t):r(t)}),[e]);return l((()=>{e||r(t)}),[t]),[e?t:n,o]})({setData:n,data:e}),fe=a(null);l((()=>{ce(null);const e=setTimeout((()=>ge(V)),_);return()=>clearTimeout(e)}),[V,_]);const be={key:r,path:[],level:0,index:0,value:he,size:"object"==typeof he&&null!==he?Object.keys(he).length:1,parentData:null,fullData:he},je=(e,t)=>g(void 0,void 0,void 0,(function*(){const n=yield e(t);if(!0===n||void 0===n)return void ye(t.newData);const r=xe(n)?n:["error",n],[o,i]=r;if("error"===o)return ye(t.currentData),!1===i?ue("ERROR_UPDATE",be):String(i);ye(i)})),we=c((()=>Se(O,R)),[O,R]),De=c((()=>Se(S,R)),[S,R]),Ce=c((()=>Se(N,R)),[N,R]),ke=c((()=>Se(T,R)),[T,R]),Te=c((()=>Ne(K)),[K]),Re=c((()=>(e=>{const t=Object.assign({},C);for(const n of Object.keys(C)){const r=n;if(e[r]){const o=e[r],i=["clipboardModifier","collapseModifier"].includes(n)?Array.isArray(o)?o:[o]:"string"==typeof o?{key:o}:o;t[r]=i,["stringConfirm","numberConfirm","booleanConfirm"].forEach((n=>{!e[n]&&e.confirm&&(t[n]=t.confirm)}))}}return t})(re)),[re]),Ke=s(((e,t)=>((e,t,n)=>{const r=Object.entries(t);for(const[t,o]of r)if(w(n,e[t],t)){n.preventDefault(),o();break}})(Re,t,e)),[Re]),Pe=c((()=>{const e=Ae(J,"stringifyReplacer");return t=>ee(t,e)}),[J,ee]),Ve=c((()=>{const e=Ae(J,"parseReviver");return t=>{const n=q(t,e);return x(n)}}),[J,q]),_e=a(null);((e,t)=>{const{setCurrentlyEditingElement:n,currentlyEditingElement:r,setCollapseState:o}=I();l((()=>{if(!e)return;const{collapse:i,edit:a}=e;i&&o(i);const l=!(null==a?void 0:a.path)||j(a.path)===r;switch(null==a?void 0:a.action){case"accept":l&&(t.current&&t.current.click(),n(null));break;case"cancel":l&&n(null);break;default:(null==a?void 0:a.path)&&n(a.path)}}),[e])})(oe,_e);const ze=s(((e,t)=>{!1!==z&&("function"!=typeof z?e.sort(((e,n)=>{const r=t(e)[0],o=t(n)[0];return r<o?-1:r>o?1:0})):e.sort(((e,n)=>z(t(e),t(n)))))}),[z]),Fe={mainContainerRef:fe,name:r,nodeData:be,onEdit:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:i}=Oe(he,t,e,"update");if(o!==i)return yield je(d,{currentData:n,newData:r,currentValue:o,newValue:i,name:t.slice(-1)[0],path:t})})),onDelete:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:i}=Oe(he,t,e,"delete");return yield je(u,{currentData:n,newData:r,currentValue:o,newValue:i,name:t.slice(-1)[0],path:t})})),onAdd:(e,t,n)=>g(void 0,void 0,void 0,(function*(){const{currentData:r,newData:o,currentValue:i,newValue:a}=Oe(he,t,e,"add",n);return yield je(p,{currentData:r,newData:o,currentValue:i,newValue:a,name:t.slice(-1)[0],path:t})})),onChange:h,onError:y,showErrorMessages:f,onMove:(e,t,n)=>g(void 0,void 0,void 0,(function*(){if(null===e)return;const{currentData:r,newData:o,currentValue:i}=Oe(he,e,"","delete"),a=e.slice(-1)[0],l=t.slice(0,-1),s=t.slice(-1)[0];let c="number"==typeof s?"above"===n?s:s+1:"number"==typeof a?`arr_${a}`:a;e.slice(0,-1).join(".")===t.slice(0,-1).join(".")&&"number"==typeof a&&"number"==typeof c&&a<c&&(c-=1);const u="number"==typeof c?{insert:!0}:"above"===n?{insertBefore:s}:{insertAfter:s},{newData:p,newValue:g}=Oe(o,[...l,c],i,"add",u);return yield je(d,{currentData:r,newData:p,currentValue:i,newValue:g,name:t.slice(-1)[0],path:t})})),showCollectionCount:k,collapseFilter:de,collapseAnimationTime:D,restrictEditFilter:we,restrictDeleteFilter:De,restrictAddFilter:Ce,restrictTypeSelection:A,restrictDragFilter:ke,canDragOnto:!1,searchFilter:Te,searchText:pe,enableClipboard:b,keySort:z,sort:ze,showArrayIndices:F,showStringQuotes:M,indent:v,defaultValue:L,newKeyOptions:B,stringTruncate:H,translate:ue,customNodeDefinitions:J,customButtons:Q,parentData:null,jsonParse:Ve,jsonStringify:Pe,TextEditor:te,errorMessageTimeout:ne,handleKeyboard:Ke,keyboardControls:Re,insertAtTop:{object:!0===ie||"object"===ie,array:!0===ie||"array"===ie},onCollapse:ae,editConfirmRef:_e,collapseClickZones:le},Me=Object.assign(Object.assign({},se("container",be)),{minWidth:W,maxWidth:G});return Me.fontSize=null!=Y?Y:Me.fontSize,t("div",{id:Z,ref:fe,className:`jer-editor-container ${null!=$?$:""}`,style:Me,children:m(he)?t(ve,Object.assign({data:he},Fe)):t(me,Object.assign({data:he,showLabel:!0},Fe))})},ke=e=>{var n;const[r,o]=i();return l((()=>{const e=document.documentElement;o(e)}),[]),r?t(K,{theme:null!==(n=e.theme)&&void 0!==n?n:T,icons:e.icons,docRoot:r,children:t(L,{onEditEvent:e.onEditEvent,onCollapse:e.onCollapse,children:t(Ce,Object.assign({},e))})}):null},Oe=(e,t,n,r,o={})=>{if(0===t.length)return{currentData:e,newData:n,currentValue:e,newValue:n};const i=Object.assign({remove:"delete"===r},o),a="add"!==r?u(e,t):void 0;return{currentData:e,newData:d(e,t,n,i),currentValue:a,newValue:"delete"!==r?n:void 0}},Se=(e,t)=>t?()=>!0:"boolean"==typeof e?()=>e:"number"==typeof e?({level:t})=>t>=e:e,Ne=e=>{if(void 0!==e)return"value"===e?b:"key"===e?v:"all"===e?(e,t)=>b(e,t)||v(e,t):e},xe=e=>Array.isArray(e)&&2===e.length&&["error","value"].includes(e[0]),Ae=(e,t)=>{const n="stringifyReplacer"===t?[e=>void 0===e?A:e]:[];if(n.push(...e.map((e=>e[t])).filter((e=>!!e))),0!==n.length)return(e,t)=>{let r=t;for(const e of n)r=e(r);return r}},Te=e=>{var n;const{value:r,setIsEditing:o,getStyles:i,nodeData:a}=e,l=i("string",a);return t("div",{onDoubleClick:()=>o(!0),onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&o(!0)},className:"jer-value-string jer-hyperlink",style:l,children:t("a",{href:r,target:"_blank",rel:"noreferrer",style:{color:null!==(n=l.color)&&void 0!==n?n:void 0},children:t(G,Object.assign({},e,{pathString:j(a.path),styles:l,value:a.value}))})})},Re={condition:({value:e})=>"string"==typeof e&&/^https?:\/\/.+\..+$/.test(e),element:Te,showOnView:!0,showOnEdit:!1},Ke={displayName:"Github Dark",styles:{container:{backgroundColor:"#0d1117",color:"white"},dropZone:"rgba(165, 214, 255, 0.17)",property:"#E6EDF3",bracket:"#56d364",itemCount:"#8B949E",string:"#A5D6FF",number:"#D2A8FF",boolean:{color:"#FF7B72",fontSize:"90%",fontWeight:"bold"},null:"green",iconCollection:"#D2A8FF",iconEdit:"#D2A8FF",iconDelete:"rgb(203, 75, 22)",iconAdd:"rgb(203, 75, 22)",iconCopy:"#A5D6FF",iconOk:"#56d364",iconCancel:"rgb(203, 75, 22)"}},Pe={displayName:"Github Light",styles:{container:"white",property:"#1F2328",bracket:"#00802e",itemCount:"#8B949E",string:"#0A3069",number:"#953800",boolean:{color:"#CF222E",fontSize:"90%",fontWeight:"bold"},null:"#FF7B72",iconCollection:"#8250DF",iconEdit:"#8250DF",iconDelete:"rgb(203, 75, 22)",iconAdd:"#8250DF",iconCopy:"#57606A"}},Ve={displayName:"Black & White",fragments:{lightText:{color:"white"},midGrey:"#5c5c5c"},styles:{container:["lightText",{backgroundColor:"black"}],dropZone:"#e0e0e029",property:"lightText",bracket:"midGrey",itemCount:"#4a4a4a",string:"#a8a8a8",number:"#666666",boolean:{color:"#848484",fontStyle:"italic"},null:"#333333",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},_e={fragments:{midGrey:"#a3a3a3"},displayName:"White & Black",styles:{container:"white",property:"black",bracket:"midGrey",itemCount:"#b5b5b5",string:"#575757",number:"#999999",boolean:{color:"#7b7b7b",fontStyle:"italic"},null:"#cccccc",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},ze={displayName:"Candy Wrapper",fragments:{minty:{backgroundColor:"#F1FAEE"},pale:{color:"#A8DADC"},mid:{color:"#457B9D"},dark:{color:"#1D3557"},pop:{color:"#E63946"},darkBlue:{color:"#2B2D42"}},styles:{container:"minty",property:"pop",dropZone:"#eb121217",bracket:"dark",itemCount:"pale",string:"mid",number:["darkBlue",{fontSize:"85%"}],boolean:["mid",{fontStyle:"italic",fontWeight:"bold",fontSize:"80%"}],null:["#cccccc",{fontWeight:"bold"}],input:{border:"1px solid rgb(115, 194, 198)"},iconCollection:"#1D3557",iconEdit:"#457B9D",iconDelete:"#E63946",iconAdd:"#2B2D42",iconCopy:"#1D3557",iconCancel:"#E63946"}},Fe={displayName:"Psychedelic",fragments:{pale:{color:"#A8DADC"},fluroYellow:"rgb(242, 228, 21)",fluroGreen:"rgb(68, 255, 62)",hotPink:"#f7379a"},styles:{container:{backgroundColor:"unset",background:"linear-gradient(90deg, hsla(333, 100%, 53%, 1) 0%, hsla(33, 94%, 57%, 1) 100%)",color:"black"},dropZone:"fluroYellow",property:"black",bracket:"fluroYellow",itemCount:["pale",{opacity:.7}],string:"white",number:["#33d9ff",{fontSize:"90%",fontWeight:"bold"}],boolean:["fluroGreen",{fontWeight:"bold",fontSize:"80%"}],null:["black",{fontWeight:"bold",opacity:.3,backgroundColor:"rgb(255, 255, 255, 0.5)",padding:"0 0.4em",borderRadius:"0.4em"}],iconCollection:"fluroYellow",iconEdit:["black"],iconDelete:["white",{opacity:.5}],iconAdd:["white",{opacity:.5}],iconCopy:"rgb(32, 84, 242)",iconOk:"fluroGreen",iconCancel:"hotPink"}};export{Q as IconAdd,re as IconCancel,oe as IconChevron,te as IconCopy,ee as IconDelete,q as IconEdit,ne as IconOk,ke as JsonEditor,Te as LinkCustomComponent,Re as LinkCustomNodeDefinition,G as StringDisplay,Y as StringEdit,ze as candyWrapperTheme,T as defaultTheme,Ke as githubDarkTheme,Pe as githubLightTheme,m as isCollection,b as matchNode,v as matchNodeKey,Ve as monoDarkTheme,_e as monoLightTheme,Fe as psychedelicTheme,ce as standardDataTypes,j as toPathString,Z as useKeyboardListener};
import{jsxs as e,jsx as t,Fragment as n}from"react/jsx-runtime";import{createContext as r,useContext as o,useState as i,useRef as a,useEffect as l,useCallback as s,useMemo as c}from"react";import d from"object-property-assigner";export{default as assign}from"object-property-assigner";import u from"object-property-extractor";export{default as extract}from"object-property-extractor";function p(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function g(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function l(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const m=({className:n,name:r,value:o,setValue:i,handleKeyPress:a,styles:l,textAreaRef:s})=>{if("string"!=typeof o)return null;const c="\n"===o.slice(-1)?o+".":o;return e("div",{style:{display:"grid"},children:[t("textarea",{id:`${r}_textarea`,ref:s,style:Object.assign({height:"auto",gridArea:"1 / 1 / 2 / 2",overflowY:"auto",whiteSpace:"pre-wrap"},l),rows:1,className:n,name:`${r}_textarea`,value:o,onChange:e=>i(e.target.value),autoFocus:!0,onFocus:e=>{o.length<40&&e.target.select()},onKeyDown:a}),t("span",{className:n,style:Object.assign({visibility:"hidden",height:"auto",gridArea:"1 / 1 / 2 / 2",color:"red",opacity:.9,whiteSpace:"pre-wrap",overflowY:"auto",border:"1px solid transparent"},l),children:c})]})},h=e=>null!==e&&"object"==typeof e,y=(e,t,n,r="")=>{if(!n&&!r)return!0;switch(e){case"collection":if(n){if(n(t,r))return!0;if(!f(r,t,n))return!1}if(!n&&r&&!f(r,t))return!1;break;case"value":if(n&&!n(t,r))return!1;if(!n&&r&&!b(t,r))return!1}return!0},f=(e="",t,n=b)=>{const r=t.value;return Object.entries(r).some((([o,i])=>{const a=[...t.path,o],l=Object.assign(Object.assign({},t),{key:o,path:a,level:t.level+1,value:i,size:a.length,parentData:r});return h(i)?f(e,l,n):n(l,e)}))},b=(e,t="")=>{const{value:n}=e;if(null===n&&"null".includes(t.toLowerCase()))return!0;switch(typeof n){case"string":return n.toLowerCase().includes(t.toLowerCase());case"number":return!!String(n).includes(t);case"boolean":return n?"true".includes(t.toLowerCase())||"1"===t:"false".includes(t.toLowerCase())||"0"===t;default:return!1}},v=({key:e,path:t},n="")=>!!b({value:e},n)||!!t.some((e=>b({value:e},n))),j=(e,t)=>(null!=t?t:"")+e.map((e=>""===e?String.fromCharCode(0):e)).join("."),E=e=>e.shiftKey?"Shift":e.metaKey?"Meta":e.ctrlKey?"Control":e.altKey?"Alt":void 0,w=(e,t,n)=>{const r=e.key,o=E(e);if(Array.isArray(t))return!!o&&t.includes(o);const{key:i,modifier:a}=t;return("stringLineBreak"!==n||"Enter"!==r||"Shift"!==o||"Enter"!==i||!(null==a?void 0:a.includes("Shift")))&&(r===i&&(a===o||Array.isArray(a)&&a.includes(o)))},D={key:"Enter"},C={confirm:D,cancel:{key:"Escape"},objectConfirm:Object.assign(Object.assign({},D),{modifier:["Meta","Shift","Control"]}),objectLineBreak:D,stringConfirm:D,stringLineBreak:Object.assign(Object.assign({},D),{modifier:["Shift"]}),numberConfirm:D,numberUp:{key:"ArrowUp"},numberDown:{key:"ArrowDown"},tabForward:{key:"Tab"},tabBack:{key:"Tab",modifier:"Shift"},booleanConfirm:D,booleanToggle:{key:" "},clipboardModifier:["Meta","Control"],collapseModifier:["Alt"]},k=(e,t,n="next",r)=>{const o=t.slice(0,t.length-1),i=t.slice(-1)[0];if(void 0===i)return null;const a=u(e,o),l=S(a);Array.isArray(a)||r(l,(({key:e,value:t})=>[e,t]));const s=l.findIndex((e=>e.key===i)),c=l[s+("next"===n?1:-1)];return c?h(c.value)?0===Object.keys(c.value).length?k(e,[...o,c.key],n,r):O(e,[...o,c.key],n,r):[...o,c.key]:0===o.length?null:k(e,o,n,r)},O=(e,t,n="next",r)=>{const o=u(e,t);if(!h(o))return t;const i=Array.isArray(o)?o.map(((e,t)=>t)):Object.keys(o);r(i,(e=>[e,o]));const a="next"===n?i[0]:i[i.length-1];return O(e,[...t,a],n,r)},S=e=>Array.isArray(e)?e.map(((e,t)=>({index:t,value:e,key:t}))):Object.entries(e).map((([e,t],n)=>({key:e,value:t,index:n}))),N=(e,t)=>{var n,r,o,i;const a=e.current,l=null!==(n=null==a?void 0:a.selectionStart)&&void 0!==n?n:1/0,s=null!==(r=null==a?void 0:a.selectionEnd)&&void 0!==r?r:1/0,c=(null===(o=null==a?void 0:a.textContent)||void 0===o?void 0:o.slice(0,l))+t+(null===(i=null==a?void 0:a.textContent)||void 0===i?void 0:i.slice(s));return a.value=c,null==a||a.setSelectionRange(l+1,l+1),c},x=e=>{if(e!==A){if(Array.isArray(e))return e.map((e=>x(e)));if(e&&"object"==typeof e)for(const t in e)e[t]=x(e[t]);return e}},A="__​undefined__",T={displayName:"Default",fragments:{edit:"rgb(42, 161, 152)"},styles:{container:{backgroundColor:"#f6f6f6",fontFamily:"monospace"},collection:{},collectionInner:{},collectionElement:{},dropZone:{},property:"#292929",bracket:{color:"rgb(0, 43, 54)",fontWeight:"bold"},itemCount:{color:"rgba(0, 0, 0, 0.3)",fontStyle:"italic"},string:"rgb(203, 75, 22)",number:"rgb(38, 139, 210)",boolean:"green",null:{color:"rgb(220, 50, 47)",fontVariant:"small-caps",fontWeight:"bold"},input:["#292929"],inputHighlight:"#b3d8ff",error:{fontSize:"0.8em",color:"red",fontWeight:"bold"},iconCollection:"rgb(0, 43, 54)",iconEdit:"edit",iconDelete:"rgb(203, 75, 22)",iconAdd:"edit",iconCopy:"rgb(38, 139, 210)",iconOk:"green",iconCancel:"rgb(203, 75, 22)"}},R=r({getStyles:()=>({}),icons:{}}),K=({theme:e=T,icons:n={},docRoot:r,children:o})=>{const i=V(e,r);return t(R.Provider,{value:{getStyles:(e,t)=>"function"==typeof i[e]?i[e](t):i[e],icons:n},children:o})},P=()=>o(R),V=(e,t)=>{var n,r,o,i;const a={},l=(Array.isArray(e)?e:[e]).map((e=>z(e)?_({fragments:{},styles:e},a):_(e,a))),s=_(T,{});Object.keys(s).forEach((e=>{const t=e;l.forEach((e=>{e[t]&&(s[t]=Object.assign(Object.assign({},s[t]),e[t]))}))}));const c=Object.assign({},s);return Object.entries(a).forEach((([e,t])=>{const n=e;c[n]=e=>{const r=t(e)||{};return Object.assign(Object.assign({},s[n]),r)}})),"function"!=typeof(null==c?void 0:c.inputHighlight)&&(null===(n=null==c?void 0:c.inputHighlight)||void 0===n?void 0:n.backgroundColor)&&t.style.setProperty("--jer-highlight-color",null===(r=null==c?void 0:c.inputHighlight)||void 0===r?void 0:r.backgroundColor),"function"!=typeof(null==c?void 0:c.iconCopy)&&(null===(o=null==c?void 0:c.iconCopy)||void 0===o?void 0:o.color)&&t.style.setProperty("--jer-icon-copy-color",null===(i=null==c?void 0:c.iconCopy)||void 0===i?void 0:i.color),c},_=(e,t)=>{const{fragments:n,styles:r}=e,o={};return Object.entries(r).forEach((([e,r])=>{const i=(Array.isArray(r)?r:[r]).reduce(((r,o)=>{var i,a;if("function"==typeof o)return t[e]=o,Object.assign({},r);if("string"==typeof o){const t=null!==(i=null==n?void 0:n[o])&&void 0!==i?i:o;return"string"==typeof t?Object.assign(Object.assign({},r),{[null!==(a=M[e])&&void 0!==a?a:"color"]:t}):Object.assign(Object.assign({},r),t)}return Object.assign(Object.assign({},r),o)}),{});o[e]=i})),o},z=e=>!("styles"in e),M={container:"backgroundColor",collection:"backgroundColor",collectionInner:"backgroundColor",collectionElement:"backgroundColor",dropZone:"borderColor",inputHighlight:"backgroundColor"},F=r(null),I=({children:e,onEditEvent:n,onCollapse:r})=>{const[o,l]=i(null),[s,c]=i(null),[d,u]=i(null),[p,g]=i({path:null,pathString:null}),m=a(null),h=a("next"),y=a(null);return t(F.Provider,{value:{collapseState:o,setCollapseState:e=>{l(e),r&&null!==e&&(Array.isArray(e)?e.forEach((e=>r(e))):r(e)),null!==e&&setTimeout((()=>l(null)),2e3)},getMatchingCollapseState:e=>{if(Array.isArray(o)){for(const t of o)if(B(e,t))return t;return null}return B(e,o)?o:null},currentlyEditingElement:s,setCurrentlyEditingElement:(e,t)=>{const r="string"==typeof e||null===e?e:j(e,"key"===t?"key_":void 0);null!==s&&null!==r&&null!==m.current&&m.current(),c(r),n&&n(e,"key"===t),m.current="function"==typeof t?t:null},areChildrenBeingEdited:e=>null!==s&&s.includes(e),previouslyEditedElement:y.current,setPreviouslyEditedElement:e=>{y.current=e},tabDirection:h.current,setTabDirection:e=>{h.current=e},previousValue:d,setPreviousValue:u,dragSource:p,setDragSource:g},children:e})},L=()=>{const e=o(F);if(!e)throw new Error("Missing Context Provider");return e},B=(e,t)=>{if(null===t)return!1;if(!t.includeChildren)return t.path.every(((t,n)=>e[n]===t))&&t.path.length===e.length;for(const[n,r]of t.path.entries())if(r!==e[n])return!1;return!0},W="**INVALID_FUNCTION**",G=({nodeData:r,showStringQuotes:o=!0,stringTruncate:a=200,pathString:l,canEdit:s,setIsEditing:c,styles:d,translate:u,value:p,TextWrapper:g=({children:e})=>e})=>{const m=null!=p?p:r.value,[h,y]=i(!1),f=o?'"':"",b=m.length>a,v=()=>{s?c(!0):y(!h)};return e("div",{id:`${l}_display`,onDoubleClick:v,onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&v()},className:"jer-value-string",style:d,children:[f,b?e(n,h?{children:[t(g,{children:e("span",{children:[m,f]})}),e("span",{className:"jer-string-expansion jer-show-less",onClick:()=>y(!1),children:[" ",u("SHOW_LESS",r)]})]}:{children:[e(g,{children:[t("span",{children:m.slice(0,a-2).trimEnd()})," "]}),t("span",{className:"jer-string-expansion jer-ellipsis",onClick:()=>y(!0),children:"..."}),f]}):t(g,{children:`${m}${f}`})]})},Y=({styles:e,pathString:n,value:r,setValue:o,handleEdit:i,handleKeyboard:l,keyboardCommon:s})=>{const c=a(null);return t(m,{className:"jer-input-text",textAreaRef:c,name:n,value:r,setValue:o,handleKeyPress:e=>{l(e,Object.assign({stringConfirm:i,stringLineBreak:()=>{const e=N(c,"\n");o(e)}},s))},styles:e})},H=n=>{var{isEditing:r,path:o,enumType:i}=n,a=p(n,["isEditing","path","enumType"]);const{getStyles:l}=P(),s=j(o),{value:c,setValue:d,nodeData:u,handleEdit:g,handleKeyboard:m,keyboardCommon:h}=a;return r&&i?e("div",{className:"jer-select jer-select-enums",children:[t("select",{name:`${s}-value-select`,className:"jer-select-inner",onChange:e=>d(e.target.value),value:c,autoFocus:!0,onKeyDown:e=>{m(e,Object.assign({stringConfirm:g},h))},children:i.values.map((e=>t("option",{value:e,children:e},e)))}),t("span",{className:"focus"})]}):r?t(Y,Object.assign({styles:l("input",u),pathString:s},a,{setValue:a.setValue})):t(G,Object.assign({pathString:s,styles:l("string",u)},a))},U=({value:e,setValue:n,isEditing:r,path:o,setIsEditing:i,handleEdit:a,nodeData:l,handleKeyboard:s,keyboardCommon:c})=>{const{getStyles:d}=P();return r?t("input",{className:"jer-input-number",type:"text",name:j(o),value:e,onChange:e=>n(e.target.value.replace(/[^0-9.-]/g,"")),autoFocus:!0,onFocus:e=>setTimeout((()=>e.target.select()),10),onKeyDown:t=>s(t,Object.assign({numberConfirm:a,numberUp:()=>n(Number(e)+1),numberDown:()=>n(Number(e)-1)},c)),style:Object.assign({width:String(e).length/1.5+2+"em"},d("input",l))}):t("span",{onDoubleClick:()=>i(!0),className:"jer-value-number",style:d("number",l),children:e})},$=({value:e,setValue:n,isEditing:r,path:o,setIsEditing:i,handleEdit:a,nodeData:l,handleKeyboard:s,keyboardCommon:c})=>{const{getStyles:d}=P();return"boolean"!=typeof e?null:r?t("input",{className:"jer-input-boolean",type:"checkbox",name:j(o),checked:e,onChange:()=>n(!e),onKeyDown:t=>{" "===t.key&&t.preventDefault(),s(t,Object.assign({booleanConfirm:a,booleanToggle:()=>n(!e)},c))},autoFocus:!0}):t("span",{onDoubleClick:()=>i(!0),className:"jer-value-boolean",style:d("boolean",l),children:String(e)})},Z=(e,t)=>{const n=a(void 0),r=a(t);l((()=>{r.current=t}),[t]);const o=e=>{r.current(e)};l((()=>{if(window.clearTimeout(n.current),e)return n.current=window.setTimeout((()=>{window.addEventListener("keydown",o)}),100),()=>{window.clearTimeout(n.current),window.removeEventListener("keydown",o)}}),[e])},X=({value:e,isEditing:n,setIsEditing:r,handleEdit:o,nodeData:i,handleKeyboard:a,keyboardCommon:l})=>{const{getStyles:s}=P();return Z(n,(e=>a(e,Object.assign({confirm:o},l)))),t("div",{onDoubleClick:()=>r(!0),className:"jer-value-null",style:s("null",i),children:String(e)})},J=({value:e})=>{let n="Error!";switch(typeof e){case"string":e===W&&(n="Function");break;case"undefined":n="Undefined";break;case"symbol":n="Symbol"}return t("span",{className:"jer-value-invalid",children:n})},Q=({size:n,style:r,className:o})=>e("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:n,height:n,className:o,style:r,children:[t("path",{d:"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z"}),t("path",{d:"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z"})]}),q=({size:n,style:r,className:o})=>e("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:n,height:n,className:o,style:r,transform:"translate(0, 0.5)",children:[t("path",{d:"M7 17.013l4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z"}),t("path",{d:"M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z"})]}),ee=({size:e,style:n,className:r})=>t("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:e,height:e,className:r,style:n,children:t("path",{d:"M6 19a2 2 0 002 2h8a2 2 0 002-2V7H6v12m2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12M15.5 4l-1-1h-5l-1 1H5v2h14V4h-3.5z"})}),te=({size:n,style:r,className:o})=>e("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:n,height:n,className:o,style:r,children:[t("path",{d:"M9 2 H15 A1 1 0 0 1 16 3 V5 A1 1 0 0 1 15 6 H9 A1 1 0 0 1 8 5 V3 A1 1 0 0 1 9 2 z"}),t("path",{d:"M8 4H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2v-2M16 4h2a2 2 0 012 2v4M21 14H11"}),t("path",{d:"M15 10l-4 4 4 4"})]}),ne=({size:n,style:r,className:o})=>e("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:n,height:n,className:o,style:r,children:[t("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),t("path",{d:"M22 4L12 14.01l-3-3"})]}),re=({size:e,style:n,className:r})=>t("svg",{baseProfile:"tiny",viewBox:"0 0 24 24",fill:"currentColor",width:e,height:e,className:r,style:n,children:t("path",{d:"M12 4c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8zm-5 8c0-.832.224-1.604.584-2.295l6.711 6.711A4.943 4.943 0 0112 17c-2.757 0-5-2.243-5-5zm9.416 2.295L9.705 7.584A4.943 4.943 0 0112 7c2.757 0 5 2.243 5 5 0 .832-.224 1.604-.584 2.295z"})}),oe=({size:e,style:n,className:r})=>t("svg",{viewBox:"0 0 512 512",fill:"currentColor",width:e,height:e,className:r,style:n,children:t("path",{d:"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"})}),ie=({name:e,nodeData:r})=>{var o,i,a,l,s,c,d;const{getStyles:u,icons:p}=P(),g={size:"1.4em",className:"jer-icon"};switch(e){case"add":return null!==(o=null==p?void 0:p.add)&&void 0!==o?o:t(Q,Object.assign({},g,{style:u("iconAdd",r)}));case"edit":return null!==(i=null==p?void 0:p.edit)&&void 0!==i?i:t(q,Object.assign({},g,{style:u("iconEdit",r)}));case"delete":return null!==(a=null==p?void 0:p.delete)&&void 0!==a?a:t(ee,Object.assign({},g,{style:u("iconDelete",r),size:"1.45em"}));case"copy":return null!==(l=null==p?void 0:p.copy)&&void 0!==l?l:t(te,Object.assign({},g,{style:u("iconCopy",r),size:"1.2em"}));case"ok":return null!==(s=null==p?void 0:p.ok)&&void 0!==s?s:t(ne,Object.assign({},g,{style:Object.assign({fontSize:"90%"},u("iconOk",r))}));case"cancel":return null!==(c=null==p?void 0:p.cancel)&&void 0!==c?c:t(re,Object.assign({},g,{style:Object.assign({fontSize:"130%"},u("iconCancel",r))}));case"chevron":return null!==(d=null==p?void 0:p.chevron)&&void 0!==d?d:t(oe,{size:"1em",style:u("iconCollection",r)});default:return t(n,{})}},ae=({startEdit:r,handleDelete:o,handleAdd:a,enableClipboard:l,type:s,customButtons:c,nodeData:d,translate:p,keyboardControls:g,handleKeyboard:m,editConfirmRef:h,getNewKeyOptions:y,jsonStringify:f})=>{const{getStyles:b}=P(),v=p("KEY_NEW",d),[j,w]=i(v),[D,C]=i(!1),{key:k,path:O,value:S}=d,N=Array.isArray(D),x=e=>{var t;if(!e)return void C(!1);const n=Object.keys(u(d.fullData,O)),r=y?null===(t=y(d))||void 0===t?void 0:t.filter((e=>!n.includes(e))):null;r&&w(""),C(null==r||r)};return e("div",{className:"jer-edit-buttons",style:{opacity:D?1:void 0},onClick:e=>e.stopPropagation(),children:[l&&t("div",{onClick:e=>{var t;e.stopPropagation();let n,r,o="value",i="",a=null;if(l){const c=E(e);if(c&&g.clipboardModifier.includes(c)?(n=se(O),i=n,o="path"):(n=S,i=s?f(S):String(n)),!navigator.clipboard)return void("function"==typeof l&&l({success:!1,value:n,stringValue:i,path:O,key:k,type:o,errorMessage:"Can't access clipboard API"}));null===(t=navigator.clipboard)||void 0===t||t.writeText(i).then((()=>r=!0)).catch((e=>{r=!1,a=e.message})).finally((()=>{"function"==typeof l&&l({success:r,errorMessage:a,value:n,stringValue:i,path:O,key:k,type:o})}))}},className:"jer-copy-pulse",children:t(ie,{name:"copy",nodeData:d})}),r&&t("div",{onClick:r,children:t(ie,{name:"edit",nodeData:d})}),o&&t("div",{onClick:o,children:t(ie,{name:"delete",nodeData:d})}),a&&t("div",{onClick:()=>{"object"===s?x(!0):a("")},children:t(ie,{name:"add",nodeData:d})}),null==c?void 0:c.map((({Element:e,onClick:n},r)=>t("div",{onClick:e=>n&&n(d,e),children:t(e,{nodeData:d})},r))),D&&a&&"object"===s&&e(n,{children:[N?e("div",{className:"jer-select jer-select-keys",children:[e("select",{name:"new-key-select",className:"jer-select-inner",onChange:e=>{a(e.target.value),x(!1)},defaultValue:"",autoFocus:!0,onKeyDown:e=>{m(e,{cancel:()=>x(!1)})},children:[t("option",{value:"",disabled:!0,children:D.length>0?p("KEY_SELECT",d):p("NO_KEY_OPTIONS",d)}),D.map((e=>t("option",{value:e,children:e},e)))]}),t("span",{className:"focus"})]}):t("input",{className:"jer-input-new-key",type:"text",name:"new-object-key",value:j,onChange:e=>w(e.target.value),autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{m(e,{stringConfirm:()=>{a&&(x(!1),a(j),w(v))},cancel:()=>{x(!1),w(v)}})},style:b("input",d)}),t(le,{onOk:()=>{N&&!j||(x(!1),a(j))},onCancel:()=>{x(!1)},nodeData:d,editConfirmRef:h,hideOk:N})]})]})},le=({onOk:n,onCancel:r,nodeData:o,editConfirmRef:i,hideOk:a=!1})=>e("div",{className:"jer-confirm-buttons",children:[!a&&t("div",{onClick:n,ref:i,children:t(ie,{name:"ok",nodeData:o})}),t("div",{onClick:r,children:t(ie,{name:"cancel",nodeData:o})})]}),se=e=>e.reduce(((e,t)=>"number"==typeof t?`${e}[${t}]`:""===e?t:`${e}.${t}`),""),ce=["string","number","boolean","null","object","array"],de=({props:e,collapsed:t})=>{const{data:n,nodeData:r,parentData:o,onEdit:a,onError:l,showErrorMessages:c,restrictEditFilter:d,restrictDeleteFilter:u,restrictAddFilter:p,restrictDragFilter:g,translate:m,errorMessageTimeout:h}=e,{currentlyEditingElement:y,setCurrentlyEditingElement:f}=L(),[b,v]=i(null),E=Object.assign(Object.assign({},r),{collapsed:t}),{path:w,key:D,size:C}=E,k=j(w),O=!d(E),S=!u(E),N=!p(E),x=!g(E)&&S&&null===y,A=e=>{c&&(v(e),setTimeout((()=>v(null)),h)),console.warn("Error",e)},T=s(((e,t)=>{A(e.message),l&&l({currentData:E.fullData,errorValue:t,currentValue:n,name:D,path:w,error:e})}),[l,c]),R=y===k,K=y===`key_${k}`,P="number"==typeof w.slice(-1)[0],V={isEditing:R,isEditingKey:K,isArray:P,canEditKey:null!==o&&O&&N&&S&&!P},_=""===D&&w.length>0?m("EMPTY_STRING",E):null;return{pathString:k,nodeData:E,path:w,name:D,size:C,canEdit:O,canDelete:S,canAdd:N,canDrag:x,error:b,showError:A,onError:T,setError:v,handleEditKey:e=>{if(f(null),D===e)return;if(!o)return;const t=w.slice(0,-1);if(Object.keys(o).includes(e))return void T({code:"KEY_EXISTS",message:m("ERROR_KEY_EXISTS",E)},e);const n=Object.fromEntries(Object.entries(o).map((([t,n])=>t===D?[e,n]:[t,n])));a(n,t).then((t=>{t&&T({code:"UPDATE_ERROR",message:t},e)}))},derivedValues:V,emptyStringKey:_}},ue=({canDrag:e,canDragOnto:n,path:r,nodeData:o,onMove:a,onError:l,translate:s})=>{const{getStyles:d}=P(),{dragSource:u,setDragSource:p}=L(),[g,m]=i(!1),h=j(r),y=c((()=>e?{onDragStart:e=>{e.stopPropagation(),p({path:r,pathString:h})},onDragEnd:e=>{e.stopPropagation(),p({path:null,pathString:null})}}:{}),[e,h]),f=c((()=>e=>n?{onDragOver:e=>{e.stopPropagation(),e.preventDefault()},onDrop:t=>{t.stopPropagation(),v(e),p({path:null,pathString:null}),m(!1)},onDragEnter:t=>{var n;t.stopPropagation(),h.startsWith(null!==(n=u.pathString)&&void 0!==n?n:"")||m(e)},onDragExit:e=>{e.stopPropagation(),m(!1)}}:{}),[u,n,h]),b=c((()=>n&&null!==u.pathString?t("div",Object.assign({className:"jer-drop-target-bottom",style:{height:"50%",position:"absolute",width:"100%",top:"50%",zIndex:r.length}},f("below"))):null),[u,n,r.length]),v=e=>{var t,n;const i=null===(t=u.path)||void 0===t?void 0:t.slice(-1)[0],c=null===(n=u.path)||void 0===n?void 0:n.slice(0,-1).join("."),d=r.slice(0,-1).join(""),{parentData:p}=o;"string"==typeof i&&p&&!Array.isArray(p)&&Object.keys(p).includes(i)&&i in p&&c!==d?l({code:"KEY_EXISTS",message:s("ERROR_KEY_EXISTS",o)},i):a(u.path,r,e).then((e=>{e&&l({code:"UPDATE_ERROR",message:e},o.value)}))};return{dragSourceProps:y,getDropTargetProps:f,BottomDropTarget:b,DropTargetPadding:({position:e,nodeData:n})=>g===e?t("div",{className:"jer-drag-n-drop-padding",style:d("dropZone",n)}):null,handleDrop:v}},pe=(e,t,n,r)=>{var o,i,a;if(!t.current)return 0;const l=parseInt(null!==(o=getComputedStyle(n.current).getPropertyValue("line-height"))&&void 0!==o?o:"16px"),s=(null!==(a=null===(i=t.current)||void 0===i?void 0:i.offsetWidth)&&void 0!==a?a:0)/(.5*l),c=r(e).replace(/\\n/g,"\n").split("\n").map((e=>Math.ceil(e.length/s))).reduce(((e,t)=>e+t),0)*l;return Math.min(c+30,window.innerHeight-50)},ge=({isEditingKey:n,canEditKey:r,pathString:o,path:i,name:a,handleKeyboard:l,handleEditKey:s,handleCancel:c,handleClick:d,keyValueArray:u,styles:p,getNextOrPrevious:g,emptyStringKey:m})=>{const{setCurrentlyEditingElement:h}=L();return n?t("input",{className:"jer-input-text jer-key-edit",type:"text",name:o,defaultValue:a,autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>l(e,{stringConfirm:()=>s(e.target.value),cancel:c,tabForward:()=>{if(s(e.target.value),u){const e=null==u?void 0:u[0][0];h(e?[...i,e]:g("next"))}else h(i)},tabBack:()=>{s(e.target.value),h(g("prev"))}}),style:{width:String(a).length/1.5+.5+"em"}}):e("span",{className:"jer-key-text",style:Object.assign(Object.assign({},p),{minWidth:`${Math.min(String(a).length+1,5)}ch`,flexShrink:a.length>10?1:0}),onDoubleClick:()=>r&&h(i,"key"),onClick:d,children:[m?t("span",{className:"jer-empty-string",children:m}):a,a||m?t("span",{className:"jer-key-colon",children:":"}):null]})},me=n=>{const{data:r,parentData:o,onEdit:a,onDelete:d,onChange:u,onMove:p,enableClipboard:g,canDragOnto:m,restrictTypeSelection:h,searchFilter:f,searchText:b,showLabel:v,stringTruncate:j,showStringQuotes:E,indent:w,translate:D,customNodeDefinitions:C,customNodeData:O,handleKeyboard:S,keyboardControls:N,sort:x,editConfirmRef:A,jsonStringify:T}=n,{getStyles:R}=P(),{setCurrentlyEditingElement:K,setCollapseState:V,previouslyEditedElement:_,setPreviouslyEditedElement:z,tabDirection:M,setTabDirection:F,previousValue:I,setPreviousValue:B}=L(),[G,Y]=i("function"==typeof r?W:r),{pathString:H,nodeData:U,path:$,name:Z,canEdit:X,canDelete:J,canDrag:Q,error:q,onError:ee,handleEditKey:te,emptyStringKey:ne,derivedValues:re}=de({props:n}),{dragSourceProps:oe,getDropTargetProps:ie,BottomDropTarget:se,DropTargetPadding:pe}=ue({canDrag:Q,canDragOnto:m,path:$,nodeData:U,onMove:p,onError:ee,translate:D}),[me,be]=i(he(r,O)),ve=s((e=>{if(!u)return void Y(e);const t=u({currentData:U.fullData,newValue:e,currentValue:G,name:Z,path:$});Y(t)}),[u]);l((()=>{Y("function"==typeof r?W:r),be(he(r,O))}),[r,q]);const{CustomNode:je,customNodeProps:Ee,hideKey:we,showEditTools:De=!0,showOnEdit:Ce,showOnView:ke,passOriginalNode:Oe}=O,Se=[...ce,...C.filter((({showInTypesSelector:e=!1,name:t})=>e&&!!t)).map((({name:e})=>e))],Ne=c((()=>{if("boolean"==typeof h)return h?[]:Se;if(Array.isArray(h))return h;const e=h(U);return"boolean"==typeof e?e?[]:Se:e}),[U,h]),[xe,Ae]=i(((e,t)=>{var n;if("string"!=typeof e)return null;const r=t.filter((t=>t instanceof Object&&t.enum&&t.values.includes(e)&&t.matchPriority));return r.sort(((e,t)=>{var n,r;return(null!==(n=t.matchPriority)&&void 0!==n?n:0)-(null!==(r=e.matchPriority)&&void 0!==r?r:0)})),null!==(n=r[0])&&void 0!==n?n:null})(G,Ne)),{isEditing:Te}=re,Re=y("value",U,f,b);if(Te&&(!Re||!X)){const e=k(U.fullData,$,M,x);K(e||_)}if(!Re)return null;const Ke=e=>{let t;if(K(null),B(null),void 0===e||(e=>e&&"object"==typeof e&&"type"in e&&"target"in e&&"preventDefault"in e&&"function"==typeof e.preventDefault)(e))switch(me){case"object":t={[D("DEFAULT_NEW_KEY",U)]:G};break;case"array":t=null!=G?G:[];break;case"number":{const e=Number(G);t=isNaN(e)?0:e;break}default:t=G}else t=e;a(t,$).then((e=>{e&&ee({code:"UPDATE_ERROR",message:e},t)}))},Pe=()=>{K(null),null===I?(Y(r),B(null)):a(I,$)},{isEditingKey:Ve,canEditKey:_e}=re,ze=!Te&&q,Me=Te&&Ne.length>1,Fe=("invalid"!==me||je)&&!q&&De,Ie=v&&!we,Le=je&&(Te&&Ce||!Te&&ke),Be={value:G,parentData:o,setValue:ve,isEditing:Te,canEdit:X,setIsEditing:X?()=>K($):()=>{},handleEdit:Ke,handleCancel:Pe,path:$,stringTruncate:j,showStringQuotes:E,nodeData:U,enumType:xe,translate:D,handleKeyboard:S,keyboardCommon:{cancel:Pe,tabForward:()=>{F("next"),z(H);const e=k(U.fullData,$,"next",x);e&&(Ke(),K(e))},tabBack:()=>{F("prev"),z(H);const e=k(U.fullData,$,"prev",x);e&&(Ke(),K(e))}}},We={canEditKey:_e,isEditingKey:Ve,pathString:H,path:$,name:Z,handleKeyboard:S,handleEditKey:te,handleCancel:Pe,styles:R("property",U),getNextOrPrevious:e=>k(U.fullData,$,e,x),emptyStringKey:ne},Ge=Le?t(je,Object.assign({},n,{value:G,customNodeProps:Ee,setValue:ve,handleEdit:Ke,handleCancel:Pe,handleKeyPress:e=>S(e,{stringConfirm:Ke,cancel:Pe}),isEditing:Te,setIsEditing:()=>K($),getStyles:R,originalNode:Oe?ye(r,Be):void 0,originalNodeKey:Oe?t(ge,Object.assign({},We)):void 0,canEdit:X,keyboardCommon:Be.keyboardCommon,onError:ee})):ye(r,Be);return e("div",Object.assign({className:"jer-component jer-value-component",style:{marginLeft:w/2+"em",position:"relative"},draggable:Q},oe,ie("above"),{children:[se,t(pe,{position:"above",nodeData:U}),e("div",{className:"jer-value-main-row",style:{flexWrap:Z.length>10?"wrap":"nowrap"},children:[Ie&&t(ge,Object.assign({},We)),e("div",{className:"jer-value-and-buttons",children:[t("div",{className:"jer-input-component",children:Ge}),Te?t(le,{onOk:Ke,onCancel:Pe,nodeData:U,editConfirmRef:A}):Fe&&t(ae,{startEdit:X?()=>{B(I),K($,Pe)}:void 0,handleDelete:J?()=>{d(G,$).then((e=>{e&&ee({code:"DELETE_ERROR",message:e},G)}))}:void 0,enableClipboard:g,translate:D,customButtons:n.customButtons,nodeData:U,handleKeyboard:S,keyboardControls:N,editConfirmRef:A,jsonStringify:T}),Me&&e("div",{className:"jer-select jer-select-types",children:[t("select",{name:`${Z}-type-select`,className:"jer-select-inner",onChange:e=>(e=>{const t=C.find((t=>t.name===e));if(t)return a(t.defaultValue,$),be(e),Ae(null),K(null),void V({path:$,collapsed:!1,includeChildren:!1});const n=Ne.find((t=>t instanceof Object&&t.enum===e));if(n)return"string"==typeof G&&n.values.includes(G)||a(n.values[0],$).then((e=>{e&&(ee({code:"UPDATE_ERROR",message:e},r),K(null))})),void Ae(n);const r=fe(G,e,D("DEFAULT_NEW_KEY",U),(null==O?void 0:O.CustomNode)?D("DEFAULT_STRING",U):void 0);a(r,$).then((e=>{e?(ee({code:"UPDATE_ERROR",message:e},r),K(null)):Ae(null)}))})(e.target.value),value:xe?xe.enum:me,children:Ne.map((e=>e instanceof Object&&"enum"in e?t("option",{value:e.enum,children:e.enum},e.enum):t("option",{value:e,children:e},e)))}),t("span",{className:"focus"})]}),ze&&t("span",{className:"jer-error-slug",style:R("error",U),children:q})]})]}),t(pe,{position:"below",nodeData:U})]}))},he=(e,t)=>(null==t?void 0:t.CustomNode)&&(null==t?void 0:t.name)&&t.showInTypesSelector?t.name:"string"==typeof e?"string":"number"==typeof e?"number":"boolean"==typeof e?"boolean":null===e?"null":"invalid",ye=(e,n)=>{const r=he(e),{value:o}=n;switch(r){case"string":return t(H,Object.assign({},n,{value:o}));case"number":return t(U,Object.assign({},n,{value:o}));case"boolean":return t($,Object.assign({},n,{value:o}));case"null":return t(X,Object.assign({},n));default:return t(J,Object.assign({},n))}},fe=(e,t,n,r)=>{switch(t){case"string":return null!=r?r:String(e);case"number":{const t=Number(e);return isNaN(t)?0:t}case"boolean":return!!e;case"null":return null;case"object":return{[n]:e};case"array":return[e];default:return String(e)}},be=(e=[],t)=>{const n=e.filter((({condition:e})=>e(t)));if(0===n.length)return{};const r=n[0],{element:o,wrapperElement:i,customNodeProps:a,wrapperProps:l,hideKey:s=!1,showEditTools:c=!0,showOnEdit:d=!1,showOnView:u=!0,showCollectionWrapper:g=!0}=r,m=p(r,["element","wrapperElement","customNodeProps","wrapperProps","hideKey","showEditTools","showOnEdit","showOnView","showCollectionWrapper"]);return Object.assign({CustomNode:o,CustomWrapper:i,customNodeProps:a,wrapperProps:l,hideKey:s,showEditTools:c,showOnEdit:d,showOnView:u,showCollectionWrapper:g},m)},ve=r=>{const{getStyles:o}=P(),{collapseState:c,setCollapseState:d,getMatchingCollapseState:u,currentlyEditingElement:p,setCurrentlyEditingElement:f,areChildrenBeingEdited:b,previousValue:v,setPreviousValue:j}=L(),{mainContainerRef:w,data:D,nodeData:C,parentData:O,showCollectionCount:S,onEdit:x,onAdd:A,onDelete:T,canDragOnto:R,collapseFilter:K,collapseAnimationTime:V,onMove:_,enableClipboard:z,searchFilter:M,searchText:F,indent:I,sort:B,showArrayIndices:W,defaultValue:G,newKeyOptions:Y,translate:H,customNodeDefinitions:U,customNodeData:$,jsonParse:Z,jsonStringify:X,TextEditor:J,keyboardControls:Q,handleKeyboard:q,insertAtTop:ee,onCollapse:te,editConfirmRef:ne,collapseClickZones:re}=r,[oe,se]=i(X(D)),ce=K(C),{contentRef:he,isAnimating:ye,maxHeight:fe,collapsed:je,animateCollapse:Ee,cssTransitionValue:we}=((e,t,n,r,o)=>{const[l,c]=i(n?0:void 0),[d,u]=i(n),p=a(!1),g=a(null),m=a(0),h=a(0),y=t/1e3+"s",f=s((n=>{var i,a;if(d!==n){switch(window.clearTimeout(h.current),p.current=!0,n){case!0:{const e=null!==(a=null===(i=g.current)||void 0===i?void 0:i.offsetHeight)&&void 0!==a?a:0;m.current=e,c(e),setTimeout((()=>{c(0)}),5);break}case!1:c(m.current||pe(e,g,r,o))}u(!d),h.current=window.setTimeout((()=>{p.current=!1,n||c(void 0)}),t)}}),[t,d,e,r,o]);return{contentRef:g,isAnimating:p.current,animateCollapse:f,maxHeight:l,collapsed:d,cssTransitionValue:y}})(D,V,ce,w,X),{pathString:De,nodeData:Ce,path:ke,name:Oe,size:Se,canEdit:Ne,canDelete:xe,canAdd:Ae,canDrag:Te,error:Re,setError:Ke,onError:Pe,handleEditKey:Ve,emptyStringKey:_e,derivedValues:ze}=de({props:r,collapsed:je}),{dragSourceProps:Me,getDropTargetProps:Fe,BottomDropTarget:Ie,DropTargetPadding:Le}=ue({canDrag:Te,canDragOnto:R,path:ke,nodeData:Ce,onMove:_,onError:Pe,translate:H}),Be=a(!ce),{isEditing:We,isEditingKey:Ge,isArray:Ye,canEditKey:He}=ze;l((()=>{se(X(D))}),[D,X]),l((()=>{const e=K(Ce)&&!We;Be.current=!e,Ee(e)}),[K]),l((()=>{if(null!==c){const e=u(ke);e&&(Be.current=!0,Ee(e.collapsed))}}),[c]);const Ue=a(null),$e=s(((e,t)=>{if("function"!=typeof G)return G;const n=G(e,t);return void 0!==n?n:null}),[G]),Ze=s((e=>Y?"function"!=typeof Y?Y:Y(e):null),[Y]),{CustomNode:Xe,customNodeProps:Je,CustomWrapper:Qe,wrapperProps:qe={},hideKey:et,showEditTools:tt=!0,showOnEdit:nt,showOnView:rt,showCollectionWrapper:ot=!0}=$,it=b(De);it&&je&&Ee(!1);if(!(y("collection",Ce,M,F)||0===Ce.level)&&!it)return null;const at=Array.isArray(D)?"array":"object",lt="array"===at?{open:"[",close:"]"}:{open:"{",close:"}"},st=e=>{if("Tab"!==e.key||e.getModifierState("Shift"))q(e,{objectConfirm:dt,cancel:pt});else{e.preventDefault();const t=N(Ue,"\t");se(t)}},ct=e=>{e.stopPropagation();const t=E(e);if(t&&Q.collapseModifier.includes(t))return Be.current=!0,void d({collapsed:!je,path:ke,includeChildren:!0});p&&p.includes(De)||(Be.current=!0,d(null),te&&te({path:ke,collapsed:!je,includeChildren:!1}),Ee(!je))},dt=()=>{try{const e=Z(oe);if(f(null),j(null),Ke(null),X(e)===X(D))return;x(e,ke).then((t=>{t&&Pe({code:"UPDATE_ERROR",message:t},e)}))}catch(e){Pe({code:"INVALID_JSON",message:H("ERROR_INVALID_JSON",Ce)},oe)}},ut=ke.length>0?()=>{T(D,ke).then((e=>{e&&Pe({code:"DELETE_ERROR",message:e},D)}))}:void 0,pt=()=>{f(null),null===v?(Ke(null),se(X(D)),j(null)):x(v,ke)},gt="when-closed"===S?je:S,mt=!We&&tt,ht=(W||!Ye)&&!et&&void 0!==Oe,yt=Xe&&(We&&nt||!We&&rt),ft=Object.entries(D).map((([e,t])=>["array"===at?Number(e):e,t]));"object"===at&&B(ft,(e=>e));const bt=Be.current?We?e("div",{className:"jer-collection-text-edit",children:[J?t(J,{value:oe,onChange:se,onKeyDown:e=>q(e,{objectConfirm:dt,cancel:pt})}):t(m,{textAreaRef:Ue,className:"jer-collection-text-area",name:De,value:oe,setValue:se,handleKeyPress:st,styles:o("input",Ce)}),t("div",{className:"jer-collection-input-button-row",children:t(le,{onOk:dt,onCancel:pt,nodeData:Ce,editConfirmRef:ne})})]}):ft.map((([e,n],i)=>{const a={key:e,value:n,path:[...ke,e],level:ke.length+1,index:i,size:h(n)?Object.keys(n).length:null,parentData:D,fullData:Ce.fullData},l=be(U,a);return t("div",{className:"jer-collection-element",style:o("collectionElement",a),children:h(n)&&!(null==l?void 0:l.renderCollectionAsValue)?t(ve,Object.assign({},r,{data:n,parentData:D,nodeData:a,showCollectionCount:S,canDragOnto:Ne,customNodeData:l}),e):t(me,Object.assign({},r,{data:n,parentData:D,nodeData:a,canDragOnto:Ne,showLabel:"object"===at||W,customNodeData:l}),e)},e)})):null,vt=!!ot&&(je&&!it);vt||(Be.current=!0);const jt=Object.assign(Object.assign({},r),{data:D,value:D,parentData:O,nodeData:Ce,setValue:e=>g(void 0,void 0,void 0,(function*(){return yield x(e,ke)})),handleEdit:dt,handleCancel:pt,handleKeyPress:st,isEditing:We,setIsEditing:()=>f(ke),getStyles:o,canDragOnto:Ne,canEdit:Ne,keyboardCommon:{},onError:Pe}),Et=yt?t(Xe,Object.assign({customNodeProps:Je},jt,{children:bt})):bt,wt=mt&&t(ae,{startEdit:Ne?()=>{Be.current=!0,j(null),f(ke)}:void 0,handleAdd:Ae?e=>{Ee(!1);const t=$e(Ce,e);if("array"===at){const e=ee.array?0:D.length,n=ee.array?{insert:!0}:{};A(t,[...ke,e],n).then((e=>{e&&Pe({code:"ADD_ERROR",message:e},t)}))}else if(e in D)Pe({code:"KEY_EXISTS",message:H("ERROR_KEY_EXISTS",Ce)},e);else{const n=ee.object?{insertBefore:0}:{};A(t,[...ke,e],n).then((e=>{e&&Pe({code:"ADD_ERROR",message:e},t)}))}}:void 0,handleDelete:xe?ut:void 0,enableClipboard:z,type:at,nodeData:Ce,translate:H,customButtons:r.customButtons,keyboardControls:Q,handleKeyboard:q,getNewKeyOptions:Ze,editConfirmRef:ne,jsonStringify:X}),Dt={canEditKey:He,isEditingKey:Ge,pathString:De,path:ke,name:Oe,handleKeyboard:q,handleEditKey:Ve,handleCancel:pt,keyValueArray:ft,styles:o("property",Ce),getNextOrPrevious:e=>k(Ce.fullData,ke,e,B),handleClick:re.includes("property")?ct:e=>e.stopPropagation(),emptyStringKey:_e},Ct=e("div",Object.assign({className:"jer-component jer-collection-component",style:Object.assign(Object.assign({marginLeft:(0===ke.length?0:I/2)+"em"},o("collection",Ce)),{position:"relative"}),draggable:Te},Me,Fe("above"),{children:[t("div",{className:"jer-clickzone",style:{width:I/2+1+"em",zIndex:10+2*Ce.level},onClick:re.includes("left")?ct:void 0}),!We&&Ie,t(Le,{position:"above",nodeData:Ce}),ot?e("div",{className:"jer-collection-header-row",style:{position:"relative"},onClick:re.includes("header")?ct:void 0,children:[e("div",{className:"jer-collection-name",children:[t("div",{className:"jer-collapse-icon jer-accordion-icon"+(je?" jer-rotate-90":""),style:{zIndex:11+2*Ce.level,transition:we},onClick:ct,children:t(ie,{name:"chevron",rotate:je,nodeData:Ce})}),ht&&t(ge,Object.assign({},Dt)),!We&&t("span",{className:"jer-brackets jer-bracket-open",style:o("bracket",Ce),children:lt.open})]}),!We&&gt&&t("div",{className:"jer-collection-item-count"+(gt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},o("itemCount",Ce)),{transition:we}),children:1===Se?H("ITEM_SINGLE",Object.assign(Object.assign({},Ce),{size:1}),1):H("ITEMS_MULTIPLE",Ce,Se)}),t("div",{className:"jer-brackets"+(vt?" jer-visible":" jer-hidden"),style:Object.assign(Object.assign({},o("bracket",Ce)),{transition:we}),children:lt.close}),wt]}):et?t(n,{}):e("div",{className:"jer-collection-header-row",style:{position:"relative"},children:[t(ge,Object.assign({},Dt)),wt]}),e("div",{className:"jer-collection-inner",style:Object.assign(Object.assign({overflowY:vt||ye?"clip":"visible",maxHeight:it?void 0:fe},o("collectionInner",Ce)),{transition:we}),ref:he,children:[Et,t("div",{className:We?"jer-collection-error-row":"jer-collection-error-row-edit",children:Re&&t("span",{className:"jer-error-slug",style:o("error",Ce),children:Re})}),!We&&ot&&t("div",{className:"jer-brackets jer-bracket-outside",style:Object.assign(Object.assign({},o("bracket",Ce)),{marginLeft:(I<3?-1:I<6?-.5:0)+"em"}),children:lt.close})]}),t(Le,{position:"below",nodeData:Ce})]}));return Qe?t(Qe,Object.assign({customNodeProps:qe},jt,{children:Ct})):Ct},je={ITEM_SINGLE:"{{count}} item",ITEMS_MULTIPLE:"{{count}} items",KEY_NEW:"Enter new key",KEY_SELECT:"Select key",NO_KEY_OPTIONS:"No key options",ERROR_KEY_EXISTS:"Key already exists",ERROR_INVALID_JSON:"Invalid JSON",ERROR_UPDATE:"Update unsuccessful",ERROR_DELETE:"Delete unsuccessful",ERROR_ADD:"Adding node unsuccessful",DEFAULT_STRING:"New data!",DEFAULT_NEW_KEY:"key",SHOW_LESS:"(Show less)",EMPTY_STRING:"<empty string>"},Ee=(e,t)=>(n,r,o)=>((e,t,n,r,o)=>{if(t[r]){const e=t[r](n);if(null!==e)return e}const i=r in e?e[r]:je[r];return void 0===o?i:null==i?void 0:i.replace("{{count}}",String(o))})(e,t,r,n,o);var we=[],De=[];!function(e,t){if(e&&"undefined"!=typeof document){var n,r=!0===t.prepend?"prepend":"append",o=!0===t.singleTag,i="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(o){var a=we.indexOf(i);-1===a&&(a=we.push(i)-1,De[a]={}),n=De[a]&&De[a][r]?De[a][r]:De[a][r]=l()}else n=l();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function l(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),o=0;o<n.length;o++)e.setAttribute(n[o],t.attributes[n[o]]);var a="prepend"===r?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}(':root{--jer-select-border:#b6b6b6;--jer-select-focus:#777;--jer-select-arrow:#777;--jer-form-border:1px solid #ededf0;--jer-form-border-focus:1px solid #e2e2e2;--jer-highlight-color:#b3d8ff}.jer-visible{opacity:1}.jer-hidden{opacity:0}.jer-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:#000;cursor:inherit;font-family:inherit;font-size:.8em;line-height:inherit;margin:0;outline:none;padding:0 1em 0 0;z-index:1}select::-ms-expand{display:none}.jer-select{align-items:center;background-color:#fff;background-image:linear-gradient(0deg,#f9f9f9,#fff 33%);border:1px solid var(--jer-select-border);border-radius:.25em;cursor:pointer;display:grid;grid-template-areas:"select";line-height:1.1;max-width:15ch;min-width:12ch;padding:.25em .5em;position:relative}.jer-select select,.jer-select:after{grid-area:select}.jer-select:not(.jer-select--multiple):after{background-color:var(--jer-select-arrow);clip-path:polygon(100% 0,0 0,50% 100%);content:"";height:.5em;justify-self:end;width:.8em}select:focus+.focus{border:1px solid var(--jer-select-focus);border-radius:inherit;bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px}.jer-select-inner{text-overflow:ellipsis;width:100%}.jer-editor-container{border-radius:.5em;font-size:16px;line-height:1;padding:1em 1em 1em 2em;position:relative;text-align:left}.jer-editor-container textarea{border:var(--jer-form-border);border-radius:.3em;color:var(--jer-input-color);outline:none}.jer-editor-container textarea:focus{border:var(--jer-form-border-focus)}.jer-editor-container input{border:var(--jer-form-border);border-radius:.3em;font-family:inherit;outline:none}.jer-editor-container input:focus{border:var(--jer-form-border-focus)}.jer-editor-container ::selection{background-color:var(--jer-highlight-color)}.jer-collection-header-row,.jer-value-main-row{align-items:center;display:flex;gap:.3em;min-height:1.7em}.jer-collection-header-row{display:flex;flex-wrap:wrap}.jer-collapse-icon{left:-1.2em;position:absolute;top:.35em}.jer-collection-inner{position:relative}.jer-collection-text-edit{align-items:flex-start;display:flex;flex-direction:column;gap:.3em;line-height:1.1em}.jer-collection-text-area{font-family:inherit;font-size:.85em;max-height:40em;overflow:hidden;padding:.2em .5em 0;resize:both}.jer-collection-input-button-row{display:flex;font-size:150%;justify-content:flex-end;margin-top:.4em;width:100%}.jer-collection-error-row{bottom:.5em;position:absolute}.jer-error-slug{margin-left:1em}.jer-value-component{position:relative}.jer-value-main-row{display:flex;gap:0}.jer-value-and-buttons{align-items:center;display:flex;justify-content:flex-start;padding-left:.5em}.jer-value-error-row{position:absolute}.jer-value-string{line-height:1.3em;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.jer-string-expansion{cursor:pointer;filter:saturate(50%);opacity:.6}.jer-show-less{font-size:80%}.jer-hyperlink{text-decoration:underline}.jer-input-text{font-family:inherit;font-size:.9em;height:1.4em;line-height:1.2em;margin:0;min-width:6em;overflow:hidden;padding:.25em .5em .2em;resize:none}.jer-input-boolean{margin-left:.3em;margin-right:.3em;transform:scale(1.5)}.jer-key-text{line-height:1.1em;white-space:pre-wrap;word-break:break-word}.jer-key-edit{font-size:inherit;font-size:.9em;padding:0 .3em}.jer-value-invalid{font-style:italic;opacity:.5}.jer-input-number{font-size:90%;min-width:3em}.jer-confirm-buttons,.jer-edit-buttons{align-items:center;cursor:pointer;display:flex;height:1em}.jer-input-buttons{gap:.4em}.jer-edit-buttons{gap:.4em;margin-left:.5em;opacity:0}.jer-confirm-buttons{gap:.2em;margin-left:.4em}.jer-edit-buttons:hover{opacity:1;position:relative}.jer-collection-header-row:hover>.jer-edit-buttons,.jer-value-and-buttons:hover>.jer-edit-buttons,.jer-value-main-row:hover>.jer-edit-buttons{opacity:1}.jer-copy-pulse{position:relative;transition:.3s}.jer-copy-pulse:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-copy-pulse:after{border-radius:50%;box-shadow:0 0 15px 5px var(--jer-icon-copy-color);content:"";display:block;height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .5s;width:100%}.jer-copy-pulse:active:after{border-radius:4em;box-shadow:0 0 0 0 var(--jer-icon-copy-color);left:0;opacity:1;position:absolute;top:0;transition:0s}.jer-copy-pulse:active{top:.07em}.jer-rotate-90{transform:rotate(-90deg)}.jer-icon:hover{opacity:.85;transform:scale(1.2);transition:.3s}.jer-empty-string{font-size:90%;font-style:italic}.jer-drag-n-drop-padding{border:1px dashed #e0e0e0;border-radius:.3em;height:.5em}.jer-clickzone{height:calc(100% - .8em);left:-1em;position:absolute;top:1.2em}',{});const Ce=({data:e,setData:n,rootName:r="root",onUpdate:o=()=>{},onEdit:d=o,onDelete:u=o,onAdd:p=o,onChange:m,onError:y,showErrorMessages:f=!0,enableClipboard:b=!0,indent:v=2,collapse:E=!1,collapseAnimationTime:D=300,showCollectionCount:k=!0,restrictEdit:O=!1,restrictDelete:S=!1,restrictAdd:N=!1,restrictTypeSelection:A=!1,restrictDrag:T=!0,viewOnly:R,searchFilter:K,searchText:V,searchDebounceTime:_=350,keySort:z=!1,showArrayIndices:M=!0,showStringQuotes:F=!0,defaultValue:I=null,newKeyOptions:B,minWidth:W=250,maxWidth:G="min(600px, 90vw)",rootFontSize:Y,stringTruncate:H=250,translations:U={},className:$,id:Z,customText:X={},customNodeDefinitions:J=[],customButtons:Q=[],jsonParse:q=JSON.parse,jsonStringify:ee=(e,t)=>JSON.stringify(e,t,2),TextEditor:te,errorMessageTimeout:ne=2500,keyboardControls:re={},externalTriggers:oe,insertAtTop:ie=!1,onCollapse:ae,collapseClickZones:le=["header","left"]})=>{const{getStyles:se}=P(),{setCurrentlyEditingElement:ce}=L(),de=c((()=>Se(E)),[E]),ue=c((()=>Ee(U,X)),[U,X]),[pe,ge]=i(V),[he,ye]=(({setData:e,data:t})=>{const[n,r]=i(e?void 0:t),o=s((t=>{e?e(t):r(t)}),[e]);return l((()=>{e||r(t)}),[t]),[e?t:n,o]})({setData:n,data:e}),fe=a(null);l((()=>{ce(null);const e=setTimeout((()=>ge(V)),_);return()=>clearTimeout(e)}),[V,_]);const je={key:r,path:[],level:0,index:0,value:he,size:"object"==typeof he&&null!==he?Object.keys(he).length:1,parentData:null,fullData:he},we=(e,t)=>g(void 0,void 0,void 0,(function*(){const n=yield e(t);if(!0===n||void 0===n)return void ye(t.newData);const r=xe(n)?n:["error",n],[o,i]=r;if("error"===o)return ye(t.currentData),!1===i?ue("ERROR_UPDATE",je):String(i);ye(i)})),De=c((()=>Se(O,R)),[O,R]),Ce=c((()=>Se(S,R)),[S,R]),ke=c((()=>Se(N,R)),[N,R]),Te=c((()=>Se(T,R)),[T,R]),Re=c((()=>Ne(K)),[K]),Ke=c((()=>(e=>{const t=Object.assign({},C);for(const n of Object.keys(C)){const r=n;if(e[r]){const o=e[r],i=["clipboardModifier","collapseModifier"].includes(n)?Array.isArray(o)?o:[o]:"string"==typeof o?{key:o}:o;t[r]=i,["stringConfirm","numberConfirm","booleanConfirm"].forEach((n=>{!e[n]&&e.confirm&&(t[n]=t.confirm)}))}}return t})(re)),[re]),Pe=s(((e,t)=>((e,t,n)=>{const r=Object.entries(t);for(const[t,o]of r)if(w(n,e[t],t)){n.preventDefault(),o();break}})(Ke,t,e)),[Ke]),Ve=c((()=>{const e=Ae(J,"stringifyReplacer");return t=>ee(t,e)}),[J,ee]),_e=c((()=>{const e=Ae(J,"parseReviver");return t=>{const n=q(t,e);return x(n)}}),[J,q]),ze=a(null);((e,t)=>{const{setCurrentlyEditingElement:n,currentlyEditingElement:r,setCollapseState:o}=L();l((()=>{if(!e)return;const{collapse:i,edit:a}=e;i&&o(i);const l=!(null==a?void 0:a.path)||j(a.path)===r;switch(null==a?void 0:a.action){case"accept":l&&(t.current&&t.current.click(),n(null));break;case"cancel":l&&n(null);break;default:(null==a?void 0:a.path)&&n(a.path)}}),[e])})(oe,ze);const Me=s(((e,t)=>{!1!==z&&("function"!=typeof z?e.sort(((e,n)=>{const r=t(e)[0],o=t(n)[0];return r<o?-1:r>o?1:0})):e.sort(((e,n)=>z(t(e),t(n)))))}),[z]),Fe=be(J,je),Ie={mainContainerRef:fe,name:r,nodeData:je,onEdit:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:i}=Oe(he,t,e,"update");if(o!==i)return yield we(d,{currentData:n,newData:r,currentValue:o,newValue:i,name:t.slice(-1)[0],path:t})})),onDelete:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:o,newValue:i}=Oe(he,t,e,"delete");return yield we(u,{currentData:n,newData:r,currentValue:o,newValue:i,name:t.slice(-1)[0],path:t})})),onAdd:(e,t,n)=>g(void 0,void 0,void 0,(function*(){const{currentData:r,newData:o,currentValue:i,newValue:a}=Oe(he,t,e,"add",n);return yield we(p,{currentData:r,newData:o,currentValue:i,newValue:a,name:t.slice(-1)[0],path:t})})),onChange:m,onError:y,showErrorMessages:f,onMove:(e,t,n)=>g(void 0,void 0,void 0,(function*(){if(null===e)return;const{currentData:r,newData:o,currentValue:i}=Oe(he,e,"","delete"),a=e.slice(-1)[0],l=t.slice(0,-1),s=t.slice(-1)[0];let c="number"==typeof s?"above"===n?s:s+1:"number"==typeof a?`arr_${a}`:a;e.slice(0,-1).join(".")===t.slice(0,-1).join(".")&&"number"==typeof a&&"number"==typeof c&&a<c&&(c-=1);const u="number"==typeof c?{insert:!0}:"above"===n?{insertBefore:s}:{insertAfter:s},{newData:p,newValue:g}=Oe(o,[...l,c],i,"add",u);return yield we(d,{currentData:r,newData:p,currentValue:i,newValue:g,name:t.slice(-1)[0],path:t})})),showCollectionCount:k,collapseFilter:de,collapseAnimationTime:D,restrictEditFilter:De,restrictDeleteFilter:Ce,restrictAddFilter:ke,restrictTypeSelection:A,restrictDragFilter:Te,canDragOnto:!1,searchFilter:Re,searchText:pe,enableClipboard:b,keySort:z,sort:Me,showArrayIndices:M,showStringQuotes:F,indent:v,defaultValue:I,newKeyOptions:B,stringTruncate:H,translate:ue,customNodeDefinitions:J,customNodeData:Fe,customButtons:Q,parentData:null,jsonParse:_e,jsonStringify:Ve,TextEditor:te,errorMessageTimeout:ne,handleKeyboard:Pe,keyboardControls:Ke,insertAtTop:{object:!0===ie||"object"===ie,array:!0===ie||"array"===ie},onCollapse:ae,editConfirmRef:ze,collapseClickZones:le},Le=Object.assign(Object.assign({},se("container",je)),{minWidth:W,maxWidth:G});return Le.fontSize=null!=Y?Y:Le.fontSize,t("div",{id:Z,ref:fe,className:`jer-editor-container ${null!=$?$:""}`,style:Le,children:h(he)&&!Fe.renderCollectionAsValue?t(ve,Object.assign({data:he},Ie)):t(me,Object.assign({data:he,showLabel:!0},Ie))})},ke=e=>{var n;const[r,o]=i();return l((()=>{const e=document.documentElement;o(e)}),[]),r?t(K,{theme:null!==(n=e.theme)&&void 0!==n?n:T,icons:e.icons,docRoot:r,children:t(I,{onEditEvent:e.onEditEvent,onCollapse:e.onCollapse,children:t(Ce,Object.assign({},e))})}):null},Oe=(e,t,n,r,o={})=>{if(0===t.length)return{currentData:e,newData:n,currentValue:e,newValue:n};const i=Object.assign({remove:"delete"===r},o),a="add"!==r?u(e,t):void 0;return{currentData:e,newData:d(e,t,n,i),currentValue:a,newValue:"delete"!==r?n:void 0}},Se=(e,t)=>t?()=>!0:"boolean"==typeof e?()=>e:"number"==typeof e?({level:t})=>t>=e:e,Ne=e=>{if(void 0!==e)return"value"===e?b:"key"===e?v:"all"===e?(e,t)=>b(e,t)||v(e,t):e},xe=e=>Array.isArray(e)&&2===e.length&&["error","value"].includes(e[0]),Ae=(e,t)=>{const n="stringifyReplacer"===t?[e=>void 0===e?A:e]:[];if(n.push(...e.map((e=>e[t])).filter((e=>!!e))),0!==n.length)return(e,t)=>{let r=t;for(const e of n)r=e(r);return r}},Te=e=>{var n;const{value:r,setIsEditing:o,getStyles:i,nodeData:a}=e,l=i("string",a);return t("div",{onDoubleClick:()=>o(!0),onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&o(!0)},className:"jer-value-string jer-hyperlink",style:l,children:t("a",{href:r,target:"_blank",rel:"noreferrer",style:{color:null!==(n=l.color)&&void 0!==n?n:void 0},children:t(G,Object.assign({},e,{pathString:j(a.path),styles:l,value:a.value}))})})},Re={condition:({value:e})=>"string"==typeof e&&/^https?:\/\/.+\..+$/.test(e),element:Te,showOnView:!0,showOnEdit:!1},Ke={displayName:"Github Dark",styles:{container:{backgroundColor:"#0d1117",color:"white"},dropZone:"rgba(165, 214, 255, 0.17)",property:"#E6EDF3",bracket:"#56d364",itemCount:"#8B949E",string:"#A5D6FF",number:"#D2A8FF",boolean:{color:"#FF7B72",fontSize:"90%",fontWeight:"bold"},null:"green",iconCollection:"#D2A8FF",iconEdit:"#D2A8FF",iconDelete:"rgb(203, 75, 22)",iconAdd:"rgb(203, 75, 22)",iconCopy:"#A5D6FF",iconOk:"#56d364",iconCancel:"rgb(203, 75, 22)"}},Pe={displayName:"Github Light",styles:{container:"white",property:"#1F2328",bracket:"#00802e",itemCount:"#8B949E",string:"#0A3069",number:"#953800",boolean:{color:"#CF222E",fontSize:"90%",fontWeight:"bold"},null:"#FF7B72",iconCollection:"#8250DF",iconEdit:"#8250DF",iconDelete:"rgb(203, 75, 22)",iconAdd:"#8250DF",iconCopy:"#57606A"}},Ve={displayName:"Black & White",fragments:{lightText:{color:"white"},midGrey:"#5c5c5c"},styles:{container:["lightText",{backgroundColor:"black"}],dropZone:"#e0e0e029",property:"lightText",bracket:"midGrey",itemCount:"#4a4a4a",string:"#a8a8a8",number:"#666666",boolean:{color:"#848484",fontStyle:"italic"},null:"#333333",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},_e={fragments:{midGrey:"#a3a3a3"},displayName:"White & Black",styles:{container:"white",property:"black",bracket:"midGrey",itemCount:"#b5b5b5",string:"#575757",number:"#999999",boolean:{color:"#7b7b7b",fontStyle:"italic"},null:"#cccccc",iconCollection:"midGrey",iconEdit:"midGrey",iconDelete:"midGrey",iconAdd:"midGrey",iconCopy:"midGrey",iconOk:"midGrey",iconCancel:"midGrey"}},ze={displayName:"Candy Wrapper",fragments:{minty:{backgroundColor:"#F1FAEE"},pale:{color:"#A8DADC"},mid:{color:"#457B9D"},dark:{color:"#1D3557"},pop:{color:"#E63946"},darkBlue:{color:"#2B2D42"}},styles:{container:"minty",property:"pop",dropZone:"#eb121217",bracket:"dark",itemCount:"pale",string:"mid",number:["darkBlue",{fontSize:"85%"}],boolean:["mid",{fontStyle:"italic",fontWeight:"bold",fontSize:"80%"}],null:["#cccccc",{fontWeight:"bold"}],input:{border:"1px solid rgb(115, 194, 198)"},iconCollection:"#1D3557",iconEdit:"#457B9D",iconDelete:"#E63946",iconAdd:"#2B2D42",iconCopy:"#1D3557",iconCancel:"#E63946"}},Me={displayName:"Psychedelic",fragments:{pale:{color:"#A8DADC"},fluroYellow:"rgb(242, 228, 21)",fluroGreen:"rgb(68, 255, 62)",hotPink:"#f7379a"},styles:{container:{backgroundColor:"unset",background:"linear-gradient(90deg, hsla(333, 100%, 53%, 1) 0%, hsla(33, 94%, 57%, 1) 100%)",color:"black"},dropZone:"fluroYellow",property:"black",bracket:"fluroYellow",itemCount:["pale",{opacity:.7}],string:"white",number:["#33d9ff",{fontSize:"90%",fontWeight:"bold"}],boolean:["fluroGreen",{fontWeight:"bold",fontSize:"80%"}],null:["black",{fontWeight:"bold",opacity:.3,backgroundColor:"rgb(255, 255, 255, 0.5)",padding:"0 0.4em",borderRadius:"0.4em"}],iconCollection:"fluroYellow",iconEdit:["black"],iconDelete:["white",{opacity:.5}],iconAdd:["white",{opacity:.5}],iconCopy:"rgb(32, 84, 242)",iconOk:"fluroGreen",iconCancel:"hotPink"}};export{Q as IconAdd,re as IconCancel,oe as IconChevron,te as IconCopy,ee as IconDelete,q as IconEdit,ne as IconOk,ke as JsonEditor,Te as LinkCustomComponent,Re as LinkCustomNodeDefinition,G as StringDisplay,Y as StringEdit,ze as candyWrapperTheme,T as defaultTheme,Ke as githubDarkTheme,Pe as githubLightTheme,h as isCollection,b as matchNode,v as matchNodeKey,Ve as monoDarkTheme,_e as monoLightTheme,Me as psychedelicTheme,ce as standardDataTypes,j as toPathString,Z as useKeyboardListener};
{
"name": "json-edit-react",
"version": "1.26.2",
"version": "1.27.0",
"description": "React component for editing or viewing JSON/object data",

@@ -5,0 +5,0 @@ "main": "build/index.cjs.js",

@@ -19,2 +19,4 @@ <!-- The README that will appear on the package's NPM page: https://www.npmjs.com/package/json-edit-react

![NPM Downloads](https://img.shields.io/npm/dm/json-edit-react)
[![Discuss on GitHub](https://img.shields.io/badge/Discussions-Join%20the%20conversation-blue?logo=github)](https://github.com/CarlosNZ/json-edit-react/discussions)
[![Sponsor](https://img.shields.io/badge/Sponsor-♥-pink.svg)](https://github.com/sponsors/CarlosNZ)

@@ -21,0 +23,0 @@ ### Features include: