@vtj/renderer 0.12.38 → 0.12.39

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,11 +1,11 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("@vtj/core"),d=require("@vtj/utils"),$=require("vue"),de=require("vue-router");function Ge(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 J=Ge($);/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("@vtj/core"),d=require("@vtj/utils"),$=require("vue"),de=require("vue-router");function We(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 J=We($);/**!
2
2
  * Copyright (c) 2025, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.12.38
5
+ * @version 0.12.39
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const M="0.12.38";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],We=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],fe=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],he={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",me="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(","),ge="component,slot".split(",");function O(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function ve(r){return/\.json$/.test(r)}function Ye(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function Qe(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function ye(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function _e(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},u=[],l={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:g,localeLibrary:S})=>{m?.forEach(v=>{N(v)&&n.push(ye(v,t)),x(v)&&i.push(v)}),h&&(o.push(h),p[h]=O(m||[],e),S&&(c[h]=S)),f&&a.push(f),g&&u.push(g),h&&g&&(l[g]=h)}),{scripts:O(n,e),css:O(i,e),materials:O(a,e),libraryExports:o,materialExports:d.dedupArray(u),materialMapLibrary:l,libraryMap:p,libraryLocaleMap:c}}function Se(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function we(r=[]){const e=r.filter(s=>x(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function $e(r,e){const t=c=>{const u=[];let l=0;for(;l<c.length;){if(/\s/.test(c[l])){l++;continue}if(c.substring(l,l+2)==="/*"){const v=c.indexOf("*/",l+2);if(v!==-1){l=v+2;continue}}if(c[l]==="@"){const v=l;for(;l<c.length&&c[l]!=="{"&&c[l]!==";";)l++;const j=c.substring(v,l).trim(),y=j.includes("@keyframes");if(c[l]===";")u.push({type:"simple-at-rule",content:c.substring(v,l+1)}),l++;else if(c[l]==="{"){const V=l+1;let D=1;for(l++;l<c.length&&D>0;)c[l]==="{"?D++:c[l]==="}"&&D--,l++;const z=c.substring(v,l),C=c.substring(V,l-1);u.push({type:y?"keyframes":"at-rule",rule:j,content:z,inner:C})}continue}const m=l;for(;l<c.length&&c[l]!=="{";)l++;if(l>=c.length)break;const f=c.substring(m,l).trim();if(!f){l++;continue}const h=l+1;let g=1;for(l++;l<c.length&&g>0;)c[l]==="{"?g++:c[l]==="}"&&g--,l++;const S=c.substring(h,l-1);u.push({type:"rule",selector:f,content:S.trim()})}return u},s=c=>{const u=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(u)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(u,l,m)=>{const f=l.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),i=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const l=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(l){const[,m,f=""]=l,h=m.trim();return h?`${h}[${e}]${f}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(l=>i(l)).filter(l=>l.trim()).join(", "),o=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const m=t(u.inner),f=o(m);return`${u.rule} { ${f} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const l=a(u.selector);return l.trim()?`${l} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),p=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
8
- `),u=t(c),l=o(u);return p(l)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,u=>u).replace(/([^{}@]+)(?=\s*{)/g,u=>{const l=u.trim();return!l||l.startsWith("@")||l.includes(`[${e}]`)||s(l)?u:`${l}[${e}]`})}}function X(r){return d.isString(r)?r:JSON.stringify(r)}function Z(r,e,t,s=!1){const n=r.CSSStyleSheet,i=s?`data-v-${e}`:e,a=s?$e(t,i):t;if(n.prototype.replaceSync){const o=new n;o.id=e,o.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,u=Array.from(c).filter(l=>l.id!==e);p.adoptedStyleSheets=[...u,o]}else{const o=r.document;let p=o.getElementById(e);p?p.innerHTML=a:(p=o.createElement("style"),p.id=e,p.innerHTML=a,o.head.appendChild(p))}}async function Ee(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&Z(window,r,t)}function ee(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function te(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{i=t[e],i?a(i.default||i):o(null)},c.onerror=u=>{o(u)},n.appendChild(c)}})}function je(r){return d.isFunction(r)||d.isFunction(r?.install)}function be(r){return ge.includes(r)}function Ce(r){return me.includes(r)}function k(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function Xe(r,e,t){Object.assign(e.meta,t.meta);const s=r?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function I(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,p)=>`__self${p}`),i=n.join(`
9
- `)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function B(r,e,t=!1,s=!1){const n=I(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function E(r){return r&&r.type==="JSExpression"}function F(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Pe(r){return E(r)||F(r)}function Ze(r){return Pe(r)?r.value:JSON.stringify(r)}const et={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},se=Symbol("access");class re{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},et,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(se,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await d.delay(150),await t(e,{title:"提示",type:"warning"}).catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Re(){return $.inject(se,null)}function tt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new re({alert:o,...i}):void 0}}function st(r={}){return new re(r)}function Ae(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?I(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Me(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Te(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Ae(n,t);for(const n of e)s[n.id]=Me(n,t);return s}async function ke(r=[],e=window){const t=k(e);t&&(ne(e),r.forEach(s=>Fe(t,s)))}function Ie(r,e=window){const t=F(r.mockTemplate)&&r.mockTemplate.value?B(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function Fe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=I(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ne(r=window){const e=k(r);e&&(e._mocked={})}class De{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=J){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return B({type:s,value:n},this)}else return B(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return I({type:s,value:n},this)}else return I(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function L(r){const{Vue:e=J,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new De({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...nt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&Z(r.window||window,o.value.id,o.value.css||"",!0),c.state=it(e,o.value.state??{},c);const m=ot(e,o.value.computed??{},c),f=at(o.value.methods??{},c),h=ct(e,o.value.inject,c);for(const[v,j]of Object.entries(h||{}))h[v]=e.inject(v,j);const g=Oe(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),lt(e,o.value.watch??[],c),{vtj:c}},emits:rt(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?A(l[0],c,e,a,l):l.map(m=>A(m,c,e,a,l))},...ut(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function rt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function nt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>he[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:E(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function it(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return E(i)?i=t.__parseExpression(i):F(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function ot(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function at(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ct(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=E(a)?t.__parseExpression(a)||i:a??i,p=E(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Oe(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Ie(n);else if(n.ref){const i=e.$apis[n.ref],a=F(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function lt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ut(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const pt=new d.Queue;let W=[],R={};const He=r=>r;async function ie(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>N(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&ee(i,e),await te(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(W.forEach(n=>{delete s.window[n]}),W=[]),(n,i,a=J)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=R[i.id]||await pt.add(i.id,()=>e(i.id));return o&&(o.name=n,R[i.id]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=R[i.url]||await t(i.url);return o&&(o.name=n,R[i.url]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?R[i.library]:null;return o||(i.library&&W.push(i.library),o=R[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await ie(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function dt(){R={}}function A(r,e,t=J,s=He,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=xe(p);if(!i&&(u||l))return null;if(c&&!ht(c,e))return yt(r,e,t,s,n);const j=(y,V=0)=>{const D=y.$components,z=(()=>{if(r.name==="component")return mt(y,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);return d.isString(b)?be(b)||Ce(b)?b:D[b]??a?.app?.component(b)??b:b})(),C=gt(o,r.props??{},y),Ke=vt(t,r.events??{},y);if(r.name==="slot")return _t(t,r,C,y,s);g&&Object.assign(C,y.__parseExpression(g.value)),f&&(C.style=Object.assign(C.style??{},wt(f,y))),S&&Object.assign(C,$t(S,y)),h.forEach(b=>{Object.assign(C,Et(t,b,y))});const Ve=jt(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,ze=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...ze,...C,...Ke},Ve);const ue=a?ft(a,v,y):[];return ue.length&&(G=t.withDirectives(G,ue)),G};return m?Pt(m,j,e):j(e)}function ft(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function xe(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!fe.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function ht(r,e){return!!e.__parseExpression(r.value)}function mt(r,e){return e?E(e)?r.__parseExpression(e):e:"div"}function gt(r,e,t){const s=Q(e,t);return s.ref=t.__ref(r,s.ref),s}function Q(r,e){return E(r)?e.__parseExpression(r):F(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>Q(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=Q(n,e),t},{}):r}function vt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=oe(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function yt(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=xe(o);if(p){if(e.__parseExpression(p.value))return A(n[a],e,t,s,n,!0);continue}if(c)return A(n[a],e,t,s,n,!0)}return null}function oe(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function _t(r,e,t,s,n){const{children:i}=e,a=St(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):E(i)?r.createTextVNode(X(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>A(p,s,r,n,i)):null:null}function St(r,e){const{props:t}=r,s=t?.name||"default";return{name:E(s)?e.__parseExpression(s):s,params:[]}}function wt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function $t(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Et(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const M="0.12.39";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ye=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],fe=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],he={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",me="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(","),ge="component,slot".split(",");function O(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function ve(r){return/\.json$/.test(r)}function Qe(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function Xe(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function ye(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function _e(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},u=[],l={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:g,localeLibrary:S})=>{m?.forEach(v=>{N(v)&&n.push(ye(v,t)),x(v)&&i.push(v)}),h&&(o.push(h),p[h]=O(m||[],e),S&&(c[h]=S)),f&&a.push(f),g&&u.push(g),h&&g&&(l[g]=h)}),{scripts:O(n,e),css:O(i,e),materials:O(a,e),libraryExports:o,materialExports:d.dedupArray(u),materialMapLibrary:l,libraryMap:p,libraryLocaleMap:c}}function Se(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function we(r=[]){const e=r.filter(s=>x(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function $e(r,e){const t=c=>{const u=[];let l=0;for(;l<c.length;){if(/\s/.test(c[l])){l++;continue}if(c.substring(l,l+2)==="/*"){const v=c.indexOf("*/",l+2);if(v!==-1){l=v+2;continue}}if(c[l]==="@"){const v=l;for(;l<c.length&&c[l]!=="{"&&c[l]!==";";)l++;const j=c.substring(v,l).trim(),y=j.includes("@keyframes");if(c[l]===";")u.push({type:"simple-at-rule",content:c.substring(v,l+1)}),l++;else if(c[l]==="{"){const V=l+1;let D=1;for(l++;l<c.length&&D>0;)c[l]==="{"?D++:c[l]==="}"&&D--,l++;const z=c.substring(v,l),C=c.substring(V,l-1);u.push({type:y?"keyframes":"at-rule",rule:j,content:z,inner:C})}continue}const m=l;for(;l<c.length&&c[l]!=="{";)l++;if(l>=c.length)break;const f=c.substring(m,l).trim();if(!f){l++;continue}const h=l+1;let g=1;for(l++;l<c.length&&g>0;)c[l]==="{"?g++:c[l]==="}"&&g--,l++;const S=c.substring(h,l-1);u.push({type:"rule",selector:f,content:S.trim()})}return u},s=c=>{const u=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(u)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(u,l,m)=>{const f=l.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),i=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const l=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(l){const[,m,f=""]=l,h=m.trim();return h?`${h}[${e}]${f}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(l=>i(l)).filter(l=>l.trim()).join(", "),o=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const m=t(u.inner),f=o(m);return`${u.rule} { ${f} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const l=a(u.selector);return l.trim()?`${l} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),p=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
8
+ `),u=t(c),l=o(u);return p(l)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,u=>u).replace(/([^{}@]+)(?=\s*{)/g,u=>{const l=u.trim();return!l||l.startsWith("@")||l.includes(`[${e}]`)||s(l)?u:`${l}[${e}]`})}}function X(r){return d.isString(r)?r:JSON.stringify(r)}function Z(r,e,t,s=!1){const n=r.CSSStyleSheet,i=s?`data-v-${e}`:e,a=s?$e(t,i):t;if(n.prototype.replaceSync){const o=new n;o.id=e,o.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,u=Array.from(c).filter(l=>l.id!==e);p.adoptedStyleSheets=[...u,o]}else{const o=r.document;let p=o.getElementById(e);p?p.innerHTML=a:(p=o.createElement("style"),p.id=e,p.innerHTML=a,o.head.appendChild(p))}}async function Ee(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&Z(window,r,t)}function ee(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function te(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{i=t[e],i?a(i.default||i):o(null)},c.onerror=u=>{o(u)},n.appendChild(c)}})}function je(r){return d.isFunction(r)||d.isFunction(r?.install)}function be(r){return ge.includes(r)}function Ce(r){return me.includes(r)}function k(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function Ze(r,e,t){Object.assign(e.meta,t.meta);const s=r?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function I(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,p)=>`__self${p}`),i=n.join(`
9
+ `)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function B(r,e,t=!1,s=!1){const n=I(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function E(r){return r&&r.type==="JSExpression"}function F(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Pe(r){return E(r)||F(r)}function et(r){return Pe(r)?r.value:JSON.stringify(r)}const tt={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},se=Symbol("access");class re{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},tt,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(se,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await d.delay(150),await t(e,{title:"提示",type:"warning"}).catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Re(){return $.inject(se,null)}function st(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new re({alert:o,...i}):void 0}}function rt(r={}){return new re(r)}function Ae(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?I(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Me(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Te(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Ae(n,t);for(const n of e)s[n.id]=Me(n,t);return s}async function ke(r=[],e=window){const t=k(e);t&&(ne(e),r.forEach(s=>Fe(t,s)))}function Ie(r,e=window){const t=F(r.mockTemplate)&&r.mockTemplate.value?B(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function Fe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=I(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ne(r=window){const e=k(r);e&&(e._mocked={})}class De{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=J){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return B({type:s,value:n},this)}else return B(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return I({type:s,value:n},this)}else return I(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function L(r){const{Vue:e=J,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new De({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...it(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&Z(r.window||window,o.value.id,o.value.css||"",!0),c.state=ot(e,o.value.state??{},c);const m=at(e,o.value.computed??{},c),f=ct(o.value.methods??{},c),h=lt(e,o.value.inject,c);for(const[v,j]of Object.entries(h||{}))h[v]=e.inject(v,j);const g=Oe(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),ut(e,o.value.watch??[],c),{vtj:c}},emits:nt(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?A(l[0],c,e,a,l):l.map(m=>A(m,c,e,a,l))},...pt(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function nt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function it(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>he[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:E(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function ot(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return E(i)?i=t.__parseExpression(i):F(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function at(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function ct(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function lt(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=E(a)?t.__parseExpression(a)||i:a??i,p=E(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Oe(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Ie(n);else if(n.ref){const i=e.$apis[n.ref],a=F(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function ut(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function pt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const He=new d.Queue;let W=[],R={};const xe=r=>r;async function ie(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>N(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&ee(i,e),await te(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(W.forEach(n=>{delete s.window[n]}),W=[]),(n,i,a=J)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=R[i.id]||await He.add(i.id,()=>e(i.id));return o&&(o.name=n,R[i.id]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=R[i.url]||await t(i.url);return o&&(o.name=n,R[i.url]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?R[i.library]:null;return o||(i.library&&W.push(i.library),o=R[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await ie(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function dt(){R={},He.clearAllCache()}function A(r,e,t=J,s=xe,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=Ne(p);if(!i&&(u||l))return null;if(c&&!ht(c,e))return yt(r,e,t,s,n);const j=(y,V=0)=>{const D=y.$components,z=(()=>{if(r.name==="component")return mt(y,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);return d.isString(b)?be(b)||Ce(b)?b:D[b]??a?.app?.component(b)??b:b})(),C=gt(o,r.props??{},y),Ve=vt(t,r.events??{},y);if(r.name==="slot")return _t(t,r,C,y,s);g&&Object.assign(C,y.__parseExpression(g.value)),f&&(C.style=Object.assign(C.style??{},wt(f,y))),S&&Object.assign(C,$t(S,y)),h.forEach(b=>{Object.assign(C,Et(t,b,y))});const ze=jt(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,Ge=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...Ge,...C,...Ve},ze);const ue=a?ft(a,v,y):[];return ue.length&&(G=t.withDirectives(G,ue)),G};return m?Pt(m,j,e):j(e)}function ft(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function Ne(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!fe.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function ht(r,e){return!!e.__parseExpression(r.value)}function mt(r,e){return e?E(e)?r.__parseExpression(e):e:"div"}function gt(r,e,t){const s=Q(e,t);return s.ref=t.__ref(r,s.ref),s}function Q(r,e){return E(r)?e.__parseExpression(r):F(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>Q(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=Q(n,e),t},{}):r}function vt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=oe(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function yt(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=Ne(o);if(p){if(e.__parseExpression(p.value))return A(n[a],e,t,s,n,!0);continue}if(c)return A(n[a],e,t,s,n,!0)}return null}function oe(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function _t(r,e,t,s,n){const{children:i}=e,a=St(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):E(i)?r.createTextVNode(X(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>A(p,s,r,n,i)):null:null}function St(r,e){const{props:t}=r,s=t?.name||"default";return{name:E(s)?e.__parseExpression(s):s,params:[]}}function wt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function $t(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Et(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
10
10
  ${e.value.value} = v;
11
- }`:"(v) => {}"},n=t.__parseFunction(s),i=oe(E(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=E(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function jt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(E(e))return{default:()=>X(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=bt(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>A(f,t.__clone(m),r,s,c))},o),{})}return null}function bt(r){const e={};for(const t of r){const s=Ct(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params)):e[n]={nodes:[t],params:s.params}}return e}function Ct(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Pt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const pe=$.defineComponent({name:"VtjPageContainer",async setup(){const r=ce(),e=de.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=$.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?$.h(r,{...e,key:t}):$.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Rt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}}),ae=Symbol("Provider");var Ne=(r=>(r.Production="production",r.Development="development",r))(Ne||{});class Ue extends P.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Te(s,n,this.adapter),ne(i),ke(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=_e(t,a,o==="development");for(const f of p){const h=s[f],g=e[f];if(g)n[f]=g;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const v of S)x(v)&&await Ee(f,d.url.append(v,{v:M})),N(v)&&await d.loadScript(d.url.append(v,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const g=e[m[h]],S=P.BUILT_IN_COMPONENTS[h];if(S)g&&S.forEach(v=>{i[v]=g[v]});else{const v=f[h]?(await f[h]()).default:e[h];v&&g&&(v.components||[]).forEach(j=>{i[j.name]=Se(j,g)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:pe},l={path:c,name:H,component:t?.homepage?pe:n.startupComponent||Rt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&je(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(ae,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return L({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await ie(e,window))}}function At(r){const e=new Ue(r);return{provider:e,onReady:s=>e.ready(s)}}function ce(r={}){const e=$.inject(ae,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function Mt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=we(n);if(i.length&&ee(i),a.length)return await te(a,t).catch(()=>{})}const Be={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Tt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:Be}),kt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Be,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function It(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class K{constructor(e=d.request){this.req=e,this.api=Tt(e),this.uploader=kt(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>ve(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Ft extends K{init(e){const t=new P.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new P.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Le extends K{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new P.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new P.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let U=null;function Dt(){return U||(U=new Le,U)}class Ot extends K{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:d.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}function qe(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?qe(r,e,o):void 0}})}function Je(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Je(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ht(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ce(),i=de.useRoute(),a=Re(),o=$.ref(!1),p=$.ref(!1),c=n.project;$.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const g=n.getPage(f.id);o.value=!g?.mask,p.value=!!g?.pure}else if(m===H){const g=n.getHomepage();o.value=!g?.mask,p.value=!!g?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=qe(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:Je(u,a),pure:p}}exports.ACCESS_KEY=se;exports.Access=re;exports.BUILD_IN_TAGS=ge;exports.BUILT_IN_DIRECTIVES=fe;exports.BaseService=K;exports.CONTEXT_HOST=Y;exports.Context=De;exports.ContextMode=_;exports.DATA_TYPES=he;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=me;exports.JSCodeToString=Ze;exports.LIFE_CYCLES_LIST=We;exports.LocalService=Ot;exports.MemoryService=Le;exports.NodeEnv=Ne;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ue;exports.StorageService=Ft;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=dt;exports.compileScopedCSS=$e;exports.createAccess=st;exports.createAdapter=tt;exports.createAssetScripts=Ye;exports.createAssetsCss=Qe;exports.createDataSources=Oe;exports.createLoader=q;exports.createMemoryService=Dt;exports.createMetaApi=Me;exports.createMock=Ie;exports.createProvider=At;exports.createRenderer=L;exports.createSchemaApi=Ae;exports.createSchemaApis=Te;exports.createServiceRequest=It;exports.defaultLoader=He;exports.fillBasePath=O;exports.getMock=k;exports.getModifiers=oe;exports.getPlugin=ie;exports.getRawComponent=Se;exports.isBuiltInTag=be;exports.isCSSUrl=x;exports.isJSCode=Pe;exports.isJSExpression=E;exports.isJSFunction=F;exports.isJSON=ve;exports.isJSUrl=N;exports.isNativeTag=Ce;exports.isVuePlugin=je;exports.loadCss=Ee;exports.loadCssUrl=ee;exports.loadEnhance=Mt;exports.loadScriptUrl=te;exports.mockApi=Fe;exports.mockApis=ke;exports.mockCleanup=ne;exports.nodeRender=A;exports.parseDeps=_e;exports.parseExpression=I;exports.parseFunction=B;exports.parseUrls=we;exports.providerKey=ae;exports.removeProdFlag=ye;exports.setupPageSetting=Xe;exports.toString=X;exports.useAccess=Re;exports.useMask=Ht;exports.useProvider=ce;
11
+ }`:"(v) => {}"},n=t.__parseFunction(s),i=oe(E(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=E(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function jt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(E(e))return{default:()=>X(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=bt(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>A(f,t.__clone(m),r,s,c))},o),{})}return null}function bt(r){const e={};for(const t of r){const s=Ct(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params)):e[n]={nodes:[t],params:s.params}}return e}function Ct(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Pt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const pe=$.defineComponent({name:"VtjPageContainer",async setup(){const r=ce(),e=de.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=$.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?$.h(r,{...e,key:t}):$.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Rt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}}),ae=Symbol("Provider");var Ue=(r=>(r.Production="production",r.Development="development",r))(Ue||{});class Be extends P.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Te(s,n,this.adapter),ne(i),ke(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=_e(t,a,o==="development");for(const f of p){const h=s[f],g=e[f];if(g)n[f]=g;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const v of S)x(v)&&await Ee(f,d.url.append(v,{v:M})),N(v)&&await d.loadScript(d.url.append(v,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const g=e[m[h]],S=P.BUILT_IN_COMPONENTS[h];if(S)g&&S.forEach(v=>{i[v]=g[v]});else{const v=f[h]?(await f[h]()).default:e[h];v&&g&&(v.components||[]).forEach(j=>{i[j.name]=Se(j,g)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:pe},l={path:c,name:H,component:t?.homepage?pe:n.startupComponent||Rt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&je(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(ae,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return L({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await ie(e,window))}}function At(r){const e=new Be(r);return{provider:e,onReady:s=>e.ready(s)}}function ce(r={}){const e=$.inject(ae,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function Mt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=we(n);if(i.length&&ee(i),a.length)return await te(a,t).catch(()=>{})}const Le={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Tt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:Le}),kt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Le,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function It(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class K{constructor(e=d.request){this.req=e,this.api=Tt(e),this.uploader=kt(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>ve(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Ft extends K{init(e){const t=new P.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new P.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class qe extends K{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new P.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new P.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let U=null;function Dt(){return U||(U=new qe,U)}class Ot extends K{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:d.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}function Je(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?Je(r,e,o):void 0}})}function Ke(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Ke(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ht(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ce(),i=de.useRoute(),a=Re(),o=$.ref(!1),p=$.ref(!1),c=n.project;$.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const g=n.getPage(f.id);o.value=!g?.mask,p.value=!!g?.pure}else if(m===H){const g=n.getHomepage();o.value=!g?.mask,p.value=!!g?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=Je(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:Ke(u,a),pure:p}}exports.ACCESS_KEY=se;exports.Access=re;exports.BUILD_IN_TAGS=ge;exports.BUILT_IN_DIRECTIVES=fe;exports.BaseService=K;exports.CONTEXT_HOST=Y;exports.Context=De;exports.ContextMode=_;exports.DATA_TYPES=he;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=me;exports.JSCodeToString=et;exports.LIFE_CYCLES_LIST=Ye;exports.LocalService=Ot;exports.MemoryService=qe;exports.NodeEnv=Ue;exports.PAGE_ROUTE_NAME=T;exports.Provider=Be;exports.StorageService=Ft;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=dt;exports.compileScopedCSS=$e;exports.createAccess=rt;exports.createAdapter=st;exports.createAssetScripts=Qe;exports.createAssetsCss=Xe;exports.createDataSources=Oe;exports.createLoader=q;exports.createMemoryService=Dt;exports.createMetaApi=Me;exports.createMock=Ie;exports.createProvider=At;exports.createRenderer=L;exports.createSchemaApi=Ae;exports.createSchemaApis=Te;exports.createServiceRequest=It;exports.defaultLoader=xe;exports.fillBasePath=O;exports.getMock=k;exports.getModifiers=oe;exports.getPlugin=ie;exports.getRawComponent=Se;exports.isBuiltInTag=be;exports.isCSSUrl=x;exports.isJSCode=Pe;exports.isJSExpression=E;exports.isJSFunction=F;exports.isJSON=ve;exports.isJSUrl=N;exports.isNativeTag=Ce;exports.isVuePlugin=je;exports.loadCss=Ee;exports.loadCssUrl=ee;exports.loadEnhance=Mt;exports.loadScriptUrl=te;exports.mockApi=Fe;exports.mockApis=ke;exports.mockCleanup=ne;exports.nodeRender=A;exports.parseDeps=_e;exports.parseExpression=I;exports.parseFunction=B;exports.parseUrls=we;exports.providerKey=ae;exports.removeProdFlag=ye;exports.setupPageSetting=Ze;exports.toString=X;exports.useAccess=Re;exports.useMask=Ht;exports.useProvider=ce;
package/dist/index.mjs CHANGED
@@ -1,16 +1,16 @@
1
- import { Base as Be, BUILT_IN_COMPONENTS as Ue, ProjectModel as B, HistoryModel as ge } from "@vtj/core";
2
- import { isUrl as Le, url as C, dedupArray as qe, isString as P, isFunction as U, logger as k, storage as W, cookie as G, toArray as le, unRSA as ue, delay as ne, createRequest as ve, jsonp as ye, merge as Je, pathToRegexp as Ke, pathToRegexpMatch as ze, formDataToJson as Ve, Queue as We, cloneDeep as pe, camelCase as b, upperFirst as Ge, pick as Qe, request as Y, loadScript as fe, Storage as Ye, mapToObject as ie } from "@vtj/utils";
1
+ import { Base as Ue, BUILT_IN_COMPONENTS as Le, ProjectModel as B, HistoryModel as ge } from "@vtj/core";
2
+ import { isUrl as qe, url as C, dedupArray as Je, isString as P, isFunction as U, logger as k, storage as W, cookie as G, toArray as le, unRSA as ue, delay as ne, createRequest as ve, jsonp as ye, merge as Ke, pathToRegexp as ze, pathToRegexpMatch as Ve, formDataToJson as We, Queue as Ge, cloneDeep as pe, camelCase as b, upperFirst as Qe, pick as Ye, request as Y, loadScript as fe, Storage as Xe, mapToObject as ie } from "@vtj/utils";
3
3
  import * as L from "vue";
4
- import { inject as _e, defineComponent as we, h as X, ref as Z, defineAsyncComponent as de, watchEffect as Xe } from "vue";
4
+ import { inject as _e, defineComponent as we, h as X, ref as Z, defineAsyncComponent as de, watchEffect as Ze } from "vue";
5
5
  import { useRoute as Se } from "vue-router";
6
6
  /**!
7
7
  * Copyright (c) 2025, VTJ.PRO All rights reserved.
8
8
  * @name @vtj/renderer
9
9
  * @author CHC chenhuachun1549@dingtalk.com
10
- * @version 0.12.38
10
+ * @version 0.12.39
11
11
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
12
12
  */
13
- const I = "0.12.38";
13
+ const I = "0.12.39";
14
14
  var w = /* @__PURE__ */ ((r) => (r.Runtime = "Runtime", r.Design = "Design", r.Raw = "Raw", r.VNode = "VNode", r))(w || {});
15
15
  const he = [
16
16
  "$el",
@@ -38,7 +38,7 @@ const he = [
38
38
  "renderTriggered",
39
39
  "activated",
40
40
  "deactivated"
41
- ], Ze = [
41
+ ], et = [
42
42
  "vIf",
43
43
  "vElseIf",
44
44
  "vElse",
@@ -47,7 +47,7 @@ const he = [
47
47
  "vFor",
48
48
  "vBind",
49
49
  "vHtml"
50
- ], et = {
50
+ ], tt = {
51
51
  String,
52
52
  Number,
53
53
  Boolean,
@@ -55,11 +55,11 @@ const he = [
55
55
  Object,
56
56
  Function,
57
57
  Date
58
- }, M = "VtjPage", N = "VtjHomepage", tt = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(
58
+ }, M = "VtjPage", N = "VtjHomepage", st = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(
59
59
  ","
60
- ), st = "component,slot".split(",");
60
+ ), rt = "component,slot".split(",");
61
61
  function O(r, e) {
62
- return r.map((t) => Le(t) || t.startsWith("/") ? t : `${e}${t}`);
62
+ return r.map((t) => qe(t) || t.startsWith("/") ? t : `${e}${t}`);
63
63
  }
64
64
  function q(r) {
65
65
  return /\.css$/.test(r);
@@ -67,7 +67,7 @@ function q(r) {
67
67
  function J(r) {
68
68
  return /\.js$/.test(r);
69
69
  }
70
- function rt(r) {
70
+ function nt(r) {
71
71
  return /\.json$/.test(r);
72
72
  }
73
73
  function os(r) {
@@ -80,15 +80,15 @@ function as(r = []) {
80
80
  (e) => `<link rel="stylesheet" href="${C.append(e, { v: I })}" />`
81
81
  ).join("");
82
82
  }
83
- function nt(r, e = !1) {
83
+ function it(r, e = !1) {
84
84
  return e && r.endsWith(".prod.js") ? r.replace(".prod.js", ".js") : r;
85
85
  }
86
- function it(r, e, t = !1) {
86
+ function ot(r, e, t = !1) {
87
87
  const s = r.filter((h) => !!h.enabled), n = [], i = [], a = [], o = [], p = {}, c = {}, u = [], l = {};
88
88
  return s.forEach(
89
89
  ({ urls: h, assetsUrl: f, library: d, assetsLibrary: m, localeLibrary: y }) => {
90
90
  h?.forEach((g) => {
91
- J(g) && n.push(nt(g, t)), q(g) && i.push(g);
91
+ J(g) && n.push(it(g, t)), q(g) && i.push(g);
92
92
  }), d && (o.push(d), p[d] = O(h || [], e), y && (c[d] = y)), f && a.push(f), m && u.push(m), d && m && (l[m] = d);
93
93
  }
94
94
  ), {
@@ -96,24 +96,24 @@ function it(r, e, t = !1) {
96
96
  css: O(i, e),
97
97
  materials: O(a, e),
98
98
  libraryExports: o,
99
- materialExports: qe(u),
99
+ materialExports: Je(u),
100
100
  materialMapLibrary: l,
101
101
  libraryMap: p,
102
102
  libraryLocaleMap: c
103
103
  };
104
104
  }
105
- function ot(r, e) {
105
+ function at(r, e) {
106
106
  const { name: t, parent: s, alias: n } = r;
107
107
  return s ? e[s]?.[n || t] : e[n || t];
108
108
  }
109
- function at(r = []) {
109
+ function ct(r = []) {
110
110
  const e = r.filter((s) => q(s)), t = r.filter((s) => J(s));
111
111
  return {
112
112
  css: e,
113
113
  js: t
114
114
  };
115
115
  }
116
- function ct(r, e) {
116
+ function lt(r, e) {
117
117
  const t = (c) => {
118
118
  const u = [];
119
119
  let l = 0;
@@ -141,9 +141,9 @@ function ct(r, e) {
141
141
  }), l++;
142
142
  else if (c[l] === "{") {
143
143
  const K = l + 1;
144
- let A = 1;
145
- for (l++; l < c.length && A > 0; )
146
- c[l] === "{" ? A++ : c[l] === "}" && A--, l++;
144
+ let F = 1;
145
+ for (l++; l < c.length && F > 0; )
146
+ c[l] === "{" ? F++ : c[l] === "}" && F--, l++;
147
147
  const z = c.substring(g, l), E = c.substring(K, l - 1);
148
148
  u.push({
149
149
  type: v ? "keyframes" : "at-rule",
@@ -231,7 +231,7 @@ function $e(r) {
231
231
  return P(r) ? r : JSON.stringify(r);
232
232
  }
233
233
  function je(r, e, t, s = !1) {
234
- const n = r.CSSStyleSheet, i = s ? `data-v-${e}` : e, a = s ? ct(t, i) : t;
234
+ const n = r.CSSStyleSheet, i = s ? `data-v-${e}` : e, a = s ? lt(t, i) : t;
235
235
  if (n.prototype.replaceSync) {
236
236
  const o = new n();
237
237
  o.id = e, o.replaceSync(a);
@@ -245,7 +245,7 @@ function je(r, e, t, s = !1) {
245
245
  p ? p.innerHTML = a : (p = o.createElement("style"), p.id = e, p.innerHTML = a, o.head.appendChild(p));
246
246
  }
247
247
  }
248
- async function lt(r, e) {
248
+ async function ut(r, e) {
249
249
  const t = await window.fetch(e).then((s) => s.text()).catch(() => "");
250
250
  t && je(window, r, t);
251
251
  }
@@ -271,14 +271,14 @@ async function be(r, e, t = window) {
271
271
  }
272
272
  });
273
273
  }
274
- function ut(r) {
275
- return U(r) || U(r?.install);
276
- }
277
274
  function pt(r) {
278
- return st.includes(r);
275
+ return U(r) || U(r?.install);
279
276
  }
280
277
  function ft(r) {
281
- return tt.includes(r);
278
+ return rt.includes(r);
279
+ }
280
+ function dt(r) {
281
+ return st.includes(r);
282
282
  }
283
283
  function D(r = window) {
284
284
  const e = window?.Mock;
@@ -323,13 +323,13 @@ function S(r) {
323
323
  function H(r) {
324
324
  return typeof r == "object" && r && r.type === "JSFunction";
325
325
  }
326
- function dt(r) {
326
+ function ht(r) {
327
327
  return S(r) || H(r);
328
328
  }
329
329
  function ls(r) {
330
- return dt(r) ? r.value : JSON.stringify(r);
330
+ return ht(r) ? r.value : JSON.stringify(r);
331
331
  }
332
- const ht = {
332
+ const mt = {
333
333
  session: !1,
334
334
  authKey: "Authorization",
335
335
  storageKey: "ACCESS_STORAGE",
@@ -349,7 +349,7 @@ class Re {
349
349
  mode = w.Raw;
350
350
  interceptResponse = !0;
351
351
  constructor(e) {
352
- this.options = Object.assign({}, ht, e), this.loadData();
352
+ this.options = Object.assign({}, mt, e), this.loadData();
353
353
  }
354
354
  enableIntercept() {
355
355
  this.interceptResponse = !0;
@@ -496,7 +496,7 @@ class Re {
496
496
  );
497
497
  }
498
498
  }
499
- function mt() {
499
+ function gt() {
500
500
  return _e(Pe, null);
501
501
  }
502
502
  function us(r = {}) {
@@ -542,7 +542,7 @@ function us(r = {}) {
542
542
  function ps(r = {}) {
543
543
  return new Re(r);
544
544
  }
545
- function gt(r, e) {
545
+ function vt(r, e) {
546
546
  const { jsonp: t, request: s } = e;
547
547
  if (r.method === "jsonp")
548
548
  return (n = {}) => t(r.url, {
@@ -558,10 +558,10 @@ function gt(r, e) {
558
558
  headers: n
559
559
  }
560
560
  };
561
- return (a, o) => (delete i.data, s.send(Je(i, o || {}, { data: a })));
561
+ return (a, o) => (delete i.data, s.send(Ke(i, o || {}, { data: a })));
562
562
  }
563
563
  }
564
- function vt(r, e) {
564
+ function yt(r, e) {
565
565
  const { metaQuery: t } = e;
566
566
  if (!t) return;
567
567
  const { code: s, queryCode: n } = r;
@@ -573,19 +573,19 @@ function vt(r, e) {
573
573
  return t(s, n, i, a);
574
574
  };
575
575
  }
576
- function yt(r = [], e = [], t) {
576
+ function _t(r = [], e = [], t) {
577
577
  const s = {};
578
578
  for (const n of r)
579
- s[n.id] = gt(n, t);
580
- for (const n of e)
581
579
  s[n.id] = vt(n, t);
580
+ for (const n of e)
581
+ s[n.id] = yt(n, t);
582
582
  return s;
583
583
  }
584
- async function _t(r = [], e = window) {
584
+ async function wt(r = [], e = window) {
585
585
  const t = D(e);
586
- t && (Ce(e), r.forEach((s) => St(t, s)));
586
+ t && (Ce(e), r.forEach((s) => $t(t, s)));
587
587
  }
588
- function wt(r, e = window) {
588
+ function St(r, e = window) {
589
589
  const t = H(r.mockTemplate) && r.mockTemplate.value ? ee(r.mockTemplate, {}, !0) : void 0, s = D(e);
590
590
  return async (...n) => {
591
591
  let i = {};
@@ -598,13 +598,13 @@ function wt(r, e = window) {
598
598
  return s?.mock(i);
599
599
  };
600
600
  }
601
- function St(r, e) {
601
+ function $t(r, e) {
602
602
  if (!e.mock) return;
603
603
  const { url: t, mockTemplate: s } = e;
604
604
  if (t && s) {
605
- const n = Ke(`${t}(.*)`), i = ze(t, { decode: decodeURIComponent }), a = T(s, {}, !0);
605
+ const n = ze(`${t}(.*)`), i = Ve(t, { decode: decodeURIComponent }), a = T(s, {}, !0);
606
606
  r.mock(n, (o) => {
607
- const p = C.parse(o.url) || {}, c = o.body instanceof FormData ? Ve(o.body) : o.body, u = i(o.url)?.params;
607
+ const p = C.parse(o.url) || {}, c = o.body instanceof FormData ? We(o.body) : o.body, u = i(o.url)?.params;
608
608
  return Object.assign(o, { data: c, params: p, query: u }), r.mock(a(o));
609
609
  });
610
610
  }
@@ -613,7 +613,7 @@ function Ce(r = window) {
613
613
  const e = D(r);
614
614
  e && (e._mocked = {});
615
615
  }
616
- class $t {
616
+ class jt {
617
617
  __id = null;
618
618
  __mode;
619
619
  __instance = null;
@@ -724,7 +724,7 @@ function te(r) {
724
724
  $components: s,
725
725
  $libs: n,
726
726
  $apis: i
727
- }, c = new $t({
727
+ }, c = new jt({
728
728
  mode: t,
729
729
  dsl: o.value,
730
730
  attrs: p
@@ -732,7 +732,7 @@ function te(r) {
732
732
  name: o.value.name,
733
733
  __scopeId: o.value.id ? `data-v-${o.value.id}` : void 0,
734
734
  props: {
735
- ...Et(o.value.props ?? [], c)
735
+ ...bt(o.value.props ?? [], c)
736
736
  },
737
737
  setup(l) {
738
738
  c.$props = l, c.props = l, o.value.id && je(
@@ -740,11 +740,11 @@ function te(r) {
740
740
  o.value.id,
741
741
  o.value.css || "",
742
742
  !0
743
- ), c.state = bt(e, o.value.state ?? {}, c);
744
- const h = Pt(e, o.value.computed ?? {}, c), f = Rt(o.value.methods ?? {}, c), d = Ct(e, o.value.inject, c);
743
+ ), c.state = Pt(e, o.value.state ?? {}, c);
744
+ const h = Rt(e, o.value.computed ?? {}, c), f = Ct(o.value.methods ?? {}, c), d = kt(e, o.value.inject, c);
745
745
  for (const [g, $] of Object.entries(d || {}))
746
746
  d[g] = e.inject(g, $);
747
- const m = kt(
747
+ const m = At(
748
748
  o.value.dataSources || {},
749
749
  c
750
750
  ), y = {
@@ -757,27 +757,27 @@ function te(r) {
757
757
  vtj: c
758
758
  };
759
759
  },
760
- emits: jt(o.value.emits),
760
+ emits: Et(o.value.emits),
761
761
  expose: ["vtj"],
762
762
  render() {
763
763
  if (!o.value.nodes) return null;
764
764
  const l = o.value.nodes || [];
765
- return l.length === 1 ? F(l[0], c, e, a, l) : l.map(
766
- (h) => F(h, c, e, a, l)
765
+ return l.length === 1 ? A(l[0], c, e, a, l) : l.map(
766
+ (h) => A(h, c, e, a, l)
767
767
  );
768
768
  },
769
- ...At(o.value.lifeCycles ?? {}, c)
769
+ ...It(o.value.lifeCycles ?? {}, c)
770
770
  });
771
771
  return {
772
772
  renderer: e.markRaw(u),
773
773
  context: c
774
774
  };
775
775
  }
776
- function jt(r = []) {
776
+ function Et(r = []) {
777
777
  return r.map((e) => P(e) ? e : e.name);
778
778
  }
779
- function Et(r = [], e) {
780
- const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => et[i]) : void 0;
779
+ function bt(r = [], e) {
780
+ const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => tt[i]) : void 0;
781
781
  return r.map((s) => P(s) ? {
782
782
  name: s
783
783
  } : {
@@ -794,7 +794,7 @@ function Et(r = [], e) {
794
794
  {}
795
795
  );
796
796
  }
797
- function bt(r, e, t) {
797
+ function Pt(r, e, t) {
798
798
  return r.reactive(
799
799
  Object.keys(e || {}).reduce(
800
800
  (s, n) => {
@@ -805,19 +805,19 @@ function bt(r, e, t) {
805
805
  )
806
806
  );
807
807
  }
808
- function Pt(r, e, t) {
808
+ function Rt(r, e, t) {
809
809
  return Object.entries(e ?? {}).reduce(
810
810
  (s, [n, i]) => (s[n] = r.computed(t.__parseFunction(i)), s),
811
811
  {}
812
812
  );
813
813
  }
814
- function Rt(r, e) {
814
+ function Ct(r, e) {
815
815
  return Object.entries(r ?? {}).reduce(
816
816
  (t, [s, n]) => (t[s] = e.__parseFunction(n), t),
817
817
  {}
818
818
  );
819
819
  }
820
- function Ct(r, e = [], t) {
820
+ function kt(r, e = [], t) {
821
821
  return e.reduce(
822
822
  (s, n) => {
823
823
  const { name: i, from: a } = n || {};
@@ -828,12 +828,12 @@ function Ct(r, e = [], t) {
828
828
  {}
829
829
  );
830
830
  }
831
- function kt(r, e) {
831
+ function At(r, e) {
832
832
  return Object.keys(r).reduce(
833
833
  (t, s) => {
834
834
  const n = r[s];
835
835
  if (n.type === "mock")
836
- t[s] = wt(n);
836
+ t[s] = St(n);
837
837
  else if (n.ref) {
838
838
  const i = e.$apis[n.ref], a = H(n.transform) ? n.transform.value ? e.__parseFunction(n.transform) : void 0 : n.transform;
839
839
  t[s] = async (...o) => {
@@ -858,7 +858,7 @@ function Ft(r, e = [], t) {
858
858
  );
859
859
  });
860
860
  }
861
- function At(r, e) {
861
+ function It(r, e) {
862
862
  return Object.entries(r ?? {}).reduce(
863
863
  (t, [s, n]) => {
864
864
  const i = e.__parseFunction(n);
@@ -869,10 +869,10 @@ function At(r, e) {
869
869
  {}
870
870
  );
871
871
  }
872
- const It = new We();
872
+ const ke = new Ge();
873
873
  let Q = [], R = {};
874
874
  const Mt = (r) => r;
875
- async function ke(r, e = window) {
875
+ async function Ae(r, e = window) {
876
876
  const { urls: t = [], library: s } = r, n = t.filter((o) => J(o));
877
877
  if (n.length === 0 || !s) return null;
878
878
  const i = t.filter((o) => q(o));
@@ -888,7 +888,7 @@ function se(r) {
888
888
  if (!i || typeof i == "string") return n;
889
889
  if (i.type === "Schema" && i.id)
890
890
  return a.defineAsyncComponent(async () => {
891
- const o = R[i.id] || await It.add(
891
+ const o = R[i.id] || await ke.add(
892
892
  i.id,
893
893
  () => e(i.id)
894
894
  );
@@ -915,7 +915,7 @@ function se(r) {
915
915
  let o = i.library ? R[i.library] : null;
916
916
  return o || (i.library && Q.push(i.library), o = R[i.library || Symbol()] = a.defineAsyncComponent(
917
917
  async () => {
918
- const p = await ke(i, s.window);
918
+ const p = await Ae(i, s.window);
919
919
  return p || (console.warn("getPlugin result is null", i), null);
920
920
  }
921
921
  ), o);
@@ -924,9 +924,9 @@ function se(r) {
924
924
  };
925
925
  }
926
926
  function fs() {
927
- R = {};
927
+ R = {}, ke.clearAllCache();
928
928
  }
929
- function F(r, e, t = L, s = Mt, n = [], i = !1) {
929
+ function A(r, e, t = L, s = Mt, n = [], i = !1) {
930
930
  if (!r || !r.name || r.invisible) return null;
931
931
  const a = t.getCurrentInstance()?.appContext, { id: o = null, directives: p = [] } = r, { vIf: c, vElseIf: u, vElse: l, vFor: h, vShow: f, vModels: d, vBind: m, vHtml: y, others: g } = Fe(p);
932
932
  if (!i && (u || l))
@@ -934,13 +934,13 @@ function F(r, e, t = L, s = Mt, n = [], i = !1) {
934
934
  if (c && !Tt(c, e))
935
935
  return Nt(r, e, t, s, n);
936
936
  const $ = (v, K = 0) => {
937
- const A = v.$components, z = (() => {
937
+ const F = v.$components, z = (() => {
938
938
  if (r.name === "component")
939
939
  return Ht(v, r.props?.is);
940
940
  if (r.name === "slot") return r.name;
941
941
  const j = s(r.name, r.from, t);
942
- return P(j) ? pt(j) || ft(j) ? j : A[j] ?? a?.app?.component(j) ?? j : j;
943
- })(), E = Ot(o, r.props ?? {}, v), Oe = xt(t, r.events ?? {}, v);
942
+ return P(j) ? ft(j) || dt(j) ? j : F[j] ?? a?.app?.component(j) ?? j : j;
943
+ })(), E = Ot(o, r.props ?? {}, v), xe = xt(t, r.events ?? {}, v);
944
944
  if (r.name === "slot")
945
945
  return Bt(t, r, E, v, s);
946
946
  m && Object.assign(E, v.__parseExpression(m.value)), f && (E.style = Object.assign(
@@ -949,17 +949,17 @@ function F(r, e, t = L, s = Mt, n = [], i = !1) {
949
949
  )), y && Object.assign(E, qt(y, v)), d.forEach((j) => {
950
950
  Object.assign(E, Jt(t, j, v));
951
951
  });
952
- const xe = Kt(
952
+ const Ne = Kt(
953
953
  t,
954
954
  r.children ?? [],
955
955
  v,
956
956
  s,
957
957
  r
958
- ), ae = v?.__id ? `data-v-${v.__id}` : void 0, Ne = ae ? { [ae]: "" } : {};
958
+ ), ae = v?.__id ? `data-v-${v.__id}` : void 0, Be = ae ? { [ae]: "" } : {};
959
959
  let V = t.createVNode(
960
960
  z,
961
- { key: `${o}_${K}`, ...Ne, ...E, ...Oe },
962
- xe
961
+ { key: `${o}_${K}`, ...Be, ...E, ...xe },
962
+ Ne
963
963
  );
964
964
  const ce = a ? Dt(a, g, v) : [];
965
965
  return ce.length && (V = t.withDirectives(V, ce)), V;
@@ -981,7 +981,7 @@ function Fe(r = []) {
981
981
  ), s = r.find((u) => b(u.name) === "vElse"), n = r.find((u) => b(u.name) === "vFor"), i = r.find((u) => b(u.name) === "vShow"), a = r.find((u) => b(u.name) === "vBind"), o = r.find((u) => b(u.name) === "vHtml"), p = r.filter(
982
982
  (u) => b(u.name) === "vModel"
983
983
  ), c = r.filter(
984
- (u) => !Ze.includes(b(u.name))
984
+ (u) => !et.includes(b(u.name))
985
985
  );
986
986
  return {
987
987
  vIf: e,
@@ -1022,7 +1022,7 @@ function xt(r, e, t) {
1022
1022
  };
1023
1023
  return Object.keys(e || {}).reduce(
1024
1024
  (i, a) => {
1025
- const o = e[a], p = Ae(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" + Ge(a) + (c && n[c] || ""), l = t.__parseFunction(o.handler);
1025
+ const o = e[a], p = Ie(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" + Qe(a) + (c && n[c] || ""), l = t.__parseFunction(o.handler);
1026
1026
  return l && (i[u] = r.withModifiers(l, p)), i;
1027
1027
  },
1028
1028
  {}
@@ -1034,15 +1034,15 @@ function Nt(r, e, t, s, n = []) {
1034
1034
  const { directives: o = [] } = n[a], { vElseIf: p, vElse: c } = Fe(o);
1035
1035
  if (p) {
1036
1036
  if (e.__parseExpression(p.value))
1037
- return F(n[a], e, t, s, n, !0);
1037
+ return A(n[a], e, t, s, n, !0);
1038
1038
  continue;
1039
1039
  }
1040
1040
  if (c)
1041
- return F(n[a], e, t, s, n, !0);
1041
+ return A(n[a], e, t, s, n, !0);
1042
1042
  }
1043
1043
  return null;
1044
1044
  }
1045
- function Ae(r = {}, e = !1) {
1045
+ function Ie(r = {}, e = !1) {
1046
1046
  const t = Object.keys(r);
1047
1047
  return e ? t.map((s) => "." + s) : t;
1048
1048
  }
@@ -1051,7 +1051,7 @@ function Bt(r, e, t, s, n) {
1051
1051
  return o ? o(t) : i ? P(i) ? r.createTextVNode(i) : S(i) ? r.createTextVNode(
1052
1052
  $e(s.__parseExpression(i))
1053
1053
  ) : Array.isArray(i) ? i.map(
1054
- (p) => F(p, s, r, n, i)
1054
+ (p) => A(p, s, r, n, i)
1055
1055
  ) : null : null;
1056
1056
  }
1057
1057
  function Ut(r, e) {
@@ -1077,7 +1077,7 @@ function Jt(r, e, t) {
1077
1077
  value: e.value?.value ? `(v) => {
1078
1078
  ${e.value.value} = v;
1079
1079
  }` : "(v) => {}"
1080
- }, n = t.__parseFunction(s), i = Ae(
1080
+ }, n = t.__parseFunction(s), i = Ie(
1081
1081
  S(e.modifiers) ? t.__parseExpression(e.modifiers) : e.modifiers
1082
1082
  ), a = S(e.arg) ? t.__parseExpression(e.arg) : e.arg || "modelValue";
1083
1083
  return {
@@ -1098,9 +1098,9 @@ function Kt(r, e, t, s, n) {
1098
1098
  [`scope_${n.id}`]: o
1099
1099
  } : {};
1100
1100
  return Object.entries(i).reduce((o, [p, { nodes: c, params: u }]) => (o[p] = (l) => {
1101
- const h = u.length ? Qe(l ?? {}, u) : a(l);
1101
+ const h = u.length ? Ye(l ?? {}, u) : a(l);
1102
1102
  return c.map(
1103
- (f) => F(f, t.__clone(h), r, s, c)
1103
+ (f) => A(f, t.__clone(h), r, s, c)
1104
1104
  );
1105
1105
  }, o), {});
1106
1106
  }
@@ -1128,7 +1128,7 @@ function Wt(r, e, t) {
1128
1128
  const me = we({
1129
1129
  name: "VtjPageContainer",
1130
1130
  async setup() {
1131
- const r = Me(), e = Se(), t = e.params.id, s = t ? r.getPage(t) : r.getHomepage(), n = s ? await r.getRenderComponent(s.id) : null, i = Z(Symbol());
1131
+ const r = De(), e = Se(), t = e.params.id, s = t ? r.getPage(t) : r.getHomepage(), n = s ? await r.getRenderComponent(s.id) : null, i = Z(Symbol());
1132
1132
  if (s) {
1133
1133
  Object.assign(e.meta, s.meta || {}, { cache: s.cache });
1134
1134
  const { useTitle: a } = r?.adapter;
@@ -1156,9 +1156,9 @@ const me = we({
1156
1156
  render() {
1157
1157
  return X("div", "page not found!");
1158
1158
  }
1159
- }), Ie = Symbol("Provider");
1159
+ }), Me = Symbol("Provider");
1160
1160
  var Qt = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(Qt || {});
1161
- class Yt extends Be {
1161
+ class Yt extends Ue {
1162
1162
  // DSL缓存
1163
1163
  /**
1164
1164
  * 创建Provider实例
@@ -1239,7 +1239,7 @@ class Yt extends Be {
1239
1239
  if (this.project = t ? await t() : await this.service.init(e), !this.project)
1240
1240
  throw new Error("project is null");
1241
1241
  const { apis: s = [], meta: n = [] } = this.project, i = window;
1242
- i && (i.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = yt(s, n, this.adapter), Ce(i), _t(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1242
+ i && (i.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = _t(s, n, this.adapter), Ce(i), wt(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
1243
1243
  }
1244
1244
  initMock(e) {
1245
1245
  const t = D(e);
@@ -1259,7 +1259,7 @@ class Yt extends Be {
1259
1259
  materials: u,
1260
1260
  materialExports: l,
1261
1261
  materialMapLibrary: h
1262
- } = it(
1262
+ } = ot(
1263
1263
  t,
1264
1264
  a,
1265
1265
  o === "development"
@@ -1274,7 +1274,7 @@ class Yt extends Be {
1274
1274
  else {
1275
1275
  const y = c[f] || [];
1276
1276
  for (const g of y)
1277
- q(g) && await lt(f, C.append(g, { v: I })), J(g) && await fe(C.append(g, { v: I }));
1277
+ q(g) && await ut(f, C.append(g, { v: I })), J(g) && await fe(C.append(g, { v: I }));
1278
1278
  n[f] = e[f];
1279
1279
  }
1280
1280
  }
@@ -1283,7 +1283,7 @@ class Yt extends Be {
1283
1283
  await fe(C.append(d, { v: I }));
1284
1284
  const f = this.materials || {};
1285
1285
  for (const d of l) {
1286
- const m = e[h[d]], y = Ue[d];
1286
+ const m = e[h[d]], y = Le[d];
1287
1287
  if (y)
1288
1288
  m && y.forEach((g) => {
1289
1289
  i[g] = m[g];
@@ -1291,7 +1291,7 @@ class Yt extends Be {
1291
1291
  else {
1292
1292
  const g = f[d] ? (await f[d]()).default : e[d];
1293
1293
  g && m && (g.components || []).forEach(($) => {
1294
- i[$.name] = ot($, m);
1294
+ i[$.name] = at($, m);
1295
1295
  });
1296
1296
  }
1297
1297
  }
@@ -1329,8 +1329,8 @@ class Yt extends Be {
1329
1329
  install(e) {
1330
1330
  const t = e.config.globalProperties.installed || {};
1331
1331
  for (const [s, n] of Object.entries(this.library))
1332
- !t[s] && ut(n) && (e.use(n), t[s] = !0);
1333
- this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(Ie, this), e.config.globalProperties.$provider = this, e.config.globalProperties.installed = t, this.mode === w.Design && (e.config.errorHandler = (s, n, i) => {
1332
+ !t[s] && pt(n) && (e.use(n), t[s] = !0);
1333
+ this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(Me, this), e.config.globalProperties.$provider = this, e.config.globalProperties.installed = t, this.mode === w.Design && (e.config.errorHandler = (s, n, i) => {
1334
1334
  const a = n?.$options.name, o = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", p = `[ ${a} ] ${o} ${i}`;
1335
1335
  console.error(
1336
1336
  "[VTJ Error]:",
@@ -1453,7 +1453,7 @@ class Yt extends Be {
1453
1453
  * @returns Vue异步组件
1454
1454
  */
1455
1455
  definePluginComponent(e) {
1456
- return de(async () => await ke(e, window));
1456
+ return de(async () => await Ae(e, window));
1457
1457
  }
1458
1458
  }
1459
1459
  function ds(r) {
@@ -1463,8 +1463,8 @@ function ds(r) {
1463
1463
  onReady: (s) => e.ready(s)
1464
1464
  };
1465
1465
  }
1466
- function Me(r = {}) {
1467
- const e = _e(Ie, null);
1466
+ function De(r = {}) {
1467
+ const e = _e(Me, null);
1468
1468
  if (!e)
1469
1469
  throw new Error("Can not find provider");
1470
1470
  if (e.nodeEnv === "development") {
@@ -1481,14 +1481,14 @@ function Me(r = {}) {
1481
1481
  return e;
1482
1482
  }
1483
1483
  async function hs(r, e = "") {
1484
- const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } = at(n);
1484
+ const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } = ct(n);
1485
1485
  if (i.length && Ee(i), a.length)
1486
1486
  return await be(a, t).catch(
1487
1487
  () => {
1488
1488
  }
1489
1489
  );
1490
1490
  }
1491
- const De = {
1491
+ const Te = {
1492
1492
  type: "json",
1493
1493
  validSuccess: !0,
1494
1494
  originResponse: !1,
@@ -1503,7 +1503,7 @@ const De = {
1503
1503
  type: t,
1504
1504
  data: s
1505
1505
  },
1506
- settings: De
1506
+ settings: Te
1507
1507
  }), Zt = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
1508
1508
  url: e,
1509
1509
  method: "post",
@@ -1512,7 +1512,7 @@ const De = {
1512
1512
  projectId: s
1513
1513
  },
1514
1514
  settings: {
1515
- ...De,
1515
+ ...Te,
1516
1516
  type: "data"
1517
1517
  }
1518
1518
  }).then((n) => n && n[0] ? n[0] : null).catch(() => null);
@@ -1616,7 +1616,7 @@ class oe {
1616
1616
  return await this.api("clearStaticFiles", e).catch(() => "");
1617
1617
  }
1618
1618
  async getPluginMaterial(e) {
1619
- const { urls: t = [] } = e, s = t.filter((i) => rt(i))[0];
1619
+ const { urls: t = [] } = e, s = t.filter((i) => nt(i))[0];
1620
1620
  if (!s) return null;
1621
1621
  const n = this.pluginCaches[s];
1622
1622
  return n || (this.pluginCaches[s] = Y.send({
@@ -1632,7 +1632,7 @@ class oe {
1632
1632
  return console.log("BaseService.genSource", e), "";
1633
1633
  }
1634
1634
  }
1635
- const _ = new Ye({
1635
+ const _ = new Xe({
1636
1636
  type: "local",
1637
1637
  expired: 0,
1638
1638
  prefix: "__VTJ_"
@@ -1805,7 +1805,7 @@ class ys extends oe {
1805
1805
  );
1806
1806
  }
1807
1807
  }
1808
- function Te(r, e, t = []) {
1808
+ function He(r, e, t = []) {
1809
1809
  return t.map((s) => {
1810
1810
  const { id: n, title: i, icon: a, children: o, hidden: p } = s;
1811
1811
  return {
@@ -1814,16 +1814,16 @@ function Te(r, e, t = []) {
1814
1814
  icon: a,
1815
1815
  hidden: p,
1816
1816
  url: `${r}/${e}/${n}`,
1817
- children: o && o.length ? Te(r, e, o) : void 0
1817
+ children: o && o.length ? He(r, e, o) : void 0
1818
1818
  };
1819
1819
  });
1820
1820
  }
1821
- function He(r, e) {
1821
+ function Oe(r, e) {
1822
1822
  if (!e) return r;
1823
1823
  let t = [];
1824
1824
  for (const s of r)
1825
1825
  if (s.children && s.children.length) {
1826
- const n = He(s.children, e);
1826
+ const n = Oe(s.children, e);
1827
1827
  n.length && (s.children = n, t.push(s));
1828
1828
  } else
1829
1829
  e.can(s.id.toString()) && t.push(s);
@@ -1834,8 +1834,8 @@ function _s(r) {
1834
1834
  menuPathPrefix: e = "",
1835
1835
  pageRouteName: t = "page",
1836
1836
  disableMenusFilter: s = !1
1837
- } = r || {}, n = Me(), i = Se(), a = mt(), o = Z(!1), p = Z(!1), c = n.project;
1838
- Xe(() => {
1837
+ } = r || {}, n = De(), i = Se(), a = gt(), o = Z(!1), p = Z(!1), c = n.project;
1838
+ Ze(() => {
1839
1839
  const { name: h, params: f, meta: d } = i;
1840
1840
  if (h === M) {
1841
1841
  const m = n.getPage(f.id);
@@ -1846,7 +1846,7 @@ function _s(r) {
1846
1846
  } else
1847
1847
  o.value = !d.mask, p.value = !!d.pure;
1848
1848
  });
1849
- const u = Te(
1849
+ const u = He(
1850
1850
  e,
1851
1851
  t,
1852
1852
  c?.pages
@@ -1856,22 +1856,22 @@ function _s(r) {
1856
1856
  logo: l?.logo,
1857
1857
  themeSwitchable: l?.themeSwitchable,
1858
1858
  title: l?.title || c?.description || c?.name || "VTJ App",
1859
- menus: s ? u : He(u, a),
1859
+ menus: s ? u : Oe(u, a),
1860
1860
  pure: p
1861
1861
  };
1862
1862
  }
1863
1863
  export {
1864
1864
  Pe as ACCESS_KEY,
1865
1865
  Re as Access,
1866
- st as BUILD_IN_TAGS,
1867
- Ze as BUILT_IN_DIRECTIVES,
1866
+ rt as BUILD_IN_TAGS,
1867
+ et as BUILT_IN_DIRECTIVES,
1868
1868
  oe as BaseService,
1869
1869
  he as CONTEXT_HOST,
1870
- $t as Context,
1870
+ jt as Context,
1871
1871
  w as ContextMode,
1872
- et as DATA_TYPES,
1872
+ tt as DATA_TYPES,
1873
1873
  N as HOMEPAGE_ROUTE_NAME,
1874
- tt as HTML_TAGS,
1874
+ st as HTML_TAGS,
1875
1875
  ls as JSCodeToString,
1876
1876
  is as LIFE_CYCLES_LIST,
1877
1877
  ys as LocalService,
@@ -1883,53 +1883,53 @@ export {
1883
1883
  I as VTJ_RENDERER_VERSION,
1884
1884
  je as adoptedStyleSheets,
1885
1885
  fs as clearLoaderCache,
1886
- ct as compileScopedCSS,
1886
+ lt as compileScopedCSS,
1887
1887
  ps as createAccess,
1888
1888
  us as createAdapter,
1889
1889
  os as createAssetScripts,
1890
1890
  as as createAssetsCss,
1891
- kt as createDataSources,
1891
+ At as createDataSources,
1892
1892
  se as createLoader,
1893
1893
  vs as createMemoryService,
1894
- vt as createMetaApi,
1895
- wt as createMock,
1894
+ yt as createMetaApi,
1895
+ St as createMock,
1896
1896
  ds as createProvider,
1897
1897
  te as createRenderer,
1898
- gt as createSchemaApi,
1899
- yt as createSchemaApis,
1898
+ vt as createSchemaApi,
1899
+ _t as createSchemaApis,
1900
1900
  ms as createServiceRequest,
1901
1901
  Mt as defaultLoader,
1902
1902
  O as fillBasePath,
1903
1903
  D as getMock,
1904
- Ae as getModifiers,
1905
- ke as getPlugin,
1906
- ot as getRawComponent,
1907
- pt as isBuiltInTag,
1904
+ Ie as getModifiers,
1905
+ Ae as getPlugin,
1906
+ at as getRawComponent,
1907
+ ft as isBuiltInTag,
1908
1908
  q as isCSSUrl,
1909
- dt as isJSCode,
1909
+ ht as isJSCode,
1910
1910
  S as isJSExpression,
1911
1911
  H as isJSFunction,
1912
- rt as isJSON,
1912
+ nt as isJSON,
1913
1913
  J as isJSUrl,
1914
- ft as isNativeTag,
1915
- ut as isVuePlugin,
1916
- lt as loadCss,
1914
+ dt as isNativeTag,
1915
+ pt as isVuePlugin,
1916
+ ut as loadCss,
1917
1917
  Ee as loadCssUrl,
1918
1918
  hs as loadEnhance,
1919
1919
  be as loadScriptUrl,
1920
- St as mockApi,
1921
- _t as mockApis,
1920
+ $t as mockApi,
1921
+ wt as mockApis,
1922
1922
  Ce as mockCleanup,
1923
- F as nodeRender,
1924
- it as parseDeps,
1923
+ A as nodeRender,
1924
+ ot as parseDeps,
1925
1925
  T as parseExpression,
1926
1926
  ee as parseFunction,
1927
- at as parseUrls,
1928
- Ie as providerKey,
1929
- nt as removeProdFlag,
1927
+ ct as parseUrls,
1928
+ Me as providerKey,
1929
+ it as removeProdFlag,
1930
1930
  cs as setupPageSetting,
1931
1931
  $e as toString,
1932
- mt as useAccess,
1932
+ gt as useAccess,
1933
1933
  _s as useMask,
1934
- Me as useProvider
1934
+ De as useProvider
1935
1935
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.12.38",
4
+ "version": "0.12.39",
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.12.38",
25
- "@vtj/utils": "~0.12.38"
24
+ "@vtj/core": "~0.12.39",
25
+ "@vtj/utils": "~0.12.39"
26
26
  },
27
27
  "devDependencies": {
28
28
  "vue": "~3.5.5",
29
29
  "vue-router": "~4.5.0",
30
30
  "@vtj/cli": "~0.12.4",
31
- "@vtj/ui": "~0.12.38",
32
- "@vtj/icons": "~0.12.38"
31
+ "@vtj/ui": "~0.12.39",
32
+ "@vtj/icons": "~0.12.39"
33
33
  },
34
34
  "exports": {
35
35
  ".": {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.12.37
5
+ * @version 0.12.38
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.12.37";
8
+ export declare const version = "0.12.38";