@vtj/renderer 0.11.1 → 0.11.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 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.11.1
5
+ * @version 0.11.2
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const R="0.11.1";var y=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(y||{});const K=["$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"],ie=["vIf","vShow","vModel","vFor","vBind","vHtml"],oe={String,Number,Boolean,Array,Object,Function,Date},C="VtjPage",F="VtjHomepage",ae="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(","),ce="component,slot".split(",");function k(r,e){return r.map(t=>l.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function U(r){return/\.css$/.test(r)}function B(r){return/\.js$/.test(r)}function le(r){return/\.json$/.test(r)}function Ue(r){return r.map(e=>`<script src="${l.url.append(e,{v:R})}"><\/script>`).join("")}function Be(r=[]){return r.map(e=>`<link rel="stylesheet" href="${l.url.append(e,{v:R})}" />`).join("")}function ue(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function pe(r,e,t=!1){const s=r.filter(g=>!!g.enabled),n=[],i=[],a=[],o=[],c={},u={},d=[],f={};return s.forEach(({urls:g,assetsUrl:m,library:h,assetsLibrary:p,localeLibrary:j})=>{g?.forEach(v=>{B(v)&&n.push(ue(v,t)),U(v)&&i.push(v)}),h&&(o.push(h),c[h]=k(g||[],e),j&&(u[h]=j)),m&&a.push(m),p&&d.push(p),h&&p&&(f[p]=h)}),{scripts:k(n,e),css:k(i,e),materials:k(a,e),libraryExports:o,materialExports:l.dedupArray(d),materialMapLibrary:f,libraryMap:c,libraryLocaleMap:u}}function de(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function z(r){return l.isString(r)?r:JSON.stringify(r)}function G(r,e,t){const s=r.CSSStyleSheet;if(s.prototype.replaceSync){const n=new s;n.id=e,n.replaceSync(t);const i=r.document,a=i.adoptedStyleSheets,o=Array.from(a).filter(c=>c.id!==e);i.adoptedStyleSheets=[...o,n]}else{const n=r.document;let i=n.getElementById(e);i?i.innerHTML=t:(i=n.createElement("style"),i.id=e,i.innerHTML=t,n.head.appendChild(i))}}async function fe(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&G(window,r,t)}function he(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function me(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const c of r){const u=s.createElement("script");u.src=c,u.onload=()=>{i=t[e],i?a(i.default||i):o(null)},u.onerror=d=>{o(d)},n.appendChild(u)}})}function ge(r){return l.isFunction(r)||l.isFunction(r?.install)}function ve(r){return ce.includes(r)}function ye(r){return ae.includes(r)}function A(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function Le(r,e,t){Object.assign(e.meta,t.meta);const s=r?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function M(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,c)=>`__self${c}`),i=n.join(`
8
- `)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(l.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function D(r,e,t=!1,s=!1){const n=M(r,e,t,s);if(typeof n!="function"&&(l.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function w(r){return r&&r.type==="JSExpression"}function T(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function _e(r){return w(r)||T(r)}function qe(r){return _e(r)?r.value:JSON.stringify(r)}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 Y{options;data=null;mode=y.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},Je,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===y.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(l.storage.save(t,e,{type:"local",prefix:s}),n&&l.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,l.storage.remove(e,{type:"local",prefix:t}),s&&l.cookie.remove(n)}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(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return l.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this,e.provide(W,this))}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}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(n=>l.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}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===C){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}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:n=!1}=this.options;return await this.showTip(s),l.isFunction(n)?(n(),t(!1)):l.isString(n)?t(n):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=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Se(){return S.inject(W,null)}function Ke(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let c=null;return{request:l.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:d=>d.data?.code===0||!!d.data?.success,failMessage:!0,showError:d=>{e&&e(d||"未知错误")},showLoading:()=>{c&&c.close(),t&&(c=t())},hideLoading:()=>{c&&(c.close(),c=null)},...s}}),jsonp:l.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new Y({alert:o,...i}):void 0}}function Ve(r={}){return new Y(r)}function we(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?M(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(l.merge(i,o||{},{data:a})))}}function je(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Ee(r=[],e=[],t){const s={};for(const n of r)s[n.id]=we(n,t);for(const n of e)s[n.id]=je(n,t);return s}async function Pe(r=[],e=window){const t=A(e);t&&(Q(e),r.forEach(s=>$e(t,s)))}function be(r,e=window){const t=T(r.mockTemplate)&&r.mockTemplate.value?D(r.mockTemplate,{},!0):void 0,s=A(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){l.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function $e(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=l.pathToRegexp(`${t}(.*)`),i=l.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=M(s,{},!0);r.mock(n,o=>{const c=l.url.parse(o.url)||{},u=o.body instanceof FormData?l.formDataToJson(o.body):o.body,d=i(o.url)?.params;return Object.assign(o,{data:u,params:c,query:d}),r.mock(a(o))})}}function Q(r=window){const e=A(r);e&&(e._mocked={})}class Re{__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:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=N){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&K.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){K.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return D({type:s,value:n},this)}else return D(e,this)}__parseExpression(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return M({type:s,value:n},this)}else return M(e,this)}__ref(e=null,t){if(this.__mode!==y.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await l.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,y.Design===this.__mode&&(n.__context__=this,n.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 n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}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 H(r){const{Vue:e=N,mode:t=y.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),c={$components:s,$libs:n,$apis:i},u=new Re({mode:t,dsl:o.value,attrs:c}),d=e.defineComponent({name:o.value.name,props:{...Ge(o.value.props??[],u)},setup(f){u.$props=f,u.props=f,o.value.id&&G(r.window||window,o.value.id,o.value.css||""),u.state=We(e,o.value.state??{},u);const g=Ye(e,o.value.computed??{},u),m=Qe(o.value.methods??{},u),h=Xe(e,o.value.inject,u),p=Ce(o.value.dataSources||{},u),j={...h,...g,...m,...p};return u.setup(j,e),Ze(e,o.value.watch??[],u),{vtj:u}},emits:ze(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const f=o.value.nodes||[];return f.length===1?I(f[0],u,e,a):f.map(g=>I(g,u,e,a))},...et(o.value.lifeCycles??{},u)});return{renderer:e.markRaw(d),context:u}}function ze(r=[]){return r.map(e=>l.isString(e)?e:e.name)}function Ge(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>oe[i]):void 0;return r.map(s=>l.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:w(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function We(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return w(i)?i=t.__parseExpression(i):T(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function Ye(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function Qe(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function Xe(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=w(a)?t.__parseExpression(a)||i:a??i,c=w(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,c),s},{})}function Ce(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=be(n);else if(n.ref){const i=e.$apis[n.ref],a=T(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const c=await i.apply(e,o);return a?a(c):c}}return t},{})}function Ze(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function et(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}let J=[],$={};const Ae=r=>r;async function X(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>B(o));if(n.length===0||!s)return null;const i=t.filter(o=>U(o));return i.length&&he(i,e),await me(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function x(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(J.forEach(n=>{delete s.window[n]}),J=[]),(n,i,a=N)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id){let o=$[i.id];return o||(o=$[i.id]=a.defineAsyncComponent(async()=>{const c=await e(i.id);return c&&(c.name=n),c?H({...s,Vue:a,dsl:c,mode:y.Runtime,loader:x(r)}).renderer:null}),o)}if(i.type==="UrlSchema"&&i.url){let o=$[i.url];return o||(o=$[i.url]=a.defineAsyncComponent(async()=>{const c=await t(i.url);return c&&(c.name=n),c?H({...s,Vue:a,dsl:c,mode:y.Runtime,loader:x(r)}).renderer:null}),o)}if(i.type==="Plugin"){let o=i.library?$[i.library]:null;return o||(i.library&&J.push(i.library),o=$[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const c=await X(i,s.window);return c||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function tt(){$={}}function I(r,e,t=N,s=Ae){if(!r||!r.name||r.invisible)return null;const n=t.getCurrentInstance()?.appContext,{id:i=null,directives:a=[]}=r,{vIf:o,vFor:c,vShow:u,vModels:d,vBind:f,vHtml:g,others:m}=rt(a);if(o&&!nt(o,e))return null;const h=p=>{const j=p.$components,v=(()=>{if(r.name==="component")return it(p,r.props?.is);if(r.name==="slot")return r.name;const P=s(r.name,r.from,t);return l.isString(P)?ve(P)||ye(P)?P:j[P]??n?.app?.component(P)??P:P})(),E=ot(i,r.props??{},p),De=at(t,r.events??{},p);if(r.name==="slot")return ct(t,r,E,p,s);f&&Object.assign(E,p.__parseExpression(f.value)),u&&(E.style=Object.assign(E.style??{},ut(u,p))),g&&Object.assign(E,pt(g,p)),d.forEach(P=>{Object.assign(E,dt(t,P,p))});const He=ft(t,r.children??[],p,s,r);let q=t.createVNode(v,{...E,...De},He);const se=n?st(n,m,p):[];return se.length&&(q=t.withDirectives(q,se)),q};return c?gt(c,h,e):h(e)}function st(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function rt(r=[]){const e=r.find(c=>l.camelCase(c.name)==="vIf"),t=r.find(c=>l.camelCase(c.name)==="vFor"),s=r.find(c=>l.camelCase(c.name)==="vShow"),n=r.find(c=>l.camelCase(c.name)==="vBind"),i=r.find(c=>l.camelCase(c.name)==="vHtml"),a=r.filter(c=>l.camelCase(c.name)==="vModel"),o=r.filter(c=>!ie.includes(l.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:n,others:o,vHtml:i}}function nt(r,e){return!!e.__parseExpression(r.value)}function it(r,e){return e?w(e)?r.__parseExpression(e):e:"div"}function ot(r,e,t){const s=V(e,t);return s.ref=t.__ref(r,s.ref),s}function V(r,e){return w(r)?e.__parseExpression(r):T(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>V(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=V(n,e),t},{}):r}function at(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],c=Z(o.modifiers),u=c.find(g=>s.includes(g)),d="on"+l.upperFirst(a)+(u&&n[u]||""),f=t.__parseFunction(o.handler);return f&&(i[d]=r.withModifiers(f,c)),i},{})}function Z(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function ct(r,e,t,s,n){const{children:i}=e,a=lt(e,s),o=s.$slots?.[a.name];return o?o(t):i?l.isString(i)?r.createTextVNode(i):w(i)?r.createTextVNode(z(s.__parseExpression(i))):Array.isArray(i)?i.map(c=>I(c,s,r,n)):null:null}function lt(r,e){const{props:t}=r,s=t?.name||"default";return{name:w(s)?e.__parseExpression(s):s,params:[]}}function ut(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function pt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function dt(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const R="0.11.2";var y=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(y||{});const K=["$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"],ie=["vIf","vShow","vModel","vFor","vBind","vHtml"],oe={String,Number,Boolean,Array,Object,Function,Date},C="VtjPage",F="VtjHomepage",ae="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(","),ce="component,slot".split(",");function k(r,e){return r.map(t=>l.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function U(r){return/\.css$/.test(r)}function B(r){return/\.js$/.test(r)}function le(r){return/\.json$/.test(r)}function Ue(r){return r.map(e=>`<script src="${l.url.append(e,{v:R})}"><\/script>`).join("")}function Be(r=[]){return r.map(e=>`<link rel="stylesheet" href="${l.url.append(e,{v:R})}" />`).join("")}function ue(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function pe(r,e,t=!1){const s=r.filter(g=>!!g.enabled),n=[],i=[],a=[],o=[],c={},u={},d=[],f={};return s.forEach(({urls:g,assetsUrl:m,library:h,assetsLibrary:p,localeLibrary:j})=>{g?.forEach(v=>{B(v)&&n.push(ue(v,t)),U(v)&&i.push(v)}),h&&(o.push(h),c[h]=k(g||[],e),j&&(u[h]=j)),m&&a.push(m),p&&d.push(p),h&&p&&(f[p]=h)}),{scripts:k(n,e),css:k(i,e),materials:k(a,e),libraryExports:o,materialExports:l.dedupArray(d),materialMapLibrary:f,libraryMap:c,libraryLocaleMap:u}}function de(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function z(r){return l.isString(r)?r:JSON.stringify(r)}function G(r,e,t){const s=r.CSSStyleSheet;if(s.prototype.replaceSync){const n=new s;n.id=e,n.replaceSync(t);const i=r.document,a=i.adoptedStyleSheets,o=Array.from(a).filter(c=>c.id!==e);i.adoptedStyleSheets=[...o,n]}else{const n=r.document;let i=n.getElementById(e);i?i.innerHTML=t:(i=n.createElement("style"),i.id=e,i.innerHTML=t,n.head.appendChild(i))}}async function fe(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&G(window,r,t)}function he(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function me(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const c of r){const u=s.createElement("script");u.src=c,u.onload=()=>{i=t[e],i?a(i.default||i):o(null)},u.onerror=d=>{o(d)},n.appendChild(u)}})}function ge(r){return l.isFunction(r)||l.isFunction(r?.install)}function ve(r){return ce.includes(r)}function ye(r){return ae.includes(r)}function A(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function Le(r,e,t){Object.assign(e.meta,t.meta);const s=r?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function M(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,c)=>`__self${c}`),i=n.join(`
8
+ `)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(l.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function D(r,e,t=!1,s=!1){const n=M(r,e,t,s);if(typeof n!="function"&&(l.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function w(r){return r&&r.type==="JSExpression"}function T(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function _e(r){return w(r)||T(r)}function qe(r){return _e(r)?r.value:JSON.stringify(r)}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 Y{options;data=null;mode=y.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},Je,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===y.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(l.storage.save(t,e,{type:"local",prefix:s}),n&&l.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,l.storage.remove(e,{type:"local",prefix:t}),s&&l.cookie.remove(n)}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(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return l.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this,e.provide(W,this))}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}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(n=>l.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}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===C){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}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:n=!1}=this.options;return await this.showTip(s),l.isFunction(n)?(n(),t(!1)):l.isString(n)?t(n):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=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Se(){return S.inject(W,null)}function Ke(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let c=null;return{request:l.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:d=>d.data?.code===0||!!d.data?.success,failMessage:!0,showError:d=>{e&&e(d||"未知错误")},showLoading:()=>{c&&c.close(),t&&(c=t())},hideLoading:()=>{c&&(c.close(),c=null)},...s}}),jsonp:l.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new Y({alert:o,...i}):void 0}}function Ve(r={}){return new Y(r)}function we(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?M(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(l.merge(i,o||{},{data:a})))}}function je(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Ee(r=[],e=[],t){const s={};for(const n of r)s[n.id]=we(n,t);for(const n of e)s[n.id]=je(n,t);return s}async function Pe(r=[],e=window){const t=A(e);t&&(Q(e),r.forEach(s=>$e(t,s)))}function be(r,e=window){const t=T(r.mockTemplate)&&r.mockTemplate.value?D(r.mockTemplate,{},!0):void 0,s=A(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){l.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function $e(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=l.pathToRegexp(`${t}(.*)`),i=l.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=M(s,{},!0);r.mock(n,o=>{const c=l.url.parse(o.url)||{},u=o.body instanceof FormData?l.formDataToJson(o.body):o.body,d=i(o.url)?.params;return Object.assign(o,{data:u,params:c,query:d}),r.mock(a(o))})}}function Q(r=window){const e=A(r);e&&(e._mocked={})}class Re{__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:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=N){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&K.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){K.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return D({type:s,value:n},this)}else return D(e,this)}__parseExpression(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return M({type:s,value:n},this)}else return M(e,this)}__ref(e=null,t){if(this.__mode!==y.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await l.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,y.Design===this.__mode&&(n.__context__=this,n.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 n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}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 H(r){const{Vue:e=N,mode:t=y.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),c={$components:s,$libs:n,$apis:i},u=new Re({mode:t,dsl:o.value,attrs:c}),d=e.defineComponent({name:o.value.name,props:{...Ge(o.value.props??[],u)},setup(f){u.$props=f,u.props=f,o.value.id&&G(r.window||window,o.value.id,o.value.css||""),u.state=We(e,o.value.state??{},u);const g=Ye(e,o.value.computed??{},u),m=Qe(o.value.methods??{},u),h=Xe(e,o.value.inject,u),p=Ce(o.value.dataSources||{},u),j={...h,...g,...m,...p};return u.setup(j,e),Ze(e,o.value.watch??[],u),{vtj:u}},emits:ze(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const f=o.value.nodes||[];return f.length===1?I(f[0],u,e,a):f.map(g=>I(g,u,e,a))},...et(o.value.lifeCycles??{},u)});return{renderer:e.markRaw(d),context:u}}function ze(r=[]){return r.map(e=>l.isString(e)?e:e.name)}function Ge(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>oe[i]):void 0;return r.map(s=>l.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:w(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function We(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return w(i)?i=t.__parseExpression(i):T(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function Ye(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function Qe(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function Xe(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=w(a)?t.__parseExpression(a)||i:a??i,c=w(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,c),s},{})}function Ce(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=be(n);else if(n.ref){const i=e.$apis[n.ref],a=T(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const c=await i.apply(e,o);return a?a(c):c}}return t},{})}function Ze(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function et(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}let J=[],$={};const Ae=r=>r;async function X(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>B(o));if(n.length===0||!s)return null;const i=t.filter(o=>U(o));return i.length&&he(i,e),await me(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function x(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(J.forEach(n=>{delete s.window[n]}),J=[]),(n,i,a=N)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id){let o=$[i.id];return o?l.cloneDeep(o):(o=$[i.id]=a.defineAsyncComponent(async()=>{const c=await e(i.id);return c&&(c.name=n),c?H({...s,Vue:a,dsl:c,mode:y.Runtime,loader:x(r)}).renderer:null}),o)}if(i.type==="UrlSchema"&&i.url){let o=$[i.url];return o||(o=$[i.url]=a.defineAsyncComponent(async()=>{const c=await t(i.url);return c&&(c.name=n),c?H({...s,Vue:a,dsl:c,mode:y.Runtime,loader:x(r)}).renderer:null}),o)}if(i.type==="Plugin"){let o=i.library?$[i.library]:null;return o||(i.library&&J.push(i.library),o=$[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const c=await X(i,s.window);return c||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function tt(){$={}}function I(r,e,t=N,s=Ae){if(!r||!r.name||r.invisible)return null;const n=t.getCurrentInstance()?.appContext,{id:i=null,directives:a=[]}=r,{vIf:o,vFor:c,vShow:u,vModels:d,vBind:f,vHtml:g,others:m}=rt(a);if(o&&!nt(o,e))return null;const h=p=>{const j=p.$components,v=(()=>{if(r.name==="component")return it(p,r.props?.is);if(r.name==="slot")return r.name;const P=s(r.name,r.from,t);return l.isString(P)?ve(P)||ye(P)?P:j[P]??n?.app?.component(P)??P:P})(),E=ot(i,r.props??{},p),De=at(t,r.events??{},p);if(r.name==="slot")return ct(t,r,E,p,s);f&&Object.assign(E,p.__parseExpression(f.value)),u&&(E.style=Object.assign(E.style??{},ut(u,p))),g&&Object.assign(E,pt(g,p)),d.forEach(P=>{Object.assign(E,dt(t,P,p))});const He=ft(t,r.children??[],p,s,r);let q=t.createVNode(v,{...E,...De},He);const se=n?st(n,m,p):[];return se.length&&(q=t.withDirectives(q,se)),q};return c?gt(c,h,e):h(e)}function st(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function rt(r=[]){const e=r.find(c=>l.camelCase(c.name)==="vIf"),t=r.find(c=>l.camelCase(c.name)==="vFor"),s=r.find(c=>l.camelCase(c.name)==="vShow"),n=r.find(c=>l.camelCase(c.name)==="vBind"),i=r.find(c=>l.camelCase(c.name)==="vHtml"),a=r.filter(c=>l.camelCase(c.name)==="vModel"),o=r.filter(c=>!ie.includes(l.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:n,others:o,vHtml:i}}function nt(r,e){return!!e.__parseExpression(r.value)}function it(r,e){return e?w(e)?r.__parseExpression(e):e:"div"}function ot(r,e,t){const s=V(e,t);return s.ref=t.__ref(r,s.ref),s}function V(r,e){return w(r)?e.__parseExpression(r):T(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>V(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=V(n,e),t},{}):r}function at(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],c=Z(o.modifiers),u=c.find(g=>s.includes(g)),d="on"+l.upperFirst(a)+(u&&n[u]||""),f=t.__parseFunction(o.handler);return f&&(i[d]=r.withModifiers(f,c)),i},{})}function Z(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function ct(r,e,t,s,n){const{children:i}=e,a=lt(e,s),o=s.$slots?.[a.name];return o?o(t):i?l.isString(i)?r.createTextVNode(i):w(i)?r.createTextVNode(z(s.__parseExpression(i))):Array.isArray(i)?i.map(c=>I(c,s,r,n)):null:null}function lt(r,e){const{props:t}=r,s=t?.name||"default";return{name:w(s)?e.__parseExpression(s):s,params:[]}}function ut(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function pt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function dt(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
10
  }`:"(v) => {}"},n=t.__parseFunction(s),i=Z(w(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=w(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function ft(r,e,t,s,n){if(!e)return null;if(l.isString(e))return{default:()=>e};if(w(e))return{default:()=>z(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=ht(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[c,{nodes:u,params:d}])=>(o[c]=f=>{const g=d.length?l.pick(f??{},d):a(f);return u.map(m=>I(m,t.__clone(g),r,s))},o),{})}return null}function ht(r){const e={default:{params:[],nodes:[]}};for(const t of r){const s=mt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params)):e[n]={nodes:[t],params:s.params}}return e}function mt(r="default"){return l.isString(r)?{name:r,params:[]}:{params:[],...r}}function gt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((c,u)=>u+1)),Array.isArray(o)?o.map((c,u)=>e(t.__clone({[i]:c,[a]:u}))):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const re=S.defineComponent({name:"VtjPageContainer",async setup(){const r=te(),e=ne.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=S.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?S.h(r,{...e,key:t}):S.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),vt=S.defineComponent({name:"VtjStartupContainer",render(){return S.h("div","page not found!")}}),ee=Symbol("Provider");var Me=(r=>(r.Production="production",r.Development="development",r))(Me||{});class Te extends b.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=y.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:c={},modules:u={},router:d=null,materialPath:f="./",nodeEnv:g="development"}=e;this.mode=s,this.modules=u,this.service=t,this.router=d,this.materialPath=f,this.nodeEnv=g,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,c),Object.assign(this.adapter,o);const{access:m,request:h}=this.adapter;m&&m.connect({mode:s,router:d,request:h}),a&&s!==y.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:l.request,jsonp:l.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){l.logger.warn("模拟数据模版异常",i)}return A()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===y.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Ee(s,n,this.adapter),Q(i),Pe(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=A(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:i,materialPath:a,nodeEnv:o}=this,{libraryExports:c,libraryMap:u,materials:d,materialExports:f,materialMapLibrary:g}=pe(t,a,o==="development");for(const m of c){const h=s[m],p=e[m];if(p)n[m]=p;else if(h)e[m]=n[m]=await h();else{const j=u[m]||[];for(const v of j)U(v)&&await fe(m,l.url.append(v,{v:R})),B(v)&&await l.loadScript(l.url.append(v,{v:R}));n[m]=e[m]}}if(o==="development"){for(const h of d)await l.loadScript(l.url.append(h,{v:R}));const m=this.materials||{};for(const h of f){const p=e[g[h]],j=b.BUILT_IN_COMPONENTS[h];if(j)p&&j.forEach(v=>{i[v]=p[v]});else{const v=m[h]?(await m[h]()).default:e[h];v&&p&&(v.components||[]).forEach(E=>{i[E.name]=de(E,p)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:c}=s,u=a?"":"/",d={path:`${u}${o}/:id`,name:C,component:re},f={path:u,name:F,component:t?.homepage?re:n.startupComponent||vt,meta:c};e.hasRoute(C)&&e.removeRoute(C),e.hasRoute(F)&&e.removeRoute(F),a?(e.addRoute(a,d),e.addRoute(a,f)):(e.addRoute(d),e.addRoute(f))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&ge(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(ee,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===y.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",c=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(c,"组件渲染错误","error")})}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},c=x({getDsl:async u=>await this.getDsl(u)||null,getDslByUrl:async u=>await this.getDslByUrl(u)||null,options:o});return H({...o,dsl:e,loader:c})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return l.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(l.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return S.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return S.defineAsyncComponent(async()=>await X(e,window))}}function yt(r){const e=new Te(r);return{provider:e,onReady:s=>e.ready(s)}}function te(r={}){const e=S.inject(ee,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}const ke={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},_t=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:ke}),St=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...ke,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function wt(r){return l.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class L{api;pluginCaches={};uploader;constructor(e=l.request){this.api=_t(e),this.uploader=St(e)}async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>le(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=l.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const _=new l.Storage({type:"local",expired:0,prefix:"__VTJ_"});class jt extends L{init(e){const t=new b.ProjectModel(e),s=_.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return _.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new b.ProjectModel(e);return _.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return _.save(`materials_${e.id}`,l.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return _.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=_.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return _.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return _.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=_.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),_.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=_.get(`history_${e}`),s=new b.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=_.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return _.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{_.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Fe extends L{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new b.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new b.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=l.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new b.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let O=null;function Et(){return O||(O=new Fe,O)}class Pt extends L{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:l.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}function Ie(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:c}=s;return{id:n,title:i,icon:a,hidden:c,url:`${r}/${e}/${n}`,children:o&&o.length?Ie(r,e,o):void 0}})}function Oe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Oe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function bt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=te(),i=ne.useRoute(),a=Se(),o=S.ref(!1),c=S.ref(!1),u=n.project;S.watchEffect(()=>{const{name:g,params:m,meta:h}=i;if(g===C){const p=n.getPage(m.id);o.value=!p?.mask,c.value=!!p?.pure}else if(g===F){const p=n.getHomepage();o.value=!p?.mask,c.value=!!p?.pure}else o.value=!h.mask,c.value=!!h.pure});const d=Ie(e,t,u?.pages),f=u?.config;return{disabled:o,logo:f?.logo,themeSwitchable:f?.themeSwitchable,title:f?.title||u?.description||u?.name||"VTJ App",menus:s?d:Oe(d,a),pure:c}}exports.ACCESS_KEY=W;exports.Access=Y;exports.BUILD_IN_TAGS=ce;exports.BUILT_IN_DIRECTIVES=ie;exports.BaseService=L;exports.CONTEXT_HOST=K;exports.Context=Re;exports.ContextMode=y;exports.DATA_TYPES=oe;exports.HOMEPAGE_ROUTE_NAME=F;exports.HTML_TAGS=ae;exports.JSCodeToString=qe;exports.LIFE_CYCLES_LIST=Ne;exports.LocalService=Pt;exports.MemoryService=Fe;exports.NodeEnv=Me;exports.PAGE_ROUTE_NAME=C;exports.Provider=Te;exports.StorageService=jt;exports.VTJ_RENDERER_VERSION=R;exports.adoptedStyleSheets=G;exports.clearLoaderCache=tt;exports.createAccess=Ve;exports.createAdapter=Ke;exports.createAssetScripts=Ue;exports.createAssetsCss=Be;exports.createDataSources=Ce;exports.createLoader=x;exports.createMemoryService=Et;exports.createMetaApi=je;exports.createMock=be;exports.createProvider=yt;exports.createRenderer=H;exports.createSchemaApi=we;exports.createSchemaApis=Ee;exports.createServiceRequest=wt;exports.defaultLoader=Ae;exports.fillBasePath=k;exports.getMock=A;exports.getModifiers=Z;exports.getPlugin=X;exports.getRawComponent=de;exports.isBuiltInTag=ve;exports.isCSSUrl=U;exports.isJSCode=_e;exports.isJSExpression=w;exports.isJSFunction=T;exports.isJSON=le;exports.isJSUrl=B;exports.isNativeTag=ye;exports.isVuePlugin=ge;exports.loadCss=fe;exports.loadCssUrl=he;exports.loadScriptUrl=me;exports.mockApi=$e;exports.mockApis=Pe;exports.mockCleanup=Q;exports.nodeRender=I;exports.parseDeps=pe;exports.parseExpression=M;exports.parseFunction=D;exports.providerKey=ee;exports.removeProdFlag=ue;exports.setupPageSetting=Le;exports.toString=z;exports.useAccess=Se;exports.useMask=bt;exports.useProvider=te;
package/dist/index.mjs CHANGED
@@ -1,16 +1,16 @@
1
1
  import { Base as ke, BUILT_IN_COMPONENTS as Fe, ProjectModel as D, HistoryModel as ce } from "@vtj/core";
2
- import { isUrl as Ae, url as E, dedupArray as Me, isString as j, isFunction as q, logger as R, storage as B, cookie as U, toArray as se, unRSA as re, delay as le, createRequest as ue, jsonp as pe, merge as Ie, pathToRegexp as He, pathToRegexpMatch as Te, formDataToJson as De, camelCase as b, upperFirst as xe, pick as Oe, request as J, loadScript as ne, Storage as Ne, mapToObject as Q } from "@vtj/utils";
2
+ import { isUrl as Ae, url as E, dedupArray as Me, isString as j, isFunction as q, logger as R, storage as B, cookie as U, toArray as se, unRSA as re, delay as le, createRequest as ue, jsonp as pe, merge as Ie, pathToRegexp as He, pathToRegexpMatch as Te, formDataToJson as De, cloneDeep as xe, camelCase as b, upperFirst as Oe, pick as Ne, request as J, loadScript as ne, Storage as Be, mapToObject as Q } from "@vtj/utils";
3
3
  import * as O from "vue";
4
- import { inject as de, defineComponent as fe, h as K, ref as z, defineAsyncComponent as ie, watchEffect as Be } from "vue";
4
+ import { inject as de, defineComponent as fe, h as K, ref as z, defineAsyncComponent as ie, watchEffect as Ue } from "vue";
5
5
  import { useRoute as he } from "vue-router";
6
6
  /**!
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.11.1
10
+ * @version 0.11.2
11
11
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
12
12
  */
13
- const C = "0.11.1";
13
+ const C = "0.11.2";
14
14
  var y = /* @__PURE__ */ ((r) => (r.Runtime = "Runtime", r.Design = "Design", r.Raw = "Raw", r.VNode = "VNode", r))(y || {});
15
15
  const oe = [
16
16
  "$el",
@@ -24,7 +24,7 @@ const oe = [
24
24
  "$props",
25
25
  "$options",
26
26
  "$forceUpdate"
27
- ], zt = [
27
+ ], Vt = [
28
28
  "beforeCreate",
29
29
  "created",
30
30
  "beforeMount",
@@ -38,14 +38,14 @@ const oe = [
38
38
  "renderTriggered",
39
39
  "activated",
40
40
  "deactivated"
41
- ], Ue = [
41
+ ], Le = [
42
42
  "vIf",
43
43
  "vShow",
44
44
  "vModel",
45
45
  "vFor",
46
46
  "vBind",
47
47
  "vHtml"
48
- ], Le = {
48
+ ], qe = {
49
49
  String,
50
50
  Number,
51
51
  Boolean,
@@ -53,9 +53,9 @@ const oe = [
53
53
  Object,
54
54
  Function,
55
55
  Date
56
- }, k = "VtjPage", T = "VtjHomepage", qe = "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(
56
+ }, k = "VtjPage", T = "VtjHomepage", Je = "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(
57
57
  ","
58
- ), Je = "component,slot".split(",");
58
+ ), Ke = "component,slot".split(",");
59
59
  function I(r, e) {
60
60
  return r.map((t) => Ae(t) || t.startsWith("/") ? t : `${e}${t}`);
61
61
  }
@@ -65,28 +65,28 @@ function X(r) {
65
65
  function Z(r) {
66
66
  return /\.js$/.test(r);
67
67
  }
68
- function Ke(r) {
68
+ function ze(r) {
69
69
  return /\.json$/.test(r);
70
70
  }
71
- function Vt(r) {
71
+ function Wt(r) {
72
72
  return r.map(
73
73
  (e) => `<script src="${E.append(e, { v: C })}"><\/script>`
74
74
  ).join("");
75
75
  }
76
- function Wt(r = []) {
76
+ function Gt(r = []) {
77
77
  return r.map(
78
78
  (e) => `<link rel="stylesheet" href="${E.append(e, { v: C })}" />`
79
79
  ).join("");
80
80
  }
81
- function ze(r, e = !1) {
81
+ function Ve(r, e = !1) {
82
82
  return e && r.endsWith(".prod.js") ? r.replace(".prod.js", ".js") : r;
83
83
  }
84
- function Ve(r, e, t = !1) {
84
+ function We(r, e, t = !1) {
85
85
  const s = r.filter((m) => !!m.enabled), n = [], i = [], a = [], o = [], c = {}, l = {}, p = [], d = {};
86
86
  return s.forEach(
87
87
  ({ urls: m, assetsUrl: h, library: f, assetsLibrary: u, localeLibrary: w }) => {
88
88
  m?.forEach((g) => {
89
- Z(g) && n.push(ze(g, t)), X(g) && i.push(g);
89
+ Z(g) && n.push(Ve(g, t)), X(g) && i.push(g);
90
90
  }), f && (o.push(f), c[f] = I(m || [], e), w && (l[f] = w)), h && a.push(h), u && p.push(u), f && u && (d[u] = f);
91
91
  }
92
92
  ), {
@@ -100,7 +100,7 @@ function Ve(r, e, t = !1) {
100
100
  libraryLocaleMap: l
101
101
  };
102
102
  }
103
- function We(r, e) {
103
+ function Ge(r, e) {
104
104
  const { name: t, parent: s, alias: n } = r;
105
105
  return s ? e[s]?.[n || t] : e[n || t];
106
106
  }
@@ -122,11 +122,11 @@ function ge(r, e, t) {
122
122
  i ? i.innerHTML = t : (i = n.createElement("style"), i.id = e, i.innerHTML = t, n.head.appendChild(i));
123
123
  }
124
124
  }
125
- async function Ge(r, e) {
125
+ async function Ye(r, e) {
126
126
  const t = await window.fetch(e).then((s) => s.text()).catch(() => "");
127
127
  t && ge(window, r, t);
128
128
  }
129
- function Ye(r, e = window) {
129
+ function Qe(r, e = window) {
130
130
  const t = e.document, s = e.document.head;
131
131
  for (const n of r)
132
132
  if (!t.getElementById(n)) {
@@ -134,7 +134,7 @@ function Ye(r, e = window) {
134
134
  a.rel = "stylesheet", a.id = n, a.href = n, s.appendChild(a);
135
135
  }
136
136
  }
137
- async function Qe(r, e, t = window) {
137
+ async function Xe(r, e, t = window) {
138
138
  const s = t.document, n = t.document.head;
139
139
  let i = t[e];
140
140
  return i ? i.default || i : new Promise((a, o) => {
@@ -148,14 +148,14 @@ async function Qe(r, e, t = window) {
148
148
  }
149
149
  });
150
150
  }
151
- function Xe(r) {
152
- return q(r) || q(r?.install);
153
- }
154
151
  function Ze(r) {
155
- return Je.includes(r);
152
+ return q(r) || q(r?.install);
156
153
  }
157
154
  function et(r) {
158
- return qe.includes(r);
155
+ return Ke.includes(r);
156
+ }
157
+ function tt(r) {
158
+ return Je.includes(r);
159
159
  }
160
160
  function F(r = window) {
161
161
  const e = window?.Mock;
@@ -164,7 +164,7 @@ function F(r = window) {
164
164
  if (t && window)
165
165
  return window.Mock = t, t;
166
166
  }
167
- function Gt(r, e, t) {
167
+ function Yt(r, e, t) {
168
168
  Object.assign(e.meta, t.meta);
169
169
  const s = r?._container;
170
170
  t?.type === "page" && s.classList.add("is-page"), t?.pure && s.classList.add("is-pure");
@@ -200,13 +200,13 @@ function _(r) {
200
200
  function M(r) {
201
201
  return typeof r == "object" && r && r.type === "JSFunction";
202
202
  }
203
- function tt(r) {
203
+ function st(r) {
204
204
  return _(r) || M(r);
205
205
  }
206
- function Yt(r) {
207
- return tt(r) ? r.value : JSON.stringify(r);
206
+ function Qt(r) {
207
+ return st(r) ? r.value : JSON.stringify(r);
208
208
  }
209
- const st = {
209
+ const rt = {
210
210
  session: !1,
211
211
  authKey: "Authorization",
212
212
  storageKey: "ACCESS_STORAGE",
@@ -225,7 +225,7 @@ class ye {
225
225
  mode = y.Raw;
226
226
  interceptResponse = !0;
227
227
  constructor(e) {
228
- this.options = Object.assign({}, st, e), this.loadData();
228
+ this.options = Object.assign({}, rt, e), this.loadData();
229
229
  }
230
230
  enableIntercept() {
231
231
  this.interceptResponse = !0;
@@ -372,10 +372,10 @@ class ye {
372
372
  );
373
373
  }
374
374
  }
375
- function rt() {
375
+ function nt() {
376
376
  return de(ve, null);
377
377
  }
378
- function Qt(r = {}) {
378
+ function Xt(r = {}) {
379
379
  const {
380
380
  notify: e,
381
381
  loading: t,
@@ -415,10 +415,10 @@ function Qt(r = {}) {
415
415
  access: i ? new ye({ alert: o, ...i }) : void 0
416
416
  };
417
417
  }
418
- function Xt(r = {}) {
418
+ function Zt(r = {}) {
419
419
  return new ye(r);
420
420
  }
421
- function nt(r, e) {
421
+ function it(r, e) {
422
422
  const { jsonp: t, request: s } = e;
423
423
  if (r.method === "jsonp")
424
424
  return (n = {}) => t(r.url, {
@@ -437,7 +437,7 @@ function nt(r, e) {
437
437
  return (a, o) => (delete i.data, s.send(Ie(i, o || {}, { data: a })));
438
438
  }
439
439
  }
440
- function it(r, e) {
440
+ function ot(r, e) {
441
441
  const { metaQuery: t } = e;
442
442
  if (!t) return;
443
443
  const { code: s, queryCode: n } = r;
@@ -449,19 +449,19 @@ function it(r, e) {
449
449
  return t(s, n, i, a);
450
450
  };
451
451
  }
452
- function ot(r = [], e = [], t) {
452
+ function at(r = [], e = [], t) {
453
453
  const s = {};
454
454
  for (const n of r)
455
- s[n.id] = nt(n, t);
456
- for (const n of e)
457
455
  s[n.id] = it(n, t);
456
+ for (const n of e)
457
+ s[n.id] = ot(n, t);
458
458
  return s;
459
459
  }
460
- async function at(r = [], e = window) {
460
+ async function ct(r = [], e = window) {
461
461
  const t = F(e);
462
- t && (_e(e), r.forEach((s) => lt(t, s)));
462
+ t && (_e(e), r.forEach((s) => ut(t, s)));
463
463
  }
464
- function ct(r, e = window) {
464
+ function lt(r, e = window) {
465
465
  const t = M(r.mockTemplate) && r.mockTemplate.value ? V(r.mockTemplate, {}, !0) : void 0, s = F(e);
466
466
  return async (...n) => {
467
467
  let i = {};
@@ -474,7 +474,7 @@ function ct(r, e = window) {
474
474
  return s?.mock(i);
475
475
  };
476
476
  }
477
- function lt(r, e) {
477
+ function ut(r, e) {
478
478
  if (!e.mock) return;
479
479
  const { url: t, mockTemplate: s } = e;
480
480
  if (t && s) {
@@ -489,7 +489,7 @@ function _e(r = window) {
489
489
  const e = F(r);
490
490
  e && (e._mocked = {});
491
491
  }
492
- class ut {
492
+ class pt {
493
493
  __id = null;
494
494
  __mode;
495
495
  __instance = null;
@@ -600,22 +600,22 @@ function W(r) {
600
600
  $components: s,
601
601
  $libs: n,
602
602
  $apis: i
603
- }, l = new ut({
603
+ }, l = new pt({
604
604
  mode: t,
605
605
  dsl: o.value,
606
606
  attrs: c
607
607
  }), p = e.defineComponent({
608
608
  name: o.value.name,
609
609
  props: {
610
- ...dt(o.value.props ?? [], l)
610
+ ...ft(o.value.props ?? [], l)
611
611
  },
612
612
  setup(d) {
613
613
  l.$props = d, l.props = d, o.value.id && ge(
614
614
  r.window || window,
615
615
  o.value.id,
616
616
  o.value.css || ""
617
- ), l.state = ft(e, o.value.state ?? {}, l);
618
- const m = ht(e, o.value.computed ?? {}, l), h = mt(o.value.methods ?? {}, l), f = gt(e, o.value.inject, l), u = vt(
617
+ ), l.state = ht(e, o.value.state ?? {}, l);
618
+ const m = mt(e, o.value.computed ?? {}, l), h = gt(o.value.methods ?? {}, l), f = vt(e, o.value.inject, l), u = yt(
619
619
  o.value.dataSources || {},
620
620
  l
621
621
  ), w = {
@@ -624,29 +624,29 @@ function W(r) {
624
624
  ...h,
625
625
  ...u
626
626
  };
627
- return l.setup(w, e), yt(e, o.value.watch ?? [], l), {
627
+ return l.setup(w, e), _t(e, o.value.watch ?? [], l), {
628
628
  vtj: l
629
629
  };
630
630
  },
631
- emits: pt(o.value.emits),
631
+ emits: dt(o.value.emits),
632
632
  expose: ["vtj"],
633
633
  render() {
634
634
  if (!o.value.nodes) return null;
635
635
  const d = o.value.nodes || [];
636
636
  return d.length === 1 ? x(d[0], l, e, a) : d.map((m) => x(m, l, e, a));
637
637
  },
638
- ..._t(o.value.lifeCycles ?? {}, l)
638
+ ...wt(o.value.lifeCycles ?? {}, l)
639
639
  });
640
640
  return {
641
641
  renderer: e.markRaw(p),
642
642
  context: l
643
643
  };
644
644
  }
645
- function pt(r = []) {
645
+ function dt(r = []) {
646
646
  return r.map((e) => j(e) ? e : e.name);
647
647
  }
648
- function dt(r = [], e) {
649
- const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => Le[i]) : void 0;
648
+ function ft(r = [], e) {
649
+ const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => qe[i]) : void 0;
650
650
  return r.map((s) => j(s) ? {
651
651
  name: s
652
652
  } : {
@@ -663,7 +663,7 @@ function dt(r = [], e) {
663
663
  {}
664
664
  );
665
665
  }
666
- function ft(r, e, t) {
666
+ function ht(r, e, t) {
667
667
  return r.reactive(
668
668
  Object.keys(e || {}).reduce(
669
669
  (s, n) => {
@@ -674,19 +674,19 @@ function ft(r, e, t) {
674
674
  )
675
675
  );
676
676
  }
677
- function ht(r, e, t) {
677
+ function mt(r, e, t) {
678
678
  return Object.entries(e ?? {}).reduce(
679
679
  (s, [n, i]) => (s[n] = r.computed(t.__parseFunction(i)), s),
680
680
  {}
681
681
  );
682
682
  }
683
- function mt(r, e) {
683
+ function gt(r, e) {
684
684
  return Object.entries(r ?? {}).reduce(
685
685
  (t, [s, n]) => (t[s] = e.__parseFunction(n), t),
686
686
  {}
687
687
  );
688
688
  }
689
- function gt(r, e = [], t) {
689
+ function vt(r, e = [], t) {
690
690
  return e.reduce(
691
691
  (s, n) => {
692
692
  const { name: i, from: a } = n || {};
@@ -697,12 +697,12 @@ function gt(r, e = [], t) {
697
697
  {}
698
698
  );
699
699
  }
700
- function vt(r, e) {
700
+ function yt(r, e) {
701
701
  return Object.keys(r).reduce(
702
702
  (t, s) => {
703
703
  const n = r[s];
704
704
  if (n.type === "mock")
705
- t[s] = ct(n);
705
+ t[s] = lt(n);
706
706
  else if (n.ref) {
707
707
  const i = e.$apis[n.ref], a = M(n.transform) ? n.transform.value ? e.__parseFunction(n.transform) : void 0 : n.transform;
708
708
  t[s] = async (...o) => {
@@ -715,7 +715,7 @@ function vt(r, e) {
715
715
  {}
716
716
  );
717
717
  }
718
- function yt(r, e = [], t) {
718
+ function _t(r, e = [], t) {
719
719
  e.forEach((s) => {
720
720
  r.watch(
721
721
  t.__parseExpression(s.source),
@@ -727,19 +727,19 @@ function yt(r, e = [], t) {
727
727
  );
728
728
  });
729
729
  }
730
- function _t(r, e) {
730
+ function wt(r, e) {
731
731
  return Object.entries(r ?? {}).reduce(
732
732
  (t, [s, n]) => (t[s] = e.__parseFunction(n), t),
733
733
  {}
734
734
  );
735
735
  }
736
736
  let L = [], P = {};
737
- const wt = (r) => r;
737
+ const St = (r) => r;
738
738
  async function we(r, e = window) {
739
739
  const { urls: t = [], library: s } = r, n = t.filter((o) => Z(o));
740
740
  if (n.length === 0 || !s) return null;
741
741
  const i = t.filter((o) => X(o));
742
- return i.length && Ye(i, e), await Qe(n, s, e).catch(
742
+ return i.length && Qe(i, e), await Xe(n, s, e).catch(
743
743
  (o) => (console.warn("loadScriptUrl error", n, s, o), null)
744
744
  );
745
745
  }
@@ -751,7 +751,7 @@ function G(r) {
751
751
  if (!i || typeof i == "string") return n;
752
752
  if (i.type === "Schema" && i.id) {
753
753
  let o = P[i.id];
754
- return o || (o = P[i.id] = a.defineAsyncComponent(async () => {
754
+ return o ? xe(o) : (o = P[i.id] = a.defineAsyncComponent(async () => {
755
755
  const c = await e(i.id);
756
756
  return c && (c.name = n), c ? W({
757
757
  ...s,
@@ -787,31 +787,31 @@ function G(r) {
787
787
  return n;
788
788
  };
789
789
  }
790
- function Zt() {
790
+ function es() {
791
791
  P = {};
792
792
  }
793
- function x(r, e, t = O, s = wt) {
793
+ function x(r, e, t = O, s = St) {
794
794
  if (!r || !r.name || r.invisible) return null;
795
- const n = t.getCurrentInstance()?.appContext, { id: i = null, directives: a = [] } = r, { vIf: o, vFor: c, vShow: l, vModels: p, vBind: d, vHtml: m, others: h } = $t(a);
796
- if (o && !jt(o, e))
795
+ const n = t.getCurrentInstance()?.appContext, { id: i = null, directives: a = [] } = r, { vIf: o, vFor: c, vShow: l, vModels: p, vBind: d, vHtml: m, others: h } = jt(a);
796
+ if (o && !bt(o, e))
797
797
  return null;
798
798
  const f = (u) => {
799
799
  const w = u.$components, g = (() => {
800
800
  if (r.name === "component")
801
- return bt(u, r.props?.is);
801
+ return Pt(u, r.props?.is);
802
802
  if (r.name === "slot") return r.name;
803
803
  const $ = s(r.name, r.from, t);
804
- return j($) ? Ze($) || et($) ? $ : w[$] ?? n?.app?.component($) ?? $ : $;
805
- })(), S = Pt(i, r.props ?? {}, u), Re = Et(t, r.events ?? {}, u);
804
+ return j($) ? et($) || tt($) ? $ : w[$] ?? n?.app?.component($) ?? $ : $;
805
+ })(), S = Et(i, r.props ?? {}, u), Re = Rt(t, r.events ?? {}, u);
806
806
  if (r.name === "slot")
807
- return Rt(t, r, S, u, s);
807
+ return Ct(t, r, S, u, s);
808
808
  d && Object.assign(S, u.__parseExpression(d.value)), l && (S.style = Object.assign(
809
809
  S.style ?? {},
810
- kt(l, u)
811
- )), m && Object.assign(S, Ft(m, u)), p.forEach(($) => {
812
- Object.assign(S, At(t, $, u));
810
+ Ft(l, u)
811
+ )), m && Object.assign(S, At(m, u)), p.forEach(($) => {
812
+ Object.assign(S, Mt(t, $, u));
813
813
  });
814
- const Ce = Mt(
814
+ const Ce = It(
815
815
  t,
816
816
  r.children ?? [],
817
817
  u,
@@ -819,12 +819,12 @@ function x(r, e, t = O, s = wt) {
819
819
  r
820
820
  );
821
821
  let N = t.createVNode(g, { ...S, ...Re }, Ce);
822
- const te = n ? St(n, h, u) : [];
822
+ const te = n ? $t(n, h, u) : [];
823
823
  return te.length && (N = t.withDirectives(N, te)), N;
824
824
  };
825
- return c ? Tt(c, f, e) : f(e);
825
+ return c ? Dt(c, f, e) : f(e);
826
826
  }
827
- function St(r, e, t) {
827
+ function $t(r, e, t) {
828
828
  const s = r.app;
829
829
  return e.map((n) => {
830
830
  const i = typeof n.name == "string" ? s.directive(n.name) : t.__parseExpression(n.name);
@@ -833,11 +833,11 @@ function St(r, e, t) {
833
833
  return n.value && a.push(t.__parseExpression(n.value)), n.arg && a.push(n.arg), n.modifiers && a.push(n.modifiers), a;
834
834
  }).filter((n) => !!n);
835
835
  }
836
- function $t(r = []) {
836
+ function jt(r = []) {
837
837
  const e = r.find((c) => b(c.name) === "vIf"), t = r.find((c) => b(c.name) === "vFor"), s = r.find((c) => b(c.name) === "vShow"), n = r.find((c) => b(c.name) === "vBind"), i = r.find((c) => b(c.name) === "vHtml"), a = r.filter(
838
838
  (c) => b(c.name) === "vModel"
839
839
  ), o = r.filter(
840
- (c) => !Ue.includes(b(c.name))
840
+ (c) => !Le.includes(b(c.name))
841
841
  );
842
842
  return {
843
843
  vIf: e,
@@ -849,13 +849,13 @@ function $t(r = []) {
849
849
  vHtml: i
850
850
  };
851
851
  }
852
- function jt(r, e) {
852
+ function bt(r, e) {
853
853
  return !!e.__parseExpression(r.value);
854
854
  }
855
- function bt(r, e) {
855
+ function Pt(r, e) {
856
856
  return e ? _(e) ? r.__parseExpression(e) : e : "div";
857
857
  }
858
- function Pt(r, e, t) {
858
+ function Et(r, e, t) {
859
859
  const s = Y(e, t);
860
860
  return s.ref = t.__ref(r, s.ref), s;
861
861
  }
@@ -868,7 +868,7 @@ function Y(r, e) {
868
868
  {}
869
869
  ) : r;
870
870
  }
871
- function Et(r, e, t) {
871
+ function Rt(r, e, t) {
872
872
  const s = ["passive", "capture", "once"], n = {
873
873
  capture: "Capture",
874
874
  once: "Once",
@@ -876,7 +876,7 @@ function Et(r, e, t) {
876
876
  };
877
877
  return Object.keys(e || {}).reduce(
878
878
  (i, a) => {
879
- const o = e[a], c = Se(o.modifiers), l = c.find((m) => s.includes(m)), p = "on" + xe(a) + (l && n[l] || ""), d = t.__parseFunction(o.handler);
879
+ const o = e[a], c = Se(o.modifiers), l = c.find((m) => s.includes(m)), p = "on" + Oe(a) + (l && n[l] || ""), d = t.__parseFunction(o.handler);
880
880
  return d && (i[p] = r.withModifiers(d, c)), i;
881
881
  },
882
882
  {}
@@ -886,32 +886,32 @@ function Se(r = {}, e = !1) {
886
886
  const t = Object.keys(r);
887
887
  return e ? t.map((s) => "." + s) : t;
888
888
  }
889
- function Rt(r, e, t, s, n) {
890
- const { children: i } = e, a = Ct(e, s), o = s.$slots?.[a.name];
889
+ function Ct(r, e, t, s, n) {
890
+ const { children: i } = e, a = kt(e, s), o = s.$slots?.[a.name];
891
891
  return o ? o(t) : i ? j(i) ? r.createTextVNode(i) : _(i) ? r.createTextVNode(
892
892
  me(s.__parseExpression(i))
893
893
  ) : Array.isArray(i) ? i.map(
894
894
  (c) => x(c, s, r, n)
895
895
  ) : null : null;
896
896
  }
897
- function Ct(r, e) {
897
+ function kt(r, e) {
898
898
  const { props: t } = r, s = t?.name || "default";
899
899
  return {
900
900
  name: _(s) ? e.__parseExpression(s) : s,
901
901
  params: []
902
902
  };
903
903
  }
904
- function kt(r, e) {
904
+ function Ft(r, e) {
905
905
  return e.__parseExpression(r.value) ? {} : {
906
906
  display: "none"
907
907
  };
908
908
  }
909
- function Ft(r, e) {
909
+ function At(r, e) {
910
910
  return {
911
911
  innerHTML: e.__parseExpression(r.value) || ""
912
912
  };
913
913
  }
914
- function At(r, e, t) {
914
+ function Mt(r, e, t) {
915
915
  const s = {
916
916
  type: "JSFunction",
917
917
  value: e.value?.value ? `(v) => {
@@ -925,7 +925,7 @@ function At(r, e, t) {
925
925
  [`onUpdate:${a}`]: i.length && n ? r.withModifiers(n, i) : n
926
926
  };
927
927
  }
928
- function Mt(r, e, t, s, n) {
928
+ function It(r, e, t, s, n) {
929
929
  if (!e) return null;
930
930
  if (j(e))
931
931
  return { default: () => e };
@@ -934,11 +934,11 @@ function Mt(r, e, t, s, n) {
934
934
  default: () => me(t.__parseExpression(e))
935
935
  };
936
936
  if (Array.isArray(e) && e.length > 0) {
937
- const i = It(e), a = (o) => !o || !n ? {} : n?.id && Object.keys(o).length ? {
937
+ const i = Ht(e), a = (o) => !o || !n ? {} : n?.id && Object.keys(o).length ? {
938
938
  [`scope_${n.id}`]: o
939
939
  } : {};
940
940
  return Object.entries(i).reduce((o, [c, { nodes: l, params: p }]) => (o[c] = (d) => {
941
- const m = p.length ? Oe(d ?? {}, p) : a(d);
941
+ const m = p.length ? Ne(d ?? {}, p) : a(d);
942
942
  return l.map(
943
943
  (h) => x(h, t.__clone(m), r, s)
944
944
  );
@@ -946,7 +946,7 @@ function Mt(r, e, t, s, n) {
946
946
  }
947
947
  return null;
948
948
  }
949
- function It(r) {
949
+ function Ht(r) {
950
950
  const e = {
951
951
  default: {
952
952
  params: [],
@@ -954,7 +954,7 @@ function It(r) {
954
954
  }
955
955
  };
956
956
  for (const t of r) {
957
- const s = Ht(t.slot), n = s.name;
957
+ const s = Tt(t.slot), n = s.name;
958
958
  e[n] ? (e[n].nodes.push(t), e[n].params = e[n].params.concat(s.params)) : e[n] = {
959
959
  nodes: [t],
960
960
  params: s.params
@@ -962,10 +962,10 @@ function It(r) {
962
962
  }
963
963
  return e;
964
964
  }
965
- function Ht(r = "default") {
965
+ function Tt(r = "default") {
966
966
  return j(r) ? { name: r, params: [] } : { params: [], ...r };
967
967
  }
968
- function Tt(r, e, t) {
968
+ function Dt(r, e, t) {
969
969
  const { value: s, iterator: n } = r, { item: i = "item", index: a = "index" } = n || {};
970
970
  let o = t.__parseExpression(s) || [];
971
971
  return Number.isInteger(o) && (o = new Array(o).fill(!0).map((c, l) => l + 1)), Array.isArray(o) ? o.map((c, l) => e(t.__clone({ [i]: c, [a]: l }))) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
@@ -996,14 +996,14 @@ const ae = fe({
996
996
  activated() {
997
997
  this.meta.cache === !1 && (this.sid = Symbol());
998
998
  }
999
- }), Dt = fe({
999
+ }), xt = fe({
1000
1000
  name: "VtjStartupContainer",
1001
1001
  render() {
1002
1002
  return K("div", "page not found!");
1003
1003
  }
1004
1004
  }), $e = Symbol("Provider");
1005
- var xt = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(xt || {});
1006
- class Ot extends ke {
1005
+ var Ot = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(Ot || {});
1006
+ class Nt extends ke {
1007
1007
  constructor(e) {
1008
1008
  super(), this.options = e;
1009
1009
  const {
@@ -1056,7 +1056,7 @@ class Ot extends ke {
1056
1056
  if (this.project = t ? await t() : await this.service.init(e), !this.project)
1057
1057
  throw new Error("project is null");
1058
1058
  const { apis: s = [], meta: n = [] } = this.project, i = window;
1059
- i && (i.CKEDITOR_VERSION = void 0), this.mode === y.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = ot(s, n, this.adapter), _e(i), at(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1059
+ i && (i.CKEDITOR_VERSION = void 0), this.mode === y.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = at(s, n, this.adapter), _e(i), ct(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1060
1060
  }
1061
1061
  initMock(e) {
1062
1062
  const t = F(e);
@@ -1076,7 +1076,7 @@ class Ot extends ke {
1076
1076
  materials: p,
1077
1077
  materialExports: d,
1078
1078
  materialMapLibrary: m
1079
- } = Ve(
1079
+ } = We(
1080
1080
  t,
1081
1081
  a,
1082
1082
  o === "development"
@@ -1091,7 +1091,7 @@ class Ot extends ke {
1091
1091
  else {
1092
1092
  const w = l[h] || [];
1093
1093
  for (const g of w)
1094
- X(g) && await Ge(h, E.append(g, { v: C })), Z(g) && await ne(E.append(g, { v: C }));
1094
+ X(g) && await Ye(h, E.append(g, { v: C })), Z(g) && await ne(E.append(g, { v: C }));
1095
1095
  n[h] = e[h];
1096
1096
  }
1097
1097
  }
@@ -1108,7 +1108,7 @@ class Ot extends ke {
1108
1108
  else {
1109
1109
  const g = h[f] ? (await h[f]()).default : e[f];
1110
1110
  g && u && (g.components || []).forEach((S) => {
1111
- i[S.name] = We(S, u);
1111
+ i[S.name] = Ge(S, u);
1112
1112
  });
1113
1113
  }
1114
1114
  }
@@ -1128,7 +1128,7 @@ class Ot extends ke {
1128
1128
  }, d = {
1129
1129
  path: l,
1130
1130
  name: T,
1131
- component: t?.homepage ? ae : n.startupComponent || Dt,
1131
+ component: t?.homepage ? ae : n.startupComponent || xt,
1132
1132
  meta: c
1133
1133
  };
1134
1134
  e.hasRoute(k) && e.removeRoute(k), e.hasRoute(T) && e.removeRoute(T), a ? (e.addRoute(a, p), e.addRoute(a, d)) : (e.addRoute(p), e.addRoute(d));
@@ -1136,7 +1136,7 @@ class Ot extends ke {
1136
1136
  install(e) {
1137
1137
  const t = e.config.globalProperties.installed || {};
1138
1138
  for (const [s, n] of Object.entries(this.library))
1139
- !t[s] && Xe(n) && (e.use(n), t[s] = !0);
1139
+ !t[s] && Ze(n) && (e.use(n), t[s] = !0);
1140
1140
  this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide($e, this), e.config.globalProperties.$provider = this, e.config.globalProperties.installed = t, this.mode === y.Design && (e.config.errorHandler = (s, n, i) => {
1141
1141
  const a = n?.$options.name, o = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", c = `[ ${a} ] ${o} ${i}`;
1142
1142
  console.error(
@@ -1228,8 +1228,8 @@ class Ot extends ke {
1228
1228
  return ie(async () => await we(e, window));
1229
1229
  }
1230
1230
  }
1231
- function es(r) {
1232
- const e = new Ot(r);
1231
+ function ts(r) {
1232
+ const e = new Nt(r);
1233
1233
  return {
1234
1234
  provider: e,
1235
1235
  onReady: (s) => e.ready(s)
@@ -1258,7 +1258,7 @@ const be = {
1258
1258
  originResponse: !1,
1259
1259
  failMessage: !0,
1260
1260
  validate: (r) => r.data?.code === 0
1261
- }, Nt = (r, e = "/__vtj__/api/:type.json") => (t, s, n) => r.send({
1261
+ }, Bt = (r, e = "/__vtj__/api/:type.json") => (t, s, n) => r.send({
1262
1262
  url: e,
1263
1263
  method: "post",
1264
1264
  params: { type: t },
@@ -1268,7 +1268,7 @@ const be = {
1268
1268
  data: s
1269
1269
  },
1270
1270
  settings: be
1271
- }), Bt = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
1271
+ }), Ut = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
1272
1272
  url: e,
1273
1273
  method: "post",
1274
1274
  data: {
@@ -1280,7 +1280,7 @@ const be = {
1280
1280
  type: "data"
1281
1281
  }
1282
1282
  }).then((n) => n && n[0] ? n[0] : null).catch(() => null);
1283
- function ts(r) {
1283
+ function ss(r) {
1284
1284
  return ue({
1285
1285
  settings: {
1286
1286
  type: "json",
@@ -1299,7 +1299,7 @@ class ee {
1299
1299
  pluginCaches = {};
1300
1300
  uploader;
1301
1301
  constructor(e = J) {
1302
- this.api = Nt(e), this.uploader = Bt(e);
1302
+ this.api = Bt(e), this.uploader = Ut(e);
1303
1303
  }
1304
1304
  async getExtension() {
1305
1305
  console.log("BaseService.getExtension");
@@ -1374,7 +1374,7 @@ class ee {
1374
1374
  return await this.api("clearStaticFiles", e).catch(() => "");
1375
1375
  }
1376
1376
  async getPluginMaterial(e) {
1377
- const { urls: t = [] } = e, s = t.filter((i) => Ke(i))[0];
1377
+ const { urls: t = [] } = e, s = t.filter((i) => ze(i))[0];
1378
1378
  if (!s) return null;
1379
1379
  const n = this.pluginCaches[s];
1380
1380
  return n || (this.pluginCaches[s] = J.send({
@@ -1390,12 +1390,12 @@ class ee {
1390
1390
  return console.log("BaseService.genSource", e), "";
1391
1391
  }
1392
1392
  }
1393
- const v = new Ne({
1393
+ const v = new Be({
1394
1394
  type: "local",
1395
1395
  expired: 0,
1396
1396
  prefix: "__VTJ_"
1397
1397
  });
1398
- class ss extends ee {
1398
+ class rs extends ee {
1399
1399
  init(e) {
1400
1400
  const t = new D(e), s = v.get(`project_${t.id}`), n = Object.assign(t.toDsl(), s || {});
1401
1401
  return v.save(`project_${t.id}`, n), Promise.resolve(n);
@@ -1445,7 +1445,7 @@ class ss extends ee {
1445
1445
  }), Promise.resolve(!0);
1446
1446
  }
1447
1447
  }
1448
- class Ut extends ee {
1448
+ class Lt extends ee {
1449
1449
  projects = {};
1450
1450
  materials = {};
1451
1451
  files = {};
@@ -1503,10 +1503,10 @@ class Ut extends ee {
1503
1503
  }
1504
1504
  }
1505
1505
  let H = null;
1506
- function rs() {
1507
- return H || (H = new Ut(), H);
1506
+ function ns() {
1507
+ return H || (H = new Lt(), H);
1508
1508
  }
1509
- class ns extends ee {
1509
+ class is extends ee {
1510
1510
  getFileCaches = {};
1511
1511
  async getExtension() {
1512
1512
  return await this.api("getExtension", {}).catch(() => {
@@ -1587,13 +1587,13 @@ function Ee(r, e) {
1587
1587
  e.can(s.id.toString()) && t.push(s);
1588
1588
  return t;
1589
1589
  }
1590
- function is(r) {
1590
+ function os(r) {
1591
1591
  const {
1592
1592
  menuPathPrefix: e = "",
1593
1593
  pageRouteName: t = "page",
1594
1594
  disableMenusFilter: s = !1
1595
- } = r || {}, n = je(), i = he(), a = rt(), o = z(!1), c = z(!1), l = n.project;
1596
- Be(() => {
1595
+ } = r || {}, n = je(), i = he(), a = nt(), o = z(!1), c = z(!1), l = n.project;
1596
+ Ue(() => {
1597
1597
  const { name: m, params: h, meta: f } = i;
1598
1598
  if (m === k) {
1599
1599
  const u = n.getPage(h.id);
@@ -1621,70 +1621,70 @@ function is(r) {
1621
1621
  export {
1622
1622
  ve as ACCESS_KEY,
1623
1623
  ye as Access,
1624
- Je as BUILD_IN_TAGS,
1625
- Ue as BUILT_IN_DIRECTIVES,
1624
+ Ke as BUILD_IN_TAGS,
1625
+ Le as BUILT_IN_DIRECTIVES,
1626
1626
  ee as BaseService,
1627
1627
  oe as CONTEXT_HOST,
1628
- ut as Context,
1628
+ pt as Context,
1629
1629
  y as ContextMode,
1630
- Le as DATA_TYPES,
1630
+ qe as DATA_TYPES,
1631
1631
  T as HOMEPAGE_ROUTE_NAME,
1632
- qe as HTML_TAGS,
1633
- Yt as JSCodeToString,
1634
- zt as LIFE_CYCLES_LIST,
1635
- ns as LocalService,
1636
- Ut as MemoryService,
1637
- xt as NodeEnv,
1632
+ Je as HTML_TAGS,
1633
+ Qt as JSCodeToString,
1634
+ Vt as LIFE_CYCLES_LIST,
1635
+ is as LocalService,
1636
+ Lt as MemoryService,
1637
+ Ot as NodeEnv,
1638
1638
  k as PAGE_ROUTE_NAME,
1639
- Ot as Provider,
1640
- ss as StorageService,
1639
+ Nt as Provider,
1640
+ rs as StorageService,
1641
1641
  C as VTJ_RENDERER_VERSION,
1642
1642
  ge as adoptedStyleSheets,
1643
- Zt as clearLoaderCache,
1644
- Xt as createAccess,
1645
- Qt as createAdapter,
1646
- Vt as createAssetScripts,
1647
- Wt as createAssetsCss,
1648
- vt as createDataSources,
1643
+ es as clearLoaderCache,
1644
+ Zt as createAccess,
1645
+ Xt as createAdapter,
1646
+ Wt as createAssetScripts,
1647
+ Gt as createAssetsCss,
1648
+ yt as createDataSources,
1649
1649
  G as createLoader,
1650
- rs as createMemoryService,
1651
- it as createMetaApi,
1652
- ct as createMock,
1653
- es as createProvider,
1650
+ ns as createMemoryService,
1651
+ ot as createMetaApi,
1652
+ lt as createMock,
1653
+ ts as createProvider,
1654
1654
  W as createRenderer,
1655
- nt as createSchemaApi,
1656
- ot as createSchemaApis,
1657
- ts as createServiceRequest,
1658
- wt as defaultLoader,
1655
+ it as createSchemaApi,
1656
+ at as createSchemaApis,
1657
+ ss as createServiceRequest,
1658
+ St as defaultLoader,
1659
1659
  I as fillBasePath,
1660
1660
  F as getMock,
1661
1661
  Se as getModifiers,
1662
1662
  we as getPlugin,
1663
- We as getRawComponent,
1664
- Ze as isBuiltInTag,
1663
+ Ge as getRawComponent,
1664
+ et as isBuiltInTag,
1665
1665
  X as isCSSUrl,
1666
- tt as isJSCode,
1666
+ st as isJSCode,
1667
1667
  _ as isJSExpression,
1668
1668
  M as isJSFunction,
1669
- Ke as isJSON,
1669
+ ze as isJSON,
1670
1670
  Z as isJSUrl,
1671
- et as isNativeTag,
1672
- Xe as isVuePlugin,
1673
- Ge as loadCss,
1674
- Ye as loadCssUrl,
1675
- Qe as loadScriptUrl,
1676
- lt as mockApi,
1677
- at as mockApis,
1671
+ tt as isNativeTag,
1672
+ Ze as isVuePlugin,
1673
+ Ye as loadCss,
1674
+ Qe as loadCssUrl,
1675
+ Xe as loadScriptUrl,
1676
+ ut as mockApi,
1677
+ ct as mockApis,
1678
1678
  _e as mockCleanup,
1679
1679
  x as nodeRender,
1680
- Ve as parseDeps,
1680
+ We as parseDeps,
1681
1681
  A as parseExpression,
1682
1682
  V as parseFunction,
1683
1683
  $e as providerKey,
1684
- ze as removeProdFlag,
1685
- Gt as setupPageSetting,
1684
+ Ve as removeProdFlag,
1685
+ Yt as setupPageSetting,
1686
1686
  me as toString,
1687
- rt as useAccess,
1688
- is as useMask,
1687
+ nt as useAccess,
1688
+ os as useMask,
1689
1689
  je as useProvider
1690
1690
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.11.1",
4
+ "version": "0.11.2",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "低代码引擎",
@@ -21,15 +21,15 @@
21
21
  "author": "chenhuachun",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@vtj/core": "~0.11.1",
25
- "@vtj/utils": "~0.11.1"
24
+ "@vtj/core": "~0.11.2",
25
+ "@vtj/utils": "~0.11.2"
26
26
  },
27
27
  "devDependencies": {
28
28
  "vue": "~3.5.5",
29
29
  "vue-router": "~4.5.0",
30
+ "@vtj/icons": "~0.11.2",
30
31
  "@vtj/cli": "~0.11.1",
31
- "@vtj/icons": "~0.11.1",
32
- "@vtj/ui": "~0.11.1"
32
+ "@vtj/ui": "~0.11.2"
33
33
  },
34
34
  "exports": {
35
35
  ".": {
@@ -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.11.1-alpha.1
5
+ * @version 0.11.1
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.11.1-alpha.1";
8
+ export declare const version = "0.11.1";