@vtj/renderer 0.8.4 → 0.8.6

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,10 +1,10 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("@vtj/core"),u=require("@vtj/utils"),j=require("vue"),ee=require("vue-router"),T=require("element-plus"),D=require("mockjs"),Se=require("@vueuse/core"),we=require("@vtj/ui");function je(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const A=je(j);/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("@vtj/core"),u=require("@vtj/utils"),j=require("vue"),te=require("vue-router"),T=require("element-plus"),D=require("mockjs"),we=require("@vueuse/core"),je=require("@vtj/ui");function $e(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const A=$e(j);/**!
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.8.4
5
+ * @version 0.8.5
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const F="0.8.4";var S=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(S||{});const q=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],$e=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],te=["vIf","vShow","vModel","vFor","vBind"],re={String,Number,Boolean,Array,Object,Function,Date};function I(n,e){return n.map(t=>u.isUrl(t)?t:`${e}${t}`)}function B(n){return/\.css$/.test(n)}function N(n){return/\.js$/.test(n)}function ne(n){return/\.json$/.test(n)}function Ce(n){return n.map(e=>`<script src="${u.url.append(e,{v:F})}"><\/script>`).join("")}function Pe(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:F})}" />`).join("")}function se(n,e){const t=n.filter(d=>!!d.enabled),r=[],s=[],o=[],a=[],i={},l={},c=[],m={};return t.forEach(({urls:d,assetsUrl:f,library:v,assetsLibrary:h,localeLibrary:g})=>{d?.forEach(p=>{N(p)&&r.push(p),B(p)&&s.push(p)}),v&&(a.push(v),i[v]=I(d||[],e),g&&(l[v]=g)),f&&o.push(f),h&&c.push(h),v&&h&&(m[h]=v)}),{scripts:I(r,e),css:I(s,e),materials:I(o,e),libraryExports:a,materialExports:u.dedupArray(c),materialMapLibrary:m,libraryMap:i,libraryLocaleMap:l}}function oe(n,e){const{name:t,parent:r,alias:s}=n;return r?e[r]?.[s||t]:e[s||t]}function L(n){return u.isString(n)?n:JSON.stringify(n)}function V(n,e,t){const r=n.CSSStyleSheet;if(r.prototype.replaceSync){const s=new r;s.id=e,s.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(l=>l.id!==e);o.adoptedStyleSheets=[...i,s]}else{const s=n.document;let o=s.getElementById(e);o?o.innerHTML=t:(o=s.createElement("style"),o.id=e,o.innerHTML=t,s.head.appendChild(o))}}async function ie(n,e){const t=await window.fetch(e).then(r=>r.text()).catch(()=>"");t&&V(window,n,t)}function Y(n,e=window){const t=e.document,r=e.document.head;for(const s of n)if(!t.getElementById(s)){const a=t.createElement("link");a.rel="stylesheet",a.id=s,a.href=s,r.appendChild(a)}}async function ae(n,e,t=window){const r=t.document,s=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of n){const c=r.createElement("script");c.src=l,c.onload=()=>{o=t[e],o&&a(o.default||o)},c.onerror=m=>{i(m)},s.appendChild(c)}})}function ce(n){return u.isFunction(n)||u.isFunction(n?.install)}function R(n,e,t=!1,r=!1){try{const s=['"use strict";',"var __self = arguments[0];"];s.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,l)=>`__self${l}`),o=s.join(`
8
- `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(s){if(u.logger.error("parseExpression.error",s,n,e?.__self??e),r)throw s}}function J(n,e,t=!1,r=!1){const s=R(n,e,t,r);if(typeof s!="function"&&(u.logger.error("parseFunction.error","not a function",n,e?.__self??e),r))throw new Error(`"${n.value}" not a function`);return s}function w(n){return n&&n.type==="JSExpression"}function O(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function le(n){return w(n)||O(n)}function Ee(n){return le(n)?n.value:JSON.stringify(n)}let b=null;const be=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{T.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{b&&b.close(),b=T.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{b&&(b.close(),b=null)}}});function ue(n,e){const{jsonp:t,request:r}=e;if(n.method==="jsonp")return(s={})=>t(n.url,{...n.jsonpOptions,query:s});{const s=n.headers?R(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:s}};return(a,i)=>r.send(u.merge(o,i||{},{data:a}))}}function pe(n=[],e){return n.reduce((t,r)=>(t[r.id]=ue(r,e),t),{})}function de(n=[]){D.setup({timeout:"50-500"}),K(),n.forEach(e=>fe(e))}function fe(n){if(!n.mock)return;const{url:e,mockTemplate:t}=n;if(e&&t){const r=u.pathToRegexp(`${e}(.*)`),s=u.pathToRegexpMatch(e,{decode:decodeURIComponent}),o=R(t,{},!0);D.mock(r,a=>{const i=u.url.parse(a.url)||{},l=a.body instanceof FormData?u.formDataToJson(a.body):a.body,c=s(a.url)?.params;return Object.assign(a,{data:l,params:i,query:c}),D.mock(o(a))})}}function K(){D._mocked={}}class me{__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:r,attrs:s}=e;this.__mode=t,r&&(this.__id=r.id||null,this.__transform=r.transform||{}),s&&Object.assign(this,s)}setup(e,t=A){const r=t.getCurrentInstance();if(!r)return;this.__instance=r.proxy;const s=r.appContext.config.globalProperties;Object.assign(this,s),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()})}__proxy(){this.__instance&&q.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){q.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:r}=e,s=t?this.__transform[t]??e.value:e.value;return J({type:r,value:s},this)}else return J(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:r}=e,s=t?this.__transform[t]??e.value:e.value;return R({type:r,value:s},this)}else return R(e,this)}__ref(e=null,t){if(this.__mode!==S.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),r=>{let s=r?.$vtjEl||r?.$el||r;if(!s){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(s.nodeType===3&&s.nextSibling&&(s=s.nextSibling),s.__vtj__=e,S.Design===this.__mode&&(s.__context__=this),e&&(this.__refs[e]=r),typeof t=="function")t(r);else if(t){const o=this.$refs[t];if(o){const a=new Set([].concat(o,r));this.$refs[t]=Array.from(a)}else this.$refs[t]=r}return r}}__clone(e={}){const t={...this.context,...e},r={...t,context:t};return r.context.__proto__=this.context,r.__proto__=this,r}}function x(n){const{Vue:e=A,mode:t=S.Runtime,components:r={},libs:s={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),l={$components:r,$libs:s,$apis:o},c=new me({mode:t,dsl:i.value,attrs:l}),m=e.defineComponent({name:i.value.name,props:{...Fe(i.value.props??[],c)},setup(d){c.$props=d,c.props=d,i.value.id&&V(n.window||window,i.value.id,i.value.css||""),c.state=Re(e,i.value.state??{},c);const f=Ie(e,i.value.computed??{},c),v=He(i.value.methods??{},c),h=Oe(e,i.value.inject,c),g=he(i.value.dataSources||{},c),p={...h,...f,...v,...g};return c.setup(p,e),Me(e,i.value.watch??[],c),{vtj:c}},emits:[...i.value.emits??[]],expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?H(d[0],c,e,a):d.map(f=>H(f,c,e,a))},...Te(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(m),context:c}}function Fe(n=[],e){const t=r=>r?(Array.isArray(r)?r:[r]).map(o=>re[o]):void 0;return n.map(r=>u.isString(r)?{name:r}:{name:r.name,type:r.type,required:r.required,default:w(r.default)?e.__parseExpression(r.default):r.default}).reduce((r,s)=>(r[s.name]={type:t(s.type),required:s.required,default:s.default},r),{})}function Re(n,e,t){return n.reactive(Object.keys(e||{}).reduce((r,s)=>{let o=e[s];return w(o)?o=t.__parseExpression(o):O(o)&&(o=t.__parseFunction(o)),r[s]=o,r},{}))}function Ie(n,e,t){return Object.entries(e??{}).reduce((r,[s,o])=>(r[s]=n.computed(t.__parseFunction(o)),r),{})}function He(n,e){return Object.entries(n??{}).reduce((t,[r,s])=>(t[r]=e.__parseFunction(s),t),{})}function Oe(n,e=[],t){return e.reduce((r,s)=>{const{name:o,from:a}=s||{};s.default;const i=w(a)?t.__parseExpression(a)||o:a??o,l=w(s.default)?t.__parseExpression(s.default):s.default??null;return r[o]=n.inject(i,l),r},{})}function he(n,e){return Object.keys(n).reduce((t,r)=>{const s=n[r],o=e.$apis[s.ref],a=O(s.transform)?s.transform.value?e.__parseFunction(s.transform):void 0:s.transform;return t[r]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l},t},{})}function Me(n,e=[],t){e.forEach(r=>{n.watch(t.__parseExpression(r.source),t.__parseFunction(r.handler),{deep:r.deep,immediate:r.immediate})})}function Te(n,e){return Object.entries(n??{}).reduce((t,[r,s])=>(t[r]=e.__parseFunction(s),t),{})}const ve=n=>n;async function X(n,e=window){const{urls:t=[],library:r}=n,s=t.filter(l=>N(l));if(s.length===0||!r)return null;const o=t.filter(l=>B(l));let a;const i=await ae(s,r,e).catch(()=>null);return i?.plugin&&(a=i.plugin),a?{component:a,css:o}:null}function k(n){const{getDsl:e,getDslByUrl:t,options:r}=n;return(s,o,a=A)=>!o||typeof o=="string"?s:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=s),i?x({...r,Vue:a,dsl:i,mode:S.Runtime,loader:k(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=s),i?x({...r,Vue:a,dsl:i,mode:S.Runtime,loader:k(n)}).renderer:null}):o.type==="Plugin"?a.defineAsyncComponent(async()=>{const i=await X(o,r.window);return i?(Y(i.css),i.component):null}):s}function H(n,e,t=A,r=ve){if(!n||!n.name||n.invisible)return null;const{id:s=null,directives:o=[]}=n,{vIf:a,vFor:i,vShow:l,vModels:c,vBind:m}=De(o);if(a&&!xe(a,e))return null;const d=f=>{const v=f.$components,h=(()=>{if(n.name==="component")return ke(f,n.props?.is);if(n.name==="slot")return n.name;const _=r(n.name,n.from,t);return u.isString(_)?v[_]??_:_})(),g=Ae(s,n.props??{},f),p=Be(t,n.events??{},f);if(n.name==="slot")return Ne(t,n,g,f,r);m&&Object.assign(g,f.__parseExpression(m.value)),l&&(g.style=Object.assign(g.style??{},qe(l,f))),c.forEach(_=>{Object.assign(g,Je(t,_,f))});const $=Le(t,n.children??[],f,r,n);return t.createVNode(h,{...g,...p},$)};return i?Ke(i,d,e):d(e)}function De(n=[]){const e=n.find(i=>u.camelCase(i.name)==="vIf"),t=n.find(i=>u.camelCase(i.name)==="vFor"),r=n.find(i=>u.camelCase(i.name)==="vShow"),s=n.find(i=>u.camelCase(i.name)==="vBind"),o=n.filter(i=>u.camelCase(i.name)==="vModel"),a=n.filter(i=>!te.includes(u.camelCase(i.name)));return{vIf:e,vFor:t,vShow:r,vModels:o,vBind:s,others:a}}function xe(n,e){return!!e.__parseExpression(n.value)}function ke(n,e){return e?w(e)?n.__parseExpression(e):e:"div"}function Ae(n,e,t){const r=Object.keys(e||{}).reduce((s,o)=>{let a=e[o];return w(a)?a=t.__parseExpression(a):O(a)&&(a=t.__parseFunction(a)),s[o]=a,s},{});return r.ref=t.__ref(n,r.ref),r}function Be(n,e,t){const r=["passive","capture","once"],s={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=W(i.modifiers),c=l.find(f=>r.includes(f)),m="on"+u.upperFirst(a)+(c&&s[c]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,l)),o},{})}function W(n={},e=!1){const t=Object.keys(n);return e?t.map(r=>"."+r):t}function Ne(n,e,t,r,s){const{children:o}=e,a=Ue(e,r),i=r.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):w(o)?n.createTextVNode(L(r.__parseExpression(o))):Array.isArray(o)?o.map(l=>H(l,r,n,s)):null:null}function Ue(n,e){const{props:t}=n,r=t?.name||"default";return{name:w(r)?e.__parseExpression(r):r,params:[]}}function qe(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function Je(n,e,t){const r={type:"JSFunction",value:e.value?.value?`(v) => {
7
+ */const F="0.8.5";var S=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))(S||{});const J=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Ce=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],re=["vIf","vShow","vModel","vFor","vBind"],ne={String,Number,Boolean,Array,Object,Function,Date};function I(n,e){return n.map(t=>u.isUrl(t)?t:`${e}${t}`)}function B(n){return/\.css$/.test(n)}function N(n){return/\.js$/.test(n)}function se(n){return/\.json$/.test(n)}function Ee(n){return n.map(e=>`<script src="${u.url.append(e,{v:F})}"><\/script>`).join("")}function Pe(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:F})}" />`).join("")}function oe(n,e){const t=n.filter(d=>!!d.enabled),r=[],s=[],o=[],a=[],i={},l={},c=[],m={};return t.forEach(({urls:d,assetsUrl:f,library:v,assetsLibrary:h,localeLibrary:g})=>{d?.forEach(p=>{N(p)&&r.push(p),B(p)&&s.push(p)}),v&&(a.push(v),i[v]=I(d||[],e),g&&(l[v]=g)),f&&o.push(f),h&&c.push(h),v&&h&&(m[h]=v)}),{scripts:I(r,e),css:I(s,e),materials:I(o,e),libraryExports:a,materialExports:u.dedupArray(c),materialMapLibrary:m,libraryMap:i,libraryLocaleMap:l}}function ie(n,e){const{name:t,parent:r,alias:s}=n;return r?e[r]?.[s||t]:e[s||t]}function V(n){return u.isString(n)?n:JSON.stringify(n)}function Y(n,e,t){const r=n.CSSStyleSheet;if(r.prototype.replaceSync){const s=new r;s.id=e,s.replaceSync(t);const o=n.document,a=o.adoptedStyleSheets,i=Array.from(a).filter(l=>l.id!==e);o.adoptedStyleSheets=[...i,s]}else{const s=n.document;let o=s.getElementById(e);o?o.innerHTML=t:(o=s.createElement("style"),o.id=e,o.innerHTML=t,s.head.appendChild(o))}}async function ae(n,e){const t=await window.fetch(e).then(r=>r.text()).catch(()=>"");t&&Y(window,n,t)}function K(n,e=window){const t=e.document,r=e.document.head;for(const s of n)if(!t.getElementById(s)){const a=t.createElement("link");a.rel="stylesheet",a.id=s,a.href=s,r.appendChild(a)}}async function ce(n,e,t=window){const r=t.document,s=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const l of n){const c=r.createElement("script");c.src=l,c.onload=()=>{o=t[e],o&&a(o.default||o)},c.onerror=m=>{i(m)},s.appendChild(c)}})}function le(n){return u.isFunction(n)||u.isFunction(n?.install)}function R(n,e,t=!1,r=!1){try{const s=['"use strict";',"var __self = arguments[0];"];s.push("return ");let o=(n.value||"").trim();o=o.replace(/this(\W|$)/g,(i,l)=>`__self${l}`),o=s.join(`
8
+ `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(s){if(u.logger.error("parseExpression.error",s,n,e?.__self??e),r)throw s}}function L(n,e,t=!1,r=!1){const s=R(n,e,t,r);if(typeof s!="function"&&(u.logger.error("parseFunction.error","not a function",n,e?.__self??e),r))throw new Error(`"${n.value}" not a function`);return s}function w(n){return n&&n.type==="JSExpression"}function O(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function ue(n){return w(n)||O(n)}function be(n){return ue(n)?n.value:JSON.stringify(n)}let b=null;const Fe=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{T.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{b&&b.close(),b=T.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{b&&(b.close(),b=null)}}});function pe(n,e){const{jsonp:t,request:r}=e;if(n.method==="jsonp")return(s={})=>t(n.url,{...n.jsonpOptions,query:s});{const s=n.headers?R(n.headers,{},!0):void 0,o={url:n.url,method:n.method,settings:{...n.settings,headers:s}};return(a,i)=>r.send(u.merge(o,i||{},{data:a}))}}function de(n=[],e){return n.reduce((t,r)=>(t[r.id]=pe(r,e),t),{})}function fe(n=[]){D.setup({timeout:"50-500"}),X(),n.forEach(e=>me(e))}function me(n){if(!n.mock)return;const{url:e,mockTemplate:t}=n;if(e&&t){const r=u.pathToRegexp(`${e}(.*)`),s=u.pathToRegexpMatch(e,{decode:decodeURIComponent}),o=R(t,{},!0);D.mock(r,a=>{const i=u.url.parse(a.url)||{},l=a.body instanceof FormData?u.formDataToJson(a.body):a.body,c=s(a.url)?.params;return Object.assign(a,{data:l,params:i,query:c}),D.mock(o(a))})}}function X(){D._mocked={}}class he{__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:r,attrs:s}=e;this.__mode=t,r&&(this.__id=r.id||null,this.__transform=r.transform||{}),s&&Object.assign(this,s)}setup(e,t=A){const r=t.getCurrentInstance();if(!r)return;this.__instance=r.proxy;const s=r.appContext.config.globalProperties;Object.assign(this,s),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()})}__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===S.Runtime){const{id:t,type:r}=e,s=t?this.__transform[t]??e.value:e.value;return L({type:r,value:s},this)}else return L(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:r}=e,s=t?this.__transform[t]??e.value:e.value;return R({type:r,value:s},this)}else return R(e,this)}__ref(e=null,t){if(this.__mode!==S.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),r=>{let s=r?.$vtjEl||r?.$el||r;if(!s){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}if(s.nodeType===3&&s.nextSibling&&(s=s.nextSibling),s.__vtj__=e,S.Design===this.__mode&&(s.__context__=this),e&&(this.__refs[e]=r),typeof t=="function")t(r);else if(t){const o=this.$refs[t];if(o){const a=new Set([].concat(o,r));this.$refs[t]=Array.from(a)}else this.$refs[t]=r}return r}}__clone(e={}){const t={...this.context,...e},r={...t,context:t};return r.context.__proto__=this.context,r.__proto__=this,r}}function x(n){const{Vue:e=A,mode:t=S.Runtime,components:r={},libs:s={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),l={$components:r,$libs:s,$apis:o},c=new he({mode:t,dsl:i.value,attrs:l}),m=e.defineComponent({name:i.value.name,props:{...Re(i.value.props??[],c)},setup(d){c.$props=d,c.props=d,i.value.id&&Y(n.window||window,i.value.id,i.value.css||""),c.state=Ie(e,i.value.state??{},c);const f=He(e,i.value.computed??{},c),v=Oe(i.value.methods??{},c),h=Me(e,i.value.inject,c),g=ve(i.value.dataSources||{},c),p={...h,...f,...v,...g};return c.setup(p,e),Te(e,i.value.watch??[],c),{vtj:c}},emits:[...i.value.emits??[]],expose:["vtj"],render(){if(!i.value.nodes)return null;const d=i.value.nodes||[];return d.length===1?H(d[0],c,e,a):d.map(f=>H(f,c,e,a))},...De(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(m),context:c}}function Re(n=[],e){const t=r=>r?(Array.isArray(r)?r:[r]).map(o=>ne[o]):void 0;return n.map(r=>u.isString(r)?{name:r}:{name:r.name,type:r.type,required:r.required,default:w(r.default)?e.__parseExpression(r.default):r.default}).reduce((r,s)=>(r[s.name]={type:t(s.type),required:s.required,default:s.default},r),{})}function Ie(n,e,t){return n.reactive(Object.keys(e||{}).reduce((r,s)=>{let o=e[s];return w(o)?o=t.__parseExpression(o):O(o)&&(o=t.__parseFunction(o)),r[s]=o,r},{}))}function He(n,e,t){return Object.entries(e??{}).reduce((r,[s,o])=>(r[s]=n.computed(t.__parseFunction(o)),r),{})}function Oe(n,e){return Object.entries(n??{}).reduce((t,[r,s])=>(t[r]=e.__parseFunction(s),t),{})}function Me(n,e=[],t){return e.reduce((r,s)=>{const{name:o,from:a}=s||{};s.default;const i=w(a)?t.__parseExpression(a)||o:a??o,l=w(s.default)?t.__parseExpression(s.default):s.default??null;return r[o]=n.inject(i,l),r},{})}function ve(n,e){return Object.keys(n).reduce((t,r)=>{const s=n[r],o=e.$apis[s.ref],a=O(s.transform)?s.transform.value?e.__parseFunction(s.transform):void 0:s.transform;return t[r]=async(...i)=>{const l=await o.apply(e,i);return a?a(l):l},t},{})}function Te(n,e=[],t){e.forEach(r=>{n.watch(t.__parseExpression(r.source),t.__parseFunction(r.handler),{deep:r.deep,immediate:r.immediate})})}function De(n,e){return Object.entries(n??{}).reduce((t,[r,s])=>(t[r]=e.__parseFunction(s),t),{})}let q=[];const ge=n=>n;async function W(n,e=window){const{urls:t=[],library:r}=n,s=t.filter(l=>N(l));if(s.length===0||!r)return null;const o=t.filter(l=>B(l));let a;const i=await ce(s,r,e).catch(()=>null);return i?.plugin&&(a=i.plugin),a?{component:a,css:o}:null}function k(n){const{getDsl:e,getDslByUrl:t,options:r}=n;return r.window&&(q.forEach(s=>{delete r.window[s]}),q=[]),(s,o,a=A)=>!o||typeof o=="string"?s:o.type==="Schema"&&o.id?a.defineAsyncComponent(async()=>{const i=await e(o.id);return i&&(i.name=s),i?x({...r,Vue:a,dsl:i,mode:S.Runtime,loader:k(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=s),i?x({...r,Vue:a,dsl:i,mode:S.Runtime,loader:k(n)}).renderer:null}):o.type==="Plugin"?(o.library&&q.push(o.library),a.defineAsyncComponent(async()=>{const i=await W(o,r.window);return i?(K(i.css,r.window),i.component):null})):s}function H(n,e,t=A,r=ge){if(!n||!n.name||n.invisible)return null;const{id:s=null,directives:o=[]}=n,{vIf:a,vFor:i,vShow:l,vModels:c,vBind:m}=xe(o);if(a&&!ke(a,e))return null;const d=f=>{const v=f.$components,h=(()=>{if(n.name==="component")return Ae(f,n.props?.is);if(n.name==="slot")return n.name;const _=r(n.name,n.from,t);return u.isString(_)?v[_]??_:_})(),g=Be(s,n.props??{},f),p=Ne(t,n.events??{},f);if(n.name==="slot")return Ue(t,n,g,f,r);m&&Object.assign(g,f.__parseExpression(m.value)),l&&(g.style=Object.assign(g.style??{},Je(l,f))),c.forEach(_=>{Object.assign(g,Le(t,_,f))});const $=Ve(t,n.children??[],f,r,n);return t.createVNode(h,{...g,...p},$)};return i?Xe(i,d,e):d(e)}function xe(n=[]){const e=n.find(i=>u.camelCase(i.name)==="vIf"),t=n.find(i=>u.camelCase(i.name)==="vFor"),r=n.find(i=>u.camelCase(i.name)==="vShow"),s=n.find(i=>u.camelCase(i.name)==="vBind"),o=n.filter(i=>u.camelCase(i.name)==="vModel"),a=n.filter(i=>!re.includes(u.camelCase(i.name)));return{vIf:e,vFor:t,vShow:r,vModels:o,vBind:s,others:a}}function ke(n,e){return!!e.__parseExpression(n.value)}function Ae(n,e){return e?w(e)?n.__parseExpression(e):e:"div"}function Be(n,e,t){const r=Object.keys(e||{}).reduce((s,o)=>{let a=e[o];return w(a)?a=t.__parseExpression(a):O(a)&&(a=t.__parseFunction(a)),s[o]=a,s},{});return r.ref=t.__ref(n,r.ref),r}function Ne(n,e,t){const r=["passive","capture","once"],s={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],l=z(i.modifiers),c=l.find(f=>r.includes(f)),m="on"+u.upperFirst(a)+(c&&s[c]||""),d=t.__parseFunction(i.handler);return d&&(o[m]=n.withModifiers(d,l)),o},{})}function z(n={},e=!1){const t=Object.keys(n);return e?t.map(r=>"."+r):t}function Ue(n,e,t,r,s){const{children:o}=e,a=qe(e,r),i=r.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):w(o)?n.createTextVNode(V(r.__parseExpression(o))):Array.isArray(o)?o.map(l=>H(l,r,n,s)):null:null}function qe(n,e){const{props:t}=n,r=t?.name||"default";return{name:w(r)?e.__parseExpression(r):r,params:[]}}function Je(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function Le(n,e,t){const r={type:"JSFunction",value:e.value?.value?`(v) => {
9
9
  ${e.value.value} = v;
10
- }`:"(v) => {}"},s=t.__parseFunction(r),o=W(e.modifiers),a=w(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&s?n.withModifiers(s,o):s}}function Le(n,e,t,r,s){if(!e)return null;if(u.isString(e))return{default:()=>e};if(w(e))return{default:()=>L(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Ve(e),a=i=>!i||!s?{}:s?.id&&Object.keys(i).length?{[`scope_${s.id}`]:i}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:m}])=>(i[l]=d=>{const f=m.length?u.pick(d??{},m):a(d);return c.map(v=>H(v,t.__clone(f),n,r))},i),{})}return null}function Ve(n){const e={default:{params:[],nodes:[]}};for(const t of n){const r=Ye(t.slot),s=r.name;e[s]?(e[s].nodes.push(t),e[s].params=e[s].params.concat(r.params)):e[s]={nodes:[t],params:r.params}}return e}function Ye(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function Ke(n,e,t){const{value:r,iterator:s}=n,{item:o="item",index:a="index"}=s||{};let i=t.__parseExpression(r)||[];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]:",`${r?.value} is not a Arrary`),[])}const Z=j.defineComponent({name:"VtjPageContainer",async setup(){const n=G(),e=ee.useRoute(),t=e.params.id,r=t?n.getPage(t):n.getHomepage(),s=r?await n.getRenderComponent(r.id):null;return r&&Se.useTitle(r.title||"VTJ"),{provider:n,component:s,file:r,query:e.query}},render(){return this.component?j.h(this.component,this.query):j.h("div","页面不存在")}}),Xe=j.defineComponent({name:"VtjStartupContainer",render(){return j.h(we.XStartup)}}),z=Symbol("Provider");class ge extends C.Base{mode;globals={};modules={};adapter={request:be,jsonp:u.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};constructor(e){super();const{service:t,mode:r=S.Raw,dependencies:s,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:m=null,materialPath:d="./",nodeEnv:f="development"}=e;this.mode=r,this.modules=c,this.service=t,this.router=m,this.materialPath=d,this.nodeEnv=f,s&&(this.dependencies=s),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i),r!==S.Design&&this.load(a)}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{dependencies:r=[],apis:s}=this.project,{dependencies:o,library:a,components:i,materialPath:l}=this,{libraryExports:c,libraryMap:m,materials:d,materialExports:f,materialMapLibrary:v}=se(r,l),h=window;h.CKEDITOR_VERSION=void 0;for(const p of c){const $=o[p],_=h[p];if(_)a[p]=_;else if($)h[p]=a[p]=await $();else{const P=m[p]||[];for(const E of P)B(E)&&await ie(p,u.url.append(E,{v:F})),N(E)&&await u.loadScript(u.url.append(E,{v:F})),a[p]=h[p]}}for(const p of d)await u.loadScript(u.url.append(p,{v:F}));const g=this.materials||{};for(const p of f){const $=h[v[p]],_=C.BUILT_IN_COMPONENTS[p];if(_)$&&_.forEach(P=>{i[P]=$[P]});else{const P=g[p]?(await g[p]()).default:h[p];P&&$&&(P.components||[]).forEach(E=>{i[E.name]=oe(E,$)})}}s&&(this.apis=pe(s,this.adapter),K(),this.project.config?.mock&&de(s)),this.initRouter(),this.triggerReady()}initRouter(){const{router:e,project:t}=this;e&&(e.addRoute({path:"/page/:id",name:"VtjPage",component:Z}),e.addRoute({path:"/",name:"VtjHomepage",component:t?.homepage?Z:Xe}))}install(e){const t=e.config.globalProperties.installed||{};for(const[r,s]of Object.entries(this.library))!t[r]&&ce(s)&&(e.use(s),t[r]=!0);e.provide(z,this),e.config.globalProperties.installed=t}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(r=>r.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},r=(s,o=[])=>{for(const a of o){if(a.id===s)return a;if(a.children&&a.children.length){const i=r(s,a.children);if(i)return i}}};return r(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(r=>r.data).catch(()=>null))}createDslRenderer(e,t={}){const{library:r,components:s,mode:o,apis:a}=this,i={mode:o,Vue:r.Vue,components:s,libs:r,apis:a,window,...t},l=k({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return x({...i,dsl:e,loader:l})}async getRenderComponent(e){const t=this.getFile(e);if(!t)return u.logger.warn(`Can not find file: ${e}`),null;const r=`.vtj/vue/${e}.vue`,s=this.modules[r];if(s)return(await s())?.default;const o=await this.getDsl(t.id);return o?this.createDslRenderer(o).renderer:(u.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return j.defineAsyncComponent(async()=>{const r=await this.getDslByUrl(e);return r?(r.name=t||r.name,this.createDslRenderer(r).renderer):null})}definePluginComponent(e){return j.defineAsyncComponent(async()=>{const t=await X(e,window);return t?(Y(t.css),t.component):null})}}function We(n){const e=new ge(n);return{provider:e,onReady:r=>e.ready(r)}}function G(n={}){const e=j.inject(z);if(!e)throw new Error("Can not find provider");if(e.mode===S.Raw&&e.nodeEnv==="development"){const{id:t,version:r}=n;t&&r&&(async()=>{const s=await e.getDsl(t);s?.__VERSION__!==r&&T.ElNotification.warning({title:s?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const Q=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0,showError:n=>{T.ElNotification.error({message:n||"未知错误"})}}}),ze=(n="/vtj/local/repository/${type}.json")=>(e,t)=>Q.send({url:n,method:"post",query:{type:e},data:{type:e,data:t}}),Ge=(n="/vtj/local/repository/uploader.json")=>async(e,t)=>await Q.send({url:n,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);class U{api;pluginCaches={};uploader;constructor(){this.api=ze(),this.uploader=Ge()}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,r=t.filter(o=>ne(o))[0];if(!r)return null;const s=this.pluginCaches[r];return s||(this.pluginCaches[r]=Q.send({url:r,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}}const y=new u.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Qe extends U{init(e){const t=new C.ProjectModel(e),r=y.get(`project_${t.id}`),s=Object.assign(t.toDsl(),r||{});return y.save(`project_${t.id}`,s),Promise.resolve(s)}saveProject(e){const t=new C.ProjectModel(e);return y.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return y.save(`materials_${e.id}`,u.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return y.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=y.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return y.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return y.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=y.get(`history_${e}`);if(t){const s=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,s),y.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=y.get(`history_${e}`),r=new C.HistoryModel(t||{id:e});return Promise.resolve(r.toDsl())}getHistoryItem(e,t){const r=y.get(`history_${e}_${t}`);return Promise.resolve(r)}saveHistoryItem(e,t){return y.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(r=>{y.remove(`history_${e}_${r}`)}),Promise.resolve(!0)}}class ye extends U{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new C.ProjectModel(e),r=this.projects[t.id]||{},s=Object.assign(t.toDsl(),r);return this.projects[s.id]=s,Promise.resolve(s)}saveProject(e){const t=new C.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 s=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,s),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],r=new C.HistoryModel(t||{id:e});return Promise.resolve(r)}getHistoryItem(e,t){const r=`${e}_${t}`,s=this.historyItems[r]||{};return Promise.resolve(s)}saveHistoryItem(e,t){const r=`${e}_${t.id}`;return this.historyItems[r]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(r=>{const s=`${e}_${r}`;delete this.historyItems[s]}),Promise.resolve(!0)}}let M=null;function Ze(){return M||(M=new ye,M)}class et extends U{getFileCaches={};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 _e(n=[]){return n.map(e=>{const{id:t,title:r,icon:s,children:o,hidden:a}=e;return{id:t,title:r,icon:s,hidden:a,url:`/page/${t}`,children:o&&o.length?_e(o):void 0}})}function tt(){const n=G(),e=ee.useRoute(),t=j.ref(!1),r=n.project;j.watchEffect(()=>{const{name:a,params:i,meta:l}=e;if(a==="VtjPage"){const c=n.getPage(i.id);t.value=!c?.mask}else if(a==="VtjHomepage"){const c=n.getHomepage();t.value=!c?.mask}else t.value=!l.mask});const s=_e(r?.pages),o=r?.config;return{disabled:t,logo:o?.logo,themeSwitchable:o?.themeSwitchable,title:o?.title||r?.description||r?.name||"VTJ App",menus:s}}exports.BUILT_IN_DIRECTIVES=te;exports.BaseService=U;exports.CONTEXT_HOST=q;exports.Context=me;exports.ContextMode=S;exports.DATA_TYPES=re;exports.JSCodeToString=Ee;exports.LIFE_CYCLES_LIST=$e;exports.LocalService=et;exports.MemoryService=ye;exports.Provider=ge;exports.StorageService=Qe;exports.VTJ_RENDERER_VERSION=F;exports.adoptedStyleSheets=V;exports.createAssetScripts=Ce;exports.createAssetsCss=Pe;exports.createDataSources=he;exports.createLoader=k;exports.createMemoryService=Ze;exports.createProvider=We;exports.createRenderer=x;exports.createSchemaApi=ue;exports.createSchemaApis=pe;exports.defaultLoader=ve;exports.fillBasePath=I;exports.getModifiers=W;exports.getPlugin=X;exports.getRawComponent=oe;exports.isCSSUrl=B;exports.isJSCode=le;exports.isJSExpression=w;exports.isJSFunction=O;exports.isJSON=ne;exports.isJSUrl=N;exports.isVuePlugin=ce;exports.loadCss=ie;exports.loadCssUrl=Y;exports.loadScriptUrl=ae;exports.mockApi=fe;exports.mockApis=de;exports.mockCleanup=K;exports.nodeRender=H;exports.parseDeps=se;exports.parseExpression=R;exports.parseFunction=J;exports.providerKey=z;exports.toString=L;exports.useMask=tt;exports.useProvider=G;
10
+ }`:"(v) => {}"},s=t.__parseFunction(r),o=z(e.modifiers),a=w(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&s?n.withModifiers(s,o):s}}function Ve(n,e,t,r,s){if(!e)return null;if(u.isString(e))return{default:()=>e};if(w(e))return{default:()=>V(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Ye(e),a=i=>!i||!s?{}:s?.id&&Object.keys(i).length?{[`scope_${s.id}`]:i}:{};return Object.entries(o).reduce((i,[l,{nodes:c,params:m}])=>(i[l]=d=>{const f=m.length?u.pick(d??{},m):a(d);return c.map(v=>H(v,t.__clone(f),n,r))},i),{})}return null}function Ye(n){const e={default:{params:[],nodes:[]}};for(const t of n){const r=Ke(t.slot),s=r.name;e[s]?(e[s].nodes.push(t),e[s].params=e[s].params.concat(r.params)):e[s]={nodes:[t],params:r.params}}return e}function Ke(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function Xe(n,e,t){const{value:r,iterator:s}=n,{item:o="item",index:a="index"}=s||{};let i=t.__parseExpression(r)||[];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]:",`${r?.value} is not a Arrary`),[])}const ee=j.defineComponent({name:"VtjPageContainer",async setup(){const n=Q(),e=te.useRoute(),t=e.params.id,r=t?n.getPage(t):n.getHomepage(),s=r?await n.getRenderComponent(r.id):null;return r&&we.useTitle(r.title||"VTJ"),{provider:n,component:s,file:r,query:e.query}},render(){return this.component?j.h(this.component,this.query):j.h("div","页面不存在")}}),We=j.defineComponent({name:"VtjStartupContainer",render(){return j.h(je.XStartup)}}),G=Symbol("Provider");class ye extends C.Base{mode;globals={};modules={};adapter={request:Fe,jsonp:u.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};constructor(e){super();const{service:t,mode:r=S.Raw,dependencies:s,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:m=null,materialPath:d="./",nodeEnv:f="development"}=e;this.mode=r,this.modules=c,this.service=t,this.router=m,this.materialPath=d,this.nodeEnv=f,s&&(this.dependencies=s),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i),r!==S.Design&&this.load(a)}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{dependencies:r=[],apis:s}=this.project,{dependencies:o,library:a,components:i,materialPath:l}=this,{libraryExports:c,libraryMap:m,materials:d,materialExports:f,materialMapLibrary:v}=oe(r,l),h=window;h.CKEDITOR_VERSION=void 0;for(const p of c){const $=o[p],_=h[p];if(_)a[p]=_;else if($)h[p]=a[p]=await $();else{const E=m[p]||[];for(const P of E)B(P)&&await ae(p,u.url.append(P,{v:F})),N(P)&&await u.loadScript(u.url.append(P,{v:F}));a[p]=h[p]}}for(const p of d)await u.loadScript(u.url.append(p,{v:F}));const g=this.materials||{};for(const p of f){const $=h[v[p]],_=C.BUILT_IN_COMPONENTS[p];if(_)$&&_.forEach(E=>{i[E]=$[E]});else{const E=g[p]?(await g[p]()).default:h[p];E&&$&&(E.components||[]).forEach(P=>{i[P.name]=ie(P,$)})}}s&&(this.apis=de(s,this.adapter),X(),this.project.config?.mock&&fe(s)),this.initRouter(),this.triggerReady()}initRouter(){const{router:e,project:t}=this;e&&(e.addRoute({path:"/page/:id",name:"VtjPage",component:ee}),e.addRoute({path:"/",name:"VtjHomepage",component:t?.homepage?ee:We}))}install(e){const t=e.config.globalProperties.installed||{};for(const[r,s]of Object.entries(this.library))!t[r]&&le(s)&&(e.use(s),t[r]=!0);e.provide(G,this),e.config.globalProperties.installed=t}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(r=>r.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},r=(s,o=[])=>{for(const a of o){if(a.id===s)return a;if(a.children&&a.children.length){const i=r(s,a.children);if(i)return i}}};return r(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(r=>r.data).catch(()=>null))}createDslRenderer(e,t={}){const{library:r,components:s,mode:o,apis:a}=this,i={mode:o,Vue:r.Vue,components:s,libs:r,apis:a,window,...t},l=k({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return x({...i,dsl:e,loader:l})}async getRenderComponent(e){const t=this.getFile(e);if(!t)return u.logger.warn(`Can not find file: ${e}`),null;const r=`.vtj/vue/${e}.vue`,s=this.modules[r];if(s)return(await s())?.default;const o=await this.getDsl(t.id);return o?this.createDslRenderer(o).renderer:(u.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return j.defineAsyncComponent(async()=>{const r=await this.getDslByUrl(e);return r?(r.name=t||r.name,this.createDslRenderer(r).renderer):null})}definePluginComponent(e){return j.defineAsyncComponent(async()=>{const t=await W(e,window);return t?(K(t.css),t.component):null})}}function ze(n){const e=new ye(n);return{provider:e,onReady:r=>e.ready(r)}}function Q(n={}){const e=j.inject(G);if(!e)throw new Error("Can not find provider");if(e.mode===S.Raw&&e.nodeEnv==="development"){const{id:t,version:r}=n;t&&r&&(async()=>{const s=await e.getDsl(t);s?.__VERSION__!==r&&T.ElNotification.warning({title:s?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const Z=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0,showError:n=>{T.ElNotification.error({message:n||"未知错误"})}}}),Ge=(n="/vtj/local/repository/${type}.json")=>(e,t)=>Z.send({url:n,method:"post",query:{type:e},data:{type:e,data:t}}),Qe=(n="/vtj/local/repository/uploader.json")=>async(e,t)=>await Z.send({url:n,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);class U{api;pluginCaches={};uploader;constructor(){this.api=Ge(),this.uploader=Qe()}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,r=t.filter(o=>se(o))[0];if(!r)return null;const s=this.pluginCaches[r];return s||(this.pluginCaches[r]=Z.send({url:r,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}}const y=new u.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Ze extends U{init(e){const t=new C.ProjectModel(e),r=y.get(`project_${t.id}`),s=Object.assign(t.toDsl(),r||{});return y.save(`project_${t.id}`,s),Promise.resolve(s)}saveProject(e){const t=new C.ProjectModel(e);return y.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return y.save(`materials_${e.id}`,u.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return y.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=y.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return y.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return y.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=y.get(`history_${e}`);if(t){const s=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,s),y.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=y.get(`history_${e}`),r=new C.HistoryModel(t||{id:e});return Promise.resolve(r.toDsl())}getHistoryItem(e,t){const r=y.get(`history_${e}_${t}`);return Promise.resolve(r)}saveHistoryItem(e,t){return y.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(r=>{y.remove(`history_${e}_${r}`)}),Promise.resolve(!0)}}class _e extends U{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new C.ProjectModel(e),r=this.projects[t.id]||{},s=Object.assign(t.toDsl(),r);return this.projects[s.id]=s,Promise.resolve(s)}saveProject(e){const t=new C.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 s=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,s),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],r=new C.HistoryModel(t||{id:e});return Promise.resolve(r)}getHistoryItem(e,t){const r=`${e}_${t}`,s=this.historyItems[r]||{};return Promise.resolve(s)}saveHistoryItem(e,t){const r=`${e}_${t.id}`;return this.historyItems[r]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(r=>{const s=`${e}_${r}`;delete this.historyItems[s]}),Promise.resolve(!0)}}let M=null;function et(){return M||(M=new _e,M)}class tt extends U{getFileCaches={};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 Se(n=[]){return n.map(e=>{const{id:t,title:r,icon:s,children:o,hidden:a}=e;return{id:t,title:r,icon:s,hidden:a,url:`/page/${t}`,children:o&&o.length?Se(o):void 0}})}function rt(){const n=Q(),e=te.useRoute(),t=j.ref(!1),r=n.project;j.watchEffect(()=>{const{name:a,params:i,meta:l}=e;if(a==="VtjPage"){const c=n.getPage(i.id);t.value=!c?.mask}else if(a==="VtjHomepage"){const c=n.getHomepage();t.value=!c?.mask}else t.value=!l.mask});const s=Se(r?.pages),o=r?.config;return{disabled:t,logo:o?.logo,themeSwitchable:o?.themeSwitchable,title:o?.title||r?.description||r?.name||"VTJ App",menus:s}}exports.BUILT_IN_DIRECTIVES=re;exports.BaseService=U;exports.CONTEXT_HOST=J;exports.Context=he;exports.ContextMode=S;exports.DATA_TYPES=ne;exports.JSCodeToString=be;exports.LIFE_CYCLES_LIST=Ce;exports.LocalService=tt;exports.MemoryService=_e;exports.Provider=ye;exports.StorageService=Ze;exports.VTJ_RENDERER_VERSION=F;exports.adoptedStyleSheets=Y;exports.createAssetScripts=Ee;exports.createAssetsCss=Pe;exports.createDataSources=ve;exports.createLoader=k;exports.createMemoryService=et;exports.createProvider=ze;exports.createRenderer=x;exports.createSchemaApi=pe;exports.createSchemaApis=de;exports.defaultLoader=ge;exports.fillBasePath=I;exports.getModifiers=z;exports.getPlugin=W;exports.getRawComponent=ie;exports.isCSSUrl=B;exports.isJSCode=ue;exports.isJSExpression=w;exports.isJSFunction=O;exports.isJSON=se;exports.isJSUrl=N;exports.isVuePlugin=le;exports.loadCss=ae;exports.loadCssUrl=K;exports.loadScriptUrl=ce;exports.mockApi=me;exports.mockApis=fe;exports.mockCleanup=X;exports.nodeRender=H;exports.parseDeps=oe;exports.parseExpression=R;exports.parseFunction=L;exports.providerKey=G;exports.toString=V;exports.useMask=rt;exports.useProvider=Q;
package/dist/index.mjs CHANGED
@@ -1,22 +1,22 @@
1
- import { Base as pe, BUILT_IN_COMPONENTS as fe, ProjectModel as x, HistoryModel as Z } from "@vtj/core";
2
- import { isUrl as de, url as F, dedupArray as me, isString as C, isFunction as W, logger as O, createRequest as he, merge as ve, pathToRegexp as ye, pathToRegexpMatch as ge, formDataToJson as _e, camelCase as E, upperFirst as we, pick as Se, jsonp as $e, loadScript as X, Request as je, Storage as Ee, mapToObject as U } from "@vtj/utils";
1
+ import { Base as fe, BUILT_IN_COMPONENTS as de, ProjectModel as x, HistoryModel as ee } from "@vtj/core";
2
+ import { isUrl as me, url as F, dedupArray as he, isString as b, isFunction as X, logger as O, createRequest as ve, merge as ye, pathToRegexp as ge, pathToRegexpMatch as _e, formDataToJson as we, camelCase as E, upperFirst as Se, pick as $e, jsonp as je, loadScript as Y, Request as Ee, Storage as Pe, mapToObject as q } from "@vtj/utils";
3
3
  import * as k from "vue";
4
- import { defineComponent as ee, h as A, inject as Pe, defineAsyncComponent as Y, ref as Fe, watchEffect as Ce } from "vue";
5
- import { useRoute as te } from "vue-router";
6
- import { ElNotification as q, ElLoading as be } from "element-plus";
4
+ import { defineComponent as te, h as B, inject as Fe, defineAsyncComponent as z, ref as be, watchEffect as Ce } from "vue";
5
+ import { useRoute as re } from "vue-router";
6
+ import { ElNotification as J, ElLoading as Re } from "element-plus";
7
7
  import D from "mockjs";
8
- import { useTitle as Re } from "@vueuse/core";
9
- import { XStartup as Ie } from "@vtj/ui";
8
+ import { useTitle as Ie } from "@vueuse/core";
9
+ import { XStartup as He } from "@vtj/ui";
10
10
  /**!
11
11
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
12
12
  * @name @vtj/renderer
13
13
  * @author CHC chenhuachun1549@dingtalk.com
14
- * @version 0.8.4
14
+ * @version 0.8.5
15
15
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
16
16
  */
17
- const b = "0.8.4";
17
+ const C = "0.8.5";
18
18
  var _ = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(_ || {});
19
- const z = [
19
+ const G = [
20
20
  "$el",
21
21
  "$emit",
22
22
  "$nextTick",
@@ -42,7 +42,7 @@ const z = [
42
42
  "renderTriggered",
43
43
  "activated",
44
44
  "deactivated"
45
- ], He = ["vIf", "vShow", "vModel", "vFor", "vBind"], xe = {
45
+ ], xe = ["vIf", "vShow", "vModel", "vFor", "vBind"], Oe = {
46
46
  String,
47
47
  Number,
48
48
  Boolean,
@@ -52,33 +52,33 @@ const z = [
52
52
  Date
53
53
  };
54
54
  function I(n, e) {
55
- return n.map((t) => de(t) ? t : `${e}${t}`);
55
+ return n.map((t) => me(t) ? t : `${e}${t}`);
56
56
  }
57
- function J(n) {
57
+ function V(n) {
58
58
  return /\.css$/.test(n);
59
59
  }
60
- function V(n) {
60
+ function L(n) {
61
61
  return /\.js$/.test(n);
62
62
  }
63
- function Oe(n) {
63
+ function De(n) {
64
64
  return /\.json$/.test(n);
65
65
  }
66
- function bt(n) {
66
+ function Rt(n) {
67
67
  return n.map(
68
- (e) => `<script src="${F.append(e, { v: b })}"><\/script>`
68
+ (e) => `<script src="${F.append(e, { v: C })}"><\/script>`
69
69
  ).join("");
70
70
  }
71
- function Rt(n = []) {
71
+ function It(n = []) {
72
72
  return n.map(
73
- (e) => `<link rel="stylesheet" href="${F.append(e, { v: b })}" />`
73
+ (e) => `<link rel="stylesheet" href="${F.append(e, { v: C })}" />`
74
74
  ).join("");
75
75
  }
76
- function De(n, e) {
76
+ function Me(n, e) {
77
77
  const t = n.filter((p) => !!p.enabled), r = [], s = [], o = [], a = [], i = {}, l = {}, c = [], d = {};
78
78
  return t.forEach(
79
79
  ({ urls: p, assetsUrl: f, library: h, assetsLibrary: m, localeLibrary: v }) => {
80
80
  p?.forEach((u) => {
81
- V(u) && r.push(u), J(u) && s.push(u);
81
+ L(u) && r.push(u), V(u) && s.push(u);
82
82
  }), h && (a.push(h), i[h] = I(p || [], e), v && (l[h] = v)), f && o.push(f), m && c.push(m), h && m && (d[m] = h);
83
83
  }
84
84
  ), {
@@ -86,20 +86,20 @@ function De(n, e) {
86
86
  css: I(s, e),
87
87
  materials: I(o, e),
88
88
  libraryExports: a,
89
- materialExports: me(c),
89
+ materialExports: he(c),
90
90
  materialMapLibrary: d,
91
91
  libraryMap: i,
92
92
  libraryLocaleMap: l
93
93
  };
94
94
  }
95
- function Me(n, e) {
95
+ function ke(n, e) {
96
96
  const { name: t, parent: r, alias: s } = n;
97
97
  return r ? e[r]?.[s || t] : e[s || t];
98
98
  }
99
- function re(n) {
100
- return C(n) ? n : JSON.stringify(n);
99
+ function ne(n) {
100
+ return b(n) ? n : JSON.stringify(n);
101
101
  }
102
- function ne(n, e, t) {
102
+ function se(n, e, t) {
103
103
  const r = n.CSSStyleSheet;
104
104
  if (r.prototype.replaceSync) {
105
105
  const s = new r();
@@ -114,11 +114,11 @@ function ne(n, e, t) {
114
114
  o ? o.innerHTML = t : (o = s.createElement("style"), o.id = e, o.innerHTML = t, s.head.appendChild(o));
115
115
  }
116
116
  }
117
- async function ke(n, e) {
117
+ async function Te(n, e) {
118
118
  const t = await window.fetch(e).then((r) => r.text()).catch(() => "");
119
- t && ne(window, n, t);
119
+ t && se(window, n, t);
120
120
  }
121
- function se(n, e = window) {
121
+ function oe(n, e = window) {
122
122
  const t = e.document, r = e.document.head;
123
123
  for (const s of n)
124
124
  if (!t.getElementById(s)) {
@@ -126,7 +126,7 @@ function se(n, e = window) {
126
126
  a.rel = "stylesheet", a.id = s, a.href = s, r.appendChild(a);
127
127
  }
128
128
  }
129
- async function Te(n, e, t = window) {
129
+ async function Ae(n, e, t = window) {
130
130
  const r = t.document, s = t.document.head;
131
131
  let o = t[e];
132
132
  return o ? o.default || o : new Promise((a, i) => {
@@ -140,8 +140,8 @@ async function Te(n, e, t = window) {
140
140
  }
141
141
  });
142
142
  }
143
- function Ae(n) {
144
- return W(n) || W(n?.install);
143
+ function Be(n) {
144
+ return X(n) || X(n?.install);
145
145
  }
146
146
  function R(n, e, t = !1, r = !1) {
147
147
  try {
@@ -157,7 +157,7 @@ function R(n, e, t = !1, r = !1) {
157
157
  throw s;
158
158
  }
159
159
  }
160
- function G(n, e, t = !1, r = !1) {
160
+ function Q(n, e, t = !1, r = !1) {
161
161
  const s = R(n, e, t, r);
162
162
  if (typeof s != "function" && (O.error(
163
163
  "parseFunction.error",
@@ -174,14 +174,14 @@ function w(n) {
174
174
  function T(n) {
175
175
  return typeof n == "object" && n && n.type === "JSFunction";
176
176
  }
177
- function Be(n) {
177
+ function Ne(n) {
178
178
  return w(n) || T(n);
179
179
  }
180
- function It(n) {
181
- return Be(n) ? n.value : JSON.stringify(n);
180
+ function Ht(n) {
181
+ return Ne(n) ? n.value : JSON.stringify(n);
182
182
  }
183
183
  let P = null;
184
- const Ne = he({
184
+ const Ue = ve({
185
185
  settings: {
186
186
  type: "form",
187
187
  validSuccess: !0,
@@ -190,12 +190,12 @@ const Ne = he({
190
190
  validate: (n) => n.data?.code === 0 || !!n.data?.success,
191
191
  failMessage: !0,
192
192
  showError: (n) => {
193
- q.error({
193
+ J.error({
194
194
  message: n || "未知错误"
195
195
  });
196
196
  },
197
197
  showLoading: () => {
198
- P && P.close(), P = be.service({
198
+ P && P.close(), P = Re.service({
199
199
  lock: !0,
200
200
  text: "Loading",
201
201
  background: "rgba(0, 0, 0, 0.05)"
@@ -206,7 +206,7 @@ const Ne = he({
206
206
  }
207
207
  }
208
208
  });
209
- function Ue(n, e) {
209
+ function qe(n, e) {
210
210
  const { jsonp: t, request: r } = e;
211
211
  if (n.method === "jsonp")
212
212
  return (s = {}) => t(n.url, {
@@ -222,36 +222,36 @@ function Ue(n, e) {
222
222
  headers: s
223
223
  }
224
224
  };
225
- return (a, i) => r.send(ve(o, i || {}, { data: a }));
225
+ return (a, i) => r.send(ye(o, i || {}, { data: a }));
226
226
  }
227
227
  }
228
- function qe(n = [], e) {
228
+ function Je(n = [], e) {
229
229
  return n.reduce(
230
- (t, r) => (t[r.id] = Ue(r, e), t),
230
+ (t, r) => (t[r.id] = qe(r, e), t),
231
231
  {}
232
232
  );
233
233
  }
234
- function Je(n = []) {
234
+ function Ve(n = []) {
235
235
  D.setup({
236
236
  timeout: "50-500"
237
- }), oe(), n.forEach((e) => Ve(e));
237
+ }), ie(), n.forEach((e) => Le(e));
238
238
  }
239
- function Ve(n) {
239
+ function Le(n) {
240
240
  if (!n.mock)
241
241
  return;
242
242
  const { url: e, mockTemplate: t } = n;
243
243
  if (e && t) {
244
- const r = ye(`${e}(.*)`), s = ge(e, { decode: decodeURIComponent }), o = R(t, {}, !0);
244
+ const r = ge(`${e}(.*)`), s = _e(e, { decode: decodeURIComponent }), o = R(t, {}, !0);
245
245
  D.mock(r, (a) => {
246
- const i = F.parse(a.url) || {}, l = a.body instanceof FormData ? _e(a.body) : a.body, c = s(a.url)?.params;
246
+ const i = F.parse(a.url) || {}, l = a.body instanceof FormData ? we(a.body) : a.body, c = s(a.url)?.params;
247
247
  return Object.assign(a, { data: l, params: i, query: c }), D.mock(o(a));
248
248
  });
249
249
  }
250
250
  }
251
- function oe() {
251
+ function ie() {
252
252
  D._mocked = {};
253
253
  }
254
- class Le {
254
+ class Ke {
255
255
  __id = null;
256
256
  __mode;
257
257
  __instance = null;
@@ -293,12 +293,12 @@ class Le {
293
293
  });
294
294
  }
295
295
  __proxy() {
296
- this.__instance && z.forEach((e) => {
296
+ this.__instance && G.forEach((e) => {
297
297
  this[e] = this.__instance?.[e];
298
298
  });
299
299
  }
300
300
  __cleanup() {
301
- z.forEach((e) => {
301
+ G.forEach((e) => {
302
302
  this[e] = null;
303
303
  });
304
304
  }
@@ -306,9 +306,9 @@ class Le {
306
306
  if (e)
307
307
  if (this.__mode === _.Runtime) {
308
308
  const { id: t, type: r } = e, s = t ? this.__transform[t] ?? e.value : e.value;
309
- return G({ type: r, value: s }, this);
309
+ return Q({ type: r, value: s }, this);
310
310
  } else
311
- return G(e, this);
311
+ return Q(e, this);
312
312
  }
313
313
  __parseExpression(e) {
314
314
  if (e)
@@ -347,7 +347,7 @@ class Le {
347
347
  return r.context.__proto__ = this.context, r.__proto__ = this, r;
348
348
  }
349
349
  }
350
- function B(n) {
350
+ function N(n) {
351
351
  const {
352
352
  Vue: e = k,
353
353
  mode: t = _.Runtime,
@@ -359,22 +359,22 @@ function B(n) {
359
359
  $components: r,
360
360
  $libs: s,
361
361
  $apis: o
362
- }, c = new Le({
362
+ }, c = new Ke({
363
363
  mode: t,
364
364
  dsl: i.value,
365
365
  attrs: l
366
366
  }), d = e.defineComponent({
367
367
  name: i.value.name,
368
368
  props: {
369
- ...Ke(i.value.props ?? [], c)
369
+ ...We(i.value.props ?? [], c)
370
370
  },
371
371
  setup(p) {
372
- c.$props = p, c.props = p, i.value.id && ne(
372
+ c.$props = p, c.props = p, i.value.id && se(
373
373
  n.window || window,
374
374
  i.value.id,
375
375
  i.value.css || ""
376
- ), c.state = We(e, i.value.state ?? {}, c);
377
- const f = Xe(e, i.value.computed ?? {}, c), h = Ye(i.value.methods ?? {}, c), m = ze(e, i.value.inject, c), v = Ge(
376
+ ), c.state = Xe(e, i.value.state ?? {}, c);
377
+ const f = Ye(e, i.value.computed ?? {}, c), h = ze(i.value.methods ?? {}, c), m = Ge(e, i.value.inject, c), v = Qe(
378
378
  i.value.dataSources || {},
379
379
  c
380
380
  ), u = {
@@ -383,7 +383,7 @@ function B(n) {
383
383
  ...h,
384
384
  ...v
385
385
  };
386
- return c.setup(u, e), Qe(e, i.value.watch ?? [], c), {
386
+ return c.setup(u, e), Ze(e, i.value.watch ?? [], c), {
387
387
  vtj: c
388
388
  };
389
389
  },
@@ -395,16 +395,16 @@ function B(n) {
395
395
  const p = i.value.nodes || [];
396
396
  return p.length === 1 ? M(p[0], c, e, a) : p.map((f) => M(f, c, e, a));
397
397
  },
398
- ...Ze(i.value.lifeCycles ?? {}, c)
398
+ ...et(i.value.lifeCycles ?? {}, c)
399
399
  });
400
400
  return {
401
401
  renderer: e.markRaw(d),
402
402
  context: c
403
403
  };
404
404
  }
405
- function Ke(n = [], e) {
406
- const t = (r) => r ? (Array.isArray(r) ? r : [r]).map((o) => xe[o]) : void 0;
407
- return n.map((r) => C(r) ? {
405
+ function We(n = [], e) {
406
+ const t = (r) => r ? (Array.isArray(r) ? r : [r]).map((o) => Oe[o]) : void 0;
407
+ return n.map((r) => b(r) ? {
408
408
  name: r
409
409
  } : {
410
410
  name: r.name,
@@ -420,7 +420,7 @@ function Ke(n = [], e) {
420
420
  {}
421
421
  );
422
422
  }
423
- function We(n, e, t) {
423
+ function Xe(n, e, t) {
424
424
  return n.reactive(
425
425
  Object.keys(e || {}).reduce(
426
426
  (r, s) => {
@@ -431,19 +431,19 @@ function We(n, e, t) {
431
431
  )
432
432
  );
433
433
  }
434
- function Xe(n, e, t) {
434
+ function Ye(n, e, t) {
435
435
  return Object.entries(e ?? {}).reduce(
436
436
  (r, [s, o]) => (r[s] = n.computed(t.__parseFunction(o)), r),
437
437
  {}
438
438
  );
439
439
  }
440
- function Ye(n, e) {
440
+ function ze(n, e) {
441
441
  return Object.entries(n ?? {}).reduce(
442
442
  (t, [r, s]) => (t[r] = e.__parseFunction(s), t),
443
443
  {}
444
444
  );
445
445
  }
446
- function ze(n, e = [], t) {
446
+ function Ge(n, e = [], t) {
447
447
  return e.reduce(
448
448
  (r, s) => {
449
449
  const { name: o, from: a } = s || {};
@@ -454,7 +454,7 @@ function ze(n, e = [], t) {
454
454
  {}
455
455
  );
456
456
  }
457
- function Ge(n, e) {
457
+ function Qe(n, e) {
458
458
  return Object.keys(n).reduce(
459
459
  (t, r) => {
460
460
  const s = n[r], o = e.$apis[s.ref], a = T(s.transform) ? s.transform.value ? e.__parseFunction(s.transform) : void 0 : s.transform;
@@ -466,7 +466,7 @@ function Ge(n, e) {
466
466
  {}
467
467
  );
468
468
  }
469
- function Qe(n, e = [], t) {
469
+ function Ze(n, e = [], t) {
470
470
  e.forEach((r) => {
471
471
  n.watch(
472
472
  t.__parseExpression(r.source),
@@ -478,20 +478,21 @@ function Qe(n, e = [], t) {
478
478
  );
479
479
  });
480
480
  }
481
- function Ze(n, e) {
481
+ function et(n, e) {
482
482
  return Object.entries(n ?? {}).reduce(
483
483
  (t, [r, s]) => (t[r] = e.__parseFunction(s), t),
484
484
  {}
485
485
  );
486
486
  }
487
- const et = (n) => n;
488
- async function ie(n, e = window) {
489
- const { urls: t = [], library: r } = n, s = t.filter((l) => V(l));
487
+ let A = [];
488
+ const tt = (n) => n;
489
+ async function ae(n, e = window) {
490
+ const { urls: t = [], library: r } = n, s = t.filter((l) => L(l));
490
491
  if (s.length === 0 || !r)
491
492
  return null;
492
- const o = t.filter((l) => J(l));
493
+ const o = t.filter((l) => V(l));
493
494
  let a;
494
- const i = await Te(s, r, e).catch(
495
+ const i = await Ae(s, r, e).catch(
495
496
  () => null
496
497
  );
497
498
  return i?.plugin && (a = i.plugin), a ? {
@@ -499,55 +500,57 @@ async function ie(n, e = window) {
499
500
  css: o
500
501
  } : null;
501
502
  }
502
- function N(n) {
503
+ function U(n) {
503
504
  const { getDsl: e, getDslByUrl: t, options: r } = n;
504
- return (s, o, a = k) => !o || typeof o == "string" ? s : o.type === "Schema" && o.id ? a.defineAsyncComponent(async () => {
505
+ return r.window && (A.forEach((s) => {
506
+ delete r.window[s];
507
+ }), A = []), (s, o, a = k) => !o || typeof o == "string" ? s : o.type === "Schema" && o.id ? a.defineAsyncComponent(async () => {
505
508
  const i = await e(o.id);
506
- return i && (i.name = s), i ? B({
509
+ return i && (i.name = s), i ? N({
507
510
  ...r,
508
511
  Vue: a,
509
512
  dsl: i,
510
513
  mode: _.Runtime,
511
- loader: N(n)
514
+ loader: U(n)
512
515
  }).renderer : null;
513
516
  }) : o.type === "UrlSchema" && o.url ? a.defineAsyncComponent(async () => {
514
517
  const i = await t(o.url);
515
- return i && (i.name = s), i ? B({
518
+ return i && (i.name = s), i ? N({
516
519
  ...r,
517
520
  Vue: a,
518
521
  dsl: i,
519
522
  mode: _.Runtime,
520
- loader: N(n)
523
+ loader: U(n)
521
524
  }).renderer : null;
522
- }) : o.type === "Plugin" ? a.defineAsyncComponent(async () => {
523
- const i = await ie(o, r.window);
524
- return i ? (se(i.css), i.component) : null;
525
- }) : s;
525
+ }) : o.type === "Plugin" ? (o.library && A.push(o.library), a.defineAsyncComponent(async () => {
526
+ const i = await ae(o, r.window);
527
+ return i ? (oe(i.css, r.window), i.component) : null;
528
+ })) : s;
526
529
  }
527
- function M(n, e, t = k, r = et) {
530
+ function M(n, e, t = k, r = tt) {
528
531
  if (!n || !n.name || n.invisible)
529
532
  return null;
530
- const { id: s = null, directives: o = [] } = n, { vIf: a, vFor: i, vShow: l, vModels: c, vBind: d } = tt(o);
531
- if (a && !rt(a, e))
533
+ const { id: s = null, directives: o = [] } = n, { vIf: a, vFor: i, vShow: l, vModels: c, vBind: d } = rt(o);
534
+ if (a && !nt(a, e))
532
535
  return null;
533
536
  const p = (f) => {
534
537
  const h = f.$components, m = (() => {
535
538
  if (n.name === "component")
536
- return nt(f, n.props?.is);
539
+ return st(f, n.props?.is);
537
540
  if (n.name === "slot")
538
541
  return n.name;
539
542
  const g = r(n.name, n.from, t);
540
- return C(g) ? h[g] ?? g : g;
541
- })(), v = st(s, n.props ?? {}, f), u = ot(t, n.events ?? {}, f);
543
+ return b(g) ? h[g] ?? g : g;
544
+ })(), v = ot(s, n.props ?? {}, f), u = it(t, n.events ?? {}, f);
542
545
  if (n.name === "slot")
543
- return it(t, n, v, f, r);
546
+ return at(t, n, v, f, r);
544
547
  d && Object.assign(v, f.__parseExpression(d.value)), l && (v.style = Object.assign(
545
548
  v.style ?? {},
546
- ct(l, f)
549
+ lt(l, f)
547
550
  )), c.forEach((g) => {
548
- Object.assign(v, lt(t, g, f));
551
+ Object.assign(v, ut(t, g, f));
549
552
  });
550
- const S = ut(
553
+ const S = pt(
551
554
  t,
552
555
  n.children ?? [],
553
556
  f,
@@ -556,11 +559,11 @@ function M(n, e, t = k, r = et) {
556
559
  );
557
560
  return t.createVNode(m, { ...v, ...u }, S);
558
561
  };
559
- return i ? dt(i, p, e) : p(e);
562
+ return i ? mt(i, p, e) : p(e);
560
563
  }
561
- function tt(n = []) {
564
+ function rt(n = []) {
562
565
  const e = n.find((i) => E(i.name) === "vIf"), t = n.find((i) => E(i.name) === "vFor"), r = n.find((i) => E(i.name) === "vShow"), s = n.find((i) => E(i.name) === "vBind"), o = n.filter((i) => E(i.name) === "vModel"), a = n.filter(
563
- (i) => !He.includes(E(i.name))
566
+ (i) => !xe.includes(E(i.name))
564
567
  );
565
568
  return {
566
569
  vIf: e,
@@ -571,13 +574,13 @@ function tt(n = []) {
571
574
  others: a
572
575
  };
573
576
  }
574
- function rt(n, e) {
577
+ function nt(n, e) {
575
578
  return !!e.__parseExpression(n.value);
576
579
  }
577
- function nt(n, e) {
580
+ function st(n, e) {
578
581
  return e ? w(e) ? n.__parseExpression(e) : e : "div";
579
582
  }
580
- function st(n, e, t) {
583
+ function ot(n, e, t) {
581
584
  const r = Object.keys(e || {}).reduce(
582
585
  (s, o) => {
583
586
  let a = e[o];
@@ -587,7 +590,7 @@ function st(n, e, t) {
587
590
  );
588
591
  return r.ref = t.__ref(n, r.ref), r;
589
592
  }
590
- function ot(n, e, t) {
593
+ function it(n, e, t) {
591
594
  const r = ["passive", "capture", "once"], s = {
592
595
  capture: "Capture",
593
596
  once: "Once",
@@ -595,63 +598,63 @@ function ot(n, e, t) {
595
598
  };
596
599
  return Object.keys(e || {}).reduce(
597
600
  (o, a) => {
598
- const i = e[a], l = ae(i.modifiers), c = l.find((f) => r.includes(f)), d = "on" + we(a) + (c && s[c] || ""), p = t.__parseFunction(i.handler);
601
+ const i = e[a], l = ce(i.modifiers), c = l.find((f) => r.includes(f)), d = "on" + Se(a) + (c && s[c] || ""), p = t.__parseFunction(i.handler);
599
602
  return p && (o[d] = n.withModifiers(p, l)), o;
600
603
  },
601
604
  {}
602
605
  );
603
606
  }
604
- function ae(n = {}, e = !1) {
607
+ function ce(n = {}, e = !1) {
605
608
  const t = Object.keys(n);
606
609
  return e ? t.map((r) => "." + r) : t;
607
610
  }
608
- function it(n, e, t, r, s) {
609
- const { children: o } = e, a = at(e, r), i = r.$slots?.[a.name];
610
- return i ? i(t) : o ? C(o) ? n.createTextVNode(o) : w(o) ? n.createTextVNode(
611
- re(r.__parseExpression(o))
611
+ function at(n, e, t, r, s) {
612
+ const { children: o } = e, a = ct(e, r), i = r.$slots?.[a.name];
613
+ return i ? i(t) : o ? b(o) ? n.createTextVNode(o) : w(o) ? n.createTextVNode(
614
+ ne(r.__parseExpression(o))
612
615
  ) : Array.isArray(o) ? o.map(
613
616
  (l) => M(l, r, n, s)
614
617
  ) : null : null;
615
618
  }
616
- function at(n, e) {
619
+ function ct(n, e) {
617
620
  const { props: t } = n, r = t?.name || "default";
618
621
  return {
619
622
  name: w(r) ? e.__parseExpression(r) : r,
620
623
  params: []
621
624
  };
622
625
  }
623
- function ct(n, e) {
626
+ function lt(n, e) {
624
627
  return e.__parseExpression(n.value) ? {} : {
625
628
  display: "none"
626
629
  };
627
630
  }
628
- function lt(n, e, t) {
631
+ function ut(n, e, t) {
629
632
  const r = {
630
633
  type: "JSFunction",
631
634
  value: e.value?.value ? `(v) => {
632
635
  ${e.value.value} = v;
633
636
  }` : "(v) => {}"
634
- }, s = t.__parseFunction(r), o = ae(e.modifiers), a = w(e.arg) ? t.__parseExpression(e.arg) : e.arg || "modelValue";
637
+ }, s = t.__parseFunction(r), o = ce(e.modifiers), a = w(e.arg) ? t.__parseExpression(e.arg) : e.arg || "modelValue";
635
638
  return {
636
639
  [a]: t.__parseExpression(e.value),
637
640
  [`onUpdate:${a}`]: o.length && s ? n.withModifiers(s, o) : s
638
641
  };
639
642
  }
640
- function ut(n, e, t, r, s) {
643
+ function pt(n, e, t, r, s) {
641
644
  if (!e)
642
645
  return null;
643
- if (C(e))
646
+ if (b(e))
644
647
  return { default: () => e };
645
648
  if (w(e))
646
649
  return {
647
- default: () => re(t.__parseExpression(e))
650
+ default: () => ne(t.__parseExpression(e))
648
651
  };
649
652
  if (Array.isArray(e) && e.length > 0) {
650
- const o = pt(e), a = (i) => !i || !s ? {} : s?.id && Object.keys(i).length ? {
653
+ const o = ft(e), a = (i) => !i || !s ? {} : s?.id && Object.keys(i).length ? {
651
654
  [`scope_${s.id}`]: i
652
655
  } : {};
653
656
  return Object.entries(o).reduce((i, [l, { nodes: c, params: d }]) => (i[l] = (p) => {
654
- const f = d.length ? Se(p ?? {}, d) : a(p);
657
+ const f = d.length ? $e(p ?? {}, d) : a(p);
655
658
  return c.map(
656
659
  (h) => M(h, t.__clone(f), n, r)
657
660
  );
@@ -659,7 +662,7 @@ function ut(n, e, t, r, s) {
659
662
  }
660
663
  return null;
661
664
  }
662
- function pt(n) {
665
+ function ft(n) {
663
666
  const e = {
664
667
  default: {
665
668
  params: [],
@@ -667,7 +670,7 @@ function pt(n) {
667
670
  }
668
671
  };
669
672
  for (const t of n) {
670
- const r = ft(t.slot), s = r.name;
673
+ const r = dt(t.slot), s = r.name;
671
674
  e[s] ? (e[s].nodes.push(t), e[s].params = e[s].params.concat(r.params)) : e[s] = {
672
675
  nodes: [t],
673
676
  params: r.params
@@ -675,19 +678,19 @@ function pt(n) {
675
678
  }
676
679
  return e;
677
680
  }
678
- function ft(n = "default") {
679
- return C(n) ? { name: n, params: [] } : { params: [], ...n };
681
+ function dt(n = "default") {
682
+ return b(n) ? { name: n, params: [] } : { params: [], ...n };
680
683
  }
681
- function dt(n, e, t) {
684
+ function mt(n, e, t) {
682
685
  const { value: r, iterator: s } = n, { item: o = "item", index: a = "index" } = s || {};
683
686
  let i = t.__parseExpression(r) || [];
684
687
  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]:", `${r?.value} is not a Arrary`), []);
685
688
  }
686
- const Q = ee({
689
+ const Z = te({
687
690
  name: "VtjPageContainer",
688
691
  async setup() {
689
- const n = le(), e = te(), t = e.params.id, r = t ? n.getPage(t) : n.getHomepage(), s = r ? await n.getRenderComponent(r.id) : null;
690
- return r && Re(r.title || "VTJ"), {
692
+ const n = ue(), e = re(), t = e.params.id, r = t ? n.getPage(t) : n.getHomepage(), s = r ? await n.getRenderComponent(r.id) : null;
693
+ return r && Ie(r.title || "VTJ"), {
691
694
  provider: n,
692
695
  component: s,
693
696
  file: r,
@@ -695,19 +698,19 @@ const Q = ee({
695
698
  };
696
699
  },
697
700
  render() {
698
- return this.component ? A(this.component, this.query) : A("div", "页面不存在");
701
+ return this.component ? B(this.component, this.query) : B("div", "页面不存在");
699
702
  }
700
- }), mt = ee({
703
+ }), ht = te({
701
704
  name: "VtjStartupContainer",
702
705
  render() {
703
- return A(Ie);
706
+ return B(He);
704
707
  }
705
- }), ce = Symbol("Provider");
706
- class ht extends pe {
708
+ }), le = Symbol("Provider");
709
+ class vt extends fe {
707
710
  mode;
708
711
  globals = {};
709
712
  modules = {};
710
- adapter = { request: Ne, jsonp: $e };
713
+ adapter = { request: Ue, jsonp: je };
711
714
  apis = {};
712
715
  dependencies = {};
713
716
  materials = {};
@@ -746,7 +749,7 @@ class ht extends pe {
746
749
  materials: p,
747
750
  materialExports: f,
748
751
  materialMapLibrary: h
749
- } = De(r, l), m = window;
752
+ } = Me(r, l), m = window;
750
753
  m.CKEDITOR_VERSION = void 0;
751
754
  for (const u of c) {
752
755
  const S = o[u], g = m[u];
@@ -757,14 +760,15 @@ class ht extends pe {
757
760
  else {
758
761
  const $ = d[u] || [];
759
762
  for (const j of $)
760
- J(j) && await ke(u, F.append(j, { v: b })), V(j) && await X(F.append(j, { v: b })), a[u] = m[u];
763
+ V(j) && await Te(u, F.append(j, { v: C })), L(j) && await Y(F.append(j, { v: C }));
764
+ a[u] = m[u];
761
765
  }
762
766
  }
763
767
  for (const u of p)
764
- await X(F.append(u, { v: b }));
768
+ await Y(F.append(u, { v: C }));
765
769
  const v = this.materials || {};
766
770
  for (const u of f) {
767
- const S = m[h[u]], g = fe[u];
771
+ const S = m[h[u]], g = de[u];
768
772
  if (g)
769
773
  S && g.forEach(($) => {
770
774
  i[$] = S[$];
@@ -772,29 +776,29 @@ class ht extends pe {
772
776
  else {
773
777
  const $ = v[u] ? (await v[u]()).default : m[u];
774
778
  $ && S && ($.components || []).forEach((j) => {
775
- i[j.name] = Me(j, S);
779
+ i[j.name] = ke(j, S);
776
780
  });
777
781
  }
778
782
  }
779
- s && (this.apis = qe(s, this.adapter), oe(), this.project.config?.mock && Je(s)), this.initRouter(), this.triggerReady();
783
+ s && (this.apis = Je(s, this.adapter), ie(), this.project.config?.mock && Ve(s)), this.initRouter(), this.triggerReady();
780
784
  }
781
785
  initRouter() {
782
786
  const { router: e, project: t } = this;
783
787
  e && (e.addRoute({
784
788
  path: "/page/:id",
785
789
  name: "VtjPage",
786
- component: Q
790
+ component: Z
787
791
  }), e.addRoute({
788
792
  path: "/",
789
793
  name: "VtjHomepage",
790
- component: t?.homepage ? Q : mt
794
+ component: t?.homepage ? Z : ht
791
795
  }));
792
796
  }
793
797
  install(e) {
794
798
  const t = e.config.globalProperties.installed || {};
795
799
  for (const [r, s] of Object.entries(this.library))
796
- !t[r] && Ae(s) && (e.use(s), t[r] = !0);
797
- e.provide(ce, this), e.config.globalProperties.installed = t;
800
+ !t[r] && Be(s) && (e.use(s), t[r] = !0);
801
+ e.provide(le, this), e.config.globalProperties.installed = t;
798
802
  }
799
803
  getFile(e) {
800
804
  const { blocks: t = [] } = this.project || {};
@@ -842,12 +846,12 @@ class ht extends pe {
842
846
  apis: a,
843
847
  window,
844
848
  ...t
845
- }, l = N({
849
+ }, l = U({
846
850
  getDsl: async (c) => await this.getDsl(c) || null,
847
851
  getDslByUrl: async (c) => await this.getDslByUrl(c) || null,
848
852
  options: i
849
853
  });
850
- return B({
854
+ return N({
851
855
  ...i,
852
856
  dsl: e,
853
857
  loader: l
@@ -864,34 +868,34 @@ class ht extends pe {
864
868
  return o ? this.createDslRenderer(o).renderer : (O.warn(`Can not find dsl: ${e}`), null);
865
869
  }
866
870
  defineUrlSchemaComponent(e, t) {
867
- return Y(async () => {
871
+ return z(async () => {
868
872
  const r = await this.getDslByUrl(e);
869
873
  return r ? (r.name = t || r.name, this.createDslRenderer(r).renderer) : null;
870
874
  });
871
875
  }
872
876
  definePluginComponent(e) {
873
- return Y(async () => {
874
- const t = await ie(e, window);
875
- return t ? (se(t.css), t.component) : null;
877
+ return z(async () => {
878
+ const t = await ae(e, window);
879
+ return t ? (oe(t.css), t.component) : null;
876
880
  });
877
881
  }
878
882
  }
879
- function Ht(n) {
880
- const e = new ht(n);
883
+ function xt(n) {
884
+ const e = new vt(n);
881
885
  return {
882
886
  provider: e,
883
887
  onReady: (r) => e.ready(r)
884
888
  };
885
889
  }
886
- function le(n = {}) {
887
- const e = Pe(ce);
890
+ function ue(n = {}) {
891
+ const e = Fe(le);
888
892
  if (!e)
889
893
  throw new Error("Can not find provider");
890
894
  if (e.mode === _.Raw && e.nodeEnv === "development") {
891
895
  const { id: t, version: r } = n;
892
896
  t && r && (async () => {
893
897
  const s = await e.getDsl(t);
894
- s?.__VERSION__ !== r && q.warning({
898
+ s?.__VERSION__ !== r && J.warning({
895
899
  title: s?.name,
896
900
  message: "当前组件源码版本与运行时版本不一致,请重新发布组件"
897
901
  });
@@ -899,7 +903,7 @@ function le(n = {}) {
899
903
  }
900
904
  return e;
901
905
  }
902
- const L = new je({
906
+ const K = new Ee({
903
907
  settings: {
904
908
  type: "json",
905
909
  validSuccess: !0,
@@ -907,12 +911,12 @@ const L = new je({
907
911
  failMessage: !0,
908
912
  validate: (n) => n.data?.code === 0,
909
913
  showError: (n) => {
910
- q.error({
914
+ J.error({
911
915
  message: n || "未知错误"
912
916
  });
913
917
  }
914
918
  }
915
- }), vt = (n = "/vtj/local/repository/${type}.json") => (e, t) => L.send({
919
+ }), yt = (n = "/vtj/local/repository/${type}.json") => (e, t) => K.send({
916
920
  url: n,
917
921
  method: "post",
918
922
  query: { type: e },
@@ -920,7 +924,7 @@ const L = new je({
920
924
  type: e,
921
925
  data: t
922
926
  }
923
- }), yt = (n = "/vtj/local/repository/uploader.json") => async (e, t) => await L.send({
927
+ }), gt = (n = "/vtj/local/repository/uploader.json") => async (e, t) => await K.send({
924
928
  url: n,
925
929
  method: "post",
926
930
  data: {
@@ -931,12 +935,12 @@ const L = new je({
931
935
  type: "data"
932
936
  }
933
937
  }).then((r) => r && r[0] ? r[0] : null).catch(() => null);
934
- class K {
938
+ class W {
935
939
  api;
936
940
  pluginCaches = {};
937
941
  uploader;
938
942
  constructor() {
939
- this.api = vt(), this.uploader = yt();
943
+ this.api = yt(), this.uploader = gt();
940
944
  }
941
945
  async init(e) {
942
946
  return console.log("BaseService.init", e), {};
@@ -1006,11 +1010,11 @@ class K {
1006
1010
  return await this.api("clearStaticFiles", e).catch(() => "");
1007
1011
  }
1008
1012
  async getPluginMaterial(e) {
1009
- const { urls: t = [] } = e, r = t.filter((o) => Oe(o))[0];
1013
+ const { urls: t = [] } = e, r = t.filter((o) => De(o))[0];
1010
1014
  if (!r)
1011
1015
  return null;
1012
1016
  const s = this.pluginCaches[r];
1013
- return s || (this.pluginCaches[r] = L.send({
1017
+ return s || (this.pluginCaches[r] = K.send({
1014
1018
  url: r,
1015
1019
  method: "get",
1016
1020
  settings: {
@@ -1020,12 +1024,12 @@ class K {
1020
1024
  }).then((o) => o.data).catch(() => null));
1021
1025
  }
1022
1026
  }
1023
- const y = new Ee({
1027
+ const y = new Pe({
1024
1028
  type: "local",
1025
1029
  expired: 0,
1026
1030
  prefix: "__VTJ_"
1027
1031
  });
1028
- class xt extends K {
1032
+ class Ot extends W {
1029
1033
  init(e) {
1030
1034
  const t = new x(e), r = y.get(`project_${t.id}`), s = Object.assign(t.toDsl(), r || {});
1031
1035
  return y.save(`project_${t.id}`, s), Promise.resolve(s);
@@ -1035,7 +1039,7 @@ class xt extends K {
1035
1039
  return y.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
1036
1040
  }
1037
1041
  saveMaterials(e, t) {
1038
- return y.save(`materials_${e.id}`, U(t)), Promise.resolve(!0);
1042
+ return y.save(`materials_${e.id}`, q(t)), Promise.resolve(!0);
1039
1043
  }
1040
1044
  saveFile(e) {
1041
1045
  return y.save(`file_${e.id}`, e), Promise.resolve(!0);
@@ -1059,7 +1063,7 @@ class xt extends K {
1059
1063
  return Promise.resolve(!0);
1060
1064
  }
1061
1065
  getHistory(e) {
1062
- const t = y.get(`history_${e}`), r = new Z(t || { id: e });
1066
+ const t = y.get(`history_${e}`), r = new ee(t || { id: e });
1063
1067
  return Promise.resolve(r.toDsl());
1064
1068
  }
1065
1069
  getHistoryItem(e, t) {
@@ -1075,7 +1079,7 @@ class xt extends K {
1075
1079
  }), Promise.resolve(!0);
1076
1080
  }
1077
1081
  }
1078
- class gt extends K {
1082
+ class _t extends W {
1079
1083
  projects = {};
1080
1084
  materials = {};
1081
1085
  files = {};
@@ -1090,7 +1094,7 @@ class gt extends K {
1090
1094
  return this.projects[t.id] = t.toDsl(), Promise.resolve(!0);
1091
1095
  }
1092
1096
  saveMaterials(e, t) {
1093
- return e.id && (this.materials[e.id] = U(t)), Promise.resolve(!0);
1097
+ return e.id && (this.materials[e.id] = q(t)), Promise.resolve(!0);
1094
1098
  }
1095
1099
  saveFile(e) {
1096
1100
  return this.files[e.id] = e, Promise.resolve(!0);
@@ -1114,7 +1118,7 @@ class gt extends K {
1114
1118
  return Promise.resolve(!0);
1115
1119
  }
1116
1120
  getHistory(e) {
1117
- const t = this.histories[e], r = new Z(t || { id: e });
1121
+ const t = this.histories[e], r = new ee(t || { id: e });
1118
1122
  return Promise.resolve(r);
1119
1123
  }
1120
1124
  getHistoryItem(e, t) {
@@ -1133,10 +1137,10 @@ class gt extends K {
1133
1137
  }
1134
1138
  }
1135
1139
  let H = null;
1136
- function Ot() {
1137
- return H || (H = new gt(), H);
1140
+ function Dt() {
1141
+ return H || (H = new _t(), H);
1138
1142
  }
1139
- class Dt extends K {
1143
+ class Mt extends W {
1140
1144
  getFileCaches = {};
1141
1145
  async init(e) {
1142
1146
  return await this.api("init", e).catch(() => null) || {};
@@ -1147,7 +1151,7 @@ class Dt extends K {
1147
1151
  async saveMaterials(e, t) {
1148
1152
  return !!await this.api("saveMaterials", {
1149
1153
  project: e,
1150
- materials: U(t)
1154
+ materials: q(t)
1151
1155
  }).catch(() => !1);
1152
1156
  }
1153
1157
  async saveFile(e) {
@@ -1187,7 +1191,7 @@ class Dt extends K {
1187
1191
  );
1188
1192
  }
1189
1193
  }
1190
- function ue(n = []) {
1194
+ function pe(n = []) {
1191
1195
  return n.map((e) => {
1192
1196
  const { id: t, title: r, icon: s, children: o, hidden: a } = e;
1193
1197
  return {
@@ -1196,12 +1200,12 @@ function ue(n = []) {
1196
1200
  icon: s,
1197
1201
  hidden: a,
1198
1202
  url: `/page/${t}`,
1199
- children: o && o.length ? ue(o) : void 0
1203
+ children: o && o.length ? pe(o) : void 0
1200
1204
  };
1201
1205
  });
1202
1206
  }
1203
- function Mt() {
1204
- const n = le(), e = te(), t = Fe(!1), r = n.project;
1207
+ function kt() {
1208
+ const n = ue(), e = re(), t = be(!1), r = n.project;
1205
1209
  Ce(() => {
1206
1210
  const { name: a, params: i, meta: l } = e;
1207
1211
  if (a === "VtjPage") {
@@ -1213,7 +1217,7 @@ function Mt() {
1213
1217
  } else
1214
1218
  t.value = !l.mask;
1215
1219
  });
1216
- const s = ue(r?.pages), o = r?.config;
1220
+ const s = pe(r?.pages), o = r?.config;
1217
1221
  return {
1218
1222
  disabled: t,
1219
1223
  logo: o?.logo,
@@ -1223,53 +1227,53 @@ function Mt() {
1223
1227
  };
1224
1228
  }
1225
1229
  export {
1226
- He as BUILT_IN_DIRECTIVES,
1227
- K as BaseService,
1228
- z as CONTEXT_HOST,
1229
- Le as Context,
1230
+ xe as BUILT_IN_DIRECTIVES,
1231
+ W as BaseService,
1232
+ G as CONTEXT_HOST,
1233
+ Ke as Context,
1230
1234
  _ as ContextMode,
1231
- xe as DATA_TYPES,
1232
- It as JSCodeToString,
1235
+ Oe as DATA_TYPES,
1236
+ Ht as JSCodeToString,
1233
1237
  Ct as LIFE_CYCLES_LIST,
1234
- Dt as LocalService,
1235
- gt as MemoryService,
1236
- ht as Provider,
1237
- xt as StorageService,
1238
- b as VTJ_RENDERER_VERSION,
1239
- ne as adoptedStyleSheets,
1240
- bt as createAssetScripts,
1241
- Rt as createAssetsCss,
1242
- Ge as createDataSources,
1243
- N as createLoader,
1244
- Ot as createMemoryService,
1245
- Ht as createProvider,
1246
- B as createRenderer,
1247
- Ue as createSchemaApi,
1248
- qe as createSchemaApis,
1249
- et as defaultLoader,
1238
+ Mt as LocalService,
1239
+ _t as MemoryService,
1240
+ vt as Provider,
1241
+ Ot as StorageService,
1242
+ C as VTJ_RENDERER_VERSION,
1243
+ se as adoptedStyleSheets,
1244
+ Rt as createAssetScripts,
1245
+ It as createAssetsCss,
1246
+ Qe as createDataSources,
1247
+ U as createLoader,
1248
+ Dt as createMemoryService,
1249
+ xt as createProvider,
1250
+ N as createRenderer,
1251
+ qe as createSchemaApi,
1252
+ Je as createSchemaApis,
1253
+ tt as defaultLoader,
1250
1254
  I as fillBasePath,
1251
- ae as getModifiers,
1252
- ie as getPlugin,
1253
- Me as getRawComponent,
1254
- J as isCSSUrl,
1255
- Be as isJSCode,
1255
+ ce as getModifiers,
1256
+ ae as getPlugin,
1257
+ ke as getRawComponent,
1258
+ V as isCSSUrl,
1259
+ Ne as isJSCode,
1256
1260
  w as isJSExpression,
1257
1261
  T as isJSFunction,
1258
- Oe as isJSON,
1259
- V as isJSUrl,
1260
- Ae as isVuePlugin,
1261
- ke as loadCss,
1262
- se as loadCssUrl,
1263
- Te as loadScriptUrl,
1264
- Ve as mockApi,
1265
- Je as mockApis,
1266
- oe as mockCleanup,
1262
+ De as isJSON,
1263
+ L as isJSUrl,
1264
+ Be as isVuePlugin,
1265
+ Te as loadCss,
1266
+ oe as loadCssUrl,
1267
+ Ae as loadScriptUrl,
1268
+ Le as mockApi,
1269
+ Ve as mockApis,
1270
+ ie as mockCleanup,
1267
1271
  M as nodeRender,
1268
- De as parseDeps,
1272
+ Me as parseDeps,
1269
1273
  R as parseExpression,
1270
- G as parseFunction,
1271
- ce as providerKey,
1272
- re as toString,
1273
- Mt as useMask,
1274
- le as useProvider
1274
+ Q as parseFunction,
1275
+ le as providerKey,
1276
+ ne as toString,
1277
+ kt as useMask,
1278
+ ue as useProvider
1275
1279
  };
package/package.json CHANGED
@@ -1,25 +1,19 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.8.4",
4
+ "version": "0.8.6",
5
5
  "type": "module",
6
- "scripts": {
7
- "build": "vue-tsc && vite build",
8
- "test": "vitest run",
9
- "vitest": "vitest",
10
- "coverage": "vitest run --coverage"
11
- },
12
6
  "dependencies": {
13
- "@vtj/core": "^0.8.4",
14
- "@vtj/icons": "^0.8.4",
15
- "@vtj/ui": "^0.8.4",
16
- "@vtj/utils": "^0.8.4",
17
- "mockjs": "~1.1.0"
7
+ "mockjs": "~1.1.0",
8
+ "@vtj/core": "0.8.6",
9
+ "@vtj/icons": "0.8.6",
10
+ "@vtj/ui": "0.8.6",
11
+ "@vtj/utils": "0.8.6"
18
12
  },
19
13
  "devDependencies": {
20
- "@vtj/cli": "^0.8.2",
21
14
  "vue": "~3.4.15",
22
- "vue-router": "~4.3.0"
15
+ "vue-router": "~4.3.0",
16
+ "@vtj/cli": "0.8.2"
23
17
  },
24
18
  "exports": {
25
19
  ".": {
@@ -35,8 +29,14 @@
35
29
  "dist",
36
30
  "types"
37
31
  ],
38
- "gitHead": "a2174c3ec95f12c150d1451281dc9625c8dbb40f",
32
+ "gitHead": "d03843144f07c2d98c1e0c72c8c6eb1117c01722",
39
33
  "publishConfig": {
40
34
  "access": "public"
35
+ },
36
+ "scripts": {
37
+ "build": "vue-tsc && vite build",
38
+ "test": "vitest run",
39
+ "vitest": "vitest",
40
+ "coverage": "vitest run --coverage"
41
41
  }
42
- }
42
+ }
@@ -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.8.3
5
+ * @version 0.8.5
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.8.3";
8
+ export declare const version = "0.8.5";