@vtj/renderer 0.13.32 → 0.13.33

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
@@ -1,14 +1,14 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("@vtj/core"),f=require("@vtj/utils"),$=require("vue"),ve=require("vue-router");function Ze(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const G=Ze($);/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("@vtj/core"),f=require("@vtj/utils"),j=require("vue"),ve=require("vue-router");function Ze(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const G=Ze(j);/**!
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.13.32
5
+ * @version 0.13.33
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const O="0.13.32";var S=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(S||{});const te=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],et=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],_e=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],Se={String,Number,Boolean,Array,Object,Function,Date},F="VtjPage",L="VtjHomepage",we="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,svg".split(","),Ee="component,slot".split(","),tt=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),st={auth:["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o","/","a","u","t","h",".","h","t","m","l"].join(""),storageKey:["R","R","O","_","I","D","E","_","A","C","C","E","S","S","_","S","T","O","R","A","G","E","_","_"].join(""),privateKey:"MIIBOgIBAAJBAKoIzmn1FYQ1YOhOBw9EhABxZ+PySAIaydI+zdhoKflrdgJ4A5E4/5gbQmRpk09hPWG8nvX7h+l/QLU8kXxAIBECAwEAAQJAAlgpxQY6sByLsXqzJcthC8LSGsLf2JEJkHwlnpwFqlEV8UCkoINpuZ2Wzl+aftURu5rIfAzRCQBvHmeOTW9/zQIhAO5ufWDmnSLyfAAsNo5JRNpVuLFCFodR8Xm+ulDlosR/AiEAtpAltyP9wmCABKG/v/hrtTr3mcvFNGCjoGa9bUAok28CIHbrVs9w1ijrBlvTsXYwJw46uP539uKRRT4ymZzlm9QjAiB+1KH/G9f9pEEL9rtaSOG7JF5D0JcOjlze4MGVFs+ZrQIhALKOUFBNr2zEsyJIjw2PlvEucdlG77UniszjXTROHSPd"};function x(r,e){return r.map(t=>f.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function B(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function je(r){return/\.json$/.test(r)}function rt(r){return r.map(e=>`<script src="${f.url.append(e,{v:O})}"><\/script>`).join("")}function nt(r=[]){return r.map(e=>`<link rel="stylesheet" href="${f.url.append(e,{v:O})}" />`).join("")}function $e(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function be(r,e,t=!1){const s=r.filter(d=>!!d.enabled),n=[],o=[],a=[],i=[],l={},c={},u=[],p={};return s.forEach(({urls:d,assetsUrl:m,library:h,assetsLibrary:g,localeLibrary:y})=>{d?.forEach(v=>{N(v)&&n.push($e(v,t)),B(v)&&o.push(v)}),h&&(i.push(h),l[h]=x(d||[],e),y&&(c[h]=y)),m&&a.push(m),g&&u.push(g),h&&g&&(p[g]=h)}),{scripts:x(n,e),css:x(o,e),materials:x(a,e),libraryExports:i,materialExports:f.dedupArray(u),materialMapLibrary:p,libraryMap:l,libraryLocaleMap:c}}function Re(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function Ce(r=[]){const e=r.filter(s=>B(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function Pe(r,e){const t=c=>{const u=[];let p=0;for(;p<c.length;){if(/\s/.test(c[p])){p++;continue}if(c.substring(p,p+2)==="/*"){const v=c.indexOf("*/",p+2);if(v!==-1){p=v+2;continue}}if(c[p]==="@"){const v=p;for(;p<c.length&&c[p]!=="{"&&c[p]!==";";)p++;const w=c.substring(v,p).trim(),_=w.includes("@keyframes");if(c[p]===";")u.push({type:"simple-at-rule",content:c.substring(v,p+1)}),p++;else if(c[p]==="{"){const E=p+1;let A=1;for(p++;p<c.length&&A>0;)c[p]==="{"?A++:c[p]==="}"&&A--,p++;const W=c.substring(v,p),I=c.substring(E,p-1);u.push({type:_?"keyframes":"at-rule",rule:w,content:W,inner:I})}continue}const d=p;for(;p<c.length&&c[p]!=="{";)p++;if(p>=c.length)break;const m=c.substring(d,p).trim();if(!m){p++;continue}const h=p+1;let g=1;for(p++;p<c.length&&g>0;)c[p]==="{"?g++:c[p]==="}"&&g--,p++;const y=c.substring(h,p-1);u.push({type:"rule",selector:m,content:y.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,p,d)=>{const m=p.trim(),h=d.trim();return m?`${m}[${e}] ${h}`:h}),o=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const p=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(p){const[,d,m=""]=p,h=d.trim();return h?`${h}[${e}]${m}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(p=>o(p)).filter(p=>p.trim()).join(", "),i=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const d=t(u.inner),m=i(d);return`${u.rule} { ${m} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const p=a(u.selector);return p.trim()?`${p} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),l=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 O="0.13.33";var S=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(S||{});const te=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],et=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],_e=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],Se={String,Number,Boolean,Array,Object,Function,Date},F="VtjPage",L="VtjHomepage",we="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,svg".split(","),Ee="component,slot".split(","),tt=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),st={auth:["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o","/","a","u","t","h",".","h","t","m","l"].join(""),storageKey:["R","R","O","_","I","D","E","_","A","C","C","E","S","S","_","S","T","O","R","A","G","E","_","_"].join(""),privateKey:"MIIBOgIBAAJBAKoIzmn1FYQ1YOhOBw9EhABxZ+PySAIaydI+zdhoKflrdgJ4A5E4/5gbQmRpk09hPWG8nvX7h+l/QLU8kXxAIBECAwEAAQJAAlgpxQY6sByLsXqzJcthC8LSGsLf2JEJkHwlnpwFqlEV8UCkoINpuZ2Wzl+aftURu5rIfAzRCQBvHmeOTW9/zQIhAO5ufWDmnSLyfAAsNo5JRNpVuLFCFodR8Xm+ulDlosR/AiEAtpAltyP9wmCABKG/v/hrtTr3mcvFNGCjoGa9bUAok28CIHbrVs9w1ijrBlvTsXYwJw46uP539uKRRT4ymZzlm9QjAiB+1KH/G9f9pEEL9rtaSOG7JF5D0JcOjlze4MGVFs+ZrQIhALKOUFBNr2zEsyJIjw2PlvEucdlG77UniszjXTROHSPd"};function x(r,e){return r.map(t=>f.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function B(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function $e(r){return/\.json$/.test(r)}function rt(r){return r.map(e=>`<script src="${f.url.append(e,{v:O})}"><\/script>`).join("")}function nt(r=[]){return r.map(e=>`<link rel="stylesheet" href="${f.url.append(e,{v:O})}" />`).join("")}function je(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function be(r,e,t=!1){const s=r.filter(d=>!!d.enabled),n=[],o=[],a=[],i=[],l={},c={},u=[],p={};return s.forEach(({urls:d,assetsUrl:m,library:h,assetsLibrary:g,localeLibrary:y})=>{d?.forEach(v=>{N(v)&&n.push(je(v,t)),B(v)&&o.push(v)}),h&&(i.push(h),l[h]=x(d||[],e),y&&(c[h]=y)),m&&a.push(m),g&&u.push(g),h&&g&&(p[g]=h)}),{scripts:x(n,e),css:x(o,e),materials:x(a,e),libraryExports:i,materialExports:f.dedupArray(u),materialMapLibrary:p,libraryMap:l,libraryLocaleMap:c}}function Re(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function Ce(r=[]){const e=r.filter(s=>B(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function Pe(r,e){const t=c=>{const u=[];let p=0;for(;p<c.length;){if(/\s/.test(c[p])){p++;continue}if(c.substring(p,p+2)==="/*"){const v=c.indexOf("*/",p+2);if(v!==-1){p=v+2;continue}}if(c[p]==="@"){const v=p;for(;p<c.length&&c[p]!=="{"&&c[p]!==";";)p++;const w=c.substring(v,p).trim(),_=w.includes("@keyframes");if(c[p]===";")u.push({type:"simple-at-rule",content:c.substring(v,p+1)}),p++;else if(c[p]==="{"){const E=p+1;let A=1;for(p++;p<c.length&&A>0;)c[p]==="{"?A++:c[p]==="}"&&A--,p++;const W=c.substring(v,p),I=c.substring(E,p-1);u.push({type:_?"keyframes":"at-rule",rule:w,content:W,inner:I})}continue}const d=p;for(;p<c.length&&c[p]!=="{";)p++;if(p>=c.length)break;const m=c.substring(d,p).trim();if(!m){p++;continue}const h=p+1;let g=1;for(p++;p<c.length&&g>0;)c[p]==="{"?g++:c[p]==="}"&&g--,p++;const y=c.substring(h,p-1);u.push({type:"rule",selector:m,content:y.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,p,d)=>{const m=p.trim(),h=d.trim();return m?`${m}[${e}] ${h}`:h}),o=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const p=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(p){const[,d,m=""]=p,h=d.trim();return h?`${h}[${e}]${m}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(p=>o(p)).filter(p=>p.trim()).join(", "),i=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const d=t(u.inner),m=i(d);return`${u.rule} { ${m} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const p=a(u.selector);return p.trim()?`${p} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),l=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),p=i(u);return l(p)}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 p=u.trim();return!p||p.startsWith("@")||p.includes(`[${e}]`)||s(p)?u:`${p}[${e}]`})}}function ne(r){return f.isString(r)?r:JSON.stringify(r)}function z(r,e,t,s=!1){const n=r.CSSStyleSheet,o=s?`data-v-${e}`:e,a=s?Pe(t,o):t;if(n.prototype.replaceSync){const i=new n;i.id=e,i.replaceSync(a);const l=r.document,c=l.adoptedStyleSheets,u=Array.from(c).filter(p=>p.id!==e);l.adoptedStyleSheets=[...u,i]}else{const i=r.document;let l=i.getElementById(e);l?l.innerHTML=a:(l=i.createElement("style"),l.id=e,l.innerHTML=a,i.head.appendChild(l))}}function ot(r){const e=r.adoptedStyleSheets||[];let t="";if(e.forEach(s=>{try{for(const n of s.cssRules)t+=n.cssText+`
9
9
  `}catch(n){console.error("Failed to read cssRules from adopted stylesheet:",n)}}),t){const s=r.createElement("style");s.textContent=t,r.head.appendChild(s)}}async function Ae(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&z(window,r,t)}function oe(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 ie(r,e,t=window){const s=t.document,n=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of r){const c=s.createElement("script");c.src=l,c.onload=()=>{o=t[e],o?a(o.default||o):i(null)},c.onerror=u=>{i(u)},n.appendChild(c)}})}function Ie(r){return f.isFunction(r)&&Object.getOwnPropertyNames(r.prototype||{}).length===0||f.isFunction(r?.install)}function Me(r){return Ee.includes(r)}function Te(r){return we.includes(r)}function D(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function it(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 H(r,e,t=!1,s=!1,n=!1){try{const o=['"use strict";',"var __self = arguments[0];"];o.push("return ");let a=(r.value||"").trim();n||(a=a.replace(/this(\W|$)/g,(l,c)=>`__self${c}`)),a=o.join(`
10
10
  `)+a;const i=n?`
11
11
  ${a}
12
- `:`with(${t?"{}":"$scope || {}"}) { ${a} }`;return new Function("$scope",i)(e)}catch(o){if(f.logger.error("parseExpression.error",o,r,e?.__self??e),s)throw o}}function P(r,e,t=!1,s=!1,n=!1){const o=H(r,e,t,s,n);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return o}function R(r){return r&&r.type==="JSExpression"}function b(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function ke(r){return R(r)||b(r)}function at(r){return ke(r)?r.value:JSON.stringify(r)}const ct={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ae=Symbol("access");class V{options;data=null;mode=S.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},ct,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!==S.Design&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),n&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.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):f.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(ae,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=>f.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?f.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=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===F){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):!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),f.isFunction(n)?(n(),t(!1)):f.isString(n)?t(n):t(!1)}}t(!1),await f.delay(0),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 f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):(window.alert(e),!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 Oe(){return $.inject(ae,null)}function lt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:a,alert:i}=r;let l=null;return{request:f.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:()=>{l&&l.close(),t&&(l=t())},hideLoading:()=>{l&&(l.close(),l=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:a,alert:i,startupComponent:n,access:o?new V({alert:i,...o}):void 0}}function ut(r={}){return new V(r)}function Fe(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?H(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,i)=>(delete o.data,s.send(f.merge(o,i||{},{data:a})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,a)}}function He(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Fe(n,t);for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=D(e);t&&(ce(e),r.forEach(s=>Ue(t,s)))}function Le(r,e=window){const t=b(r.mockTemplate)&&r.mockTemplate.value?P(r.mockTemplate,{},!0):void 0,s=D(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(a){f.logger.warn("模拟数据模版异常",a)}return s?.mock(o)}}function Ue(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const n=f.isUrl(t)?new URL(t).pathname:t,o=f.pathToRegexp(`(.*)${n}(.*)`),a=f.pathToRegexpMatch(n,{decode:decodeURIComponent}),i=H(s,{},!0);r.mock(o,l=>{const c=f.url.parse(l.url)||{},u=l.body instanceof FormData?f.formDataToJson(l.body):l.body,p=f.isUrl(l.url)?new URL(l.url).pathname:l.url.split("?")[0],d=a(p)?.params;Object.assign(l,{data:u,params:d,query:c});try{return r.mock(i(l))}catch(m){return console.warn("[mockApi]",o,l,m),null}})}catch(n){console.warn("mockApi",n)}}function ce(r=window){const e=D(r);e&&(e._mocked={})}class Be{__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=G){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&&te.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){te.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return P({type:s,value:n},this)}else return P(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return H({type:s,value:n},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode!==S.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await f.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,S.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 o=new Set([].concat(n,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=G,mode:t=S.Runtime,components:s={},libs:n={},apis:o={},loader:a}=r,i=e.computed(()=>r.dsl),l={$components:s,$libs:n,$apis:o},c=new Be({mode:t,dsl:i.value,attrs:l}),u=e.defineComponent({name:i.value.name,__scopeId:i.value.id?`data-v-${i.value.id}`:void 0,props:{...ft(i.value.props??[],c)},setup(p){c.$props=p,c.props=p,i.value.id&&z(r.window||window,i.value.id,i.value.css||"",!0),c.state=dt(e,i.value.state??{},c);const d=ht(e,i.value.computed??{},c),m=mt(i.value.methods??{},c),h=gt(e,i.value.inject,c);for(const[v,w]of Object.entries(h||{}))h[v]=e.inject(v,w);const g=Ne(i.value.dataSources||{},c),y={...h,...d,...m,...g};return c.setup(y,e),yt(e,i.value.watch??[],c),{vtj:c,state:c.state,...d,...m}},emits:pt(i.value.emits),expose:["vtj",...i.value.expose||[]],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?k(p[0],c,e,a,p):p.map(d=>k(d,c,e,a,p))},...vt(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function pt(r=[]){return r.map(e=>f.isString(e)?e:e.name)}function ft(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:R(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 dt(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return R(o)?o=t.__parseExpression(o):b(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function ht(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function gt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:a}=n||{};n.default;const i=R(a)?t.__parseExpression(a)||o:a??o,l=R(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(i,l),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Le(n);else if(n.ref){const o=e.$apis[n.ref],a=b(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l}}return t},{})}function yt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await f.delay(0),f.isFunction(o)&&o()},t},{})}const qe=new f.Queue;let X=[],T={};const Je=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(i=>N(i));if(n.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&oe(o,e),await ie(n,s,e).catch(i=>(console.warn("loadScriptUrl error",n,s,i),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(X.forEach(n=>{delete s.window[n]}),X=[]),(n,o,a=G)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return a.defineAsyncComponent(async()=>{const i=T[o.id]||await qe.add(o.id,()=>e(o.id));return i&&(i.name=n,T[o.id]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return a.defineAsyncComponent(async()=>{const i=T[o.url]||await t(o.url);return i&&(i.name=n,T[o.url]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let i=o.library?T[o.library]:null;return i||(o.library&&X.push(o.library),i=T[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await le(o,s.window);return l||(console.warn("getPlugin result is null",o),null)}),i)}return n}}function _t(){T={},qe.clearAllCache()}function k(r,e,t=G,s=Je,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:i=null,directives:l=[]}=r,{vIf:c,vElseIf:u,vElse:p,vFor:d,vShow:m,vModels:h,vBind:g,vHtml:y,others:v}=Ke(l);if(!o&&(u||p))return null;if(c&&!wt(c,e))return bt(r,e,t,s,n);const w=(_,E=0)=>{const A=_.$components,W=(()=>{if(r.name==="component")return Et(_,r.props?.is);if(r.name==="slot")return r.name;const C=s(r.name,r.from,t);if(f.isString(C))return Me(C)||Te(C)?C:A[C]??a?.app?.component(C)??C;if(f.isObject(C)&&r.id){const ge=`Loader${r.id}_${E}`,ye=A[ge];return ye||(A[ge]=C)}return C})(),I=jt(i,r.props??{},_),We=$t(t,r.events??{},_);if(r.name==="slot")return Rt(t,r,I,_,s);g&&Object.assign(I,_.__parseExpression(g.value)),m&&(I.style=Object.assign(I.style??{},Pt(m,_))),y&&Object.assign(I,At(y,_)),h.forEach(C=>{Object.assign(I,It(t,C,_))});const Ye=Mt(t,r.children??[],_,s,r),he=_?.__id?`data-v-${_.__id}`:void 0,Xe=he?{[he]:""}:{};let Y=t.createVNode(W,{key:`${i}_${E}`,...Xe,...I,...We},Ye);const me=a?St(a,v,_):[];return me.length&&(Y=t.withDirectives(Y,me)),Y};return d?Ot(d,w,e):w(e)}function St(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const a=[o];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 Ke(r=[]){const e=r.find(u=>f.camelCase(u.name)==="vIf"),t=r.find(u=>f.camelCase(u.name)==="vElseIf"),s=r.find(u=>f.camelCase(u.name)==="vElse"),n=r.find(u=>f.camelCase(u.name)==="vFor"),o=r.find(u=>f.camelCase(u.name)==="vShow"),a=r.find(u=>f.camelCase(u.name)==="vBind"),i=r.find(u=>f.camelCase(u.name)==="vHtml"),l=r.filter(u=>f.camelCase(u.name)==="vModel"),c=r.filter(u=>!_e.includes(f.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:l,vBind:a,others:c,vHtml:i}}function wt(r,e){return!!e.__parseExpression(r.value)}function Et(r,e){return e?R(e)?r.__parseExpression(e):e:"div"}function jt(r,e,t){const s=se(e,t);return s.ref=t.__ref(r,s.ref),s}function se(r,e){return R(r)?e.__parseExpression(r):b(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>se(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=se(n,e),t},{}):r}function $t(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=ue(i.modifiers),c=l.find(d=>s.includes(d)),u="on"+f.upperFirst(a)+(c&&n[c]||""),p=t.__parseFunction(i.handler);return p&&(o[u]=r.withModifiers(p,l)),o},{})}function bt(r,e,t,s,n=[]){let o=n.findIndex(a=>a.id===r.id);for(let a=++o;a<n.length;a++){const{directives:i=[]}=n[a],{vElseIf:l,vElse:c}=Ke(i);if(l){if(e.__parseExpression(l.value))return k(n[a],e,t,s,n,!0);continue}if(c)return k(n[a],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function Rt(r,e,t,s,n){const{children:o}=e,a=Ct(e,s),i=s.$slots?.[a.name];return i?i(t):o?f.isString(o)?r.createTextVNode(o):R(o)?r.createTextVNode(ne(s.__parseExpression(o))):Array.isArray(o)?o.map(l=>k(l,s,r,n,o)):null:null}function Ct(r,e){const{props:t}=r,s=t?.name||"default";return{name:R(s)?e.__parseExpression(s):s,params:[]}}function Pt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function At(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function It(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
12
+ `:`with(${t?"{}":"$scope || {}"}) { ${a} }`;return new Function("$scope",i)(e)}catch(o){if(f.logger.error("parseExpression.error",o,r,e?.__self??e),s)throw o}}function P(r,e,t=!1,s=!1,n=!1){const o=H(r,e,t,s,n);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return o}function R(r){return r&&r.type==="JSExpression"}function b(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function ke(r){return R(r)||b(r)}function at(r){return ke(r)?r.value:JSON.stringify(r)}const ct={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ae=Symbol("access");class V{options;data=null;mode=S.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},ct,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!==S.Design&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),n&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.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):f.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(ae,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=>f.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?f.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=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===F){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):!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),f.isFunction(n)?(n(),t(!1)):f.isString(n)?t(n):t(!1)}}t(!1),await f.delay(0),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 f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):(window.alert(e),!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 Oe(){return j.inject(ae,null)}function lt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:a,alert:i}=r;let l=null;return{request:f.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:()=>{l&&l.close(),t&&(l=t())},hideLoading:()=>{l&&(l.close(),l=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:a,alert:i,startupComponent:n,access:o?new V({alert:i,...o}):void 0}}function ut(r={}){return new V(r)}function Fe(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?H(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,i)=>(delete o.data,s.send(f.merge(o,i||{},{data:a})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,a)}}function He(r=[],e=[],t){const s={};for(const n of r){const o=Fe(n,t);s[n.id]=o,s[n.name]=o}for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=D(e);t&&(ce(e),r.forEach(s=>Ue(t,s)))}function Le(r,e=window){const t=b(r.mockTemplate)&&r.mockTemplate.value?P(r.mockTemplate,{},!0):void 0,s=D(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(a){f.logger.warn("模拟数据模版异常",a)}return s?.mock(o)}}function Ue(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const n=f.isUrl(t)?new URL(t).pathname:t,o=f.pathToRegexp(`(.*)${n}(.*)`),a=f.pathToRegexpMatch(n,{decode:decodeURIComponent}),i=H(s,{},!0);r.mock(o,l=>{const c=f.url.parse(l.url)||{},u=l.body instanceof FormData?f.formDataToJson(l.body):l.body,p=f.isUrl(l.url)?new URL(l.url).pathname:l.url.split("?")[0],d=a(p)?.params;Object.assign(l,{data:u,params:d,query:c});try{return r.mock(i(l))}catch(m){return console.warn("[mockApi]",o,l,m),null}})}catch(n){console.warn("mockApi",n)}}function ce(r=window){const e=D(r);e&&(e._mocked={})}class Be{__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=G){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&&te.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){te.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return P({type:s,value:n},this)}else return P(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return H({type:s,value:n},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode!==S.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await f.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,S.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 o=new Set([].concat(n,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=G,mode:t=S.Runtime,components:s={},libs:n={},apis:o={},loader:a}=r,i=e.computed(()=>r.dsl),l={$components:s,$libs:n,$apis:o},c=new Be({mode:t,dsl:i.value,attrs:l}),u=e.defineComponent({name:i.value.name,__scopeId:i.value.id?`data-v-${i.value.id}`:void 0,props:{...ft(i.value.props??[],c)},setup(p){c.$props=p,c.props=p,i.value.id&&z(r.window||window,i.value.id,i.value.css||"",!0),c.state=dt(e,i.value.state??{},c);const d=ht(e,i.value.computed??{},c),m=mt(i.value.methods??{},c),h=gt(e,i.value.inject,c);for(const[v,w]of Object.entries(h||{}))h[v]=e.inject(v,w);const g=Ne(i.value.dataSources||{},c),y={...h,...d,...m,...g};return c.setup(y,e),yt(e,i.value.watch??[],c),{vtj:c,state:c.state,...d,...m}},emits:pt(i.value.emits),expose:["vtj",...i.value.expose||[]],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?k(p[0],c,e,a,p):p.map(d=>k(d,c,e,a,p))},...vt(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function pt(r=[]){return r.map(e=>f.isString(e)?e:e.name)}function ft(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:R(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 dt(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return R(o)?o=t.__parseExpression(o):b(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function ht(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function gt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:a}=n||{};n.default;const i=R(a)?t.__parseExpression(a)||o:a??o,l=R(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(i,l),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Le(n);else if(n.ref){const o=e.$apis[n.ref],a=b(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l}}return t},{})}function yt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await f.delay(0),f.isFunction(o)&&o()},t},{})}const qe=new f.Queue;let X=[],T={};const Je=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(i=>N(i));if(n.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&oe(o,e),await ie(n,s,e).catch(i=>(console.warn("loadScriptUrl error",n,s,i),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(X.forEach(n=>{delete s.window[n]}),X=[]),(n,o,a=G)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return a.defineAsyncComponent(async()=>{const i=T[o.id]||await qe.add(o.id,()=>e(o.id));return i&&(i.name=n,T[o.id]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return a.defineAsyncComponent(async()=>{const i=T[o.url]||await t(o.url);return i&&(i.name=n,T[o.url]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let i=o.library?T[o.library]:null;return i||(o.library&&X.push(o.library),i=T[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await le(o,s.window);return l||(console.warn("getPlugin result is null",o),null)}),i)}return n}}function _t(){T={},qe.clearAllCache()}function k(r,e,t=G,s=Je,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:i=null,directives:l=[]}=r,{vIf:c,vElseIf:u,vElse:p,vFor:d,vShow:m,vModels:h,vBind:g,vHtml:y,others:v}=Ke(l);if(!o&&(u||p))return null;if(c&&!wt(c,e))return bt(r,e,t,s,n);const w=(_,E=0)=>{const A=_.$components,W=(()=>{if(r.name==="component")return Et(_,r.props?.is);if(r.name==="slot")return r.name;const C=s(r.name,r.from,t);if(f.isString(C))return Me(C)||Te(C)?C:A[C]??a?.app?.component(C)??C;if(f.isObject(C)&&r.id){const ge=`Loader${r.id}_${E}`,ye=A[ge];return ye||(A[ge]=C)}return C})(),I=$t(i,r.props??{},_),We=jt(t,r.events??{},_);if(r.name==="slot")return Rt(t,r,I,_,s);g&&Object.assign(I,_.__parseExpression(g.value)),m&&(I.style=Object.assign(I.style??{},Pt(m,_))),y&&Object.assign(I,At(y,_)),h.forEach(C=>{Object.assign(I,It(t,C,_))});const Ye=Mt(t,r.children??[],_,s,r),he=_?.__id?`data-v-${_.__id}`:void 0,Xe=he?{[he]:""}:{};let Y=t.createVNode(W,{key:`${i}_${E}`,...Xe,...I,...We},Ye);const me=a?St(a,v,_):[];return me.length&&(Y=t.withDirectives(Y,me)),Y};return d?Ot(d,w,e):w(e)}function St(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const a=[o];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 Ke(r=[]){const e=r.find(u=>f.camelCase(u.name)==="vIf"),t=r.find(u=>f.camelCase(u.name)==="vElseIf"),s=r.find(u=>f.camelCase(u.name)==="vElse"),n=r.find(u=>f.camelCase(u.name)==="vFor"),o=r.find(u=>f.camelCase(u.name)==="vShow"),a=r.find(u=>f.camelCase(u.name)==="vBind"),i=r.find(u=>f.camelCase(u.name)==="vHtml"),l=r.filter(u=>f.camelCase(u.name)==="vModel"),c=r.filter(u=>!_e.includes(f.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:l,vBind:a,others:c,vHtml:i}}function wt(r,e){return!!e.__parseExpression(r.value)}function Et(r,e){return e?R(e)?r.__parseExpression(e):e:"div"}function $t(r,e,t){const s=se(e,t);return s.ref=t.__ref(r,s.ref),s}function se(r,e){return R(r)?e.__parseExpression(r):b(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>se(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=se(n,e),t},{}):r}function jt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=ue(i.modifiers),c=l.find(d=>s.includes(d)),u="on"+f.upperFirst(a)+(c&&n[c]||""),p=t.__parseFunction(i.handler);return p&&(o[u]=r.withModifiers(p,l)),o},{})}function bt(r,e,t,s,n=[]){let o=n.findIndex(a=>a.id===r.id);for(let a=++o;a<n.length;a++){const{directives:i=[]}=n[a],{vElseIf:l,vElse:c}=Ke(i);if(l){if(e.__parseExpression(l.value))return k(n[a],e,t,s,n,!0);continue}if(c)return k(n[a],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function Rt(r,e,t,s,n){const{children:o}=e,a=Ct(e,s),i=s.$slots?.[a.name];return i?i(t):o?f.isString(o)?r.createTextVNode(o):R(o)?r.createTextVNode(ne(s.__parseExpression(o))):Array.isArray(o)?o.map(l=>k(l,s,r,n,o)):null:null}function Ct(r,e){const{props:t}=r,s=t?.name||"default";return{name:R(s)?e.__parseExpression(s):s,params:[]}}function Pt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function At(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function It(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
13
13
  ${e.value.value} = v;
14
- }`:"(v) => {}"},n=t.__parseFunction(s),o=ue(R(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=R(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&n?r.withModifiers(n,o):n}}function Mt(r,e,t,s,n){if(!e)return null;if(f.isString(e))return{default:()=>e};if(R(e))return{default:()=>ne(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Tt(e),a=(i,l)=>!i||!n?{}:n?.id&&Object.keys(i).length?l?{[l]:i}:{[`scope_${n.id}`]:i}:l?{[l]:Object.create(null)}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:u,scope:p}])=>(i[l]=d=>{const m=u.length?f.pick(d??{},u):a(d,p);return c.map(h=>k(h,t.__clone(m),r,s,c))},i),{})}return null}function Tt(r){const e={};for(const t of r){const s=kt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function kt(r="default"){return f.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Ot(r,e,t){const{value:s,iterator:n}=r,{item:o="item",index:a="index"}=n||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((l,c)=>c+1)),Array.isArray(i)?i.map((l,c)=>e(t.__clone({[o]:l,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const Z=$.defineComponent({name:"VtjPageContainer",async setup(){const r=de(),e=ve.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,o=$.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:o,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())}}),Ft=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}});function U(r,e,t=[]){const s=[];for(const n of t){const{id:o,title:a,icon:i,children:l,hidden:c,layout:u}=n;if(u){const p=U(r,e,l||[]);s.push(...p)}else{const p={id:o,title:a,icon:i,hidden:c,url:`${r}/${e}/${o}`,children:l&&l.length?U(r,e,l):void 0};s.push(p)}}return s}function pe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=pe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Dt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=de(),o=ve.useRoute(),a=Oe(),i=$.ref(!1),l=$.ref(!1),c=n.project,u=(m,h)=>{i.value=!m?.mask,l.value=h?.pure??!!m?.pure};$.watchEffect(()=>{const{name:m,params:h,meta:g}=o;if(m===F){const y=n.getPage(h.id);u(y,g)}else if(m===L){const y=n.getHomepage();u(y,g)}else{const y=g.__vtj__;if(y){const v=n.getPage(y);u(v,g)}else i.value=!g.mask,l.value=!!g.pure}});const p=U(e,t,c?.pages),d=c?.config;return{disabled:i,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:pe(p,a),pure:l}}function ee(r,e){const{id:t,title:s,meta:n}=r,{name:o="page",prefix:a="",component:i,routeMeta:l}=e;return{name:t,path:`${a}${o}/${t}`,component:i,meta:{title:s,...l,...n,__vtj__:t}}}function re(r){const{name:e="page",prefix:t="",pages:s=[],component:n,loader:o,routeMeta:a,homepage:i}=r,l=[];for(const c of s){const{id:u,title:p,dir:d,layout:m,children:h,meta:g}=c;if(d){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]});l.push(...y)}else if(m){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]}),v={name:`layout_${u}`,path:t,component:()=>o(u),meta:{title:p,...a,...g,__vtj__:u},children:y};l.push(v),l.push(ee(c,r))}else if(l.push(ee(c,r)),i===u){const y=ee(c,r);y.path="",y.name=`home_${u}`,l.push(y)}}return l}function Ht(r={},e){const{css:t,store:s,enhance:n}=r,{window:o,app:a,library:i={},adapter:l,mode:c}=e,{Pinia:u}=i;a.config.globalProperties.$libs=i,z(o,"global-css",t||""),u&&s&&xt(s,a,u),Ut(a,l,r),!l.access&&r.access&&Lt(r.access,a,c,l),Bt(a,r),n&&Nt(n,a,i)}function xt(r,e,t){const s=t.createPinia();if(e.use(s),b(r)&&r.value){const n=P(r,{},!1,!1,!0),o=t.defineStore("$store",n(e)||{});e.config.globalProperties.$store=o()}}function Lt(r,e,t,s){if(b(r)&&r.value){const n=P(r,{},!1,!1,!0),{alert:o,request:a}=s,i=new V({alert:o,storagePrefix:"__VTJ_APP_",...n(e)}),l=e.config.globalProperties.$router;i.connect({mode:t,router:l,request:a}),e.use(i)}}function Ut(r,e,t){if(!e.request)return;const{axios:s,request:n,response:o}=t;if(s&&b(s)&&s.value){const a=P(s,{},!1,!1,!0);e.request.setConfig(a(r))}if(n&&b(n)&&n.value){const a=P(n,{},!1,!1,!0),i=e.request;i.__unReq&&i.__unReq(),i.__unReq=e.request.useRequest(l=>a(l,r))}if(o&&b(o)&&o.value){const a=P(o,{},!1,!1,!0),i=e.request;i.__unRes&&i.__unRes(),i.__unRes=e.request.useResponse(l=>a(l,r))}}function Bt(r,e){const{beforeEach:t,afterEach:s}=e,n=r.config.globalProperties.$router;if(t&&b(t)&&t.value){const o=P(t,{},!1,!1,!0);n&&n.beforeEach((a,i,l)=>o(a,i,l,r))}if(s&&b(s)&&s.value){const o=P(s,{},!1,!1,!0);n&&n.afterEach((a,i,l)=>o(a,i,l,r))}}function Nt(r,e,t={}){b(r)&&r.value&&P(r,{},!1,!1,!0)(e,t)}function qt(r,e,t){if(!r||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:n,fallbackLocale:o,messages:a=[]}=t,i={};for(let c of a){const u=Object.keys(c).filter(p=>p!=="key");for(const p of u)i[p]||(i[p]={}),i[p][c.key]=c[p]}const l=s.createI18n({legacy:!1,locale:n,fallbackLocale:o,messages:i});r.use(l)}}const fe=Symbol("Provider");var Ge=(r=>(r.Production="production",r.Development="development",r))(Ge||{});class ze extends M.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:n,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:u=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=p,this.nodeEnv=d,n&&(this.dependencies=n),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i);const{access:m,request:h}=this.adapter;m&&m.connect({mode:s,router:u,request:h}),a&&s!==S.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};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(o){f.logger.warn("模拟数据模版异常",o)}return D()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:n=[],meta:o=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=He(n,o,this.adapter),ce(a),xe(n,a),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=D(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:o,materialPath:a,nodeEnv:i,libraryLocales:l}=this,{libraryExports:c,libraryMap:u,materials:p,materialExports:d,materialMapLibrary:m,libraryLocaleMap:h}=be(t,a,i==="development");Object.assign(this.libraryLocaleMap,h);for(const g of c){const y=s[g],v=e[g];if(v)n[g]=v;else if(y)e[g]=n[g]=await y();else{const _=u[g]||[];for(const E of _)B(E)&&await Ae(E,f.url.append(E,{v:O})),N(E)&&await f.loadScript(f.url.append(E,{v:O}));n[g]=e[g]}const w=h[g];if(w){const _=s[w];l[w]=_?await _():e[w]}}if(i==="development"){for(const y of p)await f.loadScript(f.url.append(y,{v:O}));const g=this.materials||{};for(const y of d){const v=e[m[y]],w=v?.default||v,_=M.BUILT_IN_COMPONENTS[y];if(_)w&&_.forEach(E=>{o[E]=w[E]});else{const E=g[y]?(await g[y]()).default:e[y];E&&w&&(E.components||[]).forEach(A=>{o[A.name]=Re(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:i=o,routeMeta:l}=s,c=a?"":"/",u={path:`${c}${i}/:id`,name:F,component:Z},p={path:c,name:L,component:t?.homepage?Z:n.startupComponent||Ft,meta:l};if(e.hasRoute(F)&&e.removeRoute(F),e.hasRoute(L)&&e.removeRoute(L),s.enableStaticRoute){const d=t?.pages||[];re({name:i,prefix:c,pages:d,component:Z,loader:this.getRenderComponent.bind(this),homepage:t?.homepage}).forEach(h=>{a?e.addRoute(a,h):e.addRoute(h)}),t?.homepage||(a?e.addRoute(a,p):e.addRoute(p))}else a?(e.addRoute(a,u),e.addRoute(a,p)):(e.addRoute(u),e.addRoute(p))}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,n=e.config.globalProperties.installed||{};for(const[o,a]of Object.entries(this.library))if(!n[o]&&Ie(a)){const i=s[t[o]];e.use(a,{locale:i}),n[o]=!0}e.provide(fe,this),e.config.globalProperties.$provider=this,this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),this.project?.platform!=="uniapp"&&this.mode!==S.Design&&this.initGlobals(this.project?.globals||{},{app:e,window,adapter:this.adapter,library:this.library,mode:this.mode}),this.mode!==S.Design&&this.project?.i18n&&this.initI18n(e,this.library,this.project.i18n),this.options.enhance&&e.use(this.options.enhance,this),this.mode===S.Design&&(e.config.errorHandler=(o,a,i)=>{const l=a?.$options.name,c=typeof o=="string"?o:o?.message||o?.msg||"未知错误",u=`[ ${l} ] ${c} ${i}`;console.error("[VTJ Error]:",{err:o,instance:a,info:i},o?.stack),this.adapter.notify&&this.adapter.notify(u,"组件渲染错误","error")}),e.config.globalProperties.installed=n}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,o=[])=>{for(const a of o){if(a.id===n)return a;if(a.children&&a.children.length){const i=s(n,a.children);if(i)return i}}};return s(e,t)||null}getMenus(e="page",t=""){return U(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():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:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},l=K({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return J({...i,dsl:e,loader:l})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return f.logger.warn(`Can not find file: ${e}`),null;if(t&&t(s),this.mode===S.Raw){const{vtjRawDir:o=".vtj/vue"}=this.options,a=`${o}/${e}.vue`,i=this.modules[a]||this.modules[`/src/pages/${e}.vue`];return i?(await i())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const n=await this.getDsl(s.id);return n?this.createDslRenderer(n).renderer:(f.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 le(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Ht(e,s)}initI18n(e,t,s){qt(e,t,s)}}function Jt(r){const e=new ze(r);return{provider:e,onReady:s=>e.ready(s)}}function de(r={}){const e=$.inject(fe,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 Kt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(i=>e+i),{css:o,js:a}=Ce(n);if(o.length&&oe(o),a.length)return await ie(a,t).catch(()=>{})}const Ve={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Gt=(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:Ve}),zt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ve,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function Vt(r){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class Q{constructor(e=f.request){this.req=e,this.api=Gt(e),this.uploader=zt(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(o=>je(o))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=f.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const j=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Qt extends Q{init(e){const t=new M.ProjectModel(e),s=j.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return j.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new M.ProjectModel(e);return j.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return j.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return j.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=j.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return j.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return j.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=j.get(`history_${e}`);if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),j.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=j.get(`history_${e}`),s=new M.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=j.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return j.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{j.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Qe extends Q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new M.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 M.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=f.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(o=>o.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new M.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 q=null;function Wt(){return q||(q=new Qe,q)}class Yt extends Q{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:f.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)}}exports.ACCESS=st;exports.ACCESS_KEY=ae;exports.Access=V;exports.BUILD_IN_TAGS=Ee;exports.BUILT_IN_DIRECTIVES=_e;exports.BaseService=Q;exports.CONTEXT_HOST=te;exports.Context=Be;exports.ContextMode=S;exports.DATA_TYPES=Se;exports.HOMEPAGE_ROUTE_NAME=L;exports.HTML_TAGS=we;exports.JSCodeToString=at;exports.LIFE_CYCLES_LIST=et;exports.LocalService=Yt;exports.MemoryService=Qe;exports.NodeEnv=Ge;exports.PAGE_ROUTE_NAME=F;exports.Provider=ze;exports.REMOTE=tt;exports.StorageService=Qt;exports.VTJ_RENDERER_VERSION=O;exports.adoptStylesToInline=ot;exports.adoptedStyleSheets=z;exports.clearLoaderCache=_t;exports.compileScopedCSS=Pe;exports.createAccess=ut;exports.createAdapter=lt;exports.createAssetScripts=rt;exports.createAssetsCss=nt;exports.createDataSources=Ne;exports.createLoader=K;exports.createMemoryService=Wt;exports.createMenus=U;exports.createMetaApi=De;exports.createMock=Le;exports.createProvider=Jt;exports.createRenderer=J;exports.createSchemaApi=Fe;exports.createSchemaApis=He;exports.createServiceRequest=Vt;exports.defaultLoader=Je;exports.fillBasePath=x;exports.getMock=D;exports.getModifiers=ue;exports.getPlugin=le;exports.getRawComponent=Re;exports.isBuiltInTag=Me;exports.isCSSUrl=B;exports.isJSCode=ke;exports.isJSExpression=R;exports.isJSFunction=b;exports.isJSON=je;exports.isJSUrl=N;exports.isNativeTag=Te;exports.isVuePlugin=Ie;exports.loadCss=Ae;exports.loadCssUrl=oe;exports.loadEnhance=Kt;exports.loadScriptUrl=ie;exports.menusFilter=pe;exports.mockApi=Ue;exports.mockApis=xe;exports.mockCleanup=ce;exports.nodeRender=k;exports.parseDeps=be;exports.parseExpression=H;exports.parseFunction=P;exports.parseUrls=Ce;exports.providerKey=fe;exports.removeProdFlag=$e;exports.setupPageSetting=it;exports.toString=ne;exports.useAccess=Oe;exports.useMask=Dt;exports.useProvider=de;
14
+ }`:"(v) => {}"},n=t.__parseFunction(s),o=ue(R(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=R(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&n?r.withModifiers(n,o):n}}function Mt(r,e,t,s,n){if(!e)return null;if(f.isString(e))return{default:()=>e};if(R(e))return{default:()=>ne(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Tt(e),a=(i,l)=>!i||!n?{}:n?.id&&Object.keys(i).length?l?{[l]:i}:{[`scope_${n.id}`]:i}:l?{[l]:Object.create(null)}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:u,scope:p}])=>(i[l]=d=>{const m=u.length?f.pick(d??{},u):a(d,p);return c.map(h=>k(h,t.__clone(m),r,s,c))},i),{})}return null}function Tt(r){const e={};for(const t of r){const s=kt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function kt(r="default"){return f.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Ot(r,e,t){const{value:s,iterator:n}=r,{item:o="item",index:a="index"}=n||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((l,c)=>c+1)),Array.isArray(i)?i.map((l,c)=>e(t.__clone({[o]:l,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const Z=j.defineComponent({name:"VtjPageContainer",async setup(){const r=de(),e=ve.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,o=j.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:o,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?j.h(r,{...e,key:t}):j.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Ft=j.defineComponent({name:"VtjStartupContainer",render(){return j.h("div","page not found!")}});function U(r,e,t=[]){const s=[];for(const n of t){const{id:o,title:a,icon:i,children:l,hidden:c,layout:u}=n;if(u){const p=U(r,e,l||[]);s.push(...p)}else{const p={id:o,title:a,icon:i,hidden:c,url:`${r}/${e}/${o}`,children:l&&l.length?U(r,e,l):void 0};s.push(p)}}return s}function pe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=pe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Dt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=de(),o=ve.useRoute(),a=Oe(),i=j.ref(!1),l=j.ref(!1),c=n.project,u=(m,h)=>{i.value=!m?.mask,l.value=h?.pure??!!m?.pure};j.watchEffect(()=>{const{name:m,params:h,meta:g}=o;if(m===F){const y=n.getPage(h.id);u(y,g)}else if(m===L){const y=n.getHomepage();u(y,g)}else{const y=g.__vtj__;if(y){const v=n.getPage(y);u(v,g)}else i.value=!g.mask,l.value=!!g.pure}});const p=U(e,t,c?.pages),d=c?.config;return{disabled:i,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:pe(p,a),pure:l}}function ee(r,e){const{id:t,title:s,meta:n}=r,{name:o="page",prefix:a="",component:i,routeMeta:l}=e;return{name:t,path:`${a}${o}/${t}`,component:i,meta:{title:s,...l,...n,__vtj__:t}}}function re(r){const{name:e="page",prefix:t="",pages:s=[],component:n,loader:o,routeMeta:a,homepage:i}=r,l=[];for(const c of s){const{id:u,title:p,dir:d,layout:m,children:h,meta:g}=c;if(d){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]});l.push(...y)}else if(m){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]}),v={name:`layout_${u}`,path:t,component:()=>o(u),meta:{title:p,...a,...g,__vtj__:u},children:y};l.push(v),l.push(ee(c,r))}else if(l.push(ee(c,r)),i===u){const y=ee(c,r);y.path="",y.name=`home_${u}`,l.push(y)}}return l}function Ht(r={},e){const{css:t,store:s,enhance:n}=r,{window:o,app:a,library:i={},adapter:l,mode:c}=e,{Pinia:u}=i;a.config.globalProperties.$libs=i,z(o,"global-css",t||""),u&&s&&xt(s,a,u),Ut(a,l,r),!l.access&&r.access&&Lt(r.access,a,c,l),Bt(a,r),n&&Nt(n,a,i)}function xt(r,e,t){const s=t.createPinia();if(e.use(s),b(r)&&r.value){const n=P(r,{},!1,!1,!0),o=t.defineStore("$store",n(e)||{});e.config.globalProperties.$store=o()}}function Lt(r,e,t,s){if(b(r)&&r.value){const n=P(r,{},!1,!1,!0),{alert:o,request:a}=s,i=new V({alert:o,storagePrefix:"__VTJ_APP_",...n(e)}),l=e.config.globalProperties.$router;i.connect({mode:t,router:l,request:a}),e.use(i)}}function Ut(r,e,t){if(!e.request)return;const{axios:s,request:n,response:o}=t;if(s&&b(s)&&s.value){const a=P(s,{},!1,!1,!0);e.request.setConfig(a(r))}if(n&&b(n)&&n.value){const a=P(n,{},!1,!1,!0),i=e.request;i.__unReq&&i.__unReq(),i.__unReq=e.request.useRequest(l=>a(l,r))}if(o&&b(o)&&o.value){const a=P(o,{},!1,!1,!0),i=e.request;i.__unRes&&i.__unRes(),i.__unRes=e.request.useResponse(l=>a(l,r))}}function Bt(r,e){const{beforeEach:t,afterEach:s}=e,n=r.config.globalProperties.$router;if(t&&b(t)&&t.value){const o=P(t,{},!1,!1,!0);n&&n.beforeEach((a,i,l)=>o(a,i,l,r))}if(s&&b(s)&&s.value){const o=P(s,{},!1,!1,!0);n&&n.afterEach((a,i,l)=>o(a,i,l,r))}}function Nt(r,e,t={}){b(r)&&r.value&&P(r,{},!1,!1,!0)(e,t)}function qt(r,e,t){if(!r||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:n,fallbackLocale:o,messages:a=[]}=t,i={};for(let c of a){const u=Object.keys(c).filter(p=>p!=="key");for(const p of u)i[p]||(i[p]={}),i[p][c.key]=c[p]}const l=s.createI18n({legacy:!1,locale:n,fallbackLocale:o,messages:i});r.use(l)}}const fe=Symbol("Provider");var Ge=(r=>(r.Production="production",r.Development="development",r))(Ge||{});class ze extends M.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:n,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:u=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=p,this.nodeEnv=d,n&&(this.dependencies=n),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i);const{access:m,request:h}=this.adapter;m&&m.connect({mode:s,router:u,request:h}),a&&s!==S.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};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(o){f.logger.warn("模拟数据模版异常",o)}return D()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:n=[],meta:o=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=He(n,o,this.adapter),ce(a),xe(n,a),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=D(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:o,materialPath:a,nodeEnv:i,libraryLocales:l}=this,{libraryExports:c,libraryMap:u,materials:p,materialExports:d,materialMapLibrary:m,libraryLocaleMap:h}=be(t,a,i==="development");Object.assign(this.libraryLocaleMap,h);for(const g of c){const y=s[g],v=e[g];if(v)n[g]=v;else if(y)e[g]=n[g]=await y();else{const _=u[g]||[];for(const E of _)B(E)&&await Ae(E,f.url.append(E,{v:O})),N(E)&&await f.loadScript(f.url.append(E,{v:O}));n[g]=e[g]}const w=h[g];if(w){const _=s[w];l[w]=_?await _():e[w]}}if(i==="development"){for(const y of p)await f.loadScript(f.url.append(y,{v:O}));const g=this.materials||{};for(const y of d){const v=e[m[y]],w=v?.default||v,_=M.BUILT_IN_COMPONENTS[y];if(_)w&&_.forEach(E=>{o[E]=w[E]});else{const E=g[y]?(await g[y]()).default:e[y];E&&w&&(E.components||[]).forEach(A=>{o[A.name]=Re(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:i=o,routeMeta:l}=s,c=a?"":"/",u={path:`${c}${i}/:id`,name:F,component:Z},p={path:c,name:L,component:t?.homepage?Z:n.startupComponent||Ft,meta:l};if(e.hasRoute(F)&&e.removeRoute(F),e.hasRoute(L)&&e.removeRoute(L),s.enableStaticRoute){const d=t?.pages||[];re({name:i,prefix:c,pages:d,component:Z,loader:this.getRenderComponent.bind(this),homepage:t?.homepage}).forEach(h=>{a?e.addRoute(a,h):e.addRoute(h)}),t?.homepage||(a?e.addRoute(a,p):e.addRoute(p))}else a?(e.addRoute(a,u),e.addRoute(a,p)):(e.addRoute(u),e.addRoute(p))}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,n=e.config.globalProperties.installed||{};for(const[o,a]of Object.entries(this.library))if(!n[o]&&Ie(a)){const i=s[t[o]];e.use(a,{locale:i}),n[o]=!0}e.provide(fe,this),e.config.globalProperties.$provider=this,e.config.globalProperties.$request=this.adapter?.request,this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),this.project?.platform!=="uniapp"&&this.mode!==S.Design&&this.initGlobals(this.project?.globals||{},{app:e,window,adapter:this.adapter,library:this.library,mode:this.mode}),this.mode!==S.Design&&this.project?.i18n&&this.initI18n(e,this.library,this.project.i18n),this.options.enhance&&e.use(this.options.enhance,this),this.mode===S.Design&&(e.config.errorHandler=(o,a,i)=>{const l=a?.$options.name,c=typeof o=="string"?o:o?.message||o?.msg||"未知错误",u=`[ ${l} ] ${c} ${i}`;console.error("[VTJ Error]:",{err:o,instance:a,info:i},o?.stack),this.adapter.notify&&this.adapter.notify(u,"组件渲染错误","error")}),e.config.globalProperties.installed=n}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,o=[])=>{for(const a of o){if(a.id===n)return a;if(a.children&&a.children.length){const i=s(n,a.children);if(i)return i}}};return s(e,t)||null}getMenus(e="page",t=""){return U(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():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:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},l=K({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return J({...i,dsl:e,loader:l})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return f.logger.warn(`Can not find file: ${e}`),null;if(t&&t(s),this.mode===S.Raw){const{vtjRawDir:o=".vtj/vue"}=this.options,a=`${o}/${e}.vue`,i=this.modules[a]||this.modules[`/src/pages/${e}.vue`];return i?(await i())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const n=await this.getDsl(s.id);return n?this.createDslRenderer(n).renderer:(f.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return j.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return j.defineAsyncComponent(async()=>await le(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Ht(e,s)}initI18n(e,t,s){qt(e,t,s)}}function Jt(r){const e=new ze(r);return{provider:e,onReady:s=>e.ready(s)}}function de(r={}){const e=j.inject(fe,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 Kt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(i=>e+i),{css:o,js:a}=Ce(n);if(o.length&&oe(o),a.length)return await ie(a,t).catch(()=>{})}const Ve={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Gt=(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:Ve}),zt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ve,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function Vt(r){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class Q{constructor(e=f.request){this.req=e,this.api=Gt(e),this.uploader=zt(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(o=>$e(o))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=f.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const $=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Qt extends Q{init(e){const t=new M.ProjectModel(e),s=$.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return $.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new M.ProjectModel(e);return $.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return $.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return $.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=$.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return $.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return $.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=$.get(`history_${e}`);if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),$.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=$.get(`history_${e}`),s=new M.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=$.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return $.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{$.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Qe extends Q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new M.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 M.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=f.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(o=>o.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new M.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 q=null;function Wt(){return q||(q=new Qe,q)}class Yt extends Q{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:f.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)}}exports.ACCESS=st;exports.ACCESS_KEY=ae;exports.Access=V;exports.BUILD_IN_TAGS=Ee;exports.BUILT_IN_DIRECTIVES=_e;exports.BaseService=Q;exports.CONTEXT_HOST=te;exports.Context=Be;exports.ContextMode=S;exports.DATA_TYPES=Se;exports.HOMEPAGE_ROUTE_NAME=L;exports.HTML_TAGS=we;exports.JSCodeToString=at;exports.LIFE_CYCLES_LIST=et;exports.LocalService=Yt;exports.MemoryService=Qe;exports.NodeEnv=Ge;exports.PAGE_ROUTE_NAME=F;exports.Provider=ze;exports.REMOTE=tt;exports.StorageService=Qt;exports.VTJ_RENDERER_VERSION=O;exports.adoptStylesToInline=ot;exports.adoptedStyleSheets=z;exports.clearLoaderCache=_t;exports.compileScopedCSS=Pe;exports.createAccess=ut;exports.createAdapter=lt;exports.createAssetScripts=rt;exports.createAssetsCss=nt;exports.createDataSources=Ne;exports.createLoader=K;exports.createMemoryService=Wt;exports.createMenus=U;exports.createMetaApi=De;exports.createMock=Le;exports.createProvider=Jt;exports.createRenderer=J;exports.createSchemaApi=Fe;exports.createSchemaApis=He;exports.createServiceRequest=Vt;exports.defaultLoader=Je;exports.fillBasePath=x;exports.getMock=D;exports.getModifiers=ue;exports.getPlugin=le;exports.getRawComponent=Re;exports.isBuiltInTag=Me;exports.isCSSUrl=B;exports.isJSCode=ke;exports.isJSExpression=R;exports.isJSFunction=b;exports.isJSON=$e;exports.isJSUrl=N;exports.isNativeTag=Te;exports.isVuePlugin=Ie;exports.loadCss=Ae;exports.loadCssUrl=oe;exports.loadEnhance=Kt;exports.loadScriptUrl=ie;exports.menusFilter=pe;exports.mockApi=Ue;exports.mockApis=xe;exports.mockCleanup=ce;exports.nodeRender=k;exports.parseDeps=be;exports.parseExpression=H;exports.parseFunction=P;exports.parseUrls=Ce;exports.providerKey=fe;exports.removeProdFlag=je;exports.setupPageSetting=it;exports.toString=ne;exports.useAccess=Oe;exports.useMask=Dt;exports.useProvider=de;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { Base as ze, BUILT_IN_COMPONENTS as Ge, ProjectModel as U, HistoryModel as be } from "@vtj/core";
1
+ import { Base as ze, BUILT_IN_COMPONENTS as Ge, ProjectModel as U, HistoryModel as je } from "@vtj/core";
2
2
  import { isUrl as se, url as F, dedupArray as Ve, isString as I, isFunction as q, logger as M, storage as X, cookie as Y, toArray as ve, unRSA as _e, delay as J, createRequest as Ee, jsonp as Re, merge as Qe, pathToRegexp as We, pathToRegexpMatch as Xe, formDataToJson as Ye, Queue as Ze, cloneDeep as we, camelCase as A, isObject as et, upperFirst as tt, pick as st, request as ne, loadScript as Se, Storage as nt, mapToObject as ue } from "@vtj/utils";
3
3
  import * as z from "vue";
4
4
  import { inject as Pe, defineComponent as Ce, h as re, ref as oe, watchEffect as rt, defineAsyncComponent as $e } from "vue";
@@ -7,12 +7,12 @@ import { useRoute as Ae } from "vue-router";
7
7
  * Copyright (c) 2025, VTJ.PRO All rights reserved.
8
8
  * @name @vtj/renderer
9
9
  * @author CHC chenhuachun1549@dingtalk.com
10
- * @version 0.13.32
10
+ * @version 0.13.33
11
11
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
12
12
  */
13
- const D = "0.13.32";
13
+ const D = "0.13.33";
14
14
  var w = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(w || {});
15
- const je = [
15
+ const be = [
16
16
  "$el",
17
17
  "$emit",
18
18
  "$nextTick",
@@ -384,7 +384,7 @@ function H(n = window) {
384
384
  if (t && window)
385
385
  return window.Mock = t, t;
386
386
  }
387
- function js(n, e, t) {
387
+ function bs(n, e, t) {
388
388
  Object.assign(e.meta, t.meta);
389
389
  const s = n?._container;
390
390
  t?.type === "page" && s.classList.add("is-page"), t?.pure && s.classList.add("is-pure");
@@ -419,13 +419,13 @@ function R(n, e, t = !1, s = !1, r = !1) {
419
419
  function E(n) {
420
420
  return n && n.type === "JSExpression";
421
421
  }
422
- function j(n) {
422
+ function b(n) {
423
423
  return typeof n == "object" && n && n.type === "JSFunction";
424
424
  }
425
425
  function _t(n) {
426
- return E(n) || j(n);
426
+ return E(n) || b(n);
427
427
  }
428
- function bs(n) {
428
+ function js(n) {
429
429
  return _t(n) ? n.value : JSON.stringify(n);
430
430
  }
431
431
  const wt = {
@@ -661,7 +661,7 @@ function $t(n, e) {
661
661
  return (a, i) => (delete o.data, s.send(Qe(o, i || {}, { data: a })));
662
662
  }
663
663
  }
664
- function jt(n, e) {
664
+ function bt(n, e) {
665
665
  const { metaQuery: t } = e;
666
666
  if (!t) return;
667
667
  const { code: s, queryCode: r } = n;
@@ -673,12 +673,14 @@ function jt(n, e) {
673
673
  return t(s, r, o, a);
674
674
  };
675
675
  }
676
- function bt(n = [], e = [], t) {
676
+ function jt(n = [], e = [], t) {
677
677
  const s = {};
678
- for (const r of n)
679
- s[r.id] = $t(r, t);
678
+ for (const r of n) {
679
+ const o = $t(r, t);
680
+ s[r.id] = o, s[r.name] = o;
681
+ }
680
682
  for (const r of e)
681
- s[r.id] = jt(r, t);
683
+ s[r.id] = bt(r, t);
682
684
  return s;
683
685
  }
684
686
  async function Et(n = [], e = window) {
@@ -686,7 +688,7 @@ async function Et(n = [], e = window) {
686
688
  t && (Oe(e), n.forEach((s) => Pt(t, s)));
687
689
  }
688
690
  function Rt(n, e = window) {
689
- const t = j(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = H(e);
691
+ const t = b(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = H(e);
690
692
  return async (...r) => {
691
693
  let o = {};
692
694
  if (t)
@@ -764,12 +766,12 @@ class Ct {
764
766
  });
765
767
  }
766
768
  __proxy() {
767
- this.__instance && je.forEach((e) => {
769
+ this.__instance && be.forEach((e) => {
768
770
  this[e] = this.__instance?.[e];
769
771
  });
770
772
  }
771
773
  __cleanup() {
772
- je.forEach((e) => {
774
+ be.forEach((e) => {
773
775
  this[e] = null;
774
776
  }), this.__reset();
775
777
  }
@@ -910,7 +912,7 @@ function kt(n, e, t) {
910
912
  Object.keys(e || {}).reduce(
911
913
  (s, r) => {
912
914
  let o = e[r];
913
- return E(o) ? o = t.__parseExpression(o) : j(o) && (o = t.__parseFunction(o)), s[r] = o, s;
915
+ return E(o) ? o = t.__parseExpression(o) : b(o) && (o = t.__parseFunction(o)), s[r] = o, s;
914
916
  },
915
917
  {}
916
918
  )
@@ -946,7 +948,7 @@ function Dt(n, e) {
946
948
  if (r.type === "mock")
947
949
  t[s] = Rt(r);
948
950
  else if (r.ref) {
949
- const o = e.$apis[r.ref], a = j(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
951
+ const o = e.$apis[r.ref], a = b(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
950
952
  t[s] = async (...i) => {
951
953
  const l = await o.apply(e, i);
952
954
  return a ? a(l) : l;
@@ -1049,22 +1051,22 @@ function O(n, e, t = z, s = xt, r = [], o = !1) {
1049
1051
  if (n.name === "component")
1050
1052
  return Nt(v, n.props?.is);
1051
1053
  if (n.name === "slot") return n.name;
1052
- const b = s(n.name, n.from, t);
1053
- if (I(b))
1054
- return yt(b) || vt(b) ? b : P[b] ?? a?.app?.component(b) ?? b;
1055
- if (et(b) && n.id) {
1054
+ const j = s(n.name, n.from, t);
1055
+ if (I(j))
1056
+ return yt(j) || vt(j) ? j : P[j] ?? a?.app?.component(j) ?? j;
1057
+ if (et(j) && n.id) {
1056
1058
  const ge = `Loader${n.id}_${S}`, ye = P[ge];
1057
- return ye || (P[ge] = b);
1059
+ return ye || (P[ge] = j);
1058
1060
  }
1059
- return b;
1061
+ return j;
1060
1062
  })(), C = Ut(i, n.props ?? {}, v), qe = qt(t, n.events ?? {}, v);
1061
1063
  if (n.name === "slot")
1062
1064
  return Kt(t, n, C, v, s);
1063
1065
  m && Object.assign(C, v.__parseExpression(m.value)), h && (C.style = Object.assign(
1064
1066
  C.style ?? {},
1065
1067
  Gt(h, v)
1066
- )), g && Object.assign(C, Vt(g, v)), d.forEach((b) => {
1067
- Object.assign(C, Qt(t, b, v));
1068
+ )), g && Object.assign(C, Vt(g, v)), d.forEach((j) => {
1069
+ Object.assign(C, Qt(t, j, v));
1068
1070
  });
1069
1071
  const Je = Wt(
1070
1072
  t,
@@ -1123,7 +1125,7 @@ function Ut(n, e, t) {
1123
1125
  return s.ref = t.__ref(n, s.ref), s;
1124
1126
  }
1125
1127
  function ce(n, e) {
1126
- return E(n) ? e.__parseExpression(n) : j(n) ? e.__parseFunction(n) : Array.isArray(n) ? n.map((t) => ce(t, e)) : typeof n == "object" ? Object.keys(n || {}).reduce(
1128
+ return E(n) ? e.__parseExpression(n) : b(n) ? e.__parseFunction(n) : Array.isArray(n) ? n.map((t) => ce(t, e)) : typeof n == "object" ? Object.keys(n || {}).reduce(
1127
1129
  (t, s) => {
1128
1130
  let r = n[s];
1129
1131
  return t[s] = ce(r, e), t;
@@ -1423,13 +1425,13 @@ function ts(n = {}, e) {
1423
1425
  }
1424
1426
  function ss(n, e, t) {
1425
1427
  const s = t.createPinia();
1426
- if (e.use(s), j(n) && n.value) {
1428
+ if (e.use(s), b(n) && n.value) {
1427
1429
  const r = R(n, {}, !1, !1, !0), o = t.defineStore("$store", r(e) || {});
1428
1430
  e.config.globalProperties.$store = o();
1429
1431
  }
1430
1432
  }
1431
1433
  function ns(n, e, t, s) {
1432
- if (j(n) && n.value) {
1434
+ if (b(n) && n.value) {
1433
1435
  const r = R(n, {}, !1, !1, !0), { alert: o, request: a } = s, i = new pe({
1434
1436
  alert: o,
1435
1437
  storagePrefix: "__VTJ_APP_",
@@ -1441,32 +1443,32 @@ function ns(n, e, t, s) {
1441
1443
  function rs(n, e, t) {
1442
1444
  if (!e.request) return;
1443
1445
  const { axios: s, request: r, response: o } = t;
1444
- if (s && j(s) && s.value) {
1446
+ if (s && b(s) && s.value) {
1445
1447
  const a = R(s, {}, !1, !1, !0);
1446
1448
  e.request.setConfig(a(n));
1447
1449
  }
1448
- if (r && j(r) && r.value) {
1450
+ if (r && b(r) && r.value) {
1449
1451
  const a = R(r, {}, !1, !1, !0), i = e.request;
1450
1452
  i.__unReq && i.__unReq(), i.__unReq = e.request.useRequest((l) => a(l, n));
1451
1453
  }
1452
- if (o && j(o) && o.value) {
1454
+ if (o && b(o) && o.value) {
1453
1455
  const a = R(o, {}, !1, !1, !0), i = e.request;
1454
1456
  i.__unRes && i.__unRes(), i.__unRes = e.request.useResponse((l) => a(l, n));
1455
1457
  }
1456
1458
  }
1457
1459
  function os(n, e) {
1458
1460
  const { beforeEach: t, afterEach: s } = e, r = n.config.globalProperties.$router;
1459
- if (t && j(t) && t.value) {
1461
+ if (t && b(t) && t.value) {
1460
1462
  const o = R(t, {}, !1, !1, !0);
1461
1463
  r && r.beforeEach((a, i, l) => o(a, i, l, n));
1462
1464
  }
1463
- if (s && j(s) && s.value) {
1465
+ if (s && b(s) && s.value) {
1464
1466
  const o = R(s, {}, !1, !1, !0);
1465
1467
  r && r.afterEach((a, i, l) => o(a, i, l, n));
1466
1468
  }
1467
1469
  }
1468
1470
  function is(n, e, t = {}) {
1469
- j(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
1471
+ b(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
1470
1472
  }
1471
1473
  function as(n, e, t) {
1472
1474
  if (!n || !e || !t) return;
@@ -1574,7 +1576,7 @@ class ls extends ze {
1574
1576
  if (this.project = s ? await s() : await this.service.init(e), !this.project)
1575
1577
  throw new Error("project is null");
1576
1578
  const { apis: r = [], meta: o = [] } = this.project, a = window;
1577
- a && (a.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis = bt(r, o, this.adapter), Oe(a), Et(r, a), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1579
+ a && (a.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis = jt(r, o, this.adapter), Oe(a), Et(r, a), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1578
1580
  }
1579
1581
  initMock(e) {
1580
1582
  const t = H(e);
@@ -1582,12 +1584,12 @@ class ls extends ze {
1582
1584
  timeout: "50-500"
1583
1585
  });
1584
1586
  }
1585
- async loadDependencies(e) {
1587
+ async loadDependencies(e = {}) {
1586
1588
  const t = Object.entries(this.dependencies);
1587
1589
  for (const [s, r] of t)
1588
1590
  e[s] || (e[s] = this.library[s] = await r());
1589
1591
  }
1590
- async loadAssets(e) {
1592
+ async loadAssets(e = {}) {
1591
1593
  const { dependencies: t = [] } = this.project, {
1592
1594
  dependencies: s,
1593
1595
  library: r,
@@ -1695,7 +1697,7 @@ class ls extends ze {
1695
1697
  const i = s[t[o]];
1696
1698
  e.use(a, { locale: i }), r[o] = !0;
1697
1699
  }
1698
- e.provide(Le, this), e.config.globalProperties.$provider = this, this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), this.project?.platform !== "uniapp" && this.mode !== w.Design && this.initGlobals(this.project?.globals || {}, {
1700
+ e.provide(Le, this), e.config.globalProperties.$provider = this, e.config.globalProperties.$request = this.adapter?.request, this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), this.project?.platform !== "uniapp" && this.mode !== w.Design && this.initGlobals(this.project?.globals || {}, {
1699
1701
  app: e,
1700
1702
  window,
1701
1703
  adapter: this.adapter,
@@ -2063,7 +2065,7 @@ class Fs extends de {
2063
2065
  return Promise.resolve(!0);
2064
2066
  }
2065
2067
  getHistory(e) {
2066
- const t = $.get(`history_${e}`), s = new be(t || { id: e });
2068
+ const t = $.get(`history_${e}`), s = new je(t || { id: e });
2067
2069
  return Promise.resolve(s.toDsl());
2068
2070
  }
2069
2071
  getHistoryItem(e, t) {
@@ -2118,7 +2120,7 @@ class ps extends de {
2118
2120
  return Promise.resolve(!0);
2119
2121
  }
2120
2122
  getHistory(e) {
2121
- const t = this.histories[e], s = new be(t || { id: e });
2123
+ const t = this.histories[e], s = new je(t || { id: e });
2122
2124
  return Promise.resolve(s);
2123
2125
  }
2124
2126
  getHistoryItem(e, t) {
@@ -2204,13 +2206,13 @@ export {
2204
2206
  ct as BUILD_IN_TAGS,
2205
2207
  ot as BUILT_IN_DIRECTIVES,
2206
2208
  de as BaseService,
2207
- je as CONTEXT_HOST,
2209
+ be as CONTEXT_HOST,
2208
2210
  Ct as Context,
2209
2211
  w as ContextMode,
2210
2212
  it as DATA_TYPES,
2211
2213
  N as HOMEPAGE_ROUTE_NAME,
2212
2214
  at as HTML_TAGS,
2213
- bs as JSCodeToString,
2215
+ js as JSCodeToString,
2214
2216
  ys as LIFE_CYCLES_LIST,
2215
2217
  Os as LocalService,
2216
2218
  ps as MemoryService,
@@ -2232,12 +2234,12 @@ export {
2232
2234
  ae as createLoader,
2233
2235
  Ms as createMemoryService,
2234
2236
  K as createMenus,
2235
- jt as createMetaApi,
2237
+ bt as createMetaApi,
2236
2238
  Rt as createMock,
2237
2239
  As as createProvider,
2238
2240
  ie as createRenderer,
2239
2241
  $t as createSchemaApi,
2240
- bt as createSchemaApis,
2242
+ jt as createSchemaApis,
2241
2243
  ks as createServiceRequest,
2242
2244
  xt as defaultLoader,
2243
2245
  B as fillBasePath,
@@ -2249,7 +2251,7 @@ export {
2249
2251
  G as isCSSUrl,
2250
2252
  _t as isJSCode,
2251
2253
  E as isJSExpression,
2252
- j as isJSFunction,
2254
+ b as isJSFunction,
2253
2255
  lt as isJSON,
2254
2256
  V as isJSUrl,
2255
2257
  vt as isNativeTag,
@@ -2269,7 +2271,7 @@ export {
2269
2271
  dt as parseUrls,
2270
2272
  Le as providerKey,
2271
2273
  ut as removeProdFlag,
2272
- js as setupPageSetting,
2274
+ bs as setupPageSetting,
2273
2275
  Ie as toString,
2274
2276
  St as useAccess,
2275
2277
  Cs as useMask,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.13.32",
4
+ "version": "0.13.33",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "低代码引擎",
@@ -21,15 +21,15 @@
21
21
  "author": "chenhuachun",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@vtj/core": "~0.13.32",
25
- "@vtj/utils": "~0.13.32"
24
+ "@vtj/core": "~0.13.33",
25
+ "@vtj/utils": "~0.13.33"
26
26
  },
27
27
  "devDependencies": {
28
28
  "vue": "~3.5.5",
29
29
  "vue-router": "~4.5.0",
30
- "@vtj/cli": "~0.12.13",
31
- "@vtj/icons": "~0.13.32",
32
- "@vtj/ui": "~0.13.32"
30
+ "@vtj/icons": "~0.13.33",
31
+ "@vtj/cli": "~0.12.14",
32
+ "@vtj/ui": "~0.13.33"
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.13.31
5
+ * @version 0.13.32
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.13.31";
8
+ export declare const version = "0.13.32";