@vtj/renderer 0.12.44 → 0.12.45
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 +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +6 -6
- package/types/plugins/access.d.ts +3 -3
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.12.
|
5
|
+
* @version 0.12.45
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
|
-
*/const M="0.12.
|
7
|
+
*/const M="0.12.45";var _=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(_||{});const Y=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],Xe=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],ve=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],ye={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",_e="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot,svg".split(","),Se="component,slot".split(","),Ze=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),et={auth:["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o","/","a","u","t","h",".","h","t","m","l"].join(""),storageKey:["R","R","O","_","I","D","E","_","A","C","C","E","S","S","_","S","T","O","R","A","G","E","_","_"].join(""),privateKey:"MIIBOgIBAAJBAKoIzmn1FYQ1YOhOBw9EhABxZ+PySAIaydI+zdhoKflrdgJ4A5E4/5gbQmRpk09hPWG8nvX7h+l/QLU8kXxAIBECAwEAAQJAAlgpxQY6sByLsXqzJcthC8LSGsLf2JEJkHwlnpwFqlEV8UCkoINpuZ2Wzl+aftURu5rIfAzRCQBvHmeOTW9/zQIhAO5ufWDmnSLyfAAsNo5JRNpVuLFCFodR8Xm+ulDlosR/AiEAtpAltyP9wmCABKG/v/hrtTr3mcvFNGCjoGa9bUAok28CIHbrVs9w1ijrBlvTsXYwJw46uP539uKRRT4ymZzlm9QjAiB+1KH/G9f9pEEL9rtaSOG7JF5D0JcOjlze4MGVFs+ZrQIhALKOUFBNr2zEsyJIjw2PlvEucdlG77UniszjXTROHSPd"};function D(r,e){return r.map(t=>d.isUrl(t)||t.startsWith("/")?t:`${e}${t}`)}function x(r){return/\.css$/.test(r)}function B(r){return/\.js$/.test(r)}function we(r){return/\.json$/.test(r)}function tt(r){return r.map(e=>`<script src="${d.url.append(e,{v:M})}"><\/script>`).join("")}function st(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:M})}" />`).join("")}function Ee(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function je(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],i=[],a=[],o=[],p={},c={},u=[],l={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:g,localeLibrary:S})=>{m?.forEach(v=>{B(v)&&n.push(Ee(v,t)),x(v)&&i.push(v)}),h&&(o.push(h),p[h]=D(m||[],e),S&&(c[h]=S)),f&&a.push(f),g&&u.push(g),h&&g&&(l[g]=h)}),{scripts:D(n,e),css:D(i,e),materials:D(a,e),libraryExports:o,materialExports:d.dedupArray(u),materialMapLibrary:l,libraryMap:p,libraryLocaleMap:c}}function $e(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function Ce(r=[]){const e=r.filter(s=>x(s)),t=r.filter(s=>B(s));return{css:e,js:t}}function be(r,e){const t=c=>{const u=[];let l=0;for(;l<c.length;){if(/\s/.test(c[l])){l++;continue}if(c.substring(l,l+2)==="/*"){const v=c.indexOf("*/",l+2);if(v!==-1){l=v+2;continue}}if(c[l]==="@"){const v=l;for(;l<c.length&&c[l]!=="{"&&c[l]!==";";)l++;const C=c.substring(v,l).trim(),y=C.includes("@keyframes");if(c[l]===";")u.push({type:"simple-at-rule",content:c.substring(v,l+1)}),l++;else if(c[l]==="{"){const N=l+1;let P=1;for(l++;l<c.length&&P>0;)c[l]==="{"?P++:c[l]==="}"&&P--,l++;const V=c.substring(v,l),b=c.substring(N,l-1);u.push({type:y?"keyframes":"at-rule",rule:C,content:V,inner:b})}continue}const m=l;for(;l<c.length&&c[l]!=="{";)l++;if(l>=c.length)break;const f=c.substring(m,l).trim();if(!f){l++;continue}const h=l+1;let g=1;for(l++;l<c.length&&g>0;)c[l]==="{"?g++:c[l]==="}"&&g--,l++;const S=c.substring(h,l-1);u.push({type:"rule",selector:f,content:S.trim()})}return u},s=c=>{const u=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(u)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(u,l,m)=>{const f=l.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),i=c=>{const u=c.trim();if(!u||u.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(u)||s(u))return u;const l=u.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(l){const[,m,f=""]=l,h=m.trim();return h?`${h}[${e}]${f}`:u}return`${u}[${e}]`},a=c=>n(c).split(",").map(l=>i(l)).filter(l=>l.trim()).join(", "),o=c=>c.map(u=>{switch(u.type){case"simple-at-rule":return u.content;case"keyframes":return u.content;case"at-rule":try{const m=t(u.inner),f=o(m);return`${u.rule} { ${f} }`}catch{return u.content}case"rule":if(!u.selector||!u.content)return"";const l=a(u.selector);return l.trim()?`${l} { ${u.content} }`:"";default:return""}}).filter(u=>u.trim()).join(" "),p=c=>c.replace(/\s*{\s*/g," { ").replace(/\s*}\s*/g," } ").replace(/\s*;\s*/g,"; ").replace(/\s*,\s*/g,", ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").replace(/\s*}\s*}/g," } }").trim();try{const c=r.replace(/\/\*(?!\s*!)[\s\S]*?\*\//g,"").replace(/^\s+|\s+$/gm,"").replace(/\n\s*\n/g,`
|
8
8
|
`),u=t(c),l=o(u);return p(l)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,u=>u).replace(/([^{}@]+)(?=\s*{)/g,u=>{const l=u.trim();return!l||l.startsWith("@")||l.includes(`[${e}]`)||s(l)?u:`${l}[${e}]`})}}function Z(r){return d.isString(r)?r:JSON.stringify(r)}function ee(r,e,t,s=!1){const n=r.CSSStyleSheet,i=s?`data-v-${e}`:e,a=s?be(t,i):t;if(n.prototype.replaceSync){const o=new n;o.id=e,o.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,u=Array.from(c).filter(l=>l.id!==e);p.adoptedStyleSheets=[...u,o]}else{const o=r.document;let p=o.getElementById(e);p?p.innerHTML=a:(p=o.createElement("style"),p.id=e,p.innerHTML=a,o.head.appendChild(p))}}async function Re(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&ee(window,r,t)}function te(r,e=window){const t=e.document,s=e.document.head;for(const n of r)if(!t.getElementById(n)){const a=t.createElement("link");a.rel="stylesheet",a.id=n,a.href=n,s.appendChild(a)}}async function se(r,e,t=window){const s=t.document,n=t.document.head;let i=t[e];return i?i.default||i:new Promise((a,o)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{i=t[e],i?a(i.default||i):o(null)},c.onerror=u=>{o(u)},n.appendChild(c)}})}function Pe(r){return d.isFunction(r)||d.isFunction(r?.install)}function Ae(r){return Se.includes(r)}function Ie(r){return _e.includes(r)}function k(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function rt(r,e,t){Object.assign(e.meta,t.meta);const s=r?._container;t?.type==="page"&&s.classList.add("is-page"),t?.pure&&s.classList.add("is-pure")}function F(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let i=(r.value||"").trim();i=i.replace(/this(\W|$)/g,(o,p)=>`__self${p}`),i=n.join(`
|
9
9
|
`)+i;const a=`with(${t?"{}":"$scope || {}"}) { ${i} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function L(r,e,t=!1,s=!1){const n=F(r,e,t,s);if(typeof n!="function"&&(d.logger.error("parseFunction.error","not a function",r,e?.__self??e),s))throw new Error(`"${r.value}" not a function`);return n}function j(r){return r&&r.type==="JSExpression"}function O(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Me(r){return j(r)||O(r)}function nt(r){return Me(r)?r.value:JSON.stringify(r)}const it={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},re=Symbol("access");class ne{options;data=null;mode=_.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},it,e),this.loadData()}enableIntercept(){this.interceptResponse=!0}disableIntercept(){this.interceptResponse=!1}connect(e){const{mode:t,router:s,request:n}=e;this.mode=t,s&&this.mode===_.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:i}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(i,this.data.token))}clear(){const{storageKey:e,storagePrefix:t,session:s,authKey:n}=this.options;this.data=null,d.storage.remove(e,{type:"local",prefix:t}),s&&d.cookie.remove(n)}logout(){this.clear(),this.toLogin()}getData(){return this.data?this.data:(this.loadData(),this.data)}getToken(){return this.data||this.loadData(),this.data?.token}can(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return typeof e=="function"?e(s):d.toArray(e).every(i=>s[i]||s[t+"."+i])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(i=>s[i]||s[t+"."+i])}install(e){e.config.globalProperties.$access=this,e.provide(re,this)}isAuthPath(e){const{auth:t,isAuth:s}=this.options;if(s)return s(e);if(e.path&&typeof t=="string"){const n=t.split("#")[1]||t;return e.path===n}return!1}toLogin(){const{auth:e,redirectParam:t}=this.options;if(!e)return;const s=t?`?${t}=${encodeURIComponent(location.href)}`:"";typeof e=="function"?e(s):location.href=t?`${e}${s}`:e}setData(e){const{privateKey:t}=this.options;if(Array.isArray(e)&&t){const s=e.map(n=>d.unRSA(n,t));try{this.data=JSON.parse(s.join(""))}catch(n){console.warn(n)}return}if(typeof e=="string")try{const s=t?d.unRSA(e,t):e;s?this.data=JSON.parse(s):console.warn("RSA解密失败或登录信息缺失")}catch(s){console.warn(s)}else this.data=e}loadData(){const{storageKey:e,storagePrefix:t}=this.options,s=d.storage.get(e,{type:"local",prefix:t});this.setData(s||null)}isLogined(){const{session:e,authKey:t}=this.options;return e&&t?!!d.cookie.get(t):!!this.getToken()}hasRoutePermission(e){if(e.name===T){const t=e.params.id;return t&&this.can(t)}return!0}setGuard(e){e.beforeEach((t,s,n)=>this.guard(t,n))}async guard(e,t){if(this.isWhiteList(e)||this.isAuthPath(e))return t();if(this.isLogined()){if(this.hasRoutePermission(e))return t();{const{noPermissionMessage:s="无权限访问",unauthorized:n=!1}=this.options;return await this.showTip(s),d.isFunction(n)?(n(),t(!1)):d.isString(n)?t(n):t(!1)}}t(!1),this.toLogin()}isWhiteList(e){const{whiteList:t}=this.options;return t?Array.isArray(t)?t.some(s=>e.fullPath.startsWith(s)):t(e):!1}isUnauthorized(e){const{unauthorizedCode:t=401,statusKey:s="code"}=this.options;return e.status===t||e.data?.[s]===t}async showUnauthorizedAlert(e){const{unauthorizedMessage:t="登录已失效"}=this.options;this.isUnauthorized(e)&&(await this.showTip(t),this.toLogin())}async showTip(e){const{alert:t}=this.options;return t?(await d.delay(150),await t(e,{title:"提示",type:"warning"}).catch(()=>!1)):!1}setRequest(e){e.useRequest(t=>(this.data?.token&&(t.headers[this.options.authKey]=this.data?.token),t)),e.useResponse(async t=>(this.interceptResponse&&await this.showUnauthorizedAlert(t),t),async t=>{if(!this.interceptResponse)return Promise.reject(t);const s=t.response||t||{};return await this.showUnauthorizedAlert(s),Promise.reject(t)})}}function Te(){return E.inject(re,null)}function ot(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:i,useTitle:a,alert:o}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:u=>u.data?.code===0||!!u.data?.success,failMessage:!0,showError:u=>{e&&e(u||"未知错误")},showLoading:()=>{p&&p.close(),t&&(p=t())},hideLoading:()=>{p&&(p.close(),p=null)},...s}}),jsonp:d.jsonp,notify:e,loading:t,useTitle:a,startupComponent:n,access:i?new ne({alert:o,...i}):void 0}}function at(r={}){return new ne(r)}function ke(r,e){const{jsonp:t,request:s}=e;if(r.method==="jsonp")return(n={})=>t(r.url,{...r.jsonpOptions,query:n});{const n=r.headers?F(r.headers,{},!0):void 0,i={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,o)=>(delete i.data,s.send(d.merge(i,o||{},{data:a})))}}function Fe(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(i,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,i,a)}}function Oe(r=[],e=[],t){const s={};for(const n of r)s[n.id]=ke(n,t);for(const n of e)s[n.id]=Fe(n,t);return s}async function De(r=[],e=window){const t=k(e);t&&(ie(e),r.forEach(s=>xe(t,s)))}function He(r,e=window){const t=O(r.mockTemplate)&&r.mockTemplate.value?L(r.mockTemplate,{},!0):void 0,s=k(e);return async(...n)=>{let i={};if(t)try{i=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(i)}}function xe(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),i=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=F(s,{},!0);r.mock(n,o=>{const p=d.url.parse(o.url)||{},c=o.body instanceof FormData?d.formDataToJson(o.body):o.body,u=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:u}),r.mock(a(o))})}}function ie(r=window){const e=k(r);e&&(e._mocked={})}class Be{__id=null;__mode;__instance=null;__contextRefs={};__refs={};context={};state={};props={};$props={};$refs={};$el=null;$emit=null;$nextTick=null;$parent=null;$root=null;$attrs=null;$slots=null;$watch=null;$options=null;$forceUpdate=null;$components={};$libs={};$apis={};__transform={};constructor(e){const{mode:t,dsl:s,attrs:n}=e;this.__mode=t,s&&(this.__id=s.id||null,this.__transform=s.transform||{}),n&&Object.assign(this,n)}setup(e,t=K){const s=t.getCurrentInstance();if(!s)return;this.__refs={},this.$refs={},this.context={},this.__contextRefs={},this.__instance=s.proxy;const n=s.appContext.config.globalProperties;Object.assign(this,n),Object.assign(this,e||{}),this.__proxy(),t.onMounted(()=>{this.__proxy()}),t.onUnmounted(()=>{this.__cleanup()}),t.onBeforeUpdate(()=>{this.__reset()})}__proxy(){this.__instance&&Y.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Y.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return L({type:s,value:n},this)}else return L(e,this)}__parseExpression(e){if(e)if(this.__mode===_.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return F({type:s,value:n},this)}else return F(e,this)}__ref(e=null,t){if(this.__mode!==_.VNode)return e&&e!==this.__id&&(this.__contextRefs[e]=this),async s=>{await d.delay(0);let n=s?.$vtjEl||s?.$el||s?._?.vnode?.el||s;if(!n){typeof t=="string"&&(delete this.$refs[t],e&&delete this.__refs[e]);return}return n.nodeType===3&&n.nextSibling&&(n=n.nextSibling),n.__vtj__=e,_.Design===this.__mode&&(n.__context__=this,n.draggable=!0),e&&(this.__refs[e]=this.__getRefEl(this.__refs,e,s)),typeof t=="function"?t(s):t&&(this.$refs[t]=this.__getRefEl(this.$refs,t,s)),s}}__getRefEl(e,t,s){const n=e[t];if(n&&s!==n){const i=new Set([].concat(n,s));return Array.from(i)}else return s}__clone(e={}){const t={...this.context,...e},s={...t,context:t};return s.context.__proto__=this.context,s.__proto__=this,s}}function J(r){const{Vue:e=K,mode:t=_.Runtime,components:s={},libs:n={},apis:i={},loader:a}=r,o=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:i},c=new Be({mode:t,dsl:o.value,attrs:p}),u=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...lt(o.value.props??[],c)},setup(l){c.$props=l,c.props=l,o.value.id&&ee(r.window||window,o.value.id,o.value.css||"",!0),c.state=ut(e,o.value.state??{},c);const m=pt(e,o.value.computed??{},c),f=dt(o.value.methods??{},c),h=ft(e,o.value.inject,c);for(const[v,C]of Object.entries(h||{}))h[v]=e.inject(v,C);const g=Ne(o.value.dataSources||{},c),S={...h,...m,...f,...g};return c.setup(S,e),ht(e,o.value.watch??[],c),{vtj:c}},emits:ct(o.value.emits),expose:["vtj"],render(){if(!o.value.nodes)return null;const l=o.value.nodes||[];return l.length===1?I(l[0],c,e,a,l):l.map(m=>I(m,c,e,a,l))},...mt(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(u),context:c}}function ct(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function lt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(i=>ye[i]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:j(s.default)?e.__parseExpression(s.default):s.default}).reduce((s,n)=>(s[n.name]={type:t(n.type),required:n.required,default:n.default},s),{})}function ut(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let i=e[n];return j(i)?i=t.__parseExpression(i):O(i)&&(i=t.__parseFunction(i)),s[n]=i,s},{}))}function pt(r,e,t){return Object.entries(e??{}).reduce((s,[n,i])=>(s[n]=r.computed(t.__parseFunction(i)),s),{})}function dt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function ft(r,e=[],t){return e.reduce((s,n)=>{const{name:i,from:a}=n||{};n.default;const o=j(a)?t.__parseExpression(a)||i:a??i,p=j(n.default)?t.__parseExpression(n.default):n.default??null;return s[i]=r.inject(o,p),s},{})}function Ne(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=He(n);else if(n.ref){const i=e.$apis[n.ref],a=O(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...o)=>{const p=await i.apply(e,o);return a?a(p):p}}return t},{})}function ht(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function mt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const i=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(i)&&i()},t},{})}const Ue=new d.Queue;let Q=[],A={};const Le=r=>r;async function oe(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(o=>B(o));if(n.length===0||!s)return null;const i=t.filter(o=>x(o));return i.length&&te(i,e),await se(n,s,e).catch(o=>(console.warn("loadScriptUrl error",n,s,o),null))}function q(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(Q.forEach(n=>{delete s.window[n]}),Q=[]),(n,i,a=K)=>{if(!i||typeof i=="string")return n;if(i.type==="Schema"&&i.id)return a.defineAsyncComponent(async()=>{const o=A[i.id]||await Ue.add(i.id,()=>e(i.id));return o&&(o.name=n,A[i.id]=o),o?J({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="UrlSchema"&&i.url)return a.defineAsyncComponent(async()=>{const o=A[i.url]||await t(i.url);return o&&(o.name=n,A[i.url]=o),o?J({...s,Vue:a,dsl:d.cloneDeep(o),mode:_.Runtime,loader:q(r)}).renderer:null});if(i.type==="Plugin"){let o=i.library?A[i.library]:null;return o||(i.library&&Q.push(i.library),o=A[i.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await oe(i,s.window);return p||(console.warn("getPlugin result is null",i),null)}),o)}return n}}function gt(){A={},Ue.clearAllCache()}function I(r,e,t=K,s=Le,n=[],i=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:o=null,directives:p=[]}=r,{vIf:c,vElseIf:u,vElse:l,vFor:m,vShow:f,vModels:h,vBind:g,vHtml:S,others:v}=Je(p);if(!i&&(u||l))return null;if(c&&!yt(c,e))return Et(r,e,t,s,n);const C=(y,N=0)=>{const P=y.$components,V=(()=>{if(r.name==="component")return _t(y,r.props?.is);if(r.name==="slot")return r.name;const $=s(r.name,r.from,t);if(d.isString($))return Ae($)||Ie($)?$:P[$]??a?.app?.component($)??$;if(d.isObject($)&&r.id){const fe=`Loader${r.id}_${N}`,he=P[fe];return he||(P[fe]=$)}return $})(),b=St(o,r.props??{},y),Ve=wt(t,r.events??{},y);if(r.name==="slot")return jt(t,r,b,y,s);g&&Object.assign(b,y.__parseExpression(g.value)),f&&(b.style=Object.assign(b.style??{},Ct(f,y))),S&&Object.assign(b,bt(S,y)),h.forEach($=>{Object.assign(b,Rt(t,$,y))});const We=Pt(t,r.children??[],y,s,r),pe=y?.__id?`data-v-${y.__id}`:void 0,Qe=pe?{[pe]:""}:{};let W=t.createVNode(V,{key:`${o}_${N}`,...Qe,...b,...Ve},We);const de=a?vt(a,v,y):[];return de.length&&(W=t.withDirectives(W,de)),W};return m?Mt(m,C,e):C(e)}function vt(r,e,t){const s=r.app;return e.map(n=>{const i=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!i)return null;const a=[i];return n.value&&a.push(t.__parseExpression(n.value)),n.arg&&a.push(n.arg),n.modifiers&&a.push(n.modifiers),a}).filter(n=>!!n)}function Je(r=[]){const e=r.find(u=>d.camelCase(u.name)==="vIf"),t=r.find(u=>d.camelCase(u.name)==="vElseIf"),s=r.find(u=>d.camelCase(u.name)==="vElse"),n=r.find(u=>d.camelCase(u.name)==="vFor"),i=r.find(u=>d.camelCase(u.name)==="vShow"),a=r.find(u=>d.camelCase(u.name)==="vBind"),o=r.find(u=>d.camelCase(u.name)==="vHtml"),p=r.filter(u=>d.camelCase(u.name)==="vModel"),c=r.filter(u=>!ve.includes(d.camelCase(u.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:i,vModels:p,vBind:a,others:c,vHtml:o}}function yt(r,e){return!!e.__parseExpression(r.value)}function _t(r,e){return e?j(e)?r.__parseExpression(e):e:"div"}function St(r,e,t){const s=X(e,t);return s.ref=t.__ref(r,s.ref),s}function X(r,e){return j(r)?e.__parseExpression(r):O(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>X(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=X(n,e),t},{}):r}function wt(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((i,a)=>{const o=e[a],p=ae(o.modifiers),c=p.find(m=>s.includes(m)),u="on"+d.upperFirst(a)+(c&&n[c]||""),l=t.__parseFunction(o.handler);return l&&(i[u]=r.withModifiers(l,p)),i},{})}function Et(r,e,t,s,n=[]){let i=n.findIndex(a=>a.id===r.id);for(let a=++i;a<n.length;a++){const{directives:o=[]}=n[a],{vElseIf:p,vElse:c}=Je(o);if(p){if(e.__parseExpression(p.value))return I(n[a],e,t,s,n,!0);continue}if(c)return I(n[a],e,t,s,n,!0)}return null}function ae(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function jt(r,e,t,s,n){const{children:i}=e,a=$t(e,s),o=s.$slots?.[a.name];return o?o(t):i?d.isString(i)?r.createTextVNode(i):j(i)?r.createTextVNode(Z(s.__parseExpression(i))):Array.isArray(i)?i.map(p=>I(p,s,r,n,i)):null:null}function $t(r,e){const{props:t}=r,s=t?.name||"default";return{name:j(s)?e.__parseExpression(s):s,params:[]}}function Ct(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function bt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function Rt(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
|
10
10
|
${e.value.value} = v;
|
package/dist/index.mjs
CHANGED
@@ -7,10 +7,10 @@ import { useRoute as je } from "vue-router";
|
|
7
7
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
8
8
|
* @name @vtj/renderer
|
9
9
|
* @author CHC chenhuachun1549@dingtalk.com
|
10
|
-
* @version 0.12.
|
10
|
+
* @version 0.12.45
|
11
11
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
12
12
|
*/
|
13
|
-
const k = "0.12.
|
13
|
+
const k = "0.12.45";
|
14
14
|
var w = /* @__PURE__ */ ((r) => (r.Runtime = "Runtime", r.Design = "Design", r.Raw = "Raw", r.VNode = "VNode", r))(w || {});
|
15
15
|
const ve = [
|
16
16
|
"$el",
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vtj/renderer",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.12.
|
4
|
+
"version": "0.12.45",
|
5
5
|
"type": "module",
|
6
6
|
"keywords": [
|
7
7
|
"低代码引擎",
|
@@ -21,15 +21,15 @@
|
|
21
21
|
"author": "chenhuachun",
|
22
22
|
"license": "MIT",
|
23
23
|
"dependencies": {
|
24
|
-
"@vtj/
|
25
|
-
"@vtj/
|
24
|
+
"@vtj/utils": "~0.12.45",
|
25
|
+
"@vtj/core": "~0.12.45"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"vue": "~3.5.5",
|
29
29
|
"vue-router": "~4.5.0",
|
30
|
-
"@vtj/
|
31
|
-
"@vtj/
|
32
|
-
"@vtj/
|
30
|
+
"@vtj/icons": "~0.12.45",
|
31
|
+
"@vtj/cli": "~0.12.6",
|
32
|
+
"@vtj/ui": "~0.12.45"
|
33
33
|
},
|
34
34
|
"exports": {
|
35
35
|
".": {
|
@@ -110,17 +110,17 @@ export declare class Access {
|
|
110
110
|
some(code: string | string[]): boolean;
|
111
111
|
install(app: App): void;
|
112
112
|
private isAuthPath;
|
113
|
-
|
113
|
+
toLogin(): void;
|
114
114
|
private setData;
|
115
115
|
private loadData;
|
116
|
-
|
116
|
+
isLogined(): boolean;
|
117
117
|
private hasRoutePermission;
|
118
118
|
private setGuard;
|
119
119
|
private guard;
|
120
120
|
private isWhiteList;
|
121
121
|
private isUnauthorized;
|
122
122
|
private showUnauthorizedAlert;
|
123
|
-
|
123
|
+
showTip(content: string): Promise<any>;
|
124
124
|
private setRequest;
|
125
125
|
}
|
126
126
|
export declare function useAccess(): Access;
|
package/types/version.d.ts
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.12.
|
5
|
+
* @version 0.12.44
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
7
|
*/
|
8
|
-
export declare const version = "0.12.
|
8
|
+
export declare const version = "0.12.44";
|