@vtj/renderer 0.13.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +3 -3
- package/package.json +5 -5
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.13.
|
5
|
+
* @version 0.13.2
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
|
-
*/const F="0.13.
|
7
|
+
*/const F="0.13.2";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const te=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],et=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],_e=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],Se={String,Number,Boolean,Array,Object,Function,Date},O="VtjPage",x="VtjHomepage",we="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot,svg".split(","),Ee="component,slot".split(","),tt=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),st={auth:["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o","/","a","u","t","h",".","h","t","m","l"].join(""),storageKey:["R","R","O","_","I","D","E","_","A","C","C","E","S","S","_","S","T","O","R","A","G","E","_","_"].join(""),privateKey:"MIIBOgIBAAJBAKoIzmn1FYQ1YOhOBw9EhABxZ+PySAIaydI+zdhoKflrdgJ4A5E4/5gbQmRpk09hPWG8nvX7h+l/QLU8kXxAIBECAwEAAQJAAlgpxQY6sByLsXqzJcthC8LSGsLf2JEJkHwlnpwFqlEV8UCkoINpuZ2Wzl+aftURu5rIfAzRCQBvHmeOTW9/zQIhAO5ufWDmnSLyfAAsNo5JRNpVuLFCFodR8Xm+ulDlosR/AiEAtpAltyP9wmCABKG/v/hrtTr3mcvFNGCjoGa9bUAok28CIHbrVs9w1ijrBlvTsXYwJw46uP539uKRRT4ymZzlm9QjAiB+1KH/G9f9pEEL9rtaSOG7JF5D0JcOjlze4MGVFs+ZrQIhALKOUFBNr2zEsyJIjw2PlvEucdlG77UniszjXTROHSPd"};function H(r,e){return r.map(t=>f.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function N(r){return/\.css$/.test(r)}function U(r){return/\.js$/.test(r)}function $e(r){return/\.json$/.test(r)}function rt(r){return r.map(e=>`<script src="${f.url.append(e,{v:F})}"><\/script>`).join("")}function nt(r=[]){return r.map(e=>`<link rel="stylesheet" href="${f.url.append(e,{v:F})}" />`).join("")}function je(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function be(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],o=[],i=[],a=[],p={},c={},l=[],u={};return s.forEach(({urls:m,assetsUrl:d,library:h,assetsLibrary:y,localeLibrary:v})=>{m?.forEach(g=>{U(g)&&n.push(je(g,t)),N(g)&&o.push(g)}),h&&(a.push(h),p[h]=H(m||[],e),v&&(c[h]=v)),d&&i.push(d),y&&l.push(y),h&&y&&(u[y]=h)}),{scripts:H(n,e),css:H(o,e),materials:H(i,e),libraryExports:a,materialExports:f.dedupArray(l),materialMapLibrary:u,libraryMap:p,libraryLocaleMap:c}}function Re(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function Ce(r=[]){const e=r.filter(s=>N(s)),t=r.filter(s=>U(s));return{css:e,js:t}}function Pe(r,e){const t=c=>{const l=[];let u=0;for(;u<c.length;){if(/\s/.test(c[u])){u++;continue}if(c.substring(u,u+2)==="/*"){const g=c.indexOf("*/",u+2);if(g!==-1){u=g+2;continue}}if(c[u]==="@"){const g=u;for(;u<c.length&&c[u]!=="{"&&c[u]!==";";)u++;const C=c.substring(g,u).trim(),S=C.includes("@keyframes");if(c[u]===";")l.push({type:"simple-at-rule",content:c.substring(g,u+1)}),u++;else if(c[u]==="{"){const L=u+1;let M=1;for(u++;u<c.length&&M>0;)c[u]==="{"?M++:c[u]==="}"&&M--,u++;const W=c.substring(g,u),P=c.substring(L,u-1);l.push({type:S?"keyframes":"at-rule",rule:C,content:W,inner:P})}continue}const m=u;for(;u<c.length&&c[u]!=="{";)u++;if(u>=c.length)break;const d=c.substring(m,u).trim();if(!d){u++;continue}const h=u+1;let y=1;for(u++;u<c.length&&y>0;)c[u]==="{"?y++:c[u]==="}"&&y--,u++;const v=c.substring(h,u-1);l.push({type:"rule",selector:d,content:v.trim()})}return l},s=c=>{const l=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(l)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(l,u,m)=>{const d=u.trim(),h=m.trim();return d?`${d}[${e}] ${h}`:h}),o=c=>{const l=c.trim();if(!l||l.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(l)||s(l))return l;const u=l.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(u){const[,m,d=""]=u,h=m.trim();return h?`${h}[${e}]${d}`:l}return`${l}[${e}]`},i=c=>n(c).split(",").map(u=>o(u)).filter(u=>u.trim()).join(", "),a=c=>c.map(l=>{switch(l.type){case"simple-at-rule":return l.content;case"keyframes":return l.content;case"at-rule":try{const m=t(l.inner),d=a(m);return`${l.rule} { ${d} }`}catch{return l.content}case"rule":if(!l.selector||!l.content)return"";const u=i(l.selector);return u.trim()?`${u} { ${l.content} }`:"";default:return""}}).filter(l=>l.trim()).join(" "),p=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
|
8
8
|
`),l=t(c),u=a(l);return p(u)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,l=>l).replace(/([^{}@]+)(?=\s*{)/g,l=>{const u=l.trim();return!u||u.startsWith("@")||u.includes(`[${e}]`)||s(u)?l:`${u}[${e}]`})}}function ne(r){return f.isString(r)?r:JSON.stringify(r)}function z(r,e,t,s=!1){const n=r.CSSStyleSheet,o=s?`data-v-${e}`:e,i=s?Pe(t,o):t;if(n.prototype.replaceSync){const a=new n;a.id=e,a.replaceSync(i);const p=r.document,c=p.adoptedStyleSheets,l=Array.from(c).filter(u=>u.id!==e);p.adoptedStyleSheets=[...l,a]}else{const a=r.document;let p=a.getElementById(e);p?p.innerHTML=i:(p=a.createElement("style"),p.id=e,p.innerHTML=i,a.head.appendChild(p))}}async function Ae(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&z(window,r,t)}function oe(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const i=t.createElement("link");i.rel="stylesheet",i.id=n,i.href=n,s.appendChild(i)}}async function ie(r,e,t=window){const s=t.document,n=t.document.head;let o=t[e];return o?o.default||o:new Promise((i,a)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{o=t[e],o?i(o.default||o):a(null)},c.onerror=l=>{a(l)},n.appendChild(c)}})}function Me(r){return f.isFunction(r)||f.isFunction(r?.install)}function Ie(r){return Ee.includes(r)}function Te(r){return we.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 ot(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 D(r,e,t=!1,s=!1,n=!1){try{const o=['"use strict";',"var __self = arguments[0];"];o.push("return ");let i=(r.value||"").trim();n||(i=i.replace(/this(\W|$)/g,(p,c)=>`__self${c}`)),i=o.join(`
|
9
9
|
`)+i;const a=n?`
|
10
10
|
${i}
|
11
|
-
`:`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(o){if(f.logger.error("parseExpression.error",o,r,e?.__self??e),s)throw o}}function R(r,e,t=!1,s=!1,n=!1){const o=D(r,e,t,s,n);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return o}function j(r){return r&&r.type==="JSExpression"}function $(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Fe(r){return j(r)||$(r)}function it(r){return Fe(r)?r.value:JSON.stringify(r)}const at={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ae=Symbol("access");class V{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},at,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!==_.Design&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),n&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):f.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(ae,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>f.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?f.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===O){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),f.isFunction(n)?(n(),t(!1)):f.isString(n)?t(n):t(!1)}}t(!1),await f.delay(0),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Oe(){return E.inject(ae,null)}function ct(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:i,alert:a}=r;let p=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:i,startupComponent:n,access:o?new V({alert:a,...o}):void 0}}function lt(r={}){return new V(r)}function ke(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?D(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(i,a)=>(delete o.data,s.send(f.merge(o,a||{},{data:i})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,i)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,i)}}function He(r=[],e=[],t){const s={};for(const n of r)s[n.id]=ke(n,t);for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=k(e);t&&(ce(e),r.forEach(s=>Ne(t,s)))}function Be(r,e=window){const t=$(r.mockTemplate)&&r.mockTemplate.value?R(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(i){f.logger.warn("模拟数据模版异常",i)}return s?.mock(o)}}function Ne(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=f.pathToRegexp(`${t}(.*)`),o=f.pathToRegexpMatch(t,{decode:decodeURIComponent}),i=D(s,{},!0);r.mock(n,a=>{const p=f.url.parse(a.url)||{},c=a.body instanceof FormData?f.formDataToJson(a.body):a.body,l=o(a.url)?.params;return Object.assign(a,{data:c,params:p,query:l}),r.mock(i(a))})}}function ce(r=window){const e=k(r);e&&(e._mocked={})}class Ue{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=G){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&te.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){te.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return R({type:s,value:n},this)}else return R(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 D({type:s,value:n},this)}else return D(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await f.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const o=new Set([].concat(n,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=G,mode:t=_.Runtime,components:s={},libs:n={},apis:o={},loader:i}=r,a=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:o},c=new Ue({mode:t,dsl:a.value,attrs:p}),l=e.defineComponent({name:a.value.name,__scopeId:a.value.id?`data-v-${a.value.id}`:void 0,props:{...pt(a.value.props??[],c)},setup(u){c.$props=u,c.props=u,a.value.id&&z(r.window||window,a.value.id,a.value.css||"",!0),c.state=ft(e,a.value.state??{},c);const m=dt(e,a.value.computed??{},c),d=ht(a.value.methods??{},c),h=mt(e,a.value.inject,c);for(const[g,C]of Object.entries(h||{}))h[g]=e.inject(g,C);const y=Le(a.value.dataSources||{},c),v={...h,...m,...d,...y};return c.setup(v,e),gt(e,a.value.watch??[],c),{vtj:c}},emits:ut(a.value.emits),expose:["vtj"],render(){if(!a.value.nodes)return null;const u=a.value.nodes||[];return u.length===1?T(u[0],c,e,i,u):u.map(m=>T(m,c,e,i,u))},...vt(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function ut(r=[]){return r.map(e=>f.isString(e)?e:e.name)}function pt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:j(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 ft(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return j(o)?o=t.__parseExpression(o):$(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function dt(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function ht(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function mt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:i}=n||{};n.default;const a=j(i)?t.__parseExpression(i)||o:i??o,p=j(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(a,p),s},{})}function Le(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Be(n);else if(n.ref){const o=e.$apis[n.ref],i=$(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...a)=>{const p=await o.apply(e,a);return i?i(p):p}}return t},{})}function gt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await f.delay(0),f.isFunction(o)&&o()},t},{})}const qe=new f.Queue;let X=[],I={};const Je=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(a=>U(a));if(n.length===0||!s)return null;const o=t.filter(a=>N(a));return o.length&&oe(o,e),await ie(n,s,e).catch(a=>(console.warn("loadScriptUrl error",n,s,a),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(X.forEach(n=>{delete s.window[n]}),X=[]),(n,o,i=G)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return i.defineAsyncComponent(async()=>{const a=I[o.id]||await qe.add(o.id,()=>e(o.id));return a&&(a.name=n,I[o.id]=a),a?J({...s,Vue:i,dsl:f.cloneDeep(a),mode:_.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return i.defineAsyncComponent(async()=>{const a=I[o.url]||await t(o.url);return a&&(a.name=n,I[o.url]=a),a?J({...s,Vue:i,dsl:f.cloneDeep(a),mode:_.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let a=o.library?I[o.library]:null;return a||(o.library&&X.push(o.library),a=I[o.library||Symbol()]=i.defineAsyncComponent(async()=>{const p=await le(o,s.window);return p||(console.warn("getPlugin result is null",o),null)}),a)}return n}}function yt(){I={},qe.clearAllCache()}function T(r,e,t=G,s=Je,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const i=t.getCurrentInstance()?.appContext,{id:a=null,directives:p=[]}=r,{vIf:c,vElseIf:l,vElse:u,vFor:m,vShow:d,vModels:h,vBind:y,vHtml:v,others:g}=Ke(p);if(!o&&(l||u))return null;if(c&&!St(c,e))return jt(r,e,t,s,n);const C=(S,L=0)=>{const M=S.$components,W=(()=>{if(r.name==="component")return wt(S,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);if(f.isString(b))return Ie(b)||Te(b)?b:M[b]??i?.app?.component(b)??b;if(f.isObject(b)&&r.id){const ge=`Loader${r.id}_${L}`,ve=M[ge];return ve||(M[ge]=b)}return b})(),P=Et(a,r.props??{},S),We=$t(t,r.events??{},S);if(r.name==="slot")return bt(t,r,P,S,s);y&&Object.assign(P,S.__parseExpression(y.value)),d&&(P.style=Object.assign(P.style??{},Ct(d,S))),v&&Object.assign(P,Pt(v,S)),h.forEach(b=>{Object.assign(P,At(t,b,S))});const Ye=Mt(t,r.children??[],S,s,r),he=S?.__id?`data-v-${S.__id}`:void 0,Xe=he?{[he]:""}:{};let Y=t.createVNode(W,{key:`${a}_${L}`,...Xe,...P,...We},Ye);const me=i?_t(i,g,S):[];return me.length&&(Y=t.withDirectives(Y,me)),Y};return m?Ft(m,C,e):C(e)}function _t(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const i=[o];return n.value&&i.push(t.__parseExpression(n.value)),n.arg&&i.push(n.arg),n.modifiers&&i.push(n.modifiers),i}).filter(n=>!!n)}function Ke(r=[]){const e=r.find(l=>f.camelCase(l.name)==="vIf"),t=r.find(l=>f.camelCase(l.name)==="vElseIf"),s=r.find(l=>f.camelCase(l.name)==="vElse"),n=r.find(l=>f.camelCase(l.name)==="vFor"),o=r.find(l=>f.camelCase(l.name)==="vShow"),i=r.find(l=>f.camelCase(l.name)==="vBind"),a=r.find(l=>f.camelCase(l.name)==="vHtml"),p=r.filter(l=>f.camelCase(l.name)==="vModel"),c=r.filter(l=>!_e.includes(f.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:p,vBind:i,others:c,vHtml:a}}function St(r,e){return!!e.__parseExpression(r.value)}function wt(r,e){return e?j(e)?r.__parseExpression(e):e:"div"}function Et(r,e,t){const s=se(e,t);return s.ref=t.__ref(r,s.ref),s}function se(r,e){return j(r)?e.__parseExpression(r):$(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>se(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=se(n,e),t},{}):r}function $t(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,i)=>{const a=e[i],p=ue(a.modifiers),c=p.find(m=>s.includes(m)),l="on"+f.upperFirst(i)+(c&&n[c]||""),u=t.__parseFunction(a.handler);return u&&(o[l]=r.withModifiers(u,p)),o},{})}function jt(r,e,t,s,n=[]){let o=n.findIndex(i=>i.id===r.id);for(let i=++o;i<n.length;i++){const{directives:a=[]}=n[i],{vElseIf:p,vElse:c}=Ke(a);if(p){if(e.__parseExpression(p.value))return T(n[i],e,t,s,n,!0);continue}if(c)return T(n[i],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function bt(r,e,t,s,n){const{children:o}=e,i=Rt(e,s),a=s.$slots?.[i.name];return a?a(t):o?f.isString(o)?r.createTextVNode(o):j(o)?r.createTextVNode(ne(s.__parseExpression(o))):Array.isArray(o)?o.map(p=>T(p,s,r,n,o)):null:null}function Rt(r,e){const{props:t}=r,s=t?.name||"default";return{name:j(s)?e.__parseExpression(s):s,params:[]}}function Ct(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function Pt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function At(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
11
|
+
`:`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(o){if(f.logger.error("parseExpression.error",o,r,e?.__self??e),s)throw o}}function R(r,e,t=!1,s=!1,n=!1){const o=D(r,e,t,s,n);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return o}function j(r){return r&&r.type==="JSExpression"}function $(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Fe(r){return j(r)||$(r)}function it(r){return Fe(r)?r.value:JSON.stringify(r)}const at={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ae=Symbol("access");class V{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},at,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!==_.Design&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),n&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):f.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(ae,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>f.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?f.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===O){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),f.isFunction(n)?(n(),t(!1)):f.isString(n)?t(n):t(!1)}}t(!1),await f.delay(0),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Oe(){return E.inject(ae,null)}function ct(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:i,alert:a}=r;let p=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:i,startupComponent:n,access:o?new V({alert:a,...o}):void 0}}function lt(r={}){return new V(r)}function ke(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?D(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(i,a)=>(delete o.data,s.send(f.merge(o,a||{},{data:i})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,i)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,i)}}function He(r=[],e=[],t){const s={};for(const n of r)s[n.id]=ke(n,t);for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=k(e);t&&(ce(e),r.forEach(s=>Ne(t,s)))}function Be(r,e=window){const t=$(r.mockTemplate)&&r.mockTemplate.value?R(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(i){f.logger.warn("模拟数据模版异常",i)}return s?.mock(o)}}function Ne(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=f.pathToRegexp(`${t}(.*)`),o=f.pathToRegexpMatch(t,{decode:decodeURIComponent}),i=D(s,{},!0);r.mock(n,a=>{const p=f.url.parse(a.url)||{},c=a.body instanceof FormData?f.formDataToJson(a.body):a.body,l=o(a.url)?.params;return Object.assign(a,{data:c,params:p,query:l}),r.mock(i(a))})}}function ce(r=window){const e=k(r);e&&(e._mocked={})}class Ue{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=G){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&te.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){te.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return R({type:s,value:n},this)}else return R(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 D({type:s,value:n},this)}else return D(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await f.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const o=new Set([].concat(n,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=G,mode:t=_.Runtime,components:s={},libs:n={},apis:o={},loader:i}=r,a=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:o},c=new Ue({mode:t,dsl:a.value,attrs:p}),l=e.defineComponent({name:a.value.name,__scopeId:a.value.id?`data-v-${a.value.id}`:void 0,props:{...pt(a.value.props??[],c)},setup(u){c.$props=u,c.props=u,a.value.id&&z(r.window||window,a.value.id,a.value.css||"",!0),c.state=ft(e,a.value.state??{},c);const m=dt(e,a.value.computed??{},c),d=ht(a.value.methods??{},c),h=mt(e,a.value.inject,c);for(const[g,C]of Object.entries(h||{}))h[g]=e.inject(g,C);const y=Le(a.value.dataSources||{},c),v={...h,...m,...d,...y};return c.setup(v,e),gt(e,a.value.watch??[],c),{vtj:c}},emits:ut(a.value.emits),expose:["vtj"],render(){if(!a.value.nodes)return null;const u=a.value.nodes||[];return u.length===1?T(u[0],c,e,i,u):u.map(m=>T(m,c,e,i,u))},...vt(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function ut(r=[]){return r.map(e=>f.isString(e)?e:e.name)}function pt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:j(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 ft(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return j(o)?o=t.__parseExpression(o):$(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function dt(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function ht(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function mt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:i}=n||{};n.default;const a=j(i)?t.__parseExpression(i)||o:i??o,p=j(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(a,p),s},{})}function Le(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Be(n);else if(n.ref){const o=e.$apis[n.ref],i=$(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...a)=>{const p=await o.apply(e,a);return i?i(p):p}}return t},{})}function gt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await f.delay(0),f.isFunction(o)&&o()},t},{})}const qe=new f.Queue;let X=[],I={};const Je=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(a=>U(a));if(n.length===0||!s)return null;const o=t.filter(a=>N(a));return o.length&&oe(o,e),await ie(n,s,e).catch(a=>(console.warn("loadScriptUrl error",n,s,a),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(X.forEach(n=>{delete s.window[n]}),X=[]),(n,o,i=G)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return i.defineAsyncComponent(async()=>{const a=I[o.id]||await qe.add(o.id,()=>e(o.id));return a&&(a.name=n,I[o.id]=a),a?J({...s,Vue:i,dsl:f.cloneDeep(a),mode:_.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return i.defineAsyncComponent(async()=>{const a=I[o.url]||await t(o.url);return a&&(a.name=n,I[o.url]=a),a?J({...s,Vue:i,dsl:f.cloneDeep(a),mode:_.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let a=o.library?I[o.library]:null;return a||(o.library&&X.push(o.library),a=I[o.library||Symbol()]=i.defineAsyncComponent(async()=>{const p=await le(o,s.window);return p||(console.warn("getPlugin result is null",o),null)}),a)}return n}}function yt(){I={},qe.clearAllCache()}function T(r,e,t=G,s=Je,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const i=t.getCurrentInstance()?.appContext,{id:a=null,directives:p=[]}=r,{vIf:c,vElseIf:l,vElse:u,vFor:m,vShow:d,vModels:h,vBind:y,vHtml:v,others:g}=Ke(p);if(!o&&(l||u))return null;if(c&&!St(c,e))return jt(r,e,t,s,n);const C=(S,L=0)=>{const M=S.$components,W=(()=>{if(r.name==="component")return wt(S,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);if(f.isString(b))return Ie(b)||Te(b)?b:M[b]??i?.app?.component(b)??b;if(f.isObject(b)&&r.id){const ge=`Loader${r.id}_${L}`,ve=M[ge];return ve||(M[ge]=b)}return b})(),P=Et(a,r.props??{},S),We=$t(t,r.events??{},S);if(r.name==="slot")return bt(t,r,P,S,s);y&&Object.assign(P,S.__parseExpression(y.value)),d&&(P.style=Object.assign(P.style??{},Ct(d,S))),v&&Object.assign(P,Pt(v,S)),h.forEach(b=>{Object.assign(P,At(t,b,S))});const Ye=Mt(t,r.children??[],S,s,r),he=S?.__id?`data-v-${S.__id}`:void 0,Xe=he?{[he]:""}:{};let Y=t.createVNode(W,{key:`${a}_${L}`,...Xe,...P,...We},Ye);const me=i?_t(i,g,S):[];return me.length&&(Y=t.withDirectives(Y,me)),Y};return m?Ft(m,C,e):C(e)}function _t(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const i=[o];return n.value&&i.push(t.__parseExpression(n.value)),n.arg&&i.push(n.arg),n.modifiers&&i.push(n.modifiers),i}).filter(n=>!!n)}function Ke(r=[]){const e=r.find(l=>f.camelCase(l.name)==="vIf"),t=r.find(l=>f.camelCase(l.name)==="vElseIf"),s=r.find(l=>f.camelCase(l.name)==="vElse"),n=r.find(l=>f.camelCase(l.name)==="vFor"),o=r.find(l=>f.camelCase(l.name)==="vShow"),i=r.find(l=>f.camelCase(l.name)==="vBind"),a=r.find(l=>f.camelCase(l.name)==="vHtml"),p=r.filter(l=>f.camelCase(l.name)==="vModel"),c=r.filter(l=>!_e.includes(f.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:p,vBind:i,others:c,vHtml:a}}function St(r,e){return!!e.__parseExpression(r.value)}function wt(r,e){return e?j(e)?r.__parseExpression(e):e:"div"}function Et(r,e,t){const s=se(e,t);return s.ref=t.__ref(r,s.ref),s}function se(r,e){return j(r)?e.__parseExpression(r):$(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>se(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=se(n,e),t},{}):r}function $t(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,i)=>{const a=e[i],p=ue(a.modifiers),c=p.find(m=>s.includes(m)),l="on"+f.upperFirst(i)+(c&&n[c]||""),u=t.__parseFunction(a.handler);return u&&(o[l]=r.withModifiers(u,p)),o},{})}function jt(r,e,t,s,n=[]){let o=n.findIndex(i=>i.id===r.id);for(let i=++o;i<n.length;i++){const{directives:a=[]}=n[i],{vElseIf:p,vElse:c}=Ke(a);if(p){if(e.__parseExpression(p.value))return T(n[i],e,t,s,n,!0);continue}if(c)return T(n[i],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function bt(r,e,t,s,n){const{children:o}=e,i=Rt(e,s),a=s.$slots?.[i.name];return a?a(t):o?f.isString(o)?r.createTextVNode(o):j(o)?r.createTextVNode(ne(s.__parseExpression(o))):Array.isArray(o)?o.map(p=>T(p,s,r,n,o)):null:null}function Rt(r,e){const{props:t}=r,s=t?.name||"default";return{name:j(s)?e.__parseExpression(s):s,params:[]}}function Ct(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function Pt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function At(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
12
12
|
${e.value.value} = v;
|
13
13
|
}`:"(v) => {}"},n=t.__parseFunction(s),o=ue(j(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),i=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[i]:t.__parseExpression(e.value),[`onUpdate:${i}`]:o.length&&n?r.withModifiers(n,o):n}}function Mt(r,e,t,s,n){if(!e)return null;if(f.isString(e))return{default:()=>e};if(j(e))return{default:()=>ne(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=It(e),i=(a,p)=>!a||!n?{}:n?.id&&Object.keys(a).length?p?{[p]:a}:{[`scope_${n.id}`]:a}:p?{[p]:Object.create(null)}:{};return Object.entries(o).reduce((a,[p,{nodes:c,params:l,scope:u}])=>(a[p]=m=>{const d=l.length?f.pick(m??{},l):i(m,u);return c.map(h=>T(h,t.__clone(d),r,s,c))},a),{})}return null}function It(r){const e={};for(const t of r){const s=Tt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function Tt(r="default"){return f.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Ft(r,e,t){const{value:s,iterator:n}=r,{item:o="item",index:i="index"}=n||{};let a=t.__parseExpression(s)||[];return Number.isInteger(a)&&(a=new Array(a).fill(!0).map((p,c)=>c+1)),Array.isArray(a)?a.map((p,c)=>e(t.__clone({[o]:p,[i]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const Z=E.defineComponent({name:"VtjPageContainer",async setup(){const r=de(),e=ye.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,o=E.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:i}=r?.adapter;i&&i(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?E.h(r,{...e,key:t}):E.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Ot=E.defineComponent({name:"VtjStartupContainer",render(){return E.h("div","page not found!")}});function B(r,e,t=[]){const s=[];for(const n of t){const{id:o,title:i,icon:a,children:p,hidden:c,layout:l}=n;if(l){const u=B(r,e,p||[]);s.push(...u)}else{const u={id:o,title:i,icon:a,hidden:c,url:`${r}/${e}/${o}`,children:p&&p.length?B(r,e,p):void 0};s.push(u)}}return s}function pe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=pe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function kt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=de(),o=ye.useRoute(),i=Oe(),a=E.ref(!1),p=E.ref(!1),c=n.project,l=d=>{a.value=!d?.mask,p.value=!!d?.pure};E.watchEffect(()=>{const{name:d,params:h,meta:y}=o;if(d===O){const v=n.getPage(h.id);l(v)}else if(d===x){const v=n.getHomepage();l(v)}else{const v=y.__vtj__;if(v){const g=n.getPage(v);l(g)}else a.value=!y.mask,p.value=!!y.pure}});const u=B(e,t,c?.pages),m=c?.config;return{disabled:a,logo:m?.logo,themeSwitchable:m?.themeSwitchable,title:m?.title||c?.description||c?.name||"VTJ App",menus:s?u:pe(u,i),pure:p}}function ee(r,e){const{id:t,title:s,meta:n}=r,{name:o="page",prefix:i="",component:a,routeMeta:p}=e;return{name:t,path:`${i}${o}/${t}`,component:a,meta:{title:s,...p,...n,__vtj__:t}}}function re(r){const{name:e="page",prefix:t="",pages:s=[],component:n,loader:o,routeMeta:i,homepage:a}=r,p=[];for(const c of s){const{id:l,title:u,dir:m,layout:d,children:h,meta:y}=c;if(m){const v=re({name:e,prefix:t,component:n,routeMeta:i,homepage:a,loader:o,pages:h||[]});p.push(...v)}else if(d){const v=re({name:e,prefix:t,component:n,routeMeta:i,homepage:a,loader:o,pages:h||[]}),g={name:`layout_${l}`,path:t,component:()=>o(l),meta:{title:u,...i,...y,__vtj__:l},children:v};p.push(g),p.push(ee(c,r))}else if(p.push(ee(c,r)),a===l){const v=ee(c,r);v.path="",v.name=`home_${l}`,p.push(v)}}return p}function Dt(r={},e){const{css:t,store:s,enhance:n}=r,{window:o,app:i,library:a={},adapter:p,mode:c}=e,{Pinia:l}=a;z(o,"global-css",t||""),l&&s&&Ht(s,i,l),Bt(i,p,r),!p.access&&r.access&&xt(r.access,i,c,p),Nt(i,r),n&&Ut(n,i)}function Ht(r,e,t){const s=t.createPinia();if(e.use(s),$(r)&&r.value){const n=R(r,{},!1,!1,!0),o=t.defineStore("$store",n(e)||{});e.config.globalProperties.$store=o()}}function xt(r,e,t,s){if($(r)&&r.value){const n=R(r,{},!1,!1,!0),o=new V(n(e)),i=e.config.globalProperties.$router,a=s.request;o.connect({mode:t,router:i,request:a}),e.use(o)}}function Bt(r,e,t){if(!e.request)return;const{axios:s,request:n,response:o}=t;if(s&&$(s)&&s.value){const i=R(s,{},!1,!1,!0);e.request.setConfig(i(r))}if(n&&$(n)&&n.value){const i=R(n,{},!1,!1,!0);e.request.useRequest(a=>i(a,r))}if(o&&$(o)&&o.value){const i=R(o,{},!1,!1,!0);e.request.useResponse(a=>i(a,r))}}function Nt(r,e){const{beforeEach:t,afterEach:s}=e,n=r.config.globalProperties.$router;if(t&&$(t)&&t.value){const o=R(t,{},!1,!1,!0);n&&n.beforeEach((i,a,p)=>o(i,a,p,r))}if(s&&$(s)&&s.value){const o=R(s,{},!1,!1,!0);n&&n.afterEach((i,a,p)=>o(i,a,p,r))}}function Ut(r,e){$(r)&&r.value&&R(r,{},!1,!1,!0)(e)}const fe=Symbol("Provider");var Ge=(r=>(r.Production="production",r.Development="development",r))(Ge||{});class ze extends A.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:o,project:i={},adapter:a={},globals:p={},modules:c={},router:l=null,materialPath:u="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=l,this.materialPath=u,this.nodeEnv=m,n&&(this.dependencies=n),o&&(this.materials=o),Object.assign(this.globals,p),Object.assign(this.adapter,a);const{access:d,request:h}=this.adapter;d&&d.connect({mode:s,router:l,request:h}),i&&s!==_.Design?this.load(i):this.project=i}mode;globals={};modules={};adapter={request:f.request,jsonp:f.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(o){f.logger.warn("模拟数据模版异常",o)}return k()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:n=[],meta:o=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=He(n,o,this.adapter),ce(i),xe(n,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:o,materialPath:i,nodeEnv:a}=this,{libraryExports:p,libraryMap:c,materials:l,materialExports:u,materialMapLibrary:m}=be(t,i,a==="development");for(const d of p){const h=s[d],y=e[d];if(y)n[d]=y;else if(h)e[d]=n[d]=await h();else{const v=c[d]||[];for(const g of v)N(g)&&await Ae(g,f.url.append(g,{v:F})),U(g)&&await f.loadScript(f.url.append(g,{v:F}));n[d]=e[d]}}if(a==="development"){for(const h of l)await f.loadScript(f.url.append(h,{v:F}));const d=this.materials||{};for(const h of u){const y=e[m[h]],v=A.BUILT_IN_COMPONENTS[h];if(v)y&&v.forEach(g=>{o[g]=y[g]});else{const g=d[h]?(await d[h]()).default:e[h];g&&y&&(g.components||[]).forEach(C=>{o[C.name]=Re(C,y)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:i,pageRouteName:a=o,routeMeta:p}=s,c=i?"":"/",l={path:`${c}${a}/:id`,name:O,component:Z},u={path:c,name:x,component:t?.homepage?Z:n.startupComponent||Ot,meta:p};if(e.hasRoute(O)&&e.removeRoute(O),e.hasRoute(x)&&e.removeRoute(x),s.enableStaticRoute){const m=t?.pages||[];re({name:a,prefix:c,pages:m,component:Z,loader:this.getRenderComponent.bind(this),homepage:t?.homepage}).forEach(h=>{i?e.addRoute(i,h):e.addRoute(h)}),t?.homepage||(i?e.addRoute(i,u):e.addRoute(u))}else i?(e.addRoute(i,l),e.addRoute(i,u)):(e.addRoute(l),e.addRoute(u))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&Me(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(fe,this),e.config.globalProperties.$provider=this,this.project?.platform!=="uniapp"&&this.initGlobals(this.project?.globals||{},{app:e,window,adapter:this.adapter,library:this.library,mode:this.mode}),this.options.enhance&&e.use(this.options.enhance,this),this.mode===_.Design&&(e.config.errorHandler=(s,n,o)=>{const i=n?.$options.name,a=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${i} ] ${a} ${o}`;console.error("[VTJ Error]:",{err:s,instance:n,info:o},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),e.config.globalProperties.installed=t}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,o=[])=>{for(const i of o){if(i.id===n)return i;if(i.children&&i.children.length){const a=s(n,i.children);if(a)return a}}};return s(e,t)||null}getMenus(e="page",t=""){return B(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:o,apis:i}=this,a={mode:o,Vue:s.Vue,components:n,libs:s,apis:i,window,...t},p=K({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:a});return J({...a,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return f.logger.warn(`Can not find file: ${e}`),null;if(t&&t(s),this.mode===_.Raw){const{vtjRawDir:o=".vtj/vue"}=this.options,i=`${o}/${e}.vue`,a=this.modules[i]||this.modules[`/src/pages/${e}.vue`];if(a)return(await a())?.default}const n=await this.getDsl(s.id);return n?this.createDslRenderer(n).renderer:(f.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return E.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return E.defineAsyncComponent(async()=>await le(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Dt(e,s)}}function Lt(r){const e=new ze(r);return{provider:e,onReady:s=>e.ready(s)}}function de(r={}){const e=E.inject(fe,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function qt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(a=>e+a),{css:o,js:i}=Ce(n);if(o.length&&oe(o),i.length)return await ie(i,t).catch(()=>{})}const Ve={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Jt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:Ve}),Kt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ve,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function Gt(r){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class Q{constructor(e=f.request){this.req=e,this.api=Jt(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(o=>$e(o))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=f.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class zt extends Q{init(e){const t=new A.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 A.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,f.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(o=>o.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new A.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 Q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new A.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 A.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new A.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let q=null;function Vt(){return q||(q=new Qe,q)}class Qt extends Q{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:f.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}exports.ACCESS=st;exports.ACCESS_KEY=ae;exports.Access=V;exports.BUILD_IN_TAGS=Ee;exports.BUILT_IN_DIRECTIVES=_e;exports.BaseService=Q;exports.CONTEXT_HOST=te;exports.Context=Ue;exports.ContextMode=_;exports.DATA_TYPES=Se;exports.HOMEPAGE_ROUTE_NAME=x;exports.HTML_TAGS=we;exports.JSCodeToString=it;exports.LIFE_CYCLES_LIST=et;exports.LocalService=Qt;exports.MemoryService=Qe;exports.NodeEnv=Ge;exports.PAGE_ROUTE_NAME=O;exports.Provider=ze;exports.REMOTE=tt;exports.StorageService=zt;exports.VTJ_RENDERER_VERSION=F;exports.adoptedStyleSheets=z;exports.clearLoaderCache=yt;exports.compileScopedCSS=Pe;exports.createAccess=lt;exports.createAdapter=ct;exports.createAssetScripts=rt;exports.createAssetsCss=nt;exports.createDataSources=Le;exports.createLoader=K;exports.createMemoryService=Vt;exports.createMenus=B;exports.createMetaApi=De;exports.createMock=Be;exports.createProvider=Lt;exports.createRenderer=J;exports.createSchemaApi=ke;exports.createSchemaApis=He;exports.createServiceRequest=Gt;exports.defaultLoader=Je;exports.fillBasePath=H;exports.getMock=k;exports.getModifiers=ue;exports.getPlugin=le;exports.getRawComponent=Re;exports.isBuiltInTag=Ie;exports.isCSSUrl=N;exports.isJSCode=Fe;exports.isJSExpression=j;exports.isJSFunction=$;exports.isJSON=$e;exports.isJSUrl=U;exports.isNativeTag=Te;exports.isVuePlugin=Me;exports.loadCss=Ae;exports.loadCssUrl=oe;exports.loadEnhance=qt;exports.loadScriptUrl=ie;exports.menusFilter=pe;exports.mockApi=Ne;exports.mockApis=xe;exports.mockCleanup=ce;exports.nodeRender=T;exports.parseDeps=be;exports.parseExpression=D;exports.parseFunction=R;exports.parseUrls=Ce;exports.providerKey=fe;exports.removeProdFlag=je;exports.setupPageSetting=ot;exports.toString=ne;exports.useAccess=Oe;exports.useMask=kt;exports.useProvider=de;
|
package/dist/index.mjs
CHANGED
@@ -7,10 +7,10 @@ import { useRoute as Ce } from "vue-router";
|
|
7
7
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
8
8
|
* @name @vtj/renderer
|
9
9
|
* @author CHC chenhuachun1549@dingtalk.com
|
10
|
-
* @version 0.13.
|
10
|
+
* @version 0.13.2
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
12
12
|
*/
|
13
|
-
const O = "0.13.
|
13
|
+
const O = "0.13.2";
|
14
14
|
var _ = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(_ || {});
|
15
15
|
const $e = [
|
16
16
|
"$el",
|
@@ -531,7 +531,7 @@ class fe {
|
|
531
531
|
const t = e.params.id;
|
532
532
|
return t && this.can(t);
|
533
533
|
}
|
534
|
-
return !0;
|
534
|
+
return e.meta.__vtj__ ? this.can(e.meta.__vtj__) : !0;
|
535
535
|
}
|
536
536
|
setGuard(e) {
|
537
537
|
e.beforeEach((t, s, r) => this.guard(t, r));
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vtj/renderer",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.13.
|
4
|
+
"version": "0.13.2",
|
5
5
|
"type": "module",
|
6
6
|
"keywords": [
|
7
7
|
"低代码引擎",
|
@@ -21,15 +21,15 @@
|
|
21
21
|
"author": "chenhuachun",
|
22
22
|
"license": "MIT",
|
23
23
|
"dependencies": {
|
24
|
-
"@vtj/
|
25
|
-
"@vtj/
|
24
|
+
"@vtj/utils": "~0.13.2",
|
25
|
+
"@vtj/core": "~0.13.2"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"vue": "~3.5.5",
|
29
29
|
"vue-router": "~4.5.0",
|
30
30
|
"@vtj/cli": "~0.12.10",
|
31
|
-
"@vtj/icons": "~0.13.
|
32
|
-
"@vtj/ui": "~0.13.
|
31
|
+
"@vtj/icons": "~0.13.2",
|
32
|
+
"@vtj/ui": "~0.13.2"
|
33
33
|
},
|
34
34
|
"exports": {
|
35
35
|
".": {
|
package/types/version.d.ts
CHANGED
@@ -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.
|
5
|
+
* @version 0.13.1
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
7
|
*/
|
8
|
-
export declare const version = "0.
|
8
|
+
export declare const version = "0.13.1";
|