diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..574edb8 --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,14 @@ +{ + "files": { + "main.css": "/cel-evaluator-rs/static/css/main.e6c13ad2.css", + "main.js": "/cel-evaluator-rs/static/js/main.65b34748.js", + "module.wasm": "/cel-evaluator-rs/cb9e8c93255ed06b2cf9.module.wasm", + "index.html": "/cel-evaluator-rs/index.html", + "main.e6c13ad2.css.map": "/cel-evaluator-rs/static/css/main.e6c13ad2.css.map", + "main.65b34748.js.map": "/cel-evaluator-rs/static/js/main.65b34748.js.map" + }, + "entrypoints": [ + "static/css/main.e6c13ad2.css", + "static/js/main.65b34748.js" + ] +} \ No newline at end of file diff --git a/cb9e8c93255ed06b2cf9.module.wasm b/cb9e8c93255ed06b2cf9.module.wasm new file mode 100644 index 0000000..357ba8a Binary files /dev/null and b/cb9e8c93255ed06b2cf9.module.wasm differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..2c2171a --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +React App
\ No newline at end of file diff --git a/static/css/main.e6c13ad2.css b/static/css/main.e6c13ad2.css new file mode 100644 index 0000000..50410fa --- /dev/null +++ b/static/css/main.e6c13ad2.css @@ -0,0 +1,2 @@ +body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} +/*# sourceMappingURL=main.e6c13ad2.css.map*/ \ No newline at end of file diff --git a/static/css/main.e6c13ad2.css.map b/static/css/main.e6c13ad2.css.map new file mode 100644 index 0000000..c5c6853 --- /dev/null +++ b/static/css/main.e6c13ad2.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.e6c13ad2.css","mappings":"AACA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF","sources":["index.css"],"sourcesContent":["\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.65b34748.js b/static/js/main.65b34748.js new file mode 100644 index 0000000..7d30872 --- /dev/null +++ b/static/js/main.65b34748.js @@ -0,0 +1,3 @@ +/*! For license information please see main.65b34748.js.LICENSE.txt */ +(()=>{var __webpack_modules__={111:(e,t,n)=>{"use strict";n.a(e,(async(e,t)=>{try{n(50);var r=n(461),a=(n(579),e([r]));r=(a.then?(await a)():a)[0];t()}catch(o){t(o)}}))},461:(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.a(module,(async(__webpack_handle_async_dependencies__,__webpack_async_result__)=>{try{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(43),json_edit_react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(988),supercel_wasm__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(629),react_split__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(768),_monaco_editor_react__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(158),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(579),__webpack_async_dependencies__=__webpack_handle_async_dependencies__([supercel_wasm__WEBPACK_IMPORTED_MODULE_2__]);supercel_wasm__WEBPACK_IMPORTED_MODULE_2__=(__webpack_async_dependencies__.then?(await __webpack_async_dependencies__)():__webpack_async_dependencies__)[0];const initialJson={variables:{map:{user:{type:"map",value:{should_display:{type:"bool",value:!0},some_value:{type:"uint",value:7}}}}},platform:{daysSinceEvent:[{type:"string",value:"event_name"}]},expression:'platform.daysSinceEvent("test") == user.some_value'},defaultPlatformCode='/**\n * An example of a WasmHostContext implementation from @file src/lib.rs.\n * This contract allows the expression evaluator to call the host environment (your JS)\n * and compute the dynamic properties, i.e. `platform.daysSinceEvent("event_name")`.\n *\n * @param name - The name of the computed property or function being invoked.\n * @param args - JSON string of the arguments for the function.\n * @returns JSON-serialized string of the computed property value.\n * */\nclass WasmHostContext {\n computed_property(name, args) {\n console.log(`computed_property called with name: ${name}, args: ${args}`);\n const parsedArgs = JSON.parse(args);\n if (name === "daysSinceEvent") {\n let toReturn = JSON.stringify({\n type: "uint",\n value: 7\n });\n console.log("Computed property will return", toReturn);\n return toReturn\n }\n console.error("Computed property not defined")\n return JSON.stringify({\n type: "string",\n value: `Computed property ${name} with args ${args}`\n });\n }\n}',CelParserComponent=()=>{const[json,setJson]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialJson),[platformCode,setPlatformCode]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(defaultPlatformCode),[result,setResult]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),[error,setError]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),editorRef=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),handleEditorDidMount=(e,t)=>{editorRef.current=e};(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{(async()=>{try{await supercel_wasm__WEBPACK_IMPORTED_MODULE_2__,await supercel_wasm__WEBPACK_IMPORTED_MODULE_2__.start()}catch(e){setError("Failed to initialize WASM module: "+e.message)}})()}),[]);const handleJsonChange=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((e=>{setJson(e)}),[]),handlePlatformCodeChange=e=>{setPlatformCode(e.target.value)},evaluateAll=()=>{evaluateExpression()},evaluateExpression=async()=>{try{const code=editorRef.current.getValue(),WasmHostContextClass=eval(`(${code})`),wasmHostContext=new WasmHostContextClass;console.log("Will evaluate with context:",json,wasmHostContext),console.log("Wasm functions:",supercel_wasm__WEBPACK_IMPORTED_MODULE_2__.evaluate_with_context);let res=await supercel_wasm__WEBPACK_IMPORTED_MODULE_2__.evaluate_with_context(JSON.stringify(json),wasmHostContext);console.log("Result:",res),setResult(res),setError(null)}catch(err){console.log("Error:",err.message),setError(err.message),setResult(null)}};return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div",{style:styles.container,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div",{style:styles.toolbar,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h1",{style:styles.title,children:"CEL Parser"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button",{style:styles.button,onClick:evaluateExpression,children:"Evaluate Expression"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_split__WEBPACK_IMPORTED_MODULE_3__.A,{style:styles.splitContainer,sizes:[50,40,10],minSize:100,expandToMin:!1,gutterSize:10,gutterAlign:"center",snapOffset:30,dragInterval:1,direction:"horizontal",cursor:"col-resize",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div",{style:styles.pane,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h2",{style:styles.paneTitle,children:"Platform Code"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_monaco_editor_react__WEBPACK_IMPORTED_MODULE_4__.Ay,{height:"90%",defaultLanguage:"javascript",defaultValue:platformCode,theme:"vs-dark",options:{lineNumbers:"off",minimap:{enabled:!1},fontSize:14},onMount:handleEditorDidMount})," "]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div",{style:styles.pane,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h2",{style:styles.paneTitle,children:"JSON Editor"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(json_edit_react__WEBPACK_IMPORTED_MODULE_1__.iN,{data:json,setData:setJson,onUpdate:e=>{let{newData:t}=e;setJson(t)},theme:"githubDark",collapse:!1,enableClipboard:!0,showCollectionCount:!0})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div",{style:styles.pane,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("h2",{style:styles.paneTitle,children:"Result"}),error&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div",{style:styles.error,children:error}),null!==result&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("pre",{style:styles.result,children:JSON.stringify(result,null,2)})]})]})]})},styles={container:{display:"flex",flexDirection:"column",height:"100vh",backgroundColor:"#0A192F",color:"#E6F1FF"},toolbar:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px 20px",backgroundColor:"#172A45",borderBottom:"1px solid #2D3B4F"},title:{fontSize:"24px",fontWeight:"bold",margin:0,color:"#64FFDA"},button:{backgroundColor:"#64FFDA",border:"none",color:"#0A192F",padding:"10px 20px",textAlign:"center",textDecoration:"none",display:"inline-block",fontSize:"16px",margin:"4px 2px",cursor:"pointer",borderRadius:"4px",transition:"background-color 0.3s ease"},splitContainer:{display:"flex",flexGrow:1},pane:{display:"flex",flexDirection:"column",padding:"20px",overflow:"auto",backgroundColor:"#1E2A3A"},paneTitle:{fontSize:"18px",fontWeight:"bold",marginBottom:"15px",color:"#64FFDA"},textarea:{width:"100%",height:"calc(100% - 40px)",padding:"10px",border:"1px solid #2D3B4F",borderRadius:"4px",resize:"none",backgroundColor:"#2A3A4A",color:"#E6F1FF",fontSize:"14px",lineHeight:"1.5"},error:{color:"#FF6B6B",marginBottom:"10px",padding:"10px",backgroundColor:"rgba(255, 107, 107, 0.1)",borderRadius:"4px"},result:{backgroundColor:"#2A3A4A",padding:"15px",borderRadius:"4px",whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"14px",lineHeight:"1.5",color:"#E6F1FF"}},__WEBPACK_DEFAULT_EXPORT__=CelParserComponent;__webpack_async_result__()}catch(e){__webpack_async_result__(e)}}))},812:(e,t,n)=>{"use strict";n.a(e,(async(e,t)=>{try{var r=n(43),a=n(391),o=(n(555),n(111)),l=n(461),i=n(579),u=e([o,l]);[o,l]=u.then?(await u)():u;a.createRoot(document.getElementById("root")).render((0,i.jsx)(r.StrictMode,{children:(0,i.jsx)(l.A,{})})),t()}catch(s){t(s)}}))},988:(e,t,n)=>{"use strict";n.d(t,{iN:()=>me});var r=n(579),a=n(43);const o=(e,t,n,r,a)=>{if(!r)throw new Error(null!=a?a:`Invalid property path: ${t}\nCouldn't access "${n}" in ${JSON.stringify(e)}`)},l=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),i=e=>Array.isArray(e),u=(e,t)=>e.filter(((e,n)=>n!==t)),s=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const{remove:a=!1,createNew:o=!0,noError:l=!1}=r,s=e,d="string"==typeof(f=t)?f:"number"==typeof f?String(f):f.reduce(((e,t)=>"number"==typeof t?`${e}[${t}]`:""===e?t:`${e}.${t}`),"");var f;const p=Object.assign(Object.assign({},r),{remove:a,createNew:o,noError:l,fullData:s,fullPath:d}),m=Array.isArray(t)?t:(e=>Array.isArray(e)?e:e.split(/(\.|\[\d+\])/).filter((e=>"."!==e&&""!==e)).map((e=>{const t=/\[(\d+)\]/.exec(e);return t?Number(t[1]):e})).flat())(t).filter((e=>""!==e));return i(e)&&a&&1===m.length?u(e,m[0]):c(e,m,n,p)},c=(e,t,n,r)=>{const a=l(e)?Object.assign({},e):null,s=i(e)?[...e]:null;if(0===t.length)return e;if(!a&&!s)throw new Error("Can't assign property -- invalid input object");const{createNew:p,remove:m,noError:h,fullData:g,fullPath:y}=r,v=t[0];if(s&&"string"==typeof v)return s.map((e=>c(e,t,n,r)));if(1===t.length){if(a&&"string"==typeof v){const e=d(a,v,n,r);return null!=e?e:a}return s&&"number"==typeof v?(f(s,v,n,r),s):(o(g,y,v,h),e)}const b=a||s||[];if(m&&2===t.length&&"number"==typeof t[1]){const e=b[v],n=t[1];return i(e)?b[v]=u(e,n):o(g,y,v,h,"Trying to remove an indexed item from an object that is not an array"),b}const _=t.slice(1);if(v in e){if(w=b[v],!i(w)&&!l(w)){if(!p)return o(g,y,v,h),b;b[v]={}}return b[v]=c(b[v],_,n,r),b}var w;if(p){const e="number"==typeof _[0]?[]:{};if(a)return b[v]=e,b[v]=c(b[v],_,n,r),b;if(s&&Array.isArray(b)){b.push(e);const t=b.length-1;return b[t]=c(b[t],_,n,r),b}}return o(g,y,v,h),b},d=(e,t,n,r)=>{const{remove:a,createNew:l,noError:i,insertAfter:u,insertBefore:s,fullData:c,fullPath:d}=r;if(s||u){const r=Object.entries(e);let a=r.findIndex((e=>{let[t,n]=e;return t===(null!=s?s:u)}));return u&&a++,r.splice(a,0,[t,n]),Object.fromEntries(r)}const f=t in e;a?f?delete e[t]:o(c,d,t,i):l||f?e[t]=n:o(c,d,t,i)},f=(e,t,n,r)=>{const{noError:a,fullData:l,fullPath:i,createNew:u,insert:s}=r;s&&e.splice(t,0,n),t in e?e[t]=n:u?e.push(n):o(l,i,t,a)},p=(e,t,n)=>{const r=Array.isArray(t)?t:m(t);if(0===r.length)return e;const a=r[0];if(Array.isArray(e)&&"number"!=typeof a)return e.map((e=>p(e,r,n)));if("object"!=typeof e||null===e||!(a in e))return h(e,a,n);const o=e[a];return 1===r.length?o:p(o,r.slice(1),n)},m=e=>e.split(/(\.|\[\d+\])/).filter((e=>"."!==e&&""!==e)).map((e=>{const t=/\[(\d+)\]/.exec(e);return t?Number(t[1]):e})).flat(),h=(e,t,n)=>{if(void 0===n)throw new Error(`Unable to extract object property\nLooking for property: ${t}\nIn object: ${JSON.stringify(e)}`);return n};function g(e,t,n,r){return new(n||(n=Promise))((function(a,o){function l(e){try{u(r.next(e))}catch(e){o(e)}}function i(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(l,i)}u((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;var y=[],v=[];!function(e,t){if(e&&"undefined"!=typeof document){var n,r=!0===t.prepend?"prepend":"append",a=!0===t.singleTag,o="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(a){var l=y.indexOf(o);-1===l&&(l=y.push(o)-1,v[l]={}),n=v[l]&&v[l][r]?v[l][r]:v[l][r]=i()}else n=i();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function i(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),a=0;a .jer-edit-buttons {\n opacity: 1;\n}\n\n.jer-value-main-row:hover > .jer-edit-buttons {\n opacity: 1;\n}\n\n.jer-value-and-buttons:hover > .jer-edit-buttons {\n opacity: 1;\n}\n\n/* .jer-input-buttons {\n} */\n\n.jer-copy-pulse {\n position: relative;\n transition: transform var(--jer-expand-transition-time);\n}\n\n.jer-copy-pulse:hover {\n opacity: 0.85;\n transition: 0.3s;\n transform: scale(1.2);\n}\n\n.jer-copy-pulse:after {\n content: '';\n display: block;\n position: absolute;\n border-radius: 50%;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n transition: all 0.5s;\n box-shadow: 0 0 15px 5px var(--jer-icon-copy-color);\n}\n\n.jer-copy-pulse:active:after {\n box-shadow: 0 0 0 0 var(--jer-icon-copy-color);\n position: absolute;\n border-radius: 4em;\n left: 0;\n top: 0;\n opacity: 1;\n transition: 0s;\n}\n\n.jer-copy-pulse:active {\n top: 0.07em;\n}\n\n.jer-rotate-90 {\n transform: rotate(-90deg);\n transition: transform var(--jer-expand-transition-time);\n}\n\n.jer-accordion-icon {\n /* font-size: '2em'; */\n transition: transform var(--jer-expand-transition-time);\n}\n\n.jer-icon:hover {\n opacity: 0.85;\n transition: 0.3s;\n transform: scale(1.2);\n}\n\n/* For displaying keys that are purely \"\" */\n.jer-empty-string::after {\n content: '';\n font-style: italic;\n font-size: 90%;\n}\n\n.jer-drag-n-drop-padding {\n height: 0.5em;\n border: 1px dashed #e0e0e0;\n border-radius: 0.3em;\n}\n",{});const b=e=>{let{className:t,name:n,value:a,setValue:o,handleKeyPress:l,styles:i}=e;if("string"!=typeof a)return null;const u="\n"===a.slice(-1)?a+".":a;return(0,r.jsxs)("div",{style:{display:"grid"},children:[(0,r.jsx)("textarea",{id:`${n}_textarea`,style:Object.assign({height:"auto",gridArea:"1 / 1 / 2 / 2",overflowY:"auto",whiteSpace:"pre-wrap"},i),rows:1,className:t,name:`${n}_textarea`,value:a,onChange:e=>o(e.target.value),autoFocus:!0,onFocus:e=>{a.length<40&&e.target.select()},onKeyDown:l}),(0,r.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:u})]})},_={default:{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)"}},githubDark:{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)"}},githubLight:{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"}},monoDark:{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"}},monoLight:{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"}},candyWrapper:{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"}},psychedelic:{displayName:"Psychedelic",fragments:{minty:{backgroundColor:"#F1FAEE"},pale:{color:"#A8DADC"},mid:{color:"#457B9D"},dark:{color:"#1D3557"},pop:{color:"#E63946"},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"}}},w=_.default,k=(0,a.createContext)({getStyles:()=>({}),icons:{}}),E=e=>{let{theme:t="default",icons:n={},children:a}=e;const o=x(t);return(0,r.jsx)(k.Provider,{value:{getStyles:(e,t)=>"function"==typeof o[e]?o[e](t):o[e],icons:n},children:a})},S=()=>(0,a.useContext)(k),x=e=>{var t,n,r,a;const o={},l=(Array.isArray(e)?e:[e]).map((t=>"default"===e?{}:"string"==typeof t?j(_[t],o):C(t)?j({fragments:{},styles:t},o):j(t,o))),i=j(w,{});Object.keys(i).forEach((e=>{const t=e;l.forEach((e=>{e[t]&&(i[t]=Object.assign(Object.assign({},i[t]),e[t]))}))}));const u=Object.assign({},i);return Object.entries(o).forEach((e=>{let[t,n]=e;const r=t;u[r]=e=>{const t=n(e)||{};return Object.assign(Object.assign({},i[r]),t)}})),"function"!=typeof(null==u?void 0:u.inputHighlight)&&(null===(t=null==u?void 0:u.inputHighlight)||void 0===t?void 0:t.backgroundColor)&&document.documentElement.style.setProperty("--jer-highlight-color",null===(n=null==u?void 0:u.inputHighlight)||void 0===n?void 0:n.backgroundColor),"function"!=typeof(null==u?void 0:u.iconCopy)&&(null===(r=null==u?void 0:u.iconCopy)||void 0===r?void 0:r.color)&&document.documentElement.style.setProperty("--jer-icon-copy-color",null===(a=null==u?void 0:u.iconCopy)||void 0===a?void 0:a.color),u},j=(e,t)=>{const{fragments:n,styles:r}=e,a={};return Object.entries(r).forEach((e=>{let[r,o]=e;const l=(Array.isArray(o)?o:[o]).reduce(((e,a)=>{var o;if("function"==typeof a)return t[r]=a,Object.assign({},e);if("string"==typeof a){const t=null!==(o=null==n?void 0:n[a])&&void 0!==o?o:a;return"string"==typeof t?Object.assign(Object.assign({},e),{[O[r]]:t}):Object.assign(Object.assign({},e),t)}return Object.assign(Object.assign({},e),a)}),{});a[r]=l})),a},C=e=>!("styles"in e),O={container:"backgroundColor",collection:"backgroundColor",collectionInner:"backgroundColor",collectionElement:"backgroundColor",dropZone:"borderColor",property:"color",bracket:"color",itemCount:"color",string:"color",number:"color",boolean:"color",null:"color",input:"color",inputHighlight:"backgroundColor",error:"color",iconCollection:"color",iconEdit:"color",iconDelete:"color",iconAdd:"color",iconCopy:"color",iconOk:"color",iconCancel:"color"},D="**INVALID_FUNCTION**",P=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200;return"string"==typeof e?e.lengthe.map((e=>""===e?String.fromCharCode(0):e)).join("."),z=e=>{let{value:t,setValue:n,isEditing:a,path:o,setIsEditing:l,handleEdit:i,handleCancel:u,stringTruncate:s,showStringQuotes:c,nodeData:d}=e;const{getStyles:f}=S(),p=N(o),m=c?'"':"";return a?(0,r.jsx)(b,{className:"jer-input-text",name:p,value:t,setValue:n,isEditing:a,handleKeyPress:e=>{"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&u():i()},styles:f("input",d)}):(0,r.jsxs)("div",{id:`${p}_display`,onDoubleClick:()=>l(!0),onClick:e=>{(e.getModifierState("Control")||e.getModifierState("Meta"))&&l(!0)},className:"jer-value-string",style:f("string",d),children:[m,P(t,s),m]})},T=e=>{let{value:t,setValue:n,isEditing:a,path:o,setIsEditing:l,handleEdit:i,handleCancel:u,nodeData:s}=e;const{getStyles:c}=S();return a?(0,r.jsx)("input",{className:"jer-input-number",type:"text",name:N(o),value:t,onChange:e=>n(e.target.value.replace(/[^0-9.-]/g,"")),autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{switch(e.key){case"Enter":i();break;case"Escape":u();break;case"ArrowUp":e.preventDefault(),n(Number(t)+1);break;case"ArrowDown":e.preventDefault(),n(Number(t)-1)}},style:Object.assign({width:String(t).length/1.5+2+"em"},c("input",s))}):(0,r.jsx)("span",{onDoubleClick:()=>l(!0),className:"jer-value-number",style:c("number",s),children:t})},M=e=>{let{value:t,setValue:n,isEditing:a,path:o,setIsEditing:l,handleEdit:i,handleCancel:u,nodeData:s}=e;const{getStyles:c}=S();return a?(0,r.jsx)("input",{className:"jer-input-boolean",type:"checkbox",name:N(o),checked:t,onChange:()=>n(!t),onKeyDown:e=>{"Enter"===e.key?i():"Escape"===e.key&&u()},autoFocus:!0}):(0,r.jsx)("span",{onDoubleClick:()=>l(!0),className:"jer-value-boolean",style:c("boolean",s),children:String(t)})},R=e=>{let{value:t,isEditing:n,setIsEditing:o,handleEdit:l,handleCancel:i,nodeData:u}=e;const{getStyles:s}=S();(0,a.useEffect)((()=>(n&&document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c))),[n]);const c=e=>{"Enter"===e.key?l():"Escape"===e.key&&i()};return(0,r.jsx)("div",{onDoubleClick:()=>o(!0),className:"jer-value-null",style:s("null",u),children:String(t)})},L=e=>{let{value:t}=e,n="Error!";switch(typeof t){case"string":t===D&&(n="Function");break;case"undefined":n="Undefined";break;case"symbol":n="Symbol"}return(0,r.jsx)("span",{className:"jer-value-invalid",children:n})},A=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsxs)("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:a,style:n,children:[(0,r.jsx)("path",{d:"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z"}),(0,r.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"})]})},I=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsxs)("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:a,style:n,transform:"translate(0, 0.5)",children:[(0,r.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"}),(0,r.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"})]})},F=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:a,style:n,children:(0,r.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=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:t,height:t,className:a,style:n,children:[(0,r.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"}),(0,r.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"}),(0,r.jsx)("path",{d:"M15 10l-4 4 4 4"})]})},B=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",width:t,height:t,className:a,style:n,children:[(0,r.jsx)("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),(0,r.jsx)("path",{d:"M22 4L12 14.01l-3-3"})]})},V=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsx)("svg",{baseProfile:"tiny",viewBox:"0 0 24 24",fill:"currentColor",width:t,height:t,className:a,style:n,children:(0,r.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"})})},W=e=>{let{size:t,style:n,className:a}=e;return(0,r.jsx)("svg",{viewBox:"0 0 512 512",fill:"currentColor",width:t,height:t,className:a,style:n,children:(0,r.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"})})},$=e=>{let{name:t,nodeData:n,rotate:a}=e;var o,l,i,u,s,c,d;const{getStyles:f,icons:p}=S(),m={size:"1.4em",className:"jer-icon"};switch(t){case"add":return null!==(o=null==p?void 0:p.add)&&void 0!==o?o:(0,r.jsx)(A,Object.assign({},m,{style:f("iconAdd",n)}));case"edit":return null!==(l=null==p?void 0:p.edit)&&void 0!==l?l:(0,r.jsx)(I,Object.assign({},m,{style:f("iconEdit",n)}));case"delete":return null!==(i=null==p?void 0:p.delete)&&void 0!==i?i:(0,r.jsx)(F,Object.assign({},m,{style:f("iconDelete",n),size:"1.45em"}));case"copy":return null!==(u=null==p?void 0:p.copy)&&void 0!==u?u:(0,r.jsx)(U,Object.assign({},m,{style:f("iconCopy",n),size:"1.2em"}));case"ok":return null!==(s=null==p?void 0:p.ok)&&void 0!==s?s:(0,r.jsx)(B,Object.assign({},m,{style:Object.assign({fontSize:"90%"},f("iconOk",n))}));case"cancel":return null!==(c=null==p?void 0:p.cancel)&&void 0!==c?c:(0,r.jsx)(V,Object.assign({},m,{style:Object.assign({fontSize:"130%"},f("iconCancel",n))}));case"chevron":return null!==(d=null==p?void 0:p.chevron)&&void 0!==d?d:(0,r.jsx)(W,{className:"jer-accordion-icon"+(a?" jer-rotate-90":""),size:"1em",style:f("iconCollection",n)});default:return(0,r.jsx)(r.Fragment,{})}},K=e=>{let{startEdit:t,handleDelete:n,handleAdd:o,enableClipboard:l,type:i,customButtons:u,nodeData:s,translate:c}=e;const{getStyles:d}=S(),f=c("KEY_NEW",s),[p,m]=(0,a.useState)(!1),[h,g]=(0,a.useState)(f),{key:y,path:v,value:b}=s;return(0,r.jsxs)("div",{className:"jer-edit-buttons",style:{opacity:p?1:void 0},children:[l&&(0,r.jsx)("div",{onClick:e=>{let t,n="value",r="";l&&(!0===(e.ctrlKey||e.metaKey)?(t=q(v),r=t,n="path"):(t=b,r=i?JSON.stringify(b,null,2):String(t)),navigator.clipboard.writeText(r)),"function"==typeof l&&l({value:t,stringValue:r,path:v,key:y,type:n})},className:"jer-copy-pulse",children:(0,r.jsx)($,{name:"copy",nodeData:s})}),t&&(0,r.jsx)("div",{onClick:t,children:(0,r.jsx)($,{name:"edit",nodeData:s})}),n&&(0,r.jsx)("div",{onClick:n,children:(0,r.jsx)($,{name:"delete",nodeData:s})}),o&&(0,r.jsx)("div",{onClick:()=>{"object"===i?m(!0):o("")},children:(0,r.jsx)($,{name:"add",nodeData:s})}),null==u?void 0:u.map(((e,t)=>{let{Element:n,onClick:a}=e;return(0,r.jsx)("div",{onClick:e=>a(s,e),children:(0,r.jsx)(n,{})},t)})),p&&o&&"object"===i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{className:"jer-input-new-key",type:"text",name:"new-object-key",value:h,onChange:e=>g(e.target.value),autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{"Enter"===e.key&&o?(m(!1),o(h),g(f)):"Escape"===e.key&&(m(!1),g(f))},style:d("input",s)}),(0,r.jsx)(H,{onOk:()=>{h&&(m(!1),o(h))},onCancel:()=>{m(!1)},nodeData:s})]})]})},H=e=>{let{onOk:t,onCancel:n,nodeData:a}=e;return(0,r.jsxs)("div",{className:"jer-confirm-buttons",children:[(0,r.jsx)("div",{onClick:t,children:(0,r.jsx)($,{name:"ok",nodeData:a})}),(0,r.jsx)("div",{onClick:n,children:(0,r.jsx)($,{name:"cancel",nodeData:a})})]})},q=e=>e.reduce(((e,t)=>"number"==typeof t?`${e}[${t}]`:""===e?t:`${e}.${t}`),""),Q=["string","number","boolean","null","object","array"],Y=function(){let e=arguments.length>1?arguments[1]:void 0;const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((t=>{let{condition:n}=t;return n(e)}));if(0===t.length)return{};const n=t[0],{element:r,wrapperElement:a,customNodeProps:o,wrapperProps:l,hideKey:i=!1,showEditTools:u=!0,showOnEdit:s=!1,showOnView:c=!0,showCollectionWrapper:d=!0}=n,f=function(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 a=0;for(r=Object.getOwnPropertySymbols(e);anull!==e&&"object"==typeof e,J=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";if(!n&&!r)return!0;switch(e){case"collection":if(n){if(n(t,r))return!0;if(!X(r,t,n))return!1}if(!n&&r&&!X(r,t))return!1;break;case"value":if(n&&!n(t,r))return!1;if(!n&&r&&!Z(t,r))return!1}return!0},X=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Z;const r=t.value;return Object.entries(r).some((a=>{let[o,l]=a;const i=[...t.path,o],u=Object.assign(Object.assign({},t),{key:o,path:i,level:t.level+1,value:l,size:i.length,parentData:r});return G(l)?X(e,u,n):n(u,e)}))},Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";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}},ee=function(e){let{key:t,path:n}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return!!Z({value:t},r)||!!n.some((e=>Z({value:e},r)))},te=(0,a.createContext)({collapseState:null,setCollapseState:()=>{},doesPathMatch:()=>!1,currentlyEditingElement:null,setCurrentlyEditingElement:()=>{},areChildrenBeingEdited:()=>!1,dragSource:{path:null,pathString:null},setDragSource:()=>{}}),ne=e=>{let{children:t}=e;const[n,o]=(0,a.useState)(null),[l,i]=(0,a.useState)(null),[u,s]=(0,a.useState)({path:null,pathString:null});return(0,r.jsx)(te.Provider,{value:{collapseState:n,setCollapseState:e=>{o(e),null!==e&&setTimeout((()=>o(null)),2e3)},doesPathMatch:e=>{if(null===n)return!1;for(const[t,r]of n.path.entries())if(r!==e[t])return!1;return!0},currentlyEditingElement:l,setCurrentlyEditingElement:i,areChildrenBeingEdited:e=>null!==l&&l.includes(e),dragSource:u,setDragSource:s},children:t})},re=()=>(0,a.useContext)(te),ae=e=>{let{props:t,collapsed:n}=e;const{data:r,nodeData:o,parentData:l,onEdit:i,onError:u,showErrorMessages:s,restrictEditFilter:c,restrictDeleteFilter:d,restrictAddFilter:f,restrictDragFilter:p,translate:m}=t,{currentlyEditingElement:h,setCurrentlyEditingElement:g}=re(),[y,v]=(0,a.useState)(null),b=Object.assign(Object.assign({},o),{collapsed:n}),{path:_,key:w,size:k}=b,E=N(_),S=(0,a.useMemo)((()=>!c(b)),[b]),x=(0,a.useMemo)((()=>!d(b)),[b]),j=(0,a.useMemo)((()=>!f(b)),[b]),C=(0,a.useMemo)((()=>!p(b)&&x&&null===h),[b]),O=e=>{s&&(v(e),setTimeout((()=>v(null)),2500)),console.warn("Error",e)},D=(0,a.useMemo)((()=>(e,t)=>{O(e.message),u&&u({currentData:b.fullData,errorValue:t,currentValue:r,name:w,path:_,error:e})}),[u,s]),P=h===E,z=h===`key_${E}`,T="number"==typeof _.slice(-1)[0];return{pathString:E,nodeData:b,path:_,name:w,size:k,canEdit:S,canDelete:x,canAdd:j,canDrag:C,error:y,showError:O,onError:D,setError:v,handleEditKey:e=>{if(g(null),w===e)return;if(!l)return;const t=_.slice(0,-1);if(Object.keys(l).includes(e))return void D({code:"KEY_EXISTS",message:m("ERROR_KEY_EXISTS",b)},e);const n=Object.fromEntries(Object.entries(l).map((t=>{let[n,r]=t;return n===w?[e,r]:[n,r]})));i(n,t).then((t=>{t&&D({code:"UPDATE_ERROR",message:t},e)}))},derivedValues:{isEditing:P,isEditingKey:z,isArray:T,canEditKey:null!==l&&S&&j&&x&&!T}}},oe=e=>{let{canDrag:t,canDragOnto:n,path:o,nodeData:l,onMove:i,onError:u,translate:s}=e;const{getStyles:c}=S(),{dragSource:d,setDragSource:f}=re(),[p,m]=(0,a.useState)(!1),h=N(o),g=(0,a.useMemo)((()=>t?{onDragStart:e=>{e.stopPropagation(),f({path:o,pathString:h})},onDragEnd:e=>{e.stopPropagation(),f({path:null,pathString:null})}}:{}),[t]),y=(0,a.useMemo)((()=>e=>n?{onDragOver:e=>{e.stopPropagation(),e.preventDefault()},onDrop:t=>{t.stopPropagation(),b(e),f({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,n]),v=(0,a.useMemo)((()=>n&&null!==d.pathString?(0,r.jsx)("div",Object.assign({className:"jer-drop-target-bottom",style:{height:"50%",position:"absolute",width:"100%",top:"50%",zIndex:o.length}},y("below"))):null),[d,n]),b=e=>{var t,n;const r=null===(t=d.path)||void 0===t?void 0:t.slice(-1)[0],a=null===(n=d.path)||void 0===n?void 0:n.slice(0,-1).join("."),c=o.slice(0,-1).join(""),{parentData:f}=l;"string"==typeof r&&f&&!Array.isArray(f)&&Object.keys(f).includes(r)&&r in f&&a!==c?u({code:"KEY_EXISTS",message:s("ERROR_KEY_EXISTS",l)},r):i(d.path,o,e).then((e=>{e&&u({code:"UPDATE_ERROR",message:e},l.value)}))};return{dragSourceProps:g,getDropTargetProps:y,BottomDropTarget:v,DropTargetPadding:e=>{let{position:t,nodeData:n}=e;return p===t?(0,r.jsx)("div",{className:"jer-drag-n-drop-padding",style:c("dropZone",n)}):null},handleDrop:b}},le=e=>{const{data:t,parentData:n,onEdit:o,onDelete:l,onChange:i,onMove:u,enableClipboard:s,canDragOnto:c,restrictTypeSelection:d,searchFilter:f,searchText:p,showLabel:m,stringTruncate:h,showStringQuotes:g,indent:y,translate:v,customNodeDefinitions:b}=e,{getStyles:_}=S(),{setCurrentlyEditingElement:w,setCollapseState:k}=re(),[E,x]=(0,a.useState)("function"==typeof t?D:t),{pathString:j,nodeData:C,path:O,name:P,canEdit:N,canDelete:z,canDrag:T,error:M,onError:R,handleEditKey:L,derivedValues:A}=ae({props:e}),{dragSourceProps:I,getDropTargetProps:F,BottomDropTarget:U,DropTargetPadding:B}=oe({canDrag:T,canDragOnto:c,path:O,nodeData:C,onMove:u,onError:R,translate:v}),V=Y(b,C),[W,$]=(0,a.useState)(ie(t,V)),q=(0,a.useCallback)((e=>{if(!i)return void x(e);const t=i({currentData:C.fullData,newValue:e,currentValue:E,name:P,path:O});x(t)}),[i]);(0,a.useEffect)((()=>{x("function"==typeof t?D:t),$(ie(t,V))}),[t,M]);const{CustomNode:G,customNodeProps:X,hideKey:Z,showEditTools:ee=!0,showOnEdit:te,showOnView:ne}=V,le=[...Q,...b.filter((e=>{let{showInTypesSelector:t=!1,name:n}=e;return t&&!!n})).map((e=>{let{name:t}=e;return t}))],ce=(0,a.useMemo)((()=>{if("boolean"==typeof d)return d?[]:le;if(Array.isArray(d))return d;const e=d(C);return"boolean"==typeof e?e?[]:le:e}),[C,d]);if(!J("value",C,f,p))return null;const de=()=>{let e;switch(w(null),W){case"object":e={[v("DEFAULT_NEW_KEY",C)]:E};break;case"array":e=null!=E?E:[];break;case"number":{const t=Number(E);e=isNaN(t)?0:t;break}default:e=E}o(e,O).then((t=>{t&&R({code:"UPDATE_ERROR",message:t},e)}))},fe=()=>{w(null),x(t),$(ie(t,V))},{isEditing:pe,isEditingKey:me,canEditKey:he}=A,ge=!pe&&M,ye=pe&&ce.length>0,ve="invalid"!==W&&!M&&ee,be=m&&me,_e=m&&!me&&!Z,we={value:E,parentData:n,setValue:q,isEditing:pe,setIsEditing:N?()=>w(j):()=>{},handleEdit:de,handleCancel:fe,path:O,stringTruncate:h,showStringQuotes:g,nodeData:C,translate:v},ke=G&&(pe&&te||!pe&&ne)?(0,r.jsx)(G,Object.assign({},e,{value:E,customNodeProps:X,setValue:q,handleEdit:de,handleCancel:fe,handleKeyPress:e=>{"Enter"===e.key?de():"Escape"===e.key&&fe()},isEditing:pe,setIsEditing:()=>w(j),getStyles:_})):ue(ie(t),we);return(0,r.jsxs)("div",Object.assign({className:"jer-component jer-value-component",style:{marginLeft:y/2+"em",position:"relative"},draggable:T},I,F("above"),{children:[U,(0,r.jsx)(B,{position:"above",nodeData:C}),(0,r.jsxs)("div",{className:"jer-value-main-row",style:{flexWrap:P.length>10?"wrap":"nowrap"},children:[_e&&(0,r.jsxs)("span",{className:"jer-key-text",style:Object.assign(Object.assign({},_("property",C)),{minWidth:`${Math.min(String(P).length+1,5)}ch`,flexShrink:P.length>10?1:0}),onDoubleClick:()=>he&&w(`key_${j}`),children:[""===P?(0,r.jsx)("span",{className:"jer-empty-string"}):P,":"]}),be&&(0,r.jsx)("input",{className:"jer-input-text jer-key-edit",type:"text",name:j,defaultValue:P,autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{"Enter"===e.key?L(e.target.value):"Escape"===e.key&&fe()},style:{width:String(P).length/1.5+.5+"em"}}),(0,r.jsxs)("div",{className:"jer-value-and-buttons",children:[(0,r.jsx)("div",{className:"jer-input-component",children:ke}),pe?(0,r.jsx)(H,{onOk:de,onCancel:fe,nodeData:C}):ve&&(0,r.jsx)(K,{startEdit:N?()=>w(j):void 0,handleDelete:z?()=>{l(E,O).then((e=>{e&&R({code:"DELETE_ERROR",message:e},E)}))}:void 0,enableClipboard:s,translate:v,customButtons:e.customButtons,nodeData:C}),ye&&(0,r.jsxs)("div",{className:"jer-select",children:[(0,r.jsx)("select",{name:`${P}-type-select`,className:"jer-type-select",onChange:e=>(e=>{const t=b.find((t=>t.name===e));if(t)o(t.defaultValue,O),$(e),w(null),k({path:O,collapsed:!1});else{const t=se(E,e,v("DEFAULT_NEW_KEY",C),(null==V?void 0:V.CustomNode)?v("DEFAULT_STRING",C):void 0);q(t),o(t,O).then((e=>{e&&(R({code:"UPDATE_ERROR",message:e},t),w(null))}))}})(e.target.value),value:W,children:ce.map((e=>(0,r.jsx)("option",{value:e,children:e},e)))}),(0,r.jsx)("span",{className:"focus"})]}),ge&&(0,r.jsx)("span",{className:"jer-error-slug",style:_("error",C),children:M})]})]}),(0,r.jsx)(B,{position:"below",nodeData:C})]}))},ie=(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",ue=(e,t)=>{const n=t.value;switch(e){case"string":return(0,r.jsx)(z,Object.assign({},t,{value:n}));case"number":return(0,r.jsx)(T,Object.assign({},t,{value:n}));case"boolean":return(0,r.jsx)(M,Object.assign({},t,{value:n}));case"null":return(0,r.jsx)(R,Object.assign({},t));default:return(0,r.jsx)(L,Object.assign({},t))}},se=(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)}},ce=e=>{const{getStyles:t}=S(),{collapseState:n,setCollapseState:o,doesPathMatch:i,currentlyEditingElement:u,setCurrentlyEditingElement:s,areChildrenBeingEdited:c}=re(),{data:d,nodeData:f,parentData:m,showCollectionCount:h,onEdit:y,onAdd:v,onDelete:_,canDragOnto:w,collapseFilter:k,collapseAnimationTime:E,onMove:x,enableClipboard:j,searchFilter:C,searchText:O,indent:D,keySort:P,showArrayIndices:N,defaultValue:z,translate:T,customNodeDefinitions:M,jsonParse:R,jsonStringify:L}=e,[A,I]=(0,a.useState)(L(d)),F=k(f),{contentRef:U,isAnimating:B,maxHeight:V,collapsed:W,animateCollapse:q}=((e,t,n)=>{const[r,o]=(0,a.useState)(n?0:void 0),[l,i]=(0,a.useState)(n),u=(0,a.useRef)(!1),s=(0,a.useRef)(null),c=(0,a.useRef)(0),d=(0,a.useRef)();return{contentRef:s,isAnimating:u.current,animateCollapse:n=>{var r,a;if(l!==n){switch(window.clearTimeout(d.current),u.current=!0,n){case!0:{const e=null!==(a=null===(r=s.current)||void 0===r?void 0:r.offsetHeight)&&void 0!==a?a:0;c.current=e,o(e),setTimeout((()=>{o(0)}),5);break}case!1:o(c.current||((e,t)=>{var n,r;const a=document.getElementsByClassName("jer-editor-container"),o=parseInt(a.length>0?getComputedStyle(a[0]).getPropertyValue("line-height"):"16px"),l=(null!==(r=null===(n=t.current)||void 0===n?void 0:n.offsetWidth)&&void 0!==r?r:0)/(.5*o),i=JSON.stringify(e,null,2).replace(/\\n/g,"\n").split("\n").map((e=>Math.ceil(e.length/l))).reduce(((e,t)=>e+t),0)*o;return Math.min(i+30,window.innerHeight-50)})(e,s))}i(!l),d.current=window.setTimeout((()=>{u.current=!1,n||o(void 0)}),t)}},maxHeight:r,collapsed:l}})(d,E,F),{pathString:Q,nodeData:X,path:Z,name:ee,size:te,canEdit:ne,canDelete:ie,canAdd:ue,canDrag:se,error:de,setError:fe,onError:pe,handleEditKey:me,derivedValues:he}=ae({props:e,collapsed:W}),{dragSourceProps:ge,getDropTargetProps:ye,BottomDropTarget:ve,DropTargetPadding:be}=oe({canDrag:se,canDragOnto:w,path:Z,nodeData:X,onMove:x,onError:pe,translate:T}),_e=(0,a.useRef)(!F);(0,a.useEffect)((()=>{I(L(d))}),[d]),(0,a.useEffect)((()=>{const e=k(X)&&!he.isEditing;_e.current=!e,q(e)}),[k]),(0,a.useEffect)((()=>{null!==n&&i(Z)&&(_e.current=!0,q(n.collapsed))}),[n]);const we=(0,a.useMemo)((()=>e=>"function"!=typeof z?z:z(e)),[z]),{CustomNode:ke,customNodeProps:Ee,CustomWrapper:Se,wrapperProps:xe={},hideKey:je,showEditTools:Ce=!0,showOnEdit:Oe,showOnView:De,showCollectionWrapper:Pe=!0}=(0,a.useMemo)((()=>Y(M,X)),[]);if(!J("collection",X,C,O)&&X.level>0)return null;const Ne=Array.isArray(d)?"array":"object",ze="array"===Ne?{open:"[",close:"]"}:{open:"{",close:"}"},Te=e=>{"Enter"===e.key&&(e.metaKey||e.shiftKey||e.ctrlKey)?Me():"Escape"===e.key&&Le()},Me=()=>{try{const e=R(A);if(s(null),fe(null),JSON.stringify(e)===JSON.stringify(d))return;y(e,Z).then((t=>{t&&pe({code:"UPDATE_ERROR",message:t},e)}))}catch(l){pe({code:"INVALID_JSON",message:T("ERROR_INVALID_JSON",X)},A)}},Re=Z.length>0?()=>{_(d,Z).then((e=>{e&&pe({code:"DELETE_ERROR",message:e},p(d,Z))}))}:void 0,Le=()=>{s(null),fe(null),I(L(d))},{isEditing:Ae,isEditingKey:Ie,isArray:Fe,canEditKey:Ue}=he,Be="when-closed"===h?W:h,Ve=!Ae&&Ce,We=(N||!Fe)&&!je&&void 0!==ee,$e=ke&&(Ae&&Oe||!Ae&&De),Ke=P&&"object"===Ne,He=Object.entries(d).map((e=>{let[t,n]=e;return["array"===Ne?Number(t):t,n]}));Ke&&He.sort("function"==typeof P?(e,t)=>P(e[0],t[0]):void 0);const qe=_e.current?Ae?(0,r.jsx)("div",{className:"jer-collection-text-edit",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(b,{className:"jer-collection-text-area",name:Q,value:A,setValue:I,isEditing:Ae,handleKeyPress:Te,styles:t("input",X)}),(0,r.jsx)("div",{className:"jer-collection-input-button-row",children:(0,r.jsx)(H,{onOk:Me,onCancel:Le,nodeData:X})})]})}):He.map(((n,a)=>{let[o,l]=n;const i={key:o,value:l,path:[...Z,o],level:Z.length+1,index:a,size:G(l)?Object.keys(l).length:1,parentData:d,fullData:X.fullData};return(0,r.jsx)("div",{className:"jer-collection-element",style:t("collectionElement",i),children:G(l)?(0,r.jsx)(ce,Object.assign({},e,{data:l,parentData:d,nodeData:i,showCollectionCount:h,canDragOnto:ne}),o):(0,r.jsx)(le,Object.assign({},e,{data:l,parentData:d,nodeData:i,canDragOnto:ne,showLabel:"object"===Ne||N}),o)},o)})):null,Qe=!!Pe&&W;Qe||(_e.current=!0);const Ye=Object.assign(Object.assign({},e),{data:d,value:d,parentData:m,nodeData:X,setValue:e=>g(void 0,void 0,void 0,(function*(){return yield y(e,Z)})),handleEdit:Me,handleCancel:Le,handleKeyPress:Te,isEditing:Ae,setIsEditing:()=>s(Q),getStyles:t,canDragOnto:ne}),Ge=$e?(0,r.jsx)(ke,Object.assign({customNodeProps:Ee},Ye,{children:qe})):qe,Je=Ie?(0,r.jsx)("input",{className:"jer-input-text jer-key-edit",type:"text",name:Q,defaultValue:ee,autoFocus:!0,onFocus:e=>e.target.select(),onKeyDown:e=>{"Enter"===e.key?me(e.target.value):"Escape"===e.key&&Le()},style:{width:String(ee).length/1.5+.5+"em"}}):We&&(0,r.jsx)("span",{className:"jer-key-text",style:t("property",X),onDoubleClick:()=>Ue&&s(`key_${Q}`),children:""===ee?(0,r.jsx)("span",{className:Z.length>0?"jer-empty-string":void 0}):`${ee}:`}),Xe=Ve&&(0,r.jsx)(K,{startEdit:ne?()=>{_e.current=!0,s(Q)}:void 0,handleAdd:ue?e=>{q(!1);const t=we(X);"array"===Ne?v(t,[...Z,d.length]).then((e=>{e&&pe({code:"ADD_ERROR",message:e},t)})):e in d?pe({code:"KEY_EXISTS",message:T("ERROR_KEY_EXISTS",X)},e):v(t,[...Z,e]).then((e=>{e&&pe({code:"ADD_ERROR",message:e},t)}))}:void 0,handleDelete:ie?Re:void 0,enableClipboard:j,type:Ne,nodeData:X,translate:T,customButtons:e.customButtons}),Ze=(0,r.jsxs)("div",Object.assign({className:"jer-component jer-collection-component",style:Object.assign(Object.assign({marginLeft:(0===Z.length?0:D/2)+"em"},t("collection",X)),{position:"relative"}),draggable:se},ge,ye("above"),{children:[!Ae&&ve,(0,r.jsx)(be,{position:"above",nodeData:X}),Pe?(0,r.jsxs)("div",{className:"jer-collection-header-row",style:{position:"relative"},children:[(0,r.jsxs)("div",{className:"jer-collection-name",children:[(0,r.jsx)("div",{className:"jer-collapse-icon",onClick:e=>(e=>{if(e.getModifierState("Alt"))return _e.current=!0,void o({collapsed:!W,path:Z});u&&u.includes(Q)||(_e.current=!0,o(null),q(!W))})(e),children:(0,r.jsx)($,{name:"chevron",rotate:W,nodeData:X})}),Je,!Ae&&(0,r.jsx)("span",{className:"jer-brackets jer-bracket-open",style:t("bracket",X),children:ze.open})]}),!Ae&&Be&&(0,r.jsx)("div",{className:"jer-collection-item-count"+(Be?" jer-visible":" jer-hidden"),style:t("itemCount",X),children:1===te?T("ITEM_SINGLE",Object.assign(Object.assign({},X),{size:1}),1):T("ITEMS_MULTIPLE",X,te)}),(0,r.jsx)("div",{className:"jer-brackets"+(Qe?" jer-visible":" jer-hidden"),style:t("bracket",X),children:ze.close}),Xe]}):je?(0,r.jsx)(r.Fragment,{}):(0,r.jsxs)("div",{className:"jer-collection-header-row",style:{position:"relative"},children:[Je,Xe]}),(0,r.jsxs)("div",{className:"jer-collection-inner",style:Object.assign({overflowY:Qe||B?"clip":"visible",maxHeight:c(Q)?void 0:V},t("collectionInner",X)),ref:U,children:[Ge,(0,r.jsx)("div",{className:Ae?"jer-collection-error-row":"jer-collection-error-row-edit",children:de&&(0,r.jsx)("span",{className:"jer-error-slug",style:t("error",X),children:de})}),!Ae&&Pe&&(0,r.jsx)("div",{className:"jer-brackets jer-bracket-outside",style:Object.assign(Object.assign({},t("bracket",X)),{marginLeft:(D<3?-1:D<6?-.5:0)+"em"}),children:ze.close})]}),(0,r.jsx)(be,{position:"below",nodeData:X})]}));return Se?(0,r.jsx)(Se,Object.assign({customNodeProps:xe},Ye,{children:Ze})):Ze},de={ITEM_SINGLE:"{{count}} item",ITEMS_MULTIPLE:"{{count}} items",KEY_NEW:"Enter new key",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"},fe=(e,t)=>(n,r,a)=>((e,t,n,r,a)=>{if(t[r]){const e=t[r](n);if(null!==e)return e}const o=r in e?e[r]:de[r];return void 0===a?o:null==o?void 0:o.replace("{{count}}",String(a))})(e,t,r,n,a),pe=e=>{let{data:t,setData:n,rootName:o="root",onUpdate:l=()=>{},onEdit:i=l,onDelete:u=l,onAdd:s=l,onChange:c,onError:d,showErrorMessages:f=!0,enableClipboard:p=!0,indent:m=2,collapse:h=!1,collapseAnimationTime:y=300,showCollectionCount:v=!0,restrictEdit:b=!1,restrictDelete:_=!1,restrictAdd:w=!1,restrictTypeSelection:k=!1,restrictDrag:E=!0,searchFilter:x,searchText:j,searchDebounceTime:C=350,keySort:O=!1,showArrayIndices:D=!0,showStringQuotes:P=!0,defaultValue:N=null,minWidth:z=250,maxWidth:T="min(600px, 90vw)",rootFontSize:M,stringTruncate:R=250,translations:L={},className:A,id:I,customText:F={},customNodeDefinitions:U=[],customButtons:B=[],jsonParse:V=JSON.parse,jsonStringify:W=e=>JSON.stringify(e,null,2)}=e;const{getStyles:$}=S(),K=(0,a.useCallback)(ge(h),[h]),H=(0,a.useCallback)(fe(L,F),[L,F]),[q,Q]=(0,a.useState)(j),[Y,J]=(e=>{let{setData:t,data:n}=e;const[r,o]=(0,a.useState)(t?void 0:n),l=(0,a.useCallback)((e=>{t?t(e):o(e)}),[t]);return(0,a.useEffect)((()=>{t||o(n)}),[n]),[t?n:r,l]})({setData:n,data:t}),X=document.querySelector(":root"),Z=getComputedStyle(document.documentElement).getPropertyValue("--jer-expand-transition-time");1e3*parseFloat(Z)!==y&&(null==X||X.style.setProperty("--jer-expand-transition-time",y/1e3+"s")),(0,a.useEffect)((()=>{const e=setTimeout((()=>Q(j)),C);return()=>clearTimeout(e)}),[j,C]);const ee={key:o,path:[],level:0,index:0,value:Y,size:"object"==typeof Y&&null!==Y?Object.keys(Y).length:1,parentData:null,fullData:Y},te=(e,t)=>g(void 0,void 0,void 0,(function*(){const n=yield e(t);if(!0===n||void 0===n)return void J(t.newData);const r=ve(n)?n:["error",n],[a,o]=r;if("error"===a)return J(t.currentData),!1===o?H("ERROR_UPDATE",ee):String(o);J(o)})),ne=(0,a.useMemo)((()=>ge(b)),[b]),re=(0,a.useMemo)((()=>ge(_)),[_]),ae=(0,a.useMemo)((()=>ge(w)),[w]),oe=(0,a.useMemo)((()=>ge(E)),[E]),ie=(0,a.useMemo)((()=>ye(x)),[x]),ue={name:o,nodeData:ee,onEdit:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:a,newValue:o}=he(Y,t,e,"update");if(a!==o)return yield te(i,{currentData:n,newData:r,currentValue:a,newValue:o,name:t.slice(-1)[0],path:t})})),onDelete:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:a,newValue:o}=he(Y,t,e,"delete");return yield te(u,{currentData:n,newData:r,currentValue:a,newValue:o,name:t.slice(-1)[0],path:t})})),onAdd:(e,t)=>g(void 0,void 0,void 0,(function*(){const{currentData:n,newData:r,currentValue:a,newValue:o}=he(Y,t,e,"add");return yield te(s,{currentData:n,newData:r,currentValue:a,newValue:o,name:t.slice(-1)[0],path:t})})),onChange:c,onError:d,showErrorMessages:f,onMove:(e,t,n)=>g(void 0,void 0,void 0,(function*(){if(null===e)return;const{currentData:r,newData:a,currentValue:o}=he(Y,e,"","delete"),l=e.slice(-1)[0],u=t.slice(0,-1),s=t.slice(-1)[0];let c="number"==typeof s?"above"===n?s:s+1:"number"==typeof l?`arr_${l}`:l;e.slice(0,-1).join(".")===t.slice(0,-1).join(".")&&"number"==typeof l&&"number"==typeof c&&l(0,r.jsx)(E,{theme:e.theme,icons:e.icons,children:(0,r.jsx)(ne,{children:(0,r.jsx)(pe,Object.assign({},e))})}),he=function(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(0===t.length)return{currentData:e,newData:n,currentValue:e,newValue:n};const o=Object.assign({remove:"delete"===r},a),l="add"!==r?p(e,t):void 0;return{currentData:e,newData:s(e,t,n,o),currentValue:l,newValue:"delete"!==r?n:void 0}},ge=e=>"boolean"==typeof e?()=>e:"number"==typeof e?t=>{let{level:n}=t;return n>=e}:e,ye=e=>{if(void 0!==e)return"value"===e?Z:"key"===e?ee:"all"===e?(e,t)=>Z(e,t)||ee(e,t):e},ve=e=>Array.isArray(e)&&2===e.length&&["error","value"].includes(e[0])},497:(e,t,n)=>{"use strict";var r=n(218);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,l){if(l!==r){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},173:(e,t,n)=>{e.exports=n(497)()},218:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},730:(e,t,n)=>{"use strict";var r=n(43),a=n(853);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n