@vtj/renderer 0.12.62 → 0.12.64
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 +5 -5
- package/dist/index.mjs +157 -151
- package/package.json +5 -5
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.12.
|
5
|
+
* @version 0.12.64
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
|
-
*/const M="0.12.
|
8
|
-
`),
|
9
|
-
`)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function L(r,e,t=!1,s=!1){const n=F(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function j(r){return r&&r.type==="JSExpression"}function O(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Me(r){return j(r)||O(r)}function nt(r){return Me(r)?r.value:JSON.stringify(r)}const it={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},re=Symbol("access");class ne{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},it,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(re,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await d.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Te(){return E.inject(re,null)}function ot(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new ne({alert:o,...i}):void 0}}function at(r={}){return new ne(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?F(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Fe(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Oe(r=[],e=[],t){const s={};for(const n of r)s[n.id]=ke(n,t);for(const n of e)s[n.id]=Fe(n,t);return s}async function De(r=[],e=window){const t=k(e);t&&(ie(e),r.forEach(s=>xe(t,s)))}function He(r,e=window){const t=O(r.mockTemplate)&&r.mockTemplate.value?L(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function xe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=F(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ie(r=window){const e=k(r);e&&(e._mocked={})}class Be{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=K){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return L({type:s,value:n},this)}else return L(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 F({type:s,value:n},this)}else return F(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=K,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new Be({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...lt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&ee(r.window||window,o.value.id,o.value.css||"",!0),c.state=ut(e,o.value.state??{},c);const m=pt(e,o.value.computed??{},c),f=dt(o.value.methods??{},c),h=ft(e,o.value.inject,c);for(const[g,C]of Object.entries(h||{}))h[g]=e.inject(g,C);const v=Ne(o.value.dataSources||{},c),S={...h,...m,...f,...v};return c.setup(S,e),ht(e,o.value.watch??[],c),{vtj:c}},emits:ct(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?I(l[0],c,e,a,l):l.map(m=>I(m,c,e,a,l))},...mt(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function ct(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function lt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>ye[i]):void 0;return r.map(s=>d.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 ut(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return j(i)?i=t.__parseExpression(i):O(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function pt(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function dt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ft(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=j(a)?t.__parseExpression(a)||i:a??i,p=j(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=He(n);else if(n.ref){const i=e.$apis[n.ref],a=O(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function ht(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const Ue=new d.Queue;let Q=[],A={};const Le=r=>r;async function oe(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>B(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&te(i,e),await se(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(Q.forEach(n=>{delete s.window[n]}),Q=[]),(n,i,a=K)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=A[i.id]||await Ue.add(i.id,()=>e(i.id));return o&&(o.name=n,A[i.id]=o),o?J({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=A[i.url]||await t(i.url);return o&&(o.name=n,A[i.url]=o),o?J({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?A[i.library]:null;return o||(i.library&&Q.push(i.library),o=A[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await oe(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function gt(){A={},Ue.clearAllCache()}function I(r,e,t=K,s=Le,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:v,vHtml:S,others:g}=Je(p);if(!i&&(u||l))return null;if(c&&!yt(c,e))return Et(r,e,t,s,n);const C=(y,N=0)=>{const P=y.$components,V=(()=>{if(r.name==="component")return _t(y,r.props?.is);if(r.name==="slot")return r.name;const $=s(r.name,r.from,t);if(d.isString($))return Ae($)||Ie($)?$:P[$]??a?.app?.component($)??$;if(d.isObject($)&&r.id){const fe=`Loader${r.id}_${N}`,he=P[fe];return he||(P[fe]=$)}return $})(),b=St(o,r.props??{},y),Ve=wt(t,r.events??{},y);if(r.name==="slot")return jt(t,r,b,y,s);v&&Object.assign(b,y.__parseExpression(v.value)),f&&(b.style=Object.assign(b.style??{},Ct(f,y))),S&&Object.assign(b,bt(S,y)),h.forEach($=>{Object.assign(b,Rt(t,$,y))});const We=Pt(t,r.children??[],y,s,r),pe=y?.__id?`data-v-${y.__id}`:void 0,Qe=pe?{[pe]:""}:{};let W=t.createVNode(V,{key:`${o}_${N}`,...Qe,...b,...Ve},We);const de=a?vt(a,g,y):[];return de.length&&(W=t.withDirectives(W,de)),W};return m?Mt(m,C,e):C(e)}function vt(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function Je(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!ve.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function yt(r,e){return!!e.__parseExpression(r.value)}function _t(r,e){return e?j(e)?r.__parseExpression(e):e:"div"}function St(r,e,t){const s=X(e,t);return s.ref=t.__ref(r,s.ref),s}function X(r,e){return j(r)?e.__parseExpression(r):O(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>X(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=X(n,e),t},{}):r}function wt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=ae(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function Et(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=Je(o);if(p){if(e.__parseExpression(p.value))return I(n[a],e,t,s,n,!0);continue}if(c)return I(n[a],e,t,s,n,!0)}return null}function ae(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function jt(r,e,t,s,n){const{children:i}=e,a=$t(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):j(i)?r.createTextVNode(Z(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>I(p,s,r,n,i)):null:null}function $t(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 bt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Rt(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
7
|
+
*/const M="0.12.64";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Xe=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],ve=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],ye={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",_e="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(","),Se="component,slot".split(","),Ze=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),et={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 D(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function B(r){return/\.js$/.test(r)}function we(r){return/\.json$/.test(r)}function tt(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function st(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function Ee(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function je(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},l=[],u={};return s.forEach(({urls:m,assetsUrl:h,library:f,assetsLibrary:v,localeLibrary:S})=>{m?.forEach(g=>{B(g)&&n.push(Ee(g,t)),x(g)&&i.push(g)}),f&&(o.push(f),p[f]=D(m||[],e),S&&(c[f]=S)),h&&a.push(h),v&&l.push(v),f&&v&&(u[v]=f)}),{scripts:D(n,e),css:D(i,e),materials:D(a,e),libraryExports:o,materialExports:d.dedupArray(l),materialMapLibrary:u,libraryMap:p,libraryLocaleMap:c}}function $e(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=>x(s)),t=r.filter(s=>B(s));return{css:e,js:t}}function be(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(),y=C.includes("@keyframes");if(c[u]===";")l.push({type:"simple-at-rule",content:c.substring(g,u+1)}),u++;else if(c[u]==="{"){const N=u+1;let P=1;for(u++;u<c.length&&P>0;)c[u]==="{"?P++:c[u]==="}"&&P--,u++;const V=c.substring(g,u),b=c.substring(N,u-1);l.push({type:y?"keyframes":"at-rule",rule:C,content:V,inner:b})}continue}const m=u;for(;u<c.length&&c[u]!=="{";)u++;if(u>=c.length)break;const h=c.substring(m,u).trim();if(!h){u++;continue}const f=u+1;let v=1;for(u++;u<c.length&&v>0;)c[u]==="{"?v++:c[u]==="}"&&v--,u++;const S=c.substring(f,u-1);l.push({type:"rule",selector:h,content:S.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 h=u.trim(),f=m.trim();return h?`${h}[${e}] ${f}`:f}),i=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,h=""]=u,f=m.trim();return f?`${f}[${e}]${h}`:l}return`${l}[${e}]`},a=c=>n(c).split(",").map(u=>i(u)).filter(u=>u.trim()).join(", "),o=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),h=o(m);return`${l.rule} { ${h} }`}catch{return l.content}case"rule":if(!l.selector||!l.content)return"";const u=a(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
|
+
`),l=t(c),u=o(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 Z(r){return d.isString(r)?r:JSON.stringify(r)}function ee(r,e,t,s=!1){const n=r.CSSStyleSheet,i=s?`data-v-${e}`:e,a=s?be(t,i):t;if(n.prototype.replaceSync){const o=new n;o.id=e,o.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,l=Array.from(c).filter(u=>u.id!==e);p.adoptedStyleSheets=[...l,o]}else{const o=r.document;let p=o.getElementById(e);p?p.innerHTML=a:(p=o.createElement("style"),p.id=e,p.innerHTML=a,o.head.appendChild(p))}}async function Re(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&ee(window,r,t)}function te(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function se(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{i=t[e],i?a(i.default||i):o(null)},c.onerror=l=>{o(l)},n.appendChild(c)}})}function Pe(r){return d.isFunction(r)||d.isFunction(r?.install)}function Ae(r){return Se.includes(r)}function Ie(r){return _e.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 rt(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 F(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,p)=>`__self${p}`),i=n.join(`
|
9
|
+
`)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function L(r,e,t=!1,s=!1){const n=F(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function j(r){return r&&r.type==="JSExpression"}function O(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Me(r){return j(r)||O(r)}function nt(r){return Me(r)?r.value:JSON.stringify(r)}const it={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},re=Symbol("access");class ne{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},it,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(re,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await d.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Te(){return E.inject(re,null)}function ot(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate: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:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new ne({alert:o,...i}):void 0}}function at(r={}){return new ne(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?F(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Fe(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Oe(r=[],e=[],t){const s={};for(const n of r)s[n.id]=ke(n,t);for(const n of e)s[n.id]=Fe(n,t);return s}async function De(r=[],e=window){const t=k(e);t&&(ie(e),r.forEach(s=>xe(t,s)))}function He(r,e=window){const t=O(r.mockTemplate)&&r.mockTemplate.value?L(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function xe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=F(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,l=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:l}),r.mock(a(o))})}}function ie(r=window){const e=k(r);e&&(e._mocked={})}class Be{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=K){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return L({type:s,value:n},this)}else return L(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 F({type:s,value:n},this)}else return F(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=K,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new Be({mode:t,dsl:o.value,attrs:p}),l=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...lt(o.value.props??[],c)},setup(u){c.$props=u,c.props=u,o.value.id&&ee(r.window||window,o.value.id,o.value.css||"",!0),c.state=ut(e,o.value.state??{},c);const m=pt(e,o.value.computed??{},c),h=dt(o.value.methods??{},c),f=ft(e,o.value.inject,c);for(const[g,C]of Object.entries(f||{}))f[g]=e.inject(g,C);const v=Ne(o.value.dataSources||{},c),S={...f,...m,...h,...v};return c.setup(S,e),ht(e,o.value.watch??[],c),{vtj:c}},emits:ct(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const u=o.value.nodes||[];return u.length===1?I(u[0],c,e,a,u):u.map(m=>I(m,c,e,a,u))},...mt(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function ct(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function lt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>ye[i]):void 0;return r.map(s=>d.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 ut(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return j(i)?i=t.__parseExpression(i):O(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function pt(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function dt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ft(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=j(a)?t.__parseExpression(a)||i:a??i,p=j(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=He(n);else if(n.ref){const i=e.$apis[n.ref],a=O(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function ht(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const Ue=new d.Queue;let Q=[],A={};const Le=r=>r;async function oe(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>B(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&te(i,e),await se(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(Q.forEach(n=>{delete s.window[n]}),Q=[]),(n,i,a=K)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=A[i.id]||await Ue.add(i.id,()=>e(i.id));return o&&(o.name=n,A[i.id]=o),o?J({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=A[i.url]||await t(i.url);return o&&(o.name=n,A[i.url]=o),o?J({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?A[i.library]:null;return o||(i.library&&Q.push(i.library),o=A[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await oe(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function gt(){A={},Ue.clearAllCache()}function I(r,e,t=K,s=Le,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:l,vElse:u,vFor:m,vShow:h,vModels:f,vBind:v,vHtml:S,others:g}=Je(p);if(!i&&(l||u))return null;if(c&&!yt(c,e))return Et(r,e,t,s,n);const C=(y,N=0)=>{const P=y.$components,V=(()=>{if(r.name==="component")return _t(y,r.props?.is);if(r.name==="slot")return r.name;const $=s(r.name,r.from,t);if(d.isString($))return Ae($)||Ie($)?$:P[$]??a?.app?.component($)??$;if(d.isObject($)&&r.id){const fe=`Loader${r.id}_${N}`,he=P[fe];return he||(P[fe]=$)}return $})(),b=St(o,r.props??{},y),Ve=wt(t,r.events??{},y);if(r.name==="slot")return jt(t,r,b,y,s);v&&Object.assign(b,y.__parseExpression(v.value)),h&&(b.style=Object.assign(b.style??{},Ct(h,y))),S&&Object.assign(b,bt(S,y)),f.forEach($=>{Object.assign(b,Rt(t,$,y))});const We=Pt(t,r.children??[],y,s,r),pe=y?.__id?`data-v-${y.__id}`:void 0,Qe=pe?{[pe]:""}:{};let W=t.createVNode(V,{key:`${o}_${N}`,...Qe,...b,...Ve},We);const de=a?vt(a,g,y):[];return de.length&&(W=t.withDirectives(W,de)),W};return m?Mt(m,C,e):C(e)}function vt(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function Je(r=[]){const e=r.find(l=>d.camelCase(l.name)==="vIf"),t=r.find(l=>d.camelCase(l.name)==="vElseIf"),s=r.find(l=>d.camelCase(l.name)==="vElse"),n=r.find(l=>d.camelCase(l.name)==="vFor"),i=r.find(l=>d.camelCase(l.name)==="vShow"),a=r.find(l=>d.camelCase(l.name)==="vBind"),o=r.find(l=>d.camelCase(l.name)==="vHtml"),p=r.filter(l=>d.camelCase(l.name)==="vModel"),c=r.filter(l=>!ve.includes(d.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function yt(r,e){return!!e.__parseExpression(r.value)}function _t(r,e){return e?j(e)?r.__parseExpression(e):e:"div"}function St(r,e,t){const s=X(e,t);return s.ref=t.__ref(r,s.ref),s}function X(r,e){return j(r)?e.__parseExpression(r):O(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>X(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=X(n,e),t},{}):r}function wt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=ae(o.modifiers),c=p.find(m=>s.includes(m)),l="on"+d.upperFirst(a)+(c&&n[c]||""),u=t.__parseFunction(o.handler);return u&&(i[l]=r.withModifiers(u,p)),i},{})}function Et(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=Je(o);if(p){if(e.__parseExpression(p.value))return I(n[a],e,t,s,n,!0);continue}if(c)return I(n[a],e,t,s,n,!0)}return null}function ae(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function jt(r,e,t,s,n){const{children:i}=e,a=$t(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):j(i)?r.createTextVNode(Z(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>I(p,s,r,n,i)):null:null}function $t(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 bt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Rt(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
10
10
|
${e.value.value} = v;
|
11
|
-
}`:"(v) => {}"},n=t.__parseFunction(s),i=ae(j(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function Pt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(j(e))return{default:()=>Z(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=At(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>I(f,t.__clone(m),r,s,c))},o),{})}return null}function At(r){const e={};for(const t of r){const s=It(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params)):e[n]={nodes:[t],params:s.params}}return e}function It(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Mt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const me=E.defineComponent({name:"VtjPageContainer",async setup(){const r=ue(),e=ge.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=E.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?E.h(r,{...e,key:t}):E.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Tt=E.defineComponent({name:"VtjStartupContainer",render(){return E.h("div","page not found!")}});function z(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?z(r,e,o):void 0}})}function ce(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=ce(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=ue(),i=ge.useRoute(),a=Te(),o=E.ref(!1),p=E.ref(!1),c=n.project;E.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const v=n.getPage(f.id);o.value=!v?.mask,p.value=!!v?.pure}else if(m===H){const v=n.getHomepage();o.value=!v?.mask,p.value=!!v?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=z(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:ce(u,a),pure:p}}const le=Symbol("Provider");var qe=(r=>(r.Production="production",r.Development="development",r))(qe||{});class Ke extends R.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Oe(s,n,this.adapter),ie(i),De(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=je(t,a,o==="development");for(const f of p){const h=s[f],v=e[f];if(v)n[f]=v;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const g of S)x(g)&&await Re(g,d.url.append(g,{v:M})),B(g)&&await d.loadScript(d.url.append(g,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const v=e[m[h]],S=R.BUILT_IN_COMPONENTS[h];if(S)v&&S.forEach(g=>{i[g]=v[g]});else{const g=f[h]?(await f[h]()).default:e[h];g&&v&&(g.components||[]).forEach(C=>{i[C.name]=$e(C,v)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:me},l={path:c,name:H,component:t?.homepage?me:n.startupComponent||Tt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&Pe(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(le,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getMenus(e="page",t=""){return z(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return J({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return 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 oe(e,window))}}function Ft(r){const e=new Ke(r);return{provider:e,onReady:s=>e.ready(s)}}function ue(r={}){const e=E.inject(le,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 Ot(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=Ce(n);if(i.length&&te(i),a.length)return await se(a,t).catch(()=>{})}const ze={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Dt=(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:ze}),Ht=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...ze,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function xt(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class G{constructor(e=d.request){this.req=e,this.api=Dt(e),this.uploader=Ht(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>we(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Bt extends G{init(e){const t=new R.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 R.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new R.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 Ge extends G{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new R.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 R.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new R.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let U=null;function Nt(){return U||(U=new Ge,U)}class Ut extends G{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:d.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}exports.ACCESS=et;exports.ACCESS_KEY=re;exports.Access=ne;exports.BUILD_IN_TAGS=Se;exports.BUILT_IN_DIRECTIVES=ve;exports.BaseService=G;exports.CONTEXT_HOST=Y;exports.Context=Be;exports.ContextMode=_;exports.DATA_TYPES=ye;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=_e;exports.JSCodeToString=nt;exports.LIFE_CYCLES_LIST=Xe;exports.LocalService=Ut;exports.MemoryService=Ge;exports.NodeEnv=qe;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ke;exports.REMOTE=Ze;exports.StorageService=Bt;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=ee;exports.clearLoaderCache=gt;exports.compileScopedCSS=be;exports.createAccess=at;exports.createAdapter=ot;exports.createAssetScripts=tt;exports.createAssetsCss=st;exports.createDataSources=Ne;exports.createLoader=q;exports.createMemoryService=Nt;exports.createMenus=z;exports.createMetaApi=Fe;exports.createMock=He;exports.createProvider=Ft;exports.createRenderer=J;exports.createSchemaApi=ke;exports.createSchemaApis=Oe;exports.createServiceRequest=xt;exports.defaultLoader=Le;exports.fillBasePath=D;exports.getMock=k;exports.getModifiers=ae;exports.getPlugin=oe;exports.getRawComponent=$e;exports.isBuiltInTag=Ae;exports.isCSSUrl=x;exports.isJSCode=Me;exports.isJSExpression=j;exports.isJSFunction=O;exports.isJSON=we;exports.isJSUrl=B;exports.isNativeTag=Ie;exports.isVuePlugin=Pe;exports.loadCss=Re;exports.loadCssUrl=te;exports.loadEnhance=Ot;exports.loadScriptUrl=se;exports.menusFilter=ce;exports.mockApi=xe;exports.mockApis=De;exports.mockCleanup=ie;exports.nodeRender=I;exports.parseDeps=je;exports.parseExpression=F;exports.parseFunction=L;exports.parseUrls=Ce;exports.providerKey=le;exports.removeProdFlag=Ee;exports.setupPageSetting=rt;exports.toString=Z;exports.useAccess=Te;exports.useMask=kt;exports.useProvider=ue;
|
11
|
+
}`:"(v) => {}"},n=t.__parseFunction(s),i=ae(j(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function Pt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(j(e))return{default:()=>Z(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=At(e),a=(o,p)=>!o||!n?{}:n?.id&&Object.keys(o).length?p?{[p]:o}:{[`scope_${n.id}`]:o}:p?{[p]:Object.create(null)}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:l,scope:u}])=>(o[p]=m=>{const h=l.length?d.pick(m??{},l):a(m,u);return c.map(f=>I(f,t.__clone(h),r,s,c))},o),{})}return null}function At(r){const e={};for(const t of r){const s=It(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 It(r="default"){return d.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Mt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const me=E.defineComponent({name:"VtjPageContainer",async setup(){const r=ue(),e=ge.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=E.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?E.h(r,{...e,key:t}):E.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Tt=E.defineComponent({name:"VtjStartupContainer",render(){return E.h("div","page not found!")}});function z(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?z(r,e,o):void 0}})}function ce(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=ce(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=ue(),i=ge.useRoute(),a=Te(),o=E.ref(!1),p=E.ref(!1),c=n.project;E.watchEffect(()=>{const{name:m,params:h,meta:f}=i;if(m===T){const v=n.getPage(h.id);o.value=!v?.mask,p.value=!!v?.pure}else if(m===H){const v=n.getHomepage();o.value=!v?.mask,p.value=!!v?.pure}else o.value=!f.mask,p.value=!!f.pure});const l=z(e,t,c?.pages),u=c?.config;return{disabled:o,logo:u?.logo,themeSwitchable:u?.themeSwitchable,title:u?.title||c?.description||c?.name||"VTJ App",menus:s?l:ce(l,a),pure:p}}const le=Symbol("Provider");var qe=(r=>(r.Production="production",r.Development="development",r))(qe||{});class Ke extends R.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router: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),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:h,request:f}=this.adapter;h&&h.connect({mode:s,router:l,request:f}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Oe(s,n,this.adapter),ie(i),De(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:l,materialExports:u,materialMapLibrary:m}=je(t,a,o==="development");for(const h of p){const f=s[h],v=e[h];if(v)n[h]=v;else if(f)e[h]=n[h]=await f();else{const S=c[h]||[];for(const g of S)x(g)&&await Re(g,d.url.append(g,{v:M})),B(g)&&await d.loadScript(d.url.append(g,{v:M}));n[h]=e[h]}}if(o==="development"){for(const f of l)await d.loadScript(d.url.append(f,{v:M}));const h=this.materials||{};for(const f of u){const v=e[m[f]],S=R.BUILT_IN_COMPONENTS[f];if(S)v&&S.forEach(g=>{i[g]=v[g]});else{const g=h[f]?(await h[f]()).default:e[f];g&&v&&(g.components||[]).forEach(C=>{i[C.name]=$e(C,v)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",l={path:`${c}${o}/:id`,name:T,component:me},u={path:c,name:H,component:t?.homepage?me:n.startupComponent||Tt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,l),e.addRoute(a,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]&&Pe(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(le,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getMenus(e="page",t=""){return z(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return J({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return 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 oe(e,window))}}function Ft(r){const e=new Ke(r);return{provider:e,onReady:s=>e.ready(s)}}function ue(r={}){const e=E.inject(le,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 Ot(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=Ce(n);if(i.length&&te(i),a.length)return await se(a,t).catch(()=>{})}const ze={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Dt=(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:ze}),Ht=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...ze,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function xt(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class G{constructor(e=d.request){this.req=e,this.api=Dt(e),this.uploader=Ht(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>we(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Bt extends G{init(e){const t=new R.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 R.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new R.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 Ge extends G{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new R.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 R.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new R.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let U=null;function Nt(){return U||(U=new Ge,U)}class Ut extends G{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:d.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}exports.ACCESS=et;exports.ACCESS_KEY=re;exports.Access=ne;exports.BUILD_IN_TAGS=Se;exports.BUILT_IN_DIRECTIVES=ve;exports.BaseService=G;exports.CONTEXT_HOST=Y;exports.Context=Be;exports.ContextMode=_;exports.DATA_TYPES=ye;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=_e;exports.JSCodeToString=nt;exports.LIFE_CYCLES_LIST=Xe;exports.LocalService=Ut;exports.MemoryService=Ge;exports.NodeEnv=qe;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ke;exports.REMOTE=Ze;exports.StorageService=Bt;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=ee;exports.clearLoaderCache=gt;exports.compileScopedCSS=be;exports.createAccess=at;exports.createAdapter=ot;exports.createAssetScripts=tt;exports.createAssetsCss=st;exports.createDataSources=Ne;exports.createLoader=q;exports.createMemoryService=Nt;exports.createMenus=z;exports.createMetaApi=Fe;exports.createMock=He;exports.createProvider=Ft;exports.createRenderer=J;exports.createSchemaApi=ke;exports.createSchemaApis=Oe;exports.createServiceRequest=xt;exports.defaultLoader=Le;exports.fillBasePath=D;exports.getMock=k;exports.getModifiers=ae;exports.getPlugin=oe;exports.getRawComponent=$e;exports.isBuiltInTag=Ae;exports.isCSSUrl=x;exports.isJSCode=Me;exports.isJSExpression=j;exports.isJSFunction=O;exports.isJSON=we;exports.isJSUrl=B;exports.isNativeTag=Ie;exports.isVuePlugin=Pe;exports.loadCss=Re;exports.loadCssUrl=te;exports.loadEnhance=Ot;exports.loadScriptUrl=se;exports.menusFilter=ce;exports.mockApi=xe;exports.mockApis=De;exports.mockCleanup=ie;exports.nodeRender=I;exports.parseDeps=je;exports.parseExpression=F;exports.parseFunction=L;exports.parseUrls=Ce;exports.providerKey=le;exports.removeProdFlag=Ee;exports.setupPageSetting=rt;exports.toString=Z;exports.useAccess=Te;exports.useMask=kt;exports.useProvider=ue;
|
package/dist/index.mjs
CHANGED
@@ -7,10 +7,10 @@ import { useRoute as je } 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.12.
|
10
|
+
* @version 0.12.64
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
12
12
|
*/
|
13
|
-
const k = "0.12.
|
13
|
+
const k = "0.12.64";
|
14
14
|
var w = /* @__PURE__ */ ((r) => (r.Runtime = "Runtime", r.Design = "Design", r.Raw = "Raw", r.VNode = "VNode", r))(w || {});
|
15
15
|
const ve = [
|
16
16
|
"$el",
|
@@ -165,20 +165,20 @@ function ct(r, e = !1) {
|
|
165
165
|
return e && r.endsWith(".prod.js") ? r.replace(".prod.js", ".js") : r;
|
166
166
|
}
|
167
167
|
function lt(r, e, t = !1) {
|
168
|
-
const s = r.filter((h) => !!h.enabled), n = [], i = [], a = [], o = [], p = {}, c = {},
|
168
|
+
const s = r.filter((h) => !!h.enabled), n = [], i = [], a = [], o = [], p = {}, c = {}, l = [], u = {};
|
169
169
|
return s.forEach(
|
170
|
-
({ urls: h, assetsUrl:
|
170
|
+
({ urls: h, assetsUrl: d, library: f, assetsLibrary: g, localeLibrary: y }) => {
|
171
171
|
h?.forEach((m) => {
|
172
172
|
K(m) && n.push(ct(m, t)), q(m) && i.push(m);
|
173
|
-
}),
|
173
|
+
}), f && (o.push(f), p[f] = x(h || [], e), y && (c[f] = y)), d && a.push(d), g && l.push(g), f && g && (u[g] = f);
|
174
174
|
}
|
175
175
|
), {
|
176
176
|
scripts: x(n, e),
|
177
177
|
css: x(i, e),
|
178
178
|
materials: x(a, e),
|
179
179
|
libraryExports: o,
|
180
|
-
materialExports: ze(
|
181
|
-
materialMapLibrary:
|
180
|
+
materialExports: ze(l),
|
181
|
+
materialMapLibrary: u,
|
182
182
|
libraryMap: p,
|
183
183
|
libraryLocaleMap: c
|
184
184
|
};
|
@@ -196,37 +196,37 @@ function pt(r = []) {
|
|
196
196
|
}
|
197
197
|
function ft(r, e) {
|
198
198
|
const t = (c) => {
|
199
|
-
const
|
200
|
-
let
|
201
|
-
for (;
|
202
|
-
if (/\s/.test(c[
|
203
|
-
|
199
|
+
const l = [];
|
200
|
+
let u = 0;
|
201
|
+
for (; u < c.length; ) {
|
202
|
+
if (/\s/.test(c[u])) {
|
203
|
+
u++;
|
204
204
|
continue;
|
205
205
|
}
|
206
|
-
if (c.substring(
|
207
|
-
const m = c.indexOf("*/",
|
206
|
+
if (c.substring(u, u + 2) === "/*") {
|
207
|
+
const m = c.indexOf("*/", u + 2);
|
208
208
|
if (m !== -1) {
|
209
|
-
|
209
|
+
u = m + 2;
|
210
210
|
continue;
|
211
211
|
}
|
212
212
|
}
|
213
|
-
if (c[
|
214
|
-
const m =
|
215
|
-
for (;
|
216
|
-
|
217
|
-
const E = c.substring(m,
|
218
|
-
if (c[
|
219
|
-
|
213
|
+
if (c[u] === "@") {
|
214
|
+
const m = u;
|
215
|
+
for (; u < c.length && c[u] !== "{" && c[u] !== ";"; )
|
216
|
+
u++;
|
217
|
+
const E = c.substring(m, u).trim(), v = E.includes("@keyframes");
|
218
|
+
if (c[u] === ";")
|
219
|
+
l.push({
|
220
220
|
type: "simple-at-rule",
|
221
|
-
content: c.substring(m,
|
222
|
-
}),
|
223
|
-
else if (c[
|
224
|
-
const H =
|
221
|
+
content: c.substring(m, u + 1)
|
222
|
+
}), u++;
|
223
|
+
else if (c[u] === "{") {
|
224
|
+
const H = u + 1;
|
225
225
|
let P = 1;
|
226
|
-
for (
|
227
|
-
c[
|
228
|
-
const z = c.substring(m,
|
229
|
-
|
226
|
+
for (u++; u < c.length && P > 0; )
|
227
|
+
c[u] === "{" ? P++ : c[u] === "}" && P--, u++;
|
228
|
+
const z = c.substring(m, u), j = c.substring(H, u - 1);
|
229
|
+
l.push({
|
230
230
|
type: v ? "keyframes" : "at-rule",
|
231
231
|
rule: E,
|
232
232
|
content: z,
|
@@ -235,76 +235,76 @@ function ft(r, e) {
|
|
235
235
|
}
|
236
236
|
continue;
|
237
237
|
}
|
238
|
-
const h =
|
239
|
-
for (;
|
240
|
-
|
241
|
-
if (
|
242
|
-
const
|
243
|
-
if (!
|
244
|
-
|
238
|
+
const h = u;
|
239
|
+
for (; u < c.length && c[u] !== "{"; )
|
240
|
+
u++;
|
241
|
+
if (u >= c.length) break;
|
242
|
+
const d = c.substring(h, u).trim();
|
243
|
+
if (!d) {
|
244
|
+
u++;
|
245
245
|
continue;
|
246
246
|
}
|
247
|
-
const
|
247
|
+
const f = u + 1;
|
248
248
|
let g = 1;
|
249
|
-
for (
|
250
|
-
c[
|
251
|
-
const y = c.substring(
|
252
|
-
|
249
|
+
for (u++; u < c.length && g > 0; )
|
250
|
+
c[u] === "{" ? g++ : c[u] === "}" && g--, u++;
|
251
|
+
const y = c.substring(f, u - 1);
|
252
|
+
l.push({
|
253
253
|
type: "rule",
|
254
|
-
selector:
|
254
|
+
selector: d,
|
255
255
|
content: y.trim()
|
256
256
|
});
|
257
257
|
}
|
258
|
-
return
|
258
|
+
return l;
|
259
259
|
}, s = (c) => {
|
260
|
-
const
|
261
|
-
return /^(from|to|\d+(\.\d+)?%)$/.test(
|
262
|
-
}, n = (c) => c.replace(/::v-deep\(/g, ":deep(").replace(/::v-deep\s+/g, ":deep(").replace(/\/deep\//g, " ").replace(/>>>/g, " ").replace(/(.*?):deep\(([^)]+)\)/g, (
|
263
|
-
const
|
264
|
-
return
|
260
|
+
const l = c.trim();
|
261
|
+
return /^(from|to|\d+(\.\d+)?%)$/.test(l);
|
262
|
+
}, n = (c) => c.replace(/::v-deep\(/g, ":deep(").replace(/::v-deep\s+/g, ":deep(").replace(/\/deep\//g, " ").replace(/>>>/g, " ").replace(/(.*?):deep\(([^)]+)\)/g, (l, u, h) => {
|
263
|
+
const d = u.trim(), f = h.trim();
|
264
|
+
return d ? `${d}[${e}] ${f}` : f;
|
265
265
|
}), i = (c) => {
|
266
|
-
const
|
267
|
-
if (!
|
268
|
-
return
|
269
|
-
const
|
270
|
-
if (
|
271
|
-
const [, h,
|
272
|
-
return
|
266
|
+
const l = c.trim();
|
267
|
+
if (!l || l.includes(`[${e}]`) || /^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(l) || s(l))
|
268
|
+
return l;
|
269
|
+
const u = l.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);
|
270
|
+
if (u) {
|
271
|
+
const [, h, d = ""] = u, f = h.trim();
|
272
|
+
return f ? `${f}[${e}]${d}` : l;
|
273
273
|
}
|
274
|
-
return `${
|
275
|
-
}, a = (c) => n(c).split(",").map((
|
276
|
-
switch (
|
274
|
+
return `${l}[${e}]`;
|
275
|
+
}, a = (c) => n(c).split(",").map((u) => i(u)).filter((u) => u.trim()).join(", "), o = (c) => c.map((l) => {
|
276
|
+
switch (l.type) {
|
277
277
|
case "simple-at-rule":
|
278
|
-
return
|
278
|
+
return l.content;
|
279
279
|
case "keyframes":
|
280
|
-
return
|
280
|
+
return l.content;
|
281
281
|
case "at-rule":
|
282
282
|
try {
|
283
|
-
const h = t(
|
284
|
-
return `${
|
283
|
+
const h = t(l.inner), d = o(h);
|
284
|
+
return `${l.rule} { ${d} }`;
|
285
285
|
} catch {
|
286
|
-
return
|
286
|
+
return l.content;
|
287
287
|
}
|
288
288
|
case "rule":
|
289
|
-
if (!
|
289
|
+
if (!l.selector || !l.content)
|
290
290
|
return "";
|
291
|
-
const
|
292
|
-
return
|
291
|
+
const u = a(l.selector);
|
292
|
+
return u.trim() ? `${u} { ${l.content} }` : "";
|
293
293
|
default:
|
294
294
|
return "";
|
295
295
|
}
|
296
|
-
}).filter((
|
296
|
+
}).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();
|
297
297
|
try {
|
298
298
|
const c = r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g, "").replace(/^\s+|\s+$/gm, "").replace(/\n\s*\n/g, `
|
299
|
-
`),
|
300
|
-
return p(
|
299
|
+
`), l = t(c), u = o(l);
|
300
|
+
return p(u);
|
301
301
|
} catch (c) {
|
302
302
|
return console.error("CSS scoping failed:", c), console.error("Input CSS:", r), r.replace(/\/\*[\s\S]*?\*\//g, "").replace(
|
303
303
|
/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,
|
304
|
-
(
|
305
|
-
).replace(/([^{}@]+)(?=\s*{)/g, (
|
306
|
-
const
|
307
|
-
return !
|
304
|
+
(l) => l
|
305
|
+
).replace(/([^{}@]+)(?=\s*{)/g, (l) => {
|
306
|
+
const u = l.trim();
|
307
|
+
return !u || u.startsWith("@") || u.includes(`[${e}]`) || s(u) ? l : `${u}[${e}]`;
|
308
308
|
});
|
309
309
|
}
|
310
310
|
}
|
@@ -316,10 +316,10 @@ function Re(r, e, t, s = !1) {
|
|
316
316
|
if (n.prototype.replaceSync) {
|
317
317
|
const o = new n();
|
318
318
|
o.id = e, o.replaceSync(a);
|
319
|
-
const p = r.document, c = p.adoptedStyleSheets,
|
320
|
-
(
|
319
|
+
const p = r.document, c = p.adoptedStyleSheets, l = Array.from(c).filter(
|
320
|
+
(u) => u.id !== e
|
321
321
|
);
|
322
|
-
p.adoptedStyleSheets = [...
|
322
|
+
p.adoptedStyleSheets = [...l, o];
|
323
323
|
} else {
|
324
324
|
const o = r.document;
|
325
325
|
let p = o.getElementById(e);
|
@@ -346,8 +346,8 @@ async function Ce(r, e, t = window) {
|
|
346
346
|
const c = s.createElement("script");
|
347
347
|
c.src = p, c.onload = () => {
|
348
348
|
i = t[e], i ? a(i.default || i) : o(null);
|
349
|
-
}, c.onerror = (
|
350
|
-
o(
|
349
|
+
}, c.onerror = (l) => {
|
350
|
+
o(l);
|
351
351
|
}, n.appendChild(c);
|
352
352
|
}
|
353
353
|
});
|
@@ -598,10 +598,10 @@ function ms(r = {}) {
|
|
598
598
|
validSuccess: !0,
|
599
599
|
originResponse: !1,
|
600
600
|
loading: !0,
|
601
|
-
validate: (
|
601
|
+
validate: (l) => l.data?.code === 0 || !!l.data?.success,
|
602
602
|
failMessage: !0,
|
603
|
-
showError: (
|
604
|
-
e && e(
|
603
|
+
showError: (l) => {
|
604
|
+
e && e(l || "未知错误");
|
605
605
|
},
|
606
606
|
showLoading: () => {
|
607
607
|
p && p.close(), t && (p = t());
|
@@ -685,8 +685,8 @@ function bt(r, e) {
|
|
685
685
|
if (t && s) {
|
686
686
|
const n = Ve(`${t}(.*)`), i = We(t, { decode: decodeURIComponent }), a = T(s, {}, !0);
|
687
687
|
r.mock(n, (o) => {
|
688
|
-
const p = A.parse(o.url) || {}, c = o.body instanceof FormData ? Qe(o.body) : o.body,
|
689
|
-
return Object.assign(o, { data: c, params: p, query:
|
688
|
+
const p = A.parse(o.url) || {}, c = o.body instanceof FormData ? Qe(o.body) : o.body, l = i(o.url)?.params;
|
689
|
+
return Object.assign(o, { data: c, params: p, query: l }), r.mock(a(o));
|
690
690
|
});
|
691
691
|
}
|
692
692
|
}
|
@@ -809,29 +809,29 @@ function te(r) {
|
|
809
809
|
mode: t,
|
810
810
|
dsl: o.value,
|
811
811
|
attrs: p
|
812
|
-
}),
|
812
|
+
}), l = e.defineComponent({
|
813
813
|
name: o.value.name,
|
814
814
|
__scopeId: o.value.id ? `data-v-${o.value.id}` : void 0,
|
815
815
|
props: {
|
816
816
|
...Ct(o.value.props ?? [], c)
|
817
817
|
},
|
818
|
-
setup(
|
819
|
-
c.$props =
|
818
|
+
setup(u) {
|
819
|
+
c.$props = u, c.props = u, o.value.id && Re(
|
820
820
|
r.window || window,
|
821
821
|
o.value.id,
|
822
822
|
o.value.css || "",
|
823
823
|
!0
|
824
824
|
), c.state = At(e, o.value.state ?? {}, c);
|
825
|
-
const h = It(e, o.value.computed ?? {}, c),
|
826
|
-
for (const [m, E] of Object.entries(
|
827
|
-
|
825
|
+
const h = It(e, o.value.computed ?? {}, c), d = Ft(o.value.methods ?? {}, c), f = kt(e, o.value.inject, c);
|
826
|
+
for (const [m, E] of Object.entries(f || {}))
|
827
|
+
f[m] = e.inject(m, E);
|
828
828
|
const g = Mt(
|
829
829
|
o.value.dataSources || {},
|
830
830
|
c
|
831
831
|
), y = {
|
832
|
-
...d,
|
833
|
-
...h,
|
834
832
|
...f,
|
833
|
+
...h,
|
834
|
+
...d,
|
835
835
|
...g
|
836
836
|
};
|
837
837
|
return c.setup(y, e), Ot(e, o.value.watch ?? [], c), {
|
@@ -842,15 +842,15 @@ function te(r) {
|
|
842
842
|
expose: ["vtj"],
|
843
843
|
render() {
|
844
844
|
if (!o.value.nodes) return null;
|
845
|
-
const
|
846
|
-
return
|
847
|
-
(h) => F(h, c, e, a,
|
845
|
+
const u = o.value.nodes || [];
|
846
|
+
return u.length === 1 ? F(u[0], c, e, a, u) : u.map(
|
847
|
+
(h) => F(h, c, e, a, u)
|
848
848
|
);
|
849
849
|
},
|
850
850
|
...Tt(o.value.lifeCycles ?? {}, c)
|
851
851
|
});
|
852
852
|
return {
|
853
|
-
renderer: e.markRaw(
|
853
|
+
renderer: e.markRaw(l),
|
854
854
|
context: c
|
855
855
|
};
|
856
856
|
}
|
@@ -1009,8 +1009,8 @@ function vs() {
|
|
1009
1009
|
}
|
1010
1010
|
function F(r, e, t = J, s = Dt, n = [], i = !1) {
|
1011
1011
|
if (!r || !r.name || r.invisible) return null;
|
1012
|
-
const a = t.getCurrentInstance()?.appContext, { id: o = null, directives: p = [] } = r, { vIf: c, vElseIf:
|
1013
|
-
if (!i && (
|
1012
|
+
const a = t.getCurrentInstance()?.appContext, { id: o = null, directives: p = [] } = r, { vIf: c, vElseIf: l, vElse: u, vFor: h, vShow: d, vModels: f, vBind: g, vHtml: y, others: m } = Oe(p);
|
1013
|
+
if (!i && (l || u))
|
1014
1014
|
return null;
|
1015
1015
|
if (c && !xt(c, e))
|
1016
1016
|
return Lt(r, e, t, s, n);
|
@@ -1030,10 +1030,10 @@ function F(r, e, t = J, s = Dt, n = [], i = !1) {
|
|
1030
1030
|
})(), j = Nt(o, r.props ?? {}, v), Ne = Ut(t, r.events ?? {}, v);
|
1031
1031
|
if (r.name === "slot")
|
1032
1032
|
return Jt(t, r, j, v, s);
|
1033
|
-
g && Object.assign(j, v.__parseExpression(g.value)),
|
1033
|
+
g && Object.assign(j, v.__parseExpression(g.value)), d && (j.style = Object.assign(
|
1034
1034
|
j.style ?? {},
|
1035
|
-
Kt(
|
1036
|
-
)), y && Object.assign(j, zt(y, v)),
|
1035
|
+
Kt(d, v)
|
1036
|
+
)), y && Object.assign(j, zt(y, v)), f.forEach((S) => {
|
1037
1037
|
Object.assign(j, Gt(t, S, v));
|
1038
1038
|
});
|
1039
1039
|
const Ue = Vt(
|
@@ -1063,12 +1063,12 @@ function Ht(r, e, t) {
|
|
1063
1063
|
}).filter((n) => !!n);
|
1064
1064
|
}
|
1065
1065
|
function Oe(r = []) {
|
1066
|
-
const e = r.find((
|
1067
|
-
(
|
1068
|
-
), s = r.find((
|
1069
|
-
(
|
1066
|
+
const e = r.find((l) => b(l.name) === "vIf"), t = r.find(
|
1067
|
+
(l) => b(l.name) === "vElseIf"
|
1068
|
+
), s = r.find((l) => b(l.name) === "vElse"), n = r.find((l) => b(l.name) === "vFor"), i = r.find((l) => b(l.name) === "vShow"), a = r.find((l) => b(l.name) === "vBind"), o = r.find((l) => b(l.name) === "vHtml"), p = r.filter(
|
1069
|
+
(l) => b(l.name) === "vModel"
|
1070
1070
|
), c = r.filter(
|
1071
|
-
(
|
1071
|
+
(l) => !rt.includes(b(l.name))
|
1072
1072
|
);
|
1073
1073
|
return {
|
1074
1074
|
vIf: e,
|
@@ -1109,8 +1109,8 @@ function Ut(r, e, t) {
|
|
1109
1109
|
};
|
1110
1110
|
return Object.keys(e || {}).reduce(
|
1111
1111
|
(i, a) => {
|
1112
|
-
const o = e[a], p = Te(o.modifiers), c = p.find((h) => s.includes(h)),
|
1113
|
-
return
|
1112
|
+
const o = e[a], p = Te(o.modifiers), c = p.find((h) => s.includes(h)), l = "on" + Ze(a) + (c && n[c] || ""), u = t.__parseFunction(o.handler);
|
1113
|
+
return u && (i[l] = r.withModifiers(u, p)), i;
|
1114
1114
|
},
|
1115
1115
|
{}
|
1116
1116
|
);
|
@@ -1181,15 +1181,20 @@ function Vt(r, e, t, s, n) {
|
|
1181
1181
|
default: () => be(t.__parseExpression(e))
|
1182
1182
|
};
|
1183
1183
|
if (Array.isArray(e) && e.length > 0) {
|
1184
|
-
const i = Wt(e), a = (o) => !o || !n ? {} : n?.id && Object.keys(o).length ? {
|
1184
|
+
const i = Wt(e), a = (o, p) => !o || !n ? {} : n?.id && Object.keys(o).length ? p ? {
|
1185
|
+
[p]: o
|
1186
|
+
} : {
|
1185
1187
|
[`scope_${n.id}`]: o
|
1186
|
-
} : {};
|
1187
|
-
return Object.entries(i).reduce(
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1188
|
+
} : p ? { [p]: /* @__PURE__ */ Object.create(null) } : {};
|
1189
|
+
return Object.entries(i).reduce(
|
1190
|
+
(o, [p, { nodes: c, params: l, scope: u }]) => (o[p] = (h) => {
|
1191
|
+
const d = l.length ? et(h ?? {}, l) : a(h, u);
|
1192
|
+
return c.map(
|
1193
|
+
(f) => F(f, t.__clone(d), r, s, c)
|
1194
|
+
);
|
1195
|
+
}, o),
|
1196
|
+
{}
|
1197
|
+
);
|
1193
1198
|
}
|
1194
1199
|
return null;
|
1195
1200
|
}
|
@@ -1197,15 +1202,16 @@ function Wt(r) {
|
|
1197
1202
|
const e = {};
|
1198
1203
|
for (const t of r) {
|
1199
1204
|
const s = Qt(t.slot), n = s.name;
|
1200
|
-
e[n] ? (e[n].nodes.push(t), e[n].params = e[n].params.concat(s.params)) : e[n] = {
|
1205
|
+
e[n] ? (e[n].nodes.push(t), e[n].params = e[n].params.concat(s.params), e[n].scope = s.scope || "") : e[n] = {
|
1201
1206
|
nodes: [t],
|
1202
|
-
params: s.params
|
1207
|
+
params: s.params,
|
1208
|
+
scope: s.scope || ""
|
1203
1209
|
};
|
1204
1210
|
}
|
1205
1211
|
return e;
|
1206
1212
|
}
|
1207
1213
|
function Qt(r = "default") {
|
1208
|
-
return R(r) ? { name: r, params: [] } : { params: [], ...r };
|
1214
|
+
return R(r) ? { name: r, params: [], scope: "" } : { params: [], scope: "", ...r };
|
1209
1215
|
}
|
1210
1216
|
function Xt(r, e, t) {
|
1211
1217
|
const { value: s, iterator: n } = r, { item: i = "item", index: a = "index" } = n || {};
|
@@ -1275,27 +1281,27 @@ function ys(r) {
|
|
1275
1281
|
disableMenusFilter: s = !1
|
1276
1282
|
} = r || {}, n = xe(), i = je(), a = _t(), o = Z(!1), p = Z(!1), c = n.project;
|
1277
1283
|
st(() => {
|
1278
|
-
const { name: h, params:
|
1284
|
+
const { name: h, params: d, meta: f } = i;
|
1279
1285
|
if (h === M) {
|
1280
|
-
const g = n.getPage(
|
1286
|
+
const g = n.getPage(d.id);
|
1281
1287
|
o.value = !g?.mask, p.value = !!g?.pure;
|
1282
1288
|
} else if (h === N) {
|
1283
1289
|
const g = n.getHomepage();
|
1284
1290
|
o.value = !g?.mask, p.value = !!g?.pure;
|
1285
1291
|
} else
|
1286
|
-
o.value = !
|
1292
|
+
o.value = !f.mask, p.value = !!f.pure;
|
1287
1293
|
});
|
1288
|
-
const
|
1294
|
+
const l = oe(
|
1289
1295
|
e,
|
1290
1296
|
t,
|
1291
1297
|
c?.pages
|
1292
|
-
),
|
1298
|
+
), u = c?.config;
|
1293
1299
|
return {
|
1294
1300
|
disabled: o,
|
1295
|
-
logo:
|
1296
|
-
themeSwitchable:
|
1297
|
-
title:
|
1298
|
-
menus: s ?
|
1301
|
+
logo: u?.logo,
|
1302
|
+
themeSwitchable: u?.themeSwitchable,
|
1303
|
+
title: u?.title || c?.description || c?.name || "VTJ App",
|
1304
|
+
menus: s ? l : De(l, a),
|
1299
1305
|
pure: p
|
1300
1306
|
};
|
1301
1307
|
}
|
@@ -1318,14 +1324,14 @@ class es extends Je {
|
|
1318
1324
|
adapter: o = {},
|
1319
1325
|
globals: p = {},
|
1320
1326
|
modules: c = {},
|
1321
|
-
router:
|
1322
|
-
materialPath:
|
1327
|
+
router: l = null,
|
1328
|
+
materialPath: u = "./",
|
1323
1329
|
nodeEnv: h = "development"
|
1324
1330
|
/* Development */
|
1325
1331
|
} = e;
|
1326
|
-
this.mode = s, this.modules = c, this.service = t, this.router =
|
1327
|
-
const { access:
|
1328
|
-
|
1332
|
+
this.mode = s, this.modules = c, this.service = t, this.router = l, this.materialPath = u, this.nodeEnv = h, n && (this.dependencies = n), i && (this.materials = i), Object.assign(this.globals, p), Object.assign(this.adapter, o);
|
1333
|
+
const { access: d, request: f } = this.adapter;
|
1334
|
+
d && d.connect({ mode: s, router: l, request: f }), a && s !== w.Design ? this.load(a) : this.project = a;
|
1329
1335
|
}
|
1330
1336
|
mode;
|
1331
1337
|
// 当前运行模式(设计/源码/预览等)
|
@@ -1399,8 +1405,8 @@ class es extends Je {
|
|
1399
1405
|
const { dependencies: t = [] } = this.project, { dependencies: s, library: n, components: i, materialPath: a, nodeEnv: o } = this, {
|
1400
1406
|
libraryExports: p,
|
1401
1407
|
libraryMap: c,
|
1402
|
-
materials:
|
1403
|
-
materialExports:
|
1408
|
+
materials: l,
|
1409
|
+
materialExports: u,
|
1404
1410
|
materialMapLibrary: h
|
1405
1411
|
} = lt(
|
1406
1412
|
t,
|
@@ -1408,31 +1414,31 @@ class es extends Je {
|
|
1408
1414
|
o === "development"
|
1409
1415
|
/* Development */
|
1410
1416
|
);
|
1411
|
-
for (const
|
1412
|
-
const
|
1417
|
+
for (const d of p) {
|
1418
|
+
const f = s[d], g = e[d];
|
1413
1419
|
if (g)
|
1414
|
-
n[
|
1415
|
-
else if (
|
1416
|
-
e[
|
1420
|
+
n[d] = g;
|
1421
|
+
else if (f)
|
1422
|
+
e[d] = n[d] = await f();
|
1417
1423
|
else {
|
1418
|
-
const y = c[
|
1424
|
+
const y = c[d] || [];
|
1419
1425
|
for (const m of y)
|
1420
1426
|
q(m) && await dt(m, A.append(m, { v: k })), K(m) && await me(A.append(m, { v: k }));
|
1421
|
-
n[
|
1427
|
+
n[d] = e[d];
|
1422
1428
|
}
|
1423
1429
|
}
|
1424
1430
|
if (o === "development") {
|
1425
|
-
for (const
|
1426
|
-
await me(A.append(
|
1427
|
-
const
|
1428
|
-
for (const
|
1429
|
-
const g = e[h[
|
1431
|
+
for (const f of l)
|
1432
|
+
await me(A.append(f, { v: k }));
|
1433
|
+
const d = this.materials || {};
|
1434
|
+
for (const f of u) {
|
1435
|
+
const g = e[h[f]], y = qe[f];
|
1430
1436
|
if (y)
|
1431
1437
|
g && y.forEach((m) => {
|
1432
1438
|
i[m] = g[m];
|
1433
1439
|
});
|
1434
1440
|
else {
|
1435
|
-
const m = f
|
1441
|
+
const m = d[f] ? (await d[f]()).default : e[f];
|
1436
1442
|
m && g && (m.components || []).forEach((E) => {
|
1437
1443
|
i[E.name] = ut(E, g);
|
1438
1444
|
});
|
@@ -1447,17 +1453,17 @@ class es extends Je {
|
|
1447
1453
|
routeAppendTo: a,
|
1448
1454
|
pageRouteName: o = i,
|
1449
1455
|
routeMeta: p
|
1450
|
-
} = s, c = a ? "" : "/",
|
1456
|
+
} = s, c = a ? "" : "/", l = {
|
1451
1457
|
path: `${c}${o}/:id`,
|
1452
1458
|
name: M,
|
1453
1459
|
component: ye
|
1454
|
-
},
|
1460
|
+
}, u = {
|
1455
1461
|
path: c,
|
1456
1462
|
name: N,
|
1457
1463
|
component: t?.homepage ? ye : n.startupComponent || Yt,
|
1458
1464
|
meta: p
|
1459
1465
|
};
|
1460
|
-
e.hasRoute(M) && e.removeRoute(M), e.hasRoute(N) && e.removeRoute(N), a ? (e.addRoute(a,
|
1466
|
+
e.hasRoute(M) && e.removeRoute(M), e.hasRoute(N) && e.removeRoute(N), a ? (e.addRoute(a, l), e.addRoute(a, u)) : (e.addRoute(l), e.addRoute(u));
|
1461
1467
|
}
|
1462
1468
|
/**
|
1463
1469
|
* Vue 插件安装方法
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vtj/renderer",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.12.
|
4
|
+
"version": "0.12.64",
|
5
5
|
"type": "module",
|
6
6
|
"keywords": [
|
7
7
|
"低代码引擎",
|
@@ -21,15 +21,15 @@
|
|
21
21
|
"author": "chenhuachun",
|
22
22
|
"license": "MIT",
|
23
23
|
"dependencies": {
|
24
|
-
"@vtj/core": "~0.12.
|
25
|
-
"@vtj/utils": "~0.12.
|
24
|
+
"@vtj/core": "~0.12.64",
|
25
|
+
"@vtj/utils": "~0.12.64"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"vue": "~3.5.5",
|
29
29
|
"vue-router": "~4.5.0",
|
30
|
-
"@vtj/ui": "~0.12.62",
|
31
30
|
"@vtj/cli": "~0.12.8",
|
32
|
-
"@vtj/
|
31
|
+
"@vtj/ui": "~0.12.64",
|
32
|
+
"@vtj/icons": "~0.12.64"
|
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.12.
|
5
|
+
* @version 0.12.63
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
7
|
*/
|
8
|
-
export declare const version = "0.12.
|
8
|
+
export declare const version = "0.12.63";
|