@vtj/renderer 0.10.1-alpha.7 → 0.10.2
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 +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +6 -6
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.10.
|
5
|
+
* @version 0.10.2
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
|
-
*/const z="0.10.
|
7
|
+
*/const z="0.10.2";var _=(s=>(s.Runtime="Runtime",s.Design="Design",s.Raw="Raw",s.VNode="VNode",s))(_||{});const J=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Be=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],re=["vIf","vShow","vModel","vFor","vBind","vHtml"],oe={String,Number,Boolean,Array,Object,Function,Date},$="VtjPage",A="VtjHomepage",ie="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(","),ae="component,slot".split(",");function M(s,e){return s.map(t=>l.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function N(s){return/\.css$/.test(s)}function B(s){return/\.js$/.test(s)}function ce(s){return/\.json$/.test(s)}function Ue(s){return s.map(e=>`<script src="${l.url.append(e,{v:z})}"><\/script>`).join("")}function Le(s=[]){return s.map(e=>`<link rel="stylesheet" href="${l.url.append(e,{v:z})}" />`).join("")}function le(s,e=!1){return e&&s.endsWith(".prod.js")?s.replace(".prod.js",".js"):s}function ue(s,e,t=!1){const n=s.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},u={},m=[],p={};return n.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{B(y)&&r.push(le(y,t)),N(y)&&o.push(y)}),v&&(i.push(v),c[v]=M(f||[],e),b&&(u[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(p[h]=v)}),{scripts:M(r,e),css:M(o,e),materials:M(a,e),libraryExports:i,materialExports:l.dedupArray(m),materialMapLibrary:p,libraryMap:c,libraryLocaleMap:u}}function de(s,e){const{name:t,parent:n,alias:r}=s;return n?e[n]?.[r||t]:e[r||t]}function K(s){return l.isString(s)?s:JSON.stringify(s)}function G(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(c=>c.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 pe(s,e){const t=await window.fetch(e).then(n=>n.text()).catch(()=>"");t&&G(window,s,t)}function fe(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 he(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 c of s){const u=n.createElement("script");u.src=c,u.onload=()=>{o=t[e],o?a(o.default||o):i(null)},u.onerror=m=>{i(m)},r.appendChild(u)}})}function me(s){return l.isFunction(s)||l.isFunction(s?.install)}function ge(s){return ae.includes(s)}function ve(s){return ie.includes(s)}function C(s=window){const e=window.Mock;if(e)return e;const t=s.Mock;if(t)return window.Mock=t,t}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,c)=>`__self${c}`),o=r.join(`
|
8
8
|
`)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(l.logger.error("parseExpression.error",r,s,e?.__self??e),n)throw r}}function O(s,e,t=!1,n=!1){const r=R(s,e,t,n);if(typeof r!="function"&&(l.logger.error("parseFunction.error","not a function",s,e?.__self??e),n))throw new Error(`"${s.value}" not a function`);return r}function S(s){return s&&s.type==="JSExpression"}function x(s){return typeof s=="object"&&s&&s.type==="JSFunction"}function ye(s){return S(s)||x(s)}function qe(s){return ye(s)?s.value:JSON.stringify(s)}const Je={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},W=Symbol("access");class Ve{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},Je,e),this.loadData()}connect(e){const{mode:t,router:n,request:r}=e;this.mode=t,n&&this.mode===_.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&&(l.storage.save(t,e,{type:"local",prefix:n}),r&&l.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:n,authKey:r}=this.options;this.data=null,l.storage.remove(e,{type:"local",prefix:t}),n&&l.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:n={}}=this.data||{};return typeof e=="function"?e(n):l.toArray(e).every(o=>n[o]||n[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:n={}}=this.data||{};return l.toArray(e).some(o=>n[o]||n[t+"."+o])}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)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=>l.unRSA(r,t));this.data=JSON.parse(n.join(""));return}if(typeof e=="string")try{const n=t?l.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=l.storage.get(e,{type:"local",prefix:t});this.setData(n||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!l.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===$){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,n,r)=>this.guard(t,r))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:n="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(n),l.isFunction(r)?(r(),t(!1)):l.isString(r)?t(r):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;return t?(await l.delay(150),await t(e,{title:"提示",type:"warning"}).catch(()=>!1)):!1}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 _e(){return d.inject(W,null)}function ze(s={}){const{notify:e,loading:t,settings:n={}}=s;let r=null;return{request:l.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:a=>a.data?.code===0||!!a.data?.success,failMessage:!0,showError:a=>{e&&e(a||"未知错误")},showLoading:()=>{r&&r.close(),t&&(r=t())},hideLoading:()=>{r&&(r.close(),r=null)},...n}}),jsonp:l.jsonp,notify:e,loading:t}}function we(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(l.merge(o,i||{},{data:a})))}}function Se(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 be(s=[],e=[],t){const n={};for(const r of s)n[r.id]=we(r,t);for(const r of e)n[r.id]=Se(r,t);return n}async function je(s=[],e=window){const t=C(e);t&&(Y(e),s.forEach(n=>ke(t,n)))}function Ee(s,e=window){const t=x(s.mockTemplate)&&s.mockTemplate.value?O(s.mockTemplate,{},!0):void 0,n=C(e);return async(...r)=>{let o={};if(t)try{o=await t.apply(t,r)}catch(a){l.logger.warn("模拟数据模版异常",a)}return n?.mock(o)}}function ke(s,e){if(!e.mock)return;const{url:t,mockTemplate:n}=e;if(t&&n){const r=l.pathToRegexp(`${t}(.*)`),o=l.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=R(n,{},!0);s.mock(r,i=>{const c=l.url.parse(i.url)||{},u=i.body instanceof FormData?l.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:u,params:c,query:m}),s.mock(a(i))})}}function Y(s=window){const e=C(s);e&&(e._mocked={})}class Pe{__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=H){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.__reset()})}__proxy(){this.__instance&&J.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){J.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return O({type:n,value:r},this)}else return O(e,this)}__parseExpression(e){if(e)if(this.__mode===_.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!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async n=>{await l.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}return r.nodeType===3&&r.nextSibling&&(r=r.nextSibling),r.__vtj__=e,_.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,n)),typeof t=="function"?t(n):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,n)),n}}__getRefEl(e,t,n){const r=e[t];if(r&&n!==r){const o=new Set([].concat(r,n));return Array.from(o)}else return n}__clone(e={}){const t={...this.context,...e},n={...t,context:t};return n.context.__proto__=this.context,n.__proto__=this,n}}function I(s){const{Vue:e=H,mode:t=_.Runtime,components:n={},libs:r={},apis:o={},loader:a}=s,i=e.computed(()=>s.dsl),c={$components:n,$libs:r,$apis:o},u=new Pe({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...Ge(i.value.props??[],u)},setup(p){u.$props=p,u.props=p,i.value.id&&G(s.window||window,i.value.id,i.value.css||""),u.state=We(e,i.value.state??{},u);const f=Ye(e,i.value.computed??{},u),g=Qe(i.value.methods??{},u),v=Xe(e,i.value.inject,u),h=$e(i.value.dataSources||{},u),b={...v,...f,...g,...h};return u.setup(b,e),Ze(e,i.value.watch??[],u),{vtj:u}},emits:Ke(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?T(p[0],u,e,a):p.map(f=>T(f,u,e,a))},...et(i.value.lifeCycles??{},u)});return{renderer:e.markRaw(m),context:u}}function Ke(s=[]){return s.map(e=>l.isString(e)?e:e.name)}function Ge(s=[],e){const t=n=>n?(Array.isArray(n)?n:[n]).map(o=>oe[o]):void 0;return s.map(n=>l.isString(n)?{name:n}:{name:n.name,type:n.type,required:n.required,default:S(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 S(o)?o=t.__parseExpression(o):x(o)&&(o=t.__parseFunction(o)),n[r]=o,n},{}))}function Ye(s,e,t){return Object.entries(e??{}).reduce((n,[r,o])=>(n[r]=s.computed(t.__parseFunction(o)),n),{})}function Qe(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}function Xe(s,e=[],t){return e.reduce((n,r)=>{const{name:o,from:a}=r||{};r.default;const i=S(a)?t.__parseExpression(a)||o:a??o,c=S(r.default)?t.__parseExpression(r.default):r.default??null;return n[o]=s.inject(i,c),n},{})}function $e(s,e){return Object.keys(s).reduce((t,n)=>{const r=s[n];if(r.type==="mock")t[n]=Ee(r);else if(r.ref){const o=e.$apis[r.ref],a=x(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;t[n]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c}}return t},{})}function Ze(s,e=[],t){e.forEach(n=>{s.watch(t.__parseExpression(n.source),t.__parseFunction(n.handler),{deep:n.deep,immediate:n.immediate})})}function et(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}let q=[],P={};const Ce=s=>s;async function Q(s,e=window){const{urls:t=[],library:n}=s,r=t.filter(i=>B(i));if(r.length===0||!n)return null;const o=t.filter(i=>N(i));return o.length&&fe(o,e),await he(r,n,e).catch(i=>(console.warn("loadScriptUrl error",r,n,i),null))}function D(s){const{getDsl:e,getDslByUrl:t,options:n}=s;return n.window&&(q.forEach(r=>{delete n.window[r]}),q=[]),(r,o,a=H)=>{if(!o||typeof o=="string")return r;if(o.type==="Schema"&&o.id){let i=P[o.id];return i||(i=P[o.id]=a.defineAsyncComponent(async()=>{const c=await e(o.id);return c&&(c.name=r),c?I({...n,Vue:a,dsl:c,mode:_.Runtime,loader:D(s)}).renderer:null}),i)}if(o.type==="UrlSchema"&&o.url){let i=P[o.url];return i||(i=P[o.url]=a.defineAsyncComponent(async()=>{const c=await t(o.url);return c&&(c.name=r),c?I({...n,Vue:a,dsl:c,mode:_.Runtime,loader:D(s)}).renderer:null}),i)}if(o.type==="Plugin"){let i=o.library?P[o.library]:null;return i||(o.library&&q.push(o.library),i=P[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const c=await Q(o,n.window);return c||(console.warn("getPlugin result is null",o),null)}),i)}return r}}function tt(){P={}}function T(s,e,t=H,n=Ce){if(!s||!s.name||s.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=s,{vIf:i,vFor:c,vShow:u,vModels:m,vBind:p,vHtml:f,others:g}=st(a);if(i&&!rt(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(s.name==="component")return ot(h,s.props?.is);if(s.name==="slot")return s.name;const E=n(s.name,s.from,t);return l.isString(E)?ge(E)||ve(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=it(o,s.props??{},h),De=at(t,s.events??{},h);if(s.name==="slot")return ct(t,s,j,h,n);p&&Object.assign(j,h.__parseExpression(p.value)),u&&(j.style=Object.assign(j.style??{},ut(u,h))),f&&Object.assign(j,dt(f,h)),m.forEach(E=>{Object.assign(j,pt(t,E,h))});const He=ft(t,s.children??[],h,n,s);let L=t.createVNode(y,{...j,...De},He);const te=r?nt(r,g,h):[];return te.length&&(L=t.withDirectives(L,te)),L};return c?gt(c,v,e):v(e)}function nt(s,e,t){const n=s.app;return e.map(r=>{const o=typeof r.name=="string"?n.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const a=[o];return r.value&&a.push(t.__parseExpression(r.value)),r.arg&&a.push(r.arg),r.modifiers&&a.push(r.modifiers),a}).filter(r=>!!r)}function st(s=[]){const e=s.find(c=>l.camelCase(c.name)==="vIf"),t=s.find(c=>l.camelCase(c.name)==="vFor"),n=s.find(c=>l.camelCase(c.name)==="vShow"),r=s.find(c=>l.camelCase(c.name)==="vBind"),o=s.find(c=>l.camelCase(c.name)==="vHtml"),a=s.filter(c=>l.camelCase(c.name)==="vModel"),i=s.filter(c=>!re.includes(l.camelCase(c.name)));return{vIf:e,vFor:t,vShow:n,vModels:a,vBind:r,others:i,vHtml:o}}function rt(s,e){return!!e.__parseExpression(s.value)}function ot(s,e){return e?S(e)?s.__parseExpression(e):e:"div"}function it(s,e,t){const n=V(e,t);return n.ref=t.__ref(s,n.ref),n}function V(s,e){return S(s)?e.__parseExpression(s):x(s)?e.__parseFunction(s):Array.isArray(s)?s.map(t=>V(t,e)):typeof s=="object"?Object.keys(s||{}).reduce((t,n)=>{let r=s[n];return t[n]=V(r,e),t},{}):s}function at(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],c=X(i.modifiers),u=c.find(f=>n.includes(f)),m="on"+l.upperFirst(a)+(u&&r[u]||""),p=t.__parseFunction(i.handler);return p&&(o[m]=s.withModifiers(p,c)),o},{})}function X(s={},e=!1){const t=Object.keys(s);return e?t.map(n=>"."+n):t}function ct(s,e,t,n,r){const{children:o}=e,a=lt(e,n),i=n.$slots?.[a.name];return i?i(t):o?l.isString(o)?s.createTextVNode(o):S(o)?s.createTextVNode(K(n.__parseExpression(o))):Array.isArray(o)?o.map(c=>T(c,n,s,r)):null:null}function lt(s,e){const{props:t}=s,n=t?.name||"default";return{name:S(n)?e.__parseExpression(n):n,params:[]}}function ut(s,e){return e.__parseExpression(s.value)?{}:{display:"none"}}function dt(s,e){return{innerHTML:e.__parseExpression(s.value)||""}}function pt(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=X(S(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=S(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 ft(s,e,t,n,r){if(!e)return null;if(l.isString(e))return{default:()=>e};if(S(e))return{default:()=>K(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=ht(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[c,{nodes:u,params:m}])=>(i[c]=p=>{const f=m.length?l.pick(p??{},m):a(p);return u.map(g=>T(g,t.__clone(f),s,n))},i),{})}return null}function ht(s){const e={default:{params:[],nodes:[]}};for(const t of s){const n=mt(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 mt(s="default"){return l.isString(s)?{name:s,params:[]}:{params:[],...s}}function gt(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((c,u)=>u+1)),Array.isArray(i)?i.map((c,u)=>e(t.__clone({[o]:c,[a]:u}))):(console.warn("[vForRender]:",`${n?.value} is not a Arrary`),[])}function vt(s){return d.getCurrentScope()?(d.onScopeDispose(s),!0):!1}const Re=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const yt=s=>s!=null,_t=()=>{};function wt(s){return d.getCurrentInstance()}function St(s){return Array.isArray(s)?s:[s]}function bt(...s){if(s.length!==1)return d.toRef(...s);const e=s[0];return typeof e=="function"?d.readonly(d.customRef(()=>({get:e,set:_t}))):d.ref(e)}function jt(s,e){wt()&&d.onBeforeUnmount(s,e)}const Et=Re?window:void 0,kt=Re?window.document:void 0;function Pt(s){var e;const t=d.toValue(s);return(e=t?.$el)!=null?e:t}function $t(){const s=d.ref(!1),e=d.getCurrentInstance();return e&&d.onMounted(()=>{s.value=!0},e),s}function Ct(s){const e=$t();return d.computed(()=>(e.value,!!s()))}function Rt(s,e,t={}){const{window:n=Et,...r}=t;let o;const a=Ct(()=>n&&"MutationObserver"in n),i=()=>{o&&(o.disconnect(),o=void 0)},c=d.computed(()=>{const f=d.toValue(s),g=St(f).map(Pt).filter(yt);return new Set(g)}),u=d.watch(()=>c.value,f=>{i(),a.value&&f.size&&(o=new MutationObserver(e),f.forEach(g=>o.observe(g,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),p=()=>{u(),i()};return vt(p),{isSupported:a,stop:p,takeRecords:m}}function xt(s=null,e={}){var t,n,r;const{document:o=kt,restoreOnUnmount:a=p=>p}=e,i=(t=o?.title)!=null?t:"",c=bt((n=s??o?.title)!=null?n:null),u=!!(s&&typeof s=="function");function m(p){if(!("titleTemplate"in e))return p;const f=e.titleTemplate||"%s";return typeof f=="function"?f(p):d.toValue(f).replace(/%s/g,p)}return d.watch(c,(p,f)=>{p!==f&&o&&(o.title=m(p??""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!u&&Rt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==c.value&&(c.value=m(o.title))},{childList:!0}),jt(()=>{if(a){const p=a(i,c.value||"");p!=null&&o&&(o.title=p)}}),c}const ne=d.defineComponent({name:"VtjPageContainer",async setup(){const s=ee(),e=se.useRoute(),t=e.params.id,n=t?s.getPage(t):s.getHomepage(),r=n?await s.getRenderComponent(n.id):null,o=d.ref(Symbol());return n&&(Object.assign(e.meta,n.meta||{},{cache:n.cache}),xt(n.title||"VTJ")),{provider:s,component:r,file:n,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:s,query:e,sid:t}=this;return s?d.h(s,{...e,key:t}):d.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Mt={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},At={"data-l-h6o7ki7":"",class:"vtj-startup"},Tt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},Ft={"data-l-h6o7ki7":"",class:"span"},Ot={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},It={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},xe=d.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"},link:{}},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
@@ -7,10 +7,10 @@ import { useRoute as we } from "vue-router";
|
|
7
7
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
8
8
|
* @name @vtj/renderer
|
9
9
|
* @author CHC chenhuachun1549@dingtalk.com
|
10
|
-
* @version 0.10.
|
10
|
+
* @version 0.10.2
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
12
12
|
*/
|
13
|
-
const Se = "0.10.
|
13
|
+
const Se = "0.10.2";
|
14
14
|
var y = /* @__PURE__ */ ((s) => (s.Runtime = "Runtime", s.Design = "Design", s.Raw = "Raw", s.VNode = "VNode", s))(y || {});
|
15
15
|
const ue = [
|
16
16
|
"$el",
|
package/package.json
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vtj/renderer",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.10.
|
4
|
+
"version": "0.10.2",
|
5
5
|
"type": "module",
|
6
6
|
"dependencies": {
|
7
|
-
"@vtj/core": "~0.10.
|
8
|
-
"@vtj/utils": "~0.10.
|
7
|
+
"@vtj/core": "~0.10.2",
|
8
|
+
"@vtj/utils": "~0.10.2"
|
9
9
|
},
|
10
10
|
"devDependencies": {
|
11
11
|
"vue": "~3.5.5",
|
12
12
|
"vue-router": "~4.5.0",
|
13
|
-
"@vtj/cli": "~0.10.
|
14
|
-
"@vtj/ui": "~0.10.
|
15
|
-
"@vtj/icons": "~0.10.
|
13
|
+
"@vtj/cli": "~0.10.1",
|
14
|
+
"@vtj/ui": "~0.10.2",
|
15
|
+
"@vtj/icons": "~0.10.2"
|
16
16
|
},
|
17
17
|
"exports": {
|
18
18
|
".": {
|
package/types/version.d.ts
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.10.1
|
5
|
+
* @version 0.10.1
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
7
|
*/
|
8
|
-
export declare const version = "0.10.1
|
8
|
+
export declare const version = "0.10.1";
|