@vtj/renderer 0.9.5 → 0.9.7

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 CHANGED
@@ -1,13 +1,13 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("@vtj/core"),u=require("@vtj/utils"),d=require("vue"),F=require("element-plus"),P=require("mockjs"),re=require("vue-router");function Ne(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const B=Ne(d);/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("@vtj/core"),u=require("@vtj/utils"),p=require("vue"),F=require("element-plus"),P=require("mockjs"),oe=require("vue-router");function Be(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const B=Be(p);/**!
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.9.5
5
+ * @version 0.9.7
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const k="0.9.5";var _=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(_||{});const z=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Be=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],oe=["vIf","vShow","vModel","vFor","vBind","vHtml"],ie={String,Number,Boolean,Array,Object,Function,Date},R="VtjPage",M="VtjHomepage",ae="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(","),ce="component,slot".split(",");function T(n,e){return n.map(t=>u.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function U(n){return/\.css$/.test(n)}function L(n){return/\.js$/.test(n)}function le(n){return/\.json$/.test(n)}function Ue(n){return n.map(e=>`<script src="${u.url.append(e,{v:k})}"><\/script>`).join("")}function Le(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:k})}" />`).join("")}function ue(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function de(n,e,t=!1){const s=n.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},l={},m=[],p={};return s.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{L(y)&&r.push(ue(y,t)),U(y)&&o.push(y)}),v&&(i.push(v),c[v]=T(f||[],e),b&&(l[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(p[h]=v)}),{scripts:T(r,e),css:T(o,e),materials:T(a,e),libraryExports:i,materialExports:u.dedupArray(m),materialMapLibrary:p,libraryMap:c,libraryLocaleMap:l}}function pe(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function K(n){return u.isString(n)?n:JSON.stringify(n)}function G(n,e,t){const s=n.CSSStyleSheet;if(s.prototype.replaceSync){const r=new s;r.id=e,r.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(c=>c.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=n.document;let o=r.getElementById(e);o?o.innerHTML=t:(o=r.createElement("style"),o.id=e,o.innerHTML=t,r.head.appendChild(o))}}async function fe(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&G(window,n,t)}function he(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,s.appendChild(a)}}async function me(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const c of n){const l=s.createElement("script");l.src=c,l.onload=()=>{o=t[e],o?a(o.default||o):i(null)},l.onerror=m=>{i(m)},r.appendChild(l)}})}function ge(n){return u.isFunction(n)||u.isFunction(n?.install)}function ve(n){return ce.includes(n)}function ye(n){return ae.includes(n)}function x(n,e,t=!1,s=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,c)=>`__self${c}`),o=r.join(`
8
- `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(u.logger.error("parseExpression.error",r,n,e?.__self??e),s)throw r}}function D(n,e,t=!1,s=!1){const r=x(n,e,t,s);if(typeof r!="function"&&(u.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return r}function S(n){return n&&n.type==="JSExpression"}function A(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function _e(n){return S(n)||A(n)}function qe(n){return _e(n)?n.value:JSON.stringify(n)}let C=null;const Je=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{F.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{C&&C.close(),C=F.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{C&&(C.close(),C=null)}}});function we(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?x(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(a,i)=>(delete o.data,s.send(u.merge(o,i||{},{data:a})))}}function Se(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,a)}}function be(n=[],e=[],t){const s={};for(const r of n)s[r.id]=we(r,t);for(const r of e)s[r.id]=Se(r,t);return s}async function je(n=[]){P&&(W(),n.forEach(e=>$e(P,e)))}function Ee(n){const e=A(n.mockTemplate)&&n.mockTemplate.value?D(n.mockTemplate,{},!0):void 0;return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(r){u.logger.warn("模拟数据模版异常",r)}return P.mock(s)}}function $e(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const r=u.pathToRegexp(`${t}(.*)`),o=u.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=x(s,{},!0);n.mock(r,i=>{const c=u.url.parse(i.url)||{},l=i.body instanceof FormData?u.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:l,params:c,query:m}),n.mock(a(i))})}}function W(){P&&(P._mocked={})}const Ve={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},Y=Symbol("access");class ze{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},Ve,e),this.loadData()}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(u.storage.save(t,e,{type:"local",prefix:s}),r&&u.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,u.storage.remove(e,{type:"local",prefix:t}),s&&u.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):u.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return u.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(Y,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>u.unRSA(r,t));this.data=JSON.parse(s.join(""));return}if(typeof e=="string")try{const s=t?u.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=u.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!u.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===R){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),u.isFunction(r)?(r(),t(!1)):u.isString(r)?t(r):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}=this.options;return e.status===t||e.data.code===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 u.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=>(await this.showUnauthorizedAlert(t),t),async t=>{const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Pe(){return d.inject(Y,null)}class Ce{__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:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=B){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__refs={},this.$refs={},this.__contextRefs={},this.context={}})}__proxy(){this.__instance&&z.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){z.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return D({type:s,value:r},this)}else return D(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return x({type:s,value:r},this)}else return x(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await u.delay(0);let r=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!r){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(r.nodeType===3&&r.nextSibling&&(r=r.nextSibling),r.__vtj__=e,_.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=s),typeof t=="function")t(s);else if(t){const o=this.$refs[t];if(o&&s!==o){const a=new Set([].concat(o,s));this.$refs[t]=Array.from(a)}else this.$refs[t]=s}return s}}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function H(n){const{Vue:e=B,mode:t=_.Runtime,components:s={},libs:r={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),c={$components:s,$libs:r,$apis:o},l=new Ce({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...Ge(i.value.props??[],l)},setup(p){l.$props=p,l.props=p,i.value.id&&G(n.window||window,i.value.id,i.value.css||""),l.state=We(e,i.value.state??{},l);const f=Ye(e,i.value.computed??{},l),g=Qe(i.value.methods??{},l),v=Xe(e,i.value.inject,l),h=ke(i.value.dataSources||{},l),b={...v,...f,...g,...h};return l.setup(b,e),Ze(e,i.value.watch??[],l),{vtj:l}},emits:Ke(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const p=i.value.nodes||[];return p.length===1?O(p[0],l,e,a):p.map(f=>O(f,l,e,a))},...et(i.value.lifeCycles??{},l)});return{renderer:e.markRaw(m),context:l}}function Ke(n=[]){return n.map(e=>u.isString(e)?e:e.name)}function Ge(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>ie[o]):void 0;return n.map(s=>u.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:S(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function We(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return S(o)?o=t.__parseExpression(o):A(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function Ye(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function Qe(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function Xe(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:a}=r||{};r.default;const i=S(a)?t.__parseExpression(a)||o:a??o,c=S(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(i,c),s},{})}function ke(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=Ee(r);else if(r.ref){const o=e.$apis[r.ref],a=A(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;t[s]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c}}return t},{})}function Ze(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function et(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}let V=[];const Re=n=>n;async function Q(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(i=>L(i));if(r.length===0||!s)return null;const o=t.filter(i=>U(i));return o.length&&he(o,e),await me(r,s,e).catch(i=>(console.warn("loadScriptUrl error",r,s,i),null))}function N(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(V.forEach(r=>{delete s.window[r]}),V=[]),(r,o,a=B)=>!o||typeof o=="string"?r:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=r),i?H({...s,Vue:a,dsl:i,mode:_.Runtime,loader:N(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?H({...s,Vue:a,dsl:i,mode:_.Runtime,loader:N(n)}).renderer:null}):o.type==="Plugin"?(o.library&&V.push(o.library),a.defineAsyncComponent(async()=>{const i=await Q(o,s.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function O(n,e,t=B,s=Re){if(!n||!n.name||n.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=n,{vIf:i,vFor:c,vShow:l,vModels:m,vBind:p,vHtml:f,others:g}=st(a);if(i&&!nt(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(n.name==="component")return rt(h,n.props?.is);if(n.name==="slot")return n.name;const E=s(n.name,n.from,t);return u.isString(E)?ve(E)||ye(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=ot(o,n.props??{},h),De=it(t,n.events??{},h);if(n.name==="slot")return at(t,n,j,h,s);p&&Object.assign(j,h.__parseExpression(p.value)),l&&(j.style=Object.assign(j.style??{},lt(l,h))),f&&Object.assign(j,ut(f,h)),m.forEach(E=>{Object.assign(j,dt(t,E,h))});const He=pt(t,n.children??[],h,s,n);let J=t.createVNode(y,{...j,...De},He);const se=r?tt(r,g,h):[];return se.length&&(J=t.withDirectives(J,se)),J};return c?mt(c,v,e):v(e)}function tt(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const a=[o];return r.value&&a.push(t.__parseExpression(r.value)),r.arg&&a.push(r.arg),r.modifiers&&a.push(r.modifiers),a}).filter(r=>!!r)}function st(n=[]){const e=n.find(c=>u.camelCase(c.name)==="vIf"),t=n.find(c=>u.camelCase(c.name)==="vFor"),s=n.find(c=>u.camelCase(c.name)==="vShow"),r=n.find(c=>u.camelCase(c.name)==="vBind"),o=n.find(c=>u.camelCase(c.name)==="vHtml"),a=n.filter(c=>u.camelCase(c.name)==="vModel"),i=n.filter(c=>!oe.includes(u.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:r,others:i,vHtml:o}}function nt(n,e){return!!e.__parseExpression(n.value)}function rt(n,e){return e?S(e)?n.__parseExpression(e):e:"div"}function ot(n,e,t){const s=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return S(a)?a=t.__parseExpression(a):A(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return s.ref=t.__ref(n,s.ref),s}function it(n,e,t){const s=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],c=X(i.modifiers),l=c.find(f=>s.includes(f)),m="on"+u.upperFirst(a)+(l&&r[l]||""),p=t.__parseFunction(i.handler);return p&&(o[m]=n.withModifiers(p,c)),o},{})}function X(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function at(n,e,t,s,r){const{children:o}=e,a=ct(e,s),i=s.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):S(o)?n.createTextVNode(K(s.__parseExpression(o))):Array.isArray(o)?o.map(c=>O(c,s,n,r)):null:null}function ct(n,e){const{props:t}=n,s=t?.name||"default";return{name:S(s)?e.__parseExpression(s):s,params:[]}}function lt(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function ut(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function dt(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const k="0.9.7";var _=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(_||{});const z=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ue=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],ie=["vIf","vShow","vModel","vFor","vBind","vHtml"],ae={String,Number,Boolean,Array,Object,Function,Date},R="VtjPage",M="VtjHomepage",ce="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(","),le="component,slot".split(",");function A(n,e){return n.map(t=>u.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function U(n){return/\.css$/.test(n)}function L(n){return/\.js$/.test(n)}function ue(n){return/\.json$/.test(n)}function Le(n){return n.map(e=>`<script src="${u.url.append(e,{v:k})}"><\/script>`).join("")}function qe(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:k})}" />`).join("")}function de(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function pe(n,e,t=!1){const s=n.filter(f=>!!f.enabled),r=[],o=[],a=[],i=[],c={},l={},m=[],d={};return s.forEach(({urls:f,assetsUrl:g,library:v,assetsLibrary:h,localeLibrary:b})=>{f?.forEach(y=>{L(y)&&r.push(de(y,t)),U(y)&&o.push(y)}),v&&(i.push(v),c[v]=A(f||[],e),b&&(l[v]=b)),g&&a.push(g),h&&m.push(h),v&&h&&(d[h]=v)}),{scripts:A(r,e),css:A(o,e),materials:A(a,e),libraryExports:i,materialExports:u.dedupArray(m),materialMapLibrary:d,libraryMap:c,libraryLocaleMap:l}}function fe(n,e){const{name:t,parent:s,alias:r}=n;return s?e[s]?.[r||t]:e[r||t]}function K(n){return u.isString(n)?n:JSON.stringify(n)}function G(n,e,t){const s=n.CSSStyleSheet;if(s.prototype.replaceSync){const r=new s;r.id=e,r.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(c=>c.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=n.document;let o=r.getElementById(e);o?o.innerHTML=t:(o=r.createElement("style"),o.id=e,o.innerHTML=t,r.head.appendChild(o))}}async function he(n,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&G(window,n,t)}function me(n,e=window){const t=e.document,s=e.document.head;for(const r of n)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,s.appendChild(a)}}async function ge(n,e,t=window){const s=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const c of n){const l=s.createElement("script");l.src=c,l.onload=()=>{o=t[e],o?a(o.default||o):i(null)},l.onerror=m=>{i(m)},r.appendChild(l)}})}function ve(n){return u.isFunction(n)||u.isFunction(n?.install)}function ye(n){return le.includes(n)}function _e(n){return ce.includes(n)}function x(n,e,t=!1,s=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,c)=>`__self${c}`),o=r.join(`
8
+ `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(u.logger.error("parseExpression.error",r,n,e?.__self??e),s)throw r}}function D(n,e,t=!1,s=!1){const r=x(n,e,t,s);if(typeof r!="function"&&(u.logger.error("parseFunction.error","not a function",n,e?.__self??e),s))throw new Error(`"${n.value}" not a function`);return r}function S(n){return n&&n.type==="JSExpression"}function T(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function we(n){return S(n)||T(n)}function Je(n){return we(n)?n.value:JSON.stringify(n)}let C=null;const Ve=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{F.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{C&&C.close(),C=F.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{C&&(C.close(),C=null)}}});function Se(n,e){const{jsonp:t,request:s}=e;if(n.method==="jsonp")return(r={})=>t(n.url,{...n.jsonpOptions,query:r});{const r=n.headers?x(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:r}};return(a,i)=>(delete o.data,s.send(u.merge(o,i||{},{data:a})))}}function be(n,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:r}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,r,o,a)}}function je(n=[],e=[],t){const s={};for(const r of n)s[r.id]=Se(r,t);for(const r of e)s[r.id]=be(r,t);return s}async function Ee(n=[]){P&&(W(),n.forEach(e=>Pe(P,e)))}function $e(n){const e=T(n.mockTemplate)&&n.mockTemplate.value?D(n.mockTemplate,{},!0):void 0;return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(r){u.logger.warn("模拟数据模版异常",r)}return P.mock(s)}}function Pe(n,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const r=u.pathToRegexp(`${t}(.*)`),o=u.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=x(s,{},!0);n.mock(r,i=>{const c=u.url.parse(i.url)||{},l=i.body instanceof FormData?u.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:l,params:c,query:m}),n.mock(a(i))})}}function W(){P&&(P._mocked={})}const ze={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},Y=Symbol("access");class Ke{options;data=null;mode=_.Raw;constructor(e){this.options=Object.assign({},ze,e),this.loadData()}connect(e){const{mode:t,router:s,request:r}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:s,session:r,authKey:o}=this.options;this.setData(e),this.data&&(u.storage.save(t,e,{type:"local",prefix:s}),r&&u.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:r}=this.options;this.data=null,u.storage.remove(e,{type:"local",prefix:t}),s&&u.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):u.toArray(e).every(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return u.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(Y,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const r=t.split("#")[1]||t;return e.path===r}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(r=>u.unRSA(r,t));this.data=JSON.parse(s.join(""));return}if(typeof e=="string")try{const s=t?u.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=u.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!u.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===R){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,r)=>this.guard(t,r))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:r=!1}=this.options;return await this.showTip(s),u.isFunction(r)?(r(),t(!1)):u.isString(r)?t(r):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}=this.options;return e.status===t||e.data.code===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 u.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=>(await this.showUnauthorizedAlert(t),t),async t=>{const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Ce(){return p.inject(Y,null)}class ke{__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:r}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),r&&Object.assign(this,r)}setup(e,t=B){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const r=s.appContext.config.globalProperties;Object.assign(this,r),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__refs={},this.$refs={},this.__contextRefs={},this.context={}})}__proxy(){this.__instance&&z.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){z.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return D({type:s,value:r},this)}else return D(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,r=t?this.__transform[t]??e.value:e.value;return x({type:s,value:r},this)}else return x(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await u.delay(0);let r=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!r){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(r.nodeType===3&&r.nextSibling&&(r=r.nextSibling),r.__vtj__=e,_.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=s),typeof t=="function")t(s);else if(t){const o=this.$refs[t];if(o&&s!==o){const a=new Set([].concat(o,s));this.$refs[t]=Array.from(a)}else this.$refs[t]=s}return s}}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function H(n){const{Vue:e=B,mode:t=_.Runtime,components:s={},libs:r={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),c={$components:s,$libs:r,$apis:o},l=new ke({mode:t,dsl:i.value,attrs:c}),m=e.defineComponent({name:i.value.name,props:{...We(i.value.props??[],l)},setup(d){l.$props=d,l.props=d,i.value.id&&G(n.window||window,i.value.id,i.value.css||""),l.state=Ye(e,i.value.state??{},l);const f=Qe(e,i.value.computed??{},l),g=Xe(i.value.methods??{},l),v=Ze(e,i.value.inject,l),h=Re(i.value.dataSources||{},l),b={...v,...f,...g,...h};return l.setup(b,e),et(e,i.value.watch??[],l),{vtj:l}},emits:Ge(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?O(d[0],l,e,a):d.map(f=>O(f,l,e,a))},...tt(i.value.lifeCycles??{},l)});return{renderer:e.markRaw(m),context:l}}function Ge(n=[]){return n.map(e=>u.isString(e)?e:e.name)}function We(n=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>ae[o]):void 0;return n.map(s=>u.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:S(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,r)=>(s[r.name]={type:t(r.type),required:r.required,default:r.default},s),{})}function Ye(n,e,t){return n.reactive(Object.keys(e||{}).reduce((s,r)=>{let o=e[r];return S(o)?o=t.__parseExpression(o):T(o)&&(o=t.__parseFunction(o)),s[r]=o,s},{}))}function Qe(n,e,t){return Object.entries(e??{}).reduce((s,[r,o])=>(s[r]=n.computed(t.__parseFunction(o)),s),{})}function Xe(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}function Ze(n,e=[],t){return e.reduce((s,r)=>{const{name:o,from:a}=r||{};r.default;const i=S(a)?t.__parseExpression(a)||o:a??o,c=S(r.default)?t.__parseExpression(r.default):r.default??null;return s[o]=n.inject(i,c),s},{})}function Re(n,e){return Object.keys(n).reduce((t,s)=>{const r=n[s];if(r.type==="mock")t[s]=$e(r);else if(r.ref){const o=e.$apis[r.ref],a=T(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;t[s]=async(...i)=>{const c=await o.apply(e,i);return a?a(c):c}}return t},{})}function et(n,e=[],t){e.forEach(s=>{n.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function tt(n,e){return Object.entries(n??{}).reduce((t,[s,r])=>(t[s]=e.__parseFunction(r),t),{})}let V=[];const xe=n=>n;async function Q(n,e=window){const{urls:t=[],library:s}=n,r=t.filter(i=>L(i));if(r.length===0||!s)return null;const o=t.filter(i=>U(i));return o.length&&me(o,e),await ge(r,s,e).catch(i=>(console.warn("loadScriptUrl error",r,s,i),null))}function N(n){const{getDsl:e,getDslByUrl:t,options:s}=n;return s.window&&(V.forEach(r=>{delete s.window[r]}),V=[]),(r,o,a=B)=>!o||typeof o=="string"?r:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=r),i?H({...s,Vue:a,dsl:i,mode:_.Runtime,loader:N(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?H({...s,Vue:a,dsl:i,mode:_.Runtime,loader:N(n)}).renderer:null}):o.type==="Plugin"?(o.library&&V.push(o.library),a.defineAsyncComponent(async()=>{const i=await Q(o,s.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function O(n,e,t=B,s=xe){if(!n||!n.name||n.invisible)return null;const r=t.getCurrentInstance()?.appContext,{id:o=null,directives:a=[]}=n,{vIf:i,vFor:c,vShow:l,vModels:m,vBind:d,vHtml:f,others:g}=nt(a);if(i&&!rt(i,e))return null;const v=h=>{const b=h.$components,y=(()=>{if(n.name==="component")return ot(h,n.props?.is);if(n.name==="slot")return n.name;const E=s(n.name,n.from,t);return u.isString(E)?ye(E)||_e(E)?E:b[E]??r?.app?.component(E)??E:E})(),j=it(o,n.props??{},h),He=at(t,n.events??{},h);if(n.name==="slot")return ct(t,n,j,h,s);d&&Object.assign(j,h.__parseExpression(d.value)),l&&(j.style=Object.assign(j.style??{},ut(l,h))),f&&Object.assign(j,dt(f,h)),m.forEach(E=>{Object.assign(j,pt(t,E,h))});const Ne=ft(t,n.children??[],h,s,n);let J=t.createVNode(y,{...j,...He},Ne);const ne=r?st(r,g,h):[];return ne.length&&(J=t.withDirectives(J,ne)),J};return c?gt(c,v,e):v(e)}function st(n,e,t){const s=n.app;return e.map(r=>{const o=typeof r.name=="string"?s.directive(r.name):t.__parseExpression(r.name);if(!o)return null;const a=[o];return r.value&&a.push(t.__parseExpression(r.value)),r.arg&&a.push(r.arg),r.modifiers&&a.push(r.modifiers),a}).filter(r=>!!r)}function nt(n=[]){const e=n.find(c=>u.camelCase(c.name)==="vIf"),t=n.find(c=>u.camelCase(c.name)==="vFor"),s=n.find(c=>u.camelCase(c.name)==="vShow"),r=n.find(c=>u.camelCase(c.name)==="vBind"),o=n.find(c=>u.camelCase(c.name)==="vHtml"),a=n.filter(c=>u.camelCase(c.name)==="vModel"),i=n.filter(c=>!ie.includes(u.camelCase(c.name)));return{vIf:e,vFor:t,vShow:s,vModels:a,vBind:r,others:i,vHtml:o}}function rt(n,e){return!!e.__parseExpression(n.value)}function ot(n,e){return e?S(e)?n.__parseExpression(e):e:"div"}function it(n,e,t){const s=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return S(a)?a=t.__parseExpression(a):T(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return s.ref=t.__ref(n,s.ref),s}function at(n,e,t){const s=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],c=X(i.modifiers),l=c.find(f=>s.includes(f)),m="on"+u.upperFirst(a)+(l&&r[l]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,c)),o},{})}function X(n={},e=!1){const t=Object.keys(n);return e?t.map(s=>"."+s):t}function ct(n,e,t,s,r){const{children:o}=e,a=lt(e,s),i=s.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):S(o)?n.createTextVNode(K(s.__parseExpression(o))):Array.isArray(o)?o.map(c=>O(c,s,n,r)):null:null}function lt(n,e){const{props:t}=n,s=t?.name||"default";return{name:S(s)?e.__parseExpression(s):s,params:[]}}function ut(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function dt(n,e){return{innerHTML:e.__parseExpression(n.value)||""}}function pt(n,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
- }`:"(v) => {}"},r=t.__parseFunction(s),o=X(S(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=S(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&r?n.withModifiers(r,o):r}}function pt(n,e,t,s,r){if(!e)return null;if(u.isString(e))return{default:()=>e};if(S(e))return{default:()=>K(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=ft(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[c,{nodes:l,params:m}])=>(i[c]=p=>{const f=m.length?u.pick(p??{},m):a(p);return l.map(g=>O(g,t.__clone(f),n,s))},i),{})}return null}function ft(n){const e={default:{params:[],nodes:[]}};for(const t of n){const s=ht(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params)):e[r]={nodes:[t],params:s.params}}return e}function ht(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function mt(n,e,t){const{value:s,iterator:r}=n,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((c,l)=>l+1)),Array.isArray(i)?i.map((c,l)=>e(t.__clone({[o]:c,[a]:l}))):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}function gt(n){return d.getCurrentScope()?(d.onScopeDispose(n),!0):!1}const xe=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const vt=n=>n!=null,yt=()=>{};function _t(n){return d.getCurrentInstance()}function wt(n){return Array.isArray(n)?n:[n]}function St(...n){if(n.length!==1)return d.toRef(...n);const e=n[0];return typeof e=="function"?d.readonly(d.customRef(()=>({get:e,set:yt}))):d.ref(e)}function bt(n,e){_t()&&d.onBeforeUnmount(n,e)}const jt=xe?window:void 0,Et=xe?window.document:void 0;function $t(n){var e;const t=d.toValue(n);return(e=t?.$el)!=null?e:t}function Pt(){const n=d.ref(!1),e=d.getCurrentInstance();return e&&d.onMounted(()=>{n.value=!0},e),n}function Ct(n){const e=Pt();return d.computed(()=>(e.value,!!n()))}function kt(n,e,t={}){const{window:s=jt,...r}=t;let o;const a=Ct(()=>s&&"MutationObserver"in s),i=()=>{o&&(o.disconnect(),o=void 0)},c=d.computed(()=>{const f=d.toValue(n),g=wt(f).map($t).filter(vt);return new Set(g)}),l=d.watch(()=>c.value,f=>{i(),a.value&&f.size&&(o=new MutationObserver(e),f.forEach(g=>o.observe(g,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),p=()=>{l(),i()};return gt(p),{isSupported:a,stop:p,takeRecords:m}}function Rt(n=null,e={}){var t,s,r;const{document:o=Et,restoreOnUnmount:a=p=>p}=e,i=(t=o?.title)!=null?t:"",c=St((s=n??o?.title)!=null?s:null),l=n&&typeof n=="function";function m(p){if(!("titleTemplate"in e))return p;const f=e.titleTemplate||"%s";return typeof f=="function"?f(p):d.toValue(f).replace(/%s/g,p)}return d.watch(c,(p,f)=>{p!==f&&o&&(o.title=m(typeof p=="string"?p:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!l&&kt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==c.value&&(c.value=m(o.title))},{childList:!0}),bt(()=>{if(a){const p=a(i,c.value||"");p!=null&&o&&(o.title=p)}}),c}const ne=d.defineComponent({name:"VtjPageContainer",async setup(){const n=ee(),e=re.useRoute(),t=e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,o=d.ref(Symbol());return s&&(Object.assign(e.meta,s.meta||{},{cache:s.cache}),Rt(s.title||"VTJ")),{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?d.h(n,{...e,key:t}):d.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),xt={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},At={"data-l-h6o7ki7":"",class:"vtj-startup"},Tt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},Mt={"data-l-h6o7ki7":""},Ft={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},Ot={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},Ae=d.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"},link:{}},setup(n){((r,o)=>{let a=document.getElementById("h6o7ki7");a||(a=document.createElement("style"),a.id="h6o7ki7",document.head.appendChild(a),a.innerHTML=o)})("h6o7ki7",`
10
+ }`:"(v) => {}"},r=t.__parseFunction(s),o=X(S(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=S(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&r?n.withModifiers(r,o):r}}function ft(n,e,t,s,r){if(!e)return null;if(u.isString(e))return{default:()=>e};if(S(e))return{default:()=>K(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=ht(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[c,{nodes:l,params:m}])=>(i[c]=d=>{const f=m.length?u.pick(d??{},m):a(d);return l.map(g=>O(g,t.__clone(f),n,s))},i),{})}return null}function ht(n){const e={default:{params:[],nodes:[]}};for(const t of n){const s=mt(t.slot),r=s.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(s.params)):e[r]={nodes:[t],params:s.params}}return e}function mt(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function gt(n,e,t){const{value:s,iterator:r}=n,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((c,l)=>l+1)),Array.isArray(i)?i.map((c,l)=>e(t.__clone({[o]:c,[a]:l}))):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}function vt(n){return p.getCurrentScope()?(p.onScopeDispose(n),!0):!1}function Z(n){return typeof n=="function"?n():p.unref(n)}const Te=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const yt=n=>n!=null,_t=()=>{};function wt(n){return p.getCurrentInstance()}function St(...n){if(n.length!==1)return p.toRef(...n);const e=n[0];return typeof e=="function"?p.readonly(p.customRef(()=>({get:e,set:_t}))):p.ref(e)}function bt(n,e){wt()&&p.onBeforeUnmount(n,e)}const jt=Te?window:void 0,Et=Te?window.document:void 0;function $t(n){var e;const t=Z(n);return(e=t?.$el)!=null?e:t}function Pt(){const n=p.ref(!1),e=p.getCurrentInstance();return e&&p.onMounted(()=>{n.value=!0},e),n}function Ct(n){const e=Pt();return p.computed(()=>(e.value,!!n()))}function kt(n,e,t={}){const{window:s=jt,...r}=t;let o;const a=Ct(()=>s&&"MutationObserver"in s),i=()=>{o&&(o.disconnect(),o=void 0)},c=p.computed(()=>{const f=Z(n),g=(Array.isArray(f)?f:[f]).map($t).filter(yt);return new Set(g)}),l=p.watch(()=>c.value,f=>{i(),a.value&&f.size&&(o=new MutationObserver(e),f.forEach(g=>o.observe(g,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),d=()=>{l(),i()};return vt(d),{isSupported:a,stop:d,takeRecords:m}}function Rt(n=null,e={}){var t,s,r;const{document:o=Et,restoreOnUnmount:a=d=>d}=e,i=(t=o?.title)!=null?t:"",c=St((s=n??o?.title)!=null?s:null),l=n&&typeof n=="function";function m(d){if(!("titleTemplate"in e))return d;const f=e.titleTemplate||"%s";return typeof f=="function"?f(d):Z(f).replace(/%s/g,d)}return p.watch(c,(d,f)=>{d!==f&&o&&(o.title=m(typeof d=="string"?d:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!l&&kt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==c.value&&(c.value=m(o.title))},{childList:!0}),bt(()=>{if(a){const d=a(i,c.value||"");d!=null&&o&&(o.title=d)}}),c}const re=p.defineComponent({name:"VtjPageContainer",async setup(){const n=te(),e=oe.useRoute(),t=e.params.id,s=t?n.getPage(t):n.getHomepage(),r=s?await n.getRenderComponent(s.id):null,o=p.ref(Symbol());return s&&(Object.assign(e.meta,s.meta||{},{cache:s.cache}),Rt(s.title||"VTJ")),{provider:n,component:r,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:n,query:e,sid:t}=this;return n?p.h(n,{...e,key:t}):p.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),xt={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},Tt={"data-l-h6o7ki7":"",class:"vtj-startup"},At={"data-l-h6o7ki7":"",class:"vtj-startup__name"},Mt={"data-l-h6o7ki7":""},Ft={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},Ot={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},Ae=p.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"},link:{}},setup(n){((r,o)=>{let a=document.getElementById("h6o7ki7");a||(a=document.createElement("style"),a.id="h6o7ki7",document.head.appendChild(a),a.innerHTML=o)})("h6o7ki7",`
11
11
  .vtj-startup[data-l-h6o7ki7]{
12
12
  padding: 20px;
13
13
  border-radius: 4px;
@@ -72,4 +72,4 @@
72
72
  }
73
73
  .vtj-startup__actions button[data-l-h6o7ki7]:hover{
74
74
  opacity: 0.7;
75
- }`);const t=n,s=()=>{if(typeof window<"u"){if(t.link){typeof t.link=="function"?t.link():window.location.href=t.link;return}let o=(window.__VTJ_LINK__||{}).href||window.location.pathname+"__vtj__/#/";window.location.href=o}};return(r,o)=>(d.openBlock(),d.createElementBlock("div",xt,[d.createElementVNode("div",At,[d.createElementVNode("h1",Tt,[d.createElementVNode("span",Mt,d.toDisplayString(t.name),1)]),d.createElementVNode("div",Ft,d.toDisplayString(t.tagline),1),d.createElementVNode("div",Ot,[d.createElementVNode("button",{"data-l-h6o7ki7":"",onClick:s},d.toDisplayString(t.actionText),1)])])]))}}),It=d.defineComponent({name:"VtjStartupContainer",render(){return d.h(Ae)}}),Z=Symbol("Provider");var Te=(n=>(n.Production="production",n.Development="development",n))(Te||{});class Me extends $.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:r,materials:o,project:a={},adapter:i={},globals:c={},modules:l={},router:m=null,materialPath:p="./",nodeEnv:f="development"}=e;this.mode=s,this.modules=l,this.service=t,this.router=m,this.materialPath=p,this.nodeEnv=f,r&&(this.dependencies=r),o&&(this.materials=o),Object.assign(this.globals,c),Object.assign(this.adapter,i);const{access:g,request:v}=this.adapter;g&&g.connect({mode:s,router:m,request:v}),a&&s!==_.Design?this.load(a):this.project=a,P.setup({timeout:"50-500"})}mode;globals={};modules={};adapter={request:Je,jsonp:u.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(r){u.logger.warn("模拟数据模版异常",r)}return P.mock(s)}}async load(e){const t=this.modules[`.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:r=[]}=this.project,o=window;o.CKEDITOR_VERSION=void 0,this.mode===_.Raw?await this.loadDependencies(o):await this.loadAssets(o),this.apis=be(s,r,this.adapter),W(),je(s),this.initRouter(),this.triggerReady()}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,r]of t)e[s]||(e[s]=this.library[s]=await r())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:r,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:c,libraryMap:l,materials:m,materialExports:p,materialMapLibrary:f}=de(t,a,i==="development");for(const g of c){const v=s[g],h=e[g];if(h)r[g]=h;else if(v)e[g]=r[g]=await v();else{const b=l[g]||[];for(const y of b)U(y)&&await fe(g,u.url.append(y,{v:k})),L(y)&&await u.loadScript(u.url.append(y,{v:k}));r[g]=e[g]}}if(i==="development"){for(const v of m)await u.loadScript(u.url.append(v,{v:k}));const g=this.materials||{};for(const v of p){const h=e[f[v]],b=$.BUILT_IN_COMPONENTS[v];if(b)h&&b.forEach(y=>{o[y]=h[y]});else{const y=g[v]?(await g[v]()).default:e[v];y&&h&&(y.components||[]).forEach(j=>{o[j.name]=pe(j,h)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:r}=this;if(!e)return;const{routeAppendTo:o,pageRouteName:a="page",routeMeta:i}=s,c=o?"":"/",l={path:`${c}${a}/:id`,name:R,component:ne},m={path:c,name:M,component:t?.homepage?ne:r.startupComponent||It,meta:i};e.hasRoute(R)&&e.removeRoute(R),e.hasRoute(M)&&e.removeRoute(M),o?(e.addRoute(o,l),e.addRoute(o,m)):(e.addRoute(l),e.addRoute(m))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,r]of Object.entries(this.library))!t[s]&&ge(r)&&(e.use(r),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(Z,this),e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,r,o)=>{const a=r?.$options.name,i=typeof s=="string"?s:s?.message||s?.msg||"未知错误",c=`[ ${a} ] ${i} ${o}`;console.error("[VTJ Error]:",{err:s,instance:r,info:o},s?.stack),F.ElNotification.error({title:"未处理的异常:请在控制台查看详情",message:c})})}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(r,o=[])=>{for(const a of o){if(a.id===r)return a;if(a.children&&a.children.length){const i=s(r,a.children);if(i)return i}}};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`];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.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null))}createDslRenderer(e,t={}){const{library:s,components:r,mode:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:r,libs:s,apis:a,window,...t},c=N({getDsl:async l=>await this.getDsl(l)||null,getDslByUrl:async l=>await this.getDslByUrl(l)||null,options:i});return H({...i,dsl:e,loader:c})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return u.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const r=`.vtj/vue/${e}.vue`,o=this.modules[r];if(o)return(await o())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(u.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return d.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return d.defineAsyncComponent(async()=>await Q(e,window))}}function Dt(n){const e=new Me(n);return{provider:e,onReady:s=>e.ready(s)}}function ee(n={}){const e=d.inject(Z);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=n;t&&s&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==s&&F.ElNotification.warning({title:r?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const te=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0,showError:n=>{F.ElNotification.error({message:n||"未知错误"})}}}),Ht=(n="/__vtj__/api/:type.json")=>(e,t)=>te.send({url:n,method:"post",params:{type:e},data:{type:e,data:t}}),Nt=(n="/__vtj__/api/uploader.json")=>async(e,t)=>await te.send({url:n,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(s=>s&&s[0]?s[0]:null).catch(()=>null);class q{api;pluginCaches={};uploader;constructor(){this.api=Ht(),this.uploader=Nt()}async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e){return!!await this.api("saveProject",e).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 createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(o=>le(o))[0];if(!s)return null;const r=this.pluginCaches[s];return r||(this.pluginCaches[s]=te.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new u.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Bt extends q{init(e){const t=new $.ProjectModel(e),s=w.get(`project_${t.id}`),r=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new $.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,u.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 r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new $.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 Fe extends q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new $.ProjectModel(e),s=this.projects[t.id]||{},r=Object.assign(t.toDsl(),s);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new $.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=u.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new $.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,r=this.historyItems[s]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const r=`${e}_${s}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let I=null;function Ut(){return I||(I=new Fe,I)}class Lt extends q{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e){return!!await this.api("saveProject",e).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:u.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 Oe(n,e,t=[]){return t.map(s=>{const{id:r,title:o,icon:a,children:i,hidden:c}=s;return{id:r,title:o,icon:a,hidden:c,url:`${n}/${e}/${r}`,children:i&&i.length?Oe(n,e,i):void 0}})}function Ie(n,e){if(!e)return n;let t=[];for(const s of n)if(s.children&&s.children.length){const r=Ie(s.children,e);r.length&&(s.children=r,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function qt(n){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=n||{},r=ee(),o=re.useRoute(),a=Pe(),i=d.ref(!1),c=d.ref(!1),l=r.project;d.watchEffect(()=>{const{name:f,params:g,meta:v}=o;if(f===R){const h=r.getPage(g.id);i.value=!h?.mask,c.value=!!h?.pure}else if(f===M){const h=r.getHomepage();i.value=!h?.mask,c.value=!!h?.pure}else i.value=!v.mask,c.value=!!v.pure});const m=Oe(e,t,l?.pages),p=l?.config;return{disabled:i,logo:p?.logo,themeSwitchable:p?.themeSwitchable,title:p?.title||l?.description||l?.name||"VTJ App",menus:s?m:Ie(m,a),pure:c}}exports.ACCESS_KEY=Y;exports.Access=ze;exports.BUILD_IN_TAGS=ce;exports.BUILT_IN_DIRECTIVES=oe;exports.BaseService=q;exports.CONTEXT_HOST=z;exports.Context=Ce;exports.ContextMode=_;exports.DATA_TYPES=ie;exports.HOMEPAGE_ROUTE_NAME=M;exports.HTML_TAGS=ae;exports.JSCodeToString=qe;exports.LIFE_CYCLES_LIST=Be;exports.LocalService=Lt;exports.MemoryService=Fe;exports.NodeEnv=Te;exports.PAGE_ROUTE_NAME=R;exports.Provider=Me;exports.Startup=Ae;exports.StorageService=Bt;exports.VTJ_RENDERER_VERSION=k;exports.adoptedStyleSheets=G;exports.createAssetScripts=Ue;exports.createAssetsCss=Le;exports.createDataSources=ke;exports.createLoader=N;exports.createMemoryService=Ut;exports.createMetaApi=Se;exports.createMock=Ee;exports.createProvider=Dt;exports.createRenderer=H;exports.createSchemaApi=we;exports.createSchemaApis=be;exports.defaultLoader=Re;exports.fillBasePath=T;exports.getModifiers=X;exports.getPlugin=Q;exports.getRawComponent=pe;exports.isBuiltInTag=ve;exports.isCSSUrl=U;exports.isJSCode=_e;exports.isJSExpression=S;exports.isJSFunction=A;exports.isJSON=le;exports.isJSUrl=L;exports.isNativeTag=ye;exports.isVuePlugin=ge;exports.loadCss=fe;exports.loadCssUrl=he;exports.loadScriptUrl=me;exports.mockApi=$e;exports.mockApis=je;exports.mockCleanup=W;exports.nodeRender=O;exports.parseDeps=de;exports.parseExpression=x;exports.parseFunction=D;exports.providerKey=Z;exports.removeProdFlag=ue;exports.toString=K;exports.useAccess=Pe;exports.useMask=qt;exports.useProvider=ee;
75
+ }`);const t=n,s=()=>{if(typeof window<"u"){if(t.link){typeof t.link=="function"?t.link():window.location.href=t.link;return}let o=(window.__VTJ_LINK__||{}).href||window.location.pathname+"__vtj__/#/";window.location.href=o}};return(r,o)=>(p.openBlock(),p.createElementBlock("div",xt,[p.createElementVNode("div",Tt,[p.createElementVNode("h1",At,[p.createElementVNode("span",Mt,p.toDisplayString(t.name),1)]),p.createElementVNode("div",Ft,p.toDisplayString(t.tagline),1),p.createElementVNode("div",Ot,[p.createElementVNode("button",{"data-l-h6o7ki7":"",onClick:s},p.toDisplayString(t.actionText),1)])])]))}}),It=p.defineComponent({name:"VtjStartupContainer",render(){return p.h(Ae)}}),ee=Symbol("Provider");var Me=(n=>(n.Production="production",n.Development="development",n))(Me||{});class Fe extends $.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:r,materials:o,project:a={},adapter:i={},globals:c={},modules:l={},router:m=null,materialPath:d="./",nodeEnv:f="development"}=e;this.mode=s,this.modules=l,this.service=t,this.router=m,this.materialPath=d,this.nodeEnv=f,r&&(this.dependencies=r),o&&(this.materials=o),Object.assign(this.globals,c),Object.assign(this.adapter,i);const{access:g,request:v}=this.adapter;g&&g.connect({mode:s,router:m,request:v}),a&&s!==_.Design?this.load(a):this.project=a,P.setup({timeout:"50-500"})}mode;globals={};modules={};adapter={request:Ve,jsonp:u.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(r){u.logger.warn("模拟数据模版异常",r)}return P.mock(s)}}async load(e){const t=this.modules[`.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:r=[]}=this.project,o=window;o.CKEDITOR_VERSION=void 0,this.mode===_.Raw?await this.loadDependencies(o):await this.loadAssets(o),this.apis=je(s,r,this.adapter),W(),Ee(s),this.initRouter(),this.triggerReady()}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,r]of t)e[s]||(e[s]=this.library[s]=await r())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:r,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:c,libraryMap:l,materials:m,materialExports:d,materialMapLibrary:f}=pe(t,a,i==="development");for(const g of c){const v=s[g],h=e[g];if(h)r[g]=h;else if(v)e[g]=r[g]=await v();else{const b=l[g]||[];for(const y of b)U(y)&&await he(g,u.url.append(y,{v:k})),L(y)&&await u.loadScript(u.url.append(y,{v:k}));r[g]=e[g]}}if(i==="development"){for(const v of m)await u.loadScript(u.url.append(v,{v:k}));const g=this.materials||{};for(const v of d){const h=e[f[v]],b=$.BUILT_IN_COMPONENTS[v];if(b)h&&b.forEach(y=>{o[y]=h[y]});else{const y=g[v]?(await g[v]()).default:e[v];y&&h&&(y.components||[]).forEach(j=>{o[j.name]=fe(j,h)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:r}=this;if(!e)return;const{routeAppendTo:o,pageRouteName:a="page",routeMeta:i}=s,c=o?"":"/",l={path:`${c}${a}/:id`,name:R,component:re},m={path:c,name:M,component:t?.homepage?re:r.startupComponent||It,meta:i};e.hasRoute(R)&&e.removeRoute(R),e.hasRoute(M)&&e.removeRoute(M),o?(e.addRoute(o,l),e.addRoute(o,m)):(e.addRoute(l),e.addRoute(m))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,r]of Object.entries(this.library))!t[s]&&ve(r)&&(e.use(r),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(ee,this),e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,r,o)=>{const a=r?.$options.name,i=typeof s=="string"?s:s?.message||s?.msg||"未知错误",c=`[ ${a} ] ${i} ${o}`;console.error("[VTJ Error]:",{err:s,instance:r,info:o},s?.stack),F.ElNotification.error({title:"未处理的异常:请在控制台查看详情",message:c})})}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(r,o=[])=>{for(const a of o){if(a.id===r)return a;if(a.children&&a.children.length){const i=s(r,a.children);if(i)return i}}};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`];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.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null))}createDslRenderer(e,t={}){const{library:s,components:r,mode:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:r,libs:s,apis:a,window,...t},c=N({getDsl:async l=>await this.getDsl(l)||null,getDslByUrl:async l=>await this.getDslByUrl(l)||null,options:i});return H({...i,dsl:e,loader:c})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return u.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const r=`.vtj/vue/${e}.vue`,o=this.modules[r];if(o)return(await o())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(u.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return p.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return p.defineAsyncComponent(async()=>await Q(e,window))}}function Dt(n){const e=new Fe(n);return{provider:e,onReady:s=>e.ready(s)}}function te(n={}){const e=p.inject(ee);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=n;t&&s&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==s&&F.ElNotification.warning({title:r?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const se=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0,showError:n=>{F.ElNotification.error({message:n||"未知错误"})}}}),Ht=(n="/__vtj__/api/:type.json")=>(e,t)=>se.send({url:n,method:"post",params:{type:e},data:{type:e,data:t}}),Nt=(n="/__vtj__/api/uploader.json")=>async(e,t)=>await se.send({url:n,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(s=>s&&s[0]?s[0]:null).catch(()=>null);class q{api;pluginCaches={};uploader;constructor(){this.api=Ht(),this.uploader=Nt()}async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e){return!!await this.api("saveProject",e).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 createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(o=>ue(o))[0];if(!s)return null;const r=this.pluginCaches[s];return r||(this.pluginCaches[s]=se.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new u.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Bt extends q{init(e){const t=new $.ProjectModel(e),s=w.get(`project_${t.id}`),r=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new $.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,u.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 r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new $.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 Oe extends q{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new $.ProjectModel(e),s=this.projects[t.id]||{},r=Object.assign(t.toDsl(),s);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new $.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=u.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return this.files[e.id]=e,Promise.resolve(!0)}getFile(e){const t=this.files[e];return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return delete this.files[e],Promise.resolve(!0)}saveHistory(e){return this.histories[e.id]=e,Promise.resolve(!0)}removeHistory(e){const t=this.histories[e];if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new $.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,r=this.historyItems[s]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const r=`${e}_${s}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let I=null;function Ut(){return I||(I=new Oe,I)}class Lt extends q{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e){return!!await this.api("saveProject",e).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:u.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 Ie(n,e,t=[]){return t.map(s=>{const{id:r,title:o,icon:a,children:i,hidden:c}=s;return{id:r,title:o,icon:a,hidden:c,url:`${n}/${e}/${r}`,children:i&&i.length?Ie(n,e,i):void 0}})}function De(n,e){if(!e)return n;let t=[];for(const s of n)if(s.children&&s.children.length){const r=De(s.children,e);r.length&&(s.children=r,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function qt(n){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=n||{},r=te(),o=oe.useRoute(),a=Ce(),i=p.ref(!1),c=p.ref(!1),l=r.project;p.watchEffect(()=>{const{name:f,params:g,meta:v}=o;if(f===R){const h=r.getPage(g.id);i.value=!h?.mask,c.value=!!h?.pure}else if(f===M){const h=r.getHomepage();i.value=!h?.mask,c.value=!!h?.pure}else i.value=!v.mask,c.value=!!v.pure});const m=Ie(e,t,l?.pages),d=l?.config;return{disabled:i,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||l?.description||l?.name||"VTJ App",menus:s?m:De(m,a),pure:c}}exports.ACCESS_KEY=Y;exports.Access=Ke;exports.BUILD_IN_TAGS=le;exports.BUILT_IN_DIRECTIVES=ie;exports.BaseService=q;exports.CONTEXT_HOST=z;exports.Context=ke;exports.ContextMode=_;exports.DATA_TYPES=ae;exports.HOMEPAGE_ROUTE_NAME=M;exports.HTML_TAGS=ce;exports.JSCodeToString=Je;exports.LIFE_CYCLES_LIST=Ue;exports.LocalService=Lt;exports.MemoryService=Oe;exports.NodeEnv=Me;exports.PAGE_ROUTE_NAME=R;exports.Provider=Fe;exports.Startup=Ae;exports.StorageService=Bt;exports.VTJ_RENDERER_VERSION=k;exports.adoptedStyleSheets=G;exports.createAssetScripts=Le;exports.createAssetsCss=qe;exports.createDataSources=Re;exports.createLoader=N;exports.createMemoryService=Ut;exports.createMetaApi=be;exports.createMock=$e;exports.createProvider=Dt;exports.createRenderer=H;exports.createSchemaApi=Se;exports.createSchemaApis=je;exports.defaultLoader=xe;exports.fillBasePath=A;exports.getModifiers=X;exports.getPlugin=Q;exports.getRawComponent=fe;exports.isBuiltInTag=ye;exports.isCSSUrl=U;exports.isJSCode=we;exports.isJSExpression=S;exports.isJSFunction=T;exports.isJSON=ue;exports.isJSUrl=L;exports.isNativeTag=_e;exports.isVuePlugin=ve;exports.loadCss=he;exports.loadCssUrl=me;exports.loadScriptUrl=ge;exports.mockApi=Pe;exports.mockApis=Ee;exports.mockCleanup=W;exports.nodeRender=O;exports.parseDeps=pe;exports.parseExpression=x;exports.parseFunction=D;exports.providerKey=ee;exports.removeProdFlag=de;exports.toString=K;exports.useAccess=Ce;exports.useMask=qt;exports.useProvider=te;
package/dist/index.mjs CHANGED
@@ -1,18 +1,18 @@
1
- import { Base as Ae, BUILT_IN_COMPONENTS as Te, ProjectModel as O, HistoryModel as de } from "@vtj/core";
1
+ import { Base as Te, BUILT_IN_COMPONENTS as Ae, ProjectModel as O, HistoryModel as de } from "@vtj/core";
2
2
  import { isUrl as Ie, url as P, dedupArray as Me, isString as j, isFunction as K, logger as x, createRequest as De, merge as He, pathToRegexp as Oe, pathToRegexpMatch as Be, formDataToJson as Ne, storage as q, cookie as J, toArray as ie, unRSA as ae, delay as fe, camelCase as $, upperFirst as Ue, pick as Le, jsonp as qe, loadScript as ce, Request as Je, Storage as Ve, mapToObject as X } from "@vtj/utils";
3
3
  import * as N from "vue";
4
- import { inject as he, toRef as ze, readonly as Ke, customRef as We, ref as A, onBeforeUnmount as Ge, getCurrentScope as Ye, onScopeDispose as Qe, getCurrentInstance as me, watch as ge, computed as ve, toValue as Z, onMounted as Xe, defineComponent as ee, h as W, openBlock as Ze, createElementBlock as et, createElementVNode as k, toDisplayString as V, defineAsyncComponent as le, watchEffect as tt } from "vue";
5
- import { ElNotification as U, ElLoading as st } from "element-plus";
4
+ import { inject as he, toRef as ze, readonly as Ke, customRef as We, ref as T, onBeforeUnmount as Ge, getCurrentScope as Ye, onScopeDispose as Qe, unref as Xe, getCurrentInstance as me, watch as ge, computed as ve, onMounted as Ze, defineComponent as Z, h as W, openBlock as et, createElementBlock as tt, createElementVNode as k, toDisplayString as V, defineAsyncComponent as le, watchEffect as st } from "vue";
5
+ import { ElNotification as U, ElLoading as nt } from "element-plus";
6
6
  import E from "mockjs";
7
7
  import { useRoute as ye } from "vue-router";
8
8
  /**!
9
9
  * Copyright (c) 2025, VTJ.PRO All rights reserved.
10
10
  * @name @vtj/renderer
11
11
  * @author CHC chenhuachun1549@dingtalk.com
12
- * @version 0.9.5
12
+ * @version 0.9.7
13
13
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
14
14
  */
15
- const C = "0.9.5";
15
+ const C = "0.9.7";
16
16
  var y = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(y || {});
17
17
  const ue = [
18
18
  "$el",
@@ -26,7 +26,7 @@ const ue = [
26
26
  "$props",
27
27
  "$options",
28
28
  "$forceUpdate"
29
- ], As = [
29
+ ], Ts = [
30
30
  "beforeCreate",
31
31
  "created",
32
32
  "beforeMount",
@@ -40,14 +40,14 @@ const ue = [
40
40
  "renderTriggered",
41
41
  "activated",
42
42
  "deactivated"
43
- ], nt = [
43
+ ], rt = [
44
44
  "vIf",
45
45
  "vShow",
46
46
  "vModel",
47
47
  "vFor",
48
48
  "vBind",
49
49
  "vHtml"
50
- ], rt = {
50
+ ], ot = {
51
51
  String,
52
52
  Number,
53
53
  Boolean,
@@ -55,22 +55,22 @@ const ue = [
55
55
  Object,
56
56
  Function,
57
57
  Date
58
- }, F = "VtjPage", H = "VtjHomepage", ot = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(
58
+ }, F = "VtjPage", H = "VtjHomepage", it = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot".split(
59
59
  ","
60
- ), it = "component,slot".split(",");
60
+ ), at = "component,slot".split(",");
61
61
  function M(n, e) {
62
62
  return n.map((t) => Ie(t) || t.startsWith("/") ? t : `${e}${t}`);
63
63
  }
64
- function te(n) {
64
+ function ee(n) {
65
65
  return /\.css$/.test(n);
66
66
  }
67
- function se(n) {
67
+ function te(n) {
68
68
  return /\.js$/.test(n);
69
69
  }
70
- function at(n) {
70
+ function ct(n) {
71
71
  return /\.json$/.test(n);
72
72
  }
73
- function Ts(n) {
73
+ function As(n) {
74
74
  return n.map(
75
75
  (e) => `<script src="${P.append(e, { v: C })}"><\/script>`
76
76
  ).join("");
@@ -80,15 +80,15 @@ function Is(n = []) {
80
80
  (e) => `<link rel="stylesheet" href="${P.append(e, { v: C })}" />`
81
81
  ).join("");
82
82
  }
83
- function ct(n, e = !1) {
83
+ function lt(n, e = !1) {
84
84
  return e && n.endsWith(".prod.js") ? n.replace(".prod.js", ".js") : n;
85
85
  }
86
- function lt(n, e, t = !1) {
86
+ function ut(n, e, t = !1) {
87
87
  const s = n.filter((p) => !!p.enabled), r = [], o = [], a = [], i = [], c = {}, l = {}, f = [], u = {};
88
88
  return s.forEach(
89
89
  ({ urls: p, assetsUrl: h, library: m, assetsLibrary: d, localeLibrary: w }) => {
90
90
  p?.forEach((g) => {
91
- se(g) && r.push(ct(g, t)), te(g) && o.push(g);
91
+ te(g) && r.push(lt(g, t)), ee(g) && o.push(g);
92
92
  }), m && (i.push(m), c[m] = M(p || [], e), w && (l[m] = w)), h && a.push(h), d && f.push(d), m && d && (u[d] = m);
93
93
  }
94
94
  ), {
@@ -102,7 +102,7 @@ function lt(n, e, t = !1) {
102
102
  libraryLocaleMap: l
103
103
  };
104
104
  }
105
- function ut(n, e) {
105
+ function pt(n, e) {
106
106
  const { name: t, parent: s, alias: r } = n;
107
107
  return s ? e[s]?.[r || t] : e[r || t];
108
108
  }
@@ -124,11 +124,11 @@ function we(n, e, t) {
124
124
  o ? o.innerHTML = t : (o = r.createElement("style"), o.id = e, o.innerHTML = t, r.head.appendChild(o));
125
125
  }
126
126
  }
127
- async function pt(n, e) {
127
+ async function dt(n, e) {
128
128
  const t = await window.fetch(e).then((s) => s.text()).catch(() => "");
129
129
  t && we(window, n, t);
130
130
  }
131
- function dt(n, e = window) {
131
+ function ft(n, e = window) {
132
132
  const t = e.document, s = e.document.head;
133
133
  for (const r of n)
134
134
  if (!t.getElementById(r)) {
@@ -136,7 +136,7 @@ function dt(n, e = window) {
136
136
  a.rel = "stylesheet", a.id = r, a.href = r, s.appendChild(a);
137
137
  }
138
138
  }
139
- async function ft(n, e, t = window) {
139
+ async function ht(n, e, t = window) {
140
140
  const s = t.document, r = t.document.head;
141
141
  let o = t[e];
142
142
  return o ? o.default || o : new Promise((a, i) => {
@@ -150,16 +150,16 @@ async function ft(n, e, t = window) {
150
150
  }
151
151
  });
152
152
  }
153
- function ht(n) {
154
- return K(n) || K(n?.install);
155
- }
156
153
  function mt(n) {
157
- return it.includes(n);
154
+ return K(n) || K(n?.install);
158
155
  }
159
156
  function gt(n) {
160
- return ot.includes(n);
157
+ return at.includes(n);
161
158
  }
162
- function T(n, e, t = !1, s = !1) {
159
+ function vt(n) {
160
+ return it.includes(n);
161
+ }
162
+ function A(n, e, t = !1, s = !1) {
163
163
  try {
164
164
  const r = ['"use strict";', "var __self = arguments[0];"];
165
165
  r.push("return ");
@@ -174,7 +174,7 @@ function T(n, e, t = !1, s = !1) {
174
174
  }
175
175
  }
176
176
  function G(n, e, t = !1, s = !1) {
177
- const r = T(n, e, t, s);
177
+ const r = A(n, e, t, s);
178
178
  if (typeof r != "function" && (x.error(
179
179
  "parseFunction.error",
180
180
  "not a function",
@@ -190,14 +190,14 @@ function _(n) {
190
190
  function I(n) {
191
191
  return typeof n == "object" && n && n.type === "JSFunction";
192
192
  }
193
- function vt(n) {
193
+ function yt(n) {
194
194
  return _(n) || I(n);
195
195
  }
196
196
  function Ms(n) {
197
- return vt(n) ? n.value : JSON.stringify(n);
197
+ return yt(n) ? n.value : JSON.stringify(n);
198
198
  }
199
199
  let R = null;
200
- const yt = De({
200
+ const _t = De({
201
201
  settings: {
202
202
  type: "form",
203
203
  validSuccess: !0,
@@ -211,7 +211,7 @@ const yt = De({
211
211
  });
212
212
  },
213
213
  showLoading: () => {
214
- R && R.close(), R = st.service({
214
+ R && R.close(), R = nt.service({
215
215
  lock: !0,
216
216
  text: "Loading",
217
217
  background: "rgba(0, 0, 0, 0.05)"
@@ -222,7 +222,7 @@ const yt = De({
222
222
  }
223
223
  }
224
224
  });
225
- function _t(n, e) {
225
+ function wt(n, e) {
226
226
  const { jsonp: t, request: s } = e;
227
227
  if (n.method === "jsonp")
228
228
  return (r = {}) => t(n.url, {
@@ -230,7 +230,7 @@ function _t(n, e) {
230
230
  query: r
231
231
  });
232
232
  {
233
- const r = n.headers ? T(n.headers, {}, !0) : void 0, o = {
233
+ const r = n.headers ? A(n.headers, {}, !0) : void 0, o = {
234
234
  url: n.url,
235
235
  method: n.method,
236
236
  settings: {
@@ -241,7 +241,7 @@ function _t(n, e) {
241
241
  return (a, i) => (delete o.data, s.send(He(o, i || {}, { data: a })));
242
242
  }
243
243
  }
244
- function wt(n, e) {
244
+ function St(n, e) {
245
245
  const { metaQuery: t } = e;
246
246
  if (!t) return;
247
247
  const { code: s, queryCode: r } = n;
@@ -253,18 +253,18 @@ function wt(n, e) {
253
253
  return t(s, r, o, a);
254
254
  };
255
255
  }
256
- function St(n = [], e = [], t) {
256
+ function bt(n = [], e = [], t) {
257
257
  const s = {};
258
258
  for (const r of n)
259
- s[r.id] = _t(r, t);
260
- for (const r of e)
261
259
  s[r.id] = wt(r, t);
260
+ for (const r of e)
261
+ s[r.id] = St(r, t);
262
262
  return s;
263
263
  }
264
- async function bt(n = []) {
265
- E && (Se(), n.forEach((e) => $t(E, e)));
264
+ async function jt(n = []) {
265
+ E && (Se(), n.forEach((e) => Et(E, e)));
266
266
  }
267
- function jt(n) {
267
+ function $t(n) {
268
268
  const e = I(n.mockTemplate) && n.mockTemplate.value ? G(n.mockTemplate, {}, !0) : void 0;
269
269
  return async (...t) => {
270
270
  let s = {};
@@ -277,11 +277,11 @@ function jt(n) {
277
277
  return E.mock(s);
278
278
  };
279
279
  }
280
- function $t(n, e) {
280
+ function Et(n, e) {
281
281
  if (!e.mock) return;
282
282
  const { url: t, mockTemplate: s } = e;
283
283
  if (t && s) {
284
- const r = Oe(`${t}(.*)`), o = Be(t, { decode: decodeURIComponent }), a = T(s, {}, !0);
284
+ const r = Oe(`${t}(.*)`), o = Be(t, { decode: decodeURIComponent }), a = A(s, {}, !0);
285
285
  n.mock(r, (i) => {
286
286
  const c = P.parse(i.url) || {}, l = i.body instanceof FormData ? Ne(i.body) : i.body, f = o(i.url)?.params;
287
287
  return Object.assign(i, { data: l, params: c, query: f }), n.mock(a(i));
@@ -291,7 +291,7 @@ function $t(n, e) {
291
291
  function Se() {
292
292
  E && (E._mocked = {});
293
293
  }
294
- const Et = {
294
+ const kt = {
295
295
  session: !1,
296
296
  authKey: "Authorization",
297
297
  storageKey: "ACCESS_STORAGE",
@@ -309,7 +309,7 @@ class Ds {
309
309
  data = null;
310
310
  mode = y.Raw;
311
311
  constructor(e) {
312
- this.options = Object.assign({}, Et, e), this.loadData();
312
+ this.options = Object.assign({}, kt, e), this.loadData();
313
313
  }
314
314
  connect(e) {
315
315
  const { mode: t, router: s, request: r } = e;
@@ -445,10 +445,10 @@ class Ds {
445
445
  );
446
446
  }
447
447
  }
448
- function kt() {
448
+ function Rt() {
449
449
  return he(be, null);
450
450
  }
451
- class Rt {
451
+ class Pt {
452
452
  __id = null;
453
453
  __mode;
454
454
  __instance = null;
@@ -512,9 +512,9 @@ class Rt {
512
512
  if (e)
513
513
  if (this.__mode === y.Runtime) {
514
514
  const { id: t, type: s } = e, r = t ? this.__transform[t] ?? e.value : e.value;
515
- return T({ type: s, value: r }, this);
515
+ return A({ type: s, value: r }, this);
516
516
  } else
517
- return T(e, this);
517
+ return A(e, this);
518
518
  }
519
519
  __ref(e = null, t) {
520
520
  if (this.__mode !== y.VNode)
@@ -558,22 +558,22 @@ function Y(n) {
558
558
  $components: s,
559
559
  $libs: r,
560
560
  $apis: o
561
- }, l = new Rt({
561
+ }, l = new Pt({
562
562
  mode: t,
563
563
  dsl: i.value,
564
564
  attrs: c
565
565
  }), f = e.defineComponent({
566
566
  name: i.value.name,
567
567
  props: {
568
- ...xt(i.value.props ?? [], l)
568
+ ...Ct(i.value.props ?? [], l)
569
569
  },
570
570
  setup(u) {
571
571
  l.$props = u, l.props = u, i.value.id && we(
572
572
  n.window || window,
573
573
  i.value.id,
574
574
  i.value.css || ""
575
- ), l.state = Ct(e, i.value.state ?? {}, l);
576
- const p = Ft(e, i.value.computed ?? {}, l), h = At(i.value.methods ?? {}, l), m = Tt(e, i.value.inject, l), d = It(
575
+ ), l.state = Ft(e, i.value.state ?? {}, l);
576
+ const p = Tt(e, i.value.computed ?? {}, l), h = At(i.value.methods ?? {}, l), m = It(e, i.value.inject, l), d = Mt(
577
577
  i.value.dataSources || {},
578
578
  l
579
579
  ), w = {
@@ -582,29 +582,29 @@ function Y(n) {
582
582
  ...h,
583
583
  ...d
584
584
  };
585
- return l.setup(w, e), Mt(e, i.value.watch ?? [], l), {
585
+ return l.setup(w, e), Dt(e, i.value.watch ?? [], l), {
586
586
  vtj: l
587
587
  };
588
588
  },
589
- emits: Pt(i.value.emits),
589
+ emits: xt(i.value.emits),
590
590
  expose: ["vtj"],
591
591
  render() {
592
592
  if (!i.value.nodes) return null;
593
593
  const u = i.value.nodes || [];
594
594
  return u.length === 1 ? B(u[0], l, e, a) : u.map((p) => B(p, l, e, a));
595
595
  },
596
- ...Dt(i.value.lifeCycles ?? {}, l)
596
+ ...Ht(i.value.lifeCycles ?? {}, l)
597
597
  });
598
598
  return {
599
599
  renderer: e.markRaw(f),
600
600
  context: l
601
601
  };
602
602
  }
603
- function Pt(n = []) {
603
+ function xt(n = []) {
604
604
  return n.map((e) => j(e) ? e : e.name);
605
605
  }
606
- function xt(n = [], e) {
607
- const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((o) => rt[o]) : void 0;
606
+ function Ct(n = [], e) {
607
+ const t = (s) => s ? (Array.isArray(s) ? s : [s]).map((o) => ot[o]) : void 0;
608
608
  return n.map((s) => j(s) ? {
609
609
  name: s
610
610
  } : {
@@ -621,7 +621,7 @@ function xt(n = [], e) {
621
621
  {}
622
622
  );
623
623
  }
624
- function Ct(n, e, t) {
624
+ function Ft(n, e, t) {
625
625
  return n.reactive(
626
626
  Object.keys(e || {}).reduce(
627
627
  (s, r) => {
@@ -632,7 +632,7 @@ function Ct(n, e, t) {
632
632
  )
633
633
  );
634
634
  }
635
- function Ft(n, e, t) {
635
+ function Tt(n, e, t) {
636
636
  return Object.entries(e ?? {}).reduce(
637
637
  (s, [r, o]) => (s[r] = n.computed(t.__parseFunction(o)), s),
638
638
  {}
@@ -644,7 +644,7 @@ function At(n, e) {
644
644
  {}
645
645
  );
646
646
  }
647
- function Tt(n, e = [], t) {
647
+ function It(n, e = [], t) {
648
648
  return e.reduce(
649
649
  (s, r) => {
650
650
  const { name: o, from: a } = r || {};
@@ -655,12 +655,12 @@ function Tt(n, e = [], t) {
655
655
  {}
656
656
  );
657
657
  }
658
- function It(n, e) {
658
+ function Mt(n, e) {
659
659
  return Object.keys(n).reduce(
660
660
  (t, s) => {
661
661
  const r = n[s];
662
662
  if (r.type === "mock")
663
- t[s] = jt(r);
663
+ t[s] = $t(r);
664
664
  else if (r.ref) {
665
665
  const o = e.$apis[r.ref], a = I(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
666
666
  t[s] = async (...i) => {
@@ -673,7 +673,7 @@ function It(n, e) {
673
673
  {}
674
674
  );
675
675
  }
676
- function Mt(n, e = [], t) {
676
+ function Dt(n, e = [], t) {
677
677
  e.forEach((s) => {
678
678
  n.watch(
679
679
  t.__parseExpression(s.source),
@@ -685,19 +685,19 @@ function Mt(n, e = [], t) {
685
685
  );
686
686
  });
687
687
  }
688
- function Dt(n, e) {
688
+ function Ht(n, e) {
689
689
  return Object.entries(n ?? {}).reduce(
690
690
  (t, [s, r]) => (t[s] = e.__parseFunction(r), t),
691
691
  {}
692
692
  );
693
693
  }
694
694
  let z = [];
695
- const Ht = (n) => n;
695
+ const Ot = (n) => n;
696
696
  async function je(n, e = window) {
697
- const { urls: t = [], library: s } = n, r = t.filter((i) => se(i));
697
+ const { urls: t = [], library: s } = n, r = t.filter((i) => te(i));
698
698
  if (r.length === 0 || !s) return null;
699
- const o = t.filter((i) => te(i));
700
- return o.length && dt(o, e), await ft(r, s, e).catch(
699
+ const o = t.filter((i) => ee(i));
700
+ return o.length && ft(o, e), await ht(r, s, e).catch(
701
701
  (i) => (console.warn("loadScriptUrl error", r, s, i), null)
702
702
  );
703
703
  }
@@ -728,28 +728,28 @@ function Q(n) {
728
728
  return i || (console.warn("getPlugin result is null", o), null);
729
729
  })) : r;
730
730
  }
731
- function B(n, e, t = N, s = Ht) {
731
+ function B(n, e, t = N, s = Ot) {
732
732
  if (!n || !n.name || n.invisible) return null;
733
- const r = t.getCurrentInstance()?.appContext, { id: o = null, directives: a = [] } = n, { vIf: i, vFor: c, vShow: l, vModels: f, vBind: u, vHtml: p, others: h } = Bt(a);
734
- if (i && !Nt(i, e))
733
+ const r = t.getCurrentInstance()?.appContext, { id: o = null, directives: a = [] } = n, { vIf: i, vFor: c, vShow: l, vModels: f, vBind: u, vHtml: p, others: h } = Nt(a);
734
+ if (i && !Ut(i, e))
735
735
  return null;
736
736
  const m = (d) => {
737
737
  const w = d.$components, g = (() => {
738
738
  if (n.name === "component")
739
- return Ut(d, n.props?.is);
739
+ return Lt(d, n.props?.is);
740
740
  if (n.name === "slot") return n.name;
741
741
  const b = s(n.name, n.from, t);
742
- return j(b) ? mt(b) || gt(b) ? b : w[b] ?? r?.app?.component(b) ?? b : b;
743
- })(), S = Lt(o, n.props ?? {}, d), Ce = qt(t, n.events ?? {}, d);
742
+ return j(b) ? gt(b) || vt(b) ? b : w[b] ?? r?.app?.component(b) ?? b : b;
743
+ })(), S = qt(o, n.props ?? {}, d), Ce = Jt(t, n.events ?? {}, d);
744
744
  if (n.name === "slot")
745
- return Jt(t, n, S, d, s);
745
+ return Vt(t, n, S, d, s);
746
746
  u && Object.assign(S, d.__parseExpression(u.value)), l && (S.style = Object.assign(
747
747
  S.style ?? {},
748
- zt(l, d)
749
- )), p && Object.assign(S, Kt(p, d)), f.forEach((b) => {
750
- Object.assign(S, Wt(t, b, d));
748
+ Kt(l, d)
749
+ )), p && Object.assign(S, Wt(p, d)), f.forEach((b) => {
750
+ Object.assign(S, Gt(t, b, d));
751
751
  });
752
- const Fe = Gt(
752
+ const Fe = Yt(
753
753
  t,
754
754
  n.children ?? [],
755
755
  d,
@@ -757,12 +757,12 @@ function B(n, e, t = N, s = Ht) {
757
757
  n
758
758
  );
759
759
  let L = t.createVNode(g, { ...S, ...Ce }, Fe);
760
- const oe = r ? Ot(r, h, d) : [];
760
+ const oe = r ? Bt(r, h, d) : [];
761
761
  return oe.length && (L = t.withDirectives(L, oe)), L;
762
762
  };
763
- return c ? Xt(c, m, e) : m(e);
763
+ return c ? Zt(c, m, e) : m(e);
764
764
  }
765
- function Ot(n, e, t) {
765
+ function Bt(n, e, t) {
766
766
  const s = n.app;
767
767
  return e.map((r) => {
768
768
  const o = typeof r.name == "string" ? s.directive(r.name) : t.__parseExpression(r.name);
@@ -771,11 +771,11 @@ function Ot(n, e, t) {
771
771
  return r.value && a.push(t.__parseExpression(r.value)), r.arg && a.push(r.arg), r.modifiers && a.push(r.modifiers), a;
772
772
  }).filter((r) => !!r);
773
773
  }
774
- function Bt(n = []) {
774
+ function Nt(n = []) {
775
775
  const e = n.find((c) => $(c.name) === "vIf"), t = n.find((c) => $(c.name) === "vFor"), s = n.find((c) => $(c.name) === "vShow"), r = n.find((c) => $(c.name) === "vBind"), o = n.find((c) => $(c.name) === "vHtml"), a = n.filter(
776
776
  (c) => $(c.name) === "vModel"
777
777
  ), i = n.filter(
778
- (c) => !nt.includes($(c.name))
778
+ (c) => !rt.includes($(c.name))
779
779
  );
780
780
  return {
781
781
  vIf: e,
@@ -787,13 +787,13 @@ function Bt(n = []) {
787
787
  vHtml: o
788
788
  };
789
789
  }
790
- function Nt(n, e) {
790
+ function Ut(n, e) {
791
791
  return !!e.__parseExpression(n.value);
792
792
  }
793
- function Ut(n, e) {
793
+ function Lt(n, e) {
794
794
  return e ? _(e) ? n.__parseExpression(e) : e : "div";
795
795
  }
796
- function Lt(n, e, t) {
796
+ function qt(n, e, t) {
797
797
  const s = Object.keys(e || {}).reduce(
798
798
  (r, o) => {
799
799
  let a = e[o];
@@ -803,7 +803,7 @@ function Lt(n, e, t) {
803
803
  );
804
804
  return s.ref = t.__ref(n, s.ref), s;
805
805
  }
806
- function qt(n, e, t) {
806
+ function Jt(n, e, t) {
807
807
  const s = ["passive", "capture", "once"], r = {
808
808
  capture: "Capture",
809
809
  once: "Once",
@@ -821,32 +821,32 @@ function $e(n = {}, e = !1) {
821
821
  const t = Object.keys(n);
822
822
  return e ? t.map((s) => "." + s) : t;
823
823
  }
824
- function Jt(n, e, t, s, r) {
825
- const { children: o } = e, a = Vt(e, s), i = s.$slots?.[a.name];
824
+ function Vt(n, e, t, s, r) {
825
+ const { children: o } = e, a = zt(e, s), i = s.$slots?.[a.name];
826
826
  return i ? i(t) : o ? j(o) ? n.createTextVNode(o) : _(o) ? n.createTextVNode(
827
827
  _e(s.__parseExpression(o))
828
828
  ) : Array.isArray(o) ? o.map(
829
829
  (c) => B(c, s, n, r)
830
830
  ) : null : null;
831
831
  }
832
- function Vt(n, e) {
832
+ function zt(n, e) {
833
833
  const { props: t } = n, s = t?.name || "default";
834
834
  return {
835
835
  name: _(s) ? e.__parseExpression(s) : s,
836
836
  params: []
837
837
  };
838
838
  }
839
- function zt(n, e) {
839
+ function Kt(n, e) {
840
840
  return e.__parseExpression(n.value) ? {} : {
841
841
  display: "none"
842
842
  };
843
843
  }
844
- function Kt(n, e) {
844
+ function Wt(n, e) {
845
845
  return {
846
846
  innerHTML: e.__parseExpression(n.value) || ""
847
847
  };
848
848
  }
849
- function Wt(n, e, t) {
849
+ function Gt(n, e, t) {
850
850
  const s = {
851
851
  type: "JSFunction",
852
852
  value: e.value?.value ? `(v) => {
@@ -860,7 +860,7 @@ function Wt(n, e, t) {
860
860
  [`onUpdate:${a}`]: o.length && r ? n.withModifiers(r, o) : r
861
861
  };
862
862
  }
863
- function Gt(n, e, t, s, r) {
863
+ function Yt(n, e, t, s, r) {
864
864
  if (!e) return null;
865
865
  if (j(e))
866
866
  return { default: () => e };
@@ -869,7 +869,7 @@ function Gt(n, e, t, s, r) {
869
869
  default: () => _e(t.__parseExpression(e))
870
870
  };
871
871
  if (Array.isArray(e) && e.length > 0) {
872
- const o = Yt(e), a = (i) => !i || !r ? {} : r?.id && Object.keys(i).length ? {
872
+ const o = Qt(e), a = (i) => !i || !r ? {} : r?.id && Object.keys(i).length ? {
873
873
  [`scope_${r.id}`]: i
874
874
  } : {};
875
875
  return Object.entries(o).reduce((i, [c, { nodes: l, params: f }]) => (i[c] = (u) => {
@@ -881,7 +881,7 @@ function Gt(n, e, t, s, r) {
881
881
  }
882
882
  return null;
883
883
  }
884
- function Yt(n) {
884
+ function Qt(n) {
885
885
  const e = {
886
886
  default: {
887
887
  params: [],
@@ -889,7 +889,7 @@ function Yt(n) {
889
889
  }
890
890
  };
891
891
  for (const t of n) {
892
- const s = Qt(t.slot), r = s.name;
892
+ const s = Xt(t.slot), r = s.name;
893
893
  e[r] ? (e[r].nodes.push(t), e[r].params = e[r].params.concat(s.params)) : e[r] = {
894
894
  nodes: [t],
895
895
  params: s.params
@@ -897,45 +897,45 @@ function Yt(n) {
897
897
  }
898
898
  return e;
899
899
  }
900
- function Qt(n = "default") {
900
+ function Xt(n = "default") {
901
901
  return j(n) ? { name: n, params: [] } : { params: [], ...n };
902
902
  }
903
- function Xt(n, e, t) {
903
+ function Zt(n, e, t) {
904
904
  const { value: s, iterator: r } = n, { item: o = "item", index: a = "index" } = r || {};
905
905
  let i = t.__parseExpression(s) || [];
906
906
  return Number.isInteger(i) && (i = new Array(i).fill(!0).map((c, l) => l + 1)), Array.isArray(i) ? i.map((c, l) => e(t.__clone({ [o]: c, [a]: l }))) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
907
907
  }
908
- function Zt(n) {
908
+ function es(n) {
909
909
  return Ye() ? (Qe(n), !0) : !1;
910
910
  }
911
+ function se(n) {
912
+ return typeof n == "function" ? n() : Xe(n);
913
+ }
911
914
  const Ee = typeof window < "u" && typeof document < "u";
912
915
  typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
913
- const es = (n) => n != null, ts = () => {
916
+ const ts = (n) => n != null, ss = () => {
914
917
  };
915
- function ss(n) {
916
- return me();
917
- }
918
918
  function ns(n) {
919
- return Array.isArray(n) ? n : [n];
919
+ return me();
920
920
  }
921
921
  function rs(...n) {
922
922
  if (n.length !== 1)
923
923
  return ze(...n);
924
924
  const e = n[0];
925
- return typeof e == "function" ? Ke(We(() => ({ get: e, set: ts }))) : A(e);
925
+ return typeof e == "function" ? Ke(We(() => ({ get: e, set: ss }))) : T(e);
926
926
  }
927
927
  function os(n, e) {
928
- ss() && Ge(n, e);
928
+ ns() && Ge(n, e);
929
929
  }
930
930
  const is = Ee ? window : void 0, as = Ee ? window.document : void 0;
931
931
  function cs(n) {
932
932
  var e;
933
- const t = Z(n);
933
+ const t = se(n);
934
934
  return (e = t?.$el) != null ? e : t;
935
935
  }
936
936
  function ls() {
937
- const n = A(!1), e = me();
938
- return e && Xe(() => {
937
+ const n = T(!1), e = me();
938
+ return e && Ze(() => {
939
939
  n.value = !0;
940
940
  }, e), n;
941
941
  }
@@ -949,7 +949,7 @@ function ps(n, e, t = {}) {
949
949
  const a = us(() => s && "MutationObserver" in s), i = () => {
950
950
  o && (o.disconnect(), o = void 0);
951
951
  }, c = ve(() => {
952
- const p = Z(n), h = ns(p).map(cs).filter(es);
952
+ const p = se(n), h = (Array.isArray(p) ? p : [p]).map(cs).filter(ts);
953
953
  return new Set(h);
954
954
  }), l = ge(
955
955
  () => c.value,
@@ -960,7 +960,7 @@ function ps(n, e, t = {}) {
960
960
  ), f = () => o?.takeRecords(), u = () => {
961
961
  l(), i();
962
962
  };
963
- return Zt(u), {
963
+ return es(u), {
964
964
  isSupported: a,
965
965
  stop: u,
966
966
  takeRecords: f
@@ -976,7 +976,7 @@ function ds(n = null, e = {}) {
976
976
  if (!("titleTemplate" in e))
977
977
  return u;
978
978
  const p = e.titleTemplate || "%s";
979
- return typeof p == "function" ? p(u) : Z(p).replace(/%s/g, u);
979
+ return typeof p == "function" ? p(u) : se(p).replace(/%s/g, u);
980
980
  }
981
981
  return ge(
982
982
  c,
@@ -997,10 +997,10 @@ function ds(n = null, e = {}) {
997
997
  }
998
998
  }), c;
999
999
  }
1000
- const pe = ee({
1000
+ const pe = Z({
1001
1001
  name: "VtjPageContainer",
1002
1002
  async setup() {
1003
- const n = Re(), e = ye(), t = e.params.id, s = t ? n.getPage(t) : n.getHomepage(), r = s ? await n.getRenderComponent(s.id) : null, o = A(Symbol());
1003
+ const n = Re(), e = ye(), t = e.params.id, s = t ? n.getPage(t) : n.getHomepage(), r = s ? await n.getRenderComponent(s.id) : null, o = T(Symbol());
1004
1004
  return s && (Object.assign(e.meta, s.meta || {}, { cache: s.cache }), ds(s.title || "VTJ")), {
1005
1005
  provider: n,
1006
1006
  component: r,
@@ -1033,7 +1033,7 @@ const pe = ee({
1033
1033
  }, ys = {
1034
1034
  "data-l-h6o7ki7": "",
1035
1035
  class: "vtj-startup__actions"
1036
- }, _s = /* @__PURE__ */ ee({
1036
+ }, _s = /* @__PURE__ */ Z({
1037
1037
  __name: "Startup",
1038
1038
  props: {
1039
1039
  name: { default: "VTJ.PRO" },
@@ -1121,7 +1121,7 @@ const pe = ee({
1121
1121
  window.location.href = o;
1122
1122
  }
1123
1123
  };
1124
- return (r, o) => (Ze(), et("div", fs, [
1124
+ return (r, o) => (et(), tt("div", fs, [
1125
1125
  k("div", hs, [
1126
1126
  k("h1", ms, [
1127
1127
  k("span", gs, V(t.name), 1)
@@ -1136,14 +1136,14 @@ const pe = ee({
1136
1136
  ])
1137
1137
  ]));
1138
1138
  }
1139
- }), ws = ee({
1139
+ }), ws = Z({
1140
1140
  name: "VtjStartupContainer",
1141
1141
  render() {
1142
1142
  return W(_s);
1143
1143
  }
1144
1144
  }), ke = Symbol("Provider");
1145
1145
  var Ss = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(Ss || {});
1146
- class bs extends Ae {
1146
+ class bs extends Te {
1147
1147
  constructor(e) {
1148
1148
  super(), this.options = e;
1149
1149
  const {
@@ -1169,7 +1169,7 @@ class bs extends Ae {
1169
1169
  mode;
1170
1170
  globals = {};
1171
1171
  modules = {};
1172
- adapter = { request: yt, jsonp: qe };
1172
+ adapter = { request: _t, jsonp: qe };
1173
1173
  apis = {};
1174
1174
  // public createMock: typeof createMock = createMock;
1175
1175
  dependencies = {};
@@ -1199,7 +1199,7 @@ class bs extends Ae {
1199
1199
  if (this.project = t ? await t() : await this.service.init(e), !this.project)
1200
1200
  throw new Error("project is null");
1201
1201
  const { apis: s = [], meta: r = [] } = this.project, o = window;
1202
- o.CKEDITOR_VERSION = void 0, this.mode === y.Raw ? await this.loadDependencies(o) : await this.loadAssets(o), this.apis = St(s, r, this.adapter), Se(), bt(s), this.initRouter(), this.triggerReady();
1202
+ o.CKEDITOR_VERSION = void 0, this.mode === y.Raw ? await this.loadDependencies(o) : await this.loadAssets(o), this.apis = bt(s, r, this.adapter), Se(), jt(s), this.initRouter(), this.triggerReady();
1203
1203
  }
1204
1204
  async loadDependencies(e) {
1205
1205
  const t = Object.entries(this.dependencies);
@@ -1213,7 +1213,7 @@ class bs extends Ae {
1213
1213
  materials: f,
1214
1214
  materialExports: u,
1215
1215
  materialMapLibrary: p
1216
- } = lt(
1216
+ } = ut(
1217
1217
  t,
1218
1218
  a,
1219
1219
  i === "development"
@@ -1228,7 +1228,7 @@ class bs extends Ae {
1228
1228
  else {
1229
1229
  const w = l[h] || [];
1230
1230
  for (const g of w)
1231
- te(g) && await pt(h, P.append(g, { v: C })), se(g) && await ce(P.append(g, { v: C }));
1231
+ ee(g) && await dt(h, P.append(g, { v: C })), te(g) && await ce(P.append(g, { v: C }));
1232
1232
  r[h] = e[h];
1233
1233
  }
1234
1234
  }
@@ -1237,7 +1237,7 @@ class bs extends Ae {
1237
1237
  await ce(P.append(m, { v: C }));
1238
1238
  const h = this.materials || {};
1239
1239
  for (const m of u) {
1240
- const d = e[p[m]], w = Te[m];
1240
+ const d = e[p[m]], w = Ae[m];
1241
1241
  if (w)
1242
1242
  d && w.forEach((g) => {
1243
1243
  o[g] = d[g];
@@ -1245,7 +1245,7 @@ class bs extends Ae {
1245
1245
  else {
1246
1246
  const g = h[m] ? (await h[m]()).default : e[m];
1247
1247
  g && d && (g.components || []).forEach((S) => {
1248
- o[S.name] = ut(S, d);
1248
+ o[S.name] = pt(S, d);
1249
1249
  });
1250
1250
  }
1251
1251
  }
@@ -1269,7 +1269,7 @@ class bs extends Ae {
1269
1269
  install(e) {
1270
1270
  const t = e.config.globalProperties.installed || {};
1271
1271
  for (const [s, r] of Object.entries(this.library))
1272
- !t[s] && ht(r) && (e.use(r), t[s] = !0);
1272
+ !t[s] && mt(r) && (e.use(r), t[s] = !0);
1273
1273
  this.options.install && e.use(this.options.install), this.adapter.access && e.use(this.adapter.access), e.provide(ke, this), e.config.globalProperties.installed = t, this.mode === y.Design && (e.config.errorHandler = (s, r, o) => {
1274
1274
  const a = r?.$options.name, i = typeof s == "string" ? s : s?.message || s?.msg || "未知错误", c = `[ ${a} ] ${i} ${o}`;
1275
1275
  console.error(
@@ -1497,7 +1497,7 @@ class re {
1497
1497
  return await this.api("clearStaticFiles", e).catch(() => "");
1498
1498
  }
1499
1499
  async getPluginMaterial(e) {
1500
- const { urls: t = [] } = e, s = t.filter((o) => at(o))[0];
1500
+ const { urls: t = [] } = e, s = t.filter((o) => ct(o))[0];
1501
1501
  if (!s) return null;
1502
1502
  const r = this.pluginCaches[s];
1503
1503
  return r || (this.pluginCaches[s] = ne.send({
@@ -1713,8 +1713,8 @@ function Us(n) {
1713
1713
  menuPathPrefix: e = "",
1714
1714
  pageRouteName: t = "page",
1715
1715
  disableMenusFilter: s = !1
1716
- } = n || {}, r = Re(), o = ye(), a = kt(), i = A(!1), c = A(!1), l = r.project;
1717
- tt(() => {
1716
+ } = n || {}, r = Re(), o = ye(), a = Rt(), i = T(!1), c = T(!1), l = r.project;
1717
+ st(() => {
1718
1718
  const { name: p, params: h, meta: m } = o;
1719
1719
  if (p === F) {
1720
1720
  const d = r.getPage(h.id);
@@ -1742,17 +1742,17 @@ function Us(n) {
1742
1742
  export {
1743
1743
  be as ACCESS_KEY,
1744
1744
  Ds as Access,
1745
- it as BUILD_IN_TAGS,
1746
- nt as BUILT_IN_DIRECTIVES,
1745
+ at as BUILD_IN_TAGS,
1746
+ rt as BUILT_IN_DIRECTIVES,
1747
1747
  re as BaseService,
1748
1748
  ue as CONTEXT_HOST,
1749
- Rt as Context,
1749
+ Pt as Context,
1750
1750
  y as ContextMode,
1751
- rt as DATA_TYPES,
1751
+ ot as DATA_TYPES,
1752
1752
  H as HOMEPAGE_ROUTE_NAME,
1753
- ot as HTML_TAGS,
1753
+ it as HTML_TAGS,
1754
1754
  Ms as JSCodeToString,
1755
- As as LIFE_CYCLES_LIST,
1755
+ Ts as LIFE_CYCLES_LIST,
1756
1756
  Ns as LocalService,
1757
1757
  Es as MemoryService,
1758
1758
  Ss as NodeEnv,
@@ -1762,45 +1762,45 @@ export {
1762
1762
  Os as StorageService,
1763
1763
  C as VTJ_RENDERER_VERSION,
1764
1764
  we as adoptedStyleSheets,
1765
- Ts as createAssetScripts,
1765
+ As as createAssetScripts,
1766
1766
  Is as createAssetsCss,
1767
- It as createDataSources,
1767
+ Mt as createDataSources,
1768
1768
  Q as createLoader,
1769
1769
  Bs as createMemoryService,
1770
- wt as createMetaApi,
1771
- jt as createMock,
1770
+ St as createMetaApi,
1771
+ $t as createMock,
1772
1772
  Hs as createProvider,
1773
1773
  Y as createRenderer,
1774
- _t as createSchemaApi,
1775
- St as createSchemaApis,
1776
- Ht as defaultLoader,
1774
+ wt as createSchemaApi,
1775
+ bt as createSchemaApis,
1776
+ Ot as defaultLoader,
1777
1777
  M as fillBasePath,
1778
1778
  $e as getModifiers,
1779
1779
  je as getPlugin,
1780
- ut as getRawComponent,
1781
- mt as isBuiltInTag,
1782
- te as isCSSUrl,
1783
- vt as isJSCode,
1780
+ pt as getRawComponent,
1781
+ gt as isBuiltInTag,
1782
+ ee as isCSSUrl,
1783
+ yt as isJSCode,
1784
1784
  _ as isJSExpression,
1785
1785
  I as isJSFunction,
1786
- at as isJSON,
1787
- se as isJSUrl,
1788
- gt as isNativeTag,
1789
- ht as isVuePlugin,
1790
- pt as loadCss,
1791
- dt as loadCssUrl,
1792
- ft as loadScriptUrl,
1793
- $t as mockApi,
1794
- bt as mockApis,
1786
+ ct as isJSON,
1787
+ te as isJSUrl,
1788
+ vt as isNativeTag,
1789
+ mt as isVuePlugin,
1790
+ dt as loadCss,
1791
+ ft as loadCssUrl,
1792
+ ht as loadScriptUrl,
1793
+ Et as mockApi,
1794
+ jt as mockApis,
1795
1795
  Se as mockCleanup,
1796
1796
  B as nodeRender,
1797
- lt as parseDeps,
1798
- T as parseExpression,
1797
+ ut as parseDeps,
1798
+ A as parseExpression,
1799
1799
  G as parseFunction,
1800
1800
  ke as providerKey,
1801
- ct as removeProdFlag,
1801
+ lt as removeProdFlag,
1802
1802
  _e as toString,
1803
- kt as useAccess,
1803
+ Rt as useAccess,
1804
1804
  Us as useMask,
1805
1805
  Re as useProvider
1806
1806
  };
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.9.5",
4
+ "version": "0.9.7",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "mockjs": "~1.1.0",
8
- "@vtj/core": "~0.9.5",
9
- "@vtj/utils": "~0.9.5"
8
+ "@vtj/utils": "~0.9.7",
9
+ "@vtj/core": "~0.9.7"
10
10
  },
11
11
  "devDependencies": {
12
12
  "vue": "~3.5.5",
13
13
  "vue-router": "~4.5.0",
14
- "@vtj/ui": "~0.9.5",
15
- "@vtj/icons": "~0.9.5",
16
- "@vtj/cli": "~0.9.3"
14
+ "@vtj/icons": "~0.9.7",
15
+ "@vtj/ui": "~0.9.7",
16
+ "@vtj/cli": "~0.9.5"
17
17
  },
18
18
  "exports": {
19
19
  ".": {
@@ -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.9.4
5
+ * @version 0.9.6
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.9.4";
8
+ export declare const version = "0.9.6";