@vtj/renderer 0.9.12 → 0.9.13

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,10 +2,10 @@
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.9.12
5
+ * @version 0.9.13
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const P="0.9.12";var _=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(_||{});const J=["$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"],ne=["vIf","vShow","vModel","vFor","vBind","vHtml"],re={String,Number,Boolean,Array,Object,Function,Date},R="VtjPage",T="VtjHomepage",oe="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(","),ie="component,slot".split(",");function A(n,e){return n.map(t=>l.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function N(n){return/\.css$/.test(n)}function B(n){return/\.js$/.test(n)}function ae(n){return/\.json$/.test(n)}function Be(n){return n.map(e=>`<script src="${l.url.append(e,{v:P})}"><\/script>`).join("")}function Ue(n=[]){return n.map(e=>`<link rel="stylesheet" href="${l.url.append(e,{v:P})}" />`).join("")}function ce(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function le(n,e,t=!1){const s=n.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},u={},m=[],d={};return s.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{B(y)&&r.push(ce(y,t)),N(y)&&o.push(y)}),v&&(i.push(v),c[v]=A(f||[],e),b&&(u[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(d[h]=v)}),{scripts:A(r,e),css:A(o,e),materials:A(a,e),libraryExports:i,materialExports:l.dedupArray(m),materialMapLibrary:d,libraryMap:c,libraryLocaleMap:u}}function ue(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function V(n){return l.isString(n)?n:JSON.stringify(n)}function z(n,e,t){const s=n.CSSStyleSheet;if(s.prototype.replaceSync){const r=new s;r.id=e,r.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(c=>c.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=n.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 de(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&z(window,n,t)}function pe(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,s.appendChild(a)}}async function fe(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const c of n){const u=s.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 he(n){return l.isFunction(n)||l.isFunction(n?.install)}function me(n){return ie.includes(n)}function ge(n){return oe.includes(n)}function k(n,e,t=!1,s=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,c)=>`__self${c}`),o=r.join(`
8
- `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(l.logger.error("parseExpression.error",r,n,e?.__self??e),s)throw r}}function O(n,e,t=!1,s=!1){const r=k(n,e,t,s);if(typeof r!="function"&&(l.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return r}function S(n){return n&&n.type==="JSExpression"}function x(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function ve(n){return S(n)||x(n)}function Le(n){return ve(n)?n.value:JSON.stringify(n)}const qe={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},K=Symbol("access");class Je{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},qe,e),this.loadData()}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(l.storage.save(t,e,{type:"local",prefix:s}),r&&l.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,l.storage.remove(e,{type:"local",prefix:t}),s&&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:s={}}=this.data||{};return typeof e=="function"?e(s):l.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return l.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(K,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(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 s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>l.unRSA(r,t));this.data=JSON.parse(s.join(""));return}if(typeof e=="string")try{const s=t?l.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=l.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!l.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===R){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,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:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),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(s=>e.fullPath.startsWith(s)):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 s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function ye(){return p.inject(K,null)}function Ve(n={}){const{notify:e,loading:t,settings:s={}}=n;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)},...s}}),jsonp:l.jsonp,notify:e,loading:t}}function _e(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?k(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(a,i)=>(delete o.data,s.send(l.merge(o,i||{},{data:a})))}}function we(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,a)}}function Se(n=[],e=[],t){const s={};for(const r of n)s[r.id]=_e(r,t);for(const r of e)s[r.id]=we(r,t);return s}async function be(n=[]){C&&(G(),n.forEach(e=>Ee(C,e)))}function je(n){const e=x(n.mockTemplate)&&n.mockTemplate.value?O(n.mockTemplate,{},!0):void 0;return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(r){l.logger.warn("模拟数据模版异常",r)}return C.mock(s)}}function Ee(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const r=l.pathToRegexp(`${t}(.*)`),o=l.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=k(s,{},!0);n.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}),n.mock(a(i))})}}function G(){C&&(C._mocked={})}class $e{__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:s,attrs:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=H){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.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&&J.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){J.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return O({type:s,value:r},this)}else return O(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return k({type:s,value:r},this)}else return k(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await l.delay(0);let r=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;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,_.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=s),typeof t=="function")t(s);else if(t){const o=this.$refs[t];if(o&&s!==o){const a=new Set([].concat(o,s));this.$refs[t]=Array.from(a)}else this.$refs[t]=s}return s}}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function I(n){const{Vue:e=H,mode:t=_.Runtime,components:s={},libs:r={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),c={$components:s,$libs:r,$apis:o},u=new $e({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...Ke(i.value.props??[],u)},setup(d){u.$props=d,u.props=d,i.value.id&&z(n.window||window,i.value.id,i.value.css||""),u.state=Ge(e,i.value.state??{},u);const f=We(e,i.value.computed??{},u),g=Ye(i.value.methods??{},u),v=Qe(e,i.value.inject,u),h=Ce(i.value.dataSources||{},u),b={...v,...f,...g,...h};return u.setup(b,e),Xe(e,i.value.watch??[],u),{vtj:u}},emits:ze(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?M(d[0],u,e,a):d.map(f=>M(f,u,e,a))},...Ze(i.value.lifeCycles??{},u)});return{renderer:e.markRaw(m),context:u}}function ze(n=[]){return n.map(e=>l.isString(e)?e:e.name)}function Ke(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>re[o]):void 0;return n.map(s=>l.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:S(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function Ge(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return S(o)?o=t.__parseExpression(o):x(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function We(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function Ye(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function Qe(n,e=[],t){return e.reduce((s,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 s[o]=n.inject(i,c),s},{})}function Ce(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=je(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[s]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c}}return t},{})}function Xe(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function Ze(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}let q=[];const Pe=n=>n;async function W(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(i=>B(i));if(r.length===0||!s)return null;const o=t.filter(i=>N(i));return o.length&&pe(o,e),await fe(r,s,e).catch(i=>(console.warn("loadScriptUrl error",r,s,i),null))}function D(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(q.forEach(r=>{delete s.window[r]}),q=[]),(r,o,a=H)=>!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?I({...s,Vue:a,dsl:i,mode:_.Runtime,loader:D(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?I({...s,Vue:a,dsl:i,mode:_.Runtime,loader:D(n)}).renderer:null}):o.type==="Plugin"?(o.library&&q.push(o.library),a.defineAsyncComponent(async()=>{const i=await W(o,s.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function M(n,e,t=H,s=Pe){if(!n||!n.name||n.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=n,{vIf:i,vFor:c,vShow:u,vModels:m,vBind:d,vHtml:f,others:g}=tt(a);if(i&&!st(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(n.name==="component")return nt(h,n.props?.is);if(n.name==="slot")return n.name;const E=s(n.name,n.from,t);return l.isString(E)?me(E)||ge(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=rt(o,n.props??{},h),Ie=ot(t,n.events??{},h);if(n.name==="slot")return it(t,n,j,h,s);d&&Object.assign(j,h.__parseExpression(d.value)),u&&(j.style=Object.assign(j.style??{},ct(u,h))),f&&Object.assign(j,lt(f,h)),m.forEach(E=>{Object.assign(j,ut(t,E,h))});const De=dt(t,n.children??[],h,s,n);let L=t.createVNode(y,{...j,...Ie},De);const ee=r?et(r,g,h):[];return ee.length&&(L=t.withDirectives(L,ee)),L};return c?ht(c,v,e):v(e)}function et(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.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 tt(n=[]){const e=n.find(c=>l.camelCase(c.name)==="vIf"),t=n.find(c=>l.camelCase(c.name)==="vFor"),s=n.find(c=>l.camelCase(c.name)==="vShow"),r=n.find(c=>l.camelCase(c.name)==="vBind"),o=n.find(c=>l.camelCase(c.name)==="vHtml"),a=n.filter(c=>l.camelCase(c.name)==="vModel"),i=n.filter(c=>!ne.includes(l.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:r,others:i,vHtml:o}}function st(n,e){return!!e.__parseExpression(n.value)}function nt(n,e){return e?S(e)?n.__parseExpression(e):e:"div"}function rt(n,e,t){const s=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return S(a)?a=t.__parseExpression(a):x(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return s.ref=t.__ref(n,s.ref),s}function ot(n,e,t){const s=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],c=Y(i.modifiers),u=c.find(f=>s.includes(f)),m="on"+l.upperFirst(a)+(u&&r[u]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,c)),o},{})}function Y(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function it(n,e,t,s,r){const{children:o}=e,a=at(e,s),i=s.$slots?.[a.name];return i?i(t):o?l.isString(o)?n.createTextVNode(o):S(o)?n.createTextVNode(V(s.__parseExpression(o))):Array.isArray(o)?o.map(c=>M(c,s,n,r)):null:null}function at(n,e){const{props:t}=n,s=t?.name||"default";return{name:S(s)?e.__parseExpression(s):s,params:[]}}function ct(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function lt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function ut(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const P="0.9.13";var _=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(_||{});const J=["$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"],ne=["vIf","vShow","vModel","vFor","vBind","vHtml"],re={String,Number,Boolean,Array,Object,Function,Date},R="VtjPage",T="VtjHomepage",oe="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(","),ie="component,slot".split(",");function A(n,e){return n.map(t=>l.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function N(n){return/\.css$/.test(n)}function B(n){return/\.js$/.test(n)}function ae(n){return/\.json$/.test(n)}function Be(n){return n.map(e=>`<script src="${l.url.append(e,{v:P})}"><\/script>`).join("")}function Ue(n=[]){return n.map(e=>`<link rel="stylesheet" href="${l.url.append(e,{v:P})}" />`).join("")}function ce(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function le(n,e,t=!1){const s=n.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},u={},m=[],d={};return s.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{B(y)&&r.push(ce(y,t)),N(y)&&o.push(y)}),v&&(i.push(v),c[v]=A(f||[],e),b&&(u[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(d[h]=v)}),{scripts:A(r,e),css:A(o,e),materials:A(a,e),libraryExports:i,materialExports:l.dedupArray(m),materialMapLibrary:d,libraryMap:c,libraryLocaleMap:u}}function ue(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function V(n){return l.isString(n)?n:JSON.stringify(n)}function z(n,e,t){const s=n.CSSStyleSheet;if(s.prototype.replaceSync){const r=new s;r.id=e,r.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(c=>c.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=n.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 de(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&z(window,n,t)}function pe(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,s.appendChild(a)}}async function fe(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const c of n){const u=s.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 he(n){return l.isFunction(n)||l.isFunction(n?.install)}function me(n){return ie.includes(n)}function ge(n){return oe.includes(n)}function k(n,e,t=!1,s=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,c)=>`__self${c}`),o=r.join(`
8
+ `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(l.logger.error("parseExpression.error",r,n,e?.__self??e),s)throw r}}function O(n,e,t=!1,s=!1){const r=k(n,e,t,s);if(typeof r!="function"&&(l.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return r}function S(n){return n&&n.type==="JSExpression"}function x(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function ve(n){return S(n)||x(n)}function Le(n){return ve(n)?n.value:JSON.stringify(n)}const qe={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},K=Symbol("access");class Je{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},qe,e),this.loadData()}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(l.storage.save(t,e,{type:"local",prefix:s}),r&&l.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,l.storage.remove(e,{type:"local",prefix:t}),s&&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:s={}}=this.data||{};return typeof e=="function"?e(s):l.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return l.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(K,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(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 s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>l.unRSA(r,t));this.data=JSON.parse(s.join(""));return}if(typeof e=="string")try{const s=t?l.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=l.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!l.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===R){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,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:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),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(s=>e.fullPath.startsWith(s)):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 s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function ye(){return p.inject(K,null)}function Ve(n={}){const{notify:e,loading:t,settings:s={}}=n;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)},...s}}),jsonp:l.jsonp,notify:e,loading:t}}function _e(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?k(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(a,i)=>(delete o.data,s.send(l.merge(o,i||{},{data:a})))}}function we(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,a)}}function Se(n=[],e=[],t){const s={};for(const r of n)s[r.id]=_e(r,t);for(const r of e)s[r.id]=we(r,t);return s}async function be(n=[]){C&&(G(),n.forEach(e=>Ee(C,e)))}function je(n){const e=x(n.mockTemplate)&&n.mockTemplate.value?O(n.mockTemplate,{},!0):void 0;return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(r){l.logger.warn("模拟数据模版异常",r)}return C.mock(s)}}function Ee(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const r=l.pathToRegexp(`${t}(.*)`),o=l.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=k(s,{},!0);n.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}),n.mock(a(i))})}}function G(){C&&(C._mocked={})}class $e{__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:s,attrs:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=H){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.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:s}=e,r=t?this.__transform[t]??e.value:e.value;return O({type:s,value:r},this)}else return O(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return k({type:s,value:r},this)}else return k(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await l.delay(0);let r=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;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,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const r=e[t];if(r&&s!==r){const o=new Set([].concat(r,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function I(n){const{Vue:e=H,mode:t=_.Runtime,components:s={},libs:r={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),c={$components:s,$libs:r,$apis:o},u=new $e({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...Ke(i.value.props??[],u)},setup(d){u.$props=d,u.props=d,i.value.id&&z(n.window||window,i.value.id,i.value.css||""),u.state=Ge(e,i.value.state??{},u);const f=We(e,i.value.computed??{},u),g=Ye(i.value.methods??{},u),v=Qe(e,i.value.inject,u),h=Ce(i.value.dataSources||{},u),b={...v,...f,...g,...h};return u.setup(b,e),Xe(e,i.value.watch??[],u),{vtj:u}},emits:ze(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?M(d[0],u,e,a):d.map(f=>M(f,u,e,a))},...Ze(i.value.lifeCycles??{},u)});return{renderer:e.markRaw(m),context:u}}function ze(n=[]){return n.map(e=>l.isString(e)?e:e.name)}function Ke(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>re[o]):void 0;return n.map(s=>l.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:S(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function Ge(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return S(o)?o=t.__parseExpression(o):x(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function We(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function Ye(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function Qe(n,e=[],t){return e.reduce((s,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 s[o]=n.inject(i,c),s},{})}function Ce(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=je(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[s]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c}}return t},{})}function Xe(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function Ze(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}let q=[];const Pe=n=>n;async function W(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(i=>B(i));if(r.length===0||!s)return null;const o=t.filter(i=>N(i));return o.length&&pe(o,e),await fe(r,s,e).catch(i=>(console.warn("loadScriptUrl error",r,s,i),null))}function D(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(q.forEach(r=>{delete s.window[r]}),q=[]),(r,o,a=H)=>!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?I({...s,Vue:a,dsl:i,mode:_.Runtime,loader:D(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?I({...s,Vue:a,dsl:i,mode:_.Runtime,loader:D(n)}).renderer:null}):o.type==="Plugin"?(o.library&&q.push(o.library),a.defineAsyncComponent(async()=>{const i=await W(o,s.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function M(n,e,t=H,s=Pe){if(!n||!n.name||n.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=n,{vIf:i,vFor:c,vShow:u,vModels:m,vBind:d,vHtml:f,others:g}=tt(a);if(i&&!st(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(n.name==="component")return nt(h,n.props?.is);if(n.name==="slot")return n.name;const E=s(n.name,n.from,t);return l.isString(E)?me(E)||ge(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=rt(o,n.props??{},h),Ie=ot(t,n.events??{},h);if(n.name==="slot")return it(t,n,j,h,s);d&&Object.assign(j,h.__parseExpression(d.value)),u&&(j.style=Object.assign(j.style??{},ct(u,h))),f&&Object.assign(j,lt(f,h)),m.forEach(E=>{Object.assign(j,ut(t,E,h))});const De=dt(t,n.children??[],h,s,n);let L=t.createVNode(y,{...j,...Ie},De);const ee=r?et(r,g,h):[];return ee.length&&(L=t.withDirectives(L,ee)),L};return c?ht(c,v,e):v(e)}function et(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.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 tt(n=[]){const e=n.find(c=>l.camelCase(c.name)==="vIf"),t=n.find(c=>l.camelCase(c.name)==="vFor"),s=n.find(c=>l.camelCase(c.name)==="vShow"),r=n.find(c=>l.camelCase(c.name)==="vBind"),o=n.find(c=>l.camelCase(c.name)==="vHtml"),a=n.filter(c=>l.camelCase(c.name)==="vModel"),i=n.filter(c=>!ne.includes(l.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:r,others:i,vHtml:o}}function st(n,e){return!!e.__parseExpression(n.value)}function nt(n,e){return e?S(e)?n.__parseExpression(e):e:"div"}function rt(n,e,t){const s=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return S(a)?a=t.__parseExpression(a):x(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return s.ref=t.__ref(n,s.ref),s}function ot(n,e,t){const s=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],c=Y(i.modifiers),u=c.find(f=>s.includes(f)),m="on"+l.upperFirst(a)+(u&&r[u]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,c)),o},{})}function Y(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function it(n,e,t,s,r){const{children:o}=e,a=at(e,s),i=s.$slots?.[a.name];return i?i(t):o?l.isString(o)?n.createTextVNode(o):S(o)?n.createTextVNode(V(s.__parseExpression(o))):Array.isArray(o)?o.map(c=>M(c,s,n,r)):null:null}function at(n,e){const{props:t}=n,s=t?.name||"default";return{name:S(s)?e.__parseExpression(s):s,params:[]}}function ct(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function lt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function ut(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
10
  }`:"(v) => {}"},r=t.__parseFunction(s),o=Y(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?n.withModifiers(r,o):r}}function dt(n,e,t,s,r){if(!e)return null;if(l.isString(e))return{default:()=>e};if(S(e))return{default:()=>V(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=pt(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]=d=>{const f=m.length?l.pick(d??{},m):a(d);return u.map(g=>M(g,t.__clone(f),n,s))},i),{})}return null}function pt(n){const e={default:{params:[],nodes:[]}};for(const t of n){const s=ft(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params)):e[r]={nodes:[t],params:s.params}}return e}function ft(n="default"){return l.isString(n)?{name:n,params:[]}:{params:[],...n}}function ht(n,e,t){const{value:s,iterator:r}=n,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(s)||[];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]:",`${s?.value} is not a Arrary`),[])}function mt(n){return p.getCurrentScope()?(p.onScopeDispose(n),!0):!1}function Q(n){return typeof n=="function"?n():p.unref(n)}const Re=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const gt=n=>n!=null,vt=()=>{};function yt(n){return p.getCurrentInstance()}function _t(...n){if(n.length!==1)return p.toRef(...n);const e=n[0];return typeof e=="function"?p.readonly(p.customRef(()=>({get:e,set:vt}))):p.ref(e)}function wt(n,e){yt()&&p.onBeforeUnmount(n,e)}const St=Re?window:void 0,bt=Re?window.document:void 0;function jt(n){var e;const t=Q(n);return(e=t?.$el)!=null?e:t}function Et(){const n=p.ref(!1),e=p.getCurrentInstance();return e&&p.onMounted(()=>{n.value=!0},e),n}function $t(n){const e=Et();return p.computed(()=>(e.value,!!n()))}function Ct(n,e,t={}){const{window:s=St,...r}=t;let o;const a=$t(()=>s&&"MutationObserver"in s),i=()=>{o&&(o.disconnect(),o=void 0)},c=p.computed(()=>{const f=Q(n),g=(Array.isArray(f)?f:[f]).map(jt).filter(gt);return new Set(g)}),u=p.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(),d=()=>{u(),i()};return mt(d),{isSupported:a,stop:d,takeRecords:m}}function Pt(n=null,e={}){var t,s,r;const{document:o=bt,restoreOnUnmount:a=d=>d}=e,i=(t=o?.title)!=null?t:"",c=_t((s=n??o?.title)!=null?s:null),u=n&&typeof n=="function";function m(d){if(!("titleTemplate"in e))return d;const f=e.titleTemplate||"%s";return typeof f=="function"?f(d):Q(f).replace(/%s/g,d)}return p.watch(c,(d,f)=>{d!==f&&o&&(o.title=m(typeof d=="string"?d:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!u&&Ct((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==c.value&&(c.value=m(o.title))},{childList:!0}),wt(()=>{if(a){const d=a(i,c.value||"");d!=null&&o&&(o.title=d)}}),c}const te=p.defineComponent({name:"VtjPageContainer",async setup(){const n=Z(),e=se.useRoute(),t=e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,o=p.ref(Symbol());return s&&(Object.assign(e.meta,s.meta||{},{cache:s.cache}),Pt(s.title||"VTJ")),{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?p.h(n,{...e,key:t}):p.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Rt={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},kt={"data-l-h6o7ki7":"",class:"vtj-startup"},xt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},At={"data-l-h6o7ki7":""},Tt={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},Mt={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},ke=p.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"},link:{}},setup(n){((r,o)=>{let a=document.getElementById("h6o7ki7");a||(a=document.createElement("style"),a.id="h6o7ki7",document.head.appendChild(a),a.innerHTML=o)})("h6o7ki7",`
11
11
  .vtj-startup[data-l-h6o7ki7]{
package/dist/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
1
  import { Base as Ae, BUILT_IN_COMPONENTS as Ie, ProjectModel as H, HistoryModel as ue } from "@vtj/core";
2
- import { isUrl as Me, url as R, dedupArray as De, isString as j, isFunction as V, logger as P, storage as U, cookie as L, toArray as re, unRSA as oe, delay as pe, createRequest as de, jsonp as fe, merge as He, pathToRegexp as Oe, pathToRegexpMatch as Be, formDataToJson as Ne, camelCase as $, upperFirst as Ue, pick as Le, request as z, loadScript as ie, Storage as qe, mapToObject as Q } from "@vtj/utils";
2
+ import { isUrl as Me, url as k, dedupArray as De, isString as j, isFunction as V, logger as P, storage as U, cookie as L, toArray as re, unRSA as oe, delay as pe, createRequest as de, jsonp as fe, merge as He, pathToRegexp as Oe, pathToRegexpMatch as Be, formDataToJson as Ne, camelCase as $, upperFirst as Ue, pick as Le, request as z, loadScript as ie, Storage as qe, mapToObject as Q } from "@vtj/utils";
3
3
  import * as B from "vue";
4
- import { inject as he, toRef as Je, readonly as Ve, customRef as ze, ref as F, onBeforeUnmount as Ke, getCurrentScope as We, onScopeDispose as Ge, unref as Ye, getCurrentInstance as me, watch as ve, computed as ge, onMounted as Qe, defineComponent as X, h as K, openBlock as Xe, createElementBlock as Ze, createElementVNode as k, toDisplayString as q, defineAsyncComponent as ae, watchEffect as et } from "vue";
4
+ import { inject as he, toRef as Je, readonly as Ve, customRef as ze, ref as F, onBeforeUnmount as Ke, getCurrentScope as We, onScopeDispose as Ge, unref as Ye, getCurrentInstance as me, watch as ge, computed as ve, onMounted as Qe, defineComponent as X, h as K, openBlock as Xe, createElementBlock as Ze, createElementVNode as R, toDisplayString as q, defineAsyncComponent as ae, watchEffect as et } from "vue";
5
5
  import E from "mockjs";
6
6
  import { useRoute as ye } from "vue-router";
7
7
  /**!
8
8
  * Copyright (c) 2025, VTJ.PRO All rights reserved.
9
9
  * @name @vtj/renderer
10
10
  * @author CHC chenhuachun1549@dingtalk.com
11
- * @version 0.9.12
11
+ * @version 0.9.13
12
12
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
13
13
  */
14
- const x = "0.9.12";
14
+ const x = "0.9.13";
15
15
  var y = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(y || {});
16
16
  const ce = [
17
17
  "$el",
@@ -25,7 +25,7 @@ const ce = [
25
25
  "$props",
26
26
  "$options",
27
27
  "$forceUpdate"
28
- ], Rs = [
28
+ ], ks = [
29
29
  "beforeCreate",
30
30
  "created",
31
31
  "beforeMount",
@@ -71,12 +71,12 @@ function ot(n) {
71
71
  }
72
72
  function Ps(n) {
73
73
  return n.map(
74
- (e) => `<script src="${R.append(e, { v: x })}"><\/script>`
74
+ (e) => `<script src="${k.append(e, { v: x })}"><\/script>`
75
75
  ).join("");
76
76
  }
77
77
  function xs(n = []) {
78
78
  return n.map(
79
- (e) => `<link rel="stylesheet" href="${R.append(e, { v: x })}" />`
79
+ (e) => `<link rel="stylesheet" href="${k.append(e, { v: x })}" />`
80
80
  ).join("");
81
81
  }
82
82
  function it(n, e = !1) {
@@ -86,8 +86,8 @@ function at(n, e, t = !1) {
86
86
  const s = n.filter((p) => !!p.enabled), r = [], o = [], a = [], i = [], c = {}, l = {}, f = [], u = {};
87
87
  return s.forEach(
88
88
  ({ urls: p, assetsUrl: h, library: m, assetsLibrary: d, localeLibrary: w }) => {
89
- p?.forEach((v) => {
90
- ee(v) && r.push(it(v, t)), Z(v) && o.push(v);
89
+ p?.forEach((g) => {
90
+ ee(g) && r.push(it(g, t)), Z(g) && o.push(g);
91
91
  }), m && (i.push(m), c[m] = I(p || [], e), w && (l[m] = w)), h && a.push(h), d && f.push(d), m && d && (u[d] = m);
92
92
  }
93
93
  ), {
@@ -195,7 +195,7 @@ function mt(n) {
195
195
  function Cs(n) {
196
196
  return mt(n) ? n.value : JSON.stringify(n);
197
197
  }
198
- const vt = {
198
+ const gt = {
199
199
  session: !1,
200
200
  authKey: "Authorization",
201
201
  storageKey: "ACCESS_STORAGE",
@@ -213,7 +213,7 @@ class Fs {
213
213
  data = null;
214
214
  mode = y.Raw;
215
215
  constructor(e) {
216
- this.options = Object.assign({}, vt, e), this.loadData();
216
+ this.options = Object.assign({}, gt, e), this.loadData();
217
217
  }
218
218
  connect(e) {
219
219
  const { mode: t, router: s, request: r } = e;
@@ -349,7 +349,7 @@ class Fs {
349
349
  );
350
350
  }
351
351
  }
352
- function gt() {
352
+ function vt() {
353
353
  return he(Se, null);
354
354
  }
355
355
  function Ts(n = {}) {
@@ -442,7 +442,7 @@ function jt(n, e) {
442
442
  if (t && s) {
443
443
  const r = Oe(`${t}(.*)`), o = Be(t, { decode: decodeURIComponent }), a = T(s, {}, !0);
444
444
  n.mock(r, (i) => {
445
- const c = R.parse(i.url) || {}, l = i.body instanceof FormData ? Ne(i.body) : i.body, f = o(i.url)?.params;
445
+ const c = k.parse(i.url) || {}, l = i.body instanceof FormData ? Ne(i.body) : i.body, f = o(i.url)?.params;
446
446
  return Object.assign(i, { data: l, params: c, query: f }), n.mock(a(i));
447
447
  });
448
448
  }
@@ -489,7 +489,7 @@ class $t {
489
489
  }), t.onUnmounted(() => {
490
490
  this.__cleanup();
491
491
  }), t.onBeforeUpdate(() => {
492
- this.__refs = {}, this.$refs = {}, this.__contextRefs = {}, this.context = {};
492
+ this.__reset();
493
493
  });
494
494
  }
495
495
  __proxy() {
@@ -500,7 +500,10 @@ class $t {
500
500
  __cleanup() {
501
501
  ce.forEach((e) => {
502
502
  this[e] = null;
503
- });
503
+ }), this.__reset();
504
+ }
505
+ __reset() {
506
+ this.__refs = {}, this.$refs = {}, this.__contextRefs = {}, this.context = {};
504
507
  }
505
508
  __parseFunction(e) {
506
509
  if (e)
@@ -527,19 +530,17 @@ class $t {
527
530
  typeof t == "string" && (delete this.$refs[t], e && delete this.__refs[e]);
528
531
  return;
529
532
  }
530
- 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] = s), typeof t == "function")
531
- t(s);
532
- else if (t) {
533
- const o = this.$refs[t];
534
- if (o && s !== o) {
535
- const a = new Set([].concat(o, s));
536
- this.$refs[t] = Array.from(a);
537
- } else
538
- this.$refs[t] = s;
539
- }
540
- return s;
533
+ return 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] = this.__getRefEl(this.__refs, e, s)), typeof t == "function" ? t(s) : t && (this.$refs[t] = this.__getRefEl(this.$refs, t, s)), s;
541
534
  };
542
535
  }
536
+ __getRefEl(e, t, s) {
537
+ const r = e[t];
538
+ if (r && s !== r) {
539
+ const o = new Set([].concat(r, s));
540
+ return Array.from(o);
541
+ } else
542
+ return s;
543
+ }
543
544
  __clone(e = {}) {
544
545
  const t = { ...this.context, ...e }, s = {
545
546
  ...t,
@@ -567,14 +568,14 @@ function G(n) {
567
568
  }), f = e.defineComponent({
568
569
  name: i.value.name,
569
570
  props: {
570
- ...kt(i.value.props ?? [], l)
571
+ ...Rt(i.value.props ?? [], l)
571
572
  },
572
573
  setup(u) {
573
574
  l.$props = u, l.props = u, i.value.id && we(
574
575
  n.window || window,
575
576
  i.value.id,
576
577
  i.value.css || ""
577
- ), l.state = Rt(e, i.value.state ?? {}, l);
578
+ ), l.state = kt(e, i.value.state ?? {}, l);
578
579
  const p = Pt(e, i.value.computed ?? {}, l), h = xt(i.value.methods ?? {}, l), m = Ct(e, i.value.inject, l), d = Ft(
579
580
  i.value.dataSources || {},
580
581
  l
@@ -605,7 +606,7 @@ function G(n) {
605
606
  function Et(n = []) {
606
607
  return n.map((e) => j(e) ? e : e.name);
607
608
  }
608
- function kt(n = [], e) {
609
+ function Rt(n = [], e) {
609
610
  const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((o) => st[o]) : void 0;
610
611
  return n.map((s) => j(s) ? {
611
612
  name: s
@@ -623,7 +624,7 @@ function kt(n = [], e) {
623
624
  {}
624
625
  );
625
626
  }
626
- function Rt(n, e, t) {
627
+ function kt(n, e, t) {
627
628
  return n.reactive(
628
629
  Object.keys(e || {}).reduce(
629
630
  (s, r) => {
@@ -736,7 +737,7 @@ function O(n, e, t = B, s = It) {
736
737
  if (i && !Ht(i, e))
737
738
  return null;
738
739
  const m = (d) => {
739
- const w = d.$components, v = (() => {
740
+ const w = d.$components, g = (() => {
740
741
  if (n.name === "component")
741
742
  return Ot(d, n.props?.is);
742
743
  if (n.name === "slot") return n.name;
@@ -758,7 +759,7 @@ function O(n, e, t = B, s = It) {
758
759
  s,
759
760
  n
760
761
  );
761
- let N = t.createVNode(v, { ...S, ...Fe }, Te);
762
+ let N = t.createVNode(g, { ...S, ...Fe }, Te);
762
763
  const ne = r ? Mt(r, h, d) : [];
763
764
  return ne.length && (N = t.withDirectives(N, ne)), N;
764
765
  };
@@ -943,17 +944,17 @@ function os() {
943
944
  }
944
945
  function is(n) {
945
946
  const e = os();
946
- return ge(() => (e.value, !!n()));
947
+ return ve(() => (e.value, !!n()));
947
948
  }
948
949
  function as(n, e, t = {}) {
949
950
  const { window: s = ss, ...r } = t;
950
951
  let o;
951
952
  const a = is(() => s && "MutationObserver" in s), i = () => {
952
953
  o && (o.disconnect(), o = void 0);
953
- }, c = ge(() => {
954
+ }, c = ve(() => {
954
955
  const p = te(n), h = (Array.isArray(p) ? p : [p]).map(rs).filter(Qt);
955
956
  return new Set(h);
956
- }), l = ve(
957
+ }), l = ge(
957
958
  () => c.value,
958
959
  (p) => {
959
960
  i(), a.value && p.size && (o = new MutationObserver(e), p.forEach((h) => o.observe(h, r)));
@@ -980,7 +981,7 @@ function cs(n = null, e = {}) {
980
981
  const p = e.titleTemplate || "%s";
981
982
  return typeof p == "function" ? p(u) : te(p).replace(/%s/g, u);
982
983
  }
983
- return ve(
984
+ return ge(
984
985
  c,
985
986
  (u, p) => {
986
987
  u !== p && o && (o.title = f(typeof u == "string" ? u : ""));
@@ -1002,7 +1003,7 @@ function cs(n = null, e = {}) {
1002
1003
  const le = X({
1003
1004
  name: "VtjPageContainer",
1004
1005
  async setup() {
1005
- const n = Re(), e = ye(), t = e.params.id, s = t ? n.getPage(t) : n.getHomepage(), r = s ? await n.getRenderComponent(s.id) : null, o = F(Symbol());
1006
+ const n = ke(), e = ye(), t = e.params.id, s = t ? n.getPage(t) : n.getHomepage(), r = s ? await n.getRenderComponent(s.id) : null, o = F(Symbol());
1006
1007
  return s && (Object.assign(e.meta, s.meta || {}, { cache: s.cache }), cs(s.title || "VTJ")), {
1007
1008
  provider: n,
1008
1009
  component: r,
@@ -1124,13 +1125,13 @@ const le = X({
1124
1125
  }
1125
1126
  };
1126
1127
  return (r, o) => (Xe(), Ze("div", ls, [
1127
- k("div", us, [
1128
- k("h1", ps, [
1129
- k("span", ds, q(t.name), 1)
1128
+ R("div", us, [
1129
+ R("h1", ps, [
1130
+ R("span", ds, q(t.name), 1)
1130
1131
  ]),
1131
- k("div", fs, q(t.tagline), 1),
1132
- k("div", hs, [
1133
- k("button", {
1132
+ R("div", fs, q(t.tagline), 1),
1133
+ R("div", hs, [
1134
+ R("button", {
1134
1135
  "data-l-h6o7ki7": "",
1135
1136
  onClick: s
1136
1137
  }, q(t.actionText), 1)
@@ -1138,13 +1139,13 @@ const le = X({
1138
1139
  ])
1139
1140
  ]));
1140
1141
  }
1141
- }), vs = X({
1142
+ }), gs = X({
1142
1143
  name: "VtjStartupContainer",
1143
1144
  render() {
1144
1145
  return K(ms);
1145
1146
  }
1146
- }), ke = Symbol("Provider");
1147
- var gs = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(gs || {});
1147
+ }), Re = Symbol("Provider");
1148
+ var vs = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(vs || {});
1148
1149
  class ys extends Ae {
1149
1150
  constructor(e) {
1150
1151
  super(), this.options = e;
@@ -1228,24 +1229,24 @@ class ys extends Ae {
1228
1229
  e[h] = r[h] = await m();
1229
1230
  else {
1230
1231
  const w = l[h] || [];
1231
- for (const v of w)
1232
- Z(v) && await lt(h, R.append(v, { v: x })), ee(v) && await ie(R.append(v, { v: x }));
1232
+ for (const g of w)
1233
+ Z(g) && await lt(h, k.append(g, { v: x })), ee(g) && await ie(k.append(g, { v: x }));
1233
1234
  r[h] = e[h];
1234
1235
  }
1235
1236
  }
1236
1237
  if (i === "development") {
1237
1238
  for (const m of f)
1238
- await ie(R.append(m, { v: x }));
1239
+ await ie(k.append(m, { v: x }));
1239
1240
  const h = this.materials || {};
1240
1241
  for (const m of u) {
1241
1242
  const d = e[p[m]], w = Ie[m];
1242
1243
  if (w)
1243
- d && w.forEach((v) => {
1244
- o[v] = d[v];
1244
+ d && w.forEach((g) => {
1245
+ o[g] = d[g];
1245
1246
  });
1246
1247
  else {
1247
- const v = h[m] ? (await h[m]()).default : e[m];
1248
- v && d && (v.components || []).forEach((S) => {
1248
+ const g = h[m] ? (await h[m]()).default : e[m];
1249
+ g && d && (g.components || []).forEach((S) => {
1249
1250
  o[S.name] = ct(S, d);
1250
1251
  });
1251
1252
  }
@@ -1262,7 +1263,7 @@ class ys extends Ae {
1262
1263
  }, f = {
1263
1264
  path: c,
1264
1265
  name: D,
1265
- component: t?.homepage ? le : r.startupComponent || vs,
1266
+ component: t?.homepage ? le : r.startupComponent || gs,
1266
1267
  meta: i
1267
1268
  };
1268
1269
  e.hasRoute(C) && e.removeRoute(C), e.hasRoute(D) && e.removeRoute(D), o ? (e.addRoute(o, l), e.addRoute(o, f)) : (e.addRoute(l), e.addRoute(f));
@@ -1271,7 +1272,7 @@ class ys extends Ae {
1271
1272
  const t = e.config.globalProperties.installed || {};
1272
1273
  for (const [s, r] of Object.entries(this.library))
1273
1274
  !t[s] && dt(r) && (e.use(r), t[s] = !0);
1274
- this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(ke, this), e.config.globalProperties.installed = t, this.mode === y.Design && (e.config.errorHandler = (s, r, o) => {
1275
+ this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(Re, this), e.config.globalProperties.installed = t, this.mode === y.Design && (e.config.errorHandler = (s, r, o) => {
1275
1276
  const a = r?.$options.name, i = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", c = `[ ${a} ] ${i} ${o}`;
1276
1277
  console.error(
1277
1278
  "[VTJ Error]:",
@@ -1369,8 +1370,8 @@ function As(n) {
1369
1370
  onReady: (s) => e.ready(s)
1370
1371
  };
1371
1372
  }
1372
- function Re(n = {}) {
1373
- const e = he(ke);
1373
+ function ke(n = {}) {
1374
+ const e = he(Re);
1374
1375
  if (!e)
1375
1376
  throw new Error("Can not find provider");
1376
1377
  if (e.nodeEnv === "development") {
@@ -1521,58 +1522,58 @@ class se {
1521
1522
  return console.log("BaseService.genSource", e), "";
1522
1523
  }
1523
1524
  }
1524
- const g = new qe({
1525
+ const v = new qe({
1525
1526
  type: "local",
1526
1527
  expired: 0,
1527
1528
  prefix: "__VTJ_"
1528
1529
  });
1529
1530
  class Ms extends se {
1530
1531
  init(e) {
1531
- const t = new H(e), s = g.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
1532
- return g.save(`project_${t.id}`, r), Promise.resolve(r);
1532
+ const t = new H(e), s = v.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
1533
+ return v.save(`project_${t.id}`, r), Promise.resolve(r);
1533
1534
  }
1534
1535
  saveProject(e) {
1535
1536
  const t = new H(e);
1536
- return g.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
1537
+ return v.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
1537
1538
  }
1538
1539
  saveMaterials(e, t) {
1539
- return g.save(`materials_${e.id}`, Q(t)), Promise.resolve(!0);
1540
+ return v.save(`materials_${e.id}`, Q(t)), Promise.resolve(!0);
1540
1541
  }
1541
1542
  saveFile(e) {
1542
- return g.save(`file_${e.id}`, e), Promise.resolve(!0);
1543
+ return v.save(`file_${e.id}`, e), Promise.resolve(!0);
1543
1544
  }
1544
1545
  getFile(e) {
1545
- const t = g.get(`file_${e}`);
1546
+ const t = v.get(`file_${e}`);
1546
1547
  return t ? Promise.resolve(t) : Promise.reject(null);
1547
1548
  }
1548
1549
  removeFile(e) {
1549
- return g.remove(`file_${e}`), Promise.resolve(!0);
1550
+ return v.remove(`file_${e}`), Promise.resolve(!0);
1550
1551
  }
1551
1552
  saveHistory(e) {
1552
- return g.save(`history_${e.id}`, e), Promise.resolve(!0);
1553
+ return v.save(`history_${e.id}`, e), Promise.resolve(!0);
1553
1554
  }
1554
1555
  removeHistory(e) {
1555
- const t = g.get(`history_${e}`);
1556
+ const t = v.get(`history_${e}`);
1556
1557
  if (t) {
1557
1558
  const r = (t.items || []).map((o) => o.id);
1558
- this.removeHistoryItem(e, r), g.remove(`history_${e}`);
1559
+ this.removeHistoryItem(e, r), v.remove(`history_${e}`);
1559
1560
  }
1560
1561
  return Promise.resolve(!0);
1561
1562
  }
1562
1563
  getHistory(e) {
1563
- const t = g.get(`history_${e}`), s = new ue(t || { id: e });
1564
+ const t = v.get(`history_${e}`), s = new ue(t || { id: e });
1564
1565
  return Promise.resolve(s.toDsl());
1565
1566
  }
1566
1567
  getHistoryItem(e, t) {
1567
- const s = g.get(`history_${e}_${t}`);
1568
+ const s = v.get(`history_${e}_${t}`);
1568
1569
  return Promise.resolve(s);
1569
1570
  }
1570
1571
  saveHistoryItem(e, t) {
1571
- return g.save(`history_${e}_${t.id}`, t), Promise.resolve(!0);
1572
+ return v.save(`history_${e}_${t.id}`, t), Promise.resolve(!0);
1572
1573
  }
1573
1574
  removeHistoryItem(e, t) {
1574
1575
  return t.forEach((s) => {
1575
- g.remove(`history_${e}_${s}`);
1576
+ v.remove(`history_${e}_${s}`);
1576
1577
  }), Promise.resolve(!0);
1577
1578
  }
1578
1579
  }
@@ -1721,7 +1722,7 @@ function Os(n) {
1721
1722
  menuPathPrefix: e = "",
1722
1723
  pageRouteName: t = "page",
1723
1724
  disableMenusFilter: s = !1
1724
- } = n || {}, r = Re(), o = ye(), a = gt(), i = F(!1), c = F(!1), l = r.project;
1725
+ } = n || {}, r = ke(), o = ye(), a = vt(), i = F(!1), c = F(!1), l = r.project;
1725
1726
  et(() => {
1726
1727
  const { name: p, params: h, meta: m } = o;
1727
1728
  if (p === C) {
@@ -1760,10 +1761,10 @@ export {
1760
1761
  D as HOMEPAGE_ROUTE_NAME,
1761
1762
  nt as HTML_TAGS,
1762
1763
  Cs as JSCodeToString,
1763
- Rs as LIFE_CYCLES_LIST,
1764
+ ks as LIFE_CYCLES_LIST,
1764
1765
  Hs as LocalService,
1765
1766
  Ss as MemoryService,
1766
- gs as NodeEnv,
1767
+ vs as NodeEnv,
1767
1768
  C as PAGE_ROUTE_NAME,
1768
1769
  ys as Provider,
1769
1770
  ms as Startup,
@@ -1807,10 +1808,10 @@ export {
1807
1808
  at as parseDeps,
1808
1809
  T as parseExpression,
1809
1810
  W as parseFunction,
1810
- ke as providerKey,
1811
+ Re as providerKey,
1811
1812
  it as removeProdFlag,
1812
1813
  _e as toString,
1813
- gt as useAccess,
1814
+ vt as useAccess,
1814
1815
  Os as useMask,
1815
- Re as useProvider
1816
+ ke as useProvider
1816
1817
  };
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.9.12",
4
+ "version": "0.9.13",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "mockjs": "~1.1.0",
8
- "@vtj/utils": "~0.9.12",
9
- "@vtj/core": "~0.9.12"
8
+ "@vtj/core": "~0.9.13",
9
+ "@vtj/utils": "~0.9.13"
10
10
  },
11
11
  "devDependencies": {
12
12
  "vue": "~3.5.5",
13
13
  "vue-router": "~4.5.0",
14
- "@vtj/icons": "~0.9.12",
15
- "@vtj/ui": "~0.9.12",
14
+ "@vtj/ui": "~0.9.13",
15
+ "@vtj/icons": "~0.9.13",
16
16
  "@vtj/cli": "~0.9.6"
17
17
  },
18
18
  "exports": {
@@ -40,8 +40,10 @@ export declare class Context {
40
40
  setup(attrs: Record<string, any>, Vue?: any): void;
41
41
  private __proxy;
42
42
  private __cleanup;
43
+ private __reset;
43
44
  __parseFunction(code?: JSFunction): Function | undefined;
44
45
  __parseExpression(code?: JSExpression | JSFunction): any;
45
46
  __ref(id?: string | null, ref?: string | Function): ((el: any) => Promise<any>) | undefined;
47
+ __getRefEl(refs: Record<string, any>, key: string, el: any): any;
46
48
  __clone(context?: Record<string, any>): Context;
47
49
  }
@@ -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.9.11
5
+ * @version 0.9.12
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.9.11";
8
+ export declare const version = "0.9.12";