@vtj/renderer 0.16.27 → 0.16.28
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 +12 -8
- package/dist/index.mjs +180 -162
- package/package.json +5 -5
- package/types/utils/util.d.ts +2 -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 T=require("@vtj/core"),f=require("@vtj/utils"),$=require("vue"),Ee=require("vue-router");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("@vtj/core"),f=require("@vtj/utils"),$=require("vue"),Ee=require("vue-router");function at(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=at($);/**!
|
|
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
|
-
*/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
|
|
7
|
+
*/const D="0.16.28";var S=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(S||{});const ie=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],ct=["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(","),lt=["h","t","t","p","s",":","/","/","a","p","p",".","v","t","j",".","p","r","o"].join(""),ut={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 pt(n){return n.map(e=>`<script src="${f.url.append(e,{v:D})}"><\/script>`).join("")}function ft(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=[],o=[],i=[],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)&&o.push(y)}),g&&(a.push(g),u[g]=N(d||[],e),_&&(c[g]=_)),h&&i.push(h),m&&l.push(m),g&&m&&(p[m]=g)}),{scripts:N(r,e),css:N(o,e),materials:N(i,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 Te(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}),o=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}]`},i=c=>r(c).split(",").map(p=>o(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=i(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 dt=750;function Fe(n,e,t){let s;typeof n<"u"?s=n.innerWidth||n.document.documentElement.clientWidth:(console.warn("无法获取屏幕宽度,使用默认值375"),s=375);const r=t||dt;return e*s/r}function Me(n,e){let t=!1,s=!1,r=!1,o="";for(let i=0;i<e.length;i++){const a=e[i];if(a==="'"&&!s&&!r?t=!t:a==='"'&&!t&&!r?s=!s:e.substr(i,4).toLowerCase()==="url("&&!t&&!s?r=!0:a===")"&&r&&(r=!1),!t&&!s&&!r){const u=e.substr(i).match(/^(-?\d+(?:\.\d+)?)\s*rpx/);if(u){const c=u[1],l=parseFloat(c),d=`${Fe(n,l).toFixed(6).replace(/\.?0+$/,"")}px`;o+=d,i+=u[0].length-1;continue}}o+=a}return o}function ue(n){return f.isString(n)?n:JSON.stringify(n)}function Q(n,e,t,s=!1){const r=n.CSSStyleSheet,o=s?`data-v-${e}`:e,i=n.__uniConfig?Me(n,t):t,a=s?Te(i,o):i,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 ht(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 i=t.createElement("link");i.rel="stylesheet",i.id=r,i.href=r,s.appendChild(i)}}async function fe(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((i,a)=>{for(const u of n){const c=s.createElement("script");c.src=u,c.onload=()=>{o=t[e],o?i(o.default||o):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 mt(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 gt(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 o=['"use strict";',"var __self = arguments[0];"];o.push("return ");let i=(n.value||"").trim();r||(i=i.replace(/this(\W|$)/g,(u,c)=>`__self${c}`)),i=o.join(`
|
|
10
10
|
`)+i;const a=r?`
|
|
11
11
|
${i}
|
|
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) => {
|
|
12
|
+
`:`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(o){if(f.logger.error("parseExpression.error",o,n,e?.__self??e),gt(o),s)throw o}}function R(n,e,t=!1,s=!1,r=!1){const o=H(n,e,t,s,r);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return o}function b(n){return n&&n.type==="JSExpression"}function C(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function Le(n){return b(n)||C(n)}function _t(n){return Le(n)?n.value:JSON.stringify(n)}const vt={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},de=Symbol("access");class Y{options;data=null;mode=S.Raw;interceptResponse=!0;isTipShowing=!1;constructor(e){this.options=Object.assign({},vt,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode!==S.Design&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),r&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):f.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return f.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(de,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>f.unRSA(r,t));try{this.data=JSON.parse(s.join(""))}catch(r){console.warn(r)}return}if(typeof e=="string")try{const s=t?f.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=f.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!f.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===x){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):e.meta.permission?this.can(e.meta.permission):!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),f.isFunction(r)?(r(),t(!1)):f.isString(r)?t(r):t(!1)}}t(!1),await f.delay(0),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&await this.showTip(t)&&this.toLogin()}async showTip(e){const{alert:t}=this.options;return this.isTipShowing?!1:t?(this.isTipShowing=!0,await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!0)?.finally(()=>{this.isTipShowing=!1})):(window.alert(e),!0)}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Ue(){return $.inject(de,null)}function yt(n={}){const{notify:e,loading:t,settings:s={},Startup:r,access:o,useTitle:i,alert:a}=n;let u=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},showLoading:()=>{u&&u.close(),t&&(u=t())},hideLoading:()=>{u&&(u.close(),u=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:i,alert:a,startupComponent:r,access:o?new Y({alert:a,...o}):void 0}}function St(n={}){return new Y(n)}function qe(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?H(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(i,a)=>(delete o.data,s.send(f.merge(o,a||{},{data:i})))}}function Be(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,i)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,i)}}function Je(n=[],e=[],t){const s={};for(const r of n){const o=qe(r,t);s[r.id]=o,s[r.name]=o}for(const r of e)s[r.id]=Be(r,t);return s}async function Ke(n=[],e=window){const t=k(e);t&&(he(e),n.forEach(s=>ze(t,s)))}function Ge(n,e=window){const t=C(n.mockTemplate)&&n.mockTemplate.value?R(n.mockTemplate,{},!0):void 0,s=k(e);return async(...r)=>{let o={};if(t)try{o=await t.apply(t,r)}catch(i){f.logger.warn("模拟数据模版异常",i)}return s?.mock(o)}}function ze(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const r=f.isUrl(t)?new URL(t).pathname:t,o=f.pathToRegexp(`(.*)${r}(.*)`),i=f.pathToRegexpMatch(r,{decode:decodeURIComponent}),a=H(s,{},!0);n.mock(o,u=>{const c=f.url.parse(u.url)||{},l=u.body instanceof FormData?f.formDataToJson(u.body):u.body,p=f.isUrl(u.url)?new URL(u.url).pathname:u.url.split("?")[0],d=i(p)?.params;Object.assign(u,{data:l,params:d,query:c});try{return n.mock(a(u))}catch(h){return console.warn("[mockApi]",o,u,h),null}})}catch(r){console.warn("mockApi",r)}}function he(n=window){const e=k(n);e&&(e._mocked={})}class Ve{__id=null;__mode;__instance=null;__contextRefs={};__refs={};__refCaches={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};$provider=null;__transform={};constructor(e){const{mode:t,dsl:s,attrs:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=W){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.__refCaches={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&ie.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){ie.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.__refCaches={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return R({type:s,value:r},this)}else return R(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return H({type:s,value:r},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode===S.VNode)return;e&&e!==this.__id&&(this.__contextRefs[e]=this);let s=e?this.__refCaches[e]:null;return s||(s=async r=>{await f.delay(0);let o=r?.$vtjEl||r?.$el||r?._?.vnode?.el||r;if(!o){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return o.nodeType===3&&o.nextSibling&&(o=o.nextSibling),o.__vtj__=e,S.Design===this.__mode&&(o.__context__=this,o.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,r)),typeof t=="function"?t(r):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,r)),r},e&&(this.__refCaches[e]=s),s)}__getRefEl(e,t,s){const r=e[t];if(r&&s!==r){const o=new Set([].concat(r,s));return Array.from(o)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function z(n){const{Vue:e=W,mode:t=S.Runtime,components:s={},libs:r={},apis:o={},loader:i}=n,a=e.computed(()=>n.dsl),u={$components:s,$libs:r,$apis:o},c=new Ve({mode:t,dsl:a.value,attrs:u}),l=e.defineComponent({name:a.value.name,__scopeId:a.value.id?`data-v-${a.value.id}`:void 0,props:{...Et(a.value.props??[],c)},async setup(p={}){c.$props=p,c.props=p,a.value.id&&Q(n.window||window,a.value.id,a.value.css||"",!0),c.state=$t(e,a.value.state??{},c);const d=Ct(e,a.value.computed??{},c),h=bt(a.value.methods??{},c),g=jt(e,a.value.inject,c);for(const[y,w]of Object.entries(g||{}))g[y]=e.inject(y,w);const m=We(a.value.dataSources||{},c),_={...g,...d,...h,...m};return c.setup(_,e),Rt(e,a.value.watch??[],c),{vtj:c,state:c.state,...p,...d,...h}},emits:wt(a.value.emits),expose:["vtj",...a.value.expose||[]],render(){if(!a.value.nodes)return null;const p=a.value.nodes||[];if(p.length===1)return M(p[0],c,e,i,p);{const d=p.map(h=>M(h,c,e,i,p));return e.createVNode("div",{},d)}},...Pt(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function wt(n=[]){return n.map(e=>f.isString(e)?e:e.name)}function Et(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Ce[o]):void 0;return n.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:b(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function $t(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return b(o)?o=t.__parseExpression(o):C(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function Ct(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function bt(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function jt(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:i}=r||{};r.default;const a=b(i)?t.__parseExpression(i)||o:i??o,u=b(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(a,u),s},{})}function We(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=Ge(r);else if(r.ref){const o=e.$apis[r.ref],i=C(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;t[s]=async(...a)=>{const u=await o.apply(e,a);return i?i(u):u}}return t},{})}function Rt(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function Pt(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>{const o=e.__parseFunction(r);return t[s]=async()=>{f.isFunction(o)&&(await f.delay(0),await o())},t},{})}class At{__props={};__events={};__nodes={};constructor(){}setProps(e,t){this.__props[e]=t}getProps(e){return this.__props[e]}loadProps(e,t){const s=e?this.getProps(e):null;return s||(e&&this.setProps(e,t),t)}setEvents(e,t){}getEvents(e){return this.__events[e]}loadEvents(e,t){const s=e?this.getEvents(e):null;return s||(e&&this.setEvents(e,t),t)}setNode(e,t){this.__nodes[e]=t}getNode(e){return this.__nodes[e]}loadNode(e,t){const s=e?this.getNode(e):null;return s||(e&&this.setNode(e,t),t)}isEqual(e,t){return f.isEqual(e,t)}clear(){this.__props={},this.__events={},this.__nodes={}}}const O=new At,Qe=new f.Queue;let ne=[],F={},L={};const Ye=(n,e)=>e;async function me(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(a=>J(a));if(r.length===0||!s)return null;const o=t.filter(a=>B(a));return o.length&&pe(o,e),await fe(r,s,e).catch(a=>(console.warn("loadScriptUrl error",r,s,a),null))}function V(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(ne.forEach(r=>{delete s.window[r]}),ne=[]),(r,o,i,a=W)=>{if(!i||typeof i=="string")return o;let u="";if(i.type==="Schema"&&i.id)return u=i.id+"_"+r,L[u]||(L[u]=a.defineAsyncComponent(async()=>{const c=F[i.id]||await Qe.add(i.id,()=>e(i.id));return c&&(c.name=o,F[i.id]=c),c?z({Vue:a,mode:S.Runtime,...s,dsl:f.cloneDeep(c),loader:V(n)}).renderer:null}));if(i.type==="UrlSchema"&&i.url)return u=i.url+"_"+r,L[u]||(L[u]=a.defineAsyncComponent(async()=>{const c=F[i.url]||await t(i.url);return c&&(c.name=o,F[i.url]=c),c?z({...s,Vue:a,dsl:f.cloneDeep(c),mode:S.Runtime,loader:V(n)}).renderer:null}));if(i.type==="Plugin"){let c=i.library?F[i.library]:null;return c||(i.library&&ne.push(i.library),c=F[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await me(i,s.window);return l||(console.warn("getPlugin result is null",i),null)}),c)}return o}}function It(){F={},L={},Qe.clearAllCache(),O.clear()}function M(n,e,t=W,s=Ye,r=[],o=!1,i=0){if(!n||!n.name||n.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:u=null,directives:c=[]}=n,{vIf:l,vElseIf:p,vElse:d,vFor:h,vShow:g,vModels:m,vBind:_,vHtml:y,others:w}=Xe(c);if(!o&&(p||d))return null;if(l&&!Ft(l,e))return Ht(n,e,t,s,r);const j=(v,A=0)=>{const Z=v.$components,ee=(()=>{if(n.name==="component")return Mt(v,n.props?.is);if(n.name==="slot")return n.name;const P=s(`${n.id}_${A}`,n.name,n.from,t);return f.isString(P)?xe(P)||ke(P)?P:Z[P]??a?.app?.component(P)??P:P})(),I=Ot(u,n.props??{},v),nt=kt(t,n.id,n.events??{},v);if(n.name==="slot")return Nt(t,n,I,v,s);_&&Object.assign(I,v.__parseExpression(_.value)),g&&(I.style=Object.assign(I.style??{},Ut(g,v))),y&&Object.assign(I,qt(y,v)),m.forEach(P=>{le.includes(n.name)?Object.assign(I,Bt(P,v)):Object.assign(I,Jt(t,P,v))});const rt=Kt(t,n.children??[],v,s,n),Se=v?.__id?`data-v-${v.__id}`:void 0,ot=Se?{[Se]:""}:{},it=v.__mode===S.Design?{"data-vtj":u}:{},K=`${u}_${A}`,te={key:K,...ot,...it,...I,...nt};O.isEqual(te,O.getNode(K))||O.setNode(K,te);let se=t.createVNode(ee,O.getNode(K)||te||{},rt);const we=a?Tt(a,w,v):[];return we.length&&(se=t.withDirectives(se,we)),se};return h?Vt(h,j,e):j(e,i)}function Tt(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const i=[o];return r.value&&i.push(t.__parseExpression(r.value)),r.arg&&i.push(r.arg),r.modifiers&&i.push(r.modifiers),i}).filter(r=>!!r)}function Xe(n=[]){const e=n.find(l=>f.camelCase(l.name)==="vIf"),t=n.find(l=>f.camelCase(l.name)==="vElseIf"),s=n.find(l=>f.camelCase(l.name)==="vElse"),r=n.find(l=>f.camelCase(l.name)==="vFor"),o=n.find(l=>f.camelCase(l.name)==="vShow"),i=n.find(l=>f.camelCase(l.name)==="vBind"),a=n.find(l=>f.camelCase(l.name)==="vHtml"),u=n.filter(l=>f.camelCase(l.name)==="vModel"),c=n.filter(l=>!$e.includes(f.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:r,vShow:o,vModels:u,vBind:i,others:c,vHtml:a}}function Ft(n,e){return!!e.__parseExpression(n.value)}function Mt(n,e){return e?b(e)?n.__parseExpression(e):e:"div"}function Ot(n,e,t){const s=ae(e,t);return s.ref=t.__ref(n,s.ref),s}function ae(n,e){return b(n)?e.__parseExpression(n):C(n)?e.__parseFunction(n):Array.isArray(n)?n.map(t=>ae(t,e)):typeof n=="object"?Object.keys(n||{}).reduce((t,s)=>{let r=n[s];return t[s]=ae(r,e),t},{}):n}function Dt(n,e){return t=>{t?.key?.toLowerCase()===e.toLowerCase()&&n(t)}}function xt(n){return He(n.value)?n:Ne(n.value)?{type:"JSFunction",value:`(...args) => (() => {
|
|
13
|
+
return (($event) => {
|
|
14
|
+
${n.value}
|
|
15
|
+
}).apply(this, args);
|
|
16
|
+
})()`}:n}function kt(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=c.handler?s.__parseFunction(xt(c.handler)):null;return h&&(a[d]=n.withModifiers(l.includes("enter")?Dt(h,"enter"):h,l)),a},{})}function Ht(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}=Xe(a);if(u){if(e.__parseExpression(u.value))return M(r[i],e,t,s,r,!0);continue}if(c)return M(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 Nt(n,e,t,s,r){const{children:o}=e,i=Lt(e,s),a=s.$slots?.[i.name];return a?a(t):o?f.isString(o)?n.createTextVNode(o):b(o)?n.createTextVNode(ue(s.__parseExpression(o))):Array.isArray(o)?o.map((u,c)=>M(u,s,n,r,o,!1,c)):null:null}function Lt(n,e){const{props:t}=n,s=t?.name||"default";return{name:b(s)?e.__parseExpression(s):s,params:[]}}function Ut(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function qt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function Bt(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 Jt(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),o=ge(b(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),i=b(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[i]:t.__parseExpression(e.value),[`onUpdate:${i}`]:o.length&&r?n.withModifiers(r,o):r}}function Kt(n,e,t,s,r){if(!e)return null;if(f.isString(e))return{default:()=>e};if(b(e))return{default:()=>ue(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Gt(e),i=(a,u)=>!a||!r?{}:r?.id&&Object.keys(a).length?u?{[u]:a}:{[`scope_${r.id}`]:a}:u?{[u]:Object.create(null)}:{};return Object.entries(o).reduce((a,[u,{nodes:c,params:l,scope:p}])=>(a[u]=d=>{const h=l.length?f.pick(d??{},l):i(d,p);return c.map((g,m)=>M(g,t.__clone(h),n,s,c,!1,m))},a),{})}return null}function Gt(n){const e={};for(const t of n){const s=zt(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params),e[r].scope=s.scope||""):e[r]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function zt(n="default"){return f.isString(n)?{name:n,params:[],scope:""}:{params:[],scope:"",...n}}function Vt(n,e,t){const{value:s,iterator:r}=n,{item:o="item",index:i="index"}=r||{};let a=t.__parseExpression(s)||[];return Number.isInteger(a)&&(a=new Array(a).fill(!0).map((u,c)=>c+1)),Array.isArray(a)?a.map((u,c)=>e(t.__clone({[o]:u,[i]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const re=$.defineComponent({name:"VtjPageContainer",async setup(){const n=ye(),e=Ee.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,o=$.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:i}=n?.adapter;if(i){const a=e.meta.title||s.title||"VTJ.PRO";i(a)}}return{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?$.h(n,{...e,key:t}):$.h("div",{style:{padding:"10px"}},"找不到组件,组件不存在或未发布!")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Wt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}});function q(n,e,t=[]){const s=[];for(const r of t){const{id:o,title:i,icon:a,children:u,hidden:c,layout:l}=r;if(l){const p=q(n,e,u||[]);s.push(...p)}else{const p={id:o,title:i,icon:a,hidden:c,url:`${n}/${e}/${o}`,children:u&&u.length?q(n,e,u):void 0};s.push(p)}}return s}function _e(n,e){if(!e)return n;let t=[];for(const s of n)if(s.children&&s.children.length){const r=_e(s.children,e);r.length&&(s.children=r,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Qt(n){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=n||{},r=ye(),o=Ee.useRoute(),i=Ue(),a=$.ref(!1),u=$.ref(!1),c=r.project,l=(h,g)=>{a.value=!h?.mask,u.value=g?.pure??!!h?.pure};$.watchEffect(()=>{const{name:h,params:g,meta:m}=o;if(h===x){const _=r.getPage(g.id);l(_,m)}else if(h===U){const _=r.getHomepage();l(_,m)}else{const _=m.__vtj__;if(_){const y=r.getPage(_);l(y,m)}else a.value=!m.mask,u.value=!!m.pure}});const p=q(e,t,c?.pages),d=c?.config;return{disabled:a,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:_e(p,i),pure:u}}function oe(n,e){const{id:t,title:s,meta:r}=n,{name:o="page",prefix:i="",component:a,routeMeta:u}=e;return{name:t,path:`${i}${o}/${t}`,component:a,meta:{title:s,...u,...r,__vtj__:t}}}function ce(n){const{name:e="page",prefix:t="",pages:s=[],component:r,loader:o,routeMeta:i,homepage:a}=n,u=[];for(const c of s){const{id:l,title:p,dir:d,layout:h,children:g,meta:m}=c;if(d){const _=ce({name:e,prefix:t,component:r,routeMeta:i,homepage:a,loader:o,pages:g||[]});u.push(..._)}else if(h){const _=ce({name:e,prefix:t,component:r,routeMeta:i,homepage:a,loader:o,pages:g||[]}),y={name:`layout_${l}`,path:t,component:()=>o(l),meta:{title:p,...i,...m,__vtj__:l},children:_};u.push(y),u.push(oe(c,n))}else if(u.push(oe(c,n)),a===l){const _=oe(c,n);_.path="",_.name=`home_${l}`,u.push(_)}}return u}function Yt(n={},e){const{css:t,store:s,enhance:r}=n,{window:o,app:i,library:a={},adapter:u,mode:c}=e,{Pinia:l}=a;i.config.globalProperties.$libs=a,Q(o,"global-css",t||""),l&&s&&Xt(s,i,l),es(i,u,n),!u.access&&n.access&&Zt(n.access,i,c,u),ts(i,n),r&&ss(r,i,a)}function Xt(n,e,t){const s=t.createPinia();if(e.use(s),C(n)&&n.value){const r=R(n,{},!1,!1,!0),o=t.defineStore("$store",r(e)||{});e.config.globalProperties.$store=o()}}function Zt(n,e,t,s){if(C(n)&&n.value){const r=R(n,{},!1,!1,!0),{alert:o,request:i}=s,a=new Y({alert:o,storagePrefix:"__VTJ_APP_",...r(e)}),u=e.config.globalProperties.$router;a.connect({mode:t,router:u,request:i}),e.use(a)}}function es(n,e,t){if(!e.request)return;const{axios:s,request:r,response:o}=t;if(s&&C(s)&&s.value){const i=R(s,{},!1,!1,!0);e.request.setConfig(i(n))}if(r&&C(r)&&r.value){const i=R(r,{},!1,!1,!0),a=e.request;a.__unReq&&a.__unReq(),a.__unReq=e.request.useRequest(u=>i(u,n))}if(o&&C(o)&&o.value){const i=R(o,{},!1,!1,!0),a=e.request;a.__unRes&&a.__unRes(),a.__unRes=e.request.useResponse(u=>i(u,n))}}function ts(n,e){const{beforeEach:t,afterEach:s}=e,r=n.config.globalProperties.$router;if(t&&C(t)&&t.value){const o=R(t,{},!1,!1,!0);r&&r.beforeEach((i,a,u)=>o(i,a,u,n))}if(s&&C(s)&&s.value){const o=R(s,{},!1,!1,!0);r&&r.afterEach((i,a,u)=>o(i,a,u,n))}}function ss(n,e,t={}){C(n)&&n.value&&R(n,{},!1,!1,!0)(e,t)}function ns(n,e,t){if(!n||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:r,fallbackLocale:o,messages:i=[]}=t,a={};for(let c of i){const l=Object.keys(c).filter(p=>p!=="key");for(const p of l)a[p]||(a[p]={}),a[p][c.key]=c[p]}const u=s.createI18n({legacy:!1,locale:r,fallbackLocale:o,messages:a});n.use(u)}}const ve=Symbol("Provider");var Ze=(n=>(n.Production="production",n.Development="development",n))(Ze||{});class et extends T.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:r,materials:o,project:i={},adapter:a={},globals:u={},modules:c={},router:l=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=l,this.materialPath=p,this.nodeEnv=d,r&&(this.dependencies=r),o&&(this.materials=o),Object.assign(this.globals,u),Object.assign(this.adapter,a);const{access:h,request:g}=this.adapter;h&&h.connect({mode:s,router:l,request:g}),i&&s!==S.Design?this.load(i):this.project=i}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};service;project=null;components={};nodeEnv="development";env={};router=null;materialPath="./";urlDslCaches={};errorHandler=null;createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(o){f.logger.warn("模拟数据模版异常",o)}return k()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:r=[],meta:o=[],env:i=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.initEnv(i),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=Je(r,o,this.adapter),he(a),Ke(r,a),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e={}){const t=Object.entries(this.dependencies);for(const[s,r]of t)e[s]||(e[s]=this.library[s]=await r())}async loadAssets(e={}){const{dependencies:t=[]}=this.project,{dependencies:s,library:r,components:o,materialPath:i,nodeEnv:a,libraryLocales:u}=this,{libraryExports:c,libraryMap:l,materials:p,materialExports:d,materialMapLibrary:h,libraryLocaleMap:g}=Pe(t,i,a==="development");Object.assign(this.libraryLocaleMap,g);for(const m of c){const _=s[m],y=e[m];if(y)r[m]=y;else if(_)e[m]=r[m]=await _();else{const j=l[m]||[];for(const v of j)B(v)&&await Oe(v,f.url.append(v,{v:D})),J(v)&&await f.loadScript(f.url.append(v,{v:D}));r[m]=e[m]}const w=g[m];if(w){const j=s[w];u[w]=j?await j():e[w]}}if(a==="development"){for(const _ of p)await f.loadScript(f.url.append(_,{v:D}));const m=this.materials||{};for(const _ of d){const y=e[h[_]],w=y?.default||y,j=T.BUILT_IN_COMPONENTS[_];if(j)w&&j.forEach(v=>{o[v]=w[v]});else{const v=m[_]?(await m[_]()).default:e[_];v&&w&&(v.components||[]).forEach(A=>{o[A.name]=Ae(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:r}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:i,pageRouteName:a=o,routeMeta:u}=s,c=i?"":"/",l={path:`${c}${a}/:id`,name:x,component:re},p=this.getHomepage(),d={path:c,name:U,component:p?re:r.startupComponent||Wt,meta:u};if(e.hasRoute(x)&&e.removeRoute(x),e.hasRoute(U)&&e.removeRoute(U),s.enableStaticRoute){const h=t?.pages||[];ce({name:a,prefix:c,pages:h,component:re,loader:this.getRenderComponent.bind(this),homepage:p?.id}).forEach(m=>{i?e.addRoute(i,m):e.addRoute(m)}),p||(i?e.addRoute(i,d):e.addRoute(d))}else i?(e.addRoute(i,l),e.addRoute(i,d)):(e.addRoute(l),e.addRoute(d))}setErrorHandler(e){e.config.errorHandler=f.debounce((t,s,r)=>{const o=s?.$options.name,i=typeof t=="string"?t:t?.message||t?.msg||"未知错误",a=`[ ${o} ] ${i} ${r}`;["getComputedStyle","ResizeObserver"].some(c=>a.includes(c))||(console.error("[VTJ Error]:",{err:t,instance:s,info:r},t?.stack),this.errorHandler&&this.errorHandler(t),this.adapter.notify&&this.adapter.notify(a,"组件渲染错误","error"))},300)}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,{libraryOptions:r={}}=this.options,o=e.config.globalProperties.installed||{};for(const[i,a]of Object.entries(this.library))if(!o[i]&&De(a)){const c={locale:s[t[i]]},l=r[i]||{},p={...c,...l};e.use(a,p),o[i]=!0}e.provide(ve,this),e.config.globalProperties.$provider=this,e.config.globalProperties.$request=this.adapter?.request,this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),this.project?.platform!=="uniapp"&&this.mode!==S.Design&&this.initGlobals(this.project?.globals||{},{app:e,window,adapter:this.adapter,library:this.library,mode:this.mode}),this.mode!==S.Design&&this.project?.i18n&&this.initI18n(e,this.library,this.project.i18n),this.options.enhance&&e.use(this.options.enhance,this),this.mode===S.Design&&this.setErrorHandler(e),e.config.globalProperties.installed=o}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(r,o=[])=>{for(const i of o){if(i.id===r)return i;if(i.children&&i.children.length){const a=s(r,i.children);if(a)return a}}};return s(e,t)||null}getFirstPage(){const{pages:e=[]}=this.project||{};if(!e.length)return null;const t=(s=[])=>{for(const r of s){if(r.type==="page"&&!r.dir&&!r.layout)return r;if(r.children&&r.children.length){const o=t(r.children);if(o)return o}}};return t(e)||null}getMenus(e="page",t=""){return q(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):this.getFirstPage()}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:r,mode:o,apis:i}=this,a={mode:o,Vue:s.Vue,components:r,libs:s,apis:i,window,...t},u=V({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:a});return z({...a,dsl:e,loader:u})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return f.logger.warn(`Can not find file: ${e}`),null;if(t&&t(s),this.mode===S.Raw){const{vtjRawDir:o=".vtj/vue"}=this.options,i=`${o}/${e}.vue`,a=this.modules[i]||this.modules[`/src/pages/${e}.vue`];return a?(await a())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const r=await this.getDsl(s.id);return r?this.createDslRenderer(r).renderer:(f.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return $.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return $.defineAsyncComponent(async()=>await me(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Yt(e,s)}initI18n(e,t,s){ns(e,t,s)}initEnv(e=[]){this.env=e.reduce((t,s)=>(t[s.name]=s[this.nodeEnv],t),{})}}function rs(n){const e=new et(n);return{provider:e,onReady:s=>e.ready(s)}}function ye(n={}){const e=$.inject(ve,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=n;t&&s&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${r?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function os(n,e=""){const{name:t,urls:s=[]}=n||{},r=s.map(a=>e+a),{css:o,js:i}=Ie(r);if(o.length&&pe(o),i.length)return await fe(i,t).catch(()=>{})}const tt={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0},is=(n,e="/__vtj__/api/:type.json")=>(t,s,r)=>n.send({url:e,method:"post",params:{type:t},query:r,data:{type:t,data:s},settings:tt}),as=(n,e="/__vtj__/api/uploader.json")=>async(t,s)=>await n.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...tt,type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);function cs(n){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{n&&n(e||"未知错误")}}})}class X{constructor(e=f.request){this.req=e,this.api=is(e),this.uploader=as(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(o=>je(o))[0];if(!s)return null;const r=this.pluginCaches[s];return r||(this.pluginCaches[s]=f.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const E=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class ls extends X{init(e){const t=new T.ProjectModel(e),s=E.get(`project_${t.id}`),r=Object.assign(t.toDsl(),s||{});return E.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new T.ProjectModel(e);return E.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return E.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return E.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=E.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return E.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return E.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=E.get(`history_${e}`);if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),E.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=E.get(`history_${e}`),s=new T.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=E.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return E.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{E.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class st extends X{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new T.ProjectModel(e),s=this.projects[t.id]||{},r=Object.assign(t.toDsl(),s);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new T.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new T.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,r=this.historyItems[s]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const r=`${e}_${s}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let G=null;function us(){return G||(G=new st,G)}class ps extends X{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:f.mapToObject(t)}).catch(()=>!1)}async saveFile(e){return!!await this.api("saveFile",e).catch(()=>!1)}async getFile(e){const t=this.getFileCaches[e];return t||(this.getFileCaches[e]=this.api("getFile",e).catch(()=>null)).finally(()=>{delete this.getFileCaches[e]})}async removeFile(e){return!!await this.api("removeFile",e).catch(()=>!1)}async saveHistory(e){return!!await this.api("saveHistory",e).catch(()=>!1)}async removeHistory(e){return!!await this.api("removeHistory",e).catch(()=>!1)}async getHistory(e){return await this.api("getHistory",e).catch(()=>null)||{}}async getHistoryItem(e,t){return await this.api("getHistoryItem",{fId:e,id:t}).catch(()=>null)||{}}async saveHistoryItem(e,t){return!!await this.api("saveHistoryItem",{fId:e,item:t}).catch(()=>!1)}async removeHistoryItem(e,t){return!!await this.api("removeHistoryItem",{fId:e,ids:t}).catch(()=>!1)}}exports.ACCESS=ut;exports.ACCESS_KEY=de;exports.Access=Y;exports.BUILD_IN_TAGS=be;exports.BUILT_IN_DIRECTIVES=$e;exports.BaseService=X;exports.CONTEXT_HOST=ie;exports.Context=Ve;exports.ContextMode=S;exports.DATA_TYPES=Ce;exports.HOMEPAGE_ROUTE_NAME=U;exports.HTML_TAGS=le;exports.JSCodeToString=_t;exports.LIFE_CYCLES_LIST=ct;exports.LocalService=ps;exports.MemoryService=st;exports.NodeEnv=Ze;exports.PAGE_ROUTE_NAME=x;exports.Provider=et;exports.REMOTE=lt;exports.StorageService=ls;exports.VTJ_RENDERER_VERSION=D;exports.adoptStylesToInline=ht;exports.adoptedStyleSheets=Q;exports.clearLoaderCache=It;exports.compileScopedCSS=Te;exports.convertCssRpx=Me;exports.createAccess=St;exports.createAdapter=yt;exports.createAssetScripts=pt;exports.createAssetsCss=ft;exports.createDataSources=We;exports.createLoader=V;exports.createMemoryService=us;exports.createMenus=q;exports.createMetaApi=Be;exports.createMock=Ge;exports.createProvider=rs;exports.createRenderer=z;exports.createSchemaApi=qe;exports.createSchemaApis=Je;exports.createServiceRequest=cs;exports.defaultLoader=Ye;exports.fillBasePath=N;exports.getMock=k;exports.getModifiers=ge;exports.getPlugin=me;exports.getRawComponent=Ae;exports.isArrowFunction=He;exports.isBuiltInTag=xe;exports.isCSSUrl=B;exports.isCallFunction=Ne;exports.isJSCode=Le;exports.isJSExpression=b;exports.isJSFunction=C;exports.isJSON=je;exports.isJSUrl=J;exports.isNativeTag=ke;exports.isVuePlugin=De;exports.loadCss=Oe;exports.loadCssUrl=pe;exports.loadEnhance=os;exports.loadScriptUrl=fe;exports.menusFilter=_e;exports.mockApi=ze;exports.mockApis=Ke;exports.mockCleanup=he;exports.nodeCache=O;exports.nodeRender=M;exports.parseDeps=Pe;exports.parseExpression=H;exports.parseFunction=R;exports.parseUrls=Ie;exports.providerKey=ve;exports.removeProdFlag=Re;exports.rpxToPx=Fe;exports.setupPageSetting=mt;exports.toString=ue;exports.useAccess=Ue;exports.useMask=Qt;exports.useProvider=ye;
|
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.28
|
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
12
12
|
*/
|
|
13
|
-
const
|
|
13
|
+
const H = "0.16.28";
|
|
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
|
+
], Os = [
|
|
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(","), Ms = [
|
|
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(""), Ts = {
|
|
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 xs(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 Ds(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 Hs(n) {
|
|
351
351
|
const e = n.adoptedStyleSheets || [];
|
|
352
352
|
let t = "";
|
|
353
353
|
if (e.forEach((s) => {
|
|
@@ -405,12 +405,18 @@ function N(n = window) {
|
|
|
405
405
|
if (t && window)
|
|
406
406
|
return window.Mock = t, t;
|
|
407
407
|
}
|
|
408
|
-
function
|
|
408
|
+
function ks(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) {
|
|
414
420
|
if (typeof window > "u") return;
|
|
415
421
|
const e = window[0] || window;
|
|
416
422
|
if (e.__simulator__)
|
|
@@ -432,7 +438,7 @@ ${o}
|
|
|
432
438
|
` : `with(${t ? "{}" : "$scope || {}"}) { ${o} }`;
|
|
433
439
|
return new Function("$scope", a)(e);
|
|
434
440
|
} catch (i) {
|
|
435
|
-
if (M.error("parseExpression.error", i, n, e?.__self ?? e),
|
|
441
|
+
if (M.error("parseExpression.error", i, n, e?.__self ?? e), At(i), s)
|
|
436
442
|
throw i;
|
|
437
443
|
}
|
|
438
444
|
}
|
|
@@ -453,13 +459,13 @@ function E(n) {
|
|
|
453
459
|
function $(n) {
|
|
454
460
|
return typeof n == "object" && n && n.type === "JSFunction";
|
|
455
461
|
}
|
|
456
|
-
function
|
|
462
|
+
function It(n) {
|
|
457
463
|
return E(n) || $(n);
|
|
458
464
|
}
|
|
459
|
-
function
|
|
460
|
-
return
|
|
465
|
+
function Ns(n) {
|
|
466
|
+
return It(n) ? n.value : JSON.stringify(n);
|
|
461
467
|
}
|
|
462
|
-
const
|
|
468
|
+
const Ft = {
|
|
463
469
|
session: !1,
|
|
464
470
|
authKey: "Authorization",
|
|
465
471
|
storageKey: "ACCESS_STORAGE",
|
|
@@ -472,7 +478,7 @@ const At = {
|
|
|
472
478
|
noPermissionMessage: "无权限访问该页面",
|
|
473
479
|
appName: "",
|
|
474
480
|
statusKey: "code"
|
|
475
|
-
},
|
|
481
|
+
}, He = Symbol("access");
|
|
476
482
|
class _e {
|
|
477
483
|
options;
|
|
478
484
|
data = null;
|
|
@@ -480,7 +486,7 @@ class _e {
|
|
|
480
486
|
interceptResponse = !0;
|
|
481
487
|
isTipShowing = !1;
|
|
482
488
|
constructor(e) {
|
|
483
|
-
this.options = Object.assign({},
|
|
489
|
+
this.options = Object.assign({}, Ft, e), this.loadData();
|
|
484
490
|
}
|
|
485
491
|
enableIntercept() {
|
|
486
492
|
this.interceptResponse = !0;
|
|
@@ -524,7 +530,7 @@ class _e {
|
|
|
524
530
|
return Se(e).some((i) => s[i] || s[t + "." + i]);
|
|
525
531
|
}
|
|
526
532
|
install(e) {
|
|
527
|
-
e.config.globalProperties.$access = this, e.provide(
|
|
533
|
+
e.config.globalProperties.$access = this, e.provide(He, this);
|
|
528
534
|
}
|
|
529
535
|
isAuthPath(e) {
|
|
530
536
|
const { auth: t, isAuth: s } = this.options;
|
|
@@ -575,7 +581,7 @@ class _e {
|
|
|
575
581
|
return e && t ? !!ne.get(t) : !!this.getToken();
|
|
576
582
|
}
|
|
577
583
|
hasRoutePermission(e) {
|
|
578
|
-
if (e.name ===
|
|
584
|
+
if (e.name === k) {
|
|
579
585
|
const t = e.params.id;
|
|
580
586
|
return t && this.can(t);
|
|
581
587
|
}
|
|
@@ -629,10 +635,10 @@ class _e {
|
|
|
629
635
|
);
|
|
630
636
|
}
|
|
631
637
|
}
|
|
632
|
-
function
|
|
633
|
-
return Ie(
|
|
638
|
+
function Ot() {
|
|
639
|
+
return Ie(He, null);
|
|
634
640
|
}
|
|
635
|
-
function
|
|
641
|
+
function Bs(n = {}) {
|
|
636
642
|
const {
|
|
637
643
|
notify: e,
|
|
638
644
|
loading: t,
|
|
@@ -673,10 +679,10 @@ function ks(n = {}) {
|
|
|
673
679
|
access: i ? new _e({ alert: a, ...i }) : void 0
|
|
674
680
|
};
|
|
675
681
|
}
|
|
676
|
-
function
|
|
682
|
+
function Ls(n = {}) {
|
|
677
683
|
return new _e(n);
|
|
678
684
|
}
|
|
679
|
-
function
|
|
685
|
+
function Mt(n, e) {
|
|
680
686
|
const { jsonp: t, request: s } = e;
|
|
681
687
|
if (n.method === "jsonp")
|
|
682
688
|
return (r = {}) => t(n.url, {
|
|
@@ -695,7 +701,7 @@ function Ft(n, e) {
|
|
|
695
701
|
return (o, a) => (delete i.data, s.send(et(i, a || {}, { data: o })));
|
|
696
702
|
}
|
|
697
703
|
}
|
|
698
|
-
function
|
|
704
|
+
function Tt(n, e) {
|
|
699
705
|
const { metaQuery: t } = e;
|
|
700
706
|
if (!t) return;
|
|
701
707
|
const { code: s, queryCode: r } = n;
|
|
@@ -707,21 +713,21 @@ function Ot(n, e) {
|
|
|
707
713
|
return t(s, r, i, o);
|
|
708
714
|
};
|
|
709
715
|
}
|
|
710
|
-
function
|
|
716
|
+
function xt(n = [], e = [], t) {
|
|
711
717
|
const s = {};
|
|
712
718
|
for (const r of n) {
|
|
713
|
-
const i =
|
|
719
|
+
const i = Mt(r, t);
|
|
714
720
|
s[r.id] = i, s[r.name] = i;
|
|
715
721
|
}
|
|
716
722
|
for (const r of e)
|
|
717
|
-
s[r.id] =
|
|
723
|
+
s[r.id] = Tt(r, t);
|
|
718
724
|
return s;
|
|
719
725
|
}
|
|
720
|
-
async function
|
|
726
|
+
async function Dt(n = [], e = window) {
|
|
721
727
|
const t = N(e);
|
|
722
|
-
t && (
|
|
728
|
+
t && (ke(e), n.forEach((s) => kt(t, s)));
|
|
723
729
|
}
|
|
724
|
-
function
|
|
730
|
+
function Ht(n, e = window) {
|
|
725
731
|
const t = $(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = N(e);
|
|
726
732
|
return async (...r) => {
|
|
727
733
|
let i = {};
|
|
@@ -734,7 +740,7 @@ function xt(n, e = window) {
|
|
|
734
740
|
return s?.mock(i);
|
|
735
741
|
};
|
|
736
742
|
}
|
|
737
|
-
function
|
|
743
|
+
function kt(n, e) {
|
|
738
744
|
if (!e.mock) return;
|
|
739
745
|
const { url: t, mockTemplate: s } = e;
|
|
740
746
|
if (t && s)
|
|
@@ -753,11 +759,11 @@ function Dt(n, e) {
|
|
|
753
759
|
console.warn("mockApi", r);
|
|
754
760
|
}
|
|
755
761
|
}
|
|
756
|
-
function
|
|
762
|
+
function ke(n = window) {
|
|
757
763
|
const e = N(n);
|
|
758
764
|
e && (e._mocked = {});
|
|
759
765
|
}
|
|
760
|
-
class
|
|
766
|
+
class Nt {
|
|
761
767
|
__id = null;
|
|
762
768
|
__mode;
|
|
763
769
|
__instance = null;
|
|
@@ -873,7 +879,7 @@ function fe(n) {
|
|
|
873
879
|
$components: s,
|
|
874
880
|
$libs: r,
|
|
875
881
|
$apis: i
|
|
876
|
-
}, c = new
|
|
882
|
+
}, c = new Nt({
|
|
877
883
|
mode: t,
|
|
878
884
|
dsl: a.value,
|
|
879
885
|
attrs: u
|
|
@@ -881,7 +887,7 @@ function fe(n) {
|
|
|
881
887
|
name: a.value.name,
|
|
882
888
|
__scopeId: a.value.id ? `data-v-${a.value.id}` : void 0,
|
|
883
889
|
props: {
|
|
884
|
-
...
|
|
890
|
+
...Lt(a.value.props ?? [], c)
|
|
885
891
|
},
|
|
886
892
|
async setup(f = {}) {
|
|
887
893
|
c.$props = f, c.props = f, a.value.id && ge(
|
|
@@ -889,11 +895,11 @@ function fe(n) {
|
|
|
889
895
|
a.value.id,
|
|
890
896
|
a.value.css || "",
|
|
891
897
|
!0
|
|
892
|
-
), c.state =
|
|
893
|
-
const p =
|
|
898
|
+
), c.state = qt(e, a.value.state ?? {}, c);
|
|
899
|
+
const p = Ut(e, a.value.computed ?? {}, c), d = Jt(a.value.methods ?? {}, c), m = Kt(e, a.value.inject, c);
|
|
894
900
|
for (const [v, w] of Object.entries(m || {}))
|
|
895
901
|
m[v] = e.inject(v, w);
|
|
896
|
-
const h =
|
|
902
|
+
const h = zt(
|
|
897
903
|
a.value.dataSources || {},
|
|
898
904
|
c
|
|
899
905
|
), g = {
|
|
@@ -902,7 +908,7 @@ function fe(n) {
|
|
|
902
908
|
...d,
|
|
903
909
|
...h
|
|
904
910
|
};
|
|
905
|
-
return c.setup(g, e),
|
|
911
|
+
return c.setup(g, e), Gt(e, a.value.watch ?? [], c), {
|
|
906
912
|
vtj: c,
|
|
907
913
|
state: c.state,
|
|
908
914
|
...f,
|
|
@@ -910,7 +916,7 @@ function fe(n) {
|
|
|
910
916
|
...d
|
|
911
917
|
};
|
|
912
918
|
},
|
|
913
|
-
emits:
|
|
919
|
+
emits: Bt(a.value.emits),
|
|
914
920
|
expose: ["vtj", ...a.value.expose || []],
|
|
915
921
|
render() {
|
|
916
922
|
if (!a.value.nodes) return null;
|
|
@@ -924,17 +930,17 @@ function fe(n) {
|
|
|
924
930
|
return e.createVNode("div", {}, p);
|
|
925
931
|
}
|
|
926
932
|
},
|
|
927
|
-
...
|
|
933
|
+
...Vt(a.value.lifeCycles ?? {}, c)
|
|
928
934
|
});
|
|
929
935
|
return {
|
|
930
936
|
renderer: e.markRaw(l),
|
|
931
937
|
context: c
|
|
932
938
|
};
|
|
933
939
|
}
|
|
934
|
-
function
|
|
940
|
+
function Bt(n = []) {
|
|
935
941
|
return n.map((e) => I(e) ? e : e.name);
|
|
936
942
|
}
|
|
937
|
-
function
|
|
943
|
+
function Lt(n = [], e) {
|
|
938
944
|
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => pt[i]) : void 0;
|
|
939
945
|
return n.map((s) => I(s) ? {
|
|
940
946
|
name: s
|
|
@@ -952,7 +958,7 @@ function Nt(n = [], e) {
|
|
|
952
958
|
{}
|
|
953
959
|
);
|
|
954
960
|
}
|
|
955
|
-
function
|
|
961
|
+
function qt(n, e, t) {
|
|
956
962
|
return n.reactive(
|
|
957
963
|
Object.keys(e || {}).reduce(
|
|
958
964
|
(s, r) => {
|
|
@@ -963,19 +969,19 @@ function Bt(n, e, t) {
|
|
|
963
969
|
)
|
|
964
970
|
);
|
|
965
971
|
}
|
|
966
|
-
function
|
|
972
|
+
function Ut(n, e, t) {
|
|
967
973
|
return Object.entries(e ?? {}).reduce(
|
|
968
974
|
(s, [r, i]) => (s[r] = n.computed(t.__parseFunction(i)), s),
|
|
969
975
|
{}
|
|
970
976
|
);
|
|
971
977
|
}
|
|
972
|
-
function
|
|
978
|
+
function Jt(n, e) {
|
|
973
979
|
return Object.entries(n ?? {}).reduce(
|
|
974
980
|
(t, [s, r]) => (t[s] = e.__parseFunction(r), t),
|
|
975
981
|
{}
|
|
976
982
|
);
|
|
977
983
|
}
|
|
978
|
-
function
|
|
984
|
+
function Kt(n, e = [], t) {
|
|
979
985
|
return e.reduce(
|
|
980
986
|
(s, r) => {
|
|
981
987
|
const { name: i, from: o } = r || {};
|
|
@@ -986,12 +992,12 @@ function Ut(n, e = [], t) {
|
|
|
986
992
|
{}
|
|
987
993
|
);
|
|
988
994
|
}
|
|
989
|
-
function
|
|
995
|
+
function zt(n, e) {
|
|
990
996
|
return Object.keys(n).reduce(
|
|
991
997
|
(t, s) => {
|
|
992
998
|
const r = n[s];
|
|
993
999
|
if (r.type === "mock")
|
|
994
|
-
t[s] =
|
|
1000
|
+
t[s] = Ht(r);
|
|
995
1001
|
else if (r.ref) {
|
|
996
1002
|
const i = e.$apis[r.ref], o = $(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
|
|
997
1003
|
t[s] = async (...a) => {
|
|
@@ -1004,7 +1010,7 @@ function Jt(n, e) {
|
|
|
1004
1010
|
{}
|
|
1005
1011
|
);
|
|
1006
1012
|
}
|
|
1007
|
-
function
|
|
1013
|
+
function Gt(n, e = [], t) {
|
|
1008
1014
|
e.forEach((s) => {
|
|
1009
1015
|
n.watch(
|
|
1010
1016
|
t.__parseExpression(s.source),
|
|
@@ -1016,7 +1022,7 @@ function Kt(n, e = [], t) {
|
|
|
1016
1022
|
);
|
|
1017
1023
|
});
|
|
1018
1024
|
}
|
|
1019
|
-
function
|
|
1025
|
+
function Vt(n, e) {
|
|
1020
1026
|
return Object.entries(n ?? {}).reduce(
|
|
1021
1027
|
(t, [s, r]) => {
|
|
1022
1028
|
const i = e.__parseFunction(r);
|
|
@@ -1027,7 +1033,7 @@ function zt(n, e) {
|
|
|
1027
1033
|
{}
|
|
1028
1034
|
);
|
|
1029
1035
|
}
|
|
1030
|
-
class
|
|
1036
|
+
class Wt {
|
|
1031
1037
|
__props = {};
|
|
1032
1038
|
__events = {};
|
|
1033
1039
|
__nodes = {};
|
|
@@ -1069,9 +1075,9 @@ class Gt {
|
|
|
1069
1075
|
this.__props = {}, this.__events = {}, this.__nodes = {};
|
|
1070
1076
|
}
|
|
1071
1077
|
}
|
|
1072
|
-
const x = new
|
|
1078
|
+
const x = new Wt(), Ne = new it();
|
|
1073
1079
|
let re = [], F = {}, D = {};
|
|
1074
|
-
const
|
|
1080
|
+
const Qt = (n, e) => e;
|
|
1075
1081
|
async function Be(n, e = window) {
|
|
1076
1082
|
const { urls: t = [], library: s } = n, r = t.filter((a) => X(a));
|
|
1077
1083
|
if (r.length === 0 || !s) return null;
|
|
@@ -1124,38 +1130,38 @@ function pe(n) {
|
|
|
1124
1130
|
return i;
|
|
1125
1131
|
};
|
|
1126
1132
|
}
|
|
1127
|
-
function
|
|
1133
|
+
function qs() {
|
|
1128
1134
|
F = {}, D = {}, Ne.clearAllCache(), x.clear();
|
|
1129
1135
|
}
|
|
1130
|
-
function T(n, e, t = W, s =
|
|
1136
|
+
function T(n, e, t = W, s = Qt, r = [], i = !1, o = 0) {
|
|
1131
1137
|
if (!n || !n.name || n.invisible) return null;
|
|
1132
1138
|
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
1139
|
if (!i && (f || p))
|
|
1134
1140
|
return null;
|
|
1135
|
-
if (l && !
|
|
1136
|
-
return
|
|
1141
|
+
if (l && !Yt(l, e))
|
|
1142
|
+
return rs(n, e, t, s, r);
|
|
1137
1143
|
const b = (_, C = 0) => {
|
|
1138
1144
|
const Y = _.$components, Z = (() => {
|
|
1139
1145
|
if (n.name === "component")
|
|
1140
|
-
return
|
|
1146
|
+
return Zt(_, n.props?.is);
|
|
1141
1147
|
if (n.name === "slot") return n.name;
|
|
1142
1148
|
const j = s(`${n.id}_${C}`, n.name, n.from, t);
|
|
1143
1149
|
return I(j) ? jt(j) || Rt(j) ? j : Y[j] ?? a?.app?.component(j) ?? j : j;
|
|
1144
|
-
})(), A =
|
|
1150
|
+
})(), A = es(u, n.props ?? {}, _), Ge = ns(
|
|
1145
1151
|
t,
|
|
1146
1152
|
n.id,
|
|
1147
1153
|
n.events ?? {},
|
|
1148
1154
|
_
|
|
1149
1155
|
);
|
|
1150
1156
|
if (n.name === "slot")
|
|
1151
|
-
return
|
|
1157
|
+
return is(t, n, A, _, s);
|
|
1152
1158
|
g && Object.assign(A, _.__parseExpression(g.value)), m && (A.style = Object.assign(
|
|
1153
1159
|
A.style ?? {},
|
|
1154
|
-
|
|
1155
|
-
)), v && Object.assign(A,
|
|
1156
|
-
Me.includes(n.name) ? Object.assign(A,
|
|
1160
|
+
as(m, _)
|
|
1161
|
+
)), v && Object.assign(A, cs(v, _)), h.forEach((j) => {
|
|
1162
|
+
Me.includes(n.name) ? Object.assign(A, ls(j, _)) : Object.assign(A, us(t, j, _));
|
|
1157
1163
|
});
|
|
1158
|
-
const Ve =
|
|
1164
|
+
const Ve = fs(
|
|
1159
1165
|
t,
|
|
1160
1166
|
n.children ?? [],
|
|
1161
1167
|
_,
|
|
@@ -1174,12 +1180,12 @@ function T(n, e, t = W, s = Vt, r = [], i = !1, o = 0) {
|
|
|
1174
1180
|
x.getNode(L) || ee || {},
|
|
1175
1181
|
Ve
|
|
1176
1182
|
);
|
|
1177
|
-
const we = a ?
|
|
1183
|
+
const we = a ? Xt(a, w, _) : [];
|
|
1178
1184
|
return we.length && (te = t.withDirectives(te, we)), te;
|
|
1179
1185
|
};
|
|
1180
|
-
return d ?
|
|
1186
|
+
return d ? hs(d, b, e) : b(e, o);
|
|
1181
1187
|
}
|
|
1182
|
-
function
|
|
1188
|
+
function Xt(n, e, t) {
|
|
1183
1189
|
const s = n.app;
|
|
1184
1190
|
return e.map((r) => {
|
|
1185
1191
|
const i = typeof r.name == "string" ? s.directive(r.name) : t.__parseExpression(r.name);
|
|
@@ -1208,13 +1214,13 @@ function Le(n = []) {
|
|
|
1208
1214
|
vHtml: a
|
|
1209
1215
|
};
|
|
1210
1216
|
}
|
|
1211
|
-
function
|
|
1217
|
+
function Yt(n, e) {
|
|
1212
1218
|
return !!e.__parseExpression(n.value);
|
|
1213
1219
|
}
|
|
1214
|
-
function
|
|
1220
|
+
function Zt(n, e) {
|
|
1215
1221
|
return e ? E(e) ? n.__parseExpression(e) : e : "div";
|
|
1216
1222
|
}
|
|
1217
|
-
function
|
|
1223
|
+
function es(n, e, t) {
|
|
1218
1224
|
const s = de(e, t);
|
|
1219
1225
|
return s.ref = t.__ref(n, s.ref), s;
|
|
1220
1226
|
}
|
|
@@ -1227,12 +1233,22 @@ function de(n, e) {
|
|
|
1227
1233
|
{}
|
|
1228
1234
|
) : n;
|
|
1229
1235
|
}
|
|
1230
|
-
function
|
|
1236
|
+
function ts(n, e) {
|
|
1231
1237
|
return (t) => {
|
|
1232
1238
|
t?.key?.toLowerCase() === e.toLowerCase() && n(t);
|
|
1233
1239
|
};
|
|
1234
1240
|
}
|
|
1235
|
-
function
|
|
1241
|
+
function ss(n) {
|
|
1242
|
+
return Ct(n.value) ? n : Pt(n.value) ? {
|
|
1243
|
+
type: "JSFunction",
|
|
1244
|
+
value: `(...args) => (() => {
|
|
1245
|
+
return (($event) => {
|
|
1246
|
+
${n.value}
|
|
1247
|
+
}).apply(this, args);
|
|
1248
|
+
})()`
|
|
1249
|
+
} : n;
|
|
1250
|
+
}
|
|
1251
|
+
function ns(n, e, t, s) {
|
|
1236
1252
|
const r = ["passive", "capture", "once"], i = {
|
|
1237
1253
|
capture: "Capture",
|
|
1238
1254
|
once: "Once",
|
|
@@ -1240,16 +1256,16 @@ function es(n, e, t, s) {
|
|
|
1240
1256
|
};
|
|
1241
1257
|
return Object.keys(t || {}).reduce(
|
|
1242
1258
|
(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);
|
|
1259
|
+
const c = t[u], l = qe(c.modifiers), f = l.find((m) => r.includes(m)), p = "on" + ot(u) + (f && i[f] || ""), d = c.handler ? s.__parseFunction(ss(c.handler)) : null;
|
|
1244
1260
|
return d && (a[p] = n.withModifiers(
|
|
1245
|
-
l.includes("enter") ?
|
|
1261
|
+
l.includes("enter") ? ts(d, "enter") : d,
|
|
1246
1262
|
l
|
|
1247
1263
|
)), a;
|
|
1248
1264
|
},
|
|
1249
1265
|
{}
|
|
1250
1266
|
);
|
|
1251
1267
|
}
|
|
1252
|
-
function
|
|
1268
|
+
function rs(n, e, t, s, r = []) {
|
|
1253
1269
|
let i = r.findIndex((o) => o.id === n.id);
|
|
1254
1270
|
for (let o = ++i; o < r.length; o++) {
|
|
1255
1271
|
const { directives: a = [] } = r[o], { vElseIf: u, vElse: c } = Le(a);
|
|
@@ -1267,32 +1283,32 @@ function qe(n = {}, e = !1) {
|
|
|
1267
1283
|
const t = Object.keys(n);
|
|
1268
1284
|
return e ? t.map((s) => "." + s) : t;
|
|
1269
1285
|
}
|
|
1270
|
-
function
|
|
1271
|
-
const { children: i } = e, o =
|
|
1286
|
+
function is(n, e, t, s, r) {
|
|
1287
|
+
const { children: i } = e, o = os(e, s), a = s.$slots?.[o.name];
|
|
1272
1288
|
return a ? a(t) : i ? I(i) ? n.createTextVNode(i) : E(i) ? n.createTextVNode(
|
|
1273
1289
|
Te(s.__parseExpression(i))
|
|
1274
1290
|
) : Array.isArray(i) ? i.map(
|
|
1275
1291
|
(u, c) => T(u, s, n, r, i, !1, c)
|
|
1276
1292
|
) : null : null;
|
|
1277
1293
|
}
|
|
1278
|
-
function
|
|
1294
|
+
function os(n, e) {
|
|
1279
1295
|
const { props: t } = n, s = t?.name || "default";
|
|
1280
1296
|
return {
|
|
1281
1297
|
name: E(s) ? e.__parseExpression(s) : s,
|
|
1282
1298
|
params: []
|
|
1283
1299
|
};
|
|
1284
1300
|
}
|
|
1285
|
-
function
|
|
1301
|
+
function as(n, e) {
|
|
1286
1302
|
return e.__parseExpression(n.value) ? {} : {
|
|
1287
1303
|
display: "none"
|
|
1288
1304
|
};
|
|
1289
1305
|
}
|
|
1290
|
-
function
|
|
1306
|
+
function cs(n, e) {
|
|
1291
1307
|
return {
|
|
1292
1308
|
innerHTML: e.__parseExpression(n.value) || ""
|
|
1293
1309
|
};
|
|
1294
1310
|
}
|
|
1295
|
-
function
|
|
1311
|
+
function ls(n, e) {
|
|
1296
1312
|
const t = {
|
|
1297
1313
|
type: "JSFunction",
|
|
1298
1314
|
value: n.value?.value ? `(v) => {
|
|
@@ -1304,7 +1320,7 @@ function os(n, e) {
|
|
|
1304
1320
|
onInput: e.__parseFunction(t)
|
|
1305
1321
|
};
|
|
1306
1322
|
}
|
|
1307
|
-
function
|
|
1323
|
+
function us(n, e, t) {
|
|
1308
1324
|
const s = {
|
|
1309
1325
|
type: "JSFunction",
|
|
1310
1326
|
value: e.value?.value ? `(v) => {
|
|
@@ -1318,7 +1334,7 @@ function as(n, e, t) {
|
|
|
1318
1334
|
[`onUpdate:${o}`]: i.length && r ? n.withModifiers(r, i) : r
|
|
1319
1335
|
};
|
|
1320
1336
|
}
|
|
1321
|
-
function
|
|
1337
|
+
function fs(n, e, t, s, r) {
|
|
1322
1338
|
if (!e) return null;
|
|
1323
1339
|
if (I(e))
|
|
1324
1340
|
return { default: () => e };
|
|
@@ -1327,7 +1343,7 @@ function cs(n, e, t, s, r) {
|
|
|
1327
1343
|
default: () => Te(t.__parseExpression(e))
|
|
1328
1344
|
};
|
|
1329
1345
|
if (Array.isArray(e) && e.length > 0) {
|
|
1330
|
-
const i =
|
|
1346
|
+
const i = ps(e), o = (a, u) => !a || !r ? {} : r?.id && Object.keys(a).length ? u ? {
|
|
1331
1347
|
[u]: a
|
|
1332
1348
|
} : {
|
|
1333
1349
|
[`scope_${r.id}`]: a
|
|
@@ -1352,10 +1368,10 @@ function cs(n, e, t, s, r) {
|
|
|
1352
1368
|
}
|
|
1353
1369
|
return null;
|
|
1354
1370
|
}
|
|
1355
|
-
function
|
|
1371
|
+
function ps(n) {
|
|
1356
1372
|
const e = {};
|
|
1357
1373
|
for (const t of n) {
|
|
1358
|
-
const s =
|
|
1374
|
+
const s = ds(t.slot), r = s.name;
|
|
1359
1375
|
e[r] ? (e[r].nodes.push(t), e[r].params = e[r].params.concat(s.params), e[r].scope = s.scope || "") : e[r] = {
|
|
1360
1376
|
nodes: [t],
|
|
1361
1377
|
params: s.params,
|
|
@@ -1364,10 +1380,10 @@ function ls(n) {
|
|
|
1364
1380
|
}
|
|
1365
1381
|
return e;
|
|
1366
1382
|
}
|
|
1367
|
-
function
|
|
1383
|
+
function ds(n = "default") {
|
|
1368
1384
|
return I(n) ? { name: n, params: [], scope: "" } : { params: [], scope: "", ...n };
|
|
1369
1385
|
}
|
|
1370
|
-
function
|
|
1386
|
+
function hs(n, e, t) {
|
|
1371
1387
|
const { value: s, iterator: r } = n, { item: i = "item", index: o = "index" } = r || {};
|
|
1372
1388
|
let a = t.__parseExpression(s) || [];
|
|
1373
1389
|
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 +1421,7 @@ const ie = Fe({
|
|
|
1405
1421
|
activated() {
|
|
1406
1422
|
this.meta.cache === !1 && (this.sid = Symbol());
|
|
1407
1423
|
}
|
|
1408
|
-
}),
|
|
1424
|
+
}), ms = Fe({
|
|
1409
1425
|
name: "VtjStartupContainer",
|
|
1410
1426
|
render() {
|
|
1411
1427
|
return le("div", "page not found!");
|
|
@@ -1443,17 +1459,17 @@ function Ue(n, e) {
|
|
|
1443
1459
|
e.can(s.id.toString()) && t.push(s);
|
|
1444
1460
|
return t;
|
|
1445
1461
|
}
|
|
1446
|
-
function
|
|
1462
|
+
function Us(n) {
|
|
1447
1463
|
const {
|
|
1448
1464
|
menuPathPrefix: e = "",
|
|
1449
1465
|
pageRouteName: t = "page",
|
|
1450
1466
|
disableMenusFilter: s = !1
|
|
1451
|
-
} = n || {}, r = Ke(), i = Oe(), o =
|
|
1467
|
+
} = n || {}, r = Ke(), i = Oe(), o = Ot(), a = ue(!1), u = ue(!1), c = r.project, l = (d, m) => {
|
|
1452
1468
|
a.value = !d?.mask, u.value = m?.pure ?? !!d?.pure;
|
|
1453
1469
|
};
|
|
1454
1470
|
ut(() => {
|
|
1455
1471
|
const { name: d, params: m, meta: h } = i;
|
|
1456
|
-
if (d ===
|
|
1472
|
+
if (d === k) {
|
|
1457
1473
|
const g = r.getPage(m.id);
|
|
1458
1474
|
l(g, h);
|
|
1459
1475
|
} else if (d === J) {
|
|
@@ -1548,18 +1564,18 @@ function he(n) {
|
|
|
1548
1564
|
}
|
|
1549
1565
|
return u;
|
|
1550
1566
|
}
|
|
1551
|
-
function
|
|
1567
|
+
function gs(n = {}, e) {
|
|
1552
1568
|
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 &&
|
|
1569
|
+
o.config.globalProperties.$libs = a, ge(i, "global-css", t || ""), l && s && _s(s, o, l), ys(o, u, n), !u.access && n.access && vs(n.access, o, c, u), ws(o, n), r && Ss(r, o, a);
|
|
1554
1570
|
}
|
|
1555
|
-
function
|
|
1571
|
+
function _s(n, e, t) {
|
|
1556
1572
|
const s = t.createPinia();
|
|
1557
1573
|
if (e.use(s), $(n) && n.value) {
|
|
1558
1574
|
const r = R(n, {}, !1, !1, !0), i = t.defineStore("$store", r(e) || {});
|
|
1559
1575
|
e.config.globalProperties.$store = i();
|
|
1560
1576
|
}
|
|
1561
1577
|
}
|
|
1562
|
-
function
|
|
1578
|
+
function vs(n, e, t, s) {
|
|
1563
1579
|
if ($(n) && n.value) {
|
|
1564
1580
|
const r = R(n, {}, !1, !1, !0), { alert: i, request: o } = s, a = new _e({
|
|
1565
1581
|
alert: i,
|
|
@@ -1569,7 +1585,7 @@ function ms(n, e, t, s) {
|
|
|
1569
1585
|
a.connect({ mode: t, router: u, request: o }), e.use(a);
|
|
1570
1586
|
}
|
|
1571
1587
|
}
|
|
1572
|
-
function
|
|
1588
|
+
function ys(n, e, t) {
|
|
1573
1589
|
if (!e.request) return;
|
|
1574
1590
|
const { axios: s, request: r, response: i } = t;
|
|
1575
1591
|
if (s && $(s) && s.value) {
|
|
@@ -1585,7 +1601,7 @@ function gs(n, e, t) {
|
|
|
1585
1601
|
a.__unRes && a.__unRes(), a.__unRes = e.request.useResponse((u) => o(u, n));
|
|
1586
1602
|
}
|
|
1587
1603
|
}
|
|
1588
|
-
function
|
|
1604
|
+
function ws(n, e) {
|
|
1589
1605
|
const { beforeEach: t, afterEach: s } = e, r = n.config.globalProperties.$router;
|
|
1590
1606
|
if (t && $(t) && t.value) {
|
|
1591
1607
|
const i = R(t, {}, !1, !1, !0);
|
|
@@ -1596,10 +1612,10 @@ function _s(n, e) {
|
|
|
1596
1612
|
r && r.afterEach((o, a, u) => i(o, a, u, n));
|
|
1597
1613
|
}
|
|
1598
1614
|
}
|
|
1599
|
-
function
|
|
1615
|
+
function Ss(n, e, t = {}) {
|
|
1600
1616
|
$(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
|
|
1601
1617
|
}
|
|
1602
|
-
function
|
|
1618
|
+
function $s(n, e, t) {
|
|
1603
1619
|
if (!n || !e || !t) return;
|
|
1604
1620
|
const { VueI18n: s } = e;
|
|
1605
1621
|
if (s) {
|
|
@@ -1619,8 +1635,8 @@ function ys(n, e, t) {
|
|
|
1619
1635
|
}
|
|
1620
1636
|
}
|
|
1621
1637
|
const Je = Symbol("Provider");
|
|
1622
|
-
var
|
|
1623
|
-
class
|
|
1638
|
+
var Es = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(Es || {});
|
|
1639
|
+
class bs extends Xe {
|
|
1624
1640
|
/**
|
|
1625
1641
|
* 创建Provider实例
|
|
1626
1642
|
* @param options 配置选项
|
|
@@ -1708,7 +1724,7 @@ class Ss extends Xe {
|
|
|
1708
1724
|
if (this.project = s ? await s() : await this.service.init(e), !this.project)
|
|
1709
1725
|
throw new Error("project is null");
|
|
1710
1726
|
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 =
|
|
1727
|
+
a && (a.CKEDITOR_VERSION = void 0), this.initEnv(o), this.mode === y.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis = xt(r, i, this.adapter), ke(a), Dt(r, a), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
|
|
1712
1728
|
}
|
|
1713
1729
|
initMock(e) {
|
|
1714
1730
|
const t = N(e);
|
|
@@ -1752,7 +1768,7 @@ class Ss extends Xe {
|
|
|
1752
1768
|
else {
|
|
1753
1769
|
const b = l[h] || [];
|
|
1754
1770
|
for (const _ of b)
|
|
1755
|
-
Q(_) && await Et(_, O.append(_, { v:
|
|
1771
|
+
Q(_) && await Et(_, O.append(_, { v: H })), X(_) && await be(O.append(_, { v: H }));
|
|
1756
1772
|
r[h] = e[h];
|
|
1757
1773
|
}
|
|
1758
1774
|
const w = m[h];
|
|
@@ -1763,7 +1779,7 @@ class Ss extends Xe {
|
|
|
1763
1779
|
}
|
|
1764
1780
|
if (a === "development") {
|
|
1765
1781
|
for (const g of f)
|
|
1766
|
-
await be(O.append(g, { v:
|
|
1782
|
+
await be(O.append(g, { v: H }));
|
|
1767
1783
|
const h = this.materials || {};
|
|
1768
1784
|
for (const g of p) {
|
|
1769
1785
|
const v = e[d[g]], w = v?.default || v, b = Ye[g];
|
|
@@ -1789,15 +1805,15 @@ class Ss extends Xe {
|
|
|
1789
1805
|
routeMeta: u
|
|
1790
1806
|
} = s, c = o ? "" : "/", l = {
|
|
1791
1807
|
path: `${c}${a}/:id`,
|
|
1792
|
-
name:
|
|
1808
|
+
name: k,
|
|
1793
1809
|
component: ie
|
|
1794
1810
|
}, f = this.getHomepage(), p = {
|
|
1795
1811
|
path: c,
|
|
1796
1812
|
name: J,
|
|
1797
|
-
component: f ? ie : r.startupComponent ||
|
|
1813
|
+
component: f ? ie : r.startupComponent || ms,
|
|
1798
1814
|
meta: u
|
|
1799
1815
|
};
|
|
1800
|
-
if (e.hasRoute(
|
|
1816
|
+
if (e.hasRoute(k) && e.removeRoute(k), e.hasRoute(J) && e.removeRoute(J), s.enableStaticRoute) {
|
|
1801
1817
|
const d = t?.pages || [];
|
|
1802
1818
|
he({
|
|
1803
1819
|
name: a,
|
|
@@ -1995,10 +2011,10 @@ class Ss extends Xe {
|
|
|
1995
2011
|
},
|
|
1996
2012
|
t
|
|
1997
2013
|
);
|
|
1998
|
-
|
|
2014
|
+
gs(e, s);
|
|
1999
2015
|
}
|
|
2000
2016
|
initI18n(e, t, s) {
|
|
2001
|
-
|
|
2017
|
+
$s(e, t, s);
|
|
2002
2018
|
}
|
|
2003
2019
|
initEnv(e = []) {
|
|
2004
2020
|
this.env = e.reduce(
|
|
@@ -2007,8 +2023,8 @@ class Ss extends Xe {
|
|
|
2007
2023
|
);
|
|
2008
2024
|
}
|
|
2009
2025
|
}
|
|
2010
|
-
function
|
|
2011
|
-
const e = new
|
|
2026
|
+
function Js(n) {
|
|
2027
|
+
const e = new bs(n);
|
|
2012
2028
|
return {
|
|
2013
2029
|
provider: e,
|
|
2014
2030
|
onReady: (s) => e.ready(s)
|
|
@@ -2031,7 +2047,7 @@ function Ke(n = {}) {
|
|
|
2031
2047
|
}
|
|
2032
2048
|
return e;
|
|
2033
2049
|
}
|
|
2034
|
-
async function
|
|
2050
|
+
async function Ks(n, e = "") {
|
|
2035
2051
|
const { name: t, urls: s = [] } = n || {}, r = s.map((a) => e + a), { css: i, js: o } = vt(r);
|
|
2036
2052
|
if (i.length && xe(i), o.length)
|
|
2037
2053
|
return await De(o, t).catch(
|
|
@@ -2045,7 +2061,7 @@ const ze = {
|
|
|
2045
2061
|
originResponse: !1,
|
|
2046
2062
|
failMessage: !0,
|
|
2047
2063
|
validate: (n) => n.data?.code === 0
|
|
2048
|
-
},
|
|
2064
|
+
}, js = (n, e = "/__vtj__/api/:type.json") => (t, s, r) => n.send({
|
|
2049
2065
|
url: e,
|
|
2050
2066
|
method: "post",
|
|
2051
2067
|
params: { type: t },
|
|
@@ -2055,7 +2071,7 @@ const ze = {
|
|
|
2055
2071
|
data: s
|
|
2056
2072
|
},
|
|
2057
2073
|
settings: ze
|
|
2058
|
-
}),
|
|
2074
|
+
}), Rs = (n, e = "/__vtj__/api/uploader.json") => async (t, s) => await n.send({
|
|
2059
2075
|
url: e,
|
|
2060
2076
|
method: "post",
|
|
2061
2077
|
data: {
|
|
@@ -2067,7 +2083,7 @@ const ze = {
|
|
|
2067
2083
|
type: "data"
|
|
2068
2084
|
}
|
|
2069
2085
|
}).then((r) => r && r[0] ? r[0] : null).catch(() => null);
|
|
2070
|
-
function
|
|
2086
|
+
function zs(n) {
|
|
2071
2087
|
return Pe({
|
|
2072
2088
|
settings: {
|
|
2073
2089
|
type: "json",
|
|
@@ -2083,7 +2099,7 @@ function Us(n) {
|
|
|
2083
2099
|
}
|
|
2084
2100
|
class ve {
|
|
2085
2101
|
constructor(e = ce) {
|
|
2086
|
-
this.req = e, this.api =
|
|
2102
|
+
this.req = e, this.api = js(e), this.uploader = Rs(e);
|
|
2087
2103
|
}
|
|
2088
2104
|
api;
|
|
2089
2105
|
pluginCaches = {};
|
|
@@ -2188,7 +2204,7 @@ const S = new lt({
|
|
|
2188
2204
|
expired: 0,
|
|
2189
2205
|
prefix: "__VTJ_"
|
|
2190
2206
|
});
|
|
2191
|
-
class
|
|
2207
|
+
class Gs extends ve {
|
|
2192
2208
|
init(e) {
|
|
2193
2209
|
const t = new K(e), s = S.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
|
|
2194
2210
|
return S.save(`project_${t.id}`, r), Promise.resolve(r);
|
|
@@ -2238,7 +2254,7 @@ class Js extends ve {
|
|
|
2238
2254
|
}), Promise.resolve(!0);
|
|
2239
2255
|
}
|
|
2240
2256
|
}
|
|
2241
|
-
class
|
|
2257
|
+
class Cs extends ve {
|
|
2242
2258
|
projects = {};
|
|
2243
2259
|
materials = {};
|
|
2244
2260
|
files = {};
|
|
@@ -2296,10 +2312,10 @@ class bs extends ve {
|
|
|
2296
2312
|
}
|
|
2297
2313
|
}
|
|
2298
2314
|
let U = null;
|
|
2299
|
-
function
|
|
2300
|
-
return U || (U = new
|
|
2315
|
+
function Vs() {
|
|
2316
|
+
return U || (U = new Cs(), U);
|
|
2301
2317
|
}
|
|
2302
|
-
class
|
|
2318
|
+
class Ws extends ve {
|
|
2303
2319
|
getFileCaches = {};
|
|
2304
2320
|
async getExtension() {
|
|
2305
2321
|
return await this.api("getExtension", {}).catch(() => {
|
|
@@ -2357,57 +2373,59 @@ class zs extends ve {
|
|
|
2357
2373
|
}
|
|
2358
2374
|
}
|
|
2359
2375
|
export {
|
|
2360
|
-
|
|
2361
|
-
|
|
2376
|
+
Ts as ACCESS,
|
|
2377
|
+
He as ACCESS_KEY,
|
|
2362
2378
|
_e as Access,
|
|
2363
2379
|
dt as BUILD_IN_TAGS,
|
|
2364
2380
|
ft as BUILT_IN_DIRECTIVES,
|
|
2365
2381
|
ve as BaseService,
|
|
2366
2382
|
Re as CONTEXT_HOST,
|
|
2367
|
-
|
|
2383
|
+
Nt as Context,
|
|
2368
2384
|
y as ContextMode,
|
|
2369
2385
|
pt as DATA_TYPES,
|
|
2370
2386
|
J as HOMEPAGE_ROUTE_NAME,
|
|
2371
2387
|
Me as HTML_TAGS,
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2388
|
+
Ns as JSCodeToString,
|
|
2389
|
+
Os as LIFE_CYCLES_LIST,
|
|
2390
|
+
Ws as LocalService,
|
|
2391
|
+
Cs as MemoryService,
|
|
2392
|
+
Es as NodeEnv,
|
|
2393
|
+
k as PAGE_ROUTE_NAME,
|
|
2394
|
+
bs as Provider,
|
|
2395
|
+
Ms as REMOTE,
|
|
2396
|
+
Gs as StorageService,
|
|
2397
|
+
H as VTJ_RENDERER_VERSION,
|
|
2398
|
+
Hs as adoptStylesToInline,
|
|
2383
2399
|
ge as adoptedStyleSheets,
|
|
2384
|
-
|
|
2400
|
+
qs as clearLoaderCache,
|
|
2385
2401
|
yt as compileScopedCSS,
|
|
2386
2402
|
$t as convertCssRpx,
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2403
|
+
Ls as createAccess,
|
|
2404
|
+
Bs as createAdapter,
|
|
2405
|
+
xs as createAssetScripts,
|
|
2406
|
+
Ds as createAssetsCss,
|
|
2407
|
+
zt as createDataSources,
|
|
2392
2408
|
pe as createLoader,
|
|
2393
|
-
|
|
2409
|
+
Vs as createMemoryService,
|
|
2394
2410
|
V as createMenus,
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2411
|
+
Tt as createMetaApi,
|
|
2412
|
+
Ht as createMock,
|
|
2413
|
+
Js as createProvider,
|
|
2398
2414
|
fe as createRenderer,
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2415
|
+
Mt as createSchemaApi,
|
|
2416
|
+
xt as createSchemaApis,
|
|
2417
|
+
zs as createServiceRequest,
|
|
2418
|
+
Qt as defaultLoader,
|
|
2403
2419
|
q as fillBasePath,
|
|
2404
2420
|
N as getMock,
|
|
2405
2421
|
qe as getModifiers,
|
|
2406
2422
|
Be as getPlugin,
|
|
2407
2423
|
_t as getRawComponent,
|
|
2424
|
+
Ct as isArrowFunction,
|
|
2408
2425
|
jt as isBuiltInTag,
|
|
2409
2426
|
Q as isCSSUrl,
|
|
2410
|
-
Pt as
|
|
2427
|
+
Pt as isCallFunction,
|
|
2428
|
+
It as isJSCode,
|
|
2411
2429
|
E as isJSExpression,
|
|
2412
2430
|
$ as isJSFunction,
|
|
2413
2431
|
ht as isJSON,
|
|
@@ -2416,12 +2434,12 @@ export {
|
|
|
2416
2434
|
bt as isVuePlugin,
|
|
2417
2435
|
Et as loadCss,
|
|
2418
2436
|
xe as loadCssUrl,
|
|
2419
|
-
|
|
2437
|
+
Ks as loadEnhance,
|
|
2420
2438
|
De as loadScriptUrl,
|
|
2421
2439
|
Ue as menusFilter,
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2440
|
+
kt as mockApi,
|
|
2441
|
+
Dt as mockApis,
|
|
2442
|
+
ke as mockCleanup,
|
|
2425
2443
|
x as nodeCache,
|
|
2426
2444
|
T as nodeRender,
|
|
2427
2445
|
gt as parseDeps,
|
|
@@ -2431,9 +2449,9 @@ export {
|
|
|
2431
2449
|
Je as providerKey,
|
|
2432
2450
|
mt as removeProdFlag,
|
|
2433
2451
|
St as rpxToPx,
|
|
2434
|
-
|
|
2452
|
+
ks as setupPageSetting,
|
|
2435
2453
|
Te as toString,
|
|
2436
|
-
|
|
2437
|
-
|
|
2454
|
+
Ot as useAccess,
|
|
2455
|
+
Us as useMask,
|
|
2438
2456
|
Ke as useProvider
|
|
2439
2457
|
};
|
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.28",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"低代码引擎",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
"author": "chenhuachun",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@vtj/core": "~0.16.
|
|
25
|
-
"@vtj/utils": "~0.16.
|
|
24
|
+
"@vtj/core": "~0.16.28",
|
|
25
|
+
"@vtj/utils": "~0.16.28"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"vue": "~3.5.5",
|
|
29
29
|
"vue-router": "~4.6.0",
|
|
30
|
+
"@vtj/ui": "~0.16.28",
|
|
30
31
|
"@vtj/cli": "~0.12.19",
|
|
31
|
-
"@vtj/icons": "~0.16.
|
|
32
|
-
"@vtj/ui": "~0.16.27"
|
|
32
|
+
"@vtj/icons": "~0.16.28"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
35
|
".": {
|
package/types/utils/util.d.ts
CHANGED
|
@@ -12,3 +12,5 @@ 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;
|
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.27
|
|
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.27";
|