@vtj/renderer 0.16.28 → 0.16.29
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 +11 -11
- package/dist/index.mjs +153 -146
- package/package.json +5 -5
- package/types/utils/util.d.ts +1 -0
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("@vtj/core"),f=require("@vtj/utils"),$=require("vue"),Ee=require("vue-router");function ct(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const W=ct($);/**!
|
|
2
2
|
* Copyright (c) 2026, VTJ.PRO All rights reserved.
|
|
3
3
|
* @name @vtj/renderer
|
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
5
|
-
* @version 0.16.
|
|
5
|
+
* @version 0.16.29
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
|
-
*/const D="0.16.
|
|
8
|
-
`),l=t(c),p=a(l);return u(p)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",n),n.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,l=>l).replace(/([^{}@]+)(?=\s*{)/g,l=>{const p=l.trim();return!p||p.startsWith("@")||p.includes(`[${e}]`)||s(p)?l:`${p}[${e}]`})}}const
|
|
9
|
-
`}catch(r){console.error("Failed to read cssRules from adopted stylesheet:",r)}}),t){const s=n.createElement("style");s.textContent=t,n.head.appendChild(s)}}async function Oe(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&Q(window,n,t)}function pe(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const
|
|
10
|
-
`)+
|
|
11
|
-
${
|
|
12
|
-
`:`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(o){if(f.logger.error("parseExpression.error",o,n,e?.__self??e),gt(o),s)throw o}}function R(n,e,t=!1,s=!1,r=!1){const o=H(n,e,t,s,r);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return o}function b(n){return n&&n.type==="JSExpression"}function C(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function Le(n){return b(n)||C(n)}function _t(n){return Le(n)?n.value:JSON.stringify(n)}const vt={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},de=Symbol("access");class Y{options;data=null;mode=S.Raw;interceptResponse=!0;isTipShowing=!1;constructor(e){this.options=Object.assign({},vt,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode!==S.Design&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),r&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):f.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(de,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>f.unRSA(r,t));try{this.data=JSON.parse(s.join(""))}catch(r){console.warn(r)}return}if(typeof e=="string")try{const s=t?f.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===x){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):e.meta.permission?this.can(e.meta.permission):!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),f.isFunction(r)?(r(),t(!1)):f.isString(r)?t(r):t(!1)}}t(!1),await f.delay(0),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&await this.showTip(t)&&this.toLogin()}async showTip(e){const{alert:t}=this.options;return this.isTipShowing?!1:t?(this.isTipShowing=!0,await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!0)?.finally(()=>{this.isTipShowing=!1})):(window.alert(e),!0)}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 Ue(){return $.inject(de,null)}function yt(n={}){const{notify:e,loading:t,settings:s={},Startup:r,access:o,useTitle:i,alert:a}=n;let u=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},showLoading:()=>{u&&u.close(),t&&(u=t())},hideLoading:()=>{u&&(u.close(),u=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:i,alert:a,startupComponent:r,access:o?new Y({alert:a,...o}):void 0}}function St(n={}){return new Y(n)}function qe(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?H(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(i,a)=>(delete o.data,s.send(f.merge(o,a||{},{data:i})))}}function Be(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,i)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,i)}}function Je(n=[],e=[],t){const s={};for(const r of n){const o=qe(r,t);s[r.id]=o,s[r.name]=o}for(const r of e)s[r.id]=Be(r,t);return s}async function Ke(n=[],e=window){const t=k(e);t&&(he(e),n.forEach(s=>ze(t,s)))}function Ge(n,e=window){const t=C(n.mockTemplate)&&n.mockTemplate.value?R(n.mockTemplate,{},!0):void 0,s=k(e);return async(...r)=>{let o={};if(t)try{o=await t.apply(t,r)}catch(i){f.logger.warn("模拟数据模版异常",i)}return s?.mock(o)}}function ze(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const r=f.isUrl(t)?new URL(t).pathname:t,o=f.pathToRegexp(`(.*)${r}(.*)`),i=f.pathToRegexpMatch(r,{decode:decodeURIComponent}),a=H(s,{},!0);n.mock(o,u=>{const c=f.url.parse(u.url)||{},l=u.body instanceof FormData?f.formDataToJson(u.body):u.body,p=f.isUrl(u.url)?new URL(u.url).pathname:u.url.split("?")[0],d=i(p)?.params;Object.assign(u,{data:l,params:d,query:c});try{return n.mock(a(u))}catch(h){return console.warn("[mockApi]",o,u,h),null}})}catch(r){console.warn("mockApi",r)}}function he(n=window){const e=k(n);e&&(e._mocked={})}class Ve{__id=null;__mode;__instance=null;__contextRefs={};__refs={};__refCaches={};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={};$provider=null;__transform={};constructor(e){const{mode:t,dsl:s,attrs:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=W){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.__refCaches={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&ie.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){ie.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.__refCaches={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return R({type:s,value:r},this)}else return R(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return H({type:s,value:r},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode===S.VNode)return;e&&e!==this.__id&&(this.__contextRefs[e]=this);let s=e?this.__refCaches[e]:null;return s||(s=async r=>{await f.delay(0);let o=r?.$vtjEl||r?.$el||r?._?.vnode?.el||r;if(!o){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return o.nodeType===3&&o.nextSibling&&(o=o.nextSibling),o.__vtj__=e,S.Design===this.__mode&&(o.__context__=this,o.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,r)),typeof t=="function"?t(r):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,r)),r},e&&(this.__refCaches[e]=s),s)}__getRefEl(e,t,s){const r=e[t];if(r&&s!==r){const o=new Set([].concat(r,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function z(n){const{Vue:e=W,mode:t=S.Runtime,components:s={},libs:r={},apis:o={},loader:i}=n,a=e.computed(()=>n.dsl),u={$components:s,$libs:r,$apis:o},c=new Ve({mode:t,dsl:a.value,attrs:u}),l=e.defineComponent({name:a.value.name,__scopeId:a.value.id?`data-v-${a.value.id}`:void 0,props:{...Et(a.value.props??[],c)},async setup(p={}){c.$props=p,c.props=p,a.value.id&&Q(n.window||window,a.value.id,a.value.css||"",!0),c.state=$t(e,a.value.state??{},c);const d=Ct(e,a.value.computed??{},c),h=bt(a.value.methods??{},c),g=jt(e,a.value.inject,c);for(const[y,w]of Object.entries(g||{}))g[y]=e.inject(y,w);const m=We(a.value.dataSources||{},c),_={...g,...d,...h,...m};return c.setup(_,e),Rt(e,a.value.watch??[],c),{vtj:c,state:c.state,...p,...d,...h}},emits:wt(a.value.emits),expose:["vtj",...a.value.expose||[]],render(){if(!a.value.nodes)return null;const p=a.value.nodes||[];if(p.length===1)return M(p[0],c,e,i,p);{const d=p.map(h=>M(h,c,e,i,p));return e.createVNode("div",{},d)}},...Pt(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function wt(n=[]){return n.map(e=>f.isString(e)?e:e.name)}function Et(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Ce[o]):void 0;return n.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:b(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function $t(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return b(o)?o=t.__parseExpression(o):C(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function Ct(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function bt(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function jt(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:i}=r||{};r.default;const a=b(i)?t.__parseExpression(i)||o:i??o,u=b(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(a,u),s},{})}function We(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=Ge(r);else if(r.ref){const o=e.$apis[r.ref],i=C(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;t[s]=async(...a)=>{const u=await o.apply(e,a);return i?i(u):u}}return t},{})}function Rt(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function Pt(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>{const o=e.__parseFunction(r);return t[s]=async()=>{f.isFunction(o)&&(await f.delay(0),await o())},t},{})}class At{__props={};__events={};__nodes={};constructor(){}setProps(e,t){this.__props[e]=t}getProps(e){return this.__props[e]}loadProps(e,t){const s=e?this.getProps(e):null;return s||(e&&this.setProps(e,t),t)}setEvents(e,t){}getEvents(e){return this.__events[e]}loadEvents(e,t){const s=e?this.getEvents(e):null;return s||(e&&this.setEvents(e,t),t)}setNode(e,t){this.__nodes[e]=t}getNode(e){return this.__nodes[e]}loadNode(e,t){const s=e?this.getNode(e):null;return s||(e&&this.setNode(e,t),t)}isEqual(e,t){return f.isEqual(e,t)}clear(){this.__props={},this.__events={},this.__nodes={}}}const O=new At,Qe=new f.Queue;let ne=[],F={},L={};const Ye=(n,e)=>e;async function me(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(a=>J(a));if(r.length===0||!s)return null;const o=t.filter(a=>B(a));return o.length&&pe(o,e),await fe(r,s,e).catch(a=>(console.warn("loadScriptUrl error",r,s,a),null))}function V(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(ne.forEach(r=>{delete s.window[r]}),ne=[]),(r,o,i,a=W)=>{if(!i||typeof i=="string")return o;let u="";if(i.type==="Schema"&&i.id)return u=i.id+"_"+r,L[u]||(L[u]=a.defineAsyncComponent(async()=>{const c=F[i.id]||await Qe.add(i.id,()=>e(i.id));return c&&(c.name=o,F[i.id]=c),c?z({Vue:a,mode:S.Runtime,...s,dsl:f.cloneDeep(c),loader:V(n)}).renderer:null}));if(i.type==="UrlSchema"&&i.url)return u=i.url+"_"+r,L[u]||(L[u]=a.defineAsyncComponent(async()=>{const c=F[i.url]||await t(i.url);return c&&(c.name=o,F[i.url]=c),c?z({...s,Vue:a,dsl:f.cloneDeep(c),mode:S.Runtime,loader:V(n)}).renderer:null}));if(i.type==="Plugin"){let c=i.library?F[i.library]:null;return c||(i.library&&ne.push(i.library),c=F[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await me(i,s.window);return l||(console.warn("getPlugin result is null",i),null)}),c)}return o}}function It(){F={},L={},Qe.clearAllCache(),O.clear()}function M(n,e,t=W,s=Ye,r=[],o=!1,i=0){if(!n||!n.name||n.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:u=null,directives:c=[]}=n,{vIf:l,vElseIf:p,vElse:d,vFor:h,vShow:g,vModels:m,vBind:_,vHtml:y,others:w}=Xe(c);if(!o&&(p||d))return null;if(l&&!Ft(l,e))return Ht(n,e,t,s,r);const j=(v,A=0)=>{const Z=v.$components,ee=(()=>{if(n.name==="component")return Mt(v,n.props?.is);if(n.name==="slot")return n.name;const P=s(`${n.id}_${A}`,n.name,n.from,t);return f.isString(P)?xe(P)||ke(P)?P:Z[P]??a?.app?.component(P)??P:P})(),I=Ot(u,n.props??{},v),nt=kt(t,n.id,n.events??{},v);if(n.name==="slot")return Nt(t,n,I,v,s);_&&Object.assign(I,v.__parseExpression(_.value)),g&&(I.style=Object.assign(I.style??{},Ut(g,v))),y&&Object.assign(I,qt(y,v)),m.forEach(P=>{le.includes(n.name)?Object.assign(I,Bt(P,v)):Object.assign(I,Jt(t,P,v))});const rt=Kt(t,n.children??[],v,s,n),Se=v?.__id?`data-v-${v.__id}`:void 0,ot=Se?{[Se]:""}:{},it=v.__mode===S.Design?{"data-vtj":u}:{},K=`${u}_${A}`,te={key:K,...ot,...it,...I,...nt};O.isEqual(te,O.getNode(K))||O.setNode(K,te);let se=t.createVNode(ee,O.getNode(K)||te||{},rt);const we=a?Tt(a,w,v):[];return we.length&&(se=t.withDirectives(se,we)),se};return h?Vt(h,j,e):j(e,i)}function Tt(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const i=[o];return r.value&&i.push(t.__parseExpression(r.value)),r.arg&&i.push(r.arg),r.modifiers&&i.push(r.modifiers),i}).filter(r=>!!r)}function Xe(n=[]){const e=n.find(l=>f.camelCase(l.name)==="vIf"),t=n.find(l=>f.camelCase(l.name)==="vElseIf"),s=n.find(l=>f.camelCase(l.name)==="vElse"),r=n.find(l=>f.camelCase(l.name)==="vFor"),o=n.find(l=>f.camelCase(l.name)==="vShow"),i=n.find(l=>f.camelCase(l.name)==="vBind"),a=n.find(l=>f.camelCase(l.name)==="vHtml"),u=n.filter(l=>f.camelCase(l.name)==="vModel"),c=n.filter(l=>!$e.includes(f.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:r,vShow:o,vModels:u,vBind:i,others:c,vHtml:a}}function Ft(n,e){return!!e.__parseExpression(n.value)}function Mt(n,e){return e?b(e)?n.__parseExpression(e):e:"div"}function Ot(n,e,t){const s=ae(e,t);return s.ref=t.__ref(n,s.ref),s}function ae(n,e){return b(n)?e.__parseExpression(n):C(n)?e.__parseFunction(n):Array.isArray(n)?n.map(t=>ae(t,e)):typeof n=="object"?Object.keys(n||{}).reduce((t,s)=>{let r=n[s];return t[s]=ae(r,e),t},{}):n}function Dt(n,e){return t=>{t?.key?.toLowerCase()===e.toLowerCase()&&n(t)}}function xt(n){return He(n.value)?n:Ne(n.value)?{type:"JSFunction",value:`(...args) => (() => {
|
|
7
|
+
*/const D="0.16.29";var S=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(S||{});const oe=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],lt=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],$e=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],Ce={String,Number,Boolean,Array,Object,Function,Date},x="VtjPage",U="VtjHomepage",le="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot,svg".split(","),be="component,slot".split(","),ut=["h","t","t","p","s",":","/","/","a","p","p",".","v","t","j",".","p","r","o"].join(""),pt={auth:["h","t","t","p","s",":","/","/","a","p","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 N(n,e){return n.map(t=>f.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function B(n){return/\.css$/.test(n)}function J(n){return/\.js$/.test(n)}function je(n){return/\.json$/.test(n)}function ft(n){return n.map(e=>`<script src="${f.url.append(e,{v:D})}"><\/script>`).join("")}function dt(n=[]){return n.map(e=>`<link rel="stylesheet" href="${f.url.append(e,{v:D})}" />`).join("")}function Re(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function Pe(n,e,t=!1){const s=n.filter(d=>!!d.enabled),r=[],i=[],o=[],a=[],u={},c={},l=[],p={};return s.forEach(({urls:d,assetsUrl:h,library:g,assetsLibrary:m,localeLibrary:_})=>{d?.forEach(y=>{J(y)&&r.push(Re(y,t)),B(y)&&i.push(y)}),g&&(a.push(g),u[g]=N(d||[],e),_&&(c[g]=_)),h&&o.push(h),m&&l.push(m),g&&m&&(p[m]=g)}),{scripts:N(r,e),css:N(i,e),materials:N(o,e),libraryExports:a,materialExports:f.dedupArray(l),materialMapLibrary:p,libraryMap:u,libraryLocaleMap:c}}function Ae(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function Ie(n=[]){const e=n.filter(s=>B(s)),t=n.filter(s=>J(s));return{css:e,js:t}}function Fe(n,e){const t=c=>{const l=[];let p=0;for(;p<c.length;){if(/\s/.test(c[p])){p++;continue}if(c.substring(p,p+2)==="/*"){const y=c.indexOf("*/",p+2);if(y!==-1){p=y+2;continue}}if(c[p]==="@"){const y=p;for(;p<c.length&&c[p]!=="{"&&c[p]!==";";)p++;const w=c.substring(y,p).trim(),j=w.includes("@keyframes");if(c[p]===";")l.push({type:"simple-at-rule",content:c.substring(y,p+1)}),p++;else if(c[p]==="{"){const v=p+1;let A=1;for(p++;p<c.length&&A>0;)c[p]==="{"?A++:c[p]==="}"&&A--,p++;const Z=c.substring(y,p),ee=c.substring(v,p-1);l.push({type:j?"keyframes":"at-rule",rule:w,content:Z,inner:ee})}continue}const d=p;for(;p<c.length&&c[p]!=="{";)p++;if(p>=c.length)break;const h=c.substring(d,p).trim();if(!h){p++;continue}const g=p+1;let m=1;for(p++;p<c.length&&m>0;)c[p]==="{"?m++:c[p]==="}"&&m--,p++;const _=c.substring(g,p-1);l.push({type:"rule",selector:h,content:_.trim()})}return l},s=c=>{const l=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(l)},r=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(l,p,d)=>{const h=p.trim(),g=d.trim();return h?`${h}[${e}] ${g}`:g}),i=c=>{const l=c.trim();if(!l||l.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(l)||s(l))return l;const p=l.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(p){const[,d,h=""]=p,g=d.trim();return g?`${g}[${e}]${h}`:l}return`${l}[${e}]`},o=c=>r(c).split(",").map(p=>i(p)).filter(p=>p.trim()).join(", "),a=c=>c.map(l=>{switch(l.type){case"simple-at-rule":return l.content;case"keyframes":return l.content;case"at-rule":try{const d=t(l.inner),h=a(d);return`${l.rule} { ${h} }`}catch{return l.content}case"rule":if(!l.selector||!l.content)return"";const p=o(l.selector);return p.trim()?`${p} { ${l.content} }`:"";default:return""}}).filter(l=>l.trim()).join(" "),u=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=n.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
|
|
8
|
+
`),l=t(c),p=a(l);return u(p)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",n),n.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,l=>l).replace(/([^{}@]+)(?=\s*{)/g,l=>{const p=l.trim();return!p||p.startsWith("@")||p.includes(`[${e}]`)||s(p)?l:`${p}[${e}]`})}}const ht=750;function Te(n,e,t){let s;typeof n<"u"?s=n.innerWidth||n.document.documentElement.clientWidth:(console.warn("无法获取屏幕宽度,使用默认值375"),s=375);const r=t||ht;return e*s/r}function Me(n,e){let t=!1,s=!1,r=!1,i="";for(let o=0;o<e.length;o++){const a=e[o];if(a==="'"&&!s&&!r?t=!t:a==='"'&&!t&&!r?s=!s:e.substr(o,4).toLowerCase()==="url("&&!t&&!s?r=!0:a===")"&&r&&(r=!1),!t&&!s&&!r){const u=e.substr(o).match(/^(-?\d+(?:\.\d+)?)\s*rpx/);if(u){const c=u[1],l=parseFloat(c),d=`${Te(n,l).toFixed(6).replace(/\.?0+$/,"")}px`;i+=d,o+=u[0].length-1;continue}}i+=a}return i}function ue(n){return f.isString(n)?n:JSON.stringify(n)}function Q(n,e,t,s=!1){const r=n.CSSStyleSheet,i=s?`data-v-${e}`:e,o=n.__uniConfig?Me(n,t):t,a=s?Fe(o,i):o,u=!!n.__uniConfig;if(r.prototype.replaceSync&&!u){const c=new r;c.id=e,c.replaceSync(a);const l=n.document,p=l.adoptedStyleSheets,d=Array.from(p).filter(h=>h.id!==e);l.adoptedStyleSheets=[...d,c]}else{const c=n.document;let l=c.getElementById(e);l?l.innerHTML=a:(l=c.createElement("style"),l.id=e,l.innerHTML=a,c.head.appendChild(l))}}function mt(n){const e=n.adoptedStyleSheets||[];let t="";if(e.forEach(s=>{try{for(const r of s.cssRules)t+=r.cssText+`
|
|
9
|
+
`}catch(r){console.error("Failed to read cssRules from adopted stylesheet:",r)}}),t){const s=n.createElement("style");s.textContent=t,n.head.appendChild(s)}}async function Oe(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&Q(window,n,t)}function pe(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const o=t.createElement("link");o.rel="stylesheet",o.id=r,o.href=r,s.appendChild(o)}}async function fe(n,e,t=window){const s=t.document,r=t.document.head;let i=t[e];return i?i.default||i:new Promise((o,a)=>{for(const u of n){const c=s.createElement("script");c.src=u,c.onload=()=>{i=t[e],i?o(i.default||i):a(null)},c.onerror=l=>{a(l)},r.appendChild(c)}})}function De(n){return f.isFunction(n)&&Object.getOwnPropertyNames(n.prototype||{}).length===0||f.isFunction(n?.install)}function xe(n){return be.includes(n)}function ke(n){return le.includes(n)}function k(n=window){const e=window?.Mock;if(e)return e;const t=n?.Mock;if(t&&window)return window.Mock=t,t}function gt(n,e,t){Object.assign(e.meta,t.meta);const s=n?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function He(n){return/^\([\s\S]*\)/.test(n.trim())}function Ne(n){return/\w+\([\s\S]*\)$/.test(n.trim())}function Le(n){return n.includes("=")}function _t(n){if(typeof window>"u")return;const e=window[0]||window;if(e.__simulator__)try{const t=e.__simulator__.engine.provider.errorHandler;t&&t(n)}catch{}}function H(n,e,t=!1,s=!1,r=!1){try{const i=['"use strict";',"var __self = arguments[0];"];i.push("return ");let o=(n.value||"").trim();r||(o=o.replace(/this(\W|$)/g,(u,c)=>`__self${c}`)),o=i.join(`
|
|
10
|
+
`)+o;const a=r?`
|
|
11
|
+
${o}
|
|
12
|
+
`:`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(i){if(f.logger.error("parseExpression.error",i,n,e?.__self??e),_t(i),s)throw i}}function R(n,e,t=!1,s=!1,r=!1){const i=H(n,e,t,s,r);if(typeof i!="function"&&(f.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return i}function b(n){return n&&n.type==="JSExpression"}function C(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function Ue(n){return b(n)||C(n)}function vt(n){return Ue(n)?n.value:JSON.stringify(n)}const yt={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},de=Symbol("access");class Y{options;data=null;mode=S.Raw;interceptResponse=!0;isTipShowing=!1;constructor(e){this.options=Object.assign({},yt,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode!==S.Design&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:i}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),r&&f.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):f.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(de,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>f.unRSA(r,t));try{this.data=JSON.parse(s.join(""))}catch(r){console.warn(r)}return}if(typeof e=="string")try{const s=t?f.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===x){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):e.meta.permission?this.can(e.meta.permission):!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),f.isFunction(r)?(r(),t(!1)):f.isString(r)?t(r):t(!1)}}t(!1),await f.delay(0),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&await this.showTip(t)&&this.toLogin()}async showTip(e){const{alert:t}=this.options;return this.isTipShowing?!1:t?(this.isTipShowing=!0,await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!0)?.finally(()=>{this.isTipShowing=!1})):(window.alert(e),!0)}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 qe(){return $.inject(de,null)}function St(n={}){const{notify:e,loading:t,settings:s={},Startup:r,access:i,useTitle:o,alert:a}=n;let u=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},showLoading:()=>{u&&u.close(),t&&(u=t())},hideLoading:()=>{u&&(u.close(),u=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:o,alert:a,startupComponent:r,access:i?new Y({alert:a,...i}):void 0}}function wt(n={}){return new Y(n)}function Be(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?H(n.headers,{},!0):void 0,i={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(o,a)=>(delete i.data,s.send(f.merge(i,a||{},{data:o})))}}function Je(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(i,o)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,i,o)}}function Ke(n=[],e=[],t){const s={};for(const r of n){const i=Be(r,t);s[r.id]=i,s[r.name]=i}for(const r of e)s[r.id]=Je(r,t);return s}async function Ge(n=[],e=window){const t=k(e);t&&(he(e),n.forEach(s=>Ve(t,s)))}function ze(n,e=window){const t=C(n.mockTemplate)&&n.mockTemplate.value?R(n.mockTemplate,{},!0):void 0,s=k(e);return async(...r)=>{let i={};if(t)try{i=await t.apply(t,r)}catch(o){f.logger.warn("模拟数据模版异常",o)}return s?.mock(i)}}function Ve(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const r=f.isUrl(t)?new URL(t).pathname:t,i=f.pathToRegexp(`(.*)${r}(.*)`),o=f.pathToRegexpMatch(r,{decode:decodeURIComponent}),a=H(s,{},!0);n.mock(i,u=>{const c=f.url.parse(u.url)||{},l=u.body instanceof FormData?f.formDataToJson(u.body):u.body,p=f.isUrl(u.url)?new URL(u.url).pathname:u.url.split("?")[0],d=o(p)?.params;Object.assign(u,{data:l,params:d,query:c});try{return n.mock(a(u))}catch(h){return console.warn("[mockApi]",i,u,h),null}})}catch(r){console.warn("mockApi",r)}}function he(n=window){const e=k(n);e&&(e._mocked={})}class We{__id=null;__mode;__instance=null;__contextRefs={};__refs={};__refCaches={};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={};$provider=null;__transform={};constructor(e){const{mode:t,dsl:s,attrs:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=W){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.__refCaches={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&oe.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){oe.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.__refCaches={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return R({type:s,value:r},this)}else return R(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return H({type:s,value:r},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode===S.VNode)return;e&&e!==this.__id&&(this.__contextRefs[e]=this);let s=e?this.__refCaches[e]:null;return s||(s=async r=>{await f.delay(0);let i=r?.$vtjEl||r?.$el||r?._?.vnode?.el||r;if(!i){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return i.nodeType===3&&i.nextSibling&&(i=i.nextSibling),i.__vtj__=e,S.Design===this.__mode&&(i.__context__=this,i.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,r)),typeof t=="function"?t(r):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,r)),r},e&&(this.__refCaches[e]=s),s)}__getRefEl(e,t,s){const r=e[t];if(r&&s!==r){const i=new Set([].concat(r,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 z(n){const{Vue:e=W,mode:t=S.Runtime,components:s={},libs:r={},apis:i={},loader:o}=n,a=e.computed(()=>n.dsl),u={$components:s,$libs:r,$apis:i},c=new We({mode:t,dsl:a.value,attrs:u}),l=e.defineComponent({name:a.value.name,__scopeId:a.value.id?`data-v-${a.value.id}`:void 0,props:{...$t(a.value.props??[],c)},async setup(p={}){c.$props=p,c.props=p,a.value.id&&Q(n.window||window,a.value.id,a.value.css||"",!0),c.state=Ct(e,a.value.state??{},c);const d=bt(e,a.value.computed??{},c),h=jt(a.value.methods??{},c),g=Rt(e,a.value.inject,c);for(const[y,w]of Object.entries(g||{}))g[y]=e.inject(y,w);const m=Qe(a.value.dataSources||{},c),_={...g,...d,...h,...m};return c.setup(_,e),Pt(e,a.value.watch??[],c),{vtj:c,state:c.state,...p,...d,...h}},emits:Et(a.value.emits),expose:["vtj",...a.value.expose||[]],render(){if(!a.value.nodes)return null;const p=a.value.nodes||[];if(p.length===1)return M(p[0],c,e,o,p);{const d=p.map(h=>M(h,c,e,o,p));return e.createVNode("div",{},d)}},...At(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function Et(n=[]){return n.map(e=>f.isString(e)?e:e.name)}function $t(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>Ce[i]):void 0;return n.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:b(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function Ct(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let i=e[r];return b(i)?i=t.__parseExpression(i):C(i)&&(i=t.__parseFunction(i)),s[r]=i,s},{}))}function bt(n,e,t){return Object.entries(e??{}).reduce((s,[r,i])=>(s[r]=n.computed(t.__parseFunction(i)),s),{})}function jt(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function Rt(n,e=[],t){return e.reduce((s,r)=>{const{name:i,from:o}=r||{};r.default;const a=b(o)?t.__parseExpression(o)||i:o??i,u=b(r.default)?t.__parseExpression(r.default):r.default??null;return s[i]=n.inject(a,u),s},{})}function Qe(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=ze(r);else if(r.ref){const i=e.$apis[r.ref],o=C(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;t[s]=async(...a)=>{const u=await i.apply(e,a);return o?o(u):u}}return t},{})}function Pt(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function At(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>{const i=e.__parseFunction(r);return t[s]=async()=>{f.isFunction(i)&&(await f.delay(0),await i())},t},{})}class It{__props={};__events={};__nodes={};constructor(){}setProps(e,t){this.__props[e]=t}getProps(e){return this.__props[e]}loadProps(e,t){const s=e?this.getProps(e):null;return s||(e&&this.setProps(e,t),t)}setEvents(e,t){}getEvents(e){return this.__events[e]}loadEvents(e,t){const s=e?this.getEvents(e):null;return s||(e&&this.setEvents(e,t),t)}setNode(e,t){this.__nodes[e]=t}getNode(e){return this.__nodes[e]}loadNode(e,t){const s=e?this.getNode(e):null;return s||(e&&this.setNode(e,t),t)}isEqual(e,t){return f.isEqual(e,t)}clear(){this.__props={},this.__events={},this.__nodes={}}}const O=new It,Ye=new f.Queue;let ne=[],T={},L={};const Xe=(n,e)=>e;async function me(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(a=>J(a));if(r.length===0||!s)return null;const i=t.filter(a=>B(a));return i.length&&pe(i,e),await fe(r,s,e).catch(a=>(console.warn("loadScriptUrl error",r,s,a),null))}function V(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(ne.forEach(r=>{delete s.window[r]}),ne=[]),(r,i,o,a=W)=>{if(!o||typeof o=="string")return i;let u="";if(o.type==="Schema"&&o.id)return u=o.id+"_"+r,L[u]||(L[u]=a.defineAsyncComponent(async()=>{const c=T[o.id]||await Ye.add(o.id,()=>e(o.id));return c&&(c.name=i,T[o.id]=c),c?z({Vue:a,mode:S.Runtime,...s,dsl:f.cloneDeep(c),loader:V(n)}).renderer:null}));if(o.type==="UrlSchema"&&o.url)return u=o.url+"_"+r,L[u]||(L[u]=a.defineAsyncComponent(async()=>{const c=T[o.url]||await t(o.url);return c&&(c.name=i,T[o.url]=c),c?z({...s,Vue:a,dsl:f.cloneDeep(c),mode:S.Runtime,loader:V(n)}).renderer:null}));if(o.type==="Plugin"){let c=o.library?T[o.library]:null;return c||(o.library&&ne.push(o.library),c=T[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await me(o,s.window);return l||(console.warn("getPlugin result is null",o),null)}),c)}return i}}function Ft(){T={},L={},Ye.clearAllCache(),O.clear()}function M(n,e,t=W,s=Xe,r=[],i=!1,o=0){if(!n||!n.name||n.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:u=null,directives:c=[]}=n,{vIf:l,vElseIf:p,vElse:d,vFor:h,vShow:g,vModels:m,vBind:_,vHtml:y,others:w}=Ze(c);if(!i&&(p||d))return null;if(l&&!Mt(l,e))return Nt(n,e,t,s,r);const j=(v,A=0)=>{const Z=v.$components,ee=(()=>{if(n.name==="component")return Ot(v,n.props?.is);if(n.name==="slot")return n.name;const P=s(`${n.id}_${A}`,n.name,n.from,t);return f.isString(P)?xe(P)||ke(P)?P:Z[P]??a?.app?.component(P)??P:P})(),I=Dt(u,n.props??{},v),rt=Ht(t,n.id,n.events??{},v);if(n.name==="slot")return Lt(t,n,I,v,s);_&&Object.assign(I,v.__parseExpression(_.value)),g&&(I.style=Object.assign(I.style??{},qt(g,v))),y&&Object.assign(I,Bt(y,v)),m.forEach(P=>{le.includes(n.name)?Object.assign(I,Jt(P,v)):Object.assign(I,Kt(t,P,v))});const it=Gt(t,n.children??[],v,s,n),Se=v?.__id?`data-v-${v.__id}`:void 0,ot=Se?{[Se]:""}:{},at=v.__mode===S.Design?{"data-vtj":u}:{},K=`${u}_${A}`,te={key:K,...ot,...at,...I,...rt};O.isEqual(te,O.getNode(K))||O.setNode(K,te);let se=t.createVNode(ee,O.getNode(K)||te||{},it);const we=a?Tt(a,w,v):[];return we.length&&(se=t.withDirectives(se,we)),se};return h?Wt(h,j,e):j(e,o)}function Tt(n,e,t){const s=n.app;return e.map(r=>{const i=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!i)return null;const o=[i];return r.value&&o.push(t.__parseExpression(r.value)),r.arg&&o.push(r.arg),r.modifiers&&o.push(r.modifiers),o}).filter(r=>!!r)}function Ze(n=[]){const e=n.find(l=>f.camelCase(l.name)==="vIf"),t=n.find(l=>f.camelCase(l.name)==="vElseIf"),s=n.find(l=>f.camelCase(l.name)==="vElse"),r=n.find(l=>f.camelCase(l.name)==="vFor"),i=n.find(l=>f.camelCase(l.name)==="vShow"),o=n.find(l=>f.camelCase(l.name)==="vBind"),a=n.find(l=>f.camelCase(l.name)==="vHtml"),u=n.filter(l=>f.camelCase(l.name)==="vModel"),c=n.filter(l=>!$e.includes(f.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:r,vShow:i,vModels:u,vBind:o,others:c,vHtml:a}}function Mt(n,e){return!!e.__parseExpression(n.value)}function Ot(n,e){return e?b(e)?n.__parseExpression(e):e:"div"}function Dt(n,e,t){const s=ae(e,t);return s.ref=t.__ref(n,s.ref),s}function ae(n,e){return b(n)?e.__parseExpression(n):C(n)?e.__parseFunction(n):Array.isArray(n)?n.map(t=>ae(t,e)):typeof n=="object"?Object.keys(n||{}).reduce((t,s)=>{let r=n[s];return t[s]=ae(r,e),t},{}):n}function xt(n,e){return t=>{t?.key?.toLowerCase()===e.toLowerCase()&&n(t)}}function kt(n){return He(n.value)?n:Ne(n.value)?{type:"JSFunction",value:`(...args) => (() => {
|
|
13
13
|
return (($event) => {
|
|
14
14
|
${n.value}
|
|
15
15
|
}).apply(this, args);
|
|
16
|
-
})()`}:n}function
|
|
16
|
+
})()`}:Le(n.value)?{type:"JSFunction",value:`() => { ${n.value}}`}:n}function Ht(n,e,t,s){const r=["passive","capture","once"],i={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(t||{}).reduce((a,u)=>{const c=t[u],l=ge(c.modifiers),p=l.find(g=>r.includes(g)),d="on"+f.upperFirstCamelCase(u)+(p&&i[p]||""),h=c.handler?s.__parseFunction(kt(c.handler)):null;return h&&(a[d]=n.withModifiers(l.includes("enter")?xt(h,"enter"):h,l)),a},{})}function Nt(n,e,t,s,r=[]){let i=r.findIndex(o=>o.id===n.id);for(let o=++i;o<r.length;o++){const{directives:a=[]}=r[o],{vElseIf:u,vElse:c}=Ze(a);if(u){if(e.__parseExpression(u.value))return M(r[o],e,t,s,r,!0);continue}if(c)return M(r[o],e,t,s,r,!0)}return null}function ge(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function Lt(n,e,t,s,r){const{children:i}=e,o=Ut(e,s),a=s.$slots?.[o.name];return a?a(t):i?f.isString(i)?n.createTextVNode(i):b(i)?n.createTextVNode(ue(s.__parseExpression(i))):Array.isArray(i)?i.map((u,c)=>M(u,s,n,r,i,!1,c)):null:null}function Ut(n,e){const{props:t}=n,s=t?.name||"default";return{name:b(s)?e.__parseExpression(s):s,params:[]}}function qt(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function Bt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function Jt(n,e){const t={type:"JSFunction",value:n.value?.value?`(v) => {
|
|
17
17
|
${n.value.value} = v?.target.value;
|
|
18
|
-
}`:"(v) => {}"};return{[b(n.arg)?e.__parseExpression(n.arg):n.arg||"value"]:e.__parseExpression(n.value),onInput:e.__parseFunction(t)}}function
|
|
18
|
+
}`:"(v) => {}"};return{[b(n.arg)?e.__parseExpression(n.arg):n.arg||"value"]:e.__parseExpression(n.value),onInput:e.__parseFunction(t)}}function Kt(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
|
19
19
|
${e.value.value} = v;
|
|
20
|
-
}`:"(v) => {}"},r=t.__parseFunction(s),o=ge(b(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),i=b(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[i]:t.__parseExpression(e.value),[`onUpdate:${i}`]:o.length&&r?n.withModifiers(r,o):r}}function Kt(n,e,t,s,r){if(!e)return null;if(f.isString(e))return{default:()=>e};if(b(e))return{default:()=>ue(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Gt(e),i=(a,u)=>!a||!r?{}:r?.id&&Object.keys(a).length?u?{[u]:a}:{[`scope_${r.id}`]:a}:u?{[u]:Object.create(null)}:{};return Object.entries(o).reduce((a,[u,{nodes:c,params:l,scope:p}])=>(a[u]=d=>{const h=l.length?f.pick(d??{},l):i(d,p);return c.map((g,m)=>M(g,t.__clone(h),n,s,c,!1,m))},a),{})}return null}function Gt(n){const e={};for(const t of n){const s=zt(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params),e[r].scope=s.scope||""):e[r]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function zt(n="default"){return f.isString(n)?{name:n,params:[],scope:""}:{params:[],scope:"",...n}}function Vt(n,e,t){const{value:s,iterator:r}=n,{item:o="item",index:i="index"}=r||{};let a=t.__parseExpression(s)||[];return Number.isInteger(a)&&(a=new Array(a).fill(!0).map((u,c)=>c+1)),Array.isArray(a)?a.map((u,c)=>e(t.__clone({[o]:u,[i]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const re=$.defineComponent({name:"VtjPageContainer",async setup(){const n=ye(),e=Ee.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,o=$.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:i}=n?.adapter;if(i){const a=e.meta.title||s.title||"VTJ.PRO";i(a)}}return{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?$.h(n,{...e,key:t}):$.h("div",{style:{padding:"10px"}},"找不到组件,组件不存在或未发布!")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Wt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}});function q(n,e,t=[]){const s=[];for(const r of t){const{id:o,title:i,icon:a,children:u,hidden:c,layout:l}=r;if(l){const p=q(n,e,u||[]);s.push(...p)}else{const p={id:o,title:i,icon:a,hidden:c,url:`${n}/${e}/${o}`,children:u&&u.length?q(n,e,u):void 0};s.push(p)}}return s}function _e(n,e){if(!e)return n;let t=[];for(const s of n)if(s.children&&s.children.length){const r=_e(s.children,e);r.length&&(s.children=r,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Qt(n){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=n||{},r=ye(),o=Ee.useRoute(),i=Ue(),a=$.ref(!1),u=$.ref(!1),c=r.project,l=(h,g)=>{a.value=!h?.mask,u.value=g?.pure??!!h?.pure};$.watchEffect(()=>{const{name:h,params:g,meta:m}=o;if(h===x){const _=r.getPage(g.id);l(_,m)}else if(h===U){const _=r.getHomepage();l(_,m)}else{const _=m.__vtj__;if(_){const y=r.getPage(_);l(y,m)}else a.value=!m.mask,u.value=!!m.pure}});const p=q(e,t,c?.pages),d=c?.config;return{disabled:a,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:_e(p,i),pure:u}}function oe(n,e){const{id:t,title:s,meta:r}=n,{name:o="page",prefix:i="",component:a,routeMeta:u}=e;return{name:t,path:`${i}${o}/${t}`,component:a,meta:{title:s,...u,...r,__vtj__:t}}}function ce(n){const{name:e="page",prefix:t="",pages:s=[],component:r,loader:o,routeMeta:i,homepage:a}=n,u=[];for(const c of s){const{id:l,title:p,dir:d,layout:h,children:g,meta:m}=c;if(d){const _=ce({name:e,prefix:t,component:r,routeMeta:i,homepage:a,loader:o,pages:g||[]});u.push(..._)}else if(h){const _=ce({name:e,prefix:t,component:r,routeMeta:i,homepage:a,loader:o,pages:g||[]}),y={name:`layout_${l}`,path:t,component:()=>o(l),meta:{title:p,...i,...m,__vtj__:l},children:_};u.push(y),u.push(oe(c,n))}else if(u.push(oe(c,n)),a===l){const _=oe(c,n);_.path="",_.name=`home_${l}`,u.push(_)}}return u}function Yt(n={},e){const{css:t,store:s,enhance:r}=n,{window:o,app:i,library:a={},adapter:u,mode:c}=e,{Pinia:l}=a;i.config.globalProperties.$libs=a,Q(o,"global-css",t||""),l&&s&&Xt(s,i,l),es(i,u,n),!u.access&&n.access&&Zt(n.access,i,c,u),ts(i,n),r&&ss(r,i,a)}function Xt(n,e,t){const s=t.createPinia();if(e.use(s),C(n)&&n.value){const r=R(n,{},!1,!1,!0),o=t.defineStore("$store",r(e)||{});e.config.globalProperties.$store=o()}}function Zt(n,e,t,s){if(C(n)&&n.value){const r=R(n,{},!1,!1,!0),{alert:o,request:i}=s,a=new Y({alert:o,storagePrefix:"__VTJ_APP_",...r(e)}),u=e.config.globalProperties.$router;a.connect({mode:t,router:u,request:i}),e.use(a)}}function es(n,e,t){if(!e.request)return;const{axios:s,request:r,response:o}=t;if(s&&C(s)&&s.value){const i=R(s,{},!1,!1,!0);e.request.setConfig(i(n))}if(r&&C(r)&&r.value){const i=R(r,{},!1,!1,!0),a=e.request;a.__unReq&&a.__unReq(),a.__unReq=e.request.useRequest(u=>i(u,n))}if(o&&C(o)&&o.value){const i=R(o,{},!1,!1,!0),a=e.request;a.__unRes&&a.__unRes(),a.__unRes=e.request.useResponse(u=>i(u,n))}}function ts(n,e){const{beforeEach:t,afterEach:s}=e,r=n.config.globalProperties.$router;if(t&&C(t)&&t.value){const o=R(t,{},!1,!1,!0);r&&r.beforeEach((i,a,u)=>o(i,a,u,n))}if(s&&C(s)&&s.value){const o=R(s,{},!1,!1,!0);r&&r.afterEach((i,a,u)=>o(i,a,u,n))}}function ss(n,e,t={}){C(n)&&n.value&&R(n,{},!1,!1,!0)(e,t)}function ns(n,e,t){if(!n||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:r,fallbackLocale:o,messages:i=[]}=t,a={};for(let c of i){const l=Object.keys(c).filter(p=>p!=="key");for(const p of l)a[p]||(a[p]={}),a[p][c.key]=c[p]}const u=s.createI18n({legacy:!1,locale:r,fallbackLocale:o,messages:a});n.use(u)}}const ve=Symbol("Provider");var Ze=(n=>(n.Production="production",n.Development="development",n))(Ze||{});class et extends T.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:r,materials:o,project:i={},adapter:a={},globals:u={},modules:c={},router:l=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=l,this.materialPath=p,this.nodeEnv=d,r&&(this.dependencies=r),o&&(this.materials=o),Object.assign(this.globals,u),Object.assign(this.adapter,a);const{access:h,request:g}=this.adapter;h&&h.connect({mode:s,router:l,request:g}),i&&s!==S.Design?this.load(i):this.project=i}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};service;project=null;components={};nodeEnv="development";env={};router=null;materialPath="./";urlDslCaches={};errorHandler=null;createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(o){f.logger.warn("模拟数据模版异常",o)}return k()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:r=[],meta:o=[],env:i=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.initEnv(i),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=Je(r,o,this.adapter),he(a),Ke(r,a),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,r]of t)e[s]||(e[s]=this.library[s]=await r())}async loadAssets(e={}){const{dependencies:t=[]}=this.project,{dependencies:s,library:r,components:o,materialPath:i,nodeEnv:a,libraryLocales:u}=this,{libraryExports:c,libraryMap:l,materials:p,materialExports:d,materialMapLibrary:h,libraryLocaleMap:g}=Pe(t,i,a==="development");Object.assign(this.libraryLocaleMap,g);for(const m of c){const _=s[m],y=e[m];if(y)r[m]=y;else if(_)e[m]=r[m]=await _();else{const j=l[m]||[];for(const v of j)B(v)&&await Oe(v,f.url.append(v,{v:D})),J(v)&&await f.loadScript(f.url.append(v,{v:D}));r[m]=e[m]}const w=g[m];if(w){const j=s[w];u[w]=j?await j():e[w]}}if(a==="development"){for(const _ of p)await f.loadScript(f.url.append(_,{v:D}));const m=this.materials||{};for(const _ of d){const y=e[h[_]],w=y?.default||y,j=T.BUILT_IN_COMPONENTS[_];if(j)w&&j.forEach(v=>{o[v]=w[v]});else{const v=m[_]?(await m[_]()).default:e[_];v&&w&&(v.components||[]).forEach(A=>{o[A.name]=Ae(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:r}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:i,pageRouteName:a=o,routeMeta:u}=s,c=i?"":"/",l={path:`${c}${a}/:id`,name:x,component:re},p=this.getHomepage(),d={path:c,name:U,component:p?re:r.startupComponent||Wt,meta:u};if(e.hasRoute(x)&&e.removeRoute(x),e.hasRoute(U)&&e.removeRoute(U),s.enableStaticRoute){const h=t?.pages||[];ce({name:a,prefix:c,pages:h,component:re,loader:this.getRenderComponent.bind(this),homepage:p?.id}).forEach(m=>{i?e.addRoute(i,m):e.addRoute(m)}),p||(i?e.addRoute(i,d):e.addRoute(d))}else i?(e.addRoute(i,l),e.addRoute(i,d)):(e.addRoute(l),e.addRoute(d))}setErrorHandler(e){e.config.errorHandler=f.debounce((t,s,r)=>{const o=s?.$options.name,i=typeof t=="string"?t:t?.message||t?.msg||"未知错误",a=`[ ${o} ] ${i} ${r}`;["getComputedStyle","ResizeObserver"].some(c=>a.includes(c))||(console.error("[VTJ Error]:",{err:t,instance:s,info:r},t?.stack),this.errorHandler&&this.errorHandler(t),this.adapter.notify&&this.adapter.notify(a,"组件渲染错误","error"))},300)}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,{libraryOptions:r={}}=this.options,o=e.config.globalProperties.installed||{};for(const[i,a]of Object.entries(this.library))if(!o[i]&&De(a)){const c={locale:s[t[i]]},l=r[i]||{},p={...c,...l};e.use(a,p),o[i]=!0}e.provide(ve,this),e.config.globalProperties.$provider=this,e.config.globalProperties.$request=this.adapter?.request,this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),this.project?.platform!=="uniapp"&&this.mode!==S.Design&&this.initGlobals(this.project?.globals||{},{app:e,window,adapter:this.adapter,library:this.library,mode:this.mode}),this.mode!==S.Design&&this.project?.i18n&&this.initI18n(e,this.library,this.project.i18n),this.options.enhance&&e.use(this.options.enhance,this),this.mode===S.Design&&this.setErrorHandler(e),e.config.globalProperties.installed=o}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=(r,o=[])=>{for(const i of o){if(i.id===r)return i;if(i.children&&i.children.length){const a=s(r,i.children);if(a)return a}}};return s(e,t)||null}getFirstPage(){const{pages:e=[]}=this.project||{};if(!e.length)return null;const t=(s=[])=>{for(const r of s){if(r.type==="page"&&!r.dir&&!r.layout)return r;if(r.children&&r.children.length){const o=t(r.children);if(o)return o}}};return t(e)||null}getMenus(e="page",t=""){return q(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):this.getFirstPage()}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:r,mode:o,apis:i}=this,a={mode:o,Vue:s.Vue,components:r,libs:s,apis:i,window,...t},u=V({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:a});return z({...a,dsl:e,loader:u})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return f.logger.warn(`Can not find file: ${e}`),null;if(t&&t(s),this.mode===S.Raw){const{vtjRawDir:o=".vtj/vue"}=this.options,i=`${o}/${e}.vue`,a=this.modules[i]||this.modules[`/src/pages/${e}.vue`];return a?(await a())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const r=await this.getDsl(s.id);return r?this.createDslRenderer(r).renderer:(f.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await me(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Yt(e,s)}initI18n(e,t,s){ns(e,t,s)}initEnv(e=[]){this.env=e.reduce((t,s)=>(t[s.name]=s[this.nodeEnv],t),{})}}function rs(n){const e=new et(n);return{provider:e,onReady:s=>e.ready(s)}}function ye(n={}){const e=$.inject(ve,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=n;t&&s&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${r?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function os(n,e=""){const{name:t,urls:s=[]}=n||{},r=s.map(a=>e+a),{css:o,js:i}=Ie(r);if(o.length&&pe(o),i.length)return await fe(i,t).catch(()=>{})}const tt={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0},is=(n,e="/__vtj__/api/:type.json")=>(t,s,r)=>n.send({url:e,method:"post",params:{type:t},query:r,data:{type:t,data:s},settings:tt}),as=(n,e="/__vtj__/api/uploader.json")=>async(t,s)=>await n.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...tt,type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);function cs(n){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{n&&n(e||"未知错误")}}})}class X{constructor(e=f.request){this.req=e,this.api=is(e),this.uploader=as(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(o=>je(o))[0];if(!s)return null;const r=this.pluginCaches[s];return r||(this.pluginCaches[s]=f.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const E=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class ls extends X{init(e){const t=new T.ProjectModel(e),s=E.get(`project_${t.id}`),r=Object.assign(t.toDsl(),s||{});return E.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new T.ProjectModel(e);return E.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return E.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return E.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=E.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return E.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return E.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=E.get(`history_${e}`);if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),E.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=E.get(`history_${e}`),s=new T.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=E.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return E.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{E.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class st extends X{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new T.ProjectModel(e),s=this.projects[t.id]||{},r=Object.assign(t.toDsl(),s);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new T.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new T.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,r=this.historyItems[s]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const r=`${e}_${s}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let G=null;function us(){return G||(G=new st,G)}class ps extends X{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:f.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}exports.ACCESS=ut;exports.ACCESS_KEY=de;exports.Access=Y;exports.BUILD_IN_TAGS=be;exports.BUILT_IN_DIRECTIVES=$e;exports.BaseService=X;exports.CONTEXT_HOST=ie;exports.Context=Ve;exports.ContextMode=S;exports.DATA_TYPES=Ce;exports.HOMEPAGE_ROUTE_NAME=U;exports.HTML_TAGS=le;exports.JSCodeToString=_t;exports.LIFE_CYCLES_LIST=ct;exports.LocalService=ps;exports.MemoryService=st;exports.NodeEnv=Ze;exports.PAGE_ROUTE_NAME=x;exports.Provider=et;exports.REMOTE=lt;exports.StorageService=ls;exports.VTJ_RENDERER_VERSION=D;exports.adoptStylesToInline=ht;exports.adoptedStyleSheets=Q;exports.clearLoaderCache=It;exports.compileScopedCSS=Te;exports.convertCssRpx=Me;exports.createAccess=St;exports.createAdapter=yt;exports.createAssetScripts=pt;exports.createAssetsCss=ft;exports.createDataSources=We;exports.createLoader=V;exports.createMemoryService=us;exports.createMenus=q;exports.createMetaApi=Be;exports.createMock=Ge;exports.createProvider=rs;exports.createRenderer=z;exports.createSchemaApi=qe;exports.createSchemaApis=Je;exports.createServiceRequest=cs;exports.defaultLoader=Ye;exports.fillBasePath=N;exports.getMock=k;exports.getModifiers=ge;exports.getPlugin=me;exports.getRawComponent=Ae;exports.isArrowFunction=He;exports.isBuiltInTag=xe;exports.isCSSUrl=B;exports.isCallFunction=Ne;exports.isJSCode=Le;exports.isJSExpression=b;exports.isJSFunction=C;exports.isJSON=je;exports.isJSUrl=J;exports.isNativeTag=ke;exports.isVuePlugin=De;exports.loadCss=Oe;exports.loadCssUrl=pe;exports.loadEnhance=os;exports.loadScriptUrl=fe;exports.menusFilter=_e;exports.mockApi=ze;exports.mockApis=Ke;exports.mockCleanup=he;exports.nodeCache=O;exports.nodeRender=M;exports.parseDeps=Pe;exports.parseExpression=H;exports.parseFunction=R;exports.parseUrls=Ie;exports.providerKey=ve;exports.removeProdFlag=Re;exports.rpxToPx=Fe;exports.setupPageSetting=mt;exports.toString=ue;exports.useAccess=Ue;exports.useMask=Qt;exports.useProvider=ye;
|
|
20
|
+
}`:"(v) => {}"},r=t.__parseFunction(s),i=ge(b(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),o=b(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[o]:t.__parseExpression(e.value),[`onUpdate:${o}`]:i.length&&r?n.withModifiers(r,i):r}}function Gt(n,e,t,s,r){if(!e)return null;if(f.isString(e))return{default:()=>e};if(b(e))return{default:()=>ue(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=zt(e),o=(a,u)=>!a||!r?{}:r?.id&&Object.keys(a).length?u?{[u]:a}:{[`scope_${r.id}`]:a}:u?{[u]:Object.create(null)}:{};return Object.entries(i).reduce((a,[u,{nodes:c,params:l,scope:p}])=>(a[u]=d=>{const h=l.length?f.pick(d??{},l):o(d,p);return c.map((g,m)=>M(g,t.__clone(h),n,s,c,!1,m))},a),{})}return null}function zt(n){const e={};for(const t of n){const s=Vt(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params),e[r].scope=s.scope||""):e[r]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function Vt(n="default"){return f.isString(n)?{name:n,params:[],scope:""}:{params:[],scope:"",...n}}function Wt(n,e,t){const{value:s,iterator:r}=n,{item:i="item",index:o="index"}=r||{};let a=t.__parseExpression(s)||[];return Number.isInteger(a)&&(a=new Array(a).fill(!0).map((u,c)=>c+1)),Array.isArray(a)?a.map((u,c)=>e(t.__clone({[i]:u,[o]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const re=$.defineComponent({name:"VtjPageContainer",async setup(){const n=ye(),e=Ee.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,i=$.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:o}=n?.adapter;if(o){const a=e.meta.title||s.title||"VTJ.PRO";o(a)}}return{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?$.h(n,{...e,key:t}):$.h("div",{style:{padding:"10px"}},"找不到组件,组件不存在或未发布!")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Qt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}});function q(n,e,t=[]){const s=[];for(const r of t){const{id:i,title:o,icon:a,children:u,hidden:c,layout:l}=r;if(l){const p=q(n,e,u||[]);s.push(...p)}else{const p={id:i,title:o,icon:a,hidden:c,url:`${n}/${e}/${i}`,children:u&&u.length?q(n,e,u):void 0};s.push(p)}}return s}function _e(n,e){if(!e)return n;let t=[];for(const s of n)if(s.children&&s.children.length){const r=_e(s.children,e);r.length&&(s.children=r,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Yt(n){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=n||{},r=ye(),i=Ee.useRoute(),o=qe(),a=$.ref(!1),u=$.ref(!1),c=r.project,l=(h,g)=>{a.value=!h?.mask,u.value=g?.pure??!!h?.pure};$.watchEffect(()=>{const{name:h,params:g,meta:m}=i;if(h===x){const _=r.getPage(g.id);l(_,m)}else if(h===U){const _=r.getHomepage();l(_,m)}else{const _=m.__vtj__;if(_){const y=r.getPage(_);l(y,m)}else a.value=!m.mask,u.value=!!m.pure}});const p=q(e,t,c?.pages),d=c?.config;return{disabled:a,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:_e(p,o),pure:u}}function ie(n,e){const{id:t,title:s,meta:r}=n,{name:i="page",prefix:o="",component:a,routeMeta:u}=e;return{name:t,path:`${o}${i}/${t}`,component:a,meta:{title:s,...u,...r,__vtj__:t}}}function ce(n){const{name:e="page",prefix:t="",pages:s=[],component:r,loader:i,routeMeta:o,homepage:a}=n,u=[];for(const c of s){const{id:l,title:p,dir:d,layout:h,children:g,meta:m}=c;if(d){const _=ce({name:e,prefix:t,component:r,routeMeta:o,homepage:a,loader:i,pages:g||[]});u.push(..._)}else if(h){const _=ce({name:e,prefix:t,component:r,routeMeta:o,homepage:a,loader:i,pages:g||[]}),y={name:`layout_${l}`,path:t,component:()=>i(l),meta:{title:p,...o,...m,__vtj__:l},children:_};u.push(y),u.push(ie(c,n))}else if(u.push(ie(c,n)),a===l){const _=ie(c,n);_.path="",_.name=`home_${l}`,u.push(_)}}return u}function Xt(n={},e){const{css:t,store:s,enhance:r}=n,{window:i,app:o,library:a={},adapter:u,mode:c}=e,{Pinia:l}=a;o.config.globalProperties.$libs=a,Q(i,"global-css",t||""),l&&s&&Zt(s,o,l),ts(o,u,n),!u.access&&n.access&&es(n.access,o,c,u),ss(o,n),r&&ns(r,o,a)}function Zt(n,e,t){const s=t.createPinia();if(e.use(s),C(n)&&n.value){const r=R(n,{},!1,!1,!0),i=t.defineStore("$store",r(e)||{});e.config.globalProperties.$store=i()}}function es(n,e,t,s){if(C(n)&&n.value){const r=R(n,{},!1,!1,!0),{alert:i,request:o}=s,a=new Y({alert:i,storagePrefix:"__VTJ_APP_",...r(e)}),u=e.config.globalProperties.$router;a.connect({mode:t,router:u,request:o}),e.use(a)}}function ts(n,e,t){if(!e.request)return;const{axios:s,request:r,response:i}=t;if(s&&C(s)&&s.value){const o=R(s,{},!1,!1,!0);e.request.setConfig(o(n))}if(r&&C(r)&&r.value){const o=R(r,{},!1,!1,!0),a=e.request;a.__unReq&&a.__unReq(),a.__unReq=e.request.useRequest(u=>o(u,n))}if(i&&C(i)&&i.value){const o=R(i,{},!1,!1,!0),a=e.request;a.__unRes&&a.__unRes(),a.__unRes=e.request.useResponse(u=>o(u,n))}}function ss(n,e){const{beforeEach:t,afterEach:s}=e,r=n.config.globalProperties.$router;if(t&&C(t)&&t.value){const i=R(t,{},!1,!1,!0);r&&r.beforeEach((o,a,u)=>i(o,a,u,n))}if(s&&C(s)&&s.value){const i=R(s,{},!1,!1,!0);r&&r.afterEach((o,a,u)=>i(o,a,u,n))}}function ns(n,e,t={}){C(n)&&n.value&&R(n,{},!1,!1,!0)(e,t)}function rs(n,e,t){if(!n||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:r,fallbackLocale:i,messages:o=[]}=t,a={};for(let c of o){const l=Object.keys(c).filter(p=>p!=="key");for(const p of l)a[p]||(a[p]={}),a[p][c.key]=c[p]}const u=s.createI18n({legacy:!1,locale:r,fallbackLocale:i,messages:a});n.use(u)}}const ve=Symbol("Provider");var et=(n=>(n.Production="production",n.Development="development",n))(et||{});class tt extends F.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:r,materials:i,project:o={},adapter:a={},globals:u={},modules:c={},router:l=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=l,this.materialPath=p,this.nodeEnv=d,r&&(this.dependencies=r),i&&(this.materials=i),Object.assign(this.globals,u),Object.assign(this.adapter,a);const{access:h,request:g}=this.adapter;h&&h.connect({mode:s,router:l,request:g}),o&&s!==S.Design?this.load(o):this.project=o}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};service;project=null;components={};nodeEnv="development";env={};router=null;materialPath="./";urlDslCaches={};errorHandler=null;createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){f.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:r=[],meta:i=[],env:o=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.initEnv(o),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=Ke(r,i,this.adapter),he(a),Ge(r,a),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,r]of t)e[s]||(e[s]=this.library[s]=await r())}async loadAssets(e={}){const{dependencies:t=[]}=this.project,{dependencies:s,library:r,components:i,materialPath:o,nodeEnv:a,libraryLocales:u}=this,{libraryExports:c,libraryMap:l,materials:p,materialExports:d,materialMapLibrary:h,libraryLocaleMap:g}=Pe(t,o,a==="development");Object.assign(this.libraryLocaleMap,g);for(const m of c){const _=s[m],y=e[m];if(y)r[m]=y;else if(_)e[m]=r[m]=await _();else{const j=l[m]||[];for(const v of j)B(v)&&await Oe(v,f.url.append(v,{v:D})),J(v)&&await f.loadScript(f.url.append(v,{v:D}));r[m]=e[m]}const w=g[m];if(w){const j=s[w];u[w]=j?await j():e[w]}}if(a==="development"){for(const _ of p)await f.loadScript(f.url.append(_,{v:D}));const m=this.materials||{};for(const _ of d){const y=e[h[_]],w=y?.default||y,j=F.BUILT_IN_COMPONENTS[_];if(j)w&&j.forEach(v=>{i[v]=w[v]});else{const v=m[_]?(await m[_]()).default:e[_];v&&w&&(v.components||[]).forEach(A=>{i[A.name]=Ae(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:r}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:o,pageRouteName:a=i,routeMeta:u}=s,c=o?"":"/",l={path:`${c}${a}/:id`,name:x,component:re},p=this.getHomepage(),d={path:c,name:U,component:p?re:r.startupComponent||Qt,meta:u};if(e.hasRoute(x)&&e.removeRoute(x),e.hasRoute(U)&&e.removeRoute(U),s.enableStaticRoute){const h=t?.pages||[];ce({name:a,prefix:c,pages:h,component:re,loader:this.getRenderComponent.bind(this),homepage:p?.id}).forEach(m=>{o?e.addRoute(o,m):e.addRoute(m)}),p||(o?e.addRoute(o,d):e.addRoute(d))}else o?(e.addRoute(o,l),e.addRoute(o,d)):(e.addRoute(l),e.addRoute(d))}setErrorHandler(e){e.config.errorHandler=f.debounce((t,s,r)=>{const i=s?.$options.name,o=typeof t=="string"?t:t?.message||t?.msg||"未知错误",a=`[ ${i} ] ${o} ${r}`;["getComputedStyle","ResizeObserver"].some(c=>a.includes(c))||(console.error("[VTJ Error]:",{err:t,instance:s,info:r},t?.stack),this.errorHandler&&this.errorHandler(t),this.adapter.notify&&this.adapter.notify(a,"组件渲染错误","error"))},300)}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,{libraryOptions:r={}}=this.options,i=e.config.globalProperties.installed||{};for(const[o,a]of Object.entries(this.library))if(!i[o]&&De(a)){const c={locale:s[t[o]]},l=r[o]||{},p={...c,...l};e.use(a,p),i[o]=!0}e.provide(ve,this),e.config.globalProperties.$provider=this,e.config.globalProperties.$request=this.adapter?.request,this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),this.project?.platform!=="uniapp"&&this.mode!==S.Design&&this.initGlobals(this.project?.globals||{},{app:e,window,adapter:this.adapter,library:this.library,mode:this.mode}),this.mode!==S.Design&&this.project?.i18n&&this.initI18n(e,this.library,this.project.i18n),this.options.enhance&&e.use(this.options.enhance,this),this.mode===S.Design&&this.setErrorHandler(e),e.config.globalProperties.installed=i}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=(r,i=[])=>{for(const o of i){if(o.id===r)return o;if(o.children&&o.children.length){const a=s(r,o.children);if(a)return a}}};return s(e,t)||null}getFirstPage(){const{pages:e=[]}=this.project||{};if(!e.length)return null;const t=(s=[])=>{for(const r of s){if(r.type==="page"&&!r.dir&&!r.layout)return r;if(r.children&&r.children.length){const i=t(r.children);if(i)return i}}};return t(e)||null}getMenus(e="page",t=""){return q(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):this.getFirstPage()}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:r,mode:i,apis:o}=this,a={mode:i,Vue:s.Vue,components:r,libs:s,apis:o,window,...t},u=V({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:a});return z({...a,dsl:e,loader:u})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return f.logger.warn(`Can not find file: ${e}`),null;if(t&&t(s),this.mode===S.Raw){const{vtjRawDir:i=".vtj/vue"}=this.options,o=`${i}/${e}.vue`,a=this.modules[o]||this.modules[`/src/pages/${e}.vue`];return a?(await a())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const r=await this.getDsl(s.id);return r?this.createDslRenderer(r).renderer:(f.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await me(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Xt(e,s)}initI18n(e,t,s){rs(e,t,s)}initEnv(e=[]){this.env=e.reduce((t,s)=>(t[s.name]=s[this.nodeEnv],t),{})}}function is(n){const e=new tt(n);return{provider:e,onReady:s=>e.ready(s)}}function ye(n={}){const e=$.inject(ve,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=n;t&&s&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${r?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function os(n,e=""){const{name:t,urls:s=[]}=n||{},r=s.map(a=>e+a),{css:i,js:o}=Ie(r);if(i.length&&pe(i),o.length)return await fe(o,t).catch(()=>{})}const st={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0},as=(n,e="/__vtj__/api/:type.json")=>(t,s,r)=>n.send({url:e,method:"post",params:{type:t},query:r,data:{type:t,data:s},settings:st}),cs=(n,e="/__vtj__/api/uploader.json")=>async(t,s)=>await n.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...st,type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);function ls(n){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{n&&n(e||"未知错误")}}})}class X{constructor(e=f.request){this.req=e,this.api=as(e),this.uploader=cs(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=>je(i))[0];if(!s)return null;const r=this.pluginCaches[s];return r||(this.pluginCaches[s]=f.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 E=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class us extends X{init(e){const t=new F.ProjectModel(e),s=E.get(`project_${t.id}`),r=Object.assign(t.toDsl(),s||{});return E.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new F.ProjectModel(e);return E.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return E.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return E.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=E.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return E.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return E.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=E.get(`history_${e}`);if(t){const r=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,r),E.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=E.get(`history_${e}`),s=new F.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=E.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return E.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{E.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class nt extends X{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new F.ProjectModel(e),s=this.projects[t.id]||{},r=Object.assign(t.toDsl(),s);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new F.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const r=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,r),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new F.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,r=this.historyItems[s]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const r=`${e}_${s}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let G=null;function ps(){return G||(G=new nt,G)}class fs extends X{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:f.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}exports.ACCESS=pt;exports.ACCESS_KEY=de;exports.Access=Y;exports.BUILD_IN_TAGS=be;exports.BUILT_IN_DIRECTIVES=$e;exports.BaseService=X;exports.CONTEXT_HOST=oe;exports.Context=We;exports.ContextMode=S;exports.DATA_TYPES=Ce;exports.HOMEPAGE_ROUTE_NAME=U;exports.HTML_TAGS=le;exports.JSCodeToString=vt;exports.LIFE_CYCLES_LIST=lt;exports.LocalService=fs;exports.MemoryService=nt;exports.NodeEnv=et;exports.PAGE_ROUTE_NAME=x;exports.Provider=tt;exports.REMOTE=ut;exports.StorageService=us;exports.VTJ_RENDERER_VERSION=D;exports.adoptStylesToInline=mt;exports.adoptedStyleSheets=Q;exports.clearLoaderCache=Ft;exports.compileScopedCSS=Fe;exports.convertCssRpx=Me;exports.createAccess=wt;exports.createAdapter=St;exports.createAssetScripts=ft;exports.createAssetsCss=dt;exports.createDataSources=Qe;exports.createLoader=V;exports.createMemoryService=ps;exports.createMenus=q;exports.createMetaApi=Je;exports.createMock=ze;exports.createProvider=is;exports.createRenderer=z;exports.createSchemaApi=Be;exports.createSchemaApis=Ke;exports.createServiceRequest=ls;exports.defaultLoader=Xe;exports.fillBasePath=N;exports.getMock=k;exports.getModifiers=ge;exports.getPlugin=me;exports.getRawComponent=Ae;exports.isArrowFunction=He;exports.isAssignment=Le;exports.isBuiltInTag=xe;exports.isCSSUrl=B;exports.isCallFunction=Ne;exports.isJSCode=Ue;exports.isJSExpression=b;exports.isJSFunction=C;exports.isJSON=je;exports.isJSUrl=J;exports.isNativeTag=ke;exports.isVuePlugin=De;exports.loadCss=Oe;exports.loadCssUrl=pe;exports.loadEnhance=os;exports.loadScriptUrl=fe;exports.menusFilter=_e;exports.mockApi=Ve;exports.mockApis=Ge;exports.mockCleanup=he;exports.nodeCache=O;exports.nodeRender=M;exports.parseDeps=Pe;exports.parseExpression=H;exports.parseFunction=R;exports.parseUrls=Ie;exports.providerKey=ve;exports.removeProdFlag=Re;exports.rpxToPx=Te;exports.setupPageSetting=gt;exports.toString=ue;exports.useAccess=qe;exports.useMask=Yt;exports.useProvider=ye;
|
package/dist/index.mjs
CHANGED
|
@@ -7,10 +7,10 @@ import { useRoute as Oe } from "vue-router";
|
|
|
7
7
|
* Copyright (c) 2026, VTJ.PRO All rights reserved.
|
|
8
8
|
* @name @vtj/renderer
|
|
9
9
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
10
|
-
* @version 0.16.
|
|
10
|
+
* @version 0.16.29
|
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
12
12
|
*/
|
|
13
|
-
const H = "0.16.
|
|
13
|
+
const H = "0.16.29";
|
|
14
14
|
var y = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(y || {});
|
|
15
15
|
const Re = [
|
|
16
16
|
"$el",
|
|
@@ -24,7 +24,7 @@ const Re = [
|
|
|
24
24
|
"$props",
|
|
25
25
|
"$options",
|
|
26
26
|
"$forceUpdate"
|
|
27
|
-
],
|
|
27
|
+
], Ms = [
|
|
28
28
|
"beforeCreate",
|
|
29
29
|
"created",
|
|
30
30
|
"beforeMount",
|
|
@@ -57,7 +57,7 @@ const Re = [
|
|
|
57
57
|
Date
|
|
58
58
|
}, k = "VtjPage", J = "VtjHomepage", Me = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot,svg".split(
|
|
59
59
|
","
|
|
60
|
-
), dt = "component,slot".split(","),
|
|
60
|
+
), dt = "component,slot".split(","), Ts = [
|
|
61
61
|
"h",
|
|
62
62
|
"t",
|
|
63
63
|
"t",
|
|
@@ -77,7 +77,7 @@ const Re = [
|
|
|
77
77
|
"p",
|
|
78
78
|
"r",
|
|
79
79
|
"o"
|
|
80
|
-
].join(""),
|
|
80
|
+
].join(""), xs = {
|
|
81
81
|
auth: [
|
|
82
82
|
"h",
|
|
83
83
|
"t",
|
|
@@ -149,12 +149,12 @@ function X(n) {
|
|
|
149
149
|
function ht(n) {
|
|
150
150
|
return /\.json$/.test(n);
|
|
151
151
|
}
|
|
152
|
-
function
|
|
152
|
+
function Ds(n) {
|
|
153
153
|
return n.map(
|
|
154
154
|
(e) => `<script src="${O.append(e, { v: H })}"><\/script>`
|
|
155
155
|
).join("");
|
|
156
156
|
}
|
|
157
|
-
function
|
|
157
|
+
function Hs(n = []) {
|
|
158
158
|
return n.map(
|
|
159
159
|
(e) => `<link rel="stylesheet" href="${O.append(e, { v: H })}" />`
|
|
160
160
|
).join("");
|
|
@@ -347,7 +347,7 @@ function ge(n, e, t, s = !1) {
|
|
|
347
347
|
l ? l.innerHTML = a : (l = c.createElement("style"), l.id = e, l.innerHTML = a, c.head.appendChild(l));
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
|
-
function
|
|
350
|
+
function ks(n) {
|
|
351
351
|
const e = n.adoptedStyleSheets || [];
|
|
352
352
|
let t = "";
|
|
353
353
|
if (e.forEach((s) => {
|
|
@@ -405,7 +405,7 @@ function N(n = window) {
|
|
|
405
405
|
if (t && window)
|
|
406
406
|
return window.Mock = t, t;
|
|
407
407
|
}
|
|
408
|
-
function
|
|
408
|
+
function Ns(n, e, t) {
|
|
409
409
|
Object.assign(e.meta, t.meta);
|
|
410
410
|
const s = n?._container;
|
|
411
411
|
t?.type === "page" && s.classList.add("is-page"), t?.pure && s.classList.add("is-pure");
|
|
@@ -417,6 +417,9 @@ function Pt(n) {
|
|
|
417
417
|
return /\w+\([\s\S]*\)$/.test(n.trim());
|
|
418
418
|
}
|
|
419
419
|
function At(n) {
|
|
420
|
+
return n.includes("=");
|
|
421
|
+
}
|
|
422
|
+
function It(n) {
|
|
420
423
|
if (typeof window > "u") return;
|
|
421
424
|
const e = window[0] || window;
|
|
422
425
|
if (e.__simulator__)
|
|
@@ -438,7 +441,7 @@ ${o}
|
|
|
438
441
|
` : `with(${t ? "{}" : "$scope || {}"}) { ${o} }`;
|
|
439
442
|
return new Function("$scope", a)(e);
|
|
440
443
|
} catch (i) {
|
|
441
|
-
if (M.error("parseExpression.error", i, n, e?.__self ?? e),
|
|
444
|
+
if (M.error("parseExpression.error", i, n, e?.__self ?? e), It(i), s)
|
|
442
445
|
throw i;
|
|
443
446
|
}
|
|
444
447
|
}
|
|
@@ -459,13 +462,13 @@ function E(n) {
|
|
|
459
462
|
function $(n) {
|
|
460
463
|
return typeof n == "object" && n && n.type === "JSFunction";
|
|
461
464
|
}
|
|
462
|
-
function
|
|
465
|
+
function Ft(n) {
|
|
463
466
|
return E(n) || $(n);
|
|
464
467
|
}
|
|
465
|
-
function
|
|
466
|
-
return
|
|
468
|
+
function Bs(n) {
|
|
469
|
+
return Ft(n) ? n.value : JSON.stringify(n);
|
|
467
470
|
}
|
|
468
|
-
const
|
|
471
|
+
const Ot = {
|
|
469
472
|
session: !1,
|
|
470
473
|
authKey: "Authorization",
|
|
471
474
|
storageKey: "ACCESS_STORAGE",
|
|
@@ -486,7 +489,7 @@ class _e {
|
|
|
486
489
|
interceptResponse = !0;
|
|
487
490
|
isTipShowing = !1;
|
|
488
491
|
constructor(e) {
|
|
489
|
-
this.options = Object.assign({},
|
|
492
|
+
this.options = Object.assign({}, Ot, e), this.loadData();
|
|
490
493
|
}
|
|
491
494
|
enableIntercept() {
|
|
492
495
|
this.interceptResponse = !0;
|
|
@@ -635,10 +638,10 @@ class _e {
|
|
|
635
638
|
);
|
|
636
639
|
}
|
|
637
640
|
}
|
|
638
|
-
function
|
|
641
|
+
function Mt() {
|
|
639
642
|
return Ie(He, null);
|
|
640
643
|
}
|
|
641
|
-
function
|
|
644
|
+
function Ls(n = {}) {
|
|
642
645
|
const {
|
|
643
646
|
notify: e,
|
|
644
647
|
loading: t,
|
|
@@ -679,10 +682,10 @@ function Bs(n = {}) {
|
|
|
679
682
|
access: i ? new _e({ alert: a, ...i }) : void 0
|
|
680
683
|
};
|
|
681
684
|
}
|
|
682
|
-
function
|
|
685
|
+
function qs(n = {}) {
|
|
683
686
|
return new _e(n);
|
|
684
687
|
}
|
|
685
|
-
function
|
|
688
|
+
function Tt(n, e) {
|
|
686
689
|
const { jsonp: t, request: s } = e;
|
|
687
690
|
if (n.method === "jsonp")
|
|
688
691
|
return (r = {}) => t(n.url, {
|
|
@@ -701,7 +704,7 @@ function Mt(n, e) {
|
|
|
701
704
|
return (o, a) => (delete i.data, s.send(et(i, a || {}, { data: o })));
|
|
702
705
|
}
|
|
703
706
|
}
|
|
704
|
-
function
|
|
707
|
+
function xt(n, e) {
|
|
705
708
|
const { metaQuery: t } = e;
|
|
706
709
|
if (!t) return;
|
|
707
710
|
const { code: s, queryCode: r } = n;
|
|
@@ -713,21 +716,21 @@ function Tt(n, e) {
|
|
|
713
716
|
return t(s, r, i, o);
|
|
714
717
|
};
|
|
715
718
|
}
|
|
716
|
-
function
|
|
719
|
+
function Dt(n = [], e = [], t) {
|
|
717
720
|
const s = {};
|
|
718
721
|
for (const r of n) {
|
|
719
|
-
const i =
|
|
722
|
+
const i = Tt(r, t);
|
|
720
723
|
s[r.id] = i, s[r.name] = i;
|
|
721
724
|
}
|
|
722
725
|
for (const r of e)
|
|
723
|
-
s[r.id] =
|
|
726
|
+
s[r.id] = xt(r, t);
|
|
724
727
|
return s;
|
|
725
728
|
}
|
|
726
|
-
async function
|
|
729
|
+
async function Ht(n = [], e = window) {
|
|
727
730
|
const t = N(e);
|
|
728
|
-
t && (ke(e), n.forEach((s) =>
|
|
731
|
+
t && (ke(e), n.forEach((s) => Nt(t, s)));
|
|
729
732
|
}
|
|
730
|
-
function
|
|
733
|
+
function kt(n, e = window) {
|
|
731
734
|
const t = $(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = N(e);
|
|
732
735
|
return async (...r) => {
|
|
733
736
|
let i = {};
|
|
@@ -740,7 +743,7 @@ function Ht(n, e = window) {
|
|
|
740
743
|
return s?.mock(i);
|
|
741
744
|
};
|
|
742
745
|
}
|
|
743
|
-
function
|
|
746
|
+
function Nt(n, e) {
|
|
744
747
|
if (!e.mock) return;
|
|
745
748
|
const { url: t, mockTemplate: s } = e;
|
|
746
749
|
if (t && s)
|
|
@@ -763,7 +766,7 @@ function ke(n = window) {
|
|
|
763
766
|
const e = N(n);
|
|
764
767
|
e && (e._mocked = {});
|
|
765
768
|
}
|
|
766
|
-
class
|
|
769
|
+
class Bt {
|
|
767
770
|
__id = null;
|
|
768
771
|
__mode;
|
|
769
772
|
__instance = null;
|
|
@@ -879,7 +882,7 @@ function fe(n) {
|
|
|
879
882
|
$components: s,
|
|
880
883
|
$libs: r,
|
|
881
884
|
$apis: i
|
|
882
|
-
}, c = new
|
|
885
|
+
}, c = new Bt({
|
|
883
886
|
mode: t,
|
|
884
887
|
dsl: a.value,
|
|
885
888
|
attrs: u
|
|
@@ -887,7 +890,7 @@ function fe(n) {
|
|
|
887
890
|
name: a.value.name,
|
|
888
891
|
__scopeId: a.value.id ? `data-v-${a.value.id}` : void 0,
|
|
889
892
|
props: {
|
|
890
|
-
...
|
|
893
|
+
...qt(a.value.props ?? [], c)
|
|
891
894
|
},
|
|
892
895
|
async setup(f = {}) {
|
|
893
896
|
c.$props = f, c.props = f, a.value.id && ge(
|
|
@@ -895,11 +898,11 @@ function fe(n) {
|
|
|
895
898
|
a.value.id,
|
|
896
899
|
a.value.css || "",
|
|
897
900
|
!0
|
|
898
|
-
), c.state =
|
|
899
|
-
const p =
|
|
901
|
+
), c.state = Ut(e, a.value.state ?? {}, c);
|
|
902
|
+
const p = Jt(e, a.value.computed ?? {}, c), d = Kt(a.value.methods ?? {}, c), m = zt(e, a.value.inject, c);
|
|
900
903
|
for (const [v, w] of Object.entries(m || {}))
|
|
901
904
|
m[v] = e.inject(v, w);
|
|
902
|
-
const h =
|
|
905
|
+
const h = Gt(
|
|
903
906
|
a.value.dataSources || {},
|
|
904
907
|
c
|
|
905
908
|
), g = {
|
|
@@ -908,7 +911,7 @@ function fe(n) {
|
|
|
908
911
|
...d,
|
|
909
912
|
...h
|
|
910
913
|
};
|
|
911
|
-
return c.setup(g, e),
|
|
914
|
+
return c.setup(g, e), Vt(e, a.value.watch ?? [], c), {
|
|
912
915
|
vtj: c,
|
|
913
916
|
state: c.state,
|
|
914
917
|
...f,
|
|
@@ -916,7 +919,7 @@ function fe(n) {
|
|
|
916
919
|
...d
|
|
917
920
|
};
|
|
918
921
|
},
|
|
919
|
-
emits:
|
|
922
|
+
emits: Lt(a.value.emits),
|
|
920
923
|
expose: ["vtj", ...a.value.expose || []],
|
|
921
924
|
render() {
|
|
922
925
|
if (!a.value.nodes) return null;
|
|
@@ -930,17 +933,17 @@ function fe(n) {
|
|
|
930
933
|
return e.createVNode("div", {}, p);
|
|
931
934
|
}
|
|
932
935
|
},
|
|
933
|
-
...
|
|
936
|
+
...Wt(a.value.lifeCycles ?? {}, c)
|
|
934
937
|
});
|
|
935
938
|
return {
|
|
936
939
|
renderer: e.markRaw(l),
|
|
937
940
|
context: c
|
|
938
941
|
};
|
|
939
942
|
}
|
|
940
|
-
function
|
|
943
|
+
function Lt(n = []) {
|
|
941
944
|
return n.map((e) => I(e) ? e : e.name);
|
|
942
945
|
}
|
|
943
|
-
function
|
|
946
|
+
function qt(n = [], e) {
|
|
944
947
|
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => pt[i]) : void 0;
|
|
945
948
|
return n.map((s) => I(s) ? {
|
|
946
949
|
name: s
|
|
@@ -958,7 +961,7 @@ function Lt(n = [], e) {
|
|
|
958
961
|
{}
|
|
959
962
|
);
|
|
960
963
|
}
|
|
961
|
-
function
|
|
964
|
+
function Ut(n, e, t) {
|
|
962
965
|
return n.reactive(
|
|
963
966
|
Object.keys(e || {}).reduce(
|
|
964
967
|
(s, r) => {
|
|
@@ -969,19 +972,19 @@ function qt(n, e, t) {
|
|
|
969
972
|
)
|
|
970
973
|
);
|
|
971
974
|
}
|
|
972
|
-
function
|
|
975
|
+
function Jt(n, e, t) {
|
|
973
976
|
return Object.entries(e ?? {}).reduce(
|
|
974
977
|
(s, [r, i]) => (s[r] = n.computed(t.__parseFunction(i)), s),
|
|
975
978
|
{}
|
|
976
979
|
);
|
|
977
980
|
}
|
|
978
|
-
function
|
|
981
|
+
function Kt(n, e) {
|
|
979
982
|
return Object.entries(n ?? {}).reduce(
|
|
980
983
|
(t, [s, r]) => (t[s] = e.__parseFunction(r), t),
|
|
981
984
|
{}
|
|
982
985
|
);
|
|
983
986
|
}
|
|
984
|
-
function
|
|
987
|
+
function zt(n, e = [], t) {
|
|
985
988
|
return e.reduce(
|
|
986
989
|
(s, r) => {
|
|
987
990
|
const { name: i, from: o } = r || {};
|
|
@@ -992,12 +995,12 @@ function Kt(n, e = [], t) {
|
|
|
992
995
|
{}
|
|
993
996
|
);
|
|
994
997
|
}
|
|
995
|
-
function
|
|
998
|
+
function Gt(n, e) {
|
|
996
999
|
return Object.keys(n).reduce(
|
|
997
1000
|
(t, s) => {
|
|
998
1001
|
const r = n[s];
|
|
999
1002
|
if (r.type === "mock")
|
|
1000
|
-
t[s] =
|
|
1003
|
+
t[s] = kt(r);
|
|
1001
1004
|
else if (r.ref) {
|
|
1002
1005
|
const i = e.$apis[r.ref], o = $(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
|
|
1003
1006
|
t[s] = async (...a) => {
|
|
@@ -1010,7 +1013,7 @@ function zt(n, e) {
|
|
|
1010
1013
|
{}
|
|
1011
1014
|
);
|
|
1012
1015
|
}
|
|
1013
|
-
function
|
|
1016
|
+
function Vt(n, e = [], t) {
|
|
1014
1017
|
e.forEach((s) => {
|
|
1015
1018
|
n.watch(
|
|
1016
1019
|
t.__parseExpression(s.source),
|
|
@@ -1022,7 +1025,7 @@ function Gt(n, e = [], t) {
|
|
|
1022
1025
|
);
|
|
1023
1026
|
});
|
|
1024
1027
|
}
|
|
1025
|
-
function
|
|
1028
|
+
function Wt(n, e) {
|
|
1026
1029
|
return Object.entries(n ?? {}).reduce(
|
|
1027
1030
|
(t, [s, r]) => {
|
|
1028
1031
|
const i = e.__parseFunction(r);
|
|
@@ -1033,7 +1036,7 @@ function Vt(n, e) {
|
|
|
1033
1036
|
{}
|
|
1034
1037
|
);
|
|
1035
1038
|
}
|
|
1036
|
-
class
|
|
1039
|
+
class Qt {
|
|
1037
1040
|
__props = {};
|
|
1038
1041
|
__events = {};
|
|
1039
1042
|
__nodes = {};
|
|
@@ -1075,9 +1078,9 @@ class Wt {
|
|
|
1075
1078
|
this.__props = {}, this.__events = {}, this.__nodes = {};
|
|
1076
1079
|
}
|
|
1077
1080
|
}
|
|
1078
|
-
const x = new
|
|
1081
|
+
const x = new Qt(), Ne = new it();
|
|
1079
1082
|
let re = [], F = {}, D = {};
|
|
1080
|
-
const
|
|
1083
|
+
const Xt = (n, e) => e;
|
|
1081
1084
|
async function Be(n, e = window) {
|
|
1082
1085
|
const { urls: t = [], library: s } = n, r = t.filter((a) => X(a));
|
|
1083
1086
|
if (r.length === 0 || !s) return null;
|
|
@@ -1130,38 +1133,38 @@ function pe(n) {
|
|
|
1130
1133
|
return i;
|
|
1131
1134
|
};
|
|
1132
1135
|
}
|
|
1133
|
-
function
|
|
1136
|
+
function Us() {
|
|
1134
1137
|
F = {}, D = {}, Ne.clearAllCache(), x.clear();
|
|
1135
1138
|
}
|
|
1136
|
-
function T(n, e, t = W, s =
|
|
1139
|
+
function T(n, e, t = W, s = Xt, r = [], i = !1, o = 0) {
|
|
1137
1140
|
if (!n || !n.name || n.invisible) return null;
|
|
1138
1141
|
const a = t.getCurrentInstance()?.appContext, { id: u = null, directives: c = [] } = n, { vIf: l, vElseIf: f, vElse: p, vFor: d, vShow: m, vModels: h, vBind: g, vHtml: v, others: w } = Le(c);
|
|
1139
1142
|
if (!i && (f || p))
|
|
1140
1143
|
return null;
|
|
1141
|
-
if (l && !
|
|
1142
|
-
return
|
|
1144
|
+
if (l && !Zt(l, e))
|
|
1145
|
+
return is(n, e, t, s, r);
|
|
1143
1146
|
const b = (_, C = 0) => {
|
|
1144
1147
|
const Y = _.$components, Z = (() => {
|
|
1145
1148
|
if (n.name === "component")
|
|
1146
|
-
return
|
|
1149
|
+
return es(_, n.props?.is);
|
|
1147
1150
|
if (n.name === "slot") return n.name;
|
|
1148
1151
|
const j = s(`${n.id}_${C}`, n.name, n.from, t);
|
|
1149
1152
|
return I(j) ? jt(j) || Rt(j) ? j : Y[j] ?? a?.app?.component(j) ?? j : j;
|
|
1150
|
-
})(), A =
|
|
1153
|
+
})(), A = ts(u, n.props ?? {}, _), Ge = rs(
|
|
1151
1154
|
t,
|
|
1152
1155
|
n.id,
|
|
1153
1156
|
n.events ?? {},
|
|
1154
1157
|
_
|
|
1155
1158
|
);
|
|
1156
1159
|
if (n.name === "slot")
|
|
1157
|
-
return
|
|
1160
|
+
return os(t, n, A, _, s);
|
|
1158
1161
|
g && Object.assign(A, _.__parseExpression(g.value)), m && (A.style = Object.assign(
|
|
1159
1162
|
A.style ?? {},
|
|
1160
|
-
|
|
1161
|
-
)), v && Object.assign(A,
|
|
1162
|
-
Me.includes(n.name) ? Object.assign(A,
|
|
1163
|
+
cs(m, _)
|
|
1164
|
+
)), v && Object.assign(A, ls(v, _)), h.forEach((j) => {
|
|
1165
|
+
Me.includes(n.name) ? Object.assign(A, us(j, _)) : Object.assign(A, fs(t, j, _));
|
|
1163
1166
|
});
|
|
1164
|
-
const Ve =
|
|
1167
|
+
const Ve = ps(
|
|
1165
1168
|
t,
|
|
1166
1169
|
n.children ?? [],
|
|
1167
1170
|
_,
|
|
@@ -1180,12 +1183,12 @@ function T(n, e, t = W, s = Qt, r = [], i = !1, o = 0) {
|
|
|
1180
1183
|
x.getNode(L) || ee || {},
|
|
1181
1184
|
Ve
|
|
1182
1185
|
);
|
|
1183
|
-
const we = a ?
|
|
1186
|
+
const we = a ? Yt(a, w, _) : [];
|
|
1184
1187
|
return we.length && (te = t.withDirectives(te, we)), te;
|
|
1185
1188
|
};
|
|
1186
|
-
return d ?
|
|
1189
|
+
return d ? ms(d, b, e) : b(e, o);
|
|
1187
1190
|
}
|
|
1188
|
-
function
|
|
1191
|
+
function Yt(n, e, t) {
|
|
1189
1192
|
const s = n.app;
|
|
1190
1193
|
return e.map((r) => {
|
|
1191
1194
|
const i = typeof r.name == "string" ? s.directive(r.name) : t.__parseExpression(r.name);
|
|
@@ -1214,13 +1217,13 @@ function Le(n = []) {
|
|
|
1214
1217
|
vHtml: a
|
|
1215
1218
|
};
|
|
1216
1219
|
}
|
|
1217
|
-
function
|
|
1220
|
+
function Zt(n, e) {
|
|
1218
1221
|
return !!e.__parseExpression(n.value);
|
|
1219
1222
|
}
|
|
1220
|
-
function
|
|
1223
|
+
function es(n, e) {
|
|
1221
1224
|
return e ? E(e) ? n.__parseExpression(e) : e : "div";
|
|
1222
1225
|
}
|
|
1223
|
-
function
|
|
1226
|
+
function ts(n, e, t) {
|
|
1224
1227
|
const s = de(e, t);
|
|
1225
1228
|
return s.ref = t.__ref(n, s.ref), s;
|
|
1226
1229
|
}
|
|
@@ -1233,12 +1236,12 @@ function de(n, e) {
|
|
|
1233
1236
|
{}
|
|
1234
1237
|
) : n;
|
|
1235
1238
|
}
|
|
1236
|
-
function
|
|
1239
|
+
function ss(n, e) {
|
|
1237
1240
|
return (t) => {
|
|
1238
1241
|
t?.key?.toLowerCase() === e.toLowerCase() && n(t);
|
|
1239
1242
|
};
|
|
1240
1243
|
}
|
|
1241
|
-
function
|
|
1244
|
+
function ns(n) {
|
|
1242
1245
|
return Ct(n.value) ? n : Pt(n.value) ? {
|
|
1243
1246
|
type: "JSFunction",
|
|
1244
1247
|
value: `(...args) => (() => {
|
|
@@ -1246,9 +1249,12 @@ function ss(n) {
|
|
|
1246
1249
|
${n.value}
|
|
1247
1250
|
}).apply(this, args);
|
|
1248
1251
|
})()`
|
|
1252
|
+
} : At(n.value) ? {
|
|
1253
|
+
type: "JSFunction",
|
|
1254
|
+
value: `() => { ${n.value}}`
|
|
1249
1255
|
} : n;
|
|
1250
1256
|
}
|
|
1251
|
-
function
|
|
1257
|
+
function rs(n, e, t, s) {
|
|
1252
1258
|
const r = ["passive", "capture", "once"], i = {
|
|
1253
1259
|
capture: "Capture",
|
|
1254
1260
|
once: "Once",
|
|
@@ -1256,16 +1262,16 @@ function ns(n, e, t, s) {
|
|
|
1256
1262
|
};
|
|
1257
1263
|
return Object.keys(t || {}).reduce(
|
|
1258
1264
|
(a, u) => {
|
|
1259
|
-
const c = t[u], l = qe(c.modifiers), f = l.find((m) => r.includes(m)), p = "on" + ot(u) + (f && i[f] || ""), d = c.handler ? s.__parseFunction(
|
|
1265
|
+
const c = t[u], l = qe(c.modifiers), f = l.find((m) => r.includes(m)), p = "on" + ot(u) + (f && i[f] || ""), d = c.handler ? s.__parseFunction(ns(c.handler)) : null;
|
|
1260
1266
|
return d && (a[p] = n.withModifiers(
|
|
1261
|
-
l.includes("enter") ?
|
|
1267
|
+
l.includes("enter") ? ss(d, "enter") : d,
|
|
1262
1268
|
l
|
|
1263
1269
|
)), a;
|
|
1264
1270
|
},
|
|
1265
1271
|
{}
|
|
1266
1272
|
);
|
|
1267
1273
|
}
|
|
1268
|
-
function
|
|
1274
|
+
function is(n, e, t, s, r = []) {
|
|
1269
1275
|
let i = r.findIndex((o) => o.id === n.id);
|
|
1270
1276
|
for (let o = ++i; o < r.length; o++) {
|
|
1271
1277
|
const { directives: a = [] } = r[o], { vElseIf: u, vElse: c } = Le(a);
|
|
@@ -1283,32 +1289,32 @@ function qe(n = {}, e = !1) {
|
|
|
1283
1289
|
const t = Object.keys(n);
|
|
1284
1290
|
return e ? t.map((s) => "." + s) : t;
|
|
1285
1291
|
}
|
|
1286
|
-
function
|
|
1287
|
-
const { children: i } = e, o =
|
|
1292
|
+
function os(n, e, t, s, r) {
|
|
1293
|
+
const { children: i } = e, o = as(e, s), a = s.$slots?.[o.name];
|
|
1288
1294
|
return a ? a(t) : i ? I(i) ? n.createTextVNode(i) : E(i) ? n.createTextVNode(
|
|
1289
1295
|
Te(s.__parseExpression(i))
|
|
1290
1296
|
) : Array.isArray(i) ? i.map(
|
|
1291
1297
|
(u, c) => T(u, s, n, r, i, !1, c)
|
|
1292
1298
|
) : null : null;
|
|
1293
1299
|
}
|
|
1294
|
-
function
|
|
1300
|
+
function as(n, e) {
|
|
1295
1301
|
const { props: t } = n, s = t?.name || "default";
|
|
1296
1302
|
return {
|
|
1297
1303
|
name: E(s) ? e.__parseExpression(s) : s,
|
|
1298
1304
|
params: []
|
|
1299
1305
|
};
|
|
1300
1306
|
}
|
|
1301
|
-
function
|
|
1307
|
+
function cs(n, e) {
|
|
1302
1308
|
return e.__parseExpression(n.value) ? {} : {
|
|
1303
1309
|
display: "none"
|
|
1304
1310
|
};
|
|
1305
1311
|
}
|
|
1306
|
-
function
|
|
1312
|
+
function ls(n, e) {
|
|
1307
1313
|
return {
|
|
1308
1314
|
innerHTML: e.__parseExpression(n.value) || ""
|
|
1309
1315
|
};
|
|
1310
1316
|
}
|
|
1311
|
-
function
|
|
1317
|
+
function us(n, e) {
|
|
1312
1318
|
const t = {
|
|
1313
1319
|
type: "JSFunction",
|
|
1314
1320
|
value: n.value?.value ? `(v) => {
|
|
@@ -1320,7 +1326,7 @@ function ls(n, e) {
|
|
|
1320
1326
|
onInput: e.__parseFunction(t)
|
|
1321
1327
|
};
|
|
1322
1328
|
}
|
|
1323
|
-
function
|
|
1329
|
+
function fs(n, e, t) {
|
|
1324
1330
|
const s = {
|
|
1325
1331
|
type: "JSFunction",
|
|
1326
1332
|
value: e.value?.value ? `(v) => {
|
|
@@ -1334,7 +1340,7 @@ function us(n, e, t) {
|
|
|
1334
1340
|
[`onUpdate:${o}`]: i.length && r ? n.withModifiers(r, i) : r
|
|
1335
1341
|
};
|
|
1336
1342
|
}
|
|
1337
|
-
function
|
|
1343
|
+
function ps(n, e, t, s, r) {
|
|
1338
1344
|
if (!e) return null;
|
|
1339
1345
|
if (I(e))
|
|
1340
1346
|
return { default: () => e };
|
|
@@ -1343,7 +1349,7 @@ function fs(n, e, t, s, r) {
|
|
|
1343
1349
|
default: () => Te(t.__parseExpression(e))
|
|
1344
1350
|
};
|
|
1345
1351
|
if (Array.isArray(e) && e.length > 0) {
|
|
1346
|
-
const i =
|
|
1352
|
+
const i = ds(e), o = (a, u) => !a || !r ? {} : r?.id && Object.keys(a).length ? u ? {
|
|
1347
1353
|
[u]: a
|
|
1348
1354
|
} : {
|
|
1349
1355
|
[`scope_${r.id}`]: a
|
|
@@ -1368,10 +1374,10 @@ function fs(n, e, t, s, r) {
|
|
|
1368
1374
|
}
|
|
1369
1375
|
return null;
|
|
1370
1376
|
}
|
|
1371
|
-
function
|
|
1377
|
+
function ds(n) {
|
|
1372
1378
|
const e = {};
|
|
1373
1379
|
for (const t of n) {
|
|
1374
|
-
const s =
|
|
1380
|
+
const s = hs(t.slot), r = s.name;
|
|
1375
1381
|
e[r] ? (e[r].nodes.push(t), e[r].params = e[r].params.concat(s.params), e[r].scope = s.scope || "") : e[r] = {
|
|
1376
1382
|
nodes: [t],
|
|
1377
1383
|
params: s.params,
|
|
@@ -1380,10 +1386,10 @@ function ps(n) {
|
|
|
1380
1386
|
}
|
|
1381
1387
|
return e;
|
|
1382
1388
|
}
|
|
1383
|
-
function
|
|
1389
|
+
function hs(n = "default") {
|
|
1384
1390
|
return I(n) ? { name: n, params: [], scope: "" } : { params: [], scope: "", ...n };
|
|
1385
1391
|
}
|
|
1386
|
-
function
|
|
1392
|
+
function ms(n, e, t) {
|
|
1387
1393
|
const { value: s, iterator: r } = n, { item: i = "item", index: o = "index" } = r || {};
|
|
1388
1394
|
let a = t.__parseExpression(s) || [];
|
|
1389
1395
|
return Number.isInteger(a) && (a = new Array(a).fill(!0).map((u, c) => c + 1)), Array.isArray(a) ? a.map((u, c) => e(t.__clone({ [i]: u, [o]: c }), c)) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
|
|
@@ -1421,7 +1427,7 @@ const ie = Fe({
|
|
|
1421
1427
|
activated() {
|
|
1422
1428
|
this.meta.cache === !1 && (this.sid = Symbol());
|
|
1423
1429
|
}
|
|
1424
|
-
}),
|
|
1430
|
+
}), gs = Fe({
|
|
1425
1431
|
name: "VtjStartupContainer",
|
|
1426
1432
|
render() {
|
|
1427
1433
|
return le("div", "page not found!");
|
|
@@ -1459,12 +1465,12 @@ function Ue(n, e) {
|
|
|
1459
1465
|
e.can(s.id.toString()) && t.push(s);
|
|
1460
1466
|
return t;
|
|
1461
1467
|
}
|
|
1462
|
-
function
|
|
1468
|
+
function Js(n) {
|
|
1463
1469
|
const {
|
|
1464
1470
|
menuPathPrefix: e = "",
|
|
1465
1471
|
pageRouteName: t = "page",
|
|
1466
1472
|
disableMenusFilter: s = !1
|
|
1467
|
-
} = n || {}, r = Ke(), i = Oe(), o =
|
|
1473
|
+
} = n || {}, r = Ke(), i = Oe(), o = Mt(), a = ue(!1), u = ue(!1), c = r.project, l = (d, m) => {
|
|
1468
1474
|
a.value = !d?.mask, u.value = m?.pure ?? !!d?.pure;
|
|
1469
1475
|
};
|
|
1470
1476
|
ut(() => {
|
|
@@ -1564,18 +1570,18 @@ function he(n) {
|
|
|
1564
1570
|
}
|
|
1565
1571
|
return u;
|
|
1566
1572
|
}
|
|
1567
|
-
function
|
|
1573
|
+
function _s(n = {}, e) {
|
|
1568
1574
|
const { css: t, store: s, enhance: r } = n, { window: i, app: o, library: a = {}, adapter: u, mode: c } = e, { Pinia: l } = a;
|
|
1569
|
-
o.config.globalProperties.$libs = a, ge(i, "global-css", t || ""), l && s &&
|
|
1575
|
+
o.config.globalProperties.$libs = a, ge(i, "global-css", t || ""), l && s && vs(s, o, l), ws(o, u, n), !u.access && n.access && ys(n.access, o, c, u), Ss(o, n), r && $s(r, o, a);
|
|
1570
1576
|
}
|
|
1571
|
-
function
|
|
1577
|
+
function vs(n, e, t) {
|
|
1572
1578
|
const s = t.createPinia();
|
|
1573
1579
|
if (e.use(s), $(n) && n.value) {
|
|
1574
1580
|
const r = R(n, {}, !1, !1, !0), i = t.defineStore("$store", r(e) || {});
|
|
1575
1581
|
e.config.globalProperties.$store = i();
|
|
1576
1582
|
}
|
|
1577
1583
|
}
|
|
1578
|
-
function
|
|
1584
|
+
function ys(n, e, t, s) {
|
|
1579
1585
|
if ($(n) && n.value) {
|
|
1580
1586
|
const r = R(n, {}, !1, !1, !0), { alert: i, request: o } = s, a = new _e({
|
|
1581
1587
|
alert: i,
|
|
@@ -1585,7 +1591,7 @@ function vs(n, e, t, s) {
|
|
|
1585
1591
|
a.connect({ mode: t, router: u, request: o }), e.use(a);
|
|
1586
1592
|
}
|
|
1587
1593
|
}
|
|
1588
|
-
function
|
|
1594
|
+
function ws(n, e, t) {
|
|
1589
1595
|
if (!e.request) return;
|
|
1590
1596
|
const { axios: s, request: r, response: i } = t;
|
|
1591
1597
|
if (s && $(s) && s.value) {
|
|
@@ -1601,7 +1607,7 @@ function ys(n, e, t) {
|
|
|
1601
1607
|
a.__unRes && a.__unRes(), a.__unRes = e.request.useResponse((u) => o(u, n));
|
|
1602
1608
|
}
|
|
1603
1609
|
}
|
|
1604
|
-
function
|
|
1610
|
+
function Ss(n, e) {
|
|
1605
1611
|
const { beforeEach: t, afterEach: s } = e, r = n.config.globalProperties.$router;
|
|
1606
1612
|
if (t && $(t) && t.value) {
|
|
1607
1613
|
const i = R(t, {}, !1, !1, !0);
|
|
@@ -1612,10 +1618,10 @@ function ws(n, e) {
|
|
|
1612
1618
|
r && r.afterEach((o, a, u) => i(o, a, u, n));
|
|
1613
1619
|
}
|
|
1614
1620
|
}
|
|
1615
|
-
function
|
|
1621
|
+
function $s(n, e, t = {}) {
|
|
1616
1622
|
$(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
|
|
1617
1623
|
}
|
|
1618
|
-
function
|
|
1624
|
+
function Es(n, e, t) {
|
|
1619
1625
|
if (!n || !e || !t) return;
|
|
1620
1626
|
const { VueI18n: s } = e;
|
|
1621
1627
|
if (s) {
|
|
@@ -1635,8 +1641,8 @@ function $s(n, e, t) {
|
|
|
1635
1641
|
}
|
|
1636
1642
|
}
|
|
1637
1643
|
const Je = Symbol("Provider");
|
|
1638
|
-
var
|
|
1639
|
-
class
|
|
1644
|
+
var bs = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(bs || {});
|
|
1645
|
+
class js extends Xe {
|
|
1640
1646
|
/**
|
|
1641
1647
|
* 创建Provider实例
|
|
1642
1648
|
* @param options 配置选项
|
|
@@ -1724,7 +1730,7 @@ class bs extends Xe {
|
|
|
1724
1730
|
if (this.project = s ? await s() : await this.service.init(e), !this.project)
|
|
1725
1731
|
throw new Error("project is null");
|
|
1726
1732
|
const { apis: r = [], meta: i = [], env: o = [] } = this.project, a = window;
|
|
1727
|
-
a && (a.CKEDITOR_VERSION = void 0), this.initEnv(o), this.mode === y.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis =
|
|
1733
|
+
a && (a.CKEDITOR_VERSION = void 0), this.initEnv(o), this.mode === y.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis = Dt(r, i, this.adapter), ke(a), Ht(r, a), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
|
|
1728
1734
|
}
|
|
1729
1735
|
initMock(e) {
|
|
1730
1736
|
const t = N(e);
|
|
@@ -1810,7 +1816,7 @@ class bs extends Xe {
|
|
|
1810
1816
|
}, f = this.getHomepage(), p = {
|
|
1811
1817
|
path: c,
|
|
1812
1818
|
name: J,
|
|
1813
|
-
component: f ? ie : r.startupComponent ||
|
|
1819
|
+
component: f ? ie : r.startupComponent || gs,
|
|
1814
1820
|
meta: u
|
|
1815
1821
|
};
|
|
1816
1822
|
if (e.hasRoute(k) && e.removeRoute(k), e.hasRoute(J) && e.removeRoute(J), s.enableStaticRoute) {
|
|
@@ -2011,10 +2017,10 @@ class bs extends Xe {
|
|
|
2011
2017
|
},
|
|
2012
2018
|
t
|
|
2013
2019
|
);
|
|
2014
|
-
|
|
2020
|
+
_s(e, s);
|
|
2015
2021
|
}
|
|
2016
2022
|
initI18n(e, t, s) {
|
|
2017
|
-
|
|
2023
|
+
Es(e, t, s);
|
|
2018
2024
|
}
|
|
2019
2025
|
initEnv(e = []) {
|
|
2020
2026
|
this.env = e.reduce(
|
|
@@ -2023,8 +2029,8 @@ class bs extends Xe {
|
|
|
2023
2029
|
);
|
|
2024
2030
|
}
|
|
2025
2031
|
}
|
|
2026
|
-
function
|
|
2027
|
-
const e = new
|
|
2032
|
+
function Ks(n) {
|
|
2033
|
+
const e = new js(n);
|
|
2028
2034
|
return {
|
|
2029
2035
|
provider: e,
|
|
2030
2036
|
onReady: (s) => e.ready(s)
|
|
@@ -2047,7 +2053,7 @@ function Ke(n = {}) {
|
|
|
2047
2053
|
}
|
|
2048
2054
|
return e;
|
|
2049
2055
|
}
|
|
2050
|
-
async function
|
|
2056
|
+
async function zs(n, e = "") {
|
|
2051
2057
|
const { name: t, urls: s = [] } = n || {}, r = s.map((a) => e + a), { css: i, js: o } = vt(r);
|
|
2052
2058
|
if (i.length && xe(i), o.length)
|
|
2053
2059
|
return await De(o, t).catch(
|
|
@@ -2061,7 +2067,7 @@ const ze = {
|
|
|
2061
2067
|
originResponse: !1,
|
|
2062
2068
|
failMessage: !0,
|
|
2063
2069
|
validate: (n) => n.data?.code === 0
|
|
2064
|
-
},
|
|
2070
|
+
}, Rs = (n, e = "/__vtj__/api/:type.json") => (t, s, r) => n.send({
|
|
2065
2071
|
url: e,
|
|
2066
2072
|
method: "post",
|
|
2067
2073
|
params: { type: t },
|
|
@@ -2071,7 +2077,7 @@ const ze = {
|
|
|
2071
2077
|
data: s
|
|
2072
2078
|
},
|
|
2073
2079
|
settings: ze
|
|
2074
|
-
}),
|
|
2080
|
+
}), Cs = (n, e = "/__vtj__/api/uploader.json") => async (t, s) => await n.send({
|
|
2075
2081
|
url: e,
|
|
2076
2082
|
method: "post",
|
|
2077
2083
|
data: {
|
|
@@ -2083,7 +2089,7 @@ const ze = {
|
|
|
2083
2089
|
type: "data"
|
|
2084
2090
|
}
|
|
2085
2091
|
}).then((r) => r && r[0] ? r[0] : null).catch(() => null);
|
|
2086
|
-
function
|
|
2092
|
+
function Gs(n) {
|
|
2087
2093
|
return Pe({
|
|
2088
2094
|
settings: {
|
|
2089
2095
|
type: "json",
|
|
@@ -2099,7 +2105,7 @@ function zs(n) {
|
|
|
2099
2105
|
}
|
|
2100
2106
|
class ve {
|
|
2101
2107
|
constructor(e = ce) {
|
|
2102
|
-
this.req = e, this.api =
|
|
2108
|
+
this.req = e, this.api = Rs(e), this.uploader = Cs(e);
|
|
2103
2109
|
}
|
|
2104
2110
|
api;
|
|
2105
2111
|
pluginCaches = {};
|
|
@@ -2204,7 +2210,7 @@ const S = new lt({
|
|
|
2204
2210
|
expired: 0,
|
|
2205
2211
|
prefix: "__VTJ_"
|
|
2206
2212
|
});
|
|
2207
|
-
class
|
|
2213
|
+
class Vs extends ve {
|
|
2208
2214
|
init(e) {
|
|
2209
2215
|
const t = new K(e), s = S.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
|
|
2210
2216
|
return S.save(`project_${t.id}`, r), Promise.resolve(r);
|
|
@@ -2254,7 +2260,7 @@ class Gs extends ve {
|
|
|
2254
2260
|
}), Promise.resolve(!0);
|
|
2255
2261
|
}
|
|
2256
2262
|
}
|
|
2257
|
-
class
|
|
2263
|
+
class Ps extends ve {
|
|
2258
2264
|
projects = {};
|
|
2259
2265
|
materials = {};
|
|
2260
2266
|
files = {};
|
|
@@ -2312,10 +2318,10 @@ class Cs extends ve {
|
|
|
2312
2318
|
}
|
|
2313
2319
|
}
|
|
2314
2320
|
let U = null;
|
|
2315
|
-
function
|
|
2316
|
-
return U || (U = new
|
|
2321
|
+
function Ws() {
|
|
2322
|
+
return U || (U = new Ps(), U);
|
|
2317
2323
|
}
|
|
2318
|
-
class
|
|
2324
|
+
class Qs extends ve {
|
|
2319
2325
|
getFileCaches = {};
|
|
2320
2326
|
async getExtension() {
|
|
2321
2327
|
return await this.api("getExtension", {}).catch(() => {
|
|
@@ -2373,59 +2379,60 @@ class Ws extends ve {
|
|
|
2373
2379
|
}
|
|
2374
2380
|
}
|
|
2375
2381
|
export {
|
|
2376
|
-
|
|
2382
|
+
xs as ACCESS,
|
|
2377
2383
|
He as ACCESS_KEY,
|
|
2378
2384
|
_e as Access,
|
|
2379
2385
|
dt as BUILD_IN_TAGS,
|
|
2380
2386
|
ft as BUILT_IN_DIRECTIVES,
|
|
2381
2387
|
ve as BaseService,
|
|
2382
2388
|
Re as CONTEXT_HOST,
|
|
2383
|
-
|
|
2389
|
+
Bt as Context,
|
|
2384
2390
|
y as ContextMode,
|
|
2385
2391
|
pt as DATA_TYPES,
|
|
2386
2392
|
J as HOMEPAGE_ROUTE_NAME,
|
|
2387
2393
|
Me as HTML_TAGS,
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2394
|
+
Bs as JSCodeToString,
|
|
2395
|
+
Ms as LIFE_CYCLES_LIST,
|
|
2396
|
+
Qs as LocalService,
|
|
2397
|
+
Ps as MemoryService,
|
|
2398
|
+
bs as NodeEnv,
|
|
2393
2399
|
k as PAGE_ROUTE_NAME,
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2400
|
+
js as Provider,
|
|
2401
|
+
Ts as REMOTE,
|
|
2402
|
+
Vs as StorageService,
|
|
2397
2403
|
H as VTJ_RENDERER_VERSION,
|
|
2398
|
-
|
|
2404
|
+
ks as adoptStylesToInline,
|
|
2399
2405
|
ge as adoptedStyleSheets,
|
|
2400
|
-
|
|
2406
|
+
Us as clearLoaderCache,
|
|
2401
2407
|
yt as compileScopedCSS,
|
|
2402
2408
|
$t as convertCssRpx,
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2409
|
+
qs as createAccess,
|
|
2410
|
+
Ls as createAdapter,
|
|
2411
|
+
Ds as createAssetScripts,
|
|
2412
|
+
Hs as createAssetsCss,
|
|
2413
|
+
Gt as createDataSources,
|
|
2408
2414
|
pe as createLoader,
|
|
2409
|
-
|
|
2415
|
+
Ws as createMemoryService,
|
|
2410
2416
|
V as createMenus,
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2417
|
+
xt as createMetaApi,
|
|
2418
|
+
kt as createMock,
|
|
2419
|
+
Ks as createProvider,
|
|
2414
2420
|
fe as createRenderer,
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2421
|
+
Tt as createSchemaApi,
|
|
2422
|
+
Dt as createSchemaApis,
|
|
2423
|
+
Gs as createServiceRequest,
|
|
2424
|
+
Xt as defaultLoader,
|
|
2419
2425
|
q as fillBasePath,
|
|
2420
2426
|
N as getMock,
|
|
2421
2427
|
qe as getModifiers,
|
|
2422
2428
|
Be as getPlugin,
|
|
2423
2429
|
_t as getRawComponent,
|
|
2424
2430
|
Ct as isArrowFunction,
|
|
2431
|
+
At as isAssignment,
|
|
2425
2432
|
jt as isBuiltInTag,
|
|
2426
2433
|
Q as isCSSUrl,
|
|
2427
2434
|
Pt as isCallFunction,
|
|
2428
|
-
|
|
2435
|
+
Ft as isJSCode,
|
|
2429
2436
|
E as isJSExpression,
|
|
2430
2437
|
$ as isJSFunction,
|
|
2431
2438
|
ht as isJSON,
|
|
@@ -2434,11 +2441,11 @@ export {
|
|
|
2434
2441
|
bt as isVuePlugin,
|
|
2435
2442
|
Et as loadCss,
|
|
2436
2443
|
xe as loadCssUrl,
|
|
2437
|
-
|
|
2444
|
+
zs as loadEnhance,
|
|
2438
2445
|
De as loadScriptUrl,
|
|
2439
2446
|
Ue as menusFilter,
|
|
2440
|
-
|
|
2441
|
-
|
|
2447
|
+
Nt as mockApi,
|
|
2448
|
+
Ht as mockApis,
|
|
2442
2449
|
ke as mockCleanup,
|
|
2443
2450
|
x as nodeCache,
|
|
2444
2451
|
T as nodeRender,
|
|
@@ -2449,9 +2456,9 @@ export {
|
|
|
2449
2456
|
Je as providerKey,
|
|
2450
2457
|
mt as removeProdFlag,
|
|
2451
2458
|
St as rpxToPx,
|
|
2452
|
-
|
|
2459
|
+
Ns as setupPageSetting,
|
|
2453
2460
|
Te as toString,
|
|
2454
|
-
|
|
2455
|
-
|
|
2461
|
+
Mt as useAccess,
|
|
2462
|
+
Js as useMask,
|
|
2456
2463
|
Ke as useProvider
|
|
2457
2464
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtj/renderer",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.16.
|
|
4
|
+
"version": "0.16.29",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"低代码引擎",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
"author": "chenhuachun",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@vtj/
|
|
25
|
-
"@vtj/
|
|
24
|
+
"@vtj/utils": "~0.16.29",
|
|
25
|
+
"@vtj/core": "~0.16.29"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"vue": "~3.5.5",
|
|
29
29
|
"vue-router": "~4.6.0",
|
|
30
|
-
"@vtj/ui": "~0.16.28",
|
|
31
30
|
"@vtj/cli": "~0.12.19",
|
|
32
|
-
"@vtj/
|
|
31
|
+
"@vtj/ui": "~0.16.29",
|
|
32
|
+
"@vtj/icons": "~0.16.29"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
35
|
".": {
|
package/types/utils/util.d.ts
CHANGED
|
@@ -14,3 +14,4 @@ export declare function getMock(global?: any): any;
|
|
|
14
14
|
export declare function setupPageSetting(app: App, route: RouteLocationNormalizedGeneric, file: PageFile | BlockFile): void;
|
|
15
15
|
export declare function isArrowFunction(code: string): boolean;
|
|
16
16
|
export declare function isCallFunction(code: string): boolean;
|
|
17
|
+
export declare function isAssignment(code: string): boolean;
|
package/types/version.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2026, VTJ.PRO All rights reserved.
|
|
3
3
|
* @name @vtj/renderer
|
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
5
|
-
* @version 0.16.
|
|
5
|
+
* @version 0.16.28
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
7
|
*/
|
|
8
|
-
export declare const version = "0.16.
|
|
8
|
+
export declare const version = "0.16.28";
|