@vtj/renderer 0.12.66 → 0.12.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,11 +1,11 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("@vtj/core"),d=require("@vtj/utils"),E=require("vue"),ge=require("vue-router");function Ye(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const K=Ye(E);/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@vtj/core"),d=require("@vtj/utils"),E=require("vue"),ye=require("vue-router");function Ze(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const z=Ze(E);/**!
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.66
5
+ * @version 0.12.68
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const M="0.12.66";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={},l=[],u={};return s.forEach(({urls:m,assetsUrl:h,library:f,assetsLibrary:v,localeLibrary:S})=>{m?.forEach(g=>{B(g)&&n.push(Ee(g,t)),x(g)&&i.push(g)}),f&&(o.push(f),p[f]=D(m||[],e),S&&(c[f]=S)),h&&a.push(h),v&&l.push(v),f&&v&&(u[v]=f)}),{scripts:D(n,e),css:D(i,e),materials:D(a,e),libraryExports:o,materialExports:d.dedupArray(l),materialMapLibrary:u,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 l=[];let u=0;for(;u<c.length;){if(/\s/.test(c[u])){u++;continue}if(c.substring(u,u+2)==="/*"){const g=c.indexOf("*/",u+2);if(g!==-1){u=g+2;continue}}if(c[u]==="@"){const g=u;for(;u<c.length&&c[u]!=="{"&&c[u]!==";";)u++;const C=c.substring(g,u).trim(),y=C.includes("@keyframes");if(c[u]===";")l.push({type:"simple-at-rule",content:c.substring(g,u+1)}),u++;else if(c[u]==="{"){const N=u+1;let P=1;for(u++;u<c.length&&P>0;)c[u]==="{"?P++:c[u]==="}"&&P--,u++;const V=c.substring(g,u),b=c.substring(N,u-1);l.push({type:y?"keyframes":"at-rule",rule:C,content:V,inner:b})}continue}const m=u;for(;u<c.length&&c[u]!=="{";)u++;if(u>=c.length)break;const h=c.substring(m,u).trim();if(!h){u++;continue}const f=u+1;let v=1;for(u++;u<c.length&&v>0;)c[u]==="{"?v++:c[u]==="}"&&v--,u++;const S=c.substring(f,u-1);l.push({type:"rule",selector:h,content:S.trim()})}return l},s=c=>{const l=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(l)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(l,u,m)=>{const h=u.trim(),f=m.trim();return h?`${h}[${e}] ${f}`:f}),i=c=>{const l=c.trim();if(!l||l.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(l)||s(l))return l;const u=l.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(u){const[,m,h=""]=u,f=m.trim();return f?`${f}[${e}]${h}`:l}return`${l}[${e}]`},a=c=>n(c).split(",").map(u=>i(u)).filter(u=>u.trim()).join(", "),o=c=>c.map(l=>{switch(l.type){case"simple-at-rule":return l.content;case"keyframes":return l.content;case"at-rule":try{const m=t(l.inner),h=o(m);return`${l.rule} { ${h} }`}catch{return l.content}case"rule":if(!l.selector||!l.content)return"";const u=a(l.selector);return u.trim()?`${u} { ${l.content} }`:"";default:return""}}).filter(l=>l.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
- `),l=t(c),u=o(l);return p(u)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,l=>l).replace(/([^{}@]+)(?=\s*{)/g,l=>{const u=l.trim();return!u||u.startsWith("@")||u.includes(`[${e}]`)||s(u)?l:`${u}[${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,l=Array.from(c).filter(u=>u.id!==e);p.adoptedStyleSheets=[...l,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=l=>{o(l)},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
- `)+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:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},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,l=i(o.url)?.params;return Object.assign(o,{data:c,params:p,query:l}),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}),l=e.defineComponent({name:o.value.name,__scopeId:o.value.id?`data-v-${o.value.id}`:void 0,props:{...lt(o.value.props??[],c)},setup(u){c.$props=u,c.props=u,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),h=dt(o.value.methods??{},c),f=ft(e,o.value.inject,c);for(const[g,C]of Object.entries(f||{}))f[g]=e.inject(g,C);const v=Ne(o.value.dataSources||{},c),S={...f,...m,...h,...v};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 u=o.value.nodes||[];return u.length===1?I(u[0],c,e,a,u):u.map(m=>I(m,c,e,a,u))},...mt(o.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),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:l,vElse:u,vFor:m,vShow:h,vModels:f,vBind:v,vHtml:S,others:g}=Je(p);if(!i&&(l||u))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);v&&Object.assign(b,y.__parseExpression(v.value)),h&&(b.style=Object.assign(b.style??{},Ct(h,y))),S&&Object.assign(b,bt(S,y)),f.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,g,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(l=>d.camelCase(l.name)==="vIf"),t=r.find(l=>d.camelCase(l.name)==="vElseIf"),s=r.find(l=>d.camelCase(l.name)==="vElse"),n=r.find(l=>d.camelCase(l.name)==="vFor"),i=r.find(l=>d.camelCase(l.name)==="vShow"),a=r.find(l=>d.camelCase(l.name)==="vBind"),o=r.find(l=>d.camelCase(l.name)==="vHtml"),p=r.filter(l=>d.camelCase(l.name)==="vModel"),c=r.filter(l=>!ve.includes(d.camelCase(l.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)),l="on"+d.upperFirst(a)+(c&&n[c]||""),u=t.__parseFunction(o.handler);return u&&(i[l]=r.withModifiers(u,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) => {
7
+ */const I="0.12.68";var S=(r=>(r.Runtime="Runtime",r.Design="Design",r.Raw="Raw",r.VNode="VNode",r))(S||{});const Z=["$el","$emit","$nextTick","$parent","$root","$attrs","$slots","$watch","$props","$options","$forceUpdate"],et=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated"],_e=["vIf","vElseIf","vElse","vShow","vModel","vFor","vBind","vHtml"],Se={String,Number,Boolean,Array,Object,Function,Date},T="VtjPage",H="VtjHomepage",we="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(","),Ee="component,slot".split(","),tt=["h","t","t","p","s",":","/","/","l","c","d","p",".","v","t","j",".","p","r","o"].join(""),st={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 B(r){return/\.css$/.test(r)}function N(r){return/\.js$/.test(r)}function $e(r){return/\.json$/.test(r)}function rt(r){return r.map(e=>`<script src="${d.url.append(e,{v:I})}"><\/script>`).join("")}function nt(r=[]){return r.map(e=>`<link rel="stylesheet" href="${d.url.append(e,{v:I})}" />`).join("")}function je(r,e=!1){return e&&r.endsWith(".prod.js")?r.replace(".prod.js",".js"):r}function Ce(r,e,t=!1){const s=r.filter(m=>!!m.enabled),n=[],o=[],a=[],i=[],p={},c={},l=[],u={};return s.forEach(({urls:m,assetsUrl:f,library:h,assetsLibrary:y,localeLibrary:v})=>{m?.forEach(g=>{N(g)&&n.push(je(g,t)),B(g)&&o.push(g)}),h&&(i.push(h),p[h]=D(m||[],e),v&&(c[h]=v)),f&&a.push(f),y&&l.push(y),h&&y&&(u[y]=h)}),{scripts:D(n,e),css:D(o,e),materials:D(a,e),libraryExports:i,materialExports:d.dedupArray(l),materialMapLibrary:u,libraryMap:p,libraryLocaleMap:c}}function Re(r,e){const{name:t,parent:s,alias:n}=r;return s?e[s]?.[n||t]:e[n||t]}function be(r=[]){const e=r.filter(s=>B(s)),t=r.filter(s=>N(s));return{css:e,js:t}}function Pe(r,e){const t=c=>{const l=[];let u=0;for(;u<c.length;){if(/\s/.test(c[u])){u++;continue}if(c.substring(u,u+2)==="/*"){const g=c.indexOf("*/",u+2);if(g!==-1){u=g+2;continue}}if(c[u]==="@"){const g=u;for(;u<c.length&&c[u]!=="{"&&c[u]!==";";)u++;const C=c.substring(g,u).trim(),_=C.includes("@keyframes");if(c[u]===";")l.push({type:"simple-at-rule",content:c.substring(g,u+1)}),u++;else if(c[u]==="{"){const U=u+1;let P=1;for(u++;u<c.length&&P>0;)c[u]==="{"?P++:c[u]==="}"&&P--,u++;const V=c.substring(g,u),R=c.substring(U,u-1);l.push({type:_?"keyframes":"at-rule",rule:C,content:V,inner:R})}continue}const m=u;for(;u<c.length&&c[u]!=="{";)u++;if(u>=c.length)break;const f=c.substring(m,u).trim();if(!f){u++;continue}const h=u+1;let y=1;for(u++;u<c.length&&y>0;)c[u]==="{"?y++:c[u]==="}"&&y--,u++;const v=c.substring(h,u-1);l.push({type:"rule",selector:f,content:v.trim()})}return l},s=c=>{const l=c.trim();return/^(from|to|\d+(\.\d+)?%)$/.test(l)},n=c=>c.replace(/::v-deep\(/g,":deep(").replace(/::v-deep\s+/g,":deep(").replace(/\/deep\//g," ").replace(/>>>/g," ").replace(/(.*?):deep\(([^)]+)\)/g,(l,u,m)=>{const f=u.trim(),h=m.trim();return f?`${f}[${e}] ${h}`:h}),o=c=>{const l=c.trim();if(!l||l.includes(`[${e}]`)||/^(:root|:host|html|body)(\s|$|:|\.|\#|\[)/.test(l)||s(l))return l;const u=l.match(/^(.+?)((?:::?[\w-]+(?:\([^)]*\))?)*)\s*$/);if(u){const[,m,f=""]=u,h=m.trim();return h?`${h}[${e}]${f}`:l}return`${l}[${e}]`},a=c=>n(c).split(",").map(u=>o(u)).filter(u=>u.trim()).join(", "),i=c=>c.map(l=>{switch(l.type){case"simple-at-rule":return l.content;case"keyframes":return l.content;case"at-rule":try{const m=t(l.inner),f=i(m);return`${l.rule} { ${f} }`}catch{return l.content}case"rule":if(!l.selector||!l.content)return"";const u=a(l.selector);return u.trim()?`${u} { ${l.content} }`:"";default:return""}}).filter(l=>l.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
+ `),l=t(c),u=i(l);return p(u)}catch(c){return console.error("CSS scoping failed:",c),console.error("Input CSS:",r),r.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(@keyframes\s+[^{]+\s*{[^{}]*(?:{[^}]*}[^{}]*)*})/g,l=>l).replace(/([^{}@]+)(?=\s*{)/g,l=>{const u=l.trim();return!u||u.startsWith("@")||u.includes(`[${e}]`)||s(u)?l:`${u}[${e}]`})}}function se(r){return d.isString(r)?r:JSON.stringify(r)}function re(r,e,t,s=!1){const n=r.CSSStyleSheet,o=s?`data-v-${e}`:e,a=s?Pe(t,o):t;if(n.prototype.replaceSync){const i=new n;i.id=e,i.replaceSync(a);const p=r.document,c=p.adoptedStyleSheets,l=Array.from(c).filter(u=>u.id!==e);p.adoptedStyleSheets=[...l,i]}else{const i=r.document;let p=i.getElementById(e);p?p.innerHTML=a:(p=i.createElement("style"),p.id=e,p.innerHTML=a,i.head.appendChild(p))}}async function Ae(r,e){const t=await window.fetch(e).then(s=>s.text()).catch(()=>"");t&&re(window,r,t)}function ne(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 oe(r,e,t=window){const s=t.document,n=t.document.head;let o=t[e];return o?o.default||o:new Promise((a,i)=>{for(const p of r){const c=s.createElement("script");c.src=p,c.onload=()=>{o=t[e],o?a(o.default||o):i(null)},c.onerror=l=>{i(l)},n.appendChild(c)}})}function Me(r){return d.isFunction(r)||d.isFunction(r?.install)}function Ie(r){return Ee.includes(r)}function Te(r){return we.includes(r)}function F(r=window){const e=window?.Mock;if(e)return e;const t=r?.Mock;if(t&&window)return window.Mock=t,t}function ot(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 k(r,e,t=!1,s=!1){try{const n=['"use strict";',"var __self = arguments[0];"];n.push("return ");let o=(r.value||"").trim();o=o.replace(/this(\W|$)/g,(i,p)=>`__self${p}`),o=n.join(`
9
+ `)+o;const a=`with(${t?"{}":"$scope || {}"}) { ${o} }`;return new Function("$scope",a)(e)}catch(n){if(d.logger.error("parseExpression.error",n,r,e?.__self??e),s)throw n}}function J(r,e,t=!1,s=!1){const n=k(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 $(r){return r&&r.type==="JSExpression"}function O(r){return typeof r=="object"&&r&&r.type==="JSFunction"}function Fe(r){return $(r)||O(r)}function it(r){return Fe(r)?r.value:JSON.stringify(r)}const at={session:!1,authKey:"Authorization",storageKey:"ACCESS_STORAGE",storagePrefix:"__VTJ_",unauthorized:void 0,auth:"/#/login",redirectParam:"r",unauthorizedCode:401,unauthorizedMessage:"登录已经失效,请重新登录!",noPermissionMessage:"无权限访问该页面",appName:"",statusKey:"code"},ie=Symbol("access");class ae{options;data=null;mode=S.Raw;interceptResponse=!0;constructor(e){this.options=Object.assign({},at,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===S.Raw&&this.setGuard(s),n&&this.setRequest(n)}login(e){const{storageKey:t,storagePrefix:s,session:n,authKey:o}=this.options;this.setData(e),this.data&&(d.storage.save(t,e,{type:"local",prefix:s}),n&&d.cookie.set(o,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(o=>s[o]||s[t+"."+o])}some(e){const{appName:t}=this.options,{permissions:s={}}=this.data||{};return d.toArray(e).some(o=>s[o]||s[t+"."+o])}install(e){e.config.globalProperties.$access=this,e.provide(ie,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 ke(){return E.inject(ie,null)}function ct(r={}){const{notify:e,loading:t,settings:s={},Startup:n,access:o,useTitle:a,alert:i}=r;let p=null;return{request:d.createRequest({settings:{type:"form",validSuccess:!0,originResponse:!1,loading:!0,validate:l=>l.data?.code===0||!!l.data?.success,failMessage:!0,showError:l=>{e&&e(l||"未知错误")},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:o?new ae({alert:i,...o}):void 0}}function lt(r={}){return new ae(r)}function Oe(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?k(r.headers,{},!0):void 0,o={url:r.url,method:r.method,settings:{...r.settings,headers:n}};return(a,i)=>(delete o.data,s.send(d.merge(o,i||{},{data:a})))}}function De(r,e){const{metaQuery:t}=e;if(!t)return;const{code:s,queryCode:n}=r;return(o,a)=>{if(!t){console.warn("adapter.metaQuery is not defined!");return}return t(s,n,o,a)}}function He(r=[],e=[],t){const s={};for(const n of r)s[n.id]=Oe(n,t);for(const n of e)s[n.id]=De(n,t);return s}async function xe(r=[],e=window){const t=F(e);t&&(ce(e),r.forEach(s=>Ne(t,s)))}function Be(r,e=window){const t=O(r.mockTemplate)&&r.mockTemplate.value?J(r.mockTemplate,{},!0):void 0,s=F(e);return async(...n)=>{let o={};if(t)try{o=await t.apply(t,n)}catch(a){d.logger.warn("模拟数据模版异常",a)}return s?.mock(o)}}function Ne(r,e){if(!e.mock)return;const{url:t,mockTemplate:s}=e;if(t&&s){const n=d.pathToRegexp(`${t}(.*)`),o=d.pathToRegexpMatch(t,{decode:decodeURIComponent}),a=k(s,{},!0);r.mock(n,i=>{const p=d.url.parse(i.url)||{},c=i.body instanceof FormData?d.formDataToJson(i.body):i.body,l=o(i.url)?.params;return Object.assign(i,{data:c,params:p,query:l}),r.mock(a(i))})}}function ce(r=window){const e=F(r);e&&(e._mocked={})}class Ue{__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=z){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&&Z.forEach(e=>{this[e]=this.__instance?.[e]})}__cleanup(){Z.forEach(e=>{this[e]=null}),this.__reset()}__reset(){this.__refs={},this.$refs={},this.__contextRefs={},this.context={}}__parseFunction(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return J({type:s,value:n},this)}else return J(e,this)}__parseExpression(e){if(e)if(this.__mode===S.Runtime){const{id:t,type:s}=e,n=t?this.__transform[t]??e.value:e.value;return k({type:s,value:n},this)}else return k(e,this)}__ref(e=null,t){if(this.__mode!==S.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,S.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 o=new Set([].concat(n,s));return Array.from(o)}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 q(r){const{Vue:e=z,mode:t=S.Runtime,components:s={},libs:n={},apis:o={},loader:a}=r,i=e.computed(()=>r.dsl),p={$components:s,$libs:n,$apis:o},c=new Ue({mode:t,dsl:i.value,attrs:p}),l=e.defineComponent({name:i.value.name,__scopeId:i.value.id?`data-v-${i.value.id}`:void 0,props:{...pt(i.value.props??[],c)},setup(u){c.$props=u,c.props=u,i.value.id&&re(r.window||window,i.value.id,i.value.css||"",!0),c.state=dt(e,i.value.state??{},c);const m=ft(e,i.value.computed??{},c),f=ht(i.value.methods??{},c),h=mt(e,i.value.inject,c);for(const[g,C]of Object.entries(h||{}))h[g]=e.inject(g,C);const y=Le(i.value.dataSources||{},c),v={...h,...m,...f,...y};return c.setup(v,e),gt(e,i.value.watch??[],c),{vtj:c}},emits:ut(i.value.emits),expose:["vtj"],render(){if(!i.value.nodes)return null;const u=i.value.nodes||[];return u.length===1?M(u[0],c,e,a,u):u.map(m=>M(m,c,e,a,u))},...vt(i.value.lifeCycles??{},c)});return{renderer:e.markRaw(l),context:c}}function ut(r=[]){return r.map(e=>d.isString(e)?e:e.name)}function pt(r=[],e){const t=s=>s?(Array.isArray(s)?s:[s]).map(o=>Se[o]):void 0;return r.map(s=>d.isString(s)?{name:s}:{name:s.name,type:s.type,required:s.required,default:$(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 dt(r,e,t){return r.reactive(Object.keys(e||{}).reduce((s,n)=>{let o=e[n];return $(o)?o=t.__parseExpression(o):O(o)&&(o=t.__parseFunction(o)),s[n]=o,s},{}))}function ft(r,e,t){return Object.entries(e??{}).reduce((s,[n,o])=>(s[n]=r.computed(t.__parseFunction(o)),s),{})}function ht(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>(t[s]=e.__parseFunction(n),t),{})}function mt(r,e=[],t){return e.reduce((s,n)=>{const{name:o,from:a}=n||{};n.default;const i=$(a)?t.__parseExpression(a)||o:a??o,p=$(n.default)?t.__parseExpression(n.default):n.default??null;return s[o]=r.inject(i,p),s},{})}function Le(r,e){return Object.keys(r).reduce((t,s)=>{const n=r[s];if(n.type==="mock")t[s]=Be(n);else if(n.ref){const o=e.$apis[n.ref],a=O(n.transform)?n.transform.value?e.__parseFunction(n.transform):void 0:n.transform;t[s]=async(...i)=>{const p=await o.apply(e,i);return a?a(p):p}}return t},{})}function gt(r,e=[],t){e.forEach(s=>{r.watch(t.__parseExpression(s.source),t.__parseFunction(s.handler),{deep:s.deep,immediate:s.immediate})})}function vt(r,e){return Object.entries(r??{}).reduce((t,[s,n])=>{const o=e.__parseFunction(n);return t[s]=async()=>{await d.delay(0),d.isFunction(o)&&o()},t},{})}const Je=new d.Queue;let Q=[],A={};const qe=r=>r;async function le(r,e=window){const{urls:t=[],library:s}=r,n=t.filter(i=>N(i));if(n.length===0||!s)return null;const o=t.filter(i=>B(i));return o.length&&ne(o,e),await oe(n,s,e).catch(i=>(console.warn("loadScriptUrl error",n,s,i),null))}function K(r){const{getDsl:e,getDslByUrl:t,options:s}=r;return s.window&&(Q.forEach(n=>{delete s.window[n]}),Q=[]),(n,o,a=z)=>{if(!o||typeof o=="string")return n;if(o.type==="Schema"&&o.id)return a.defineAsyncComponent(async()=>{const i=A[o.id]||await Je.add(o.id,()=>e(o.id));return i&&(i.name=n,A[o.id]=i),i?q({...s,Vue:a,dsl:d.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="UrlSchema"&&o.url)return a.defineAsyncComponent(async()=>{const i=A[o.url]||await t(o.url);return i&&(i.name=n,A[o.url]=i),i?q({...s,Vue:a,dsl:d.cloneDeep(i),mode:S.Runtime,loader:K(r)}).renderer:null});if(o.type==="Plugin"){let i=o.library?A[o.library]:null;return i||(o.library&&Q.push(o.library),i=A[o.library||Symbol()]=a.defineAsyncComponent(async()=>{const p=await le(o,s.window);return p||(console.warn("getPlugin result is null",o),null)}),i)}return n}}function yt(){A={},Je.clearAllCache()}function M(r,e,t=z,s=qe,n=[],o=!1){if(!r||!r.name||r.invisible)return null;const a=t.getCurrentInstance()?.appContext,{id:i=null,directives:p=[]}=r,{vIf:c,vElseIf:l,vElse:u,vFor:m,vShow:f,vModels:h,vBind:y,vHtml:v,others:g}=Ke(p);if(!o&&(l||u))return null;if(c&&!St(c,e))return jt(r,e,t,s,n);const C=(_,U=0)=>{const P=_.$components,V=(()=>{if(r.name==="component")return wt(_,r.props?.is);if(r.name==="slot")return r.name;const j=s(r.name,r.from,t);if(d.isString(j))return Ie(j)||Te(j)?j:P[j]??a?.app?.component(j)??j;if(d.isObject(j)&&r.id){const ge=`Loader${r.id}_${U}`,ve=P[ge];return ve||(P[ge]=j)}return j})(),R=Et(i,r.props??{},_),Qe=$t(t,r.events??{},_);if(r.name==="slot")return Ct(t,r,R,_,s);y&&Object.assign(R,_.__parseExpression(y.value)),f&&(R.style=Object.assign(R.style??{},bt(f,_))),v&&Object.assign(R,Pt(v,_)),h.forEach(j=>{Object.assign(R,At(t,j,_))});const Ye=Mt(t,r.children??[],_,s,r),he=_?.__id?`data-v-${_.__id}`:void 0,Xe=he?{[he]:""}:{};let W=t.createVNode(V,{key:`${i}_${U}`,...Xe,...R,...Qe},Ye);const me=a?_t(a,g,_):[];return me.length&&(W=t.withDirectives(W,me)),W};return m?Ft(m,C,e):C(e)}function _t(r,e,t){const s=r.app;return e.map(n=>{const o=typeof n.name=="string"?s.directive(n.name):t.__parseExpression(n.name);if(!o)return null;const a=[o];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 Ke(r=[]){const e=r.find(l=>d.camelCase(l.name)==="vIf"),t=r.find(l=>d.camelCase(l.name)==="vElseIf"),s=r.find(l=>d.camelCase(l.name)==="vElse"),n=r.find(l=>d.camelCase(l.name)==="vFor"),o=r.find(l=>d.camelCase(l.name)==="vShow"),a=r.find(l=>d.camelCase(l.name)==="vBind"),i=r.find(l=>d.camelCase(l.name)==="vHtml"),p=r.filter(l=>d.camelCase(l.name)==="vModel"),c=r.filter(l=>!_e.includes(d.camelCase(l.name)));return{vIf:e,vElseIf:t,vElse:s,vFor:n,vShow:o,vModels:p,vBind:a,others:c,vHtml:i}}function St(r,e){return!!e.__parseExpression(r.value)}function wt(r,e){return e?$(e)?r.__parseExpression(e):e:"div"}function Et(r,e,t){const s=ee(e,t);return s.ref=t.__ref(r,s.ref),s}function ee(r,e){return $(r)?e.__parseExpression(r):O(r)?e.__parseFunction(r):Array.isArray(r)?r.map(t=>ee(t,e)):typeof r=="object"?Object.keys(r||{}).reduce((t,s)=>{let n=r[s];return t[s]=ee(n,e),t},{}):r}function $t(r,e,t){const s=["passive","capture","once"],n={capture:"Capture",once:"Once",passive:"OnceCapture"};return Object.keys(e||{}).reduce((o,a)=>{const i=e[a],p=ue(i.modifiers),c=p.find(m=>s.includes(m)),l="on"+d.upperFirst(a)+(c&&n[c]||""),u=t.__parseFunction(i.handler);return u&&(o[l]=r.withModifiers(u,p)),o},{})}function jt(r,e,t,s,n=[]){let o=n.findIndex(a=>a.id===r.id);for(let a=++o;a<n.length;a++){const{directives:i=[]}=n[a],{vElseIf:p,vElse:c}=Ke(i);if(p){if(e.__parseExpression(p.value))return M(n[a],e,t,s,n,!0);continue}if(c)return M(n[a],e,t,s,n,!0)}return null}function ue(r={},e=!1){const t=Object.keys(r);return e?t.map(s=>"."+s):t}function Ct(r,e,t,s,n){const{children:o}=e,a=Rt(e,s),i=s.$slots?.[a.name];return i?i(t):o?d.isString(o)?r.createTextVNode(o):$(o)?r.createTextVNode(se(s.__parseExpression(o))):Array.isArray(o)?o.map(p=>M(p,s,r,n,o)):null:null}function Rt(r,e){const{props:t}=r,s=t?.name||"default";return{name:$(s)?e.__parseExpression(s):s,params:[]}}function bt(r,e){return e.__parseExpression(r.value)?{}:{display:"none"}}function Pt(r,e){return{innerHTML:e.__parseExpression(r.value)||""}}function At(r,e,t){const s={type:"JSFunction",value:e.value?.value?`(v) => {
10
10
  ${e.value.value} = v;
11
- }`:"(v) => {}"},n=t.__parseFunction(s),i=ae(j(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=j(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:i.length&&n?r.withModifiers(n,i):n}}function Pt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if(j(e))return{default:()=>Z(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const i=At(e),a=(o,p)=>!o||!n?{}:n?.id&&Object.keys(o).length?p?{[p]:o}:{[`scope_${n.id}`]:o}:p?{[p]:Object.create(null)}:{};return Object.entries(i).reduce((o,[p,{nodes:c,params:l,scope:u}])=>(o[p]=m=>{const h=l.length?d.pick(m??{},l):a(m,u);return c.map(f=>I(f,t.__clone(h),r,s,c))},o),{})}return null}function At(r){const e={};for(const t of r){const s=It(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function It(r="default"){return d.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Mt(r,e,t){const{value:s,iterator:n}=r,{item:i="item",index:a="index"}=n||{};let o=t.__parseExpression(s)||[];return Number.isInteger(o)&&(o=new Array(o).fill(!0).map((p,c)=>c+1)),Array.isArray(o)?o.map((p,c)=>e(t.__clone({[i]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const me=E.defineComponent({name:"VtjPageContainer",async setup(){const r=ue(),e=ge.useRoute(),t=e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,i=E.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:i,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?E.h(r,{...e,key:t}):E.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),Tt=E.defineComponent({name:"VtjStartupContainer",render(){return E.h("div","page not found!")}});function z(r,e,t=[]){return t.map(s=>{const{id:n,title:i,icon:a,children:o,hidden:p}=s;return{id:n,title:i,icon:a,hidden:p,url:`${r}/${e}/${n}`,children:o&&o.length?z(r,e,o):void 0}})}function ce(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=ce(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function kt(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=ue(),i=ge.useRoute(),a=Te(),o=E.ref(!1),p=E.ref(!1),c=n.project;E.watchEffect(()=>{const{name:m,params:h,meta:f}=i;if(m===T){const v=n.getPage(h.id);o.value=!v?.mask,p.value=!!v?.pure}else if(m===H){const v=n.getHomepage();o.value=!v?.mask,p.value=!!v?.pure}else o.value=!f.mask,p.value=!!f.pure});const l=z(e,t,c?.pages),u=c?.config;return{disabled:o,logo:u?.logo,themeSwitchable:u?.themeSwitchable,title:u?.title||c?.description||c?.name||"VTJ App",menus:s?l:ce(l,a),pure:p}}const le=Symbol("Provider");var qe=(r=>(r.Production="production",r.Development="development",r))(qe||{});class Ke extends R.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=_.Raw,dependencies:n,materials:i,project:a={},adapter:o={},globals:p={},modules:c={},router:l=null,materialPath:u="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=l,this.materialPath=u,this.nodeEnv=m,n&&(this.dependencies=n),i&&(this.materials=i),Object.assign(this.globals,p),Object.assign(this.adapter,o);const{access:h,request:f}=this.adapter;h&&h.connect({mode:s,router:l,request:f}),a&&s!==_.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(i){d.logger.warn("模拟数据模版异常",i)}return k()?.mock(s)}}async load(e){const t=this.modules[`.vtj/projects/${e.id}.json`]||this.modules[`/src/.vtj/projects/${e.id}.json`];if(this.project=t?await t():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:s=[],meta:n=[]}=this.project,i=window;i&&(i.CKEDITOR_VERSION=void 0),this.mode===_.Raw?await this.loadDependencies(i):await this.loadAssets(i),this.initMock(i),this.apis=Oe(s,n,this.adapter),ie(i),De(s,i),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=k(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:i,materialPath:a,nodeEnv:o}=this,{libraryExports:p,libraryMap:c,materials:l,materialExports:u,materialMapLibrary:m}=je(t,a,o==="development");for(const h of p){const f=s[h],v=e[h];if(v)n[h]=v;else if(f)e[h]=n[h]=await f();else{const S=c[h]||[];for(const g of S)x(g)&&await Re(g,d.url.append(g,{v:M})),B(g)&&await d.loadScript(d.url.append(g,{v:M}));n[h]=e[h]}}if(o==="development"){for(const f of l)await d.loadScript(d.url.append(f,{v:M}));const h=this.materials||{};for(const f of u){const v=e[m[f]],S=R.BUILT_IN_COMPONENTS[f];if(S)v&&S.forEach(g=>{i[g]=v[g]});else{const g=h[f]?(await h[f]()).default:e[f];g&&v&&(g.components||[]).forEach(C=>{i[C.name]=$e(C,v)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const i=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:o=i,routeMeta:p}=s,c=a?"":"/",l={path:`${c}${o}/:id`,name:T,component:me},u={path:c,name:H,component:t?.homepage?me:n.startupComponent||Tt,meta:p};e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),a?(e.addRoute(a,l),e.addRoute(a,u)):(e.addRoute(l),e.addRoute(u))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&Pe(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(le,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===_.Design&&(e.config.errorHandler=(s,n,i)=>{const a=n?.$options.name,o=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${o} ${i}`;console.error("[VTJ Error]:",{err:s,instance:n,info:i},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,i=[])=>{for(const a of i){if(a.id===n)return a;if(a.children&&a.children.length){const o=s(n,a.children);if(o)return o}}};return s(e,t)||null}getMenus(e="page",t=""){return z(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const t=this.modules[`.vtj/files/${e}.json`]||this.modules[`/src/.vtj/files/${e}.json`];return t?await t():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:i,apis:a}=this,o={mode:i,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=q({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:o});return J({...o,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const n=`.vtj/vue/${e}.vue`,i=this.modules[n]||this.modules[`/src/pages/${e}.vue`];if(i)return(await i())?.default;const a=await this.getDsl(s.id);return a?this.createDslRenderer(a).renderer:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return E.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return E.defineAsyncComponent(async()=>await oe(e,window))}}function Ft(r){const e=new Ke(r);return{provider:e,onReady:s=>e.ready(s)}}function ue(r={}){const e=E.inject(le,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function Ot(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(o=>e+o),{css:i,js:a}=Ce(n);if(i.length&&te(i),a.length)return await se(a,t).catch(()=>{})}const ze={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},Dt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:ze}),Ht=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...ze,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function xt(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class G{constructor(e=d.request){this.req=e,this.api=Dt(e),this.uploader=Ht(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).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 parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(i=>we(i))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(i=>i.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Bt extends G{init(e){const t=new R.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new R.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new R.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class Ge extends G{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new R.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new R.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.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 n=(t.items||[]).map(i=>i.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new R.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let U=null;function Nt(){return U||(U=new Ge,U)}class Ut extends G{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:d.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)}}exports.ACCESS=et;exports.ACCESS_KEY=re;exports.Access=ne;exports.BUILD_IN_TAGS=Se;exports.BUILT_IN_DIRECTIVES=ve;exports.BaseService=G;exports.CONTEXT_HOST=Y;exports.Context=Be;exports.ContextMode=_;exports.DATA_TYPES=ye;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=_e;exports.JSCodeToString=nt;exports.LIFE_CYCLES_LIST=Xe;exports.LocalService=Ut;exports.MemoryService=Ge;exports.NodeEnv=qe;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ke;exports.REMOTE=Ze;exports.StorageService=Bt;exports.VTJ_RENDERER_VERSION=M;exports.adoptedStyleSheets=ee;exports.clearLoaderCache=gt;exports.compileScopedCSS=be;exports.createAccess=at;exports.createAdapter=ot;exports.createAssetScripts=tt;exports.createAssetsCss=st;exports.createDataSources=Ne;exports.createLoader=q;exports.createMemoryService=Nt;exports.createMenus=z;exports.createMetaApi=Fe;exports.createMock=He;exports.createProvider=Ft;exports.createRenderer=J;exports.createSchemaApi=ke;exports.createSchemaApis=Oe;exports.createServiceRequest=xt;exports.defaultLoader=Le;exports.fillBasePath=D;exports.getMock=k;exports.getModifiers=ae;exports.getPlugin=oe;exports.getRawComponent=$e;exports.isBuiltInTag=Ae;exports.isCSSUrl=x;exports.isJSCode=Me;exports.isJSExpression=j;exports.isJSFunction=O;exports.isJSON=we;exports.isJSUrl=B;exports.isNativeTag=Ie;exports.isVuePlugin=Pe;exports.loadCss=Re;exports.loadCssUrl=te;exports.loadEnhance=Ot;exports.loadScriptUrl=se;exports.menusFilter=ce;exports.mockApi=xe;exports.mockApis=De;exports.mockCleanup=ie;exports.nodeRender=I;exports.parseDeps=je;exports.parseExpression=F;exports.parseFunction=L;exports.parseUrls=Ce;exports.providerKey=le;exports.removeProdFlag=Ee;exports.setupPageSetting=rt;exports.toString=Z;exports.useAccess=Te;exports.useMask=kt;exports.useProvider=ue;
11
+ }`:"(v) => {}"},n=t.__parseFunction(s),o=ue($(e.modifiers)?t.__parseExpression(e.modifiers):e.modifiers),a=$(e.arg)?t.__parseExpression(e.arg):e.arg||"modelValue";return{[a]:t.__parseExpression(e.value),[`onUpdate:${a}`]:o.length&&n?r.withModifiers(n,o):n}}function Mt(r,e,t,s,n){if(!e)return null;if(d.isString(e))return{default:()=>e};if($(e))return{default:()=>se(t.__parseExpression(e))};if(Array.isArray(e)&&e.length>0){const o=It(e),a=(i,p)=>!i||!n?{}:n?.id&&Object.keys(i).length?p?{[p]:i}:{[`scope_${n.id}`]:i}:p?{[p]:Object.create(null)}:{};return Object.entries(o).reduce((i,[p,{nodes:c,params:l,scope:u}])=>(i[p]=m=>{const f=l.length?d.pick(m??{},l):a(m,u);return c.map(h=>M(h,t.__clone(f),r,s,c))},i),{})}return null}function It(r){const e={};for(const t of r){const s=Tt(t.slot),n=s.name;e[n]?(e[n].nodes.push(t),e[n].params=e[n].params.concat(s.params),e[n].scope=s.scope||""):e[n]={nodes:[t],params:s.params,scope:s.scope||""}}return e}function Tt(r="default"){return d.isString(r)?{name:r,params:[],scope:""}:{params:[],scope:"",...r}}function Ft(r,e,t){const{value:s,iterator:n}=r,{item:o="item",index:a="index"}=n||{};let i=t.__parseExpression(s)||[];return Number.isInteger(i)&&(i=new Array(i).fill(!0).map((p,c)=>c+1)),Array.isArray(i)?i.map((p,c)=>e(t.__clone({[o]:p,[a]:c}),c)):(console.warn("[vForRender]:",`${s?.value} is not a Arrary`),[])}const Y=E.defineComponent({name:"VtjPageContainer",async setup(){const r=fe(),e=ye.useRoute(),t=e.meta.__vtj__||e.params.id,s=t?r.getPage(t):r.getHomepage(),n=s?await r.getRenderComponent(s.id):null,o=E.ref(Symbol());if(s){Object.assign(e.meta,s.meta||{},{cache:s.cache});const{useTitle:a}=r?.adapter;a&&a(s.title||"VTJ")}return{provider:r,component:n,file:s,query:e.query,meta:e.meta,sid:o,route:e}},render(){const{component:r,query:e,sid:t}=this;return r?E.h(r,{...e,key:t}):E.h("div","页面不存在")},activated(){this.meta.cache===!1&&(this.sid=Symbol())}}),kt=E.defineComponent({name:"VtjStartupContainer",render(){return E.h("div","page not found!")}});function x(r,e,t=[]){const s=[];for(const n of t){const{id:o,title:a,icon:i,children:p,hidden:c,layout:l}=n;if(l){const u=x(r,e,p||[]);s.push(...u)}else{const u={id:o,title:a,icon:i,hidden:c,url:`${r}/${e}/${o}`,children:p&&p.length?x(r,e,p):void 0};s.push(u)}}return s}function pe(r,e){if(!e)return r;let t=[];for(const s of r)if(s.children&&s.children.length){const n=pe(s.children,e);n.length&&(s.children=n,t.push(s))}else e.can(s.id.toString())&&t.push(s);return t}function Ot(r){const{menuPathPrefix:e="",pageRouteName:t="page",disableMenusFilter:s=!1}=r||{},n=fe(),o=ye.useRoute(),a=ke(),i=E.ref(!1),p=E.ref(!1),c=n.project,l=f=>{i.value=!f?.mask,p.value=!!f?.pure};E.watchEffect(()=>{const{name:f,params:h,meta:y}=o;if(f===T){const v=n.getPage(h.id);l(v)}else if(f===H){const v=n.getHomepage();l(v)}else{const v=y.__vtj__;if(v){const g=n.getPage(v);l(g)}else i.value=!y.mask,p.value=!!y.pure}});const u=x(e,t,c?.pages),m=c?.config;return{disabled:i,logo:m?.logo,themeSwitchable:m?.themeSwitchable,title:m?.title||c?.description||c?.name||"VTJ App",menus:s?u:pe(u,a),pure:p}}function X(r,e){const{id:t,title:s,meta:n}=r,{name:o="page",prefix:a="",component:i,routeMeta:p}=e;return{name:t,path:`${a}${o}/${t}`,component:i,meta:{title:s,...p,...n,__vtj__:t}}}function te(r){const{name:e="page",prefix:t="",pages:s=[],component:n,loader:o,routeMeta:a,homepage:i}=r,p=[];for(const c of s){const{id:l,title:u,dir:m,layout:f,children:h,meta:y}=c;if(m){const v=te({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]});p.push(...v)}else if(f){const v=te({name:e,prefix:t,component:n,routeMeta:a,homepage:i,loader:o,pages:h||[]}),g={name:`layout_${l}`,path:t,component:()=>o(l),meta:{title:u,...a,...y,__vtj__:l},children:v};p.push(g),p.push(X(c,r))}else if(p.push(X(c,r)),i===l){const v=X(c,r);v.path="",v.name=`home_${l}`,p.push(v)}}return p}const de=Symbol("Provider");var ze=(r=>(r.Production="production",r.Development="development",r))(ze||{});class Ge extends b.Base{constructor(e){super(),this.options=e;const{service:t,mode:s=S.Raw,dependencies:n,materials:o,project:a={},adapter:i={},globals:p={},modules:c={},router:l=null,materialPath:u="./",nodeEnv:m="development"}=e;this.mode=s,this.modules=c,this.service=t,this.router=l,this.materialPath=u,this.nodeEnv=m,n&&(this.dependencies=n),o&&(this.materials=o),Object.assign(this.globals,p),Object.assign(this.adapter,i);const{access:f,request:h}=this.adapter;f&&f.connect({mode:s,router:l,request:h}),a&&s!==S.Design?this.load(a):this.project=a}mode;globals={};modules={};adapter={request:d.request,jsonp:d.jsonp};apis={};dependencies={};materials={};library={};service;project=null;components={};nodeEnv="development";router=null;materialPath="./";urlDslCaches={};createMock(e){return async(...t)=>{let s={};if(e)try{s=await e.apply(e,t)}catch(o){d.logger.warn("模拟数据模版异常",o)}return F()?.mock(s)}}async load(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/projects/${e.id}.json`]||this.modules[`/src/${t}/projects/${e.id}.json`];if(this.project=s?await s():await this.service.init(e),!this.project)throw new Error("project is null");const{apis:n=[],meta:o=[]}=this.project,a=window;a&&(a.CKEDITOR_VERSION=void 0),this.mode===S.Raw?await this.loadDependencies(a):await this.loadAssets(a),this.initMock(a),this.apis=He(n,o,this.adapter),ce(a),xe(n,a),e.platform!=="uniapp"&&this.initRouter(),this.triggerReady()}initMock(e){const t=F(e);t&&t.setup({timeout:"50-500"})}async loadDependencies(e){const t=Object.entries(this.dependencies);for(const[s,n]of t)e[s]||(e[s]=this.library[s]=await n())}async loadAssets(e){const{dependencies:t=[]}=this.project,{dependencies:s,library:n,components:o,materialPath:a,nodeEnv:i}=this,{libraryExports:p,libraryMap:c,materials:l,materialExports:u,materialMapLibrary:m}=Ce(t,a,i==="development");for(const f of p){const h=s[f],y=e[f];if(y)n[f]=y;else if(h)e[f]=n[f]=await h();else{const v=c[f]||[];for(const g of v)B(g)&&await Ae(g,d.url.append(g,{v:I})),N(g)&&await d.loadScript(d.url.append(g,{v:I}));n[f]=e[f]}}if(i==="development"){for(const h of l)await d.loadScript(d.url.append(h,{v:I}));const f=this.materials||{};for(const h of u){const y=e[m[h]],v=b.BUILT_IN_COMPONENTS[h];if(v)y&&v.forEach(g=>{o[g]=y[g]});else{const g=f[h]?(await f[h]()).default:e[h];g&&y&&(g.components||[]).forEach(C=>{o[C.name]=Re(C,y)})}}}}initRouter(){const{router:e,project:t,options:s,adapter:n}=this;if(!e)return;const o=t?.platform==="uniapp"?"pages":"page",{routeAppendTo:a,pageRouteName:i=o,routeMeta:p}=s,c=a?"":"/",l={path:`${c}${i}/:id`,name:T,component:Y},u={path:c,name:H,component:t?.homepage?Y:n.startupComponent||kt,meta:p};if(e.hasRoute(T)&&e.removeRoute(T),e.hasRoute(H)&&e.removeRoute(H),s.enableStaticRoute){const m=t?.pages||[];te({name:i,prefix:c,pages:m,component:Y,loader:this.getRenderComponent.bind(this),homepage:t?.homepage}).forEach(h=>{a?e.addRoute(a,h):e.addRoute(h)}),t?.homepage||(a?e.addRoute(a,u):e.addRoute(u))}else a?(e.addRoute(a,l),e.addRoute(a,u)):(e.addRoute(l),e.addRoute(u))}install(e){const t=e.config.globalProperties.installed||{};for(const[s,n]of Object.entries(this.library))!t[s]&&Me(n)&&(e.use(n),t[s]=!0);this.options.install&&e.use(this.options.install),this.adapter.access&&e.use(this.adapter.access),e.provide(de,this),e.config.globalProperties.$provider=this,e.config.globalProperties.installed=t,this.mode===S.Design&&(e.config.errorHandler=(s,n,o)=>{const a=n?.$options.name,i=typeof s=="string"?s:s?.message||s?.msg||"未知错误",p=`[ ${a} ] ${i} ${o}`;console.error("[VTJ Error]:",{err:s,instance:n,info:o},s?.stack),this.adapter.notify&&this.adapter.notify(p,"组件渲染错误","error")}),this.options.enhance&&e.use(this.options.enhance,this)}getFile(e){const{blocks:t=[]}=this.project||{};return this.getPage(e)||t.find(s=>s.id===e)||null}getPage(e){const{pages:t=[]}=this.project||{},s=(n,o=[])=>{for(const a of o){if(a.id===n)return a;if(a.children&&a.children.length){const i=s(n,a.children);if(i)return i}}};return s(e,t)||null}getMenus(e="page",t=""){return x(t,e,this.project?.pages||[])}getHomepage(){const{homepage:e}=this.project||{};return e?this.getPage(e):null}async getDsl(e){const{vtjDir:t=".vtj"}=this.options,s=this.modules[`${t}/files/${e}.json`]||this.modules[`/src/${t}/files/${e}.json`];return s?await s():this.service.getFile(e,this.project||void 0).catch(()=>null)}async getDslByUrl(e){const t=this.urlDslCaches[e];return t||(this.adapter.request?this.urlDslCaches[e]=this.adapter.request.send({url:e,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(s=>s.data).catch(()=>null):null)}createDslRenderer(e,t={}){const{library:s,components:n,mode:o,apis:a}=this,i={mode:o,Vue:s.Vue,components:n,libs:s,apis:a,window,...t},p=K({getDsl:async c=>await this.getDsl(c)||null,getDslByUrl:async c=>await this.getDslByUrl(c)||null,options:i});return q({...i,dsl:e,loader:p})}async getRenderComponent(e,t){const s=this.getFile(e);if(!s)return d.logger.warn(`Can not find file: ${e}`),null;t&&t(s);const{vtjRawDir:n=".vtj/vue"}=this.options,o=`${n}/${e}.vue`,a=this.modules[o]||this.modules[`/src/pages/${e}.vue`];if(a)return(await a())?.default;const i=await this.getDsl(s.id);return i?this.createDslRenderer(i).renderer:(d.logger.warn(`Can not find dsl: ${e}`),null)}defineUrlSchemaComponent(e,t){return E.defineAsyncComponent(async()=>{const s=await this.getDslByUrl(e);return s?(s.name=t||s.name,this.createDslRenderer(s).renderer):null})}definePluginComponent(e){return E.defineAsyncComponent(async()=>await le(e,window))}}function Dt(r){const e=new Ge(r);return{provider:e,onReady:s=>e.ready(s)}}function fe(r={}){const e=E.inject(de,null);if(!e)throw new Error("Can not find provider");if(e.nodeEnv==="development"){const{id:t,version:s}=r;t&&s&&(async()=>{const n=await e.getDsl(t);n?.__VERSION__!==s&&e.adapter.notify&&e.adapter.notify(`[ ${n?.name} ] 组件源码版本与运行时版本不一致,请重新发布组件`,"版本不一致","warning")})()}return e}async function Ht(r,e=""){const{name:t,urls:s=[]}=r||{},n=s.map(i=>e+i),{css:o,js:a}=be(n);if(o.length&&ne(o),a.length)return await oe(a,t).catch(()=>{})}const Ve={type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:r=>r.data?.code===0},xt=(r,e="/__vtj__/api/:type.json")=>(t,s,n)=>r.send({url:e,method:"post",params:{type:t},query:n,data:{type:t,data:s},settings:Ve}),Bt=(r,e="/__vtj__/api/uploader.json")=>async(t,s)=>await r.send({url:e,method:"post",data:{files:t,projectId:s},settings:{...Ve,type:"data"}}).then(n=>n&&n[0]?n[0]:null).catch(()=>null);function Nt(r){return d.createRequest({settings:{type:"json",validSuccess:!0,originResponse:!1,failMessage:!0,validate:e=>e.data?.code===0,showError:e=>{r&&r(e||"未知错误")}}})}class G{constructor(e=d.request){this.req=e,this.api=xt(e),this.uploader=Bt(e)}api;pluginCaches={};uploader;async getExtension(){console.log("BaseService.getExtension")}async init(e){return console.log("BaseService.init",e),{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).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 parseVue(e,t){return await this.api("parseVue",{project:e,...t})}async createRawPage(e){return await this.api("createRawPage",e).catch(()=>"")}async removeRawPage(e){return await this.api("removeRawPage",e).catch(()=>"")}async uploadStaticFile(e,t){return await this.uploader(e,t).catch(()=>null)}async getStaticFiles(e){return await this.api("getStaticFiles",e).catch(()=>[])}async removeStaticFile(e,t){return await this.api("removeStaticFile",{name:e,projectId:t}).catch(()=>"")}async clearStaticFiles(e){return await this.api("clearStaticFiles",e).catch(()=>"")}async getPluginMaterial(e){const{urls:t=[]}=e,s=t.filter(o=>$e(o))[0];if(!s)return null;const n=this.pluginCaches[s];return n||(this.pluginCaches[s]=d.request.send({url:s,method:"get",settings:{validSuccess:!1,originResponse:!0}}).then(o=>o.data).catch(()=>null))}async genSource(e){return console.log("BaseService.genSource",e),""}}const w=new d.Storage({type:"local",expired:0,prefix:"__VTJ_"});class Ut extends G{init(e){const t=new b.ProjectModel(e),s=w.get(`project_${t.id}`),n=Object.assign(t.toDsl(),s||{});return w.save(`project_${t.id}`,n),Promise.resolve(n)}saveProject(e){const t=new b.ProjectModel(e);return w.save(`project_${t.id}`,t.toDsl()),Promise.resolve(!0)}saveMaterials(e,t){return w.save(`materials_${e.id}`,d.mapToObject(t)),Promise.resolve(!0)}saveFile(e){return w.save(`file_${e.id}`,e),Promise.resolve(!0)}getFile(e){const t=w.get(`file_${e}`);return t?Promise.resolve(t):Promise.reject(null)}removeFile(e){return w.remove(`file_${e}`),Promise.resolve(!0)}saveHistory(e){return w.save(`history_${e.id}`,e),Promise.resolve(!0)}removeHistory(e){const t=w.get(`history_${e}`);if(t){const n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),w.remove(`history_${e}`)}return Promise.resolve(!0)}getHistory(e){const t=w.get(`history_${e}`),s=new b.HistoryModel(t||{id:e});return Promise.resolve(s.toDsl())}getHistoryItem(e,t){const s=w.get(`history_${e}_${t}`);return Promise.resolve(s)}saveHistoryItem(e,t){return w.save(`history_${e}_${t.id}`,t),Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{w.remove(`history_${e}_${s}`)}),Promise.resolve(!0)}}class We extends G{projects={};materials={};files={};histories={};historyItems={};init(e){const t=new b.ProjectModel(e),s=this.projects[t.id]||{},n=Object.assign(t.toDsl(),s);return this.projects[n.id]=n,Promise.resolve(n)}saveProject(e){const t=new b.ProjectModel(e);return this.projects[t.id]=t.toDsl(),Promise.resolve(!0)}saveMaterials(e,t){return e.id&&(this.materials[e.id]=d.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 n=(t.items||[]).map(o=>o.id);this.removeHistoryItem(e,n),delete this.historyItems[e]}return Promise.resolve(!0)}getHistory(e){const t=this.histories[e],s=new b.HistoryModel(t||{id:e});return Promise.resolve(s)}getHistoryItem(e,t){const s=`${e}_${t}`,n=this.historyItems[s]||{};return Promise.resolve(n)}saveHistoryItem(e,t){const s=`${e}_${t.id}`;return this.historyItems[s]=t,Promise.resolve(!0)}removeHistoryItem(e,t){return t.forEach(s=>{const n=`${e}_${s}`;delete this.historyItems[n]}),Promise.resolve(!0)}}let L=null;function Lt(){return L||(L=new We,L)}class Jt extends G{getFileCaches={};async getExtension(){return await this.api("getExtension",{}).catch(()=>{})}async init(e){return await this.api("init",e).catch(()=>null)||{}}async saveProject(e,t){return!!await this.api("saveProject",e,{type:t}).catch(()=>!1)}async saveMaterials(e,t){return!!await this.api("saveMaterials",{project:e,materials:d.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)}}exports.ACCESS=st;exports.ACCESS_KEY=ie;exports.Access=ae;exports.BUILD_IN_TAGS=Ee;exports.BUILT_IN_DIRECTIVES=_e;exports.BaseService=G;exports.CONTEXT_HOST=Z;exports.Context=Ue;exports.ContextMode=S;exports.DATA_TYPES=Se;exports.HOMEPAGE_ROUTE_NAME=H;exports.HTML_TAGS=we;exports.JSCodeToString=it;exports.LIFE_CYCLES_LIST=et;exports.LocalService=Jt;exports.MemoryService=We;exports.NodeEnv=ze;exports.PAGE_ROUTE_NAME=T;exports.Provider=Ge;exports.REMOTE=tt;exports.StorageService=Ut;exports.VTJ_RENDERER_VERSION=I;exports.adoptedStyleSheets=re;exports.clearLoaderCache=yt;exports.compileScopedCSS=Pe;exports.createAccess=lt;exports.createAdapter=ct;exports.createAssetScripts=rt;exports.createAssetsCss=nt;exports.createDataSources=Le;exports.createLoader=K;exports.createMemoryService=Lt;exports.createMenus=x;exports.createMetaApi=De;exports.createMock=Be;exports.createProvider=Dt;exports.createRenderer=q;exports.createSchemaApi=Oe;exports.createSchemaApis=He;exports.createServiceRequest=Nt;exports.defaultLoader=qe;exports.fillBasePath=D;exports.getMock=F;exports.getModifiers=ue;exports.getPlugin=le;exports.getRawComponent=Re;exports.isBuiltInTag=Ie;exports.isCSSUrl=B;exports.isJSCode=Fe;exports.isJSExpression=$;exports.isJSFunction=O;exports.isJSON=$e;exports.isJSUrl=N;exports.isNativeTag=Te;exports.isVuePlugin=Me;exports.loadCss=Ae;exports.loadCssUrl=ne;exports.loadEnhance=Ht;exports.loadScriptUrl=oe;exports.menusFilter=pe;exports.mockApi=Ne;exports.mockApis=xe;exports.mockCleanup=ce;exports.nodeRender=M;exports.parseDeps=Ce;exports.parseExpression=k;exports.parseFunction=J;exports.parseUrls=be;exports.providerKey=de;exports.removeProdFlag=je;exports.setupPageSetting=ot;exports.toString=se;exports.useAccess=ke;exports.useMask=Ot;exports.useProvider=fe;