@vtj/renderer 0.12.37 → 0.12.38
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 +4 -4
- package/dist/index.mjs +180 -176
- package/package.json +6 -6
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
@@ -2,10 +2,10 @@
|
|
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.12.
|
5
|
+
* @version 0.12.38
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
|
-
*/const M="0.12.
|
7
|
+
*/const M="0.12.38";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],We=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],fe=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],he={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",me="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(","),ge="component,slot".split(",");function O(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function ve(r){return/\.json$/.test(r)}function Ye(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function Qe(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function ye(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function _e(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},u=[],l={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:g,localeLibrary:S})=>{m?.forEach(v=>{N(v)&&n.push(ye(v,t)),x(v)&&i.push(v)}),h&&(o.push(h),p[h]=O(m||[],e),S&&(c[h]=S)),f&&a.push(f),g&&u.push(g),h&&g&&(l[g]=h)}),{scripts:O(n,e),css:O(i,e),materials:O(a,e),libraryExports:o,materialExports:d.dedupArray(u),materialMapLibrary:l,libraryMap:p,libraryLocaleMap:c}}function Se(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function we(r=[]){const e=r.filter(s=>x(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function $e(r,e){const t=c=>{const u=[];let l=0;for(;l<c.length;){if(/\s/.test(c[l])){l++;continue}if(c.substring(l,l+2)==="/*"){const v=c.indexOf("*/",l+2);if(v!==-1){l=v+2;continue}}if(c[l]==="@"){const v=l;for(;l<c.length&&c[l]!=="{"&&c[l]!==";";)l++;const j=c.substring(v,l).trim(),y=j.includes("@keyframes");if(c[l]===";")u.push({type:"simple-at-rule",content:c.substring(v,l+1)}),l++;else if(c[l]==="{"){const V=l+1;let D=1;for(l++;l<c.length&&D>0;)c[l]==="{"?D++:c[l]==="}"&&D--,l++;const z=c.substring(v,l),C=c.substring(V,l-1);u.push({type:y?"keyframes":"at-rule",rule:j,content:z,inner:C})}continue}const m=l;for(;l<c.length&&c[l]!=="{";)l++;if(l>=c.length)break;const f=c.substring(m,l).trim();if(!f){l++;continue}const h=l+1;let g=1;for(l++;l<c.length&&g>0;)c[l]==="{"?g++:c[l]==="}"&&g--,l++;const S=c.substring(h,l-1);u.push({type:"rule",selector:f,content:S.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,l,m)=>{const f=l.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),i=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const l=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(l){const[,m,f=""]=l,h=m.trim();return h?`${h}[${e}]${f}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(l=>i(l)).filter(l=>l.trim()).join(", "),o=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const m=t(u.inner),f=o(m);return`${u.rule} { ${f} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const l=a(u.selector);return l.trim()?`${l} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),p=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),l=o(u);return p(l)}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 l=u.trim();return!l||l.startsWith("@")||l.includes(`[${e}]`)||s(l)?u:`${l}[${e}]`})}}function X(r){return d.isString(r)?r:JSON.stringify(r)}function Z(r,e,t,s=!1){const n=r.CSSStyleSheet,i=s?`data-v-${e}`:e,a=s?$e(t,i):t;if(n.prototype.replaceSync){const o=new n;o.id=e,o.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,u=Array.from(c).filter(l=>l.id!==e);p.adoptedStyleSheets=[...u,o]}else{const o=r.document;let p=o.getElementById(e);p?p.innerHTML=a:(p=o.createElement("style"),p.id=e,p.innerHTML=a,o.head.appendChild(p))}}async function Ee(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&Z(window,r,t)}function ee(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 te(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{i=t[e],i?a(i.default||i):o(null)},c.onerror=u=>{o(u)},n.appendChild(c)}})}function je(r){return d.isFunction(r)||d.isFunction(r?.install)}function be(r){return ge.includes(r)}function Ce(r){return me.includes(r)}function k(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function Xe(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 I(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,p)=>`__self${p}`),i=n.join(`
|
9
|
-
`)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function B(r,e,t=!1,s=!1){const n=I(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function E(r){return r&&r.type==="JSExpression"}function F(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Pe(r){return E(r)||F(r)}function Ze(r){return Pe(r)?r.value:JSON.stringify(r)}const et={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},se=Symbol("access");class re{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},et,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===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.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):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(se,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=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.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=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!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),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),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 d.delay(150),await t(e,{title:"提示",type:"warning"}).catch(()=>!1)):!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 Re(){return $.inject(se,null)}function tt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.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:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new re({alert:o,...i}):void 0}}function st(r={}){return new re(r)}function Ae(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?I(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Me(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Te(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Ae(n,t);for(const n of e)s[n.id]=Me(n,t);return s}async function ke(r=[],e=window){const t=k(e);t&&(ne(e),r.forEach(s=>Fe(t,s)))}function Ie(r,e=window){const t=F(r.mockTemplate)&&r.mockTemplate.value?B(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function Fe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=I(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ne(r=window){const e=k(r);e&&(e._mocked={})}class De{__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=J){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&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return B({type:s,value:n},this)}else return B(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return I({type:s,value:n},this)}else return I(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.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,_.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 i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function L(r){const{Vue:e=J,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new De({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...nt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&Z(r.window||window,o.value.id,o.value.css||"",!0),c.state=it(e,o.value.state??{},c);const m=ot(e,o.value.computed??{},c),f=at(o.value.methods??{},c),h=ct(e,o.value.inject,c);for(const[v,j]of Object.entries(h||{}))h[v]=e.inject(v,j);const g=Oe(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),lt(e,o.value.watch??[],c),{vtj:c}},emits:rt(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?A(l[0],c,e,a,l):l.map(m=>A(m,c,e,a,l))},...ut(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function rt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function nt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>he[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:E(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 it(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return E(i)?i=t.__parseExpression(i):F(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function ot(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function at(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ct(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=E(a)?t.__parseExpression(a)||i:a??i,p=E(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Oe(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Ie(n);else if(n.ref){const i=e.$apis[n.ref],a=F(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function lt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ut(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}let W=[],R={};const He=r=>r;async function ie(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>N(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&ee(i,e),await te(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(W.forEach(n=>{delete s.window[n]}),W=[]),(n,i,a=J)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=R[i.id]||await e(i.id);return o&&(o.name=n,R[i.id]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=R[i.url]||await t(i.url);return o&&(o.name=n,R[i.url]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?R[i.library]:null;return o||(i.library&&W.push(i.library),o=R[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await ie(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function pt(){R={}}function A(r,e,t=J,s=He,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=xe(p);if(!i&&(u||l))return null;if(c&&!ft(c,e))return vt(r,e,t,s,n);const j=(y,V=0)=>{const D=y.$components,z=(()=>{if(r.name==="component")return ht(y,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);return d.isString(b)?be(b)||Ce(b)?b:D[b]??a?.app?.component(b)??b:b})(),C=mt(o,r.props??{},y),Ke=gt(t,r.events??{},y);if(r.name==="slot")return yt(t,r,C,y,s);g&&Object.assign(C,y.__parseExpression(g.value)),f&&(C.style=Object.assign(C.style??{},St(f,y))),S&&Object.assign(C,wt(S,y)),h.forEach(b=>{Object.assign(C,$t(t,b,y))});const Ve=Et(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,ze=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...ze,...C,...Ke},Ve);const ue=a?dt(a,v,y):[];return ue.length&&(G=t.withDirectives(G,ue)),G};return m?Ct(m,j,e):j(e)}function dt(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];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 xe(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!fe.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function ft(r,e){return!!e.__parseExpression(r.value)}function ht(r,e){return e?E(e)?r.__parseExpression(e):e:"div"}function mt(r,e,t){const s=Q(e,t);return s.ref=t.__ref(r,s.ref),s}function Q(r,e){return E(r)?e.__parseExpression(r):F(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>Q(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=Q(n,e),t},{}):r}function gt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=oe(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function vt(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=xe(o);if(p){if(e.__parseExpression(p.value))return A(n[a],e,t,s,n,!0);continue}if(c)return A(n[a],e,t,s,n,!0)}return null}function oe(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function yt(r,e,t,s,n){const{children:i}=e,a=_t(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):E(i)?r.createTextVNode(X(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>A(p,s,r,n,i)):null:null}function _t(r,e){const{props:t}=r,s=t?.name||"default";return{name:E(s)?e.__parseExpression(s):s,params:[]}}function St(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function wt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function $t(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
9
|
+
`)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function B(r,e,t=!1,s=!1){const n=I(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function E(r){return r&&r.type==="JSExpression"}function F(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Pe(r){return E(r)||F(r)}function Ze(r){return Pe(r)?r.value:JSON.stringify(r)}const et={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},se=Symbol("access");class re{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},et,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===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.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):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(se,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=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.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=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!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),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),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 d.delay(150),await t(e,{title:"提示",type:"warning"}).catch(()=>!1)):!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 Re(){return $.inject(se,null)}function tt(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.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:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new re({alert:o,...i}):void 0}}function st(r={}){return new re(r)}function Ae(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?I(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Me(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Te(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Ae(n,t);for(const n of e)s[n.id]=Me(n,t);return s}async function ke(r=[],e=window){const t=k(e);t&&(ne(e),r.forEach(s=>Fe(t,s)))}function Ie(r,e=window){const t=F(r.mockTemplate)&&r.mockTemplate.value?B(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function Fe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=I(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ne(r=window){const e=k(r);e&&(e._mocked={})}class De{__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=J){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&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return B({type:s,value:n},this)}else return B(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return I({type:s,value:n},this)}else return I(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.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,_.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 i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function L(r){const{Vue:e=J,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new De({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...nt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&Z(r.window||window,o.value.id,o.value.css||"",!0),c.state=it(e,o.value.state??{},c);const m=ot(e,o.value.computed??{},c),f=at(o.value.methods??{},c),h=ct(e,o.value.inject,c);for(const[v,j]of Object.entries(h||{}))h[v]=e.inject(v,j);const g=Oe(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),lt(e,o.value.watch??[],c),{vtj:c}},emits:rt(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?A(l[0],c,e,a,l):l.map(m=>A(m,c,e,a,l))},...ut(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function rt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function nt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>he[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:E(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 it(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return E(i)?i=t.__parseExpression(i):F(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function ot(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function at(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ct(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=E(a)?t.__parseExpression(a)||i:a??i,p=E(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Oe(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Ie(n);else if(n.ref){const i=e.$apis[n.ref],a=F(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function lt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function ut(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const pt=new d.Queue;let W=[],R={};const He=r=>r;async function ie(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>N(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&ee(i,e),await te(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(W.forEach(n=>{delete s.window[n]}),W=[]),(n,i,a=J)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=R[i.id]||await pt.add(i.id,()=>e(i.id));return o&&(o.name=n,R[i.id]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=R[i.url]||await t(i.url);return o&&(o.name=n,R[i.url]=o),o?L({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?R[i.library]:null;return o||(i.library&&W.push(i.library),o=R[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await ie(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function dt(){R={}}function A(r,e,t=J,s=He,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=xe(p);if(!i&&(u||l))return null;if(c&&!ht(c,e))return yt(r,e,t,s,n);const j=(y,V=0)=>{const D=y.$components,z=(()=>{if(r.name==="component")return mt(y,r.props?.is);if(r.name==="slot")return r.name;const b=s(r.name,r.from,t);return d.isString(b)?be(b)||Ce(b)?b:D[b]??a?.app?.component(b)??b:b})(),C=gt(o,r.props??{},y),Ke=vt(t,r.events??{},y);if(r.name==="slot")return _t(t,r,C,y,s);g&&Object.assign(C,y.__parseExpression(g.value)),f&&(C.style=Object.assign(C.style??{},wt(f,y))),S&&Object.assign(C,$t(S,y)),h.forEach(b=>{Object.assign(C,Et(t,b,y))});const Ve=jt(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,ze=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...ze,...C,...Ke},Ve);const ue=a?ft(a,v,y):[];return ue.length&&(G=t.withDirectives(G,ue)),G};return m?Pt(m,j,e):j(e)}function ft(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];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 xe(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!fe.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function ht(r,e){return!!e.__parseExpression(r.value)}function mt(r,e){return e?E(e)?r.__parseExpression(e):e:"div"}function gt(r,e,t){const s=Q(e,t);return s.ref=t.__ref(r,s.ref),s}function Q(r,e){return E(r)?e.__parseExpression(r):F(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>Q(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=Q(n,e),t},{}):r}function vt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=oe(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function yt(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=xe(o);if(p){if(e.__parseExpression(p.value))return A(n[a],e,t,s,n,!0);continue}if(c)return A(n[a],e,t,s,n,!0)}return null}function oe(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function _t(r,e,t,s,n){const{children:i}=e,a=St(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):E(i)?r.createTextVNode(X(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>A(p,s,r,n,i)):null:null}function St(r,e){const{props:t}=r,s=t?.name||"default";return{name:E(s)?e.__parseExpression(s):s,params:[]}}function wt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function $t(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Et(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
10
10
|
${e.value.value} = v;
|
11
|
-
}`:"(v) => {}"},n=t.__parseFunction(s),i=oe(E(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=E(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function Et(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(E(e))return{default:()=>X(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=jt(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>A(f,t.__clone(m),r,s,c))},o),{})}return null}function jt(r){const e={};for(const t of r){const s=bt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params)):e[n]={nodes:[t],params:s.params}}return e}function bt(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Ct(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const pe=$.defineComponent({name:"VtjPageContainer",async setup(){const r=ce(),e=de.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=$.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:i,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())}}),Pt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}}),ae=Symbol("Provider");var Ne=(r=>(r.Production="production",r.Development="development",r))(Ne||{});class Ue extends P.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};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(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Te(s,n,this.adapter),ne(i),ke(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,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:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=_e(t,a,o==="development");for(const f of p){const h=s[f],g=e[f];if(g)n[f]=g;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const v of S)x(v)&&await Ee(f,d.url.append(v,{v:M})),N(v)&&await d.loadScript(d.url.append(v,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const g=e[m[h]],S=P.BUILT_IN_COMPONENTS[h];if(S)g&&S.forEach(v=>{i[v]=g[v]});else{const v=f[h]?(await f[h]()).default:e[h];v&&g&&(v.components||[]).forEach(j=>{i[j.name]=Se(j,g)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:pe},l={path:c,name:H,component:t?.homepage?pe:n.startupComponent||Pt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&je(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(ae,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}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,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():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:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return L({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.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 ie(e,window))}}function Rt(r){const e=new Ue(r);return{provider:e,onReady:s=>e.ready(s)}}function ce(r={}){const e=$.inject(ae,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 At(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=we(n);if(i.length&&ee(i),a.length)return await te(a,t).catch(()=>{})}const Be={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Mt=(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:Be}),Tt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Be,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function kt(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class K{constructor(e=d.request){this.req=e,this.api=Mt(e),this.uploader=Tt(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>ve(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class It extends K{init(e){const t=new P.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new P.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Le extends K{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new P.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 P.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.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(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new P.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 U=null;function Ft(){return U||(U=new Le,U)}class Dt extends K{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:d.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)}}function qe(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?qe(r,e,o):void 0}})}function Je(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Je(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ot(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ce(),i=de.useRoute(),a=Re(),o=$.ref(!1),p=$.ref(!1),c=n.project;$.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const g=n.getPage(f.id);o.value=!g?.mask,p.value=!!g?.pure}else if(m===H){const g=n.getHomepage();o.value=!g?.mask,p.value=!!g?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=qe(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:Je(u,a),pure:p}}exports.ACCESS_KEY=se;exports.Access=re;exports.BUILD_IN_TAGS=ge;exports.BUILT_IN_DIRECTIVES=fe;exports.BaseService=K;exports.CONTEXT_HOST=Y;exports.Context=De;exports.ContextMode=_;exports.DATA_TYPES=he;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=me;exports.JSCodeToString=Ze;exports.LIFE_CYCLES_LIST=We;exports.LocalService=Dt;exports.MemoryService=Le;exports.NodeEnv=Ne;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ue;exports.StorageService=It;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=pt;exports.compileScopedCSS=$e;exports.createAccess=st;exports.createAdapter=tt;exports.createAssetScripts=Ye;exports.createAssetsCss=Qe;exports.createDataSources=Oe;exports.createLoader=q;exports.createMemoryService=Ft;exports.createMetaApi=Me;exports.createMock=Ie;exports.createProvider=Rt;exports.createRenderer=L;exports.createSchemaApi=Ae;exports.createSchemaApis=Te;exports.createServiceRequest=kt;exports.defaultLoader=He;exports.fillBasePath=O;exports.getMock=k;exports.getModifiers=oe;exports.getPlugin=ie;exports.getRawComponent=Se;exports.isBuiltInTag=be;exports.isCSSUrl=x;exports.isJSCode=Pe;exports.isJSExpression=E;exports.isJSFunction=F;exports.isJSON=ve;exports.isJSUrl=N;exports.isNativeTag=Ce;exports.isVuePlugin=je;exports.loadCss=Ee;exports.loadCssUrl=ee;exports.loadEnhance=At;exports.loadScriptUrl=te;exports.mockApi=Fe;exports.mockApis=ke;exports.mockCleanup=ne;exports.nodeRender=A;exports.parseDeps=_e;exports.parseExpression=I;exports.parseFunction=B;exports.parseUrls=we;exports.providerKey=ae;exports.removeProdFlag=ye;exports.setupPageSetting=Xe;exports.toString=X;exports.useAccess=Re;exports.useMask=Ot;exports.useProvider=ce;
|
11
|
+
}`:"(v) => {}"},n=t.__parseFunction(s),i=oe(E(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=E(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function jt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(E(e))return{default:()=>X(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=bt(e),a=o=>!o||!n?{}:n?.id&&Object.keys(o).length?{[`scope_${n.id}`]:o}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:u}])=>(o[p]=l=>{const m=u.length?d.pick(l??{},u):a(l);return c.map(f=>A(f,t.__clone(m),r,s,c))},o),{})}return null}function bt(r){const e={};for(const t of r){const s=Ct(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params)):e[n]={nodes:[t],params:s.params}}return e}function Ct(r="default"){return d.isString(r)?{name:r,params:[]}:{params:[],...r}}function Pt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const pe=$.defineComponent({name:"VtjPageContainer",async setup(){const r=ce(),e=de.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=$.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:i,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())}}),Rt=$.defineComponent({name:"VtjStartupContainer",render(){return $.h("div","page not found!")}}),ae=Symbol("Provider");var Ne=(r=>(r.Production="production",r.Development="development",r))(Ne||{});class Ue extends P.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:u=null,materialPath:l="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=u,this.materialPath=l,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:u,request:h}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};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(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Te(s,n,this.adapter),ne(i),ke(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,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:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:u,materialExports:l,materialMapLibrary:m}=_e(t,a,o==="development");for(const f of p){const h=s[f],g=e[f];if(g)n[f]=g;else if(h)e[f]=n[f]=await h();else{const S=c[f]||[];for(const v of S)x(v)&&await Ee(f,d.url.append(v,{v:M})),N(v)&&await d.loadScript(d.url.append(v,{v:M}));n[f]=e[f]}}if(o==="development"){for(const h of u)await d.loadScript(d.url.append(h,{v:M}));const f=this.materials||{};for(const h of l){const g=e[m[h]],S=P.BUILT_IN_COMPONENTS[h];if(S)g&&S.forEach(v=>{i[v]=g[v]});else{const v=f[h]?(await f[h]()).default:e[h];v&&g&&(v.components||[]).forEach(j=>{i[j.name]=Se(j,g)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",u={path:`${c}${o}/:id`,name:T,component:pe},l={path:c,name:H,component:t?.homepage?pe:n.startupComponent||Rt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,u),e.addRoute(a,l)):(e.addRoute(u),e.addRoute(l))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&je(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(ae,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}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,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():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:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return L({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.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 ie(e,window))}}function At(r){const e=new Ue(r);return{provider:e,onReady:s=>e.ready(s)}}function ce(r={}){const e=$.inject(ae,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 Mt(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=we(n);if(i.length&&ee(i),a.length)return await te(a,t).catch(()=>{})}const Be={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Tt=(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:Be}),kt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Be,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function It(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class K{constructor(e=d.request){this.req=e,this.api=Tt(e),this.uploader=kt(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return console.log("BaseService.saveMaterials",e,t),!1}async saveFile(e){return console.log("BaseService.saveFile",e),!1}async getFile(e){return console.log("BaseService.getFile",e),{}}async removeFile(e){return console.log("BaseService.removeFile",e),!1}async saveHistory(e){return console.log("BaseService.saveHistory",e),!1}async removeHistory(e){return console.log("BaseService.removeHistory",e),!1}async getHistory(e){return console.log("BaseService.getHistory",e),{}}async getHistoryItem(e,t){return console.log("BaseService.getHistoryItem",e,t),{}}async saveHistoryItem(e,t){return console.log("BaseService.saveHistoryItem",e,t),!1}async removeHistoryItem(e,t){return console.log("BaseService.removeHistoryItem",e,t),!1}async publish(e){return!!await this.api("publish",e).catch(()=>!1)}async publishFile(e,t){return!!await this.api("publishFile",{project:e,file:t}).catch(()=>!1)}async genVueContent(e,t){return await this.api("genVueContent",{project:e,dsl:t}).catch(()=>"")}async parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>ve(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Ft extends K{init(e){const t=new P.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new P.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new P.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Le extends K{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new P.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 P.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.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(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new P.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 U=null;function Dt(){return U||(U=new Le,U)}class Ot extends K{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:d.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)}}function qe(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?qe(r,e,o):void 0}})}function Je(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Je(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ht(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ce(),i=de.useRoute(),a=Re(),o=$.ref(!1),p=$.ref(!1),c=n.project;$.watchEffect(()=>{const{name:m,params:f,meta:h}=i;if(m===T){const g=n.getPage(f.id);o.value=!g?.mask,p.value=!!g?.pure}else if(m===H){const g=n.getHomepage();o.value=!g?.mask,p.value=!!g?.pure}else o.value=!h.mask,p.value=!!h.pure});const u=qe(e,t,c?.pages),l=c?.config;return{disabled:o,logo:l?.logo,themeSwitchable:l?.themeSwitchable,title:l?.title||c?.description||c?.name||"VTJ App",menus:s?u:Je(u,a),pure:p}}exports.ACCESS_KEY=se;exports.Access=re;exports.BUILD_IN_TAGS=ge;exports.BUILT_IN_DIRECTIVES=fe;exports.BaseService=K;exports.CONTEXT_HOST=Y;exports.Context=De;exports.ContextMode=_;exports.DATA_TYPES=he;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=me;exports.JSCodeToString=Ze;exports.LIFE_CYCLES_LIST=We;exports.LocalService=Ot;exports.MemoryService=Le;exports.NodeEnv=Ne;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ue;exports.StorageService=Ft;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=dt;exports.compileScopedCSS=$e;exports.createAccess=st;exports.createAdapter=tt;exports.createAssetScripts=Ye;exports.createAssetsCss=Qe;exports.createDataSources=Oe;exports.createLoader=q;exports.createMemoryService=Dt;exports.createMetaApi=Me;exports.createMock=Ie;exports.createProvider=At;exports.createRenderer=L;exports.createSchemaApi=Ae;exports.createSchemaApis=Te;exports.createServiceRequest=It;exports.defaultLoader=He;exports.fillBasePath=O;exports.getMock=k;exports.getModifiers=oe;exports.getPlugin=ie;exports.getRawComponent=Se;exports.isBuiltInTag=be;exports.isCSSUrl=x;exports.isJSCode=Pe;exports.isJSExpression=E;exports.isJSFunction=F;exports.isJSON=ve;exports.isJSUrl=N;exports.isNativeTag=Ce;exports.isVuePlugin=je;exports.loadCss=Ee;exports.loadCssUrl=ee;exports.loadEnhance=Mt;exports.loadScriptUrl=te;exports.mockApi=Fe;exports.mockApis=ke;exports.mockCleanup=ne;exports.nodeRender=A;exports.parseDeps=_e;exports.parseExpression=I;exports.parseFunction=B;exports.parseUrls=we;exports.providerKey=ae;exports.removeProdFlag=ye;exports.setupPageSetting=Xe;exports.toString=X;exports.useAccess=Re;exports.useMask=Ht;exports.useProvider=ce;
|
package/dist/index.mjs
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
import { Base as Be, BUILT_IN_COMPONENTS as Ue, ProjectModel as B, HistoryModel as ge } from "@vtj/core";
|
2
|
-
import { isUrl as Le, url as C, dedupArray as qe, isString as P, isFunction as U, logger as k, storage as W, cookie as G, toArray as le, unRSA as ue, delay as ne, createRequest as ve, jsonp as ye, merge as Je, pathToRegexp as Ke, pathToRegexpMatch as ze, formDataToJson as Ve, cloneDeep as pe, camelCase as b, upperFirst as
|
2
|
+
import { isUrl as Le, url as C, dedupArray as qe, isString as P, isFunction as U, logger as k, storage as W, cookie as G, toArray as le, unRSA as ue, delay as ne, createRequest as ve, jsonp as ye, merge as Je, pathToRegexp as Ke, pathToRegexpMatch as ze, formDataToJson as Ve, Queue as We, cloneDeep as pe, camelCase as b, upperFirst as Ge, pick as Qe, request as Y, loadScript as fe, Storage as Ye, mapToObject as ie } from "@vtj/utils";
|
3
3
|
import * as L from "vue";
|
4
|
-
import { inject as _e, defineComponent as we, h as X, ref as Z, defineAsyncComponent as de, watchEffect as
|
4
|
+
import { inject as _e, defineComponent as we, h as X, ref as Z, defineAsyncComponent as de, watchEffect as Xe } from "vue";
|
5
5
|
import { useRoute as Se } from "vue-router";
|
6
6
|
/**!
|
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.12.
|
10
|
+
* @version 0.12.38
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
12
12
|
*/
|
13
|
-
const I = "0.12.
|
13
|
+
const I = "0.12.38";
|
14
14
|
var w = /* @__PURE__ */ ((r) => (r.Runtime = "Runtime", r.Design = "Design", r.Raw = "Raw", r.VNode = "VNode", r))(w || {});
|
15
15
|
const he = [
|
16
16
|
"$el",
|
@@ -24,7 +24,7 @@ const he = [
|
|
24
24
|
"$props",
|
25
25
|
"$options",
|
26
26
|
"$forceUpdate"
|
27
|
-
],
|
27
|
+
], is = [
|
28
28
|
"beforeCreate",
|
29
29
|
"created",
|
30
30
|
"beforeMount",
|
@@ -38,7 +38,7 @@ const he = [
|
|
38
38
|
"renderTriggered",
|
39
39
|
"activated",
|
40
40
|
"deactivated"
|
41
|
-
],
|
41
|
+
], Ze = [
|
42
42
|
"vIf",
|
43
43
|
"vElseIf",
|
44
44
|
"vElse",
|
@@ -47,7 +47,7 @@ const he = [
|
|
47
47
|
"vFor",
|
48
48
|
"vBind",
|
49
49
|
"vHtml"
|
50
|
-
],
|
50
|
+
], et = {
|
51
51
|
String,
|
52
52
|
Number,
|
53
53
|
Boolean,
|
@@ -55,9 +55,9 @@ const he = [
|
|
55
55
|
Object,
|
56
56
|
Function,
|
57
57
|
Date
|
58
|
-
}, M = "VtjPage", N = "VtjHomepage",
|
58
|
+
}, M = "VtjPage", N = "VtjHomepage", tt = "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".split(
|
59
59
|
","
|
60
|
-
),
|
60
|
+
), st = "component,slot".split(",");
|
61
61
|
function O(r, e) {
|
62
62
|
return r.map((t) => Le(t) || t.startsWith("/") ? t : `${e}${t}`);
|
63
63
|
}
|
@@ -67,28 +67,28 @@ function q(r) {
|
|
67
67
|
function J(r) {
|
68
68
|
return /\.js$/.test(r);
|
69
69
|
}
|
70
|
-
function
|
70
|
+
function rt(r) {
|
71
71
|
return /\.json$/.test(r);
|
72
72
|
}
|
73
|
-
function
|
73
|
+
function os(r) {
|
74
74
|
return r.map(
|
75
75
|
(e) => `<script src="${C.append(e, { v: I })}"><\/script>`
|
76
76
|
).join("");
|
77
77
|
}
|
78
|
-
function
|
78
|
+
function as(r = []) {
|
79
79
|
return r.map(
|
80
80
|
(e) => `<link rel="stylesheet" href="${C.append(e, { v: I })}" />`
|
81
81
|
).join("");
|
82
82
|
}
|
83
|
-
function
|
83
|
+
function nt(r, e = !1) {
|
84
84
|
return e && r.endsWith(".prod.js") ? r.replace(".prod.js", ".js") : r;
|
85
85
|
}
|
86
|
-
function
|
86
|
+
function it(r, e, t = !1) {
|
87
87
|
const s = r.filter((h) => !!h.enabled), n = [], i = [], a = [], o = [], p = {}, c = {}, u = [], l = {};
|
88
88
|
return s.forEach(
|
89
89
|
({ urls: h, assetsUrl: f, library: d, assetsLibrary: m, localeLibrary: y }) => {
|
90
90
|
h?.forEach((g) => {
|
91
|
-
J(g) && n.push(
|
91
|
+
J(g) && n.push(nt(g, t)), q(g) && i.push(g);
|
92
92
|
}), d && (o.push(d), p[d] = O(h || [], e), y && (c[d] = y)), f && a.push(f), m && u.push(m), d && m && (l[m] = d);
|
93
93
|
}
|
94
94
|
), {
|
@@ -102,18 +102,18 @@ function nt(r, e, t = !1) {
|
|
102
102
|
libraryLocaleMap: c
|
103
103
|
};
|
104
104
|
}
|
105
|
-
function
|
105
|
+
function ot(r, e) {
|
106
106
|
const { name: t, parent: s, alias: n } = r;
|
107
107
|
return s ? e[s]?.[n || t] : e[n || t];
|
108
108
|
}
|
109
|
-
function
|
109
|
+
function at(r = []) {
|
110
110
|
const e = r.filter((s) => q(s)), t = r.filter((s) => J(s));
|
111
111
|
return {
|
112
112
|
css: e,
|
113
113
|
js: t
|
114
114
|
};
|
115
115
|
}
|
116
|
-
function
|
116
|
+
function ct(r, e) {
|
117
117
|
const t = (c) => {
|
118
118
|
const u = [];
|
119
119
|
let l = 0;
|
@@ -231,7 +231,7 @@ function $e(r) {
|
|
231
231
|
return P(r) ? r : JSON.stringify(r);
|
232
232
|
}
|
233
233
|
function je(r, e, t, s = !1) {
|
234
|
-
const n = r.CSSStyleSheet, i = s ? `data-v-${e}` : e, a = s ?
|
234
|
+
const n = r.CSSStyleSheet, i = s ? `data-v-${e}` : e, a = s ? ct(t, i) : t;
|
235
235
|
if (n.prototype.replaceSync) {
|
236
236
|
const o = new n();
|
237
237
|
o.id = e, o.replaceSync(a);
|
@@ -245,7 +245,7 @@ function je(r, e, t, s = !1) {
|
|
245
245
|
p ? p.innerHTML = a : (p = o.createElement("style"), p.id = e, p.innerHTML = a, o.head.appendChild(p));
|
246
246
|
}
|
247
247
|
}
|
248
|
-
async function
|
248
|
+
async function lt(r, e) {
|
249
249
|
const t = await window.fetch(e).then((s) => s.text()).catch(() => "");
|
250
250
|
t && je(window, r, t);
|
251
251
|
}
|
@@ -271,14 +271,14 @@ async function be(r, e, t = window) {
|
|
271
271
|
}
|
272
272
|
});
|
273
273
|
}
|
274
|
-
function lt(r) {
|
275
|
-
return U(r) || U(r?.install);
|
276
|
-
}
|
277
274
|
function ut(r) {
|
278
|
-
return
|
275
|
+
return U(r) || U(r?.install);
|
279
276
|
}
|
280
277
|
function pt(r) {
|
281
|
-
return
|
278
|
+
return st.includes(r);
|
279
|
+
}
|
280
|
+
function ft(r) {
|
281
|
+
return tt.includes(r);
|
282
282
|
}
|
283
283
|
function D(r = window) {
|
284
284
|
const e = window?.Mock;
|
@@ -287,7 +287,7 @@ function D(r = window) {
|
|
287
287
|
if (t && window)
|
288
288
|
return window.Mock = t, t;
|
289
289
|
}
|
290
|
-
function
|
290
|
+
function cs(r, e, t) {
|
291
291
|
Object.assign(e.meta, t.meta);
|
292
292
|
const s = r?._container;
|
293
293
|
t?.type === "page" && s.classList.add("is-page"), t?.pure && s.classList.add("is-pure");
|
@@ -323,13 +323,13 @@ function S(r) {
|
|
323
323
|
function H(r) {
|
324
324
|
return typeof r == "object" && r && r.type === "JSFunction";
|
325
325
|
}
|
326
|
-
function
|
326
|
+
function dt(r) {
|
327
327
|
return S(r) || H(r);
|
328
328
|
}
|
329
|
-
function
|
330
|
-
return
|
329
|
+
function ls(r) {
|
330
|
+
return dt(r) ? r.value : JSON.stringify(r);
|
331
331
|
}
|
332
|
-
const
|
332
|
+
const ht = {
|
333
333
|
session: !1,
|
334
334
|
authKey: "Authorization",
|
335
335
|
storageKey: "ACCESS_STORAGE",
|
@@ -349,7 +349,7 @@ class Re {
|
|
349
349
|
mode = w.Raw;
|
350
350
|
interceptResponse = !0;
|
351
351
|
constructor(e) {
|
352
|
-
this.options = Object.assign({},
|
352
|
+
this.options = Object.assign({}, ht, e), this.loadData();
|
353
353
|
}
|
354
354
|
enableIntercept() {
|
355
355
|
this.interceptResponse = !0;
|
@@ -496,10 +496,10 @@ class Re {
|
|
496
496
|
);
|
497
497
|
}
|
498
498
|
}
|
499
|
-
function
|
499
|
+
function mt() {
|
500
500
|
return _e(Pe, null);
|
501
501
|
}
|
502
|
-
function
|
502
|
+
function us(r = {}) {
|
503
503
|
const {
|
504
504
|
notify: e,
|
505
505
|
loading: t,
|
@@ -539,10 +539,10 @@ function cs(r = {}) {
|
|
539
539
|
access: i ? new Re({ alert: o, ...i }) : void 0
|
540
540
|
};
|
541
541
|
}
|
542
|
-
function
|
542
|
+
function ps(r = {}) {
|
543
543
|
return new Re(r);
|
544
544
|
}
|
545
|
-
function
|
545
|
+
function gt(r, e) {
|
546
546
|
const { jsonp: t, request: s } = e;
|
547
547
|
if (r.method === "jsonp")
|
548
548
|
return (n = {}) => t(r.url, {
|
@@ -561,7 +561,7 @@ function mt(r, e) {
|
|
561
561
|
return (a, o) => (delete i.data, s.send(Je(i, o || {}, { data: a })));
|
562
562
|
}
|
563
563
|
}
|
564
|
-
function
|
564
|
+
function vt(r, e) {
|
565
565
|
const { metaQuery: t } = e;
|
566
566
|
if (!t) return;
|
567
567
|
const { code: s, queryCode: n } = r;
|
@@ -573,19 +573,19 @@ function gt(r, e) {
|
|
573
573
|
return t(s, n, i, a);
|
574
574
|
};
|
575
575
|
}
|
576
|
-
function
|
576
|
+
function yt(r = [], e = [], t) {
|
577
577
|
const s = {};
|
578
578
|
for (const n of r)
|
579
|
-
s[n.id] = mt(n, t);
|
580
|
-
for (const n of e)
|
581
579
|
s[n.id] = gt(n, t);
|
580
|
+
for (const n of e)
|
581
|
+
s[n.id] = vt(n, t);
|
582
582
|
return s;
|
583
583
|
}
|
584
|
-
async function
|
584
|
+
async function _t(r = [], e = window) {
|
585
585
|
const t = D(e);
|
586
|
-
t && (Ce(e), r.forEach((s) =>
|
586
|
+
t && (Ce(e), r.forEach((s) => St(t, s)));
|
587
587
|
}
|
588
|
-
function
|
588
|
+
function wt(r, e = window) {
|
589
589
|
const t = H(r.mockTemplate) && r.mockTemplate.value ? ee(r.mockTemplate, {}, !0) : void 0, s = D(e);
|
590
590
|
return async (...n) => {
|
591
591
|
let i = {};
|
@@ -598,7 +598,7 @@ function _t(r, e = window) {
|
|
598
598
|
return s?.mock(i);
|
599
599
|
};
|
600
600
|
}
|
601
|
-
function
|
601
|
+
function St(r, e) {
|
602
602
|
if (!e.mock) return;
|
603
603
|
const { url: t, mockTemplate: s } = e;
|
604
604
|
if (t && s) {
|
@@ -613,7 +613,7 @@ function Ce(r = window) {
|
|
613
613
|
const e = D(r);
|
614
614
|
e && (e._mocked = {});
|
615
615
|
}
|
616
|
-
class
|
616
|
+
class $t {
|
617
617
|
__id = null;
|
618
618
|
__mode;
|
619
619
|
__instance = null;
|
@@ -724,7 +724,7 @@ function te(r) {
|
|
724
724
|
$components: s,
|
725
725
|
$libs: n,
|
726
726
|
$apis: i
|
727
|
-
}, c = new
|
727
|
+
}, c = new $t({
|
728
728
|
mode: t,
|
729
729
|
dsl: o.value,
|
730
730
|
attrs: p
|
@@ -732,7 +732,7 @@ function te(r) {
|
|
732
732
|
name: o.value.name,
|
733
733
|
__scopeId: o.value.id ? `data-v-${o.value.id}` : void 0,
|
734
734
|
props: {
|
735
|
-
...
|
735
|
+
...Et(o.value.props ?? [], c)
|
736
736
|
},
|
737
737
|
setup(l) {
|
738
738
|
c.$props = l, c.props = l, o.value.id && je(
|
@@ -740,11 +740,11 @@ function te(r) {
|
|
740
740
|
o.value.id,
|
741
741
|
o.value.css || "",
|
742
742
|
!0
|
743
|
-
), c.state =
|
744
|
-
const h =
|
743
|
+
), c.state = bt(e, o.value.state ?? {}, c);
|
744
|
+
const h = Pt(e, o.value.computed ?? {}, c), f = Rt(o.value.methods ?? {}, c), d = Ct(e, o.value.inject, c);
|
745
745
|
for (const [g, $] of Object.entries(d || {}))
|
746
746
|
d[g] = e.inject(g, $);
|
747
|
-
const m =
|
747
|
+
const m = kt(
|
748
748
|
o.value.dataSources || {},
|
749
749
|
c
|
750
750
|
), y = {
|
@@ -753,11 +753,11 @@ function te(r) {
|
|
753
753
|
...f,
|
754
754
|
...m
|
755
755
|
};
|
756
|
-
return c.setup(y, e),
|
756
|
+
return c.setup(y, e), Ft(e, o.value.watch ?? [], c), {
|
757
757
|
vtj: c
|
758
758
|
};
|
759
759
|
},
|
760
|
-
emits:
|
760
|
+
emits: jt(o.value.emits),
|
761
761
|
expose: ["vtj"],
|
762
762
|
render() {
|
763
763
|
if (!o.value.nodes) return null;
|
@@ -766,18 +766,18 @@ function te(r) {
|
|
766
766
|
(h) => F(h, c, e, a, l)
|
767
767
|
);
|
768
768
|
},
|
769
|
-
...
|
769
|
+
...At(o.value.lifeCycles ?? {}, c)
|
770
770
|
});
|
771
771
|
return {
|
772
772
|
renderer: e.markRaw(u),
|
773
773
|
context: c
|
774
774
|
};
|
775
775
|
}
|
776
|
-
function
|
776
|
+
function jt(r = []) {
|
777
777
|
return r.map((e) => P(e) ? e : e.name);
|
778
778
|
}
|
779
|
-
function
|
780
|
-
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) =>
|
779
|
+
function Et(r = [], e) {
|
780
|
+
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => et[i]) : void 0;
|
781
781
|
return r.map((s) => P(s) ? {
|
782
782
|
name: s
|
783
783
|
} : {
|
@@ -794,7 +794,7 @@ function jt(r = [], e) {
|
|
794
794
|
{}
|
795
795
|
);
|
796
796
|
}
|
797
|
-
function
|
797
|
+
function bt(r, e, t) {
|
798
798
|
return r.reactive(
|
799
799
|
Object.keys(e || {}).reduce(
|
800
800
|
(s, n) => {
|
@@ -805,19 +805,19 @@ function Et(r, e, t) {
|
|
805
805
|
)
|
806
806
|
);
|
807
807
|
}
|
808
|
-
function
|
808
|
+
function Pt(r, e, t) {
|
809
809
|
return Object.entries(e ?? {}).reduce(
|
810
810
|
(s, [n, i]) => (s[n] = r.computed(t.__parseFunction(i)), s),
|
811
811
|
{}
|
812
812
|
);
|
813
813
|
}
|
814
|
-
function
|
814
|
+
function Rt(r, e) {
|
815
815
|
return Object.entries(r ?? {}).reduce(
|
816
816
|
(t, [s, n]) => (t[s] = e.__parseFunction(n), t),
|
817
817
|
{}
|
818
818
|
);
|
819
819
|
}
|
820
|
-
function
|
820
|
+
function Ct(r, e = [], t) {
|
821
821
|
return e.reduce(
|
822
822
|
(s, n) => {
|
823
823
|
const { name: i, from: a } = n || {};
|
@@ -828,12 +828,12 @@ function Rt(r, e = [], t) {
|
|
828
828
|
{}
|
829
829
|
);
|
830
830
|
}
|
831
|
-
function
|
831
|
+
function kt(r, e) {
|
832
832
|
return Object.keys(r).reduce(
|
833
833
|
(t, s) => {
|
834
834
|
const n = r[s];
|
835
835
|
if (n.type === "mock")
|
836
|
-
t[s] =
|
836
|
+
t[s] = wt(n);
|
837
837
|
else if (n.ref) {
|
838
838
|
const i = e.$apis[n.ref], a = H(n.transform) ? n.transform.value ? e.__parseFunction(n.transform) : void 0 : n.transform;
|
839
839
|
t[s] = async (...o) => {
|
@@ -846,7 +846,7 @@ function Ct(r, e) {
|
|
846
846
|
{}
|
847
847
|
);
|
848
848
|
}
|
849
|
-
function
|
849
|
+
function Ft(r, e = [], t) {
|
850
850
|
e.forEach((s) => {
|
851
851
|
r.watch(
|
852
852
|
t.__parseExpression(s.source),
|
@@ -858,7 +858,7 @@ function kt(r, e = [], t) {
|
|
858
858
|
);
|
859
859
|
});
|
860
860
|
}
|
861
|
-
function
|
861
|
+
function At(r, e) {
|
862
862
|
return Object.entries(r ?? {}).reduce(
|
863
863
|
(t, [s, n]) => {
|
864
864
|
const i = e.__parseFunction(n);
|
@@ -869,8 +869,9 @@ function Ft(r, e) {
|
|
869
869
|
{}
|
870
870
|
);
|
871
871
|
}
|
872
|
-
|
873
|
-
|
872
|
+
const It = new We();
|
873
|
+
let Q = [], R = {};
|
874
|
+
const Mt = (r) => r;
|
874
875
|
async function ke(r, e = window) {
|
875
876
|
const { urls: t = [], library: s } = r, n = t.filter((o) => J(o));
|
876
877
|
if (n.length === 0 || !s) return null;
|
@@ -881,13 +882,16 @@ async function ke(r, e = window) {
|
|
881
882
|
}
|
882
883
|
function se(r) {
|
883
884
|
const { getDsl: e, getDslByUrl: t, options: s } = r;
|
884
|
-
return s.window && (
|
885
|
+
return s.window && (Q.forEach((n) => {
|
885
886
|
delete s.window[n];
|
886
|
-
}),
|
887
|
+
}), Q = []), (n, i, a = L) => {
|
887
888
|
if (!i || typeof i == "string") return n;
|
888
889
|
if (i.type === "Schema" && i.id)
|
889
890
|
return a.defineAsyncComponent(async () => {
|
890
|
-
const o = R[i.id] || await
|
891
|
+
const o = R[i.id] || await It.add(
|
892
|
+
i.id,
|
893
|
+
() => e(i.id)
|
894
|
+
);
|
891
895
|
return o && (o.name = n, R[i.id] = o), o ? te({
|
892
896
|
...s,
|
893
897
|
Vue: a,
|
@@ -909,7 +913,7 @@ function se(r) {
|
|
909
913
|
});
|
910
914
|
if (i.type === "Plugin") {
|
911
915
|
let o = i.library ? R[i.library] : null;
|
912
|
-
return o || (i.library &&
|
916
|
+
return o || (i.library && Q.push(i.library), o = R[i.library || Symbol()] = a.defineAsyncComponent(
|
913
917
|
async () => {
|
914
918
|
const p = await ke(i, s.window);
|
915
919
|
return p || (console.warn("getPlugin result is null", i), null);
|
@@ -919,33 +923,33 @@ function se(r) {
|
|
919
923
|
return n;
|
920
924
|
};
|
921
925
|
}
|
922
|
-
function
|
926
|
+
function fs() {
|
923
927
|
R = {};
|
924
928
|
}
|
925
|
-
function F(r, e, t = L, s =
|
929
|
+
function F(r, e, t = L, s = Mt, n = [], i = !1) {
|
926
930
|
if (!r || !r.name || r.invisible) return null;
|
927
931
|
const a = t.getCurrentInstance()?.appContext, { id: o = null, directives: p = [] } = r, { vIf: c, vElseIf: u, vElse: l, vFor: h, vShow: f, vModels: d, vBind: m, vHtml: y, others: g } = Fe(p);
|
928
932
|
if (!i && (u || l))
|
929
933
|
return null;
|
930
|
-
if (c && !
|
931
|
-
return
|
934
|
+
if (c && !Tt(c, e))
|
935
|
+
return Nt(r, e, t, s, n);
|
932
936
|
const $ = (v, K = 0) => {
|
933
937
|
const A = v.$components, z = (() => {
|
934
938
|
if (r.name === "component")
|
935
|
-
return
|
939
|
+
return Ht(v, r.props?.is);
|
936
940
|
if (r.name === "slot") return r.name;
|
937
941
|
const j = s(r.name, r.from, t);
|
938
|
-
return P(j) ?
|
939
|
-
})(), E =
|
942
|
+
return P(j) ? pt(j) || ft(j) ? j : A[j] ?? a?.app?.component(j) ?? j : j;
|
943
|
+
})(), E = Ot(o, r.props ?? {}, v), Oe = xt(t, r.events ?? {}, v);
|
940
944
|
if (r.name === "slot")
|
941
|
-
return
|
945
|
+
return Bt(t, r, E, v, s);
|
942
946
|
m && Object.assign(E, v.__parseExpression(m.value)), f && (E.style = Object.assign(
|
943
947
|
E.style ?? {},
|
944
|
-
|
945
|
-
)), y && Object.assign(E,
|
946
|
-
Object.assign(E,
|
948
|
+
Lt(f, v)
|
949
|
+
)), y && Object.assign(E, qt(y, v)), d.forEach((j) => {
|
950
|
+
Object.assign(E, Jt(t, j, v));
|
947
951
|
});
|
948
|
-
const xe =
|
952
|
+
const xe = Kt(
|
949
953
|
t,
|
950
954
|
r.children ?? [],
|
951
955
|
v,
|
@@ -957,12 +961,12 @@ function F(r, e, t = L, s = At, n = [], i = !1) {
|
|
957
961
|
{ key: `${o}_${K}`, ...Ne, ...E, ...Oe },
|
958
962
|
xe
|
959
963
|
);
|
960
|
-
const ce = a ?
|
964
|
+
const ce = a ? Dt(a, g, v) : [];
|
961
965
|
return ce.length && (V = t.withDirectives(V, ce)), V;
|
962
966
|
};
|
963
|
-
return h ?
|
967
|
+
return h ? Wt(h, $, e) : $(e);
|
964
968
|
}
|
965
|
-
function
|
969
|
+
function Dt(r, e, t) {
|
966
970
|
const s = r.app;
|
967
971
|
return e.map((n) => {
|
968
972
|
const i = typeof n.name == "string" ? s.directive(n.name) : t.__parseExpression(n.name);
|
@@ -977,7 +981,7 @@ function Fe(r = []) {
|
|
977
981
|
), s = r.find((u) => b(u.name) === "vElse"), n = r.find((u) => b(u.name) === "vFor"), i = r.find((u) => b(u.name) === "vShow"), a = r.find((u) => b(u.name) === "vBind"), o = r.find((u) => b(u.name) === "vHtml"), p = r.filter(
|
978
982
|
(u) => b(u.name) === "vModel"
|
979
983
|
), c = r.filter(
|
980
|
-
(u) => !
|
984
|
+
(u) => !Ze.includes(b(u.name))
|
981
985
|
);
|
982
986
|
return {
|
983
987
|
vIf: e,
|
@@ -991,13 +995,13 @@ function Fe(r = []) {
|
|
991
995
|
vHtml: o
|
992
996
|
};
|
993
997
|
}
|
994
|
-
function
|
998
|
+
function Tt(r, e) {
|
995
999
|
return !!e.__parseExpression(r.value);
|
996
1000
|
}
|
997
|
-
function
|
1001
|
+
function Ht(r, e) {
|
998
1002
|
return e ? S(e) ? r.__parseExpression(e) : e : "div";
|
999
1003
|
}
|
1000
|
-
function
|
1004
|
+
function Ot(r, e, t) {
|
1001
1005
|
const s = re(e, t);
|
1002
1006
|
return s.ref = t.__ref(r, s.ref), s;
|
1003
1007
|
}
|
@@ -1010,7 +1014,7 @@ function re(r, e) {
|
|
1010
1014
|
{}
|
1011
1015
|
) : r;
|
1012
1016
|
}
|
1013
|
-
function
|
1017
|
+
function xt(r, e, t) {
|
1014
1018
|
const s = ["passive", "capture", "once"], n = {
|
1015
1019
|
capture: "Capture",
|
1016
1020
|
once: "Once",
|
@@ -1018,13 +1022,13 @@ function Ht(r, e, t) {
|
|
1018
1022
|
};
|
1019
1023
|
return Object.keys(e || {}).reduce(
|
1020
1024
|
(i, a) => {
|
1021
|
-
const o = e[a], p = Ae(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" +
|
1025
|
+
const o = e[a], p = Ae(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" + Ge(a) + (c && n[c] || ""), l = t.__parseFunction(o.handler);
|
1022
1026
|
return l && (i[u] = r.withModifiers(l, p)), i;
|
1023
1027
|
},
|
1024
1028
|
{}
|
1025
1029
|
);
|
1026
1030
|
}
|
1027
|
-
function
|
1031
|
+
function Nt(r, e, t, s, n = []) {
|
1028
1032
|
let i = n.findIndex((a) => a.id === r.id);
|
1029
1033
|
for (let a = ++i; a < n.length; a++) {
|
1030
1034
|
const { directives: o = [] } = n[a], { vElseIf: p, vElse: c } = Fe(o);
|
@@ -1042,32 +1046,32 @@ function Ae(r = {}, e = !1) {
|
|
1042
1046
|
const t = Object.keys(r);
|
1043
1047
|
return e ? t.map((s) => "." + s) : t;
|
1044
1048
|
}
|
1045
|
-
function
|
1046
|
-
const { children: i } = e, a =
|
1049
|
+
function Bt(r, e, t, s, n) {
|
1050
|
+
const { children: i } = e, a = Ut(e, s), o = s.$slots?.[a.name];
|
1047
1051
|
return o ? o(t) : i ? P(i) ? r.createTextVNode(i) : S(i) ? r.createTextVNode(
|
1048
1052
|
$e(s.__parseExpression(i))
|
1049
1053
|
) : Array.isArray(i) ? i.map(
|
1050
1054
|
(p) => F(p, s, r, n, i)
|
1051
1055
|
) : null : null;
|
1052
1056
|
}
|
1053
|
-
function
|
1057
|
+
function Ut(r, e) {
|
1054
1058
|
const { props: t } = r, s = t?.name || "default";
|
1055
1059
|
return {
|
1056
1060
|
name: S(s) ? e.__parseExpression(s) : s,
|
1057
1061
|
params: []
|
1058
1062
|
};
|
1059
1063
|
}
|
1060
|
-
function
|
1064
|
+
function Lt(r, e) {
|
1061
1065
|
return e.__parseExpression(r.value) ? {} : {
|
1062
1066
|
display: "none"
|
1063
1067
|
};
|
1064
1068
|
}
|
1065
|
-
function
|
1069
|
+
function qt(r, e) {
|
1066
1070
|
return {
|
1067
1071
|
innerHTML: e.__parseExpression(r.value) || ""
|
1068
1072
|
};
|
1069
1073
|
}
|
1070
|
-
function
|
1074
|
+
function Jt(r, e, t) {
|
1071
1075
|
const s = {
|
1072
1076
|
type: "JSFunction",
|
1073
1077
|
value: e.value?.value ? `(v) => {
|
@@ -1081,7 +1085,7 @@ function Lt(r, e, t) {
|
|
1081
1085
|
[`onUpdate:${a}`]: i.length && n ? r.withModifiers(n, i) : n
|
1082
1086
|
};
|
1083
1087
|
}
|
1084
|
-
function
|
1088
|
+
function Kt(r, e, t, s, n) {
|
1085
1089
|
if (!e) return null;
|
1086
1090
|
if (P(e))
|
1087
1091
|
return { default: () => e };
|
@@ -1090,11 +1094,11 @@ function qt(r, e, t, s, n) {
|
|
1090
1094
|
default: () => $e(t.__parseExpression(e))
|
1091
1095
|
};
|
1092
1096
|
if (Array.isArray(e) && e.length > 0) {
|
1093
|
-
const i =
|
1097
|
+
const i = zt(e), a = (o) => !o || !n ? {} : n?.id && Object.keys(o).length ? {
|
1094
1098
|
[`scope_${n.id}`]: o
|
1095
1099
|
} : {};
|
1096
1100
|
return Object.entries(i).reduce((o, [p, { nodes: c, params: u }]) => (o[p] = (l) => {
|
1097
|
-
const h = u.length ?
|
1101
|
+
const h = u.length ? Qe(l ?? {}, u) : a(l);
|
1098
1102
|
return c.map(
|
1099
1103
|
(f) => F(f, t.__clone(h), r, s, c)
|
1100
1104
|
);
|
@@ -1102,10 +1106,10 @@ function qt(r, e, t, s, n) {
|
|
1102
1106
|
}
|
1103
1107
|
return null;
|
1104
1108
|
}
|
1105
|
-
function
|
1109
|
+
function zt(r) {
|
1106
1110
|
const e = {};
|
1107
1111
|
for (const t of r) {
|
1108
|
-
const s =
|
1112
|
+
const s = Vt(t.slot), n = s.name;
|
1109
1113
|
e[n] ? (e[n].nodes.push(t), e[n].params = e[n].params.concat(s.params)) : e[n] = {
|
1110
1114
|
nodes: [t],
|
1111
1115
|
params: s.params
|
@@ -1113,10 +1117,10 @@ function Jt(r) {
|
|
1113
1117
|
}
|
1114
1118
|
return e;
|
1115
1119
|
}
|
1116
|
-
function
|
1120
|
+
function Vt(r = "default") {
|
1117
1121
|
return P(r) ? { name: r, params: [] } : { params: [], ...r };
|
1118
1122
|
}
|
1119
|
-
function
|
1123
|
+
function Wt(r, e, t) {
|
1120
1124
|
const { value: s, iterator: n } = r, { item: i = "item", index: a = "index" } = n || {};
|
1121
1125
|
let o = t.__parseExpression(s) || [];
|
1122
1126
|
return Number.isInteger(o) && (o = new Array(o).fill(!0).map((p, c) => c + 1)), Array.isArray(o) ? o.map((p, c) => e(t.__clone({ [i]: p, [a]: c }), c)) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
|
@@ -1147,14 +1151,14 @@ const me = we({
|
|
1147
1151
|
activated() {
|
1148
1152
|
this.meta.cache === !1 && (this.sid = Symbol());
|
1149
1153
|
}
|
1150
|
-
}),
|
1154
|
+
}), Gt = we({
|
1151
1155
|
name: "VtjStartupContainer",
|
1152
1156
|
render() {
|
1153
1157
|
return X("div", "page not found!");
|
1154
1158
|
}
|
1155
1159
|
}), Ie = Symbol("Provider");
|
1156
|
-
var
|
1157
|
-
class
|
1160
|
+
var Qt = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(Qt || {});
|
1161
|
+
class Yt extends Be {
|
1158
1162
|
// DSL缓存
|
1159
1163
|
/**
|
1160
1164
|
* 创建Provider实例
|
@@ -1186,7 +1190,7 @@ class Gt extends Be {
|
|
1186
1190
|
// 全局变量
|
1187
1191
|
modules = {};
|
1188
1192
|
// 异步模块加载器
|
1189
|
-
adapter = { request:
|
1193
|
+
adapter = { request: Y, jsonp: ye };
|
1190
1194
|
// 适配器接口
|
1191
1195
|
apis = {};
|
1192
1196
|
// API集合
|
@@ -1235,7 +1239,7 @@ class Gt extends Be {
|
|
1235
1239
|
if (this.project = t ? await t() : await this.service.init(e), !this.project)
|
1236
1240
|
throw new Error("project is null");
|
1237
1241
|
const { apis: s = [], meta: n = [] } = this.project, i = window;
|
1238
|
-
i && (i.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis =
|
1242
|
+
i && (i.CKEDITOR_VERSION = void 0), this.mode === w.Raw ? await this.loadDependencies(i) : await this.loadAssets(i), this.initMock(i), this.apis = yt(s, n, this.adapter), Ce(i), _t(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
|
1239
1243
|
}
|
1240
1244
|
initMock(e) {
|
1241
1245
|
const t = D(e);
|
@@ -1255,7 +1259,7 @@ class Gt extends Be {
|
|
1255
1259
|
materials: u,
|
1256
1260
|
materialExports: l,
|
1257
1261
|
materialMapLibrary: h
|
1258
|
-
} =
|
1262
|
+
} = it(
|
1259
1263
|
t,
|
1260
1264
|
a,
|
1261
1265
|
o === "development"
|
@@ -1270,7 +1274,7 @@ class Gt extends Be {
|
|
1270
1274
|
else {
|
1271
1275
|
const y = c[f] || [];
|
1272
1276
|
for (const g of y)
|
1273
|
-
q(g) && await
|
1277
|
+
q(g) && await lt(f, C.append(g, { v: I })), J(g) && await fe(C.append(g, { v: I }));
|
1274
1278
|
n[f] = e[f];
|
1275
1279
|
}
|
1276
1280
|
}
|
@@ -1287,7 +1291,7 @@ class Gt extends Be {
|
|
1287
1291
|
else {
|
1288
1292
|
const g = f[d] ? (await f[d]()).default : e[d];
|
1289
1293
|
g && m && (g.components || []).forEach(($) => {
|
1290
|
-
i[$.name] =
|
1294
|
+
i[$.name] = ot($, m);
|
1291
1295
|
});
|
1292
1296
|
}
|
1293
1297
|
}
|
@@ -1307,7 +1311,7 @@ class Gt extends Be {
|
|
1307
1311
|
}, l = {
|
1308
1312
|
path: c,
|
1309
1313
|
name: N,
|
1310
|
-
component: t?.homepage ? me : n.startupComponent ||
|
1314
|
+
component: t?.homepage ? me : n.startupComponent || Gt,
|
1311
1315
|
meta: p
|
1312
1316
|
};
|
1313
1317
|
e.hasRoute(M) && e.removeRoute(M), e.hasRoute(N) && e.removeRoute(N), a ? (e.addRoute(a, u), e.addRoute(a, l)) : (e.addRoute(u), e.addRoute(l));
|
@@ -1325,7 +1329,7 @@ class Gt extends Be {
|
|
1325
1329
|
install(e) {
|
1326
1330
|
const t = e.config.globalProperties.installed || {};
|
1327
1331
|
for (const [s, n] of Object.entries(this.library))
|
1328
|
-
!t[s] &&
|
1332
|
+
!t[s] && ut(n) && (e.use(n), t[s] = !0);
|
1329
1333
|
this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(Ie, this), e.config.globalProperties.$provider = this, e.config.globalProperties.installed = t, this.mode === w.Design && (e.config.errorHandler = (s, n, i) => {
|
1330
1334
|
const a = n?.$options.name, o = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", p = `[ ${a} ] ${o} ${i}`;
|
1331
1335
|
console.error(
|
@@ -1452,8 +1456,8 @@ class Gt extends Be {
|
|
1452
1456
|
return de(async () => await ke(e, window));
|
1453
1457
|
}
|
1454
1458
|
}
|
1455
|
-
function
|
1456
|
-
const e = new
|
1459
|
+
function ds(r) {
|
1460
|
+
const e = new Yt(r);
|
1457
1461
|
return {
|
1458
1462
|
provider: e,
|
1459
1463
|
onReady: (s) => e.ready(s)
|
@@ -1476,8 +1480,8 @@ function Me(r = {}) {
|
|
1476
1480
|
}
|
1477
1481
|
return e;
|
1478
1482
|
}
|
1479
|
-
async function
|
1480
|
-
const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } =
|
1483
|
+
async function hs(r, e = "") {
|
1484
|
+
const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } = at(n);
|
1481
1485
|
if (i.length && Ee(i), a.length)
|
1482
1486
|
return await be(a, t).catch(
|
1483
1487
|
() => {
|
@@ -1490,7 +1494,7 @@ const De = {
|
|
1490
1494
|
originResponse: !1,
|
1491
1495
|
failMessage: !0,
|
1492
1496
|
validate: (r) => r.data?.code === 0
|
1493
|
-
},
|
1497
|
+
}, Xt = (r, e = "/__vtj__/api/:type.json") => (t, s, n) => r.send({
|
1494
1498
|
url: e,
|
1495
1499
|
method: "post",
|
1496
1500
|
params: { type: t },
|
@@ -1500,7 +1504,7 @@ const De = {
|
|
1500
1504
|
data: s
|
1501
1505
|
},
|
1502
1506
|
settings: De
|
1503
|
-
}),
|
1507
|
+
}), Zt = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
|
1504
1508
|
url: e,
|
1505
1509
|
method: "post",
|
1506
1510
|
data: {
|
@@ -1512,7 +1516,7 @@ const De = {
|
|
1512
1516
|
type: "data"
|
1513
1517
|
}
|
1514
1518
|
}).then((n) => n && n[0] ? n[0] : null).catch(() => null);
|
1515
|
-
function
|
1519
|
+
function ms(r) {
|
1516
1520
|
return ve({
|
1517
1521
|
settings: {
|
1518
1522
|
type: "json",
|
@@ -1527,8 +1531,8 @@ function ds(r) {
|
|
1527
1531
|
});
|
1528
1532
|
}
|
1529
1533
|
class oe {
|
1530
|
-
constructor(e =
|
1531
|
-
this.req = e, this.api =
|
1534
|
+
constructor(e = Y) {
|
1535
|
+
this.req = e, this.api = Xt(e), this.uploader = Zt(e);
|
1532
1536
|
}
|
1533
1537
|
api;
|
1534
1538
|
pluginCaches = {};
|
@@ -1612,10 +1616,10 @@ class oe {
|
|
1612
1616
|
return await this.api("clearStaticFiles", e).catch(() => "");
|
1613
1617
|
}
|
1614
1618
|
async getPluginMaterial(e) {
|
1615
|
-
const { urls: t = [] } = e, s = t.filter((i) =>
|
1619
|
+
const { urls: t = [] } = e, s = t.filter((i) => rt(i))[0];
|
1616
1620
|
if (!s) return null;
|
1617
1621
|
const n = this.pluginCaches[s];
|
1618
|
-
return n || (this.pluginCaches[s] =
|
1622
|
+
return n || (this.pluginCaches[s] = Y.send({
|
1619
1623
|
url: s,
|
1620
1624
|
method: "get",
|
1621
1625
|
settings: {
|
@@ -1633,7 +1637,7 @@ const _ = new Ye({
|
|
1633
1637
|
expired: 0,
|
1634
1638
|
prefix: "__VTJ_"
|
1635
1639
|
});
|
1636
|
-
class
|
1640
|
+
class gs extends oe {
|
1637
1641
|
init(e) {
|
1638
1642
|
const t = new B(e), s = _.get(`project_${t.id}`), n = Object.assign(t.toDsl(), s || {});
|
1639
1643
|
return _.save(`project_${t.id}`, n), Promise.resolve(n);
|
@@ -1683,7 +1687,7 @@ class hs extends oe {
|
|
1683
1687
|
}), Promise.resolve(!0);
|
1684
1688
|
}
|
1685
1689
|
}
|
1686
|
-
class
|
1690
|
+
class es extends oe {
|
1687
1691
|
projects = {};
|
1688
1692
|
materials = {};
|
1689
1693
|
files = {};
|
@@ -1741,10 +1745,10 @@ class Xt extends oe {
|
|
1741
1745
|
}
|
1742
1746
|
}
|
1743
1747
|
let x = null;
|
1744
|
-
function
|
1745
|
-
return x || (x = new
|
1748
|
+
function vs() {
|
1749
|
+
return x || (x = new es(), x);
|
1746
1750
|
}
|
1747
|
-
class
|
1751
|
+
class ys extends oe {
|
1748
1752
|
getFileCaches = {};
|
1749
1753
|
async getExtension() {
|
1750
1754
|
return await this.api("getExtension", {}).catch(() => {
|
@@ -1825,13 +1829,13 @@ function He(r, e) {
|
|
1825
1829
|
e.can(s.id.toString()) && t.push(s);
|
1826
1830
|
return t;
|
1827
1831
|
}
|
1828
|
-
function
|
1832
|
+
function _s(r) {
|
1829
1833
|
const {
|
1830
1834
|
menuPathPrefix: e = "",
|
1831
1835
|
pageRouteName: t = "page",
|
1832
1836
|
disableMenusFilter: s = !1
|
1833
|
-
} = r || {}, n = Me(), i = Se(), a =
|
1834
|
-
|
1837
|
+
} = r || {}, n = Me(), i = Se(), a = mt(), o = Z(!1), p = Z(!1), c = n.project;
|
1838
|
+
Xe(() => {
|
1835
1839
|
const { name: h, params: f, meta: d } = i;
|
1836
1840
|
if (h === M) {
|
1837
1841
|
const m = n.getPage(f.id);
|
@@ -1859,73 +1863,73 @@ function vs(r) {
|
|
1859
1863
|
export {
|
1860
1864
|
Pe as ACCESS_KEY,
|
1861
1865
|
Re as Access,
|
1862
|
-
|
1863
|
-
|
1866
|
+
st as BUILD_IN_TAGS,
|
1867
|
+
Ze as BUILT_IN_DIRECTIVES,
|
1864
1868
|
oe as BaseService,
|
1865
1869
|
he as CONTEXT_HOST,
|
1866
|
-
|
1870
|
+
$t as Context,
|
1867
1871
|
w as ContextMode,
|
1868
|
-
|
1872
|
+
et as DATA_TYPES,
|
1869
1873
|
N as HOMEPAGE_ROUTE_NAME,
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
|
1875
|
-
|
1874
|
+
tt as HTML_TAGS,
|
1875
|
+
ls as JSCodeToString,
|
1876
|
+
is as LIFE_CYCLES_LIST,
|
1877
|
+
ys as LocalService,
|
1878
|
+
es as MemoryService,
|
1879
|
+
Qt as NodeEnv,
|
1876
1880
|
M as PAGE_ROUTE_NAME,
|
1877
|
-
|
1878
|
-
|
1881
|
+
Yt as Provider,
|
1882
|
+
gs as StorageService,
|
1879
1883
|
I as VTJ_RENDERER_VERSION,
|
1880
1884
|
je as adoptedStyleSheets,
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1885
|
+
fs as clearLoaderCache,
|
1886
|
+
ct as compileScopedCSS,
|
1887
|
+
ps as createAccess,
|
1888
|
+
us as createAdapter,
|
1889
|
+
os as createAssetScripts,
|
1890
|
+
as as createAssetsCss,
|
1891
|
+
kt as createDataSources,
|
1888
1892
|
se as createLoader,
|
1889
|
-
|
1890
|
-
|
1891
|
-
|
1892
|
-
|
1893
|
+
vs as createMemoryService,
|
1894
|
+
vt as createMetaApi,
|
1895
|
+
wt as createMock,
|
1896
|
+
ds as createProvider,
|
1893
1897
|
te as createRenderer,
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
|
1898
|
+
gt as createSchemaApi,
|
1899
|
+
yt as createSchemaApis,
|
1900
|
+
ms as createServiceRequest,
|
1901
|
+
Mt as defaultLoader,
|
1898
1902
|
O as fillBasePath,
|
1899
1903
|
D as getMock,
|
1900
1904
|
Ae as getModifiers,
|
1901
1905
|
ke as getPlugin,
|
1902
|
-
|
1903
|
-
|
1906
|
+
ot as getRawComponent,
|
1907
|
+
pt as isBuiltInTag,
|
1904
1908
|
q as isCSSUrl,
|
1905
|
-
|
1909
|
+
dt as isJSCode,
|
1906
1910
|
S as isJSExpression,
|
1907
1911
|
H as isJSFunction,
|
1908
|
-
|
1912
|
+
rt as isJSON,
|
1909
1913
|
J as isJSUrl,
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1914
|
+
ft as isNativeTag,
|
1915
|
+
ut as isVuePlugin,
|
1916
|
+
lt as loadCss,
|
1913
1917
|
Ee as loadCssUrl,
|
1914
|
-
|
1918
|
+
hs as loadEnhance,
|
1915
1919
|
be as loadScriptUrl,
|
1916
|
-
|
1917
|
-
|
1920
|
+
St as mockApi,
|
1921
|
+
_t as mockApis,
|
1918
1922
|
Ce as mockCleanup,
|
1919
1923
|
F as nodeRender,
|
1920
|
-
|
1924
|
+
it as parseDeps,
|
1921
1925
|
T as parseExpression,
|
1922
1926
|
ee as parseFunction,
|
1923
|
-
|
1927
|
+
at as parseUrls,
|
1924
1928
|
Ie as providerKey,
|
1925
|
-
|
1926
|
-
|
1929
|
+
nt as removeProdFlag,
|
1930
|
+
cs as setupPageSetting,
|
1927
1931
|
$e as toString,
|
1928
|
-
|
1929
|
-
|
1932
|
+
mt as useAccess,
|
1933
|
+
_s as useMask,
|
1930
1934
|
Me as useProvider
|
1931
1935
|
};
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vtj/renderer",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.12.
|
4
|
+
"version": "0.12.38",
|
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/core": "~0.12.38",
|
25
|
+
"@vtj/utils": "~0.12.38"
|
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.4",
|
31
|
+
"@vtj/ui": "~0.12.38",
|
32
|
+
"@vtj/icons": "~0.12.38"
|
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.12.
|
5
|
+
* @version 0.12.37
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
7
|
*/
|
8
|
-
export declare const version = "0.12.
|
8
|
+
export declare const version = "0.12.37";
|