@vtj/renderer 0.16.27 → 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 +14 -10
- package/dist/index.mjs +187 -162
- package/package.json +5 -5
- package/types/utils/util.d.ts +3 -0
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,16 +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
|
|
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),ht(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 j(n){return n&&n.type==="JSExpression"}function b(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function He(n){return j(n)||b(n)}function mt(n){return He(n)?n.value:JSON.stringify(n)}const gt={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({},gt,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 Ne(){return $.inject(de,null)}function _t(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 vt(n={}){return new Y(n)}function Le(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 Ue(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 qe(n=[],e=[],t){const s={};for(const r of n){const o=Le(r,t);s[r.id]=o,s[r.name]=o}for(const r of e)s[r.id]=Ue(r,t);return s}async function Be(n=[],e=window){const t=k(e);t&&(he(e),n.forEach(s=>Ke(t,s)))}function Je(n,e=window){const t=b(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 Ke(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 Ge{__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 Ge({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:{...St(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=wt(e,a.value.state??{},c);const d=Et(e,a.value.computed??{},c),h=$t(a.value.methods??{},c),g=bt(e,a.value.inject,c);for(const[y,w]of Object.entries(g||{}))g[y]=e.inject(y,w);const m=ze(a.value.dataSources||{},c),_={...g,...d,...h,...m};return c.setup(_,e),jt(e,a.value.watch??[],c),{vtj:c,state:c.state,...p,...d,...h}},emits:yt(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 O(p[0],c,e,i,p);{const d=p.map(h=>O(h,c,e,i,p));return e.createVNode("div",{},d)}},...Ct(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function yt(n=[]){return n.map(e=>f.isString(e)?e:e.name)}function St(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>be[o]):void 0;return n.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:j(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function wt(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return j(o)?o=t.__parseExpression(o):b(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function Et(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function $t(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function bt(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:i}=r||{};r.default;const a=j(i)?t.__parseExpression(i)||o:i??o,u=j(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(a,u),s},{})}function ze(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=Je(r);else if(r.ref){const o=e.$apis[r.ref],i=b(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 jt(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function Ct(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>{const o=e.__parseFunction(r);return t[s]=async()=>{f.isFunction(o)&&(await f.delay(0),await o())},t},{})}class Rt{__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 F=new Rt,Ve=new f.Queue;let ne=[],M={},L={};const We=(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=M[i.id]||await Ve.add(i.id,()=>e(i.id));return c&&(c.name=o,M[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=M[i.url]||await t(i.url);return c&&(c.name=o,M[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?M[i.library]:null;return c||(i.library&&ne.push(i.library),c=M[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 Pt(){M={},L={},Ve.clearAllCache(),F.clear()}function O(n,e,t=W,s=We,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}=Qe(c);if(!o&&(p||d))return null;if(l&&!It(l,e))return Dt(n,e,t,s,r);const C=(v,A=0)=>{const Z=v.$components,ee=(()=>{if(n.name==="component")return Tt(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=Mt(u,n.props??{},v),tt=Ft(t,n.id,n.events??{},v);if(n.name==="slot")return xt(t,n,I,v,s);_&&Object.assign(I,v.__parseExpression(_.value)),g&&(I.style=Object.assign(I.style??{},Ht(g,v))),y&&Object.assign(I,Nt(y,v)),m.forEach(P=>{le.includes(n.name)?Object.assign(I,Lt(P,v)):Object.assign(I,Ut(t,P,v))});const st=qt(t,n.children??[],v,s,n),Se=v?.__id?`data-v-${v.__id}`:void 0,nt=Se?{[Se]:""}:{},rt=v.__mode===S.Design?{"data-vtj":u}:{},K=`${u}_${A}`,te={key:K,...nt,...rt,...I,...tt};F.isEqual(te,F.getNode(K))||F.setNode(K,te);let se=t.createVNode(ee,F.getNode(K)||te||{},st);const we=a?At(a,w,v):[];return we.length&&(se=t.withDirectives(se,we)),se};return h?Kt(h,C,e):C(e,i)}function At(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 Qe(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 It(n,e){return!!e.__parseExpression(n.value)}function Tt(n,e){return e?j(e)?n.__parseExpression(e):e:"div"}function Mt(n,e,t){const s=ae(e,t);return s.ref=t.__ref(n,s.ref),s}function ae(n,e){return j(n)?e.__parseExpression(n):b(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 Ot(n,e){return t=>{t?.key?.toLowerCase()===e.toLowerCase()&&n(t)}}function Ft(n,e,t,s){const r=["passive","capture","once"],o={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&&o[p]||""),h=s.__parseFunction(c.handler);return h&&(a[d]=n.withModifiers(l.includes("enter")?Ot(h,"enter"):h,l)),a},{})}function Dt(n,e,t,s,r=[]){let o=r.findIndex(i=>i.id===n.id);for(let i=++o;i<r.length;i++){const{directives:a=[]}=r[i],{vElseIf:u,vElse:c}=Qe(a);if(u){if(e.__parseExpression(u.value))return O(r[i],e,t,s,r,!0);continue}if(c)return O(r[i],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 xt(n,e,t,s,r){const{children:o}=e,i=kt(e,s),a=s.$slots?.[i.name];return a?a(t):o?f.isString(o)?n.createTextVNode(o):j(o)?n.createTextVNode(ue(s.__parseExpression(o))):Array.isArray(o)?o.map((u,c)=>O(u,s,n,r,o,!1,c)):null:null}function kt(n,e){const{props:t}=n,s=t?.name||"default";return{name:j(s)?e.__parseExpression(s):s,params:[]}}function Ht(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function Nt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function Lt(n,e){const t={type:"JSFunction",value:n.value?.value?`(v) => {
|
|
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
|
+
return (($event) => {
|
|
14
|
+
${n.value}
|
|
15
|
+
}).apply(this, args);
|
|
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) => {
|
|
13
17
|
${n.value.value} = v?.target.value;
|
|
14
|
-
}`:"(v) => {}"};return{[
|
|
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) => {
|
|
15
19
|
${e.value.value} = v;
|
|
16
|
-
}`:"(v) => {}"},r=t.__parseFunction(s),o=ge(j(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),i=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[i]:t.__parseExpression(e.value),[`onUpdate:${i}`]:o.length&&r?n.withModifiers(r,o):r}}function qt(n,e,t,s,r){if(!e)return null;if(f.isString(e))return{default:()=>e};if(j(e))return{default:()=>ue(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Bt(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)=>O(g,t.__clone(h),n,s,c,!1,m))},a),{})}return null}function Bt(n){const e={};for(const t of n){const s=Jt(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 Jt(n="default"){return f.isString(n)?{name:n,params:[],scope:""}:{params:[],scope:"",...n}}function Kt(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())}}),Gt=$.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 zt(n){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=n||{},r=ye(),o=Ee.useRoute(),i=Ne(),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 Vt(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&&Wt(s,i,l),Yt(i,u,n),!u.access&&n.access&&Qt(n.access,i,c,u),Xt(i,n),r&&Zt(r,i,a)}function Wt(n,e,t){const s=t.createPinia();if(e.use(s),b(n)&&n.value){const r=R(n,{},!1,!1,!0),o=t.defineStore("$store",r(e)||{});e.config.globalProperties.$store=o()}}function Qt(n,e,t,s){if(b(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 Yt(n,e,t){if(!e.request)return;const{axios:s,request:r,response:o}=t;if(s&&b(s)&&s.value){const i=R(s,{},!1,!1,!0);e.request.setConfig(i(n))}if(r&&b(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&&b(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 Xt(n,e){const{beforeEach:t,afterEach:s}=e,r=n.config.globalProperties.$router;if(t&&b(t)&&t.value){const o=R(t,{},!1,!1,!0);r&&r.beforeEach((i,a,u)=>o(i,a,u,n))}if(s&&b(s)&&s.value){const o=R(s,{},!1,!1,!0);r&&r.afterEach((i,a,u)=>o(i,a,u,n))}}function Zt(n,e,t={}){b(n)&&n.value&&R(n,{},!1,!1,!0)(e,t)}function es(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 Ye=(n=>(n.Production="production",n.Development="development",n))(Ye||{});class Xe 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=qe(r,o,this.adapter),he(a),Be(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 C=l[m]||[];for(const v of C)B(v)&&await Fe(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 C=s[w];u[w]=C?await C():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,C=T.BUILT_IN_COMPONENTS[_];if(C)w&&C.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||Gt,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);Vt(e,s)}initI18n(e,t,s){es(e,t,s)}initEnv(e=[]){this.env=e.reduce((t,s)=>(t[s.name]=s[this.nodeEnv],t),{})}}function ts(n){const e=new Xe(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 ss(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 Ze={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0},ns=(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:Ze}),rs=(n,e="/__vtj__/api/uploader.json")=>async(t,s)=>await n.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ze,type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);function os(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=ns(e),this.uploader=rs(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=>Ce(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 is 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 et 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 as(){return G||(G=new et,G)}class cs 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=ct;exports.ACCESS_KEY=de;exports.Access=Y;exports.BUILD_IN_TAGS=je;exports.BUILT_IN_DIRECTIVES=$e;exports.BaseService=X;exports.CONTEXT_HOST=ie;exports.Context=Ge;exports.ContextMode=S;exports.DATA_TYPES=be;exports.HOMEPAGE_ROUTE_NAME=U;exports.HTML_TAGS=le;exports.JSCodeToString=mt;exports.LIFE_CYCLES_LIST=it;exports.LocalService=cs;exports.MemoryService=et;exports.NodeEnv=Ye;exports.PAGE_ROUTE_NAME=x;exports.Provider=Xe;exports.REMOTE=at;exports.StorageService=is;exports.VTJ_RENDERER_VERSION=D;exports.adoptStylesToInline=ft;exports.adoptedStyleSheets=Q;exports.clearLoaderCache=Pt;exports.compileScopedCSS=Te;exports.convertCssRpx=Oe;exports.createAccess=vt;exports.createAdapter=_t;exports.createAssetScripts=lt;exports.createAssetsCss=ut;exports.createDataSources=ze;exports.createLoader=V;exports.createMemoryService=as;exports.createMenus=q;exports.createMetaApi=Ue;exports.createMock=Je;exports.createProvider=ts;exports.createRenderer=z;exports.createSchemaApi=Le;exports.createSchemaApis=qe;exports.createServiceRequest=os;exports.defaultLoader=We;exports.fillBasePath=N;exports.getMock=k;exports.getModifiers=ge;exports.getPlugin=me;exports.getRawComponent=Ae;exports.isBuiltInTag=xe;exports.isCSSUrl=B;exports.isJSCode=He;exports.isJSExpression=j;exports.isJSFunction=b;exports.isJSON=Ce;exports.isJSUrl=J;exports.isNativeTag=ke;exports.isVuePlugin=De;exports.loadCss=Fe;exports.loadCssUrl=pe;exports.loadEnhance=ss;exports.loadScriptUrl=fe;exports.menusFilter=_e;exports.mockApi=Ke;exports.mockApis=Be;exports.mockCleanup=he;exports.nodeCache=F;exports.nodeRender=O;exports.parseDeps=Pe;exports.parseExpression=H;exports.parseFunction=R;exports.parseUrls=Ie;exports.providerKey=ve;exports.removeProdFlag=Re;exports.rpxToPx=Me;exports.setupPageSetting=dt;exports.toString=ue;exports.useAccess=Ne;exports.useMask=zt;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
|
|
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",
|
|
@@ -55,9 +55,9 @@ const Re = [
|
|
|
55
55
|
Object,
|
|
56
56
|
Function,
|
|
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,14 +149,14 @@ 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
|
-
(e) => `<script src="${O.append(e, { v:
|
|
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
|
-
(e) => `<link rel="stylesheet" href="${O.append(e, { v:
|
|
159
|
+
(e) => `<link rel="stylesheet" href="${O.append(e, { v: H })}" />`
|
|
160
160
|
).join("");
|
|
161
161
|
}
|
|
162
162
|
function mt(n, e = !1) {
|
|
@@ -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,12 +405,21 @@ 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");
|
|
412
412
|
}
|
|
413
413
|
function Ct(n) {
|
|
414
|
+
return /^\([\s\S]*\)/.test(n.trim());
|
|
415
|
+
}
|
|
416
|
+
function Pt(n) {
|
|
417
|
+
return /\w+\([\s\S]*\)$/.test(n.trim());
|
|
418
|
+
}
|
|
419
|
+
function At(n) {
|
|
420
|
+
return n.includes("=");
|
|
421
|
+
}
|
|
422
|
+
function It(n) {
|
|
414
423
|
if (typeof window > "u") return;
|
|
415
424
|
const e = window[0] || window;
|
|
416
425
|
if (e.__simulator__)
|
|
@@ -432,7 +441,7 @@ ${o}
|
|
|
432
441
|
` : `with(${t ? "{}" : "$scope || {}"}) { ${o} }`;
|
|
433
442
|
return new Function("$scope", a)(e);
|
|
434
443
|
} catch (i) {
|
|
435
|
-
if (M.error("parseExpression.error", i, n, e?.__self ?? e),
|
|
444
|
+
if (M.error("parseExpression.error", i, n, e?.__self ?? e), It(i), s)
|
|
436
445
|
throw i;
|
|
437
446
|
}
|
|
438
447
|
}
|
|
@@ -453,13 +462,13 @@ function E(n) {
|
|
|
453
462
|
function $(n) {
|
|
454
463
|
return typeof n == "object" && n && n.type === "JSFunction";
|
|
455
464
|
}
|
|
456
|
-
function
|
|
465
|
+
function Ft(n) {
|
|
457
466
|
return E(n) || $(n);
|
|
458
467
|
}
|
|
459
|
-
function
|
|
460
|
-
return
|
|
468
|
+
function Bs(n) {
|
|
469
|
+
return Ft(n) ? n.value : JSON.stringify(n);
|
|
461
470
|
}
|
|
462
|
-
const
|
|
471
|
+
const Ot = {
|
|
463
472
|
session: !1,
|
|
464
473
|
authKey: "Authorization",
|
|
465
474
|
storageKey: "ACCESS_STORAGE",
|
|
@@ -472,7 +481,7 @@ const At = {
|
|
|
472
481
|
noPermissionMessage: "无权限访问该页面",
|
|
473
482
|
appName: "",
|
|
474
483
|
statusKey: "code"
|
|
475
|
-
},
|
|
484
|
+
}, He = Symbol("access");
|
|
476
485
|
class _e {
|
|
477
486
|
options;
|
|
478
487
|
data = null;
|
|
@@ -480,7 +489,7 @@ class _e {
|
|
|
480
489
|
interceptResponse = !0;
|
|
481
490
|
isTipShowing = !1;
|
|
482
491
|
constructor(e) {
|
|
483
|
-
this.options = Object.assign({},
|
|
492
|
+
this.options = Object.assign({}, Ot, e), this.loadData();
|
|
484
493
|
}
|
|
485
494
|
enableIntercept() {
|
|
486
495
|
this.interceptResponse = !0;
|
|
@@ -524,7 +533,7 @@ class _e {
|
|
|
524
533
|
return Se(e).some((i) => s[i] || s[t + "." + i]);
|
|
525
534
|
}
|
|
526
535
|
install(e) {
|
|
527
|
-
e.config.globalProperties.$access = this, e.provide(
|
|
536
|
+
e.config.globalProperties.$access = this, e.provide(He, this);
|
|
528
537
|
}
|
|
529
538
|
isAuthPath(e) {
|
|
530
539
|
const { auth: t, isAuth: s } = this.options;
|
|
@@ -575,7 +584,7 @@ class _e {
|
|
|
575
584
|
return e && t ? !!ne.get(t) : !!this.getToken();
|
|
576
585
|
}
|
|
577
586
|
hasRoutePermission(e) {
|
|
578
|
-
if (e.name ===
|
|
587
|
+
if (e.name === k) {
|
|
579
588
|
const t = e.params.id;
|
|
580
589
|
return t && this.can(t);
|
|
581
590
|
}
|
|
@@ -629,10 +638,10 @@ class _e {
|
|
|
629
638
|
);
|
|
630
639
|
}
|
|
631
640
|
}
|
|
632
|
-
function
|
|
633
|
-
return Ie(
|
|
641
|
+
function Mt() {
|
|
642
|
+
return Ie(He, null);
|
|
634
643
|
}
|
|
635
|
-
function
|
|
644
|
+
function Ls(n = {}) {
|
|
636
645
|
const {
|
|
637
646
|
notify: e,
|
|
638
647
|
loading: t,
|
|
@@ -673,10 +682,10 @@ function ks(n = {}) {
|
|
|
673
682
|
access: i ? new _e({ alert: a, ...i }) : void 0
|
|
674
683
|
};
|
|
675
684
|
}
|
|
676
|
-
function
|
|
685
|
+
function qs(n = {}) {
|
|
677
686
|
return new _e(n);
|
|
678
687
|
}
|
|
679
|
-
function
|
|
688
|
+
function Tt(n, e) {
|
|
680
689
|
const { jsonp: t, request: s } = e;
|
|
681
690
|
if (n.method === "jsonp")
|
|
682
691
|
return (r = {}) => t(n.url, {
|
|
@@ -695,7 +704,7 @@ function Ft(n, e) {
|
|
|
695
704
|
return (o, a) => (delete i.data, s.send(et(i, a || {}, { data: o })));
|
|
696
705
|
}
|
|
697
706
|
}
|
|
698
|
-
function
|
|
707
|
+
function xt(n, e) {
|
|
699
708
|
const { metaQuery: t } = e;
|
|
700
709
|
if (!t) return;
|
|
701
710
|
const { code: s, queryCode: r } = n;
|
|
@@ -707,21 +716,21 @@ function Ot(n, e) {
|
|
|
707
716
|
return t(s, r, i, o);
|
|
708
717
|
};
|
|
709
718
|
}
|
|
710
|
-
function
|
|
719
|
+
function Dt(n = [], e = [], t) {
|
|
711
720
|
const s = {};
|
|
712
721
|
for (const r of n) {
|
|
713
|
-
const i =
|
|
722
|
+
const i = Tt(r, t);
|
|
714
723
|
s[r.id] = i, s[r.name] = i;
|
|
715
724
|
}
|
|
716
725
|
for (const r of e)
|
|
717
|
-
s[r.id] =
|
|
726
|
+
s[r.id] = xt(r, t);
|
|
718
727
|
return s;
|
|
719
728
|
}
|
|
720
|
-
async function
|
|
729
|
+
async function Ht(n = [], e = window) {
|
|
721
730
|
const t = N(e);
|
|
722
|
-
t && (
|
|
731
|
+
t && (ke(e), n.forEach((s) => Nt(t, s)));
|
|
723
732
|
}
|
|
724
|
-
function
|
|
733
|
+
function kt(n, e = window) {
|
|
725
734
|
const t = $(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = N(e);
|
|
726
735
|
return async (...r) => {
|
|
727
736
|
let i = {};
|
|
@@ -734,7 +743,7 @@ function xt(n, e = window) {
|
|
|
734
743
|
return s?.mock(i);
|
|
735
744
|
};
|
|
736
745
|
}
|
|
737
|
-
function
|
|
746
|
+
function Nt(n, e) {
|
|
738
747
|
if (!e.mock) return;
|
|
739
748
|
const { url: t, mockTemplate: s } = e;
|
|
740
749
|
if (t && s)
|
|
@@ -753,11 +762,11 @@ function Dt(n, e) {
|
|
|
753
762
|
console.warn("mockApi", r);
|
|
754
763
|
}
|
|
755
764
|
}
|
|
756
|
-
function
|
|
765
|
+
function ke(n = window) {
|
|
757
766
|
const e = N(n);
|
|
758
767
|
e && (e._mocked = {});
|
|
759
768
|
}
|
|
760
|
-
class
|
|
769
|
+
class Bt {
|
|
761
770
|
__id = null;
|
|
762
771
|
__mode;
|
|
763
772
|
__instance = null;
|
|
@@ -873,7 +882,7 @@ function fe(n) {
|
|
|
873
882
|
$components: s,
|
|
874
883
|
$libs: r,
|
|
875
884
|
$apis: i
|
|
876
|
-
}, c = new
|
|
885
|
+
}, c = new Bt({
|
|
877
886
|
mode: t,
|
|
878
887
|
dsl: a.value,
|
|
879
888
|
attrs: u
|
|
@@ -881,7 +890,7 @@ function fe(n) {
|
|
|
881
890
|
name: a.value.name,
|
|
882
891
|
__scopeId: a.value.id ? `data-v-${a.value.id}` : void 0,
|
|
883
892
|
props: {
|
|
884
|
-
...
|
|
893
|
+
...qt(a.value.props ?? [], c)
|
|
885
894
|
},
|
|
886
895
|
async setup(f = {}) {
|
|
887
896
|
c.$props = f, c.props = f, a.value.id && ge(
|
|
@@ -889,11 +898,11 @@ function fe(n) {
|
|
|
889
898
|
a.value.id,
|
|
890
899
|
a.value.css || "",
|
|
891
900
|
!0
|
|
892
|
-
), c.state =
|
|
893
|
-
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);
|
|
894
903
|
for (const [v, w] of Object.entries(m || {}))
|
|
895
904
|
m[v] = e.inject(v, w);
|
|
896
|
-
const h =
|
|
905
|
+
const h = Gt(
|
|
897
906
|
a.value.dataSources || {},
|
|
898
907
|
c
|
|
899
908
|
), g = {
|
|
@@ -902,7 +911,7 @@ function fe(n) {
|
|
|
902
911
|
...d,
|
|
903
912
|
...h
|
|
904
913
|
};
|
|
905
|
-
return c.setup(g, e),
|
|
914
|
+
return c.setup(g, e), Vt(e, a.value.watch ?? [], c), {
|
|
906
915
|
vtj: c,
|
|
907
916
|
state: c.state,
|
|
908
917
|
...f,
|
|
@@ -910,7 +919,7 @@ function fe(n) {
|
|
|
910
919
|
...d
|
|
911
920
|
};
|
|
912
921
|
},
|
|
913
|
-
emits:
|
|
922
|
+
emits: Lt(a.value.emits),
|
|
914
923
|
expose: ["vtj", ...a.value.expose || []],
|
|
915
924
|
render() {
|
|
916
925
|
if (!a.value.nodes) return null;
|
|
@@ -924,17 +933,17 @@ function fe(n) {
|
|
|
924
933
|
return e.createVNode("div", {}, p);
|
|
925
934
|
}
|
|
926
935
|
},
|
|
927
|
-
...
|
|
936
|
+
...Wt(a.value.lifeCycles ?? {}, c)
|
|
928
937
|
});
|
|
929
938
|
return {
|
|
930
939
|
renderer: e.markRaw(l),
|
|
931
940
|
context: c
|
|
932
941
|
};
|
|
933
942
|
}
|
|
934
|
-
function
|
|
943
|
+
function Lt(n = []) {
|
|
935
944
|
return n.map((e) => I(e) ? e : e.name);
|
|
936
945
|
}
|
|
937
|
-
function
|
|
946
|
+
function qt(n = [], e) {
|
|
938
947
|
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => pt[i]) : void 0;
|
|
939
948
|
return n.map((s) => I(s) ? {
|
|
940
949
|
name: s
|
|
@@ -952,7 +961,7 @@ function Nt(n = [], e) {
|
|
|
952
961
|
{}
|
|
953
962
|
);
|
|
954
963
|
}
|
|
955
|
-
function
|
|
964
|
+
function Ut(n, e, t) {
|
|
956
965
|
return n.reactive(
|
|
957
966
|
Object.keys(e || {}).reduce(
|
|
958
967
|
(s, r) => {
|
|
@@ -963,19 +972,19 @@ function Bt(n, e, t) {
|
|
|
963
972
|
)
|
|
964
973
|
);
|
|
965
974
|
}
|
|
966
|
-
function
|
|
975
|
+
function Jt(n, e, t) {
|
|
967
976
|
return Object.entries(e ?? {}).reduce(
|
|
968
977
|
(s, [r, i]) => (s[r] = n.computed(t.__parseFunction(i)), s),
|
|
969
978
|
{}
|
|
970
979
|
);
|
|
971
980
|
}
|
|
972
|
-
function
|
|
981
|
+
function Kt(n, e) {
|
|
973
982
|
return Object.entries(n ?? {}).reduce(
|
|
974
983
|
(t, [s, r]) => (t[s] = e.__parseFunction(r), t),
|
|
975
984
|
{}
|
|
976
985
|
);
|
|
977
986
|
}
|
|
978
|
-
function
|
|
987
|
+
function zt(n, e = [], t) {
|
|
979
988
|
return e.reduce(
|
|
980
989
|
(s, r) => {
|
|
981
990
|
const { name: i, from: o } = r || {};
|
|
@@ -986,12 +995,12 @@ function Ut(n, e = [], t) {
|
|
|
986
995
|
{}
|
|
987
996
|
);
|
|
988
997
|
}
|
|
989
|
-
function
|
|
998
|
+
function Gt(n, e) {
|
|
990
999
|
return Object.keys(n).reduce(
|
|
991
1000
|
(t, s) => {
|
|
992
1001
|
const r = n[s];
|
|
993
1002
|
if (r.type === "mock")
|
|
994
|
-
t[s] =
|
|
1003
|
+
t[s] = kt(r);
|
|
995
1004
|
else if (r.ref) {
|
|
996
1005
|
const i = e.$apis[r.ref], o = $(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
|
|
997
1006
|
t[s] = async (...a) => {
|
|
@@ -1004,7 +1013,7 @@ function Jt(n, e) {
|
|
|
1004
1013
|
{}
|
|
1005
1014
|
);
|
|
1006
1015
|
}
|
|
1007
|
-
function
|
|
1016
|
+
function Vt(n, e = [], t) {
|
|
1008
1017
|
e.forEach((s) => {
|
|
1009
1018
|
n.watch(
|
|
1010
1019
|
t.__parseExpression(s.source),
|
|
@@ -1016,7 +1025,7 @@ function Kt(n, e = [], t) {
|
|
|
1016
1025
|
);
|
|
1017
1026
|
});
|
|
1018
1027
|
}
|
|
1019
|
-
function
|
|
1028
|
+
function Wt(n, e) {
|
|
1020
1029
|
return Object.entries(n ?? {}).reduce(
|
|
1021
1030
|
(t, [s, r]) => {
|
|
1022
1031
|
const i = e.__parseFunction(r);
|
|
@@ -1027,7 +1036,7 @@ function zt(n, e) {
|
|
|
1027
1036
|
{}
|
|
1028
1037
|
);
|
|
1029
1038
|
}
|
|
1030
|
-
class
|
|
1039
|
+
class Qt {
|
|
1031
1040
|
__props = {};
|
|
1032
1041
|
__events = {};
|
|
1033
1042
|
__nodes = {};
|
|
@@ -1069,9 +1078,9 @@ class Gt {
|
|
|
1069
1078
|
this.__props = {}, this.__events = {}, this.__nodes = {};
|
|
1070
1079
|
}
|
|
1071
1080
|
}
|
|
1072
|
-
const x = new
|
|
1081
|
+
const x = new Qt(), Ne = new it();
|
|
1073
1082
|
let re = [], F = {}, D = {};
|
|
1074
|
-
const
|
|
1083
|
+
const Xt = (n, e) => e;
|
|
1075
1084
|
async function Be(n, e = window) {
|
|
1076
1085
|
const { urls: t = [], library: s } = n, r = t.filter((a) => X(a));
|
|
1077
1086
|
if (r.length === 0 || !s) return null;
|
|
@@ -1124,38 +1133,38 @@ function pe(n) {
|
|
|
1124
1133
|
return i;
|
|
1125
1134
|
};
|
|
1126
1135
|
}
|
|
1127
|
-
function
|
|
1136
|
+
function Us() {
|
|
1128
1137
|
F = {}, D = {}, Ne.clearAllCache(), x.clear();
|
|
1129
1138
|
}
|
|
1130
|
-
function T(n, e, t = W, s =
|
|
1139
|
+
function T(n, e, t = W, s = Xt, r = [], i = !1, o = 0) {
|
|
1131
1140
|
if (!n || !n.name || n.invisible) return null;
|
|
1132
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);
|
|
1133
1142
|
if (!i && (f || p))
|
|
1134
1143
|
return null;
|
|
1135
|
-
if (l && !
|
|
1136
|
-
return
|
|
1144
|
+
if (l && !Zt(l, e))
|
|
1145
|
+
return is(n, e, t, s, r);
|
|
1137
1146
|
const b = (_, C = 0) => {
|
|
1138
1147
|
const Y = _.$components, Z = (() => {
|
|
1139
1148
|
if (n.name === "component")
|
|
1140
|
-
return
|
|
1149
|
+
return es(_, n.props?.is);
|
|
1141
1150
|
if (n.name === "slot") return n.name;
|
|
1142
1151
|
const j = s(`${n.id}_${C}`, n.name, n.from, t);
|
|
1143
1152
|
return I(j) ? jt(j) || Rt(j) ? j : Y[j] ?? a?.app?.component(j) ?? j : j;
|
|
1144
|
-
})(), A =
|
|
1153
|
+
})(), A = ts(u, n.props ?? {}, _), Ge = rs(
|
|
1145
1154
|
t,
|
|
1146
1155
|
n.id,
|
|
1147
1156
|
n.events ?? {},
|
|
1148
1157
|
_
|
|
1149
1158
|
);
|
|
1150
1159
|
if (n.name === "slot")
|
|
1151
|
-
return
|
|
1160
|
+
return os(t, n, A, _, s);
|
|
1152
1161
|
g && Object.assign(A, _.__parseExpression(g.value)), m && (A.style = Object.assign(
|
|
1153
1162
|
A.style ?? {},
|
|
1154
|
-
|
|
1155
|
-
)), v && Object.assign(A,
|
|
1156
|
-
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, _));
|
|
1157
1166
|
});
|
|
1158
|
-
const Ve =
|
|
1167
|
+
const Ve = ps(
|
|
1159
1168
|
t,
|
|
1160
1169
|
n.children ?? [],
|
|
1161
1170
|
_,
|
|
@@ -1174,12 +1183,12 @@ function T(n, e, t = W, s = Vt, r = [], i = !1, o = 0) {
|
|
|
1174
1183
|
x.getNode(L) || ee || {},
|
|
1175
1184
|
Ve
|
|
1176
1185
|
);
|
|
1177
|
-
const we = a ?
|
|
1186
|
+
const we = a ? Yt(a, w, _) : [];
|
|
1178
1187
|
return we.length && (te = t.withDirectives(te, we)), te;
|
|
1179
1188
|
};
|
|
1180
|
-
return d ?
|
|
1189
|
+
return d ? ms(d, b, e) : b(e, o);
|
|
1181
1190
|
}
|
|
1182
|
-
function
|
|
1191
|
+
function Yt(n, e, t) {
|
|
1183
1192
|
const s = n.app;
|
|
1184
1193
|
return e.map((r) => {
|
|
1185
1194
|
const i = typeof r.name == "string" ? s.directive(r.name) : t.__parseExpression(r.name);
|
|
@@ -1208,13 +1217,13 @@ function Le(n = []) {
|
|
|
1208
1217
|
vHtml: a
|
|
1209
1218
|
};
|
|
1210
1219
|
}
|
|
1211
|
-
function
|
|
1220
|
+
function Zt(n, e) {
|
|
1212
1221
|
return !!e.__parseExpression(n.value);
|
|
1213
1222
|
}
|
|
1214
|
-
function
|
|
1223
|
+
function es(n, e) {
|
|
1215
1224
|
return e ? E(e) ? n.__parseExpression(e) : e : "div";
|
|
1216
1225
|
}
|
|
1217
|
-
function
|
|
1226
|
+
function ts(n, e, t) {
|
|
1218
1227
|
const s = de(e, t);
|
|
1219
1228
|
return s.ref = t.__ref(n, s.ref), s;
|
|
1220
1229
|
}
|
|
@@ -1227,12 +1236,25 @@ function de(n, e) {
|
|
|
1227
1236
|
{}
|
|
1228
1237
|
) : n;
|
|
1229
1238
|
}
|
|
1230
|
-
function
|
|
1239
|
+
function ss(n, e) {
|
|
1231
1240
|
return (t) => {
|
|
1232
1241
|
t?.key?.toLowerCase() === e.toLowerCase() && n(t);
|
|
1233
1242
|
};
|
|
1234
1243
|
}
|
|
1235
|
-
function
|
|
1244
|
+
function ns(n) {
|
|
1245
|
+
return Ct(n.value) ? n : Pt(n.value) ? {
|
|
1246
|
+
type: "JSFunction",
|
|
1247
|
+
value: `(...args) => (() => {
|
|
1248
|
+
return (($event) => {
|
|
1249
|
+
${n.value}
|
|
1250
|
+
}).apply(this, args);
|
|
1251
|
+
})()`
|
|
1252
|
+
} : At(n.value) ? {
|
|
1253
|
+
type: "JSFunction",
|
|
1254
|
+
value: `() => { ${n.value}}`
|
|
1255
|
+
} : n;
|
|
1256
|
+
}
|
|
1257
|
+
function rs(n, e, t, s) {
|
|
1236
1258
|
const r = ["passive", "capture", "once"], i = {
|
|
1237
1259
|
capture: "Capture",
|
|
1238
1260
|
once: "Once",
|
|
@@ -1240,16 +1262,16 @@ function es(n, e, t, s) {
|
|
|
1240
1262
|
};
|
|
1241
1263
|
return Object.keys(t || {}).reduce(
|
|
1242
1264
|
(a, u) => {
|
|
1243
|
-
const c = t[u], l = qe(c.modifiers), f = l.find((m) => r.includes(m)), p = "on" + ot(u) + (f && i[f] || ""), d = s.__parseFunction(c.handler);
|
|
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;
|
|
1244
1266
|
return d && (a[p] = n.withModifiers(
|
|
1245
|
-
l.includes("enter") ?
|
|
1267
|
+
l.includes("enter") ? ss(d, "enter") : d,
|
|
1246
1268
|
l
|
|
1247
1269
|
)), a;
|
|
1248
1270
|
},
|
|
1249
1271
|
{}
|
|
1250
1272
|
);
|
|
1251
1273
|
}
|
|
1252
|
-
function
|
|
1274
|
+
function is(n, e, t, s, r = []) {
|
|
1253
1275
|
let i = r.findIndex((o) => o.id === n.id);
|
|
1254
1276
|
for (let o = ++i; o < r.length; o++) {
|
|
1255
1277
|
const { directives: a = [] } = r[o], { vElseIf: u, vElse: c } = Le(a);
|
|
@@ -1267,32 +1289,32 @@ function qe(n = {}, e = !1) {
|
|
|
1267
1289
|
const t = Object.keys(n);
|
|
1268
1290
|
return e ? t.map((s) => "." + s) : t;
|
|
1269
1291
|
}
|
|
1270
|
-
function
|
|
1271
|
-
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];
|
|
1272
1294
|
return a ? a(t) : i ? I(i) ? n.createTextVNode(i) : E(i) ? n.createTextVNode(
|
|
1273
1295
|
Te(s.__parseExpression(i))
|
|
1274
1296
|
) : Array.isArray(i) ? i.map(
|
|
1275
1297
|
(u, c) => T(u, s, n, r, i, !1, c)
|
|
1276
1298
|
) : null : null;
|
|
1277
1299
|
}
|
|
1278
|
-
function
|
|
1300
|
+
function as(n, e) {
|
|
1279
1301
|
const { props: t } = n, s = t?.name || "default";
|
|
1280
1302
|
return {
|
|
1281
1303
|
name: E(s) ? e.__parseExpression(s) : s,
|
|
1282
1304
|
params: []
|
|
1283
1305
|
};
|
|
1284
1306
|
}
|
|
1285
|
-
function
|
|
1307
|
+
function cs(n, e) {
|
|
1286
1308
|
return e.__parseExpression(n.value) ? {} : {
|
|
1287
1309
|
display: "none"
|
|
1288
1310
|
};
|
|
1289
1311
|
}
|
|
1290
|
-
function
|
|
1312
|
+
function ls(n, e) {
|
|
1291
1313
|
return {
|
|
1292
1314
|
innerHTML: e.__parseExpression(n.value) || ""
|
|
1293
1315
|
};
|
|
1294
1316
|
}
|
|
1295
|
-
function
|
|
1317
|
+
function us(n, e) {
|
|
1296
1318
|
const t = {
|
|
1297
1319
|
type: "JSFunction",
|
|
1298
1320
|
value: n.value?.value ? `(v) => {
|
|
@@ -1304,7 +1326,7 @@ function os(n, e) {
|
|
|
1304
1326
|
onInput: e.__parseFunction(t)
|
|
1305
1327
|
};
|
|
1306
1328
|
}
|
|
1307
|
-
function
|
|
1329
|
+
function fs(n, e, t) {
|
|
1308
1330
|
const s = {
|
|
1309
1331
|
type: "JSFunction",
|
|
1310
1332
|
value: e.value?.value ? `(v) => {
|
|
@@ -1318,7 +1340,7 @@ function as(n, e, t) {
|
|
|
1318
1340
|
[`onUpdate:${o}`]: i.length && r ? n.withModifiers(r, i) : r
|
|
1319
1341
|
};
|
|
1320
1342
|
}
|
|
1321
|
-
function
|
|
1343
|
+
function ps(n, e, t, s, r) {
|
|
1322
1344
|
if (!e) return null;
|
|
1323
1345
|
if (I(e))
|
|
1324
1346
|
return { default: () => e };
|
|
@@ -1327,7 +1349,7 @@ function cs(n, e, t, s, r) {
|
|
|
1327
1349
|
default: () => Te(t.__parseExpression(e))
|
|
1328
1350
|
};
|
|
1329
1351
|
if (Array.isArray(e) && e.length > 0) {
|
|
1330
|
-
const i =
|
|
1352
|
+
const i = ds(e), o = (a, u) => !a || !r ? {} : r?.id && Object.keys(a).length ? u ? {
|
|
1331
1353
|
[u]: a
|
|
1332
1354
|
} : {
|
|
1333
1355
|
[`scope_${r.id}`]: a
|
|
@@ -1352,10 +1374,10 @@ function cs(n, e, t, s, r) {
|
|
|
1352
1374
|
}
|
|
1353
1375
|
return null;
|
|
1354
1376
|
}
|
|
1355
|
-
function
|
|
1377
|
+
function ds(n) {
|
|
1356
1378
|
const e = {};
|
|
1357
1379
|
for (const t of n) {
|
|
1358
|
-
const s =
|
|
1380
|
+
const s = hs(t.slot), r = s.name;
|
|
1359
1381
|
e[r] ? (e[r].nodes.push(t), e[r].params = e[r].params.concat(s.params), e[r].scope = s.scope || "") : e[r] = {
|
|
1360
1382
|
nodes: [t],
|
|
1361
1383
|
params: s.params,
|
|
@@ -1364,10 +1386,10 @@ function ls(n) {
|
|
|
1364
1386
|
}
|
|
1365
1387
|
return e;
|
|
1366
1388
|
}
|
|
1367
|
-
function
|
|
1389
|
+
function hs(n = "default") {
|
|
1368
1390
|
return I(n) ? { name: n, params: [], scope: "" } : { params: [], scope: "", ...n };
|
|
1369
1391
|
}
|
|
1370
|
-
function
|
|
1392
|
+
function ms(n, e, t) {
|
|
1371
1393
|
const { value: s, iterator: r } = n, { item: i = "item", index: o = "index" } = r || {};
|
|
1372
1394
|
let a = t.__parseExpression(s) || [];
|
|
1373
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`), []);
|
|
@@ -1405,7 +1427,7 @@ const ie = Fe({
|
|
|
1405
1427
|
activated() {
|
|
1406
1428
|
this.meta.cache === !1 && (this.sid = Symbol());
|
|
1407
1429
|
}
|
|
1408
|
-
}),
|
|
1430
|
+
}), gs = Fe({
|
|
1409
1431
|
name: "VtjStartupContainer",
|
|
1410
1432
|
render() {
|
|
1411
1433
|
return le("div", "page not found!");
|
|
@@ -1443,17 +1465,17 @@ function Ue(n, e) {
|
|
|
1443
1465
|
e.can(s.id.toString()) && t.push(s);
|
|
1444
1466
|
return t;
|
|
1445
1467
|
}
|
|
1446
|
-
function
|
|
1468
|
+
function Js(n) {
|
|
1447
1469
|
const {
|
|
1448
1470
|
menuPathPrefix: e = "",
|
|
1449
1471
|
pageRouteName: t = "page",
|
|
1450
1472
|
disableMenusFilter: s = !1
|
|
1451
|
-
} = 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) => {
|
|
1452
1474
|
a.value = !d?.mask, u.value = m?.pure ?? !!d?.pure;
|
|
1453
1475
|
};
|
|
1454
1476
|
ut(() => {
|
|
1455
1477
|
const { name: d, params: m, meta: h } = i;
|
|
1456
|
-
if (d ===
|
|
1478
|
+
if (d === k) {
|
|
1457
1479
|
const g = r.getPage(m.id);
|
|
1458
1480
|
l(g, h);
|
|
1459
1481
|
} else if (d === J) {
|
|
@@ -1548,18 +1570,18 @@ function he(n) {
|
|
|
1548
1570
|
}
|
|
1549
1571
|
return u;
|
|
1550
1572
|
}
|
|
1551
|
-
function
|
|
1573
|
+
function _s(n = {}, e) {
|
|
1552
1574
|
const { css: t, store: s, enhance: r } = n, { window: i, app: o, library: a = {}, adapter: u, mode: c } = e, { Pinia: l } = a;
|
|
1553
|
-
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);
|
|
1554
1576
|
}
|
|
1555
|
-
function
|
|
1577
|
+
function vs(n, e, t) {
|
|
1556
1578
|
const s = t.createPinia();
|
|
1557
1579
|
if (e.use(s), $(n) && n.value) {
|
|
1558
1580
|
const r = R(n, {}, !1, !1, !0), i = t.defineStore("$store", r(e) || {});
|
|
1559
1581
|
e.config.globalProperties.$store = i();
|
|
1560
1582
|
}
|
|
1561
1583
|
}
|
|
1562
|
-
function
|
|
1584
|
+
function ys(n, e, t, s) {
|
|
1563
1585
|
if ($(n) && n.value) {
|
|
1564
1586
|
const r = R(n, {}, !1, !1, !0), { alert: i, request: o } = s, a = new _e({
|
|
1565
1587
|
alert: i,
|
|
@@ -1569,7 +1591,7 @@ function ms(n, e, t, s) {
|
|
|
1569
1591
|
a.connect({ mode: t, router: u, request: o }), e.use(a);
|
|
1570
1592
|
}
|
|
1571
1593
|
}
|
|
1572
|
-
function
|
|
1594
|
+
function ws(n, e, t) {
|
|
1573
1595
|
if (!e.request) return;
|
|
1574
1596
|
const { axios: s, request: r, response: i } = t;
|
|
1575
1597
|
if (s && $(s) && s.value) {
|
|
@@ -1585,7 +1607,7 @@ function gs(n, e, t) {
|
|
|
1585
1607
|
a.__unRes && a.__unRes(), a.__unRes = e.request.useResponse((u) => o(u, n));
|
|
1586
1608
|
}
|
|
1587
1609
|
}
|
|
1588
|
-
function
|
|
1610
|
+
function Ss(n, e) {
|
|
1589
1611
|
const { beforeEach: t, afterEach: s } = e, r = n.config.globalProperties.$router;
|
|
1590
1612
|
if (t && $(t) && t.value) {
|
|
1591
1613
|
const i = R(t, {}, !1, !1, !0);
|
|
@@ -1596,10 +1618,10 @@ function _s(n, e) {
|
|
|
1596
1618
|
r && r.afterEach((o, a, u) => i(o, a, u, n));
|
|
1597
1619
|
}
|
|
1598
1620
|
}
|
|
1599
|
-
function
|
|
1621
|
+
function $s(n, e, t = {}) {
|
|
1600
1622
|
$(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
|
|
1601
1623
|
}
|
|
1602
|
-
function
|
|
1624
|
+
function Es(n, e, t) {
|
|
1603
1625
|
if (!n || !e || !t) return;
|
|
1604
1626
|
const { VueI18n: s } = e;
|
|
1605
1627
|
if (s) {
|
|
@@ -1619,8 +1641,8 @@ function ys(n, e, t) {
|
|
|
1619
1641
|
}
|
|
1620
1642
|
}
|
|
1621
1643
|
const Je = Symbol("Provider");
|
|
1622
|
-
var
|
|
1623
|
-
class
|
|
1644
|
+
var bs = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(bs || {});
|
|
1645
|
+
class js extends Xe {
|
|
1624
1646
|
/**
|
|
1625
1647
|
* 创建Provider实例
|
|
1626
1648
|
* @param options 配置选项
|
|
@@ -1708,7 +1730,7 @@ class Ss extends Xe {
|
|
|
1708
1730
|
if (this.project = s ? await s() : await this.service.init(e), !this.project)
|
|
1709
1731
|
throw new Error("project is null");
|
|
1710
1732
|
const { apis: r = [], meta: i = [], env: o = [] } = this.project, a = window;
|
|
1711
|
-
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();
|
|
1712
1734
|
}
|
|
1713
1735
|
initMock(e) {
|
|
1714
1736
|
const t = N(e);
|
|
@@ -1752,7 +1774,7 @@ class Ss extends Xe {
|
|
|
1752
1774
|
else {
|
|
1753
1775
|
const b = l[h] || [];
|
|
1754
1776
|
for (const _ of b)
|
|
1755
|
-
Q(_) && await Et(_, O.append(_, { v:
|
|
1777
|
+
Q(_) && await Et(_, O.append(_, { v: H })), X(_) && await be(O.append(_, { v: H }));
|
|
1756
1778
|
r[h] = e[h];
|
|
1757
1779
|
}
|
|
1758
1780
|
const w = m[h];
|
|
@@ -1763,7 +1785,7 @@ class Ss extends Xe {
|
|
|
1763
1785
|
}
|
|
1764
1786
|
if (a === "development") {
|
|
1765
1787
|
for (const g of f)
|
|
1766
|
-
await be(O.append(g, { v:
|
|
1788
|
+
await be(O.append(g, { v: H }));
|
|
1767
1789
|
const h = this.materials || {};
|
|
1768
1790
|
for (const g of p) {
|
|
1769
1791
|
const v = e[d[g]], w = v?.default || v, b = Ye[g];
|
|
@@ -1789,15 +1811,15 @@ class Ss extends Xe {
|
|
|
1789
1811
|
routeMeta: u
|
|
1790
1812
|
} = s, c = o ? "" : "/", l = {
|
|
1791
1813
|
path: `${c}${a}/:id`,
|
|
1792
|
-
name:
|
|
1814
|
+
name: k,
|
|
1793
1815
|
component: ie
|
|
1794
1816
|
}, f = this.getHomepage(), p = {
|
|
1795
1817
|
path: c,
|
|
1796
1818
|
name: J,
|
|
1797
|
-
component: f ? ie : r.startupComponent ||
|
|
1819
|
+
component: f ? ie : r.startupComponent || gs,
|
|
1798
1820
|
meta: u
|
|
1799
1821
|
};
|
|
1800
|
-
if (e.hasRoute(
|
|
1822
|
+
if (e.hasRoute(k) && e.removeRoute(k), e.hasRoute(J) && e.removeRoute(J), s.enableStaticRoute) {
|
|
1801
1823
|
const d = t?.pages || [];
|
|
1802
1824
|
he({
|
|
1803
1825
|
name: a,
|
|
@@ -1995,10 +2017,10 @@ class Ss extends Xe {
|
|
|
1995
2017
|
},
|
|
1996
2018
|
t
|
|
1997
2019
|
);
|
|
1998
|
-
|
|
2020
|
+
_s(e, s);
|
|
1999
2021
|
}
|
|
2000
2022
|
initI18n(e, t, s) {
|
|
2001
|
-
|
|
2023
|
+
Es(e, t, s);
|
|
2002
2024
|
}
|
|
2003
2025
|
initEnv(e = []) {
|
|
2004
2026
|
this.env = e.reduce(
|
|
@@ -2007,8 +2029,8 @@ class Ss extends Xe {
|
|
|
2007
2029
|
);
|
|
2008
2030
|
}
|
|
2009
2031
|
}
|
|
2010
|
-
function
|
|
2011
|
-
const e = new
|
|
2032
|
+
function Ks(n) {
|
|
2033
|
+
const e = new js(n);
|
|
2012
2034
|
return {
|
|
2013
2035
|
provider: e,
|
|
2014
2036
|
onReady: (s) => e.ready(s)
|
|
@@ -2031,7 +2053,7 @@ function Ke(n = {}) {
|
|
|
2031
2053
|
}
|
|
2032
2054
|
return e;
|
|
2033
2055
|
}
|
|
2034
|
-
async function
|
|
2056
|
+
async function zs(n, e = "") {
|
|
2035
2057
|
const { name: t, urls: s = [] } = n || {}, r = s.map((a) => e + a), { css: i, js: o } = vt(r);
|
|
2036
2058
|
if (i.length && xe(i), o.length)
|
|
2037
2059
|
return await De(o, t).catch(
|
|
@@ -2045,7 +2067,7 @@ const ze = {
|
|
|
2045
2067
|
originResponse: !1,
|
|
2046
2068
|
failMessage: !0,
|
|
2047
2069
|
validate: (n) => n.data?.code === 0
|
|
2048
|
-
},
|
|
2070
|
+
}, Rs = (n, e = "/__vtj__/api/:type.json") => (t, s, r) => n.send({
|
|
2049
2071
|
url: e,
|
|
2050
2072
|
method: "post",
|
|
2051
2073
|
params: { type: t },
|
|
@@ -2055,7 +2077,7 @@ const ze = {
|
|
|
2055
2077
|
data: s
|
|
2056
2078
|
},
|
|
2057
2079
|
settings: ze
|
|
2058
|
-
}),
|
|
2080
|
+
}), Cs = (n, e = "/__vtj__/api/uploader.json") => async (t, s) => await n.send({
|
|
2059
2081
|
url: e,
|
|
2060
2082
|
method: "post",
|
|
2061
2083
|
data: {
|
|
@@ -2067,7 +2089,7 @@ const ze = {
|
|
|
2067
2089
|
type: "data"
|
|
2068
2090
|
}
|
|
2069
2091
|
}).then((r) => r && r[0] ? r[0] : null).catch(() => null);
|
|
2070
|
-
function
|
|
2092
|
+
function Gs(n) {
|
|
2071
2093
|
return Pe({
|
|
2072
2094
|
settings: {
|
|
2073
2095
|
type: "json",
|
|
@@ -2083,7 +2105,7 @@ function Us(n) {
|
|
|
2083
2105
|
}
|
|
2084
2106
|
class ve {
|
|
2085
2107
|
constructor(e = ce) {
|
|
2086
|
-
this.req = e, this.api =
|
|
2108
|
+
this.req = e, this.api = Rs(e), this.uploader = Cs(e);
|
|
2087
2109
|
}
|
|
2088
2110
|
api;
|
|
2089
2111
|
pluginCaches = {};
|
|
@@ -2188,7 +2210,7 @@ const S = new lt({
|
|
|
2188
2210
|
expired: 0,
|
|
2189
2211
|
prefix: "__VTJ_"
|
|
2190
2212
|
});
|
|
2191
|
-
class
|
|
2213
|
+
class Vs extends ve {
|
|
2192
2214
|
init(e) {
|
|
2193
2215
|
const t = new K(e), s = S.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
|
|
2194
2216
|
return S.save(`project_${t.id}`, r), Promise.resolve(r);
|
|
@@ -2238,7 +2260,7 @@ class Js extends ve {
|
|
|
2238
2260
|
}), Promise.resolve(!0);
|
|
2239
2261
|
}
|
|
2240
2262
|
}
|
|
2241
|
-
class
|
|
2263
|
+
class Ps extends ve {
|
|
2242
2264
|
projects = {};
|
|
2243
2265
|
materials = {};
|
|
2244
2266
|
files = {};
|
|
@@ -2296,10 +2318,10 @@ class bs extends ve {
|
|
|
2296
2318
|
}
|
|
2297
2319
|
}
|
|
2298
2320
|
let U = null;
|
|
2299
|
-
function
|
|
2300
|
-
return U || (U = new
|
|
2321
|
+
function Ws() {
|
|
2322
|
+
return U || (U = new Ps(), U);
|
|
2301
2323
|
}
|
|
2302
|
-
class
|
|
2324
|
+
class Qs extends ve {
|
|
2303
2325
|
getFileCaches = {};
|
|
2304
2326
|
async getExtension() {
|
|
2305
2327
|
return await this.api("getExtension", {}).catch(() => {
|
|
@@ -2357,57 +2379,60 @@ class zs extends ve {
|
|
|
2357
2379
|
}
|
|
2358
2380
|
}
|
|
2359
2381
|
export {
|
|
2360
|
-
|
|
2361
|
-
|
|
2382
|
+
xs as ACCESS,
|
|
2383
|
+
He as ACCESS_KEY,
|
|
2362
2384
|
_e as Access,
|
|
2363
2385
|
dt as BUILD_IN_TAGS,
|
|
2364
2386
|
ft as BUILT_IN_DIRECTIVES,
|
|
2365
2387
|
ve as BaseService,
|
|
2366
2388
|
Re as CONTEXT_HOST,
|
|
2367
|
-
|
|
2389
|
+
Bt as Context,
|
|
2368
2390
|
y as ContextMode,
|
|
2369
2391
|
pt as DATA_TYPES,
|
|
2370
2392
|
J as HOMEPAGE_ROUTE_NAME,
|
|
2371
2393
|
Me as HTML_TAGS,
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2394
|
+
Bs as JSCodeToString,
|
|
2395
|
+
Ms as LIFE_CYCLES_LIST,
|
|
2396
|
+
Qs as LocalService,
|
|
2397
|
+
Ps as MemoryService,
|
|
2398
|
+
bs as NodeEnv,
|
|
2399
|
+
k as PAGE_ROUTE_NAME,
|
|
2400
|
+
js as Provider,
|
|
2401
|
+
Ts as REMOTE,
|
|
2402
|
+
Vs as StorageService,
|
|
2403
|
+
H as VTJ_RENDERER_VERSION,
|
|
2404
|
+
ks as adoptStylesToInline,
|
|
2383
2405
|
ge as adoptedStyleSheets,
|
|
2384
|
-
|
|
2406
|
+
Us as clearLoaderCache,
|
|
2385
2407
|
yt as compileScopedCSS,
|
|
2386
2408
|
$t as convertCssRpx,
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2409
|
+
qs as createAccess,
|
|
2410
|
+
Ls as createAdapter,
|
|
2411
|
+
Ds as createAssetScripts,
|
|
2412
|
+
Hs as createAssetsCss,
|
|
2413
|
+
Gt as createDataSources,
|
|
2392
2414
|
pe as createLoader,
|
|
2393
|
-
|
|
2415
|
+
Ws as createMemoryService,
|
|
2394
2416
|
V as createMenus,
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2417
|
+
xt as createMetaApi,
|
|
2418
|
+
kt as createMock,
|
|
2419
|
+
Ks as createProvider,
|
|
2398
2420
|
fe as createRenderer,
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2421
|
+
Tt as createSchemaApi,
|
|
2422
|
+
Dt as createSchemaApis,
|
|
2423
|
+
Gs as createServiceRequest,
|
|
2424
|
+
Xt as defaultLoader,
|
|
2403
2425
|
q as fillBasePath,
|
|
2404
2426
|
N as getMock,
|
|
2405
2427
|
qe as getModifiers,
|
|
2406
2428
|
Be as getPlugin,
|
|
2407
2429
|
_t as getRawComponent,
|
|
2430
|
+
Ct as isArrowFunction,
|
|
2431
|
+
At as isAssignment,
|
|
2408
2432
|
jt as isBuiltInTag,
|
|
2409
2433
|
Q as isCSSUrl,
|
|
2410
|
-
Pt as
|
|
2434
|
+
Pt as isCallFunction,
|
|
2435
|
+
Ft as isJSCode,
|
|
2411
2436
|
E as isJSExpression,
|
|
2412
2437
|
$ as isJSFunction,
|
|
2413
2438
|
ht as isJSON,
|
|
@@ -2416,12 +2441,12 @@ export {
|
|
|
2416
2441
|
bt as isVuePlugin,
|
|
2417
2442
|
Et as loadCss,
|
|
2418
2443
|
xe as loadCssUrl,
|
|
2419
|
-
|
|
2444
|
+
zs as loadEnhance,
|
|
2420
2445
|
De as loadScriptUrl,
|
|
2421
2446
|
Ue as menusFilter,
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2447
|
+
Nt as mockApi,
|
|
2448
|
+
Ht as mockApis,
|
|
2449
|
+
ke as mockCleanup,
|
|
2425
2450
|
x as nodeCache,
|
|
2426
2451
|
T as nodeRender,
|
|
2427
2452
|
gt as parseDeps,
|
|
@@ -2431,9 +2456,9 @@ export {
|
|
|
2431
2456
|
Je as providerKey,
|
|
2432
2457
|
mt as removeProdFlag,
|
|
2433
2458
|
St as rpxToPx,
|
|
2434
|
-
|
|
2459
|
+
Ns as setupPageSetting,
|
|
2435
2460
|
Te as toString,
|
|
2436
|
-
|
|
2437
|
-
|
|
2461
|
+
Mt as useAccess,
|
|
2462
|
+
Js as useMask,
|
|
2438
2463
|
Ke as useProvider
|
|
2439
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
30
|
"@vtj/cli": "~0.12.19",
|
|
31
|
-
"@vtj/
|
|
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
|
@@ -12,3 +12,6 @@ export declare function isBuiltInTag(tag: string): boolean;
|
|
|
12
12
|
export declare function isNativeTag(tag: string): boolean;
|
|
13
13
|
export declare function getMock(global?: any): any;
|
|
14
14
|
export declare function setupPageSetting(app: App, route: RouteLocationNormalizedGeneric, file: PageFile | BlockFile): void;
|
|
15
|
+
export declare function isArrowFunction(code: string): boolean;
|
|
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";
|