@vtj/renderer 0.13.24 → 0.13.26

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 I=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);/**!
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($);/**!
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.24
5
+ * @version 0.13.26
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const O="0.13.24";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 b=p+1;let M=1;for(p++;p<c.length&&M>0;)c[p]==="{"?M++:c[p]==="}"&&M--,p++;const W=c.substring(v,p),A=c.substring(b,p-1);u.push({type:_?"keyframes":"at-rule",rule:w,content:W,inner:A})}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.26";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:g,library:h,assetsLibrary:m,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)),g&&a.push(g),m&&u.push(m),h&&m&&(p[m]=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 g=c.substring(d,p).trim();if(!g){p++;continue}const h=p+1;let m=1;for(p++;p<c.length&&m>0;)c[p]==="{"?m++:c[p]==="}"&&m--,p++;const y=c.substring(h,p-1);u.push({type:"rule",selector:g,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 g=p.trim(),h=d.trim();return g?`${g}[${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,g=""]=p,h=d.trim();return h?`${h}[${e}]${g}`: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),g=i(d);return`${u.rule} { ${g} }`}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 $(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function ke(r){return R(r)||$(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)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=$(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}},emits:pt(i.value.emits),expose:["vtj"],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):$(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=$(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=(_,b=0)=>{const M=_.$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:M[C]??a?.app?.component(C)??C;if(f.isObject(C)&&r.id){const ge=`Loader${r.id}_${b}`,ye=M[ge];return ye||(M[ge]=C)}return C})(),A=jt(i,r.props??{},_),We=$t(t,r.events??{},_);if(r.name==="slot")return Rt(t,r,A,_,s);g&&Object.assign(A,_.__parseExpression(g.value)),m&&(A.style=Object.assign(A.style??{},Pt(m,_))),y&&Object.assign(A,At(y,_)),h.forEach(C=>{Object.assign(A,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}_${b}`,...Xe,...A,...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):$(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 $.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(g){return console.warn("[mockApi]",o,l,g),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),g=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 m=Ne(i.value.dataSources||{},c),y={...h,...d,...g,...m};return c.setup(y,e),yt(e,i.value.watch??[],c),{vtj:c}},emits:pt(i.value.emits),expose:["vtj"],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:g,vModels:h,vBind:m,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);m&&Object.assign(I,_.__parseExpression(m.value)),g&&(I.style=Object.assign(I.style??{},Pt(g,_))),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) => {
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=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),$(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($(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&&$(s)&&s.value){const a=P(s,{},!1,!1,!0);e.request.setConfig(a(r))}if(n&&$(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&&$(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&&$(t)&&t.value){const o=P(t,{},!1,!1,!0);n&&n.beforeEach((a,i,l)=>o(a,i,l,r))}if(s&&$(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={}){$(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 I.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 b of _)B(b)&&await Ae(b,f.url.append(b,{v:O})),N(b)&&await f.loadScript(f.url.append(b,{v:O}));n[g]=e[g]}const w=h[g];w&&(l[w]=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=I.BUILT_IN_COMPONENTS[y];if(w)v&&w.forEach(_=>{o[_]=v[_]});else{const _=g[y]?(await g[y]()).default:e[y];_&&v&&(_.components||[]).forEach(b=>{o[b.name]=Re(b,v)})}}}}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}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),e.provide(fe,this),e.config.globalProperties.$provider=this,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=>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 E=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Qt extends Q{init(e){const t=new I.ProjectModel(e),s=E.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return E.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new I.ProjectModel(e);return E.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return E.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return E.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=E.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return E.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return E.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=E.get(`history_${e}`);if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),E.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=E.get(`history_${e}`),s=new I.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=E.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return E.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{E.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Qe extends Q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new I.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 I.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 I.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=$;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 g=u.length?f.pick(d??{},u):a(d,p);return c.map(h=>k(h,t.__clone(g),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=(g,h)=>{i.value=!g?.mask,l.value=h?.pure??!!g?.pure};$.watchEffect(()=>{const{name:g,params:h,meta:m}=o;if(g===F){const y=n.getPage(h.id);u(y,m)}else if(g===L){const y=n.getHomepage();u(y,m)}else{const y=m.__vtj__;if(y){const v=n.getPage(y);u(v,m)}else i.value=!m.mask,l.value=!!m.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:g,children:h,meta:m}=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(g){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,...m,__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:g,request:h}=this.adapter;g&&g.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:g,libraryLocaleMap:h}=be(t,a,i==="development");Object.assign(this.libraryLocaleMap,h);for(const m of c){const y=s[m],v=e[m];if(v)n[m]=v;else if(y)e[m]=n[m]=await y();else{const _=u[m]||[];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[m]=e[m]?.default||e[m]}const w=h[m];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 m=this.materials||{};for(const y of d){const v=e[g[y]],w=v?.default||v,_=M.BUILT_IN_COMPONENTS[y];if(_)w&&_.forEach(E=>{o[E]=w[E]});else{const E=m[y]?(await m[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}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),e.provide(fe,this),e.config.globalProperties.$provider=this,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;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Base as ze, BUILT_IN_COMPONENTS as Ge, ProjectModel as U, HistoryModel as be } from "@vtj/core";
2
- import { isUrl as se, url as F, dedupArray as Ve, isString as A, 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 C, isObject as et, upperFirst as tt, pick as st, request as ne, loadScript as Se, Storage as nt, mapToObject as ue } from "@vtj/utils";
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";
5
5
  import { useRoute as Ae } from "vue-router";
@@ -7,11 +7,11 @@ 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.24
10
+ * @version 0.13.26
11
11
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
12
12
  */
