@vtj/renderer 0.16.26 → 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 +190 -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),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 ht(n){return He(n)?n.value:JSON.stringify(n)}const mt={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({},mt,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 gt(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 _t(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:{...yt(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=St(e,a.value.state??{},c);const d=wt(e,a.value.computed??{},c),h=Et(a.value.methods??{},c),g=$t(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),bt(e,a.value.watch??[],c),{vtj:c,state:c.state,...p,...d,...h}},emits:vt(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)}},...jt(a.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function vt(n=[]){return n.map(e=>f.isString(e)?e:e.name)}function yt(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 St(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 wt(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function Et(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function $t(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 bt(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function jt(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 Ct{__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 Ct,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 Rt(){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&&!At(l,e))return Ft(n,e,t,s,r);const C=(v,A=0)=>{const Z=v.$components,ee=(()=>{if(n.name==="component")return It(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=Tt(u,n.props??{},v),tt=Ot(t,n.id,n.events??{},v);if(n.name==="slot")return Dt(t,n,I,v,s);_&&Object.assign(I,v.__parseExpression(_.value)),g&&(I.style=Object.assign(I.style??{},kt(g,v))),y&&Object.assign(I,Ht(y,v)),m.forEach(P=>{le.includes(n.name)?Object.assign(I,Nt(P,v)):Object.assign(I,Lt(t,P,v))});const st=Ut(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?Pt(a,w,v):[];return we.length&&(se=t.withDirectives(se,we)),se};return h?Jt(h,C,e):C(e,i)}function Pt(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 At(n,e){return!!e.__parseExpression(n.value)}function It(n,e){return e?j(e)?n.__parseExpression(e):e:"div"}function Tt(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 Mt(n,e){return t=>{t?.key?.toLowerCase()===e.toLowerCase()&&n(t)}}function Ot(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")?Mt(h,"enter"):h,l)),a},{})}function Ft(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 Dt(n,e,t,s,r){const{children:o}=e,i=xt(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 xt(n,e){const{props:t}=n,s=t?.name||"default";return{name:j(s)?e.__parseExpression(s):s,params:[]}}function kt(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function Ht(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function Nt(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 Ut(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=qt(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 qt(n){const e={};for(const t of n){const s=Bt(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params),e[r].scope=s.scope||""):e[r]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function Bt(n="default"){return f.isString(n)?{name:n,params:[],scope:""}:{params:[],scope:"",...n}}function Jt(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())}}),Kt=$.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 Gt(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 zt(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&&Vt(s,i,l),Qt(i,u,n),!u.access&&n.access&&Wt(n.access,i,c,u),Yt(i,n),r&&Xt(r,i,a)}function Vt(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 Wt(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 Qt(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 Yt(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 Xt(n,e,t={}){b(n)&&n.value&&R(n,{},!1,!1,!0)(e,t)}function Zt(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||Kt,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);zt(e,s)}initI18n(e,t,s){Zt(e,t,s)}initEnv(e=[]){this.env=e.reduce((t,s)=>(t[s.name]=s[this.nodeEnv],t),{})}}function es(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 ts(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},ss=(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}),ns=(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 rs(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=ss(e),this.uploader=ns(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 os 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 is(){return G||(G=new et,G)}class as 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=ht;exports.LIFE_CYCLES_LIST=it;exports.LocalService=as;exports.MemoryService=et;exports.NodeEnv=Ye;exports.PAGE_ROUTE_NAME=x;exports.Provider=Xe;exports.REMOTE=at;exports.StorageService=os;exports.VTJ_RENDERER_VERSION=D;exports.adoptStylesToInline=ft;exports.adoptedStyleSheets=Q;exports.clearLoaderCache=Rt;exports.compileScopedCSS=Te;exports.convertCssRpx=Oe;exports.createAccess=_t;exports.createAdapter=gt;exports.createAssetScripts=lt;exports.createAssetsCss=ut;exports.createDataSources=ze;exports.createLoader=V;exports.createMemoryService=is;exports.createMenus=q;exports.createMetaApi=Ue;exports.createMock=Je;exports.createProvider=es;exports.createRenderer=z;exports.createSchemaApi=Le;exports.createSchemaApis=qe;exports.createServiceRequest=rs;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=ts;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=Gt;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,11 +405,27 @@ 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
|
+
function Ct(n) {
|
|
414
|
+
return /^\([\s\S]*\)/.test(n.trim());
|
|
415
|
+
}
|
|
416
|
+
function Pt(n) {
|
|
417
|
+
return /\w+\([\s\S]*\)$/.test(n.trim());
|
|
418
|
+
}
|
|
419
|
+
function At(n) {
|
|
420
|
+
if (typeof window > "u") return;
|
|
421
|
+
const e = window[0] || window;
|
|
422
|
+
if (e.__simulator__)
|
|
423
|
+
try {
|
|
424
|
+
const t = e.__simulator__.engine.provider.errorHandler;
|
|
425
|
+
t && t(n);
|
|
426
|
+
} catch {
|
|
427
|
+
}
|
|
428
|
+
}
|
|
413
429
|
function B(n, e, t = !1, s = !1, r = !1) {
|
|
414
430
|
try {
|
|
415
431
|
const i = ['"use strict";', "var __self = arguments[0];"];
|
|
@@ -422,7 +438,7 @@ ${o}
|
|
|
422
438
|
` : `with(${t ? "{}" : "$scope || {}"}) { ${o} }`;
|
|
423
439
|
return new Function("$scope", a)(e);
|
|
424
440
|
} catch (i) {
|
|
425
|
-
if (M.error("parseExpression.error", i, n, e?.__self ?? e), s)
|
|
441
|
+
if (M.error("parseExpression.error", i, n, e?.__self ?? e), At(i), s)
|
|
426
442
|
throw i;
|
|
427
443
|
}
|
|
428
444
|
}
|
|
@@ -443,13 +459,13 @@ function E(n) {
|
|
|
443
459
|
function $(n) {
|
|
444
460
|
return typeof n == "object" && n && n.type === "JSFunction";
|
|
445
461
|
}
|
|
446
|
-
function
|
|
462
|
+
function It(n) {
|
|
447
463
|
return E(n) || $(n);
|
|
448
464
|
}
|
|
449
|
-
function
|
|
450
|
-
return
|
|
465
|
+
function Ns(n) {
|
|
466
|
+
return It(n) ? n.value : JSON.stringify(n);
|
|
451
467
|
}
|
|
452
|
-
const
|
|
468
|
+
const Ft = {
|
|
453
469
|
session: !1,
|
|
454
470
|
authKey: "Authorization",
|
|
455
471
|
storageKey: "ACCESS_STORAGE",
|
|
@@ -462,7 +478,7 @@ const Pt = {
|
|
|
462
478
|
noPermissionMessage: "无权限访问该页面",
|
|
463
479
|
appName: "",
|
|
464
480
|
statusKey: "code"
|
|
465
|
-
},
|
|
481
|
+
}, He = Symbol("access");
|
|
466
482
|
class _e {
|
|
467
483
|
options;
|
|
468
484
|
data = null;
|
|
@@ -470,7 +486,7 @@ class _e {
|
|
|
470
486
|
interceptResponse = !0;
|
|
471
487
|
isTipShowing = !1;
|
|
472
488
|
constructor(e) {
|
|
473
|
-
this.options = Object.assign({},
|
|
489
|
+
this.options = Object.assign({}, Ft, e), this.loadData();
|
|
474
490
|
}
|
|
475
491
|
enableIntercept() {
|
|
476
492
|
this.interceptResponse = !0;
|
|
@@ -514,7 +530,7 @@ class _e {
|
|
|
514
530
|
return Se(e).some((i) => s[i] || s[t + "." + i]);
|
|
515
531
|
}
|
|
516
532
|
install(e) {
|
|
517
|
-
e.config.globalProperties.$access = this, e.provide(
|
|
533
|
+
e.config.globalProperties.$access = this, e.provide(He, this);
|
|
518
534
|
}
|
|
519
535
|
isAuthPath(e) {
|
|
520
536
|
const { auth: t, isAuth: s } = this.options;
|
|
@@ -565,7 +581,7 @@ class _e {
|
|
|
565
581
|
return e && t ? !!ne.get(t) : !!this.getToken();
|
|
566
582
|
}
|
|
567
583
|
hasRoutePermission(e) {
|
|
568
|
-
if (e.name ===
|
|
584
|
+
if (e.name === k) {
|
|
569
585
|
const t = e.params.id;
|
|
570
586
|
return t && this.can(t);
|
|
571
587
|
}
|
|
@@ -619,10 +635,10 @@ class _e {
|
|
|
619
635
|
);
|
|
620
636
|
}
|
|
621
637
|
}
|
|
622
|
-
function
|
|
623
|
-
return Ie(
|
|
638
|
+
function Ot() {
|
|
639
|
+
return Ie(He, null);
|
|
624
640
|
}
|
|
625
|
-
function
|
|
641
|
+
function Bs(n = {}) {
|
|
626
642
|
const {
|
|
627
643
|
notify: e,
|
|
628
644
|
loading: t,
|
|
@@ -663,10 +679,10 @@ function Ds(n = {}) {
|
|
|
663
679
|
access: i ? new _e({ alert: a, ...i }) : void 0
|
|
664
680
|
};
|
|
665
681
|
}
|
|
666
|
-
function
|
|
682
|
+
function Ls(n = {}) {
|
|
667
683
|
return new _e(n);
|
|
668
684
|
}
|
|
669
|
-
function
|
|
685
|
+
function Mt(n, e) {
|
|
670
686
|
const { jsonp: t, request: s } = e;
|
|
671
687
|
if (n.method === "jsonp")
|
|
672
688
|
return (r = {}) => t(n.url, {
|
|
@@ -685,7 +701,7 @@ function It(n, e) {
|
|
|
685
701
|
return (o, a) => (delete i.data, s.send(et(i, a || {}, { data: o })));
|
|
686
702
|
}
|
|
687
703
|
}
|
|
688
|
-
function
|
|
704
|
+
function Tt(n, e) {
|
|
689
705
|
const { metaQuery: t } = e;
|
|
690
706
|
if (!t) return;
|
|
691
707
|
const { code: s, queryCode: r } = n;
|
|
@@ -697,21 +713,21 @@ function Ft(n, e) {
|
|
|
697
713
|
return t(s, r, i, o);
|
|
698
714
|
};
|
|
699
715
|
}
|
|
700
|
-
function
|
|
716
|
+
function xt(n = [], e = [], t) {
|
|
701
717
|
const s = {};
|
|
702
718
|
for (const r of n) {
|
|
703
|
-
const i =
|
|
719
|
+
const i = Mt(r, t);
|
|
704
720
|
s[r.id] = i, s[r.name] = i;
|
|
705
721
|
}
|
|
706
722
|
for (const r of e)
|
|
707
|
-
s[r.id] =
|
|
723
|
+
s[r.id] = Tt(r, t);
|
|
708
724
|
return s;
|
|
709
725
|
}
|
|
710
|
-
async function
|
|
726
|
+
async function Dt(n = [], e = window) {
|
|
711
727
|
const t = N(e);
|
|
712
|
-
t && (
|
|
728
|
+
t && (ke(e), n.forEach((s) => kt(t, s)));
|
|
713
729
|
}
|
|
714
|
-
function
|
|
730
|
+
function Ht(n, e = window) {
|
|
715
731
|
const t = $(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = N(e);
|
|
716
732
|
return async (...r) => {
|
|
717
733
|
let i = {};
|
|
@@ -724,7 +740,7 @@ function Tt(n, e = window) {
|
|
|
724
740
|
return s?.mock(i);
|
|
725
741
|
};
|
|
726
742
|
}
|
|
727
|
-
function
|
|
743
|
+
function kt(n, e) {
|
|
728
744
|
if (!e.mock) return;
|
|
729
745
|
const { url: t, mockTemplate: s } = e;
|
|
730
746
|
if (t && s)
|
|
@@ -743,11 +759,11 @@ function xt(n, e) {
|
|
|
743
759
|
console.warn("mockApi", r);
|
|
744
760
|
}
|
|
745
761
|
}
|
|
746
|
-
function
|
|
762
|
+
function ke(n = window) {
|
|
747
763
|
const e = N(n);
|
|
748
764
|
e && (e._mocked = {});
|
|
749
765
|
}
|
|
750
|
-
class
|
|
766
|
+
class Nt {
|
|
751
767
|
__id = null;
|
|
752
768
|
__mode;
|
|
753
769
|
__instance = null;
|
|
@@ -863,7 +879,7 @@ function fe(n) {
|
|
|
863
879
|
$components: s,
|
|
864
880
|
$libs: r,
|
|
865
881
|
$apis: i
|
|
866
|
-
}, c = new
|
|
882
|
+
}, c = new Nt({
|
|
867
883
|
mode: t,
|
|
868
884
|
dsl: a.value,
|
|
869
885
|
attrs: u
|
|
@@ -871,7 +887,7 @@ function fe(n) {
|
|
|
871
887
|
name: a.value.name,
|
|
872
888
|
__scopeId: a.value.id ? `data-v-${a.value.id}` : void 0,
|
|
873
889
|
props: {
|
|
874
|
-
...
|
|
890
|
+
...Lt(a.value.props ?? [], c)
|
|
875
891
|
},
|
|
876
892
|
async setup(f = {}) {
|
|
877
893
|
c.$props = f, c.props = f, a.value.id && ge(
|
|
@@ -879,11 +895,11 @@ function fe(n) {
|
|
|
879
895
|
a.value.id,
|
|
880
896
|
a.value.css || "",
|
|
881
897
|
!0
|
|
882
|
-
), c.state =
|
|
883
|
-
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);
|
|
884
900
|
for (const [v, w] of Object.entries(m || {}))
|
|
885
901
|
m[v] = e.inject(v, w);
|
|
886
|
-
const h =
|
|
902
|
+
const h = zt(
|
|
887
903
|
a.value.dataSources || {},
|
|
888
904
|
c
|
|
889
905
|
), g = {
|
|
@@ -892,7 +908,7 @@ function fe(n) {
|
|
|
892
908
|
...d,
|
|
893
909
|
...h
|
|
894
910
|
};
|
|
895
|
-
return c.setup(g, e),
|
|
911
|
+
return c.setup(g, e), Gt(e, a.value.watch ?? [], c), {
|
|
896
912
|
vtj: c,
|
|
897
913
|
state: c.state,
|
|
898
914
|
...f,
|
|
@@ -900,7 +916,7 @@ function fe(n) {
|
|
|
900
916
|
...d
|
|
901
917
|
};
|
|
902
918
|
},
|
|
903
|
-
emits:
|
|
919
|
+
emits: Bt(a.value.emits),
|
|
904
920
|
expose: ["vtj", ...a.value.expose || []],
|
|
905
921
|
render() {
|
|
906
922
|
if (!a.value.nodes) return null;
|
|
@@ -914,17 +930,17 @@ function fe(n) {
|
|
|
914
930
|
return e.createVNode("div", {}, p);
|
|
915
931
|
}
|
|
916
932
|
},
|
|
917
|
-
...
|
|
933
|
+
...Vt(a.value.lifeCycles ?? {}, c)
|
|
918
934
|
});
|
|
919
935
|
return {
|
|
920
936
|
renderer: e.markRaw(l),
|
|
921
937
|
context: c
|
|
922
938
|
};
|
|
923
939
|
}
|
|
924
|
-
function
|
|
940
|
+
function Bt(n = []) {
|
|
925
941
|
return n.map((e) => I(e) ? e : e.name);
|
|
926
942
|
}
|
|
927
|
-
function
|
|
943
|
+
function Lt(n = [], e) {
|
|
928
944
|
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => pt[i]) : void 0;
|
|
929
945
|
return n.map((s) => I(s) ? {
|
|
930
946
|
name: s
|
|
@@ -942,7 +958,7 @@ function Ht(n = [], e) {
|
|
|
942
958
|
{}
|
|
943
959
|
);
|
|
944
960
|
}
|
|
945
|
-
function
|
|
961
|
+
function qt(n, e, t) {
|
|
946
962
|
return n.reactive(
|
|
947
963
|
Object.keys(e || {}).reduce(
|
|
948
964
|
(s, r) => {
|
|
@@ -953,19 +969,19 @@ function Nt(n, e, t) {
|
|
|
953
969
|
)
|
|
954
970
|
);
|
|
955
971
|
}
|
|
956
|
-
function
|
|
972
|
+
function Ut(n, e, t) {
|
|
957
973
|
return Object.entries(e ?? {}).reduce(
|
|
958
974
|
(s, [r, i]) => (s[r] = n.computed(t.__parseFunction(i)), s),
|
|
959
975
|
{}
|
|
960
976
|
);
|
|
961
977
|
}
|
|
962
|
-
function
|
|
978
|
+
function Jt(n, e) {
|
|
963
979
|
return Object.entries(n ?? {}).reduce(
|
|
964
980
|
(t, [s, r]) => (t[s] = e.__parseFunction(r), t),
|
|
965
981
|
{}
|
|
966
982
|
);
|
|
967
983
|
}
|
|
968
|
-
function
|
|
984
|
+
function Kt(n, e = [], t) {
|
|
969
985
|
return e.reduce(
|
|
970
986
|
(s, r) => {
|
|
971
987
|
const { name: i, from: o } = r || {};
|
|
@@ -976,12 +992,12 @@ function qt(n, e = [], t) {
|
|
|
976
992
|
{}
|
|
977
993
|
);
|
|
978
994
|
}
|
|
979
|
-
function
|
|
995
|
+
function zt(n, e) {
|
|
980
996
|
return Object.keys(n).reduce(
|
|
981
997
|
(t, s) => {
|
|
982
998
|
const r = n[s];
|
|
983
999
|
if (r.type === "mock")
|
|
984
|
-
t[s] =
|
|
1000
|
+
t[s] = Ht(r);
|
|
985
1001
|
else if (r.ref) {
|
|
986
1002
|
const i = e.$apis[r.ref], o = $(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
|
|
987
1003
|
t[s] = async (...a) => {
|
|
@@ -994,7 +1010,7 @@ function Ut(n, e) {
|
|
|
994
1010
|
{}
|
|
995
1011
|
);
|
|
996
1012
|
}
|
|
997
|
-
function
|
|
1013
|
+
function Gt(n, e = [], t) {
|
|
998
1014
|
e.forEach((s) => {
|
|
999
1015
|
n.watch(
|
|
1000
1016
|
t.__parseExpression(s.source),
|
|
@@ -1006,7 +1022,7 @@ function Jt(n, e = [], t) {
|
|
|
1006
1022
|
);
|
|
1007
1023
|
});
|
|
1008
1024
|
}
|
|
1009
|
-
function
|
|
1025
|
+
function Vt(n, e) {
|
|
1010
1026
|
return Object.entries(n ?? {}).reduce(
|
|
1011
1027
|
(t, [s, r]) => {
|
|
1012
1028
|
const i = e.__parseFunction(r);
|
|
@@ -1017,7 +1033,7 @@ function Kt(n, e) {
|
|
|
1017
1033
|
{}
|
|
1018
1034
|
);
|
|
1019
1035
|
}
|
|
1020
|
-
class
|
|
1036
|
+
class Wt {
|
|
1021
1037
|
__props = {};
|
|
1022
1038
|
__events = {};
|
|
1023
1039
|
__nodes = {};
|
|
@@ -1059,9 +1075,9 @@ class zt {
|
|
|
1059
1075
|
this.__props = {}, this.__events = {}, this.__nodes = {};
|
|
1060
1076
|
}
|
|
1061
1077
|
}
|
|
1062
|
-
const x = new
|
|
1078
|
+
const x = new Wt(), Ne = new it();
|
|
1063
1079
|
let re = [], F = {}, D = {};
|
|
1064
|
-
const
|
|
1080
|
+
const Qt = (n, e) => e;
|
|
1065
1081
|
async function Be(n, e = window) {
|
|
1066
1082
|
const { urls: t = [], library: s } = n, r = t.filter((a) => X(a));
|
|
1067
1083
|
if (r.length === 0 || !s) return null;
|
|
@@ -1114,38 +1130,38 @@ function pe(n) {
|
|
|
1114
1130
|
return i;
|
|
1115
1131
|
};
|
|
1116
1132
|
}
|
|
1117
|
-
function
|
|
1133
|
+
function qs() {
|
|
1118
1134
|
F = {}, D = {}, Ne.clearAllCache(), x.clear();
|
|
1119
1135
|
}
|
|
1120
|
-
function T(n, e, t = W, s =
|
|
1136
|
+
function T(n, e, t = W, s = Qt, r = [], i = !1, o = 0) {
|
|
1121
1137
|
if (!n || !n.name || n.invisible) return null;
|
|
1122
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);
|
|
1123
1139
|
if (!i && (f || p))
|
|
1124
1140
|
return null;
|
|
1125
|
-
if (l && !
|
|
1126
|
-
return
|
|
1141
|
+
if (l && !Yt(l, e))
|
|
1142
|
+
return rs(n, e, t, s, r);
|
|
1127
1143
|
const b = (_, C = 0) => {
|
|
1128
1144
|
const Y = _.$components, Z = (() => {
|
|
1129
1145
|
if (n.name === "component")
|
|
1130
|
-
return
|
|
1146
|
+
return Zt(_, n.props?.is);
|
|
1131
1147
|
if (n.name === "slot") return n.name;
|
|
1132
1148
|
const j = s(`${n.id}_${C}`, n.name, n.from, t);
|
|
1133
1149
|
return I(j) ? jt(j) || Rt(j) ? j : Y[j] ?? a?.app?.component(j) ?? j : j;
|
|
1134
|
-
})(), A =
|
|
1150
|
+
})(), A = es(u, n.props ?? {}, _), Ge = ns(
|
|
1135
1151
|
t,
|
|
1136
1152
|
n.id,
|
|
1137
1153
|
n.events ?? {},
|
|
1138
1154
|
_
|
|
1139
1155
|
);
|
|
1140
1156
|
if (n.name === "slot")
|
|
1141
|
-
return
|
|
1157
|
+
return is(t, n, A, _, s);
|
|
1142
1158
|
g && Object.assign(A, _.__parseExpression(g.value)), m && (A.style = Object.assign(
|
|
1143
1159
|
A.style ?? {},
|
|
1144
|
-
|
|
1145
|
-
)), v && Object.assign(A,
|
|
1146
|
-
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, _));
|
|
1147
1163
|
});
|
|
1148
|
-
const Ve =
|
|
1164
|
+
const Ve = fs(
|
|
1149
1165
|
t,
|
|
1150
1166
|
n.children ?? [],
|
|
1151
1167
|
_,
|
|
@@ -1164,12 +1180,12 @@ function T(n, e, t = W, s = Gt, r = [], i = !1, o = 0) {
|
|
|
1164
1180
|
x.getNode(L) || ee || {},
|
|
1165
1181
|
Ve
|
|
1166
1182
|
);
|
|
1167
|
-
const we = a ?
|
|
1183
|
+
const we = a ? Xt(a, w, _) : [];
|
|
1168
1184
|
return we.length && (te = t.withDirectives(te, we)), te;
|
|
1169
1185
|
};
|
|
1170
|
-
return d ?
|
|
1186
|
+
return d ? hs(d, b, e) : b(e, o);
|
|
1171
1187
|
}
|
|
1172
|
-
function
|
|
1188
|
+
function Xt(n, e, t) {
|
|
1173
1189
|
const s = n.app;
|
|
1174
1190
|
return e.map((r) => {
|
|
1175
1191
|
const i = typeof r.name == "string" ? s.directive(r.name) : t.__parseExpression(r.name);
|
|
@@ -1198,13 +1214,13 @@ function Le(n = []) {
|
|
|
1198
1214
|
vHtml: a
|
|
1199
1215
|
};
|
|
1200
1216
|
}
|
|
1201
|
-
function
|
|
1217
|
+
function Yt(n, e) {
|
|
1202
1218
|
return !!e.__parseExpression(n.value);
|
|
1203
1219
|
}
|
|
1204
|
-
function
|
|
1220
|
+
function Zt(n, e) {
|
|
1205
1221
|
return e ? E(e) ? n.__parseExpression(e) : e : "div";
|
|
1206
1222
|
}
|
|
1207
|
-
function
|
|
1223
|
+
function es(n, e, t) {
|
|
1208
1224
|
const s = de(e, t);
|
|
1209
1225
|
return s.ref = t.__ref(n, s.ref), s;
|
|
1210
1226
|
}
|
|
@@ -1217,12 +1233,22 @@ function de(n, e) {
|
|
|
1217
1233
|
{}
|
|
1218
1234
|
) : n;
|
|
1219
1235
|
}
|
|
1220
|
-
function
|
|
1236
|
+
function ts(n, e) {
|
|
1221
1237
|
return (t) => {
|
|
1222
1238
|
t?.key?.toLowerCase() === e.toLowerCase() && n(t);
|
|
1223
1239
|
};
|
|
1224
1240
|
}
|
|
1225
|
-
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) {
|
|
1226
1252
|
const r = ["passive", "capture", "once"], i = {
|
|
1227
1253
|
capture: "Capture",
|
|
1228
1254
|
once: "Once",
|
|
@@ -1230,16 +1256,16 @@ function Zt(n, e, t, s) {
|
|
|
1230
1256
|
};
|
|
1231
1257
|
return Object.keys(t || {}).reduce(
|
|
1232
1258
|
(a, u) => {
|
|
1233
|
-
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;
|
|
1234
1260
|
return d && (a[p] = n.withModifiers(
|
|
1235
|
-
l.includes("enter") ?
|
|
1261
|
+
l.includes("enter") ? ts(d, "enter") : d,
|
|
1236
1262
|
l
|
|
1237
1263
|
)), a;
|
|
1238
1264
|
},
|
|
1239
1265
|
{}
|
|
1240
1266
|
);
|
|
1241
1267
|
}
|
|
1242
|
-
function
|
|
1268
|
+
function rs(n, e, t, s, r = []) {
|
|
1243
1269
|
let i = r.findIndex((o) => o.id === n.id);
|
|
1244
1270
|
for (let o = ++i; o < r.length; o++) {
|
|
1245
1271
|
const { directives: a = [] } = r[o], { vElseIf: u, vElse: c } = Le(a);
|
|
@@ -1257,32 +1283,32 @@ function qe(n = {}, e = !1) {
|
|
|
1257
1283
|
const t = Object.keys(n);
|
|
1258
1284
|
return e ? t.map((s) => "." + s) : t;
|
|
1259
1285
|
}
|
|
1260
|
-
function
|
|
1261
|
-
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];
|
|
1262
1288
|
return a ? a(t) : i ? I(i) ? n.createTextVNode(i) : E(i) ? n.createTextVNode(
|
|
1263
1289
|
Te(s.__parseExpression(i))
|
|
1264
1290
|
) : Array.isArray(i) ? i.map(
|
|
1265
1291
|
(u, c) => T(u, s, n, r, i, !1, c)
|
|
1266
1292
|
) : null : null;
|
|
1267
1293
|
}
|
|
1268
|
-
function
|
|
1294
|
+
function os(n, e) {
|
|
1269
1295
|
const { props: t } = n, s = t?.name || "default";
|
|
1270
1296
|
return {
|
|
1271
1297
|
name: E(s) ? e.__parseExpression(s) : s,
|
|
1272
1298
|
params: []
|
|
1273
1299
|
};
|
|
1274
1300
|
}
|
|
1275
|
-
function
|
|
1301
|
+
function as(n, e) {
|
|
1276
1302
|
return e.__parseExpression(n.value) ? {} : {
|
|
1277
1303
|
display: "none"
|
|
1278
1304
|
};
|
|
1279
1305
|
}
|
|
1280
|
-
function
|
|
1306
|
+
function cs(n, e) {
|
|
1281
1307
|
return {
|
|
1282
1308
|
innerHTML: e.__parseExpression(n.value) || ""
|
|
1283
1309
|
};
|
|
1284
1310
|
}
|
|
1285
|
-
function
|
|
1311
|
+
function ls(n, e) {
|
|
1286
1312
|
const t = {
|
|
1287
1313
|
type: "JSFunction",
|
|
1288
1314
|
value: n.value?.value ? `(v) => {
|
|
@@ -1294,7 +1320,7 @@ function is(n, e) {
|
|
|
1294
1320
|
onInput: e.__parseFunction(t)
|
|
1295
1321
|
};
|
|
1296
1322
|
}
|
|
1297
|
-
function
|
|
1323
|
+
function us(n, e, t) {
|
|
1298
1324
|
const s = {
|
|
1299
1325
|
type: "JSFunction",
|
|
1300
1326
|
value: e.value?.value ? `(v) => {
|
|
@@ -1308,7 +1334,7 @@ function os(n, e, t) {
|
|
|
1308
1334
|
[`onUpdate:${o}`]: i.length && r ? n.withModifiers(r, i) : r
|
|
1309
1335
|
};
|
|
1310
1336
|
}
|
|
1311
|
-
function
|
|
1337
|
+
function fs(n, e, t, s, r) {
|
|
1312
1338
|
if (!e) return null;
|
|
1313
1339
|
if (I(e))
|
|
1314
1340
|
return { default: () => e };
|
|
@@ -1317,7 +1343,7 @@ function as(n, e, t, s, r) {
|
|
|
1317
1343
|
default: () => Te(t.__parseExpression(e))
|
|
1318
1344
|
};
|
|
1319
1345
|
if (Array.isArray(e) && e.length > 0) {
|
|
1320
|
-
const i =
|
|
1346
|
+
const i = ps(e), o = (a, u) => !a || !r ? {} : r?.id && Object.keys(a).length ? u ? {
|
|
1321
1347
|
[u]: a
|
|
1322
1348
|
} : {
|
|
1323
1349
|
[`scope_${r.id}`]: a
|
|
@@ -1342,10 +1368,10 @@ function as(n, e, t, s, r) {
|
|
|
1342
1368
|
}
|
|
1343
1369
|
return null;
|
|
1344
1370
|
}
|
|
1345
|
-
function
|
|
1371
|
+
function ps(n) {
|
|
1346
1372
|
const e = {};
|
|
1347
1373
|
for (const t of n) {
|
|
1348
|
-
const s =
|
|
1374
|
+
const s = ds(t.slot), r = s.name;
|
|
1349
1375
|
e[r] ? (e[r].nodes.push(t), e[r].params = e[r].params.concat(s.params), e[r].scope = s.scope || "") : e[r] = {
|
|
1350
1376
|
nodes: [t],
|
|
1351
1377
|
params: s.params,
|
|
@@ -1354,10 +1380,10 @@ function cs(n) {
|
|
|
1354
1380
|
}
|
|
1355
1381
|
return e;
|
|
1356
1382
|
}
|
|
1357
|
-
function
|
|
1383
|
+
function ds(n = "default") {
|
|
1358
1384
|
return I(n) ? { name: n, params: [], scope: "" } : { params: [], scope: "", ...n };
|
|
1359
1385
|
}
|
|
1360
|
-
function
|
|
1386
|
+
function hs(n, e, t) {
|
|
1361
1387
|
const { value: s, iterator: r } = n, { item: i = "item", index: o = "index" } = r || {};
|
|
1362
1388
|
let a = t.__parseExpression(s) || [];
|
|
1363
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`), []);
|
|
@@ -1395,7 +1421,7 @@ const ie = Fe({
|
|
|
1395
1421
|
activated() {
|
|
1396
1422
|
this.meta.cache === !1 && (this.sid = Symbol());
|
|
1397
1423
|
}
|
|
1398
|
-
}),
|
|
1424
|
+
}), ms = Fe({
|
|
1399
1425
|
name: "VtjStartupContainer",
|
|
1400
1426
|
render() {
|
|
1401
1427
|
return le("div", "page not found!");
|
|
@@ -1433,17 +1459,17 @@ function Ue(n, e) {
|
|
|
1433
1459
|
e.can(s.id.toString()) && t.push(s);
|
|
1434
1460
|
return t;
|
|
1435
1461
|
}
|
|
1436
|
-
function
|
|
1462
|
+
function Us(n) {
|
|
1437
1463
|
const {
|
|
1438
1464
|
menuPathPrefix: e = "",
|
|
1439
1465
|
pageRouteName: t = "page",
|
|
1440
1466
|
disableMenusFilter: s = !1
|
|
1441
|
-
} = 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) => {
|
|
1442
1468
|
a.value = !d?.mask, u.value = m?.pure ?? !!d?.pure;
|
|
1443
1469
|
};
|
|
1444
1470
|
ut(() => {
|
|
1445
1471
|
const { name: d, params: m, meta: h } = i;
|
|
1446
|
-
if (d ===
|
|
1472
|
+
if (d === k) {
|
|
1447
1473
|
const g = r.getPage(m.id);
|
|
1448
1474
|
l(g, h);
|
|
1449
1475
|
} else if (d === J) {
|
|
@@ -1538,18 +1564,18 @@ function he(n) {
|
|
|
1538
1564
|
}
|
|
1539
1565
|
return u;
|
|
1540
1566
|
}
|
|
1541
|
-
function
|
|
1567
|
+
function gs(n = {}, e) {
|
|
1542
1568
|
const { css: t, store: s, enhance: r } = n, { window: i, app: o, library: a = {}, adapter: u, mode: c } = e, { Pinia: l } = a;
|
|
1543
|
-
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);
|
|
1544
1570
|
}
|
|
1545
|
-
function
|
|
1571
|
+
function _s(n, e, t) {
|
|
1546
1572
|
const s = t.createPinia();
|
|
1547
1573
|
if (e.use(s), $(n) && n.value) {
|
|
1548
1574
|
const r = R(n, {}, !1, !1, !0), i = t.defineStore("$store", r(e) || {});
|
|
1549
1575
|
e.config.globalProperties.$store = i();
|
|
1550
1576
|
}
|
|
1551
1577
|
}
|
|
1552
|
-
function
|
|
1578
|
+
function vs(n, e, t, s) {
|
|
1553
1579
|
if ($(n) && n.value) {
|
|
1554
1580
|
const r = R(n, {}, !1, !1, !0), { alert: i, request: o } = s, a = new _e({
|
|
1555
1581
|
alert: i,
|
|
@@ -1559,7 +1585,7 @@ function hs(n, e, t, s) {
|
|
|
1559
1585
|
a.connect({ mode: t, router: u, request: o }), e.use(a);
|
|
1560
1586
|
}
|
|
1561
1587
|
}
|
|
1562
|
-
function
|
|
1588
|
+
function ys(n, e, t) {
|
|
1563
1589
|
if (!e.request) return;
|
|
1564
1590
|
const { axios: s, request: r, response: i } = t;
|
|
1565
1591
|
if (s && $(s) && s.value) {
|
|
@@ -1575,7 +1601,7 @@ function ms(n, e, t) {
|
|
|
1575
1601
|
a.__unRes && a.__unRes(), a.__unRes = e.request.useResponse((u) => o(u, n));
|
|
1576
1602
|
}
|
|
1577
1603
|
}
|
|
1578
|
-
function
|
|
1604
|
+
function ws(n, e) {
|
|
1579
1605
|
const { beforeEach: t, afterEach: s } = e, r = n.config.globalProperties.$router;
|
|
1580
1606
|
if (t && $(t) && t.value) {
|
|
1581
1607
|
const i = R(t, {}, !1, !1, !0);
|
|
@@ -1586,10 +1612,10 @@ function gs(n, e) {
|
|
|
1586
1612
|
r && r.afterEach((o, a, u) => i(o, a, u, n));
|
|
1587
1613
|
}
|
|
1588
1614
|
}
|
|
1589
|
-
function
|
|
1615
|
+
function Ss(n, e, t = {}) {
|
|
1590
1616
|
$(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
|
|
1591
1617
|
}
|
|
1592
|
-
function
|
|
1618
|
+
function $s(n, e, t) {
|
|
1593
1619
|
if (!n || !e || !t) return;
|
|
1594
1620
|
const { VueI18n: s } = e;
|
|
1595
1621
|
if (s) {
|
|
@@ -1609,8 +1635,8 @@ function vs(n, e, t) {
|
|
|
1609
1635
|
}
|
|
1610
1636
|
}
|
|
1611
1637
|
const Je = Symbol("Provider");
|
|
1612
|
-
var
|
|
1613
|
-
class
|
|
1638
|
+
var Es = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(Es || {});
|
|
1639
|
+
class bs extends Xe {
|
|
1614
1640
|
/**
|
|
1615
1641
|
* 创建Provider实例
|
|
1616
1642
|
* @param options 配置选项
|
|
@@ -1698,7 +1724,7 @@ class ws extends Xe {
|
|
|
1698
1724
|
if (this.project = s ? await s() : await this.service.init(e), !this.project)
|
|
1699
1725
|
throw new Error("project is null");
|
|
1700
1726
|
const { apis: r = [], meta: i = [], env: o = [] } = this.project, a = window;
|
|
1701
|
-
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();
|
|
1702
1728
|
}
|
|
1703
1729
|
initMock(e) {
|
|
1704
1730
|
const t = N(e);
|
|
@@ -1742,7 +1768,7 @@ class ws extends Xe {
|
|
|
1742
1768
|
else {
|
|
1743
1769
|
const b = l[h] || [];
|
|
1744
1770
|
for (const _ of b)
|
|
1745
|
-
Q(_) && await Et(_, O.append(_, { v:
|
|
1771
|
+
Q(_) && await Et(_, O.append(_, { v: H })), X(_) && await be(O.append(_, { v: H }));
|
|
1746
1772
|
r[h] = e[h];
|
|
1747
1773
|
}
|
|
1748
1774
|
const w = m[h];
|
|
@@ -1753,7 +1779,7 @@ class ws extends Xe {
|
|
|
1753
1779
|
}
|
|
1754
1780
|
if (a === "development") {
|
|
1755
1781
|
for (const g of f)
|
|
1756
|
-
await be(O.append(g, { v:
|
|
1782
|
+
await be(O.append(g, { v: H }));
|
|
1757
1783
|
const h = this.materials || {};
|
|
1758
1784
|
for (const g of p) {
|
|
1759
1785
|
const v = e[d[g]], w = v?.default || v, b = Ye[g];
|
|
@@ -1779,15 +1805,15 @@ class ws extends Xe {
|
|
|
1779
1805
|
routeMeta: u
|
|
1780
1806
|
} = s, c = o ? "" : "/", l = {
|
|
1781
1807
|
path: `${c}${a}/:id`,
|
|
1782
|
-
name:
|
|
1808
|
+
name: k,
|
|
1783
1809
|
component: ie
|
|
1784
1810
|
}, f = this.getHomepage(), p = {
|
|
1785
1811
|
path: c,
|
|
1786
1812
|
name: J,
|
|
1787
|
-
component: f ? ie : r.startupComponent ||
|
|
1813
|
+
component: f ? ie : r.startupComponent || ms,
|
|
1788
1814
|
meta: u
|
|
1789
1815
|
};
|
|
1790
|
-
if (e.hasRoute(
|
|
1816
|
+
if (e.hasRoute(k) && e.removeRoute(k), e.hasRoute(J) && e.removeRoute(J), s.enableStaticRoute) {
|
|
1791
1817
|
const d = t?.pages || [];
|
|
1792
1818
|
he({
|
|
1793
1819
|
name: a,
|
|
@@ -1985,10 +2011,10 @@ class ws extends Xe {
|
|
|
1985
2011
|
},
|
|
1986
2012
|
t
|
|
1987
2013
|
);
|
|
1988
|
-
|
|
2014
|
+
gs(e, s);
|
|
1989
2015
|
}
|
|
1990
2016
|
initI18n(e, t, s) {
|
|
1991
|
-
|
|
2017
|
+
$s(e, t, s);
|
|
1992
2018
|
}
|
|
1993
2019
|
initEnv(e = []) {
|
|
1994
2020
|
this.env = e.reduce(
|
|
@@ -1997,8 +2023,8 @@ class ws extends Xe {
|
|
|
1997
2023
|
);
|
|
1998
2024
|
}
|
|
1999
2025
|
}
|
|
2000
|
-
function
|
|
2001
|
-
const e = new
|
|
2026
|
+
function Js(n) {
|
|
2027
|
+
const e = new bs(n);
|
|
2002
2028
|
return {
|
|
2003
2029
|
provider: e,
|
|
2004
2030
|
onReady: (s) => e.ready(s)
|
|
@@ -2021,7 +2047,7 @@ function Ke(n = {}) {
|
|
|
2021
2047
|
}
|
|
2022
2048
|
return e;
|
|
2023
2049
|
}
|
|
2024
|
-
async function
|
|
2050
|
+
async function Ks(n, e = "") {
|
|
2025
2051
|
const { name: t, urls: s = [] } = n || {}, r = s.map((a) => e + a), { css: i, js: o } = vt(r);
|
|
2026
2052
|
if (i.length && xe(i), o.length)
|
|
2027
2053
|
return await De(o, t).catch(
|
|
@@ -2035,7 +2061,7 @@ const ze = {
|
|
|
2035
2061
|
originResponse: !1,
|
|
2036
2062
|
failMessage: !0,
|
|
2037
2063
|
validate: (n) => n.data?.code === 0
|
|
2038
|
-
},
|
|
2064
|
+
}, js = (n, e = "/__vtj__/api/:type.json") => (t, s, r) => n.send({
|
|
2039
2065
|
url: e,
|
|
2040
2066
|
method: "post",
|
|
2041
2067
|
params: { type: t },
|
|
@@ -2045,7 +2071,7 @@ const ze = {
|
|
|
2045
2071
|
data: s
|
|
2046
2072
|
},
|
|
2047
2073
|
settings: ze
|
|
2048
|
-
}),
|
|
2074
|
+
}), Rs = (n, e = "/__vtj__/api/uploader.json") => async (t, s) => await n.send({
|
|
2049
2075
|
url: e,
|
|
2050
2076
|
method: "post",
|
|
2051
2077
|
data: {
|
|
@@ -2057,7 +2083,7 @@ const ze = {
|
|
|
2057
2083
|
type: "data"
|
|
2058
2084
|
}
|
|
2059
2085
|
}).then((r) => r && r[0] ? r[0] : null).catch(() => null);
|
|
2060
|
-
function
|
|
2086
|
+
function zs(n) {
|
|
2061
2087
|
return Pe({
|
|
2062
2088
|
settings: {
|
|
2063
2089
|
type: "json",
|
|
@@ -2073,7 +2099,7 @@ function qs(n) {
|
|
|
2073
2099
|
}
|
|
2074
2100
|
class ve {
|
|
2075
2101
|
constructor(e = ce) {
|
|
2076
|
-
this.req = e, this.api =
|
|
2102
|
+
this.req = e, this.api = js(e), this.uploader = Rs(e);
|
|
2077
2103
|
}
|
|
2078
2104
|
api;
|
|
2079
2105
|
pluginCaches = {};
|
|
@@ -2178,7 +2204,7 @@ const S = new lt({
|
|
|
2178
2204
|
expired: 0,
|
|
2179
2205
|
prefix: "__VTJ_"
|
|
2180
2206
|
});
|
|
2181
|
-
class
|
|
2207
|
+
class Gs extends ve {
|
|
2182
2208
|
init(e) {
|
|
2183
2209
|
const t = new K(e), s = S.get(`project_${t.id}`), r = Object.assign(t.toDsl(), s || {});
|
|
2184
2210
|
return S.save(`project_${t.id}`, r), Promise.resolve(r);
|
|
@@ -2228,7 +2254,7 @@ class Us extends ve {
|
|
|
2228
2254
|
}), Promise.resolve(!0);
|
|
2229
2255
|
}
|
|
2230
2256
|
}
|
|
2231
|
-
class
|
|
2257
|
+
class Cs extends ve {
|
|
2232
2258
|
projects = {};
|
|
2233
2259
|
materials = {};
|
|
2234
2260
|
files = {};
|
|
@@ -2286,10 +2312,10 @@ class Es extends ve {
|
|
|
2286
2312
|
}
|
|
2287
2313
|
}
|
|
2288
2314
|
let U = null;
|
|
2289
|
-
function
|
|
2290
|
-
return U || (U = new
|
|
2315
|
+
function Vs() {
|
|
2316
|
+
return U || (U = new Cs(), U);
|
|
2291
2317
|
}
|
|
2292
|
-
class
|
|
2318
|
+
class Ws extends ve {
|
|
2293
2319
|
getFileCaches = {};
|
|
2294
2320
|
async getExtension() {
|
|
2295
2321
|
return await this.api("getExtension", {}).catch(() => {
|
|
@@ -2347,57 +2373,59 @@ class Ks extends ve {
|
|
|
2347
2373
|
}
|
|
2348
2374
|
}
|
|
2349
2375
|
export {
|
|
2350
|
-
|
|
2351
|
-
|
|
2376
|
+
Ts as ACCESS,
|
|
2377
|
+
He as ACCESS_KEY,
|
|
2352
2378
|
_e as Access,
|
|
2353
2379
|
dt as BUILD_IN_TAGS,
|
|
2354
2380
|
ft as BUILT_IN_DIRECTIVES,
|
|
2355
2381
|
ve as BaseService,
|
|
2356
2382
|
Re as CONTEXT_HOST,
|
|
2357
|
-
|
|
2383
|
+
Nt as Context,
|
|
2358
2384
|
y as ContextMode,
|
|
2359
2385
|
pt as DATA_TYPES,
|
|
2360
2386
|
J as HOMEPAGE_ROUTE_NAME,
|
|
2361
2387
|
Me as HTML_TAGS,
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
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,
|
|
2373
2399
|
ge as adoptedStyleSheets,
|
|
2374
|
-
|
|
2400
|
+
qs as clearLoaderCache,
|
|
2375
2401
|
yt as compileScopedCSS,
|
|
2376
2402
|
$t as convertCssRpx,
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2403
|
+
Ls as createAccess,
|
|
2404
|
+
Bs as createAdapter,
|
|
2405
|
+
xs as createAssetScripts,
|
|
2406
|
+
Ds as createAssetsCss,
|
|
2407
|
+
zt as createDataSources,
|
|
2382
2408
|
pe as createLoader,
|
|
2383
|
-
|
|
2409
|
+
Vs as createMemoryService,
|
|
2384
2410
|
V as createMenus,
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2411
|
+
Tt as createMetaApi,
|
|
2412
|
+
Ht as createMock,
|
|
2413
|
+
Js as createProvider,
|
|
2388
2414
|
fe as createRenderer,
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2415
|
+
Mt as createSchemaApi,
|
|
2416
|
+
xt as createSchemaApis,
|
|
2417
|
+
zs as createServiceRequest,
|
|
2418
|
+
Qt as defaultLoader,
|
|
2393
2419
|
q as fillBasePath,
|
|
2394
2420
|
N as getMock,
|
|
2395
2421
|
qe as getModifiers,
|
|
2396
2422
|
Be as getPlugin,
|
|
2397
2423
|
_t as getRawComponent,
|
|
2424
|
+
Ct as isArrowFunction,
|
|
2398
2425
|
jt as isBuiltInTag,
|
|
2399
2426
|
Q as isCSSUrl,
|
|
2400
|
-
|
|
2427
|
+
Pt as isCallFunction,
|
|
2428
|
+
It as isJSCode,
|
|
2401
2429
|
E as isJSExpression,
|
|
2402
2430
|
$ as isJSFunction,
|
|
2403
2431
|
ht as isJSON,
|
|
@@ -2406,12 +2434,12 @@ export {
|
|
|
2406
2434
|
bt as isVuePlugin,
|
|
2407
2435
|
Et as loadCss,
|
|
2408
2436
|
xe as loadCssUrl,
|
|
2409
|
-
|
|
2437
|
+
Ks as loadEnhance,
|
|
2410
2438
|
De as loadScriptUrl,
|
|
2411
2439
|
Ue as menusFilter,
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2440
|
+
kt as mockApi,
|
|
2441
|
+
Dt as mockApis,
|
|
2442
|
+
ke as mockCleanup,
|
|
2415
2443
|
x as nodeCache,
|
|
2416
2444
|
T as nodeRender,
|
|
2417
2445
|
gt as parseDeps,
|
|
@@ -2421,9 +2449,9 @@ export {
|
|
|
2421
2449
|
Je as providerKey,
|
|
2422
2450
|
mt as removeProdFlag,
|
|
2423
2451
|
St as rpxToPx,
|
|
2424
|
-
|
|
2452
|
+
ks as setupPageSetting,
|
|
2425
2453
|
Te as toString,
|
|
2426
|
-
|
|
2427
|
-
|
|
2454
|
+
Ot as useAccess,
|
|
2455
|
+
Us as useMask,
|
|
2428
2456
|
Ke as useProvider
|
|
2429
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.26"
|
|
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";
|