@vtj/renderer 0.9.0-alpha.17 → 0.9.0-alpha.19

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";var Ae=Object.create;var te=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Me=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var Ie=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Oe(e))!Te.call(s,r)&&r!==t&&te(s,r,{get:()=>e[r],enumerable:!(n=Fe(e,r))||n.enumerable});return s};var De=(s,e,t)=>(t=s!=null?Ae(Me(s)):{},Ie(e||!s||!s.__esModule?te(t,"default",{value:s,enumerable:!0}):t,s));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@vtj/core"),l=require("@vtj/utils"),p=require("vue"),F=require("element-plus"),se=require("vue-router");function He(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const H=He(p);/**!
1
+ "use strict";var Ae=Object.create;var te=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Me=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var Ie=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Me(e))!Te.call(s,r)&&r!==t&&te(s,r,{get:()=>e[r],enumerable:!(n=Fe(e,r))||n.enumerable});return s};var De=(s,e,t)=>(t=s!=null?Ae(Oe(s)):{},Ie(e||!s||!s.__esModule?te(t,"default",{value:s,enumerable:!0}):t,s));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@vtj/core"),u=require("@vtj/utils"),f=require("vue"),F=require("element-plus"),se=require("vue-router");function He(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const H=He(f);/**!
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.9.0-alpha.17
5
+ * @version 0.9.0-alpha.19
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const C="0.9.0-alpha.17";var y=(s=>(s.Runtime="Runtime",s.Design="Design",s.Raw="Raw",s.VNode="VNode",s))(y||{});const J=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ne=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],re=["vIf","vShow","vModel","vFor","vBind"],oe={String,Number,Boolean,Array,Object,Function,Date},R="VtjPage",A="VtjHomepage";function k(s,e){return s.map(t=>l.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function N(s){return/\.css$/.test(s)}function U(s){return/\.js$/.test(s)}function ie(s){return/\.json$/.test(s)}function Ue(s){return s.map(e=>`<script src="${l.url.append(e,{v:C})}"><\/script>`).join("")}function Be(s=[]){return s.map(e=>`<link rel="stylesheet" href="${l.url.append(e,{v:C})}" />`).join("")}function ae(s,e=!1){return e&&s.endsWith(".prod.js")?s.replace(".prod.js",".js"):s}function ce(s,e,t=!1){const n=s.filter(d=>!!d.enabled),r=[],o=[],a=[],i=[],u={},c={},m=[],f={};return n.forEach(({urls:d,assetsUrl:g,library:h,assetsLibrary:v,localeLibrary:E})=>{d?.forEach(_=>{U(_)&&r.push(ae(_,t)),N(_)&&o.push(_)}),h&&(i.push(h),u[h]=k(d||[],e),E&&(c[h]=E)),g&&a.push(g),v&&m.push(v),h&&v&&(f[v]=h)}),{scripts:k(r,e),css:k(o,e),materials:k(a,e),libraryExports:i,materialExports:l.dedupArray(m),materialMapLibrary:f,libraryMap:u,libraryLocaleMap:c}}function le(s,e){const{name:t,parent:n,alias:r}=s;return n?e[n]?.[r||t]:e[r||t]}function V(s){return l.isString(s)?s:JSON.stringify(s)}function z(s,e,t){const n=s.CSSStyleSheet;if(n.prototype.replaceSync){const r=new n;r.id=e,r.replaceSync(t);const o=s.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(u=>u.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=s.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 ue(s,e){const t=await window.fetch(e).then(n=>n.text()).catch(()=>"");t&&z(window,s,t)}function de(s,e=window){const t=e.document,n=e.document.head;for(const r of s)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,n.appendChild(a)}}async function pe(s,e,t=window){const n=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const u of s){const c=n.createElement("script");c.src=u,c.onload=()=>{o=t[e],o?a(o.default||o):i(null)},c.onerror=m=>{i(m)},r.appendChild(c)}})}function fe(s){return l.isFunction(s)||l.isFunction(s?.install)}function x(s,e,t=!1,n=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(s.value||"").trim();o=o.replace(/this(\W|$)/g,(i,u)=>`__self${u}`),o=r.join(`
8
- `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(r){if(l.logger.error("parseExpression.error",r,s,e?.__self??e),n)throw r}}function q(s,e,t=!1,n=!1){const r=x(s,e,t,n);if(typeof r!="function"&&(l.logger.error("parseFunction.error","not a function",s,e?.__self??e),n))throw new Error(`"${s.value}" not a function`);return r}function j(s){return s&&s.type==="JSExpression"}function M(s){return typeof s=="object"&&s&&s.type==="JSFunction"}function he(s){return j(s)||M(s)}function Le(s){return he(s)?s.value:JSON.stringify(s)}let P=null;const Je=l.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:s=>s.data?.code===0||!!s.data?.success,failMessage:!0,showError:s=>{F.ElNotification.error({message:s||"未知错误"})},showLoading:()=>{P&&P.close(),P=F.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{P&&(P.close(),P=null)}}});let $;function me(s,e){const{jsonp:t,request:n}=e;if(s.method==="jsonp")return(r={})=>t(s.url,{...s.jsonpOptions,query:r});{const r=s.headers?x(s.headers,{},!0):void 0,o={url:s.url,method:s.method,settings:{...s.settings,headers:r}};return(a,i)=>(delete o.data,n.send(l.merge(o,i||{},{data:a})))}}function ge(s,e){const{metaQuery:t}=e;if(!t)return;const{code:n,queryCode:r}=s;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(n,r,o,a)}}function ve(s=[],e=[],t){const n={};for(const r of s)n[r.id]=me(r,t);for(const r of e)n[r.id]=ge(r,t);return n}async function ye(s=[]){$=await import("mockjs").then(e=>e.default||e),$&&($.setup({timeout:"50-500"}),K(),s.forEach(e=>_e($,e)))}function _e(s,e){if(!e.mock)return;const{url:t,mockTemplate:n}=e;if(t&&n){const r=l.pathToRegexp(`${t}(.*)`),o=l.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=x(n,{},!0);s.mock(r,i=>{const u=l.url.parse(i.url)||{},c=i.body instanceof FormData?l.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:c,params:u,query:m}),s.mock(a(i))})}}function K(){$&&($._mocked={})}const qe={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",keyPrefix:""},W=Symbol("access");class Ve{options;data=null;mode=y.Raw;constructor(e){this.options=Object.assign({},qe,e),this.loadData()}connect(e){const{mode:t,router:n,request:r}=e;this.mode=t,n&&t===y.Raw&&this.setGuard(n),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:n,session:r,authKey:o}=this.options;this.setData(e),this.data&&(l.storage.save(t,e,{type:"local",prefix:n}),r&&l.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:n,authKey:r}=this.options;this.data=null,l.storage.remove(e,{type:"local",prefix:t}),n&&l.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data}getToken(){return this.data?.token}can(e){const{keyPrefix:t}=this.options,{permissions:n={}}=this.data||{};return typeof e=="function"?e(n):l.toArray(e).every(o=>n[o]||n[t+o])}some(e){const{keyPrefix:t}=this.options,{permissions:n={}}=this.data||{};return l.toArray(e).some(o=>n[o]||n[t+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(W,this)}isAuthPath(e){const{auth:t,isAuth:n}=this.options;if(n)return n(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||this.mode!==y.Raw)return;const n=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(n):location.href=t?`${e}${n}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const n=e.map(r=>l.unRSA(r,t));this.data=JSON.parse(n.join(""));return}if(typeof e=="string")try{const n=t?l.unRSA(e,t):e;n?this.data=JSON.parse(n):console.warn("RSA解密失败或登录信息缺失")}catch(n){console.warn(n)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,n=l.storage.get(e,{type:"local",prefix:t});this.setData(n)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!l.cookie.get(t):!!this.data}hasRoutePermission(e){if(e.name===R){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,n,r)=>this.guard(t,r))}guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:n="无权限访问",unauthorized:r=!1}=this.options;return this.showTip(n),l.isFunction(r)?(r(),t(!1)):l.isString(r)?t(r):t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(n=>e.fullPath.startsWith(n)):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 l.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 n=t.response||t||{};return await this.showUnauthorizedAlert(n),Promise.reject(t)})}}function we(){return p.inject(W,null)}class Se{__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:n,attrs:r}=e;this.__mode=t,n&&(this.__id=n.id||null,this.__transform=n.transform||{}),r&&Object.assign(this,r)}setup(e,t=H){const n=t.getCurrentInstance();if(!n)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=n.proxy;const r=n.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&&J.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){J.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return q({type:n,value:r},this)}else return q(e,this)}__parseExpression(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return x({type:n,value:r},this)}else return x(e,this)}__ref(e=null,t){if(this.__mode!==y.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async n=>{await l.delay(0);let r=n?.$vtjEl||n?.$el||n?._?.vnode?.el||n;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,y.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=n),typeof t=="function")t(n);else if(t){const o=this.$refs[t];if(o&&n!==o){const a=new Set([].concat(o,n));this.$refs[t]=Array.from(a)}else this.$refs[t]=n}return n}}__clone(e={}){const t={...this.context,...e},n={...t,context:t};return n.context.__proto__=this.context,n.__proto__=this,n}}function I(s){const{Vue:e=H,mode:t=y.Runtime,components:n={},libs:r={},apis:o={},loader:a}=s,i=e.computed(()=>s.dsl),u={$components:n,$libs:r,$apis:o},c=new Se({mode:t,dsl:i.value,attrs:u}),m=e.defineComponent({name:i.value.name,props:{...Ke(i.value.props??[],c)},setup(f){c.$props=f,c.props=f,i.value.id&&z(s.window||window,i.value.id,i.value.css||""),c.state=We(e,i.value.state??{},c);const d=Ge(e,i.value.computed??{},c),g=Ye(i.value.methods??{},c),h=Qe(e,i.value.inject,c),v=Ee(i.value.dataSources||{},c),E={...h,...d,...g,...v};return c.setup(E,e),Xe(e,i.value.watch??[],c),{vtj:c}},emits:ze(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const f=i.value.nodes||[];return f.length===1?O(f[0],c,e,a):f.map(d=>O(d,c,e,a))},...Ze(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(m),context:c}}function ze(s=[]){return s.map(e=>l.isString(e)?e:e.name)}function Ke(s=[],e){const t=n=>n?(Array.isArray(n)?n:[n]).map(o=>oe[o]):void 0;return s.map(n=>l.isString(n)?{name:n}:{name:n.name,type:n.type,required:n.required,default:j(n.default)?e.__parseExpression(n.default):n.default}).reduce((n,r)=>(n[r.name]={type:t(r.type),required:r.required,default:r.default},n),{})}function We(s,e,t){return s.reactive(Object.keys(e||{}).reduce((n,r)=>{let o=e[r];return j(o)?o=t.__parseExpression(o):M(o)&&(o=t.__parseFunction(o)),n[r]=o,n},{}))}function Ge(s,e,t){return Object.entries(e??{}).reduce((n,[r,o])=>(n[r]=s.computed(t.__parseFunction(o)),n),{})}function Ye(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}function Qe(s,e=[],t){return e.reduce((n,r)=>{const{name:o,from:a}=r||{};r.default;const i=j(a)?t.__parseExpression(a)||o:a??o,u=j(r.default)?t.__parseExpression(r.default):r.default??null;return n[o]=s.inject(i,u),n},{})}function Ee(s,e){return Object.keys(s).reduce((t,n)=>{const r=s[n],o=e.$apis[r.ref],a=M(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;return t[n]=async(...i)=>{const u=await o.apply(e,i);return a?a(u):u},t},{})}function Xe(s,e=[],t){e.forEach(n=>{s.watch(t.__parseExpression(n.source),t.__parseFunction(n.handler),{deep:n.deep,immediate:n.immediate})})}function Ze(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}let L=[];const je=s=>s;async function G(s,e=window){const{urls:t=[],library:n}=s,r=t.filter(i=>U(i));if(r.length===0||!n)return null;const o=t.filter(i=>N(i));return o.length&&de(o,e),await pe(r,n,e).catch(i=>(console.warn("loadScriptUrl error",r,n,i),null))}function D(s){const{getDsl:e,getDslByUrl:t,options:n}=s;return n.window&&(L.forEach(r=>{delete n.window[r]}),L=[]),(r,o,a=H)=>!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?I({...n,Vue:a,dsl:i,mode:y.Runtime,loader:D(s)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?I({...n,Vue:a,dsl:i,mode:y.Runtime,loader:D(s)}).renderer:null}):o.type==="Plugin"?(o.library&&L.push(o.library),a.defineAsyncComponent(async()=>{const i=await G(o,n.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function O(s,e,t=H,n=je){if(!s||!s.name||s.invisible)return null;const{id:r=null,directives:o=[]}=s,{vIf:a,vFor:i,vShow:u,vModels:c,vBind:m}=et(o);if(a&&!tt(a,e))return null;const f=d=>{const g=d.$components,h=(()=>{if(s.name==="component")return nt(d,s.props?.is);if(s.name==="slot")return s.name;const w=n(s.name,s.from,t);return l.isString(w)?g[w]??w:w})(),v=st(r,s.props??{},d),E=rt(t,s.events??{},d);if(s.name==="slot")return ot(t,s,v,d,n);m&&Object.assign(v,d.__parseExpression(m.value)),u&&(v.style=Object.assign(v.style??{},at(u,d))),c.forEach(w=>{Object.assign(v,ct(t,w,d))});const _=lt(t,s.children??[],d,n,s);return t.createVNode(h,{...v,...E},_)};return i?pt(i,f,e):f(e)}function et(s=[]){const e=s.find(i=>l.camelCase(i.name)==="vIf"),t=s.find(i=>l.camelCase(i.name)==="vFor"),n=s.find(i=>l.camelCase(i.name)==="vShow"),r=s.find(i=>l.camelCase(i.name)==="vBind"),o=s.filter(i=>l.camelCase(i.name)==="vModel"),a=s.filter(i=>!re.includes(l.camelCase(i.name)));return{vIf:e,vFor:t,vShow:n,vModels:o,vBind:r,others:a}}function tt(s,e){return!!e.__parseExpression(s.value)}function nt(s,e){return e?j(e)?s.__parseExpression(e):e:"div"}function st(s,e,t){const n=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return j(a)?a=t.__parseExpression(a):M(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return n.ref=t.__ref(s,n.ref),n}function rt(s,e,t){const n=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],u=Y(i.modifiers),c=u.find(d=>n.includes(d)),m="on"+l.upperFirst(a)+(c&&r[c]||""),f=t.__parseFunction(i.handler);return f&&(o[m]=s.withModifiers(f,u)),o},{})}function Y(s={},e=!1){const t=Object.keys(s);return e?t.map(n=>"."+n):t}function ot(s,e,t,n,r){const{children:o}=e,a=it(e,n),i=n.$slots?.[a.name];return i?i(t):o?l.isString(o)?s.createTextVNode(o):j(o)?s.createTextVNode(V(n.__parseExpression(o))):Array.isArray(o)?o.map(u=>O(u,n,s,r)):null:null}function it(s,e){const{props:t}=s,n=t?.name||"default";return{name:j(n)?e.__parseExpression(n):n,params:[]}}function at(s,e){return e.__parseExpression(s.value)?{}:{display:"none"}}function ct(s,e,t){const n={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const C="0.9.0-alpha.19";var y=(s=>(s.Runtime="Runtime",s.Design="Design",s.Raw="Raw",s.VNode="VNode",s))(y||{});const J=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ne=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],re=["vIf","vShow","vModel","vFor","vBind"],oe={String,Number,Boolean,Array,Object,Function,Date},R="VtjPage",A="VtjHomepage";function k(s,e){return s.map(t=>u.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function N(s){return/\.css$/.test(s)}function U(s){return/\.js$/.test(s)}function ie(s){return/\.json$/.test(s)}function Ue(s){return s.map(e=>`<script src="${u.url.append(e,{v:C})}"><\/script>`).join("")}function Be(s=[]){return s.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:C})}" />`).join("")}function ae(s,e=!1){return e&&s.endsWith(".prod.js")?s.replace(".prod.js",".js"):s}function ce(s,e,t=!1){const n=s.filter(p=>!!p.enabled),r=[],o=[],a=[],i=[],l={},c={},m=[],d={};return n.forEach(({urls:p,assetsUrl:v,library:h,assetsLibrary:g,localeLibrary:E})=>{p?.forEach(_=>{U(_)&&r.push(ae(_,t)),N(_)&&o.push(_)}),h&&(i.push(h),l[h]=k(p||[],e),E&&(c[h]=E)),v&&a.push(v),g&&m.push(g),h&&g&&(d[g]=h)}),{scripts:k(r,e),css:k(o,e),materials:k(a,e),libraryExports:i,materialExports:u.dedupArray(m),materialMapLibrary:d,libraryMap:l,libraryLocaleMap:c}}function le(s,e){const{name:t,parent:n,alias:r}=s;return n?e[n]?.[r||t]:e[r||t]}function V(s){return u.isString(s)?s:JSON.stringify(s)}function z(s,e,t){const n=s.CSSStyleSheet;if(n.prototype.replaceSync){const r=new n;r.id=e,r.replaceSync(t);const o=s.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(l=>l.id!==e);o.adoptedStyleSheets=[...i,r]}else{const r=s.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 ue(s,e){const t=await window.fetch(e).then(n=>n.text()).catch(()=>"");t&&z(window,s,t)}function de(s,e=window){const t=e.document,n=e.document.head;for(const r of s)if(!t.getElementById(r)){const a=t.createElement("link");a.rel="stylesheet",a.id=r,a.href=r,n.appendChild(a)}}async function pe(s,e,t=window){const n=t.document,r=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of s){const c=n.createElement("script");c.src=l,c.onload=()=>{o=t[e],o?a(o.default||o):i(null)},c.onerror=m=>{i(m)},r.appendChild(c)}})}function fe(s){return u.isFunction(s)||u.isFunction(s?.install)}function x(s,e,t=!1,n=!1){try{const r=['"use strict";',"var __self = arguments[0];"];r.push("return ");let o=(s.value||"").trim();o=o.replace(/this(\W|$)/g,(i,l)=>`__self${l}`),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,s,e?.__self??e),n)throw r}}function q(s,e,t=!1,n=!1){const r=x(s,e,t,n);if(typeof r!="function"&&(u.logger.error("parseFunction.error","not a function",s,e?.__self??e),n))throw new Error(`"${s.value}" not a function`);return r}function j(s){return s&&s.type==="JSExpression"}function O(s){return typeof s=="object"&&s&&s.type==="JSFunction"}function he(s){return j(s)||O(s)}function Le(s){return he(s)?s.value:JSON.stringify(s)}let $=null;const Je=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:s=>s.data?.code===0||!!s.data?.success,failMessage:!0,showError:s=>{F.ElNotification.error({message:s||"未知错误"})},showLoading:()=>{$&&$.close(),$=F.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{$&&($.close(),$=null)}}});let P;function me(s,e){const{jsonp:t,request:n}=e;if(s.method==="jsonp")return(r={})=>t(s.url,{...s.jsonpOptions,query:r});{const r=s.headers?x(s.headers,{},!0):void 0,o={url:s.url,method:s.method,settings:{...s.settings,headers:r}};return(a,i)=>(delete o.data,n.send(u.merge(o,i||{},{data:a})))}}function ge(s,e){const{metaQuery:t}=e;if(!t)return;const{code:n,queryCode:r}=s;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(n,r,o,a)}}function ve(s=[],e=[],t){const n={};for(const r of s)n[r.id]=me(r,t);for(const r of e)n[r.id]=ge(r,t);return n}async function ye(s=[]){P=await import("mockjs").then(e=>e.default||e),P&&(P.setup({timeout:"50-500"}),K(),s.forEach(e=>_e(P,e)))}function _e(s,e){if(!e.mock)return;const{url:t,mockTemplate:n}=e;if(t&&n){const r=u.pathToRegexp(`${t}(.*)`),o=u.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=x(n,{},!0);s.mock(r,i=>{const l=u.url.parse(i.url)||{},c=i.body instanceof FormData?u.formDataToJson(i.body):i.body,m=o(i.url)?.params;return Object.assign(i,{data:c,params:l,query:m}),s.mock(a(i))})}}function K(){P&&(P._mocked={})}const qe={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:""},W=Symbol("access");class Ve{options;data=null;mode=y.Raw;constructor(e){this.options=Object.assign({},qe,e),this.loadData()}connect(e){const{mode:t,router:n,request:r}=e;this.mode=t,n&&t===y.Raw&&this.setGuard(n),r&&this.setRequest(r)}login(e){const{storageKey:t,storagePrefix:n,session:r,authKey:o}=this.options;this.setData(e),this.data&&(u.storage.save(t,e,{type:"local",prefix:n}),r&&u.cookie.set(o,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:n,authKey:r}=this.options;this.data=null,u.storage.remove(e,{type:"local",prefix:t}),n&&u.cookie.remove(r)}logout(){this.clear(),this.toLogin()}getData(){return this.data}getToken(){return this.data?.token}can(e){const{appName:t}=this.options,{permissions:n={}}=this.data||{};return typeof e=="function"?e(n):u.toArray(e).every(o=>n[o]||n[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:n={}}=this.data||{};return u.toArray(e).some(o=>n[o]||n[t+"."+o])}install(e){e.config.globalProperties.$access||(e.config.globalProperties.$access=this),e.provide(W,this)}isAuthPath(e){const{auth:t,isAuth:n}=this.options;if(n)return n(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||this.mode!==y.Raw)return;const n=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(n):location.href=t?`${e}${n}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const n=e.map(r=>u.unRSA(r,t));this.data=JSON.parse(n.join(""));return}if(typeof e=="string")try{const n=t?u.unRSA(e,t):e;n?this.data=JSON.parse(n):console.warn("RSA解密失败或登录信息缺失")}catch(n){console.warn(n)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,n=u.storage.get(e,{type:"local",prefix:t});this.setData(n)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!u.cookie.get(t):!!this.data}hasRoutePermission(e){if(e.name===R){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,n,r)=>this.guard(t,r))}guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:n="无权限访问",unauthorized:r=!1}=this.options;return this.showTip(n),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(n=>e.fullPath.startsWith(n)):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 n=t.response||t||{};return await this.showUnauthorizedAlert(n),Promise.reject(t)})}}function we(){return f.inject(W,null)}class Se{__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:n,attrs:r}=e;this.__mode=t,n&&(this.__id=n.id||null,this.__transform=n.transform||{}),r&&Object.assign(this,r)}setup(e,t=H){const n=t.getCurrentInstance();if(!n)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=n.proxy;const r=n.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&&J.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){J.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return q({type:n,value:r},this)}else return q(e,this)}__parseExpression(e){if(e)if(this.__mode===y.Runtime){const{id:t,type:n}=e,r=t?this.__transform[t]??e.value:e.value;return x({type:n,value:r},this)}else return x(e,this)}__ref(e=null,t){if(this.__mode!==y.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async n=>{await u.delay(0);let r=n?.$vtjEl||n?.$el||n?._?.vnode?.el||n;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,y.Design===this.__mode&&(r.__context__=this,r.draggable=!0),e&&(this.__refs[e]=n),typeof t=="function")t(n);else if(t){const o=this.$refs[t];if(o&&n!==o){const a=new Set([].concat(o,n));this.$refs[t]=Array.from(a)}else this.$refs[t]=n}return n}}__clone(e={}){const t={...this.context,...e},n={...t,context:t};return n.context.__proto__=this.context,n.__proto__=this,n}}function I(s){const{Vue:e=H,mode:t=y.Runtime,components:n={},libs:r={},apis:o={},loader:a}=s,i=e.computed(()=>s.dsl),l={$components:n,$libs:r,$apis:o},c=new Se({mode:t,dsl:i.value,attrs:l}),m=e.defineComponent({name:i.value.name,props:{...Ke(i.value.props??[],c)},setup(d){c.$props=d,c.props=d,i.value.id&&z(s.window||window,i.value.id,i.value.css||""),c.state=We(e,i.value.state??{},c);const p=Ge(e,i.value.computed??{},c),v=Ye(i.value.methods??{},c),h=Qe(e,i.value.inject,c),g=Ee(i.value.dataSources||{},c),E={...h,...p,...v,...g};return c.setup(E,e),Xe(e,i.value.watch??[],c),{vtj:c}},emits:ze(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?M(d[0],c,e,a):d.map(p=>M(p,c,e,a))},...Ze(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(m),context:c}}function ze(s=[]){return s.map(e=>u.isString(e)?e:e.name)}function Ke(s=[],e){const t=n=>n?(Array.isArray(n)?n:[n]).map(o=>oe[o]):void 0;return s.map(n=>u.isString(n)?{name:n}:{name:n.name,type:n.type,required:n.required,default:j(n.default)?e.__parseExpression(n.default):n.default}).reduce((n,r)=>(n[r.name]={type:t(r.type),required:r.required,default:r.default},n),{})}function We(s,e,t){return s.reactive(Object.keys(e||{}).reduce((n,r)=>{let o=e[r];return j(o)?o=t.__parseExpression(o):O(o)&&(o=t.__parseFunction(o)),n[r]=o,n},{}))}function Ge(s,e,t){return Object.entries(e??{}).reduce((n,[r,o])=>(n[r]=s.computed(t.__parseFunction(o)),n),{})}function Ye(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}function Qe(s,e=[],t){return e.reduce((n,r)=>{const{name:o,from:a}=r||{};r.default;const i=j(a)?t.__parseExpression(a)||o:a??o,l=j(r.default)?t.__parseExpression(r.default):r.default??null;return n[o]=s.inject(i,l),n},{})}function Ee(s,e){return Object.keys(s).reduce((t,n)=>{const r=s[n],o=e.$apis[r.ref],a=O(r.transform)?r.transform.value?e.__parseFunction(r.transform):void 0:r.transform;return t[n]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l},t},{})}function Xe(s,e=[],t){e.forEach(n=>{s.watch(t.__parseExpression(n.source),t.__parseFunction(n.handler),{deep:n.deep,immediate:n.immediate})})}function Ze(s,e){return Object.entries(s??{}).reduce((t,[n,r])=>(t[n]=e.__parseFunction(r),t),{})}let L=[];const je=s=>s;async function G(s,e=window){const{urls:t=[],library:n}=s,r=t.filter(i=>U(i));if(r.length===0||!n)return null;const o=t.filter(i=>N(i));return o.length&&de(o,e),await pe(r,n,e).catch(i=>(console.warn("loadScriptUrl error",r,n,i),null))}function D(s){const{getDsl:e,getDslByUrl:t,options:n}=s;return n.window&&(L.forEach(r=>{delete n.window[r]}),L=[]),(r,o,a=H)=>!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?I({...n,Vue:a,dsl:i,mode:y.Runtime,loader:D(s)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=r),i?I({...n,Vue:a,dsl:i,mode:y.Runtime,loader:D(s)}).renderer:null}):o.type==="Plugin"?(o.library&&L.push(o.library),a.defineAsyncComponent(async()=>{const i=await G(o,n.window);return i||(console.warn("getPlugin result is null",o),null)})):r}function M(s,e,t=H,n=je){if(!s||!s.name||s.invisible)return null;const{id:r=null,directives:o=[]}=s,{vIf:a,vFor:i,vShow:l,vModels:c,vBind:m}=et(o);if(a&&!tt(a,e))return null;const d=p=>{const v=p.$components,h=(()=>{if(s.name==="component")return nt(p,s.props?.is);if(s.name==="slot")return s.name;const w=n(s.name,s.from,t);return u.isString(w)?v[w]??w:w})(),g=st(r,s.props??{},p),E=rt(t,s.events??{},p);if(s.name==="slot")return ot(t,s,g,p,n);m&&Object.assign(g,p.__parseExpression(m.value)),l&&(g.style=Object.assign(g.style??{},at(l,p))),c.forEach(w=>{Object.assign(g,ct(t,w,p))});const _=lt(t,s.children??[],p,n,s);return t.createVNode(h,{...g,...E},_)};return i?pt(i,d,e):d(e)}function et(s=[]){const e=s.find(i=>u.camelCase(i.name)==="vIf"),t=s.find(i=>u.camelCase(i.name)==="vFor"),n=s.find(i=>u.camelCase(i.name)==="vShow"),r=s.find(i=>u.camelCase(i.name)==="vBind"),o=s.filter(i=>u.camelCase(i.name)==="vModel"),a=s.filter(i=>!re.includes(u.camelCase(i.name)));return{vIf:e,vFor:t,vShow:n,vModels:o,vBind:r,others:a}}function tt(s,e){return!!e.__parseExpression(s.value)}function nt(s,e){return e?j(e)?s.__parseExpression(e):e:"div"}function st(s,e,t){const n=Object.keys(e||{}).reduce((r,o)=>{let a=e[o];return j(a)?a=t.__parseExpression(a):O(a)&&(a=t.__parseFunction(a)),r[o]=a,r},{});return n.ref=t.__ref(s,n.ref),n}function rt(s,e,t){const n=["passive","capture","once"],r={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=Y(i.modifiers),c=l.find(p=>n.includes(p)),m="on"+u.upperFirst(a)+(c&&r[c]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=s.withModifiers(d,l)),o},{})}function Y(s={},e=!1){const t=Object.keys(s);return e?t.map(n=>"."+n):t}function ot(s,e,t,n,r){const{children:o}=e,a=it(e,n),i=n.$slots?.[a.name];return i?i(t):o?u.isString(o)?s.createTextVNode(o):j(o)?s.createTextVNode(V(n.__parseExpression(o))):Array.isArray(o)?o.map(l=>M(l,n,s,r)):null:null}function it(s,e){const{props:t}=s,n=t?.name||"default";return{name:j(n)?e.__parseExpression(n):n,params:[]}}function at(s,e){return e.__parseExpression(s.value)?{}:{display:"none"}}function ct(s,e,t){const n={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
- }`:"(v) => {}"},r=t.__parseFunction(n),o=Y(e.modifiers),a=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&r?s.withModifiers(r,o):r}}function lt(s,e,t,n,r){if(!e)return null;if(l.isString(e))return{default:()=>e};if(j(e))return{default:()=>V(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=ut(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[u,{nodes:c,params:m}])=>(i[u]=f=>{const d=m.length?l.pick(f??{},m):a(f);return c.map(g=>O(g,t.__clone(d),s,n))},i),{})}return null}function ut(s){const e={default:{params:[],nodes:[]}};for(const t of s){const n=dt(t.slot),r=n.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(n.params)):e[r]={nodes:[t],params:n.params}}return e}function dt(s="default"){return l.isString(s)?{name:s,params:[]}:{params:[],...s}}function pt(s,e,t){const{value:n,iterator:r}=s,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(n)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((u,c)=>c+1)),Array.isArray(i)?i.map((u,c)=>e(t.__clone({[o]:u,[a]:c}))):(console.warn("[vForRender]:",`${n?.value} is not a Arrary`),[])}function ft(s){return p.getCurrentScope()?(p.onScopeDispose(s),!0):!1}function Q(s){return typeof s=="function"?s():p.unref(s)}const be=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ht=s=>s!=null,mt=()=>{};function gt(s){return p.getCurrentInstance()}function vt(...s){if(s.length!==1)return p.toRef(...s);const e=s[0];return typeof e=="function"?p.readonly(p.customRef(()=>({get:e,set:mt}))):p.ref(e)}function yt(s,e){gt()&&p.onBeforeUnmount(s,e)}const _t=be?window:void 0,wt=be?window.document:void 0;function St(s){var e;const t=Q(s);return(e=t?.$el)!=null?e:t}function Et(){const s=p.ref(!1),e=p.getCurrentInstance();return e&&p.onMounted(()=>{s.value=!0},e),s}function jt(s){const e=Et();return p.computed(()=>(e.value,!!s()))}function bt(s,e,t={}){const{window:n=_t,...r}=t;let o;const a=jt(()=>n&&"MutationObserver"in n),i=()=>{o&&(o.disconnect(),o=void 0)},u=p.computed(()=>{const d=Q(s),g=(Array.isArray(d)?d:[d]).map(St).filter(ht);return new Set(g)}),c=p.watch(()=>u.value,d=>{i(),a.value&&d.size&&(o=new MutationObserver(e),d.forEach(g=>o.observe(g,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),f=()=>{c(),i()};return ft(f),{isSupported:a,stop:f,takeRecords:m}}function Pt(s=null,e={}){var t,n,r;const{document:o=wt,restoreOnUnmount:a=f=>f}=e,i=(t=o?.title)!=null?t:"",u=vt((n=s??o?.title)!=null?n:null),c=s&&typeof s=="function";function m(f){if(!("titleTemplate"in e))return f;const d=e.titleTemplate||"%s";return typeof d=="function"?d(f):Q(d).replace(/%s/g,f)}return p.watch(u,(f,d)=>{f!==d&&o&&(o.title=m(typeof f=="string"?f:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!c&&bt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==u.value&&(u.value=m(o.title))},{childList:!0}),yt(()=>{if(a){const f=a(i,u.value||"");f!=null&&o&&(o.title=f)}}),u}const ne=p.defineComponent({name:"VtjPageContainer",async setup(){const s=Z(),e=se.useRoute(),t=e.params.id,n=t?s.getPage(t):s.getHomepage(),r=n?await s.getRenderComponent(n.id):null;return n&&(Object.assign(e.meta,n.meta||{}),Pt(n.title||"VTJ")),{provider:s,component:r,file:n,query:e.query,meta:n?.meta}},render(){const{component:s,query:e}=this;return s?p.h(s,e):p.h("div","页面不存在")}}),$t={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},Ct={"data-l-h6o7ki7":"",class:"vtj-startup"},Rt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},xt={"data-l-h6o7ki7":""},kt={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},At={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},Pe=p.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"}},setup(s){((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(n),o=Y(e.modifiers),a=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&r?s.withModifiers(r,o):r}}function lt(s,e,t,n,r){if(!e)return null;if(u.isString(e))return{default:()=>e};if(j(e))return{default:()=>V(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=ut(e),a=i=>!i||!r?{}:r?.id&&Object.keys(i).length?{[`scope_${r.id}`]:i}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:m}])=>(i[l]=d=>{const p=m.length?u.pick(d??{},m):a(d);return c.map(v=>M(v,t.__clone(p),s,n))},i),{})}return null}function ut(s){const e={default:{params:[],nodes:[]}};for(const t of s){const n=dt(t.slot),r=n.name;e[r]?(e[r].nodes.push(t),e[r].params=e[r].params.concat(n.params)):e[r]={nodes:[t],params:n.params}}return e}function dt(s="default"){return u.isString(s)?{name:s,params:[]}:{params:[],...s}}function pt(s,e,t){const{value:n,iterator:r}=s,{item:o="item",index:a="index"}=r||{};let i=t.__parseExpression(n)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((l,c)=>c+1)),Array.isArray(i)?i.map((l,c)=>e(t.__clone({[o]:l,[a]:c}))):(console.warn("[vForRender]:",`${n?.value} is not a Arrary`),[])}function ft(s){return f.getCurrentScope()?(f.onScopeDispose(s),!0):!1}function Q(s){return typeof s=="function"?s():f.unref(s)}const be=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ht=s=>s!=null,mt=()=>{};function gt(s){return f.getCurrentInstance()}function vt(...s){if(s.length!==1)return f.toRef(...s);const e=s[0];return typeof e=="function"?f.readonly(f.customRef(()=>({get:e,set:mt}))):f.ref(e)}function yt(s,e){gt()&&f.onBeforeUnmount(s,e)}const _t=be?window:void 0,wt=be?window.document:void 0;function St(s){var e;const t=Q(s);return(e=t?.$el)!=null?e:t}function Et(){const s=f.ref(!1),e=f.getCurrentInstance();return e&&f.onMounted(()=>{s.value=!0},e),s}function jt(s){const e=Et();return f.computed(()=>(e.value,!!s()))}function bt(s,e,t={}){const{window:n=_t,...r}=t;let o;const a=jt(()=>n&&"MutationObserver"in n),i=()=>{o&&(o.disconnect(),o=void 0)},l=f.computed(()=>{const p=Q(s),v=(Array.isArray(p)?p:[p]).map(St).filter(ht);return new Set(v)}),c=f.watch(()=>l.value,p=>{i(),a.value&&p.size&&(o=new MutationObserver(e),p.forEach(v=>o.observe(v,r)))},{immediate:!0,flush:"post"}),m=()=>o?.takeRecords(),d=()=>{c(),i()};return ft(d),{isSupported:a,stop:d,takeRecords:m}}function $t(s=null,e={}){var t,n,r;const{document:o=wt,restoreOnUnmount:a=d=>d}=e,i=(t=o?.title)!=null?t:"",l=vt((n=s??o?.title)!=null?n:null),c=s&&typeof s=="function";function m(d){if(!("titleTemplate"in e))return d;const p=e.titleTemplate||"%s";return typeof p=="function"?p(d):Q(p).replace(/%s/g,d)}return f.watch(l,(d,p)=>{d!==p&&o&&(o.title=m(typeof d=="string"?d:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!c&&bt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==l.value&&(l.value=m(o.title))},{childList:!0}),yt(()=>{if(a){const d=a(i,l.value||"");d!=null&&o&&(o.title=d)}}),l}const ne=f.defineComponent({name:"VtjPageContainer",async setup(){const s=Z(),e=se.useRoute(),t=e.params.id,n=t?s.getPage(t):s.getHomepage(),r=n?await s.getRenderComponent(n.id):null;return n&&(Object.assign(e.meta,n.meta||{}),$t(n.title||"VTJ")),{provider:s,component:r,file:n,query:e.query,meta:n?.meta}},render(){const{component:s,query:e}=this;return s?f.h(s,e):f.h("div","页面不存在")}}),Pt={"data-l-h6o7ki7":"",class:"vtj-startup__wrapper"},Ct={"data-l-h6o7ki7":"",class:"vtj-startup"},Rt={"data-l-h6o7ki7":"",class:"vtj-startup__name"},xt={"data-l-h6o7ki7":""},kt={"data-l-h6o7ki7":"",class:"vtj-startup__tagline"},At={"data-l-h6o7ki7":"",class:"vtj-startup__actions"},$e=f.defineComponent({__name:"Startup",props:{name:{default:"VTJ.PRO"},tagline:{default:"基于 Vue3 + TypeScript 快速打造高生产力的低代码研发平台"},actionText:{default:"开始设计"}},setup(s){((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=s,n=()=>{if(typeof window<"u"){let o=(window.__VTJ_LINK__||{}).href||window.location.pathname+"__vtj__/#/";window.location.href=o}};return(r,o)=>(p.openBlock(),p.createElementBlock("div",$t,[p.createElementVNode("div",Ct,[p.createElementVNode("h1",Rt,[p.createElementVNode("span",xt,p.toDisplayString(t.name),1)]),p.createElementVNode("div",kt,p.toDisplayString(t.tagline),1),p.createElementVNode("div",At,[p.createElementVNode("button",{"data-l-h6o7ki7":"",onClick:n},p.toDisplayString(t.actionText),1)])])]))}}),Ft=p.defineComponent({name:"VtjStartupContainer",render(){return p.h(Pe)}}),X=Symbol("Provider");var $e=(s=>(s.Production="production",s.Development="development",s))($e||{});class Ce extends b.Base{constructor(e){super(),this.options=e;const{service:t,mode:n=y.Raw,dependencies:r,materials:o,project:a,adapter:i={},globals:u={},modules:c={},router:m=null,materialPath:f="./",nodeEnv:d="development"}=e;this.mode=n,this.modules=c,this.service=t,this.router=m,this.materialPath=f,this.nodeEnv=d,r&&(this.dependencies=r),o&&(this.materials=o),Object.assign(this.globals,u),Object.assign(this.adapter,i);const{access:g,request:h}=this.adapter;g&&g.connect({mode:n,router:m,request:h}),a&&a.id&&n!==y.Design&&this.load(a)}mode;globals={};modules={};adapter={request:Je,jsonp:l.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};async load(e){if(!e.id)return;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:n=[],meta:r=[]}=this.project,o=window;o.CKEDITOR_VERSION=void 0,this.nodeEnv!=="production"?await this.loadAssets(o):await this.loadDependencies(o),this.apis=ve(n,r,this.adapter),K(),this.project.config?.mock&&ye(n),this.initRouter(),this.triggerReady()}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[n,r]of t)e[n]||(e[n]=await r())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:n,library:r,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:u,libraryMap:c,materials:m,materialExports:f,materialMapLibrary:d}=ce(t,a,i==="development");for(const h of u){const v=n[h],E=e[h];if(E)r[h]=E;else if(v)e[h]=r[h]=await v();else{const _=c[h]||[];for(const w of _)N(w)&&await ue(h,l.url.append(w,{v:C})),U(w)&&await l.loadScript(l.url.append(w,{v:C}));r[h]=e[h]}}for(const h of m)await l.loadScript(l.url.append(h,{v:C}));const g=this.materials||{};for(const h of f){const v=e[d[h]],E=b.BUILT_IN_COMPONENTS[h];if(E)v&&E.forEach(_=>{o[_]=v[_]});else{const _=g[h]?(await g[h]()).default:e[h];_&&v&&(_.components||[]).forEach(w=>{o[w.name]=le(w,v)})}}}initRouter(){const{router:e,project:t,options:n}=this;if(!e)return;const{routeParentName:r,pageRouteName:o="page",routeMeta:a}=n,i=r?"":"/",u={path:`${i}${o}/:id`,name:R,component:ne},c={path:i,name:A,component:t?.homepage?ne:Ft,meta:a};e.hasRoute(R)&&e.removeRoute(R),e.hasRoute(A)&&e.removeRoute(A),r?(e.addRoute(r,u),e.addRoute(r,c)):(e.addRoute(u),e.addRoute(c))}install(e){const t=e.config.globalProperties.installed||{};for(const[n,r]of Object.entries(this.library))!t[n]&&fe(r)&&(e.use(r),t[n]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(X,this),e.config.globalProperties.installed=t,this.mode===y.Design&&(e.config.errorHandler=(n,r,o)=>{const a=r?.$options.name,i=typeof n=="string"?n:n?.message||n?.msg||"未知错误",u=`[ ${a} ] ${i} ${o}`;console.error("[VTJ Error]:",{err:n,instance:r,info:o},n?.stack),F.ElNotification.error({title:"未处理的异常:请在控制台查看详情",message:u})})}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(n=>n.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},n=(r,o=[])=>{for(const a of o){if(a.id===r)return a;if(a.children&&a.children.length){const i=n(r,a.children);if(i)return i}}};return n(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).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(n=>n.data).catch(()=>null))}createDslRenderer(e,t={}){const{library:n,components:r,mode:o,apis:a}=this,i={mode:o,Vue:n.Vue,components:r,libs:n,apis:a,window,...t},u=D({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return I({...i,dsl:e,loader:u})}async getRenderComponent(e,t){const n=this.getFile(e);if(!n)return l.logger.warn(`Can not find file: ${e}`),null;t&&t(n);const r=`.vtj/vue/${e}.vue`,o=this.modules[r];if(o)return(await o())?.default;const a=await this.getDsl(n.id);return a?this.createDslRenderer(a).renderer:(l.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return p.defineAsyncComponent(async()=>{const n=await this.getDslByUrl(e);return n?(n.name=t||n.name,this.createDslRenderer(n).renderer):null})}definePluginComponent(e){return p.defineAsyncComponent(async()=>await G(e,window))}}function Ot(s){const e=new Ce(s);return{provider:e,onReady:n=>e.ready(n)}}function Z(s={}){const e=p.inject(X);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:n}=s;t&&n&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==n&&F.ElNotification.warning({title:r?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const ee=new l.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:s=>s.data?.code===0,showError:s=>{F.ElNotification.error({message:s||"未知错误"})}}}),Mt=(s="/__vtj__/api/:type.json")=>(e,t)=>ee.send({url:s,method:"post",params:{type:e},data:{type:e,data:t}}),Tt=(s="/__vtj__/api/uploader.json")=>async(e,t)=>await ee.send({url:s,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);class B{api;pluginCaches={};uploader;constructor(){this.api=Mt(),this.uploader=Tt()}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,n=t.filter(o=>ie(o))[0];if(!n)return null;const r=this.pluginCaches[n];return r||(this.pluginCaches[n]=ee.send({url:n,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}}const S=new l.Storage({type:"local",expired:0,prefix:"__VTJ_"});class It extends B{init(e){const t=new b.ProjectModel(e),n=S.get(`project_${t.id}`),r=Object.assign(t.toDsl(),n||{});return S.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new b.ProjectModel(e);return S.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return S.save(`materials_${e.id}`,l.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return S.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=S.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return S.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return S.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=S.get(`history_${e}`);if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),S.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=S.get(`history_${e}`),n=new b.HistoryModel(t||{id:e});return Promise.resolve(n.toDsl())}getHistoryItem(e,t){const n=S.get(`history_${e}_${t}`);return Promise.resolve(n)}saveHistoryItem(e,t){return S.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(n=>{S.remove(`history_${e}_${n}`)}),Promise.resolve(!0)}}class Re extends B{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new b.ProjectModel(e),n=this.projects[t.id]||{},r=Object.assign(t.toDsl(),n);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new b.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=l.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],n=new b.HistoryModel(t||{id:e});return Promise.resolve(n)}getHistoryItem(e,t){const n=`${e}_${t}`,r=this.historyItems[n]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const n=`${e}_${t.id}`;return this.historyItems[n]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(n=>{const r=`${e}_${n}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let T=null;function Dt(){return T||(T=new Re,T)}class Ht extends B{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:l.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 xe(s,e=[]){return e.map(t=>{const{id:n,title:r,icon:o,children:a,hidden:i}=t;return{id:n,title:r,icon:o,hidden:i,url:`${s}/${n}`,children:a&&a.length?xe(s,a):void 0}})}function ke(s,e){if(!e)return s;let t=[];for(const n of s)if(n.children&&n.children.length){const r=ke(n.children,e);r.length&&(n.children=r,t.push(n))}else e.can(n.id.toString())&&t.push(n);return t}function Nt(s){const{menuBasePath:e="/page"}=s||{},t=Z(),n=se.useRoute(),r=we(),o=p.ref(!1),a=p.ref(!1),i=t.project;p.watchEffect(()=>{const{name:m,params:f,meta:d}=n;if(m===R){const g=t.getPage(f.id);o.value=!g?.mask,a.value=!!g?.pure}else if(m===A){const g=t.getHomepage();o.value=!g?.mask,a.value=!!g?.pure}else o.value=!d.mask,a.value=!!d.pure});const u=xe(e,i?.pages),c=i?.config;return{disabled:o,logo:c?.logo,themeSwitchable:c?.themeSwitchable,title:c?.title||i?.description||i?.name||"VTJ App",menus:ke(u,r),pure:a}}exports.ACCESS_KEY=W;exports.Access=Ve;exports.BUILT_IN_DIRECTIVES=re;exports.BaseService=B;exports.CONTEXT_HOST=J;exports.Context=Se;exports.ContextMode=y;exports.DATA_TYPES=oe;exports.HOMEPAGE_ROUTE_NAME=A;exports.JSCodeToString=Le;exports.LIFE_CYCLES_LIST=Ne;exports.LocalService=Ht;exports.MemoryService=Re;exports.NodeEnv=$e;exports.PAGE_ROUTE_NAME=R;exports.Provider=Ce;exports.Startup=Pe;exports.StorageService=It;exports.VTJ_RENDERER_VERSION=C;exports.adoptedStyleSheets=z;exports.createAssetScripts=Ue;exports.createAssetsCss=Be;exports.createDataSources=Ee;exports.createLoader=D;exports.createMemoryService=Dt;exports.createMetaApi=ge;exports.createProvider=Ot;exports.createRenderer=I;exports.createSchemaApi=me;exports.createSchemaApis=ve;exports.defaultLoader=je;exports.fillBasePath=k;exports.getModifiers=Y;exports.getPlugin=G;exports.getRawComponent=le;exports.isCSSUrl=N;exports.isJSCode=he;exports.isJSExpression=j;exports.isJSFunction=M;exports.isJSON=ie;exports.isJSUrl=U;exports.isVuePlugin=fe;exports.loadCss=ue;exports.loadCssUrl=de;exports.loadScriptUrl=pe;exports.mockApi=_e;exports.mockApis=ye;exports.mockCleanup=K;exports.nodeRender=O;exports.parseDeps=ce;exports.parseExpression=x;exports.parseFunction=q;exports.providerKey=X;exports.removeProdFlag=ae;exports.toString=V;exports.useAccess=we;exports.useMask=Nt;exports.useProvider=Z;
75
+ }`);const t=s,n=()=>{if(typeof window<"u"){let o=(window.__VTJ_LINK__||{}).href||window.location.pathname+"__vtj__/#/";window.location.href=o}};return(r,o)=>(f.openBlock(),f.createElementBlock("div",Pt,[f.createElementVNode("div",Ct,[f.createElementVNode("h1",Rt,[f.createElementVNode("span",xt,f.toDisplayString(t.name),1)]),f.createElementVNode("div",kt,f.toDisplayString(t.tagline),1),f.createElementVNode("div",At,[f.createElementVNode("button",{"data-l-h6o7ki7":"",onClick:n},f.toDisplayString(t.actionText),1)])])]))}}),Ft=f.defineComponent({name:"VtjStartupContainer",render(){return f.h($e)}}),X=Symbol("Provider");var Pe=(s=>(s.Production="production",s.Development="development",s))(Pe||{});class Ce extends b.Base{constructor(e){super(),this.options=e;const{service:t,mode:n=y.Raw,dependencies:r,materials:o,project:a,adapter:i={},globals:l={},modules:c={},router:m=null,materialPath:d="./",nodeEnv:p="development"}=e;this.mode=n,this.modules=c,this.service=t,this.router=m,this.materialPath=d,this.nodeEnv=p,r&&(this.dependencies=r),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i);const{access:v,request:h}=this.adapter;v&&v.connect({mode:n,router:m,request:h}),a&&a.id&&n!==y.Design&&this.load(a)}mode;globals={};modules={};adapter={request:Je,jsonp:u.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};async load(e){if(!e.id)return;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:n=[],meta:r=[]}=this.project,o=window;o.CKEDITOR_VERSION=void 0,this.nodeEnv!=="production"?await this.loadAssets(o):await this.loadDependencies(o),this.apis=ve(n,r,this.adapter),K(),this.project.config?.mock&&ye(n),this.initRouter(),this.triggerReady()}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[n,r]of t)e[n]||(e[n]=await r())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:n,library:r,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:l,libraryMap:c,materials:m,materialExports:d,materialMapLibrary:p}=ce(t,a,i==="development");for(const h of l){const g=n[h],E=e[h];if(E)r[h]=E;else if(g)e[h]=r[h]=await g();else{const _=c[h]||[];for(const w of _)N(w)&&await ue(h,u.url.append(w,{v:C})),U(w)&&await u.loadScript(u.url.append(w,{v:C}));r[h]=e[h]}}for(const h of m)await u.loadScript(u.url.append(h,{v:C}));const v=this.materials||{};for(const h of d){const g=e[p[h]],E=b.BUILT_IN_COMPONENTS[h];if(E)g&&E.forEach(_=>{o[_]=g[_]});else{const _=v[h]?(await v[h]()).default:e[h];_&&g&&(_.components||[]).forEach(w=>{o[w.name]=le(w,g)})}}}initRouter(){const{router:e,project:t,options:n}=this;if(!e)return;const{routeAppendTo:r,pageRouteName:o="page",routeMeta:a}=n,i=r?"":"/",l={path:`${i}${o}/:id`,name:R,component:ne},c={path:i,name:A,component:t?.homepage?ne:Ft,meta:a};e.hasRoute(R)&&e.removeRoute(R),e.hasRoute(A)&&e.removeRoute(A),r?(e.addRoute(r,l),e.addRoute(r,c)):(e.addRoute(l),e.addRoute(c))}install(e){const t=e.config.globalProperties.installed||{};for(const[n,r]of Object.entries(this.library))!t[n]&&fe(r)&&(e.use(r),t[n]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(X,this),e.config.globalProperties.installed=t,this.mode===y.Design&&(e.config.errorHandler=(n,r,o)=>{const a=r?.$options.name,i=typeof n=="string"?n:n?.message||n?.msg||"未知错误",l=`[ ${a} ] ${i} ${o}`;console.error("[VTJ Error]:",{err:n,instance:r,info:o},n?.stack),F.ElNotification.error({title:"未处理的异常:请在控制台查看详情",message:l})})}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(n=>n.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},n=(r,o=[])=>{for(const a of o){if(a.id===r)return a;if(a.children&&a.children.length){const i=n(r,a.children);if(i)return i}}};return n(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).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(n=>n.data).catch(()=>null))}createDslRenderer(e,t={}){const{library:n,components:r,mode:o,apis:a}=this,i={mode:o,Vue:n.Vue,components:r,libs:n,apis:a,window,...t},l=D({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return I({...i,dsl:e,loader:l})}async getRenderComponent(e,t){const n=this.getFile(e);if(!n)return u.logger.warn(`Can not find file: ${e}`),null;t&&t(n);const r=`.vtj/vue/${e}.vue`,o=this.modules[r];if(o)return(await o())?.default;const a=await this.getDsl(n.id);return a?this.createDslRenderer(a).renderer:(u.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return f.defineAsyncComponent(async()=>{const n=await this.getDslByUrl(e);return n?(n.name=t||n.name,this.createDslRenderer(n).renderer):null})}definePluginComponent(e){return f.defineAsyncComponent(async()=>await G(e,window))}}function Mt(s){const e=new Ce(s);return{provider:e,onReady:n=>e.ready(n)}}function Z(s={}){const e=f.inject(X);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:n}=s;t&&n&&(async()=>{const r=await e.getDsl(t);r?.__VERSION__!==n&&F.ElNotification.warning({title:r?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const ee=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:s=>s.data?.code===0,showError:s=>{F.ElNotification.error({message:s||"未知错误"})}}}),Ot=(s="/__vtj__/api/:type.json")=>(e,t)=>ee.send({url:s,method:"post",params:{type:e},data:{type:e,data:t}}),Tt=(s="/__vtj__/api/uploader.json")=>async(e,t)=>await ee.send({url:s,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);class B{api;pluginCaches={};uploader;constructor(){this.api=Ot(),this.uploader=Tt()}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,n=t.filter(o=>ie(o))[0];if(!n)return null;const r=this.pluginCaches[n];return r||(this.pluginCaches[n]=ee.send({url:n,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}}const S=new u.Storage({type:"local",expired:0,prefix:"__VTJ_"});class It extends B{init(e){const t=new b.ProjectModel(e),n=S.get(`project_${t.id}`),r=Object.assign(t.toDsl(),n||{});return S.save(`project_${t.id}`,r),Promise.resolve(r)}saveProject(e){const t=new b.ProjectModel(e);return S.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return S.save(`materials_${e.id}`,u.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return S.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=S.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return S.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return S.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=S.get(`history_${e}`);if(t){const r=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,r),S.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=S.get(`history_${e}`),n=new b.HistoryModel(t||{id:e});return Promise.resolve(n.toDsl())}getHistoryItem(e,t){const n=S.get(`history_${e}_${t}`);return Promise.resolve(n)}saveHistoryItem(e,t){return S.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(n=>{S.remove(`history_${e}_${n}`)}),Promise.resolve(!0)}}class Re extends B{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new b.ProjectModel(e),n=this.projects[t.id]||{},r=Object.assign(t.toDsl(),n);return this.projects[r.id]=r,Promise.resolve(r)}saveProject(e){const t=new b.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],n=new b.HistoryModel(t||{id:e});return Promise.resolve(n)}getHistoryItem(e,t){const n=`${e}_${t}`,r=this.historyItems[n]||{};return Promise.resolve(r)}saveHistoryItem(e,t){const n=`${e}_${t.id}`;return this.historyItems[n]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(n=>{const r=`${e}_${n}`;delete this.historyItems[r]}),Promise.resolve(!0)}}let T=null;function Dt(){return T||(T=new Re,T)}class Ht extends B{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 xe(s,e,t=[]){return t.map(n=>{const{id:r,title:o,icon:a,children:i,hidden:l}=n;return{id:r,title:o,icon:a,hidden:l,url:`${s}/${e}/${r}`,children:i&&i.length?xe(s,e,i):void 0}})}function ke(s,e){if(!e)return s;let t=[];for(const n of s)if(n.children&&n.children.length){const r=ke(n.children,e);r.length&&(n.children=r,t.push(n))}else e.can(n.id.toString())&&t.push(n);return t}function Nt(s){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:n=!1}=s||{},r=Z(),o=se.useRoute(),a=we(),i=f.ref(!1),l=f.ref(!1),c=r.project;f.watchEffect(()=>{const{name:p,params:v,meta:h}=o;if(p===R){const g=r.getPage(v.id);i.value=!g?.mask,l.value=!!g?.pure}else if(p===A){const g=r.getHomepage();i.value=!g?.mask,l.value=!!g?.pure}else i.value=!h.mask,l.value=!!h.pure});const m=xe(e,t,c?.pages),d=c?.config;return{disabled:i,logo:d?.logo,themeSwitchable:d?.themeSwitchable,title:d?.title||c?.description||c?.name||"VTJ App",menus:n?m:ke(m,a),pure:l}}exports.ACCESS_KEY=W;exports.Access=Ve;exports.BUILT_IN_DIRECTIVES=re;exports.BaseService=B;exports.CONTEXT_HOST=J;exports.Context=Se;exports.ContextMode=y;exports.DATA_TYPES=oe;exports.HOMEPAGE_ROUTE_NAME=A;exports.JSCodeToString=Le;exports.LIFE_CYCLES_LIST=Ne;exports.LocalService=Ht;exports.MemoryService=Re;exports.NodeEnv=Pe;exports.PAGE_ROUTE_NAME=R;exports.Provider=Ce;exports.Startup=$e;exports.StorageService=It;exports.VTJ_RENDERER_VERSION=C;exports.adoptedStyleSheets=z;exports.createAssetScripts=Ue;exports.createAssetsCss=Be;exports.createDataSources=Ee;exports.createLoader=D;exports.createMemoryService=Dt;exports.createMetaApi=ge;exports.createProvider=Mt;exports.createRenderer=I;exports.createSchemaApi=me;exports.createSchemaApis=ve;exports.defaultLoader=je;exports.fillBasePath=k;exports.getModifiers=Y;exports.getPlugin=G;exports.getRawComponent=le;exports.isCSSUrl=N;exports.isJSCode=he;exports.isJSExpression=j;exports.isJSFunction=O;exports.isJSON=ie;exports.isJSUrl=U;exports.isVuePlugin=fe;exports.loadCss=ue;exports.loadCssUrl=de;exports.loadScriptUrl=pe;exports.mockApi=_e;exports.mockApis=ye;exports.mockCleanup=K;exports.nodeRender=M;exports.parseDeps=ce;exports.parseExpression=x;exports.parseFunction=q;exports.providerKey=X;exports.removeProdFlag=ae;exports.toString=V;exports.useAccess=we;exports.useMask=Nt;exports.useProvider=Z;
package/dist/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
- import { Base as Re, BUILT_IN_COMPONENTS as xe, ProjectModel as O, HistoryModel as le } from "@vtj/core";
2
- import { isUrl as ke, url as R, dedupArray as Ce, isString as $, isFunction as V, logger as M, createRequest as Fe, merge as Ae, pathToRegexp as Ie, pathToRegexpMatch as Oe, formDataToJson as Me, storage as N, cookie as L, toArray as se, unRSA as ne, delay as ue, camelCase as j, upperFirst as Te, pick as De, jsonp as He, loadScript as re, Request as Be, Storage as Ue, mapToObject as G } from "@vtj/utils";
1
+ import { Base as Pe, BUILT_IN_COMPONENTS as xe, ProjectModel as O, HistoryModel as le } from "@vtj/core";
2
+ import { isUrl as ke, url as P, dedupArray as Ce, isString as $, isFunction as V, logger as M, createRequest as Fe, merge as Ae, pathToRegexp as Ie, pathToRegexpMatch as Oe, formDataToJson as Me, storage as U, cookie as L, toArray as se, unRSA as ne, delay as ue, camelCase as j, upperFirst as Te, pick as De, jsonp as He, loadScript as re, Request as Be, Storage as Ne, mapToObject as G } from "@vtj/utils";
3
3
  import * as H from "vue";
4
- import { inject as de, toRef as Ne, readonly as Le, customRef as qe, ref as T, onBeforeUnmount as Je, getCurrentScope as Ve, onScopeDispose as ze, unref as Ke, getCurrentInstance as pe, watch as fe, computed as he, onMounted as We, defineComponent as Y, h as z, openBlock as Ge, createElementBlock as Ye, createElementVNode as b, toDisplayString as q, defineAsyncComponent as oe, watchEffect as Qe } from "vue";
4
+ import { inject as de, toRef as Ue, readonly as Le, customRef as qe, ref as T, onBeforeUnmount as Je, getCurrentScope as Ve, onScopeDispose as ze, unref as Ke, getCurrentInstance as pe, watch as fe, computed as he, onMounted as We, defineComponent as Y, h as z, openBlock as Ge, createElementBlock as Ye, createElementVNode as b, toDisplayString as q, defineAsyncComponent as oe, watchEffect as Qe } from "vue";
5
5
  import { ElNotification as B, ElLoading as Xe } from "element-plus";
6
6
  import { useRoute as me } from "vue-router";
7
7
  /**!
8
8
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
9
9
  * @name @vtj/renderer
10
10
  * @author CHC chenhuachun1549@dingtalk.com
11
- * @version 0.9.0-alpha.17
11
+ * @version 0.9.0-alpha.19
12
12
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
13
13
  */
14
- const x = "0.9.0-alpha.17";
14
+ const x = "0.9.0-alpha.19";
15
15
  var _ = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(_ || {});
16
16
  const ie = [
17
17
  "$el",
@@ -62,24 +62,24 @@ function tt(n) {
62
62
  }
63
63
  function ws(n) {
64
64
  return n.map(
65
- (e) => `<script src="${R.append(e, { v: x })}"><\/script>`
65
+ (e) => `<script src="${P.append(e, { v: x })}"><\/script>`
66
66
  ).join("");
67
67
  }
68
68
  function Ss(n = []) {
69
69
  return n.map(
70
- (e) => `<link rel="stylesheet" href="${R.append(e, { v: x })}" />`
70
+ (e) => `<link rel="stylesheet" href="${P.append(e, { v: x })}" />`
71
71
  ).join("");
72
72
  }
73
73
  function st(n, e = !1) {
74
74
  return e && n.endsWith(".prod.js") ? n.replace(".prod.js", ".js") : n;
75
75
  }
76
76
  function nt(n, e, t = !1) {
77
- const s = n.filter((u) => !!u.enabled), r = [], o = [], a = [], i = [], l = {}, c = {}, f = [], d = {};
77
+ const s = n.filter((d) => !!d.enabled), r = [], o = [], a = [], i = [], l = {}, c = {}, f = [], u = {};
78
78
  return s.forEach(
79
- ({ urls: u, assetsUrl: h, library: p, assetsLibrary: m, localeLibrary: w }) => {
80
- u?.forEach((g) => {
79
+ ({ urls: d, assetsUrl: m, library: p, assetsLibrary: h, localeLibrary: w }) => {
80
+ d?.forEach((g) => {
81
81
  X(g) && r.push(st(g, t)), Q(g) && o.push(g);
82
- }), p && (i.push(p), l[p] = F(u || [], e), w && (c[p] = w)), h && a.push(h), m && f.push(m), p && m && (d[m] = p);
82
+ }), p && (i.push(p), l[p] = F(d || [], e), w && (c[p] = w)), m && a.push(m), h && f.push(h), p && h && (u[h] = p);
83
83
  }
84
84
  ), {
85
85
  scripts: F(r, e),
@@ -87,7 +87,7 @@ function nt(n, e, t = !1) {
87
87
  materials: F(a, e),
88
88
  libraryExports: i,
89
89
  materialExports: Ce(f),
90
- materialMapLibrary: d,
90
+ materialMapLibrary: u,
91
91
  libraryMap: l,
92
92
  libraryLocaleMap: c
93
93
  };
@@ -171,11 +171,11 @@ function ae(n, e, t = !1, s = !1) {
171
171
  function S(n) {
172
172
  return n && n.type === "JSExpression";
173
173
  }
174
- function U(n) {
174
+ function N(n) {
175
175
  return typeof n == "object" && n && n.type === "JSFunction";
176
176
  }
177
177
  function lt(n) {
178
- return S(n) || U(n);
178
+ return S(n) || N(n);
179
179
  }
180
180
  function $s(n) {
181
181
  return lt(n) ? n.value : JSON.stringify(n);
@@ -206,7 +206,7 @@ const ut = Fe({
206
206
  }
207
207
  }
208
208
  });
209
- let P;
209
+ let R;
210
210
  function dt(n, e) {
211
211
  const { jsonp: t, request: s } = e;
212
212
  if (n.method === "jsonp")
@@ -247,9 +247,9 @@ function ft(n = [], e = [], t) {
247
247
  return s;
248
248
  }
249
249
  async function ht(n = []) {
250
- P = await import("mockjs").then((e) => e.default || e), P && (P.setup({
250
+ R = await import("mockjs").then((e) => e.default || e), R && (R.setup({
251
251
  timeout: "50-500"
252
- }), ye(), n.forEach((e) => mt(P, e)));
252
+ }), ye(), n.forEach((e) => mt(R, e)));
253
253
  }
254
254
  function mt(n, e) {
255
255
  if (!e.mock) return;
@@ -257,13 +257,13 @@ function mt(n, e) {
257
257
  if (t && s) {
258
258
  const r = Ie(`${t}(.*)`), o = Oe(t, { decode: decodeURIComponent }), a = C(s, {}, !0);
259
259
  n.mock(r, (i) => {
260
- const l = R.parse(i.url) || {}, c = i.body instanceof FormData ? Me(i.body) : i.body, f = o(i.url)?.params;
260
+ const l = P.parse(i.url) || {}, c = i.body instanceof FormData ? Me(i.body) : i.body, f = o(i.url)?.params;
261
261
  return Object.assign(i, { data: c, params: l, query: f }), n.mock(a(i));
262
262
  });
263
263
  }
264
264
  }
265
265
  function ye() {
266
- P && (P._mocked = {});
266
+ R && (R._mocked = {});
267
267
  }
268
268
  const gt = {
269
269
  session: !1,
@@ -276,7 +276,7 @@ const gt = {
276
276
  unauthorizedCode: 401,
277
277
  unauthorizedMessage: "登录已经失效,请重新登录!",
278
278
  noPermissionMessage: "无权限访问该页面",
279
- keyPrefix: ""
279
+ appName: ""
280
280
  }, _e = Symbol("access");
281
281
  class js {
282
282
  options;
@@ -291,14 +291,14 @@ class js {
291
291
  }
292
292
  login(e) {
293
293
  const { storageKey: t, storagePrefix: s, session: r, authKey: o } = this.options;
294
- this.setData(e), this.data && (N.save(t, e, {
294
+ this.setData(e), this.data && (U.save(t, e, {
295
295
  type: "local",
296
296
  prefix: s
297
297
  }), r && L.set(o, this.data.token));
298
298
  }
299
299
  clear() {
300
300
  const { storageKey: e, storagePrefix: t, session: s, authKey: r } = this.options;
301
- this.data = null, N.remove(e, {
301
+ this.data = null, U.remove(e, {
302
302
  type: "local",
303
303
  prefix: t
304
304
  }), s && L.remove(r);
@@ -313,12 +313,12 @@ class js {
313
313
  return this.data?.token;
314
314
  }
315
315
  can(e) {
316
- const { keyPrefix: t } = this.options, { permissions: s = {} } = this.data || {};
317
- return typeof e == "function" ? e(s) : se(e).every((o) => s[o] || s[t + o]);
316
+ const { appName: t } = this.options, { permissions: s = {} } = this.data || {};
317
+ return typeof e == "function" ? e(s) : se(e).every((o) => s[o] || s[t + "." + o]);
318
318
  }
319
319
  some(e) {
320
- const { keyPrefix: t } = this.options, { permissions: s = {} } = this.data || {};
321
- return se(e).some((o) => s[o] || s[t + o]);
320
+ const { appName: t } = this.options, { permissions: s = {} } = this.data || {};
321
+ return se(e).some((o) => s[o] || s[t + "." + o]);
322
322
  }
323
323
  install(e) {
324
324
  e.config.globalProperties.$access || (e.config.globalProperties.$access = this), e.provide(_e, this);
@@ -357,7 +357,7 @@ class js {
357
357
  this.data = e;
358
358
  }
359
359
  loadData() {
360
- const { storageKey: e, storagePrefix: t } = this.options, s = N.get(e, {
360
+ const { storageKey: e, storagePrefix: t } = this.options, s = U.get(e, {
361
361
  type: "local",
362
362
  prefix: t
363
363
  });
@@ -541,22 +541,22 @@ function K(n) {
541
541
  props: {
542
542
  ...wt(i.value.props ?? [], c)
543
543
  },
544
- setup(d) {
545
- c.$props = d, c.props = d, i.value.id && ve(
544
+ setup(u) {
545
+ c.$props = u, c.props = u, i.value.id && ve(
546
546
  n.window || window,
547
547
  i.value.id,
548
548
  i.value.css || ""
549
549
  ), c.state = St(e, i.value.state ?? {}, c);
550
- const u = $t(e, i.value.computed ?? {}, c), h = jt(i.value.methods ?? {}, c), p = bt(e, i.value.inject, c), m = Et(
550
+ const d = $t(e, i.value.computed ?? {}, c), m = jt(i.value.methods ?? {}, c), p = bt(e, i.value.inject, c), h = Et(
551
551
  i.value.dataSources || {},
552
552
  c
553
553
  ), w = {
554
554
  ...p,
555
- ...u,
556
- ...h,
557
- ...m
555
+ ...d,
556
+ ...m,
557
+ ...h
558
558
  };
559
- return c.setup(w, e), Pt(e, i.value.watch ?? [], c), {
559
+ return c.setup(w, e), Rt(e, i.value.watch ?? [], c), {
560
560
  vtj: c
561
561
  };
562
562
  },
@@ -564,10 +564,10 @@ function K(n) {
564
564
  expose: ["vtj"],
565
565
  render() {
566
566
  if (!i.value.nodes) return null;
567
- const d = i.value.nodes || [];
568
- return d.length === 1 ? D(d[0], c, e, a) : d.map((u) => D(u, c, e, a));
567
+ const u = i.value.nodes || [];
568
+ return u.length === 1 ? D(u[0], c, e, a) : u.map((d) => D(d, c, e, a));
569
569
  },
570
- ...Rt(i.value.lifeCycles ?? {}, c)
570
+ ...Pt(i.value.lifeCycles ?? {}, c)
571
571
  });
572
572
  return {
573
573
  renderer: e.markRaw(f),
@@ -600,7 +600,7 @@ function St(n, e, t) {
600
600
  Object.keys(e || {}).reduce(
601
601
  (s, r) => {
602
602
  let o = e[r];
603
- return S(o) ? o = t.__parseExpression(o) : U(o) && (o = t.__parseFunction(o)), s[r] = o, s;
603
+ return S(o) ? o = t.__parseExpression(o) : N(o) && (o = t.__parseFunction(o)), s[r] = o, s;
604
604
  },
605
605
  {}
606
606
  )
@@ -632,7 +632,7 @@ function bt(n, e = [], t) {
632
632
  function Et(n, e) {
633
633
  return Object.keys(n).reduce(
634
634
  (t, s) => {
635
- const r = n[s], o = e.$apis[r.ref], a = U(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
635
+ const r = n[s], o = e.$apis[r.ref], a = N(r.transform) ? r.transform.value ? e.__parseFunction(r.transform) : void 0 : r.transform;
636
636
  return t[s] = async (...i) => {
637
637
  const l = await o.apply(e, i);
638
638
  return a ? a(l) : l;
@@ -641,7 +641,7 @@ function Et(n, e) {
641
641
  {}
642
642
  );
643
643
  }
644
- function Pt(n, e = [], t) {
644
+ function Rt(n, e = [], t) {
645
645
  e.forEach((s) => {
646
646
  n.watch(
647
647
  t.__parseExpression(s.source),
@@ -653,7 +653,7 @@ function Pt(n, e = [], t) {
653
653
  );
654
654
  });
655
655
  }
656
- function Rt(n, e) {
656
+ function Pt(n, e) {
657
657
  return Object.entries(n ?? {}).reduce(
658
658
  (t, [s, r]) => (t[s] = e.__parseFunction(r), t),
659
659
  {}
@@ -701,32 +701,32 @@ function D(n, e, t = H, s = xt) {
701
701
  const { id: r = null, directives: o = [] } = n, { vIf: a, vFor: i, vShow: l, vModels: c, vBind: f } = kt(o);
702
702
  if (a && !Ct(a, e))
703
703
  return null;
704
- const d = (u) => {
705
- const h = u.$components, p = (() => {
704
+ const u = (d) => {
705
+ const m = d.$components, p = (() => {
706
706
  if (n.name === "component")
707
- return Ft(u, n.props?.is);
707
+ return Ft(d, n.props?.is);
708
708
  if (n.name === "slot") return n.name;
709
709
  const v = s(n.name, n.from, t);
710
- return $(v) ? h[v] ?? v : v;
711
- })(), m = At(r, n.props ?? {}, u), w = It(t, n.events ?? {}, u);
710
+ return $(v) ? m[v] ?? v : v;
711
+ })(), h = At(r, n.props ?? {}, d), w = It(t, n.events ?? {}, d);
712
712
  if (n.name === "slot")
713
- return Ot(t, n, m, u, s);
714
- f && Object.assign(m, u.__parseExpression(f.value)), l && (m.style = Object.assign(
715
- m.style ?? {},
716
- Tt(l, u)
713
+ return Ot(t, n, h, d, s);
714
+ f && Object.assign(h, d.__parseExpression(f.value)), l && (h.style = Object.assign(
715
+ h.style ?? {},
716
+ Tt(l, d)
717
717
  )), c.forEach((v) => {
718
- Object.assign(m, Dt(t, v, u));
718
+ Object.assign(h, Dt(t, v, d));
719
719
  });
720
720
  const g = Ht(
721
721
  t,
722
722
  n.children ?? [],
723
- u,
723
+ d,
724
724
  s,
725
725
  n
726
726
  );
727
- return t.createVNode(p, { ...m, ...w }, g);
727
+ return t.createVNode(p, { ...h, ...w }, g);
728
728
  };
729
- return i ? Nt(i, d, e) : d(e);
729
+ return i ? Ut(i, u, e) : u(e);
730
730
  }
731
731
  function kt(n = []) {
732
732
  const e = n.find((i) => j(i.name) === "vIf"), t = n.find((i) => j(i.name) === "vFor"), s = n.find((i) => j(i.name) === "vShow"), r = n.find((i) => j(i.name) === "vBind"), o = n.filter((i) => j(i.name) === "vModel"), a = n.filter(
@@ -751,7 +751,7 @@ function At(n, e, t) {
751
751
  const s = Object.keys(e || {}).reduce(
752
752
  (r, o) => {
753
753
  let a = e[o];
754
- return S(a) ? a = t.__parseExpression(a) : U(a) && (a = t.__parseFunction(a)), r[o] = a, r;
754
+ return S(a) ? a = t.__parseExpression(a) : N(a) && (a = t.__parseFunction(a)), r[o] = a, r;
755
755
  },
756
756
  {}
757
757
  );
@@ -765,8 +765,8 @@ function It(n, e, t) {
765
765
  };
766
766
  return Object.keys(e || {}).reduce(
767
767
  (o, a) => {
768
- const i = e[a], l = Se(i.modifiers), c = l.find((u) => s.includes(u)), f = "on" + Te(a) + (c && r[c] || ""), d = t.__parseFunction(i.handler);
769
- return d && (o[f] = n.withModifiers(d, l)), o;
768
+ const i = e[a], l = Se(i.modifiers), c = l.find((d) => s.includes(d)), f = "on" + Te(a) + (c && r[c] || ""), u = t.__parseFunction(i.handler);
769
+ return u && (o[f] = n.withModifiers(u, l)), o;
770
770
  },
771
771
  {}
772
772
  );
@@ -819,10 +819,10 @@ function Ht(n, e, t, s, r) {
819
819
  const o = Bt(e), a = (i) => !i || !r ? {} : r?.id && Object.keys(i).length ? {
820
820
  [`scope_${r.id}`]: i
821
821
  } : {};
822
- return Object.entries(o).reduce((i, [l, { nodes: c, params: f }]) => (i[l] = (d) => {
823
- const u = f.length ? De(d ?? {}, f) : a(d);
822
+ return Object.entries(o).reduce((i, [l, { nodes: c, params: f }]) => (i[l] = (u) => {
823
+ const d = f.length ? De(u ?? {}, f) : a(u);
824
824
  return c.map(
825
- (h) => D(h, t.__clone(u), n, s)
825
+ (m) => D(m, t.__clone(d), n, s)
826
826
  );
827
827
  }, i), {});
828
828
  }
@@ -836,7 +836,7 @@ function Bt(n) {
836
836
  }
837
837
  };
838
838
  for (const t of n) {
839
- const s = Ut(t.slot), r = s.name;
839
+ const s = Nt(t.slot), r = s.name;
840
840
  e[r] ? (e[r].nodes.push(t), e[r].params = e[r].params.concat(s.params)) : e[r] = {
841
841
  nodes: [t],
842
842
  params: s.params
@@ -844,10 +844,10 @@ function Bt(n) {
844
844
  }
845
845
  return e;
846
846
  }
847
- function Ut(n = "default") {
847
+ function Nt(n = "default") {
848
848
  return $(n) ? { name: n, params: [] } : { params: [], ...n };
849
849
  }
850
- function Nt(n, e, t) {
850
+ function Ut(n, e, t) {
851
851
  const { value: s, iterator: r } = n, { item: o = "item", index: a = "index" } = r || {};
852
852
  let i = t.__parseExpression(s) || [];
853
853
  return Number.isInteger(i) && (i = new Array(i).fill(!0).map((l, c) => c + 1)), Array.isArray(i) ? i.map((l, c) => e(t.__clone({ [o]: l, [a]: c }))) : (console.warn("[vForRender]:", `${s?.value} is not a Arrary`), []);
@@ -867,7 +867,7 @@ function Vt(n) {
867
867
  }
868
868
  function zt(...n) {
869
869
  if (n.length !== 1)
870
- return Ne(...n);
870
+ return Ue(...n);
871
871
  const e = n[0];
872
872
  return typeof e == "function" ? Le(qe(() => ({ get: e, set: Jt }))) : T(e);
873
873
  }
@@ -896,20 +896,20 @@ function Zt(n, e, t = {}) {
896
896
  const a = Xt(() => s && "MutationObserver" in s), i = () => {
897
897
  o && (o.disconnect(), o = void 0);
898
898
  }, l = he(() => {
899
- const u = Z(n), h = (Array.isArray(u) ? u : [u]).map(Yt).filter(qt);
900
- return new Set(h);
899
+ const d = Z(n), m = (Array.isArray(d) ? d : [d]).map(Yt).filter(qt);
900
+ return new Set(m);
901
901
  }), c = fe(
902
902
  () => l.value,
903
- (u) => {
904
- i(), a.value && u.size && (o = new MutationObserver(e), u.forEach((h) => o.observe(h, r)));
903
+ (d) => {
904
+ i(), a.value && d.size && (o = new MutationObserver(e), d.forEach((m) => o.observe(m, r)));
905
905
  },
906
906
  { immediate: !0, flush: "post" }
907
- ), f = () => o?.takeRecords(), d = () => {
907
+ ), f = () => o?.takeRecords(), u = () => {
908
908
  c(), i();
909
909
  };
910
- return Lt(d), {
910
+ return Lt(u), {
911
911
  isSupported: a,
912
- stop: d,
912
+ stop: u,
913
913
  takeRecords: f
914
914
  };
915
915
  }
@@ -917,18 +917,18 @@ function es(n = null, e = {}) {
917
917
  var t, s, r;
918
918
  const {
919
919
  document: o = Gt,
920
- restoreOnUnmount: a = (d) => d
920
+ restoreOnUnmount: a = (u) => u
921
921
  } = e, i = (t = o?.title) != null ? t : "", l = zt((s = n ?? o?.title) != null ? s : null), c = n && typeof n == "function";
922
- function f(d) {
922
+ function f(u) {
923
923
  if (!("titleTemplate" in e))
924
- return d;
925
- const u = e.titleTemplate || "%s";
926
- return typeof u == "function" ? u(d) : Z(u).replace(/%s/g, d);
924
+ return u;
925
+ const d = e.titleTemplate || "%s";
926
+ return typeof d == "function" ? d(u) : Z(d).replace(/%s/g, u);
927
927
  }
928
928
  return fe(
929
929
  l,
930
- (d, u) => {
931
- d !== u && o && (o.title = f(typeof d == "string" ? d : ""));
930
+ (u, d) => {
931
+ u !== d && o && (o.title = f(typeof u == "string" ? u : ""));
932
932
  },
933
933
  { immediate: !0 }
934
934
  ), e.observe && !e.titleTemplate && o && !c && Zt(
@@ -939,8 +939,8 @@ function es(n = null, e = {}) {
939
939
  { childList: !0 }
940
940
  ), Kt(() => {
941
941
  if (a) {
942
- const d = a(i, l.value || "");
943
- d != null && o && (o.title = d);
942
+ const u = a(i, l.value || "");
943
+ u != null && o && (o.title = u);
944
944
  }
945
945
  }), l;
946
946
  }
@@ -1080,7 +1080,7 @@ const ce = Y({
1080
1080
  }
1081
1081
  }), je = Symbol("Provider");
1082
1082
  var ls = /* @__PURE__ */ ((n) => (n.Production = "production", n.Development = "development", n))(ls || {});
1083
- class us extends Re {
1083
+ class us extends Pe {
1084
1084
  constructor(e) {
1085
1085
  super(), this.options = e;
1086
1086
  const {
@@ -1093,13 +1093,13 @@ class us extends Re {
1093
1093
  globals: l = {},
1094
1094
  modules: c = {},
1095
1095
  router: f = null,
1096
- materialPath: d = "./",
1097
- nodeEnv: u = "development"
1096
+ materialPath: u = "./",
1097
+ nodeEnv: d = "development"
1098
1098
  /* Development */
1099
1099
  } = e;
1100
- this.mode = s, this.modules = c, this.service = t, this.router = f, this.materialPath = d, this.nodeEnv = u, r && (this.dependencies = r), o && (this.materials = o), Object.assign(this.globals, l), Object.assign(this.adapter, i);
1101
- const { access: h, request: p } = this.adapter;
1102
- h && h.connect({ mode: s, router: f, request: p }), a && a.id && s !== _.Design && this.load(a);
1100
+ this.mode = s, this.modules = c, this.service = t, this.router = f, this.materialPath = u, this.nodeEnv = d, r && (this.dependencies = r), o && (this.materials = o), Object.assign(this.globals, l), Object.assign(this.adapter, i);
1101
+ const { access: m, request: p } = this.adapter;
1102
+ m && m.connect({ mode: s, router: f, request: p }), a && a.id && s !== _.Design && this.load(a);
1103
1103
  }
1104
1104
  mode;
1105
1105
  globals = {};
@@ -1134,8 +1134,8 @@ class us extends Re {
1134
1134
  libraryExports: l,
1135
1135
  libraryMap: c,
1136
1136
  materials: f,
1137
- materialExports: d,
1138
- materialMapLibrary: u
1137
+ materialExports: u,
1138
+ materialMapLibrary: d
1139
1139
  } = nt(
1140
1140
  t,
1141
1141
  a,
@@ -1143,31 +1143,31 @@ class us extends Re {
1143
1143
  /* Development */
1144
1144
  );
1145
1145
  for (const p of l) {
1146
- const m = s[p], w = e[p];
1146
+ const h = s[p], w = e[p];
1147
1147
  if (w)
1148
1148
  r[p] = w;
1149
- else if (m)
1150
- e[p] = r[p] = await m();
1149
+ else if (h)
1150
+ e[p] = r[p] = await h();
1151
1151
  else {
1152
1152
  const g = c[p] || [];
1153
1153
  for (const v of g)
1154
- Q(v) && await ot(p, R.append(v, { v: x })), X(v) && await re(R.append(v, { v: x }));
1154
+ Q(v) && await ot(p, P.append(v, { v: x })), X(v) && await re(P.append(v, { v: x }));
1155
1155
  r[p] = e[p];
1156
1156
  }
1157
1157
  }
1158
1158
  for (const p of f)
1159
- await re(R.append(p, { v: x }));
1160
- const h = this.materials || {};
1161
- for (const p of d) {
1162
- const m = e[u[p]], w = xe[p];
1159
+ await re(P.append(p, { v: x }));
1160
+ const m = this.materials || {};
1161
+ for (const p of u) {
1162
+ const h = e[d[p]], w = xe[p];
1163
1163
  if (w)
1164
- m && w.forEach((g) => {
1165
- o[g] = m[g];
1164
+ h && w.forEach((g) => {
1165
+ o[g] = h[g];
1166
1166
  });
1167
1167
  else {
1168
- const g = h[p] ? (await h[p]()).default : e[p];
1169
- g && m && (g.components || []).forEach((v) => {
1170
- o[v.name] = rt(v, m);
1168
+ const g = m[p] ? (await m[p]()).default : e[p];
1169
+ g && h && (g.components || []).forEach((v) => {
1170
+ o[v.name] = rt(v, h);
1171
1171
  });
1172
1172
  }
1173
1173
  }
@@ -1175,7 +1175,7 @@ class us extends Re {
1175
1175
  initRouter() {
1176
1176
  const { router: e, project: t, options: s } = this;
1177
1177
  if (!e) return;
1178
- const { routeParentName: r, pageRouteName: o = "page", routeMeta: a } = s, i = r ? "" : "/", l = {
1178
+ const { routeAppendTo: r, pageRouteName: o = "page", routeMeta: a } = s, i = r ? "" : "/", l = {
1179
1179
  path: `${i}${o}/:id`,
1180
1180
  name: k,
1181
1181
  component: ce
@@ -1431,7 +1431,7 @@ class te {
1431
1431
  }).then((o) => o.data).catch(() => null));
1432
1432
  }
1433
1433
  }
1434
- const y = new Ue({
1434
+ const y = new Ne({
1435
1435
  type: "local",
1436
1436
  expired: 0,
1437
1437
  prefix: "__VTJ_"
@@ -1544,10 +1544,10 @@ class fs extends te {
1544
1544
  }
1545
1545
  }
1546
1546
  let A = null;
1547
- function Ps() {
1547
+ function Rs() {
1548
1548
  return A || (A = new fs(), A);
1549
1549
  }
1550
- class Rs extends te {
1550
+ class Ps extends te {
1551
1551
  getFileCaches = {};
1552
1552
  async getExtension() {
1553
1553
  return await this.api("getExtension", {}).catch(() => {
@@ -1602,51 +1602,59 @@ class Rs extends te {
1602
1602
  );
1603
1603
  }
1604
1604
  }
1605
- function Ee(n, e = []) {
1606
- return e.map((t) => {
1607
- const { id: s, title: r, icon: o, children: a, hidden: i } = t;
1605
+ function Ee(n, e, t = []) {
1606
+ return t.map((s) => {
1607
+ const { id: r, title: o, icon: a, children: i, hidden: l } = s;
1608
1608
  return {
1609
- id: s,
1610
- title: r,
1611
- icon: o,
1612
- hidden: i,
1613
- url: `${n}/${s}`,
1614
- children: a && a.length ? Ee(n, a) : void 0
1609
+ id: r,
1610
+ title: o,
1611
+ icon: a,
1612
+ hidden: l,
1613
+ url: `${n}/${e}/${r}`,
1614
+ children: i && i.length ? Ee(n, e, i) : void 0
1615
1615
  };
1616
1616
  });
1617
1617
  }
1618
- function Pe(n, e) {
1618
+ function Re(n, e) {
1619
1619
  if (!e) return n;
1620
1620
  let t = [];
1621
1621
  for (const s of n)
1622
1622
  if (s.children && s.children.length) {
1623
- const r = Pe(s.children, e);
1623
+ const r = Re(s.children, e);
1624
1624
  r.length && (s.children = r, t.push(s));
1625
1625
  } else
1626
1626
  e.can(s.id.toString()) && t.push(s);
1627
1627
  return t;
1628
1628
  }
1629
1629
  function xs(n) {
1630
- const { menuBasePath: e = "/page" } = n || {}, t = be(), s = me(), r = vt(), o = T(!1), a = T(!1), i = t.project;
1630
+ const {
1631
+ menuPathPrefix: e = "",
1632
+ pageRouteName: t = "page",
1633
+ disableMenusFilter: s = !1
1634
+ } = n || {}, r = be(), o = me(), a = vt(), i = T(!1), l = T(!1), c = r.project;
1631
1635
  Qe(() => {
1632
- const { name: f, params: d, meta: u } = s;
1633
- if (f === k) {
1634
- const h = t.getPage(d.id);
1635
- o.value = !h?.mask, a.value = !!h?.pure;
1636
- } else if (f === I) {
1637
- const h = t.getHomepage();
1638
- o.value = !h?.mask, a.value = !!h?.pure;
1636
+ const { name: d, params: m, meta: p } = o;
1637
+ if (d === k) {
1638
+ const h = r.getPage(m.id);
1639
+ i.value = !h?.mask, l.value = !!h?.pure;
1640
+ } else if (d === I) {
1641
+ const h = r.getHomepage();
1642
+ i.value = !h?.mask, l.value = !!h?.pure;
1639
1643
  } else
1640
- o.value = !u.mask, a.value = !!u.pure;
1644
+ i.value = !p.mask, l.value = !!p.pure;
1641
1645
  });
1642
- const l = Ee(e, i?.pages), c = i?.config;
1646
+ const f = Ee(
1647
+ e,
1648
+ t,
1649
+ c?.pages
1650
+ ), u = c?.config;
1643
1651
  return {
1644
- disabled: o,
1645
- logo: c?.logo,
1646
- themeSwitchable: c?.themeSwitchable,
1647
- title: c?.title || i?.description || i?.name || "VTJ App",
1648
- menus: Pe(l, r),
1649
- pure: a
1652
+ disabled: i,
1653
+ logo: u?.logo,
1654
+ themeSwitchable: u?.themeSwitchable,
1655
+ title: u?.title || c?.description || c?.name || "VTJ App",
1656
+ menus: s ? f : Re(f, a),
1657
+ pure: l
1650
1658
  };
1651
1659
  }
1652
1660
  export {
@@ -1661,7 +1669,7 @@ export {
1661
1669
  I as HOMEPAGE_ROUTE_NAME,
1662
1670
  $s as JSCodeToString,
1663
1671
  _s as LIFE_CYCLES_LIST,
1664
- Rs as LocalService,
1672
+ Ps as LocalService,
1665
1673
  fs as MemoryService,
1666
1674
  ls as NodeEnv,
1667
1675
  k as PAGE_ROUTE_NAME,
@@ -1674,7 +1682,7 @@ export {
1674
1682
  Ss as createAssetsCss,
1675
1683
  Et as createDataSources,
1676
1684
  W as createLoader,
1677
- Ps as createMemoryService,
1685
+ Rs as createMemoryService,
1678
1686
  pt as createMetaApi,
1679
1687
  bs as createProvider,
1680
1688
  K as createRenderer,
@@ -1688,7 +1696,7 @@ export {
1688
1696
  Q as isCSSUrl,
1689
1697
  lt as isJSCode,
1690
1698
  S as isJSExpression,
1691
- U as isJSFunction,
1699
+ N as isJSFunction,
1692
1700
  tt as isJSON,
1693
1701
  X as isJSUrl,
1694
1702
  ct as isVuePlugin,
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.9.0-alpha.17",
4
+ "version": "0.9.0-alpha.19",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "mockjs": "~1.1.0",
8
- "@vtj/utils": "~0.9.0-alpha.17",
9
- "@vtj/core": "~0.9.0-alpha.17"
8
+ "@vtj/core": "~0.9.0-alpha.19",
9
+ "@vtj/utils": "~0.9.0-alpha.19"
10
10
  },
11
11
  "devDependencies": {
12
12
  "vue": "~3.5.5",
13
13
  "vue-router": "~4.4.0",
14
14
  "@vtj/cli": "~0.9.0-alpha.2",
15
- "@vtj/ui": "~0.9.0-alpha.17",
16
- "@vtj/icons": "~0.9.0-alpha.17"
15
+ "@vtj/ui": "~0.9.0-alpha.19",
16
+ "@vtj/icons": "~0.9.0-alpha.19"
17
17
  },
18
18
  "exports": {
19
19
  ".": {
@@ -1,7 +1,9 @@
1
1
  import { MenuDataItem } from '@vtj/ui';
2
2
  import { Ref } from 'vue';
3
3
  export interface UseMaskOptions {
4
- menuBasePath?: string;
4
+ pageRouteName?: string;
5
+ menuPathPrefix?: string;
6
+ disableMenusFilter?: boolean;
5
7
  }
6
8
  export declare function useMask(options?: UseMaskOptions): {
7
9
  disabled: Ref<boolean, boolean>;
@@ -64,9 +64,9 @@ export interface AccessOptions {
64
64
  */
65
65
  privateKey?: string;
66
66
  /**
67
- * 权限编码前缀
67
+ * 应用编码
68
68
  */
69
- keyPrefix?: string;
69
+ appName?: string;
70
70
  }
71
71
  export interface AccessData {
72
72
  token: string;
@@ -20,7 +20,7 @@ export interface ProviderOptions {
20
20
  materialPath?: string;
21
21
  nodeEnv?: NodeEnv;
22
22
  install?: (app: App) => void;
23
- routeParentName?: RouteRecordName;
23
+ routeAppendTo?: RouteRecordName;
24
24
  pageRouteName?: string;
25
25
  routeMeta?: RouteMeta;
26
26
  }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/renderer
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.9.0-alpha.16
5
+ * @version 0.9.0-alpha.18
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.9.0-alpha.16";
8
+ export declare const version = "0.9.0-alpha.18";