13
- const D = "0.13.24";
14
- var _ = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(_ || {});
13
+ const D = "0.13.26";
14
+ var w = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(w || {});
15
15
  const je = [
16
16
  "$el",
17
17
  "$emit",
@@ -167,10 +167,10 @@ function ut(n, e = !1) {
167
167
  function ft(n, e, t = !1) {
168
168
  const s = n.filter((p) => !!p.enabled), r = [], o = [], a = [], i = [], l = {}, c = {}, u = [], f = {};
169
169
  return s.forEach(
170
- ({ urls: p, assetsUrl: h, library: d, assetsLibrary: m, localeLibrary: g }) => {
170
+ ({ urls: p, assetsUrl: m, library: d, assetsLibrary: h, localeLibrary: g }) => {
171
171
  p?.forEach((y) => {
172
172
  V(y) && r.push(ut(y, t)), G(y) && o.push(y);
173
- }), d && (i.push(d), l[d] = B(p || [], e), g && (c[d] = g)), h && a.push(h), m && u.push(m), d && m && (f[m] = d);
173
+ }), d && (i.push(d), l[d] = B(p || [], e), g && (c[d] = g)), m && a.push(m), h && u.push(h), d && h && (f[h] = d);
174
174
  }
175
175
  ), {
176
176
  scripts: B(r, e),
@@ -214,23 +214,23 @@ function ht(n, e) {
214
214
  const y = f;
215
215
  for (; f < c.length && c[f] !== "{" && c[f] !== ";"; )
216
216
  f++;
217
- const w = c.substring(y, f).trim(), v = w.includes("@keyframes");
217
+ const _ = c.substring(y, f).trim(), v = _.includes("@keyframes");
218
218
  if (c[f] === ";")
219
219
  u.push({
220
220
  type: "simple-at-rule",
221
221
  content: c.substring(y, f + 1)
222
222
  }), f++;
223
223
  else if (c[f] === "{") {
224
- const $ = f + 1;
225
- let I = 1;
226
- for (f++; f < c.length && I > 0; )
227
- c[f] === "{" ? I++ : c[f] === "}" && I--, f++;
228
- const Q = c.substring(y, f), P = c.substring($, f - 1);
224
+ const S = f + 1;
225
+ let P = 1;
226
+ for (f++; f < c.length && P > 0; )
227
+ c[f] === "{" ? P++ : c[f] === "}" && P--, f++;
228
+ const Q = c.substring(y, f), C = c.substring(S, f - 1);
229
229
  u.push({
230
230
  type: v ? "keyframes" : "at-rule",
231
- rule: w,
231
+ rule: _,
232
232
  content: Q,
233
- inner: P
233
+ inner: C
234
234
  });
235
235
  }
236
236
  continue;
@@ -239,19 +239,19 @@ function ht(n, e) {
239
239
  for (; f < c.length && c[f] !== "{"; )
240
240
  f++;
241
241
  if (f >= c.length) break;
242
- const h = c.substring(p, f).trim();
243
- if (!h) {
242
+ const m = c.substring(p, f).trim();
243
+ if (!m) {
244
244
  f++;
245
245
  continue;
246
246
  }
247
247
  const d = f + 1;
248
- let m = 1;
249
- for (f++; f < c.length && m > 0; )
250
- c[f] === "{" ? m++ : c[f] === "}" && m--, f++;
248
+ let h = 1;
249
+ for (f++; f < c.length && h > 0; )
250
+ c[f] === "{" ? h++ : c[f] === "}" && h--, f++;
251
251
  const g = c.substring(d, f - 1);
252
252
  u.push({
253
253
  type: "rule",
254
- selector: h,
254
+ selector: m,
255
255
  content: g.trim()
256
256
  });
257
257
  }
@@ -260,16 +260,16 @@ function ht(n, e) {
260
260
  const u = c.trim();
261
261
  return /^(from|to|\d+(\.\d+)?%)$/.test(u);
262
262
  }, r = (c) => c.replace(/::v-deep\(/g, ":deep(").replace(/::v-deep\s+/g, ":deep(").replace(/\/deep\//g, " ").replace(/>>>/g, " ").replace(/(.*?):deep\(([^)]+)\)/g, (u, f, p) => {
263
- const h = f.trim(), d = p.trim();
264
- return h ? `${h}[${e}] ${d}` : d;
263
+ const m = f.trim(), d = p.trim();
264
+ return m ? `${m}[${e}] ${d}` : d;
265
265
  }), o = (c) => {
266
266
  const u = c.trim();
267
267
  if (!u || u.includes(`[${e}]`) || /^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u) || s(u))
268
268
  return u;
269
269
  const f = u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);
270
270
  if (f) {
271
- const [, p, h = ""] = f, d = p.trim();
272
- return d ? `${d}[${e}]${h}` : u;
271
+ const [, p, m = ""] = f, d = p.trim();
272
+ return d ? `${d}[${e}]${m}` : u;
273
273
  }
274
274
  return `${u}[${e}]`;
275
275
  }, a = (c) => r(c).split(",").map((f) => o(f)).filter((f) => f.trim()).join(", "), i = (c) => c.map((u) => {
@@ -280,8 +280,8 @@ function ht(n, e) {
280
280
  return u.content;
281
281
  case "at-rule":
282
282
  try {
283
- const p = t(u.inner), h = i(p);
284
- return `${u.rule} { ${h} }`;
283
+ const p = t(u.inner), m = i(p);
284
+ return `${u.rule} { ${m} }`;
285
285
  } catch {
286
286
  return u.content;
287
287
  }
@@ -309,7 +309,7 @@ function ht(n, e) {
309
309
  }
310
310
  }
311
311
  function Ie(n) {
312
- return A(n) ? n : JSON.stringify(n);
312
+ return I(n) ? n : JSON.stringify(n);
313
313
  }
314
314
  function fe(n, e, t, s = !1) {
315
315
  const r = n.CSSStyleSheet, o = s ? `data-v-${e}` : e, a = s ? ht(t, o) : t;
@@ -445,7 +445,7 @@ const wt = {
445
445
  class pe {
446
446
  options;
447
447
  data = null;
448
- mode = _.Raw;
448
+ mode = w.Raw;
449
449
  interceptResponse = !0;
450
450
  constructor(e) {
451
451
  this.options = Object.assign({}, wt, e), this.loadData();
@@ -458,7 +458,7 @@ class pe {
458
458
  }
459
459
  connect(e) {
460
460
  const { mode: t, router: s, request: r } = e;
461
- this.mode = t, s && this.mode !== _.Design && this.setGuard(s), r && this.setRequest(r);
461
+ this.mode = t, s && this.mode !== w.Design && this.setGuard(s), r && this.setRequest(r);
462
462
  }
463
463
  login(e) {
464
464
  const { storageKey: t, storagePrefix: s, session: r, authKey: o } = this.options;
@@ -560,7 +560,7 @@ class pe {
560
560
  return t();
561
561
  {
562
562
  const { noPermissionMessage: s = "无权限访问", unauthorized: r = !1 } = this.options;
563
- return await this.showTip(s), q(r) ? (r(), t(!1)) : A(r) ? t(r) : t(!1);
563
+ return await this.showTip(s), q(r) ? (r(), t(!1)) : I(r) ? t(r) : t(!1);
564
564
  }
565
565
  }
566
566
  t(!1), await J(0), this.toLogin();
@@ -709,8 +709,8 @@ function Pt(n, e) {
709
709
  Object.assign(l, { data: u, params: p, query: c });
710
710
  try {
711
711
  return n.mock(i(l));
712
- } catch (h) {
713
- return console.warn("[mockApi]", o, l, h), null;
712
+ } catch (m) {
713
+ return console.warn("[mockApi]", o, l, m), null;
714
714
  }
715
715
  });
716
716
  } catch (r) {
@@ -778,7 +778,7 @@ class Ct {
778
778
  }
779
779
  __parseFunction(e) {
780
780
  if (e)
781
- if (this.__mode === _.Runtime) {
781
+ if (this.__mode === w.Runtime) {
782
782
  const { id: t, type: s } = e, r = t ? this.__transform[t] ?? e.value : e.value;
783
783
  return R({ type: s, value: r }, this);
784
784
  } else
@@ -786,14 +786,14 @@ class Ct {
786
786
  }
787
787
  __parseExpression(e) {
788
788
  if (e)
789
- if (this.__mode === _.Runtime) {
789
+ if (this.__mode === w.Runtime) {
790
790
  const { id: t, type: s } = e, r = t ? this.__transform[t] ?? e.value : e.value;
791
791
  return x({ type: s, value: r }, this);
792
792
  } else
793
793
  return x(e, this);
794
794
  }
795
795
  __ref(e = null, t) {
796
- if (this.__mode !== _.VNode)
796
+ if (this.__mode !== w.VNode)
797
797
  return e && e !== this.__id && (this.__contextRefs[e] = this), async (s) => {
798
798
  await J(0);
799
799
  let r = s?.$vtjEl || s?.$el || s?._?.vnode?.el || s;
@@ -801,7 +801,7 @@ class Ct {
801
801
  typeof t == "string" && (delete this.$refs[t], e && delete this.__refs[e]);
802
802
  return;
803
803
  }
804
- return r.nodeType === 3 && r.nextSibling && (r = r.nextSibling), r.__vtj__ = e, _.Design === this.__mode && (r.__context__ = this, r.draggable = !0), e && (this.__refs[e] = this.__getRefEl(this.__refs, e, s)), typeof t == "function" ? t(s) : t && (this.$refs[t] = this.__getRefEl(this.$refs, t, s)), s;
804
+ return r.nodeType === 3 && r.nextSibling && (r = r.nextSibling), r.__vtj__ = e, w.Design === this.__mode && (r.__context__ = this, r.draggable = !0), e && (this.__refs[e] = this.__getRefEl(this.__refs, e, s)), typeof t == "function" ? t(s) : t && (this.$refs[t] = this.__getRefEl(this.$refs, t, s)), s;
805
805
  };
806
806
  }
807
807
  __getRefEl(e, t, s) {
@@ -823,7 +823,7 @@ class Ct {
823
823
  function ie(n) {
824
824
  const {
825
825
  Vue: e = z,
826
- mode: t = _.Runtime,
826
+ mode: t = w.Runtime,
827
827
  components: s = {},
828
828
  libs: r = {},
829
829
  apis: o = {},
@@ -849,17 +849,17 @@ function ie(n) {
849
849
  i.value.css || "",
850
850
  !0
851
851
  ), c.state = kt(e, i.value.state ?? {}, c);
852
- const p = Ft(e, i.value.computed ?? {}, c), h = Mt(i.value.methods ?? {}, c), d = Ot(e, i.value.inject, c);
853
- for (const [y, w] of Object.entries(d || {}))
854
- d[y] = e.inject(y, w);
855
- const m = Dt(
852
+ const p = Ft(e, i.value.computed ?? {}, c), m = Mt(i.value.methods ?? {}, c), d = Ot(e, i.value.inject, c);
853
+ for (const [y, _] of Object.entries(d || {}))
854
+ d[y] = e.inject(y, _);
855
+ const h = Dt(
856
856
  i.value.dataSources || {},
857
857
  c
858
858
  ), g = {
859
859
  ...d,
860
860
  ...p,
861
- ...h,
862
- ...m
861
+ ...m,
862
+ ...h
863
863
  };
864
864
  return c.setup(g, e), Tt(e, i.value.watch ?? [], c), {
865
865
  vtj: c
@@ -882,11 +882,11 @@ function ie(n) {
882
882
  };
883
883
  }
884
884
  function At(n = []) {
885
- return n.map((e) => A(e) ? e : e.name);
885
+ return n.map((e) => I(e) ? e : e.name);
886
886
  }
887
887
  function It(n = [], e) {
888
888
  const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((o) => it[o]) : void 0;
889
- return n.map((s) => A(s) ? {
889
+ return n.map((s) => I(s) ? {
890
890
  name: s
891
891
  } : {
892
892
  name: s.name,
@@ -1004,7 +1004,7 @@ function ae(n) {
1004
1004
  ...s,
1005
1005
  Vue: a,
1006
1006
  dsl: we(i),
1007
- mode: _.Runtime,
1007
+ mode: w.Runtime,
1008
1008
  loader: ae(n)
1009
1009
  }).renderer : null;
1010
1010
  });
@@ -1015,7 +1015,7 @@ function ae(n) {
1015
1015
  ...s,
1016
1016
  Vue: a,
1017
1017
  dsl: we(i),
1018
- mode: _.Runtime,
1018
+ mode: w.Runtime,
1019
1019
  loader: ae(n)
1020
1020
  }).renderer : null;
1021
1021
  });
@@ -1036,32 +1036,32 @@ function Ps() {
1036
1036
  }
1037
1037
  function O(n, e, t = z, s = xt, r = [], o = !1) {
1038
1038
  if (!n || !n.name || n.invisible) return null;
1039
- const a = t.getCurrentInstance()?.appContext, { id: i = null, directives: l = [] } = n, { vIf: c, vElseIf: u, vElse: f, vFor: p, vShow: h, vModels: d, vBind: m, vHtml: g, others: y } = He(l);
1039
+ const a = t.getCurrentInstance()?.appContext, { id: i = null, directives: l = [] } = n, { vIf: c, vElseIf: u, vElse: f, vFor: p, vShow: m, vModels: d, vBind: h, vHtml: g, others: y } = He(l);
1040
1040
  if (!o && (u || f))
1041
1041
  return null;
1042
1042
  if (c && !Lt(c, e))
1043
1043
  return Jt(n, e, t, s, r);
1044
- const w = (v, $ = 0) => {
1045
- const I = v.$components, Q = (() => {
1044
+ const _ = (v, S = 0) => {
1045
+ const P = v.$components, Q = (() => {
1046
1046
  if (n.name === "component")
1047
1047
  return Nt(v, n.props?.is);
1048
1048
  if (n.name === "slot") return n.name;
1049
1049
  const b = s(n.name, n.from, t);
1050
- if (A(b))
1051
- return yt(b) || vt(b) ? b : I[b] ?? a?.app?.component(b) ?? b;
1050
+ if (I(b))
1051
+ return yt(b) || vt(b) ? b : P[b] ?? a?.app?.component(b) ?? b;
1052
1052
  if (et(b) && n.id) {
1053
- const ge = `Loader${n.id}_${$}`, ye = I[ge];
1054
- return ye || (I[ge] = b);
1053
+ const ge = `Loader${n.id}_${S}`, ye = P[ge];
1054
+ return ye || (P[ge] = b);
1055
1055
  }
1056
1056
  return b;
1057
- })(), P = Ut(i, n.props ?? {}, v), qe = qt(t, n.events ?? {}, v);
1057
+ })(), C = Ut(i, n.props ?? {}, v), qe = qt(t, n.events ?? {}, v);
1058
1058
  if (n.name === "slot")
1059
- return Kt(t, n, P, v, s);
1060
- m && Object.assign(P, v.__parseExpression(m.value)), h && (P.style = Object.assign(
1061
- P.style ?? {},
1062
- Gt(h, v)
1063
- )), g && Object.assign(P, Vt(g, v)), d.forEach((b) => {
1064
- Object.assign(P, Qt(t, b, v));
1059
+ return Kt(t, n, C, v, s);
1060
+ h && Object.assign(C, v.__parseExpression(h.value)), m && (C.style = Object.assign(
1061
+ C.style ?? {},
1062
+ Gt(m, v)
1063
+ )), g && Object.assign(C, Vt(g, v)), d.forEach((b) => {
1064
+ Object.assign(C, Qt(t, b, v));
1065
1065
  });
1066
1066
  const Je = Wt(
1067
1067
  t,
@@ -1072,13 +1072,13 @@ function O(n, e, t = z, s = xt, r = [], o = !1) {
1072
1072
  ), he = v?.__id ? `data-v-${v.__id}` : void 0, Ke = he ? { [he]: "" } : {};
1073
1073
  let W = t.createVNode(
1074
1074
  Q,
1075
- { key: `${i}_${$}`, ...Ke, ...P, ...qe },
1075
+ { key: `${i}_${S}`, ...Ke, ...C, ...qe },
1076
1076
  Je
1077
1077
  );
1078
1078
  const me = a ? Bt(a, y, v) : [];
1079
1079
  return me.length && (W = t.withDirectives(W, me)), W;
1080
1080
  };
1081
- return p ? Zt(p, w, e) : w(e);
1081
+ return p ? Zt(p, _, e) : _(e);
1082
1082
  }
1083
1083
  function Bt(n, e, t) {
1084
1084
  const s = n.app;
@@ -1090,12 +1090,12 @@ function Bt(n, e, t) {
1090
1090
  }).filter((r) => !!r);
1091
1091
  }
1092
1092
  function He(n = []) {
1093
- const e = n.find((u) => C(u.name) === "vIf"), t = n.find(
1094
- (u) => C(u.name) === "vElseIf"
1095
- ), s = n.find((u) => C(u.name) === "vElse"), r = n.find((u) => C(u.name) === "vFor"), o = n.find((u) => C(u.name) === "vShow"), a = n.find((u) => C(u.name) === "vBind"), i = n.find((u) => C(u.name) === "vHtml"), l = n.filter(
1096
- (u) => C(u.name) === "vModel"
1093
+ const e = n.find((u) => A(u.name) === "vIf"), t = n.find(
1094
+ (u) => A(u.name) === "vElseIf"
1095
+ ), s = n.find((u) => A(u.name) === "vElse"), r = n.find((u) => A(u.name) === "vFor"), o = n.find((u) => A(u.name) === "vShow"), a = n.find((u) => A(u.name) === "vBind"), i = n.find((u) => A(u.name) === "vHtml"), l = n.filter(
1096
+ (u) => A(u.name) === "vModel"
1097
1097
  ), c = n.filter(
1098
- (u) => !ot.includes(C(u.name))
1098
+ (u) => !ot.includes(A(u.name))
1099
1099
  );
1100
1100
  return {
1101
1101
  vIf: e,
@@ -1162,7 +1162,7 @@ function xe(n = {}, e = !1) {
1162
1162
  }
1163
1163
  function Kt(n, e, t, s, r) {
1164
1164
  const { children: o } = e, a = zt(e, s), i = s.$slots?.[a.name];
1165
- return i ? i(t) : o ? A(o) ? n.createTextVNode(o) : E(o) ? n.createTextVNode(
1165
+ return i ? i(t) : o ? I(o) ? n.createTextVNode(o) : E(o) ? n.createTextVNode(
1166
1166
  Ie(s.__parseExpression(o))
1167
1167
  ) : Array.isArray(o) ? o.map(
1168
1168
  (l) => O(l, s, n, r, o)
@@ -1201,7 +1201,7 @@ function Qt(n, e, t) {
1201
1201
  }
1202
1202
  function Wt(n, e, t, s, r) {
1203
1203
  if (!e) return null;
1204
- if (A(e))
1204
+ if (I(e))
1205
1205
  return { default: () => e };
1206
1206
  if (E(e))
1207
1207
  return {
@@ -1215,9 +1215,9 @@ function Wt(n, e, t, s, r) {
1215
1215
  } : l ? { [l]: /* @__PURE__ */ Object.create(null) } : {};
1216
1216
  return Object.entries(o).reduce(
1217
1217
  (i, [l, { nodes: c, params: u, scope: f }]) => (i[l] = (p) => {
1218
- const h = u.length ? st(p ?? {}, u) : a(p, f);
1218
+ const m = u.length ? st(p ?? {}, u) : a(p, f);
1219
1219
  return c.map(
1220
- (d) => O(d, t.__clone(h), n, s, c)
1220
+ (d) => O(d, t.__clone(m), n, s, c)
1221
1221
  );
1222
1222
  }, i),
1223
1223
  {}
@@ -1238,7 +1238,7 @@ function Xt(n) {
1238
1238
  return e;
1239
1239
  }
1240
1240
  function Yt(n = "default") {
1241
- return A(n) ? { name: n, params: [], scope: "" } : { params: [], scope: "", ...n };
1241
+ return I(n) ? { name: n, params: [], scope: "" } : { params: [], scope: "", ...n };
1242
1242
  }
1243
1243
  function Zt(n, e, t) {
1244
1244
  const { value: s, iterator: r } = n, { item: o = "item", index: a = "index" } = r || {};
@@ -1314,24 +1314,24 @@ function Cs(n) {
1314
1314
  menuPathPrefix: e = "",
1315
1315
  pageRouteName: t = "page",
1316
1316
  disableMenusFilter: s = !1
1317
- } = n || {}, r = Ne(), o = Ae(), a = St(), i = oe(!1), l = oe(!1), c = r.project, u = (h, d) => {
1318
- i.value = !h?.mask, l.value = d?.pure ?? !!h?.pure;
1317
+ } = n || {}, r = Ne(), o = Ae(), a = St(), i = oe(!1), l = oe(!1), c = r.project, u = (m, d) => {
1318
+ i.value = !m?.mask, l.value = d?.pure ?? !!m?.pure;
1319
1319
  };
1320
1320
  rt(() => {
1321
- const { name: h, params: d, meta: m } = o;
1322
- if (h === T) {
1321
+ const { name: m, params: d, meta: h } = o;
1322
+ if (m === T) {
1323
1323
  const g = r.getPage(d.id);
1324
- u(g, m);
1325
- } else if (h === N) {
1324
+ u(g, h);
1325
+ } else if (m === N) {
1326
1326
  const g = r.getHomepage();
1327
- u(g, m);
1327
+ u(g, h);
1328
1328
  } else {
1329
- const g = m.__vtj__;
1329
+ const g = h.__vtj__;
1330
1330
  if (g) {
1331
1331
  const y = r.getPage(g);
1332
- u(y, m);
1332
+ u(y, h);
1333
1333
  } else
1334
- i.value = !m.mask, l.value = !!m.pure;
1334
+ i.value = !h.mask, l.value = !!h.pure;
1335
1335
  }
1336
1336
  });
1337
1337
  const f = K(
@@ -1373,7 +1373,7 @@ function le(n) {
1373
1373
  homepage: i
1374
1374
  } = n, l = [];
1375
1375
  for (const c of s) {
1376
- const { id: u, title: f, dir: p, layout: h, children: d, meta: m } = c;
1376
+ const { id: u, title: f, dir: p, layout: m, children: d, meta: h } = c;
1377
1377
  if (p) {
1378
1378
  const g = le({
1379
1379
  name: e,
@@ -1385,7 +1385,7 @@ function le(n) {
1385
1385
  pages: d || []
1386
1386
  });
1387
1387
  l.push(...g);
1388
- } else if (h) {
1388
+ } else if (m) {
1389
1389
  const g = le({
1390
1390
  name: e,
1391
1391
  prefix: t,
@@ -1401,7 +1401,7 @@ function le(n) {
1401
1401
  meta: {
1402
1402
  title: f,
1403
1403
  ...a,
1404
- ...m,
1404
+ ...h,
1405
1405
  __vtj__: u
1406
1406
  },
1407
1407
  children: g
@@ -1496,7 +1496,7 @@ class ls extends ze {
1496
1496
  super(), this.options = e;
1497
1497
  const {
1498
1498
  service: t,
1499
- mode: s = _.Raw,
1499
+ mode: s = w.Raw,
1500
1500
  dependencies: r,
1501
1501
  materials: o,
1502
1502
  project: a = {},
@@ -1509,8 +1509,8 @@ class ls extends ze {
1509
1509
  /* Development */
1510
1510
  } = e;
1511
1511
  this.mode = s, this.modules = c, this.service = t, this.router = u, this.materialPath = f, this.nodeEnv = p, r && (this.dependencies = r), o && (this.materials = o), Object.assign(this.globals, l), Object.assign(this.adapter, i);
1512
- const { access: h, request: d } = this.adapter;
1513
- h && h.connect({ mode: s, router: u, request: d }), a && s !== _.Design ? this.load(a) : this.project = a;
1512
+ const { access: m, request: d } = this.adapter;
1513
+ m && m.connect({ mode: s, router: u, request: d }), a && s !== w.Design ? this.load(a) : this.project = a;
1514
1514
  }
1515
1515
  mode;
1516
1516
  // 当前运行模式(设计/源码/预览等)
@@ -1571,7 +1571,7 @@ class ls extends ze {
1571
1571
  if (this.project = s ? await s() : await this.service.init(e), !this.project)
1572
1572
  throw new Error("project is null");
1573
1573
  const { apis: r = [], meta: o = [] } = this.project, a = window;
1574
- a && (a.CKEDITOR_VERSION = void 0), this.mode === _.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();
1574
+ 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();
1575
1575
  }
1576
1576
  initMock(e) {
1577
1577
  const t = H(e);
@@ -1597,7 +1597,7 @@ class ls extends ze {
1597
1597
  libraryMap: u,
1598
1598
  materials: f,
1599
1599
  materialExports: p,
1600
- materialMapLibrary: h,
1600
+ materialMapLibrary: m,
1601
1601
  libraryLocaleMap: d
1602
1602
  } = ft(
1603
1603
  t,
@@ -1606,35 +1606,38 @@ class ls extends ze {
1606
1606
  /* Development */
1607
1607
  );
1608
1608
  Object.assign(this.libraryLocaleMap, d);
1609
- for (const m of c) {
1610
- const g = s[m], y = e[m];
1609
+ for (const h of c) {
1610
+ const g = s[h], y = e[h];
1611
1611
  if (y)
1612
- r[m] = y;
1612
+ r[h] = y;
1613
1613
  else if (g)
1614
- e[m] = r[m] = await g();
1614
+ e[h] = r[h] = await g();
1615
1615
  else {
1616
- const v = u[m] || [];
1617
- for (const $ of v)
1618
- G($) && await mt($, F.append($, { v: D })), V($) && await Se(F.append($, { v: D }));
1619
- r[m] = e[m];
1616
+ const v = u[h] || [];
1617
+ for (const S of v)
1618
+ G(S) && await mt(S, F.append(S, { v: D })), V(S) && await Se(F.append(S, { v: D }));
1619
+ r[h] = e[h]?.default || e[h];
1620
+ }
1621
+ const _ = d[h];
1622
+ if (_) {
1623
+ const v = s[_];
1624
+ l[_] = v ? await v() : e[_];
1620
1625
  }
1621
- const w = d[m];
1622
- w && (l[w] = e[w]);
1623
1626
  }
1624
1627
  if (i === "development") {
1625
1628
  for (const g of f)
1626
1629
  await Se(F.append(g, { v: D }));
1627
- const m = this.materials || {};
1630
+ const h = this.materials || {};
1628
1631
  for (const g of p) {
1629
- const y = e[h[g]], w = Ge[g];
1630
- if (w)
1631
- y && w.forEach((v) => {
1632
- o[v] = y[v];
1632
+ const y = e[m[g]], _ = y?.default || y, v = Ge[g];
1633
+ if (v)
1634
+ _ && v.forEach((S) => {
1635
+ o[S] = _[S];
1633
1636
  });
1634
1637
  else {
1635
- const v = m[g] ? (await m[g]()).default : e[g];
1636
- v && y && (v.components || []).forEach(($) => {
1637
- o[$.name] = pt($, y);
1638
+ const S = h[g] ? (await h[g]()).default : e[g];
1639
+ S && _ && (S.components || []).forEach((P) => {
1640
+ o[P.name] = pt(P, _);
1638
1641
  });
1639
1642
  }
1640
1643
  }
@@ -1689,13 +1692,13 @@ class ls extends ze {
1689
1692
  const i = s[t[o]];
1690
1693
  e.use(a, { locale: i }), r[o] = !0;
1691
1694
  }
1692
- this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), this.project?.platform !== "uniapp" && this.mode !== _.Design && this.initGlobals(this.project?.globals || {}, {
1695
+ 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 || {}, {
1693
1696
  app: e,
1694
1697
  window,
1695
1698
  adapter: this.adapter,
1696
1699
  library: this.library,
1697
1700
  mode: this.mode
1698
- }), this.mode !== _.Design && this.project?.i18n && this.initI18n(e, this.library, this.project.i18n), e.provide(Le, this), e.config.globalProperties.$provider = this, this.options.enhance && e.use(this.options.enhance, this), this.mode === _.Design && (e.config.errorHandler = (o, a, i) => {
1701
+ }), this.mode !== w.Design && this.project?.i18n && this.initI18n(e, this.library, this.project.i18n), e.provide(Le, this), e.config.globalProperties.$provider = this, this.options.enhance && e.use(this.options.enhance, this), this.mode === w.Design && (e.config.errorHandler = (o, a, i) => {
1699
1702
  const l = a?.$options.name, c = typeof o == "string" ? o : o?.message || o?.msg || "未知错误", u = `[ ${l} ] ${c} ${i}`;
1700
1703
  console.error(
1701
1704
  "[VTJ Error]:",
@@ -1791,7 +1794,7 @@ class ls extends ze {
1791
1794
  const s = this.getFile(e);
1792
1795
  if (!s)
1793
1796
  return M.warn(`Can not find file: ${e}`), null;
1794
- if (t && t(s), this.mode === _.Raw) {
1797
+ if (t && t(s), this.mode === w.Raw) {
1795
1798
  const { vtjRawDir: o = ".vtj/vue" } = this.options, a = `${o}/${e}.vue`, i = this.modules[a] || this.modules[`/src/pages/${e}.vue`];
1796
1799
  return i ? (await i())?.default : this.nodeEnv === "development" && this.adapter.startupComponent || null;
1797
1800
  }
@@ -2018,58 +2021,58 @@ class de {
2018
2021
  return console.log("BaseService.genSource", e), "";
2019
2022
  }
2020
2023
  }
2021
- const S = new nt({
2024
+ const $ = new nt({
2022
2025
  type: "local",
2023
2026
  expired: 0,
2024
2027
  prefix: "__VTJ_"
2025
2028
  });
2026
2029
  class Fs extends de {
2027
2030
  init(e) {
2028
- const t = new U(e), s = S.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
2029
- return S.save(`project_${t.id}`, r), Promise.resolve(r);
2031
+ const t = new U(e), s = $.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
2032
+ return $.save(`project_${t.id}`, r), Promise.resolve(r);
2030
2033
  }
2031
2034
  saveProject(e) {
2032
2035
  const t = new U(e);
2033
- return S.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
2036
+ return $.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
2034
2037
  }
2035
2038
  saveMaterials(e, t) {
2036
- return S.save(`materials_${e.id}`, ue(t)), Promise.resolve(!0);
2039
+ return $.save(`materials_${e.id}`, ue(t)), Promise.resolve(!0);
2037
2040
  }
2038
2041
  saveFile(e) {
2039
- return S.save(`file_${e.id}`, e), Promise.resolve(!0);
2042
+ return $.save(`file_${e.id}`, e), Promise.resolve(!0);
2040
2043
  }
2041
2044
  getFile(e) {
2042
- const t = S.get(`file_${e}`);
2045
+ const t = $.get(`file_${e}`);
2043
2046
  return t ? Promise.resolve(t) : Promise.reject(null);
2044
2047
  }
2045
2048
  removeFile(e) {
2046
- return S.remove(`file_${e}`), Promise.resolve(!0);
2049
+ return $.remove(`file_${e}`), Promise.resolve(!0);
2047
2050
  }
2048
2051
  saveHistory(e) {
2049
- return S.save(`history_${e.id}`, e), Promise.resolve(!0);
2052
+ return $.save(`history_${e.id}`, e), Promise.resolve(!0);
2050
2053
  }
2051
2054
  removeHistory(e) {
2052
- const t = S.get(`history_${e}`);
2055
+ const t = $.get(`history_${e}`);
2053
2056
  if (t) {
2054
2057
  const r = (t.items || []).map((o) => o.id);
2055
- this.removeHistoryItem(e, r), S.remove(`history_${e}`);
2058
+ this.removeHistoryItem(e, r), $.remove(`history_${e}`);
2056
2059
  }
2057
2060
  return Promise.resolve(!0);
2058
2061
  }
2059
2062
  getHistory(e) {
2060
- const t = S.get(`history_${e}`), s = new be(t || { id: e });
2063
+ const t = $.get(`history_${e}`), s = new be(t || { id: e });
2061
2064
  return Promise.resolve(s.toDsl());
2062
2065
  }
2063
2066
  getHistoryItem(e, t) {
2064
- const s = S.get(`history_${e}_${t}`);
2067
+ const s = $.get(`history_${e}_${t}`);
2065
2068
  return Promise.resolve(s);
2066
2069
  }
2067
2070
  saveHistoryItem(e, t) {
2068
- return S.save(`history_${e}_${t.id}`, t), Promise.resolve(!0);
2071
+ return $.save(`history_${e}_${t.id}`, t), Promise.resolve(!0);
2069
2072
  }
2070
2073
  removeHistoryItem(e, t) {
2071
2074
  return t.forEach((s) => {
2072
- S.remove(`history_${e}_${s}`);
2075
+ $.remove(`history_${e}_${s}`);
2073
2076
  }), Promise.resolve(!0);
2074
2077
  }
2075
2078
  }
@@ -2200,7 +2203,7 @@ export {
2200
2203
  de as BaseService,
2201
2204
  je as CONTEXT_HOST,
2202
2205
  Ct as Context,
2203
- _ as ContextMode,
2206
+ w as ContextMode,
2204
2207
  it as DATA_TYPES,
2205
2208
  N as HOMEPAGE_ROUTE_NAME,
2206
2209
  at as HTML_TAGS,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.13.24",
4
+ "version": "0.13.26",
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.24",
25
- "@vtj/utils": "~0.13.24"
24
+ "@vtj/core": "~0.13.26",
25
+ "@vtj/utils": "~0.13.26"
26
26
  },
27
27
  "devDependencies": {
28
28
  "vue": "~3.5.5",
29
29
  "vue-router": "~4.5.0",
30
- "@vtj/cli": "~0.12.12",
31
- "@vtj/ui": "~0.13.24",
32
- "@vtj/icons": "~0.13.24"
30
+ "@vtj/icons": "~0.13.26",
31
+ "@vtj/cli": "~0.12.13",
32
+ "@vtj/ui": "~0.13.26"
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.23
5
+ * @version 0.13.25
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.13.23";
8
+ export declare const version = "0.13.25";