@vtj/renderer 0.8.143 → 0.8.145
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 +5 -5
- package/dist/index.mjs +81 -81
- package/package.json +6 -6
- package/types/provider/apis.d.ts +2 -2
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("@vtj/core"),u=require("@vtj/utils"),m=require("vue"),
|
|
1
|
+
"use strict";var Ce=Object.create;var Q=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var Ie=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of be(e))!Fe.call(n,s)&&s!==t&&Q(n,s,{get:()=>e[s],enumerable:!(r=Pe(e,s))||r.enumerable});return n};var Oe=(n,e,t)=>(t=n!=null?Ce(Re(n)):{},Ie(e||!n||!n.__esModule?Q(t,"default",{value:n,enumerable:!0}):t,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("@vtj/core"),u=require("@vtj/utils"),m=require("vue"),ee=require("vue-router"),I=require("element-plus"),Me=require("@vtj/ui");function xe(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 D=xe(m);/**!
|
|
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.
|
|
5
|
+
* @version 0.8.145
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
|
-
*/const
|
|
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 q(n,e,t=!1,r=!1){const s=
|
|
7
|
+
*/const b="0.8.145";var $=(n=>(n.Runtime="Runtime",n.Design="Design",n.Raw="Raw",n.VNode="VNode",n))($||{});const U=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Te=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],te=["vIf","vShow","vModel","vFor","vBind"],ne={String,Number,Boolean,Array,Object,Function,Date};function F(n,e){return n.map(t=>u.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function A(n){return/\.css$/.test(n)}function k(n){return/\.js$/.test(n)}function re(n){return/\.json$/.test(n)}function He(n){return n.map(e=>`<script src="${u.url.append(e,{v:b})}"><\/script>`).join("")}function De(n=[]){return n.map(e=>`<link rel="stylesheet" href="${u.url.append(e,{v:b})}" />`).join("")}function se(n,e=!1){return e&&n.endsWith(".prod.js")?n.replace(".prod.js",".js"):n}function oe(n,e,t=!1){const r=n.filter(d=>!!d.enabled),s=[],o=[],a=[],i=[],l={},c={},h=[],f={};return r.forEach(({urls:d,assetsUrl:g,library:p,assetsLibrary:v,localeLibrary:w})=>{d?.forEach(y=>{k(y)&&s.push(se(y,t)),A(y)&&o.push(y)}),p&&(i.push(p),l[p]=F(d||[],e),w&&(c[p]=w)),g&&a.push(g),v&&h.push(v),p&&v&&(f[v]=p)}),{scripts:F(s,e),css:F(o,e),materials:F(a,e),libraryExports:i,materialExports:u.dedupArray(h),materialMapLibrary:f,libraryMap:l,libraryLocaleMap:c}}function ie(n,e){const{name:t,parent:r,alias:s}=n;return r?e[r]?.[s||t]:e[s||t]}function J(n){return u.isString(n)?n:JSON.stringify(n)}function L(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&&L(window,n,t)}function ce(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 le(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):i(null)},c.onerror=h=>{i(h)},s.appendChild(c)}})}function ue(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 q(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 j(n){return n&&n.type==="JSExpression"}function M(n){return typeof n=="object"&&n&&n.type==="JSFunction"}function de(n){return j(n)||M(n)}function Ae(n){return de(n)?n.value:JSON.stringify(n)}let C=null;const ke=u.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:n=>n.data?.code===0||!!n.data?.success,failMessage:!0,showError:n=>{I.ElNotification.error({message:n||"未知错误"})},showLoading:()=>{C&&C.close(),C=I.ElLoading.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.05)"})},hideLoading:()=>{C&&(C.close(),C=null)}}});let P;function fe(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){const{metaQuery:t}=e;if(!t)return;const{code:r,queryCode:s}=n;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(r,s,o,a)}}function me(n=[],e=[],t){const r={};for(const s of n)r[s.id]=fe(s,t);for(const s of e)r[s.id]=pe(s,t);return r}async function he(n=[]){P=await import("mockjs").then(e=>e.default||e),P&&(P.setup({timeout:"50-500"}),V(),n.forEach(e=>ve(P,e)))}function ve(n,e){if(!e.mock)return;const{url:t,mockTemplate:r}=e;if(t&&r){const s=u.pathToRegexp(`${t}(.*)`),o=u.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=R(r,{},!0);n.mock(s,i=>{const l=u.url.parse(i.url)||{},c=i.body instanceof FormData?u.formDataToJson(i.body):i.body,h=o(i.url)?.params;return Object.assign(i,{data:c,params:l,query:h}),n.mock(a(i))})}}function V(){P&&(P._mocked={})}class ge{__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=D){const r=t.getCurrentInstance();if(!r)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},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()}),t.onBeforeUpdate(()=>{this.__refs={},this.$refs={},this.__contextRefs={},this.context={}})}__proxy(){this.__instance&&U.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){U.forEach(e=>{this[e]=null})}__parseFunction(e){if(e)if(this.__mode===$.Runtime){const{id:t,type:r}=e,s=t?this.__transform[t]??e.value:e.value;return q({type:r,value:s},this)}else return q(e,this)}__parseExpression(e){if(e)if(this.__mode===$.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!==$.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async r=>{await u.delay(0);let s=r?.$vtjEl||r?.$el||r?._?.vnode?.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,$.Design===this.__mode&&(s.__context__=this,s.draggable=!0),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 T(n){const{Vue:e=D,mode:t=$.Runtime,components:r={},libs:s={},apis:o={},loader:a}=n,i=e.computed(()=>n.dsl),l={$components:r,$libs:s,$apis:o},c=new ge({mode:t,dsl:i.value,attrs:l}),h=e.defineComponent({name:i.value.name,props:{...Ne(i.value.props??[],c)},setup(f){c.$props=f,c.props=f,i.value.id&&L(n.window||window,i.value.id,i.value.css||""),c.state=Ue(e,i.value.state??{},c);const d=qe(e,i.value.computed??{},c),g=Je(i.value.methods??{},c),p=Le(e,i.value.inject,c),v=ye(i.value.dataSources||{},c),w={...p,...d,...g,...v};return c.setup(w,e),Ve(e,i.value.watch??[],c),{vtj:c}},emits:Be(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))},...We(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(h),context:c}}function Be(n=[]){return n.map(e=>u.isString(e)?e:e.name)}function Ne(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:j(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 Ue(n,e,t){return n.reactive(Object.keys(e||{}).reduce((r,s)=>{let o=e[s];return j(o)?o=t.__parseExpression(o):M(o)&&(o=t.__parseFunction(o)),r[s]=o,r},{}))}function qe(n,e,t){return Object.entries(e??{}).reduce((r,[s,o])=>(r[s]=n.computed(t.__parseFunction(o)),r),{})}function Je(n,e){return Object.entries(n??{}).reduce((t,[r,s])=>(t[r]=e.__parseFunction(s),t),{})}function Le(n,e=[],t){return e.reduce((r,s)=>{const{name:o,from:a}=s||{};s.default;const i=j(a)?t.__parseExpression(a)||o:a??o,l=j(s.default)?t.__parseExpression(s.default):s.default??null;return r[o]=n.inject(i,l),r},{})}function ye(n,e){return Object.keys(n).reduce((t,r)=>{const s=n[r],o=e.$apis[s.ref],a=M(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 Ve(n,e=[],t){e.forEach(r=>{n.watch(t.__parseExpression(r.source),t.__parseFunction(r.handler),{deep:r.deep,immediate:r.immediate})})}function We(n,e){return Object.entries(n??{}).reduce((t,[r,s])=>(t[r]=e.__parseFunction(s),t),{})}let N=[];const _e=n=>n;async function W(n,e=window){const{urls:t=[],library:r}=n,s=t.filter(i=>k(i));if(s.length===0||!r)return null;const o=t.filter(i=>A(i));return o.length&&ce(o,e),await le(s,r,e).catch(i=>(console.warn("loadScriptUrl error",s,r,i),null))}function H(n){const{getDsl:e,getDslByUrl:t,options:r}=n;return r.window&&(N.forEach(s=>{delete r.window[s]}),N=[]),(s,o,a=D)=>!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?T({...r,Vue:a,dsl:i,mode:$.Runtime,loader:H(n)}).renderer:null}):o.type==="UrlSchema"&&o.url?a.defineAsyncComponent(async()=>{const i=await t(o.url);return i&&(i.name=s),i?T({...r,Vue:a,dsl:i,mode:$.Runtime,loader:H(n)}).renderer:null}):o.type==="Plugin"?(o.library&&N.push(o.library),a.defineAsyncComponent(async()=>{const i=await W(o,r.window);return i||(console.warn("getPlugin result is null",o),null)})):s}function O(n,e,t=D,r=_e){if(!n||!n.name||n.invisible)return null;const{id:s=null,directives:o=[]}=n,{vIf:a,vFor:i,vShow:l,vModels:c,vBind:h}=Ye(o);if(a&&!Ke(a,e))return null;const f=d=>{const g=d.$components,p=(()=>{if(n.name==="component")return Xe(d,n.props?.is);if(n.name==="slot")return n.name;const _=r(n.name,n.from,t);return u.isString(_)?g[_]??_:_})(),v=ze(s,n.props??{},d),w=Ge(t,n.events??{},d);if(n.name==="slot")return Qe(t,n,v,d,r);h&&Object.assign(v,d.__parseExpression(h.value)),l&&(v.style=Object.assign(v.style??{},et(l,d))),c.forEach(_=>{Object.assign(v,tt(t,_,d))});const y=nt(t,n.children??[],d,r,n);return t.createVNode(p,{...v,...w},y)};return i?ot(i,f,e):f(e)}function Ye(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 Ke(n,e){return!!e.__parseExpression(n.value)}function Xe(n,e){return e?j(e)?n.__parseExpression(e):e:"div"}function ze(n,e,t){const r=Object.keys(e||{}).reduce((s,o)=>{let a=e[o];return j(a)?a=t.__parseExpression(a):M(a)&&(a=t.__parseFunction(a)),s[o]=a,s},{});return r.ref=t.__ref(n,r.ref),r}function Ge(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=Y(i.modifiers),c=l.find(d=>r.includes(d)),h="on"+u.upperFirst(a)+(c&&s[c]||""),f=t.__parseFunction(i.handler);return f&&(o[h]=n.withModifiers(f,l)),o},{})}function Y(n={},e=!1){const t=Object.keys(n);return e?t.map(r=>"."+r):t}function Qe(n,e,t,r,s){const{children:o}=e,a=Ze(e,r),i=r.$slots?.[a.name];return i?i(t):o?u.isString(o)?n.createTextVNode(o):j(o)?n.createTextVNode(J(r.__parseExpression(o))):Array.isArray(o)?o.map(l=>O(l,r,n,s)):null:null}function Ze(n,e){const{props:t}=n,r=t?.name||"default";return{name:j(r)?e.__parseExpression(r):r,params:[]}}function et(n,e){return e.__parseExpression(n.value)?{}:{display:"none"}}function tt(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=Y(e.modifiers),a=j(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 Ke(n,e,t,r,s){if(!e)return null;if(u.isString(e))return{default:()=>e};if(j(e))return{default:()=>J(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=Xe(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:h}])=>(i[l]=p=>{const d=h.length?u.pick(p??{},h):a(p);return c.map(g=>I(g,t.__clone(d),n,r))},i),{})}return null}function Xe(n){const e={default:{params:[],nodes:[]}};for(const t of n){const r=ze(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 ze(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function Ge(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`),[])}function Qe(n){return m.getCurrentScope()?(m.onScopeDispose(n),!0):!1}function K(n){return typeof n=="function"?n():m.unref(n)}const _e=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ze=n=>n!=null,et=()=>{};function tt(n){return m.getCurrentInstance()}function nt(...n){if(n.length!==1)return m.toRef(...n);const e=n[0];return typeof e=="function"?m.readonly(m.customRef(()=>({get:e,set:et}))):m.ref(e)}function rt(n,e){tt()&&m.onBeforeUnmount(n,e)}const st=_e?window:void 0,ot=_e?window.document:void 0;function it(n){var e;const t=K(n);return(e=t?.$el)!=null?e:t}function at(){const n=m.ref(!1),e=m.getCurrentInstance();return e&&m.onMounted(()=>{n.value=!0},e),n}function ct(n){const e=at();return m.computed(()=>(e.value,!!n()))}function lt(n,e,t={}){const{window:r=st,...s}=t;let o;const a=ct(()=>r&&"MutationObserver"in r),i=()=>{o&&(o.disconnect(),o=void 0)},l=m.computed(()=>{const d=K(n),g=(Array.isArray(d)?d:[d]).map(it).filter(Ze);return new Set(g)}),c=m.watch(()=>l.value,d=>{i(),a.value&&d.size&&(o=new MutationObserver(e),d.forEach(g=>o.observe(g,s)))},{immediate:!0,flush:"post"}),h=()=>o?.takeRecords(),p=()=>{c(),i()};return Qe(p),{isSupported:a,stop:p,takeRecords:h}}function ut(n=null,e={}){var t,r,s;const{document:o=ot,restoreOnUnmount:a=p=>p}=e,i=(t=o?.title)!=null?t:"",l=nt((r=n??o?.title)!=null?r:null),c=n&&typeof n=="function";function h(p){if(!("titleTemplate"in e))return p;const d=e.titleTemplate||"%s";return typeof d=="function"?d(p):K(d).replace(/%s/g,p)}return m.watch(l,(p,d)=>{p!==d&&o&&(o.title=h(typeof p=="string"?p:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!c&<((s=o.head)==null?void 0:s.querySelector("title"),()=>{o&&o.title!==l.value&&(l.value=h(o.title))},{childList:!0}),rt(()=>{if(a){const p=a(i,l.value||"");p!=null&&o&&(o.title=p)}}),l}const Q=m.defineComponent({name:"VtjPageContainer",async setup(){const n=z(),e=Z.useRoute(),t=e.params.id,r=t?n.getPage(t):n.getHomepage(),s=r?await n.getRenderComponent(r.id):null;return r&&ut(r.title||"VTJ"),{provider:n,component:s,file:r,query:e.query}},render(){return this.component?m.h(this.component,this.query):m.h("div","页面不存在")}}),dt=m.defineComponent({name:"VtjStartupContainer",render(){return m.h(Ee.XStartup)}}),X=Symbol("Provider");var Se=(n=>(n.Production="production",n.Development="development",n))(Se||{});class we extends E.Base{constructor(e){super(),this.options=e;const{service:t,mode:r=$.Raw,dependencies:s,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:h=null,materialPath:p="./",nodeEnv:d="development"}=e;this.mode=r,this.modules=c,this.service=t,this.router=h,this.materialPath=p,this.nodeEnv=d,s&&(this.dependencies=s),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i),r!==$.Design&&this.load(a)}mode;globals={};modules={};adapter={request:Ie,jsonp:u.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:r=[],meta:s=[]}=this.project,o=window;o.CKEDITOR_VERSION=void 0,this.nodeEnv!=="production"?await this.loadAssets(o):await this.loadDependencies(o),this.apis=fe(r,s,this.adapter),V(),this.project.config?.mock&&me(r),this.initRouter(),this.triggerReady()}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[r,s]of t)e[r]||(e[r]=await s())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:r,library:s,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:l,libraryMap:c,materials:h,materialExports:p,materialMapLibrary:d}=se(t,a,i==="development");for(const f of l){const v=r[f],w=e[f];if(w)s[f]=w;else if(v)e[f]=s[f]=await v();else{const y=c[f]||[];for(const _ of y)A(_)&&await ie(f,u.url.append(_,{v:P})),k(_)&&await u.loadScript(u.url.append(_,{v:P}));s[f]=e[f]}}for(const f of h)await u.loadScript(u.url.append(f,{v:P}));const g=this.materials||{};for(const f of p){const v=e[d[f]],w=E.BUILT_IN_COMPONENTS[f];if(w)v&&w.forEach(y=>{o[y]=v[y]});else{const y=g[f]?(await g[f]()).default:e[f];y&&v&&(y.components||[]).forEach(_=>{o[_.name]=oe(_,v)})}}}initRouter(){const{router:e,project:t}=this;e&&(e.addRoute({path:"/page/:id",name:"VtjPage",component:Q}),e.addRoute({path:"/",name:"VtjHomepage",component:t?.homepage?Q:dt}))}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);this.options.install&&e.use(this.options.install),e.provide(X,this),e.config.globalProperties.installed=t,this.nodeEnv==="development"&&(e.config.errorHandler=(r,s,o)=>{const a=s?.$options.name,i=r?.message||r?.msg||"未知错误",l=`[ ${a} ] ${i}`;console.error("[VTJ Error]:",{err:r,instance:s,info:o},r?.stack),F.ElNotification.error({title:"运行时错误:请在控制台查看详情",message:l})})}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=H({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return T({...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 m.defineAsyncComponent(async()=>{const r=await this.getDslByUrl(e);return r?(r.name=t||r.name,this.createDslRenderer(r).renderer):null})}definePluginComponent(e){return m.defineAsyncComponent(async()=>await W(e,window))}}function pt(n){const e=new we(n);return{provider:e,onReady:r=>e.ready(r)}}function z(n={}){const e=m.inject(X);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:r}=n;t&&r&&(async()=>{const s=await e.getDsl(t);s?.__VERSION__!==r&&F.ElNotification.warning({title:s?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const G=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0,showError:n=>{F.ElNotification.error({message:n||"未知错误"})}}}),ft=(n="/__vtj__/api/:type.json")=>(e,t)=>G.send({url:n,method:"post",params:{type:e},data:{type:e,data:t}}),mt=(n="/__vtj__/api/uploader.json")=>async(e,t)=>await G.send({url:n,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);class B{api;pluginCaches={};uploader;constructor(){this.api=ft(),this.uploader=mt()}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,r=t.filter(o=>ne(o))[0];if(!r)return null;const s=this.pluginCaches[r];return s||(this.pluginCaches[r]=G.send({url:r,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 ht extends B{init(e){const t=new E.ProjectModel(e),r=S.get(`project_${t.id}`),s=Object.assign(t.toDsl(),r||{});return S.save(`project_${t.id}`,s),Promise.resolve(s)}saveProject(e){const t=new E.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 s=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,s),S.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=S.get(`history_${e}`),r=new E.HistoryModel(t||{id:e});return Promise.resolve(r.toDsl())}getHistoryItem(e,t){const r=S.get(`history_${e}_${t}`);return Promise.resolve(r)}saveHistoryItem(e,t){return S.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(r=>{S.remove(`history_${e}_${r}`)}),Promise.resolve(!0)}}class je extends B{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new E.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 E.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 E.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 O=null;function vt(){return O||(O=new je,O)}class gt 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 $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 yt(){const n=z(),e=Z.useRoute(),t=m.ref(!1),r=n.project;m.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=ee;exports.BaseService=B;exports.CONTEXT_HOST=U;exports.Context=ve;exports.ContextMode=$;exports.DATA_TYPES=te;exports.JSCodeToString=Fe;exports.LIFE_CYCLES_LIST=Pe;exports.LocalService=gt;exports.MemoryService=je;exports.NodeEnv=Se;exports.Provider=we;exports.StorageService=ht;exports.VTJ_RENDERER_VERSION=P;exports.adoptedStyleSheets=L;exports.createAssetScripts=be;exports.createAssetsCss=Re;exports.createDataSources=ge;exports.createLoader=H;exports.createMemoryService=vt;exports.createMetaApi=pe;exports.createProvider=pt;exports.createRenderer=T;exports.createSchemaApi=de;exports.createSchemaApis=fe;exports.defaultLoader=ye;exports.fillBasePath=R;exports.getModifiers=Y;exports.getPlugin=W;exports.getRawComponent=oe;exports.isCSSUrl=A;exports.isJSCode=ue;exports.isJSExpression=j;exports.isJSFunction=M;exports.isJSON=ne;exports.isJSUrl=k;exports.isVuePlugin=le;exports.loadCss=ie;exports.loadCssUrl=ae;exports.loadScriptUrl=ce;exports.mockApi=he;exports.mockApis=me;exports.mockCleanup=V;exports.nodeRender=I;exports.parseDeps=se;exports.parseExpression=b;exports.parseFunction=q;exports.providerKey=X;exports.removeProdFlag=re;exports.toString=J;exports.useMask=yt;exports.useProvider=z;
|
|
10
|
+
}`:"(v) => {}"},s=t.__parseFunction(r),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&&s?n.withModifiers(s,o):s}}function nt(n,e,t,r,s){if(!e)return null;if(u.isString(e))return{default:()=>e};if(j(e))return{default:()=>J(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=rt(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:h}])=>(i[l]=f=>{const d=h.length?u.pick(f??{},h):a(f);return c.map(g=>O(g,t.__clone(d),n,r))},i),{})}return null}function rt(n){const e={default:{params:[],nodes:[]}};for(const t of n){const r=st(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 st(n="default"){return u.isString(n)?{name:n,params:[]}:{params:[],...n}}function ot(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`),[])}function it(n){return m.getCurrentScope()?(m.onScopeDispose(n),!0):!1}function K(n){return typeof n=="function"?n():m.unref(n)}const Se=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const at=n=>n!=null,ct=()=>{};function lt(n){return m.getCurrentInstance()}function ut(...n){if(n.length!==1)return m.toRef(...n);const e=n[0];return typeof e=="function"?m.readonly(m.customRef(()=>({get:e,set:ct}))):m.ref(e)}function dt(n,e){lt()&&m.onBeforeUnmount(n,e)}const ft=Se?window:void 0,pt=Se?window.document:void 0;function mt(n){var e;const t=K(n);return(e=t?.$el)!=null?e:t}function ht(){const n=m.ref(!1),e=m.getCurrentInstance();return e&&m.onMounted(()=>{n.value=!0},e),n}function vt(n){const e=ht();return m.computed(()=>(e.value,!!n()))}function gt(n,e,t={}){const{window:r=ft,...s}=t;let o;const a=vt(()=>r&&"MutationObserver"in r),i=()=>{o&&(o.disconnect(),o=void 0)},l=m.computed(()=>{const d=K(n),g=(Array.isArray(d)?d:[d]).map(mt).filter(at);return new Set(g)}),c=m.watch(()=>l.value,d=>{i(),a.value&&d.size&&(o=new MutationObserver(e),d.forEach(g=>o.observe(g,s)))},{immediate:!0,flush:"post"}),h=()=>o?.takeRecords(),f=()=>{c(),i()};return it(f),{isSupported:a,stop:f,takeRecords:h}}function yt(n=null,e={}){var t,r,s;const{document:o=pt,restoreOnUnmount:a=f=>f}=e,i=(t=o?.title)!=null?t:"",l=ut((r=n??o?.title)!=null?r:null),c=n&&typeof n=="function";function h(f){if(!("titleTemplate"in e))return f;const d=e.titleTemplate||"%s";return typeof d=="function"?d(f):K(d).replace(/%s/g,f)}return m.watch(l,(f,d)=>{f!==d&&o&&(o.title=h(typeof f=="string"?f:""))},{immediate:!0}),e.observe&&!e.titleTemplate&&o&&!c&>((s=o.head)==null?void 0:s.querySelector("title"),()=>{o&&o.title!==l.value&&(l.value=h(o.title))},{childList:!0}),dt(()=>{if(a){const f=a(i,l.value||"");f!=null&&o&&(o.title=f)}}),l}const Z=m.defineComponent({name:"VtjPageContainer",async setup(){const n=z(),e=ee.useRoute(),t=e.params.id,r=t?n.getPage(t):n.getHomepage(),s=r?await n.getRenderComponent(r.id):null;return r&&yt(r.title||"VTJ"),{provider:n,component:s,file:r,query:e.query}},render(){return this.component?m.h(this.component,this.query):m.h("div","页面不存在")}}),_t=m.defineComponent({name:"VtjStartupContainer",render(){return m.h(Me.XStartup)}}),X=Symbol("Provider");var we=(n=>(n.Production="production",n.Development="development",n))(we||{});class je extends E.Base{constructor(e){super(),this.options=e;const{service:t,mode:r=$.Raw,dependencies:s,materials:o,project:a={},adapter:i={},globals:l={},modules:c={},router:h=null,materialPath:f="./",nodeEnv:d="development"}=e;this.mode=r,this.modules=c,this.service=t,this.router=h,this.materialPath=f,this.nodeEnv=d,s&&(this.dependencies=s),o&&(this.materials=o),Object.assign(this.globals,l),Object.assign(this.adapter,i),r!==$.Design&&this.load(a)}mode;globals={};modules={};adapter={request:ke,jsonp:u.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:r=[],meta:s=[]}=this.project,o=window;o.CKEDITOR_VERSION=void 0,this.nodeEnv!=="production"?await this.loadAssets(o):await this.loadDependencies(o),this.apis=me(r,s,this.adapter),V(),this.project.config?.mock&&he(r),this.initRouter(),this.triggerReady()}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[r,s]of t)e[r]||(e[r]=await s())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:r,library:s,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:l,libraryMap:c,materials:h,materialExports:f,materialMapLibrary:d}=oe(t,a,i==="development");for(const p of l){const v=r[p],w=e[p];if(w)s[p]=w;else if(v)e[p]=s[p]=await v();else{const y=c[p]||[];for(const _ of y)A(_)&&await ae(p,u.url.append(_,{v:b})),k(_)&&await u.loadScript(u.url.append(_,{v:b}));s[p]=e[p]}}for(const p of h)await u.loadScript(u.url.append(p,{v:b}));const g=this.materials||{};for(const p of f){const v=e[d[p]],w=E.BUILT_IN_COMPONENTS[p];if(w)v&&w.forEach(y=>{o[y]=v[y]});else{const y=g[p]?(await g[p]()).default:e[p];y&&v&&(y.components||[]).forEach(_=>{o[_.name]=ie(_,v)})}}}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:_t}))}install(e){const t=e.config.globalProperties.installed||{};for(const[r,s]of Object.entries(this.library))!t[r]&&ue(s)&&(e.use(s),t[r]=!0);this.options.install&&e.use(this.options.install),e.provide(X,this),e.config.globalProperties.installed=t,this.nodeEnv==="development"&&(e.config.errorHandler=(r,s,o)=>{const a=s?.$options.name,i=r?.message||r?.msg||"未知错误",l=`[ ${a} ] ${i}`;console.error("[VTJ Error]:",{err:r,instance:s,info:o},r?.stack),I.ElNotification.error({title:"运行时错误:请在控制台查看详情",message:l})})}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=H({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return T({...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 m.defineAsyncComponent(async()=>{const r=await this.getDslByUrl(e);return r?(r.name=t||r.name,this.createDslRenderer(r).renderer):null})}definePluginComponent(e){return m.defineAsyncComponent(async()=>await W(e,window))}}function St(n){const e=new je(n);return{provider:e,onReady:r=>e.ready(r)}}function z(n={}){const e=m.inject(X);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:r}=n;t&&r&&(async()=>{const s=await e.getDsl(t);s?.__VERSION__!==r&&I.ElNotification.warning({title:s?.name,message:"当前组件源码版本与运行时版本不一致,请重新发布组件"})})()}return e}const G=new u.Request({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:n=>n.data?.code===0,showError:n=>{I.ElNotification.error({message:n||"未知错误"})}}}),wt=(n="/__vtj__/api/:type.json")=>(e,t)=>G.send({url:n,method:"post",params:{type:e},data:{type:e,data:t}}),jt=(n="/__vtj__/api/uploader.json")=>async(e,t)=>await G.send({url:n,method:"post",data:{files:e,projectId:t},settings:{type:"data"}}).then(r=>r&&r[0]?r[0]:null).catch(()=>null);class B{api;pluginCaches={};uploader;constructor(){this.api=wt(),this.uploader=jt()}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,r=t.filter(o=>re(o))[0];if(!r)return null;const s=this.pluginCaches[r];return s||(this.pluginCaches[r]=G.send({url:r,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 $t extends B{init(e){const t=new E.ProjectModel(e),r=S.get(`project_${t.id}`),s=Object.assign(t.toDsl(),r||{});return S.save(`project_${t.id}`,s),Promise.resolve(s)}saveProject(e){const t=new E.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 s=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,s),S.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=S.get(`history_${e}`),r=new E.HistoryModel(t||{id:e});return Promise.resolve(r.toDsl())}getHistoryItem(e,t){const r=S.get(`history_${e}_${t}`);return Promise.resolve(r)}saveHistoryItem(e,t){return S.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(r=>{S.remove(`history_${e}_${r}`)}),Promise.resolve(!0)}}class $e extends B{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new E.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 E.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 E.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 x=null;function Et(){return x||(x=new $e,x)}class Ct 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 Ee(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?Ee(o):void 0}})}function Pt(){const n=z(),e=ee.useRoute(),t=m.ref(!1),r=n.project;m.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=Ee(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=B;exports.CONTEXT_HOST=U;exports.Context=ge;exports.ContextMode=$;exports.DATA_TYPES=ne;exports.JSCodeToString=Ae;exports.LIFE_CYCLES_LIST=Te;exports.LocalService=Ct;exports.MemoryService=$e;exports.NodeEnv=we;exports.Provider=je;exports.StorageService=$t;exports.VTJ_RENDERER_VERSION=b;exports.adoptedStyleSheets=L;exports.createAssetScripts=He;exports.createAssetsCss=De;exports.createDataSources=ye;exports.createLoader=H;exports.createMemoryService=Et;exports.createMetaApi=pe;exports.createProvider=St;exports.createRenderer=T;exports.createSchemaApi=fe;exports.createSchemaApis=me;exports.defaultLoader=_e;exports.fillBasePath=F;exports.getModifiers=Y;exports.getPlugin=W;exports.getRawComponent=ie;exports.isCSSUrl=A;exports.isJSCode=de;exports.isJSExpression=j;exports.isJSFunction=M;exports.isJSON=re;exports.isJSUrl=k;exports.isVuePlugin=ue;exports.loadCss=ae;exports.loadCssUrl=ce;exports.loadScriptUrl=le;exports.mockApi=ve;exports.mockApis=he;exports.mockCleanup=V;exports.nodeRender=O;exports.parseDeps=oe;exports.parseExpression=R;exports.parseFunction=q;exports.providerKey=X;exports.removeProdFlag=se;exports.toString=J;exports.useMask=Pt;exports.useProvider=z;
|
package/dist/index.mjs
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { Base as he, BUILT_IN_COMPONENTS as ve, ProjectModel as
|
|
2
|
-
import { isUrl as ye, url as
|
|
1
|
+
import { Base as he, BUILT_IN_COMPONENTS as ve, ProjectModel as x, HistoryModel as ee } from "@vtj/core";
|
|
2
|
+
import { isUrl as ye, url as P, dedupArray as ge, isString as $, isFunction as K, logger as H, createRequest as _e, merge as we, pathToRegexp as Se, pathToRegexpMatch as $e, formDataToJson as je, delay as Ee, camelCase as j, upperFirst as be, pick as Pe, jsonp as Ce, loadScript as Q, Request as Re, Storage as Fe, mapToObject as N } from "@vtj/utils";
|
|
3
3
|
import * as M from "vue";
|
|
4
|
-
import { toRef as Ie, readonly as xe, customRef as He, ref as q, onBeforeUnmount as Oe, getCurrentScope as Me, onScopeDispose as De, unref as
|
|
4
|
+
import { toRef as Ie, readonly as xe, customRef as He, ref as q, onBeforeUnmount as Oe, getCurrentScope as Me, onScopeDispose as De, unref as Te, getCurrentInstance as te, watch as ne, computed as re, onMounted as ke, defineComponent as se, h as A, inject as Ae, defineAsyncComponent as X, watchEffect as Be } from "vue";
|
|
5
5
|
import { useRoute as oe } from "vue-router";
|
|
6
6
|
import { ElNotification as D, ElLoading as Ue } from "element-plus";
|
|
7
|
-
import H from "mockjs";
|
|
8
7
|
import { XStartup as Ne } from "@vtj/ui";
|
|
9
8
|
/**!
|
|
10
9
|
* Copyright (c) 2024, VTJ.PRO All rights reserved.
|
|
11
10
|
* @name @vtj/renderer
|
|
12
11
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
13
|
-
* @version 0.8.
|
|
12
|
+
* @version 0.8.145
|
|
14
13
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
15
14
|
*/
|
|
16
|
-
const
|
|
15
|
+
const C = "0.8.145";
|
|
17
16
|
var S = /* @__PURE__ */ ((n) => (n.Runtime = "Runtime", n.Design = "Design", n.Raw = "Raw", n.VNode = "VNode", n))(S || {});
|
|
18
17
|
const Y = [
|
|
19
18
|
"$el",
|
|
@@ -27,7 +26,7 @@ const Y = [
|
|
|
27
26
|
"$props",
|
|
28
27
|
"$options",
|
|
29
28
|
"$forceUpdate"
|
|
30
|
-
],
|
|
29
|
+
], en = [
|
|
31
30
|
"beforeCreate",
|
|
32
31
|
"created",
|
|
33
32
|
"beforeMount",
|
|
@@ -50,7 +49,7 @@ const Y = [
|
|
|
50
49
|
Function,
|
|
51
50
|
Date
|
|
52
51
|
};
|
|
53
|
-
function
|
|
52
|
+
function F(n, e) {
|
|
54
53
|
return n.map((t) => ye(t) || t.startsWith("/") ? t : `${e}${t}`);
|
|
55
54
|
}
|
|
56
55
|
function J(n) {
|
|
@@ -62,14 +61,14 @@ function L(n) {
|
|
|
62
61
|
function Le(n) {
|
|
63
62
|
return /\.json$/.test(n);
|
|
64
63
|
}
|
|
65
|
-
function
|
|
64
|
+
function tn(n) {
|
|
66
65
|
return n.map(
|
|
67
|
-
(e) => `<script src="${
|
|
66
|
+
(e) => `<script src="${P.append(e, { v: C })}"><\/script>`
|
|
68
67
|
).join("");
|
|
69
68
|
}
|
|
70
|
-
function
|
|
69
|
+
function nn(n = []) {
|
|
71
70
|
return n.map(
|
|
72
|
-
(e) => `<link rel="stylesheet" href="${
|
|
71
|
+
(e) => `<link rel="stylesheet" href="${P.append(e, { v: C })}" />`
|
|
73
72
|
).join("");
|
|
74
73
|
}
|
|
75
74
|
function Ve(n, e = !1) {
|
|
@@ -81,12 +80,12 @@ function We(n, e, t = !1) {
|
|
|
81
80
|
({ urls: u, assetsUrl: h, library: p, assetsLibrary: m, localeLibrary: _ }) => {
|
|
82
81
|
u?.forEach((v) => {
|
|
83
82
|
L(v) && s.push(Ve(v, t)), J(v) && o.push(v);
|
|
84
|
-
}), p && (i.push(p), l[p] =
|
|
83
|
+
}), p && (i.push(p), l[p] = F(u || [], e), _ && (c[p] = _)), h && a.push(h), m && d.push(m), p && m && (f[m] = p);
|
|
85
84
|
}
|
|
86
85
|
), {
|
|
87
|
-
scripts:
|
|
88
|
-
css:
|
|
89
|
-
materials:
|
|
86
|
+
scripts: F(s, e),
|
|
87
|
+
css: F(o, e),
|
|
88
|
+
materials: F(a, e),
|
|
90
89
|
libraryExports: i,
|
|
91
90
|
materialExports: ge(d),
|
|
92
91
|
materialMapLibrary: f,
|
|
@@ -145,7 +144,7 @@ async function Xe(n, e, t = window) {
|
|
|
145
144
|
function Ye(n) {
|
|
146
145
|
return K(n) || K(n?.install);
|
|
147
146
|
}
|
|
148
|
-
function
|
|
147
|
+
function R(n, e, t = !1, r = !1) {
|
|
149
148
|
try {
|
|
150
149
|
const s = ['"use strict";', "var __self = arguments[0];"];
|
|
151
150
|
s.push("return ");
|
|
@@ -155,13 +154,13 @@ function C(n, e, t = !1, r = !1) {
|
|
|
155
154
|
const a = `with(${t ? "{}" : "$scope || {}"}) { ${o} }`;
|
|
156
155
|
return new Function("$scope", a)(e);
|
|
157
156
|
} catch (s) {
|
|
158
|
-
if (
|
|
157
|
+
if (H.error("parseExpression.error", s, n, e?.__self ?? e), r)
|
|
159
158
|
throw s;
|
|
160
159
|
}
|
|
161
160
|
}
|
|
162
161
|
function z(n, e, t = !1, r = !1) {
|
|
163
|
-
const s =
|
|
164
|
-
if (typeof s != "function" && (
|
|
162
|
+
const s = R(n, e, t, r);
|
|
163
|
+
if (typeof s != "function" && (H.error(
|
|
165
164
|
"parseFunction.error",
|
|
166
165
|
"not a function",
|
|
167
166
|
n,
|
|
@@ -173,13 +172,13 @@ function z(n, e, t = !1, r = !1) {
|
|
|
173
172
|
function w(n) {
|
|
174
173
|
return n && n.type === "JSExpression";
|
|
175
174
|
}
|
|
176
|
-
function
|
|
175
|
+
function T(n) {
|
|
177
176
|
return typeof n == "object" && n && n.type === "JSFunction";
|
|
178
177
|
}
|
|
179
178
|
function ze(n) {
|
|
180
|
-
return w(n) ||
|
|
179
|
+
return w(n) || T(n);
|
|
181
180
|
}
|
|
182
|
-
function
|
|
181
|
+
function rn(n) {
|
|
183
182
|
return ze(n) ? n.value : JSON.stringify(n);
|
|
184
183
|
}
|
|
185
184
|
let E = null;
|
|
@@ -208,6 +207,7 @@ const Ze = _e({
|
|
|
208
207
|
}
|
|
209
208
|
}
|
|
210
209
|
});
|
|
210
|
+
let b;
|
|
211
211
|
function et(n, e) {
|
|
212
212
|
const { jsonp: t, request: r } = e;
|
|
213
213
|
if (n.method === "jsonp")
|
|
@@ -216,7 +216,7 @@ function et(n, e) {
|
|
|
216
216
|
query: s
|
|
217
217
|
});
|
|
218
218
|
{
|
|
219
|
-
const s = n.headers ?
|
|
219
|
+
const s = n.headers ? R(n.headers, {}, !0) : void 0, o = {
|
|
220
220
|
url: n.url,
|
|
221
221
|
method: n.method,
|
|
222
222
|
settings: {
|
|
@@ -247,24 +247,24 @@ function nt(n = [], e = [], t) {
|
|
|
247
247
|
r[s.id] = tt(s, t);
|
|
248
248
|
return r;
|
|
249
249
|
}
|
|
250
|
-
function rt(n = []) {
|
|
251
|
-
|
|
250
|
+
async function rt(n = []) {
|
|
251
|
+
b = await import("mockjs").then((e) => e.default || e), b && (b.setup({
|
|
252
252
|
timeout: "50-500"
|
|
253
|
-
}), ce(), n.forEach((e) => st(e));
|
|
254
|
-
}
|
|
255
|
-
function st(n) {
|
|
256
|
-
if (!
|
|
257
|
-
const { url:
|
|
258
|
-
if (
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
const
|
|
262
|
-
return Object.assign(
|
|
253
|
+
}), ce(), n.forEach((e) => st(b, e)));
|
|
254
|
+
}
|
|
255
|
+
function st(n, e) {
|
|
256
|
+
if (!e.mock) return;
|
|
257
|
+
const { url: t, mockTemplate: r } = e;
|
|
258
|
+
if (t && r) {
|
|
259
|
+
const s = Se(`${t}(.*)`), o = $e(t, { decode: decodeURIComponent }), a = R(r, {}, !0);
|
|
260
|
+
n.mock(s, (i) => {
|
|
261
|
+
const l = P.parse(i.url) || {}, c = i.body instanceof FormData ? je(i.body) : i.body, d = o(i.url)?.params;
|
|
262
|
+
return Object.assign(i, { data: c, params: l, query: d }), n.mock(a(i));
|
|
263
263
|
});
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
266
|
function ce() {
|
|
267
|
-
|
|
267
|
+
b && (b._mocked = {});
|
|
268
268
|
}
|
|
269
269
|
class ot {
|
|
270
270
|
__id = null;
|
|
@@ -330,9 +330,9 @@ class ot {
|
|
|
330
330
|
if (e)
|
|
331
331
|
if (this.__mode === S.Runtime) {
|
|
332
332
|
const { id: t, type: r } = e, s = t ? this.__transform[t] ?? e.value : e.value;
|
|
333
|
-
return
|
|
333
|
+
return R({ type: r, value: s }, this);
|
|
334
334
|
} else
|
|
335
|
-
return
|
|
335
|
+
return R(e, this);
|
|
336
336
|
}
|
|
337
337
|
__ref(e = null, t) {
|
|
338
338
|
if (this.__mode !== S.VNode)
|
|
@@ -343,7 +343,7 @@ class ot {
|
|
|
343
343
|
typeof t == "string" && (delete this.$refs[t], e && delete this.__refs[e]);
|
|
344
344
|
return;
|
|
345
345
|
}
|
|
346
|
-
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")
|
|
346
|
+
if (s.nodeType === 3 && s.nextSibling && (s = s.nextSibling), s.__vtj__ = e, S.Design === this.__mode && (s.__context__ = this, s.draggable = !0), e && (this.__refs[e] = r), typeof t == "function")
|
|
347
347
|
t(r);
|
|
348
348
|
else if (t) {
|
|
349
349
|
const o = this.$refs[t];
|
|
@@ -444,7 +444,7 @@ function ct(n, e, t) {
|
|
|
444
444
|
Object.keys(e || {}).reduce(
|
|
445
445
|
(r, s) => {
|
|
446
446
|
let o = e[s];
|
|
447
|
-
return w(o) ? o = t.__parseExpression(o) :
|
|
447
|
+
return w(o) ? o = t.__parseExpression(o) : T(o) && (o = t.__parseFunction(o)), r[s] = o, r;
|
|
448
448
|
},
|
|
449
449
|
{}
|
|
450
450
|
)
|
|
@@ -476,7 +476,7 @@ function ft(n, e = [], t) {
|
|
|
476
476
|
function pt(n, e) {
|
|
477
477
|
return Object.keys(n).reduce(
|
|
478
478
|
(t, r) => {
|
|
479
|
-
const s = n[r], o = e.$apis[s.ref], a =
|
|
479
|
+
const s = n[r], o = e.$apis[s.ref], a = T(s.transform) ? s.transform.value ? e.__parseFunction(s.transform) : void 0 : s.transform;
|
|
480
480
|
return t[r] = async (...i) => {
|
|
481
481
|
const l = await o.apply(e, i);
|
|
482
482
|
return a ? a(l) : l;
|
|
@@ -503,7 +503,7 @@ function mt(n, e) {
|
|
|
503
503
|
{}
|
|
504
504
|
);
|
|
505
505
|
}
|
|
506
|
-
let
|
|
506
|
+
let k = [];
|
|
507
507
|
const ht = (n) => n;
|
|
508
508
|
async function le(n, e = window) {
|
|
509
509
|
const { urls: t = [], library: r } = n, s = t.filter((i) => L(i));
|
|
@@ -515,9 +515,9 @@ async function le(n, e = window) {
|
|
|
515
515
|
}
|
|
516
516
|
function U(n) {
|
|
517
517
|
const { getDsl: e, getDslByUrl: t, options: r } = n;
|
|
518
|
-
return r.window && (
|
|
518
|
+
return r.window && (k.forEach((s) => {
|
|
519
519
|
delete r.window[s];
|
|
520
|
-
}),
|
|
520
|
+
}), k = []), (s, o, a = M) => !o || typeof o == "string" ? s : o.type === "Schema" && o.id ? a.defineAsyncComponent(async () => {
|
|
521
521
|
const i = await e(o.id);
|
|
522
522
|
return i && (i.name = s), i ? B({
|
|
523
523
|
...r,
|
|
@@ -535,7 +535,7 @@ function U(n) {
|
|
|
535
535
|
mode: S.Runtime,
|
|
536
536
|
loader: U(n)
|
|
537
537
|
}).renderer : null;
|
|
538
|
-
}) : o.type === "Plugin" ? (o.library &&
|
|
538
|
+
}) : o.type === "Plugin" ? (o.library && k.push(o.library), a.defineAsyncComponent(async () => {
|
|
539
539
|
const i = await le(o, r.window);
|
|
540
540
|
return i || (console.warn("getPlugin result is null", o), null);
|
|
541
541
|
})) : s;
|
|
@@ -595,7 +595,7 @@ function _t(n, e, t) {
|
|
|
595
595
|
const r = Object.keys(e || {}).reduce(
|
|
596
596
|
(s, o) => {
|
|
597
597
|
let a = e[o];
|
|
598
|
-
return w(a) ? a = t.__parseExpression(a) :
|
|
598
|
+
return w(a) ? a = t.__parseExpression(a) : T(a) && (a = t.__parseFunction(a)), s[o] = a, s;
|
|
599
599
|
},
|
|
600
600
|
{}
|
|
601
601
|
);
|
|
@@ -700,7 +700,7 @@ function Ft(n) {
|
|
|
700
700
|
return Me() ? (De(n), !0) : !1;
|
|
701
701
|
}
|
|
702
702
|
function V(n) {
|
|
703
|
-
return typeof n == "function" ? n() :
|
|
703
|
+
return typeof n == "function" ? n() : Te(n);
|
|
704
704
|
}
|
|
705
705
|
const fe = typeof window < "u" && typeof document < "u";
|
|
706
706
|
typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
|
|
@@ -718,15 +718,15 @@ function Ot(...n) {
|
|
|
718
718
|
function Mt(n, e) {
|
|
719
719
|
Ht() && Oe(n, e);
|
|
720
720
|
}
|
|
721
|
-
const Dt = fe ? window : void 0,
|
|
722
|
-
function
|
|
721
|
+
const Dt = fe ? window : void 0, Tt = fe ? window.document : void 0;
|
|
722
|
+
function kt(n) {
|
|
723
723
|
var e;
|
|
724
724
|
const t = V(n);
|
|
725
725
|
return (e = t?.$el) != null ? e : t;
|
|
726
726
|
}
|
|
727
727
|
function At() {
|
|
728
728
|
const n = q(!1), e = te();
|
|
729
|
-
return e &&
|
|
729
|
+
return e && ke(() => {
|
|
730
730
|
n.value = !0;
|
|
731
731
|
}, e), n;
|
|
732
732
|
}
|
|
@@ -740,7 +740,7 @@ function Ut(n, e, t = {}) {
|
|
|
740
740
|
const a = Bt(() => r && "MutationObserver" in r), i = () => {
|
|
741
741
|
o && (o.disconnect(), o = void 0);
|
|
742
742
|
}, l = re(() => {
|
|
743
|
-
const u = V(n), h = (Array.isArray(u) ? u : [u]).map(
|
|
743
|
+
const u = V(n), h = (Array.isArray(u) ? u : [u]).map(kt).filter(It);
|
|
744
744
|
return new Set(h);
|
|
745
745
|
}), c = ne(
|
|
746
746
|
() => l.value,
|
|
@@ -760,7 +760,7 @@ function Ut(n, e, t = {}) {
|
|
|
760
760
|
function Nt(n = null, e = {}) {
|
|
761
761
|
var t, r, s;
|
|
762
762
|
const {
|
|
763
|
-
document: o =
|
|
763
|
+
document: o = Tt,
|
|
764
764
|
restoreOnUnmount: a = (f) => f
|
|
765
765
|
} = e, i = (t = o?.title) != null ? t : "", l = Ot((r = n ?? o?.title) != null ? r : null), c = n && typeof n == "function";
|
|
766
766
|
function d(f) {
|
|
@@ -877,12 +877,12 @@ class Lt extends he {
|
|
|
877
877
|
else {
|
|
878
878
|
const v = c[p] || [];
|
|
879
879
|
for (const y of v)
|
|
880
|
-
J(y) && await Ke(p,
|
|
880
|
+
J(y) && await Ke(p, P.append(y, { v: C })), L(y) && await Q(P.append(y, { v: C }));
|
|
881
881
|
s[p] = e[p];
|
|
882
882
|
}
|
|
883
883
|
}
|
|
884
884
|
for (const p of d)
|
|
885
|
-
await Q(
|
|
885
|
+
await Q(P.append(p, { v: C }));
|
|
886
886
|
const h = this.materials || {};
|
|
887
887
|
for (const p of f) {
|
|
888
888
|
const m = e[u[p]], _ = ve[p];
|
|
@@ -990,12 +990,12 @@ class Lt extends he {
|
|
|
990
990
|
async getRenderComponent(e) {
|
|
991
991
|
const t = this.getFile(e);
|
|
992
992
|
if (!t)
|
|
993
|
-
return
|
|
993
|
+
return H.warn(`Can not find file: ${e}`), null;
|
|
994
994
|
const r = `.vtj/vue/${e}.vue`, s = this.modules[r];
|
|
995
995
|
if (s)
|
|
996
996
|
return (await s())?.default;
|
|
997
997
|
const o = await this.getDsl(t.id);
|
|
998
|
-
return o ? this.createDslRenderer(o).renderer : (
|
|
998
|
+
return o ? this.createDslRenderer(o).renderer : (H.warn(`Can not find dsl: ${e}`), null);
|
|
999
999
|
}
|
|
1000
1000
|
defineUrlSchemaComponent(e, t) {
|
|
1001
1001
|
return X(async () => {
|
|
@@ -1007,7 +1007,7 @@ class Lt extends he {
|
|
|
1007
1007
|
return X(async () => await le(e, window));
|
|
1008
1008
|
}
|
|
1009
1009
|
}
|
|
1010
|
-
function
|
|
1010
|
+
function sn(n) {
|
|
1011
1011
|
const e = new Lt(n);
|
|
1012
1012
|
return {
|
|
1013
1013
|
provider: e,
|
|
@@ -1158,13 +1158,13 @@ const g = new Fe({
|
|
|
1158
1158
|
expired: 0,
|
|
1159
1159
|
prefix: "__VTJ_"
|
|
1160
1160
|
});
|
|
1161
|
-
class
|
|
1161
|
+
class on extends G {
|
|
1162
1162
|
init(e) {
|
|
1163
|
-
const t = new
|
|
1163
|
+
const t = new x(e), r = g.get(`project_${t.id}`), s = Object.assign(t.toDsl(), r || {});
|
|
1164
1164
|
return g.save(`project_${t.id}`, s), Promise.resolve(s);
|
|
1165
1165
|
}
|
|
1166
1166
|
saveProject(e) {
|
|
1167
|
-
const t = new
|
|
1167
|
+
const t = new x(e);
|
|
1168
1168
|
return g.save(`project_${t.id}`, t.toDsl()), Promise.resolve(!0);
|
|
1169
1169
|
}
|
|
1170
1170
|
saveMaterials(e, t) {
|
|
@@ -1215,11 +1215,11 @@ class Gt extends G {
|
|
|
1215
1215
|
histories = {};
|
|
1216
1216
|
historyItems = {};
|
|
1217
1217
|
init(e) {
|
|
1218
|
-
const t = new
|
|
1218
|
+
const t = new x(e), r = this.projects[t.id] || {}, s = Object.assign(t.toDsl(), r);
|
|
1219
1219
|
return this.projects[s.id] = s, Promise.resolve(s);
|
|
1220
1220
|
}
|
|
1221
1221
|
saveProject(e) {
|
|
1222
|
-
const t = new
|
|
1222
|
+
const t = new x(e);
|
|
1223
1223
|
return this.projects[t.id] = t.toDsl(), Promise.resolve(!0);
|
|
1224
1224
|
}
|
|
1225
1225
|
saveMaterials(e, t) {
|
|
@@ -1265,11 +1265,11 @@ class Gt extends G {
|
|
|
1265
1265
|
}), Promise.resolve(!0);
|
|
1266
1266
|
}
|
|
1267
1267
|
}
|
|
1268
|
-
let
|
|
1269
|
-
function
|
|
1270
|
-
return
|
|
1268
|
+
let I = null;
|
|
1269
|
+
function an() {
|
|
1270
|
+
return I || (I = new Gt(), I);
|
|
1271
1271
|
}
|
|
1272
|
-
class
|
|
1272
|
+
class cn extends G {
|
|
1273
1273
|
getFileCaches = {};
|
|
1274
1274
|
async getExtension() {
|
|
1275
1275
|
return await this.api("getExtension", {}).catch(() => {
|
|
@@ -1337,7 +1337,7 @@ function me(n = []) {
|
|
|
1337
1337
|
};
|
|
1338
1338
|
});
|
|
1339
1339
|
}
|
|
1340
|
-
function
|
|
1340
|
+
function ln() {
|
|
1341
1341
|
const n = de(), e = oe(), t = q(!1), r = n.project;
|
|
1342
1342
|
Be(() => {
|
|
1343
1343
|
const { name: a, params: i, meta: l } = e;
|
|
@@ -1366,34 +1366,34 @@ export {
|
|
|
1366
1366
|
ot as Context,
|
|
1367
1367
|
S as ContextMode,
|
|
1368
1368
|
Je as DATA_TYPES,
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1369
|
+
rn as JSCodeToString,
|
|
1370
|
+
en as LIFE_CYCLES_LIST,
|
|
1371
|
+
cn as LocalService,
|
|
1372
1372
|
Gt as MemoryService,
|
|
1373
1373
|
Jt as NodeEnv,
|
|
1374
1374
|
Lt as Provider,
|
|
1375
|
-
|
|
1376
|
-
|
|
1375
|
+
on as StorageService,
|
|
1376
|
+
C as VTJ_RENDERER_VERSION,
|
|
1377
1377
|
ae as adoptedStyleSheets,
|
|
1378
|
-
|
|
1379
|
-
|
|
1378
|
+
tn as createAssetScripts,
|
|
1379
|
+
nn as createAssetsCss,
|
|
1380
1380
|
pt as createDataSources,
|
|
1381
1381
|
U as createLoader,
|
|
1382
|
-
|
|
1382
|
+
an as createMemoryService,
|
|
1383
1383
|
tt as createMetaApi,
|
|
1384
|
-
|
|
1384
|
+
sn as createProvider,
|
|
1385
1385
|
B as createRenderer,
|
|
1386
1386
|
et as createSchemaApi,
|
|
1387
1387
|
nt as createSchemaApis,
|
|
1388
1388
|
ht as defaultLoader,
|
|
1389
|
-
|
|
1389
|
+
F as fillBasePath,
|
|
1390
1390
|
ue as getModifiers,
|
|
1391
1391
|
le as getPlugin,
|
|
1392
1392
|
Ge as getRawComponent,
|
|
1393
1393
|
J as isCSSUrl,
|
|
1394
1394
|
ze as isJSCode,
|
|
1395
1395
|
w as isJSExpression,
|
|
1396
|
-
|
|
1396
|
+
T as isJSFunction,
|
|
1397
1397
|
Le as isJSON,
|
|
1398
1398
|
L as isJSUrl,
|
|
1399
1399
|
Ye as isVuePlugin,
|
|
@@ -1405,11 +1405,11 @@ export {
|
|
|
1405
1405
|
ce as mockCleanup,
|
|
1406
1406
|
O as nodeRender,
|
|
1407
1407
|
We as parseDeps,
|
|
1408
|
-
|
|
1408
|
+
R as parseExpression,
|
|
1409
1409
|
z as parseFunction,
|
|
1410
1410
|
pe as providerKey,
|
|
1411
1411
|
Ve as removeProdFlag,
|
|
1412
1412
|
ie as toString,
|
|
1413
|
-
|
|
1413
|
+
ln as useMask,
|
|
1414
1414
|
de as useProvider
|
|
1415
1415
|
};
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtj/renderer",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.145",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"mockjs": "~1.1.0",
|
|
8
|
-
"@vtj/core": "~0.8.
|
|
9
|
-
"@vtj/ui": "~0.8.
|
|
10
|
-
"@vtj/
|
|
11
|
-
"@vtj/
|
|
8
|
+
"@vtj/core": "~0.8.145",
|
|
9
|
+
"@vtj/ui": "~0.8.145",
|
|
10
|
+
"@vtj/icons": "~0.8.145",
|
|
11
|
+
"@vtj/utils": "~0.8.145"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"vue": "~3.5.5",
|
|
15
15
|
"vue-router": "~4.4.0",
|
|
16
|
-
"@vtj/cli": "~0.8.
|
|
16
|
+
"@vtj/cli": "~0.8.36"
|
|
17
17
|
},
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
package/types/provider/apis.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { ProvideAdapter } from './provider';
|
|
|
4
4
|
export declare function createSchemaApi(schema: ApiSchema, adapter: ProvideAdapter): ((query?: Record<string, any>) => Promise<any>) | ((data: any, opts?: IRequestConfig) => Promise<any>);
|
|
5
5
|
export declare function createMetaApi(meta: MetaSchema, adapter: ProvideAdapter): ((data: any, opts?: IRequestConfig) => Promise<any> | undefined) | undefined;
|
|
6
6
|
export declare function createSchemaApis(apis: ApiSchema[] | undefined, meta: MetaSchema[] | undefined, adapter: ProvideAdapter): Record<string, any>;
|
|
7
|
-
export declare function mockApis(schemas?: ApiSchema[]): void
|
|
7
|
+
export declare function mockApis(schemas?: ApiSchema[]): Promise<void>;
|
|
8
8
|
export interface MockCallbackOptions {
|
|
9
9
|
/**
|
|
10
10
|
* 请求url
|
|
@@ -31,5 +31,5 @@ export interface MockCallbackOptions {
|
|
|
31
31
|
*/
|
|
32
32
|
data?: any;
|
|
33
33
|
}
|
|
34
|
-
export declare function mockApi(schema: ApiSchema): void;
|
|
34
|
+
export declare function mockApi(Mock: any, schema: ApiSchema): void;
|
|
35
35
|
export declare function mockCleanup(): void;
|
package/types/version.d.ts
CHANGED
|
@@ -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.
|
|
5
|
+
* @version 0.8.144
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
7
|
*/
|
|
8
|
-
export declare const version = "0.8.
|
|
8
|
+
export declare const version = "0.8.144";
|