@vtj/renderer 0.13.32 → 0.13.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +5 -5
- package/dist/index.mjs +49 -47
- package/package.json +6 -6
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("@vtj/core"),f=require("@vtj/utils")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("@vtj/core"),f=require("@vtj/utils"),j=require("vue"),ve=require("vue-router");function Ze(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const G=Ze(j);/**!
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
|
3
3
|
* @name @vtj/renderer
|
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
5
|
-
* @version 0.13.
|
|
5
|
+
* @version 0.13.34
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
|
-
*/const O="0.13.
|
|
7
|
+
*/const O="0.13.34";var S=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(S||{});const te=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],et=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],_e=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],Se={String,Number,Boolean,Array,Object,Function,Date},F="VtjPage",L="VtjHomepage",we="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(","),Ee="component,slot".split(","),tt=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),st={auth:["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o","/","a","u","t","h",".","h","t","m","l"].join(""),storageKey:["R","R","O","_","I","D","E","_","A","C","C","E","S","S","_","S","T","O","R","A","G","E","_","_"].join(""),privateKey:"MIIBOgIBAAJBAKoIzmn1FYQ1YOhOBw9EhABxZ+PySAIaydI+zdhoKflrdgJ4A5E4/5gbQmRpk09hPWG8nvX7h+l/QLU8kXxAIBECAwEAAQJAAlgpxQY6sByLsXqzJcthC8LSGsLf2JEJkHwlnpwFqlEV8UCkoINpuZ2Wzl+aftURu5rIfAzRCQBvHmeOTW9/zQIhAO5ufWDmnSLyfAAsNo5JRNpVuLFCFodR8Xm+ulDlosR/AiEAtpAltyP9wmCABKG/v/hrtTr3mcvFNGCjoGa9bUAok28CIHbrVs9w1ijrBlvTsXYwJw46uP539uKRRT4ymZzlm9QjAiB+1KH/G9f9pEEL9rtaSOG7JF5D0JcOjlze4MGVFs+ZrQIhALKOUFBNr2zEsyJIjw2PlvEucdlG77UniszjXTROHSPd"};function x(r,e){return r.map(t=>f.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function B(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function $e(r){return/\.json$/.test(r)}function rt(r){return r.map(e=>`<script src="${f.url.append(e,{v:O})}"><\/script>`).join("")}function nt(r=[]){return r.map(e=>`<link rel="stylesheet" href="${f.url.append(e,{v:O})}" />`).join("")}function je(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function be(r,e,t=!1){const s=r.filter(d=>!!d.enabled),n=[],o=[],a=[],i=[],l={},c={},u=[],p={};return s.forEach(({urls:d,assetsUrl:m,library:h,assetsLibrary:g,localeLibrary:y})=>{d?.forEach(v=>{N(v)&&n.push(je(v,t)),B(v)&&o.push(v)}),h&&(i.push(h),l[h]=x(d||[],e),y&&(c[h]=y)),m&&a.push(m),g&&u.push(g),h&&g&&(p[g]=h)}),{scripts:x(n,e),css:x(o,e),materials:x(a,e),libraryExports:i,materialExports:f.dedupArray(u),materialMapLibrary:p,libraryMap:l,libraryLocaleMap:c}}function Re(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function Ce(r=[]){const e=r.filter(s=>B(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function Pe(r,e){const t=c=>{const u=[];let p=0;for(;p<c.length;){if(/\s/.test(c[p])){p++;continue}if(c.substring(p,p+2)==="/*"){const v=c.indexOf("*/",p+2);if(v!==-1){p=v+2;continue}}if(c[p]==="@"){const v=p;for(;p<c.length&&c[p]!=="{"&&c[p]!==";";)p++;const w=c.substring(v,p).trim(),_=w.includes("@keyframes");if(c[p]===";")u.push({type:"simple-at-rule",content:c.substring(v,p+1)}),p++;else if(c[p]==="{"){const E=p+1;let A=1;for(p++;p<c.length&&A>0;)c[p]==="{"?A++:c[p]==="}"&&A--,p++;const W=c.substring(v,p),I=c.substring(E,p-1);u.push({type:_?"keyframes":"at-rule",rule:w,content:W,inner:I})}continue}const d=p;for(;p<c.length&&c[p]!=="{";)p++;if(p>=c.length)break;const m=c.substring(d,p).trim();if(!m){p++;continue}const h=p+1;let g=1;for(p++;p<c.length&&g>0;)c[p]==="{"?g++:c[p]==="}"&&g--,p++;const y=c.substring(h,p-1);u.push({type:"rule",selector:m,content:y.trim()})}return u},s=c=>{const u=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(u)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(u,p,d)=>{const m=p.trim(),h=d.trim();return m?`${m}[${e}] ${h}`:h}),o=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const p=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(p){const[,d,m=""]=p,h=d.trim();return h?`${h}[${e}]${m}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(p=>o(p)).filter(p=>p.trim()).join(", "),i=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const d=t(u.inner),m=i(d);return`${u.rule} { ${m} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const p=a(u.selector);return p.trim()?`${p} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),l=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
|
|
8
8
|
`),u=t(c),p=i(u);return l(p)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,u=>u).replace(/([^{}@]+)(?=\s*{)/g,u=>{const p=u.trim();return!p||p.startsWith("@")||p.includes(`[${e}]`)||s(p)?u:`${p}[${e}]`})}}function ne(r){return f.isString(r)?r:JSON.stringify(r)}function z(r,e,t,s=!1){const n=r.CSSStyleSheet,o=s?`data-v-${e}`:e,a=s?Pe(t,o):t;if(n.prototype.replaceSync){const i=new n;i.id=e,i.replaceSync(a);const l=r.document,c=l.adoptedStyleSheets,u=Array.from(c).filter(p=>p.id!==e);l.adoptedStyleSheets=[...u,i]}else{const i=r.document;let l=i.getElementById(e);l?l.innerHTML=a:(l=i.createElement("style"),l.id=e,l.innerHTML=a,i.head.appendChild(l))}}function ot(r){const e=r.adoptedStyleSheets||[];let t="";if(e.forEach(s=>{try{for(const n of s.cssRules)t+=n.cssText+`
|
|
9
9
|
`}catch(n){console.error("Failed to read cssRules from adopted stylesheet:",n)}}),t){const s=r.createElement("style");s.textContent=t,r.head.appendChild(s)}}async function Ae(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&z(window,r,t)}function oe(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function ie(r,e,t=window){const s=t.document,n=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of r){const c=s.createElement("script");c.src=l,c.onload=()=>{o=t[e],o?a(o.default||o):i(null)},c.onerror=u=>{i(u)},n.appendChild(c)}})}function Ie(r){return f.isFunction(r)&&Object.getOwnPropertyNames(r.prototype||{}).length===0||f.isFunction(r?.install)}function Me(r){return Ee.includes(r)}function Te(r){return we.includes(r)}function D(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function it(r,e,t){Object.assign(e.meta,t.meta);const s=r?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function H(r,e,t=!1,s=!1,n=!1){try{const o=['"use strict";',"var __self = arguments[0];"];o.push("return ");let a=(r.value||"").trim();n||(a=a.replace(/this(\W|$)/g,(l,c)=>`__self${c}`)),a=o.join(`
|
|
10
10
|
`)+a;const i=n?`
|
|
11
11
|
${a}
|
|
12
|
-
`:`with(${t?"{}":"$scope || {}"}) { ${a} }`;return new Function("$scope",i)(e)}catch(o){if(f.logger.error("parseExpression.error",o,r,e?.__self??e),s)throw o}}function P(r,e,t=!1,s=!1,n=!1){const o=H(r,e,t,s,n);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return o}function R(r){return r&&r.type==="JSExpression"}function b(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function ke(r){return R(r)||b(r)}function at(r){return ke(r)?r.value:JSON.stringify(r)}const ct={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ae=Symbol("access");class V{options;data=null;mode=S.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},ct,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode!==S.Design&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),n&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):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(ae,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>f.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}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===F){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),f.isFunction(n)?(n(),t(!1)):f.isString(n)?t(n):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 t?(await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):(window.alert(e),!1)}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Oe(){return $.inject(ae,null)}function lt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:a,alert:i}=r;let l=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{l&&l.close(),t&&(l=t())},hideLoading:()=>{l&&(l.close(),l=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:a,alert:i,startupComponent:n,access:o?new V({alert:i,...o}):void 0}}function ut(r={}){return new V(r)}function Fe(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?H(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,i)=>(delete o.data,s.send(f.merge(o,i||{},{data:a})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,a)}}function He(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Fe(n,t);for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=D(e);t&&(ce(e),r.forEach(s=>Ue(t,s)))}function Le(r,e=window){const t=b(r.mockTemplate)&&r.mockTemplate.value?P(r.mockTemplate,{},!0):void 0,s=D(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(a){f.logger.warn("模拟数据模版异常",a)}return s?.mock(o)}}function Ue(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const n=f.isUrl(t)?new URL(t).pathname:t,o=f.pathToRegexp(`(.*)${n}(.*)`),a=f.pathToRegexpMatch(n,{decode:decodeURIComponent}),i=H(s,{},!0);r.mock(o,l=>{const c=f.url.parse(l.url)||{},u=l.body instanceof FormData?f.formDataToJson(l.body):l.body,p=f.isUrl(l.url)?new URL(l.url).pathname:l.url.split("?")[0],d=a(p)?.params;Object.assign(l,{data:u,params:d,query:c});try{return r.mock(i(l))}catch(m){return console.warn("[mockApi]",o,l,m),null}})}catch(n){console.warn("mockApi",n)}}function ce(r=window){const e=D(r);e&&(e._mocked={})}class Be{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=G){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&te.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){te.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return P({type:s,value:n},this)}else return P(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return H({type:s,value:n},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode!==S.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await f.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,S.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const o=new Set([].concat(n,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 J(r){const{Vue:e=G,mode:t=S.Runtime,components:s={},libs:n={},apis:o={},loader:a}=r,i=e.computed(()=>r.dsl),l={$components:s,$libs:n,$apis:o},c=new Be({mode:t,dsl:i.value,attrs:l}),u=e.defineComponent({name:i.value.name,__scopeId:i.value.id?`data-v-${i.value.id}`:void 0,props:{...ft(i.value.props??[],c)},setup(p){c.$props=p,c.props=p,i.value.id&&z(r.window||window,i.value.id,i.value.css||"",!0),c.state=dt(e,i.value.state??{},c);const d=ht(e,i.value.computed??{},c),m=mt(i.value.methods??{},c),h=gt(e,i.value.inject,c);for(const[v,w]of Object.entries(h||{}))h[v]=e.inject(v,w);const g=Ne(i.value.dataSources||{},c),y={...h,...d,...m,...g};return c.setup(y,e),yt(e,i.value.watch??[],c),{vtj:c,state:c.state,...d,...m}},emits:pt(i.value.emits),expose:["vtj",...i.value.expose||[]],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?k(p[0],c,e,a,p):p.map(d=>k(d,c,e,a,p))},...vt(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function pt(r=[]){return r.map(e=>f.isString(e)?e:e.name)}function ft(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:R(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function dt(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return R(o)?o=t.__parseExpression(o):b(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function ht(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function gt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:a}=n||{};n.default;const i=R(a)?t.__parseExpression(a)||o:a??o,l=R(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(i,l),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Le(n);else if(n.ref){const o=e.$apis[n.ref],a=b(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l}}return t},{})}function yt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await f.delay(0),f.isFunction(o)&&o()},t},{})}const qe=new f.Queue;let X=[],T={};const Je=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(i=>N(i));if(n.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&oe(o,e),await ie(n,s,e).catch(i=>(console.warn("loadScriptUrl error",n,s,i),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(X.forEach(n=>{delete s.window[n]}),X=[]),(n,o,a=G)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return a.defineAsyncComponent(async()=>{const i=T[o.id]||await qe.add(o.id,()=>e(o.id));return i&&(i.name=n,T[o.id]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return a.defineAsyncComponent(async()=>{const i=T[o.url]||await t(o.url);return i&&(i.name=n,T[o.url]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let i=o.library?T[o.library]:null;return i||(o.library&&X.push(o.library),i=T[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await le(o,s.window);return l||(console.warn("getPlugin result is null",o),null)}),i)}return n}}function _t(){T={},qe.clearAllCache()}function k(r,e,t=G,s=Je,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:i=null,directives:l=[]}=r,{vIf:c,vElseIf:u,vElse:p,vFor:d,vShow:m,vModels:h,vBind:g,vHtml:y,others:v}=Ke(l);if(!o&&(u||p))return null;if(c&&!wt(c,e))return bt(r,e,t,s,n);const w=(_,E=0)=>{const A=_.$components,W=(()=>{if(r.name==="component")return Et(_,r.props?.is);if(r.name==="slot")return r.name;const C=s(r.name,r.from,t);if(f.isString(C))return Me(C)||Te(C)?C:A[C]??a?.app?.component(C)??C;if(f.isObject(C)&&r.id){const ge=`Loader${r.id}_${E}`,ye=A[ge];return ye||(A[ge]=C)}return C})(),I=jt(i,r.props??{},_),We=$t(t,r.events??{},_);if(r.name==="slot")return Rt(t,r,I,_,s);g&&Object.assign(I,_.__parseExpression(g.value)),m&&(I.style=Object.assign(I.style??{},Pt(m,_))),y&&Object.assign(I,At(y,_)),h.forEach(C=>{Object.assign(I,It(t,C,_))});const Ye=Mt(t,r.children??[],_,s,r),he=_?.__id?`data-v-${_.__id}`:void 0,Xe=he?{[he]:""}:{};let Y=t.createVNode(W,{key:`${i}_${E}`,...Xe,...I,...We},Ye);const me=a?St(a,v,_):[];return me.length&&(Y=t.withDirectives(Y,me)),Y};return d?Ot(d,w,e):w(e)}function St(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const a=[o];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function Ke(r=[]){const e=r.find(u=>f.camelCase(u.name)==="vIf"),t=r.find(u=>f.camelCase(u.name)==="vElseIf"),s=r.find(u=>f.camelCase(u.name)==="vElse"),n=r.find(u=>f.camelCase(u.name)==="vFor"),o=r.find(u=>f.camelCase(u.name)==="vShow"),a=r.find(u=>f.camelCase(u.name)==="vBind"),i=r.find(u=>f.camelCase(u.name)==="vHtml"),l=r.filter(u=>f.camelCase(u.name)==="vModel"),c=r.filter(u=>!_e.includes(f.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:l,vBind:a,others:c,vHtml:i}}function wt(r,e){return!!e.__parseExpression(r.value)}function Et(r,e){return e?R(e)?r.__parseExpression(e):e:"div"}function jt(r,e,t){const s=se(e,t);return s.ref=t.__ref(r,s.ref),s}function se(r,e){return R(r)?e.__parseExpression(r):b(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>se(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=se(n,e),t},{}):r}function $t(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=ue(i.modifiers),c=l.find(d=>s.includes(d)),u="on"+f.upperFirst(a)+(c&&n[c]||""),p=t.__parseFunction(i.handler);return p&&(o[u]=r.withModifiers(p,l)),o},{})}function bt(r,e,t,s,n=[]){let o=n.findIndex(a=>a.id===r.id);for(let a=++o;a<n.length;a++){const{directives:i=[]}=n[a],{vElseIf:l,vElse:c}=Ke(i);if(l){if(e.__parseExpression(l.value))return k(n[a],e,t,s,n,!0);continue}if(c)return k(n[a],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function Rt(r,e,t,s,n){const{children:o}=e,a=Ct(e,s),i=s.$slots?.[a.name];return i?i(t):o?f.isString(o)?r.createTextVNode(o):R(o)?r.createTextVNode(ne(s.__parseExpression(o))):Array.isArray(o)?o.map(l=>k(l,s,r,n,o)):null:null}function Ct(r,e){const{props:t}=r,s=t?.name||"default";return{name:R(s)?e.__parseExpression(s):s,params:[]}}function Pt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function At(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function It(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
|
12
|
+
`:`with(${t?"{}":"$scope || {}"}) { ${a} }`;return new Function("$scope",i)(e)}catch(o){if(f.logger.error("parseExpression.error",o,r,e?.__self??e),s)throw o}}function P(r,e,t=!1,s=!1,n=!1){const o=H(r,e,t,s,n);if(typeof o!="function"&&(f.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return o}function R(r){return r&&r.type==="JSExpression"}function b(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function ke(r){return R(r)||b(r)}function at(r){return ke(r)?r.value:JSON.stringify(r)}const ct={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ae=Symbol("access");class V{options;data=null;mode=S.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},ct,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode!==S.Design&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(f.storage.save(t,e,{type:"local",prefix:s}),n&&f.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,f.storage.remove(e,{type:"local",prefix:t}),s&&f.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):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(ae,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>f.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}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===F){const t=e.params.id;return t&&this.can(t)}return e.meta.__vtj__?this.can(e.meta.__vtj__):!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),f.isFunction(n)?(n(),t(!1)):f.isString(n)?t(n):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 t?(await f.delay(150),await t(e,{title:"提示",type:"warning"})?.catch(()=>!1)):(window.alert(e),!1)}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Oe(){return j.inject(ae,null)}function lt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:a,alert:i}=r;let l=null;return{request:f.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{l&&l.close(),t&&(l=t())},hideLoading:()=>{l&&(l.close(),l=null)},...s}}),jsonp:f.jsonp,notify:e,loading:t,useTitle:a,alert:i,startupComponent:n,access:o?new V({alert:i,...o}):void 0}}function ut(r={}){return new V(r)}function Fe(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?H(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,i)=>(delete o.data,s.send(f.merge(o,i||{},{data:a})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,a)}}function He(r=[],e=[],t){const s={};for(const n of r){const o=Fe(n,t);s[n.id]=o,s[n.name]=o}for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=D(e);t&&(ce(e),r.forEach(s=>Ue(t,s)))}function Le(r,e=window){const t=b(r.mockTemplate)&&r.mockTemplate.value?P(r.mockTemplate,{},!0):void 0,s=D(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(a){f.logger.warn("模拟数据模版异常",a)}return s?.mock(o)}}function Ue(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s)try{const n=f.isUrl(t)?new URL(t).pathname:t,o=f.pathToRegexp(`(.*)${n}(.*)`),a=f.pathToRegexpMatch(n,{decode:decodeURIComponent}),i=H(s,{},!0);r.mock(o,l=>{const c=f.url.parse(l.url)||{},u=l.body instanceof FormData?f.formDataToJson(l.body):l.body,p=f.isUrl(l.url)?new URL(l.url).pathname:l.url.split("?")[0],d=a(p)?.params;Object.assign(l,{data:u,params:d,query:c});try{return r.mock(i(l))}catch(m){return console.warn("[mockApi]",o,l,m),null}})}catch(n){console.warn("mockApi",n)}}function ce(r=window){const e=D(r);e&&(e._mocked={})}class Be{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=G){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&te.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){te.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return P({type:s,value:n},this)}else return P(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return H({type:s,value:n},this)}else return H(e,this)}__ref(e=null,t){if(this.__mode!==S.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await f.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,S.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const o=new Set([].concat(n,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 J(r){const{Vue:e=G,mode:t=S.Runtime,components:s={},libs:n={},apis:o={},loader:a}=r,i=e.computed(()=>r.dsl),l={$components:s,$libs:n,$apis:o},c=new Be({mode:t,dsl:i.value,attrs:l}),u=e.defineComponent({name:i.value.name,__scopeId:i.value.id?`data-v-${i.value.id}`:void 0,props:{...ft(i.value.props??[],c)},setup(p){c.$props=p,c.props=p,i.value.id&&z(r.window||window,i.value.id,i.value.css||"",!0),c.state=dt(e,i.value.state??{},c);const d=ht(e,i.value.computed??{},c),m=mt(i.value.methods??{},c),h=gt(e,i.value.inject,c);for(const[v,w]of Object.entries(h||{}))h[v]=e.inject(v,w);const g=Ne(i.value.dataSources||{},c),y={...h,...d,...m,...g};return c.setup(y,e),yt(e,i.value.watch??[],c),{vtj:c,state:c.state,...d,...m}},emits:pt(i.value.emits),expose:["vtj",...i.value.expose||[]],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?k(p[0],c,e,a,p):p.map(d=>k(d,c,e,a,p))},...vt(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function pt(r=[]){return r.map(e=>f.isString(e)?e:e.name)}function ft(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>f.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:R(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function dt(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return R(o)?o=t.__parseExpression(o):b(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function ht(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function gt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:a}=n||{};n.default;const i=R(a)?t.__parseExpression(a)||o:a??o,l=R(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(i,l),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Le(n);else if(n.ref){const o=e.$apis[n.ref],a=b(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l}}return t},{})}function yt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await f.delay(0),f.isFunction(o)&&o()},t},{})}const qe=new f.Queue;let X=[],T={};const Je=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(i=>N(i));if(n.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&oe(o,e),await ie(n,s,e).catch(i=>(console.warn("loadScriptUrl error",n,s,i),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(X.forEach(n=>{delete s.window[n]}),X=[]),(n,o,a=G)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return a.defineAsyncComponent(async()=>{const i=T[o.id]||await qe.add(o.id,()=>e(o.id));return i&&(i.name=n,T[o.id]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return a.defineAsyncComponent(async()=>{const i=T[o.url]||await t(o.url);return i&&(i.name=n,T[o.url]=i),i?J({...s,Vue:a,dsl:f.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let i=o.library?T[o.library]:null;return i||(o.library&&X.push(o.library),i=T[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const l=await le(o,s.window);return l||(console.warn("getPlugin result is null",o),null)}),i)}return n}}function _t(){T={},qe.clearAllCache()}function k(r,e,t=G,s=Je,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:i=null,directives:l=[]}=r,{vIf:c,vElseIf:u,vElse:p,vFor:d,vShow:m,vModels:h,vBind:g,vHtml:y,others:v}=Ke(l);if(!o&&(u||p))return null;if(c&&!wt(c,e))return bt(r,e,t,s,n);const w=(_,E=0)=>{const A=_.$components,W=(()=>{if(r.name==="component")return Et(_,r.props?.is);if(r.name==="slot")return r.name;const C=s(r.name,r.from,t);if(f.isString(C))return Me(C)||Te(C)?C:A[C]??a?.app?.component(C)??C;if(f.isObject(C)&&r.id){const ge=`Loader${r.id}_${E}`,ye=A[ge];return ye||(A[ge]=C)}return C})(),I=$t(i,r.props??{},_),We=jt(t,r.events??{},_);if(r.name==="slot")return Rt(t,r,I,_,s);g&&Object.assign(I,_.__parseExpression(g.value)),m&&(I.style=Object.assign(I.style??{},Pt(m,_))),y&&Object.assign(I,At(y,_)),h.forEach(C=>{Object.assign(I,It(t,C,_))});const Ye=Mt(t,r.children??[],_,s,r),he=_?.__id?`data-v-${_.__id}`:void 0,Xe=he?{[he]:""}:{};let Y=t.createVNode(W,{key:`${i}_${E}`,...Xe,...I,...We},Ye);const me=a?St(a,v,_):[];return me.length&&(Y=t.withDirectives(Y,me)),Y};return d?Ot(d,w,e):w(e)}function St(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const a=[o];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function Ke(r=[]){const e=r.find(u=>f.camelCase(u.name)==="vIf"),t=r.find(u=>f.camelCase(u.name)==="vElseIf"),s=r.find(u=>f.camelCase(u.name)==="vElse"),n=r.find(u=>f.camelCase(u.name)==="vFor"),o=r.find(u=>f.camelCase(u.name)==="vShow"),a=r.find(u=>f.camelCase(u.name)==="vBind"),i=r.find(u=>f.camelCase(u.name)==="vHtml"),l=r.filter(u=>f.camelCase(u.name)==="vModel"),c=r.filter(u=>!_e.includes(f.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:l,vBind:a,others:c,vHtml:i}}function wt(r,e){return!!e.__parseExpression(r.value)}function Et(r,e){return e?R(e)?r.__parseExpression(e):e:"div"}function $t(r,e,t){const s=se(e,t);return s.ref=t.__ref(r,s.ref),s}function se(r,e){return R(r)?e.__parseExpression(r):b(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>se(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=se(n,e),t},{}):r}function jt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=ue(i.modifiers),c=l.find(d=>s.includes(d)),u="on"+f.upperFirst(a)+(c&&n[c]||""),p=t.__parseFunction(i.handler);return p&&(o[u]=r.withModifiers(p,l)),o},{})}function bt(r,e,t,s,n=[]){let o=n.findIndex(a=>a.id===r.id);for(let a=++o;a<n.length;a++){const{directives:i=[]}=n[a],{vElseIf:l,vElse:c}=Ke(i);if(l){if(e.__parseExpression(l.value))return k(n[a],e,t,s,n,!0);continue}if(c)return k(n[a],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function Rt(r,e,t,s,n){const{children:o}=e,a=Ct(e,s),i=s.$slots?.[a.name];return i?i(t):o?f.isString(o)?r.createTextVNode(o):R(o)?r.createTextVNode(ne(s.__parseExpression(o))):Array.isArray(o)?o.map(l=>k(l,s,r,n,o)):null:null}function Ct(r,e){const{props:t}=r,s=t?.name||"default";return{name:R(s)?e.__parseExpression(s):s,params:[]}}function Pt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function At(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function It(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
|
13
13
|
${e.value.value} = v;
|
|
14
|
-
}`:"(v) => {}"},n=t.__parseFunction(s),o=ue(R(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=R(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&n?r.withModifiers(n,o):n}}function Mt(r,e,t,s,n){if(!e)return null;if(f.isString(e))return{default:()=>e};if(R(e))return{default:()=>ne(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Tt(e),a=(i,l)=>!i||!n?{}:n?.id&&Object.keys(i).length?l?{[l]:i}:{[`scope_${n.id}`]:i}:l?{[l]:Object.create(null)}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:u,scope:p}])=>(i[l]=d=>{const m=u.length?f.pick(d??{},u):a(d,p);return c.map(h=>k(h,t.__clone(m),r,s,c))},i),{})}return null}function Tt(r){const e={};for(const t of r){const s=kt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function kt(r="default"){return f.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Ot(r,e,t){const{value:s,iterator:n}=r,{item:o="item",index:a="index"}=n||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((l,c)=>c+1)),Array.isArray(i)?i.map((l,c)=>e(t.__clone({[o]:l,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const Z=$.defineComponent({name:"VtjPageContainer",async setup(){const r=de(),e=ve.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,o=$.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?$.h(r,{...e,key:t}):$.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Ft=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}});function U(r,e,t=[]){const s=[];for(const n of t){const{id:o,title:a,icon:i,children:l,hidden:c,layout:u}=n;if(u){const p=U(r,e,l||[]);s.push(...p)}else{const p={id:o,title:a,icon:i,hidden:c,url:`${r}/${e}/${o}`,children:l&&l.length?U(r,e,l):void 0};s.push(p)}}return s}function pe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=pe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Dt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=de(),o=ve.useRoute(),a=Oe(),i=$.ref(!1),l=$.ref(!1),c=n.project,u=(m,h)=>{i.value=!m?.mask,l.value=h?.pure??!!m?.pure};$.watchEffect(()=>{const{name:m,params:h,meta:g}=o;if(m===F){const y=n.getPage(h.id);u(y,g)}else if(m===L){const y=n.getHomepage();u(y,g)}else{const y=g.__vtj__;if(y){const v=n.getPage(y);u(v,g)}else i.value=!g.mask,l.value=!!g.pure}});const p=U(e,t,c?.pages),d=c?.config;return{disabled:i,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:pe(p,a),pure:l}}function ee(r,e){const{id:t,title:s,meta:n}=r,{name:o="page",prefix:a="",component:i,routeMeta:l}=e;return{name:t,path:`${a}${o}/${t}`,component:i,meta:{title:s,...l,...n,__vtj__:t}}}function re(r){const{name:e="page",prefix:t="",pages:s=[],component:n,loader:o,routeMeta:a,homepage:i}=r,l=[];for(const c of s){const{id:u,title:p,dir:d,layout:m,children:h,meta:g}=c;if(d){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]});l.push(...y)}else if(m){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]}),v={name:`layout_${u}`,path:t,component:()=>o(u),meta:{title:p,...a,...g,__vtj__:u},children:y};l.push(v),l.push(ee(c,r))}else if(l.push(ee(c,r)),i===u){const y=ee(c,r);y.path="",y.name=`home_${u}`,l.push(y)}}return l}function Ht(r={},e){const{css:t,store:s,enhance:n}=r,{window:o,app:a,library:i={},adapter:l,mode:c}=e,{Pinia:u}=i;a.config.globalProperties.$libs=i,z(o,"global-css",t||""),u&&s&&xt(s,a,u),Ut(a,l,r),!l.access&&r.access&&Lt(r.access,a,c,l),Bt(a,r),n&&Nt(n,a,i)}function xt(r,e,t){const s=t.createPinia();if(e.use(s),b(r)&&r.value){const n=P(r,{},!1,!1,!0),o=t.defineStore("$store",n(e)||{});e.config.globalProperties.$store=o()}}function Lt(r,e,t,s){if(b(r)&&r.value){const n=P(r,{},!1,!1,!0),{alert:o,request:a}=s,i=new V({alert:o,storagePrefix:"__VTJ_APP_",...n(e)}),l=e.config.globalProperties.$router;i.connect({mode:t,router:l,request:a}),e.use(i)}}function Ut(r,e,t){if(!e.request)return;const{axios:s,request:n,response:o}=t;if(s&&b(s)&&s.value){const a=P(s,{},!1,!1,!0);e.request.setConfig(a(r))}if(n&&b(n)&&n.value){const a=P(n,{},!1,!1,!0),i=e.request;i.__unReq&&i.__unReq(),i.__unReq=e.request.useRequest(l=>a(l,r))}if(o&&b(o)&&o.value){const a=P(o,{},!1,!1,!0),i=e.request;i.__unRes&&i.__unRes(),i.__unRes=e.request.useResponse(l=>a(l,r))}}function Bt(r,e){const{beforeEach:t,afterEach:s}=e,n=r.config.globalProperties.$router;if(t&&b(t)&&t.value){const o=P(t,{},!1,!1,!0);n&&n.beforeEach((a,i,l)=>o(a,i,l,r))}if(s&&b(s)&&s.value){const o=P(s,{},!1,!1,!0);n&&n.afterEach((a,i,l)=>o(a,i,l,r))}}function Nt(r,e,t={}){b(r)&&r.value&&P(r,{},!1,!1,!0)(e,t)}function qt(r,e,t){if(!r||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:n,fallbackLocale:o,messages:a=[]}=t,i={};for(let c of a){const u=Object.keys(c).filter(p=>p!=="key");for(const p of u)i[p]||(i[p]={}),i[p][c.key]=c[p]}const l=s.createI18n({legacy:!1,locale:n,fallbackLocale:o,messages:i});r.use(l)}}const fe=Symbol("Provider");var Ge=(r=>(r.Production="production",r.Development="development",r))(Ge||{});class ze extends M.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:n,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:u=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=p,this.nodeEnv=d,n&&(this.dependencies=n),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i);const{access:m,request:h}=this.adapter;m&&m.connect({mode:s,router:u,request:h}),a&&s!==S.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(o){f.logger.warn("模拟数据模版异常",o)}return D()?.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:n=[],meta:o=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=He(n,o,this.adapter),ce(a),xe(n,a),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=D(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:o,materialPath:a,nodeEnv:i,libraryLocales:l}=this,{libraryExports:c,libraryMap:u,materials:p,materialExports:d,materialMapLibrary:m,libraryLocaleMap:h}=be(t,a,i==="development");Object.assign(this.libraryLocaleMap,h);for(const g of c){const y=s[g],v=e[g];if(v)n[g]=v;else if(y)e[g]=n[g]=await y();else{const _=u[g]||[];for(const E of _)B(E)&&await Ae(E,f.url.append(E,{v:O})),N(E)&&await f.loadScript(f.url.append(E,{v:O}));n[g]=e[g]}const w=h[g];if(w){const _=s[w];l[w]=_?await _():e[w]}}if(i==="development"){for(const y of p)await f.loadScript(f.url.append(y,{v:O}));const g=this.materials||{};for(const y of d){const v=e[m[y]],w=v?.default||v,_=M.BUILT_IN_COMPONENTS[y];if(_)w&&_.forEach(E=>{o[E]=w[E]});else{const E=g[y]?(await g[y]()).default:e[y];E&&w&&(E.components||[]).forEach(A=>{o[A.name]=Re(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:i=o,routeMeta:l}=s,c=a?"":"/",u={path:`${c}${i}/:id`,name:F,component:Z},p={path:c,name:L,component:t?.homepage?Z:n.startupComponent||Ft,meta:l};if(e.hasRoute(F)&&e.removeRoute(F),e.hasRoute(L)&&e.removeRoute(L),s.enableStaticRoute){const d=t?.pages||[];re({name:i,prefix:c,pages:d,component:Z,loader:this.getRenderComponent.bind(this),homepage:t?.homepage}).forEach(h=>{a?e.addRoute(a,h):e.addRoute(h)}),t?.homepage||(a?e.addRoute(a,p):e.addRoute(p))}else a?(e.addRoute(a,u),e.addRoute(a,p)):(e.addRoute(u),e.addRoute(p))}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,n=e.config.globalProperties.installed||{};for(const[o,a]of Object.entries(this.library))if(!n[o]&&Ie(a)){const i=s[t[o]];e.use(a,{locale:i}),n[o]=!0}e.provide(fe,this),e.config.globalProperties.$provider=this,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&&(e.config.errorHandler=(o,a,i)=>{const l=a?.$options.name,c=typeof o=="string"?o:o?.message||o?.msg||"未知错误",u=`[ ${l} ] ${c} ${i}`;console.error("[VTJ Error]:",{err:o,instance:a,info:i},o?.stack),this.adapter.notify&&this.adapter.notify(u,"组件渲染错误","error")}),e.config.globalProperties.installed=n}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,o=[])=>{for(const a of o){if(a.id===n)return a;if(a.children&&a.children.length){const i=s(n,a.children);if(i)return i}}};return s(e,t)||null}getMenus(e="page",t=""){return U(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}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:n,mode:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},l=K({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return J({...i,dsl:e,loader:l})}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,a=`${o}/${e}.vue`,i=this.modules[a]||this.modules[`/src/pages/${e}.vue`];return i?(await i())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const n=await this.getDsl(s.id);return n?this.createDslRenderer(n).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 le(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Ht(e,s)}initI18n(e,t,s){qt(e,t,s)}}function Jt(r){const e=new ze(r);return{provider:e,onReady:s=>e.ready(s)}}function de(r={}){const e=$.inject(fe,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function Kt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(i=>e+i),{css:o,js:a}=Ce(n);if(o.length&&oe(o),a.length)return await ie(a,t).catch(()=>{})}const Ve={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Gt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:Ve}),zt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ve,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function Vt(r){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class Q{constructor(e=f.request){this.req=e,this.api=Gt(e),this.uploader=zt(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 n=this.pluginCaches[s];return n||(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 j=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Qt extends Q{init(e){const t=new M.ProjectModel(e),s=j.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return j.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new M.ProjectModel(e);return j.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return j.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return j.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=j.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return j.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return j.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=j.get(`history_${e}`);if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),j.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=j.get(`history_${e}`),s=new M.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=j.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return j.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{j.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Qe extends Q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new M.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new M.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 n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new M.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let q=null;function Wt(){return q||(q=new Qe,q)}class Yt extends Q{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=st;exports.ACCESS_KEY=ae;exports.Access=V;exports.BUILD_IN_TAGS=Ee;exports.BUILT_IN_DIRECTIVES=_e;exports.BaseService=Q;exports.CONTEXT_HOST=te;exports.Context=Be;exports.ContextMode=S;exports.DATA_TYPES=Se;exports.HOMEPAGE_ROUTE_NAME=L;exports.HTML_TAGS=we;exports.JSCodeToString=at;exports.LIFE_CYCLES_LIST=et;exports.LocalService=Yt;exports.MemoryService=Qe;exports.NodeEnv=Ge;exports.PAGE_ROUTE_NAME=F;exports.Provider=ze;exports.REMOTE=tt;exports.StorageService=Qt;exports.VTJ_RENDERER_VERSION=O;exports.adoptStylesToInline=ot;exports.adoptedStyleSheets=z;exports.clearLoaderCache=_t;exports.compileScopedCSS=Pe;exports.createAccess=ut;exports.createAdapter=lt;exports.createAssetScripts=rt;exports.createAssetsCss=nt;exports.createDataSources=Ne;exports.createLoader=K;exports.createMemoryService=Wt;exports.createMenus=U;exports.createMetaApi=De;exports.createMock=Le;exports.createProvider=Jt;exports.createRenderer=J;exports.createSchemaApi=Fe;exports.createSchemaApis=He;exports.createServiceRequest=Vt;exports.defaultLoader=Je;exports.fillBasePath=x;exports.getMock=D;exports.getModifiers=ue;exports.getPlugin=le;exports.getRawComponent=Re;exports.isBuiltInTag=Me;exports.isCSSUrl=B;exports.isJSCode=ke;exports.isJSExpression=R;exports.isJSFunction=b;exports.isJSON=je;exports.isJSUrl=N;exports.isNativeTag=Te;exports.isVuePlugin=Ie;exports.loadCss=Ae;exports.loadCssUrl=oe;exports.loadEnhance=Kt;exports.loadScriptUrl=ie;exports.menusFilter=pe;exports.mockApi=Ue;exports.mockApis=xe;exports.mockCleanup=ce;exports.nodeRender=k;exports.parseDeps=be;exports.parseExpression=H;exports.parseFunction=P;exports.parseUrls=Ce;exports.providerKey=fe;exports.removeProdFlag=$e;exports.setupPageSetting=it;exports.toString=ne;exports.useAccess=Oe;exports.useMask=Dt;exports.useProvider=de;
|
|
14
|
+
}`:"(v) => {}"},n=t.__parseFunction(s),o=ue(R(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=R(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&n?r.withModifiers(n,o):n}}function Mt(r,e,t,s,n){if(!e)return null;if(f.isString(e))return{default:()=>e};if(R(e))return{default:()=>ne(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Tt(e),a=(i,l)=>!i||!n?{}:n?.id&&Object.keys(i).length?l?{[l]:i}:{[`scope_${n.id}`]:i}:l?{[l]:Object.create(null)}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:u,scope:p}])=>(i[l]=d=>{const m=u.length?f.pick(d??{},u):a(d,p);return c.map(h=>k(h,t.__clone(m),r,s,c))},i),{})}return null}function Tt(r){const e={};for(const t of r){const s=kt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function kt(r="default"){return f.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Ot(r,e,t){const{value:s,iterator:n}=r,{item:o="item",index:a="index"}=n||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((l,c)=>c+1)),Array.isArray(i)?i.map((l,c)=>e(t.__clone({[o]:l,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const Z=j.defineComponent({name:"VtjPageContainer",async setup(){const r=de(),e=ve.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,o=j.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?j.h(r,{...e,key:t}):j.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Ft=j.defineComponent({name:"VtjStartupContainer",render(){return j.h("div","page not found!")}});function U(r,e,t=[]){const s=[];for(const n of t){const{id:o,title:a,icon:i,children:l,hidden:c,layout:u}=n;if(u){const p=U(r,e,l||[]);s.push(...p)}else{const p={id:o,title:a,icon:i,hidden:c,url:`${r}/${e}/${o}`,children:l&&l.length?U(r,e,l):void 0};s.push(p)}}return s}function pe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=pe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Dt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=de(),o=ve.useRoute(),a=Oe(),i=j.ref(!1),l=j.ref(!1),c=n.project,u=(m,h)=>{i.value=!m?.mask,l.value=h?.pure??!!m?.pure};j.watchEffect(()=>{const{name:m,params:h,meta:g}=o;if(m===F){const y=n.getPage(h.id);u(y,g)}else if(m===L){const y=n.getHomepage();u(y,g)}else{const y=g.__vtj__;if(y){const v=n.getPage(y);u(v,g)}else i.value=!g.mask,l.value=!!g.pure}});const p=U(e,t,c?.pages),d=c?.config;return{disabled:i,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:s?p:pe(p,a),pure:l}}function ee(r,e){const{id:t,title:s,meta:n}=r,{name:o="page",prefix:a="",component:i,routeMeta:l}=e;return{name:t,path:`${a}${o}/${t}`,component:i,meta:{title:s,...l,...n,__vtj__:t}}}function re(r){const{name:e="page",prefix:t="",pages:s=[],component:n,loader:o,routeMeta:a,homepage:i}=r,l=[];for(const c of s){const{id:u,title:p,dir:d,layout:m,children:h,meta:g}=c;if(d){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]});l.push(...y)}else if(m){const y=re({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]}),v={name:`layout_${u}`,path:t,component:()=>o(u),meta:{title:p,...a,...g,__vtj__:u},children:y};l.push(v),l.push(ee(c,r))}else if(l.push(ee(c,r)),i===u){const y=ee(c,r);y.path="",y.name=`home_${u}`,l.push(y)}}return l}function Ht(r={},e){const{css:t,store:s,enhance:n}=r,{window:o,app:a,library:i={},adapter:l,mode:c}=e,{Pinia:u}=i;a.config.globalProperties.$libs=i,z(o,"global-css",t||""),u&&s&&xt(s,a,u),Ut(a,l,r),!l.access&&r.access&&Lt(r.access,a,c,l),Bt(a,r),n&&Nt(n,a,i)}function xt(r,e,t){const s=t.createPinia();if(e.use(s),b(r)&&r.value){const n=P(r,{},!1,!1,!0),o=t.defineStore("$store",n(e)||{});e.config.globalProperties.$store=o()}}function Lt(r,e,t,s){if(b(r)&&r.value){const n=P(r,{},!1,!1,!0),{alert:o,request:a}=s,i=new V({alert:o,storagePrefix:"__VTJ_APP_",...n(e)}),l=e.config.globalProperties.$router;i.connect({mode:t,router:l,request:a}),e.use(i)}}function Ut(r,e,t){if(!e.request)return;const{axios:s,request:n,response:o}=t;if(s&&b(s)&&s.value){const a=P(s,{},!1,!1,!0);e.request.setConfig(a(r))}if(n&&b(n)&&n.value){const a=P(n,{},!1,!1,!0),i=e.request;i.__unReq&&i.__unReq(),i.__unReq=e.request.useRequest(l=>a(l,r))}if(o&&b(o)&&o.value){const a=P(o,{},!1,!1,!0),i=e.request;i.__unRes&&i.__unRes(),i.__unRes=e.request.useResponse(l=>a(l,r))}}function Bt(r,e){const{beforeEach:t,afterEach:s}=e,n=r.config.globalProperties.$router;if(t&&b(t)&&t.value){const o=P(t,{},!1,!1,!0);n&&n.beforeEach((a,i,l)=>o(a,i,l,r))}if(s&&b(s)&&s.value){const o=P(s,{},!1,!1,!0);n&&n.afterEach((a,i,l)=>o(a,i,l,r))}}function Nt(r,e,t={}){b(r)&&r.value&&P(r,{},!1,!1,!0)(e,t)}function qt(r,e,t){if(!r||!e||!t)return;const{VueI18n:s}=e;if(s){const{locale:n,fallbackLocale:o,messages:a=[]}=t,i={};for(let c of a){const u=Object.keys(c).filter(p=>p!=="key");for(const p of u)i[p]||(i[p]={}),i[p][c.key]=c[p]}const l=s.createI18n({legacy:!1,locale:n,fallbackLocale:o,messages:i});r.use(l)}}const fe=Symbol("Provider");var Ge=(r=>(r.Production="production",r.Development="development",r))(Ge||{});class ze extends M.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:n,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:u=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=p,this.nodeEnv=d,n&&(this.dependencies=n),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i);const{access:m,request:h}=this.adapter;m&&m.connect({mode:s,router:u,request:h}),a&&s!==S.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:f.request,jsonp:f.jsonp};apis={};dependencies={};materials={};library={};libraryLocales={};libraryLocaleMap={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(o){f.logger.warn("模拟数据模版异常",o)}return D()?.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:n=[],meta:o=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=He(n,o,this.adapter),ce(a),xe(n,a),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=D(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e={}){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e={}){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:o,materialPath:a,nodeEnv:i,libraryLocales:l}=this,{libraryExports:c,libraryMap:u,materials:p,materialExports:d,materialMapLibrary:m,libraryLocaleMap:h}=be(t,a,i==="development");Object.assign(this.libraryLocaleMap,h);for(const g of c){const y=s[g],v=e[g];if(v)n[g]=v;else if(y)e[g]=n[g]=await y();else{const _=u[g]||[];for(const E of _)B(E)&&await Ae(E,f.url.append(E,{v:O})),N(E)&&await f.loadScript(f.url.append(E,{v:O}));n[g]=e[g]}const w=h[g];if(w){const _=s[w];l[w]=_?await _():e[w]}}if(i==="development"){for(const y of p)await f.loadScript(f.url.append(y,{v:O}));const g=this.materials||{};for(const y of d){const v=e[m[y]],w=v?.default||v,_=M.BUILT_IN_COMPONENTS[y];if(_)w&&_.forEach(E=>{o[E]=w[E]});else{const E=g[y]?(await g[y]()).default:e[y];E&&w&&(E.components||[]).forEach(A=>{o[A.name]=Re(A,w)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:i=o,routeMeta:l}=s,c=a?"":"/",u={path:`${c}${i}/:id`,name:F,component:Z},p={path:c,name:L,component:t?.homepage?Z:n.startupComponent||Ft,meta:l};if(e.hasRoute(F)&&e.removeRoute(F),e.hasRoute(L)&&e.removeRoute(L),s.enableStaticRoute){const d=t?.pages||[];re({name:i,prefix:c,pages:d,component:Z,loader:this.getRenderComponent.bind(this),homepage:t?.homepage}).forEach(h=>{a?e.addRoute(a,h):e.addRoute(h)}),t?.homepage||(a?e.addRoute(a,p):e.addRoute(p))}else a?(e.addRoute(a,u),e.addRoute(a,p)):(e.addRoute(u),e.addRoute(p))}install(e){const{libraryLocaleMap:t,libraryLocales:s}=this,n=e.config.globalProperties.installed||{};for(const[o,a]of Object.entries(this.library))if(!n[o]&&Ie(a)){const i=s[t[o]];e.use(a,{locale:i}),n[o]=!0}e.provide(fe,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&&(e.config.errorHandler=(o,a,i)=>{const l=a?.$options.name,c=typeof o=="string"?o:o?.message||o?.msg||"未知错误",u=`[ ${l} ] ${c} ${i}`;console.error("[VTJ Error]:",{err:o,instance:a,info:i},o?.stack),this.adapter.notify&&this.adapter.notify(u,"组件渲染错误","error")}),e.config.globalProperties.installed=n}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,o=[])=>{for(const a of o){if(a.id===n)return a;if(a.children&&a.children.length){const i=s(n,a.children);if(i)return i}}};return s(e,t)||null}getMenus(e="page",t=""){return U(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}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:n,mode:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},l=K({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return J({...i,dsl:e,loader:l})}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,a=`${o}/${e}.vue`,i=this.modules[a]||this.modules[`/src/pages/${e}.vue`];return i?(await i())?.default:this.nodeEnv==="development"&&this.adapter.startupComponent||null}const n=await this.getDsl(s.id);return n?this.createDslRenderer(n).renderer:(f.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return j.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return j.defineAsyncComponent(async()=>await le(e,window))}initGlobals(e,t){const s=Object.assign({adapter:this.adapter,window},t);Ht(e,s)}initI18n(e,t,s){qt(e,t,s)}}function Jt(r){const e=new ze(r);return{provider:e,onReady:s=>e.ready(s)}}function de(r={}){const e=j.inject(fe,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function Kt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(i=>e+i),{css:o,js:a}=Ce(n);if(o.length&&oe(o),a.length)return await ie(a,t).catch(()=>{})}const Ve={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Gt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:Ve}),zt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ve,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function Vt(r){return f.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class Q{constructor(e=f.request){this.req=e,this.api=Gt(e),this.uploader=zt(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=>$e(o))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(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 $=new f.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Qt extends Q{init(e){const t=new M.ProjectModel(e),s=$.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return $.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new M.ProjectModel(e);return $.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return $.save(`materials_${e.id}`,f.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return $.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=$.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return $.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return $.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=$.get(`history_${e}`);if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),$.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=$.get(`history_${e}`),s=new M.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=$.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return $.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{$.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Qe extends Q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new M.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new M.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 n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new M.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let q=null;function Wt(){return q||(q=new Qe,q)}class Yt extends Q{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=st;exports.ACCESS_KEY=ae;exports.Access=V;exports.BUILD_IN_TAGS=Ee;exports.BUILT_IN_DIRECTIVES=_e;exports.BaseService=Q;exports.CONTEXT_HOST=te;exports.Context=Be;exports.ContextMode=S;exports.DATA_TYPES=Se;exports.HOMEPAGE_ROUTE_NAME=L;exports.HTML_TAGS=we;exports.JSCodeToString=at;exports.LIFE_CYCLES_LIST=et;exports.LocalService=Yt;exports.MemoryService=Qe;exports.NodeEnv=Ge;exports.PAGE_ROUTE_NAME=F;exports.Provider=ze;exports.REMOTE=tt;exports.StorageService=Qt;exports.VTJ_RENDERER_VERSION=O;exports.adoptStylesToInline=ot;exports.adoptedStyleSheets=z;exports.clearLoaderCache=_t;exports.compileScopedCSS=Pe;exports.createAccess=ut;exports.createAdapter=lt;exports.createAssetScripts=rt;exports.createAssetsCss=nt;exports.createDataSources=Ne;exports.createLoader=K;exports.createMemoryService=Wt;exports.createMenus=U;exports.createMetaApi=De;exports.createMock=Le;exports.createProvider=Jt;exports.createRenderer=J;exports.createSchemaApi=Fe;exports.createSchemaApis=He;exports.createServiceRequest=Vt;exports.defaultLoader=Je;exports.fillBasePath=x;exports.getMock=D;exports.getModifiers=ue;exports.getPlugin=le;exports.getRawComponent=Re;exports.isBuiltInTag=Me;exports.isCSSUrl=B;exports.isJSCode=ke;exports.isJSExpression=R;exports.isJSFunction=b;exports.isJSON=$e;exports.isJSUrl=N;exports.isNativeTag=Te;exports.isVuePlugin=Ie;exports.loadCss=Ae;exports.loadCssUrl=oe;exports.loadEnhance=Kt;exports.loadScriptUrl=ie;exports.menusFilter=pe;exports.mockApi=Ue;exports.mockApis=xe;exports.mockCleanup=ce;exports.nodeRender=k;exports.parseDeps=be;exports.parseExpression=H;exports.parseFunction=P;exports.parseUrls=Ce;exports.providerKey=fe;exports.removeProdFlag=je;exports.setupPageSetting=it;exports.toString=ne;exports.useAccess=Oe;exports.useMask=Dt;exports.useProvider=de;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Base as ze, BUILT_IN_COMPONENTS as Ge, ProjectModel as U, HistoryModel as
|
|
1
|
+
import { Base as ze, BUILT_IN_COMPONENTS as Ge, ProjectModel as U, HistoryModel as je } from "@vtj/core";
|
|
2
2
|
import { isUrl as se, url as F, dedupArray as Ve, isString as I, isFunction as q, logger as M, storage as X, cookie as Y, toArray as ve, unRSA as _e, delay as J, createRequest as Ee, jsonp as Re, merge as Qe, pathToRegexp as We, pathToRegexpMatch as Xe, formDataToJson as Ye, Queue as Ze, cloneDeep as we, camelCase as A, isObject as et, upperFirst as tt, pick as st, request as ne, loadScript as Se, Storage as nt, mapToObject as ue } from "@vtj/utils";
|
|
3
3
|
import * as z from "vue";
|
|
4
4
|
import { inject as Pe, defineComponent as Ce, h as re, ref as oe, watchEffect as rt, defineAsyncComponent as $e } from "vue";
|
|
@@ -7,12 +7,12 @@ import { useRoute as Ae } from "vue-router";
|
|
|
7
7
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
|
8
8
|
* @name @vtj/renderer
|
|
9
9
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
10
|
-
* @version 0.13.
|
|
10
|
+
* @version 0.13.34
|
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
12
12
|
*/
|
|
13
|
-
const D = "0.13.
|
|
13
|
+
const D = "0.13.34";
|
|
14
14
|
var w = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(w || {});
|
|
15
|
-
const
|
|
15
|
+
const be = [
|
|
16
16
|
"$el",
|
|
17
17
|
"$emit",
|
|
18
18
|
"$nextTick",
|
|
@@ -384,7 +384,7 @@ function H(n = window) {
|
|
|
384
384
|
if (t && window)
|
|
385
385
|
return window.Mock = t, t;
|
|
386
386
|
}
|
|
387
|
-
function
|
|
387
|
+
function bs(n, e, t) {
|
|
388
388
|
Object.assign(e.meta, t.meta);
|
|
389
389
|
const s = n?._container;
|
|
390
390
|
t?.type === "page" && s.classList.add("is-page"), t?.pure && s.classList.add("is-pure");
|
|
@@ -419,13 +419,13 @@ function R(n, e, t = !1, s = !1, r = !1) {
|
|
|
419
419
|
function E(n) {
|
|
420
420
|
return n && n.type === "JSExpression";
|
|
421
421
|
}
|
|
422
|
-
function
|
|
422
|
+
function b(n) {
|
|
423
423
|
return typeof n == "object" && n && n.type === "JSFunction";
|
|
424
424
|
}
|
|
425
425
|
function _t(n) {
|
|
426
|
-
return E(n) ||
|
|
426
|
+
return E(n) || b(n);
|
|
427
427
|
}
|
|
428
|
-
function
|
|
428
|
+
function js(n) {
|
|
429
429
|
return _t(n) ? n.value : JSON.stringify(n);
|
|
430
430
|
}
|
|
431
431
|
const wt = {
|
|
@@ -661,7 +661,7 @@ function $t(n, e) {
|
|
|
661
661
|
return (a, i) => (delete o.data, s.send(Qe(o, i || {}, { data: a })));
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
|
-
function
|
|
664
|
+
function bt(n, e) {
|
|
665
665
|
const { metaQuery: t } = e;
|
|
666
666
|
if (!t) return;
|
|
667
667
|
const { code: s, queryCode: r } = n;
|
|
@@ -673,12 +673,14 @@ function jt(n, e) {
|
|
|
673
673
|
return t(s, r, o, a);
|
|
674
674
|
};
|
|
675
675
|
}
|
|
676
|
-
function
|
|
676
|
+
function jt(n = [], e = [], t) {
|
|
677
677
|
const s = {};
|
|
678
|
-
for (const r of n)
|
|
679
|
-
|
|
678
|
+
for (const r of n) {
|
|
679
|
+
const o = $t(r, t);
|
|
680
|
+
s[r.id] = o, s[r.name] = o;
|
|
681
|
+
}
|
|
680
682
|
for (const r of e)
|
|
681
|
-
s[r.id] =
|
|
683
|
+
s[r.id] = bt(r, t);
|
|
682
684
|
return s;
|
|
683
685
|
}
|
|
684
686
|
async function Et(n = [], e = window) {
|
|
@@ -686,7 +688,7 @@ async function Et(n = [], e = window) {
|
|
|
686
688
|
t && (Oe(e), n.forEach((s) => Pt(t, s)));
|
|
687
689
|
}
|
|
688
690
|
function Rt(n, e = window) {
|
|
689
|
-
const t =
|
|
691
|
+
const t = b(n.mockTemplate) && n.mockTemplate.value ? R(n.mockTemplate, {}, !0) : void 0, s = H(e);
|
|
690
692
|
return async (...r) => {
|
|
691
693
|
let o = {};
|
|
692
694
|
if (t)
|
|
@@ -764,12 +766,12 @@ class Ct {
|
|
|
764
766
|
});
|
|
765
767
|
}
|
|
766
768
|
__proxy() {
|
|
767
|
-
this.__instance &&
|
|
769
|
+
this.__instance && be.forEach((e) => {
|
|
768
770
|
this[e] = this.__instance?.[e];
|
|
769
771
|
});
|
|
770
772
|
}
|
|
771
773
|
__cleanup() {
|
|
772
|
-
|
|
774
|
+
be.forEach((e) => {
|
|
773
775
|
this[e] = null;
|
|
774
776
|
}), this.__reset();
|
|
775
777
|
}
|
|
@@ -910,7 +912,7 @@ function kt(n, e, t) {
|
|
|
910
912
|
Object.keys(e || {}).reduce(
|
|
911
913
|
(s, r) => {
|
|
912
914
|
let o = e[r];
|
|
913
|
-
return E(o) ? o = t.__parseExpression(o) :
|
|
915
|
+
return E(o) ? o = t.__parseExpression(o) : b(o) && (o = t.__parseFunction(o)), s[r] = o, s;
|
|
914
916
|
},
|
|
915
917
|
{}
|
|
916
918
|
)
|
|
@@ -946,7 +948,7 @@ function Dt(n, e) {
|
|
|
946
948
|
if (r.type === "mock")
|
|
947
949
|
t[s] = Rt(r);
|
|
948
950
|
else if (r.ref) {
|
|
949
|
-
const o = e.$apis[r.ref], a =
|
|
951
|
+
const o = e.$apis[r.ref], a = b(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
|
|
950
952
|
t[s] = async (...i) => {
|
|
951
953
|
const l = await o.apply(e, i);
|
|
952
954
|
return a ? a(l) : l;
|
|
@@ -1049,22 +1051,22 @@ function O(n, e, t = z, s = xt, r = [], o = !1) {
|
|
|
1049
1051
|
if (n.name === "component")
|
|
1050
1052
|
return Nt(v, n.props?.is);
|
|
1051
1053
|
if (n.name === "slot") return n.name;
|
|
1052
|
-
const
|
|
1053
|
-
if (I(
|
|
1054
|
-
return yt(
|
|
1055
|
-
if (et(
|
|
1054
|
+
const j = s(n.name, n.from, t);
|
|
1055
|
+
if (I(j))
|
|
1056
|
+
return yt(j) || vt(j) ? j : P[j] ?? a?.app?.component(j) ?? j;
|
|
1057
|
+
if (et(j) && n.id) {
|
|
1056
1058
|
const ge = `Loader${n.id}_${S}`, ye = P[ge];
|
|
1057
|
-
return ye || (P[ge] =
|
|
1059
|
+
return ye || (P[ge] = j);
|
|
1058
1060
|
}
|
|
1059
|
-
return
|
|
1061
|
+
return j;
|
|
1060
1062
|
})(), C = Ut(i, n.props ?? {}, v), qe = qt(t, n.events ?? {}, v);
|
|
1061
1063
|
if (n.name === "slot")
|
|
1062
1064
|
return Kt(t, n, C, v, s);
|
|
1063
1065
|
m && Object.assign(C, v.__parseExpression(m.value)), h && (C.style = Object.assign(
|
|
1064
1066
|
C.style ?? {},
|
|
1065
1067
|
Gt(h, v)
|
|
1066
|
-
)), g && Object.assign(C, Vt(g, v)), d.forEach((
|
|
1067
|
-
Object.assign(C, Qt(t,
|
|
1068
|
+
)), g && Object.assign(C, Vt(g, v)), d.forEach((j) => {
|
|
1069
|
+
Object.assign(C, Qt(t, j, v));
|
|
1068
1070
|
});
|
|
1069
1071
|
const Je = Wt(
|
|
1070
1072
|
t,
|
|
@@ -1123,7 +1125,7 @@ function Ut(n, e, t) {
|
|
|
1123
1125
|
return s.ref = t.__ref(n, s.ref), s;
|
|
1124
1126
|
}
|
|
1125
1127
|
function ce(n, e) {
|
|
1126
|
-
return E(n) ? e.__parseExpression(n) :
|
|
1128
|
+
return E(n) ? e.__parseExpression(n) : b(n) ? e.__parseFunction(n) : Array.isArray(n) ? n.map((t) => ce(t, e)) : typeof n == "object" ? Object.keys(n || {}).reduce(
|
|
1127
1129
|
(t, s) => {
|
|
1128
1130
|
let r = n[s];
|
|
1129
1131
|
return t[s] = ce(r, e), t;
|
|
@@ -1423,13 +1425,13 @@ function ts(n = {}, e) {
|
|
|
1423
1425
|
}
|
|
1424
1426
|
function ss(n, e, t) {
|
|
1425
1427
|
const s = t.createPinia();
|
|
1426
|
-
if (e.use(s),
|
|
1428
|
+
if (e.use(s), b(n) && n.value) {
|
|
1427
1429
|
const r = R(n, {}, !1, !1, !0), o = t.defineStore("$store", r(e) || {});
|
|
1428
1430
|
e.config.globalProperties.$store = o();
|
|
1429
1431
|
}
|
|
1430
1432
|
}
|
|
1431
1433
|
function ns(n, e, t, s) {
|
|
1432
|
-
if (
|
|
1434
|
+
if (b(n) && n.value) {
|
|
1433
1435
|
const r = R(n, {}, !1, !1, !0), { alert: o, request: a } = s, i = new pe({
|
|
1434
1436
|
alert: o,
|
|
1435
1437
|
storagePrefix: "__VTJ_APP_",
|
|
@@ -1441,32 +1443,32 @@ function ns(n, e, t, s) {
|
|
|
1441
1443
|
function rs(n, e, t) {
|
|
1442
1444
|
if (!e.request) return;
|
|
1443
1445
|
const { axios: s, request: r, response: o } = t;
|
|
1444
|
-
if (s &&
|
|
1446
|
+
if (s && b(s) && s.value) {
|
|
1445
1447
|
const a = R(s, {}, !1, !1, !0);
|
|
1446
1448
|
e.request.setConfig(a(n));
|
|
1447
1449
|
}
|
|
1448
|
-
if (r &&
|
|
1450
|
+
if (r && b(r) && r.value) {
|
|
1449
1451
|
const a = R(r, {}, !1, !1, !0), i = e.request;
|
|
1450
1452
|
i.__unReq && i.__unReq(), i.__unReq = e.request.useRequest((l) => a(l, n));
|
|
1451
1453
|
}
|
|
1452
|
-
if (o &&
|
|
1454
|
+
if (o && b(o) && o.value) {
|
|
1453
1455
|
const a = R(o, {}, !1, !1, !0), i = e.request;
|
|
1454
1456
|
i.__unRes && i.__unRes(), i.__unRes = e.request.useResponse((l) => a(l, n));
|
|
1455
1457
|
}
|
|
1456
1458
|
}
|
|
1457
1459
|
function os(n, e) {
|
|
1458
1460
|
const { beforeEach: t, afterEach: s } = e, r = n.config.globalProperties.$router;
|
|
1459
|
-
if (t &&
|
|
1461
|
+
if (t && b(t) && t.value) {
|
|
1460
1462
|
const o = R(t, {}, !1, !1, !0);
|
|
1461
1463
|
r && r.beforeEach((a, i, l) => o(a, i, l, n));
|
|
1462
1464
|
}
|
|
1463
|
-
if (s &&
|
|
1465
|
+
if (s && b(s) && s.value) {
|
|
1464
1466
|
const o = R(s, {}, !1, !1, !0);
|
|
1465
1467
|
r && r.afterEach((a, i, l) => o(a, i, l, n));
|
|
1466
1468
|
}
|
|
1467
1469
|
}
|
|
1468
1470
|
function is(n, e, t = {}) {
|
|
1469
|
-
|
|
1471
|
+
b(n) && n.value && R(n, {}, !1, !1, !0)(e, t);
|
|
1470
1472
|
}
|
|
1471
1473
|
function as(n, e, t) {
|
|
1472
1474
|
if (!n || !e || !t) return;
|
|
@@ -1574,7 +1576,7 @@ class ls extends ze {
|
|
|
1574
1576
|
if (this.project = s ? await s() : await this.service.init(e), !this.project)
|
|
1575
1577
|
throw new Error("project is null");
|
|
1576
1578
|
const { apis: r = [], meta: o = [] } = this.project, a = window;
|
|
1577
|
-
a && (a.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis =
|
|
1579
|
+
a && (a.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(a) : await this.loadAssets(a), this.initMock(a), this.apis = jt(r, o, this.adapter), Oe(a), Et(r, a), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
|
|
1578
1580
|
}
|
|
1579
1581
|
initMock(e) {
|
|
1580
1582
|
const t = H(e);
|
|
@@ -1582,12 +1584,12 @@ class ls extends ze {
|
|
|
1582
1584
|
timeout: "50-500"
|
|
1583
1585
|
});
|
|
1584
1586
|
}
|
|
1585
|
-
async loadDependencies(e) {
|
|
1587
|
+
async loadDependencies(e = {}) {
|
|
1586
1588
|
const t = Object.entries(this.dependencies);
|
|
1587
1589
|
for (const [s, r] of t)
|
|
1588
1590
|
e[s] || (e[s] = this.library[s] = await r());
|
|
1589
1591
|
}
|
|
1590
|
-
async loadAssets(e) {
|
|
1592
|
+
async loadAssets(e = {}) {
|
|
1591
1593
|
const { dependencies: t = [] } = this.project, {
|
|
1592
1594
|
dependencies: s,
|
|
1593
1595
|
library: r,
|
|
@@ -1695,7 +1697,7 @@ class ls extends ze {
|
|
|
1695
1697
|
const i = s[t[o]];
|
|
1696
1698
|
e.use(a, { locale: i }), r[o] = !0;
|
|
1697
1699
|
}
|
|
1698
|
-
e.provide(Le, this), e.config.globalProperties.$provider = this, this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), this.project?.platform !== "uniapp" && this.mode !== w.Design && this.initGlobals(this.project?.globals || {}, {
|
|
1700
|
+
e.provide(Le, 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 !== w.Design && this.initGlobals(this.project?.globals || {}, {
|
|
1699
1701
|
app: e,
|
|
1700
1702
|
window,
|
|
1701
1703
|
adapter: this.adapter,
|
|
@@ -2063,7 +2065,7 @@ class Fs extends de {
|
|
|
2063
2065
|
return Promise.resolve(!0);
|
|
2064
2066
|
}
|
|
2065
2067
|
getHistory(e) {
|
|
2066
|
-
const t = $.get(`history_${e}`), s = new
|
|
2068
|
+
const t = $.get(`history_${e}`), s = new je(t || { id: e });
|
|
2067
2069
|
return Promise.resolve(s.toDsl());
|
|
2068
2070
|
}
|
|
2069
2071
|
getHistoryItem(e, t) {
|
|
@@ -2118,7 +2120,7 @@ class ps extends de {
|
|
|
2118
2120
|
return Promise.resolve(!0);
|
|
2119
2121
|
}
|
|
2120
2122
|
getHistory(e) {
|
|
2121
|
-
const t = this.histories[e], s = new
|
|
2123
|
+
const t = this.histories[e], s = new je(t || { id: e });
|
|
2122
2124
|
return Promise.resolve(s);
|
|
2123
2125
|
}
|
|
2124
2126
|
getHistoryItem(e, t) {
|
|
@@ -2204,13 +2206,13 @@ export {
|
|
|
2204
2206
|
ct as BUILD_IN_TAGS,
|
|
2205
2207
|
ot as BUILT_IN_DIRECTIVES,
|
|
2206
2208
|
de as BaseService,
|
|
2207
|
-
|
|
2209
|
+
be as CONTEXT_HOST,
|
|
2208
2210
|
Ct as Context,
|
|
2209
2211
|
w as ContextMode,
|
|
2210
2212
|
it as DATA_TYPES,
|
|
2211
2213
|
N as HOMEPAGE_ROUTE_NAME,
|
|
2212
2214
|
at as HTML_TAGS,
|
|
2213
|
-
|
|
2215
|
+
js as JSCodeToString,
|
|
2214
2216
|
ys as LIFE_CYCLES_LIST,
|
|
2215
2217
|
Os as LocalService,
|
|
2216
2218
|
ps as MemoryService,
|
|
@@ -2232,12 +2234,12 @@ export {
|
|
|
2232
2234
|
ae as createLoader,
|
|
2233
2235
|
Ms as createMemoryService,
|
|
2234
2236
|
K as createMenus,
|
|
2235
|
-
|
|
2237
|
+
bt as createMetaApi,
|
|
2236
2238
|
Rt as createMock,
|
|
2237
2239
|
As as createProvider,
|
|
2238
2240
|
ie as createRenderer,
|
|
2239
2241
|
$t as createSchemaApi,
|
|
2240
|
-
|
|
2242
|
+
jt as createSchemaApis,
|
|
2241
2243
|
ks as createServiceRequest,
|
|
2242
2244
|
xt as defaultLoader,
|
|
2243
2245
|
B as fillBasePath,
|
|
@@ -2249,7 +2251,7 @@ export {
|
|
|
2249
2251
|
G as isCSSUrl,
|
|
2250
2252
|
_t as isJSCode,
|
|
2251
2253
|
E as isJSExpression,
|
|
2252
|
-
|
|
2254
|
+
b as isJSFunction,
|
|
2253
2255
|
lt as isJSON,
|
|
2254
2256
|
V as isJSUrl,
|
|
2255
2257
|
vt as isNativeTag,
|
|
@@ -2269,7 +2271,7 @@ export {
|
|
|
2269
2271
|
dt as parseUrls,
|
|
2270
2272
|
Le as providerKey,
|
|
2271
2273
|
ut as removeProdFlag,
|
|
2272
|
-
|
|
2274
|
+
bs as setupPageSetting,
|
|
2273
2275
|
Ie as toString,
|
|
2274
2276
|
St as useAccess,
|
|
2275
2277
|
Cs as useMask,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtj/renderer",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.13.
|
|
4
|
+
"version": "0.13.34",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"低代码引擎",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
"author": "chenhuachun",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@vtj/
|
|
25
|
-
"@vtj/
|
|
24
|
+
"@vtj/utils": "~0.13.34",
|
|
25
|
+
"@vtj/core": "~0.13.34"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"vue": "~3.5.5",
|
|
29
29
|
"vue-router": "~4.5.0",
|
|
30
|
-
"@vtj/cli": "~0.12.
|
|
31
|
-
"@vtj/
|
|
32
|
-
"@vtj/
|
|
30
|
+
"@vtj/cli": "~0.12.14",
|
|
31
|
+
"@vtj/ui": "~0.13.34",
|
|
32
|
+
"@vtj/icons": "~0.13.34"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
35
|
".": {
|
package/types/version.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
|
3
3
|
* @name @vtj/renderer
|
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
5
|
-
* @version 0.13.
|
|
5
|
+
* @version 0.13.33
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
7
|
*/
|
|
8
|
-
export declare const version = "0.13.
|
|
8
|
+
export declare const version = "0.13.33";
|