@vtj/renderer 0.12.37 → 0.12.38

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.12.37
5
+ * @version 0.12.38
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const M="0.12.37";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],We=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],fe=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],he={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",me="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(","),ge="component,slot".split(",");function O(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function ve(r){return/\.json$/.test(r)}function Ye(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function Qe(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function ye(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function _e(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},u=[],l={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:g,localeLibrary:S})=>{m?.forEach(v=>{N(v)&&n.push(ye(v,t)),x(v)&&i.push(v)}),h&&(o.push(h),p[h]=O(m||[],e),S&&(c[h]=S)),f&&a.push(f),g&&u.push(g),h&&g&&(l[g]=h)}),{scripts:O(n,e),css:O(i,e),materials:O(a,e),libraryExports:o,materialExports:d.dedupArray(u),materialMapLibrary:l,libraryMap:p,libraryLocaleMap:c}}function Se(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function we(r=[]){const e=r.filter(s=>x(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function $e(r,e){const t=c=>{const u=[];let l=0;for(;l<c.length;){if(/\s/.test(c[l])){l++;continue}if(c.substring(l,l+2)==="/*"){const v=c.indexOf("*/",l+2);if(v!==-1){l=v+2;continue}}if(c[l]==="@"){const v=l;for(;l<c.length&&c[l]!=="{"&&c[l]!==";";)l++;const j=c.substring(v,l).trim(),y=j.includes("@keyframes");if(c[l]===";")u.push({type:"simple-at-rule",content:c.substring(v,l+1)}),l++;else if(c[l]==="{"){const V=l+1;let D=1;for(l++;l<c.length&&D>0;)c[l]==="{"?D++:c[l]==="}"&&D--,l++;const z=c.substring(v,l),C=c.substring(V,l-1);u.push({type:y?"keyframes":"at-rule",rule:j,content:z,inner:C})}continue}const m=l;for(;l<c.length&&c[l]!=="{";)l++;if(l>=c.length)break;const f=c.substring(m,l).trim();if(!f){l++;continue}const h=l+1;let g=1;for(l++;l<c.length&&g>0;)c[l]==="{"?g++:c[l]==="}"&&g--,l++;const S=c.substring(h,l-1);u.push({type:"rule",selector:f,content:S.trim()})}return u},s=c=>{const u=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(u)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(u,l,m)=>{const f=l.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),i=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const l=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(l){const[,m,f=""]=l,h=m.trim();return h?`${h}[${e}]${f}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(l=>i(l)).filter(l=>l.trim()).join(", "),o=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const m=t(u.inner),f=o(m);return`${u.rule} { ${f} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const l=a(u.selector);return l.trim()?`${l} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),p=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
7
+ */const M="0.12.38";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],We=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],fe=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],he={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",me="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(","),ge="component,slot".split(",");function O(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function ve(r){return/\.json$/.test(r)}function Ye(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function Qe(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function ye(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function _e(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},u=[],l={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:g,localeLibrary:S})=>{m?.forEach(v=>{N(v)&&n.push(ye(v,t)),x(v)&&i.push(v)}),h&&(o.push(h),p[h]=O(m||[],e),S&&(c[h]=S)),f&&a.push(f),g&&u.push(g),h&&g&&(l[g]=h)}),{scripts:O(n,e),css:O(i,e),materials:O(a,e),libraryExports:o,materialExports:d.dedupArray(u),materialMapLibrary:l,libraryMap:p,libraryLocaleMap:c}}function Se(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function we(r=[]){const e=r.filter(s=>x(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function $e(r,e){const t=c=>{const u=[];let l=0;for(;l<c.length;){if(/\s/.test(c[l])){l++;continue}if(c.substring(l,l+2)==="/*"){const v=c.indexOf("*/",l+2);if(v!==-1){l=v+2;continue}}if(c[l]==="@"){const v=l;for(;l<c.length&&c[l]!=="{"&&c[l]!==";";)l++;const j=c.substring(v,l).trim(),y=j.includes("@keyframes");if(c[l]===";")u.push({type:"simple-at-rule",content:c.substring(v,l+1)}),l++;else if(c[l]==="{"){const V=l+1;let D=1;for(l++;l<c.length&&D>0;)c[l]==="{"?D++:c[l]==="}"&&D--,l++;const z=c.substring(v,l),C=c.substring(V,l-1);u.push({type:y?"keyframes":"at-rule",rule:j,content:z,inner:C})}continue}const m=l;for(;l<c.length&&c[l]!=="{";)l++;if(l>=c.length)break;const f=c.substring(m,l).trim();if(!f){l++;continue}const h=l+1;let g=1;for(l++;l<c.length&&g>0;)c[l]==="{"?g++:c[l]==="}"&&g--,l++;const S=c.substring(h,l-1);u.push({type:"rule",selector:f,content:S.trim()})}return u},s=c=>{const u=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(u)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(u,l,m)=>{const f=l.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),i=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const l=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(l){const[,m,f=""]=l,h=m.trim();return h?`${h}[${e}]${f}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(l=>i(l)).filter(l=>l.trim()).join(", "),o=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const m=t(u.inner),f=o(m);return`${u.rule} { ${f} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const l=a(u.selector);return l.trim()?`${l} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),p=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
8
8
  `),u=t(c),l=o(u);return p(l)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,u=>u).replace(/([^{}@]+)(?=\s*{)/g,u=>{const l=u.trim();return!l||l.startsWith("@")||l.includes(`[${e}]`)||s(l)?u:`${l}[${e}]`})}}function X(r){return d.isString(r)?r:JSON.stringify(r)}function Z(r,e,t,s=!1){const n=r.CSSStyleSheet,i=s?`data-v-${e}`:e,a=s?$e(t,i):t;if(n.prototype.replaceSync){const o=new n;o.id=e,o.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,u=Array.from(c).filter(l=>l.id!==e);p.adoptedStyleSheets=[...u,o]}else{const o=r.document;let p=o.getElementById(e);p?p.innerHTML=a:(p=o.createElement("style"),p.id=e,p.innerHTML=a,o.head.appendChild(p))}}async function Ee(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&Z(window,r,t)}function ee(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 te(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 p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{i=t[e],i?a(i.default||i):o(null)},c.onerror=u=>{o(u)},n.appendChild(c)}})}function je(r){return d.isFunction(r)||d.isFunction(r?.install)}function be(r){return ge.includes(r)}function Ce(r){return me.includes(r)}function k(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function Xe(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 I(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,p)=>`__self${p}`),i=n.join(`
9
- `)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function B(r,e,t=!1,s=!1){const n=I(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function E(r){return r&&r.type==="JSExpression"}function F(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Pe(r){return E(r)||F(r)}function Ze(r){return Pe(r)?r.value:JSON.stringify(r)}const et={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},se=Symbol("access");class re{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},et,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===_.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&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.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):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(se,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=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.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=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){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),d.isFunction(n)?(n(),t(!1)):d.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,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===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 d.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 Re(){return $.inject(se,null)}function tt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new re({alert:o,...i}):void 0}}function st(r={}){return new re(r)}function Ae(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?I(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(d.merge(i,o||{},{data:a})))}}function Me(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 Te(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Ae(n,t);for(const n of e)s[n.id]=Me(n,t);return s}async function ke(r=[],e=window){const t=k(e);t&&(ne(e),r.forEach(s=>Fe(t,s)))}function Ie(r,e=window){const t=F(r.mockTemplate)&&r.mockTemplate.value?B(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function Fe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=I(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ne(r=window){const e=k(r);e&&(e._mocked={})}class De{__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=J){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&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.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,n=t?this.__transform[t]??e.value:e.value;return B({type:s,value:n},this)}else return B(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return I({type:s,value:n},this)}else return I(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.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,_.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 L(r){const{Vue:e=J,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new De({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...nt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&Z(r.window||window,o.value.id,o.value.css||"",!0),c.state=it(e,o.value.state??{},c);const m=ot(e,o.value.computed??{},c),f=at(o.value.methods??{},c),h=ct(e,o.value.inject,c);for(const[v,j]of Object.entries(h||{}))h[v]=e.inject(v,j);const g=Oe(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),lt(e,o.value.watch??[],c),{vtj:c}},emits:rt(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?A(l[0],c,e,a,l):l.map(m=>A(m,c,e,a,l))},...ut(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function rt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function nt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>he[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:E(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 it(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return E(i)?i=t.__parseExpression(i):F(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function ot(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function at(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ct(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=E(a)?t.__parseExpression(a)||i:a??i,p=E(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Oe(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Ie(n);else if(n.ref){const i=e.$apis[n.ref],a=F(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function lt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ut(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}let W=[],R={};const He=r=>r;async function ie(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>N(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&ee(i,e),await te(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(W.forEach(n=>{delete s.window[n]}),W=[]),(n,i,a=J)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=R[i.id]||await e(i.id);return o&&(o.name=n,R[i.id]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=R[i.url]||await t(i.url);return o&&(o.name=n,R[i.url]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?R[i.library]:null;return o||(i.library&&W.push(i.library),o=R[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await ie(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function pt(){R={}}function A(r,e,t=J,s=He,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=xe(p);if(!i&&(u||l))return null;if(c&&!ft(c,e))return vt(r,e,t,s,n);const j=(y,V=0)=>{const D=y.$components,z=(()=>{if(r.name==="component")return ht(y,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);return d.isString(b)?be(b)||Ce(b)?b:D[b]??a?.app?.component(b)??b:b})(),C=mt(o,r.props??{},y),Ke=gt(t,r.events??{},y);if(r.name==="slot")return yt(t,r,C,y,s);g&&Object.assign(C,y.__parseExpression(g.value)),f&&(C.style=Object.assign(C.style??{},St(f,y))),S&&Object.assign(C,wt(S,y)),h.forEach(b=>{Object.assign(C,$t(t,b,y))});const Ve=Et(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,ze=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...ze,...C,...Ke},Ve);const ue=a?dt(a,v,y):[];return ue.length&&(G=t.withDirectives(G,ue)),G};return m?Ct(m,j,e):j(e)}function dt(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 xe(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!fe.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function ft(r,e){return!!e.__parseExpression(r.value)}function ht(r,e){return e?E(e)?r.__parseExpression(e):e:"div"}function mt(r,e,t){const s=Q(e,t);return s.ref=t.__ref(r,s.ref),s}function Q(r,e){return E(r)?e.__parseExpression(r):F(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>Q(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=Q(n,e),t},{}):r}function gt(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],p=oe(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function vt(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=xe(o);if(p){if(e.__parseExpression(p.value))return A(n[a],e,t,s,n,!0);continue}if(c)return A(n[a],e,t,s,n,!0)}return null}function oe(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function yt(r,e,t,s,n){const{children:i}=e,a=_t(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):E(i)?r.createTextVNode(X(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>A(p,s,r,n,i)):null:null}function _t(r,e){const{props:t}=r,s=t?.name||"default";return{name:E(s)?e.__parseExpression(s):s,params:[]}}function St(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function wt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function $t(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
9
+ `)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function B(r,e,t=!1,s=!1){const n=I(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function E(r){return r&&r.type==="JSExpression"}function F(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Pe(r){return E(r)||F(r)}function Ze(r){return Pe(r)?r.value:JSON.stringify(r)}const et={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},se=Symbol("access");class re{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},et,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===_.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&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.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):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(se,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=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.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=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){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),d.isFunction(n)?(n(),t(!1)):d.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,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===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 d.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 Re(){return $.inject(se,null)}function tt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new re({alert:o,...i}):void 0}}function st(r={}){return new re(r)}function Ae(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?I(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(d.merge(i,o||{},{data:a})))}}function Me(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 Te(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Ae(n,t);for(const n of e)s[n.id]=Me(n,t);return s}async function ke(r=[],e=window){const t=k(e);t&&(ne(e),r.forEach(s=>Fe(t,s)))}function Ie(r,e=window){const t=F(r.mockTemplate)&&r.mockTemplate.value?B(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function Fe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=I(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ne(r=window){const e=k(r);e&&(e._mocked={})}class De{__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=J){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&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.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,n=t?this.__transform[t]??e.value:e.value;return B({type:s,value:n},this)}else return B(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return I({type:s,value:n},this)}else return I(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.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,_.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 L(r){const{Vue:e=J,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new De({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...nt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&Z(r.window||window,o.value.id,o.value.css||"",!0),c.state=it(e,o.value.state??{},c);const m=ot(e,o.value.computed??{},c),f=at(o.value.methods??{},c),h=ct(e,o.value.inject,c);for(const[v,j]of Object.entries(h||{}))h[v]=e.inject(v,j);const g=Oe(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),lt(e,o.value.watch??[],c),{vtj:c}},emits:rt(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?A(l[0],c,e,a,l):l.map(m=>A(m,c,e,a,l))},...ut(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function rt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function nt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>he[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:E(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 it(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return E(i)?i=t.__parseExpression(i):F(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function ot(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function at(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ct(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=E(a)?t.__parseExpression(a)||i:a??i,p=E(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Oe(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Ie(n);else if(n.ref){const i=e.$apis[n.ref],a=F(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function lt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ut(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const pt=new d.Queue;let W=[],R={};const He=r=>r;async function ie(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>N(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&ee(i,e),await te(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(W.forEach(n=>{delete s.window[n]}),W=[]),(n,i,a=J)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=R[i.id]||await pt.add(i.id,()=>e(i.id));return o&&(o.name=n,R[i.id]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=R[i.url]||await t(i.url);return o&&(o.name=n,R[i.url]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?R[i.library]:null;return o||(i.library&&W.push(i.library),o=R[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await ie(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function dt(){R={}}function A(r,e,t=J,s=He,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=xe(p);if(!i&&(u||l))return null;if(c&&!ht(c,e))return yt(r,e,t,s,n);const j=(y,V=0)=>{const D=y.$components,z=(()=>{if(r.name==="component")return mt(y,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);return d.isString(b)?be(b)||Ce(b)?b:D[b]??a?.app?.component(b)??b:b})(),C=gt(o,r.props??{},y),Ke=vt(t,r.events??{},y);if(r.name==="slot")return _t(t,r,C,y,s);g&&Object.assign(C,y.__parseExpression(g.value)),f&&(C.style=Object.assign(C.style??{},wt(f,y))),S&&Object.assign(C,$t(S,y)),h.forEach(b=>{Object.assign(C,Et(t,b,y))});const Ve=jt(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,ze=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...ze,...C,...Ke},Ve);const ue=a?ft(a,v,y):[];return ue.length&&(G=t.withDirectives(G,ue)),G};return m?Pt(m,j,e):j(e)}function ft(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 xe(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!fe.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function ht(r,e){return!!e.__parseExpression(r.value)}function mt(r,e){return e?E(e)?r.__parseExpression(e):e:"div"}function gt(r,e,t){const s=Q(e,t);return s.ref=t.__ref(r,s.ref),s}function Q(r,e){return E(r)?e.__parseExpression(r):F(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>Q(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=Q(n,e),t},{}):r}function vt(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],p=oe(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function yt(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=xe(o);if(p){if(e.__parseExpression(p.value))return A(n[a],e,t,s,n,!0);continue}if(c)return A(n[a],e,t,s,n,!0)}return null}function oe(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function _t(r,e,t,s,n){const{children:i}=e,a=St(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):E(i)?r.createTextVNode(X(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>A(p,s,r,n,i)):null:null}function St(r,e){const{props:t}=r,s=t?.name||"default";return{name:E(s)?e.__parseExpression(s):s,params:[]}}function wt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function $t(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Et(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
10
10
  ${e.value.value} = v;
11
- }`:"(v) => {}"},n=t.__parseFunction(s),i=oe(E(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=E(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 Et(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(E(e))return{default:()=>X(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=jt(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>A(f,t.__clone(m),r,s,c))},o),{})}return null}function jt(r){const e={};for(const t of r){const s=bt(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 bt(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Ct(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((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const pe=$.defineComponent({name:"VtjPageContainer",async setup(){const r=ce(),e=de.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=$.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?$.h(r,{...e,key:t}):$.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Pt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}}),ae=Symbol("Provider");var Ne=(r=>(r.Production="production",r.Development="development",r))(Ne||{});class Ue extends P.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.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){d.logger.warn("模拟数据模版异常",i)}return k()?.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===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Te(s,n,this.adapter),ne(i),ke(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(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:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=_e(t,a,o==="development");for(const f of p){const h=s[f],g=e[f];if(g)n[f]=g;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const v of S)x(v)&&await Ee(f,d.url.append(v,{v:M})),N(v)&&await d.loadScript(d.url.append(v,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const g=e[m[h]],S=P.BUILT_IN_COMPONENTS[h];if(S)g&&S.forEach(v=>{i[v]=g[v]});else{const v=f[h]?(await f[h]()).default:e[h];v&&g&&(v.components||[]).forEach(j=>{i[j.name]=Se(j,g)})}}}}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:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:pe},l={path:c,name:H,component:t?.homepage?pe:n.startupComponent||Pt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&je(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(ae,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}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},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return L({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.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:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await ie(e,window))}}function Rt(r){const e=new Ue(r);return{provider:e,onReady:s=>e.ready(s)}}function ce(r={}){const e=$.inject(ae,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}async function At(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=we(n);if(i.length&&ee(i),a.length)return await te(a,t).catch(()=>{})}const Be={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Mt=(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:Be}),Tt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Be,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function kt(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class K{constructor(e=d.request){this.req=e,this.api=Mt(e),this.uploader=Tt(e)}api;pluginCaches={};uploader;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 parseVue(e,t){return await this.api("parseVue",{project:e,...t})}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=>ve(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.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 w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class It extends K{init(e){const t=new P.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new P.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Le extends K{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new P.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 P.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.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 P.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 U=null;function Ft(){return U||(U=new Le,U)}class Dt extends K{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:d.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 qe(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?qe(r,e,o):void 0}})}function Je(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Je(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ot(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ce(),i=de.useRoute(),a=Re(),o=$.ref(!1),p=$.ref(!1),c=n.project;$.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const g=n.getPage(f.id);o.value=!g?.mask,p.value=!!g?.pure}else if(m===H){const g=n.getHomepage();o.value=!g?.mask,p.value=!!g?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=qe(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:Je(u,a),pure:p}}exports.ACCESS_KEY=se;exports.Access=re;exports.BUILD_IN_TAGS=ge;exports.BUILT_IN_DIRECTIVES=fe;exports.BaseService=K;exports.CONTEXT_HOST=Y;exports.Context=De;exports.ContextMode=_;exports.DATA_TYPES=he;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=me;exports.JSCodeToString=Ze;exports.LIFE_CYCLES_LIST=We;exports.LocalService=Dt;exports.MemoryService=Le;exports.NodeEnv=Ne;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ue;exports.StorageService=It;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=pt;exports.compileScopedCSS=$e;exports.createAccess=st;exports.createAdapter=tt;exports.createAssetScripts=Ye;exports.createAssetsCss=Qe;exports.createDataSources=Oe;exports.createLoader=q;exports.createMemoryService=Ft;exports.createMetaApi=Me;exports.createMock=Ie;exports.createProvider=Rt;exports.createRenderer=L;exports.createSchemaApi=Ae;exports.createSchemaApis=Te;exports.createServiceRequest=kt;exports.defaultLoader=He;exports.fillBasePath=O;exports.getMock=k;exports.getModifiers=oe;exports.getPlugin=ie;exports.getRawComponent=Se;exports.isBuiltInTag=be;exports.isCSSUrl=x;exports.isJSCode=Pe;exports.isJSExpression=E;exports.isJSFunction=F;exports.isJSON=ve;exports.isJSUrl=N;exports.isNativeTag=Ce;exports.isVuePlugin=je;exports.loadCss=Ee;exports.loadCssUrl=ee;exports.loadEnhance=At;exports.loadScriptUrl=te;exports.mockApi=Fe;exports.mockApis=ke;exports.mockCleanup=ne;exports.nodeRender=A;exports.parseDeps=_e;exports.parseExpression=I;exports.parseFunction=B;exports.parseUrls=we;exports.providerKey=ae;exports.removeProdFlag=ye;exports.setupPageSetting=Xe;exports.toString=X;exports.useAccess=Re;exports.useMask=Ot;exports.useProvider=ce;
11
+ }`:"(v) => {}"},n=t.__parseFunction(s),i=oe(E(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=E(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 jt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(E(e))return{default:()=>X(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=bt(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>A(f,t.__clone(m),r,s,c))},o),{})}return null}function bt(r){const e={};for(const t of r){const s=Ct(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 Ct(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Pt(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((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const pe=$.defineComponent({name:"VtjPageContainer",async setup(){const r=ce(),e=de.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=$.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?$.h(r,{...e,key:t}):$.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Rt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}}),ae=Symbol("Provider");var Ne=(r=>(r.Production="production",r.Development="development",r))(Ne||{});class Ue extends P.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.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){d.logger.warn("模拟数据模版异常",i)}return k()?.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===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Te(s,n,this.adapter),ne(i),ke(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(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:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=_e(t,a,o==="development");for(const f of p){const h=s[f],g=e[f];if(g)n[f]=g;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const v of S)x(v)&&await Ee(f,d.url.append(v,{v:M})),N(v)&&await d.loadScript(d.url.append(v,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const g=e[m[h]],S=P.BUILT_IN_COMPONENTS[h];if(S)g&&S.forEach(v=>{i[v]=g[v]});else{const v=f[h]?(await f[h]()).default:e[h];v&&g&&(v.components||[]).forEach(j=>{i[j.name]=Se(j,g)})}}}}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:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:pe},l={path:c,name:H,component:t?.homepage?pe:n.startupComponent||Rt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&je(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(ae,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}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},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return L({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.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:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await ie(e,window))}}function At(r){const e=new Ue(r);return{provider:e,onReady:s=>e.ready(s)}}function ce(r={}){const e=$.inject(ae,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}async function Mt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=we(n);if(i.length&&ee(i),a.length)return await te(a,t).catch(()=>{})}const Be={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Tt=(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:Be}),kt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Be,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function It(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class K{constructor(e=d.request){this.req=e,this.api=Tt(e),this.uploader=kt(e)}api;pluginCaches={};uploader;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 parseVue(e,t){return await this.api("parseVue",{project:e,...t})}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=>ve(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.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 w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Ft extends K{init(e){const t=new P.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new P.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Le extends K{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new P.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 P.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.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 P.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 U=null;function Dt(){return U||(U=new Le,U)}class Ot extends K{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:d.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 qe(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?qe(r,e,o):void 0}})}function Je(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Je(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ht(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ce(),i=de.useRoute(),a=Re(),o=$.ref(!1),p=$.ref(!1),c=n.project;$.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const g=n.getPage(f.id);o.value=!g?.mask,p.value=!!g?.pure}else if(m===H){const g=n.getHomepage();o.value=!g?.mask,p.value=!!g?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=qe(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:Je(u,a),pure:p}}exports.ACCESS_KEY=se;exports.Access=re;exports.BUILD_IN_TAGS=ge;exports.BUILT_IN_DIRECTIVES=fe;exports.BaseService=K;exports.CONTEXT_HOST=Y;exports.Context=De;exports.ContextMode=_;exports.DATA_TYPES=he;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=me;exports.JSCodeToString=Ze;exports.LIFE_CYCLES_LIST=We;exports.LocalService=Ot;exports.MemoryService=Le;exports.NodeEnv=Ne;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ue;exports.StorageService=Ft;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=dt;exports.compileScopedCSS=$e;exports.createAccess=st;exports.createAdapter=tt;exports.createAssetScripts=Ye;exports.createAssetsCss=Qe;exports.createDataSources=Oe;exports.createLoader=q;exports.createMemoryService=Dt;exports.createMetaApi=Me;exports.createMock=Ie;exports.createProvider=At;exports.createRenderer=L;exports.createSchemaApi=Ae;exports.createSchemaApis=Te;exports.createServiceRequest=It;exports.defaultLoader=He;exports.fillBasePath=O;exports.getMock=k;exports.getModifiers=oe;exports.getPlugin=ie;exports.getRawComponent=Se;exports.isBuiltInTag=be;exports.isCSSUrl=x;exports.isJSCode=Pe;exports.isJSExpression=E;exports.isJSFunction=F;exports.isJSON=ve;exports.isJSUrl=N;exports.isNativeTag=Ce;exports.isVuePlugin=je;exports.loadCss=Ee;exports.loadCssUrl=ee;exports.loadEnhance=Mt;exports.loadScriptUrl=te;exports.mockApi=Fe;exports.mockApis=ke;exports.mockCleanup=ne;exports.nodeRender=A;exports.parseDeps=_e;exports.parseExpression=I;exports.parseFunction=B;exports.parseUrls=we;exports.providerKey=ae;exports.removeProdFlag=ye;exports.setupPageSetting=Xe;exports.toString=X;exports.useAccess=Re;exports.useMask=Ht;exports.useProvider=ce;
package/dist/index.mjs CHANGED
@@ -1,16 +1,16 @@
1
1
  import { Base as Be, BUILT_IN_COMPONENTS as Ue, ProjectModel as B, HistoryModel as ge } from "@vtj/core";
2
- import { isUrl as Le, url as C, dedupArray as qe, isString as P, isFunction as U, logger as k, storage as W, cookie as G, toArray as le, unRSA as ue, delay as ne, createRequest as ve, jsonp as ye, merge as Je, pathToRegexp as Ke, pathToRegexpMatch as ze, formDataToJson as Ve, cloneDeep as pe, camelCase as b, upperFirst as We, pick as Ge, request as Q, loadScript as fe, Storage as Ye, mapToObject as ie } from "@vtj/utils";
2
+ import { isUrl as Le, url as C, dedupArray as qe, isString as P, isFunction as U, logger as k, storage as W, cookie as G, toArray as le, unRSA as ue, delay as ne, createRequest as ve, jsonp as ye, merge as Je, pathToRegexp as Ke, pathToRegexpMatch as ze, formDataToJson as Ve, Queue as We, cloneDeep as pe, camelCase as b, upperFirst as Ge, pick as Qe, request as Y, loadScript as fe, Storage as Ye, mapToObject as ie } from "@vtj/utils";
3
3
  import * as L from "vue";
4
- import { inject as _e, defineComponent as we, h as X, ref as Z, defineAsyncComponent as de, watchEffect as Qe } from "vue";
4
+ import { inject as _e, defineComponent as we, h as X, ref as Z, defineAsyncComponent as de, watchEffect as Xe } from "vue";
5
5
  import { useRoute as Se } 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.12.37
10
+ * @version 0.12.38
11
11
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
12
12
  */
13
- const I = "0.12.37";
13
+ const I = "0.12.38";
14
14
  var w = /* @__PURE__ */ ((r) => (r.Runtime = "Runtime", r.Design = "Design", r.Raw = "Raw", r.VNode = "VNode", r))(w || {});
15
15
  const he = [
16
16
  "$el",
@@ -24,7 +24,7 @@ const he = [
24
24
  "$props",
25
25
  "$options",
26
26
  "$forceUpdate"
27
- ], rs = [
27
+ ], is = [
28
28
  "beforeCreate",
29
29
  "created",
30
30
  "beforeMount",
@@ -38,7 +38,7 @@ const he = [
38
38
  "renderTriggered",
39
39
  "activated",
40
40
  "deactivated"
41
- ], Xe = [
41
+ ], Ze = [
42
42
  "vIf",
43
43
  "vElseIf",
44
44
  "vElse",
@@ -47,7 +47,7 @@ const he = [
47
47
  "vFor",
48
48
  "vBind",
49
49
  "vHtml"
50
- ], Ze = {
50
+ ], et = {
51
51
  String,
52
52
  Number,
53
53
  Boolean,
@@ -55,9 +55,9 @@ const he = [
55
55
  Object,
56
56
  Function,
57
57
  Date
58
- }, M = "VtjPage", N = "VtjHomepage", et = "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(
58
+ }, M = "VtjPage", N = "VtjHomepage", tt = "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(
59
59
  ","
60
- ), tt = "component,slot".split(",");
60
+ ), st = "component,slot".split(",");
61
61
  function O(r, e) {
62
62
  return r.map((t) => Le(t) || t.startsWith("/") ? t : `${e}${t}`);
63
63
  }
@@ -67,28 +67,28 @@ function q(r) {
67
67
  function J(r) {
68
68
  return /\.js$/.test(r);
69
69
  }
70
- function st(r) {
70
+ function rt(r) {
71
71
  return /\.json$/.test(r);
72
72
  }
73
- function ns(r) {
73
+ function os(r) {
74
74
  return r.map(
75
75
  (e) => `<script src="${C.append(e, { v: I })}"><\/script>`
76
76
  ).join("");
77
77
  }
78
- function is(r = []) {
78
+ function as(r = []) {
79
79
  return r.map(
80
80
  (e) => `<link rel="stylesheet" href="${C.append(e, { v: I })}" />`
81
81
  ).join("");
82
82
  }
83
- function rt(r, e = !1) {
83
+ function nt(r, e = !1) {
84
84
  return e && r.endsWith(".prod.js") ? r.replace(".prod.js", ".js") : r;
85
85
  }
86
- function nt(r, e, t = !1) {
86
+ function it(r, e, t = !1) {
87
87
  const s = r.filter((h) => !!h.enabled), n = [], i = [], a = [], o = [], p = {}, c = {}, u = [], l = {};
88
88
  return s.forEach(
89
89
  ({ urls: h, assetsUrl: f, library: d, assetsLibrary: m, localeLibrary: y }) => {
90
90
  h?.forEach((g) => {
91
- J(g) && n.push(rt(g, t)), q(g) && i.push(g);
91
+ J(g) && n.push(nt(g, t)), q(g) && i.push(g);
92
92
  }), d && (o.push(d), p[d] = O(h || [], e), y && (c[d] = y)), f && a.push(f), m && u.push(m), d && m && (l[m] = d);
93
93
  }
94
94
  ), {
@@ -102,18 +102,18 @@ function nt(r, e, t = !1) {
102
102
  libraryLocaleMap: c
103
103
  };
104
104
  }
105
- function it(r, e) {
105
+ function ot(r, e) {
106
106
  const { name: t, parent: s, alias: n } = r;
107
107
  return s ? e[s]?.[n || t] : e[n || t];
108
108
  }
109
- function ot(r = []) {
109
+ function at(r = []) {
110
110
  const e = r.filter((s) => q(s)), t = r.filter((s) => J(s));
111
111
  return {
112
112
  css: e,
113
113
  js: t
114
114
  };
115
115
  }
116
- function at(r, e) {
116
+ function ct(r, e) {
117
117
  const t = (c) => {
118
118
  const u = [];
119
119
  let l = 0;
@@ -231,7 +231,7 @@ function $e(r) {
231
231
  return P(r) ? r : JSON.stringify(r);
232
232
  }
233
233
  function je(r, e, t, s = !1) {
234
- const n = r.CSSStyleSheet, i = s ? `data-v-${e}` : e, a = s ? at(t, i) : t;
234
+ const n = r.CSSStyleSheet, i = s ? `data-v-${e}` : e, a = s ? ct(t, i) : t;
235
235
  if (n.prototype.replaceSync) {
236
236
  const o = new n();
237
237
  o.id = e, o.replaceSync(a);
@@ -245,7 +245,7 @@ function je(r, e, t, s = !1) {
245
245
  p ? p.innerHTML = a : (p = o.createElement("style"), p.id = e, p.innerHTML = a, o.head.appendChild(p));
246
246
  }
247
247
  }
248
- async function ct(r, e) {
248
+ async function lt(r, e) {
249
249
  const t = await window.fetch(e).then((s) => s.text()).catch(() => "");
250
250
  t && je(window, r, t);
251
251
  }
@@ -271,14 +271,14 @@ async function be(r, e, t = window) {
271
271
  }
272
272
  });
273
273
  }
274
- function lt(r) {
275
- return U(r) || U(r?.install);
276
- }
277
274
  function ut(r) {
278
- return tt.includes(r);
275
+ return U(r) || U(r?.install);
279
276
  }
280
277
  function pt(r) {
281
- return et.includes(r);
278
+ return st.includes(r);
279
+ }
280
+ function ft(r) {
281
+ return tt.includes(r);
282
282
  }
283
283
  function D(r = window) {
284
284
  const e = window?.Mock;
@@ -287,7 +287,7 @@ function D(r = window) {
287
287
  if (t && window)
288
288
  return window.Mock = t, t;
289
289
  }
290
- function os(r, e, t) {
290
+ function cs(r, e, t) {
291
291
  Object.assign(e.meta, t.meta);
292
292
  const s = r?._container;
293
293
  t?.type === "page" && s.classList.add("is-page"), t?.pure && s.classList.add("is-pure");
@@ -323,13 +323,13 @@ function S(r) {
323
323
  function H(r) {
324
324
  return typeof r == "object" && r && r.type === "JSFunction";
325
325
  }
326
- function ft(r) {
326
+ function dt(r) {
327
327
  return S(r) || H(r);
328
328
  }
329
- function as(r) {
330
- return ft(r) ? r.value : JSON.stringify(r);
329
+ function ls(r) {
330
+ return dt(r) ? r.value : JSON.stringify(r);
331
331
  }
332
- const dt = {
332
+ const ht = {
333
333
  session: !1,
334
334
  authKey: "Authorization",
335
335
  storageKey: "ACCESS_STORAGE",
@@ -349,7 +349,7 @@ class Re {
349
349
  mode = w.Raw;
350
350
  interceptResponse = !0;
351
351
  constructor(e) {
352
- this.options = Object.assign({}, dt, e), this.loadData();
352
+ this.options = Object.assign({}, ht, e), this.loadData();
353
353
  }
354
354
  enableIntercept() {
355
355
  this.interceptResponse = !0;
@@ -496,10 +496,10 @@ class Re {
496
496
  );
497
497
  }
498
498
  }
499
- function ht() {
499
+ function mt() {
500
500
  return _e(Pe, null);
501
501
  }
502
- function cs(r = {}) {
502
+ function us(r = {}) {
503
503
  const {
504
504
  notify: e,
505
505
  loading: t,
@@ -539,10 +539,10 @@ function cs(r = {}) {
539
539
  access: i ? new Re({ alert: o, ...i }) : void 0
540
540
  };
541
541
  }
542
- function ls(r = {}) {
542
+ function ps(r = {}) {
543
543
  return new Re(r);
544
544
  }
545
- function mt(r, e) {
545
+ function gt(r, e) {
546
546
  const { jsonp: t, request: s } = e;
547
547
  if (r.method === "jsonp")
548
548
  return (n = {}) => t(r.url, {
@@ -561,7 +561,7 @@ function mt(r, e) {
561
561
  return (a, o) => (delete i.data, s.send(Je(i, o || {}, { data: a })));
562
562
  }
563
563
  }
564
- function gt(r, e) {
564
+ function vt(r, e) {
565
565
  const { metaQuery: t } = e;
566
566
  if (!t) return;
567
567
  const { code: s, queryCode: n } = r;
@@ -573,19 +573,19 @@ function gt(r, e) {
573
573
  return t(s, n, i, a);
574
574
  };
575
575
  }
576
- function vt(r = [], e = [], t) {
576
+ function yt(r = [], e = [], t) {
577
577
  const s = {};
578
578
  for (const n of r)
579
- s[n.id] = mt(n, t);
580
- for (const n of e)
581
579
  s[n.id] = gt(n, t);
580
+ for (const n of e)
581
+ s[n.id] = vt(n, t);
582
582
  return s;
583
583
  }
584
- async function yt(r = [], e = window) {
584
+ async function _t(r = [], e = window) {
585
585
  const t = D(e);
586
- t && (Ce(e), r.forEach((s) => wt(t, s)));
586
+ t && (Ce(e), r.forEach((s) => St(t, s)));
587
587
  }
588
- function _t(r, e = window) {
588
+ function wt(r, e = window) {
589
589
  const t = H(r.mockTemplate) && r.mockTemplate.value ? ee(r.mockTemplate, {}, !0) : void 0, s = D(e);
590
590
  return async (...n) => {
591
591
  let i = {};
@@ -598,7 +598,7 @@ function _t(r, e = window) {
598
598
  return s?.mock(i);
599
599
  };
600
600
  }
601
- function wt(r, e) {
601
+ function St(r, e) {
602
602
  if (!e.mock) return;
603
603
  const { url: t, mockTemplate: s } = e;
604
604
  if (t && s) {
@@ -613,7 +613,7 @@ function Ce(r = window) {
613
613
  const e = D(r);
614
614
  e && (e._mocked = {});
615
615
  }
616
- class St {
616
+ class $t {
617
617
  __id = null;
618
618
  __mode;
619
619
  __instance = null;
@@ -724,7 +724,7 @@ function te(r) {
724
724
  $components: s,
725
725
  $libs: n,
726
726
  $apis: i
727
- }, c = new St({
727
+ }, c = new $t({
728
728
  mode: t,
729
729
  dsl: o.value,
730
730
  attrs: p
@@ -732,7 +732,7 @@ function te(r) {
732
732
  name: o.value.name,
733
733
  __scopeId: o.value.id ? `data-v-${o.value.id}` : void 0,
734
734
  props: {
735
- ...jt(o.value.props ?? [], c)
735
+ ...Et(o.value.props ?? [], c)
736
736
  },
737
737
  setup(l) {
738
738
  c.$props = l, c.props = l, o.value.id && je(
@@ -740,11 +740,11 @@ function te(r) {
740
740
  o.value.id,
741
741
  o.value.css || "",
742
742
  !0
743
- ), c.state = Et(e, o.value.state ?? {}, c);
744
- const h = bt(e, o.value.computed ?? {}, c), f = Pt(o.value.methods ?? {}, c), d = Rt(e, o.value.inject, c);
743
+ ), c.state = bt(e, o.value.state ?? {}, c);
744
+ const h = Pt(e, o.value.computed ?? {}, c), f = Rt(o.value.methods ?? {}, c), d = Ct(e, o.value.inject, c);
745
745
  for (const [g, $] of Object.entries(d || {}))
746
746
  d[g] = e.inject(g, $);
747
- const m = Ct(
747
+ const m = kt(
748
748
  o.value.dataSources || {},
749
749
  c
750
750
  ), y = {
@@ -753,11 +753,11 @@ function te(r) {
753
753
  ...f,
754
754
  ...m
755
755
  };
756
- return c.setup(y, e), kt(e, o.value.watch ?? [], c), {
756
+ return c.setup(y, e), Ft(e, o.value.watch ?? [], c), {
757
757
  vtj: c
758
758
  };
759
759
  },
760
- emits: $t(o.value.emits),
760
+ emits: jt(o.value.emits),
761
761
  expose: ["vtj"],
762
762
  render() {
763
763
  if (!o.value.nodes) return null;
@@ -766,18 +766,18 @@ function te(r) {
766
766
  (h) => F(h, c, e, a, l)
767
767
  );
768
768
  },
769
- ...Ft(o.value.lifeCycles ?? {}, c)
769
+ ...At(o.value.lifeCycles ?? {}, c)
770
770
  });
771
771
  return {
772
772
  renderer: e.markRaw(u),
773
773
  context: c
774
774
  };
775
775
  }
776
- function $t(r = []) {
776
+ function jt(r = []) {
777
777
  return r.map((e) => P(e) ? e : e.name);
778
778
  }
779
- function jt(r = [], e) {
780
- const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => Ze[i]) : void 0;
779
+ function Et(r = [], e) {
780
+ const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => et[i]) : void 0;
781
781
  return r.map((s) => P(s) ? {
782
782
  name: s
783
783
  } : {
@@ -794,7 +794,7 @@ function jt(r = [], e) {
794
794
  {}
795
795
  );
796
796
  }
797
- function Et(r, e, t) {
797
+ function bt(r, e, t) {
798
798
  return r.reactive(
799
799
  Object.keys(e || {}).reduce(
800
800
  (s, n) => {
@@ -805,19 +805,19 @@ function Et(r, e, t) {
805
805
  )
806
806
  );
807
807
  }
808
- function bt(r, e, t) {
808
+ function Pt(r, e, t) {
809
809
  return Object.entries(e ?? {}).reduce(
810
810
  (s, [n, i]) => (s[n] = r.computed(t.__parseFunction(i)), s),
811
811
  {}
812
812
  );
813
813
  }
814
- function Pt(r, e) {
814
+ function Rt(r, e) {
815
815
  return Object.entries(r ?? {}).reduce(
816
816
  (t, [s, n]) => (t[s] = e.__parseFunction(n), t),
817
817
  {}
818
818
  );
819
819
  }
820
- function Rt(r, e = [], t) {
820
+ function Ct(r, e = [], t) {
821
821
  return e.reduce(
822
822
  (s, n) => {
823
823
  const { name: i, from: a } = n || {};
@@ -828,12 +828,12 @@ function Rt(r, e = [], t) {
828
828
  {}
829
829
  );
830
830
  }
831
- function Ct(r, e) {
831
+ function kt(r, e) {
832
832
  return Object.keys(r).reduce(
833
833
  (t, s) => {
834
834
  const n = r[s];
835
835
  if (n.type === "mock")
836
- t[s] = _t(n);
836
+ t[s] = wt(n);
837
837
  else if (n.ref) {
838
838
  const i = e.$apis[n.ref], a = H(n.transform) ? n.transform.value ? e.__parseFunction(n.transform) : void 0 : n.transform;
839
839
  t[s] = async (...o) => {
@@ -846,7 +846,7 @@ function Ct(r, e) {
846
846
  {}
847
847
  );
848
848
  }
849
- function kt(r, e = [], t) {
849
+ function Ft(r, e = [], t) {
850
850
  e.forEach((s) => {
851
851
  r.watch(
852
852
  t.__parseExpression(s.source),
@@ -858,7 +858,7 @@ function kt(r, e = [], t) {
858
858
  );
859
859
  });
860
860
  }
861
- function Ft(r, e) {
861
+ function At(r, e) {
862
862
  return Object.entries(r ?? {}).reduce(
863
863
  (t, [s, n]) => {
864
864
  const i = e.__parseFunction(n);
@@ -869,8 +869,9 @@ function Ft(r, e) {
869
869
  {}
870
870
  );
871
871
  }
872
- let Y = [], R = {};
873
- const At = (r) => r;
872
+ const It = new We();
873
+ let Q = [], R = {};
874
+ const Mt = (r) => r;
874
875
  async function ke(r, e = window) {
875
876
  const { urls: t = [], library: s } = r, n = t.filter((o) => J(o));
876
877
  if (n.length === 0 || !s) return null;
@@ -881,13 +882,16 @@ async function ke(r, e = window) {
881
882
  }
882
883
  function se(r) {
883
884
  const { getDsl: e, getDslByUrl: t, options: s } = r;
884
- return s.window && (Y.forEach((n) => {
885
+ return s.window && (Q.forEach((n) => {
885
886
  delete s.window[n];
886
- }), Y = []), (n, i, a = L) => {
887
+ }), Q = []), (n, i, a = L) => {
887
888
  if (!i || typeof i == "string") return n;
888
889
  if (i.type === "Schema" && i.id)
889
890
  return a.defineAsyncComponent(async () => {
890
- const o = R[i.id] || await e(i.id);
891
+ const o = R[i.id] || await It.add(
892
+ i.id,
893
+ () => e(i.id)
894
+ );
891
895
  return o && (o.name = n, R[i.id] = o), o ? te({
892
896
  ...s,
893
897
  Vue: a,
@@ -909,7 +913,7 @@ function se(r) {
909
913
  });
910
914
  if (i.type === "Plugin") {
911
915
  let o = i.library ? R[i.library] : null;
912
- return o || (i.library && Y.push(i.library), o = R[i.library || Symbol()] = a.defineAsyncComponent(
916
+ return o || (i.library && Q.push(i.library), o = R[i.library || Symbol()] = a.defineAsyncComponent(
913
917
  async () => {
914
918
  const p = await ke(i, s.window);
915
919
  return p || (console.warn("getPlugin result is null", i), null);
@@ -919,33 +923,33 @@ function se(r) {
919
923
  return n;
920
924
  };
921
925
  }
922
- function us() {
926
+ function fs() {
923
927
  R = {};
924
928
  }
925
- function F(r, e, t = L, s = At, n = [], i = !1) {
929
+ function F(r, e, t = L, s = Mt, n = [], i = !1) {
926
930
  if (!r || !r.name || r.invisible) return null;
927
931
  const a = t.getCurrentInstance()?.appContext, { id: o = null, directives: p = [] } = r, { vIf: c, vElseIf: u, vElse: l, vFor: h, vShow: f, vModels: d, vBind: m, vHtml: y, others: g } = Fe(p);
928
932
  if (!i && (u || l))
929
933
  return null;
930
- if (c && !Mt(c, e))
931
- return Ot(r, e, t, s, n);
934
+ if (c && !Tt(c, e))
935
+ return Nt(r, e, t, s, n);
932
936
  const $ = (v, K = 0) => {
933
937
  const A = v.$components, z = (() => {
934
938
  if (r.name === "component")
935
- return Dt(v, r.props?.is);
939
+ return Ht(v, r.props?.is);
936
940
  if (r.name === "slot") return r.name;
937
941
  const j = s(r.name, r.from, t);
938
- return P(j) ? ut(j) || pt(j) ? j : A[j] ?? a?.app?.component(j) ?? j : j;
939
- })(), E = Tt(o, r.props ?? {}, v), Oe = Ht(t, r.events ?? {}, v);
942
+ return P(j) ? pt(j) || ft(j) ? j : A[j] ?? a?.app?.component(j) ?? j : j;
943
+ })(), E = Ot(o, r.props ?? {}, v), Oe = xt(t, r.events ?? {}, v);
940
944
  if (r.name === "slot")
941
- return xt(t, r, E, v, s);
945
+ return Bt(t, r, E, v, s);
942
946
  m && Object.assign(E, v.__parseExpression(m.value)), f && (E.style = Object.assign(
943
947
  E.style ?? {},
944
- Bt(f, v)
945
- )), y && Object.assign(E, Ut(y, v)), d.forEach((j) => {
946
- Object.assign(E, Lt(t, j, v));
948
+ Lt(f, v)
949
+ )), y && Object.assign(E, qt(y, v)), d.forEach((j) => {
950
+ Object.assign(E, Jt(t, j, v));
947
951
  });
948
- const xe = qt(
952
+ const xe = Kt(
949
953
  t,
950
954
  r.children ?? [],
951
955
  v,
@@ -957,12 +961,12 @@ function F(r, e, t = L, s = At, n = [], i = !1) {
957
961
  { key: `${o}_${K}`, ...Ne, ...E, ...Oe },
958
962
  xe
959
963
  );
960
- const ce = a ? It(a, g, v) : [];
964
+ const ce = a ? Dt(a, g, v) : [];
961
965
  return ce.length && (V = t.withDirectives(V, ce)), V;
962
966
  };
963
- return h ? zt(h, $, e) : $(e);
967
+ return h ? Wt(h, $, e) : $(e);
964
968
  }
965
- function It(r, e, t) {
969
+ function Dt(r, e, t) {
966
970
  const s = r.app;
967
971
  return e.map((n) => {
968
972
  const i = typeof n.name == "string" ? s.directive(n.name) : t.__parseExpression(n.name);
@@ -977,7 +981,7 @@ function Fe(r = []) {
977
981
  ), s = r.find((u) => b(u.name) === "vElse"), n = r.find((u) => b(u.name) === "vFor"), i = r.find((u) => b(u.name) === "vShow"), a = r.find((u) => b(u.name) === "vBind"), o = r.find((u) => b(u.name) === "vHtml"), p = r.filter(
978
982
  (u) => b(u.name) === "vModel"
979
983
  ), c = r.filter(
980
- (u) => !Xe.includes(b(u.name))
984
+ (u) => !Ze.includes(b(u.name))
981
985
  );
982
986
  return {
983
987
  vIf: e,
@@ -991,13 +995,13 @@ function Fe(r = []) {
991
995
  vHtml: o
992
996
  };
993
997
  }
994
- function Mt(r, e) {
998
+ function Tt(r, e) {
995
999
  return !!e.__parseExpression(r.value);
996
1000
  }
997
- function Dt(r, e) {
1001
+ function Ht(r, e) {
998
1002
  return e ? S(e) ? r.__parseExpression(e) : e : "div";
999
1003
  }
1000
- function Tt(r, e, t) {
1004
+ function Ot(r, e, t) {
1001
1005
  const s = re(e, t);
1002
1006
  return s.ref = t.__ref(r, s.ref), s;
1003
1007
  }
@@ -1010,7 +1014,7 @@ function re(r, e) {
1010
1014
  {}
1011
1015
  ) : r;
1012
1016
  }
1013
- function Ht(r, e, t) {
1017
+ function xt(r, e, t) {
1014
1018
  const s = ["passive", "capture", "once"], n = {
1015
1019
  capture: "Capture",
1016
1020
  once: "Once",
@@ -1018,13 +1022,13 @@ function Ht(r, e, t) {
1018
1022
  };
1019
1023
  return Object.keys(e || {}).reduce(
1020
1024
  (i, a) => {
1021
- const o = e[a], p = Ae(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" + We(a) + (c && n[c] || ""), l = t.__parseFunction(o.handler);
1025
+ const o = e[a], p = Ae(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" + Ge(a) + (c && n[c] || ""), l = t.__parseFunction(o.handler);
1022
1026
  return l && (i[u] = r.withModifiers(l, p)), i;
1023
1027
  },
1024
1028
  {}
1025
1029
  );
1026
1030
  }
1027
- function Ot(r, e, t, s, n = []) {
1031
+ function Nt(r, e, t, s, n = []) {
1028
1032
  let i = n.findIndex((a) => a.id === r.id);
1029
1033
  for (let a = ++i; a < n.length; a++) {
1030
1034
  const { directives: o = [] } = n[a], { vElseIf: p, vElse: c } = Fe(o);
@@ -1042,32 +1046,32 @@ function Ae(r = {}, e = !1) {
1042
1046
  const t = Object.keys(r);
1043
1047
  return e ? t.map((s) => "." + s) : t;
1044
1048
  }
1045
- function xt(r, e, t, s, n) {
1046
- const { children: i } = e, a = Nt(e, s), o = s.$slots?.[a.name];
1049
+ function Bt(r, e, t, s, n) {
1050
+ const { children: i } = e, a = Ut(e, s), o = s.$slots?.[a.name];
1047
1051
  return o ? o(t) : i ? P(i) ? r.createTextVNode(i) : S(i) ? r.createTextVNode(
1048
1052
  $e(s.__parseExpression(i))
1049
1053
  ) : Array.isArray(i) ? i.map(
1050
1054
  (p) => F(p, s, r, n, i)
1051
1055
  ) : null : null;
1052
1056
  }
1053
- function Nt(r, e) {
1057
+ function Ut(r, e) {
1054
1058
  const { props: t } = r, s = t?.name || "default";
1055
1059
  return {
1056
1060
  name: S(s) ? e.__parseExpression(s) : s,
1057
1061
  params: []
1058
1062
  };
1059
1063
  }
1060
- function Bt(r, e) {
1064
+ function Lt(r, e) {
1061
1065
  return e.__parseExpression(r.value) ? {} : {
1062
1066
  display: "none"
1063
1067
  };
1064
1068
  }
1065
- function Ut(r, e) {
1069
+ function qt(r, e) {
1066
1070
  return {
1067
1071
  innerHTML: e.__parseExpression(r.value) || ""
1068
1072
  };
1069
1073
  }
1070
- function Lt(r, e, t) {
1074
+ function Jt(r, e, t) {
1071
1075
  const s = {
1072
1076
  type: "JSFunction",
1073
1077
  value: e.value?.value ? `(v) => {
@@ -1081,7 +1085,7 @@ function Lt(r, e, t) {
1081
1085
  [`onUpdate:${a}`]: i.length && n ? r.withModifiers(n, i) : n
1082
1086
  };
1083
1087
  }
1084
- function qt(r, e, t, s, n) {
1088
+ function Kt(r, e, t, s, n) {
1085
1089
  if (!e) return null;
1086
1090
  if (P(e))
1087
1091
  return { default: () => e };
@@ -1090,11 +1094,11 @@ function qt(r, e, t, s, n) {
1090
1094
  default: () => $e(t.__parseExpression(e))
1091
1095
  };
1092
1096
  if (Array.isArray(e) && e.length > 0) {
1093
- const i = Jt(e), a = (o) => !o || !n ? {} : n?.id && Object.keys(o).length ? {
1097
+ const i = zt(e), a = (o) => !o || !n ? {} : n?.id && Object.keys(o).length ? {
1094
1098
  [`scope_${n.id}`]: o
1095
1099
  } : {};
1096
1100
  return Object.entries(i).reduce((o, [p, { nodes: c, params: u }]) => (o[p] = (l) => {
1097
- const h = u.length ? Ge(l ?? {}, u) : a(l);
1101
+ const h = u.length ? Qe(l ?? {}, u) : a(l);
1098
1102
  return c.map(
1099
1103
  (f) => F(f, t.__clone(h), r, s, c)
1100
1104
  );
@@ -1102,10 +1106,10 @@ function qt(r, e, t, s, n) {
1102
1106
  }
1103
1107
  return null;
1104
1108
  }
1105
- function Jt(r) {
1109
+ function zt(r) {
1106
1110
  const e = {};
1107
1111
  for (const t of r) {
1108
- const s = Kt(t.slot), n = s.name;
1112
+ const s = Vt(t.slot), n = s.name;
1109
1113
  e[n] ? (e[n].nodes.push(t), e[n].params = e[n].params.concat(s.params)) : e[n] = {
1110
1114
  nodes: [t],
1111
1115
  params: s.params
@@ -1113,10 +1117,10 @@ function Jt(r) {
1113
1117
  }
1114
1118
  return e;
1115
1119
  }
1116
- function Kt(r = "default") {
1120
+ function Vt(r = "default") {
1117
1121
  return P(r) ? { name: r, params: [] } : { params: [], ...r };
1118
1122
  }
1119
- function zt(r, e, t) {
1123
+ function Wt(r, e, t) {
1120
1124
  const { value: s, iterator: n } = r, { item: i = "item", index: a = "index" } = n || {};
1121
1125
  let o = t.__parseExpression(s) || [];
1122
1126
  return Number.isInteger(o) && (o = new Array(o).fill(!0).map((p, c) => c + 1)), Array.isArray(o) ? o.map((p, c) => e(t.__clone({ [i]: p, [a]: c }), c)) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
@@ -1147,14 +1151,14 @@ const me = we({
1147
1151
  activated() {
1148
1152
  this.meta.cache === !1 && (this.sid = Symbol());
1149
1153
  }
1150
- }), Vt = we({
1154
+ }), Gt = we({
1151
1155
  name: "VtjStartupContainer",
1152
1156
  render() {
1153
1157
  return X("div", "page not found!");
1154
1158
  }
1155
1159
  }), Ie = Symbol("Provider");
1156
- var Wt = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(Wt || {});
1157
- class Gt extends Be {
1160
+ var Qt = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(Qt || {});
1161
+ class Yt extends Be {
1158
1162
  // DSL缓存
1159
1163
  /**
1160
1164
  * 创建Provider实例
@@ -1186,7 +1190,7 @@ class Gt extends Be {
1186
1190
  // 全局变量
1187
1191
  modules = {};
1188
1192
  // 异步模块加载器
1189
- adapter = { request: Q, jsonp: ye };
1193
+ adapter = { request: Y, jsonp: ye };
1190
1194
  // 适配器接口
1191
1195
  apis = {};
1192
1196
  // API集合
@@ -1235,7 +1239,7 @@ class Gt extends Be {
1235
1239
  if (this.project = t ? await t() : await this.service.init(e), !this.project)
1236
1240
  throw new Error("project is null");
1237
1241
  const { apis: s = [], meta: n = [] } = this.project, i = window;
1238
- i && (i.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = vt(s, n, this.adapter), Ce(i), yt(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1242
+ i && (i.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = yt(s, n, this.adapter), Ce(i), _t(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1239
1243
  }
1240
1244
  initMock(e) {
1241
1245
  const t = D(e);
@@ -1255,7 +1259,7 @@ class Gt extends Be {
1255
1259
  materials: u,
1256
1260
  materialExports: l,
1257
1261
  materialMapLibrary: h
1258
- } = nt(
1262
+ } = it(
1259
1263
  t,
1260
1264
  a,
1261
1265
  o === "development"
@@ -1270,7 +1274,7 @@ class Gt extends Be {
1270
1274
  else {
1271
1275
  const y = c[f] || [];
1272
1276
  for (const g of y)
1273
- q(g) && await ct(f, C.append(g, { v: I })), J(g) && await fe(C.append(g, { v: I }));
1277
+ q(g) && await lt(f, C.append(g, { v: I })), J(g) && await fe(C.append(g, { v: I }));
1274
1278
  n[f] = e[f];
1275
1279
  }
1276
1280
  }
@@ -1287,7 +1291,7 @@ class Gt extends Be {
1287
1291
  else {
1288
1292
  const g = f[d] ? (await f[d]()).default : e[d];
1289
1293
  g && m && (g.components || []).forEach(($) => {
1290
- i[$.name] = it($, m);
1294
+ i[$.name] = ot($, m);
1291
1295
  });
1292
1296
  }
1293
1297
  }
@@ -1307,7 +1311,7 @@ class Gt extends Be {
1307
1311
  }, l = {
1308
1312
  path: c,
1309
1313
  name: N,
1310
- component: t?.homepage ? me : n.startupComponent || Vt,
1314
+ component: t?.homepage ? me : n.startupComponent || Gt,
1311
1315
  meta: p
1312
1316
  };
1313
1317
  e.hasRoute(M) && e.removeRoute(M), e.hasRoute(N) && e.removeRoute(N), a ? (e.addRoute(a, u), e.addRoute(a, l)) : (e.addRoute(u), e.addRoute(l));
@@ -1325,7 +1329,7 @@ class Gt extends Be {
1325
1329
  install(e) {
1326
1330
  const t = e.config.globalProperties.installed || {};
1327
1331
  for (const [s, n] of Object.entries(this.library))
1328
- !t[s] && lt(n) && (e.use(n), t[s] = !0);
1332
+ !t[s] && ut(n) && (e.use(n), t[s] = !0);
1329
1333
  this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(Ie, this), e.config.globalProperties.$provider = this, e.config.globalProperties.installed = t, this.mode === w.Design && (e.config.errorHandler = (s, n, i) => {
1330
1334
  const a = n?.$options.name, o = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", p = `[ ${a} ] ${o} ${i}`;
1331
1335
  console.error(
@@ -1452,8 +1456,8 @@ class Gt extends Be {
1452
1456
  return de(async () => await ke(e, window));
1453
1457
  }
1454
1458
  }
1455
- function ps(r) {
1456
- const e = new Gt(r);
1459
+ function ds(r) {
1460
+ const e = new Yt(r);
1457
1461
  return {
1458
1462
  provider: e,
1459
1463
  onReady: (s) => e.ready(s)
@@ -1476,8 +1480,8 @@ function Me(r = {}) {
1476
1480
  }
1477
1481
  return e;
1478
1482
  }
1479
- async function fs(r, e = "") {
1480
- const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } = ot(n);
1483
+ async function hs(r, e = "") {
1484
+ const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } = at(n);
1481
1485
  if (i.length && Ee(i), a.length)
1482
1486
  return await be(a, t).catch(
1483
1487
  () => {
@@ -1490,7 +1494,7 @@ const De = {
1490
1494
  originResponse: !1,
1491
1495
  failMessage: !0,
1492
1496
  validate: (r) => r.data?.code === 0
1493
- }, Yt = (r, e = "/__vtj__/api/:type.json") => (t, s, n) => r.send({
1497
+ }, Xt = (r, e = "/__vtj__/api/:type.json") => (t, s, n) => r.send({
1494
1498
  url: e,
1495
1499
  method: "post",
1496
1500
  params: { type: t },
@@ -1500,7 +1504,7 @@ const De = {
1500
1504
  data: s
1501
1505
  },
1502
1506
  settings: De
1503
- }), Qt = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
1507
+ }), Zt = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
1504
1508
  url: e,
1505
1509
  method: "post",
1506
1510
  data: {
@@ -1512,7 +1516,7 @@ const De = {
1512
1516
  type: "data"
1513
1517
  }
1514
1518
  }).then((n) => n && n[0] ? n[0] : null).catch(() => null);
1515
- function ds(r) {
1519
+ function ms(r) {
1516
1520
  return ve({
1517
1521
  settings: {
1518
1522
  type: "json",
@@ -1527,8 +1531,8 @@ function ds(r) {
1527
1531
  });
1528
1532
  }
1529
1533
  class oe {
1530
- constructor(e = Q) {
1531
- this.req = e, this.api = Yt(e), this.uploader = Qt(e);
1534
+ constructor(e = Y) {
1535
+ this.req = e, this.api = Xt(e), this.uploader = Zt(e);
1532
1536
  }
1533
1537
  api;
1534
1538
  pluginCaches = {};
@@ -1612,10 +1616,10 @@ class oe {
1612
1616
  return await this.api("clearStaticFiles", e).catch(() => "");
1613
1617
  }
1614
1618
  async getPluginMaterial(e) {
1615
- const { urls: t = [] } = e, s = t.filter((i) => st(i))[0];
1619
+ const { urls: t = [] } = e, s = t.filter((i) => rt(i))[0];
1616
1620
  if (!s) return null;
1617
1621
  const n = this.pluginCaches[s];
1618
- return n || (this.pluginCaches[s] = Q.send({
1622
+ return n || (this.pluginCaches[s] = Y.send({
1619
1623
  url: s,
1620
1624
  method: "get",
1621
1625
  settings: {
@@ -1633,7 +1637,7 @@ const _ = new Ye({
1633
1637
  expired: 0,
1634
1638
  prefix: "__VTJ_"
1635
1639
  });
1636
- class hs extends oe {
1640
+ class gs extends oe {
1637
1641
  init(e) {
1638
1642
  const t = new B(e), s = _.get(`project_${t.id}`), n = Object.assign(t.toDsl(), s || {});
1639
1643
  return _.save(`project_${t.id}`, n), Promise.resolve(n);
@@ -1683,7 +1687,7 @@ class hs extends oe {
1683
1687
  }), Promise.resolve(!0);
1684
1688
  }
1685
1689
  }
1686
- class Xt extends oe {
1690
+ class es extends oe {
1687
1691
  projects = {};
1688
1692
  materials = {};
1689
1693
  files = {};
@@ -1741,10 +1745,10 @@ class Xt extends oe {
1741
1745
  }
1742
1746
  }
1743
1747
  let x = null;
1744
- function ms() {
1745
- return x || (x = new Xt(), x);
1748
+ function vs() {
1749
+ return x || (x = new es(), x);
1746
1750
  }
1747
- class gs extends oe {
1751
+ class ys extends oe {
1748
1752
  getFileCaches = {};
1749
1753
  async getExtension() {
1750
1754
  return await this.api("getExtension", {}).catch(() => {
@@ -1825,13 +1829,13 @@ function He(r, e) {
1825
1829
  e.can(s.id.toString()) && t.push(s);
1826
1830
  return t;
1827
1831
  }
1828
- function vs(r) {
1832
+ function _s(r) {
1829
1833
  const {
1830
1834
  menuPathPrefix: e = "",
1831
1835
  pageRouteName: t = "page",
1832
1836
  disableMenusFilter: s = !1
1833
- } = r || {}, n = Me(), i = Se(), a = ht(), o = Z(!1), p = Z(!1), c = n.project;
1834
- Qe(() => {
1837
+ } = r || {}, n = Me(), i = Se(), a = mt(), o = Z(!1), p = Z(!1), c = n.project;
1838
+ Xe(() => {
1835
1839
  const { name: h, params: f, meta: d } = i;
1836
1840
  if (h === M) {
1837
1841
  const m = n.getPage(f.id);
@@ -1859,73 +1863,73 @@ function vs(r) {
1859
1863
  export {
1860
1864
  Pe as ACCESS_KEY,
1861
1865
  Re as Access,
1862
- tt as BUILD_IN_TAGS,
1863
- Xe as BUILT_IN_DIRECTIVES,
1866
+ st as BUILD_IN_TAGS,
1867
+ Ze as BUILT_IN_DIRECTIVES,
1864
1868
  oe as BaseService,
1865
1869
  he as CONTEXT_HOST,
1866
- St as Context,
1870
+ $t as Context,
1867
1871
  w as ContextMode,
1868
- Ze as DATA_TYPES,
1872
+ et as DATA_TYPES,
1869
1873
  N as HOMEPAGE_ROUTE_NAME,
1870
- et as HTML_TAGS,
1871
- as as JSCodeToString,
1872
- rs as LIFE_CYCLES_LIST,
1873
- gs as LocalService,
1874
- Xt as MemoryService,
1875
- Wt as NodeEnv,
1874
+ tt as HTML_TAGS,
1875
+ ls as JSCodeToString,
1876
+ is as LIFE_CYCLES_LIST,
1877
+ ys as LocalService,
1878
+ es as MemoryService,
1879
+ Qt as NodeEnv,
1876
1880
  M as PAGE_ROUTE_NAME,
1877
- Gt as Provider,
1878
- hs as StorageService,
1881
+ Yt as Provider,
1882
+ gs as StorageService,
1879
1883
  I as VTJ_RENDERER_VERSION,
1880
1884
  je as adoptedStyleSheets,
1881
- us as clearLoaderCache,
1882
- at as compileScopedCSS,
1883
- ls as createAccess,
1884
- cs as createAdapter,
1885
- ns as createAssetScripts,
1886
- is as createAssetsCss,
1887
- Ct as createDataSources,
1885
+ fs as clearLoaderCache,
1886
+ ct as compileScopedCSS,
1887
+ ps as createAccess,
1888
+ us as createAdapter,
1889
+ os as createAssetScripts,
1890
+ as as createAssetsCss,
1891
+ kt as createDataSources,
1888
1892
  se as createLoader,
1889
- ms as createMemoryService,
1890
- gt as createMetaApi,
1891
- _t as createMock,
1892
- ps as createProvider,
1893
+ vs as createMemoryService,
1894
+ vt as createMetaApi,
1895
+ wt as createMock,
1896
+ ds as createProvider,
1893
1897
  te as createRenderer,
1894
- mt as createSchemaApi,
1895
- vt as createSchemaApis,
1896
- ds as createServiceRequest,
1897
- At as defaultLoader,
1898
+ gt as createSchemaApi,
1899
+ yt as createSchemaApis,
1900
+ ms as createServiceRequest,
1901
+ Mt as defaultLoader,
1898
1902
  O as fillBasePath,
1899
1903
  D as getMock,
1900
1904
  Ae as getModifiers,
1901
1905
  ke as getPlugin,
1902
- it as getRawComponent,
1903
- ut as isBuiltInTag,
1906
+ ot as getRawComponent,
1907
+ pt as isBuiltInTag,
1904
1908
  q as isCSSUrl,
1905
- ft as isJSCode,
1909
+ dt as isJSCode,
1906
1910
  S as isJSExpression,
1907
1911
  H as isJSFunction,
1908
- st as isJSON,
1912
+ rt as isJSON,
1909
1913
  J as isJSUrl,
1910
- pt as isNativeTag,
1911
- lt as isVuePlugin,
1912
- ct as loadCss,
1914
+ ft as isNativeTag,
1915
+ ut as isVuePlugin,
1916
+ lt as loadCss,
1913
1917
  Ee as loadCssUrl,
1914
- fs as loadEnhance,
1918
+ hs as loadEnhance,
1915
1919
  be as loadScriptUrl,
1916
- wt as mockApi,
1917
- yt as mockApis,
1920
+ St as mockApi,
1921
+ _t as mockApis,
1918
1922
  Ce as mockCleanup,
1919
1923
  F as nodeRender,
1920
- nt as parseDeps,
1924
+ it as parseDeps,
1921
1925
  T as parseExpression,
1922
1926
  ee as parseFunction,
1923
- ot as parseUrls,
1927
+ at as parseUrls,
1924
1928
  Ie as providerKey,
1925
- rt as removeProdFlag,
1926
- os as setupPageSetting,
1929
+ nt as removeProdFlag,
1930
+ cs as setupPageSetting,
1927
1931
  $e as toString,
1928
- ht as useAccess,
1929
- vs as useMask,
1932
+ mt as useAccess,
1933
+ _s as useMask,
1930
1934
  Me as useProvider
1931
1935
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.12.37",
4
+ "version": "0.12.38",
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/utils": "~0.12.37",
25
- "@vtj/core": "~0.12.37"
24
+ "@vtj/core": "~0.12.38",
25
+ "@vtj/utils": "~0.12.38"
26
26
  },
27
27
  "devDependencies": {
28
28
  "vue": "~3.5.5",
29
29
  "vue-router": "~4.5.0",
30
- "@vtj/cli": "~0.12.3",
31
- "@vtj/icons": "~0.12.37",
32
- "@vtj/ui": "~0.12.37"
30
+ "@vtj/cli": "~0.12.4",
31
+ "@vtj/ui": "~0.12.38",
32
+ "@vtj/icons": "~0.12.38"
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.12.36
5
+ * @version 0.12.37
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.12.36";
8
+ export declare const version = "0.12.37";