@vtj/renderer 0.9.1 → 0.9.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 CHANGED
@@ -2,10 +2,10 @@
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.9.1
5
+ * @version 0.9.2
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const R="0.9.1";var _=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(_||{});const V=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ge=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],ae=["vIf","vShow","vModel","vFor","vBind"],ce={String,Number,Boolean,Array,Object,Function,Date},k="VtjPage",T="VtjHomepage",le="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(","),ue="component,slot".split(",");function A(n,e){return n.map(t=>u.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function B(n){return/\.css$/.test(n)}function U(n){return/\.js$/.test(n)}function de(n){return/\.json$/.test(n)}function We(n){return n.map(e=>`<script src="${u.url.append(e,{v:R})}"><\/script>`).join("")}function Ye(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:R})}" />`).join("")}function pe(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function fe(n,e,t=!1){const s=n.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},l={},m=[],d={};return s.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{U(y)&&r.push(pe(y,t)),B(y)&&o.push(y)}),v&&(i.push(v),c[v]=A(f||[],e),b&&(l[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(d[h]=v)}),{scripts:A(r,e),css:A(o,e),materials:A(a,e),libraryExports:i,materialExports:u.dedupArray(m),materialMapLibrary:d,libraryMap:c,libraryLocaleMap:l}}function he(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function K(n){return u.isString(n)?n:JSON.stringify(n)}function G(n,e,t){const s=n.CSSStyleSheet;if(s.prototype.replaceSync){const r=new s;r.id=e,r.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(c=>c.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=n.document;let o=r.getElementById(e);o?o.innerHTML=t:(o=r.createElement("style"),o.id=e,o.innerHTML=t,r.head.appendChild(o))}}async function me(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&G(window,n,t)}function ge(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,s.appendChild(a)}}async function ve(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const c of n){const l=s.createElement("script");l.src=c,l.onload=()=>{o=t[e],o?a(o.default||o):i(null)},l.onerror=m=>{i(m)},r.appendChild(l)}})}function ye(n){return u.isFunction(n)||u.isFunction(n?.install)}function _e(n){return ue.includes(n)}function we(n){return le.includes(n)}function x(n,e,t=!1,s=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,c)=>`__self${c}`),o=r.join(`
8
- `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(u.logger.error("parseExpression.error",r,n,e?.__self??e),s)throw r}}function z(n,e,t=!1,s=!1){const r=x(n,e,t,s);if(typeof r!="function"&&(u.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return r}function S(n){return n&&n.type==="JSExpression"}function O(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function Se(n){return S(n)||O(n)}function Qe(n){return Se(n)?n.value:JSON.stringify(n)}let P=null;const Xe=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{M.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{P&&P.close(),P=M.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{P&&(P.close(),P=null)}}});let C;function be(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?x(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(a,i)=>(delete o.data,s.send(u.merge(o,i||{},{data:a})))}}function je(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,a)}}function Ee(n=[],e=[],t){const s={};for(const r of n)s[r.id]=be(r,t);for(const r of e)s[r.id]=je(r,t);return s}async function $e(n=[]){C=await import("mockjs").then(e=>e.default||e),C&&(C.setup({timeout:"50-500"}),W(),n.forEach(e=>Pe(C,e)))}function Pe(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const r=u.pathToRegexp(`${t}(.*)`),o=u.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=x(s,{},!0);n.mock(r,i=>{const c=u.url.parse(i.url)||{},l=i.body instanceof FormData?u.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:l,params:c,query:m}),n.mock(a(i))})}}function W(){C&&(C._mocked={})}const Ze={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},Y=Symbol("access");class et{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},Ze,e),this.loadData()}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(u.storage.save(t,e,{type:"local",prefix:s}),r&&u.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,u.storage.remove(e,{type:"local",prefix:t}),s&&u.cookie.remove(r)}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):u.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return u.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(Y,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}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(r=>u.unRSA(r,t));this.data=JSON.parse(s.join(""));return}if(typeof e=="string")try{const s=t?u.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=u.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!u.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===k){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}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:r=!1}=this.options;return await this.showTip(s),u.isFunction(r)?(r(),t(!1)):u.isString(r)?t(r):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}=this.options;return e.status===t||e.data.code===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 u.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=>(await this.showUnauthorizedAlert(t),t),async t=>{const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Ce(){return p.inject(Y,null)}class Re{__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:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=N){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__refs={},this.$refs={},this.__contextRefs={},this.context={}})}__proxy(){this.__instance&&V.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){V.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return z({type:s,value:r},this)}else return z(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return x({type:s,value:r},this)}else return x(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await u.delay(0);let r=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!r){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(r.nodeType===3&&r.nextSibling&&(r=r.nextSibling),r.__vtj__=e,_.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=s),typeof t=="function")t(s);else if(t){const o=this.$refs[t];if(o&&s!==o){const a=new Set([].concat(o,s));this.$refs[t]=Array.from(a)}else this.$refs[t]=s}return s}}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function D(n){const{Vue:e=N,mode:t=_.Runtime,components:s={},libs:r={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),c={$components:s,$libs:r,$apis:o},l=new Re({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...st(i.value.props??[],l)},setup(d){l.$props=d,l.props=d,i.value.id&&G(n.window||window,i.value.id,i.value.css||""),l.state=nt(e,i.value.state??{},l);const f=rt(e,i.value.computed??{},l),g=ot(i.value.methods??{},l),v=it(e,i.value.inject,l),h=ke(i.value.dataSources||{},l),b={...v,...f,...g,...h};return l.setup(b,e),at(e,i.value.watch??[],l),{vtj:l}},emits:tt(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?F(d[0],l,e,a):d.map(f=>F(f,l,e,a))},...ct(i.value.lifeCycles??{},l)});return{renderer:e.markRaw(m),context:l}}function tt(n=[]){return n.map(e=>u.isString(e)?e:e.name)}function st(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>ce[o]):void 0;return n.map(s=>u.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:S(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function nt(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return S(o)?o=t.__parseExpression(o):O(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function rt(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function ot(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function it(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:a}=r||{};r.default;const i=S(a)?t.__parseExpression(a)||o:a??o,c=S(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(i,c),s},{})}function ke(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s],o=e.$apis[r.ref],a=O(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;return t[s]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c},t},{})}function at(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ct(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}let J=[];const xe=n=>n;async function Q(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(i=>U(i));if(r.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&ge(o,e),await ve(r,s,e).catch(i=>(console.warn("loadScriptUrl error",r,s,i),null))}function H(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(J.forEach(r=>{delete s.window[r]}),J=[]),(r,o,a=N)=>!o||typeof o=="string"?r:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=r),i?D({...s,Vue:a,dsl:i,mode:_.Runtime,loader:H(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?D({...s,Vue:a,dsl:i,mode:_.Runtime,loader:H(n)}).renderer:null}):o.type==="Plugin"?(o.library&&J.push(o.library),a.defineAsyncComponent(async()=>{const i=await Q(o,s.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function F(n,e,t=N,s=xe){if(!n||!n.name||n.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=n,{vIf:i,vFor:c,vShow:l,vModels:m,vBind:d,vHtml:f,others:g}=ut(a);if(i&&!dt(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(n.name==="component")return pt(h,n.props?.is);if(n.name==="slot")return n.name;const E=s(n.name,n.from,t);return u.isString(E)?_e(E)||we(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=ft(o,n.props??{},h),He=ht(t,n.events??{},h);if(n.name==="slot")return mt(t,n,j,h,s);d&&Object.assign(j,h.__parseExpression(d.value)),l&&(j.style=Object.assign(j.style??{},vt(l,h))),f&&Object.assign(j,yt(f,h)),m.forEach(E=>{Object.assign(j,_t(t,E,h))});const Ne=wt(t,n.children??[],h,s,n);let q=t.createVNode(y,{...j,...He},Ne);const ne=r?lt(r,g,h):[];return ne.length&&(q=t.withDirectives(q,ne)),q};return c?jt(c,v,e):v(e)}function lt(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const a=[o];return r.value&&a.push(t.__parseExpression(r.value)),r.arg&&a.push(r.arg),r.modifiers&&a.push(S(r.modifiers)?t.__parseExpression(r.modifiers):r.modifiers),a}).filter(r=>!!r)}function ut(n=[]){const e=n.find(c=>u.camelCase(c.name)==="vIf"),t=n.find(c=>u.camelCase(c.name)==="vFor"),s=n.find(c=>u.camelCase(c.name)==="vShow"),r=n.find(c=>u.camelCase(c.name)==="vBind"),o=n.find(c=>u.camelCase(c.name)==="vHtml"),a=n.filter(c=>u.camelCase(c.name)==="vModel"),i=n.filter(c=>!ae.includes(u.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:r,others:i,vHtml:o}}function dt(n,e){return!!e.__parseExpression(n.value)}function pt(n,e){return e?S(e)?n.__parseExpression(e):e:"div"}function ft(n,e,t){const s=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return S(a)?a=t.__parseExpression(a):O(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return s.ref=t.__ref(n,s.ref),s}function ht(n,e,t){const s=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],c=X(i.modifiers),l=c.find(f=>s.includes(f)),m="on"+u.upperFirst(a)+(l&&r[l]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,c)),o},{})}function X(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function mt(n,e,t,s,r){const{children:o}=e,a=gt(e,s),i=s.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):S(o)?n.createTextVNode(K(s.__parseExpression(o))):Array.isArray(o)?o.map(c=>F(c,s,n,r)):null:null}function gt(n,e){const{props:t}=n,s=t?.name||"default";return{name:S(s)?e.__parseExpression(s):s,params:[]}}function vt(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function yt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function _t(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const R="0.9.2";var _=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(_||{});const V=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ge=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],ae=["vIf","vShow","vModel","vFor","vBind","vHtml"],ce={String,Number,Boolean,Array,Object,Function,Date},k="VtjPage",T="VtjHomepage",le="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(","),ue="component,slot".split(",");function A(n,e){return n.map(t=>u.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function B(n){return/\.css$/.test(n)}function U(n){return/\.js$/.test(n)}function de(n){return/\.json$/.test(n)}function We(n){return n.map(e=>`<script src="${u.url.append(e,{v:R})}"><\/script>`).join("")}function Ye(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:R})}" />`).join("")}function pe(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function fe(n,e,t=!1){const s=n.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},l={},m=[],d={};return s.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{U(y)&&r.push(pe(y,t)),B(y)&&o.push(y)}),v&&(i.push(v),c[v]=A(f||[],e),b&&(l[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(d[h]=v)}),{scripts:A(r,e),css:A(o,e),materials:A(a,e),libraryExports:i,materialExports:u.dedupArray(m),materialMapLibrary:d,libraryMap:c,libraryLocaleMap:l}}function he(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function K(n){return u.isString(n)?n:JSON.stringify(n)}function G(n,e,t){const s=n.CSSStyleSheet;if(s.prototype.replaceSync){const r=new s;r.id=e,r.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(c=>c.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=n.document;let o=r.getElementById(e);o?o.innerHTML=t:(o=r.createElement("style"),o.id=e,o.innerHTML=t,r.head.appendChild(o))}}async function me(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&G(window,n,t)}function ge(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,s.appendChild(a)}}async function ve(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const c of n){const l=s.createElement("script");l.src=c,l.onload=()=>{o=t[e],o?a(o.default||o):i(null)},l.onerror=m=>{i(m)},r.appendChild(l)}})}function ye(n){return u.isFunction(n)||u.isFunction(n?.install)}function _e(n){return ue.includes(n)}function we(n){return le.includes(n)}function x(n,e,t=!1,s=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,c)=>`__self${c}`),o=r.join(`
8
+ `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(u.logger.error("parseExpression.error",r,n,e?.__self??e),s)throw r}}function z(n,e,t=!1,s=!1){const r=x(n,e,t,s);if(typeof r!="function"&&(u.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return r}function S(n){return n&&n.type==="JSExpression"}function O(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function Se(n){return S(n)||O(n)}function Qe(n){return Se(n)?n.value:JSON.stringify(n)}let P=null;const Xe=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{M.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{P&&P.close(),P=M.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{P&&(P.close(),P=null)}}});let C;function be(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?x(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(a,i)=>(delete o.data,s.send(u.merge(o,i||{},{data:a})))}}function je(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,a)}}function Ee(n=[],e=[],t){const s={};for(const r of n)s[r.id]=be(r,t);for(const r of e)s[r.id]=je(r,t);return s}async function $e(n=[]){C=await import("mockjs").then(e=>e.default||e),C&&(C.setup({timeout:"50-500"}),W(),n.forEach(e=>Pe(C,e)))}function Pe(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const r=u.pathToRegexp(`${t}(.*)`),o=u.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=x(s,{},!0);n.mock(r,i=>{const c=u.url.parse(i.url)||{},l=i.body instanceof FormData?u.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:l,params:c,query:m}),n.mock(a(i))})}}function W(){C&&(C._mocked={})}const Ze={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},Y=Symbol("access");class et{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},Ze,e),this.loadData()}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(u.storage.save(t,e,{type:"local",prefix:s}),r&&u.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,u.storage.remove(e,{type:"local",prefix:t}),s&&u.cookie.remove(r)}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):u.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return u.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(Y,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}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(r=>u.unRSA(r,t));this.data=JSON.parse(s.join(""));return}if(typeof e=="string")try{const s=t?u.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=u.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!u.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===k){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}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:r=!1}=this.options;return await this.showTip(s),u.isFunction(r)?(r(),t(!1)):u.isString(r)?t(r):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}=this.options;return e.status===t||e.data.code===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 u.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=>(await this.showUnauthorizedAlert(t),t),async t=>{const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Ce(){return p.inject(Y,null)}class Re{__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:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=N){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__refs={},this.$refs={},this.__contextRefs={},this.context={}})}__proxy(){this.__instance&&V.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){V.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return z({type:s,value:r},this)}else return z(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return x({type:s,value:r},this)}else return x(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await u.delay(0);let r=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!r){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(r.nodeType===3&&r.nextSibling&&(r=r.nextSibling),r.__vtj__=e,_.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=s),typeof t=="function")t(s);else if(t){const o=this.$refs[t];if(o&&s!==o){const a=new Set([].concat(o,s));this.$refs[t]=Array.from(a)}else this.$refs[t]=s}return s}}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function D(n){const{Vue:e=N,mode:t=_.Runtime,components:s={},libs:r={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),c={$components:s,$libs:r,$apis:o},l=new Re({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...st(i.value.props??[],l)},setup(d){l.$props=d,l.props=d,i.value.id&&G(n.window||window,i.value.id,i.value.css||""),l.state=nt(e,i.value.state??{},l);const f=rt(e,i.value.computed??{},l),g=ot(i.value.methods??{},l),v=it(e,i.value.inject,l),h=ke(i.value.dataSources||{},l),b={...v,...f,...g,...h};return l.setup(b,e),at(e,i.value.watch??[],l),{vtj:l}},emits:tt(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?F(d[0],l,e,a):d.map(f=>F(f,l,e,a))},...ct(i.value.lifeCycles??{},l)});return{renderer:e.markRaw(m),context:l}}function tt(n=[]){return n.map(e=>u.isString(e)?e:e.name)}function st(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>ce[o]):void 0;return n.map(s=>u.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:S(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function nt(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return S(o)?o=t.__parseExpression(o):O(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function rt(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function ot(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function it(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:a}=r||{};r.default;const i=S(a)?t.__parseExpression(a)||o:a??o,c=S(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(i,c),s},{})}function ke(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s],o=e.$apis[r.ref],a=O(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;return t[s]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c},t},{})}function at(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ct(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}let J=[];const xe=n=>n;async function Q(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(i=>U(i));if(r.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&ge(o,e),await ve(r,s,e).catch(i=>(console.warn("loadScriptUrl error",r,s,i),null))}function H(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(J.forEach(r=>{delete s.window[r]}),J=[]),(r,o,a=N)=>!o||typeof o=="string"?r:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=r),i?D({...s,Vue:a,dsl:i,mode:_.Runtime,loader:H(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?D({...s,Vue:a,dsl:i,mode:_.Runtime,loader:H(n)}).renderer:null}):o.type==="Plugin"?(o.library&&J.push(o.library),a.defineAsyncComponent(async()=>{const i=await Q(o,s.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function F(n,e,t=N,s=xe){if(!n||!n.name||n.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=n,{vIf:i,vFor:c,vShow:l,vModels:m,vBind:d,vHtml:f,others:g}=ut(a);if(i&&!dt(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(n.name==="component")return pt(h,n.props?.is);if(n.name==="slot")return n.name;const E=s(n.name,n.from,t);return u.isString(E)?_e(E)||we(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=ft(o,n.props??{},h),He=ht(t,n.events??{},h);if(n.name==="slot")return mt(t,n,j,h,s);d&&Object.assign(j,h.__parseExpression(d.value)),l&&(j.style=Object.assign(j.style??{},vt(l,h))),f&&Object.assign(j,yt(f,h)),m.forEach(E=>{Object.assign(j,_t(t,E,h))});const Ne=wt(t,n.children??[],h,s,n);let q=t.createVNode(y,{...j,...He},Ne);const ne=r?lt(r,g,h):[];return ne.length&&(q=t.withDirectives(q,ne)),q};return c?jt(c,v,e):v(e)}function lt(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const a=[o];return r.value&&a.push(t.__parseExpression(r.value)),r.arg&&a.push(r.arg),r.modifiers&&a.push(r.modifiers),a}).filter(r=>!!r)}function ut(n=[]){const e=n.find(c=>u.camelCase(c.name)==="vIf"),t=n.find(c=>u.camelCase(c.name)==="vFor"),s=n.find(c=>u.camelCase(c.name)==="vShow"),r=n.find(c=>u.camelCase(c.name)==="vBind"),o=n.find(c=>u.camelCase(c.name)==="vHtml"),a=n.filter(c=>u.camelCase(c.name)==="vModel"),i=n.filter(c=>!ae.includes(u.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:r,others:i,vHtml:o}}function dt(n,e){return!!e.__parseExpression(n.value)}function pt(n,e){return e?S(e)?n.__parseExpression(e):e:"div"}function ft(n,e,t){const s=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return S(a)?a=t.__parseExpression(a):O(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return s.ref=t.__ref(n,s.ref),s}function ht(n,e,t){const s=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],c=X(i.modifiers),l=c.find(f=>s.includes(f)),m="on"+u.upperFirst(a)+(l&&r[l]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,c)),o},{})}function X(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function mt(n,e,t,s,r){const{children:o}=e,a=gt(e,s),i=s.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):S(o)?n.createTextVNode(K(s.__parseExpression(o))):Array.isArray(o)?o.map(c=>F(c,s,n,r)):null:null}function gt(n,e){const{props:t}=n,s=t?.name||"default";return{name:S(s)?e.__parseExpression(s):s,params:[]}}function vt(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function yt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function _t(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
10
  }`:"(v) => {}"},r=t.__parseFunction(s),o=X(S(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=S(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&r?n.withModifiers(r,o):r}}function wt(n,e,t,s,r){if(!e)return null;if(u.isString(e))return{default:()=>e};if(S(e))return{default:()=>K(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=St(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[c,{nodes:l,params:m}])=>(i[c]=d=>{const f=m.length?u.pick(d??{},m):a(d);return l.map(g=>F(g,t.__clone(f),n,s))},i),{})}return null}function St(n){const e={default:{params:[],nodes:[]}};for(const t of n){const s=bt(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params)):e[r]={nodes:[t],params:s.params}}return e}function bt(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function jt(n,e,t){const{value:s,iterator:r}=n,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((c,l)=>l+1)),Array.isArray(i)?i.map((c,l)=>e(t.__clone({[o]:c,[a]:l}))):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}function Et(n){return p.getCurrentScope()?(p.onScopeDispose(n),!0):!1}function Z(n){return typeof n=="function"?n():p.unref(n)}const Ae=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const $t=n=>n!=null,Pt=()=>{};function Ct(n){return p.getCurrentInstance()}function Rt(...n){if(n.length!==1)return p.toRef(...n);const e=n[0];return typeof e=="function"?p.readonly(p.customRef(()=>({get:e,set:Pt}))):p.ref(e)}function kt(n,e){Ct()&&p.onBeforeUnmount(n,e)}const xt=Ae?window:void 0,At=Ae?window.document:void 0;function Tt(n){var e;const t=Z(n);return(e=t?.$el)!=null?e:t}function Mt(){const n=p.ref(!1),e=p.getCurrentInstance();return e&&p.onMounted(()=>{n.value=!0},e),n}function Ft(n){const e=Mt();return p.computed(()=>(e.value,!!n()))}function Ot(n,e,t={}){const{window:s=xt,...r}=t;let o;const a=Ft(()=>s&&"MutationObserver"in s),i=()=>{o&&(o.disconnect(),o=void 0)},c=p.computed(()=>{const f=Z(n),g=(Array.isArray(f)?f:[f]).map(Tt).filter($t);return new Set(g)}),l=p.watch(()=>c.value,f=>{i(),a.value&&f.size&&(o=new MutationObserver(e),f.forEach(g=>o.observe(g,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),d=()=>{l(),i()};return Et(d),{isSupported:a,stop:d,takeRecords:m}}function It(n=null,e={}){var t,s,r;const{document:o=At,restoreOnUnmount:a=d=>d}=e,i=(t=o?.title)!=null?t:"",c=Rt((s=n??o?.title)!=null?s:null),l=n&&typeof n=="function";function m(d){if(!("titleTemplate"in e))return d;const f=e.titleTemplate||"%s";return typeof f=="function"?f(d):Z(f).replace(/%s/g,d)}return p.watch(c,(d,f)=>{d!==f&&o&&(o.title=m(typeof d=="string"?d:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!l&&Ot((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==c.value&&(c.value=m(o.title))},{childList:!0}),kt(()=>{if(a){const d=a(i,c.value||"");d!=null&&o&&(o.title=d)}}),c}const oe=p.defineComponent({name:"VtjPageContainer",async setup(){const n=te(),e=ie.useRoute(),t=e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,o=p.ref(Symbol());return s&&(Object.assign(e.meta,s.meta||{},{cache:s.cache}),It(s.title||"VTJ")),{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?p.h(n,{...e,key:t}):p.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Dt={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},Ht={"data-l-h6o7ki7":"",class:"vtj-startup"},Nt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},Bt={"data-l-h6o7ki7":""},Ut={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},Lt={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},Te=p.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"},link:{}},setup(n){((r,o)=>{let a=document.getElementById("h6o7ki7");a||(a=document.createElement("style"),a.id="h6o7ki7",document.head.appendChild(a),a.innerHTML=o)})("h6o7ki7",`
11
11
  .vtj-startup[data-l-h6o7ki7]{
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { Base as Ae, BUILT_IN_COMPONENTS as Te, ProjectModel as M, HistoryModel as de } from "@vtj/core";
2
- import { isUrl as Ie, url as x, dedupArray as De, isString as j, isFunction as K, logger as O, createRequest as Me, merge as Oe, pathToRegexp as He, pathToRegexpMatch as Be, formDataToJson as Ne, storage as q, cookie as J, toArray as oe, unRSA as ie, delay as fe, camelCase as $, upperFirst as Ue, pick as Le, jsonp as qe, loadScript as ae, Request as Je, Storage as Ve, mapToObject as Q } from "@vtj/utils";
1
+ import { Base as Ae, BUILT_IN_COMPONENTS as Te, ProjectModel as H, HistoryModel as de } from "@vtj/core";
2
+ import { isUrl as Ie, url as x, dedupArray as De, isString as j, isFunction as K, logger as M, createRequest as He, merge as Me, pathToRegexp as Oe, pathToRegexpMatch as Be, formDataToJson as Ne, storage as q, cookie as J, toArray as oe, unRSA as ie, delay as fe, camelCase as $, upperFirst as Ue, pick as Le, jsonp as qe, loadScript as ae, Request as Je, Storage as Ve, mapToObject as Q } from "@vtj/utils";
3
3
  import * as B from "vue";
4
4
  import { inject as he, toRef as ze, readonly as Ke, customRef as We, ref as F, onBeforeUnmount as Ge, getCurrentScope as Ye, onScopeDispose as Qe, unref as Xe, getCurrentInstance as me, watch as ge, computed as ve, onMounted as Ze, defineComponent as X, h as W, openBlock as et, createElementBlock as tt, createElementVNode as E, toDisplayString as V, defineAsyncComponent as ce, watchEffect as st } from "vue";
5
5
  import { ElNotification as N, ElLoading as nt } from "element-plus";
@@ -8,10 +8,10 @@ import { useRoute as ye } from "vue-router";
8
8
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
9
9
  * @name @vtj/renderer
10
10
  * @author CHC chenhuachun1549@dingtalk.com
11
- * @version 0.9.1
11
+ * @version 0.9.2
12
12
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
13
13
  */
14
- const k = "0.9.1";
14
+ const k = "0.9.2";
15
15
  var y = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(y || {});
16
16
  const le = [
17
17
  "$el",
@@ -39,7 +39,14 @@ const le = [
39
39
  "renderTriggered",
40
40
  "activated",
41
41
  "deactivated"
42
- ], rt = ["vIf", "vShow", "vModel", "vFor", "vBind"], ot = {
42
+ ], rt = [
43
+ "vIf",
44
+ "vShow",
45
+ "vModel",
46
+ "vFor",
47
+ "vBind",
48
+ "vHtml"
49
+ ], ot = {
43
50
  String,
44
51
  Number,
45
52
  Boolean,
@@ -161,13 +168,13 @@ function A(n, e, t = !1, s = !1) {
161
168
  const a = `with(${t ? "{}" : "$scope || {}"}) { ${o} }`;
162
169
  return new Function("$scope", a)(e);
163
170
  } catch (r) {
164
- if (O.error("parseExpression.error", r, n, e?.__self ?? e), s)
171
+ if (M.error("parseExpression.error", r, n, e?.__self ?? e), s)
165
172
  throw r;
166
173
  }
167
174
  }
168
175
  function ue(n, e, t = !1, s = !1) {
169
176
  const r = A(n, e, t, s);
170
- if (typeof r != "function" && (O.error(
177
+ if (typeof r != "function" && (M.error(
171
178
  "parseFunction.error",
172
179
  "not a function",
173
180
  n,
@@ -189,7 +196,7 @@ function Ts(n) {
189
196
  return yt(n) ? n.value : JSON.stringify(n);
190
197
  }
191
198
  let R = null;
192
- const _t = Me({
199
+ const _t = He({
193
200
  settings: {
194
201
  type: "form",
195
202
  validSuccess: !0,
@@ -231,7 +238,7 @@ function wt(n, e) {
231
238
  headers: r
232
239
  }
233
240
  };
234
- return (a, i) => (delete o.data, s.send(Oe(o, i || {}, { data: a })));
241
+ return (a, i) => (delete o.data, s.send(Me(o, i || {}, { data: a })));
235
242
  }
236
243
  }
237
244
  function St(n, e) {
@@ -263,7 +270,7 @@ function $t(n, e) {
263
270
  if (!e.mock) return;
264
271
  const { url: t, mockTemplate: s } = e;
265
272
  if (t && s) {
266
- const r = He(`${t}(.*)`), o = Be(t, { decode: decodeURIComponent }), a = A(s, {}, !0);
273
+ const r = Oe(`${t}(.*)`), o = Be(t, { decode: decodeURIComponent }), a = A(s, {}, !0);
267
274
  n.mock(r, (i) => {
268
275
  const c = x.parse(i.url) || {}, l = i.body instanceof FormData ? Ne(i.body) : i.body, f = o(i.url)?.params;
269
276
  return Object.assign(i, { data: l, params: c, query: f }), n.mock(a(i));
@@ -573,9 +580,9 @@ function G(n) {
573
580
  render() {
574
581
  if (!i.value.nodes) return null;
575
582
  const u = i.value.nodes || [];
576
- return u.length === 1 ? H(u[0], l, e, a) : u.map((p) => H(p, l, e, a));
583
+ return u.length === 1 ? O(u[0], l, e, a) : u.map((p) => O(p, l, e, a));
577
584
  },
578
- ...Mt(i.value.lifeCycles ?? {}, l)
585
+ ...Ht(i.value.lifeCycles ?? {}, l)
579
586
  });
580
587
  return {
581
588
  renderer: e.markRaw(f),
@@ -661,14 +668,14 @@ function Dt(n, e = [], t) {
661
668
  );
662
669
  });
663
670
  }
664
- function Mt(n, e) {
671
+ function Ht(n, e) {
665
672
  return Object.entries(n ?? {}).reduce(
666
673
  (t, [s, r]) => (t[s] = e.__parseFunction(r), t),
667
674
  {}
668
675
  );
669
676
  }
670
677
  let z = [];
671
- const Ot = (n) => n;
678
+ const Mt = (n) => n;
672
679
  async function je(n, e = window) {
673
680
  const { urls: t = [], library: s } = n, r = t.filter((i) => ee(i));
674
681
  if (r.length === 0 || !s) return null;
@@ -704,7 +711,7 @@ function Y(n) {
704
711
  return i || (console.warn("getPlugin result is null", o), null);
705
712
  })) : r;
706
713
  }
707
- function H(n, e, t = B, s = Ot) {
714
+ function O(n, e, t = B, s = Mt) {
708
715
  if (!n || !n.name || n.invisible) return null;
709
716
  const r = t.getCurrentInstance()?.appContext, { id: o = null, directives: a = [] } = n, { vIf: i, vFor: c, vShow: l, vModels: f, vBind: u, vHtml: p, others: h } = Bt(a);
710
717
  if (i && !Nt(i, e))
@@ -733,20 +740,18 @@ function H(n, e, t = B, s = Ot) {
733
740
  n
734
741
  );
735
742
  let L = t.createVNode(g, { ...S, ...Ce }, Fe);
736
- const re = r ? Ht(r, h, d) : [];
743
+ const re = r ? Ot(r, h, d) : [];
737
744
  return re.length && (L = t.withDirectives(L, re)), L;
738
745
  };
739
746
  return c ? Xt(c, m, e) : m(e);
740
747
  }
741
- function Ht(n, e, t) {
748
+ function Ot(n, e, t) {
742
749
  const s = n.app;
743
750
  return e.map((r) => {
744
751
  const o = typeof r.name == "string" ? s.directive(r.name) : t.__parseExpression(r.name);
745
752
  if (!o) return null;
746
753
  const a = [o];
747
- return r.value && a.push(t.__parseExpression(r.value)), r.arg && a.push(r.arg), r.modifiers && a.push(
748
- _(r.modifiers) ? t.__parseExpression(r.modifiers) : r.modifiers
749
- ), a;
754
+ return r.value && a.push(t.__parseExpression(r.value)), r.arg && a.push(r.arg), r.modifiers && a.push(r.modifiers), a;
750
755
  }).filter((r) => !!r);
751
756
  }
752
757
  function Bt(n = []) {
@@ -804,7 +809,7 @@ function Jt(n, e, t, s, r) {
804
809
  return i ? i(t) : o ? j(o) ? n.createTextVNode(o) : _(o) ? n.createTextVNode(
805
810
  _e(s.__parseExpression(o))
806
811
  ) : Array.isArray(o) ? o.map(
807
- (c) => H(c, s, n, r)
812
+ (c) => O(c, s, n, r)
808
813
  ) : null : null;
809
814
  }
810
815
  function Vt(n, e) {
@@ -853,7 +858,7 @@ function Gt(n, e, t, s, r) {
853
858
  return Object.entries(o).reduce((i, [c, { nodes: l, params: f }]) => (i[c] = (u) => {
854
859
  const p = f.length ? Le(u ?? {}, f) : a(u);
855
860
  return l.map(
856
- (h) => H(h, t.__clone(p), n, s)
861
+ (h) => O(h, t.__clone(p), n, s)
857
862
  );
858
863
  }, i), {});
859
864
  }
@@ -1309,13 +1314,13 @@ class Ss extends Ae {
1309
1314
  async getRenderComponent(e, t) {
1310
1315
  const s = this.getFile(e);
1311
1316
  if (!s)
1312
- return O.warn(`Can not find file: ${e}`), null;
1317
+ return M.warn(`Can not find file: ${e}`), null;
1313
1318
  t && t(s);
1314
1319
  const r = `.vtj/vue/${e}.vue`, o = this.modules[r];
1315
1320
  if (o)
1316
1321
  return (await o())?.default;
1317
1322
  const a = await this.getDsl(s.id);
1318
- return a ? this.createDslRenderer(a).renderer : (O.warn(`Can not find dsl: ${e}`), null);
1323
+ return a ? this.createDslRenderer(a).renderer : (M.warn(`Can not find dsl: ${e}`), null);
1319
1324
  }
1320
1325
  defineUrlSchemaComponent(e, t) {
1321
1326
  return ce(async () => {
@@ -1481,13 +1486,13 @@ const v = new Ve({
1481
1486
  expired: 0,
1482
1487
  prefix: "__VTJ_"
1483
1488
  });
1484
- class Ms extends ne {
1489
+ class Hs extends ne {
1485
1490
  init(e) {
1486
- const t = new M(e), s = v.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
1491
+ const t = new H(e), s = v.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
1487
1492
  return v.save(`project_${t.id}`, r), Promise.resolve(r);
1488
1493
  }
1489
1494
  saveProject(e) {
1490
- const t = new M(e);
1495
+ const t = new H(e);
1491
1496
  return v.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
1492
1497
  }
1493
1498
  saveMaterials(e, t) {
@@ -1538,11 +1543,11 @@ class $s extends ne {
1538
1543
  histories = {};
1539
1544
  historyItems = {};
1540
1545
  init(e) {
1541
- const t = new M(e), s = this.projects[t.id] || {}, r = Object.assign(t.toDsl(), s);
1546
+ const t = new H(e), s = this.projects[t.id] || {}, r = Object.assign(t.toDsl(), s);
1542
1547
  return this.projects[r.id] = r, Promise.resolve(r);
1543
1548
  }
1544
1549
  saveProject(e) {
1545
- const t = new M(e);
1550
+ const t = new H(e);
1546
1551
  return this.projects[t.id] = t.toDsl(), Promise.resolve(!0);
1547
1552
  }
1548
1553
  saveMaterials(e, t) {
@@ -1589,10 +1594,10 @@ class $s extends ne {
1589
1594
  }
1590
1595
  }
1591
1596
  let I = null;
1592
- function Os() {
1597
+ function Ms() {
1593
1598
  return I || (I = new $s(), I);
1594
1599
  }
1595
- class Hs extends ne {
1600
+ class Os extends ne {
1596
1601
  getFileCaches = {};
1597
1602
  async getExtension() {
1598
1603
  return await this.api("getExtension", {}).catch(() => {
@@ -1716,26 +1721,26 @@ export {
1716
1721
  it as HTML_TAGS,
1717
1722
  Ts as JSCodeToString,
1718
1723
  Cs as LIFE_CYCLES_LIST,
1719
- Hs as LocalService,
1724
+ Os as LocalService,
1720
1725
  $s as MemoryService,
1721
1726
  ws as NodeEnv,
1722
1727
  C as PAGE_ROUTE_NAME,
1723
1728
  Ss as Provider,
1724
1729
  ys as Startup,
1725
- Ms as StorageService,
1730
+ Hs as StorageService,
1726
1731
  k as VTJ_RENDERER_VERSION,
1727
1732
  we as adoptedStyleSheets,
1728
1733
  Fs as createAssetScripts,
1729
1734
  As as createAssetsCss,
1730
1735
  It as createDataSources,
1731
1736
  Y as createLoader,
1732
- Os as createMemoryService,
1737
+ Ms as createMemoryService,
1733
1738
  St as createMetaApi,
1734
1739
  Ds as createProvider,
1735
1740
  G as createRenderer,
1736
1741
  wt as createSchemaApi,
1737
1742
  bt as createSchemaApis,
1738
- Ot as defaultLoader,
1743
+ Mt as defaultLoader,
1739
1744
  T as fillBasePath,
1740
1745
  $e as getModifiers,
1741
1746
  je as getPlugin,
@@ -1755,7 +1760,7 @@ export {
1755
1760
  $t as mockApi,
1756
1761
  jt as mockApis,
1757
1762
  Se as mockCleanup,
1758
- H as nodeRender,
1763
+ O as nodeRender,
1759
1764
  ut as parseDeps,
1760
1765
  A as parseExpression,
1761
1766
  ue as parseFunction,
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.9.1",
4
+ "version": "0.9.2",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "mockjs": "~1.1.0",
8
- "@vtj/core": "~0.9.1",
9
- "@vtj/utils": "~0.9.1"
8
+ "@vtj/core": "~0.9.2",
9
+ "@vtj/utils": "~0.9.2"
10
10
  },
11
11
  "devDependencies": {
12
12
  "vue": "~3.5.5",
13
13
  "vue-router": "~4.5.0",
14
14
  "@vtj/cli": "~0.9.1",
15
- "@vtj/icons": "~0.9.1",
16
- "@vtj/ui": "~0.9.1"
15
+ "@vtj/ui": "~0.9.2",
16
+ "@vtj/icons": "~0.9.2"
17
17
  },
18
18
  "exports": {
19
19
  ".": {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.9.0
5
+ * @version 0.9.1
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.9.0";
8
+ export declare const version = "0.9.1";