@vtj/renderer 0.12.38 → 0.12.40
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 +6 -6
- package/dist/index.mjs +143 -143
- package/package.json +5 -5
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("@vtj/core"),d=require("@vtj/utils"),$=require("vue"),de=require("vue-router");function
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("@vtj/core"),d=require("@vtj/utils"),$=require("vue"),de=require("vue-router");function We(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const J=We($);/**!
|
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.40
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
|
-
*/const M="0.12.
|
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
|
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) => {
|
7
|
+
*/const M="0.12.40";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"],Ye=["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,svg".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 Qe(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function Xe(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
|
+
`),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 Ze(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 et(r){return Pe(r)?r.value:JSON.stringify(r)}const tt={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({},tt,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 st(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 rt(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:{...it(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=ot(e,o.value.state??{},c);const m=at(e,o.value.computed??{},c),f=ct(o.value.methods??{},c),h=lt(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),ut(e,o.value.watch??[],c),{vtj:c}},emits:nt(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))},...pt(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function nt(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function it(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 ot(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 at(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function ct(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function lt(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 ut(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function pt(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 He=new d.Queue;let W=[],R={};const xe=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 He.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={},He.clearAllCache()}function A(r,e,t=J,s=xe,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}=Ne(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),Ve=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 ze=jt(t,r.children??[],y,s,r),le=y?.__id?`data-v-${y.__id}`:void 0,Ge=le?{[le]:""}:{};let G=t.createVNode(z,{key:`${o}_${V}`,...Ge,...C,...Ve},ze);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 Ne(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}=Ne(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 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;
|
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 Ue=(r=>(r.Production="production",r.Development="development",r))(Ue||{});class Be 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 Be(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 Le={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:Le}),kt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Le,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 qe 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 qe,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 Je(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?Je(r,e,o):void 0}})}function Ke(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=Ke(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=Je(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:Ke(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=et;exports.LIFE_CYCLES_LIST=Ye;exports.LocalService=Ot;exports.MemoryService=qe;exports.NodeEnv=Ue;exports.PAGE_ROUTE_NAME=T;exports.Provider=Be;exports.StorageService=Ft;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=Z;exports.clearLoaderCache=dt;exports.compileScopedCSS=$e;exports.createAccess=rt;exports.createAdapter=st;exports.createAssetScripts=Qe;exports.createAssetsCss=Xe;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=xe;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=Ze;exports.toString=X;exports.useAccess=Re;exports.useMask=Ht;exports.useProvider=ce;
|
package/dist/index.mjs
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
import { Base as
|
2
|
-
import { isUrl as
|
1
|
+
import { Base as Ue, BUILT_IN_COMPONENTS as Le, ProjectModel as B, HistoryModel as ge } from "@vtj/core";
|
2
|
+
import { isUrl as qe, url as C, dedupArray as Je, 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 Ke, pathToRegexp as ze, pathToRegexpMatch as Ve, formDataToJson as We, Queue as Ge, cloneDeep as pe, camelCase as b, upperFirst as Qe, pick as Ye, request as Y, loadScript as fe, Storage as Xe, 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 Ze } 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.40
|
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.40";
|
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",
|
@@ -38,7 +38,7 @@ const he = [
|
|
38
38
|
"renderTriggered",
|
39
39
|
"activated",
|
40
40
|
"deactivated"
|
41
|
-
],
|
41
|
+
], et = [
|
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
|
+
], tt = {
|
51
51
|
String,
|
52
52
|
Number,
|
53
53
|
Boolean,
|
@@ -55,11 +55,11 @@ const he = [
|
|
55
55
|
Object,
|
56
56
|
Function,
|
57
57
|
Date
|
58
|
-
}, M = "VtjPage", N = "VtjHomepage",
|
58
|
+
}, M = "VtjPage", N = "VtjHomepage", st = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot,svg".split(
|
59
59
|
","
|
60
|
-
),
|
60
|
+
), rt = "component,slot".split(",");
|
61
61
|
function O(r, e) {
|
62
|
-
return r.map((t) =>
|
62
|
+
return r.map((t) => qe(t) || t.startsWith("/") ? t : `${e}${t}`);
|
63
63
|
}
|
64
64
|
function q(r) {
|
65
65
|
return /\.css$/.test(r);
|
@@ -67,7 +67,7 @@ function q(r) {
|
|
67
67
|
function J(r) {
|
68
68
|
return /\.js$/.test(r);
|
69
69
|
}
|
70
|
-
function
|
70
|
+
function nt(r) {
|
71
71
|
return /\.json$/.test(r);
|
72
72
|
}
|
73
73
|
function os(r) {
|
@@ -80,15 +80,15 @@ function as(r = []) {
|
|
80
80
|
(e) => `<link rel="stylesheet" href="${C.append(e, { v: I })}" />`
|
81
81
|
).join("");
|
82
82
|
}
|
83
|
-
function
|
83
|
+
function it(r, e = !1) {
|
84
84
|
return e && r.endsWith(".prod.js") ? r.replace(".prod.js", ".js") : r;
|
85
85
|
}
|
86
|
-
function
|
86
|
+
function ot(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(it(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
|
), {
|
@@ -96,24 +96,24 @@ function it(r, e, t = !1) {
|
|
96
96
|
css: O(i, e),
|
97
97
|
materials: O(a, e),
|
98
98
|
libraryExports: o,
|
99
|
-
materialExports:
|
99
|
+
materialExports: Je(u),
|
100
100
|
materialMapLibrary: l,
|
101
101
|
libraryMap: p,
|
102
102
|
libraryLocaleMap: c
|
103
103
|
};
|
104
104
|
}
|
105
|
-
function
|
105
|
+
function at(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 ct(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 lt(r, e) {
|
117
117
|
const t = (c) => {
|
118
118
|
const u = [];
|
119
119
|
let l = 0;
|
@@ -141,9 +141,9 @@ function ct(r, e) {
|
|
141
141
|
}), l++;
|
142
142
|
else if (c[l] === "{") {
|
143
143
|
const K = l + 1;
|
144
|
-
let
|
145
|
-
for (l++; l < c.length &&
|
146
|
-
c[l] === "{" ?
|
144
|
+
let F = 1;
|
145
|
+
for (l++; l < c.length && F > 0; )
|
146
|
+
c[l] === "{" ? F++ : c[l] === "}" && F--, l++;
|
147
147
|
const z = c.substring(g, l), E = c.substring(K, l - 1);
|
148
148
|
u.push({
|
149
149
|
type: v ? "keyframes" : "at-rule",
|
@@ -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 ? lt(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 ut(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 ut(r) {
|
275
|
-
return U(r) || U(r?.install);
|
276
|
-
}
|
277
274
|
function pt(r) {
|
278
|
-
return
|
275
|
+
return U(r) || U(r?.install);
|
279
276
|
}
|
280
277
|
function ft(r) {
|
281
|
-
return
|
278
|
+
return rt.includes(r);
|
279
|
+
}
|
280
|
+
function dt(r) {
|
281
|
+
return st.includes(r);
|
282
282
|
}
|
283
283
|
function D(r = window) {
|
284
284
|
const e = window?.Mock;
|
@@ -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 ht(r) {
|
327
327
|
return S(r) || H(r);
|
328
328
|
}
|
329
329
|
function ls(r) {
|
330
|
-
return
|
330
|
+
return ht(r) ? r.value : JSON.stringify(r);
|
331
331
|
}
|
332
|
-
const
|
332
|
+
const mt = {
|
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({}, mt, e), this.loadData();
|
353
353
|
}
|
354
354
|
enableIntercept() {
|
355
355
|
this.interceptResponse = !0;
|
@@ -496,7 +496,7 @@ class Re {
|
|
496
496
|
);
|
497
497
|
}
|
498
498
|
}
|
499
|
-
function
|
499
|
+
function gt() {
|
500
500
|
return _e(Pe, null);
|
501
501
|
}
|
502
502
|
function us(r = {}) {
|
@@ -542,7 +542,7 @@ function us(r = {}) {
|
|
542
542
|
function ps(r = {}) {
|
543
543
|
return new Re(r);
|
544
544
|
}
|
545
|
-
function
|
545
|
+
function vt(r, e) {
|
546
546
|
const { jsonp: t, request: s } = e;
|
547
547
|
if (r.method === "jsonp")
|
548
548
|
return (n = {}) => t(r.url, {
|
@@ -558,10 +558,10 @@ function gt(r, e) {
|
|
558
558
|
headers: n
|
559
559
|
}
|
560
560
|
};
|
561
|
-
return (a, o) => (delete i.data, s.send(
|
561
|
+
return (a, o) => (delete i.data, s.send(Ke(i, o || {}, { data: a })));
|
562
562
|
}
|
563
563
|
}
|
564
|
-
function
|
564
|
+
function yt(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 vt(r, e) {
|
|
573
573
|
return t(s, n, i, a);
|
574
574
|
};
|
575
575
|
}
|
576
|
-
function
|
576
|
+
function _t(r = [], e = [], t) {
|
577
577
|
const s = {};
|
578
578
|
for (const n of r)
|
579
|
-
s[n.id] = gt(n, t);
|
580
|
-
for (const n of e)
|
581
579
|
s[n.id] = vt(n, t);
|
580
|
+
for (const n of e)
|
581
|
+
s[n.id] = yt(n, t);
|
582
582
|
return s;
|
583
583
|
}
|
584
|
-
async function
|
584
|
+
async function wt(r = [], e = window) {
|
585
585
|
const t = D(e);
|
586
|
-
t && (Ce(e), r.forEach((s) =>
|
586
|
+
t && (Ce(e), r.forEach((s) => $t(t, s)));
|
587
587
|
}
|
588
|
-
function
|
588
|
+
function St(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,13 +598,13 @@ function wt(r, e = window) {
|
|
598
598
|
return s?.mock(i);
|
599
599
|
};
|
600
600
|
}
|
601
|
-
function
|
601
|
+
function $t(r, e) {
|
602
602
|
if (!e.mock) return;
|
603
603
|
const { url: t, mockTemplate: s } = e;
|
604
604
|
if (t && s) {
|
605
|
-
const n =
|
605
|
+
const n = ze(`${t}(.*)`), i = Ve(t, { decode: decodeURIComponent }), a = T(s, {}, !0);
|
606
606
|
r.mock(n, (o) => {
|
607
|
-
const p = C.parse(o.url) || {}, c = o.body instanceof FormData ?
|
607
|
+
const p = C.parse(o.url) || {}, c = o.body instanceof FormData ? We(o.body) : o.body, u = i(o.url)?.params;
|
608
608
|
return Object.assign(o, { data: c, params: p, query: u }), r.mock(a(o));
|
609
609
|
});
|
610
610
|
}
|
@@ -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 jt {
|
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 jt({
|
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
|
+
...bt(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 = Pt(e, o.value.state ?? {}, c);
|
744
|
+
const h = Rt(e, o.value.computed ?? {}, c), f = Ct(o.value.methods ?? {}, c), d = kt(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 = At(
|
748
748
|
o.value.dataSources || {},
|
749
749
|
c
|
750
750
|
), y = {
|
@@ -757,27 +757,27 @@ function te(r) {
|
|
757
757
|
vtj: c
|
758
758
|
};
|
759
759
|
},
|
760
|
-
emits:
|
760
|
+
emits: Et(o.value.emits),
|
761
761
|
expose: ["vtj"],
|
762
762
|
render() {
|
763
763
|
if (!o.value.nodes) return null;
|
764
764
|
const l = o.value.nodes || [];
|
765
|
-
return l.length === 1 ?
|
766
|
-
(h) =>
|
765
|
+
return l.length === 1 ? A(l[0], c, e, a, l) : l.map(
|
766
|
+
(h) => A(h, c, e, a, l)
|
767
767
|
);
|
768
768
|
},
|
769
|
-
...
|
769
|
+
...It(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 Et(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 bt(r = [], e) {
|
780
|
+
const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((i) => tt[i]) : void 0;
|
781
781
|
return r.map((s) => P(s) ? {
|
782
782
|
name: s
|
783
783
|
} : {
|
@@ -794,7 +794,7 @@ function Et(r = [], e) {
|
|
794
794
|
{}
|
795
795
|
);
|
796
796
|
}
|
797
|
-
function
|
797
|
+
function Pt(r, e, t) {
|
798
798
|
return r.reactive(
|
799
799
|
Object.keys(e || {}).reduce(
|
800
800
|
(s, n) => {
|
@@ -805,19 +805,19 @@ function bt(r, e, t) {
|
|
805
805
|
)
|
806
806
|
);
|
807
807
|
}
|
808
|
-
function
|
808
|
+
function Rt(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 Ct(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 kt(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 Ct(r, e = [], t) {
|
|
828
828
|
{}
|
829
829
|
);
|
830
830
|
}
|
831
|
-
function
|
831
|
+
function At(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] = St(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) => {
|
@@ -858,7 +858,7 @@ function Ft(r, e = [], t) {
|
|
858
858
|
);
|
859
859
|
});
|
860
860
|
}
|
861
|
-
function
|
861
|
+
function It(r, e) {
|
862
862
|
return Object.entries(r ?? {}).reduce(
|
863
863
|
(t, [s, n]) => {
|
864
864
|
const i = e.__parseFunction(n);
|
@@ -869,10 +869,10 @@ function At(r, e) {
|
|
869
869
|
{}
|
870
870
|
);
|
871
871
|
}
|
872
|
-
const
|
872
|
+
const ke = new Ge();
|
873
873
|
let Q = [], R = {};
|
874
874
|
const Mt = (r) => r;
|
875
|
-
async function
|
875
|
+
async function Ae(r, e = window) {
|
876
876
|
const { urls: t = [], library: s } = r, n = t.filter((o) => J(o));
|
877
877
|
if (n.length === 0 || !s) return null;
|
878
878
|
const i = t.filter((o) => q(o));
|
@@ -888,7 +888,7 @@ function se(r) {
|
|
888
888
|
if (!i || typeof i == "string") return n;
|
889
889
|
if (i.type === "Schema" && i.id)
|
890
890
|
return a.defineAsyncComponent(async () => {
|
891
|
-
const o = R[i.id] || await
|
891
|
+
const o = R[i.id] || await ke.add(
|
892
892
|
i.id,
|
893
893
|
() => e(i.id)
|
894
894
|
);
|
@@ -915,7 +915,7 @@ function se(r) {
|
|
915
915
|
let o = i.library ? R[i.library] : null;
|
916
916
|
return o || (i.library && Q.push(i.library), o = R[i.library || Symbol()] = a.defineAsyncComponent(
|
917
917
|
async () => {
|
918
|
-
const p = await
|
918
|
+
const p = await Ae(i, s.window);
|
919
919
|
return p || (console.warn("getPlugin result is null", i), null);
|
920
920
|
}
|
921
921
|
), o);
|
@@ -924,9 +924,9 @@ function se(r) {
|
|
924
924
|
};
|
925
925
|
}
|
926
926
|
function fs() {
|
927
|
-
R = {};
|
927
|
+
R = {}, ke.clearAllCache();
|
928
928
|
}
|
929
|
-
function
|
929
|
+
function A(r, e, t = L, s = Mt, n = [], i = !1) {
|
930
930
|
if (!r || !r.name || r.invisible) return null;
|
931
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);
|
932
932
|
if (!i && (u || l))
|
@@ -934,13 +934,13 @@ function F(r, e, t = L, s = Mt, n = [], i = !1) {
|
|
934
934
|
if (c && !Tt(c, e))
|
935
935
|
return Nt(r, e, t, s, n);
|
936
936
|
const $ = (v, K = 0) => {
|
937
|
-
const
|
937
|
+
const F = v.$components, z = (() => {
|
938
938
|
if (r.name === "component")
|
939
939
|
return Ht(v, r.props?.is);
|
940
940
|
if (r.name === "slot") return r.name;
|
941
941
|
const j = s(r.name, r.from, t);
|
942
|
-
return P(j) ?
|
943
|
-
})(), E = Ot(o, r.props ?? {}, v),
|
942
|
+
return P(j) ? ft(j) || dt(j) ? j : F[j] ?? a?.app?.component(j) ?? j : j;
|
943
|
+
})(), E = Ot(o, r.props ?? {}, v), xe = xt(t, r.events ?? {}, v);
|
944
944
|
if (r.name === "slot")
|
945
945
|
return Bt(t, r, E, v, s);
|
946
946
|
m && Object.assign(E, v.__parseExpression(m.value)), f && (E.style = Object.assign(
|
@@ -949,17 +949,17 @@ function F(r, e, t = L, s = Mt, n = [], i = !1) {
|
|
949
949
|
)), y && Object.assign(E, qt(y, v)), d.forEach((j) => {
|
950
950
|
Object.assign(E, Jt(t, j, v));
|
951
951
|
});
|
952
|
-
const
|
952
|
+
const Ne = Kt(
|
953
953
|
t,
|
954
954
|
r.children ?? [],
|
955
955
|
v,
|
956
956
|
s,
|
957
957
|
r
|
958
|
-
), ae = v?.__id ? `data-v-${v.__id}` : void 0,
|
958
|
+
), ae = v?.__id ? `data-v-${v.__id}` : void 0, Be = ae ? { [ae]: "" } : {};
|
959
959
|
let V = t.createVNode(
|
960
960
|
z,
|
961
|
-
{ key: `${o}_${K}`, ...
|
962
|
-
|
961
|
+
{ key: `${o}_${K}`, ...Be, ...E, ...xe },
|
962
|
+
Ne
|
963
963
|
);
|
964
964
|
const ce = a ? Dt(a, g, v) : [];
|
965
965
|
return ce.length && (V = t.withDirectives(V, ce)), V;
|
@@ -981,7 +981,7 @@ function Fe(r = []) {
|
|
981
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(
|
982
982
|
(u) => b(u.name) === "vModel"
|
983
983
|
), c = r.filter(
|
984
|
-
(u) => !
|
984
|
+
(u) => !et.includes(b(u.name))
|
985
985
|
);
|
986
986
|
return {
|
987
987
|
vIf: e,
|
@@ -1022,7 +1022,7 @@ function xt(r, e, t) {
|
|
1022
1022
|
};
|
1023
1023
|
return Object.keys(e || {}).reduce(
|
1024
1024
|
(i, a) => {
|
1025
|
-
const o = e[a], p =
|
1025
|
+
const o = e[a], p = Ie(o.modifiers), c = p.find((h) => s.includes(h)), u = "on" + Qe(a) + (c && n[c] || ""), l = t.__parseFunction(o.handler);
|
1026
1026
|
return l && (i[u] = r.withModifiers(l, p)), i;
|
1027
1027
|
},
|
1028
1028
|
{}
|
@@ -1034,15 +1034,15 @@ function Nt(r, e, t, s, n = []) {
|
|
1034
1034
|
const { directives: o = [] } = n[a], { vElseIf: p, vElse: c } = Fe(o);
|
1035
1035
|
if (p) {
|
1036
1036
|
if (e.__parseExpression(p.value))
|
1037
|
-
return
|
1037
|
+
return A(n[a], e, t, s, n, !0);
|
1038
1038
|
continue;
|
1039
1039
|
}
|
1040
1040
|
if (c)
|
1041
|
-
return
|
1041
|
+
return A(n[a], e, t, s, n, !0);
|
1042
1042
|
}
|
1043
1043
|
return null;
|
1044
1044
|
}
|
1045
|
-
function
|
1045
|
+
function Ie(r = {}, e = !1) {
|
1046
1046
|
const t = Object.keys(r);
|
1047
1047
|
return e ? t.map((s) => "." + s) : t;
|
1048
1048
|
}
|
@@ -1051,7 +1051,7 @@ function Bt(r, e, t, s, n) {
|
|
1051
1051
|
return o ? o(t) : i ? P(i) ? r.createTextVNode(i) : S(i) ? r.createTextVNode(
|
1052
1052
|
$e(s.__parseExpression(i))
|
1053
1053
|
) : Array.isArray(i) ? i.map(
|
1054
|
-
(p) =>
|
1054
|
+
(p) => A(p, s, r, n, i)
|
1055
1055
|
) : null : null;
|
1056
1056
|
}
|
1057
1057
|
function Ut(r, e) {
|
@@ -1077,7 +1077,7 @@ function Jt(r, e, t) {
|
|
1077
1077
|
value: e.value?.value ? `(v) => {
|
1078
1078
|
${e.value.value} = v;
|
1079
1079
|
}` : "(v) => {}"
|
1080
|
-
}, n = t.__parseFunction(s), i =
|
1080
|
+
}, n = t.__parseFunction(s), i = Ie(
|
1081
1081
|
S(e.modifiers) ? t.__parseExpression(e.modifiers) : e.modifiers
|
1082
1082
|
), a = S(e.arg) ? t.__parseExpression(e.arg) : e.arg || "modelValue";
|
1083
1083
|
return {
|
@@ -1098,9 +1098,9 @@ function Kt(r, e, t, s, n) {
|
|
1098
1098
|
[`scope_${n.id}`]: o
|
1099
1099
|
} : {};
|
1100
1100
|
return Object.entries(i).reduce((o, [p, { nodes: c, params: u }]) => (o[p] = (l) => {
|
1101
|
-
const h = u.length ?
|
1101
|
+
const h = u.length ? Ye(l ?? {}, u) : a(l);
|
1102
1102
|
return c.map(
|
1103
|
-
(f) =>
|
1103
|
+
(f) => A(f, t.__clone(h), r, s, c)
|
1104
1104
|
);
|
1105
1105
|
}, o), {});
|
1106
1106
|
}
|
@@ -1128,7 +1128,7 @@ function Wt(r, e, t) {
|
|
1128
1128
|
const me = we({
|
1129
1129
|
name: "VtjPageContainer",
|
1130
1130
|
async setup() {
|
1131
|
-
const r =
|
1131
|
+
const r = De(), e = Se(), t = e.params.id, s = t ? r.getPage(t) : r.getHomepage(), n = s ? await r.getRenderComponent(s.id) : null, i = Z(Symbol());
|
1132
1132
|
if (s) {
|
1133
1133
|
Object.assign(e.meta, s.meta || {}, { cache: s.cache });
|
1134
1134
|
const { useTitle: a } = r?.adapter;
|
@@ -1156,9 +1156,9 @@ const me = we({
|
|
1156
1156
|
render() {
|
1157
1157
|
return X("div", "page not found!");
|
1158
1158
|
}
|
1159
|
-
}),
|
1159
|
+
}), Me = Symbol("Provider");
|
1160
1160
|
var Qt = /* @__PURE__ */ ((r) => (r.Production = "production", r.Development = "development", r))(Qt || {});
|
1161
|
-
class Yt extends
|
1161
|
+
class Yt extends Ue {
|
1162
1162
|
// DSL缓存
|
1163
1163
|
/**
|
1164
1164
|
* 创建Provider实例
|
@@ -1239,7 +1239,7 @@ class Yt extends Be {
|
|
1239
1239
|
if (this.project = t ? await t() : await this.service.init(e), !this.project)
|
1240
1240
|
throw new Error("project is null");
|
1241
1241
|
const { apis: s = [], meta: n = [] } = this.project, i = window;
|
1242
|
-
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 = _t(s, n, this.adapter), Ce(i), wt(s, i), e.platform !== "uniapp" && this.initRouter(), this.triggerReady();
|
1243
1243
|
}
|
1244
1244
|
initMock(e) {
|
1245
1245
|
const t = D(e);
|
@@ -1259,7 +1259,7 @@ class Yt extends Be {
|
|
1259
1259
|
materials: u,
|
1260
1260
|
materialExports: l,
|
1261
1261
|
materialMapLibrary: h
|
1262
|
-
} =
|
1262
|
+
} = ot(
|
1263
1263
|
t,
|
1264
1264
|
a,
|
1265
1265
|
o === "development"
|
@@ -1274,7 +1274,7 @@ class Yt extends Be {
|
|
1274
1274
|
else {
|
1275
1275
|
const y = c[f] || [];
|
1276
1276
|
for (const g of y)
|
1277
|
-
q(g) && await
|
1277
|
+
q(g) && await ut(f, C.append(g, { v: I })), J(g) && await fe(C.append(g, { v: I }));
|
1278
1278
|
n[f] = e[f];
|
1279
1279
|
}
|
1280
1280
|
}
|
@@ -1283,7 +1283,7 @@ class Yt extends Be {
|
|
1283
1283
|
await fe(C.append(d, { v: I }));
|
1284
1284
|
const f = this.materials || {};
|
1285
1285
|
for (const d of l) {
|
1286
|
-
const m = e[h[d]], y =
|
1286
|
+
const m = e[h[d]], y = Le[d];
|
1287
1287
|
if (y)
|
1288
1288
|
m && y.forEach((g) => {
|
1289
1289
|
i[g] = m[g];
|
@@ -1291,7 +1291,7 @@ class Yt extends Be {
|
|
1291
1291
|
else {
|
1292
1292
|
const g = f[d] ? (await f[d]()).default : e[d];
|
1293
1293
|
g && m && (g.components || []).forEach(($) => {
|
1294
|
-
i[$.name] =
|
1294
|
+
i[$.name] = at($, m);
|
1295
1295
|
});
|
1296
1296
|
}
|
1297
1297
|
}
|
@@ -1329,8 +1329,8 @@ class Yt extends Be {
|
|
1329
1329
|
install(e) {
|
1330
1330
|
const t = e.config.globalProperties.installed || {};
|
1331
1331
|
for (const [s, n] of Object.entries(this.library))
|
1332
|
-
!t[s] &&
|
1333
|
-
this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(
|
1332
|
+
!t[s] && pt(n) && (e.use(n), t[s] = !0);
|
1333
|
+
this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(Me, this), e.config.globalProperties.$provider = this, e.config.globalProperties.installed = t, this.mode === w.Design && (e.config.errorHandler = (s, n, i) => {
|
1334
1334
|
const a = n?.$options.name, o = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", p = `[ ${a} ] ${o} ${i}`;
|
1335
1335
|
console.error(
|
1336
1336
|
"[VTJ Error]:",
|
@@ -1453,7 +1453,7 @@ class Yt extends Be {
|
|
1453
1453
|
* @returns Vue异步组件
|
1454
1454
|
*/
|
1455
1455
|
definePluginComponent(e) {
|
1456
|
-
return de(async () => await
|
1456
|
+
return de(async () => await Ae(e, window));
|
1457
1457
|
}
|
1458
1458
|
}
|
1459
1459
|
function ds(r) {
|
@@ -1463,8 +1463,8 @@ function ds(r) {
|
|
1463
1463
|
onReady: (s) => e.ready(s)
|
1464
1464
|
};
|
1465
1465
|
}
|
1466
|
-
function
|
1467
|
-
const e = _e(
|
1466
|
+
function De(r = {}) {
|
1467
|
+
const e = _e(Me, null);
|
1468
1468
|
if (!e)
|
1469
1469
|
throw new Error("Can not find provider");
|
1470
1470
|
if (e.nodeEnv === "development") {
|
@@ -1481,14 +1481,14 @@ function Me(r = {}) {
|
|
1481
1481
|
return e;
|
1482
1482
|
}
|
1483
1483
|
async function hs(r, e = "") {
|
1484
|
-
const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } =
|
1484
|
+
const { name: t, urls: s = [] } = r || {}, n = s.map((o) => e + o), { css: i, js: a } = ct(n);
|
1485
1485
|
if (i.length && Ee(i), a.length)
|
1486
1486
|
return await be(a, t).catch(
|
1487
1487
|
() => {
|
1488
1488
|
}
|
1489
1489
|
);
|
1490
1490
|
}
|
1491
|
-
const
|
1491
|
+
const Te = {
|
1492
1492
|
type: "json",
|
1493
1493
|
validSuccess: !0,
|
1494
1494
|
originResponse: !1,
|
@@ -1503,7 +1503,7 @@ const De = {
|
|
1503
1503
|
type: t,
|
1504
1504
|
data: s
|
1505
1505
|
},
|
1506
|
-
settings:
|
1506
|
+
settings: Te
|
1507
1507
|
}), Zt = (r, e = "/__vtj__/api/uploader.json") => async (t, s) => await r.send({
|
1508
1508
|
url: e,
|
1509
1509
|
method: "post",
|
@@ -1512,7 +1512,7 @@ const De = {
|
|
1512
1512
|
projectId: s
|
1513
1513
|
},
|
1514
1514
|
settings: {
|
1515
|
-
...
|
1515
|
+
...Te,
|
1516
1516
|
type: "data"
|
1517
1517
|
}
|
1518
1518
|
}).then((n) => n && n[0] ? n[0] : null).catch(() => null);
|
@@ -1616,7 +1616,7 @@ class oe {
|
|
1616
1616
|
return await this.api("clearStaticFiles", e).catch(() => "");
|
1617
1617
|
}
|
1618
1618
|
async getPluginMaterial(e) {
|
1619
|
-
const { urls: t = [] } = e, s = t.filter((i) =>
|
1619
|
+
const { urls: t = [] } = e, s = t.filter((i) => nt(i))[0];
|
1620
1620
|
if (!s) return null;
|
1621
1621
|
const n = this.pluginCaches[s];
|
1622
1622
|
return n || (this.pluginCaches[s] = Y.send({
|
@@ -1632,7 +1632,7 @@ class oe {
|
|
1632
1632
|
return console.log("BaseService.genSource", e), "";
|
1633
1633
|
}
|
1634
1634
|
}
|
1635
|
-
const _ = new
|
1635
|
+
const _ = new Xe({
|
1636
1636
|
type: "local",
|
1637
1637
|
expired: 0,
|
1638
1638
|
prefix: "__VTJ_"
|
@@ -1805,7 +1805,7 @@ class ys extends oe {
|
|
1805
1805
|
);
|
1806
1806
|
}
|
1807
1807
|
}
|
1808
|
-
function
|
1808
|
+
function He(r, e, t = []) {
|
1809
1809
|
return t.map((s) => {
|
1810
1810
|
const { id: n, title: i, icon: a, children: o, hidden: p } = s;
|
1811
1811
|
return {
|
@@ -1814,16 +1814,16 @@ function Te(r, e, t = []) {
|
|
1814
1814
|
icon: a,
|
1815
1815
|
hidden: p,
|
1816
1816
|
url: `${r}/${e}/${n}`,
|
1817
|
-
children: o && o.length ?
|
1817
|
+
children: o && o.length ? He(r, e, o) : void 0
|
1818
1818
|
};
|
1819
1819
|
});
|
1820
1820
|
}
|
1821
|
-
function
|
1821
|
+
function Oe(r, e) {
|
1822
1822
|
if (!e) return r;
|
1823
1823
|
let t = [];
|
1824
1824
|
for (const s of r)
|
1825
1825
|
if (s.children && s.children.length) {
|
1826
|
-
const n =
|
1826
|
+
const n = Oe(s.children, e);
|
1827
1827
|
n.length && (s.children = n, t.push(s));
|
1828
1828
|
} else
|
1829
1829
|
e.can(s.id.toString()) && t.push(s);
|
@@ -1834,8 +1834,8 @@ function _s(r) {
|
|
1834
1834
|
menuPathPrefix: e = "",
|
1835
1835
|
pageRouteName: t = "page",
|
1836
1836
|
disableMenusFilter: s = !1
|
1837
|
-
} = r || {}, n =
|
1838
|
-
|
1837
|
+
} = r || {}, n = De(), i = Se(), a = gt(), o = Z(!1), p = Z(!1), c = n.project;
|
1838
|
+
Ze(() => {
|
1839
1839
|
const { name: h, params: f, meta: d } = i;
|
1840
1840
|
if (h === M) {
|
1841
1841
|
const m = n.getPage(f.id);
|
@@ -1846,7 +1846,7 @@ function _s(r) {
|
|
1846
1846
|
} else
|
1847
1847
|
o.value = !d.mask, p.value = !!d.pure;
|
1848
1848
|
});
|
1849
|
-
const u =
|
1849
|
+
const u = He(
|
1850
1850
|
e,
|
1851
1851
|
t,
|
1852
1852
|
c?.pages
|
@@ -1856,22 +1856,22 @@ function _s(r) {
|
|
1856
1856
|
logo: l?.logo,
|
1857
1857
|
themeSwitchable: l?.themeSwitchable,
|
1858
1858
|
title: l?.title || c?.description || c?.name || "VTJ App",
|
1859
|
-
menus: s ? u :
|
1859
|
+
menus: s ? u : Oe(u, a),
|
1860
1860
|
pure: p
|
1861
1861
|
};
|
1862
1862
|
}
|
1863
1863
|
export {
|
1864
1864
|
Pe as ACCESS_KEY,
|
1865
1865
|
Re as Access,
|
1866
|
-
|
1867
|
-
|
1866
|
+
rt as BUILD_IN_TAGS,
|
1867
|
+
et as BUILT_IN_DIRECTIVES,
|
1868
1868
|
oe as BaseService,
|
1869
1869
|
he as CONTEXT_HOST,
|
1870
|
-
|
1870
|
+
jt as Context,
|
1871
1871
|
w as ContextMode,
|
1872
|
-
|
1872
|
+
tt as DATA_TYPES,
|
1873
1873
|
N as HOMEPAGE_ROUTE_NAME,
|
1874
|
-
|
1874
|
+
st as HTML_TAGS,
|
1875
1875
|
ls as JSCodeToString,
|
1876
1876
|
is as LIFE_CYCLES_LIST,
|
1877
1877
|
ys as LocalService,
|
@@ -1883,53 +1883,53 @@ export {
|
|
1883
1883
|
I as VTJ_RENDERER_VERSION,
|
1884
1884
|
je as adoptedStyleSheets,
|
1885
1885
|
fs as clearLoaderCache,
|
1886
|
-
|
1886
|
+
lt as compileScopedCSS,
|
1887
1887
|
ps as createAccess,
|
1888
1888
|
us as createAdapter,
|
1889
1889
|
os as createAssetScripts,
|
1890
1890
|
as as createAssetsCss,
|
1891
|
-
|
1891
|
+
At as createDataSources,
|
1892
1892
|
se as createLoader,
|
1893
1893
|
vs as createMemoryService,
|
1894
|
-
|
1895
|
-
|
1894
|
+
yt as createMetaApi,
|
1895
|
+
St as createMock,
|
1896
1896
|
ds as createProvider,
|
1897
1897
|
te as createRenderer,
|
1898
|
-
|
1899
|
-
|
1898
|
+
vt as createSchemaApi,
|
1899
|
+
_t as createSchemaApis,
|
1900
1900
|
ms as createServiceRequest,
|
1901
1901
|
Mt as defaultLoader,
|
1902
1902
|
O as fillBasePath,
|
1903
1903
|
D as getMock,
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1904
|
+
Ie as getModifiers,
|
1905
|
+
Ae as getPlugin,
|
1906
|
+
at as getRawComponent,
|
1907
|
+
ft as isBuiltInTag,
|
1908
1908
|
q as isCSSUrl,
|
1909
|
-
|
1909
|
+
ht as isJSCode,
|
1910
1910
|
S as isJSExpression,
|
1911
1911
|
H as isJSFunction,
|
1912
|
-
|
1912
|
+
nt as isJSON,
|
1913
1913
|
J as isJSUrl,
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1914
|
+
dt as isNativeTag,
|
1915
|
+
pt as isVuePlugin,
|
1916
|
+
ut as loadCss,
|
1917
1917
|
Ee as loadCssUrl,
|
1918
1918
|
hs as loadEnhance,
|
1919
1919
|
be as loadScriptUrl,
|
1920
|
-
|
1921
|
-
|
1920
|
+
$t as mockApi,
|
1921
|
+
wt as mockApis,
|
1922
1922
|
Ce as mockCleanup,
|
1923
|
-
|
1924
|
-
|
1923
|
+
A as nodeRender,
|
1924
|
+
ot as parseDeps,
|
1925
1925
|
T as parseExpression,
|
1926
1926
|
ee as parseFunction,
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1927
|
+
ct as parseUrls,
|
1928
|
+
Me as providerKey,
|
1929
|
+
it as removeProdFlag,
|
1930
1930
|
cs as setupPageSetting,
|
1931
1931
|
$e as toString,
|
1932
|
-
|
1932
|
+
gt as useAccess,
|
1933
1933
|
_s as useMask,
|
1934
|
-
|
1934
|
+
De as useProvider
|
1935
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.40",
|
5
5
|
"type": "module",
|
6
6
|
"keywords": [
|
7
7
|
"低代码引擎",
|
@@ -21,15 +21,15 @@
|
|
21
21
|
"author": "chenhuachun",
|
22
22
|
"license": "MIT",
|
23
23
|
"dependencies": {
|
24
|
-
"@vtj/
|
25
|
-
"@vtj/
|
24
|
+
"@vtj/utils": "~0.12.40",
|
25
|
+
"@vtj/core": "~0.12.40"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"vue": "~3.5.5",
|
29
29
|
"vue-router": "~4.5.0",
|
30
30
|
"@vtj/cli": "~0.12.4",
|
31
|
-
"@vtj/ui": "~0.12.
|
32
|
-
"@vtj/icons": "~0.12.
|
31
|
+
"@vtj/ui": "~0.12.40",
|
32
|
+
"@vtj/icons": "~0.12.40"
|
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.39
|
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.39";
|