From 07b8a863761cefbaadcf21192a1414f660f0fd30 Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 20 Apr 2024 23:29:49 +0700 Subject: [PATCH] fix --- app/srv/core/main.js | 6 +++--- app/web/src/nova/vi/render/script/eval-script.tsx | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/srv/core/main.js b/app/srv/core/main.js index 39fed956..39a815a3 100644 --- a/app/srv/core/main.js +++ b/app/srv/core/main.js @@ -95,13 +95,13 @@ Error generating stack: `+o.message+` ${uy(e,t.mode)} ${Kg(e,t.mode)} ${dy(e,t.mode)} - `,(t?.hover||t?.active)&&fy({item:e,hover:t?.hover,active:t?.active}),Gg(e,t.mode)])}catch(n){console.log(n)}return cx([])};var hy=A(Z()),So=(e,t,n,r,i)=>{let o=t.item,l;o.component?.style&&(l={style:o.component.style,className:Ef(o.component.style,{mode:e.mode})});let s={className:Ef(o,{mode:e.mode}),inherit:l},u={},a=t.item.childs,c;return t.item.type==="text"?(c=null,s.dangerouslySetInnerHTML={__html:t.item.html||""}):c=Array.isArray(a)&&a?.map(d=>{if(!d)return null;let{id:f}=d,p=n?e.layout?.meta[f]:e.meta[f];return p?(0,hy.jsx)(qt,{meta:p,is_layout:n,passprop:{...r},depth:i+1},f):null}),s.children=c,t.item.adv?.html?(delete s.children,s.dangerouslySetInnerHTML={__html:t.item.adv?.html}):t.item.adv?.js&&!t.item.adv.js.includes("children")&&(delete s.children,delete s.dangerouslySetInnerHTML),{props:s,text_props:u}};var My=A(ge());var Ay=A(Rf());var Yr={NORMAL:0,WILDCARD:1,PLACEHOLDER:2};function Us(e={}){let t={options:e,rootNode:by(),staticRoutesMap:{}},n=r=>e.strictTrailingSlash?r:r.replace(/\/$/,"")||"/";if(e.routes)for(let r in e.routes)Ey(t,n(r),e.routes[r]);return{ctx:t,lookup:r=>i2(t,n(r)),insert:(r,i)=>Ey(t,n(r),i),remove:r=>o2(t,n(r))}}function i2(e,t){let n=e.staticRoutesMap[t];if(n)return n.data;let r=t.split("/"),i={},o=!1,l=null,s=e.rootNode,u=null;for(let a=0;a{},db:null,api:null,init_local_effect:{}},page:{history:{id:"",show:!1},root_id:"root",cur:a2,doc:null,list:{},building:!1,meta:{},entry:[],tree:[],render:()=>{}},comp:{doc:null,item:null,loaded:{},list:{},group:{}},code:{},global_prop:[],ui:{comp_editable:localStorage.getItem("prasi-comp-editable")==="yes",zoom:localStorage.zoom||"100%",side:{prop:!0},layout:{left:parseInt(localStorage.getItem("prasi-layout-left")||"250"),right:parseInt(localStorage.getItem("prasi-layout-right")||"250")},prevent_indent_hook:!1,syncing:!1,tree:{item_loading:[],search:"",search_ref:null,search_mode:{Name:!0,JS:!1,HTML:!1,CSS:!1},rename_id:"",open:{}},popup:{file:{enabled:!1,open:!1,picker:{value:"",on_pick:!1,multi:!1},path:"/",expanded:JSON.parse(localStorage.getItem("panel-file-expanded")||"{}"),entry:{},selected:new Set,action:null,file_renaming:"",file_ctx_menu_event:null,tree:[],tree_renaming:"",tree_ctx_path:"",tree_ctx_menu_event:null,preview:!0,upload:{started:!1,progress:{}}},code:{init:!1,open:!1,name:"site",log:"",loading:!1,startup_status:"init",error:!1,show_log:!1,list:{}},page:{open:null,form:null},script:{open:!1,mode:"js",lastMode:"js",type:"item",prop_kind:"",prop_name:"",on_close:()=>{},typings:{status:"ok",err_msg:""},wb_render:()=>{}},site:null,site_form:null,comp:{preview_id:"",open:null,import:!1},comp_group:null,api:{open:!1}}}};var Bs=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var ar=A(ge());var at=window;var u2=pf("prasi-cache","prasi-cache-store"),Ro={timeout:null,store:u2},$s=(e,t)=>{let n=[...Ry(t,"navigate(",")"),...Ry(t,"href = ",";")],r=e.page.cur.id;e.page.navs[r]||(e.page.navs[r]=new Set);for(let i of n)e.page.navs[r].add(i);clearTimeout(Ro.timeout),Ro.timeout=setTimeout(()=>{e.on_nav_loaded&&e.on_nav_loaded({urls:Array.from(e.page.navs[r])})},100)},Ry=(e,t,n)=>{let r=0,i=0,o=[];for(;;){let l=e.indexOf(t,r);if(i=r,l>=0){let s=e[l+t.length];if(s==='"'||s==="'"||s==="`"){let u=e.indexOf(`${s}${n}`,l+t.length+1),a=e.substring(l+t.length+1,u);r=u+2+n.length,o.push(a)}}if(i===r)break}return o};var Co=A(ge());var Ty=A(Sf()),sr=A(ge());var Cf=A(Z()),Ny=(e,t,n,r)=>i=>{let[o,l]=(0,sr.useState)({}),s=i.internal_key;n.item.script||(n.item.script={});let u=n.item.script;s&&(n.item.script_keyed||(n.item.script_keyed={}),n.item.script_keyed[s]||(n.item.script_keyed[s]={}),u=n.item.script_keyed[s]),u.passprop||(u.passprop={});let a={};if(u.passprop){let f=!1;for(let[p,g]of Object.entries(i))["children","key"].includes(p)||(f=!0,a[p]=g,u.passprop[p]={end:0,start:0,value:g})}let c={...r,...a};if(!Array.isArray(i.children)&&(0,sr.isValidElement)(i.children)&&typeof i.children=="object"){let f=(0,Ty.default)(i.children,"props.meta.item.component.props.child.content.childs");if(Array.isArray(f)){let p=!0;for(let g of f)!(0,sr.isValidElement)(g)&&typeof g=="object"||(p=!1);if(p)return f.map(g=>{let _=e.meta[g.id];if(_||(e.meta[g.id]={item:g},_=e.meta[g.id]),_){if(Object.keys(_.item).length<=3&&_.mitem){let x={..._.item},h=_.mitem.toJSON();_.item={...h,...x}}return(0,Cf.jsx)(qt,{is_layout:t,meta:_,passprop:c,parent_key:i.internal_key},g.id)}return null})}}if(!Array.isArray(i.children)&&!(0,sr.isValidElement)(i.children)&&typeof i.children=="object"){let f=i.children.id;if(f){let p=e.meta[f];if(!p){e.meta[f]={item:i.children},p=e.meta[f];let g=p.item.component?.id;g&&e.comp.load(g).then(_=>{if(_){for(let[h,m]of Object.entries(_)){let y=p.item;y[h]||(y[h]=m)}let x=p.item.component?.props;for(let[h,m]of Object.entries(_.component?.props||{}))x[h]||(x[h]=m);l({})}})}return(0,Cf.jsx)(qt,{is_layout:t,meta:p,passprop:c,parent_key:i.internal_key})}}return Tf(i,c,s?{parent_key:s}:void 0)},Tf=(e,t,n)=>{let r={};if(Array.isArray(e)?r.children=e:r=e,Array.isArray(r.children)){let i=[];for(let o of r.children)i.push(Cy(o,r,t,n));return i}return Cy(r.children,r,t,n)},Cy=(e,t,n,r)=>{if((0,sr.isValidElement)(e)){let i={...t};return delete i.children,{...e,props:{...e.props,...r,passprop:{...n,...i}}}}return e};var ei={},Iy=(e,t,n)=>r=>{let i=["localhost","prasi.avolut.com"].includes(location.hostname)&&location.pathname.startsWith("/ed/"),o=n.item.id,{children:l,parent_key:s}=r,u=e.script?.init_local_effect,a=t?e.layout?.meta:e.meta,d=(0,Co.useRef)(ei[o]?ei[o]:r.value).current;return d.render=n.render,Hs(e,n,n.script?.scope,s),r.hook&&r.hook(d),(0,Co.useEffect)(()=>{if(n.parent?.instance_id&&a){let p=a[n.parent?.instance_id];if(p&&p.instances){for(let[g,_]of Object.entries(p.instances[n.parent.instance_id]))if(_===n.item.id){o=g;break}}}return!u[o]&&(typeof u=="object"&&(u[o]=!0),(async()=>r.effect&&(await r.effect(d),i&&(ei[o]=d)))()),()=>{}},[...r.deps||[],location.pathname]),(0,Co.useEffect)(()=>{i&&ei[o]===null&&(async()=>r.effect&&(await r.effect(d),i&&(ei[o]=d)))()},[ei[o]]),Tf(l,{...n.script?.scope,[r.name]:d})};var Nf=A(Z()),Oy=(e,t,n,r,i,o)=>{let l=So(e,t,n,r,i);e.visit&&e.visit(t,l),t.script?t.script.scope=r:t.script={scope:r,result:null,Local:Iy(e,n,t),PassProp:Ny(e,n,t,r)};let s=t.script,u=window.exports,a={useEffect:ar.useEffect,children:l.props.children,props:l.props,Local:s?.Local,db:e.site.db,api:e.site.api,PassProp:s?.PassProp,ErrorBox:Nt,newElement:()=>{},render:f=>{let p=f;if((0,ar.isValidElement)(f)&&f.props.children){let g=x=>{let h=!1,m=[];if((0,ar.isValidElement)(x)){if(x.type===t.script?.PassProp)return{should_replace:!0,el:{...x,props:{...x.props,internal_key:x.key}}};if(Array.isArray(x.props?.children))for(let y of x.props?.children)if(Array.isArray(y)){let v=[],S=!1;for(let R of y){let k=g(R);k.should_replace?(v.push(k.el),S=!0):v.push(R)}S?(h=!0,m.push(v)):m.push(y)}else typeof y=="object"?y.type===t.script?.PassProp&&(h=!0,m.push({...y,props:{...y.props,internal_key:y.props.key}})):m.push(y)}return{should_replace:h,el:{...x,props:{...x.props,children:m}}}},_=g(f);_.should_replace&&(p=_.el)}s&&(s.result=(0,Nf.jsx)(ar.Suspense,{children:p}))},params,...Bs(e),...u,...r,_meta:e.meta,_item:t.item,_syncm:typeof syncronize<"u"?syncronize:void 0};if(typeof r=="object"){for(let[f,p]of Object.entries(r))if(typeof p=="object"&&p&&p._jsx){let g=p;a[f]=(0,Nf.jsx)(c2,{fn:g.fn,passprop:{...r},meta:t})}}!at.isEditor&&t.item.adv?.js&&$s(e,t.item.adv.js);let c=t.item.adv?.jsBuilt||"",d=Of(c,If)||"";try{new Function(...Object.keys(a),`// ${t.item.name}: ${t.item.id} + `,(t?.hover||t?.active)&&fy({item:e,hover:t?.hover,active:t?.active}),Gg(e,t.mode)])}catch(n){console.log(n)}return cx([])};var hy=A(Z()),So=(e,t,n,r,i)=>{let o=t.item,l;o.component?.style&&(l={style:o.component.style,className:Ef(o.component.style,{mode:e.mode})});let s={className:Ef(o,{mode:e.mode}),inherit:l},u={},a=t.item.childs,c;return t.item.type==="text"?(c=null,s.dangerouslySetInnerHTML={__html:t.item.html||""}):c=Array.isArray(a)&&a?.map(d=>{if(!d)return null;let{id:f}=d,p=n?e.layout?.meta[f]:e.meta[f];return p?(0,hy.jsx)(qt,{meta:p,is_layout:n,passprop:{...r},depth:i+1},f):null}),s.children=c,t.item.adv?.html?(delete s.children,s.dangerouslySetInnerHTML={__html:t.item.adv?.html}):t.item.adv?.js&&!t.item.adv.js.includes("children")&&(delete s.children,delete s.dangerouslySetInnerHTML),{props:s,text_props:u}};var My=A(ge());var Ay=A(Rf());var Yr={NORMAL:0,WILDCARD:1,PLACEHOLDER:2};function Us(e={}){let t={options:e,rootNode:by(),staticRoutesMap:{}},n=r=>e.strictTrailingSlash?r:r.replace(/\/$/,"")||"/";if(e.routes)for(let r in e.routes)Ey(t,n(r),e.routes[r]);return{ctx:t,lookup:r=>i2(t,n(r)),insert:(r,i)=>Ey(t,n(r),i),remove:r=>o2(t,n(r))}}function i2(e,t){let n=e.staticRoutesMap[t];if(n)return n.data;let r=t.split("/"),i={},o=!1,l=null,s=e.rootNode,u=null;for(let a=0;a{},db:null,api:null,init_local_effect:{}},page:{history:{id:"",show:!1},root_id:"root",cur:a2,doc:null,list:{},building:!1,meta:{},entry:[],tree:[],render:()=>{}},comp:{doc:null,item:null,loaded:{},list:{},group:{}},code:{},global_prop:[],ui:{comp_editable:localStorage.getItem("prasi-comp-editable")==="yes",zoom:localStorage.zoom||"100%",side:{prop:!0},layout:{left:parseInt(localStorage.getItem("prasi-layout-left")||"250"),right:parseInt(localStorage.getItem("prasi-layout-right")||"250")},prevent_indent_hook:!1,syncing:!1,tree:{item_loading:[],search:"",search_ref:null,search_mode:{Name:!0,JS:!1,HTML:!1,CSS:!1},rename_id:"",open:{}},popup:{file:{enabled:!1,open:!1,picker:{value:"",on_pick:!1,multi:!1},path:"/",expanded:JSON.parse(localStorage.getItem("panel-file-expanded")||"{}"),entry:{},selected:new Set,action:null,file_renaming:"",file_ctx_menu_event:null,tree:[],tree_renaming:"",tree_ctx_path:"",tree_ctx_menu_event:null,preview:!0,upload:{started:!1,progress:{}}},code:{init:!1,open:!1,name:"site",log:"",loading:!1,startup_status:"init",error:!1,show_log:!1,list:{}},page:{open:null,form:null},script:{open:!1,mode:"js",lastMode:"js",type:"item",prop_kind:"",prop_name:"",on_close:()=>{},typings:{status:"ok",err_msg:""},wb_render:()=>{}},site:null,site_form:null,comp:{preview_id:"",open:null,import:!1},comp_group:null,api:{open:!1}}}};var Bs=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var ar=A(ge());var at=window;var u2=pf("prasi-cache","prasi-cache-store"),Ro={timeout:null,store:u2},$s=(e,t)=>{let n=[...Ry(t,"navigate(",")"),...Ry(t,"href = ",";")],r=e.page.cur.id;e.page.navs[r]||(e.page.navs[r]=new Set);for(let i of n)e.page.navs[r].add(i);clearTimeout(Ro.timeout),Ro.timeout=setTimeout(()=>{e.on_nav_loaded&&e.on_nav_loaded({urls:Array.from(e.page.navs[r])})},100)},Ry=(e,t,n)=>{let r=0,i=0,o=[];for(;;){let l=e.indexOf(t,r);if(i=r,l>=0){let s=e[l+t.length];if(s==='"'||s==="'"||s==="`"){let u=e.indexOf(`${s}${n}`,l+t.length+1),a=e.substring(l+t.length+1,u);r=u+2+n.length,o.push(a)}}if(i===r)break}return o};var Co=A(ge());var Ty=A(Sf()),sr=A(ge());var Cf=A(Z()),Ny=(e,t,n,r)=>i=>{let[o,l]=(0,sr.useState)({}),s=i.internal_key;n.item.script||(n.item.script={});let u=n.item.script;s&&(n.item.script_keyed||(n.item.script_keyed={}),n.item.script_keyed[s]||(n.item.script_keyed[s]={}),u=n.item.script_keyed[s]),u.passprop||(u.passprop={});let a={};if(u.passprop){let f=!1;for(let[p,g]of Object.entries(i))["children","key"].includes(p)||(f=!0,a[p]=g,u.passprop[p]={end:0,start:0,value:g})}let c={...r,...a};if(!Array.isArray(i.children)&&(0,sr.isValidElement)(i.children)&&typeof i.children=="object"){let f=(0,Ty.default)(i.children,"props.meta.item.component.props.child.content.childs");if(Array.isArray(f)){let p=!0;for(let g of f)!(0,sr.isValidElement)(g)&&typeof g=="object"||(p=!1);if(p)return f.map(g=>{let _=e.meta[g.id];if(_||(e.meta[g.id]={item:g},_=e.meta[g.id]),_){if(Object.keys(_.item).length<=3&&_.mitem){let x={..._.item},h=_.mitem.toJSON();_.item={...h,...x}}return(0,Cf.jsx)(qt,{is_layout:t,meta:_,passprop:c,parent_key:i.internal_key},g.id)}return null})}}if(!Array.isArray(i.children)&&!(0,sr.isValidElement)(i.children)&&typeof i.children=="object"){let f=i.children.id;if(f){let p=e.meta[f];if(!p){e.meta[f]={item:i.children},p=e.meta[f];let g=p.item.component?.id;g&&e.comp.load(g).then(_=>{if(_){for(let[h,m]of Object.entries(_)){let y=p.item;y[h]||(y[h]=m)}let x=p.item.component?.props;for(let[h,m]of Object.entries(_.component?.props||{}))x[h]||(x[h]=m);l({})}})}return(0,Cf.jsx)(qt,{is_layout:t,meta:p,passprop:c,parent_key:i.internal_key})}}return Tf(i,c,s?{parent_key:s}:void 0)},Tf=(e,t,n)=>{let r={};if(Array.isArray(e)?r.children=e:r=e,Array.isArray(r.children)){let i=[];for(let o of r.children)i.push(Cy(o,r,t,n));return i}return Cy(r.children,r,t,n)},Cy=(e,t,n,r)=>{if((0,sr.isValidElement)(e)){let i={...t};return delete i.children,{...e,props:{...e.props,...r,passprop:{...n,...i}}}}return e};var ei={},Iy=(e,t,n)=>r=>{let i=["localhost","prasi.avolut.com"].includes(location.hostname)&&location.pathname.startsWith("/ed/"),o=n.item.id,{children:l,parent_key:s}=r,u=e.script?.init_local_effect,a=t?e.layout?.meta:e.meta,d=(0,Co.useRef)(ei[o]?ei[o]:r.value).current;return d.render=n.render,Hs(e,n,n.script?.scope,s),r.hook&&r.hook(d),(0,Co.useEffect)(()=>{if(n.parent?.instance_id&&a){let p=a[n.parent?.instance_id];if(p&&p.instances){for(let[g,_]of Object.entries(p.instances[n.parent.instance_id]))if(_===n.item.id){o=g;break}}}return!u[o]&&(typeof u=="object"&&(u[o]=!0),(async()=>r.effect&&(await r.effect(d),i&&(ei[o]=d)))()),()=>{}},[...r.deps||[],location.pathname]),(0,Co.useEffect)(()=>{i&&ei[o]===null&&(async()=>r.effect&&(await r.effect(d),i&&(ei[o]=d)))()},[ei[o]]),Tf(l,{...n.script?.scope,[r.name]:d})};var Nf=A(Z()),Oy=(e,t,n,r,i,o)=>{let l=So(e,t,n,r,i);e.visit&&e.visit(t,l),t.script?t.script.scope=r:t.script={scope:r,result:null,Local:Iy(e,n,t),PassProp:Ny(e,n,t,r)};let s=t.script,u=window.exports,a={useEffect:ar.useEffect,children:l.props.children,props:l.props,Local:s?.Local,db:e.site.db,api:e.site.api,PassProp:s?.PassProp,ErrorBox:Nt,newElement:()=>{},render:f=>{let p=f;if((0,ar.isValidElement)(f)&&f.props.children){let g=x=>{let h=!1,m=[];if((0,ar.isValidElement)(x)){if(x.type===t.script?.PassProp)return{should_replace:!0,el:{...x,props:{...x.props,internal_key:x.key}}};if(Array.isArray(x.props?.children))for(let y of x.props?.children)if(Array.isArray(y)){let v=[],S=!1;for(let R of y){let k=g(R);k.should_replace?(v.push(k.el),S=!0):v.push(R)}S?(h=!0,m.push(v)):m.push(y)}else typeof y=="object"?y.type===t.script?.PassProp&&(h=!0,m.push({...y,props:{...y.props,internal_key:y.props.key}})):m.push(y)}return{should_replace:h,el:{...x,props:{...x.props,children:m}}}},_=g(f);_.should_replace&&(p=_.el)}s&&(s.result=(0,Nf.jsx)(ar.Suspense,{children:p}))},params,...Bs(e),...u,...r,_meta:e.meta,_item:t.item,_syncm:typeof syncronize<"u"?syncronize:void 0};if(typeof r=="object"){for(let[f,p]of Object.entries(r))if(typeof p=="object"&&p&&p._jsx){let g=p;a[f]=(0,Nf.jsx)(c2,{fn:g.fn,passprop:{...r},meta:t})}}!at.isEditor&&t.item.adv?.js&&$s(e,t.item.adv.js);let c=t.item.adv?.jsBuilt||"",d=Of(c,If)||"";try{new Function(...Object.keys(a),"___js",`// ${t.item.name}: ${t.item.id} try { ${d} } catch(e) { - console.warn("Error at item ${t.item.name}:", \`${t.item.adv?.js}\`); + console.warn("Error at item ${t.item.name}:", ___js); } - `)(...Object.values(a))}catch(f){console.warn(`Error at item ${t.item.name}:`,t.item.adv?.js),console.error(f)}Hs(e,t,r,o)},c2=({fn:e,meta:t,passprop:n})=>e({passprop:n,meta:t}),If={"stroke-width":"strokeWidth","fill-rule":"fillRule","clip-rule":"clipRule","stroke-linejoin":"strokeLinejoin","stroke-linecap":"strokeLinecap","clip-path":"clipPath"},Of=(e,t)=>{let n=e;for(let[r,i]of Object.entries(t))n=n.replaceAll(r,i);return n};var Ly=A(Z());var Py=(e,t,n,r,i,o)=>{if(t.item.component?.id){let l=t.item.script;if(o?(t.item.script_keyed||(t.item.script_keyed={}),t.item.script_keyed[o]||(t.item.script_keyed[o]={}),l=t.item.script_keyed[o]):(t.item.script||(t.item.script={}),l=t.item.script),!l)return;let u={...window.exports,db:e.site.db,api:e.site.api,...Bs(e),...r,params};l.props={};let a=new Set;if(t.item.component.props){let c={};for(let[d,f]of Object.entries(t.item.component.props))try{if(f.meta?.type==="content-element"){let h={_jsx:!0,fn:m=>{let y=f.content?.id;if(y){let v=n?e.layout?.meta[y]:e.meta[y];if(!v)return null;let S=t.instances;if(!m.meta.item.originalId||!S||!S[t.item.id])return null;let k=m.meta.item.originalId;if(v.mitem&&(f.jsxCalledBy&&(!f.jsxCalledBy.includes(k)||f.jsxCalledBy.length!==2)||!f.jsxCalledBy)){let b=t.mitem?.get("component")?.get("props")?.get(d);if(b){let I=b.get("jsxCalledBy");!I||typeof I!="object"?b.set("jsxCalledBy",[t.item.id,k]):Array.isArray(I)&&(!I.includes(k)||I.length!==2||I[0]!==t.item.id||I[1]!==k)&&b.set("jsxCalledBy",[t.item.id,k])}}return(0,Ly.jsx)(qt,{meta:v,passprop:m.passprop,is_layout:n,depth:i+1})}return null}};u[d]=h,r&&(r[d]=h);continue}if(f.value&&$s(e,f.value),!f.valueBuilt&&f.value&&t.mitem){let h=t.mitem?.get("component")?.get("props")?.get(d);if(h){f2(h,f.value);return}}let p=f.valueBuilt||"",g=Of(p,If)||"",_=new Function(...Object.keys(u),`// [${t.item.name}] ${d}: ${t.item.id} + `)(...Object.values(a),t.item.adv?.js)}catch(f){console.warn(`Error at item ${t.item.name}:`,t.item.adv?.js),console.error(f)}Hs(e,t,r,o)},c2=({fn:e,meta:t,passprop:n})=>e({passprop:n,meta:t}),If={"stroke-width":"strokeWidth","fill-rule":"fillRule","clip-rule":"clipRule","stroke-linejoin":"strokeLinejoin","stroke-linecap":"strokeLinecap","clip-path":"clipPath"},Of=(e,t)=>{let n=e;for(let[r,i]of Object.entries(t))n=n.replaceAll(r,i);return n};var Ly=A(Z());var Py=(e,t,n,r,i,o)=>{if(t.item.component?.id){let l=t.item.script;if(o?(t.item.script_keyed||(t.item.script_keyed={}),t.item.script_keyed[o]||(t.item.script_keyed[o]={}),l=t.item.script_keyed[o]):(t.item.script||(t.item.script={}),l=t.item.script),!l)return;let u={...window.exports,db:e.site.db,api:e.site.api,...Bs(e),...r,params};l.props={};let a=new Set;if(t.item.component.props){let c={};for(let[d,f]of Object.entries(t.item.component.props))try{if(f.meta?.type==="content-element"){let h={_jsx:!0,fn:m=>{let y=f.content?.id;if(y){let v=n?e.layout?.meta[y]:e.meta[y];if(!v)return null;let S=t.instances;if(!m.meta.item.originalId||!S||!S[t.item.id])return null;let k=m.meta.item.originalId;if(v.mitem&&(f.jsxCalledBy&&(!f.jsxCalledBy.includes(k)||f.jsxCalledBy.length!==2)||!f.jsxCalledBy)){let b=t.mitem?.get("component")?.get("props")?.get(d);if(b){let I=b.get("jsxCalledBy");!I||typeof I!="object"?b.set("jsxCalledBy",[t.item.id,k]):Array.isArray(I)&&(!I.includes(k)||I.length!==2||I[0]!==t.item.id||I[1]!==k)&&b.set("jsxCalledBy",[t.item.id,k])}}return(0,Ly.jsx)(qt,{meta:v,passprop:m.passprop,is_layout:n,depth:i+1})}return null}};u[d]=h,r&&(r[d]=h);continue}if(f.value&&$s(e,f.value),!f.valueBuilt&&f.value&&t.mitem){let h=t.mitem?.get("component")?.get("props")?.get(d);if(h){f2(h,f.value);return}}let p=f.valueBuilt||"",g=Of(p,If)||"",_=new Function(...Object.keys(u),`// [${t.item.name}] ${d}: ${t.item.id} return ${g} `);l.props[d]={value:g};let x=_(...Object.values(u));typeof x=="function"&&(l.props[d].fn=x,x=(...h)=>{if(l)return l.props?.[d].fn(...h)}),u[d]=x,c[d]=x,r&&(r[d]=x)}catch{a.add(d)}if(location.pathname.startsWith("/ed/")&&Jr.item_id&&t.item.id===Jr.item_id){Jr.scope={};for(let[d,f]of Object.entries(r))Jr.scope[d]=f;Jr.scope.self_props=c}}}},ut={timeout:null,set:new WeakSet,map:{},src:{}},f2=(e,t)=>{if(!ut.set.has(e)){ut.set.add(e);let n=(0,Ay.createId)();ut.map[n]={mprop:e},ut.src[n]=t}clearTimeout(ut.timeout),ut.timeout=setTimeout(async()=>{let n=await _api.code_build(ut.src),r=null;for(let[i,o]of Object.entries(n)){let l=ut.map[i].mprop;if(!r&&l.doc){r=l.doc;break}}r&&(r.transact(()=>{for(let[i,o]of Object.entries(n))ut.map[i].mprop.set("valueBuilt",o)}),ut.set=new WeakSet,ut.map={},ut.src={})},300)},Hs=(e,t,n,r)=>{let i=r?t.item.script_keyed?.[r]:t.item.script;if(i&&i.props){let o={...n,api:e.site.api,db:e.site.db};for(let[l,s]of Object.entries(i.props))if(s.fn){let u=new Function(...Object.keys(o),`// [${t.item.name}] ${l}: ${t.item.id} return ${s.value||""} diff --git a/app/web/src/nova/vi/render/script/eval-script.tsx b/app/web/src/nova/vi/render/script/eval-script.tsx index dcd1356d..c90e4c35 100644 --- a/app/web/src/nova/vi/render/script/eval-script.tsx +++ b/app/web/src/nova/vi/render/script/eval-script.tsx @@ -163,15 +163,16 @@ export const viEvalScript = ( try { const fn = new Function( ...Object.keys(arg), + "___js", `// ${meta.item.name}: ${meta.item.id} try { ${src} } catch(e) { - console.warn("Error at item ${meta.item.name}:", \`${meta.item.adv?.js}\`); + console.warn("Error at item ${meta.item.name}:", ___js); } ` ); - fn(...Object.values(arg)); + fn(...Object.values(arg), meta.item.adv?.js); } catch (e) { console.warn(`Error at item ${meta.item.name}:`, meta.item.adv?.js); console.error(e);