@vtj/renderer 0.9.0-alpha.1 → 0.9.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.9.0-alpha.1
5
+ * @version 0.9.0-alpha.3
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const C="0.9.0-alpha.1";var y=(s=>(s.Runtime="Runtime",s.Design="Design",s.Raw="Raw",s.VNode="VNode",s))(y||{});const L=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ne=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],re=["vIf","vShow","vModel","vFor","vBind"],oe={String,Number,Boolean,Array,Object,Function,Date},D="VtjPage",q="VtjHomepage";function x(s,e){return s.map(t=>c.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function H(s){return/\.css$/.test(s)}function N(s){return/\.js$/.test(s)}function ie(s){return/\.json$/.test(s)}function Ue(s){return s.map(e=>`<script src="${c.url.append(e,{v:C})}"><\/script>`).join("")}function Be(s=[]){return s.map(e=>`<link rel="stylesheet" href="${c.url.append(e,{v:C})}" />`).join("")}function ae(s,e=!1){return e&&s.endsWith(".prod.js")?s.replace(".prod.js",".js"):s}function ce(s,e,t=!1){const n=s.filter(d=>!!d.enabled),r=[],o=[],a=[],i=[],l={},u={},m=[],p={};return n.forEach(({urls:d,assetsUrl:v,library:h,assetsLibrary:g,localeLibrary:j})=>{d?.forEach(_=>{N(_)&&r.push(ae(_,t)),H(_)&&o.push(_)}),h&&(i.push(h),l[h]=x(d||[],e),j&&(u[h]=j)),v&&a.push(v),g&&m.push(g),h&&g&&(p[g]=h)}),{scripts:x(r,e),css:x(o,e),materials:x(a,e),libraryExports:i,materialExports:c.dedupArray(m),materialMapLibrary:p,libraryMap:l,libraryLocaleMap:u}}function le(s,e){const{name:t,parent:n,alias:r}=s;return n?e[n]?.[r||t]:e[r||t]}function V(s){return c.isString(s)?s:JSON.stringify(s)}function z(s,e,t){const n=s.CSSStyleSheet;if(n.prototype.replaceSync){const r=new n;r.id=e,r.replaceSync(t);const o=s.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(l=>l.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=s.document;let o=r.getElementById(e);o?o.innerHTML=t:(o=r.createElement("style"),o.id=e,o.innerHTML=t,r.head.appendChild(o))}}async function ue(s,e){const t=await window.fetch(e).then(n=>n.text()).catch(()=>"");t&&z(window,s,t)}function de(s,e=window){const t=e.document,n=e.document.head;for(const r of s)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,n.appendChild(a)}}async function pe(s,e,t=window){const n=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of s){const u=n.createElement("script");u.src=l,u.onload=()=>{o=t[e],o?a(o.default||o):i(null)},u.onerror=m=>{i(m)},r.appendChild(u)}})}function fe(s){return c.isFunction(s)||c.isFunction(s?.install)}function R(s,e,t=!1,n=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(s.value||"").trim();o=o.replace(/this(\W|$)/g,(i,l)=>`__self${l}`),o=r.join(`
7
+ */const C="0.9.0-alpha.3";var y=(s=>(s.Runtime="Runtime",s.Design="Design",s.Raw="Raw",s.VNode="VNode",s))(y||{});const L=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ne=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],re=["vIf","vShow","vModel","vFor","vBind"],oe={String,Number,Boolean,Array,Object,Function,Date},D="VtjPage",q="VtjHomepage";function x(s,e){return s.map(t=>c.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function H(s){return/\.css$/.test(s)}function N(s){return/\.js$/.test(s)}function ie(s){return/\.json$/.test(s)}function Ue(s){return s.map(e=>`<script src="${c.url.append(e,{v:C})}"><\/script>`).join("")}function Be(s=[]){return s.map(e=>`<link rel="stylesheet" href="${c.url.append(e,{v:C})}" />`).join("")}function ae(s,e=!1){return e&&s.endsWith(".prod.js")?s.replace(".prod.js",".js"):s}function ce(s,e,t=!1){const n=s.filter(d=>!!d.enabled),r=[],o=[],a=[],i=[],l={},u={},m=[],p={};return n.forEach(({urls:d,assetsUrl:v,library:h,assetsLibrary:g,localeLibrary:j})=>{d?.forEach(_=>{N(_)&&r.push(ae(_,t)),H(_)&&o.push(_)}),h&&(i.push(h),l[h]=x(d||[],e),j&&(u[h]=j)),v&&a.push(v),g&&m.push(g),h&&g&&(p[g]=h)}),{scripts:x(r,e),css:x(o,e),materials:x(a,e),libraryExports:i,materialExports:c.dedupArray(m),materialMapLibrary:p,libraryMap:l,libraryLocaleMap:u}}function le(s,e){const{name:t,parent:n,alias:r}=s;return n?e[n]?.[r||t]:e[r||t]}function V(s){return c.isString(s)?s:JSON.stringify(s)}function z(s,e,t){const n=s.CSSStyleSheet;if(n.prototype.replaceSync){const r=new n;r.id=e,r.replaceSync(t);const o=s.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(l=>l.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=s.document;let o=r.getElementById(e);o?o.innerHTML=t:(o=r.createElement("style"),o.id=e,o.innerHTML=t,r.head.appendChild(o))}}async function ue(s,e){const t=await window.fetch(e).then(n=>n.text()).catch(()=>"");t&&z(window,s,t)}function de(s,e=window){const t=e.document,n=e.document.head;for(const r of s)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,n.appendChild(a)}}async function pe(s,e,t=window){const n=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of s){const u=n.createElement("script");u.src=l,u.onload=()=>{o=t[e],o?a(o.default||o):i(null)},u.onerror=m=>{i(m)},r.appendChild(u)}})}function fe(s){return c.isFunction(s)||c.isFunction(s?.install)}function R(s,e,t=!1,n=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(s.value||"").trim();o=o.replace(/this(\W|$)/g,(i,l)=>`__self${l}`),o=r.join(`
8
8
  `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(c.logger.error("parseExpression.error",r,s,e?.__self??e),n)throw r}}function J(s,e,t=!1,n=!1){const r=R(s,e,t,n);if(typeof r!="function"&&(c.logger.error("parseFunction.error","not a function",s,e?.__self??e),n))throw new Error(`"${s.value}" not a function`);return r}function E(s){return s&&s.type==="JSExpression"}function F(s){return typeof s=="object"&&s&&s.type==="JSFunction"}function he(s){return E(s)||F(s)}function Le(s){return he(s)?s.value:JSON.stringify(s)}let P=null;const Je=c.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:s=>s.data?.code===0||!!s.data?.success,failMessage:!0,showError:s=>{k.ElNotification.error({message:s||"未知错误"})},showLoading:()=>{P&&P.close(),P=k.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{P&&(P.close(),P=null)}}});let $;function me(s,e){const{jsonp:t,request:n}=e;if(s.method==="jsonp")return(r={})=>t(s.url,{...s.jsonpOptions,query:r});{const r=s.headers?R(s.headers,{},!0):void 0,o={url:s.url,method:s.method,settings:{...s.settings,headers:r}};return(a,i)=>(delete o.data,n.send(c.merge(o,i||{},{data:a})))}}function ge(s,e){const{metaQuery:t}=e;if(!t)return;const{code:n,queryCode:r}=s;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(n,r,o,a)}}function ve(s=[],e=[],t){const n={};for(const r of s)n[r.id]=me(r,t);for(const r of e)n[r.id]=ge(r,t);return n}async function ye(s=[]){$=await import("mockjs").then(e=>e.default||e),$&&($.setup({timeout:"50-500"}),K(),s.forEach(e=>_e($,e)))}function _e(s,e){if(!e.mock)return;const{url:t,mockTemplate:n}=e;if(t&&n){const r=c.pathToRegexp(`${t}(.*)`),o=c.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=R(n,{},!0);s.mock(r,i=>{const l=c.url.parse(i.url)||{},u=i.body instanceof FormData?c.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:u,params:l,query:m}),s.mock(a(i))})}}function K(){$&&($._mocked={})}const qe={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:"/unauthorized",auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面"},W=Symbol("access");class Ve{options;data=null;mode=y.Raw;constructor(e){this.options=Object.assign({},qe,e),this.loadData()}connect(e){const{mode:t,router:n,request:r}=e;this.mode=t,n&&t===y.Raw&&this.setGuard(n),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:n,session:r,authKey:o}=this.options;this.setData(e),this.data&&(c.storage.save(t,e,{type:"local",prefix:n}),r&&c.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:n,authKey:r}=this.options;this.data=null,c.storage.remove(e,{type:"local",prefix:t}),n&&c.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data}getToken(){return this.data?.token}can(e){const{permissions:t={}}=this.data||{};return typeof e=="function"?e(t):c.toArray(e).every(r=>t[r])}some(e){const{permissions:t={}}=this.data||{};return c.toArray(e).some(r=>t[r])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(W,this)}isAuthPath(e){const{auth:t,isAuth:n}=this.options;if(n)return n(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e||this.mode!==y.Raw)return;const n=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(n):location.href=t?`${e}${n}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const n=e.map(r=>c.unRSA(r,t));this.data=JSON.parse(n.join(""));return}if(typeof e=="string")try{const n=t?c.unRSA(e,t):e;n?this.data=JSON.parse(n):console.warn("RSA解密失败或登录信息缺失")}catch(n){console.warn(n)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,n=c.storage.get(e,{type:"local",prefix:t});this.setData(n)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!c.cookie.get(t):!!this.data}hasRoutePermission(e){if(e.name===D){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,n,r)=>this.guard(t,r))}guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const n=this.options.noPermissionMessage||"无权限访问";return this.showTip(n),t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(n=>e.fullPath.startsWith(n)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401}=this.options;return e.status===t||e.data.code===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;t&&(await c.delay(150),await t(e,{title:"提示",type:"warning"}).catch(n=>n))}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(await this.showUnauthorizedAlert(t),t),async t=>{const n=t.response||t||{};return await this.showUnauthorizedAlert(n),Promise.reject(t)})}}function we(){return f.inject(W,null)}class Se{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:n,attrs:r}=e;this.__mode=t,n&&(this.__id=n.id||null,this.__transform=n.transform||{}),r&&Object.assign(this,r)}setup(e,t=I){const n=t.getCurrentInstance();if(!n)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=n.proxy;const r=n.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__refs={},this.$refs={},this.__contextRefs={},this.context={}})}__proxy(){this.__instance&&L.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){L.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return J({type:n,value:r},this)}else return J(e,this)}__parseExpression(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return R({type:n,value:r},this)}else return R(e,this)}__ref(e=null,t){if(this.__mode!==y.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async n=>{await c.delay(0);let r=n?.$vtjEl||n?.$el||n?._?.vnode?.el||n;if(!r){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(r.nodeType===3&&r.nextSibling&&(r=r.nextSibling),r.__vtj__=e,y.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=n),typeof t=="function")t(n);else if(t){const o=this.$refs[t];if(o&&n!==o){const a=new Set([].concat(o,n));this.$refs[t]=Array.from(a)}else this.$refs[t]=n}return n}}__clone(e={}){const t={...this.context,...e},n={...t,context:t};return n.context.__proto__=this.context,n.__proto__=this,n}}function M(s){const{Vue:e=I,mode:t=y.Runtime,components:n={},libs:r={},apis:o={},loader:a}=s,i=e.computed(()=>s.dsl),l={$components:n,$libs:r,$apis:o},u=new Se({mode:t,dsl:i.value,attrs:l}),m=e.defineComponent({name:i.value.name,props:{...Ke(i.value.props??[],u)},setup(p){u.$props=p,u.props=p,i.value.id&&z(s.window||window,i.value.id,i.value.css||""),u.state=We(e,i.value.state??{},u);const d=Ge(e,i.value.computed??{},u),v=Ye(i.value.methods??{},u),h=Qe(e,i.value.inject,u),g=je(i.value.dataSources||{},u),j={...h,...d,...v,...g};return u.setup(j,e),Xe(e,i.value.watch??[],u),{vtj:u}},emits:ze(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?A(p[0],u,e,a):p.map(d=>A(d,u,e,a))},...Ze(i.value.lifeCycles??{},u)});return{renderer:e.markRaw(m),context:u}}function ze(s=[]){return s.map(e=>c.isString(e)?e:e.name)}function Ke(s=[],e){const t=n=>n?(Array.isArray(n)?n:[n]).map(o=>oe[o]):void 0;return s.map(n=>c.isString(n)?{name:n}:{name:n.name,type:n.type,required:n.required,default:E(n.default)?e.__parseExpression(n.default):n.default}).reduce((n,r)=>(n[r.name]={type:t(r.type),required:r.required,default:r.default},n),{})}function We(s,e,t){return s.reactive(Object.keys(e||{}).reduce((n,r)=>{let o=e[r];return E(o)?o=t.__parseExpression(o):F(o)&&(o=t.__parseFunction(o)),n[r]=o,n},{}))}function Ge(s,e,t){return Object.entries(e??{}).reduce((n,[r,o])=>(n[r]=s.computed(t.__parseFunction(o)),n),{})}function Ye(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}function Qe(s,e=[],t){return e.reduce((n,r)=>{const{name:o,from:a}=r||{};r.default;const i=E(a)?t.__parseExpression(a)||o:a??o,l=E(r.default)?t.__parseExpression(r.default):r.default??null;return n[o]=s.inject(i,l),n},{})}function je(s,e){return Object.keys(s).reduce((t,n)=>{const r=s[n],o=e.$apis[r.ref],a=F(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;return t[n]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l},t},{})}function Xe(s,e=[],t){e.forEach(n=>{s.watch(t.__parseExpression(n.source),t.__parseFunction(n.handler),{deep:n.deep,immediate:n.immediate})})}function Ze(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}let B=[];const Ee=s=>s;async function G(s,e=window){const{urls:t=[],library:n}=s,r=t.filter(i=>N(i));if(r.length===0||!n)return null;const o=t.filter(i=>H(i));return o.length&&de(o,e),await pe(r,n,e).catch(i=>(console.warn("loadScriptUrl error",r,n,i),null))}function T(s){const{getDsl:e,getDslByUrl:t,options:n}=s;return n.window&&(B.forEach(r=>{delete n.window[r]}),B=[]),(r,o,a=I)=>!o||typeof o=="string"?r:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=r),i?M({...n,Vue:a,dsl:i,mode:y.Runtime,loader:T(s)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?M({...n,Vue:a,dsl:i,mode:y.Runtime,loader:T(s)}).renderer:null}):o.type==="Plugin"?(o.library&&B.push(o.library),a.defineAsyncComponent(async()=>{const i=await G(o,n.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function A(s,e,t=I,n=Ee){if(!s||!s.name||s.invisible)return null;const{id:r=null,directives:o=[]}=s,{vIf:a,vFor:i,vShow:l,vModels:u,vBind:m}=et(o);if(a&&!tt(a,e))return null;const p=d=>{const v=d.$components,h=(()=>{if(s.name==="component")return nt(d,s.props?.is);if(s.name==="slot")return s.name;const w=n(s.name,s.from,t);return c.isString(w)?v[w]??w:w})(),g=st(r,s.props??{},d),j=rt(t,s.events??{},d);if(s.name==="slot")return ot(t,s,g,d,n);m&&Object.assign(g,d.__parseExpression(m.value)),l&&(g.style=Object.assign(g.style??{},at(l,d))),u.forEach(w=>{Object.assign(g,ct(t,w,d))});const _=lt(t,s.children??[],d,n,s);return t.createVNode(h,{...g,...j},_)};return i?pt(i,p,e):p(e)}function et(s=[]){const e=s.find(i=>c.camelCase(i.name)==="vIf"),t=s.find(i=>c.camelCase(i.name)==="vFor"),n=s.find(i=>c.camelCase(i.name)==="vShow"),r=s.find(i=>c.camelCase(i.name)==="vBind"),o=s.filter(i=>c.camelCase(i.name)==="vModel"),a=s.filter(i=>!re.includes(c.camelCase(i.name)));return{vIf:e,vFor:t,vShow:n,vModels:o,vBind:r,others:a}}function tt(s,e){return!!e.__parseExpression(s.value)}function nt(s,e){return e?E(e)?s.__parseExpression(e):e:"div"}function st(s,e,t){const n=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return E(a)?a=t.__parseExpression(a):F(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return n.ref=t.__ref(s,n.ref),n}function rt(s,e,t){const n=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=Y(i.modifiers),u=l.find(d=>n.includes(d)),m="on"+c.upperFirst(a)+(u&&r[u]||""),p=t.__parseFunction(i.handler);return p&&(o[m]=s.withModifiers(p,l)),o},{})}function Y(s={},e=!1){const t=Object.keys(s);return e?t.map(n=>"."+n):t}function ot(s,e,t,n,r){const{children:o}=e,a=it(e,n),i=n.$slots?.[a.name];return i?i(t):o?c.isString(o)?s.createTextVNode(o):E(o)?s.createTextVNode(V(n.__parseExpression(o))):Array.isArray(o)?o.map(l=>A(l,n,s,r)):null:null}function it(s,e){const{props:t}=s,n=t?.name||"default";return{name:E(n)?e.__parseExpression(n):n,params:[]}}function at(s,e){return e.__parseExpression(s.value)?{}:{display:"none"}}function ct(s,e,t){const n={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
10
  }`:"(v) => {}"},r=t.__parseFunction(n),o=Y(e.modifiers),a=E(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&r?s.withModifiers(r,o):r}}function lt(s,e,t,n,r){if(!e)return null;if(c.isString(e))return{default:()=>e};if(E(e))return{default:()=>V(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=ut(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[l,{nodes:u,params:m}])=>(i[l]=p=>{const d=m.length?c.pick(p??{},m):a(p);return u.map(v=>A(v,t.__clone(d),s,n))},i),{})}return null}function ut(s){const e={default:{params:[],nodes:[]}};for(const t of s){const n=dt(t.slot),r=n.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(n.params)):e[r]={nodes:[t],params:n.params}}return e}function dt(s="default"){return c.isString(s)?{name:s,params:[]}:{params:[],...s}}function pt(s,e,t){const{value:n,iterator:r}=s,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(n)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((l,u)=>u+1)),Array.isArray(i)?i.map((l,u)=>e(t.__clone({[o]:l,[a]:u}))):(console.warn("[vForRender]:",`${n?.value} is not a Arrary`),[])}function ft(s){return f.getCurrentScope()?(f.onScopeDispose(s),!0):!1}function Q(s){return typeof s=="function"?s():f.unref(s)}const be=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ht=s=>s!=null,mt=()=>{};function gt(s){return f.getCurrentInstance()}function vt(...s){if(s.length!==1)return f.toRef(...s);const e=s[0];return typeof e=="function"?f.readonly(f.customRef(()=>({get:e,set:mt}))):f.ref(e)}function yt(s,e){gt()&&f.onBeforeUnmount(s,e)}const _t=be?window:void 0,wt=be?window.document:void 0;function St(s){var e;const t=Q(s);return(e=t?.$el)!=null?e:t}function jt(){const s=f.ref(!1),e=f.getCurrentInstance();return e&&f.onMounted(()=>{s.value=!0},e),s}function Et(s){const e=jt();return f.computed(()=>(e.value,!!s()))}function bt(s,e,t={}){const{window:n=_t,...r}=t;let o;const a=Et(()=>n&&"MutationObserver"in n),i=()=>{o&&(o.disconnect(),o=void 0)},l=f.computed(()=>{const d=Q(s),v=(Array.isArray(d)?d:[d]).map(St).filter(ht);return new Set(v)}),u=f.watch(()=>l.value,d=>{i(),a.value&&d.size&&(o=new MutationObserver(e),d.forEach(v=>o.observe(v,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),p=()=>{u(),i()};return ft(p),{isSupported:a,stop:p,takeRecords:m}}function Pt(s=null,e={}){var t,n,r;const{document:o=wt,restoreOnUnmount:a=p=>p}=e,i=(t=o?.title)!=null?t:"",l=vt((n=s??o?.title)!=null?n:null),u=s&&typeof s=="function";function m(p){if(!("titleTemplate"in e))return p;const d=e.titleTemplate||"%s";return typeof d=="function"?d(p):Q(d).replace(/%s/g,p)}return f.watch(l,(p,d)=>{p!==d&&o&&(o.title=m(typeof p=="string"?p:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!u&&bt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==l.value&&(l.value=m(o.title))},{childList:!0}),yt(()=>{if(a){const p=a(i,l.value||"");p!=null&&o&&(o.title=p)}}),l}const ne=f.defineComponent({name:"VtjPageContainer",async setup(){const s=Z(),e=se.useRoute(),t=e.params.id,n=t?s.getPage(t):s.getHomepage(),r=n?await s.getRenderComponent(n.id):null;return n&&(Object.assign(e.meta,n.meta||{}),Pt(n.title||"VTJ")),{provider:s,component:r,file:n,query:e.query,meta:n?.meta}},render(){const{component:s,query:e}=this;return s?f.h(s,e):f.h("div","页面不存在")}}),$t={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},Ct={"data-l-h6o7ki7":"",class:"vtj-startup"},Rt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},xt={"data-l-h6o7ki7":""},kt={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},At={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},Pe=f.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"}},setup(s){((r,o)=>{let a=document.getElementById("h6o7ki7");a||(a=document.createElement("style"),a.id="h6o7ki7",document.head.appendChild(a),a.innerHTML=o)})("h6o7ki7",`
package/dist/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
1
  import { Base as xe, BUILT_IN_COMPONENTS as Re, ProjectModel as A, HistoryModel as ce } from "@vtj/core";
2
2
  import { isUrl as ke, url as x, dedupArray as Ce, isString as j, isFunction as ee, logger as I, createRequest as Fe, merge as Ae, pathToRegexp as Ie, pathToRegexpMatch as Oe, formDataToJson as De, storage as B, cookie as U, toArray as te, unRSA as se, delay as le, camelCase as $, upperFirst as Me, pick as Te, jsonp as He, loadScript as ne, Request as Be, Storage as Ue, mapToObject as z } from "@vtj/utils";
3
3
  import * as M from "vue";
4
- import { inject as ue, toRef as Ne, readonly as Le, customRef as qe, ref as O, unref as Je, getCurrentInstance as de, onBeforeUnmount as Ve, getCurrentScope as ze, onScopeDispose as Ke, watch as pe, onMounted as We, computed as fe, defineComponent as K, h as q, openBlock as Ge, createElementBlock as Ye, createElementVNode as b, toDisplayString as N, defineAsyncComponent as re, watchEffect as Qe } from "vue";
5
- import { ElLoading as Xe, ElNotification as T } from "element-plus";
4
+ import { inject as ue, toRef as Ne, readonly as Le, customRef as qe, ref as O, onBeforeUnmount as Je, getCurrentScope as Ve, onScopeDispose as ze, unref as Ke, getCurrentInstance as de, watch as pe, computed as fe, onMounted as We, defineComponent as K, h as q, openBlock as Ge, createElementBlock as Ye, createElementVNode as b, toDisplayString as N, defineAsyncComponent as re, watchEffect as Qe } from "vue";
5
+ import { ElNotification as T, ElLoading as Xe } from "element-plus";
6
6
  import { useRoute as he } from "vue-router";
7
7
  /**!
8
8
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
9
9
  * @name @vtj/renderer
10
10
  * @author CHC chenhuachun1549@dingtalk.com
11
- * @version 0.9.0-alpha.1
11
+ * @version 0.9.0-alpha.3
12
12
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
13
13
  */
14
- const R = "0.9.0-alpha.1";
14
+ const R = "0.9.0-alpha.3";
15
15
  var _ = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(_ || {});
16
16
  const oe = [
17
17
  "$el",
@@ -852,10 +852,10 @@ function Nt(n, e, t) {
852
852
  return Number.isInteger(i) && (i = new Array(i).fill(!0).map((c, l) => l + 1)), Array.isArray(i) ? i.map((c, l) => e(t.__clone({ [o]: c, [a]: l }))) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
853
853
  }
854
854
  function Lt(n) {
855
- return ze() ? (Ke(n), !0) : !1;
855
+ return Ve() ? (ze(n), !0) : !1;
856
856
  }
857
857
  function Q(n) {
858
- return typeof n == "function" ? n() : Je(n);
858
+ return typeof n == "function" ? n() : Ke(n);
859
859
  }
860
860
  const je = typeof window < "u" && typeof document < "u";
861
861
  typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
@@ -871,7 +871,7 @@ function zt(...n) {
871
871
  return typeof e == "function" ? Le(qe(() => ({ get: e, set: Jt }))) : O(e);
872
872
  }
873
873
  function Kt(n, e) {
874
- Vt() && Ve(n, e);
874
+ Vt() && Je(n, e);
875
875
  }
876
876
  const Wt = je ? window : void 0, Gt = je ? window.document : void 0;
877
877
  function Yt(n) {
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.9.0-alpha.1",
4
+ "version": "0.9.0-alpha.3",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "mockjs": "~1.1.0",
8
- "@vtj/core": "~0.9.0-alpha.1",
9
- "@vtj/utils": "~0.9.0-alpha.1"
8
+ "@vtj/core": "~0.9.0-alpha.3",
9
+ "@vtj/utils": "~0.9.0-alpha.3"
10
10
  },
11
11
  "devDependencies": {
12
12
  "vue": "~3.5.5",
13
13
  "vue-router": "~4.4.0",
14
- "@vtj/ui": "~0.9.0-alpha.1",
15
14
  "@vtj/cli": "~0.9.0-alpha.0",
16
- "@vtj/icons": "~0.9.0-alpha.1"
15
+ "@vtj/icons": "~0.9.0-alpha.3",
16
+ "@vtj/ui": "~0.9.0-alpha.3"
17
17
  },
18
18
  "exports": {
19
19
  ".": {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.9.0-alpha.0
5
+ * @version 0.9.0-alpha.3
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.9.0-alpha.0";
8
+ export declare const version = "0.9.0-alpha.3";