cardbuddy 0.24.0 → 0.25.1
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/README.md +2 -2
- package/dist/init.js +9 -2
- package/dist/preview-editor/assets/{index-BumNBo-n.js → index-B6NhNlBx.js} +16 -16
- package/dist/preview-editor/index.html +1 -1
- package/dist/skills-upgrade.js +59 -0
- package/dist/vendored/server/core/browser.js +7 -4
- package/dist/vendored/server/core/flameCompile/client.js +6 -4
- package/dist/vendored/server/core/flameCompile/common.js +47 -2
- package/dist/vendored/server/core/flameCompile/h5.js +30 -10
- package/dist/vendored/skills/dsl-card-generator/references/generation_pitfalls.md +1 -1
- package/dist/vendored/skills/mbank-design-gen/tools/screenshot.mjs +15 -7
- package/dist/vendored/skills/platform-card-sync/scripts/api_batch_sync.mjs +12 -4
- package/dist/vendored/skills/platform-session-navigator/scripts/package-lock.json +1 -16
- package/dist/vendored/skills/platform-session-navigator/scripts/package.json +2 -2
- package/dist/vendored/skills/platform-session-navigator/scripts/platform_login.mjs +12 -1
- package/dist/vendored/skills/platform-session-navigator/scripts/session-manager.mjs +1 -1
- package/package.json +2 -4
|
@@ -134,16 +134,16 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
134
134
|
与 icon-history(回旋箭头)语义区分:那是「回溯时钟」,这是「逐条记录的列表」。 -->
|
|
135
135
|
<symbol id="icon-list" viewBox="0 0 24 24"><line x1="9" y1="6" x2="21" y2="6"></line><line x1="9" y1="12" x2="21" y2="12"></line><line x1="9" y1="18" x2="21" y2="18"></line><line x1="3.5" y1="6" x2="3.51" y2="6"></line><line x1="3.5" y1="12" x2="3.51" y2="12"></line><line x1="3.5" y1="18" x2="3.51" y2="18"></line></symbol>
|
|
136
136
|
</svg>
|
|
137
|
-
`,u=()=>{let e=document.createElement(`div`);e.innerHTML=l;let t=e.getElementsByTagName(`svg`)[0];if(t){t.setAttribute(`aria-hidden`,`true`),t.style.position=`absolute`,t.style.width=`0`,t.style.height=`0`,t.style.overflow=`hidden`;let e=document.body.firstChild;e?document.body.insertBefore(t,e):document.body.appendChild(t)}};(()=>{let e=()=>{document.removeEventListener(`DOMContentLoaded`,e),u()};document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,e):u()})(),(function(){if(typeof window>`u`)return;var e,t=`ontouchstart`in window;document.createTouch||(document.createTouch=function(e,t,r,i,a,o,s){return new n(t,r,{pageX:i,pageY:a,screenX:o,screenY:s,clientX:i-window.pageXOffset,clientY:a-window.pageYOffset},0,0)}),document.createTouchList||(document.createTouchList=function(){for(var e=r(),t=0;t<arguments.length;t++)e[t]=arguments[t];return e.length=arguments.length,e}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(t!==null&&t.nodeType===1);return null});var n=function(e,t,n,r,i){r||=0,i||=0,this.identifier=t,this.target=e,this.clientX=n.clientX+r,this.clientY=n.clientY+i,this.screenX=n.screenX+r,this.screenY=n.screenY+i,this.pageX=n.pageX+r,this.pageY=n.pageY+i};function r(){var e=[];return e.item=function(e){return this[e]||null},e.identifiedTouch=function(e){return this[e+1]||null},e}var i=!1;function a(t){return function(n){n.type===`mousedown`&&(i=!0),n.type===`mouseup`&&(i=!1),(n.type!==`mousemove`||i)&&((n.type===`mousedown`||!e||e&&!e.dispatchEvent)&&(e=n.composed?n.composedPath()[0]:n.target),e.closest(`[data-no-touch-simulate]`)??o(t,n),n.type===`mouseup`&&(e=null))}}function o(t,n){var r=new Event(t,{bubbles:!0,cancelable:!0,composed:!0});r.altKey=n.altKey,r.ctrlKey=n.ctrlKey,r.metaKey=n.metaKey,r.shiftKey=n.shiftKey,r.touches=c(n),r.targetTouches=c(n),r.changedTouches=s(n),e.dispatchEvent(r)}function s(t){var i=r();return i.push(new n(e,1,t,0,0)),i}function c(e){return e.type===`mouseup`?r():s(e)}function l(){window.addEventListener(`mousedown`,a(`touchstart`),!0),window.addEventListener(`mousemove`,a(`touchmove`),!0),window.addEventListener(`mouseup`,a(`touchend`),!0)}l.multiTouchOffset=75,t||new l})();function d(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var f=Object.freeze({}),p=Object.freeze([]),m=()=>{},h=()=>!1,g=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_=e=>e.startsWith(`onUpdate:`),v=Object.assign,y=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},b=Object.prototype.hasOwnProperty,x=(e,t)=>b.call(e,t),S=Array.isArray,C=e=>re(e)===`[object Map]`,w=e=>re(e)===`[object Set]`,ee=e=>re(e)===`[object Date]`,T=e=>typeof e==`function`,E=e=>typeof e==`string`,D=e=>typeof e==`symbol`,O=e=>typeof e==`object`&&!!e,te=e=>(O(e)||T(e))&&T(e.then)&&T(e.catch),ne=Object.prototype.toString,re=e=>ne.call(e),ie=e=>re(e).slice(8,-1),ae=e=>re(e)===`[object Object]`,oe=e=>E(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,se=d(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ce=d(`bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo`),le=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ue=/-\w/g,de=le(e=>e.replace(ue,e=>e.slice(1).toUpperCase())),fe=/\B([A-Z])/g,k=le(e=>e.replace(fe,`-$1`).toLowerCase()),pe=le(e=>e.charAt(0).toUpperCase()+e.slice(1)),me=le(e=>e?`on${pe(e)}`:``),he=(e,t)=>!Object.is(e,t),ge=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},_e=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ve=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ye=e=>{let t=E(e)?Number(e):NaN;return isNaN(t)?e:t},be,xe=()=>be||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function A(e){if(S(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=E(r)?Te(r):A(r);if(i)for(let e in i)t[e]=i[e]}return t}if(E(e)||O(e))return e}var Se=/;(?![^(]*\))/g,Ce=/:([^]+)/,we=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function Te(e){let t={};return e.replace(we,e=>e.startsWith(`/*`)?``:e).split(Se).forEach(e=>{if(e){let n=e.split(Ce);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ee(e){if(!e)return``;if(E(e))return e;let t=``;for(let n in e){let r=e[n];if(E(r)||typeof r==`number`){let e=n.startsWith(`--`)?n:k(n);t+=`${e}:${r};`}}return t}function j(e){let t=``;if(E(e))t=e;else if(S(e))for(let n=0;n<e.length;n++){let r=j(e[n]);r&&(t+=r+` `)}else if(O(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var De=`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`,Oe=`svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view`,ke=`annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics`,Ae=d(De),je=d(Oe),Me=d(ke),Ne=d(`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`);function Pe(e){return!!e||e===``}function Fe(e,t,n){if(e.length!==t.length)return!1;let r=!0;for(let i=0;r&&i<e.length;i++)r=ze(e[i],t[i],n);return r}function Ie(e,t,n){if(e.size!==t.size)return!1;let r=Array.from(t),i=new Uint8Array(r.length);for(let t of e){let e=-1;for(let a=0;a<r.length;a++)if(!i[a]&&ze(t,r[a],n)){e=a;break}if(e<0)return!1;i[e]=1}return!0}function Le(e,t,n){let r=C(e),i=C(t);if(r||i||(r=w(e),i=w(t),r||i))return r&&i?Ie(e,t,n):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e){let i=e.hasOwnProperty(r),a=t.hasOwnProperty(r);if(i&&!a||!i&&a||!ze(e[r],t[r],n))return!1}return String(e)===String(t)}function Re(e,t,n,r){n||=[new Map,new Map];let[i,a]=n;if(i.has(e)||a.has(t))return i.get(e)===t&&a.get(t)===e;i.set(e,t),a.set(t,e);let o=r(e,t,n);return i.delete(e),a.delete(t),o}function ze(e,t,n){if(e===t)return!0;let r=ee(e),i=ee(t);return r||i?r&&i?e.getTime()===t.getTime():!1:(r=D(e),i=D(t),r||i?e===t:(r=S(e),i=S(t),r||i?r&&i?Re(e,t,n,Fe):!1:(r=O(e),i=O(t),r||i?!r||!i?!1:Re(e,t,n,Le):String(e)===String(t))))}function Be(e,t){return e.findIndex(e=>ze(e,t))}var Ve=e=>!!(e&&e.__v_isRef===!0),M=e=>E(e)?e:e==null?``:S(e)||O(e)&&(e.toString===ne||!T(e.toString))?Ve(e)?M(e.value):JSON.stringify(e,He,2):String(e),He=(e,t)=>Ve(t)?He(e,t.value):C(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ue(t,r)+` =>`]=n,e),{})}:w(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ue(e))}:D(t)?Ue(t):O(t)&&!S(t)&&!ae(t)?String(t):t,Ue=(e,t=``)=>D(e)?`Symbol(${e.description??t})`:e;function We(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Ge,Ke=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Ge&&(Ge.active?(this.parent=Ge,this.index=(Ge.scopes||(Ge.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].pause()}for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}let n=this.effects.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}}run(e){if(this._active){let t=Ge;try{return Ge=this,e()}finally{Ge=t}}else this._warnOnRun&&We(`cannot run an inactive effect scope.`)}on(){++this._on===1&&(this.prevScope=Ge,Ge=this)}off(){if(this._on>0&&--this._on===0){if(Ge===this)Ge=this.prevScope;else{let e=Ge;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){let e=this.scopes.slice();for(t=0,n=e.length;t<n;t++)e[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function qe(){return Ge}var Je,Ye=new WeakSet,Xe=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Ge&&(Ge.active?Ge.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ye.has(this)&&(Ye.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||et(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,pt(this),rt(this);let e=Je,t=lt;Je=this,lt=!0;try{return this.fn()}finally{Je!==this&&We(`Active effect was not restored correctly - this is likely a Vue internal bug.`),it(this),Je=e,lt=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)st(e);this.deps=this.depsTail=void 0,pt(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ye.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){at(this)&&this.run()}get dirty(){return at(this)}},Ze=0,Qe,$e;function et(e,t=!1){e.flags|=8,t?(e.next=$e,$e=e):(e.next=Qe,Qe=e)}function tt(){Ze++}function nt(){if(--Ze>0)return;if($e){let e=$e;for($e=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Qe;){let t=Qe;for(Qe=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function rt(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function it(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),st(r),ct(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function at(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ot(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ot(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===mt)||(e.globalVersion=mt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!at(e))))return;e.flags|=2;let t=e.dep,n=Je,r=lt;Je=e,lt=!0;try{rt(e);let n=e.fn(e._value);(t.version===0||he(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{Je=n,lt=r,it(e),e.flags&=-3}}function st(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=i),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)st(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function ct(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var lt=!0,ut=[];function dt(){ut.push(lt),lt=!1}function ft(){let e=ut.pop();lt=e===void 0||e}function pt(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=Je;Je=void 0;try{t()}finally{Je=e}}}var mt=0,ht=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},gt=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(e){if(!Je||!lt||Je===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Je)t=this.activeLink=new ht(Je,this),Je.deps?(t.prevDep=Je.depsTail,Je.depsTail.nextDep=t,Je.depsTail=t):Je.deps=Je.depsTail=t,_t(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=Je.depsTail,t.nextDep=void 0,Je.depsTail.nextDep=t,Je.depsTail=t,Je.deps===t&&(Je.deps=e)}return Je.onTrack&&Je.onTrack(v({effect:Je},e)),t}trigger(e){this.version++,mt++,this.notify(e)}notify(e){tt();try{for(let t=this.subsHead;t;t=t.nextSub)t.sub.onTrigger&&!(t.sub.flags&8)&&t.sub.onTrigger(v({effect:t.sub},e));for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{nt()}}};function _t(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)_t(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}var vt=new WeakMap,yt=Symbol(`Object iterate`),bt=Symbol(`Map keys iterate`),xt=Symbol(`Array iterate`);function St(e,t,n){if(lt&&Je){let r=vt.get(e);r||vt.set(e,r=new Map);let i=r.get(n);i||(r.set(n,i=new gt),i.map=r,i.key=n),i.track({target:e,type:t,key:n})}}function Ct(e,t,n,r,i,a){let o=vt.get(e);if(!o){mt++;return}let s=o=>{o&&o.trigger({target:e,type:t,key:n,newValue:r,oldValue:i,oldTarget:a})};if(tt(),t===`clear`)o.forEach(s);else{let i=S(e),a=i&&oe(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===xt||!D(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(xt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(yt)),C(e)&&s(o.get(bt)));break;case`delete`:i||(s(o.get(yt)),C(e)&&s(o.get(bt)));break;case`set`:C(e)&&s(o.get(yt))}}nt()}function wt(e){let t=N(e);return t===e||(St(t,`iterate`,xt),hn(e))?t:mn(e)?pn(e)?t.map(e=>yn(vn(e))):t.map(yn):t.map(vn)}function Tt(e){return St(e=N(e),`iterate`,xt),e}function Et(e,t){return mn(e)?yn(pn(e)?vn(t):t):vn(t)}var Dt={__proto__:null,[Symbol.iterator](){return Ot(this,Symbol.iterator,e=>Et(this,e))},concat(...e){return wt(this).concat(...e.map(e=>S(e)?wt(e):e))},entries(){return Ot(this,`entries`,e=>(e[1]=Et(this,e[1]),e))},every(e,t){return jt(this,`every`,e,t,void 0,arguments)},filter(e,t){return jt(this,`filter`,e,t,e=>e.map(e=>Et(this,e)),arguments)},find(e,t){return jt(this,`find`,e,t,e=>Et(this,e),arguments)},findIndex(e,t){return jt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return jt(this,`findLast`,e,t,e=>Et(this,e),arguments)},findLastIndex(e,t){return jt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return jt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return Nt(this,`includes`,e)},indexOf(...e){return Nt(this,`indexOf`,e)},join(e){return wt(this).join(e)},lastIndexOf(...e){return Nt(this,`lastIndexOf`,e)},map(e,t){return jt(this,`map`,e,t,void 0,arguments)},pop(){return Pt(this,`pop`)},push(...e){return Pt(this,`push`,e)},reduce(e,...t){return Mt(this,`reduce`,e,t)},reduceRight(e,...t){return Mt(this,`reduceRight`,e,t)},shift(){return Pt(this,`shift`)},some(e,t){return jt(this,`some`,e,t,void 0,arguments)},splice(...e){return Pt(this,`splice`,e)},toReversed(){return wt(this).toReversed()},toSorted(e){return wt(this).toSorted(e)},toSpliced(...e){return wt(this).toSpliced(...e)},unshift(...e){return Pt(this,`unshift`,e)},values(){return Ot(this,`values`,e=>Et(this,e))}};function Ot(e,t,n){let r=Tt(e),i=r[t],a=i.call(r);if(r!==e&&!hn(e)){if(a[Symbol.toStringTag]===`Array Iterator`){let e=Object.create(Object.getPrototypeOf(a));return e.next=()=>kt(a.next(),n),i!==At[t]&&Object.defineProperties(e,{return:{get(){let e=a.return;return typeof e==`function`?e.bind(a):e}},throw:{get(){let e=a.throw;return typeof e==`function`?e.bind(a):e}}}),e}a._next=a.next,a.next=()=>kt(a._next(),n)}return a}function kt(e,t){return e.done||(e.value=t(e.value)),e}var At=Array.prototype;function jt(e,t,n,r,i,a){let o=Tt(e),s=o!==e&&!hn(e),c=o[t];if(c!==At[t]){let t=c.apply(e,a);return s?vn(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,Et(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function Mt(e,t,n,r){let i=Tt(e),a=i!==e&&!hn(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=Et(e,t)),n.call(this,t,Et(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?Et(e,c):c}function Nt(e,t,n){let r=N(e);St(r,`iterate`,xt);let i=r[t](...n);return(i===-1||i===!1)&&gn(n[0])?(n[0]=N(n[0]),r[t](...n)):i}function Pt(e,t,n=[]){dt(),tt();let r=N(e)[t].apply(e,n);return nt(),ft(),r}var Ft=d(`__proto__,__v_isRef,__isVue`),It=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(D));function Lt(e){D(e)||(e=String(e));let t=N(this);return St(t,`has`,e),t.hasOwnProperty(e)}var Rt=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?on:an:i?rn:nn).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=S(e);if(!r){let e;if(a&&(e=Dt[t]))return e;if(t===`hasOwnProperty`)return Lt}let o=Reflect.get(e,t,bn(e)?e:n);if((D(t)?It.has(t):Ft(t))||(r||St(e,`get`,t),i))return o;if(bn(o)){let e=a&&oe(t)?o:o.value;return r&&O(e)?un(e):e}return O(o)?r?un(o):cn(o):o}},zt=class extends Rt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=S(e)&&oe(t);if(!this._isShallow){let r=mn(i);if(!hn(n)&&!mn(n)&&(i=N(i),n=N(n)),!a&&bn(i)&&!bn(n))return r?(We(`Set operation on key "${String(t)}" failed: target is readonly.`,e[t]),!0):(i.value=n,!0)}let o=a?Number(t)<e.length:x(e,t),s=Reflect.set(e,t,n,bn(e)?e:r);return e===N(r)&&s&&(o?he(n,i)&&Ct(e,`set`,t,n,i):Ct(e,`add`,t,n)),s}deleteProperty(e,t){let n=x(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&Ct(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!D(t)||!It.has(t))&&St(e,`has`,t),n}ownKeys(e){return St(e,`iterate`,S(e)?`length`:yt),Reflect.ownKeys(e)}},Bt=class extends Rt{constructor(e=!1){super(!0,e)}set(e,t){return We(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0}deleteProperty(e,t){return We(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},Vt=new zt,Ht=new Bt,Ut=new zt(!0),Wt=new Bt(!0),Gt=e=>e,Kt=e=>Reflect.getPrototypeOf(e);function qt(e,t,n){return function(...r){let i=this.__v_raw,a=N(i),o=C(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Gt:t?yn:vn;return!t&&St(a,`iterate`,c?bt:yt),v(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function Jt(e){return function(...t){{let n=t[0]?`on key "${t[0]}" `:``;We(`${pe(e)} operation ${n}failed: target is readonly.`,N(this))}return e===`delete`?!1:e===`clear`?void 0:this}}function Yt(e,t){let n={get(n){let r=this.__v_raw,i=N(r),a=N(n);e||(he(n,a)&&St(i,`get`,n),St(i,`get`,a));let{has:o}=Kt(i),s=t?Gt:e?yn:vn;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&St(N(t),`iterate`,yt),t.size},has(t){let n=this.__v_raw,r=N(n),i=N(t);return e||(he(t,i)&&St(r,`has`,t),St(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=N(a),s=t?Gt:e?yn:vn;return!e&&St(o,`iterate`,yt),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return v(n,e?{add:Jt(`add`),set:Jt(`set`),delete:Jt(`delete`),clear:Jt(`clear`)}:{add(e){let n=N(this),r=Kt(n),i=N(e),a=!t&&!hn(e)&&!mn(e)?i:e;return r.has.call(n,a)||he(e,a)&&r.has.call(n,e)||he(i,a)&&r.has.call(n,i)||(n.add(a),Ct(n,`add`,a,a)),this},set(e,n){!t&&!hn(n)&&!mn(n)&&(n=N(n));let r=N(this),{has:i,get:a}=Kt(r),o=i.call(r,e);o?tn(r,i,e):(e=N(e),o=i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?he(n,s)&&Ct(r,`set`,e,n,s):Ct(r,`add`,e,n),this},delete(e){let t=N(this),{has:n,get:r}=Kt(t),i=n.call(t,e);i?tn(t,n,e):(e=N(e),i=n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&Ct(t,`delete`,e,void 0,a),o},clear(){let e=N(this),t=e.size!==0,n=C(e)?new Map(e):new Set(e),r=e.clear();return t&&Ct(e,`clear`,void 0,void 0,n),r}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=qt(r,e,t)}),n}function Xt(e,t){let n=Yt(e,t);return(r,i,a)=>i===`__v_isReactive`?!e:i===`__v_isReadonly`?e:i===`__v_isShallow`?t:i===`__v_raw`?r:Reflect.get(x(n,i)&&i in r?n:r,i,a)}var Zt={get:Xt(!1,!1)},Qt={get:Xt(!1,!0)},$t={get:Xt(!0,!1)},en={get:Xt(!0,!0)};function tn(e,t,n){let r=N(n);if(r!==n&&t.call(e,r)){let t=ie(e);We(`Reactive ${t} contains both the raw and reactive versions of the same object${t===`Map`?` as keys`:``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var nn=new WeakMap,rn=new WeakMap,an=new WeakMap,on=new WeakMap;function sn(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function cn(e){return mn(e)?e:fn(e,!1,Vt,Zt,nn)}function ln(e){return fn(e,!1,Ut,Qt,rn)}function un(e){return fn(e,!0,Ht,$t,an)}function dn(e){return fn(e,!0,Wt,en,on)}function fn(e,t,n,r,i){if(!O(e))return We(`value cannot be made ${t?`readonly`:`reactive`}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=sn(ie(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function pn(e){return mn(e)?pn(e.__v_raw):!!(e&&e.__v_isReactive)}function mn(e){return!!(e&&e.__v_isReadonly)}function hn(e){return!!(e&&e.__v_isShallow)}function gn(e){return e?!!e.__v_raw:!1}function N(e){let t=e&&e.__v_raw;return t?N(t):e}function _n(e){return!x(e,`__v_skip`)&&Object.isExtensible(e)&&_e(e,`__v_skip`,!0),e}var vn=e=>O(e)?cn(e):e,yn=e=>O(e)?un(e):e;function bn(e){return e?e.__v_isRef===!0:!1}function P(e){return xn(e,!1)}function xn(e,t){return bn(e)?e:new Sn(e,t)}var Sn=class{constructor(e,t){this.dep=new gt,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:N(e),this._value=t?e:vn(e),this.__v_isShallow=t}get value(){return this.dep.track({target:this,type:`get`,key:`value`}),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||hn(e)||mn(e);e=n?e:N(e),he(e,t)&&(this._rawValue=e,this._value=n?e:vn(e),this.dep.trigger({target:this,type:`set`,key:`value`,newValue:e,oldValue:t}))}};function Cn(e){return bn(e)?e.value:e}var wn={get:(e,t,n)=>t===`__v_raw`?e:Cn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return bn(i)&&!bn(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Tn(e){return pn(e)?e:new Proxy(e,wn)}var En=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new gt(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=mt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Je!==this)return et(this,!0),!0}get value(){let e=this.dep.track({target:this,type:`get`,key:`value`});return ot(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter?this.setter(e):We(`Write operation failed: computed value is readonly`)}};function Dn(e,t,n=!1){let r,i;T(e)?r=e:(r=e.get,i=e.set);let a=new En(r,i,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}var On={},kn=new WeakMap,An=void 0;function jn(e,t=!1,n=An){if(n){let t=kn.get(n);t||kn.set(n,t=[]),t.push(e)}else t||We(`onWatcherCleanup() was called when there was no active watcher to associate with.`)}function Mn(e,t,n=f){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>{(n.onWarn||We)(`Invalid watch source: `,e,`A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`)},u=e=>i?e:hn(e)||i===!1||i===0?Nn(e,1):Nn(e),d,p,h,g,_=!1,v=!1;if(bn(e)?(p=()=>e.value,_=hn(e)):pn(e)?(p=()=>u(e),_=!0):S(e)?(v=!0,_=e.some(e=>pn(e)||hn(e)),p=()=>e.map(e=>{if(bn(e))return e.value;if(pn(e))return u(e);if(T(e))return c?c(e,2):e();l(e)})):T(e)?p=t?c?()=>c(e,2):e:()=>{if(h){dt();try{h()}finally{ft()}}let t=An;An=d;try{return c?c(e,3,[g]):e(g)}finally{An=t}}:(p=m,l(e)),t&&i){let e=p,t=i===!0?1/0:i;p=()=>Nn(e(),t)}let b=qe(),x=()=>{d.stop(),b&&b.active&&y(b.effects,d)};if(a&&t){let e=t;t=(...t)=>{try{return e(...t)}finally{x()}}}let C=v?Array(e.length).fill(On):On,w=e=>{if(d.flags&1&&(d.dirty||e)){if(t){let n=d.run();if(e||i||_||(v?n.some((e,t)=>he(e,C[t])):he(n,C))){let e=An;dt();try{h&&h(),An=d;let e=[n,C===On?void 0:v&&C[0]===On?[]:C,g];C=n,c?c(t,3,e):t(...e)}finally{An=e,ft()}}}else d.run()}};return s&&s(w),d=new Xe(p),d.scheduler=o?()=>o(w,!1):w,g=e=>jn(e,!1,d),h=d.onStop=()=>{let e=kn.get(d);if(e){if(c)c(e,4);else for(let t of e)t();kn.delete(d)}},d.onTrack=n.onTrack,d.onTrigger=n.onTrigger,t?r?w(!0):C=d.run():o?o(w.bind(null,!0),!0):d.run(),x.pause=d.pause.bind(d),x.resume=d.resume.bind(d),x.stop=x,x}function Nn(e,t=1/0,n){if(t<=0||!O(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,bn(e))Nn(e.value,t,n);else if(S(e))for(let r=0;r<e.length;r++)Nn(e[r],t,n);else if(w(e)||C(e))e.forEach(e=>{Nn(e,t,n)});else if(ae(e)){for(let r in e)Nn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Nn(e[r],t,n)}return e}var Pn=[];function Fn(e){Pn.push(e)}function In(){Pn.pop()}var Ln=!1;function F(e,...t){if(Ln)return;Ln=!0,dt();let n=Pn.length?Pn[Pn.length-1].component:null,r=n&&n.appContext.config.warnHandler,i=Rn();if(r)Gn(r,n,11,[e+t.map(e=>e.toString?.call(e)??JSON.stringify(e)).join(``),n&&n.proxy,i.map(({vnode:e})=>`at <${Ys(n,e.type)}>`).join(`
|
|
137
|
+
`,u=()=>{let e=document.createElement(`div`);e.innerHTML=l;let t=e.getElementsByTagName(`svg`)[0];if(t){t.setAttribute(`aria-hidden`,`true`),t.style.position=`absolute`,t.style.width=`0`,t.style.height=`0`,t.style.overflow=`hidden`;let e=document.body.firstChild;e?document.body.insertBefore(t,e):document.body.appendChild(t)}};(()=>{let e=()=>{document.removeEventListener(`DOMContentLoaded`,e),u()};document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,e):u()})(),(function(){if(typeof window>`u`)return;var e,t=`ontouchstart`in window;document.createTouch||(document.createTouch=function(e,t,r,i,a,o,s){return new n(t,r,{pageX:i,pageY:a,screenX:o,screenY:s,clientX:i-window.pageXOffset,clientY:a-window.pageYOffset},0,0)}),document.createTouchList||(document.createTouchList=function(){for(var e=r(),t=0;t<arguments.length;t++)e[t]=arguments[t];return e.length=arguments.length,e}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(t!==null&&t.nodeType===1);return null});var n=function(e,t,n,r,i){r||=0,i||=0,this.identifier=t,this.target=e,this.clientX=n.clientX+r,this.clientY=n.clientY+i,this.screenX=n.screenX+r,this.screenY=n.screenY+i,this.pageX=n.pageX+r,this.pageY=n.pageY+i};function r(){var e=[];return e.item=function(e){return this[e]||null},e.identifiedTouch=function(e){return this[e+1]||null},e}var i=!1;function a(t){return function(n){n.type===`mousedown`&&(i=!0),n.type===`mouseup`&&(i=!1),(n.type!==`mousemove`||i)&&((n.type===`mousedown`||!e||e&&!e.dispatchEvent)&&(e=n.composed?n.composedPath()[0]:n.target),e.closest(`[data-no-touch-simulate]`)??o(t,n),n.type===`mouseup`&&(e=null))}}function o(t,n){var r=new Event(t,{bubbles:!0,cancelable:!0,composed:!0});r.altKey=n.altKey,r.ctrlKey=n.ctrlKey,r.metaKey=n.metaKey,r.shiftKey=n.shiftKey,r.touches=c(n),r.targetTouches=c(n),r.changedTouches=s(n),e.dispatchEvent(r)}function s(t){var i=r();return i.push(new n(e,1,t,0,0)),i}function c(e){return e.type===`mouseup`?r():s(e)}function l(){window.addEventListener(`mousedown`,a(`touchstart`),!0),window.addEventListener(`mousemove`,a(`touchmove`),!0),window.addEventListener(`mouseup`,a(`touchend`),!0)}l.multiTouchOffset=75,t||new l})();function d(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var f=Object.freeze({}),p=Object.freeze([]),m=()=>{},h=()=>!1,g=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_=e=>e.startsWith(`onUpdate:`),v=Object.assign,y=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},b=Object.prototype.hasOwnProperty,x=(e,t)=>b.call(e,t),S=Array.isArray,C=e=>re(e)===`[object Map]`,w=e=>re(e)===`[object Set]`,ee=e=>re(e)===`[object Date]`,T=e=>typeof e==`function`,E=e=>typeof e==`string`,D=e=>typeof e==`symbol`,O=e=>typeof e==`object`&&!!e,te=e=>(O(e)||T(e))&&T(e.then)&&T(e.catch),ne=Object.prototype.toString,re=e=>ne.call(e),ie=e=>re(e).slice(8,-1),ae=e=>re(e)===`[object Object]`,oe=e=>E(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,se=d(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ce=d(`bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo`),le=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ue=/-\w/g,de=le(e=>e.replace(ue,e=>e.slice(1).toUpperCase())),fe=/\B([A-Z])/g,k=le(e=>e.replace(fe,`-$1`).toLowerCase()),pe=le(e=>e.charAt(0).toUpperCase()+e.slice(1)),me=le(e=>e?`on${pe(e)}`:``),he=(e,t)=>!Object.is(e,t),ge=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},_e=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ve=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ye=e=>{let t=E(e)?Number(e):NaN;return isNaN(t)?e:t},be,xe=()=>be||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function A(e){if(S(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=E(r)?Te(r):A(r);if(i)for(let e in i)t[e]=i[e]}return t}if(E(e)||O(e))return e}var Se=/;(?![^(]*\))/g,Ce=/:([^]+)/,we=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function Te(e){let t={};return e.replace(we,e=>e.startsWith(`/*`)?``:e).split(Se).forEach(e=>{if(e){let n=e.split(Ce);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ee(e){if(!e)return``;if(E(e))return e;let t=``;for(let n in e){let r=e[n];if(E(r)||typeof r==`number`){let e=n.startsWith(`--`)?n:k(n);t+=`${e}:${r};`}}return t}function j(e){let t=``;if(E(e))t=e;else if(S(e))for(let n=0;n<e.length;n++){let r=j(e[n]);r&&(t+=r+` `)}else if(O(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var De=`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`,Oe=`svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view`,ke=`annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics`,Ae=d(De),je=d(Oe),Me=d(ke),Ne=d(`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`);function Pe(e){return!!e||e===``}function Fe(e,t,n){if(e.length!==t.length)return!1;let r=!0;for(let i=0;r&&i<e.length;i++)r=ze(e[i],t[i],n);return r}function Ie(e,t,n){if(e.size!==t.size)return!1;let r=Array.from(t),i=new Uint8Array(r.length);for(let t of e){let e=-1;for(let a=0;a<r.length;a++)if(!i[a]&&ze(t,r[a],n)){e=a;break}if(e<0)return!1;i[e]=1}return!0}function Le(e,t,n){let r=C(e),i=C(t);if(r||i||(r=w(e),i=w(t),r||i))return r&&i?Ie(e,t,n):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e){let i=e.hasOwnProperty(r),a=t.hasOwnProperty(r);if(i&&!a||!i&&a||!ze(e[r],t[r],n))return!1}return String(e)===String(t)}function Re(e,t,n,r){n||=[new Map,new Map];let[i,a]=n;if(i.has(e)||a.has(t))return i.get(e)===t&&a.get(t)===e;i.set(e,t),a.set(t,e);let o=r(e,t,n);return i.delete(e),a.delete(t),o}function ze(e,t,n){if(e===t)return!0;let r=ee(e),i=ee(t);return r||i?r&&i?e.getTime()===t.getTime():!1:(r=D(e),i=D(t),r||i?e===t:(r=S(e),i=S(t),r||i?r&&i?Re(e,t,n,Fe):!1:(r=O(e),i=O(t),r||i?!r||!i?!1:Re(e,t,n,Le):String(e)===String(t))))}function Be(e,t){return e.findIndex(e=>ze(e,t))}var Ve=e=>!!(e&&e.__v_isRef===!0),M=e=>E(e)?e:e==null?``:S(e)||O(e)&&(e.toString===ne||!T(e.toString))?Ve(e)?M(e.value):JSON.stringify(e,He,2):String(e),He=(e,t)=>Ve(t)?He(e,t.value):C(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ue(t,r)+` =>`]=n,e),{})}:w(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ue(e))}:D(t)?Ue(t):O(t)&&!S(t)&&!ae(t)?String(t):t,Ue=(e,t=``)=>D(e)?`Symbol(${e.description??t})`:e;function We(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Ge,Ke=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Ge&&(Ge.active?(this.parent=Ge,this.index=(Ge.scopes||(Ge.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].pause()}for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}let n=this.effects.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}}run(e){if(this._active){let t=Ge;try{return Ge=this,e()}finally{Ge=t}}else this._warnOnRun&&We(`cannot run an inactive effect scope.`)}on(){++this._on===1&&(this.prevScope=Ge,Ge=this)}off(){if(this._on>0&&--this._on===0){if(Ge===this)Ge=this.prevScope;else{let e=Ge;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){let e=this.scopes.slice();for(t=0,n=e.length;t<n;t++)e[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function qe(){return Ge}var Je,Ye=new WeakSet,Xe=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Ge&&(Ge.active?Ge.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ye.has(this)&&(Ye.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||et(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,pt(this),rt(this);let e=Je,t=lt;Je=this,lt=!0;try{return this.fn()}finally{Je!==this&&We(`Active effect was not restored correctly - this is likely a Vue internal bug.`),it(this),Je=e,lt=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)st(e);this.deps=this.depsTail=void 0,pt(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ye.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){at(this)&&this.run()}get dirty(){return at(this)}},Ze=0,Qe,$e;function et(e,t=!1){e.flags|=8,t?(e.next=$e,$e=e):(e.next=Qe,Qe=e)}function tt(){Ze++}function nt(){if(--Ze>0)return;if($e){let e=$e;for($e=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Qe;){let t=Qe;for(Qe=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function rt(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function it(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),st(r),ct(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function at(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ot(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ot(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===mt)||(e.globalVersion=mt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!at(e))))return;e.flags|=2;let t=e.dep,n=Je,r=lt;Je=e,lt=!0;try{rt(e);let n=e.fn(e._value);(t.version===0||he(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{Je=n,lt=r,it(e),e.flags&=-3}}function st(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=i),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)st(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function ct(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var lt=!0,ut=[];function dt(){ut.push(lt),lt=!1}function ft(){let e=ut.pop();lt=e===void 0||e}function pt(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=Je;Je=void 0;try{t()}finally{Je=e}}}var mt=0,ht=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},gt=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(e){if(!Je||!lt||Je===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Je)t=this.activeLink=new ht(Je,this),Je.deps?(t.prevDep=Je.depsTail,Je.depsTail.nextDep=t,Je.depsTail=t):Je.deps=Je.depsTail=t,_t(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=Je.depsTail,t.nextDep=void 0,Je.depsTail.nextDep=t,Je.depsTail=t,Je.deps===t&&(Je.deps=e)}return Je.onTrack&&Je.onTrack(v({effect:Je},e)),t}trigger(e){this.version++,mt++,this.notify(e)}notify(e){tt();try{for(let t=this.subsHead;t;t=t.nextSub)t.sub.onTrigger&&!(t.sub.flags&8)&&t.sub.onTrigger(v({effect:t.sub},e));for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{nt()}}};function _t(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)_t(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}var vt=new WeakMap,yt=Symbol(`Object iterate`),bt=Symbol(`Map keys iterate`),xt=Symbol(`Array iterate`);function St(e,t,n){if(lt&&Je){let r=vt.get(e);r||vt.set(e,r=new Map);let i=r.get(n);i||(r.set(n,i=new gt),i.map=r,i.key=n),i.track({target:e,type:t,key:n})}}function Ct(e,t,n,r,i,a){let o=vt.get(e);if(!o){mt++;return}let s=o=>{o&&o.trigger({target:e,type:t,key:n,newValue:r,oldValue:i,oldTarget:a})};if(tt(),t===`clear`)o.forEach(s);else{let i=S(e),a=i&&oe(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===xt||!D(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(xt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(yt)),C(e)&&s(o.get(bt)));break;case`delete`:i||(s(o.get(yt)),C(e)&&s(o.get(bt)));break;case`set`:C(e)&&s(o.get(yt))}}nt()}function wt(e){let t=N(e);return t===e||(St(t,`iterate`,xt),hn(e))?t:mn(e)?pn(e)?t.map(e=>yn(vn(e))):t.map(yn):t.map(vn)}function Tt(e){return St(e=N(e),`iterate`,xt),e}function Et(e,t){return mn(e)?yn(pn(e)?vn(t):t):vn(t)}var Dt={__proto__:null,[Symbol.iterator](){return Ot(this,Symbol.iterator,e=>Et(this,e))},concat(...e){return wt(this).concat(...e.map(e=>S(e)?wt(e):e))},entries(){return Ot(this,`entries`,e=>(e[1]=Et(this,e[1]),e))},every(e,t){return jt(this,`every`,e,t,void 0,arguments)},filter(e,t){return jt(this,`filter`,e,t,e=>e.map(e=>Et(this,e)),arguments)},find(e,t){return jt(this,`find`,e,t,e=>Et(this,e),arguments)},findIndex(e,t){return jt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return jt(this,`findLast`,e,t,e=>Et(this,e),arguments)},findLastIndex(e,t){return jt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return jt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return Nt(this,`includes`,e)},indexOf(...e){return Nt(this,`indexOf`,e)},join(e){return wt(this).join(e)},lastIndexOf(...e){return Nt(this,`lastIndexOf`,e)},map(e,t){return jt(this,`map`,e,t,void 0,arguments)},pop(){return Pt(this,`pop`)},push(...e){return Pt(this,`push`,e)},reduce(e,...t){return Mt(this,`reduce`,e,t)},reduceRight(e,...t){return Mt(this,`reduceRight`,e,t)},shift(){return Pt(this,`shift`)},some(e,t){return jt(this,`some`,e,t,void 0,arguments)},splice(...e){return Pt(this,`splice`,e)},toReversed(){return wt(this).toReversed()},toSorted(e){return wt(this).toSorted(e)},toSpliced(...e){return wt(this).toSpliced(...e)},unshift(...e){return Pt(this,`unshift`,e)},values(){return Ot(this,`values`,e=>Et(this,e))}};function Ot(e,t,n){let r=Tt(e),i=r[t],a=i.call(r);if(r!==e&&!hn(e)){if(a[Symbol.toStringTag]===`Array Iterator`){let e=Object.create(Object.getPrototypeOf(a));return e.next=()=>kt(a.next(),n),i!==At[t]&&Object.defineProperties(e,{return:{get(){let e=a.return;return typeof e==`function`?e.bind(a):e}},throw:{get(){let e=a.throw;return typeof e==`function`?e.bind(a):e}}}),e}a._next=a.next,a.next=()=>kt(a._next(),n)}return a}function kt(e,t){return e.done||(e.value=t(e.value)),e}var At=Array.prototype;function jt(e,t,n,r,i,a){let o=Tt(e),s=o!==e&&!hn(e),c=o[t];if(c!==At[t]){let t=c.apply(e,a);return s?vn(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,Et(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function Mt(e,t,n,r){let i=Tt(e),a=i!==e&&!hn(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=Et(e,t)),n.call(this,t,Et(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?Et(e,c):c}function Nt(e,t,n){let r=N(e);St(r,`iterate`,xt);let i=r[t](...n);return(i===-1||i===!1)&&gn(n[0])?(n[0]=N(n[0]),r[t](...n)):i}function Pt(e,t,n=[]){dt(),tt();let r=N(e)[t].apply(e,n);return nt(),ft(),r}var Ft=d(`__proto__,__v_isRef,__isVue`),It=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(D));function Lt(e){D(e)||(e=String(e));let t=N(this);return St(t,`has`,e),t.hasOwnProperty(e)}var Rt=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?on:an:i?rn:nn).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=S(e);if(!r){let e;if(a&&(e=Dt[t]))return e;if(t===`hasOwnProperty`)return Lt}let o=Reflect.get(e,t,bn(e)?e:n);if((D(t)?It.has(t):Ft(t))||(r||St(e,`get`,t),i))return o;if(bn(o)){let e=a&&oe(t)?o:o.value;return r&&O(e)?un(e):e}return O(o)?r?un(o):cn(o):o}},zt=class extends Rt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=S(e)&&oe(t);if(!this._isShallow){let r=mn(i);if(!hn(n)&&!mn(n)&&(i=N(i),n=N(n)),!a&&bn(i)&&!bn(n))return r?(We(`Set operation on key "${String(t)}" failed: target is readonly.`,e[t]),!0):(i.value=n,!0)}let o=a?Number(t)<e.length:x(e,t),s=Reflect.set(e,t,n,bn(e)?e:r);return e===N(r)&&s&&(o?he(n,i)&&Ct(e,`set`,t,n,i):Ct(e,`add`,t,n)),s}deleteProperty(e,t){let n=x(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&Ct(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return D(t)&&It.has(t)||St(e,`has`,t),n}ownKeys(e){return St(e,`iterate`,S(e)?`length`:yt),Reflect.ownKeys(e)}},Bt=class extends Rt{constructor(e=!1){super(!0,e)}set(e,t){return We(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0}deleteProperty(e,t){return We(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},Vt=new zt,Ht=new Bt,Ut=new zt(!0),Wt=new Bt(!0),Gt=e=>e,Kt=e=>Reflect.getPrototypeOf(e);function qt(e,t,n){return function(...r){let i=this.__v_raw,a=N(i),o=C(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Gt:t?yn:vn;return!t&&St(a,`iterate`,c?bt:yt),v(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function Jt(e){return function(...t){{let n=t[0]?`on key "${t[0]}" `:``;We(`${pe(e)} operation ${n}failed: target is readonly.`,N(this))}return e===`delete`?!1:e===`clear`?void 0:this}}function Yt(e,t){let n={get(n){let r=this.__v_raw,i=N(r),a=N(n);e||(he(n,a)&&St(i,`get`,n),St(i,`get`,a));let{has:o}=Kt(i),s=t?Gt:e?yn:vn;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&St(N(t),`iterate`,yt),t.size},has(t){let n=this.__v_raw,r=N(n),i=N(t);return e||(he(t,i)&&St(r,`has`,t),St(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=N(a),s=t?Gt:e?yn:vn;return!e&&St(o,`iterate`,yt),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return v(n,e?{add:Jt(`add`),set:Jt(`set`),delete:Jt(`delete`),clear:Jt(`clear`)}:{add(e){let n=N(this),r=Kt(n),i=N(e),a=!t&&!hn(e)&&!mn(e)?i:e;return r.has.call(n,a)||he(e,a)&&r.has.call(n,e)||he(i,a)&&r.has.call(n,i)||(n.add(a),Ct(n,`add`,a,a)),this},set(e,n){t||hn(n)||mn(n)||(n=N(n));let r=N(this),{has:i,get:a}=Kt(r),o=i.call(r,e);o?tn(r,i,e):(e=N(e),o=i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?he(n,s)&&Ct(r,`set`,e,n,s):Ct(r,`add`,e,n),this},delete(e){let t=N(this),{has:n,get:r}=Kt(t),i=n.call(t,e);i?tn(t,n,e):(e=N(e),i=n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&Ct(t,`delete`,e,void 0,a),o},clear(){let e=N(this),t=e.size!==0,n=C(e)?new Map(e):new Set(e),r=e.clear();return t&&Ct(e,`clear`,void 0,void 0,n),r}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=qt(r,e,t)}),n}function Xt(e,t){let n=Yt(e,t);return(r,i,a)=>i===`__v_isReactive`?!e:i===`__v_isReadonly`?e:i===`__v_isShallow`?t:i===`__v_raw`?r:Reflect.get(x(n,i)&&i in r?n:r,i,a)}var Zt={get:Xt(!1,!1)},Qt={get:Xt(!1,!0)},$t={get:Xt(!0,!1)},en={get:Xt(!0,!0)};function tn(e,t,n){let r=N(n);if(r!==n&&t.call(e,r)){let t=ie(e);We(`Reactive ${t} contains both the raw and reactive versions of the same object${t===`Map`?` as keys`:``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var nn=new WeakMap,rn=new WeakMap,an=new WeakMap,on=new WeakMap;function sn(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function cn(e){return mn(e)?e:fn(e,!1,Vt,Zt,nn)}function ln(e){return fn(e,!1,Ut,Qt,rn)}function un(e){return fn(e,!0,Ht,$t,an)}function dn(e){return fn(e,!0,Wt,en,on)}function fn(e,t,n,r,i){if(!O(e))return We(`value cannot be made ${t?`readonly`:`reactive`}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=sn(ie(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function pn(e){return mn(e)?pn(e.__v_raw):!!(e&&e.__v_isReactive)}function mn(e){return!!(e&&e.__v_isReadonly)}function hn(e){return!!(e&&e.__v_isShallow)}function gn(e){return e?!!e.__v_raw:!1}function N(e){let t=e&&e.__v_raw;return t?N(t):e}function _n(e){return!x(e,`__v_skip`)&&Object.isExtensible(e)&&_e(e,`__v_skip`,!0),e}var vn=e=>O(e)?cn(e):e,yn=e=>O(e)?un(e):e;function bn(e){return e?e.__v_isRef===!0:!1}function P(e){return xn(e,!1)}function xn(e,t){return bn(e)?e:new Sn(e,t)}var Sn=class{constructor(e,t){this.dep=new gt,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:N(e),this._value=t?e:vn(e),this.__v_isShallow=t}get value(){return this.dep.track({target:this,type:`get`,key:`value`}),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||hn(e)||mn(e);e=n?e:N(e),he(e,t)&&(this._rawValue=e,this._value=n?e:vn(e),this.dep.trigger({target:this,type:`set`,key:`value`,newValue:e,oldValue:t}))}};function Cn(e){return bn(e)?e.value:e}var wn={get:(e,t,n)=>t===`__v_raw`?e:Cn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return bn(i)&&!bn(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Tn(e){return pn(e)?e:new Proxy(e,wn)}var En=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new gt(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=mt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Je!==this)return et(this,!0),!0}get value(){let e=this.dep.track({target:this,type:`get`,key:`value`});return ot(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter?this.setter(e):We(`Write operation failed: computed value is readonly`)}};function Dn(e,t,n=!1){let r,i;T(e)?r=e:(r=e.get,i=e.set);let a=new En(r,i,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}var On={},kn=new WeakMap,An=void 0;function jn(e,t=!1,n=An){if(n){let t=kn.get(n);t||kn.set(n,t=[]),t.push(e)}else t||We(`onWatcherCleanup() was called when there was no active watcher to associate with.`)}function Mn(e,t,n=f){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>{(n.onWarn||We)(`Invalid watch source: `,e,`A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`)},u=e=>i?e:hn(e)||i===!1||i===0?Nn(e,1):Nn(e),d,p,h,g,_=!1,v=!1;if(bn(e)?(p=()=>e.value,_=hn(e)):pn(e)?(p=()=>u(e),_=!0):S(e)?(v=!0,_=e.some(e=>pn(e)||hn(e)),p=()=>e.map(e=>{if(bn(e))return e.value;if(pn(e))return u(e);if(T(e))return c?c(e,2):e();l(e)})):T(e)?p=t?c?()=>c(e,2):e:()=>{if(h){dt();try{h()}finally{ft()}}let t=An;An=d;try{return c?c(e,3,[g]):e(g)}finally{An=t}}:(p=m,l(e)),t&&i){let e=p,t=i===!0?1/0:i;p=()=>Nn(e(),t)}let b=qe(),x=()=>{d.stop(),b&&b.active&&y(b.effects,d)};if(a&&t){let e=t;t=(...t)=>{try{return e(...t)}finally{x()}}}let C=v?Array(e.length).fill(On):On,w=e=>{if(d.flags&1&&(d.dirty||e)){if(t){let n=d.run();if(e||i||_||(v?n.some((e,t)=>he(e,C[t])):he(n,C))){let e=An;dt();try{h&&h(),An=d;let e=[n,C===On?void 0:v&&C[0]===On?[]:C,g];C=n,c?c(t,3,e):t(...e)}finally{An=e,ft()}}}else d.run()}};return s&&s(w),d=new Xe(p),d.scheduler=o?()=>o(w,!1):w,g=e=>jn(e,!1,d),h=d.onStop=()=>{let e=kn.get(d);if(e){if(c)c(e,4);else for(let t of e)t();kn.delete(d)}},d.onTrack=n.onTrack,d.onTrigger=n.onTrigger,t?r?w(!0):C=d.run():o?o(w.bind(null,!0),!0):d.run(),x.pause=d.pause.bind(d),x.resume=d.resume.bind(d),x.stop=x,x}function Nn(e,t=1/0,n){if(t<=0||!O(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,bn(e))Nn(e.value,t,n);else if(S(e))for(let r=0;r<e.length;r++)Nn(e[r],t,n);else if(w(e)||C(e))e.forEach(e=>{Nn(e,t,n)});else if(ae(e)){for(let r in e)Nn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Nn(e[r],t,n)}return e}var Pn=[];function Fn(e){Pn.push(e)}function In(){Pn.pop()}var Ln=!1;function F(e,...t){if(Ln)return;Ln=!0,dt();let n=Pn.length?Pn[Pn.length-1].component:null,r=n&&n.appContext.config.warnHandler,i=Rn();if(r)Gn(r,n,11,[e+t.map(e=>e.toString?.call(e)??JSON.stringify(e)).join(``),n&&n.proxy,i.map(({vnode:e})=>`at <${Ys(n,e.type)}>`).join(`
|
|
138
138
|
`),i]);else{let n=[`[Vue warn]: ${e}`,...t];i.length&&n.push(`
|
|
139
139
|
`,...zn(i)),console.warn(...n)}ft(),Ln=!1}function Rn(){let e=Pn[Pn.length-1];if(!e)return[];let t=[];for(;e;){let n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});let r=e.component&&e.component.parent;e=r&&r.vnode}return t}function zn(e){let t=[];return e.forEach((e,n)=>{t.push(...n===0?[]:[`
|
|
140
|
-
`],...Bn(e))}),t}function Bn({vnode:e,recurseCount:t}){let n=t>0?`... (${t} recursive calls)`:``,r=e.component?e.component.parent==null:!1,i=` at <${Ys(e.component,e.type,r)}`,a=`>`+n;return e.props?[i,...Vn(e.props),a]:[i+a]}function Vn(e){let t=[],n=Object.keys(e);return n.slice(0,3).forEach(n=>{t.push(...Hn(n,e[n]))}),n.length>3&&t.push(` ...`),t}function Hn(e,t,n){return E(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t==`number`||typeof t==`boolean`||t==null?n?t:[`${e}=${t}`]:bn(t)?(t=Hn(e,N(t.value),!0),n?t:[`${e}=Ref<`,t,`>`]):T(t)?[`${e}=fn${t.name?`<${t.name}>`:``}`]:(t=N(t),n?t:[`${e}=`,t])}function Un(e,t){e!==void 0&&(typeof e==`number`?isNaN(e)&&F(`${t} is NaN - the duration expression might be incorrect.`):F(`${t} is not a valid number - got ${JSON.stringify(e)}.`))}var Wn={sp:`serverPrefetch hook`,bc:`beforeCreate hook`,c:`created hook`,bm:`beforeMount hook`,m:`mounted hook`,bu:`beforeUpdate hook`,u:`updated`,bum:`beforeUnmount hook`,um:`unmounted hook`,a:`activated hook`,da:`deactivated hook`,ec:`errorCaptured hook`,rtc:`renderTracked hook`,rtg:`renderTriggered hook`,0:`setup function`,1:`render function`,2:`watcher getter`,3:`watcher callback`,4:`watcher cleanup function`,5:`native event handler`,6:`component event handler`,7:`vnode hook`,8:`directive hook`,9:`transition hook`,10:`app errorHandler`,11:`app warnHandler`,12:`ref function`,13:`async component loader`,14:`scheduler flush`,15:`component update`,16:`app unmount cleanup function`};function Gn(e,t,n,r){try{return r?e(...r):e()}catch(e){qn(e,t,n)}}function Kn(e,t,n,r){if(T(e)){let i=Gn(e,t,n,r);return i&&te(i)&&i.catch(e=>{qn(e,t,n)}),i}if(S(e)){let i=[];for(let a=0;a<e.length;a++)i.push(Kn(e[a],t,n,r));return i}F(`Invalid value type passed to callWithAsyncErrorHandling(): ${typeof e}`)}function qn(e,t,n,r=!0){let i=t?t.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||f;if(t){let r=t.parent,i=t.proxy,o=Wn[n];for(;r;){let t=r.ec;if(t){for(let n=0;n<t.length;n++)if(t[n](e,i,o)===!1)return}r=r.parent}if(a){dt(),Gn(a,null,10,[e,i,o]),ft();return}}Jn(e,n,i,r,o)}function Jn(e,t,n,r=!0,i=!1){{let i=Wn[t];if(n&&Fn(n),F(`Unhandled error${i?` during execution of ${i}`:``}`),n&&In(),r)throw e;console.error(e)}}var Yn=[],Xn=-1,Zn=[],Qn=null,$n=0,er=Promise.resolve(),tr=null,nr=100;function rr(e){let t=tr||er;return e?t.then(this?e.bind(this):e):t}function ir(e){let t=Xn+1,n=Yn.length;for(;t<n;){let r=t+n>>>1,i=Yn[r],a=fr(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function ar(e){if(!(e.flags&1)){let t=fr(e),n=Yn[Yn.length-1];!n||!(e.flags&2)&&t>=fr(n)?Yn.push(e):Yn.splice(ir(t),0,e),e.flags|=1,or()}}function or(){tr||=er.then(pr)}function sr(e){if(!S(e))Qn&&e.id===-1?Qn.splice($n+1,0,e):e.flags&1||(Zn.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Zn.push(e[t]);or()}function cr(e,t,n,r=Xn+1){for(n||=new Map;r<Yn.length;r++){let i=Yn[r];if(i&&i.flags&2){if(e&&i.id!==e.uid||t!==void 0&&!(i.id>=t)||mr(n,i))continue;Yn.splice(r,1),r=e?r-1:Xn,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function lr(e,t,n=0){if(Zn.length){let r=Zn,i=0;if(t){r=[];for(let e=0;e<Zn.length;e++){let a=Zn[e];(a.i===void 0?t.has(a):!a.i||a.i.uid<n)?Zn[i++]=a:r.push(a)}}let a=[...new Set(r)].sort((e,t)=>fr(e)-fr(t));if(Zn.length=i,Qn){for(let e=0;e<a.length;e++)Qn.push(a[e]);return}for(Qn=a,e||=new Map,$n=0;$n<Qn.length;$n++){let t=Qn[$n];mr(e,t)||(t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2)}Qn=null,$n=0}}var ur=!1;function dr(e,t){if(ur){e();return}let n=t===void 0?void 0:new Set(Zn);e(),ur=!0;try{cr(void 0,t),lr(void 0,n,t)}finally{ur=!1}}var fr=e=>e.id==null?e.flags&2?-1:1/0:e.id;function pr(e){e||=new Map;let t=t=>mr(e,t);try{for(Xn=0;Xn<Yn.length;Xn++){let e=Yn[Xn];if(e&&!(e.flags&8)){if(t(e))continue;e.flags&4&&(e.flags&=-2),Gn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2)}}}finally{for(;Xn<Yn.length;Xn++){let e=Yn[Xn];e&&(e.flags&=-2)}Xn=-1,Yn.length=0,lr(e),tr=null,(Yn.length||Zn.length)&&pr(e)}}function mr(e,t){let n=e.get(t)||0;if(n>nr){let e=t.i,n=e&&Js(e.type);return qn(`Maximum recursive updates exceeded${n?` in component <${n}>`:``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}var hr=!1,gr=e=>{try{return hr}finally{hr=e}},_r=new Map;xe().__VUE_HMR_RUNTIME__={createRecord:Er(xr),rerender:Er(Cr),reload:Er(wr)};var vr=new Map;function yr(e){let t=e.type.__hmrId,n=vr.get(t);n||=(xr(t,e.type),vr.get(t)),n.instances.add(e)}function br(e){vr.get(e.type.__hmrId).instances.delete(e)}function xr(e,t){return!vr.has(e)&&(vr.set(e,{initialDef:Sr(t),instances:new Set}),!0)}function Sr(e){return Xs(e)?e.__vccOpts:e}function Cr(e,t){let n=vr.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(e=>{t&&(e.render=t,Sr(e.type).render=t),e.renderCache=[],hr=!0,e.job.flags&8||e.update(),hr=!1}))}function wr(e,t){let n=vr.get(e);if(!n)return;t=Sr(t),Tr(n.initialDef,t);let r=[...n.instances];for(let e=0;e<r.length;e++){let i=r[e],a=Sr(i.type),o=_r.get(a);o||(a!==n.initialDef&&Tr(a,t),_r.set(a,o=new Set)),o.add(i),i.appContext.propsCache.delete(i.type),i.appContext.emitsCache.delete(i.type),i.appContext.optionsCache.delete(i.type),i.ceReload?(o.add(i),i.ceReload(t.styles),o.delete(i)):i.parent?ar(()=>{i.job.flags&8||(hr=!0,i.parent.update(),hr=!1,o.delete(i))}):i.appContext.reload?i.appContext.reload():typeof window<`u`?window.location.reload():console.warn(`[HMR] Root or manually mounted instance modified. Full reload required.`),i.root.ce&&i!==i.root&&i.root.ce._removeChildStyle(a)}sr(()=>{_r.clear()})}function Tr(e,t){v(e,t);for(let n in e)n!==`__file`&&!(n in t)&&delete e[n]}function Er(e){return(t,n)=>{try{return e(t,n)}catch(e){console.error(e),console.warn(`[HMR] Something went wrong during Vue component hot-reload. Full reload required.`)}}}var Dr,Or=[],kr=!1;function Ar(e,...t){Dr?Dr.emit(e,...t):kr||Or.push({event:e,args:t})}function jr(e,t){Dr=e,Dr?(Dr.enabled=!0,Or.forEach(({event:e,args:t})=>Dr.emit(e,...t)),Or=[]):typeof window<`u`&&window.HTMLElement&&!(window.navigator?.userAgent)?.includes(`jsdom`)?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(e=>{jr(e,t)}),setTimeout(()=>{Dr||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,kr=!0,Or=[])},3e3)):(kr=!0,Or=[])}function Mr(e,t){Ar(`app:init`,e,t,{Fragment:B,Text:Qo,Comment:$o,Static:es})}function Nr(e){Ar(`app:unmount`,e)}var Pr=Rr(`component:added`),Fr=Rr(`component:updated`),Ir=Rr(`component:removed`),Lr=e=>{Dr&&typeof Dr.cleanupBuffer==`function`&&!Dr.cleanupBuffer(e)&&Ir(e)};function Rr(e){return t=>{Ar(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}var zr=Vr(`perf:start`),Br=Vr(`perf:end`);function Vr(e){return(t,n,r)=>{Ar(e,t.appContext.app,t.uid,t,n,r)}}function Hr(e,t,n){Ar(`component:emit`,e.appContext.app,e,t,n)}var Ur=null,Wr=null;function Gr(e){let t=Ur;return Ur=e,Wr=e&&e.type.__scopeId||null,t}function I(e,t=Ur,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&as(-1);let i=Gr(t),a=ts.length,o;try{o=e(...n)}finally{for(let e=ts.length;e>a;e--)rs();Gr(i),r._d&&as(1)}return Fr(t),o};return r._n=!0,r._c=!0,r._d=!0,r}function Kr(e){ce(e)&&F(`Do not use built-in directive ids as custom directive id: `+e)}function L(e,t){if(Ur===null)return F(`withDirectives can only be used inside render functions.`),e;let n=Gs(Ur),r=e.dirs||=[];for(let e=0;e<t.length;e++){let[i,a,o,s=f]=t[e];i&&(T(i)&&(i={mounted:i,updated:i}),i.deep&&Nn(a),r.push({dir:i,instance:n,value:a,oldValue:void 0,arg:o,modifiers:s}))}return e}function qr(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(dt(),Kn(c,n,8,[e.el,s,e,t]),ft())}}function Jr(e,t){if((!Ds||Ds.isMounted)&&F(`provide() can only be used inside setup().`),Ds){let n=Ds.provides,r=Ds.parent&&Ds.parent.provides;r===n&&(n=Ds.provides=Object.create(r)),n[e]=t}}function Yr(e,t,n=!1){let r=Os();if(r||Ba){let i=Ba?Ba._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&T(t)?t.call(r&&r.proxy):t;F(`injection "${String(e)}" not found.`)}else F(`inject() can only be used inside setup() or functional components.`)}var Xr=Symbol.for(`v-scx`),Zr=()=>{{let e=Yr(Xr);return e||F(`Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`),e}};function Qr(e,t){return ei(e,null,t)}function $r(e,t,n){return T(t)||F("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),ei(e,t,n)}function ei(e,t,n=f){let{immediate:r,deep:i,flush:a,once:o}=n;t||(r!==void 0&&F(`watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`),i!==void 0&&F(`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`),o!==void 0&&F(`watch() "once" option is only respected when using the watch(source, callback, options?) signature.`));let s=v({},n);s.onWarn=F;let c=t&&r||!t&&a!==`post`,l;if(Is){if(a===`sync`){let e=Zr();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=m,e.resume=m,e.pause=m,e}}let u=Ds;s.call=(e,t,n)=>Kn(e,u,t,n);let d=!1;a===`post`?s.scheduler=e=>{e.i=u,zo(e,u&&u.suspense)}:a!==`sync`&&(d=!0,s.scheduler=(e,t)=>{t?e():ar(e)}),s.augmentJob=e=>{t&&(e.flags|=4),d&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let p=Mn(e,t,s);return Is&&(l?l.push(p):c&&p()),p}function ti(e,t,n){let r=this.proxy,i=E(e)?e.includes(`.`)?ni(r,e):()=>r[e]:e.bind(r,r),a;T(t)?a=t:(a=t.handler,n=t);let o=js(this),s=ei(i,a.bind(r),n);return o(),s}function ni(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var ri=new WeakMap,ii=Symbol(`_vte`),ai=e=>e.__isTeleport,oi=e=>e&&(e.disabled||e.disabled===``),si=e=>e&&(e.defer||e.defer===``),ci=e=>typeof SVGElement<`u`&&e instanceof SVGElement,li=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,ui=(e,t)=>{let n=e&&e.to;if(E(n)){if(t){let r=t(n);return!r&&!oi(e)&&F(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),r}return F(`Current renderer does not support string target for Teleports. (missing querySelector renderer option)`),null}return!n&&!oi(e)&&F(`Invalid Teleport target: ${n}`),n},di={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=oi(t.props),{dynamicChildren:y}=t;hr&&(c=!1,y=null);let b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=oi(e.props),r=e.target=ui(e.props,m),a=gi(r,e,h,p);r?(o!==`svg`&&ci(r)?o=`svg`:o!==`mathml`&&li(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),hi(e,!1))):n||F(`Invalid Teleport target on mount:`,r,`(${typeof r})`)},S=e=>{let t=()=>{if(ri.get(e)===t){if(ri.delete(e),oi(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),hi(e,!0)}x(e)}};ri.set(e,t),zo(t,a)};if(e==null){let e=t.el=g(`teleport start`),i=t.anchor=g(`teleport end`);if(p(e,n,r),p(i,n,r),si(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),hi(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=ri.get(e);if(u){u.flags|=8,ri.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=oi(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||ci(p)?o=`svg`:(o===`mathml`||li(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),Go(e,t,!1)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):fi(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=ui(t.props,m);e?(t.target=e,fi(t,e,null,l,0)):F(`Invalid Teleport target on update:`,p,`(${typeof p})`)}else g&&fi(t,p,h,l,1);hi(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=oi(f),m=a||!p,h=ri.get(e);if(h&&(h.flags|=8,ri.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e<s.length;e++){let i=s[e];r(i,t,n,m,!!i.dynamicChildren)}},move:fi,hydrate:pi};function fi(e,t,n,{o:{insert:r},m:i},a=2){a===0&&(e.targetStart&&r(e.targetStart,t,n),r(e.targetAnchor,t,n),n=e.targetAnchor);let{el:o,anchor:s,shapeFlag:c,children:l,props:u}=e,d=a===2;if(d&&r(o,t,n),!ri.has(e)&&(!d||oi(u))&&c&16)for(let e=0;e<l.length;e++)i(l[e],t,n,2);d&&r(s,t,n)}function pi(e,t,n,r,i,a,{o:{nextSibling:o,parentNode:s,querySelector:c,insert:l,createText:u}},d){function f(e,n){let r=n;for(;r;){if(r&&r.nodeType===8){if(r.data===`teleport start anchor`)t.targetStart=r;else if(r.data===`teleport anchor`){t.targetAnchor=r,e._lpa=t.targetAnchor&&o(t.targetAnchor);break}}r=o(r)}}function p(e,t){t.anchor=d(o(e),t,s(e),n,r,i,a)}let m=t.target=ui(t.props,c),h=oi(t.props);if(m){let c=m._lpa||m.firstChild;t.shapeFlag&16&&(h?(p(e,t),f(m,c),t.targetAnchor||gi(m,t,u,l,s(e)===m?e:null)):(t.anchor=o(e),f(m,c),t.targetAnchor||gi(m,t,u,l),d(c&&o(c),t,m,n,r,i,a))),hi(t,h)}else h&&t.shapeFlag&16&&(p(e,t),t.targetStart=e,t.targetAnchor=o(e));return t.anchor&&o(t.anchor)}var mi=di;function hi(e,t){let n=e.ctx;if(n&&n.ut){let r,i;for(t?(r=e.el,i=e.anchor):(r=e.targetStart,i=e.targetAnchor);r&&r!==i;)r.nodeType===1&&r.setAttribute(`data-v-owner`,n.uid),r=r.nextSibling;n.ut()}}function gi(e,t,n,r,i=null){let a=t.targetStart=n(``),o=t.targetAnchor=n(``);return a[ii]=o,e&&(r(a,e,i),r(o,e,i)),o}var _i=Symbol(`_leaveCb`),vi=Symbol(`_enterCb`);function yi(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ji(()=>{e.isMounted=!0}),Zi(()=>{e.isUnmounting=!0}),e}var bi=[Function,Array],xi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:bi,onEnter:bi,onAfterEnter:bi,onEnterCancelled:bi,onBeforeLeave:bi,onLeave:bi,onAfterLeave:bi,onLeaveCancelled:bi,onBeforeAppear:bi,onAppear:bi,onAfterAppear:bi,onAppearCancelled:bi},Si={name:`BaseTransition`,props:xi,setup(e,{slots:t}){let n=Os(),r=yi();return()=>{let i=t.default&&Ai(t.default(),!0),a=i&&i.length?Ci(i):n.subTree?q():void 0;if(!a)return;let o=N(e),{mode:s}=o;if(s&&s!==`in-out`&&s!==`out-in`&&s!=="default"&&F(`invalid <transition> mode: ${s}`),r.isLeaving)return Di(a);let c=Oi(a);if(!c)return Di(a);let l=Ei(c,o,r,n,e=>l=e);c.type!==$o&&ki(c,l);let u=n.subTree&&Oi(n.subTree);if(u&&u.type!==$o&&!cs(u,c)&&ji(n.subTree)){let e=Ei(u,o,r,n);if(ki(u,e),s===`out-in`&&c.type!==$o)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Di(a);s===`in-out`&&c.type!==$o?e.delayLeave=(e,t,n)=>{let i=Ti(r,u);i[String(u.key)]=u,e[_i]=()=>{t(),e[_i]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function Ci(e){let t=e[0];if(e.length>1){let n=!1;for(let r of e)if(r.type!==$o){if(n){F(`<transition> can only be used on a single element or component. Use <transition-group> for lists.`);break}t=r,n=!0}}return t}var wi=Si;function Ti(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ei(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:_,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),x=Ti(n,e),C=(e,t)=>{e&&Kn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),S(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},ee={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted){if(a)r=g||c;else return}t[_i]&&t[_i](!0);let i=x[b];if(i&&cs(e,i)){let e=i.el[_i];if(!e){let t=ji(i);e=t&&t.el[_i]}e&&e()}C(r,[t])},enter(t){if(!hr&&x[b]===e)return;let r=l,i=u,o=d;if(!n.isMounted){if(a)r=_||l,i=v||u,o=y||d;else return}let s=!1;t[vi]=e=>{s||(s=!0,C(e?o:i,[t]),ee.delayedLeave&&ee.delayedLeave(),t[vi]=void 0)};let c=t[vi].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[vi]&&t[vi](!0),n.isUnmounting)return r();C(f,[t]);let a=!1;t[_i]=n=>{a||(a=!0,r(),C(n?h:m,[t]),t[_i]=void 0,x[i]===e&&delete x[i])};let o=t[_i].bind(null,!1);x[i]=e,p?w(p,[t,o]):o()},clone(e){let a=Ei(e,t,n,r,i);return i&&i(a),a}};return ee}function Di(e){if(Bi(e))return e=hs(e),e.children=null,e}function Oi(e){if(!Bi(e))return ai(e.type)&&e.children?Ci(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&T(n.default))return n.default()}}function ki(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;ki(ai(n.type)&&Oi(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===B&&S(e.children)){let n=Xa(e.children,!1);n&&ki(n,t)}}function Ai(e,t=!1,n){let r=[],i=0;for(let a=0;a<e.length;a++){let o=e[a],s=n==null?o.key:String(n)+String(o.key==null?a:o.key);o.type===B?(o.patchFlag&128&&i++,r=r.concat(Ai(o.children,t,s))):(t||o.type!==$o)&&r.push(s==null?o:hs(o,{key:s}))}if(i>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function ji(e){if(e.component)return ji(e.component.subTree);if(e.type===B){let t=S(e.children)&&Xa(e.children,!1);return t?ji(t):void 0}if(e.type!==$o)return e}function Mi(e,t){return T(e)?v({name:e.name},t,{setup:e}):e}function Ni(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}var Pi=new WeakSet;function Fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var Ii=new WeakMap;function Li(e,t,n,r,i=!1){if(S(e)){e.forEach((e,a)=>Li(e,t&&(S(t)?t[a]:t),n,r,i));return}if(zi(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Li(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?Gs(r.component):r.el,o=i?null:a,{i:s,r:c}=e;if(!s){F(`Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`);return}let l=t&&t.r,u=s.refs===f?s.refs={}:s.refs,d=s.setupState,p=N(d),m=d===f?h:e=>(x(p,e)&&!bn(p[e])&&F(`Template ref "${e}" used on a non-ref value. It will not work in the production build.`),Pi.has(p[e])||Fi(u,e)?!1:x(p,e)),g=(e,t)=>!(Pi.has(e)||t&&Fi(u,t));if(l!=null&&l!==c){if(Ri(t),E(l))u[l]=null,m(l)&&(d[l]=null);else if(bn(l)){let e=t;g(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(T(c))Gn(c,s,12,[o,u]);else{let t=E(c),r=bn(c);if(t||r){let s=()=>{if(e.f){let n=t?m(c)?d[c]:u[c]:g(c)||!e.k?c.value:u[e.k];if(i)S(n)&&y(n,a);else if(S(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],m(c)&&(d[c]=u[c]);else{let t=[a];g(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,m(c)&&(d[c]=o)):r?(g(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o)):F(`Invalid template ref type:`,c,`(${typeof c})`)};if(o){let t=()=>{s(),Ii.delete(e)};t.id=-1,Ii.set(e,t),zo(t,n)}else Ri(e),s()}else F(`Invalid template ref type:`,c,`(${typeof c})`)}}function Ri(e){let t=Ii.get(e);t&&(t.flags|=8,Ii.delete(e))}xe().requestIdleCallback,xe().cancelIdleCallback;var zi=e=>!!e.type.__asyncLoader,Bi=e=>e.type.__isKeepAlive;function Vi(e,t){Ui(e,`a`,t)}function Hi(e,t){Ui(e,`da`,t)}function Ui(e,t,n=Ds){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Gi(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Bi(e.parent.vnode)&&Wi(r,t,n,e),e=e.parent}}function Wi(e,t,n,r){let i=Gi(t,e,r,!0);Qi(()=>{y(r[t],i)},n)}function Gi(e,t,n=Ds,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{dt();let i=js(n),a=Kn(t,n,e,r);return i(),ft(),a};return r?i.unshift(a):i.push(a),a}F(`${me(Wn[e].replace(/ hook$/,``))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}var Ki=e=>(t,n=Ds)=>{(!Is||e===`sp`)&&Gi(e,(...e)=>t(...e),n)},qi=Ki(`bm`),Ji=Ki(`m`),Yi=Ki(`bu`),Xi=Ki(`u`),Zi=Ki(`bum`),Qi=Ki(`um`),$i=Ki(`sp`),ea=Ki(`rtg`),ta=Ki(`rtc`);function na(e,t=Ds){Gi(`ec`,e,t)}var ra=`components`;function R(e,t){return oa(ra,e,!0,t)||e}var ia=Symbol.for(`v-ndc`);function aa(e){return E(e)?oa(ra,e,!1)||e:e||ia}function oa(e,t,n=!0,r=!1){let i=Ur||Ds;if(i){let a=i.type;if(e===ra){let e=Js(a,!1);if(e&&(e===t||e===de(t)||e===pe(de(t))))return a}let o=sa(i[e]||a[e],t)||sa(i.appContext[e],t);if(!o&&r)return a;if(n&&!o){let n=e===ra?`
|
|
141
|
-
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:``;F(`Failed to resolve ${e.slice(0,-1)}: ${t}${n}`)}return o}F(`resolve${pe(e.slice(0,-1))} can only be used in render() or setup().`)}function sa(e,t){return e&&(e[t]||e[de(t)]||e[pe(de(t))])}function z(e,t,n,r){let i,a=n&&n[r],o=S(e);if(o||E(e)){let n=o&&pn(e),r=!1,s=!1;n&&(r=!hn(e),s=mn(e),e=Tt(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?yn(vn(e[n])):vn(e[n]):e[n],n,void 0,a&&a[n])}else if(typeof e==`number`){if(!Number.isInteger(e)||e<0)F(`The v-for range expects a positive integer value but got ${e}.`),i=[];else{i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,a&&a[n])}}else if(O(e)){if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r<o;r++){let o=n[r];i[r]=t(e[o],o,r,a&&a[r])}}}else i=[];return n&&(n[r]=i),i}function ca(e,t,n,r,i,a){if(n??={},Ur.ce||Ur.parent&&zi(Ur.parent)&&Ur.parent.ce){let e=a!=null&&n.key==null?v({},n,{key:a}):n,i=Object.keys(e).length>0;return t!=="default"&&(e.name=t),V(),U(B,null,[G(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o.length>1&&(F(`SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`),o=()=>[]),o&&o._c&&(o._d=!1);let s=ts.length;V();let c;try{let i=o&&la(o(n)),s=n.key||a||i&&i.key;c=U(B,{key:(s&&!D(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=ts.length;e>s;e--)rs();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),c}function la(e){return e.some(e=>!ss(e)||!(e.type===$o||e.type===B&&!la(e.children)))?e:null}var ua=e=>e?Fs(e)?Gs(e):ua(e.parent):null,da=e=>{let t=!1;for(;;){if(e.patchFlag>0&&e.patchFlag&2048){let n=Xa(e.children);if(!n)return;e=n,t=!0;continue}let n=e.component;if(n&&n.subTree){e=n.subTree;continue}let r=e.suspense;if(r&&r.activeBranch)e=r.activeBranch;else return t?e.el:void 0}},fa=e=>{let t=e.subTree&&da(e.subTree);return t===void 0?e.vnode.el:t},pa=v(Object.create(null),{$:e=>e,$el:e=>fa(e),$data:e=>e.data,$props:e=>dn(e.props),$attrs:e=>dn(e.attrs),$slots:e=>dn(e.slots),$refs:e=>dn(e.refs),$parent:e=>ua(e.parent),$root:e=>ua(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Da(e),$forceUpdate:e=>e.f||=()=>{ar(e.update)},$nextTick:e=>e.n||=rr.bind(e.proxy),$watch:e=>ti.bind(e)}),ma=e=>e===`_`||e===`$`,ha=(e,t)=>e!==f&&!e.__isScriptSetup&&x(e,t),ga={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t===`__isVue`)return!0;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(ha(r,t))return o[t]=1,r[t];else if(i!==f&&x(i,t))return o[t]=2,i[t];else if(x(a,t))return o[t]=3,a[t];else if(n!==f&&x(n,t))return o[t]=4,n[t];else Sa&&(o[t]=0)}let l=pa[t],u,d;if(l)return t===`$attrs`?(St(e.attrs,`get`,``),qa()):t===`$slots`&&St(e,`get`,t),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==f&&x(n,t))return o[t]=4,n[t];if(d=c.config.globalProperties,x(d,t))return d[t];Ur&&(!E(t)||t.indexOf(`__v`)!==0)&&(i!==f&&ma(t[0])&&x(i,t)?F(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===Ur&&F(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return ha(i,t)?(i[t]=n,!0):i.__isScriptSetup&&x(i,t)?(F(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):r!==f&&x(r,t)?(r[t]=n,!0):x(e.props,t)?(F(`Attempting to mutate prop "${t}". Props are readonly.`),!1):t[0]===`$`&&t.slice(1)in e?(F(`Attempting to mutate public property "${t}". Properties starting with $ are reserved and readonly.`),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(a,t,{enumerable:!0,configurable:!0,value:n}):a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==f&&s[0]!==`$`&&x(e,s)||ha(t,s)||x(a,s)||x(r,s)||x(pa,s)||x(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?x(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};ga.ownKeys=e=>(F(`Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`),Reflect.ownKeys(e));function _a(e){let t={};return Object.defineProperty(t,"_",{configurable:!0,enumerable:!1,get:()=>e}),Object.keys(pa).forEach(n=>{Object.defineProperty(t,n,{configurable:!0,enumerable:!1,get:()=>pa[n](e),set:m})}),t}function va(e){let{ctx:t,propsOptions:[n]}=e;n&&Object.keys(n).forEach(n=>{Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>e.props[n],set:m})})}function ya(e){let{ctx:t,setupState:n}=e;Object.keys(N(n)).forEach(e=>{if(!n.__isScriptSetup){if(ma(e[0])){F(`setup() return property ${JSON.stringify(e)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);return}Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:()=>n[e],set:m})}})}function ba(e){return S(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function xa(){let e=Object.create(null);return(t,n)=>{e[n]?F(`${t} property "${n}" is already defined in ${e[n]}.`):e[n]=t}}var Sa=!0;function Ca(e){let t=Da(e),n=e.proxy,r=e.ctx;Sa=!1,t.beforeCreate&&Ta(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:h,activated:g,deactivated:_,beforeDestroy:v,beforeUnmount:y,destroyed:b,unmounted:x,render:C,renderTracked:w,renderTriggered:ee,errorCaptured:E,serverPrefetch:D,expose:ne,inheritAttrs:re,components:ie,directives:ae,filters:oe}=t,se=xa();{let[t]=e.propsOptions;if(t)for(let e in t)se(`Props`,e)}if(l&&wa(l,r,se),o)for(let e in o){let t=o[e];T(t)?(Object.defineProperty(r,e,{value:t.bind(n),configurable:!0,enumerable:!0,writable:!0}),se(`Methods`,e)):F(`Method "${e}" has type "${typeof t}" in the component definition. Did you reference the function correctly?`)}if(i){T(i)||F(`The data option must be a function. Plain object usage is no longer supported.`);let t=i.call(n,n);if(te(t)&&F(`data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`),!O(t))F(`data() should return an object.`);else{e.data=cn(t);for(let e in t)se(`Data`,e),ma(e[0])||Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:()=>t[e],set:m})}}if(Sa=!0,a)for(let e in a){let t=a[e],i=T(t)?t.bind(n,n):T(t.get)?t.get.bind(n,n):m;i===m&&F(`Computed property "${e}" has no getter.`);let o=Zs({get:i,set:!T(t)&&T(t.set)?t.set.bind(n):()=>{F(`Write operation failed: computed property "${e}" is readonly.`)}});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>o.value,set:e=>o.value=e}),se(`Computed`,e)}if(s)for(let e in s)Ea(s[e],r,n,e);if(c){let e=T(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{Jr(t,e[t])})}u&&Ta(u,e,`c`);function ce(e,t){S(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(ce(qi,d),ce(Ji,f),ce(Yi,p),ce(Xi,h),ce(Vi,g),ce(Hi,_),ce(na,E),ce(ta,w),ce(ea,ee),ce(Zi,y),ce(Qi,x),ce($i,D),S(ne)){if(ne.length){let t=e.exposed||={};ne.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}C&&e.render===m&&(e.render=C),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),ae&&(e.directives=ae),D&&Ni(e)}function wa(e,t,n=m){S(e)&&(e=Ma(e));for(let r in e){let i=e[r],a;a=O(i)?`default`in i?Yr(i.from||r,i.default,!0):Yr(i.from||r):Yr(i),bn(a)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e}):t[r]=a,n(`Inject`,r)}}function Ta(e,t,n){Kn(S(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ea(e,t,n,r){let i=r.includes(`.`)?ni(n,r):()=>n[r];if(E(e)){let n=t[e];T(n)?$r(i,n):F(`Invalid watch handler specified by key "${e}"`,n)}else if(T(e))$r(i,e.bind(n));else if(O(e)){if(S(e))e.forEach(e=>Ea(e,t,n,r));else{let r=T(e.handler)?e.handler.bind(n):t[e.handler];T(r)?$r(i,r,e):F(`Invalid watch handler specified by key "${e.handler}"`,r)}}else F(`Invalid watch option: "${r}"`,e)}function Da(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>Oa(c,e,o,!0)),Oa(c,t,o)),O(t)&&a.set(t,c),c}function Oa(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&Oa(e,a,n,!0),i&&i.forEach(t=>Oa(e,t,n,!0));for(let i in t)if(r&&i===`expose`)F(`"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`);else{let r=ka[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var ka={data:Aa,props:Fa,emits:Fa,methods:Pa,computed:Pa,beforeCreate:Na,created:Na,beforeMount:Na,mounted:Na,beforeUpdate:Na,updated:Na,beforeDestroy:Na,beforeUnmount:Na,destroyed:Na,unmounted:Na,activated:Na,deactivated:Na,errorCaptured:Na,serverPrefetch:Na,components:Pa,directives:Pa,watch:Ia,provide:Aa,inject:ja};function Aa(e,t){return t?e?function(){return v(T(e)?e.call(this,this):e,T(t)?t.call(this,this):t)}:t:e}function ja(e,t){return Pa(Ma(e),Ma(t))}function Ma(e){if(S(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Na(e,t){return e?[...new Set([].concat(e,t))]:t}function Pa(e,t){return e?v(Object.create(null),e,t):t}function Fa(e,t){return e?S(e)&&S(t)?[...new Set([...e,...t])]:v(Object.create(null),ba(e),ba(t??{})):t}function Ia(e,t){if(!e)return t;if(!t)return e;let n=v(Object.create(null),e);for(let r in t)n[r]=Na(e[r],t[r]);return n}function La(){return{app:null,config:{isNativeTag:h,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var Ra=0;function za(e,t){return function(n,r=null){T(n)||(n=v({},n)),r!=null&&!O(r)&&(F(`root props passed to app.mount() must be an object.`),r=null);let i=La(),a=new WeakSet,o=[],s=!1,c=i.app={_uid:Ra++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:ec,get config(){return i.config},set config(e){F(`app.config cannot be replaced. Modify individual options instead.`)},use(e,...t){return a.has(e)?F(`Plugin has already been applied to target app.`):e&&T(e.install)?(a.add(e),e.install(c,...t)):T(e)?(a.add(e),e(c,...t)):F(`A plugin must either be a function or an object with an "install" function.`),c},mixin(e){return i.mixins.includes(e)?F(`Mixin has already been applied to target app`+(e.name?`: ${e.name}`:``)):i.mixins.push(e),c},component(e,t){return Ps(e,i.config),t?(i.components[e]&&F(`Component "${e}" has already been registered in target app.`),i.components[e]=t,c):i.components[e]},directive(e,t){return Kr(e),t?(i.directives[e]&&F(`Directive "${e}" has already been registered in target app.`),i.directives[e]=t,c):i.directives[e]},mount(a,o,l){if(s)F("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`");else{a.__vue_app__&&F("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");let u=c._ceVNode||G(n,r);return u.appContext=i,l===!0?l=`svg`:l===!1&&(l=void 0),i.reload=()=>{let t=hs(u);t.el=null,e(t,a,l)},o&&t?t(u,a):e(u,a,l),s=!0,c._container=a,a.__vue_app__=c,c._instance=u.component,Mr(c,ec),Gs(u.component)}},onUnmount(e){typeof e!=`function`&&F(`Expected function as first argument to app.onUnmount(), but got ${typeof e}`),o.push(e)},unmount(){s?(Kn(o,c._instance,16),e(null,c._container),c._instance=null,Nr(c),delete c._container.__vue_app__):F(`Cannot unmount an app that is not mounted.`)},provide(e,t){return e in i.provides&&(x(i.provides,e)?F(`App already provides property with key "${String(e)}". It will be overwritten with the new value.`):F(`App already provides property with key "${String(e)}" inherited from its parent element. It will be overwritten with the new value.`)),i.provides[e]=t,c},runWithContext(e){let t=Ba;Ba=c;try{return e()}finally{Ba=t}}};return c}}var Ba=null,Va=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${de(t)}Modifiers`]||e[`${k(t)}Modifiers`];function Ha(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||f;{let{emitsOptions:r,propsOptions:[i]}=e;if(r){if(!(t in r))(!i||!(me(de(t))in i))&&F(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${me(de(t))}" prop.`);else{let e=r[t];T(e)&&(e(...n)||F(`Invalid event arguments: event validation failed for event "${t}".`))}}}let i=n,a=t.startsWith(`update:`),o=a&&Va(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>E(e)?e.trim():e)),o.number&&(i=i.map(ve))),Hr(e,t,i);{let n=t.toLowerCase();n!==t&&r[me(n)]&&F(`Event "${n}" is emitted in component ${Ys(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${k(t)}" instead of "${t}".`)}let s,c=r[s=me(t)]||r[s=me(de(t))];!c&&a&&(c=r[s=me(k(t))]),c&&Kn(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Kn(l,e,6,i)}}var Ua=new WeakMap;function Wa(e,t,n=!1){let r=n?Ua:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!T(e)){let r=e=>{let n=Wa(e,t,!0);n&&(s=!0,v(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(O(e)&&r.set(e,null),null):(S(a)?a.forEach(e=>o[e]=null):v(o,a),O(e)&&r.set(e,o),o)}function Ga(e,t){return!e||!g(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),x(e,t[0].toLowerCase()+t.slice(1))||x(e,k(t))||x(e,t))}var Ka=!1;function qa(){Ka=!0}function Ja(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,v=Gr(e),y,b;Ka=!1;try{if(n.shapeFlag&4){let e=i||r,t=p.__isScriptSetup?new Proxy(e,{get(e,t,n){return F(`Property '${String(t)}' was accessed via 'this'. Avoid using 'this' in templates.`),Reflect.get(e,t,n)}}):e;y=vs(l.call(t,e,u,dn(d),p,f,m)),b=s}else{let e=t;s===d&&qa(),y=vs(e.length>1?e(dn(d),{get attrs(){return qa(),dn(s)},slots:o,emit:c}):e(dn(d),null)),b=t.props?s:Za(s)}}catch(t){ts.length=0,qn(t,e,1),y=G($o)}let x=y,S;if(y.patchFlag>0&&y.patchFlag&2048&&([x,S]=Ya(y)),b&&h!==!1){let e=Object.keys(b),{shapeFlag:t}=x;if(e.length){if(t&7)a&&e.some(_)&&(b=Qa(b,a)),x=hs(x,b,!1,!0);else if(!Ka&&x.type!==$o){let e=Object.keys(s),t=[],n=[];for(let r=0,i=e.length;r<i;r++){let i=e[r];g(i)?_(i)||t.push(i[2].toLowerCase()+i.slice(3)):n.push(i)}n.length&&F(`Extraneous non-props attributes (${n.join(`, `)}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`),t.length&&F(`Extraneous non-emits event listeners (${t.join(`, `)}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`)}}}if(n.dirs&&($a(x)||F(`Runtime directive used on component with non-element root node. The directives will not function as intended.`),x=hs(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition){let e=ai(x.type)&&Oi(x)||x;$a(e)||F(`Component inside <Transition> renders non-element root node that cannot be animated.`),ki(e,n.transition)}return S?S(x):y=x,Gr(v),y}var Ya=e=>{let t=e.children,n=e.dynamicChildren,r=Xa(t,!1);if(!r)return[e,void 0];if(r.patchFlag>0&&r.patchFlag&2048)return Ya(r);let i=t.indexOf(r),a=n?n.indexOf(r):-1;return[vs(r),r=>{t[i]=r,n&&(a>-1?n[a]=r:r.patchFlag>0&&(e.dynamicChildren=[...n,r]))}]};function Xa(e,t=!0){let n;for(let r=0;r<e.length;r++){let i=e[r];if(ss(i)){if(i.type!==$o||i.children===`v-if`){if(n)return;if(n=i,t&&n.patchFlag>0&&n.patchFlag&2048)return Xa(n.children)}}else return}return n}var Za=e=>{let t;for(let n in e)(n===`class`||n===`style`||g(n))&&((t||={})[n]=e[n]);return t},Qa=(e,t)=>{let n={};for(let r in e)(!_(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n},$a=e=>e.shapeFlag&7||e.type===$o;function eo(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if((i||s)&&hr||t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?to(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(no(o,r,n)&&!Ga(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?!o||to(r,o,l):!!o;return!1}function to(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(!x(e,a)||no(t,e,a)&&!Ga(n,a))return!0}return!1}function no(e,t,n){let r=e[n],i=t[n];return n===`style`&&O(r)&&O(i)?!ze(r,i):r!==i}function ro({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var io={},ao=()=>Object.create(io),oo=e=>Object.getPrototypeOf(e)===io;function so(e,t,n,r=!1){let i={},a=ao();e.propsDefaults=Object.create(null),uo(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);_o(t||{},i,e),e.props=n?r?i:ln(i):e.type.props?i:a,e.attrs=a}function co(e){for(;e;){if(e.type.__hmrId)return!0;e=e.parent}}function lo(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=N(i),[c]=e.propsOptions,l=!1;if(!co(e)&&(r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(Ga(e.emitsOptions,o))continue;let u=t[o];if(c){if(x(a,o))u!==a[o]&&(a[o]=u,l=!0);else{let t=de(o);i[t]=fo(c,s,t,u,e,!1)}}else u!==a[o]&&(a[o]=u,l=!0)}}}else{uo(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!x(t,a)&&((r=k(a))===a||!x(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=fo(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)(!t||!x(t,e))&&(delete a[e],l=!0)}l&&Ct(e.attrs,`set`,``),_o(t||{},i,e)}function uo(e,t,n,r){let[i,a]=e.propsOptions,o=!1,s;if(t)for(let c in t){if(se(c))continue;let l=t[c],u;i&&x(i,u=de(c))?!a||!a.includes(u)?n[u]=l:(s||={})[u]=l:Ga(e.emitsOptions,c)||(!(c in r)||l!==r[c])&&(r[c]=l,o=!0)}if(a){let t=N(n),r=s||f;for(let o=0;o<a.length;o++){let s=a[o];n[s]=fo(i,t,s,r[s],e,!x(r,s))}}return o}function fo(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=x(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&T(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=js(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===k(n))&&(r=!0))}return r}var po=new WeakMap;function mo(e,t,n=!1){let r=n?po:t.propsCache,i=r.get(e);if(i)return i;let a=e.props,o={},s=[],c=!1;if(!T(e)){let r=e=>{c=!0;let[n,r]=mo(e,t,!0);v(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return O(e)&&r.set(e,p),p;if(S(a))for(let e=0;e<a.length;e++){E(a[e])||F(`props must be strings when using array syntax.`,a[e]);let t=de(a[e]);ho(t)&&(o[t]=f)}else if(a){O(a)||F(`invalid props options`,a);for(let e in a){let t=de(e);if(ho(t)){let n=a[e],r=o[t]=S(n)||T(n)?{type:n}:v({},n),i=r.type,c=!1,l=!0;if(S(i))for(let e=0;e<i.length;++e){let t=i[e],n=T(t)&&t.name;if(n===`Boolean`){c=!0;break}n===`String`&&(l=!1)}else c=T(i)&&i.name===`Boolean`;r[0]=c,r[1]=l,(c||x(r,`default`))&&s.push(t)}}}let l=[o,s];return O(e)&&r.set(e,l),l}function ho(e){return e[0]!==`$`&&!se(e)||(F(`Invalid prop name: "${e}" is a reserved property.`),!1)}function go(e){return e===null?`null`:typeof e==`function`?e.name||``:typeof e==`object`&&e.constructor&&e.constructor.name||``}function _o(e,t,n){let r=N(t),i=n.propsOptions[0],a=Object.keys(e).map(e=>de(e));for(let e in i){let t=i[e];t!=null&&vo(e,r[e],t,dn(r),!a.includes(e))}}function vo(e,t,n,r,i){let{type:a,required:o,validator:s,skipCheck:c}=n;if(o&&i)F(`Missing required prop: "`+e+`"`);else if(t!=null||o){if(a!=null&&a!==!0&&!c){let n=!1,r=S(a)?a:[a],i=[];for(let e=0;e<r.length&&!n;e++){let{valid:a,expectedType:o}=bo(t,r[e]);i.push(o||``),n=a}if(!n){F(xo(e,t,i));return}}s&&!s(t,r)&&F(`Invalid prop: custom validator check failed for prop "`+e+`".`)}}var yo=d(`String,Number,Boolean,Function,Symbol,BigInt`);function bo(e,t){let n,r=go(t);if(r===`null`)n=e===null;else if(yo(r)){let i=typeof e;n=i===r.toLowerCase(),!n&&i===`object`&&(n=e instanceof t)}else n=r===`Object`?O(e):r===`Array`?S(e):e instanceof t;return{valid:n,expectedType:r}}function xo(e,t,n){if(n.length===0)return`Prop type [] for prop "${e}" won't match anything. Did you mean to use type Array instead?`;let r=`Invalid prop: type check failed for prop "${e}". Expected ${n.map(pe).join(` | `)}`,i=n[0],a=ie(t),o=So(t,i),s=So(t,a);return n.length===1&&Co(i)&&wo(i,a)&&(r+=` with value ${o}`),r+=`, got ${a} `,Co(a)&&(r+=`with value ${s}.`),r}function So(e,t){return D(e)?e.toString():t===`String`?`"${e}"`:t===`Number`?`${Number(e)}`:`${e}`}function Co(e){return[`string`,`number`,`boolean`].some(t=>e.toLowerCase()===t)}function wo(...e){return e.every(e=>{let t=e.toLowerCase();return t!==`boolean`&&t!==`symbol`})}var To=e=>e===`_`||e===`_ctx`||e===`$stable`,Eo=e=>S(e)?e.map(vs):[vs(e)],Do=(e,t,n)=>{if(t._n)return t;let r=I((...r)=>(Ds&&!(n===null&&Ur)&&!(n&&n.root!==Ds.root)&&F(`Slot "${e}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`),Eo(t(...r))),n);return r._c=!1,r},Oo=(e,t,n)=>{let r=e._ctx;for(let n in e){if(To(n))continue;let i=e[n];if(T(i))t[n]=Do(n,i,r);else if(i!=null){F(`Non-function value encountered for slot "${n}". Prefer function slots for better performance.`);let e=Eo(i);t[n]=()=>e}}},ko=(e,t)=>{Bi(e.vnode)||F(`Non-function value encountered for default slot. Prefer function slots for better performance.`);let n=Eo(t);e.slots.default=()=>n},Ao=(e,t,n)=>{for(let r in t)(n||!To(r))&&(e[r]=t[r])},jo=(e,t,n)=>{let r=e.slots=ao();if(e.vnode.shapeFlag&32){let e=t._;e?(Ao(r,t,n),n&&_e(r,`_`,e,!0)):Oo(t,r)}else t&&ko(e,t)},Mo=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=f;if(r.shapeFlag&32){let r=t._;r?hr?(Ao(i,t,n),Ct(e,`set`,`$slots`)):n&&r===1?a=!1:Ao(i,t,n):(a=!t.$stable,Oo(t,i)),o=t}else t&&(ko(e,t),o={default:1});if(a)for(let e in i)!To(e)&&o[e]==null&&delete i[e]},No,Po;function Fo(e,t){e.appContext.config.performance&&Lo()&&Po.mark(`vue-${t}-${e.uid}`),zr(e,t,Lo()?Po.now():Date.now())}function Io(e,t){if(e.appContext.config.performance&&Lo()){let n=`vue-${t}-${e.uid}`,r=n+`:end`,i=`<${Ys(e,e.type)}> ${t}`;Po.mark(r),Po.measure(i,n,r),Po.clearMeasures(i),Po.clearMarks(n),Po.clearMarks(r)}Br(e,t,Lo()?Po.now():Date.now())}function Lo(){return No===void 0&&(typeof window<`u`&&window.performance?(No=!0,Po=window.performance):No=!1),No}function Ro(){let e=[];if(e.length){let t=e.length>1;console.warn(`Feature flag${t?`s`:``} ${e.join(`, `)} ${t?`are`:`is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.
|
|
140
|
+
`],...Bn(e))}),t}function Bn({vnode:e,recurseCount:t}){let n=t>0?`... (${t} recursive calls)`:``,r=e.component?e.component.parent==null:!1,i=` at <${Ys(e.component,e.type,r)}`,a=`>`+n;return e.props?[i,...Vn(e.props),a]:[i+a]}function Vn(e){let t=[],n=Object.keys(e);return n.slice(0,3).forEach(n=>{t.push(...Hn(n,e[n]))}),n.length>3&&t.push(` ...`),t}function Hn(e,t,n){return E(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t==`number`||typeof t==`boolean`||t==null?n?t:[`${e}=${t}`]:bn(t)?(t=Hn(e,N(t.value),!0),n?t:[`${e}=Ref<`,t,`>`]):T(t)?[`${e}=fn${t.name?`<${t.name}>`:``}`]:(t=N(t),n?t:[`${e}=`,t])}function Un(e,t){e!==void 0&&(typeof e==`number`?isNaN(e)&&F(`${t} is NaN - the duration expression might be incorrect.`):F(`${t} is not a valid number - got ${JSON.stringify(e)}.`))}var Wn={sp:`serverPrefetch hook`,bc:`beforeCreate hook`,c:`created hook`,bm:`beforeMount hook`,m:`mounted hook`,bu:`beforeUpdate hook`,u:`updated`,bum:`beforeUnmount hook`,um:`unmounted hook`,a:`activated hook`,da:`deactivated hook`,ec:`errorCaptured hook`,rtc:`renderTracked hook`,rtg:`renderTriggered hook`,0:`setup function`,1:`render function`,2:`watcher getter`,3:`watcher callback`,4:`watcher cleanup function`,5:`native event handler`,6:`component event handler`,7:`vnode hook`,8:`directive hook`,9:`transition hook`,10:`app errorHandler`,11:`app warnHandler`,12:`ref function`,13:`async component loader`,14:`scheduler flush`,15:`component update`,16:`app unmount cleanup function`};function Gn(e,t,n,r){try{return r?e(...r):e()}catch(e){qn(e,t,n)}}function Kn(e,t,n,r){if(T(e)){let i=Gn(e,t,n,r);return i&&te(i)&&i.catch(e=>{qn(e,t,n)}),i}if(S(e)){let i=[];for(let a=0;a<e.length;a++)i.push(Kn(e[a],t,n,r));return i}F(`Invalid value type passed to callWithAsyncErrorHandling(): ${typeof e}`)}function qn(e,t,n,r=!0){let i=t?t.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||f;if(t){let r=t.parent,i=t.proxy,o=Wn[n];for(;r;){let t=r.ec;if(t){for(let n=0;n<t.length;n++)if(t[n](e,i,o)===!1)return}r=r.parent}if(a){dt(),Gn(a,null,10,[e,i,o]),ft();return}}Jn(e,n,i,r,o)}function Jn(e,t,n,r=!0,i=!1){{let i=Wn[t];if(n&&Fn(n),F(`Unhandled error${i?` during execution of ${i}`:``}`),n&&In(),r)throw e;console.error(e)}}var Yn=[],Xn=-1,Zn=[],Qn=null,$n=0,er=Promise.resolve(),tr=null,nr=100;function rr(e){let t=tr||er;return e?t.then(this?e.bind(this):e):t}function ir(e){let t=Xn+1,n=Yn.length;for(;t<n;){let r=t+n>>>1,i=Yn[r],a=fr(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function ar(e){if(!(e.flags&1)){let t=fr(e),n=Yn[Yn.length-1];!n||!(e.flags&2)&&t>=fr(n)?Yn.push(e):Yn.splice(ir(t),0,e),e.flags|=1,or()}}function or(){tr||=er.then(pr)}function sr(e){if(!S(e))Qn&&e.id===-1?Qn.splice($n+1,0,e):e.flags&1||(Zn.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Zn.push(e[t]);or()}function cr(e,t,n,r=Xn+1){for(n||=new Map;r<Yn.length;r++){let i=Yn[r];if(i&&i.flags&2){if(e&&i.id!==e.uid||t!==void 0&&!(i.id>=t)||mr(n,i))continue;Yn.splice(r,1),r=e?r-1:Xn,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function lr(e,t,n=0){if(Zn.length){let r=Zn,i=0;if(t){r=[];for(let e=0;e<Zn.length;e++){let a=Zn[e];(a.i===void 0?t.has(a):!a.i||a.i.uid<n)?Zn[i++]=a:r.push(a)}}let a=[...new Set(r)].sort((e,t)=>fr(e)-fr(t));if(Zn.length=i,Qn){for(let e=0;e<a.length;e++)Qn.push(a[e]);return}for(Qn=a,e||=new Map,$n=0;$n<Qn.length;$n++){let t=Qn[$n];mr(e,t)||(t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2)}Qn=null,$n=0}}var ur=!1;function dr(e,t){if(ur){e();return}let n=t===void 0?void 0:new Set(Zn);e(),ur=!0;try{cr(void 0,t),lr(void 0,n,t)}finally{ur=!1}}var fr=e=>e.id==null?e.flags&2?-1:1/0:e.id;function pr(e){e||=new Map;let t=t=>mr(e,t);try{for(Xn=0;Xn<Yn.length;Xn++){let e=Yn[Xn];if(e&&!(e.flags&8)){if(t(e))continue;e.flags&4&&(e.flags&=-2),Gn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2)}}}finally{for(;Xn<Yn.length;Xn++){let e=Yn[Xn];e&&(e.flags&=-2)}Xn=-1,Yn.length=0,lr(e),tr=null,(Yn.length||Zn.length)&&pr(e)}}function mr(e,t){let n=e.get(t)||0;if(n>nr){let e=t.i,n=e&&Js(e.type);return qn(`Maximum recursive updates exceeded${n?` in component <${n}>`:``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}var hr=!1,gr=e=>{try{return hr}finally{hr=e}},_r=new Map;xe().__VUE_HMR_RUNTIME__={createRecord:Er(xr),rerender:Er(Cr),reload:Er(wr)};var vr=new Map;function yr(e){let t=e.type.__hmrId,n=vr.get(t);n||=(xr(t,e.type),vr.get(t)),n.instances.add(e)}function br(e){vr.get(e.type.__hmrId).instances.delete(e)}function xr(e,t){return!vr.has(e)&&(vr.set(e,{initialDef:Sr(t),instances:new Set}),!0)}function Sr(e){return Xs(e)?e.__vccOpts:e}function Cr(e,t){let n=vr.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(e=>{t&&(e.render=t,Sr(e.type).render=t),e.renderCache=[],hr=!0,e.job.flags&8||e.update(),hr=!1}))}function wr(e,t){let n=vr.get(e);if(!n)return;t=Sr(t),Tr(n.initialDef,t);let r=[...n.instances];for(let e=0;e<r.length;e++){let i=r[e],a=Sr(i.type),o=_r.get(a);o||(a!==n.initialDef&&Tr(a,t),_r.set(a,o=new Set)),o.add(i),i.appContext.propsCache.delete(i.type),i.appContext.emitsCache.delete(i.type),i.appContext.optionsCache.delete(i.type),i.ceReload?(o.add(i),i.ceReload(t.styles),o.delete(i)):i.parent?ar(()=>{i.job.flags&8||(hr=!0,i.parent.update(),hr=!1,o.delete(i))}):i.appContext.reload?i.appContext.reload():typeof window<`u`?window.location.reload():console.warn(`[HMR] Root or manually mounted instance modified. Full reload required.`),i.root.ce&&i!==i.root&&i.root.ce._removeChildStyle(a)}sr(()=>{_r.clear()})}function Tr(e,t){v(e,t);for(let n in e)n!==`__file`&&!(n in t)&&delete e[n]}function Er(e){return(t,n)=>{try{return e(t,n)}catch(e){console.error(e),console.warn(`[HMR] Something went wrong during Vue component hot-reload. Full reload required.`)}}}var Dr,Or=[],kr=!1;function Ar(e,...t){Dr?Dr.emit(e,...t):kr||Or.push({event:e,args:t})}function jr(e,t){Dr=e,Dr?(Dr.enabled=!0,Or.forEach(({event:e,args:t})=>Dr.emit(e,...t)),Or=[]):typeof window<`u`&&window.HTMLElement&&!(window.navigator?.userAgent)?.includes(`jsdom`)?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(e=>{jr(e,t)}),setTimeout(()=>{Dr||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,kr=!0,Or=[])},3e3)):(kr=!0,Or=[])}function Mr(e,t){Ar(`app:init`,e,t,{Fragment:B,Text:Qo,Comment:$o,Static:es})}function Nr(e){Ar(`app:unmount`,e)}var Pr=Rr(`component:added`),Fr=Rr(`component:updated`),Ir=Rr(`component:removed`),Lr=e=>{Dr&&typeof Dr.cleanupBuffer==`function`&&!Dr.cleanupBuffer(e)&&Ir(e)};function Rr(e){return t=>{Ar(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}var zr=Vr(`perf:start`),Br=Vr(`perf:end`);function Vr(e){return(t,n,r)=>{Ar(e,t.appContext.app,t.uid,t,n,r)}}function Hr(e,t,n){Ar(`component:emit`,e.appContext.app,e,t,n)}var Ur=null,Wr=null;function Gr(e){let t=Ur;return Ur=e,Wr=e&&e.type.__scopeId||null,t}function I(e,t=Ur,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&as(-1);let i=Gr(t),a=ts.length,o;try{o=e(...n)}finally{for(let e=ts.length;e>a;e--)rs();Gr(i),r._d&&as(1)}return Fr(t),o};return r._n=!0,r._c=!0,r._d=!0,r}function Kr(e){ce(e)&&F(`Do not use built-in directive ids as custom directive id: `+e)}function L(e,t){if(Ur===null)return F(`withDirectives can only be used inside render functions.`),e;let n=Gs(Ur),r=e.dirs||=[];for(let e=0;e<t.length;e++){let[i,a,o,s=f]=t[e];i&&(T(i)&&(i={mounted:i,updated:i}),i.deep&&Nn(a),r.push({dir:i,instance:n,value:a,oldValue:void 0,arg:o,modifiers:s}))}return e}function qr(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(dt(),Kn(c,n,8,[e.el,s,e,t]),ft())}}function Jr(e,t){if((!Ds||Ds.isMounted)&&F(`provide() can only be used inside setup().`),Ds){let n=Ds.provides,r=Ds.parent&&Ds.parent.provides;r===n&&(n=Ds.provides=Object.create(r)),n[e]=t}}function Yr(e,t,n=!1){let r=Os();if(r||Ba){let i=Ba?Ba._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&T(t)?t.call(r&&r.proxy):t;F(`injection "${String(e)}" not found.`)}else F(`inject() can only be used inside setup() or functional components.`)}var Xr=Symbol.for(`v-scx`),Zr=()=>{{let e=Yr(Xr);return e||F(`Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`),e}};function Qr(e,t){return ei(e,null,t)}function $r(e,t,n){return T(t)||F("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),ei(e,t,n)}function ei(e,t,n=f){let{immediate:r,deep:i,flush:a,once:o}=n;t||(r!==void 0&&F(`watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`),i!==void 0&&F(`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`),o!==void 0&&F(`watch() "once" option is only respected when using the watch(source, callback, options?) signature.`));let s=v({},n);s.onWarn=F;let c=t&&r||!t&&a!==`post`,l;if(Is){if(a===`sync`){let e=Zr();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=m,e.resume=m,e.pause=m,e}}let u=Ds;s.call=(e,t,n)=>Kn(e,u,t,n);let d=!1;a===`post`?s.scheduler=e=>{e.i=u,zo(e,u&&u.suspense)}:a!==`sync`&&(d=!0,s.scheduler=(e,t)=>{t?e():ar(e)}),s.augmentJob=e=>{t&&(e.flags|=4),d&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let p=Mn(e,t,s);return Is&&(l?l.push(p):c&&p()),p}function ti(e,t,n){let r=this.proxy,i=E(e)?e.includes(`.`)?ni(r,e):()=>r[e]:e.bind(r,r),a;T(t)?a=t:(a=t.handler,n=t);let o=js(this),s=ei(i,a.bind(r),n);return o(),s}function ni(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var ri=new WeakMap,ii=Symbol(`_vte`),ai=e=>e.__isTeleport,oi=e=>e&&(e.disabled||e.disabled===``),si=e=>e&&(e.defer||e.defer===``),ci=e=>typeof SVGElement<`u`&&e instanceof SVGElement,li=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,ui=(e,t)=>{let n=e&&e.to;if(E(n)){if(t){let r=t(n);return!r&&!oi(e)&&F(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),r}return F(`Current renderer does not support string target for Teleports. (missing querySelector renderer option)`),null}return!n&&!oi(e)&&F(`Invalid Teleport target: ${n}`),n},di={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=oi(t.props),{dynamicChildren:y}=t;hr&&(c=!1,y=null);let b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=oi(e.props),r=e.target=ui(e.props,m),a=gi(r,e,h,p);r?(o!==`svg`&&ci(r)?o=`svg`:o!==`mathml`&&li(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),hi(e,!1))):n||F(`Invalid Teleport target on mount:`,r,`(${typeof r})`)},S=e=>{let t=()=>{if(ri.get(e)===t){if(ri.delete(e),oi(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),hi(e,!0)}x(e)}};ri.set(e,t),zo(t,a)};if(e==null){let e=t.el=g(`teleport start`),i=t.anchor=g(`teleport end`);if(p(e,n,r),p(i,n,r),si(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),hi(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=ri.get(e);if(u){u.flags|=8,ri.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=oi(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||ci(p)?o=`svg`:(o===`mathml`||li(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),Go(e,t,!1)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):fi(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=ui(t.props,m);e?(t.target=e,fi(t,e,null,l,0)):F(`Invalid Teleport target on update:`,p,`(${typeof p})`)}else g&&fi(t,p,h,l,1);hi(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=oi(f),m=a||!p,h=ri.get(e);if(h&&(h.flags|=8,ri.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e<s.length;e++){let i=s[e];r(i,t,n,m,!!i.dynamicChildren)}},move:fi,hydrate:pi};function fi(e,t,n,{o:{insert:r},m:i},a=2){a===0&&(e.targetStart&&r(e.targetStart,t,n),r(e.targetAnchor,t,n),n=e.targetAnchor);let{el:o,anchor:s,shapeFlag:c,children:l,props:u}=e,d=a===2;if(d&&r(o,t,n),!ri.has(e)&&(!d||oi(u))&&c&16)for(let e=0;e<l.length;e++)i(l[e],t,n,2);d&&r(s,t,n)}function pi(e,t,n,r,i,a,{o:{nextSibling:o,parentNode:s,querySelector:c,insert:l,createText:u}},d){function f(e,n){let r=n;for(;r;){if(r&&r.nodeType===8){if(r.data===`teleport start anchor`)t.targetStart=r;else if(r.data===`teleport anchor`){t.targetAnchor=r,e._lpa=t.targetAnchor&&o(t.targetAnchor);break}}r=o(r)}}function p(e,t){t.anchor=d(o(e),t,s(e),n,r,i,a)}let m=t.target=ui(t.props,c),h=oi(t.props);if(m){let c=m._lpa||m.firstChild;t.shapeFlag&16&&(h?(p(e,t),f(m,c),t.targetAnchor||gi(m,t,u,l,s(e)===m?e:null)):(t.anchor=o(e),f(m,c),t.targetAnchor||gi(m,t,u,l),d(c&&o(c),t,m,n,r,i,a))),hi(t,h)}else h&&t.shapeFlag&16&&(p(e,t),t.targetStart=e,t.targetAnchor=o(e));return t.anchor&&o(t.anchor)}var mi=di;function hi(e,t){let n=e.ctx;if(n&&n.ut){let r,i;for(t?(r=e.el,i=e.anchor):(r=e.targetStart,i=e.targetAnchor);r&&r!==i;)r.nodeType===1&&r.setAttribute(`data-v-owner`,n.uid),r=r.nextSibling;n.ut()}}function gi(e,t,n,r,i=null){let a=t.targetStart=n(``),o=t.targetAnchor=n(``);return a[ii]=o,e&&(r(a,e,i),r(o,e,i)),o}var _i=Symbol(`_leaveCb`),vi=Symbol(`_enterCb`);function yi(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ji(()=>{e.isMounted=!0}),Zi(()=>{e.isUnmounting=!0}),e}var bi=[Function,Array],xi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:bi,onEnter:bi,onAfterEnter:bi,onEnterCancelled:bi,onBeforeLeave:bi,onLeave:bi,onAfterLeave:bi,onLeaveCancelled:bi,onBeforeAppear:bi,onAppear:bi,onAfterAppear:bi,onAppearCancelled:bi},Si={name:`BaseTransition`,props:xi,setup(e,{slots:t}){let n=Os(),r=yi();return()=>{let i=t.default&&Ai(t.default(),!0),a=i&&i.length?Ci(i):n.subTree?q():void 0;if(!a)return;let o=N(e),{mode:s}=o;if(s&&s!==`in-out`&&s!==`out-in`&&s!=="default"&&F(`invalid <transition> mode: ${s}`),r.isLeaving)return Di(a);let c=Oi(a);if(!c)return Di(a);let l=Ei(c,o,r,n,e=>l=e);c.type!==$o&&ki(c,l);let u=n.subTree&&Oi(n.subTree);if(u&&u.type!==$o&&!cs(u,c)&&ji(n.subTree)){let e=Ei(u,o,r,n);if(ki(u,e),s===`out-in`&&c.type!==$o)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Di(a);s===`in-out`&&c.type!==$o?e.delayLeave=(e,t,n)=>{let i=Ti(r,u);i[String(u.key)]=u,e[_i]=()=>{t(),e[_i]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function Ci(e){let t=e[0];if(e.length>1){let n=!1;for(let r of e)if(r.type!==$o){if(n){F(`<transition> can only be used on a single element or component. Use <transition-group> for lists.`);break}t=r,n=!0}}return t}var wi=Si;function Ti(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ei(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:_,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),x=Ti(n,e),C=(e,t)=>{e&&Kn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),S(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},ee={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted){if(a)r=g||c;else return}t[_i]&&t[_i](!0);let i=x[b];if(i&&cs(e,i)){let e=i.el[_i];if(!e){let t=ji(i);e=t&&t.el[_i]}e&&e()}C(r,[t])},enter(t){if(!hr&&x[b]===e)return;let r=l,i=u,o=d;if(!n.isMounted){if(a)r=_||l,i=v||u,o=y||d;else return}let s=!1;t[vi]=e=>{s||(s=!0,C(e?o:i,[t]),ee.delayedLeave&&ee.delayedLeave(),t[vi]=void 0)};let c=t[vi].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[vi]&&t[vi](!0),n.isUnmounting)return r();C(f,[t]);let a=!1;t[_i]=n=>{a||(a=!0,r(),C(n?h:m,[t]),t[_i]=void 0,x[i]===e&&delete x[i])};let o=t[_i].bind(null,!1);x[i]=e,p?w(p,[t,o]):o()},clone(e){let a=Ei(e,t,n,r,i);return i&&i(a),a}};return ee}function Di(e){if(Bi(e))return e=hs(e),e.children=null,e}function Oi(e){if(!Bi(e))return ai(e.type)&&e.children?Ci(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&T(n.default))return n.default()}}function ki(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;ki(ai(n.type)&&Oi(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===B&&S(e.children)){let n=Xa(e.children,!1);n&&ki(n,t)}}function Ai(e,t=!1,n){let r=[],i=0;for(let a=0;a<e.length;a++){let o=e[a],s=n==null?o.key:String(n)+String(o.key==null?a:o.key);o.type===B?(o.patchFlag&128&&i++,r=r.concat(Ai(o.children,t,s))):(t||o.type!==$o)&&r.push(s==null?o:hs(o,{key:s}))}if(i>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function ji(e){if(e.component)return ji(e.component.subTree);if(e.type===B){let t=S(e.children)&&Xa(e.children,!1);return t?ji(t):void 0}if(e.type!==$o)return e}function Mi(e,t){return T(e)?v({name:e.name},t,{setup:e}):e}function Ni(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}var Pi=new WeakSet;function Fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var Ii=new WeakMap;function Li(e,t,n,r,i=!1){if(S(e)){e.forEach((e,a)=>Li(e,t&&(S(t)?t[a]:t),n,r,i));return}if(zi(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Li(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?Gs(r.component):r.el,o=i?null:a,{i:s,r:c}=e;if(!s){F(`Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`);return}let l=t&&t.r,u=s.refs===f?s.refs={}:s.refs,d=s.setupState,p=N(d),m=d===f?h:e=>(x(p,e)&&!bn(p[e])&&F(`Template ref "${e}" used on a non-ref value. It will not work in the production build.`),Pi.has(p[e])||Fi(u,e)?!1:x(p,e)),g=(e,t)=>!(Pi.has(e)||t&&Fi(u,t));if(l!=null&&l!==c){if(Ri(t),E(l))u[l]=null,m(l)&&(d[l]=null);else if(bn(l)){let e=t;g(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(T(c))Gn(c,s,12,[o,u]);else{let t=E(c),r=bn(c);if(t||r){let s=()=>{if(e.f){let n=t?m(c)?d[c]:u[c]:g(c)||!e.k?c.value:u[e.k];if(i)S(n)&&y(n,a);else if(S(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],m(c)&&(d[c]=u[c]);else{let t=[a];g(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,m(c)&&(d[c]=o)):r?(g(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o)):F(`Invalid template ref type:`,c,`(${typeof c})`)};if(o){let t=()=>{s(),Ii.delete(e)};t.id=-1,Ii.set(e,t),zo(t,n)}else Ri(e),s()}else F(`Invalid template ref type:`,c,`(${typeof c})`)}}function Ri(e){let t=Ii.get(e);t&&(t.flags|=8,Ii.delete(e))}xe().requestIdleCallback,xe().cancelIdleCallback;var zi=e=>!!e.type.__asyncLoader,Bi=e=>e.type.__isKeepAlive;function Vi(e,t){Ui(e,`a`,t)}function Hi(e,t){Ui(e,`da`,t)}function Ui(e,t,n=Ds){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Gi(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Bi(e.parent.vnode)&&Wi(r,t,n,e),e=e.parent}}function Wi(e,t,n,r){let i=Gi(t,e,r,!0);Qi(()=>{y(r[t],i)},n)}function Gi(e,t,n=Ds,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{dt();let i=js(n),a=Kn(t,n,e,r);return i(),ft(),a};return r?i.unshift(a):i.push(a),a}F(`${me(Wn[e].replace(/ hook$/,``))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}var Ki=e=>(t,n=Ds)=>{Is&&e!==`sp`||Gi(e,(...e)=>t(...e),n)},qi=Ki(`bm`),Ji=Ki(`m`),Yi=Ki(`bu`),Xi=Ki(`u`),Zi=Ki(`bum`),Qi=Ki(`um`),$i=Ki(`sp`),ea=Ki(`rtg`),ta=Ki(`rtc`);function na(e,t=Ds){Gi(`ec`,e,t)}var ra=`components`;function R(e,t){return oa(ra,e,!0,t)||e}var ia=Symbol.for(`v-ndc`);function aa(e){return E(e)?oa(ra,e,!1)||e:e||ia}function oa(e,t,n=!0,r=!1){let i=Ur||Ds;if(i){let a=i.type;if(e===ra){let e=Js(a,!1);if(e&&(e===t||e===de(t)||e===pe(de(t))))return a}let o=sa(i[e]||a[e],t)||sa(i.appContext[e],t);if(!o&&r)return a;if(n&&!o){let n=e===ra?`
|
|
141
|
+
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:``;F(`Failed to resolve ${e.slice(0,-1)}: ${t}${n}`)}return o}F(`resolve${pe(e.slice(0,-1))} can only be used in render() or setup().`)}function sa(e,t){return e&&(e[t]||e[de(t)]||e[pe(de(t))])}function z(e,t,n,r){let i,a=n&&n[r],o=S(e);if(o||E(e)){let n=o&&pn(e),r=!1,s=!1;n&&(r=!hn(e),s=mn(e),e=Tt(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?yn(vn(e[n])):vn(e[n]):e[n],n,void 0,a&&a[n])}else if(typeof e==`number`){if(!Number.isInteger(e)||e<0)F(`The v-for range expects a positive integer value but got ${e}.`),i=[];else{i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,a&&a[n])}}else if(O(e)){if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r<o;r++){let o=n[r];i[r]=t(e[o],o,r,a&&a[r])}}}else i=[];return n&&(n[r]=i),i}function ca(e,t,n,r,i,a){if(n??={},Ur.ce||Ur.parent&&zi(Ur.parent)&&Ur.parent.ce){let e=a!=null&&n.key==null?v({},n,{key:a}):n,i=Object.keys(e).length>0;return t!=="default"&&(e.name=t),V(),U(B,null,[G(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o.length>1&&(F(`SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`),o=()=>[]),o&&o._c&&(o._d=!1);let s=ts.length;V();let c;try{let i=o&&la(o(n)),s=n.key||a||i&&i.key;c=U(B,{key:(s&&!D(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=ts.length;e>s;e--)rs();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),c}function la(e){return e.some(e=>!ss(e)||!(e.type===$o||e.type===B&&!la(e.children)))?e:null}var ua=e=>e?Fs(e)?Gs(e):ua(e.parent):null,da=e=>{let t=!1;for(;;){if(e.patchFlag>0&&e.patchFlag&2048){let n=Xa(e.children);if(!n)return;e=n,t=!0;continue}let n=e.component;if(n&&n.subTree){e=n.subTree;continue}let r=e.suspense;if(r&&r.activeBranch)e=r.activeBranch;else return t?e.el:void 0}},fa=e=>{let t=e.subTree&&da(e.subTree);return t===void 0?e.vnode.el:t},pa=v(Object.create(null),{$:e=>e,$el:e=>fa(e),$data:e=>e.data,$props:e=>dn(e.props),$attrs:e=>dn(e.attrs),$slots:e=>dn(e.slots),$refs:e=>dn(e.refs),$parent:e=>ua(e.parent),$root:e=>ua(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Da(e),$forceUpdate:e=>e.f||=()=>{ar(e.update)},$nextTick:e=>e.n||=rr.bind(e.proxy),$watch:e=>ti.bind(e)}),ma=e=>e===`_`||e===`$`,ha=(e,t)=>e!==f&&!e.__isScriptSetup&&x(e,t),ga={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t===`__isVue`)return!0;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(ha(r,t))return o[t]=1,r[t];else if(i!==f&&x(i,t))return o[t]=2,i[t];else if(x(a,t))return o[t]=3,a[t];else if(n!==f&&x(n,t))return o[t]=4,n[t];else Sa&&(o[t]=0)}let l=pa[t],u,d;if(l)return t===`$attrs`?(St(e.attrs,`get`,``),qa()):t===`$slots`&&St(e,`get`,t),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==f&&x(n,t))return o[t]=4,n[t];if(d=c.config.globalProperties,x(d,t))return d[t];Ur&&(!E(t)||t.indexOf(`__v`)!==0)&&(i!==f&&ma(t[0])&&x(i,t)?F(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===Ur&&F(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return ha(i,t)?(i[t]=n,!0):i.__isScriptSetup&&x(i,t)?(F(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):r!==f&&x(r,t)?(r[t]=n,!0):x(e.props,t)?(F(`Attempting to mutate prop "${t}". Props are readonly.`),!1):t[0]===`$`&&t.slice(1)in e?(F(`Attempting to mutate public property "${t}". Properties starting with $ are reserved and readonly.`),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(a,t,{enumerable:!0,configurable:!0,value:n}):a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==f&&s[0]!==`$`&&x(e,s)||ha(t,s)||x(a,s)||x(r,s)||x(pa,s)||x(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?x(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};ga.ownKeys=e=>(F(`Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`),Reflect.ownKeys(e));function _a(e){let t={};return Object.defineProperty(t,"_",{configurable:!0,enumerable:!1,get:()=>e}),Object.keys(pa).forEach(n=>{Object.defineProperty(t,n,{configurable:!0,enumerable:!1,get:()=>pa[n](e),set:m})}),t}function va(e){let{ctx:t,propsOptions:[n]}=e;n&&Object.keys(n).forEach(n=>{Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>e.props[n],set:m})})}function ya(e){let{ctx:t,setupState:n}=e;Object.keys(N(n)).forEach(e=>{if(!n.__isScriptSetup){if(ma(e[0])){F(`setup() return property ${JSON.stringify(e)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);return}Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:()=>n[e],set:m})}})}function ba(e){return S(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function xa(){let e=Object.create(null);return(t,n)=>{e[n]?F(`${t} property "${n}" is already defined in ${e[n]}.`):e[n]=t}}var Sa=!0;function Ca(e){let t=Da(e),n=e.proxy,r=e.ctx;Sa=!1,t.beforeCreate&&Ta(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:h,activated:g,deactivated:_,beforeDestroy:v,beforeUnmount:y,destroyed:b,unmounted:x,render:C,renderTracked:w,renderTriggered:ee,errorCaptured:E,serverPrefetch:D,expose:ne,inheritAttrs:re,components:ie,directives:ae,filters:oe}=t,se=xa();{let[t]=e.propsOptions;if(t)for(let e in t)se(`Props`,e)}if(l&&wa(l,r,se),o)for(let e in o){let t=o[e];T(t)?(Object.defineProperty(r,e,{value:t.bind(n),configurable:!0,enumerable:!0,writable:!0}),se(`Methods`,e)):F(`Method "${e}" has type "${typeof t}" in the component definition. Did you reference the function correctly?`)}if(i){T(i)||F(`The data option must be a function. Plain object usage is no longer supported.`);let t=i.call(n,n);if(te(t)&&F(`data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`),!O(t))F(`data() should return an object.`);else{e.data=cn(t);for(let e in t)se(`Data`,e),ma(e[0])||Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:()=>t[e],set:m})}}if(Sa=!0,a)for(let e in a){let t=a[e],i=T(t)?t.bind(n,n):T(t.get)?t.get.bind(n,n):m;i===m&&F(`Computed property "${e}" has no getter.`);let o=Zs({get:i,set:!T(t)&&T(t.set)?t.set.bind(n):()=>{F(`Write operation failed: computed property "${e}" is readonly.`)}});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>o.value,set:e=>o.value=e}),se(`Computed`,e)}if(s)for(let e in s)Ea(s[e],r,n,e);if(c){let e=T(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{Jr(t,e[t])})}u&&Ta(u,e,`c`);function ce(e,t){S(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(ce(qi,d),ce(Ji,f),ce(Yi,p),ce(Xi,h),ce(Vi,g),ce(Hi,_),ce(na,E),ce(ta,w),ce(ea,ee),ce(Zi,y),ce(Qi,x),ce($i,D),S(ne)){if(ne.length){let t=e.exposed||={};ne.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}C&&e.render===m&&(e.render=C),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),ae&&(e.directives=ae),D&&Ni(e)}function wa(e,t,n=m){S(e)&&(e=Ma(e));for(let r in e){let i=e[r],a;a=O(i)?`default`in i?Yr(i.from||r,i.default,!0):Yr(i.from||r):Yr(i),bn(a)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e}):t[r]=a,n(`Inject`,r)}}function Ta(e,t,n){Kn(S(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ea(e,t,n,r){let i=r.includes(`.`)?ni(n,r):()=>n[r];if(E(e)){let n=t[e];T(n)?$r(i,n):F(`Invalid watch handler specified by key "${e}"`,n)}else if(T(e))$r(i,e.bind(n));else if(O(e)){if(S(e))e.forEach(e=>Ea(e,t,n,r));else{let r=T(e.handler)?e.handler.bind(n):t[e.handler];T(r)?$r(i,r,e):F(`Invalid watch handler specified by key "${e.handler}"`,r)}}else F(`Invalid watch option: "${r}"`,e)}function Da(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>Oa(c,e,o,!0)),Oa(c,t,o)),O(t)&&a.set(t,c),c}function Oa(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&Oa(e,a,n,!0),i&&i.forEach(t=>Oa(e,t,n,!0));for(let i in t)if(r&&i===`expose`)F(`"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`);else{let r=ka[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var ka={data:Aa,props:Fa,emits:Fa,methods:Pa,computed:Pa,beforeCreate:Na,created:Na,beforeMount:Na,mounted:Na,beforeUpdate:Na,updated:Na,beforeDestroy:Na,beforeUnmount:Na,destroyed:Na,unmounted:Na,activated:Na,deactivated:Na,errorCaptured:Na,serverPrefetch:Na,components:Pa,directives:Pa,watch:Ia,provide:Aa,inject:ja};function Aa(e,t){return t?e?function(){return v(T(e)?e.call(this,this):e,T(t)?t.call(this,this):t)}:t:e}function ja(e,t){return Pa(Ma(e),Ma(t))}function Ma(e){if(S(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Na(e,t){return e?[...new Set([].concat(e,t))]:t}function Pa(e,t){return e?v(Object.create(null),e,t):t}function Fa(e,t){return e?S(e)&&S(t)?[...new Set([...e,...t])]:v(Object.create(null),ba(e),ba(t??{})):t}function Ia(e,t){if(!e)return t;if(!t)return e;let n=v(Object.create(null),e);for(let r in t)n[r]=Na(e[r],t[r]);return n}function La(){return{app:null,config:{isNativeTag:h,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var Ra=0;function za(e,t){return function(n,r=null){T(n)||(n=v({},n)),r!=null&&!O(r)&&(F(`root props passed to app.mount() must be an object.`),r=null);let i=La(),a=new WeakSet,o=[],s=!1,c=i.app={_uid:Ra++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:ec,get config(){return i.config},set config(e){F(`app.config cannot be replaced. Modify individual options instead.`)},use(e,...t){return a.has(e)?F(`Plugin has already been applied to target app.`):e&&T(e.install)?(a.add(e),e.install(c,...t)):T(e)?(a.add(e),e(c,...t)):F(`A plugin must either be a function or an object with an "install" function.`),c},mixin(e){return i.mixins.includes(e)?F(`Mixin has already been applied to target app`+(e.name?`: ${e.name}`:``)):i.mixins.push(e),c},component(e,t){return Ps(e,i.config),t?(i.components[e]&&F(`Component "${e}" has already been registered in target app.`),i.components[e]=t,c):i.components[e]},directive(e,t){return Kr(e),t?(i.directives[e]&&F(`Directive "${e}" has already been registered in target app.`),i.directives[e]=t,c):i.directives[e]},mount(a,o,l){if(s)F("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`");else{a.__vue_app__&&F("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");let u=c._ceVNode||G(n,r);return u.appContext=i,l===!0?l=`svg`:l===!1&&(l=void 0),i.reload=()=>{let t=hs(u);t.el=null,e(t,a,l)},o&&t?t(u,a):e(u,a,l),s=!0,c._container=a,a.__vue_app__=c,c._instance=u.component,Mr(c,ec),Gs(u.component)}},onUnmount(e){typeof e!=`function`&&F(`Expected function as first argument to app.onUnmount(), but got ${typeof e}`),o.push(e)},unmount(){s?(Kn(o,c._instance,16),e(null,c._container),c._instance=null,Nr(c),delete c._container.__vue_app__):F(`Cannot unmount an app that is not mounted.`)},provide(e,t){return e in i.provides&&(x(i.provides,e)?F(`App already provides property with key "${String(e)}". It will be overwritten with the new value.`):F(`App already provides property with key "${String(e)}" inherited from its parent element. It will be overwritten with the new value.`)),i.provides[e]=t,c},runWithContext(e){let t=Ba;Ba=c;try{return e()}finally{Ba=t}}};return c}}var Ba=null,Va=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${de(t)}Modifiers`]||e[`${k(t)}Modifiers`];function Ha(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||f;{let{emitsOptions:r,propsOptions:[i]}=e;if(r){if(!(t in r))i&&me(de(t))in i||F(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${me(de(t))}" prop.`);else{let e=r[t];T(e)&&(e(...n)||F(`Invalid event arguments: event validation failed for event "${t}".`))}}}let i=n,a=t.startsWith(`update:`),o=a&&Va(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>E(e)?e.trim():e)),o.number&&(i=i.map(ve))),Hr(e,t,i);{let n=t.toLowerCase();n!==t&&r[me(n)]&&F(`Event "${n}" is emitted in component ${Ys(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${k(t)}" instead of "${t}".`)}let s,c=r[s=me(t)]||r[s=me(de(t))];!c&&a&&(c=r[s=me(k(t))]),c&&Kn(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Kn(l,e,6,i)}}var Ua=new WeakMap;function Wa(e,t,n=!1){let r=n?Ua:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!T(e)){let r=e=>{let n=Wa(e,t,!0);n&&(s=!0,v(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(O(e)&&r.set(e,null),null):(S(a)?a.forEach(e=>o[e]=null):v(o,a),O(e)&&r.set(e,o),o)}function Ga(e,t){return!e||!g(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),x(e,t[0].toLowerCase()+t.slice(1))||x(e,k(t))||x(e,t))}var Ka=!1;function qa(){Ka=!0}function Ja(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,v=Gr(e),y,b;Ka=!1;try{if(n.shapeFlag&4){let e=i||r,t=p.__isScriptSetup?new Proxy(e,{get(e,t,n){return F(`Property '${String(t)}' was accessed via 'this'. Avoid using 'this' in templates.`),Reflect.get(e,t,n)}}):e;y=vs(l.call(t,e,u,dn(d),p,f,m)),b=s}else{let e=t;s===d&&qa(),y=vs(e.length>1?e(dn(d),{get attrs(){return qa(),dn(s)},slots:o,emit:c}):e(dn(d),null)),b=t.props?s:Za(s)}}catch(t){ts.length=0,qn(t,e,1),y=G($o)}let x=y,S;if(y.patchFlag>0&&y.patchFlag&2048&&([x,S]=Ya(y)),b&&h!==!1){let e=Object.keys(b),{shapeFlag:t}=x;if(e.length){if(t&7)a&&e.some(_)&&(b=Qa(b,a)),x=hs(x,b,!1,!0);else if(!Ka&&x.type!==$o){let e=Object.keys(s),t=[],n=[];for(let r=0,i=e.length;r<i;r++){let i=e[r];g(i)?_(i)||t.push(i[2].toLowerCase()+i.slice(3)):n.push(i)}n.length&&F(`Extraneous non-props attributes (${n.join(`, `)}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`),t.length&&F(`Extraneous non-emits event listeners (${t.join(`, `)}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`)}}}if(n.dirs&&($a(x)||F(`Runtime directive used on component with non-element root node. The directives will not function as intended.`),x=hs(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition){let e=ai(x.type)&&Oi(x)||x;$a(e)||F(`Component inside <Transition> renders non-element root node that cannot be animated.`),ki(e,n.transition)}return S?S(x):y=x,Gr(v),y}var Ya=e=>{let t=e.children,n=e.dynamicChildren,r=Xa(t,!1);if(!r)return[e,void 0];if(r.patchFlag>0&&r.patchFlag&2048)return Ya(r);let i=t.indexOf(r),a=n?n.indexOf(r):-1;return[vs(r),r=>{t[i]=r,n&&(a>-1?n[a]=r:r.patchFlag>0&&(e.dynamicChildren=[...n,r]))}]};function Xa(e,t=!0){let n;for(let r=0;r<e.length;r++){let i=e[r];if(ss(i)){if(i.type!==$o||i.children===`v-if`){if(n)return;if(n=i,t&&n.patchFlag>0&&n.patchFlag&2048)return Xa(n.children)}}else return}return n}var Za=e=>{let t;for(let n in e)(n===`class`||n===`style`||g(n))&&((t||={})[n]=e[n]);return t},Qa=(e,t)=>{let n={};for(let r in e)_(r)&&r.slice(9)in t||(n[r]=e[r]);return n},$a=e=>e.shapeFlag&7||e.type===$o;function eo(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if((i||s)&&hr||t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?to(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(no(o,r,n)&&!Ga(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?!o||to(r,o,l):!!o;return!1}function to(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(!x(e,a)||no(t,e,a)&&!Ga(n,a))return!0}return!1}function no(e,t,n){let r=e[n],i=t[n];return n===`style`&&O(r)&&O(i)?!ze(r,i):r!==i}function ro({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var io={},ao=()=>Object.create(io),oo=e=>Object.getPrototypeOf(e)===io;function so(e,t,n,r=!1){let i={},a=ao();e.propsDefaults=Object.create(null),uo(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);_o(t||{},i,e),e.props=n?r?i:ln(i):e.type.props?i:a,e.attrs=a}function co(e){for(;e;){if(e.type.__hmrId)return!0;e=e.parent}}function lo(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=N(i),[c]=e.propsOptions,l=!1;if(!co(e)&&(r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(Ga(e.emitsOptions,o))continue;let u=t[o];if(c){if(x(a,o))u!==a[o]&&(a[o]=u,l=!0);else{let t=de(o);i[t]=fo(c,s,t,u,e,!1)}}else u!==a[o]&&(a[o]=u,l=!0)}}}else{uo(e,t,i,a)&&(l=!0);let r;for(let a in s)t&&(x(t,a)||(r=k(a))!==a&&x(t,r))||(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=fo(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)t&&x(t,e)||(delete a[e],l=!0)}l&&Ct(e.attrs,`set`,``),_o(t||{},i,e)}function uo(e,t,n,r){let[i,a]=e.propsOptions,o=!1,s;if(t)for(let c in t){if(se(c))continue;let l=t[c],u;i&&x(i,u=de(c))?!a||!a.includes(u)?n[u]=l:(s||={})[u]=l:Ga(e.emitsOptions,c)||c in r&&l===r[c]||(r[c]=l,o=!0)}if(a){let t=N(n),r=s||f;for(let o=0;o<a.length;o++){let s=a[o];n[s]=fo(i,t,s,r[s],e,!x(r,s))}}return o}function fo(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=x(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&T(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=js(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===k(n))&&(r=!0))}return r}var po=new WeakMap;function mo(e,t,n=!1){let r=n?po:t.propsCache,i=r.get(e);if(i)return i;let a=e.props,o={},s=[],c=!1;if(!T(e)){let r=e=>{c=!0;let[n,r]=mo(e,t,!0);v(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return O(e)&&r.set(e,p),p;if(S(a))for(let e=0;e<a.length;e++){E(a[e])||F(`props must be strings when using array syntax.`,a[e]);let t=de(a[e]);ho(t)&&(o[t]=f)}else if(a){O(a)||F(`invalid props options`,a);for(let e in a){let t=de(e);if(ho(t)){let n=a[e],r=o[t]=S(n)||T(n)?{type:n}:v({},n),i=r.type,c=!1,l=!0;if(S(i))for(let e=0;e<i.length;++e){let t=i[e],n=T(t)&&t.name;if(n===`Boolean`){c=!0;break}n===`String`&&(l=!1)}else c=T(i)&&i.name===`Boolean`;r[0]=c,r[1]=l,(c||x(r,`default`))&&s.push(t)}}}let l=[o,s];return O(e)&&r.set(e,l),l}function ho(e){return e[0]!==`$`&&!se(e)||(F(`Invalid prop name: "${e}" is a reserved property.`),!1)}function go(e){return e===null?`null`:typeof e==`function`?e.name||``:typeof e==`object`&&e.constructor&&e.constructor.name||``}function _o(e,t,n){let r=N(t),i=n.propsOptions[0],a=Object.keys(e).map(e=>de(e));for(let e in i){let t=i[e];t!=null&&vo(e,r[e],t,dn(r),!a.includes(e))}}function vo(e,t,n,r,i){let{type:a,required:o,validator:s,skipCheck:c}=n;if(o&&i)F(`Missing required prop: "`+e+`"`);else if(t!=null||o){if(a!=null&&a!==!0&&!c){let n=!1,r=S(a)?a:[a],i=[];for(let e=0;e<r.length&&!n;e++){let{valid:a,expectedType:o}=bo(t,r[e]);i.push(o||``),n=a}if(!n){F(xo(e,t,i));return}}s&&!s(t,r)&&F(`Invalid prop: custom validator check failed for prop "`+e+`".`)}}var yo=d(`String,Number,Boolean,Function,Symbol,BigInt`);function bo(e,t){let n,r=go(t);if(r===`null`)n=e===null;else if(yo(r)){let i=typeof e;n=i===r.toLowerCase(),!n&&i===`object`&&(n=e instanceof t)}else n=r===`Object`?O(e):r===`Array`?S(e):e instanceof t;return{valid:n,expectedType:r}}function xo(e,t,n){if(n.length===0)return`Prop type [] for prop "${e}" won't match anything. Did you mean to use type Array instead?`;let r=`Invalid prop: type check failed for prop "${e}". Expected ${n.map(pe).join(` | `)}`,i=n[0],a=ie(t),o=So(t,i),s=So(t,a);return n.length===1&&Co(i)&&wo(i,a)&&(r+=` with value ${o}`),r+=`, got ${a} `,Co(a)&&(r+=`with value ${s}.`),r}function So(e,t){return D(e)?e.toString():t===`String`?`"${e}"`:t===`Number`?`${Number(e)}`:`${e}`}function Co(e){return[`string`,`number`,`boolean`].some(t=>e.toLowerCase()===t)}function wo(...e){return e.every(e=>{let t=e.toLowerCase();return t!==`boolean`&&t!==`symbol`})}var To=e=>e===`_`||e===`_ctx`||e===`$stable`,Eo=e=>S(e)?e.map(vs):[vs(e)],Do=(e,t,n)=>{if(t._n)return t;let r=I((...r)=>(Ds&&!(n===null&&Ur)&&!(n&&n.root!==Ds.root)&&F(`Slot "${e}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`),Eo(t(...r))),n);return r._c=!1,r},Oo=(e,t,n)=>{let r=e._ctx;for(let n in e){if(To(n))continue;let i=e[n];if(T(i))t[n]=Do(n,i,r);else if(i!=null){F(`Non-function value encountered for slot "${n}". Prefer function slots for better performance.`);let e=Eo(i);t[n]=()=>e}}},ko=(e,t)=>{Bi(e.vnode)||F(`Non-function value encountered for default slot. Prefer function slots for better performance.`);let n=Eo(t);e.slots.default=()=>n},Ao=(e,t,n)=>{for(let r in t)(n||!To(r))&&(e[r]=t[r])},jo=(e,t,n)=>{let r=e.slots=ao();if(e.vnode.shapeFlag&32){let e=t._;e?(Ao(r,t,n),n&&_e(r,`_`,e,!0)):Oo(t,r)}else t&&ko(e,t)},Mo=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=f;if(r.shapeFlag&32){let r=t._;r?hr?(Ao(i,t,n),Ct(e,`set`,`$slots`)):n&&r===1?a=!1:Ao(i,t,n):(a=!t.$stable,Oo(t,i)),o=t}else t&&(ko(e,t),o={default:1});if(a)for(let e in i)!To(e)&&o[e]==null&&delete i[e]},No,Po;function Fo(e,t){e.appContext.config.performance&&Lo()&&Po.mark(`vue-${t}-${e.uid}`),zr(e,t,Lo()?Po.now():Date.now())}function Io(e,t){if(e.appContext.config.performance&&Lo()){let n=`vue-${t}-${e.uid}`,r=n+`:end`,i=`<${Ys(e,e.type)}> ${t}`;Po.mark(r),Po.measure(i,n,r),Po.clearMeasures(i),Po.clearMarks(n),Po.clearMarks(r)}Br(e,t,Lo()?Po.now():Date.now())}function Lo(){return No===void 0&&(typeof window<`u`&&window.performance?(No=!0,Po=window.performance):No=!1),No}function Ro(){let e=[];if(e.length){let t=e.length>1;console.warn(`Feature flag${t?`s`:``} ${e.join(`, `)} ${t?`are`:`is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.
|
|
142
142
|
|
|
143
|
-
For more details, see https://link.vuejs.org/feature-flags.`)}}var zo=Zo;function Bo(e){return Vo(e)}function Vo(e,t){Ro();let n=xe();n.__VUE__=!0,jr(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);let{insert:r,remove:i,patchProp:a,createElement:o,createText:s,createComment:c,setText:l,setElementText:u,parentNode:d,nextSibling:h,setScopeId:g=m,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!hr&&!!t.dynamicChildren)=>{if(e===t)return;e&&!cs(e,t)&&(r=be(e),pe(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null),t.dynamicChildren&&e&&e.dynamicChildren&&e.dynamicChildren.hasOnce&&(t.dynamicChildren===p&&(t.dynamicChildren=[]),t.dynamicChildren.hasOnce=!0);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case Qo:y(e,t,n,r);break;case $o:b(e,t,n,r);break;case es:e==null?x(t,n,r,o):S(e,t,n,o);break;case B:re(e,t,n,r,i,a,o,s,c);break;default:d&1?ee(e,t,n,r,i,a,o,s,c):d&6?ie(e,t,n,r,i,a,o,s,c):d&64||d&128?l.process(e,t,n,r,i,a,o,s,c,Se):F(`Invalid VNode type:`,l,`(${typeof l})`)}u!=null&&i?Li(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Li(e.ref,null,a,e,!0)},y=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},b=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=(e,t,n,r)=>{if(t.children!==e.children){let i=h(e.anchor);w(e),[t.el,t.anchor]=_(t.children,n,i,r)}else t.el=e.el,t.anchor=e.anchor},C=({el:e,anchor:t},n,i)=>{let a;for(;e&&e!==t;)a=h(e),r(e,n,i),e=a;r(t,n,i)},w=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),i(e),e=n;i(t)},ee=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)T(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),O(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&D(e.children,f,null,i,s,Ho(e,c),l,d),_&&qr(e,null,i,`created`),E(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!se(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&Ss(p,i,e)}_e(f,`__vnode`,e,!0),_e(f,`__vueParentComponent`,i,!0),_&&qr(e,null,i,`beforeMount`);let v=Wo(s,g);if(v&&g.beforeEnter(f),r(f,t,n),(p=m&&m.onVnodeMounted)||v||_){let t=hr;zo(()=>{let n;n=gr(t);try{p&&Ss(p,i,e),v&&g.enter(f),_&&qr(e,null,i,`mounted`)}finally{gr(n)}},s)}},E=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t<r.length;t++)g(e,r[t]);if(i){let n=i.subTree;if(n.patchFlag>0&&n.patchFlag&2048&&(n=Xa(n.children)||n),t===n||Xo(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;E(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},D=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++){let c=e[l]=s?ys(e[l]):vs(e[l]);v(null,c,t,n,r,i,a,o,s)}},O=(e,t,n,r,i,o,s)=>{let c=t.el=e.el;c.__vnode=t;let{patchFlag:l,dynamicChildren:d,dirs:p}=t;l|=e.patchFlag&16;let m=e.props||f,h=t.props||f,g;if(n&&Uo(n,!1),(g=h.onVnodeBeforeUpdate)&&Ss(g,n,t,e),p&&qr(t,e,n,`beforeUpdate`),n&&Uo(n,!0),(hr||d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length))&&(l=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&u(c,``),d?(te(e.dynamicChildren,d,c,n,r,Ho(t,i),o),Go(e,t)):s||ue(e,t,c,null,n,r,Ho(t,i),o,!1),l>0){if(l&16)ne(c,m,h,n,i);else if(l&2&&m.class!==h.class&&a(c,`class`,null,h.class,i),l&4&&a(c,`style`,m.style,h.style,i),l&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let r=e[t],o=m[r],s=h[r];(s!==o||r===`value`)&&a(c,r,o,s,i,n)}}l&1&&e.children!==t.children&&u(c,t.children)}else!s&&d==null&&ne(c,m,h,n,i);((g=h.onVnodeUpdated)||p)&&zo(()=>{g&&Ss(g,n,t,e),p&&qr(t,e,n,`updated`)},r)},te=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s],u=c.el||Yo(c),f=u&&(c.type===B||!cs(c,l)||c.shapeFlag&198)?d(u):n;v(c,l,f,null,r,i,a,o,!0)}},ne=(e,t,n,r,i)=>{if(t!==n){if(t!==f)for(let o in t)!se(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(se(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},re=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;(hr||p&2048)&&(p=0,u=!1,m=null),h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),D(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(te(e.dynamicChildren,m,n,a,o,c,l),Go(e,t)):ue(e,t,n,f,a,o,c,l,u)},ie=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ae(t,n,r,i,a,o,c):oe(e,t,c)},ae=(e,t,n,r,i,a,o)=>{let s=e.component=Es(e,r,i);if(s.type.__hmrId&&yr(s),Fn(e),Fo(s,`mount`),Bi(e)&&(s.ctx.renderer=Se),Fo(s,`init`),Ls(s,!1,o),Io(s,`init`),hr&&(e.el=null),s.asyncDep){if(i&&i.registerDep(s,ce,o,a),!e.el){let r=s.subTree=G($o);b(null,r,t,n),e.placeholder=r.el}}else ce(s,e,t,n,i,a,o);In(),Io(s,`mount`)},oe=(e,t,n)=>{let r=t.component=e.component;if(eo(e,t,n)){if(r.asyncDep&&!r.asyncResolved){Fn(t),t.el=e.el,t.placeholder=e.placeholder,le(r,t,n),In();return}r.next=t,r.update()}else t.el=e.el,t.placeholder=e.placeholder,r.vnode=t},ce=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=qo(e);if(n){t&&(t.el=c.el,le(e,t,o)),n.asyncDep.then(()=>{zo(()=>{e.isUnmounted||l()},i)});return}}let u=t,f;Fn(t||e.vnode),Uo(e,!1),t?(t.el=c.el,le(e,t,o)):t=c,n&&ge(n),(f=t.props&&t.props.onVnodeBeforeUpdate)&&Ss(f,s,t,c),Uo(e,!0),Fo(e,`render`);let p=Ja(e);Io(e,`render`);let m=e.subTree;e.subTree=p,Fo(e,`patch`),v(m,p,d(m.el),be(m),e,i,a),Io(e,`patch`),t.el=p.el,u===null&&ro(e,p.el),r&&zo(r,i),(f=t.props&&t.props.onVnodeUpdated)&&zo(()=>Ss(f,s,t,c),i),Fr(e),In()}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=zi(t);if(Uo(e,!1),l&&ge(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Ss(o,d,t),Uo(e,!0),s&&we){let t=()=>{Fo(e,`render`),e.subTree=Ja(e),Io(e,`render`),Fo(e,`hydrate`),we(s,e.subTree,e,i,null),Io(e,`hydrate`)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0),Fo(e,`render`);let o=e.subTree=Ja(e);Io(e,`render`),Fo(e,`patch`),v(null,o,n,r,e,i,a),Io(e,`patch`),t.el=o.el}if(u&&zo(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;zo(()=>Ss(o,d,e),i)}(t.shapeFlag&256||d&&zi(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&zo(e.a,i),e.isMounted=!0,Pr(e),t=n=r=null}};e.scope.on();let c=e.effect=new Xe(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>ar(u),Uo(e,!0),c.onTrack=e.rtc?t=>ge(e.rtc,t):void 0,c.onTrigger=e.rtg?t=>ge(e.rtg,t):void 0,l()},le=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,lo(e,t.props,r,n),Mo(e,t.children,n),dt(),cr(e),ft()},ue=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){fe(l,f,n,r,i,a,o,s,c);return}if(p&256){de(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&ye(l,i,a),f!==l&&u(n,f)):d&16?m&16?fe(l,f,n,r,i,a,o,s,c):ye(l,i,a,!0):(d&8&&u(n,``),m&16&&D(f,n,r,i,a,o,s,c))},de=(e,t,n,r,i,a,o,s,c)=>{e||=p,t||=p;let l=e.length,u=t.length,d=Math.min(l,u),f=0;for(;f<d;f++){let r=t[f]=c?ys(t[f]):vs(t[f]);v(e[f],r,n,null,i,a,o,s,c)}l>u?ye(e,i,a,!0,!1,d):D(t,n,r,i,a,o,s,c,d)},fe=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,f=u-1;for(;l<=d&&l<=f;){let r=e[l],u=t[l]=c?ys(t[l]):vs(t[l]);if(cs(r,u))v(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=f;){let r=e[d],l=t[f]=c?ys(t[f]):vs(t[f]);if(cs(r,l))v(r,l,n,null,i,a,o,s,c);else break;d--,f--}if(l>d){if(l<=f){let e=f+1,d=e<u?t[e].el:r;for(;l<=f;)v(null,t[l]=c?ys(t[l]):vs(t[l]),n,d,i,a,o,s,c),l++}}else if(l>f)for(;l<=d;)pe(e[l],i,a,!0),l++;else{let m=l,h=l,g=new Map;for(l=h;l<=f;l++){let e=t[l]=c?ys(t[l]):vs(t[l]);e.key!=null&&(g.has(e.key)&&F(`Duplicate keys found during update:`,JSON.stringify(e.key),`Make sure keys are unique.`),g.set(e.key,l))}let _,y=0,b=f-h+1,x=!1,S=0,C=Array(b);for(l=0;l<b;l++)C[l]=0;for(l=m;l<=d;l++){let r=e[l];if(y>=b){pe(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=h;_<=f;_++)if(C[_-h]===0&&cs(r,t[_])){u=_;break}u===void 0?pe(r,i,a,!0):(C[u-h]=l+1,u>=S?S=u:x=!0,v(r,t[u],n,null,i,a,o,s,c),y++)}let w=x?Ko(C):p;for(_=w.length-1,l=b-1;l>=0;l--){let e=h+l,d=t[e],f=t[e+1],p=e+1<u?f.el||Yo(f):r;C[l]===0?v(null,d,n,p,i,a,o,s,c):x&&(_<0||l!==w[_]?k(d,n,p,2):_--)}}},k=(e,t,n,a,o=null)=>{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6)k(e.component.subTree,t,n,a);else if(d&128)e.suspense.move(t,n,a);else if(d&64)c.move(e,t,n,Se);else if(c===B){r(s,t,n);for(let e=0;e<u.length;e++)k(u[e],t,n,a);r(e.anchor,t,n)}else if(c===es)C(e,t,n);else if(a!==2&&d&1&&l){if(a===0)l.persisted&&!s[_i]?r(s,t,n):(l.beforeEnter(s),r(s,t,n),zo(()=>l.enter(s),o));else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{let e=s._isLeaving||!!s[_i];s._isLeaving&&s[_i](!0),l.persisted&&!e?u():a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}}else r(s,t,n)},pe=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if((d===-2||l&&l.hasOnce)&&(i=!1),s!=null&&(dt(),Li(s,null,n,e,!0),ft()),p!=null&&(!e.ctx||e.ctx===t)&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!zi(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Ss(_,t,e),u&6)ve(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&qr(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==B||d>0&&d&64)?ye(l,t,n,!1,!0):(a===B&&d&384||!i&&u&16)&&ye(c,t,n),r&&me(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&zo(()=>{_&&Ss(_,t,e),h&&qr(e,null,t,`unmounted`),v&&(e.el=null)},n)},me=e=>{let{type:t,el:n,anchor:r,transition:a}=e,o=t===B;if(o&&!a){he(n,r);return}if(t===es){w(e),a&&!a.persisted&&a.afterLeave&&a.afterLeave();return}let s=o?ji(e):e,c=()=>{o?d(n)&&he(n,r):i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(s&&s.shapeFlag&1&&a&&!a.persisted){let{leave:e,delayLeave:t}=a,n=s.el,r=()=>e(n,c);t?t(n,c,r):r()}else c()},he=(e,t)=>{let n;for(;e!==t;)n=h(e),i(e),e=n;i(t)},ve=(e,t,n)=>{e.type.__hmrId&&br(e);let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Jo(c),Jo(l),r&&ge(r),i.stop(),a?(a.flags|=8,pe(o,e,t,n)):e.vnode.el&&o&&(o.transition=e.vnode.transition,pe(o,e,t,n)),s&&zo(s,t),zo(()=>{e.isUnmounted=!0},t),Lr(e)},ye=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)pe(e[o],t,n,r,i)},be=e=>{if(e.shapeFlag&6)return be(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[ii];return n?h(n):t},A=(e,t,n)=>{dr(()=>{e==null?t._vnode&&pe(t._vnode,null,null,!0):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e},e&&t._vnode?void 0:e&&e.component?e.component.uid:Ts())},Se={p:v,um:pe,m:k,r:me,mt:ae,mc:D,pc:ue,pbc:te,n:be,o:e},Ce,we;return t&&([Ce,we]=t(Se)),{render:A,hydrate:Ce,createApp:za(A,Ce)}}function Ho({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Uo({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Wo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Go(e,t,n=!1){let r=e.children,i=t.children;if(S(r)&&S(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=ys(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&Go(t,a)),a.type===Qo&&(a.patchFlag===-1&&(a=i[e]=ys(a)),a.el=t.el),a.type===$o&&!a.el&&(a.el=t.el),a.el&&(a.el.__vnode=a)}}function Ko(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function qo(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:qo(t)}function Jo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Yo(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?Yo(t.subTree):null}var Xo=e=>e.__isSuspense;function Zo(e,t){t&&t.pendingBranch?S(e)?t.effects.push(...e):t.effects.push(e):sr(e)}var B=Symbol.for(`v-fgt`),Qo=Symbol.for(`v-txt`),$o=Symbol.for(`v-cmt`),es=Symbol.for(`v-stc`),ts=[],ns=null;function V(e=!1){ts.push(ns=e?null:[])}function rs(){ts.pop(),ns=ts[ts.length-1]||null}var is=1;function as(e,t=!1){is+=e,e<0&&ns&&t&&(ns.hasOnce=!0)}function os(e){return e.dynamicChildren=is>0?ns||p:null,rs(),is>0&&ns&&ns.push(e),e}function H(e,t,n,r,i,a){return os(W(e,t,n,r,i,a,!0))}function U(e,t,n,r,i){return os(G(e,t,n,r,i,!0))}function ss(e){return e?e.__v_isVNode===!0:!1}function cs(e,t){if(t.shapeFlag&6&&e.component){let n=_r.get(t.type);if(n&&n.has(e.component))return e.shapeFlag&=-257,t.shapeFlag&=-513,!1}return e.type===t.type&&e.key===t.key}var ls=(...e)=>ps(...e),us=({key:e})=>e??null,ds=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:E(e)||bn(e)||T(e)?{i:Ur,r:e,k:t,f:!!n}:e);function W(e,t=null,n=null,r=0,i=null,a=e===B?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&us(t),ref:t&&ds(t),scopeId:Wr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Ur};if(s?(bs(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=E(n)?8:16),c.key!==c.key&&F(`VNode created with invalid key (NaN). VNode type:`,c.type),t&&c.shapeFlag&1){let e=t.innerHTML==null?t.textContent==null?null:`textContent`:`innerHTML`;e&&fs(c.children)&&F(`The \`${e}\` prop on <${c.type}> will override its children. Remove either the \`${e}\` prop or the children.`)}return is>0&&!o&&ns&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&ns.push(c),c}function fs(e){return E(e)?e!==``:S(e)?e.length>0:!1}var G=ls;function ps(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===ia)&&(e||F(`Invalid vnode type when creating vnode: ${e}.`),e=$o),ss(e)){let r=hs(e,t,!0);return n&&bs(r,n),is>0&&!a&&ns&&(r.shapeFlag&6?ns[ns.indexOf(e)]=r:ns.push(r)),r.patchFlag=-2,r}if(Xs(e)&&(e=e.__vccOpts),t){t=ms(t);let{class:e,style:n}=t;e&&!E(e)&&(t.class=j(e)),O(n)&&(gn(n)&&!S(n)&&(n=v({},n)),t.style=A(n))}let o=E(e)?1:Xo(e)?128:ai(e)?64:O(e)?4:T(e)?2:0;return o&4&&gn(e)&&(e=N(e),F("Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
|
|
144
|
-
Component that was made reactive: `,e)),W(e,t,n,r,i,o,a,!0)}function ms(e){return e?gn(e)||oo(e)?v({},e):e:null}function hs(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?xs(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&us(l),ref:t&&t.ref?n&&a?S(a)?a.concat(ds(t)):[a,ds(t)]:ds(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o===-1&&S(s)?s.map(gs):s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==B?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&hs(e.ssContent),ssFallback:e.ssFallback&&hs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&r&&ki(u,c.clone(u)),u}function gs(e){let t=hs(e);return S(e.children)&&(t.children=e.children.map(gs)),t}function K(e=` `,t=0){return G(Qo,null,e,t)}function _s(e,t){let n=G(es,null,e);return n.staticCount=t,n}function q(e=``,t=!1){return t?(V(),U($o,null,e)):G($o,null,e)}function vs(e){return e==null||typeof e==`boolean`?G($o):S(e)?G(B,null,e.slice()):ss(e)?ys(e):G(Qo,null,String(e))}function ys(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:hs(e)}function bs(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(S(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),bs(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!oo(t)?t._ctx=Ur:r===3&&Ur&&(Ur.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(T(t)){if(r&65){bs(e,{default:t});return}t={default:t,_ctx:Ur},n=32}else t=String(t),r&64?(n=16,t=[K(t)]):n=8;e.children=t,e.shapeFlag|=n}function xs(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=j([t.class,r.class]));else if(e===`style`)t.style=A([t.style,r.style]);else if(g(e)){let n=t[e],i=r[e];i&&n!==i&&!(S(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!_(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function Ss(e,t,n,r=null){Kn(e,t,7,[n,r])}var Cs=La(),ws=0;function Ts(){return ws}function Es(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||Cs,a={uid:ws++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ke(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:mo(r,i),emitsOptions:Wa(r,i),emit:null,emitted:null,propsDefaults:f,inheritAttrs:r.inheritAttrs,ctx:f,data:f,props:f,attrs:f,slots:f,refs:f,setupState:f,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx=_a(a),a.root=t?t.root:a,a.emit=Ha.bind(null,a),e.ce&&e.ce(a),a}var Ds=null,Os=()=>Ds||Ur,ks,As;{let e=xe(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};ks=t(`__VUE_INSTANCE_SETTERS__`,e=>Ds=e),As=t(`__VUE_SSR_SETTERS__`,e=>Is=e)}var js=e=>{let t=Ds;return ks(e),e.scope.on(),()=>{e.scope.off(),ks(t)}},Ms=()=>{Ds&&Ds.scope.off(),ks(null)},Ns=d(`slot,component`);function Ps(e,{isNativeTag:t}){(Ns(e)||t(e))&&F(`Do not use built-in or reserved HTML elements as component id: `+e)}function Fs(e){return e.vnode.shapeFlag&4}var Is=!1;function Ls(e,t=!1,n=!1){t&&As(t);let{props:r,children:i}=e.vnode,a=Fs(e);so(e,r,a,t),jo(e,i,n||t);let o=a?Rs(e,t):void 0;return t&&As(!1),o}function Rs(e,t){let n=e.type;if(n.name&&Ps(n.name,e.appContext.config),n.components){let t=Object.keys(n.components);for(let n=0;n<t.length;n++)Ps(t[n],e.appContext.config)}if(n.directives){let e=Object.keys(n.directives);for(let t=0;t<e.length;t++)Kr(e[t])}n.compilerOptions&&Bs()&&F(`"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`),e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ga),va(e);let{setup:r}=n;if(r){dt();let i=e.setupContext=r.length>1?Ws(e):null,a=js(e),o=Gn(r,e,0,[dn(e.props),i]),s=te(o);if(ft(),a(),(s||e.sp)&&!zi(e)&&Ni(e),s){if(o.then(Ms,Ms),t)return o.then(n=>{As(!0);try{zs(e,n,t)}finally{As(!1)}}).catch(t=>{qn(t,e,0)});e.asyncDep=o,e.suspense||F(`Component <${Ys(e,n)}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`)}else zs(e,o,t)}else Vs(e,t)}function zs(e,t,n){T(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:O(t)?(ss(t)&&F(`setup() should not return VNodes directly - return a render function instead.`),e.devtoolsRawSetupState=t,e.setupState=Tn(t),ya(e)):t!==void 0&&F(`setup() should return an object. Received: ${t===null?`null`:typeof t}`),Vs(e,n)}var Bs=()=>!0;function Vs(e,t,n){let r=e.type;e.render||=r.render||m;{let t=js(e);dt();try{Ca(e)}finally{ft(),t()}}!r.render&&e.render===m&&!t&&(r.template?F(`Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`):F(`Component is missing template or render function: `,r))}var Hs={get(e,t){return qa(),St(e,`get`,``),e[t]},set(){return F(`setupContext.attrs is readonly.`),!1},deleteProperty(){return F(`setupContext.attrs is readonly.`),!1}};function Us(e){return new Proxy(e.slots,{get(t,n){return St(e,`get`,`$slots`),t[n]}})}function Ws(e){let t=t=>{if(e.exposed&&F(`expose() should be called only once per setup().`),t!=null){let e=typeof t;e===`object`&&(S(t)?e=`array`:bn(t)&&(e=`ref`)),e!==`object`&&F(`expose() should be passed a plain object, received ${e}.`)}e.exposed=t||{}};{let n,r;return Object.freeze({get attrs(){return n||=new Proxy(e.attrs,Hs)},get slots(){return r||=Us(e)},get emit(){return(t,...n)=>e.emit(t,...n)},expose:t})}}function Gs(e){return e.exposed?e.exposeProxy||=new Proxy(Tn(_n(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pa)return pa[n](e)},has(e,t){return t in e||t in pa}}):e.proxy}var Ks=/(?:^|[-_])\w/g,qs=e=>e.replace(Ks,e=>e.toUpperCase()).replace(/[-_]/g,``);function Js(e,t=!0){return T(e)?e.displayName||e.name:e.name||t&&e.__name}function Ys(e,t,n=!1){let r=Js(t);if(!r&&t.__file){let e=t.__file.match(/([^/\\]+)\.\w+$/);e&&(r=e[1])}if(!r&&e){let n=e=>{for(let n in e)if(e[n]===t)return n};r=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return r?qs(r):n?`App`:`Anonymous`}function Xs(e){return T(e)&&`__vccOpts`in e}var Zs=(e,t)=>{let n=Dn(e,t,Is);{let e=Os();e&&e.appContext.config.warnRecursiveComputed&&(n._warnRecursive=!0)}return n};function Qs(e,t,n){try{as(-1);let r=arguments.length;return r===2?O(t)&&!S(t)?ss(t)?G(e,null,[t]):G(e,t):G(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ss(n)&&(n=[n]),G(e,t,n))}finally{as(1)}}function $s(){if(typeof window>`u`)return;let e={style:`color:#3ba776`},t={style:`color:#1677ff`},n={style:`color:#f5222d`},r={style:`color:#eb2f96`},i={__vue_custom_formatter:!0,header(t){if(!O(t))return null;if(t.__isVue)return[`div`,e,`VueInstance`];if(bn(t)){dt();let n=t.value;return ft(),[`div`,{},[`span`,e,u(t)],`<`,s(n),`>`]}return pn(t)?[`div`,{},[`span`,e,hn(t)?`ShallowReactive`:`Reactive`],`<`,s(t),`>${mn(t)?` (readonly)`:``}`]:mn(t)?[`div`,{},[`span`,e,hn(t)?`ShallowReadonly`:`Readonly`],`<`,s(t),`>`]:null},hasBody(e){return e&&e.__isVue},body(e){if(e&&e.__isVue)return[`div`,{},...a(e.$)]}};function a(e){let t=[];e.type.props&&e.props&&t.push(o(`props`,N(e.props))),e.setupState!==f&&t.push(o(`setup`,e.setupState)),e.data!==f&&t.push(o(`data`,N(e.data)));let n=c(e,`computed`);n&&t.push(o(`computed`,n));let i=c(e,`inject`);return i&&t.push(o(`injected`,i)),t.push([`div`,{},[`span`,{style:r.style+`;opacity:0.66`},`$ (internal): `],[`object`,{object:e}]]),t}function o(e,t){return t=v({},t),Object.keys(t).length?[`div`,{style:`line-height:1.25em;margin-bottom:0.6em`},[`div`,{style:`color:#476582`},e],[`div`,{style:`padding-left:1.25em`},...Object.keys(t).map(e=>[`div`,{},[`span`,r,e+`: `],s(t[e],!1)])]]:[`span`,{}]}function s(e,i=!0){return typeof e==`number`?[`span`,t,e]:typeof e==`string`?[`span`,n,JSON.stringify(e)]:typeof e==`boolean`?[`span`,r,e]:O(e)?[`object`,{object:i?N(e):e}]:[`span`,n,String(e)]}function c(e,t){let n=e.type;if(T(n))return;let r={};for(let i in e.ctx)l(n,i,t)&&(r[i]=e.ctx[i]);return r}function l(e,t,n){let r=e[n];if(S(r)&&r.includes(t)||O(r)&&t in r||e.extends&&l(e.extends,t,n)||e.mixins&&e.mixins.some(e=>l(e,t,n)))return!0}function u(e){return hn(e)?`ShallowRef`:e.effect?`ComputedRef`:`Ref`}window.devtoolsFormatters?window.devtoolsFormatters.push(i):window.devtoolsFormatters=[i]}var ec=`3.5.44`,tc=F,nc=void 0,rc=typeof window<`u`&&window.trustedTypes;if(rc)try{nc=rc.createPolicy(`vue`,{createHTML:e=>e})}catch(e){tc(`Error creating trusted types policy: ${e}`)}var ic=nc?e=>nc.createHTML(e):e=>e,ac=`http://www.w3.org/2000/svg`,oc=`http://www.w3.org/1998/Math/MathML`,sc=typeof document<`u`?document:null,cc=sc&&sc.createElement(`template`),lc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?sc.createElementNS(ac,e):t===`mathml`?sc.createElementNS(oc,e):n?sc.createElement(e,{is:n}):sc.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>sc.createTextNode(e),createComment:e=>sc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>sc.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{cc.innerHTML=ic(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=cc.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},uc=`transition`,dc=`animation`,fc=Symbol(`_vtc`),pc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},mc=v({},xi,pc),hc=(e=>(e.displayName=`Transition`,e.props=mc,e))((e,{slots:t})=>Qs(wi,vc(e),t)),gc=(e,t=[])=>{S(e)?e.forEach(e=>e(...t)):e&&e(...t)},_c=e=>e?S(e)?e.some(e=>e.length>1):e.length>1:!1;function vc(e){let t={};for(let n in e)n in pc||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=yc(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=_,onAppear:w=y,onAppearCancelled:ee=b}=t,T=(e,t,n,r)=>{e._enterCancelled=r,Sc(e,t?u:s),Sc(e,t?l:o),n&&n()},E=(e,t)=>{e._isLeaving=!1,Sc(e,d),Sc(e,p),Sc(e,f),t&&t()},D=e=>(t,n)=>{let i=e?w:y,o=()=>T(t,e,n);gc(i,[t,o]),Cc(()=>{Sc(t,e?c:a),xc(t,e?u:s),_c(i)||Tc(t,r,h,o)})};return v(t,{onBeforeEnter(e){gc(_,[e]),xc(e,a),xc(e,o)},onBeforeAppear(e){gc(C,[e]),xc(e,c),xc(e,l)},onEnter:D(!1),onAppear:D(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>E(e,t);xc(e,d),e._enterCancelled?(xc(e,f),kc(e)):(kc(e),xc(e,f)),Cc(()=>{e._isLeaving&&(Sc(e,d),xc(e,p),_c(x)||Tc(e,r,g,n))}),gc(x,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),gc(b,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),gc(ee,[e])},onLeaveCancelled(e){E(e),gc(S,[e])}})}function yc(e){if(e==null)return null;if(O(e))return[bc(e.enter),bc(e.leave)];{let t=bc(e);return[t,t]}}function bc(e){let t=ye(e);return Un(t,`<transition> explicit duration`),t}function xc(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[fc]||(e[fc]=new Set)).add(t)}function Sc(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[fc];n&&(n.delete(t),n.size||(e[fc]=void 0))}function Cc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var wc=0;function Tc(e,t,n,r){let i=e._endId=++wc,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Ec(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u<c&&d()},s+1),e.addEventListener(l,f)}function Ec(e,t){let n=window.getComputedStyle(e),r=e=>(n[e]||``).split(`, `),i=r(`${uc}Delay`),a=r(`${uc}Duration`),o=Dc(i,a),s=r(`${dc}Delay`),c=r(`${dc}Duration`),l=Dc(s,c),u=null,d=0,f=0;t===uc?o>0&&(u=uc,d=o,f=a.length):t===dc?l>0&&(u=dc,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?uc:dc:null,f=u?u===uc?a.length:c.length:0);let p=u===uc&&/\b(?:transform|all)(?:,|$)/.test(r(`${uc}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Dc(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>Oc(t)+Oc(e[n])))}function Oc(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function kc(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ac(e,t,n){let r=e[fc];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var jc=Symbol(`_vod`),Mc=Symbol(`_vsh`),Nc={name:`show`,beforeMount(e,{value:t},{transition:n}){e[jc]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Pc(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Pc(e,!0),r.enter(e)):r.leave(e,()=>{Pc(e,!1)}):Pc(e,t))},beforeUnmount(e,{value:t}){Pc(e,t)}};function Pc(e,t){e.style.display=t?e[jc]:`none`,e[Mc]=!t}var Fc=Symbol(`CSS_VAR_TEXT`),Ic=/(?:^|;)\s*display\s*:/;function Lc(e,t,n){let r=e.style,i=E(n),a=!1;if(n&&!i){if(t){if(E(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Bc(r,t,``)}else for(let e in t)n[e]??Bc(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Bc(r,i,``):Wc(e,i,!E(t)&&t?t[i]:void 0,o)||Bc(r,i,o)}}else if(i){if(t!==n){let e=r[Fc];e&&(n+=`;`+e),r.cssText=n,a=Ic.test(n)}}else t&&e.removeAttribute(`style`);jc in e&&((!i||t!==n)&&(e[jc]=a?r.display:``),e[Mc]&&(r.display=`none`))}var Rc=/[^\\];\s*$/,zc=/\s*!important$/;function Bc(e,t,n){if(S(n))n.forEach(n=>Bc(e,t,n));else if(n??=``,Rc.test(n)&&tc(`Unexpected semicolon at the end of '${t}' style value: '${n}'`),t.startsWith(`--`))zc.test(n)?e.setProperty(t,n.replace(zc,``),`important`):e.setProperty(t,n);else{let r=Uc(e,t);zc.test(n)?e.setProperty(k(r),n.replace(zc,``),`important`):e[r]=n}}var Vc=[`Webkit`,`Moz`,`ms`],Hc={};function Uc(e,t){let n=Hc[t];if(n)return n;let r=de(t);if(r!==`filter`&&r in e)return Hc[t]=r;r=pe(r);for(let n=0;n<Vc.length;n++){let i=Vc[n]+r;if(i in e)return Hc[t]=i}return t}function Wc(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&E(r)&&n===r}var Gc=`http://www.w3.org/1999/xlink`;function Kc(e,t,n,r,i,a=Ne(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Gc,t.slice(6,t.length)):e.setAttributeNS(Gc,t,n):n==null||a&&!Pe(n)?e.removeAttribute(t):e.setAttribute(t,a?``:D(n)?String(n):n)}function qc(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?ic(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=Pe(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch(e){o||tc(`Failed setting prop "${t}" on <${a.toLowerCase()}>: value ${n} is invalid.`,e)}o&&e.removeAttribute(i||t)}function Jc(e,t,n,r){e.addEventListener(t,n,r)}function Yc(e,t,n,r){e.removeEventListener(t,n,r)}var Xc=Symbol(`_vei`);function Zc(e,t,n,r,i=null){let a=e[Xc]||(e[Xc]={}),o=a[t];if(r&&o)o.value=al(r,t);else{let[n,s]=el(t);r?Jc(e,n,a[t]=il(al(r,t),i),s):o&&(Yc(e,n,o,s),a[t]=void 0)}}var Qc=/(Once|Passive|Capture)$/,$c=/^on:?(?:Once|Passive|Capture)$/;function el(e){let t,n;for(;(n=e.match(Qc))&&!$c.test(e);)t||={},e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===`:`?e.slice(3):k(e.slice(2)),t]}var tl=0,nl=Promise.resolve(),rl=()=>tl||=(nl.then(()=>tl=0),Date.now());function il(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(S(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&Kn(e,t,5,a)}}else Kn(r,t,5,[e])};return n.value=e,n.attached=rl(),n}function al(e,t){return T(e)||S(e)?e:(tc(`Wrong type passed as event handler to ${t} - did you forget @ or : in front of your prop?
|
|
145
|
-
Expected function or array of functions, received type ${typeof e}.`),m)}var ol=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sl=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ac(e,r,o):t===`style`?Lc(e,n,r):g(t)?_(t)||Zc(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):cl(e,t,r,o))?(qc(e,t,r)
|
|
146
|
-
`))),e[pl]=ul(i);let a=r||i.props&&i.props.type===`number`;Jc(e,t?`change`:`input`,t=>{t.target.composing||e[pl](hl(e.value,n,a))}),(n||a)&&Jc(e,`change`,()=>{e.value=hl(e.value,n,a)}),t||(Jc(e,`compositionstart`,dl),Jc(e,`compositionend`,fl),Jc(e,`change`,fl))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[ml];delete e[ml],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[pl](hl(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[pl]=ul(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?ve(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},_l={deep:!0,created(e,t,n){e[pl]=ul(n),Jc(e,`change`,()=>{let t=e._modelValue,n=Cl(e),r=e.checked,i=e[pl];if(S(t)){let e=Be(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(w(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(wl(e,r))})},mounted:vl,beforeUpdate(e,t,n){e[pl]=ul(n),vl(e,t,n)}};function vl(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(S(t))i=Be(t,r.props.value)>-1;else if(w(t))i=t.has(r.props.value);else{if(t===n)return;i=ze(t,wl(e,!0))}e.checked!==i&&(e.checked=i)}var yl={created(e,{value:t},n){e.checked=ze(t,n.props.value),e[pl]=ul(n),Jc(e,`change`,()=>{e[pl](Cl(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[pl]=ul(r),t!==n&&(e.checked=ze(t,r.props.value))}},bl={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,Jc(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ve(Cl(e)):Cl(e)),r=e.multiple,i=r?w(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?S(i)?t.slice():t:i];try{e[pl](i)}finally{rr(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[pl]=ul(r)},mounted(e,{value:t}){Sl(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[pl]=ul(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!xl(t,n[1],n[0]))&&Sl(e,t)}};function xl(e,t,n){if(!n||S(e))return ze(e,t);if(w(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Sl(e,t){let n=e.multiple,r=S(t);if(n&&!r&&!w(t))tc(`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(t).slice(8,-1)}.`);else{for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=Cl(a);if(n){if(r){let e=typeof o;a.selected=e===`string`||e===`number`?t.some(e=>String(e)===String(o)):Be(t,o)>-1}else a.selected=t.has(o)}else if(ze(Cl(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Cl(e){return`_value`in e?e._value:e.value}function wl(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var Tl={created(e,t,n){Dl(e,t,n,null,`created`)},mounted(e,t,n){Dl(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Dl(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Dl(e,t,n,r,`updated`)}};function El(e,t){switch(e){case`SELECT`:return bl;case`TEXTAREA`:return gl;default:switch(t){case`checkbox`:return _l;case`radio`:return yl;default:return gl}}}function Dl(e,t,n,r,i){let a=El(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var Ol=[`ctrl`,`shift`,`alt`,`meta`],kl={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Ol.some(n=>e[`${n}Key`]&&!t.includes(n))},J=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=kl[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},Al={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},jl=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=k(n.key);if(t.some(e=>e===r||Al[e]===r))return e(n)}))},Ml=v({patchProp:sl},lc),Nl;function Pl(){return Nl||=Bo(Ml)}var Fl=((...e)=>{let t=Pl().createApp(...e);Ll(t),Rl(t);let{mount:n}=t;return t.mount=e=>{let r=zl(e);if(!r)return;let i=t._component;!T(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Il(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Il(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Ll(e){Object.defineProperty(e.config,"isNativeTag",{value:e=>Ae(e)||je(e)||Me(e),writable:!1})}function Rl(e){if(Bs()){let t=e.config.isCustomElement;Object.defineProperty(e.config,"isCustomElement",{get(){return t},set(){tc("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}});let n=e.config.compilerOptions,r='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc';Object.defineProperty(e.config,"compilerOptions",{get(){return tc(r),n},set(){tc(r)}})}}function zl(e){if(E(e)){let t=document.querySelector(e);return t||tc(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode===`closed`&&tc('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}function Bl(){$s()}Bl();var Vl=`cardbuddy:dev-service`,Hl=typeof window<`u`&&(window.__CARD_DEV_PREVIEW_BASE__||window.__CARD_DEV_OFFLINE_BASE__)||``,Ul={enabled:!1,baseUrl:`http://127.0.0.1:8787`,token:``},Wl=new Set([`localhost`,`127.0.0.1`,`[::1]`,`::1`]);function Gl(){if(typeof window>`u`||!window.location)return!1;let{protocol:e,hostname:t}=window.location;return e!==`http:`&&e!==`https:`?!1:!Wl.has(t)}function Kl(){try{let e=localStorage.getItem(Vl);if(e)return{...Ul,...JSON.parse(e)}}catch{}return Hl?{...Ul,enabled:!0,baseUrl:Hl,token:``}:{...Ul}}function ql(e){try{localStorage.setItem(Vl,JSON.stringify(e))}catch{}}function Jl(){if(Hl)return Hl.replace(/\/+$/,``);let e=Kl();return e.enabled&&e.baseUrl?e.baseUrl.replace(/\/+$/,``):Gl()?``:Ul.baseUrl}function Yl(){let e=Kl();return e.enabled&&e.token||``}async function Y(e,t={}){let n=(Jl()||``)+e,r={...t.headers||{}},i=Yl();return i&&(r[`x-dev-token`]=i),fetch(n,{...t,headers:r})}var Xl=new Map;function Zl(e){let t=Xl.get(e);if(!t){let n=Yl(),r=new EventSource(e+`/__events`+(n?`?token=`+encodeURIComponent(n):``));t={es:r,states:new Set,refs:0},Xl.set(e,t),r.onopen=()=>{for(let e of t.states)e(`open`)},r.onerror=()=>{let e=r.readyState===2?`closed`:`connecting`;for(let n of t.states)n(e)}}return t.refs++,t}function Ql(e,t){if(t.refs=Math.max(0,t.refs-1),t.refs===0&&Xl.get(e)===t){Xl.delete(e);try{t.es.close()}catch{}}}function $l(e,{hmrEvents:t=[]}={}){return function(t,n){let r=Jl(),i=e=>{typeof n==`function`&&n(e)};if(r!==null){let n=Zl(r),a=e=>{try{t(e.data?JSON.parse(e.data):{})}catch{t({})}};for(let t of e)n.es.addEventListener(t,a);return n.states.add(i),i(n.es.readyState===1?`open`:n.es.readyState===2?`closed`:`connecting`),()=>{for(let t of e)n.es.removeEventListener(t,a);n.states.delete(i),Ql(r,n)}}return()=>{}}}var eu=$l([`cards-changed`],{hmrEvents:[`cards-changed`]}),tu=$l([`code-bridge-changed`,`code-bridge-closed`]),nu=$l([`service-log`]);async function ru({limit:e=300,since:t=0}={}){let n=new URLSearchParams({limit:String(e)});t&&n.set(`since`,String(t));let r=await Y(`/__logs?`+n.toString());if(!r.ok)throw Error(`HTTP `+r.status);return r.json()}async function iu(e,t=``){let n=await Y(`/__code-bridge`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,label:t})});if(!n.ok)throw Error(`code-bridge open failed: ${n.status}`);return n.json()}async function au(e){let t=await Y(`/__code-bridge/${e}`);if(!t.ok)throw Error(`code-bridge fetch failed: ${t.status}`);return t.json()}async function ou(e){return(await Y(`/__code-bridge/${e}/heartbeat`,{method:`POST`})).ok}async function su(e){return(await Y(`/__code-bridge/${e}`,{method:`DELETE`})).ok}var cu={"@staticfile/":`/fastdfs/`,"@filestore/":`/minio/`,"@minio/":`/minio/`,"@floorstatic/":`/floorstatic/`,"@flamestore/":`/`},lu=`https://uat-pkg.finmall.com`,uu=lu.replace(/^https?:/,``),du=[...new Set([lu,lu.replace(/^https:/,`http:`),uu])];function fu(e){if(typeof e!=`string`||!e)return e;for(let t of du)if(e.startsWith(t))return e.slice(t.length)||`/`;return e}var pu=class{constructor(e={}){this.options={availableWidth:0,applyUnit:`px`,applyUnitRatio:1,fontRatio:1,styleWidth:375,apiBase:void 0,...e}}getSystemInfo(){let e=this.options;return{screenWidth:typeof window<`u`?window.innerWidth:e.styleWidth,availableWidth:e.availableWidth,applyUnit:e.applyUnit,applyUnitRatio:e.applyUnitRatio,fontRatio:e.fontRatio}}getDesignInfo(){return{styleWidth:this.options.styleWidth}}doReplaceUrl(e){if(typeof e!=`string`||/^https?:\/\//i.test(e))return e;let t=e;try{for(let e of Object.keys(cu))t=t.replace(new RegExp(e,`g`),cu[e])}catch{}let n=fu(t),r=this.options.apiBase===void 0?Jl():this.options.apiBase;return r&&typeof n==`string`&&n.startsWith(`/`)?r+n:n}doSize(e,t){if(!e&&e!==0)return``;if(e===`auto`||String(e).indexOf(`%`)>-1)return e;let n=this.getSystemInfo()||{},r=this.getDesignInfo()||{},i=String(e).replace(/[^0-9\-.]/g,``),a=1;if(n.availableWidth){t===`font`&&(a=Number(n.fontRatio||1));let e=parseFloat(n.availableWidth)/parseFloat(r.styleWidth);return parseFloat(i)*e*a+n.applyUnit}return i+n.applyUnit}doColor(e=``){let t=String(e);if(/^#[a-fA-F0-9]{8}$/.test(t)){let[e,n,r,i]=t.substring(1).match(/[a-fA-F0-9]{2}/g);return`rgba(${parseInt(n,16)}, ${parseInt(r,16)}, ${parseInt(i,16)}, ${parseInt(e,16)/100})`}return t}doRemoveUnit(e=``){return String(e).replace(/[^0-9.]/g,``)}doApplyUnit(e){return e+(this.getSystemInfo()||{}).applyUnit}doI18n(e){return e}async doRpc(){return{}}};function mu(e){if(Array.isArray(e))return e.map(mu);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=mu(e[n]);return t}return e}function hu(e){return mu(e||{})}function gu(e){if(e===null)return`null`;if(e===void 0)return`undefined`;let t=typeof e;if(t===`string`)return e;if(t===`number`||t===`boolean`||t===`bigint`)return String(e);if(t===`function`)return`[Function `+(e.name||`anonymous`)+`]`;try{return JSON.stringify(e)}catch{return String(e)}}var _u=[`customAction`,`listener`,`syncRemote`,`saveCard`,`refresh`];function vu(e,t){let n=cn(e||{}),r=cn(hu(e)),i=cn({value:0}),a=cn({value:0}),o=!1,s=cn({value:0}),c=0,l=cn({value:0}),u=[],d={adapter:t,get rootScope(){return n},get state(){return r},setRootScope(e){let t=e||{};for(let e of Object.keys(n))delete n[e];Object.assign(n,t);let i=hu(t);for(let e of Object.keys(r))delete r[e];Object.assign(r,i),this.markDirty()},reseedState(){let e=hu(n);for(let e of Object.keys(r))delete r[e];Object.assign(r,e),this.markDirty()},get revision(){return i.value},get errorRev(){return a.value},get apiRev(){return s.value},get logRev(){return l.value},errors:[],eventErrors:[],eventLogs:[],apiCalls:[],listeners:{},markDirty(){i.value++},clearErrors(){this.errors.length=0,this.eventErrors.length=0,this.eventLogs.length=0,l.value++,this.scheduleErrorBump()},clearBindingErrors(){this.errors.length=0,this.scheduleErrorBump()},clearApiCalls(){this.apiCalls.length=0,s.value++},pushLog(e,t){let n=t||[],r=n.map(e=>gu(e)).join(` `);this.eventLogs.push({level:e,text:r,args:n,t:Date.now()}),this.eventLogs.length>500&&this.eventLogs.shift(),l.value++},clearEventLogs(){this.eventLogs.length=0,l.value++},pushError(e,t){let n=_u.includes(e)?this.eventErrors:this.errors;n.push({kind:e,msg:t,t:Date.now()}),n.length>500&&n.shift(),this.scheduleErrorBump()},scheduleErrorBump(){o||(o=!0,rr(()=>{o=!1,a.value++}))},getBindingBuffer(){return u},startBindingPass(){u=[]},commitBindingPass(){let e=new Set,t=[];for(let n of u)e.has(n.msg)||(e.add(n.msg),t.push(n));this.errors.length=0;for(let e of t)this.errors.push(e);this.scheduleErrorBump()},pushApiCall(e,t){this.apiCalls.push({api:e,payload:t,t:Date.now(),id:++c}),this.apiCalls.length>500&&this.apiCalls.shift(),s.value++},removeApiCall(e){if(!e||e.id==null)return;let t=this.apiCalls.findIndex(t=>t.id===e.id);t<0||(this.apiCalls.splice(t,1),s.value++)},addEventListener(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},postMessage(e,t){let n=this.listeners[e]||[],r={data:t,type:e};n.forEach(t=>{try{t(r)}catch(t){this.pushError(`listener`,`${e}: ${t&&t.message}`)}}),this.pushApiCall(`postMessage:`+e,t)}};return $r(()=>n,()=>d.reseedState(),{deep:!0}),d}var yu=0,bu=e=>`${e}_${(++yu).toString(36)}`,xu={const:`0`,var:`1`,image:`2`},Su={Delete:`1`,Append:`2`},Cu=e=>e===void 0?e:JSON.parse(JSON.stringify(e)),wu=class e{constructor(t=[],n={}){this.id=bu(`propgroup`),this.properties=(t||[]).map(e=>new X(e)),e.setPropertyValue(this.properties,n)}static setPropertyValue(e=[],t={}){t&&e.forEach(e=>{e.itemVisible&&e.itemKey&&t[e.itemKey]!==void 0&&e.itemValueFrom===`0`&&(e.itemValue=t[e.itemKey])})}onRestore(e={},t,n,r){X.restoreProperty(e.properties||[],this.properties,t,n,r)}onPreview(e){return this.properties.reduce((t,n)=>{let r=n.onPreview(e);return r&&Object.assign(t,r),t},{})}onExport(e){return{properties:this.properties.reduce((t,n)=>{if(!e||e.itemId===n.itemId){let r=n.onExport(e&&e.child);r&&t.push(r)}return t},[])}}},X=class e{constructor(e={}){this.id=bu(`prop`);let t=Cu(e)||{};this.itemId=t.itemId,this.itemName=t.itemName,this.itemType=t.itemType,this.itemKey=t.itemKey,this.itemOption=t.itemOption||{},this.itemParam=t.itemParam||{},this.itemDefaultValue=t.itemDefaultValue===void 0?null:t.itemDefaultValue,this.itemDesc=t.itemDesc,this.itemCondition=t.itemCondition,this.itemWatch=t.itemWatch||{},this.itemTypeRange=t.itemTypeRange||`const,var`,this.itemDirection=t.itemDirection,this.itemVisible=!0,this.itemUpdated=!1,this.itemValueFrom=xu[String(this.itemTypeRange).split(/,/)[0]],this._itemValueFrom=this.itemValueFrom;let n=Cu(this.itemDefaultValue);this.itemChildren=new wu(t.itemChildren||[],n),this.itemTemplate=t.itemTemplate||t.itemList||[],this.itemList=[],!this.itemChildren.properties.length&&Object.keys(this.itemTemplate).length&&this.initItemList(n),this.initItemValue(n),this._valuesByFrom={0:void 0,1:void 0,2:void 0},this._valuesByFrom[this.itemValueFrom]=this.itemValue}initItemValue(e,t=!1){this.itemValue=this.itemValueFrom===`1`||this.itemValueFrom===`2`?t?e:``:this.itemChildren.properties.length?{}:Object.keys(this.itemTemplate).length?[]:e}initItemList(e){let t=e||[];Array.isArray(t)&&t.forEach(e=>this.addItems(e))}addItems(e,t){let n=this.itemOption?.templateField||``;if(this.itemChildren.properties.length)return;let r=e?e[n]:``,i=new wu(n?this.itemTemplate[r]||[]:this.itemTemplate||[],e||{});return t&&t(i),this.itemList.push(i),i}removeAt(e){this.itemChildren.properties.length||e>=0&&e<this.itemList.length&&this.itemList.splice(e,1)}moveItem(e,t){if(this.itemChildren.properties.length||e<0||e>=this.itemList.length||(t=Math.max(0,Math.min(this.itemList.length-1,t)),e===t))return;let[n]=this.itemList.splice(e,1);this.itemList.splice(t,0,n)}onRestore(e={},t,n={},r=[]){if(!Object.keys(e).length)return;let i=[].concat(r);i.push(this.itemId),e.itemValueFrom!==void 0&&(this.itemValueFrom=e.itemValueFrom),this.initItemValue(e.itemValue,!0),this._valuesByFrom={0:void 0,1:void 0,2:void 0},this._valuesByFrom[this.itemValueFrom]=this.itemValue,this.itemChildren.onRestore(e.itemChildren||{},t,n,i),this.itemList=[];let a=Array.isArray(e.itemValue)?e.itemValue:[];a.length||!e.itemList?a.forEach(e=>this.addItems(e||{})):Array.isArray(e.itemList)&&e.itemList.forEach(e=>{let r=this.addItems({});r&&r.onRestore(e,t,n,i)})}onPreview(e){let t={},n=e?e.paths:[],r=!!(n&&n.length),i=r?e.vars:{},a=[].concat(n||[]);return this.itemVisible&&this.itemKey&&(this.itemValueFrom===`0`?this.itemChildren.properties.length>0?(a.push(this.itemKey),t[this.itemKey]=this.itemChildren.onPreview({paths:a,vars:i})):this.itemList.length>0?(a.push(this.itemKey),t[this.itemKey]=this.itemList.map((e,t)=>{let n=[].concat(a);return n.push(t),e.onPreview({paths:n,vars:i})})):t[this.itemKey]=this.itemValue:this.itemValueFrom===`1`?(t[this.itemKey]=this.itemDefaultValue,this.itemValue&&(a.push(this.itemKey),i[a.join(`.`)]=this.itemValue)):this.itemValueFrom===`2`&&(t[this.itemKey]=this.itemValue)),r||(t.__vars__=i),t}onExport(e){if(!this.itemVisible||this.itemKey===void 0||this.itemKey===null)return;let t=this.itemChildren.onExport(e),n=this.itemList.map(t=>t.onExport(e)),r={};return this.itemValueFrom===`1`&&(r.itemDefaultValue=this.itemDefaultValue),t&&t.properties.length?r.itemChildren=t:n.length&&(r.itemList=n),{itemId:this.itemId,itemKey:this.itemKey,itemValueFrom:this.itemValueFrom,itemValue:this.itemValue,...r}}static mergePreview(e={},t={}){let n=e.__vars__,r=t.__vars__;return r?Object.assign(e,t,{__vars__:Object.assign({},n,r)}):Object.assign(e,r)}static restoreProperty(e=[],t=[],n,r={},i){if(r||={},!e.length||!t.length)return;let a={},o=(e||[]).reduce((e,t)=>{let n=t.itemId||t.itemKey;return n&&(e[n]=t,a[n]=t),e},{});for(let e=0;e<t.length;e++){let s=t[e],c=o[s.itemId]||o[s.itemKey];c?(delete a[s.itemId],delete a[s.itemKey],s.onRestore(c,n,{},i),s.itemUpdated=!0,r.restore&&r.restore(s)):n===Su.Delete&&(t.splice(e--,1),r.delete&&r.delete(s))}if(n===Su.Append)for(let e in a)r.append&&r.append(a[e],t,[].concat(i||[]))}static updatePropertyVisible(t=[]){let n=t||[],r=e._conditionData(n);n.forEach(t=>{t.itemVisible=!/\./.test(t.itemCondition)||e._conditionResult(t.itemCondition,r),e.updatePropertyVisible(t.itemChildren.properties),t.itemList.forEach(t=>e.updatePropertyVisible(t.properties))})}static _conditionData(e){return e.reduce((e,t)=>{let n=`${t.itemCondition||``}`;return n&&n.split(`.`).length%2==1&&(e[n]=t.itemValue),e},{})}static _conditionResult(e=``,t={}){let n=!0,r=e.split(`.`);for(let e=0;e<r.length-1;e+=2){let i=r.slice(0,e+1).join(`.`),a=r[e+1],o=!1;/^!/.test(a)&&(o=!0,a=a.substring(1));let s=a.split(`|`);n=!1;for(let e=0;e<s.length;e++)if(t[i]==s[e]){n=!0;break}if(o&&(n=!n),!n)break}return n}},Tu={_source:`uat-pkg.finmall.com /ubomp-h5-sub/inner_card/js/6.5c0327ab.js module 931(组件分组清单)`,_note:`metaInfo 精简版:className / name / group / style.state / style.visible / style.meta / properties / slots / events。skeleton(SVG 缩略图) 已剔除。style.state 是组件的默认样式初始值,Style.onRestore 会先用它建组,再用 schema 的 style.properties 合并覆盖。`,groups:[`布局组件`,`基础组件`],components:JSON.parse('{"Row":{"className":"Row","name":"行","group":"布局组件","styleState":{"rect":{"width":"100%"},"flex":{"gap":"4","alignItems":"center"}},"styleVisible":{"rect":true,"background":true,"flex":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"flex":{"justifyContent":{"itemName":"水平对齐"},"alignItems":{"itemName":"垂直对齐"}}},"properties":[],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Column":{"className":"Column","name":"列","group":"布局组件","styleState":{"rect":{"width":"100%"},"flex":{"gap":"4","flexDirection":"column","justifyContent":"center"}},"styleVisible":{"rect":true,"background":true,"flex":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"MultiColumn":{"className":"MultiColumn","name":"多列布局","group":"布局组件","styleState":{"rect":{"width":"100%"},"flex":{"gap":"12"}},"styleVisible":{"rect":true,"background":true,"flex":{"gap":true,"flexShrink":true},"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"ListLayout":{"className":"ListLayout","name":"列表布局","group":"布局组件","styleState":{"rect":{"width":"100%","height":"auto"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"数据源","itemKey":"value","itemTypeRange":"var","itemOption":{},"itemDefaultValue":[{},{},{},{}]},{"itemId":"006","itemName":"方向","itemKey":"direction","itemTypeRange":"const","itemType":"TabSelect","itemOption":{"iParamList":[{"key":"vertical","value":"纵向"},{"key":"horizontal","value":"横向"}]},"itemDefaultValue":"vertical"},{"itemId":"003","itemName":"元素间距","itemKey":"row-spacing","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":12},{"itemId":"005","itemName":"内边距","itemKey":"edge-insets","itemTypeRange":"const","itemType":"PaddingStyle","itemOption":{},"itemDefaultValue":"{2,2,2,2}"}],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotScope":true,"slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"GridLayout":{"className":"GridLayout","name":"网格布局","group":"布局组件","styleState":{"rect":{"width":"100%","height":"auto"}},"styleVisible":{"rect":true,"background":true,"flex":{"flexShrink":true},"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"数据源","itemKey":"value","itemTypeRange":"var","itemOption":{},"itemDefaultValue":[{},{},{},{}]},{"itemId":"002","itemName":"列数目","itemKey":"column","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":2},{"itemId":"003","itemName":"行间距","itemKey":"row-spacing","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":12},{"itemId":"004","itemName":"列间距","itemKey":"item-spacing","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":4},{"itemId":"005","itemName":"内边距","itemKey":"edge-insets","itemTypeRange":"const","itemType":"PaddingStyle","itemOption":{},"itemDefaultValue":"{2,2,2,2}"}],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotScope":true,"slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"AbsoluteLayout":{"className":"AbsoluteLayout","name":"绝对布局","group":"布局组件","styleState":{"rect":{"width":"100%","height":"100"}},"styleVisible":{"flex":{"flexShrink":true},"rect":true,"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"对齐方式","itemKey":"align","itemTypeRange":"const","itemType":"PositionStyle","itemOption":{},"itemDefaultValue":""}],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[]},"Text":{"className":"Text","name":"文本","group":"基础组件","styleState":{},"styleVisible":{"font":true,"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"rect":{"width":{"itemOption":{"iTypeList":[{"key":"percent","value":"%"},{"key":"number","value":"px"}]}}}},"properties":[{"itemId":"001","itemName":"内容","itemKey":"value","itemType":"Textarea","itemDefaultValue":"这是一个文本"},{"itemId":"002","itemName":"常用样式","itemTypeRange":"const","itemType":"CustomSelect","itemOption":{"list":[{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"黑色","style":{"fontSize":"14px","color":"#333333"}}],"sync":{"style.font.color":"#333333","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"灰色","style":{"fontSize":"14px","color":"#555555"}}],"sync":{"style.font.color":"#555555","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}},{"type":"div","innerText":"淡灰色","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"淡灰色","style":{"fontSize":"14px","color":"#999999"}}],"sync":{"style.font.color":"#999999","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"热门","style":{"fontSize":"10px","backgroundColor":"#ff0000","borderRadius":"4px","padding":"1px 5px","color":"#ffffff"}}],"sync":{"style.font.color":"#ffffff","style.font.fontWeight":"400","style.font.fontSize":"10","style.background.backgroundType":"01","style.background.backgroundColor":"#ff0000","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"4","style.padding.paddingType":"1","style.padding.paddingLeft":"5","style.padding.paddingTop":"1","style.padding.paddingRight":"5","style.padding.paddingBottom":"1"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"热销","style":{"fontSize":"10px","backgroundColor":"#ff0000","borderRadius":"100px","padding":"1px 5px","color":"#ffffff"}}],"sync":{"style.font.color":"#ffffff","style.font.fontWeight":"400","style.font.fontSize":"10","style.background.backgroundType":"01","style.background.backgroundColor":"#ff0000","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100","style.padding.paddingType":"1","style.padding.paddingLeft":"5","style.padding.paddingTop":"1","style.padding.paddingRight":"5","style.padding.paddingBottom":"1"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"理财","style":{"fontSize":"12px","backgroundColor":"#F1F4FE","borderRadius":"4px","padding":"2px 8px","color":"#90969E"}}],"sync":{"style.font.color":"#90969E","style.font.fontWeight":"400","style.font.fontSize":"12","style.background.backgroundType":"01","style.background.backgroundColor":"#F1F4FE","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"4","style.padding.paddingType":"1","style.padding.paddingLeft":"8","style.padding.paddingTop":"2","style.padding.paddingRight":"8","style.padding.paddingBottom":"2"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"存款","style":{"fontSize":"14px","border":"1px solid #8A8A8A","borderRadius":"4px","padding":"1px 4px","color":"#545356"}}],"sync":{"style.font.color":"#545356","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"1","style.border.borderWidth":"1","style.border.borderColor":"#8A8A8A","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"4","style.padding.paddingType":"1","style.padding.paddingLeft":"4","style.padding.paddingTop":"1","style.padding.paddingRight":"4","style.padding.paddingBottom":"1"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"240","style":{"fontSize":"22px","color":"#ff0000","fontWeight":"600"}}],"sync":{"style.font.color":"#ff0000","style.font.fontWeight":"600","style.font.fontSize":"22","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}}]}}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Button":{"className":"Button","name":"按钮","group":"基础组件","styleState":{"font":{"color":"#ffffff","fontSize":"16"},"background":{"backgroundType":"01","backgroundColor":"#0079f2"},"borderRadius":{"borderRadiusType":"0","borderRadius":"100"},"rect":{"width":"120","height":"40"}},"styleVisible":{"font":{"color":true,"fontSize":true,"fontWeight":true},"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"按钮文字","itemKey":"value","itemType":"Input","itemDefaultValue":"确定"},{"itemId":"002","itemName":"常用样式","itemTypeRange":"const","itemType":"CustomSelect","itemOption":{"list":[{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#fff","backgroundColor":"#0079f2"},"sync":{"style.font.color":"#ffffff","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#0079f2","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#fff","backgroundColor":"#f3464a"},"sync":{"style.font.color":"#ffffff","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#f3464a","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#0079f2","backgroundColor":"#ffffff","border":"1px solid #0079f2"},"sync":{"style.font.color":"#0079f2","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#ffffff","style.border.isBorder":"1","style.border.borderWidth":"1","style.border.borderStyle":"solid","style.border.borderColor":"#0079f2","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#555","backgroundColor":"#f0ead2"},"sync":{"style.font.color":"#555555","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#f0ead2","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#f3474b","backgroundColor":"#fff0f1"},"sync":{"style.font.color":"#f3474b","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#fff0f1","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#9a9a9a","backgroundColor":"#e6e6e6"},"sync":{"style.font.color":"#9a9a9a","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#e6e6e6","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","fontSize":"15px","marginRight":"8px","cursor":"pointer","color":"#0079F2"},"sync":{"style.font.color":"#0079F2","style.font.fontSize":"15","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.rect.width":"100%","style.rect.height":"40"}}]}},{"itemId":"003","itemName":"禁用按钮","itemKey":"disabled","itemTypeRange":"const,var","itemType":"BooleanForm","itemOption":{"activeText":"启用","inactiveText":"禁用"},"itemDefaultValue":false}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Image":{"className":"Image","name":"图片","group":"基础组件","styleState":{"rect":{"width":"72","height":"72"}},"styleVisible":{"image":true,"flex":{"flexShrink":true},"rect":true,"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"rect":{"width":{"itemOption":{"iTypeList":[{"key":"percent","value":"%"},{"key":"number","value":"px"}]}}}},"properties":[{"itemId":"001","itemName":"图片地址","itemKey":"value","itemTypeRange":"image,var","itemDefaultValue":""}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Icon":{"className":"Icon","name":"图标","group":"基础组件","styleState":{"rect":{"width":"32","height":"32"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"rect":{"width":{"itemOption":{"iTypeList":[{"key":"number","value":"px"},{"key":"percent","value":"%"}]}},"height":{"itemOption":{"iTypeList":[{"key":"number","value":"px"}]}}}},"properties":[{"itemId":"001","itemName":"图标","itemKey":"icon","itemTypeRange":"const,var","itemType":"IconSelect","itemOption":{"type":"svg","width":"16","height":"16","image":"/ubomp-h5-sub/inner_card/svg/svg-symbols.9f0f35b.svg","iIconList":[{"key":"sousuo","value":"sousuo","name":"sousuo"},{"key":"gengduo","value":"gengduo","name":"gengduo"},{"key":"saoyisao","value":"saoyisao","name":"saoyisao"},{"key":"shanchu","value":"shanchu","name":"shanchu"},{"key":"shaixuan","value":"shaixuan","name":"shaixuan"},{"key":"shezhi","value":"shezhi","name":"shezhi"},{"key":"shengyin","value":"shengyin","name":"shengyin"},{"key":"shengyinguanbi","value":"shengyinguanbi","name":"shengyinguanbi"},{"key":"aixin","value":"aixin","name":"aixin"},{"key":"aixin_1","value":"aixin_1","name":"aixin_1"},{"key":"shoucang","value":"shoucang","name":"shoucang"},{"key":"shoucang_1","value":"shoucang_1","name":"shoucang_1"},{"key":"dianzan","value":"dianzan","name":"dianzan"},{"key":"dianzan_1","value":"dianzan_1","name":"dianzan_1"},{"key":"yanjing","value":"yanjing","name":"yanjing"},{"key":"yanjing_1","value":"yanjing_1","name":"yanjing_1"},{"key":"yanjing_hide","value":"yanjing_hide","name":"yanjing_hide"},{"key":"zengjia","value":"zengjia","name":"zengjia"},{"key":"zengjia_1","value":"zengjia_1","name":"zengjia_1"},{"key":"xiangji","value":"xiangji","name":"xiangji"},{"key":"xiangji_1","value":"xiangji_1","name":"xiangji_1"},{"key":"chenggong","value":"chenggong","name":"chenggong"},{"key":"chenggong_1","value":"chenggong_1","name":"chenggong_1"},{"key":"shibai","value":"shibai","name":"shibai"},{"key":"shibai_1","value":"shibai_1","name":"shibai_1"},{"key":"shijian","value":"shijian","name":"shijian"},{"key":"shijian_1","value":"shijian_1","name":"shijian_1"},{"key":"dianhua","value":"dianhua","name":"dianhua"},{"key":"dianhua_1","value":"dianhua_1","name":"dianhua_1"},{"key":"angle_left","value":"angle_left","name":"angle_left"},{"key":"angle_right","value":"angle_right","name":"angle_right"},{"key":"angle_up","value":"angle_up","name":"angle_up"},{"key":"angle_down","value":"angle_down","name":"angle_down"},{"key":"arrow_left","value":"arrow_left","name":"arrow_left"},{"key":"arrow_right","value":"arrow_right","name":"arrow_right"},{"key":"long_arrow_up","value":"long_arrow_up","name":"long_arrow_up"},{"key":"long_arrow_down","value":"long_arrow_down","name":"long_arrow_down"},{"key":"caret_left","value":"caret_left","name":"caret_left"},{"key":"caret_right","value":"caret_right","name":"caret_right"},{"key":"sort_up","value":"sort_up","name":"sort_up"},{"key":"sort_down","value":"sort_down","name":"sort_down"},{"key":"ditu","value":"ditu","name":"ditu"},{"key":"fuzhi","value":"fuzhi","name":"fuzhi"},{"key":"check","value":"check","name":"check"},{"key":"times","value":"times","name":"times"},{"key":"weixuanzhong","value":"weixuanzhong","name":"weixuanzhong"},{"key":"switch","value":"switch","name":"switch"},{"key":"tanhao","value":"tanhao","name":"tanhao"},{"key":"tanhao_1","value":"tanhao_1","name":"tanhao_1"},{"key":"jianshao","value":"jianshao","name":"jianshao"},{"key":"jianshao_1","value":"jianshao_1","name":"jianshao_1"},{"key":"pinglun","value":"pinglun","name":"pinglun"},{"key":"pinglun_1","value":"pinglun_1","name":"pinglun_1"},{"key":"shandian","value":"shandian","name":"shandian"},{"key":"shandian_1","value":"shandian_1","name":"shandian_1"},{"key":"shequ","value":"shequ","name":"shequ"},{"key":"shequ_1","value":"shequ_1","name":"shequ_1"},{"key":"shouji","value":"shouji","name":"shouji"},{"key":"shouji_1","value":"shouji_1","name":"shouji_1"},{"key":"shouye","value":"shouye","name":"shouye"},{"key":"shouye_1","value":"shouye_1","name":"shouye_1"},{"key":"shuju","value":"shuju","name":"shuju"},{"key":"shuju_1","value":"shuju_1","name":"shuju_1"},{"key":"wode","value":"wode","name":"wode"},{"key":"wode_1","value":"wode_1","name":"wode_1"},{"key":"yingchengka","value":"yingchengka","name":"yingchengka"},{"key":"yingchengka_1","value":"yingchengka_1","name":"yingchengka_1"},{"key":"yinhangka","value":"yinhangka","name":"yinhangka"},{"key":"yinhangyouhui","value":"yinhangyouhui","name":"yinhangyouhui"},{"key":"youhuiquan","value":"youhuiquan","name":"youhuiquan"},{"key":"youhuiquan_1","value":"youhuiquan_1","name":"youhuiquan_1"},{"key":"tuipiao","value":"tuipiao","name":"tuipiao"},{"key":"yulebao","value":"yulebao","name":"yulebao"},{"key":"anquan","value":"anquan","name":"anquan"},{"key":"bangzhu","value":"bangzhu","name":"bangzhu"},{"key":"bianji","value":"bianji","name":"bianji"},{"key":"bofangjilu","value":"bofangjilu","name":"bofangjilu"},{"key":"buganxingqu","value":"buganxingqu","name":"buganxingqu"},{"key":"chuangzuo","value":"chuangzuo","name":"chuangzuo"},{"key":"diantong_guan","value":"diantong_guan","name":"diantong_guan"},{"key":"dianying","value":"dianying","name":"dianying"},{"key":"dianyingpiao","value":"dianyingpiao","name":"dianyingpiao"},{"key":"dingdan","value":"dingdan","name":"dingdan"},{"key":"dingwei","value":"dingwei","name":"dingwei"},{"key":"faxian","value":"faxian","name":"faxian"},{"key":"fenxiang","value":"fenxiang","name":"fenxiang"},{"key":"gonggao","value":"gonggao","name":"gonggao"},{"key":"huati","value":"huati","name":"huati"},{"key":"huiyuan","value":"huiyuan","name":"huiyuan"},{"key":"lihe","value":"lihe","name":"lihe"},{"key":"mima","value":"mima","name":"mima"},{"key":"nan","value":"nan","name":"nan"},{"key":"nv","value":"nv","name":"nv"},{"key":"paihangbang","value":"paihangbang","name":"paihangbang"},{"key":"pengyouquan","value":"pengyouquan","name":"pengyouquan"},{"key":"remen","value":"remen","name":"remen"},{"key":"rili","value":"rili","name":"rili"},{"key":"search_minus","value":"search_minus","name":"search_minus"},{"key":"search_plus","value":"search_plus","name":"search_plus"},{"key":"shangchuan","value":"shangchuan","name":"shangchuan"},{"key":"shuaxin","value":"shuaxin","name":"shuaxin"},{"key":"taolunqu","value":"taolunqu","name":"taolunqu"},{"key":"tishi","value":"tishi","name":"tishi"},{"key":"tupian","value":"tupian","name":"tupian"},{"key":"weixin","value":"weixin","name":"weixin"},{"key":"wenda","value":"wenda","name":"wenda"},{"key":"wenjuan","value":"wenjuan","name":"wenjuan"},{"key":"wifi","value":"wifi","name":"wifi"},{"key":"wodeguanzhu","value":"wodeguanzhu","name":"wodeguanzhu"},{"key":"xiangkan","value":"xiangkan","name":"xiangkan"},{"key":"xiaoxi","value":"xiaoxi","name":"xiaoxi"},{"key":"xiaoxizhongxin","value":"xiaoxizhongxin","name":"xiaoxizhongxin"},{"key":"xiazai","value":"xiazai","name":"xiazai"},{"key":"yixiangkan","value":"yixiangkan","name":"yixiangkan"},{"key":"zhibo","value":"zhibo","name":"zhibo"},{"key":"zhiwen","value":"zhiwen","name":"zhiwen"}]},"itemDefaultValue":"angle_right"},{"itemId":"002","itemName":"图标颜色","itemKey":"color","itemTypeRange":"const,var","itemType":"Color","itemDefaultValue":"#a5afbc"},{"itemId":"003","itemName":"自定义图标","itemKey":"content","itemTypeRange":"const,var","itemType":"Textarea","itemOption":{"placeholder":"请输入svg文件内容","autosize":{"minRows":1,"maxRows":4}},"itemDefaultValue":""}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"MultiText":{"className":"MultiText","name":"多文本","group":"基础组件","styleState":{},"styleVisible":{"font":{"lineHeight":true,"textAlign":true},"rect":true,"flex":{"justifyContent":true,"alignItems":true,"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"文本列表","itemKey":"textList","itemTypeRange":"const","itemType":"List","itemOption":{"type":"editor","iFieldList":[{"key":"value","value":"内容"},{"key":"color","value":"颜色"},{"key":"fontSize","value":"大小"}],"btnText":"添加文本"},"itemDefaultValue":[{"value":"这是一个文本"}],"itemList":[{"itemId":"001","itemName":"文本内容","itemKey":"value","itemTypeRange":"const,var","itemType":"Input","itemDefaultValue":"这是一个文本"},{"itemId":"002","itemName":"字体颜色","itemKey":"color","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#000000"},{"itemId":"003","itemName":"字体大小","itemKey":"fontSize","itemTypeRange":"const","itemType":"InputNumber","itemOption":{"mode-mini":{"style":{"width":"50px"}}},"itemDefaultValue":"14"},{"itemId":"004","itemName":"字体权重","itemKey":"fontWeight","itemTypeRange":"const","itemType":"TabSelect","itemOption":{"size":"mini","iParamList":[{"key":"400","value":"常规"},{"key":"500","value":"中等"},{"key":"600","value":"加粗"}]},"itemDefaultValue":"400"},{"itemId":"005","itemName":"字体样式","itemKey":"fontStyle","itemTypeRange":"const","itemType":"FontStyle","itemOption":{},"itemDefaultValue":"normal"},{"itemId":"006","itemName":"字体样式","itemKey":"textDecoration","itemTypeRange":"const","itemType":"TextDecorationStyle","itemOption":{},"itemDefaultValue":"none"},{"itemId":"007","itemName":"字体背景色","itemKey":"backgroundColor","itemTypeRange":"const","itemType":"Color","itemOption":{},"itemDefaultValue":""},{"itemId":"008","itemName":"事件标识码","itemKey":"tag","itemTypeRange":"const","itemType":"Input","itemOption":{"placeholder":"用于点击事件中区分不同文本"},"itemDefaultValue":""}]}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Canvas":{"className":"Canvas","name":"画布","group":"基础组件","styleState":{"rect":{"width":"100%"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[],"slots":[],"events":[{"eventName":"初始化渲染","eventKey":"onMeasured","includes":["customAction"]}]},"Input":{"className":"Input","name":"输入框","group":"基础组件","styleState":{"rect":{"width":"100%","height":"35"},"background":{"backgroundType":"01","backgroundColor":"#FFFFFF"}},"styleVisible":{"font":{"textAlign":true,"fontSize":true,"fontWeight":true,"color":true},"flex":{"flexShrink":true},"rect":true,"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"占位符","itemKey":"placeholder","itemTypeRange":"const,var","itemType":"Input","itemDefaultValue":"请输入"},{"itemId":"003","itemName":"类型","itemKey":"inputType","itemTypeRange":"const,var","itemType":"Select","itemOption":{"iParamList":[{"key":"text","value":"普通文本"},{"key":"number","value":"数字"},{"key":"email","value":"邮箱"},{"key":"password","value":"密码"},{"key":"phone","value":"手机号"}]},"itemDefaultValue":"text"},{"itemId":"004","itemName":"最大长度","itemKey":"maxLength","itemTypeRange":"const,var","itemType":"InputNumber","itemOption":{"type":"+integer"},"itemDefaultValue":""}],"slots":[],"events":[]},"CheckGroup":{"className":"CheckGroup","name":"复选框","group":"基础组件","styleState":{},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"选项列表","itemKey":"dataList","itemTypeRange":"const,var","itemType":"List","itemOption":{"type":"text","showHeader":false,"iFieldList":[{"value":"选项名称","key":"desc"}],"replace":{"101":"${index}","102":"选项${index}"}},"itemList":[{"itemId":"101","itemName":"选项键","itemKey":"key","itemTypeRange":"const","itemType":"Input","itemDefaultValue":"1"},{"itemId":"102","itemName":"选项值","itemKey":"desc","itemTypeRange":"const","itemType":"Input","itemDefaultValue":"选项"}],"itemDefaultValue":[{"key":"1","desc":"选项1"},{"key":"2","desc":"选项2"}]},{"itemId":"003","itemName":"选中颜色","itemKey":"selectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#0082ff"},{"itemId":"004","itemName":"未选中颜色","itemKey":"unSelectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#333333"},{"itemId":"005","itemName":"样式类型","itemKey":"buttonStyle","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"Circle","value":"圆形"},{"key":"Square","value":"实心正方形"},{"key":"SquareEmpty","value":"空心正方形"},{"key":"Text","value":"纯文本"}]},"itemDefaultValue":"Circle"},{"itemId":"006","itemName":"选中数量限制","itemKey":"maxSelectCount","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"0","value":"不限制"},{"key":"1","value":"1个"},{"key":"2","value":"2个"},{"key":"3","value":"3个"}]},"itemDefaultValue":"0"},{"itemId":"007","itemName":"排列方向","itemKey":"direction","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"horizontal","value":"水平"},{"key":"vertical","value":"垂直"}]},"itemDefaultValue":"horizontal"},{"itemId":"008","itemName":"选项内边距","itemKey":"itemPadding","itemTypeRange":"const","itemType":"PaddingStyle","itemOption":{"normal":true,"seperator":" ","brackets":[]},"itemDefaultValue":"4 10 4 10"},{"itemId":"009","itemName":"选项间距","itemKey":"itemSpacing","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"4"},{"itemId":"010","itemName":"文字图标间距","itemKey":"textSpacing","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"3"},{"itemId":"011","itemName":"字体大小","itemKey":"fontSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"13"},{"itemId":"012","itemName":"icon大小","itemKey":"iconSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"14"}],"slots":[],"events":[{"eventKey":"selectChange","eventName":"选项发生改变"}]},"RadioButton":{"className":"RadioButton","name":"单选框","group":"基础组件","styleState":{},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"选中颜色","itemKey":"selectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#0082ff"},{"itemId":"003","itemName":"未选中颜色","itemKey":"unSelectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#333333"},{"itemId":"004","itemName":"样式类型","itemKey":"buttonStyle","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"Circle","value":"圆形"},{"key":"CircleEmpty","value":"空心圆形"}]},"itemDefaultValue":"Circle"},{"itemId":"005","itemName":"文字图标间距","itemKey":"textSpacing","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"3"},{"itemId":"006","itemName":"字体大小","itemKey":"fontSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"14"},{"itemId":"007","itemName":"icon大小","itemKey":"iconSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"14"},{"itemId":"008","itemName":"显示文字","itemKey":"showText","itemTypeRange":"const","itemType":"Switcher","itemDefaultValue":"1","itemCondition":"showText"},{"itemId":"009","itemName":"文字内容","itemKey":"text","itemTypeRange":"const,var","itemType":"Input","itemDefaultValue":"选项","itemCondition":"showText.1"}],"slots":[],"events":[{"eventKey":"selectChange","eventName":"选项发生改变"}]},"ProgressSlider":{"className":"ProgressSlider","name":"滑块","group":"基础组件","styleState":{"rect":{"width":"100%"},"other":{"overflow":"visible"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"other":true,"margin":true,"transform":true},"styleMeta":{"other":{"overflow":{"itemOption":{"iParamList":[{"key":"visible","value":"可见"}]}}}},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"最小值","itemTypeRange":"const,var","itemKey":"minProgress","itemType":"InputNumber","itemDefaultValue":"0"},{"itemId":"003","itemName":"最大值","itemTypeRange":"const,var","itemKey":"maxProgress","itemType":"InputNumber","itemDefaultValue":"100"},{"itemId":"004","itemName":"步长","itemTypeRange":"const,var","itemKey":"step","itemType":"InputNumber","itemDefaultValue":"1"},{"itemId":"005","itemName":"背景色","itemTypeRange":"const,var","itemKey":"backgroundColor","itemType":"Color","itemDefaultValue":"#e6e6e6"},{"itemId":"006","itemName":"前景色","itemTypeRange":"const,var","itemKey":"foregroundColor","itemType":"Color","itemDefaultValue":"#0a59f5"},{"itemId":"007","itemName":"高度","itemTypeRange":"const,var","itemKey":"processHeight","itemType":"InputNumber","itemDefaultValue":"5"},{"itemId":"008","itemName":"滑块样式","itemTypeRange":"const,var","itemKey":"blockStyle","itemType":"Select","itemOption":{"iParamList":[{"key":"circle","value":"纯色圆"},{"key":"image","value":"图片"}]},"itemDefaultValue":"circle","itemCondition":"blockStyle"},{"itemId":"009","itemName":"滑块颜色","itemTypeRange":"const,var","itemKey":"blockColor","itemType":"Color","itemDefaultValue":"#ffffff","itemCondition":"blockStyle.circle"},{"itemId":"010","itemName":"滑块背景图","itemTypeRange":"image,var","itemKey":"blockImage","itemDefaultValue":"","itemCondition":"blockStyle.image"},{"itemId":"011","itemName":"滑块宽","itemTypeRange":"const,var","itemKey":"blockWidth","itemType":"InputNumber","itemDefaultValue":"15"},{"itemId":"012","itemName":"滑块高","itemTypeRange":"const,var","itemKey":"blockHeight","itemType":"InputNumber","itemDefaultValue":"15"}],"slots":[],"events":[{"eventName":"值改变事件","eventKey":"change"}]},"Video":{"className":"Video","name":"视频","group":"基础组件","styleState":{},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"视频地址","itemKey":"url","itemTypeRange":"image,var","itemDefaultValue":""},{"itemId":"002","itemName":"视频封面","itemKey":"previewUrl","itemTypeRange":"image,var","itemDefaultValue":""}],"slots":[],"events":[]},"Map":{"className":"Map","name":"地图","group":"基础组件","styleState":{"rect":{"width":"100%","height":"100"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"borderRadius":true,"border":true,"shadow":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"中心经度Lat","itemKey":"centerLat","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"002","itemName":"中心纬度Lng","itemKey":"centerLng","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"003","itemName":"缩放比","itemKey":"zoom","itemType":"InputNumber","itemOption":{"type":"+integer"},"itemDefaultValue":""},{"itemId":"004","itemName":"标记点经度Lat","itemKey":"markerLat","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"005","itemName":"标记点纬度Lng","itemKey":"markerLng","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"006","itemName":"标记点名称","itemKey":"markerName","itemTypeRange":"const,var","itemType":"Input","itemOption":{"placeholder":"请输入标记点名称"},"itemDefaultValue":""}],"slots":[],"events":[]},"Divider":{"className":"Divider","name":"分割线","group":"基础组件","styleState":{"rect":{"width":"100%","height":"1"},"background":{"backgroundType":"01","backgroundColor":"#f1f1f1"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"margin":true},"styleMeta":{},"properties":[],"slots":[],"events":[]},"ViewContainer":{"className":"ViewContainer","name":"自定义","group":"基础组件","styleState":{"rect":{"width":"100%","height":"auto"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"padding":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"自定义类","itemKey":"customClass","itemTypeRange":"const","itemType":"Input","itemDefaultValue":""},{"itemId":"002","itemName":"自定义属性","itemKey":"customProps","itemTypeRange":"var","itemDefaultValue":{}},{"itemId":"003","itemName":"占位图","itemKey":"customRemarkImg","itemTypeRange":"image","itemDefaultValue":{}}],"slots":[],"events":[{"eventName":"动作事件","eventKey":"action"}]}}')},Eu={properties:[{itemId:`1100`,itemName:`字体`,itemKey:`font`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`字体颜色`,itemKey:`color`,itemTypeRange:`const,var`,itemType:`Color`,itemDefaultValue:``},{itemId:`002`,itemName:`字体大小`,itemKey:`fontSize`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{type:`+integer`,iParamList:[{key:`12`,value:`12px`},{key:`14`,value:`14px`},{key:`16`,value:`16px`},{key:`18`,value:`18px`},{key:`20`,value:`20px`},{key:`22`,value:`22px`},{key:`24`,value:`24px`}]},itemDefaultValue:`14`},{itemId:`007`,itemName:`行高`,itemKey:`lineHeight`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`003`,itemName:`对齐`,itemKey:`textAlign`,itemTypeRange:`const,var`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`left`,value:`左`},{key:`center`,value:`中`},{key:`right`,value:`右`}]},itemDefaultValue:`left`},{itemId:`004`,itemName:`字体权重`,itemKey:`fontWeight`,itemTypeRange:`const,var`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`400`,value:`常规`},{key:`500`,value:`中等`},{key:`600`,value:`加粗`}]},itemDefaultValue:`400`},{itemId:`008`,itemName:`字体样式`,itemKey:`fontStyle`,itemTypeRange:`const`,itemType:`FontStyle`,itemOption:{},itemDefaultValue:`normal`},{itemId:`009`,itemName:`字体修饰`,itemKey:`textDecoration`,itemTypeRange:`const`,itemType:`TextDecorationStyle`,itemOption:{},itemDefaultValue:`none`},{itemId:`005`,itemName:`最大行数`,itemKey:`isMaxLine`,itemTypeRange:`const`,itemType:`Switcher`,itemOption:{},itemDefaultValue:`0`,itemCondition:`isMaxLine`},{itemId:`006`,itemName:`最大行数`,itemKey:`maxLine`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:`1`,itemCondition:`isMaxLine.1`}]},{itemId:`1200`,itemName:`图片`,itemKey:`image`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`裁剪模式`,itemKey:`cropMode`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`00`,value:`铺满缩放`},{key:`01`,value:`填充缩放`}]},itemDefaultValue:`00`}]},{itemId:`1300`,itemName:`定位`,itemKey:`position`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`左偏移`,itemKey:`left`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`002`,itemName:`上偏移`,itemKey:`top`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`003`,itemName:`右偏移`,itemKey:`right`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`004`,itemName:`下偏移`,itemKey:`bottom`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``}]},{itemId:`100`,itemName:`布局`,itemKey:`flex`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`006`,itemName:`排列方向`,itemKey:`flexDirection`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`row`,value:`横向`},{key:`column`,value:`竖向`}]},itemDefaultValue:`row`},{itemId:`001`,itemName:`水平对齐`,itemKey:`justifyContent`,itemTypeRange:`const`,itemType:`JustifyContentStyle`,itemOption:{rowName:`水平对齐`,columnName:`垂直对齐`},itemDefaultValue:`flex-start`,itemWatch:{flexDirection:`flexDirection`}},{itemId:`002`,itemName:`垂直对齐`,itemKey:`alignItems`,itemTypeRange:`const`,itemType:`AlignItemsStyle`,itemOption:{rowName:`垂直对齐`,columnName:`水平对齐`},itemDefaultValue:`stretch`,itemWatch:{flexDirection:`flexDirection`}},{itemId:`003`,itemName:`元素间距`,itemKey:`gap`,itemTypeRange:`const`,itemType:`Select`,itemOption:{iParamList:[{key:`0`,value:`0px`},{key:`4`,value:`4px`},{key:`8`,value:`8px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`},{key:`20`,value:`20px`},{key:`24`,value:`24px`},{key:`28`,value:`28px`}]},itemDefaultValue:``},{itemId:`005`,itemName:`空间不足时压缩节点`,itemKey:`flexShrink`,itemTypeRange:`const`,itemType:`Switcher`,itemOption:{},itemDefaultValue:`1`}]},{itemId:`200`,itemName:`矩形`,itemKey:`rect`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`003`,itemName:`宽度`,itemKey:`width`,itemTypeRange:`const,var`,itemType:`NumberStyle`,itemOption:{},itemDefaultValue:``},{itemId:`004`,itemName:`高度`,itemKey:`height`,itemTypeRange:`const,var`,itemType:`NumberStyle`,itemOption:{iTypeList:[{key:`number`,value:`px`},{key:`auto`,value:`@`}]},itemDefaultValue:`auto`}]},{itemId:`300`,itemName:`背景`,itemKey:`background`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`背景`,itemKey:`backgroundType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`00`,value:`透明`},{key:`01`,value:`颜色`},{key:`02`,value:`图片`},{key:`03`,value:`渐变色`}]},itemDefaultValue:`00`,itemCondition:`backgroundType`},{itemId:`002`,itemName:`背景颜色`,itemKey:`backgroundColor`,itemTypeRange:`const,var`,itemType:`Color`,itemDefaultValue:``,itemCondition:`backgroundType.01`},{itemId:`003`,itemName:`背景图片`,itemKey:`backgroundImage`,itemTypeRange:`image,var`,itemOption:{},itemDefaultValue:``,itemCondition:`backgroundType.02`},{itemId:`004`,itemName:`背景图位置`,itemKey:`backgroundPosition`,itemTypeRange:`const,var`,itemType:`BackgroundPositionStyle`,itemOption:{},itemDefaultValue:`50% 50%`,itemCondition:`backgroundType.02`},{itemId:`005`,itemName:`背景图大小`,itemKey:`backgroundSize`,itemTypeRange:`const,var`,itemType:`BackgroundSizeStyle`,itemOption:{},itemDefaultValue:`cover`,itemCondition:`backgroundType.02`},{itemId:`006`,itemName:`背景图重复`,itemKey:`backgroundRepeat`,itemTypeRange:`const,var`,itemType:`Select`,itemOption:{iParamList:[{key:`no-repeat`,value:`不重复`},{key:`repeat`,value:`重复图片`},{key:`repeat-x`,value:`水平重复`},{key:`repeat-y`,value:`垂直重复`}]},itemDefaultValue:`no-repeat`,itemCondition:`backgroundType.02`},{itemId:`007`,itemName:`背景渐变`,itemKey:`backgroundGradient`,itemTypeRange:`const,var`,itemType:`GradientStyle`,itemOption:{},itemDefaultValue:``,itemCondition:`backgroundType.03`}]},{itemId:`400`,itemName:`内边距`,itemKey:`padding`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`内边距`,itemKey:`paddingType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:``,value:`无`},{key:`0`,value:`全边`},{key:`1`,value:`自定义`}]},itemDefaultValue:``,itemCondition:`paddingType`},{itemId:`002`,itemName:`内边距`,itemKey:`padding`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{iParamList:[{key:`0`,value:`0px`},{key:`2`,value:`2px`},{key:`4`,value:`4px`},{key:`8`,value:`8px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`},{key:`20`,value:`20px`},{key:`24`,value:`24px`},{key:`28`,value:`28px`}]},itemDefaultValue:``,itemCondition:`paddingType.0`},{itemId:`003`,itemName:`内左边距`,itemKey:`paddingLeft`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`},{itemId:`004`,itemName:`内上边距`,itemKey:`paddingTop`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`},{itemId:`005`,itemName:`内右边距`,itemKey:`paddingRight`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`},{itemId:`006`,itemName:`内下边距`,itemKey:`paddingBottom`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`}]},{itemId:`500`,itemName:`外边距`,itemKey:`margin`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`外边距`,itemKey:`marginType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:``,value:`无`},{key:`0`,value:`全边`},{key:`1`,value:`自定义`}]},itemDefaultValue:``,itemCondition:`marginType`},{itemId:`002`,itemName:`外边距`,itemKey:`margin`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{iParamList:[{key:`0`,value:`0px`},{key:`2`,value:`2px`},{key:`4`,value:`4px`},{key:`8`,value:`8px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`},{key:`20`,value:`20px`},{key:`24`,value:`24px`},{key:`28`,value:`28px`}]},itemDefaultValue:``,itemCondition:`marginType.0`},{itemId:`003`,itemName:`外左边距`,itemKey:`marginLeft`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`},{itemId:`004`,itemName:`外上边距`,itemKey:`marginTop`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`},{itemId:`005`,itemName:`外右边距`,itemKey:`marginRight`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`},{itemId:`006`,itemName:`外下边距`,itemKey:`marginBottom`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`}]},{itemId:`600`,itemName:`圆角`,itemKey:`borderRadius`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`圆角`,itemKey:`borderRadiusType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:``,value:`无`},{key:`0`,value:`全角`},{key:`1`,value:`自定义`}]},itemDefaultValue:``,itemCondition:`borderRadiusType`},{itemId:`002`,itemName:`圆角`,itemKey:`borderRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{type:`+integer`,iParamList:[{key:`0`,value:`0px`},{key:`4`,value:`4px`},{key:`6`,value:`6px`},{key:`8`,value:`8px`},{key:`10`,value:`10px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`}]},itemDefaultValue:``,itemCondition:`borderRadiusType.0`},{itemId:`003`,itemName:`圆角上左`,itemKey:`borderTopLeftRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`},{itemId:`004`,itemName:`圆角上右`,itemKey:`borderTopRightRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`},{itemId:`005`,itemName:`圆角下右`,itemKey:`borderBottomRightRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`},{itemId:`006`,itemName:`圆角下左`,itemKey:`borderBottomLeftRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`}]},{itemId:`700`,itemName:`边框`,itemKey:`border`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`边框`,itemKey:`isBorder`,itemTypeRange:`const`,itemType:`Switcher`,itemOption:{},itemDefaultValue:`0`,itemCondition:`isBorder`},{itemId:`002`,itemName:`边框宽度`,itemKey:`borderWidth`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:`1`,itemCondition:`isBorder.1`},{itemId:`003`,itemName:`边框样式`,itemKey:`borderStyle`,itemTypeRange:`const,var`,itemType:`Select`,itemOption:{iParamList:[{key:`solid`,value:`solid`},{key:`dashed`,value:`dashed`},{key:`dotted`,value:`dotted`}]},itemDefaultValue:`solid`,itemCondition:`isBorder.1`},{itemId:`004`,itemName:`边框颜色`,itemKey:`borderColor`,itemTypeRange:`const,var`,itemType:`Color`,itemOption:{},itemDefaultValue:`#e7e7ee`,itemCondition:`isBorder.1`}]},{itemId:`800`,itemName:`阴影`,itemKey:`shadow`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`阴影`,itemKey:`isShadow`,itemTypeRange:`const`,itemType:`Switcher`,itemDefaultValue:`0`,itemCondition:`isShadow`},{itemId:`002`,itemName:`阴影颜色`,itemKey:`shadowColor`,itemTypeRange:`const`,itemType:`Color`,itemDefaultValue:`#e7e7ee`,itemCondition:`isShadow.1`},{itemId:`003`,itemName:`x偏移`,itemKey:`shadowX`,itemTypeRange:`const`,itemType:`InputNumber`,itemDefaultValue:`0`,itemCondition:`isShadow.1`},{itemId:`004`,itemName:`y偏移`,itemKey:`shadowY`,itemTypeRange:`const`,itemType:`InputNumber`,itemDefaultValue:`0`,itemCondition:`isShadow.1`},{itemId:`005`,itemName:`阴影模糊`,itemKey:`shadowBlur`,itemTypeRange:`const`,itemType:`InputNumber`,itemDefaultValue:``,itemCondition:`isShadow.1`},{itemId:`006`,itemName:`阴影拓展`,itemKey:`shadowSpread`,itemType:`InputNumber`,itemTypeRange:`const`,itemDefaultValue:``,itemCondition:`isShadow.1`}]},{itemId:`900`,itemName:`转换`,itemKey:`transform`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`旋转`,itemKey:`rotate`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{symbol:`deg`,type:`integer`},itemDefaultValue:``}]},{itemId:`1000`,itemName:`高级`,itemKey:`other`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`002`,itemName:`溢出`,itemKey:`overflow`,itemTypeRange:`const`,itemType:`Select`,itemOption:{iParamList:[{key:`hidden`,value:`隐藏`},{key:`visible`,value:`可见`}]},itemDefaultValue:`hidden`},{itemId:`001`,itemName:`不透明度`,itemKey:`opacity`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{symbol:`%`,type:`+integer`},itemDefaultValue:``}]}]},Du={_source:`c9.6a9947d5.js module (directives meta)`,properties:[{itemId:`001`,itemName:`显示条件`,itemDesc:``,itemTypeRange:`const`,itemType:`Group`,itemKey:`v-show`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`显隐设置`,itemType:`Select`,itemKey:`showType`,itemOption:{iParamList:[{key:`00`,value:`始终显示`},{key:`01`,value:`满足条件显示`},{key:`02`,value:`满足条件隐藏`}]},itemDefaultValue:`00`,itemCondition:`showType`},{itemId:`002`,itemName:`具体条件`,itemType:`IfForm`,itemKey:`condition`,itemOption:{},itemDefaultValue:{},itemCondition:`showType.01|02`}]}]},Ou=e=>e===void 0?e:JSON.parse(JSON.stringify(e)),ku=0,Au=e=>`${e}_${(++ku).toString(36)}`,ju=Tu.components||{},Mu=Eu.properties||[],Nu={};(function e(t,n=[],r=[]){t.forEach(t=>{let i=n.concat(t.itemId),a=r.concat(t.itemKey);Nu[i.join(`|`)]=t,Nu[a.join(`.`)]=t,t.itemChildren&&e(t.itemChildren,i,a)})})(Mu);var Pu=Du.properties||[],Fu=class{constructor(e={}){this.id=Au(`style`),this.state=Object.assign({},e.state||{}),this.visible=e.visible||{},this.meta=e.meta||{},this.properties=[],this.parseStateProperties(this.state,this.properties)}parseStateProperties(e,t=[]){let n=Ou(e)||{};for(let e in n){let r=Nu[e];if(!r)continue;let i=new X(r);t.push(i);let a=Object.keys(n[e]||{}),o=i.itemChildren?.properties||[],s=this.visible&&this.visible.flex;e===`flex`&&s&&typeof s==`object`&&s.flexShrink&&a.push(`flexShrink`);for(let e=0;e<o.length;e++)a.includes(o[e].itemKey)||o.splice(e--,1);wu.setPropertyValue(o,n[e]),i.itemValueFrom=`0`,i.itemUpdated=!0}}onRestore(e={}){this.properties.length=0,this.parseStateProperties(this.state,this.properties);let t=this.properties.reduce((e,t)=>(e[t.itemId]=t,e),{}),n={append(e,t,n=[]){let r=[].concat(n);r.push(e.itemId);let i=Nu[r.join(`|`)],a=new X(i||{});t.push(a),a.onRestore(Ou(e),Su.Delete)}};(e.properties||[]).forEach(e=>{let r=Nu[e.itemId];if(!r){let n=new X(e);this.properties.push(n),t[e.itemId]=n,n.onRestore(e,Su.Delete);return}let i=t[e.itemId];if(i)i.onRestore(e,Su.Append,n);else{let n=new X(r);this.properties.push(n),t[e.itemId]=n,n.onRestore(e,Su.Delete)}}),X.updatePropertyVisible(this.properties)}onPreview(){let e=this.properties.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{});return{id:this.id,properties:e}}onExport(){return{properties:this.properties.reduce((e,t)=>{let n=t.onExport();return n&&e.push(n),e},[])}}applyChange(e,t){let n=e.onExport(t);if(!n)return;let r=e.itemId,i=this.properties.filter(e=>e.itemId===r)[0];if(!i){i=new X(Nu[r]||{}),this.properties.push(i),i.onRestore(Ou(n),Su.Delete);return}let a=[r];for(let e=t;e;e=e.child)a.push(e.itemId);i.onRestore(Ou(n),Su.Append,{append(e,t){let n=Nu[a.join(`|`)],r=new X(n||{});t.push(r),r.onRestore(Ou(e),Su.Delete)}})}},Iu=class{constructor(e={}){this.id=Au(`slot`),this.slotKey=e.slotKey,this.slotName=e.slotName,this.slotDesc=e.slotDesc||``,this.slotScope=e.slotScope===!0||e.slotScope===`true`,this.slotWidth=e.slotWidth||``,this.slotHeight=e.slotHeight||``,this.slotSwitch=e.slotSwitch===void 0?`1`:e.slotSwitch,this.components=[]}onRestore(e={}){e.slotSwitch!==void 0&&(this.slotSwitch=e.slotSwitch),this.components=(e.components||[]).map(e=>Bu(e))}onPreview(){return{id:this.id,slotKey:this.slotKey,slotScope:this.slotScope,slotDesc:this.slotDesc,slotSwitch:this.slotSwitch,slotWidth:this.slotWidth,slotHeight:this.slotHeight,components:this.components.reduce((e,t)=>{let n=t.onPreview();return n&&e.push(n),e},[])}}onExport(){return{slotKey:this.slotKey,slotScope:this.slotScope,slotSwitch:this.slotSwitch,components:(this.components||[]).map(e=>e&&typeof e.onExport==`function`?e.onExport():e)}}};function Lu(e=[],t=[],n={}){let r={},i=t.length>0;return(e||[]).forEach(e=>{if(!e||!e.itemKey)return;let i=t.concat(e.itemKey);e.itemValueFrom===`1`?(r[e.itemKey]=e.itemDefaultValue,e.itemValue&&(n[i.join(`.`)]=e.itemValue)):e.itemValueFrom===`2`?r[e.itemKey]=e.itemValue:e.itemChildren&&e.itemChildren.properties?r[e.itemKey]=Lu(e.itemChildren.properties,i,n):e.itemList?r[e.itemKey]=e.itemList.map((e,t)=>Lu(e&&e.properties||[],i.concat(String(t)),n)):r[e.itemKey]=e.itemValue}),i||(r.__vars__=n),r}function Ru(e={},t=[]){let n=e.event||{},r=(t||[]).filter(e=>e.eventKey===n.eventKey)[0]||{},i=e.action||{};return{event:{eventName:r.eventName,eventKey:r.eventKey},action:{actionType:i.actionType,properties:Lu(i.properties||[])},schemaIndex:-1}}var zu=class{constructor(e={}){let t=e.className,n=ju[t]||{};this.id=e.id||Au(`comp`),this.componentId=e.componentId||Au(String(t).toLowerCase()),this.name=e.name||n.name||t,this.className=t,this.version=e.version||n.version,this.visible=!0,this.metaMissing=!ju[t],this.style=new Fu({state:n.styleState,visible:n.styleVisible}),this.directives=Pu.map(e=>new X(e)),this.properties=(n.properties||[]).map(e=>new X(e)),this.events=n.events||[],this.eventactions=[],this.slots=(n.slots||[]).map(e=>new Iu(e)),this._schemaNode=e,this.onRestore(e)}onRestore(e={}){this.style.onRestore(e.style||{}),X.restoreProperty(e.directives||[],this.directives),X.updatePropertyVisible(this.directives),X.restoreProperty(e.properties||[],this.properties),X.updatePropertyVisible(this.properties),this.eventactions=(e.eventactions||[]).map((e,t)=>{let n=Ru(e,this.events);return n.schemaIndex=t,n});let t=(e.slots||[]).reduce((e,t)=>(e[t.slotKey]=t,e),{});this.slots.forEach(e=>{t[e.slotKey]&&e.onRestore(t[e.slotKey])}),this.metaMissing&&!this.slots.length&&(e.slots||[]).length&&(e.slots||[]).forEach(e=>{let t=new Iu({slotKey:e.slotKey,slotScope:e.slotScope});t.onRestore(e),this.slots.push(t)})}onPreview(){let e=this.directives.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{}),t=this.properties.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{}),n={id:this.id,componentId:this.componentId,name:this.name,className:this.className,version:this.version,directives:e,style:this.style.onPreview(),properties:t,eventactions:this.eventactions,slots:this.slots.map(e=>e.onPreview()),visible:this.visible,metaMissing:this.metaMissing||void 0,_schemaNode:this._schemaNode};return Xu(n,{className:this.className,properties:this.properties,style:this.style.properties,directives:this.directives,events:this.events}),n}};function Bu(e){return new zu(e)}var Vu=class{constructor(e={}){this.id=Au(`view`),this.width=e.width||`375`,this.className=e.className||`Root`,this.style=new Fu({state:{}}),this.properties=[],this.eventactions=[],this.components=[],this._schemaNode=e,this.onRestore(e)}onRestore(e={}){this.style.onRestore(e.style||{}),X.restoreProperty(e.properties||[],this.properties),X.updatePropertyVisible(this.properties),this.eventactions=(e.eventactions||[]).map((e,t)=>{let n=Ru(e,[]);return n.schemaIndex=t,n}),this.components=(e.components||[]).map(e=>Bu(e))}onPreview(){let e=this.properties.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{}),t={id:this.id,componentId:this.id,width:this.width,className:this.className,style:this.style.onPreview(),properties:e,eventactions:this.eventactions,components:this.components.map(e=>e.onPreview()),_schemaNode:this._schemaNode};return Xu(t,{className:this.className,properties:this.properties,style:this.style.properties,directives:[],events:[]}),t}};function Hu(e){if(!e)return;let t=e=>(e||[]).reduce((e,t)=>(e[t.key]=t.defaultValue,e),{});return{dictionaryList:t(e.dictionaryList),inputParams:t(e.inputParams),mocks:e.mocks||{}}}function Uu(e){return Au(String(e||`comp`).toLowerCase())}function Wu(e){let t=ju[e];return!!(t&&t.slots&&t.slots.length)}function Gu(e){let t=ju[e];return t&&t.slots&&t.slots.length?t.slots[0].slotKey:`default`}function Ku(e){if(!ju[e])throw Error(`未知组件类型:`+e);let t=new zu({className:e,componentId:Uu(e)}),n=e=>(e||[]).map(e=>e.onExport()).filter(e=>e!==void 0);return{componentId:t.componentId,className:t.className,directives:n(t.directives),style:t.style.onExport(),properties:n(t.properties),eventactions:[],slots:t.slots.map(e=>e.onExport())}}function qu(e={}){let t=new Vu(e.view||e),n=Hu(e.dictionary);return{id:e.id,version:e.version,pageId:e.pageId,name:e.name,desc:e.desc,platform:e.platform,...n?{dictionary:n}:{},view:t.onPreview()}}function Ju(e={}){let t={};return e.iParamList&&(t.iParamList=e.iParamList),e.iTypeList&&(t.iTypeList=e.iTypeList),e.codeKey&&(t.codeKey=e.codeKey),e.language&&(t.language=e.language),e.max!==void 0&&(t.max=e.max),e.min!==void 0&&(t.min=e.min),e.step!==void 0&&(t.step=e.step),t}function Yu(e){if(!e||!e.itemKey)return null;let t={itemId:e.itemId,itemKey:e.itemKey,itemName:e.itemName,itemType:e.itemType,itemValue:e.itemValue,itemValueFrom:e.itemValueFrom,itemTypeRange:e.itemTypeRange,itemVisible:e.itemVisible,itemRequired:!!e.itemRequired,itemDesc:e.itemDesc,options:Ju(e.itemOption)};return e.itemChildren&&e.itemChildren.properties&&e.itemChildren.properties.length&&(t.children=e.itemChildren.properties.map(Yu).filter(Boolean)),e.itemList&&e.itemList.length&&(t.itemList=e.itemList.map(e=>(e.properties||[]).map(Yu).filter(Boolean))),t}function Xu(e,t){Object.defineProperty(e,"_model",{value:t,enumerable:!1,configurable:!0,writable:!1})}function Zu(e){let t=[];if(e.components&&t.push(...e.components),e.slots)for(let n of e.slots)n.components&&t.push(...n.components);return t}function Qu(e){if(!e)return null;let t=e._model||{},n={id:e.id,componentId:e.componentId,className:e.className,name:e.name,properties:(t.properties||[]).map(Yu).filter(Boolean),style:(t.style||[]).map(Yu).filter(Boolean),directives:(t.directives||[]).map(Yu).filter(Boolean),eventactions:e.eventactions||[]},r=Zu(e);return r.length&&(n.components=r.map(Qu).filter(Boolean)),n}function $u(e={}){let t=Qu(qu(e).view);return t&&(t.id=e.id,t.version=e.version),t}var ed=cn({node:null,sourceCardId:null});function td(){return ed.node}function nd(){return ed.sourceCardId}function rd(e,t=null){e?(ed.node=JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)),ed.sourceCardId=t||null):(ed.node=null,ed.sourceCardId=null)}function id(e,t=new Set){if(!e||typeof e!=`object`)return[...t];if(typeof e.className==`string`&&e.className&&t.add(e.className),Array.isArray(e.slots)){for(let n of e.slots)if(n&&Array.isArray(n.components))for(let e of n.components)id(e,t)}return[...t]}function ad(e){if(e&&typeof e==`object`&&(e.componentId!=null&&e.className!=null&&(e.componentId=Uu(e.className)),Array.isArray(e.slots))){for(let t of e.slots)if(t&&Array.isArray(t.components))for(let e of t.components)ad(e)}}var od=class{constructor(e,t){this.vm=e,this.styleProps=t||{}}get adapter(){return this.vm&&this.vm.adapter?this.vm.adapter:this.vm}parse(){let e=this.styleProps,t={};return this.parseRect(e.rect||{},t),this.parseFlex(e.flex||{},t),this.parseBackground(e.background||{},t),this.parsePadding(e.padding||{},t),this.parseMargin(e.margin||{},t),this.parseBorderRadius(e.borderRadius||{},t),this.parseBorder(e.border||{},t),this.parseShadow(e.shadow||{},t),this.parseTransform(e.transform||{},t),this.parseOther(e.other||{},t),t.boxSizing=`border-box`,t}parseFont(e={},t={}){return e.color&&(t.color=this.adapter.doColor(e.color)),e.fontSize&&(t.fontSize=this.adapter.doSize(e.fontSize,`font`)),e.lineHeight&&(t.lineHeight=this.adapter.doSize(e.lineHeight)),e.textAlign&&(t.textAlign=e.textAlign),e.fontWeight&&(t.fontWeight=e.fontWeight),e.fontStyle&&(t.fontStyle=e.fontStyle),e.textDecoration&&(t.textDecoration=e.textDecoration),e.isMaxLine==`1`&&(t.lineClamp=e.maxLine||`1`,t[`-webkit-line-clamp`]=e.maxLine||`1`),t}parseImage(e={},t={}){return e.cropMode==`01`?(t.backgroundSize=`contain`,t.aspectRatio=`1/1`):(t.backgroundSize=`cover`,t.aspectRatio=`16/9`),t}parseRect(e,t){t.width=this.adapter.doSize(e.width),t.height=this.adapter.doSize(e.height),t.maxWidth=this.adapter.doSize(e.maxWidth),t.maxHeight=this.adapter.doSize(e.maxHeight),t.minWidth=this.adapter.doSize(e.minWidth),t.minHeight=this.adapter.doSize(e.minHeight)}parseFlex(e,t){e.flexDirection&&(t.flexDirection=e.flexDirection),e.justifyContent&&(t.justifyContent=e.justifyContent),e.alignItems&&(t.alignItems=e.alignItems),e.flexWrap&&(t.flexWrap=e.flexWrap),e.flexShrink&&(t.flexShrink=e.flexShrink),e.gap&&(t.gap=this.adapter.doSize(e.gap))}parseBackground(e,t){if(e.backgroundType==`01`&&e.backgroundColor)t.backgroundColor=this.adapter.doColor(e.backgroundColor);else if(e.backgroundType==`02`&&e.backgroundImage){if(t.backgroundImage=`url("${this.adapter.doReplaceUrl(this.adapter.doI18n(e.backgroundImage))}")`,e.backgroundPosition){let n=e.backgroundPosition.split(/[ ]+/);t.backgroundPosition=`${this.adapter.doSize(n[0]||``)} ${this.adapter.doSize(n[1]||``)}`}else t.backgroundPosition=`50% 50%`;if(e.backgroundSize){let n=e.backgroundSize.split(/[ ]+/);t.backgroundSize=n.length>=2?`${this.adapter.doSize(n[0]||``)} ${this.adapter.doSize(n[1]||``)}`:e.backgroundSize}else t.backgroundSize=`cover`;t.backgroundRepeat=e.backgroundRepeat||`no-repeat`}else e.backgroundType==`03`&&e.backgroundGradient&&(t.backgroundImage=e.backgroundGradient)}parsePadding(e,t){e.paddingType==`0`?t.padding=this.adapter.doSize(e.padding):e.paddingType==`1`&&(t.paddingLeft=this.adapter.doSize(e.paddingLeft),t.paddingTop=this.adapter.doSize(e.paddingTop),t.paddingRight=this.adapter.doSize(e.paddingRight),t.paddingBottom=this.adapter.doSize(e.paddingBottom))}parseMargin(e,t){e.marginType==`0`?t.margin=this.adapter.doSize(e.margin):e.marginType==`1`&&(t.marginLeft=this.adapter.doSize(e.marginLeft),t.marginTop=this.adapter.doSize(e.marginTop),t.marginRight=this.adapter.doSize(e.marginRight),t.marginBottom=this.adapter.doSize(e.marginBottom))}parseBorderRadius(e,t){e.borderRadiusType==`0`?t.borderRadius=this.adapter.doSize(e.borderRadius):e.borderRadiusType==`1`&&(t.borderTopLeftRadius=this.adapter.doSize(e.borderTopLeftRadius),t.borderTopRightRadius=this.adapter.doSize(e.borderTopRightRadius),t.borderBottomRightRadius=this.adapter.doSize(e.borderBottomRightRadius),t.borderBottomLeftRadius=this.adapter.doSize(e.borderBottomLeftRadius))}parseBorder(e,t){e.isBorder==`1`&&(t.borderWidth=this.adapter.doSize(e.borderWidth||`1`),t.borderStyle=e.borderStyle||`solid`,t.borderColor=this.adapter.doColor(e.borderColor||`#e7e7ee`))}parseShadow(e,t){if(e.isShadow==`1`){let n=[];n.push(this.adapter.doSize(e.shadowX||`0`)),n.push(this.adapter.doSize(e.shadowY||`0`)),e.shadowBlur&&n.push(this.adapter.doSize(e.shadowBlur)),e.shadowSpread&&n.push(this.adapter.doSize(e.shadowSpread)),n.push(this.adapter.doColor(e.shadowColor||`#e7e7ee`)),t.boxShadow=n.join(` `)}}parseTransform(e,t){let n=[];e.rotate&&n.push(`rotate(${e.rotate}deg)`),n.length&&(t.transform=n.join(` `))}parseOther(e,t){t.overflow=e.overflow?e.overflow:`hidden`,e.opacity&&(t.opacity=`${Number(e.opacity)/100}`)}},sd={inject:[`adapter`],methods:{doI18n(e){return this.adapter.doI18n(e)}}},Z=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},cd={name:`CeRoot`,emits:[`onReady`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){let e=new od(this,this.styleProps).parse();return Object.assign({fontSize:this.adapter.doSize(14,`font`)},e)}},mounted(){this.$emit(`onReady`,{})}};function ld(e,t,n,r,i,a){return V(),H(`div`,{ref:`root`,class:`ce_root`,style:A(a.styleObj)},[ca(e.$slots,`default`)],4)}var ud=Z(cd,[[`render`,ld],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Root.vue`]]),dd={name:`CeRow`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function fd(e,t,n,r,i,a){return V(),H(`div`,{ref:`row`,class:`ce_row`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[ca(e.$slots,`default`)],4)}var pd=Z(dd,[[`render`,fd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Row.vue`]]),md={name:`CeColumn`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function hd(e,t,n,r,i,a){return V(),H(`div`,{ref:`column`,class:`ce_column`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[ca(e.$slots,`default`)],4)}var gd=Z(md,[[`render`,hd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Column.vue`]]),_d={name:`CeText`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``}},computed:{styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),t}}};function vd(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_text`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},M(e.doI18n(n.value)),5)}var yd=Z(_d,[[`render`,vd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Text.vue`]]),bd={name:`CeButton`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``},disabled:{type:[Boolean,String,Number],default:!1}},computed:{styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),t}}};function xd(e,t,n,r,i,a){return V(),H(`button`,{class:j([`ce_button`,{ce_button_disabled:n.disabled}]),style:A(a.styleObj),onClick:t[0]||=t=>!n.disabled&&e.$emit(`click`,t)},M(e.doI18n(n.value)),7)}var Sd=Z(bd,[[`render`,xd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Button.vue`]]),Cd={name:`CeDivider`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function wd(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_divider`,style:A(a.styleObj)},null,4)}var Td=Z(Cd,[[`render`,wd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Divider.vue`]]),Ed=`/assets/svg-symbols-B2exBrAr.svg`,Dd=`/assets/default-image-wzZYQ86K.png`,Od=Ed,kd=Dd,Ad={name:`SvgSymbols`,props:{icon:{type:String,default:``},color:{type:String,default:``}},data(){return{symbols:Od}},computed:{href(){return`${this.symbols}#${this.icon}`}}},jd=[`fill`],Md=[`xlink:href`,`fill`];function Nd(e,t,n,r,i,a){return V(),H(`svg`,{class:`ce_svgsymbols`,fill:n.color},[W(`use`,{"xlink:href":a.href,fill:n.color},null,8,Md)],8,jd)}var Pd=Z(Ad,[[`render`,Nd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/SvgSymbols.vue`]]),Fd={name:`SvgCode`,props:{content:{type:String,default:``},color:{type:String,default:``}},computed:{svgStyle(){return{fill:this.color}}}},Id=[`innerHTML`];function Ld(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_svgcode`,style:A(a.svgStyle),innerHTML:n.content},null,12,Id)}var Rd={name:`CeIcon`,emits:[`click`],mixins:[sd],components:{SvgSymbols:Pd,SvgCode:Z(Fd,[[`render`,Ld],[`__file`,`/Users/ynet/dsl-card/card-editor/components/SvgCode.vue`]])},props:{styleProps:{type:Object,default:()=>({})},icon:{type:String,default:``},color:{type:String,default:``},content:{type:String,default:``}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function zd(e,t,n,r,i,a){let o=R(`svg-code`),s=R(`svg-symbols`);return V(),H(`span`,{class:`ce_icon`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[n.content&&n.content.trim()?(V(),U(o,{key:0,color:n.color,content:n.content},null,8,[`color`,`content`])):(V(),U(s,{key:1,color:n.color,icon:n.icon},null,8,[`color`,`icon`]))],4)}var Bd=Z(Rd,[[`render`,zd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Icon.vue`]]),Vd={name:`CeImage`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``}},computed:{styleObj(){return new od(this,this.styleProps).parse()},fillStyleObj(){let e={};return new od(this,this.styleProps).parseImage(this.styleProps.image||{},e),e.backgroundImage=`url(${this.adapter.doReplaceUrl(this.doI18n(this.value||kd))})`,e}}};function Hd(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_image`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[W(`div`,{class:`ce_image_fill`,style:A(a.fillStyleObj)},null,4)],4)}var Ud=Z(Vd,[[`render`,Hd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Image.vue`]]),Wd={name:`CeMultiText`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},textList:{type:Array,default:()=>[]}},computed:{styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),t}},methods:{doClick(e,t,n){e.__do__||(e.__do__=!0,this.$emit(`click`,{data:{index:n,tag:t?t.tag:``,text:t?t.value:``}}))},parseFont(e){let t={};return new od(this,{}).parseFont(e||{},t),e&&e.backgroundColor&&(t.backgroundColor=this.adapter.doColor(e.backgroundColor)),t}}},Gd={class:`ce_multitext_item`},Kd=[`onClick`];function qd(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_multitext`,style:A(a.styleObj),onClick:t[0]||=e=>a.doClick(e)},[W(`span`,Gd,[(V(!0),H(B,null,z(n.textList,(t,n)=>(V(),H(`span`,{key:n,style:A(a.parseFont(t)),onClick:e=>a.doClick(e,t,n)},M(e.doI18n(t.value)),13,Kd))),128))])],4)}var Jd=Z(Wd,[[`render`,qd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/MultiText.vue`]]),Yd={name:`CeListLayout`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:Array,default:()=>[]},direction:{type:String,default:`vertical`},rowSpacing:{type:[String,Number],default:``},edgeInsets:{type:String,default:``}},computed:{itemStyleObj(){let e=this.direction===`horizontal`;return{marginLeft:e?this.adapter.doSize(this.rowSpacing):0,marginTop:e?0:this.adapter.doSize(this.rowSpacing)}},conClasses(){return{ce_listlayout_horizontal:this.direction===`horizontal`}},conStyleObj(){let e={};if(this.edgeInsets){let t=this.parsePadding(this.edgeInsets);e.paddingLeft=this.adapter.doSize(t[1]),e.paddingTop=this.adapter.doSize(t[0]),e.paddingRight=this.adapter.doSize(t[3]),e.paddingBottom=this.adapter.doSize(t[2])}return e},rootStyle(){return new od(this,this.styleProps).parse()}},methods:{parsePadding(e){return String(e).replace(/[{}]/g,``).split(`,`)}}};function Xd(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_listlayout`,style:A(a.rootStyle),onClick:t[0]||=t=>e.$emit(`click`,t)},[W(`div`,{class:j([`ce_listlayout_con`,a.conClasses]),style:A(a.conStyleObj)},[(V(!0),H(B,null,z(n.value||[],(t,n)=>(V(),H(`div`,{key:n,class:`ce_listlayout_item`,style:A(n===0?{}:a.itemStyleObj)},[ca(e.$slots,`default`,{item:t,index:n})],4))),128))],6)],4)}var Zd=Z(Yd,[[`render`,Xd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ListLayout.vue`]]),Qd={name:`CeGridLayout`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:Array,default:()=>[]},column:{type:[Number,String],default:2},rowSpacing:{type:[String,Number],default:``},itemSpacing:{type:[String,Number],default:``},edgeInsets:{type:String,default:``}},computed:{styleObj(){let e=new od(this,this.styleProps).parse();if(this.rowSpacing&&(e.rowGap=this.adapter.doSize(this.rowSpacing)),this.edgeInsets){let t=this.parsePadding(this.edgeInsets);e.paddingLeft=this.adapter.doSize(t[1]),e.paddingTop=this.adapter.doSize(t[0]),e.paddingRight=this.adapter.doSize(t[3]),e.paddingBottom=this.adapter.doSize(t[2])}return e}},methods:{getItemStyle(e){let t=Number(this.column),n=100/t+`%`,r=0,i=0;return t>1&&(this.itemSpacing&&(i=this.adapter.doSize(this.itemSpacing),r=this.adapter.doSize((t-1)*Number(this.itemSpacing)/t)),n=`calc(${n} - ${r})`,e%t===t-1&&(i=0)),{width:n,marginRight:i}},parsePadding(e){return String(e).replace(/[{}]/g,``).split(`,`)}}};function $d(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_gridlayout`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[(V(!0),H(B,null,z(n.value||[],(t,n)=>(V(),H(`div`,{key:n,class:`ce_gridlayout_item`,style:A(a.getItemStyle(n))},[ca(e.$slots,`default`,{item:t,index:n})],4))),128))],4)}var ef=Z(Qd,[[`render`,$d],[`__file`,`/Users/ynet/dsl-card/card-editor/components/GridLayout.vue`]]);function tf(e){return t=>({get:()=>t[e],set:n=>{t[e]=n}})}function nf(e){return t=>({get:()=>t[e].bind(t)})}function rf(e,t=[]){return(n,r)=>({get:()=>(...i)=>(t.forEach(e=>{i[e]=Number(i[e])*r}),n[e](...i))})}var af={textAlign:tf(`textAlign`),textBaseline:tf(`textBaseline`),fillStyle:tf(`fillStyle`),strokeStyle:tf(`strokeStyle`),lineCap:tf(`lineCap`),imageSmoothingEnabled:tf(`imageSmoothingEnabled`),imageSmoothingQuality:tf(`imageSmoothingQuality`),lineWidth:(e,t)=>({get:()=>e.lineWidth,set:n=>{e.lineWidth=n*t}}),font:(e,t,n)=>({get:()=>e.font,set:r=>{e.font=String(r).replace(/([0-9.]+)px/,(e,r)=>Number(r)*t*Number(n||1)+`px`)}}),fillText:(e,t,n,r)=>({get:()=>(...n)=>(n[0]=n[0]?r.adapter.doI18n(n[0]):n[0],[1,2].forEach(e=>{n[e]=Number(n[e])*t}),e.fillText(...n))}),fillRect:rf(`fillRect`,[0,1,2,3]),moveTo:rf(`moveTo`,[0,1]),lineTo:rf(`lineTo`,[0,1]),arc:rf(`arc`,[0,1,2]),clearRect:rf(`clearRect`,[0,1,2,3]),createLinearGradient:rf(`createLinearGradient`,[0,1,2,3]),createRadialGradient:rf(`createRadialGradient`,[0,1,2,3,4,5]),beginPath:nf(`beginPath`),closePath:nf(`closePath`),fill:nf(`fill`),stroke:nf(`stroke`),measureText:(e,t)=>({get:()=>(...n)=>{let r=e.font;e.font=r.replace(/([0-9.]+)px/,(e,n)=>Number(n)/t+`px`);let i=e.measureText(...n);return e.font=r,i}}),setLineDash:e=>({get:()=>e.setLineDash.bind(e),set:t=>e.setLineDash(t)})};function of(e,t){function n(n,r){Object.keys(af).forEach(i=>{Object.defineProperty(this,i,af[i](e,n,r,t))})}return n.prototype=e,n}function sf(e,t){return function(n,r,i){this.width=n.width/r,this.height=n.height/r,this.style=e.style,this.getContext=function(...n){return new(of(e.getContext(...n),t))(r,i)}}}var cf={name:`CeCanvas`,emits:[`onMeasured`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}},created(){this.resizeEvt=typeof window<`u`&&`orientationchange`in window?`orientationchange`:`resize`},mounted(){this.$nextTick(()=>this.doPaint()),typeof window<`u`&&window.addEventListener(this.resizeEvt,this.doRepaint,!1)},unmounted(){typeof window<`u`&&window.removeEventListener(this.resizeEvt,this.doRepaint,!1)},methods:{doPaint(){let e=this.$refs.canvas;if(!e)return;let t=e.getBoundingClientRect(),{availableWidth:n,applyUnitRatio:r,fontRatio:i=1}=this.adapter.getSystemInfo(),a=n*r/this.adapter.getDesignInfo().styleWidth||1,o=e.getContext(`2d`),s=(typeof window<`u`?window.devicePixelRatio:1)||1;e.width=t.width*s,e.height=t.height*s,o.scale(s,s);let c=new(sf(e,this))(t,a,i);this.$emit(`onMeasured`,{canvas:c,width:c.width,height:c.height})},doRepaint(){let e=this.$refs.canvas;e&&(e.getContext(`2d`).clearRect(0,0,e.width,e.height),this.doPaint())}}};function lf(e,t,n,r,i,a){return V(),H(`canvas`,{ref:`canvas`,class:`ce_canvas`,style:A(a.styleObj)},null,4)}var uf=Z(cf,[[`render`,lf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Canvas.vue`]]),df={name:`CeInput`,emits:[`input`,`change`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``},placeholder:{type:[String,Number],default:``},inputType:{type:String,default:``},maxLength:{type:[String,Number],default:``}},data(){return{typeMap:{text:`text`,number:`text`,email:`text`,password:`password`,phone:`text`},regexpMap:{number:/^-?([0-9]*|(0|[1-9][0-9]*)\.[0-9]{0,})?$/i,email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,phone:/^[0-9]{11}$/},inputValue:``,oldValue:``}},created(){this.inputValue=this.value,this.oldValue=this.inputValue},computed:{type(){return this.typeMap[this.inputType]},styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),Object.assign({padding:`${this.adapter.doSize(4)} ${this.adapter.doSize(8)}`},t)}},watch:{value(){this.inputValue=this.value,this.oldValue=this.inputValue}},methods:{doInput(e){let t=this.regexpMap[this.inputType];!t||t.test(e)?(this.$emit(`input`,e),this.inputValue=e):this.inputValue=this.oldValue}}},ff=[`type`,`placeholder`,`maxlength`,`value`];function pf(e,t,n,r,i,a){return V(),H(`input`,{class:`ce_input`,style:A(a.styleObj),type:a.type,placeholder:e.doI18n(n.placeholder),maxlength:n.maxLength,value:i.inputValue,onInput:t[0]||=t=>e.$emit(`input`,t.target.value),onChange:t[1]||=t=>e.$emit(`change`)},null,44,ff)}var mf=Z(df,[[`render`,pf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Input.vue`]]),hf={name:`CeViewContainer`,emits:[`action`],mixins:[sd],inject:[`adapter`,`customComponents`],props:{styleProps:{type:Object,default:()=>({})},customClass:{type:String,default:``},customProps:{type:Object,default:()=>({})},customRemarkImg:{type:String,default:``}},computed:{componentClass(){let e=this.customComponents;return e?this.customClass?e[this.customClass]||e.Placeholder||``:e.Placeholder||``:``},componentProps(){return this.customProps||{}},componentIcon(){return this.customRemarkImg||``},styleObj(){return new od(this,this.styleProps).parse()}}};function gf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_viewcontainer`,style:A(a.styleObj)},[a.componentClass?(V(),U(aa(a.componentClass),{key:0,icon:a.componentIcon,props:a.componentProps,"custom-class":n.customClass,onAction:t[0]||=t=>e.$emit(`action`,t)},null,40,[`icon`,`props`,`custom-class`])):q(`v-if`,!0)],4)}var _f=Z(hf,[[`render`,gf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ViewContainer.vue`]]),vf={TopLeft:{justifyContent:`flex-start`,alignItems:`flex-start`},TopCenter:{justifyContent:`flex-start`,alignItems:`center`},TopRight:{justifyContent:`flex-start`,alignItems:`flex-end`},CenterLeft:{justifyContent:`center`,alignItems:`flex-start`},Center:{justifyContent:`center`,alignItems:`center`},CenterRight:{justifyContent:`center`,alignItems:`flex-end`},BottomLeft:{justifyContent:`flex-end`,alignItems:`flex-start`},BottomCenter:{justifyContent:`flex-end`,alignItems:`center`},BottomRight:{justifyContent:`flex-end`,alignItems:`flex-end`}},yf={name:`CeAbsoluteLayout`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},align:{type:String,default:``}},computed:{styleObj(){let e=new od(this,this.styleProps).parse();return Object.assign(e,vf[this.align]||{})}}};function bf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_absolutelayout`,style:A(a.styleObj)},[ca(e.$slots,`default`)],4)}var xf=Z(yf,[[`render`,bf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/AbsoluteLayout.vue`]]),Sf={CheckGroupCircle:[`M512 65.983389c-245.919634 0-446.016611 200.095256-446.016611 446.016611 0 245.952318 200.064292 446.016611 446.016611 446.016611S958.016611 757.952318 958.016611 512C958.016611 266.080366 757.952318 65.983389 512 65.983389zM512 894.016611c-210.655557 0-382.016611-171.392017-382.016611-382.016611 0-210.655557 171.359333-382.016611 382.016611-382.016611 210.624593 0 382.016611 171.359333 382.016611 382.016611C894.016611 722.624593 722.624593 894.016611 512 894.016611z`,`M512 352.00086c-88.223841 0-160.00086 71.775299-160.00086 159.99914s71.775299 160.00086 160.00086 160.00086 160.00086-71.775299 160.00086-160.00086S600.223841 352.00086 512 352.00086z`],CheckGroupSquareEmpty:[`M833.008 928h-640c-52.944 0-96-43.072-96-96V192c0-52.928 43.056-96 96-96h640c52.912 0 96 43.072 96 96v640c0 52.928-43.072 96-96 96z m-640-768c-17.648 0-32 14.368-32 32v640c0 17.664 14.352 32 32 32h640a32 32 0 0 0 32-32V192c0-17.632-14.352-32-32-32h-640z`],CheckGroupSquareEmptyCheck:[`M727.984 393.184a31.968 31.968 0 0 0-45.248 0.256L449.44 629.248l-103.28-106.112a32 32 0 1 0-45.888 44.608l126.032 129.504c0.048 0.096 0.192 0.096 0.256 0.192 0.064 0.064 0.096 0.192 0.16 0.256 2.016 1.984 4.512 3.2 6.88 4.544 1.248 0.672 2.24 1.792 3.52 2.304a31.728 31.728 0 0 0 24.064 0.064c1.232-0.512 2.208-1.536 3.392-2.176 2.4-1.344 4.896-2.528 6.944-4.544 0.064-0.064 0.096-0.192 0.192-0.256 0.064-0.096 0.16-0.128 0.256-0.192l256.224-259.008a32 32 0 0 0-0.224-45.248zM832.992 928h-640c-52.928 0-96-43.072-96-96V192c0-52.928 43.072-96 96-96h640c52.928 0 96 43.072 96 96v640c0 52.928-43.056 96-96 96z m-640-768c-17.632 0-32 14.368-32 32v640c0 17.664 14.368 32 32 32h640a32 32 0 0 0 32-32V192c0-17.632-14.336-32-32-32h-640z`],CheckGroupSquare:[`M186 123c-33.137 0-60 26.863-60 60v655c0 33.137 26.863 60 60 60h655c33.137 0 60-26.863 60-60V183c0-33.137-26.863-60-60-60H186z m0-60h655c66.274 0 120 53.726 120 120v655c0 66.274-53.726 120-120 120H186c-66.274 0-120-53.726-120-120V183c0-66.274 53.726-120 120-120z`],CheckGroupSquareCheck:[`M840.6 97H185.4C137.1 97 98 136.1 98 184.4v655.3c0 48.3 39.1 87.4 87.4 87.4h655.3c48.3 0 87.4-39.1 87.4-87.4V184.4C928 136.1 888.9 97 840.6 97zM791 380.7L466.7 705.1c-17.1 17.1-44.7 17.1-61.8 0L235 535.2c-17.1-17.1-17.1-44.7 0-61.8 17.1-17.1 44.7-17.1 61.8 0l139 139L729.2 319c17.1-17.1 44.7-17.1 61.8 0 17.1 17 17.1 44.7 0 61.7z`]},Cf={RadioButtonCircle:[`M512 65.983389c-245.919634 0-446.016611 200.095256-446.016611 446.016611 0 245.952318 200.064292 446.016611 446.016611 446.016611S958.016611 757.952318 958.016611 512C958.016611 266.080366 757.952318 65.983389 512 65.983389zM512 894.016611c-210.655557 0-382.016611-171.392017-382.016611-382.016611 0-210.655557 171.359333-382.016611 382.016611-382.016611 210.624593 0 382.016611 171.359333 382.016611 382.016611C894.016611 722.624593 722.624593 894.016611 512 894.016611z`,`M512 352.00086c-88.223841 0-160.00086 71.775299-160.00086 159.99914s71.775299 160.00086 160.00086 160.00086 160.00086-71.775299 160.00086-160.00086S600.223841 352.00086 512 352.00086z`],RadioButtonCircleEmpty:[`M512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667-191.029333 426.666667-426.666667 426.666667z m0-64c200.298667 0 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667z`],RadioButtonCircleEmptyCheck:[`M512 85.333333c235.637333 0 426.666667 191.029333 426.666667 426.666667S747.637333 938.666667 512 938.666667 85.333333 747.637333 85.333333 512 276.362667 85.333333 512 85.333333z m182.613333 297.354667a32 32 0 0 0-45.258666 0.032L458.922667 573.44l-84.341334-83.989333a32 32 0 0 0-45.162666 45.344l106.986666 106.549333a32 32 0 0 0 45.226667-0.064l213.013333-213.333333a32 32 0 0 0-0.032-45.258667z`]},wf={name:`CeCheckGroup`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[Array,String,Number],default:()=>[]},dataList:{type:Array,default:()=>[]},selectColor:{type:String,default:`#0082ff`},unSelectColor:{type:String,default:`#333333`},buttonStyle:{type:String,default:`Circle`},maxSelectCount:{type:[String,Number],default:`0`},direction:{type:String,default:`horizontal`},itemPadding:{type:[String,Number],default:`4 10 4 10`},itemSpacing:{type:[String,Number],default:`4`},textSpacing:{type:[String,Number],default:`3`},fontSize:{type:[String,Number],default:`13`},iconSize:{type:[String,Number],default:`14`}},emits:[`change`,`selectChange`],computed:{rootStyle(){return{overflow:`hidden`,boxSizing:`border-box`}},checkedSet(){let e=this.value;return Array.isArray(e)?new Set(e.map(String)):e===``||e==null?new Set:new Set([String(e)])},limit(){let e=Number(this.maxSelectCount);return Number.isFinite(e)&&e>0?e:1/0}},methods:{isChecked(e){return this.checkedSet.has(String(e.key))},checkPaths(e){let t=this.isChecked(e);switch(this.buttonStyle){case`SquareEmpty`:return Sf[t?`CheckGroupSquareEmptyCheck`:`CheckGroupSquareEmpty`];case`Square`:return Sf[t?`CheckGroupSquareCheck`:`CheckGroupSquare`];case`Text`:return[];default:return Sf.CheckGroupCircle}},itemStyle(e){let t=String(this.itemPadding).split(/\s+/),n=Number(this.itemSpacing)||0,r=e===this.dataList.length-1?0:n,i=e===this.dataList.length-1?0:n,a=(e,t)=>this.adapter.doSize(e[t]===void 0?e[0]||0:e[t]),o=t.length>=4?`${a(t,0)} ${a(t,1)} ${a(t,2)} ${a(t,3)}`:this.adapter.doSize(this.itemPadding);return this.direction===`vertical`?{padding:o,marginBottom:i}:{padding:o,marginRight:r}},toggle(e){let t=String(e.key),n=new Set(this.checkedSet);n.has(t)?n.delete(t):(n.size>=this.limit&&n.clear(),n.add(t));let r=[...n];this.$emit(`change`,r),this.$emit(`selectChange`,{value:r,item:e})}}},Tf=[`onClick`],Ef={class:`ce_svgcheckstyle`,viewBox:`0 0 1024 1024`},Df=[`d`,`fill`],Of=[`title`];function kf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_check_group`,style:A(a.rootStyle)},[W(`div`,{class:`ce_check_list`,style:A({flexDirection:n.direction===`vertical`?`column`:`row`})},[(V(!0),H(B,null,z(n.dataList,(e,t)=>(V(),H(`div`,{key:e.key,class:`ce_check_item`,style:A(a.itemStyle(t)),onClick:t=>a.toggle(e)},[n.buttonStyle===`Text`?q(`v-if`,!0):(V(),H(`div`,{key:0,class:`ce_check_icon`,style:A({width:n.iconSize+`px`,height:n.iconSize+`px`,marginRight:n.textSpacing+`px`})},[(V(),H(`svg`,Ef,[(V(!0),H(B,null,z(a.checkPaths(e),(t,r)=>(V(),H(`path`,{key:r,d:t,fill:a.isChecked(e)?n.selectColor:n.unSelectColor},null,8,Df))),128))]))],4)),W(`span`,{class:`ce_check_text`,title:e.desc,style:A({color:a.isChecked(e)?n.selectColor:n.unSelectColor,fontSize:n.fontSize+`px`})},M(e.desc),13,Of)],12,Tf))),128))],4)],4)}var Af=Z(wf,[[`render`,kf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/CheckGroup.vue`]]),jf={name:`CeRadioButton`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``},selectColor:{type:String,default:`#0082ff`},unSelectColor:{type:String,default:`#333333`},buttonStyle:{type:String,default:`Circle`},textSpacing:{type:[String,Number],default:`3`},fontSize:{type:[String,Number],default:`14`},iconSize:{type:[String,Number],default:`14`},showText:{type:[String,Number],default:`1`},text:{type:[String,Number],default:``}},emits:[`change`,`selectChange`],computed:{rootStyle(){return{overflow:`hidden`,boxSizing:`border-box`}},selected(){let e=this.value;return e!==``&&e!=null&&e!==!1&&e!==`0`},color(){return this.selected?this.selectColor:this.unSelectColor},radioPaths(){return this.selected&&this.buttonStyle===`CircleEmpty`?Cf.RadioButtonCircleEmptyCheck:this.buttonStyle===`CircleEmpty`?Cf.RadioButtonCircleEmpty:Cf.RadioButtonCircle}},methods:{toggle(){let e=this.selected?``:this.value||`1`;this.$emit(`change`,e),this.$emit(`selectChange`,!!e)}}},Mf=[`d`];function Nf(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_radio_button`,style:A(a.rootStyle)},[W(`div`,{class:`ce_radio_item`,onClick:t[0]||=(...e)=>a.toggle&&a.toggle(...e)},[n.buttonStyle===`Text`?q(`v-if`,!0):(V(),H(`span`,{key:0,class:`ce_radio_icon`,style:A({width:n.iconSize+`px`,height:n.iconSize+`px`,marginRight:n.textSpacing+`px`})},[(V(),H(`svg`,{class:`ce_svgradiostyle`,viewBox:`0 0 1024 1024`,style:A({fill:a.color,stroke:a.color})},[(V(!0),H(B,null,z(a.radioPaths,(e,t)=>(V(),H(`path`,{key:t,d:e},null,8,Mf))),128))],4))],4)),n.showText===`1`||n.showText===1?(V(),H(`span`,{key:1,style:A({color:a.color,fontSize:n.fontSize+`px`})},M(e.doI18n(n.text)),5)):q(`v-if`,!0)])],4)}var Pf=Z(jf,[[`render`,Nf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/RadioButton.vue`]]),Ff={name:`CeProgressSlider`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:0},minProgress:{type:[String,Number],default:0},maxProgress:{type:[String,Number],default:100},step:{type:[String,Number],default:1},backgroundColor:{type:String,default:`#e6e6e6`},foregroundColor:{type:String,default:`#0a59f5`},processHeight:{type:[String,Number],default:5},blockStyle:{type:String,default:`circle`},blockColor:{type:String,default:`#ffffff`},blockImage:{type:String,default:``},blockWidth:{type:[String,Number],default:15},blockHeight:{type:[String,Number],default:15}},emits:[`change`,`selectChange`],data(){return{dragging:!1}},computed:{rootStyle(){let e=(Number(this.processHeight)||5)+16,t=Number(this.blockHeight)||15;return{height:`auto`,minHeight:this.adapter.doSize(Math.max(e,t)),boxSizing:`border-box`}},min(){let e=Number(this.minProgress);return Number.isFinite(e)?e:0},max(){let e=Number(this.maxProgress);return Number.isFinite(e)?e:100},stepVal(){let e=Number(this.step);return e>0?e:1},numValue(){let e=Number(this.value);return Number.isFinite(e)?e:this.min},percent(){let e=this.max-this.min||1,t=(this.numValue-this.min)/e*100;return Math.max(0,Math.min(100,t))},conLeft(){let e=Number(this.blockWidth)||15;return`calc(${e/2}px + (100% - ${e}px) * ${this.percent} / 100)`},rectStyle(){let e=Number(this.processHeight)||5;return{backgroundColor:this.adapter.doColor(this.backgroundColor),height:this.adapter.doSize(e),borderRadius:this.adapter.doSize(e),marginTop:this.adapter.doSize(8),marginBottom:this.adapter.doSize(8)}},barStyle(){let e=Number(this.processHeight)||5,t=Number(this.blockWidth)||15;return{backgroundColor:this.adapter.doColor(this.foregroundColor),left:this.adapter.doSize(t/2),width:`calc((100% - ${t}px) * ${this.percent} / 100)`,borderTopLeftRadius:this.adapter.doSize(e),borderBottomLeftRadius:this.adapter.doSize(e)}},blockStyleObj(){let e=Number(this.blockWidth)||15,t=Number(this.blockHeight)||15,n={width:this.adapter.doSize(e),height:this.adapter.doSize(t),boxShadow:`rgba(0,0,0,0.3) 0 0 3px 0`};return this.blockStyle===`image`&&this.blockImage?(n.backgroundImage=`url(${this.adapter.doReplaceUrl(this.doI18n(this.blockImage))})`,n.borderRadius=`0`):this.blockStyle===`circle`?(n.backgroundColor=this.adapter.doColor(this.blockColor),n.borderRadius=this.adapter.doSize(Math.min(e,t)/2)):(n.backgroundColor=this.adapter.doColor(this.blockColor),n.borderRadius=this.adapter.doSize(2)),n}},methods:{clampStep(e){let t=Math.max(this.min,Math.min(this.max,e)),n=Math.round((t-this.min)/this.stepVal)*this.stepVal+this.min;return Math.max(this.min,Math.min(this.max,n))},valueFromEvent(e){let t=this.$refs.rect;if(!t)return this.numValue;let n=t.getBoundingClientRect(),r=(e.clientX-n.left)/n.width;return this.clampStep(this.min+r*(this.max-this.min))},onDown(e){this.dragging=!0,this.setValue(this.valueFromEvent(e)),window.addEventListener(`pointermove`,this.onMove),window.addEventListener(`pointerup`,this.onUp)},onMove(e){this.dragging&&this.setValue(this.valueFromEvent(e))},onUp(){this.dragging=!1,window.removeEventListener(`pointermove`,this.onMove),window.removeEventListener(`pointerup`,this.onUp)},setValue(e){this.$emit(`change`,e),this.$emit(`selectChange`,e)}},beforeUnmount(){this.onUp()}};function If(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_slider`,style:A(a.rootStyle)},[W(`div`,{ref:`rect`,class:`ce_slider_rect`,style:A(a.rectStyle),onPointerdown:t[0]||=(...e)=>a.onDown&&a.onDown(...e)},[W(`div`,{class:`ce_slider_bar`,style:A(a.barStyle)},null,4),W(`div`,{class:`ce_slider_con`,style:A({left:a.conLeft})},[W(`div`,{class:j([`ce_slider_block`,{ce_dragging:i.dragging}]),style:A(a.blockStyleObj)},null,6)],4)],36)],4)}var Lf=Z(Ff,[[`render`,If],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ProgressSlider.vue`]]),Rf={name:`CeVideo`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},url:{type:String,default:``},previewUrl:{type:String,default:``}},emits:[`click`],data(){return{showPoster:!0}},computed:{rootStyle(){let e=new od(this,this.styleProps).parse();return Object.assign(e,{overflow:`hidden`,boxSizing:`border-box`})},src(){return this.adapter.doReplaceUrl(this.doI18n(this.url||``))},poster(){return this.adapter.doReplaceUrl(this.doI18n(this.previewUrl||``))}},methods:{play(){this.showPoster=!1;let e=this.$refs.video;if(e)try{e.play()}catch{}this.$emit(`click`)}}},zf=[`src`,`poster`];function Bf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_video`,style:A(a.rootStyle)},[W(`video`,{ref:`video`,class:`ce_video_elem ce_npc`,src:a.src,poster:a.poster,controls:``,playsinline:``,"webkit-playsinline":``},null,8,zf),a.poster&&i.showPoster?(V(),H(`div`,{key:0,class:`ce_video_poster ce_npc`,style:A({backgroundImage:`url(${a.poster})`,backgroundSize:`cover`,backgroundPosition:`center`}),onClick:t[0]||=(...e)=>a.play&&a.play(...e)},null,4)):q(`v-if`,!0)],4)}var Vf=Z(Rf,[[`render`,Bf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Video.vue`]]),Hf={name:`CeMap`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},centerLat:{type:[String,Number],default:``},centerLng:{type:[String,Number],default:``},zoom:{type:[String,Number],default:``},markerLat:{type:[String,Number],default:``},markerLng:{type:[String,Number],default:``},markerName:{type:String,default:``}},emits:[`click`],computed:{rootStyle(){let e=new od(this,this.styleProps).parse();return e.overflow=`hidden`,e}}},Uf={class:`ce_map_view`},Wf={class:`ce_map_center`},Gf={key:0,class:`ce_map_markname`};function Kf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_map`,style:A(a.rootStyle)},[W(`div`,Uf,[t[1]||=_s(`<svg class="ce_map_grid" viewBox="0 0 100 100" preserveAspectRatio="none" data-v-512dee75><defs data-v-512dee75><pattern id="ceMapGrid" width="10" height="10" patternUnits="userSpaceOnUse" data-v-512dee75><path d="M10 0 L0 0 0 10" fill="none" stroke="#dfe3ea" stroke-width="0.4" data-v-512dee75></path></pattern></defs><rect width="100" height="100" fill="#eef1f6" data-v-512dee75></rect><rect width="100" height="100" fill="url(#ceMapGrid)" data-v-512dee75></rect><!-- 模拟几条道路 --><path d="M0 60 Q40 50 100 65" fill="none" stroke="#cdd4df" stroke-width="2.2" data-v-512dee75></path><path d="M30 0 L45 100" fill="none" stroke="#cdd4df" stroke-width="2.2" data-v-512dee75></path></svg>`,1),W(`div`,Wf,[t[0]||=W(`div`,{class:`ce_map_pin`},[W(`svg`,{viewBox:`0 0 24 24`,width:`26`,height:`26`},[W(`path`,{d:`M12 2C7.6 2 4 5.6 4 10c0 5.4 7.1 11.6 7.4 11.9.6.6 1.6.6 2.2 0C13.9 21.6 21 15.4 21 10c0-4.4-3.6-8-9-8z`,fill:`#ff4d4f`}),W(`circle`,{cx:`12`,cy:`10`,r:`3`,fill:`#fff`})])],-1),n.markerName?(V(),H(`div`,Gf,M(e.doI18n(n.markerName)),1)):q(`v-if`,!0)])]),t[2]||=W(`div`,{class:`ce_map_placeholder`},null,-1)],4)}var qf=Z(Hf,[[`render`,Kf],[`__scopeId`,`data-v-512dee75`],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Map.vue`]]),Jf={name:`CeMultiColumn`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},column:{type:[Number,String],default:0}},computed:{cols(){let e=parseInt(this.column,10);return e>0?e:(this.$slots.default?this.$slots.default():[]).filter(e=>e&&e.type!==$o&&e.type!==Qo).length},styleObj(){let e=new od(this,this.styleProps).parse();return this.cols>1&&(e.display=`grid`,e.gridTemplateColumns=`repeat(${this.cols}, 1fr)`),e}}};function Yf(e,t,n,r,i,a){return V(),H(`div`,{ref:`mc`,class:`ce_multicolumn`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[ca(e.$slots,`default`,{},void 0,!0)],4)}var Xf={Root:ud,Row:pd,Column:gd,Text:yd,Button:Sd,Divider:Td,Icon:Bd,Image:Ud,MultiText:Jd,ListLayout:Zd,GridLayout:ef,Canvas:uf,Input:mf,ViewContainer:_f,AbsoluteLayout:xf,CheckGroup:Af,RadioButton:Pf,ProgressSlider:Lf,Video:Vf,Map:qf,MultiColumn:Z(Jf,[[`render`,Yf],[`__scopeId`,`data-v-1881a1f4`],[`__file`,`/Users/ynet/dsl-card/card-editor/components/MultiColumn.vue`]])},Zf=new Set([`ListLayout`,`GridLayout`]);function Qf(e){return Xf[e]||null}function $f(e){let t={},n=e||{};for(let e in n)e===`$$`?t[e]=n[e]:t[`$`+e]=n[e];return t}function ep(e,t){let n=$f(t),r=new Proxy(n,{has(e,t){return typeof t==`string`&&(t[0]===`$`||t===`$$`)||t in e},get(e,t){if(t in e||typeof t!=`string`||t[0]!==`$`&&t!==`$$`)return e[t]}});return Function(`vars`,`\n\t\twith(vars){\n\t\t\treturn (${e})\n\t\t}\n\t`)(r)}function tp(e,t,n){let r=String(t).split(`.`),i=r.pop(),a=e;for(let e=0;e<r.length;e++)a=a[r[e]];a[i]=n}function np(e={},t={},n){let r=JSON.parse(JSON.stringify(e||{})),i=e&&e.__vars__;if(i)for(let e in i)try{tp(r,e,ep(i[e],t))}catch(t){n&&n.push({kind:`bind`,msg:`${e} <- ${i[e]}: ${t&&t.message}`,path:e,expr:i[e]})}return delete r.__vars__,r}function rp(e,t,n){return Object.assign({},e,typeof t==`object`&&t||{},{$$:t,_index:n})}function ip(e,t){return new Proxy({},{get(n,r){return r in t?t[r]:e[r]},has(n,r){return r in t||r in e},ownKeys(){let n=new Set;for(let e of Object.keys(t))n.add(e);for(let t of Object.keys(e))n.add(t);return[...n]},getOwnPropertyDescriptor(n,r){if(r in t)return{enumerable:!0,configurable:!0,value:t[r]};if(r in e)return{enumerable:!0,configurable:!0,value:e[r]}}})}var ap={name:`CustomPlaceholder`,props:{icon:{type:String,default:``},props:{type:Object,default:()=>({})},customClass:{type:String,default:``},title:{type:String,default:``}},computed:{tagText(){return this.title||`自定义组件`},label(){if(this.customClass)return this.customClass;let e=Object.keys(this.props||{});return e.length?e.join(`, `):`未指定 customClass`}}},op={class:`ce_custom_placeholder`},sp={class:`ce_custom_placeholder_tag`},cp={class:`ce_custom_placeholder_name`};function lp(e,t,n,r,i,a){return V(),H(`div`,op,[W(`span`,sp,M(a.tagText),1),W(`span`,cp,M(a.label),1),ca(e.$slots,`default`)])}var up=Z(ap,[[`render`,lp],[`__file`,`/Users/ynet/dsl-card/card-editor/components/CustomPlaceholder.vue`]]),dp=cn({el:null,id:null,visible:!1,top:0,left:0,width:0,height:0});function fp(e,t){dp.id!==t&&(dp.el=e,dp.id=t,dp.visible=!0)}function pp(e){dp.id===e&&(dp.el=null,dp.id=null,dp.visible=!1)}var mp=new Set([``,`onReady`,`onLoad`,`onCreate`]);function hp(e){return mp.has(e||``)}function gp(e){let t=String(e).replace(/-(\w)/g,(e,t)=>t.toUpperCase());return`on`+t.charAt(0).toUpperCase()+t.slice(1)}function _p(e){return typeof window<`u`&&window.CSS&&CSS.escape?CSS.escape(String(e)):String(e).replace(/["\\\]]/g,`\\$&`)}var vp=Z({name:`RenderTree`,inject:[`adapter`,`cardRuntime`],props:{node:{type:Object,required:!0},scope:{type:Object,default:()=>({})},selectedNodeId:{type:String,default:``}},methods:{getChildNodes(e){let t=e.slots||[];return t.length&&t[0].components&&t[0].components.length?t[0].components:e.components||[]},actionCode(e){let t=e.action&&e.action.properties&&e.action.properties.function||{};return t.code||t.compiled||``},isVisible(e,t){let n=this.cardRuntime,r=e.directives&&e.directives[`v-show`];if(!r)return!0;let i=r.showType||`00`;if(i===`00`)return!0;let a=(r.condition||{}).expression;if(!a)return i===`01`;try{let e=ep(a,t);return i===`01`?!!e:!e}catch(t){return n.pushError(`vshow`,`${e.className}: [${a}] -> ${t.message}`),i===`01`}},buildHandlers(e,t){this.cardRuntime;let n={};return(e.eventactions||[]).forEach(r=>{let i=(r.event||{}).eventKey||``;if(hp(i))return;let a=r.action||{},o=a.actionType;if(o===`customAction`){let a=this.actionCode(r);n[i]=n=>this.runCustomAction(a,t,n,e)}else n[i]=n=>this.runSystemAction(o,a.properties,t,n,e)}),n},runCustomAction(e,t,n,r){let i=this.cardRuntime,a={state:new Proxy(t,{set(e,t,n){return i.state[t]=n,!0}}),data:i.state,setData(e){e&&typeof e==`object`&&Object.assign(i.state,e),i.markDirty()},setRootData(e){e&&typeof e==`object`&&Object.assign(i.rootScope,e),i.markDirty()},addEventListener(e,t){i.addEventListener(e,t)},postMessage(e,t){i.postMessage(e,t)}},o={log:(...e)=>{console.log(...e),i.pushLog(`log`,e)},info:(...e)=>{console.info(...e),i.pushLog(`info`,e)},warn:(...e)=>{console.warn(...e),i.pushLog(`warn`,e)},error:(...e)=>{console.error(...e),i.pushLog(`error`,e)},debug:(...e)=>{console.debug(...e),i.pushLog(`debug`,e)}};try{Function(`event`,`console`,e||``).apply(a,[n,o])}catch(e){let t=r&&r.id?`${r.className}(${r.id})`:r.className;i.pushError(`customAction`,`${t}: ${e.message}`),console.error(`[customAction error]`,t,e)}},runSystemAction(e,t,n,r,i){let a=this.cardRuntime,o=typeof window<`u`?window.ynet:null;!o&&typeof window<`u`&&(o=window.ynet={callJSAPI(e,t,n){if(a.pushApiCall(e,t),typeof n==`function`)try{n({})}catch{}}});let s=t||{};e===`closeAlertCard`?o.callJSAPI(`closeAlertCard`,s,s&&s.callback):e===`sendAiChatMessage`?o.callJSAPI(`sendAiChatMessage`,{message:s&&s.message||``},void 0):o.callJSAPI(e,s,void 0),a.pushApiCall(e,s)},runLoadActions(){let e=this.cardRuntime,t=this.node;t.__loadRan||(t.__loadRan=!0,(t.eventactions||[]).forEach(n=>{if(!hp((n.event||{}).eventKey||``)||(n.action||{}).actionType!==`customAction`)return;let r=this.actionCode(n);r&&this.runCustomAction(r,ip(e.state,this.scope),void 0,t)}))},renderNode(e){if(e.visible===!1)return null;let t=this.cardRuntime,n=ip(t.state,this.scope);if(!this.isVisible(e,n))return null;let r=Qf(e.className);if(!r){let t=this.getChildNodes(e).map(e=>this.renderSub(e,n));return Qs(up,{customClass:e.className,title:`未知组件`},()=>t)}let i=np(e.properties||{},n,t.getBindingBuffer()),a=np(e.style&&e.style.properties||{},n,t.getBindingBuffer()),o=Object.assign({},i,{styleProps:a});o[`data-cid`]=e.componentId||e.id,o[`data-class`]=e.className,o[`data-id`]=e.id;let s=this.buildHandlers(e,n);for(let e in s)o[gp(e)]=s[e];if(e.className===`Input`&&!o.onInput){let n=(e.properties&&e.properties.__vars__||{}).value,r=/^\s*\$([A-Za-z_$][\w$]*)\s*$/.exec(String(n||``));if(r){let e=r[1];o.onInput=n=>{t.state[e]=n}}}if((e.className===`RadioButton`||e.className===`CheckGroup`)&&!o.onChange){let n=(e.properties&&e.properties.__vars__||{}).value,r=/^\s*\$([A-Za-z_$][\w$]*)\s*$/.exec(String(n||``));if(r){let e=r[1];o.onChange=n=>{t.state[e]=n,t.markDirty()}}}if(e.className===`ProgressSlider`){let n=(e.properties&&e.properties.__vars__||{}).value,r=/^\s*\$([A-Za-z_$][\w$]*)\s*$/.exec(String(n||``));if(r){let e=r[1],n=n=>{t.state[e]=n,t.markDirty()},i=o.onChange,a=o.onSelectChange;o.onChange=e=>{try{i&&i(e)}finally{n(e)}},o.onSelectChange=e=>{try{a&&a(e)}finally{n(e)}}}}let c=this.getChildNodes(e);return Zf.has(e.className)?Qs(r,o,{default:e=>{let t=rp(n,e.item,e.index);return c.map(e=>this.renderSub(e,t))}}):Qs(r,o,()=>c.map(e=>this.renderSub(e,n)))},renderSub(e,t){return Qs(vp,{node:e,scope:t,selectedNodeId:this.selectedNodeId})},updateHighlight(){let e=this.$el;if(!e||e.nodeType!==1)return;let t=this.node.id;if(this.selectedNodeId&&t===this.selectedNodeId){let n=typeof document<`u`?document.querySelector(`.phone__screen`):null;fp((n?n.querySelector(`[data-id="`+_p(String(t))+`"]`):null)||e,t)}else pp(t)}},render(){return this.cardRuntime.revision,this.node.className===`Root`&&this.cardRuntime.startBindingPass(),this.renderNode(this.node)},created(){this.runLoadActions()},mounted(){this.runLoadActions(),this.$nextTick(()=>this.updateHighlight()),this.node.className===`Root`&&this.cardRuntime.commitBindingPass()},updated(){this.node.className===`Root`&&this.cardRuntime.commitBindingPass()},watch:{selectedNodeId(){this.updateHighlight()}}},[[`__file`,`/Users/ynet/dsl-card/card-editor/components/RenderTree.vue`]]);async function yp(e){try{if(navigator.clipboard&&navigator.clipboard.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}var bp=cn({visible:!1,message:``,type:`ok`}),xp=null;function Q(e,t=`ok`,n=2400){bp.message=e,bp.type=t,bp.visible=!0,xp&&clearTimeout(xp),xp=setTimeout(()=>{bp.visible=!1,xp=null},n)}var Sp={name:`ConfirmDialog`,props:{visible:{type:Boolean,default:!1},title:{type:String,default:``},message:{type:String,default:``},confirmText:{type:String,default:`继续`},cancelText:{type:String,default:`取消`},closeOnMask:{type:Boolean,default:!0},severity:{type:String,default:`primary`,validator:e=>[`primary`,`warn`,`danger`].includes(e)}},emits:[`confirm`,`cancel`],computed:{confirmBtnClass(){return this.severity===`danger`?`confirm-modal__btn--danger`:this.severity===`warn`?`confirm-modal__btn--warn`:`confirm-modal__btn--primary`}}},Cp=[`aria-label`],wp={key:0,class:`confirm-modal__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Tp={key:1,class:`confirm-modal__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Ep={key:2,class:`confirm-modal__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Dp={class:`confirm-modal__desc`},Op={class:`confirm-modal__actions`};function kp(e,t,n,r,i,a){return V(),U(hc,{name:`modal`},{default:I(()=>[n.visible?(V(),H(`div`,{key:0,class:`confirm-mask`,onClick:t[2]||=J(t=>n.closeOnMask&&e.$emit(`cancel`),[`self`])},[W(`div`,{class:`confirm-modal modal-card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":n.title},[W(`div`,{class:j([`confirm-modal__title`,{"is-danger":n.severity===`danger`,"is-warn":n.severity===`warn`}])},[n.severity===`danger`?(V(),H(`svg`,wp,[...t[3]||=[W(`use`,{href:`#icon-no-entry`},null,-1)]])):n.severity===`warn`?(V(),H(`svg`,Tp,[...t[4]||=[W(`use`,{href:`#icon-alert-triangle`},null,-1)]])):(V(),H(`svg`,Ep,[...t[5]||=[W(`use`,{href:`#icon-gear`},null,-1)]])),K(` `+M(n.title),1)],2),W(`div`,Dp,M(n.message),1),W(`div`,Op,[W(`button`,{class:`confirm-modal__btn confirm-modal__btn--ghost`,type:`button`,onClick:t[0]||=t=>e.$emit(`cancel`)},M(n.cancelText),1),W(`button`,{class:j([`confirm-modal__btn`,a.confirmBtnClass]),type:`button`,onClick:t[1]||=t=>e.$emit(`confirm`)},M(n.confirmText),3)])],8,Cp)])):q(`v-if`,!0)]),_:1})}var Ap=Z(Sp,[[`render`,kp],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ConfirmDialog.vue`]]),jp=cn({openAll:null,selectedPath:null});function Mp(e,t,n){let r=e;for(let e=0;e<t.length-1;e++)r=r[t[e]];r[t[t.length-1]]=n}function Np(e,t){let n=e;for(let e=0;e<t.length-1;e++)n=n[t[e]];delete n[t[t.length-1]]}function Pp(e,t,n,r){if(!r||r===n)return!1;let i=e;for(let e=0;e<t.length;e++)i=i[t[e]];if(r in i)return!1;let a=i[n];return delete i[n],i[r]=a,!0}function Fp(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}var Ip={name:`JsonTree`,components:{ConfirmDialog:Ap},props:{data:{type:[Object,Array],default:()=>({})},depth:{type:Number,default:0},rt:{type:Object,default:null},path:{type:Array,default:()=>[]},editable:{type:Boolean,default:!1},defaultOpen:{type:Number,default:2},showTools:{type:Boolean,default:!1},schema:{type:Object,default:null}},data(){return{localOpen:{},editingKey:null,editingValue:null,editingComplex:null,jsonEditText:``,ctxMenu:{visible:!1,x:0,y:0,item:null},delConfirm:{show:!1,message:``,item:null}}},computed:{isRoot(){return this.depth===0},entries(){let e=this.data;return Array.isArray(e)?e.map((e,t)=>this.makeEntry(String(t),e,!0,t)):e&&typeof e==`object`?Object.keys(e).map(t=>this.makeEntry(t,e[t],!1,t)):[]}},watch:{data(){this.initOpen(),this.isRoot&&(jp.selectedPath=null)}},created(){this.isRoot&&(jp.openAll=null),this.initOpen()},methods:{makeEntry(e,t,n,r){let i=Array.isArray(t),a=i?t.length:Object.keys(t||{}).length;return{key:String(r),keyLabel:e,value:t,isArrayBranch:n,isArray:i,count:a,type:this.valueType(t),path:[...this.path,r]}},valueType(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e},isComplex(e){return typeof e==`object`&&!!e},initOpen(){let e={};this.entries.forEach(t=>{e[t.key]=this.depth<this.defaultOpen}),this.localOpen=e},isOpen(e){return jp.openAll===null?!!this.localOpen[e]:jp.openAll},toggle(e){let t=jp.openAll===null?!!this.localOpen[e]:jp.openAll;this.localOpen[e]=!t,jp.openAll=null},isSelected(e){let t=jp.selectedPath;return!t||t.length!==e.path.length?!1:t.every((t,n)=>String(t)===String(e.path[n]))},selectNode(e){jp.selectedPath=this.isSelected(e)?null:e.path.slice()},onBranchClick(e){this.toggle(e.key),jp.selectedPath=e.path.slice()},setOpen(e){jp.openAll=e},previewText(e){if(Array.isArray(e))return` … `+e.length+` 项`;let t=Object.keys(e);return` … `+t.slice(0,3).join(`, `)+(t.length>3?`, …`:``)+` `},formatPrimitive(e,t){return e===null?`null`:t===`string`?JSON.stringify(e):String(e)},formatForEdit(e,t){return e===null?`null`:t===`string`?e:String(e)},startEditKey(e){this.cancelEdit(),this.editingKey=e.key,this.$nextTick(()=>{let e=this.$refs.keyInput;if(e){let t=Array.isArray(e)?e[0]:e;t.focus(),t.select()}})},confirmEditKey(e,t){let n=t.target.value.trim();if(!n||n===e.keyLabel)this.cancelEdit();else{if(this.rt&&this.rt.rootScope){let t=e.path.slice(0,-1),r=e.path[e.path.length-1];if(!Pp(this.rt.rootScope,t,r,n)){this.cancelEdit();return}this.rt.markDirty()}this.editingKey=null}},startEditValue(e){this.cancelEdit(),this.editingValue=e.key,this.$nextTick(()=>{let e=this.$refs.valInput;if(e){let t=Array.isArray(e)?e[0]:e;t.focus(),t.select()}})},confirmEditValue(e,t){let n=t.target.value,r=n;if(e.type===`number`){let e=Number(n);isNaN(e)||(r=e)}else if(e.type===`boolean`)n===`true`?r=!0:n===`false`&&(r=!1);else if(e.type===`null`)r=n===`null`?null:n;else if(e.type===`string`)r=n;else try{r=JSON.parse(n)}catch{}this.rt&&this.rt.rootScope&&(Mp(this.rt.rootScope,e.path,r),this.rt.markDirty()),this.editingValue=null},startEditComplex(e){this.cancelEdit(),this.editingComplex=e.key,this.jsonEditText=JSON.stringify(e.value,null,2),this.$nextTick(()=>{let e=this.$refs.jsonInput;if(e){let t=Array.isArray(e)?e[0]:e;t.focus(),t.select()}})},confirmEditComplex(e){try{let t=JSON.parse(this.jsonEditText);this.rt&&this.rt.rootScope&&(Mp(this.rt.rootScope,e.path,t),this.rt.markDirty()),this.cancelEdit()}catch(e){alert(`JSON 解析失败: `+e.message)}},cancelEdit(){this.editingKey=null,this.editingValue=null,this.editingComplex=null,this.jsonEditText=``},deleteNode(e){this.rt&&this.rt.rootScope&&(Np(this.rt.rootScope,e.path),this.rt.markDirty())},addChild(){if(!this.rt||!this.rt.rootScope)return;let e=this.rt.rootScope,t=jp.selectedPath;if(t&&t.length){let n=Fp(this.rt.rootScope,t);typeof n==`object`&&n&&(e=n)}if(Array.isArray(e))e.push(``),this.rt.markDirty();else if(e&&typeof e==`object`){let t=`newKey`,n=1;for(;t in e;)t=`newKey`+(n>1?n:``),n++;e[t]=``,this.rt.markDirty()}},showContextMenu(e,t){this.ctxMenu.visible=!0,this.ctxMenu.x=t.clientX,this.ctxMenu.y=t.clientY,this.ctxMenu.item=e},hideContextMenu(){this.ctxMenu.visible=!1,this.ctxMenu.item=null},ctxCopyPath(){let e=this.ctxMenu.item;if(this.hideContextMenu(),!e)return;let t=this.formatKeyPath(e.path);yp(t).then(e=>{e?Q(`已复制路径:${t}`,`ok`):Q(`复制失败,请手动复制`,`err`)})},formatKeyPath(e){let t=``;for(let n of e)typeof n==`number`||/^\d+$/.test(String(n))?t+=`[${n}]`:t+=t?`.${n}`:`${n}`;return t},ctxDelete(){let e=this.ctxMenu.item;if(this.hideContextMenu(),e){if(this.isNodeReferenced(e.path)){let t=e.path.join(`.`);this.delConfirm.message=`节点 “${t}” 在 schema 中被引用,删除后可能导致渲染异常。\n\n确定要删除吗?`,this.delConfirm.item=e,this.delConfirm.show=!0}else this.deleteNode(e)}},onDelConfirm(){let e=this.delConfirm.item;this.delConfirm.show=!1,this.delConfirm.item=null,e&&this.deleteNode(e)},onDelCancel(){this.delConfirm.show=!1,this.delConfirm.item=null},isNodeReferenced(e){if(!this.schema)return!1;let t=JSON.stringify(this.schema);for(let n=0;n<e.length;n++){let r=e.slice(0,n+1).join(`.`),i=e[n];if(t.includes(`$`+i)||t.includes(`$`+r)||t.includes(`state.`+i)||t.includes(`state.`+r)||RegExp(`\\b`+this.escapeRegex(i)+`\\b`).test(t))return!0}return!1},escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}}},Lp={class:`jt`},Rp={key:0,class:`jt__toolbar`},zp={class:`jt__tool-group`},Bp=[`onClick`,`onContextmenu`],Vp=[`onDblclick`],Hp=[`value`,`onKeydown`,`onBlur`],Up=[`onDblclick`],Wp=[`onDblclick`],Gp=[`value`,`onKeydown`],Kp={class:`jt__json-actions`},qp=[`onClick`],Jp={key:2,class:`jt__row jt__row--close`},Yp={class:`jt__bracket`},Xp={class:`jt__count`},Zp=[`onClick`,`onContextmenu`],Qp=[`onDblclick`],$p=[`value`,`onKeydown`,`onBlur`],em={key:1,class:`jt__key`},tm={key:2,class:`jt__colon`},nm=[`onDblclick`],rm=[`value`,`onKeydown`,`onBlur`],im=[`onClick`];function am(e,t,n,r,i,a){let o=R(`JsonTree`,!0),s=R(`ConfirmDialog`);return V(),H(`div`,Lp,[q(` 仅根节点显示批量控制条:可编辑树给全套(含 + 添加);
|
|
143
|
+
For more details, see https://link.vuejs.org/feature-flags.`)}}var zo=Zo;function Bo(e){return Vo(e)}function Vo(e,t){Ro();let n=xe();n.__VUE__=!0,jr(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);let{insert:r,remove:i,patchProp:a,createElement:o,createText:s,createComment:c,setText:l,setElementText:u,parentNode:d,nextSibling:h,setScopeId:g=m,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!hr&&!!t.dynamicChildren)=>{if(e===t)return;e&&!cs(e,t)&&(r=be(e),pe(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null),t.dynamicChildren&&e&&e.dynamicChildren&&e.dynamicChildren.hasOnce&&(t.dynamicChildren===p&&(t.dynamicChildren=[]),t.dynamicChildren.hasOnce=!0);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case Qo:y(e,t,n,r);break;case $o:b(e,t,n,r);break;case es:e==null?x(t,n,r,o):S(e,t,n,o);break;case B:re(e,t,n,r,i,a,o,s,c);break;default:d&1?ee(e,t,n,r,i,a,o,s,c):d&6?ie(e,t,n,r,i,a,o,s,c):d&64||d&128?l.process(e,t,n,r,i,a,o,s,c,Se):F(`Invalid VNode type:`,l,`(${typeof l})`)}u!=null&&i?Li(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Li(e.ref,null,a,e,!0)},y=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},b=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=(e,t,n,r)=>{if(t.children!==e.children){let i=h(e.anchor);w(e),[t.el,t.anchor]=_(t.children,n,i,r)}else t.el=e.el,t.anchor=e.anchor},C=({el:e,anchor:t},n,i)=>{let a;for(;e&&e!==t;)a=h(e),r(e,n,i),e=a;r(t,n,i)},w=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),i(e),e=n;i(t)},ee=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)T(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),O(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&D(e.children,f,null,i,s,Ho(e,c),l,d),_&&qr(e,null,i,`created`),E(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!se(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&Ss(p,i,e)}_e(f,`__vnode`,e,!0),_e(f,`__vueParentComponent`,i,!0),_&&qr(e,null,i,`beforeMount`);let v=Wo(s,g);if(v&&g.beforeEnter(f),r(f,t,n),(p=m&&m.onVnodeMounted)||v||_){let t=hr;zo(()=>{let n;n=gr(t);try{p&&Ss(p,i,e),v&&g.enter(f),_&&qr(e,null,i,`mounted`)}finally{gr(n)}},s)}},E=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t<r.length;t++)g(e,r[t]);if(i){let n=i.subTree;if(n.patchFlag>0&&n.patchFlag&2048&&(n=Xa(n.children)||n),t===n||Xo(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;E(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},D=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++){let c=e[l]=s?ys(e[l]):vs(e[l]);v(null,c,t,n,r,i,a,o,s)}},O=(e,t,n,r,i,o,s)=>{let c=t.el=e.el;c.__vnode=t;let{patchFlag:l,dynamicChildren:d,dirs:p}=t;l|=e.patchFlag&16;let m=e.props||f,h=t.props||f,g;if(n&&Uo(n,!1),(g=h.onVnodeBeforeUpdate)&&Ss(g,n,t,e),p&&qr(t,e,n,`beforeUpdate`),n&&Uo(n,!0),(hr||d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length))&&(l=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&u(c,``),d?(te(e.dynamicChildren,d,c,n,r,Ho(t,i),o),Go(e,t)):s||ue(e,t,c,null,n,r,Ho(t,i),o,!1),l>0){if(l&16)ne(c,m,h,n,i);else if(l&2&&m.class!==h.class&&a(c,`class`,null,h.class,i),l&4&&a(c,`style`,m.style,h.style,i),l&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let r=e[t],o=m[r],s=h[r];(s!==o||r===`value`)&&a(c,r,o,s,i,n)}}l&1&&e.children!==t.children&&u(c,t.children)}else!s&&d==null&&ne(c,m,h,n,i);((g=h.onVnodeUpdated)||p)&&zo(()=>{g&&Ss(g,n,t,e),p&&qr(t,e,n,`updated`)},r)},te=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s],u=c.el||Yo(c),f=u&&(c.type===B||!cs(c,l)||c.shapeFlag&198)?d(u):n;v(c,l,f,null,r,i,a,o,!0)}},ne=(e,t,n,r,i)=>{if(t!==n){if(t!==f)for(let o in t)!se(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(se(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},re=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;(hr||p&2048)&&(p=0,u=!1,m=null),h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),D(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(te(e.dynamicChildren,m,n,a,o,c,l),Go(e,t)):ue(e,t,n,f,a,o,c,l,u)},ie=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ae(t,n,r,i,a,o,c):oe(e,t,c)},ae=(e,t,n,r,i,a,o)=>{let s=e.component=Es(e,r,i);if(s.type.__hmrId&&yr(s),Fn(e),Fo(s,`mount`),Bi(e)&&(s.ctx.renderer=Se),Fo(s,`init`),Ls(s,!1,o),Io(s,`init`),hr&&(e.el=null),s.asyncDep){if(i&&i.registerDep(s,ce,o,a),!e.el){let r=s.subTree=G($o);b(null,r,t,n),e.placeholder=r.el}}else ce(s,e,t,n,i,a,o);In(),Io(s,`mount`)},oe=(e,t,n)=>{let r=t.component=e.component;if(eo(e,t,n)){if(r.asyncDep&&!r.asyncResolved){Fn(t),t.el=e.el,t.placeholder=e.placeholder,le(r,t,n),In();return}r.next=t,r.update()}else t.el=e.el,t.placeholder=e.placeholder,r.vnode=t},ce=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=qo(e);if(n){t&&(t.el=c.el,le(e,t,o)),n.asyncDep.then(()=>{zo(()=>{e.isUnmounted||l()},i)});return}}let u=t,f;Fn(t||e.vnode),Uo(e,!1),t?(t.el=c.el,le(e,t,o)):t=c,n&&ge(n),(f=t.props&&t.props.onVnodeBeforeUpdate)&&Ss(f,s,t,c),Uo(e,!0),Fo(e,`render`);let p=Ja(e);Io(e,`render`);let m=e.subTree;e.subTree=p,Fo(e,`patch`),v(m,p,d(m.el),be(m),e,i,a),Io(e,`patch`),t.el=p.el,u===null&&ro(e,p.el),r&&zo(r,i),(f=t.props&&t.props.onVnodeUpdated)&&zo(()=>Ss(f,s,t,c),i),Fr(e),In()}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=zi(t);if(Uo(e,!1),l&&ge(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Ss(o,d,t),Uo(e,!0),s&&we){let t=()=>{Fo(e,`render`),e.subTree=Ja(e),Io(e,`render`),Fo(e,`hydrate`),we(s,e.subTree,e,i,null),Io(e,`hydrate`)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0),Fo(e,`render`);let o=e.subTree=Ja(e);Io(e,`render`),Fo(e,`patch`),v(null,o,n,r,e,i,a),Io(e,`patch`),t.el=o.el}if(u&&zo(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;zo(()=>Ss(o,d,e),i)}(t.shapeFlag&256||d&&zi(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&zo(e.a,i),e.isMounted=!0,Pr(e),t=n=r=null}};e.scope.on();let c=e.effect=new Xe(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>ar(u),Uo(e,!0),c.onTrack=e.rtc?t=>ge(e.rtc,t):void 0,c.onTrigger=e.rtg?t=>ge(e.rtg,t):void 0,l()},le=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,lo(e,t.props,r,n),Mo(e,t.children,n),dt(),cr(e),ft()},ue=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){fe(l,f,n,r,i,a,o,s,c);return}if(p&256){de(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&ye(l,i,a),f!==l&&u(n,f)):d&16?m&16?fe(l,f,n,r,i,a,o,s,c):ye(l,i,a,!0):(d&8&&u(n,``),m&16&&D(f,n,r,i,a,o,s,c))},de=(e,t,n,r,i,a,o,s,c)=>{e||=p,t||=p;let l=e.length,u=t.length,d=Math.min(l,u),f=0;for(;f<d;f++){let r=t[f]=c?ys(t[f]):vs(t[f]);v(e[f],r,n,null,i,a,o,s,c)}l>u?ye(e,i,a,!0,!1,d):D(t,n,r,i,a,o,s,c,d)},fe=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,f=u-1;for(;l<=d&&l<=f;){let r=e[l],u=t[l]=c?ys(t[l]):vs(t[l]);if(cs(r,u))v(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=f;){let r=e[d],l=t[f]=c?ys(t[f]):vs(t[f]);if(cs(r,l))v(r,l,n,null,i,a,o,s,c);else break;d--,f--}if(l>d){if(l<=f){let e=f+1,d=e<u?t[e].el:r;for(;l<=f;)v(null,t[l]=c?ys(t[l]):vs(t[l]),n,d,i,a,o,s,c),l++}}else if(l>f)for(;l<=d;)pe(e[l],i,a,!0),l++;else{let m=l,h=l,g=new Map;for(l=h;l<=f;l++){let e=t[l]=c?ys(t[l]):vs(t[l]);e.key!=null&&(g.has(e.key)&&F(`Duplicate keys found during update:`,JSON.stringify(e.key),`Make sure keys are unique.`),g.set(e.key,l))}let _,y=0,b=f-h+1,x=!1,S=0,C=Array(b);for(l=0;l<b;l++)C[l]=0;for(l=m;l<=d;l++){let r=e[l];if(y>=b){pe(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=h;_<=f;_++)if(C[_-h]===0&&cs(r,t[_])){u=_;break}u===void 0?pe(r,i,a,!0):(C[u-h]=l+1,u>=S?S=u:x=!0,v(r,t[u],n,null,i,a,o,s,c),y++)}let w=x?Ko(C):p;for(_=w.length-1,l=b-1;l>=0;l--){let e=h+l,d=t[e],f=t[e+1],p=e+1<u?f.el||Yo(f):r;C[l]===0?v(null,d,n,p,i,a,o,s,c):x&&(_<0||l!==w[_]?k(d,n,p,2):_--)}}},k=(e,t,n,a,o=null)=>{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6)k(e.component.subTree,t,n,a);else if(d&128)e.suspense.move(t,n,a);else if(d&64)c.move(e,t,n,Se);else if(c===B){r(s,t,n);for(let e=0;e<u.length;e++)k(u[e],t,n,a);r(e.anchor,t,n)}else if(c===es)C(e,t,n);else if(a!==2&&d&1&&l){if(a===0)l.persisted&&!s[_i]?r(s,t,n):(l.beforeEnter(s),r(s,t,n),zo(()=>l.enter(s),o));else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{let e=s._isLeaving||!!s[_i];s._isLeaving&&s[_i](!0),l.persisted&&!e?u():a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}}else r(s,t,n)},pe=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if((d===-2||l&&l.hasOnce)&&(i=!1),s!=null&&(dt(),Li(s,null,n,e,!0),ft()),p==null||e.ctx&&e.ctx!==t||(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!zi(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Ss(_,t,e),u&6)ve(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&qr(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==B||d>0&&d&64)?ye(l,t,n,!1,!0):(a===B&&d&384||!i&&u&16)&&ye(c,t,n),r&&me(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&zo(()=>{_&&Ss(_,t,e),h&&qr(e,null,t,`unmounted`),v&&(e.el=null)},n)},me=e=>{let{type:t,el:n,anchor:r,transition:a}=e,o=t===B;if(o&&!a){he(n,r);return}if(t===es){w(e),a&&!a.persisted&&a.afterLeave&&a.afterLeave();return}let s=o?ji(e):e,c=()=>{o?d(n)&&he(n,r):i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(s&&s.shapeFlag&1&&a&&!a.persisted){let{leave:e,delayLeave:t}=a,n=s.el,r=()=>e(n,c);t?t(n,c,r):r()}else c()},he=(e,t)=>{let n;for(;e!==t;)n=h(e),i(e),e=n;i(t)},ve=(e,t,n)=>{e.type.__hmrId&&br(e);let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Jo(c),Jo(l),r&&ge(r),i.stop(),a?(a.flags|=8,pe(o,e,t,n)):e.vnode.el&&o&&(o.transition=e.vnode.transition,pe(o,e,t,n)),s&&zo(s,t),zo(()=>{e.isUnmounted=!0},t),Lr(e)},ye=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)pe(e[o],t,n,r,i)},be=e=>{if(e.shapeFlag&6)return be(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[ii];return n?h(n):t},A=(e,t,n)=>{dr(()=>{e==null?t._vnode&&pe(t._vnode,null,null,!0):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e},e&&t._vnode?void 0:e&&e.component?e.component.uid:Ts())},Se={p:v,um:pe,m:k,r:me,mt:ae,mc:D,pc:ue,pbc:te,n:be,o:e},Ce,we;return t&&([Ce,we]=t(Se)),{render:A,hydrate:Ce,createApp:za(A,Ce)}}function Ho({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Uo({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Wo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Go(e,t,n=!1){let r=e.children,i=t.children;if(S(r)&&S(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=ys(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&Go(t,a)),a.type===Qo&&(a.patchFlag===-1&&(a=i[e]=ys(a)),a.el=t.el),a.type===$o&&!a.el&&(a.el=t.el),a.el&&(a.el.__vnode=a)}}function Ko(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function qo(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:qo(t)}function Jo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Yo(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?Yo(t.subTree):null}var Xo=e=>e.__isSuspense;function Zo(e,t){t&&t.pendingBranch?S(e)?t.effects.push(...e):t.effects.push(e):sr(e)}var B=Symbol.for(`v-fgt`),Qo=Symbol.for(`v-txt`),$o=Symbol.for(`v-cmt`),es=Symbol.for(`v-stc`),ts=[],ns=null;function V(e=!1){ts.push(ns=e?null:[])}function rs(){ts.pop(),ns=ts[ts.length-1]||null}var is=1;function as(e,t=!1){is+=e,e<0&&ns&&t&&(ns.hasOnce=!0)}function os(e){return e.dynamicChildren=is>0?ns||p:null,rs(),is>0&&ns&&ns.push(e),e}function H(e,t,n,r,i,a){return os(W(e,t,n,r,i,a,!0))}function U(e,t,n,r,i){return os(G(e,t,n,r,i,!0))}function ss(e){return e?e.__v_isVNode===!0:!1}function cs(e,t){if(t.shapeFlag&6&&e.component){let n=_r.get(t.type);if(n&&n.has(e.component))return e.shapeFlag&=-257,t.shapeFlag&=-513,!1}return e.type===t.type&&e.key===t.key}var ls=(...e)=>ps(...e),us=({key:e})=>e??null,ds=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:E(e)||bn(e)||T(e)?{i:Ur,r:e,k:t,f:!!n}:e);function W(e,t=null,n=null,r=0,i=null,a=e===B?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&us(t),ref:t&&ds(t),scopeId:Wr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Ur};if(s?(bs(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=E(n)?8:16),c.key!==c.key&&F(`VNode created with invalid key (NaN). VNode type:`,c.type),t&&c.shapeFlag&1){let e=t.innerHTML==null?t.textContent==null?null:`textContent`:`innerHTML`;e&&fs(c.children)&&F(`The \`${e}\` prop on <${c.type}> will override its children. Remove either the \`${e}\` prop or the children.`)}return is>0&&!o&&ns&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&ns.push(c),c}function fs(e){return E(e)?e!==``:S(e)?e.length>0:!1}var G=ls;function ps(e,t=null,n=null,r=0,i=null,a=!1){if(e&&e!==ia||(e||F(`Invalid vnode type when creating vnode: ${e}.`),e=$o),ss(e)){let r=hs(e,t,!0);return n&&bs(r,n),is>0&&!a&&ns&&(r.shapeFlag&6?ns[ns.indexOf(e)]=r:ns.push(r)),r.patchFlag=-2,r}if(Xs(e)&&(e=e.__vccOpts),t){t=ms(t);let{class:e,style:n}=t;e&&!E(e)&&(t.class=j(e)),O(n)&&(gn(n)&&!S(n)&&(n=v({},n)),t.style=A(n))}let o=E(e)?1:Xo(e)?128:ai(e)?64:O(e)?4:T(e)?2:0;return o&4&&gn(e)&&(e=N(e),F("Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",`
|
|
144
|
+
Component that was made reactive: `,e)),W(e,t,n,r,i,o,a,!0)}function ms(e){return e?gn(e)||oo(e)?v({},e):e:null}function hs(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?xs(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&us(l),ref:t&&t.ref?n&&a?S(a)?a.concat(ds(t)):[a,ds(t)]:ds(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o===-1&&S(s)?s.map(gs):s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==B?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&hs(e.ssContent),ssFallback:e.ssFallback&&hs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&r&&ki(u,c.clone(u)),u}function gs(e){let t=hs(e);return S(e.children)&&(t.children=e.children.map(gs)),t}function K(e=` `,t=0){return G(Qo,null,e,t)}function _s(e,t){let n=G(es,null,e);return n.staticCount=t,n}function q(e=``,t=!1){return t?(V(),U($o,null,e)):G($o,null,e)}function vs(e){return e==null||typeof e==`boolean`?G($o):S(e)?G(B,null,e.slice()):ss(e)?ys(e):G(Qo,null,String(e))}function ys(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:hs(e)}function bs(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(S(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),bs(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!oo(t)?t._ctx=Ur:r===3&&Ur&&(Ur.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(T(t)){if(r&65){bs(e,{default:t});return}t={default:t,_ctx:Ur},n=32}else t=String(t),r&64?(n=16,t=[K(t)]):n=8;e.children=t,e.shapeFlag|=n}function xs(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=j([t.class,r.class]));else if(e===`style`)t.style=A([t.style,r.style]);else if(g(e)){let n=t[e],i=r[e];i&&n!==i&&!(S(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!_(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function Ss(e,t,n,r=null){Kn(e,t,7,[n,r])}var Cs=La(),ws=0;function Ts(){return ws}function Es(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||Cs,a={uid:ws++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ke(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:mo(r,i),emitsOptions:Wa(r,i),emit:null,emitted:null,propsDefaults:f,inheritAttrs:r.inheritAttrs,ctx:f,data:f,props:f,attrs:f,slots:f,refs:f,setupState:f,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx=_a(a),a.root=t?t.root:a,a.emit=Ha.bind(null,a),e.ce&&e.ce(a),a}var Ds=null,Os=()=>Ds||Ur,ks,As;{let e=xe(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};ks=t(`__VUE_INSTANCE_SETTERS__`,e=>Ds=e),As=t(`__VUE_SSR_SETTERS__`,e=>Is=e)}var js=e=>{let t=Ds;return ks(e),e.scope.on(),()=>{e.scope.off(),ks(t)}},Ms=()=>{Ds&&Ds.scope.off(),ks(null)},Ns=d(`slot,component`);function Ps(e,{isNativeTag:t}){(Ns(e)||t(e))&&F(`Do not use built-in or reserved HTML elements as component id: `+e)}function Fs(e){return e.vnode.shapeFlag&4}var Is=!1;function Ls(e,t=!1,n=!1){t&&As(t);let{props:r,children:i}=e.vnode,a=Fs(e);so(e,r,a,t),jo(e,i,n||t);let o=a?Rs(e,t):void 0;return t&&As(!1),o}function Rs(e,t){let n=e.type;if(n.name&&Ps(n.name,e.appContext.config),n.components){let t=Object.keys(n.components);for(let n=0;n<t.length;n++)Ps(t[n],e.appContext.config)}if(n.directives){let e=Object.keys(n.directives);for(let t=0;t<e.length;t++)Kr(e[t])}n.compilerOptions&&Bs()&&F(`"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`),e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ga),va(e);let{setup:r}=n;if(r){dt();let i=e.setupContext=r.length>1?Ws(e):null,a=js(e),o=Gn(r,e,0,[dn(e.props),i]),s=te(o);if(ft(),a(),(s||e.sp)&&!zi(e)&&Ni(e),s){if(o.then(Ms,Ms),t)return o.then(n=>{As(!0);try{zs(e,n,t)}finally{As(!1)}}).catch(t=>{qn(t,e,0)});e.asyncDep=o,e.suspense||F(`Component <${Ys(e,n)}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`)}else zs(e,o,t)}else Vs(e,t)}function zs(e,t,n){T(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:O(t)?(ss(t)&&F(`setup() should not return VNodes directly - return a render function instead.`),e.devtoolsRawSetupState=t,e.setupState=Tn(t),ya(e)):t!==void 0&&F(`setup() should return an object. Received: ${t===null?`null`:typeof t}`),Vs(e,n)}var Bs=()=>!0;function Vs(e,t,n){let r=e.type;e.render||=r.render||m;{let t=js(e);dt();try{Ca(e)}finally{ft(),t()}}!r.render&&e.render===m&&!t&&(r.template?F(`Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`):F(`Component is missing template or render function: `,r))}var Hs={get(e,t){return qa(),St(e,`get`,``),e[t]},set(){return F(`setupContext.attrs is readonly.`),!1},deleteProperty(){return F(`setupContext.attrs is readonly.`),!1}};function Us(e){return new Proxy(e.slots,{get(t,n){return St(e,`get`,`$slots`),t[n]}})}function Ws(e){let t=t=>{if(e.exposed&&F(`expose() should be called only once per setup().`),t!=null){let e=typeof t;e===`object`&&(S(t)?e=`array`:bn(t)&&(e=`ref`)),e!==`object`&&F(`expose() should be passed a plain object, received ${e}.`)}e.exposed=t||{}};{let n,r;return Object.freeze({get attrs(){return n||=new Proxy(e.attrs,Hs)},get slots(){return r||=Us(e)},get emit(){return(t,...n)=>e.emit(t,...n)},expose:t})}}function Gs(e){return e.exposed?e.exposeProxy||=new Proxy(Tn(_n(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pa)return pa[n](e)},has(e,t){return t in e||t in pa}}):e.proxy}var Ks=/(?:^|[-_])\w/g,qs=e=>e.replace(Ks,e=>e.toUpperCase()).replace(/[-_]/g,``);function Js(e,t=!0){return T(e)?e.displayName||e.name:e.name||t&&e.__name}function Ys(e,t,n=!1){let r=Js(t);if(!r&&t.__file){let e=t.__file.match(/([^/\\]+)\.\w+$/);e&&(r=e[1])}if(!r&&e){let n=e=>{for(let n in e)if(e[n]===t)return n};r=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return r?qs(r):n?`App`:`Anonymous`}function Xs(e){return T(e)&&`__vccOpts`in e}var Zs=(e,t)=>{let n=Dn(e,t,Is);{let e=Os();e&&e.appContext.config.warnRecursiveComputed&&(n._warnRecursive=!0)}return n};function Qs(e,t,n){try{as(-1);let r=arguments.length;return r===2?O(t)&&!S(t)?ss(t)?G(e,null,[t]):G(e,t):G(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ss(n)&&(n=[n]),G(e,t,n))}finally{as(1)}}function $s(){if(typeof window>`u`)return;let e={style:`color:#3ba776`},t={style:`color:#1677ff`},n={style:`color:#f5222d`},r={style:`color:#eb2f96`},i={__vue_custom_formatter:!0,header(t){if(!O(t))return null;if(t.__isVue)return[`div`,e,`VueInstance`];if(bn(t)){dt();let n=t.value;return ft(),[`div`,{},[`span`,e,u(t)],`<`,s(n),`>`]}return pn(t)?[`div`,{},[`span`,e,hn(t)?`ShallowReactive`:`Reactive`],`<`,s(t),`>${mn(t)?` (readonly)`:``}`]:mn(t)?[`div`,{},[`span`,e,hn(t)?`ShallowReadonly`:`Readonly`],`<`,s(t),`>`]:null},hasBody(e){return e&&e.__isVue},body(e){if(e&&e.__isVue)return[`div`,{},...a(e.$)]}};function a(e){let t=[];e.type.props&&e.props&&t.push(o(`props`,N(e.props))),e.setupState!==f&&t.push(o(`setup`,e.setupState)),e.data!==f&&t.push(o(`data`,N(e.data)));let n=c(e,`computed`);n&&t.push(o(`computed`,n));let i=c(e,`inject`);return i&&t.push(o(`injected`,i)),t.push([`div`,{},[`span`,{style:r.style+`;opacity:0.66`},`$ (internal): `],[`object`,{object:e}]]),t}function o(e,t){return t=v({},t),Object.keys(t).length?[`div`,{style:`line-height:1.25em;margin-bottom:0.6em`},[`div`,{style:`color:#476582`},e],[`div`,{style:`padding-left:1.25em`},...Object.keys(t).map(e=>[`div`,{},[`span`,r,e+`: `],s(t[e],!1)])]]:[`span`,{}]}function s(e,i=!0){return typeof e==`number`?[`span`,t,e]:typeof e==`string`?[`span`,n,JSON.stringify(e)]:typeof e==`boolean`?[`span`,r,e]:O(e)?[`object`,{object:i?N(e):e}]:[`span`,n,String(e)]}function c(e,t){let n=e.type;if(T(n))return;let r={};for(let i in e.ctx)l(n,i,t)&&(r[i]=e.ctx[i]);return r}function l(e,t,n){let r=e[n];if(S(r)&&r.includes(t)||O(r)&&t in r||e.extends&&l(e.extends,t,n)||e.mixins&&e.mixins.some(e=>l(e,t,n)))return!0}function u(e){return hn(e)?`ShallowRef`:e.effect?`ComputedRef`:`Ref`}window.devtoolsFormatters?window.devtoolsFormatters.push(i):window.devtoolsFormatters=[i]}var ec=`3.5.44`,tc=F,nc=void 0,rc=typeof window<`u`&&window.trustedTypes;if(rc)try{nc=rc.createPolicy(`vue`,{createHTML:e=>e})}catch(e){tc(`Error creating trusted types policy: ${e}`)}var ic=nc?e=>nc.createHTML(e):e=>e,ac=`http://www.w3.org/2000/svg`,oc=`http://www.w3.org/1998/Math/MathML`,sc=typeof document<`u`?document:null,cc=sc&&sc.createElement(`template`),lc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?sc.createElementNS(ac,e):t===`mathml`?sc.createElementNS(oc,e):n?sc.createElement(e,{is:n}):sc.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>sc.createTextNode(e),createComment:e=>sc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>sc.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{cc.innerHTML=ic(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=cc.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},uc=`transition`,dc=`animation`,fc=Symbol(`_vtc`),pc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},mc=v({},xi,pc),hc=(e=>(e.displayName=`Transition`,e.props=mc,e))((e,{slots:t})=>Qs(wi,vc(e),t)),gc=(e,t=[])=>{S(e)?e.forEach(e=>e(...t)):e&&e(...t)},_c=e=>e?S(e)?e.some(e=>e.length>1):e.length>1:!1;function vc(e){let t={};for(let n in e)n in pc||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=yc(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=_,onAppear:w=y,onAppearCancelled:ee=b}=t,T=(e,t,n,r)=>{e._enterCancelled=r,Sc(e,t?u:s),Sc(e,t?l:o),n&&n()},E=(e,t)=>{e._isLeaving=!1,Sc(e,d),Sc(e,p),Sc(e,f),t&&t()},D=e=>(t,n)=>{let i=e?w:y,o=()=>T(t,e,n);gc(i,[t,o]),Cc(()=>{Sc(t,e?c:a),xc(t,e?u:s),_c(i)||Tc(t,r,h,o)})};return v(t,{onBeforeEnter(e){gc(_,[e]),xc(e,a),xc(e,o)},onBeforeAppear(e){gc(C,[e]),xc(e,c),xc(e,l)},onEnter:D(!1),onAppear:D(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>E(e,t);xc(e,d),e._enterCancelled?(xc(e,f),kc(e)):(kc(e),xc(e,f)),Cc(()=>{e._isLeaving&&(Sc(e,d),xc(e,p),_c(x)||Tc(e,r,g,n))}),gc(x,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),gc(b,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),gc(ee,[e])},onLeaveCancelled(e){E(e),gc(S,[e])}})}function yc(e){if(e==null)return null;if(O(e))return[bc(e.enter),bc(e.leave)];{let t=bc(e);return[t,t]}}function bc(e){let t=ye(e);return Un(t,`<transition> explicit duration`),t}function xc(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[fc]||(e[fc]=new Set)).add(t)}function Sc(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[fc];n&&(n.delete(t),n.size||(e[fc]=void 0))}function Cc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var wc=0;function Tc(e,t,n,r){let i=e._endId=++wc,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Ec(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u<c&&d()},s+1),e.addEventListener(l,f)}function Ec(e,t){let n=window.getComputedStyle(e),r=e=>(n[e]||``).split(`, `),i=r(`${uc}Delay`),a=r(`${uc}Duration`),o=Dc(i,a),s=r(`${dc}Delay`),c=r(`${dc}Duration`),l=Dc(s,c),u=null,d=0,f=0;t===uc?o>0&&(u=uc,d=o,f=a.length):t===dc?l>0&&(u=dc,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?uc:dc:null,f=u?u===uc?a.length:c.length:0);let p=u===uc&&/\b(?:transform|all)(?:,|$)/.test(r(`${uc}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Dc(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>Oc(t)+Oc(e[n])))}function Oc(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function kc(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ac(e,t,n){let r=e[fc];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var jc=Symbol(`_vod`),Mc=Symbol(`_vsh`),Nc={name:`show`,beforeMount(e,{value:t},{transition:n}){e[jc]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Pc(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Pc(e,!0),r.enter(e)):r.leave(e,()=>{Pc(e,!1)}):Pc(e,t))},beforeUnmount(e,{value:t}){Pc(e,t)}};function Pc(e,t){e.style.display=t?e[jc]:`none`,e[Mc]=!t}var Fc=Symbol(`CSS_VAR_TEXT`),Ic=/(?:^|;)\s*display\s*:/;function Lc(e,t,n){let r=e.style,i=E(n),a=!1;if(n&&!i){if(t){if(E(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Bc(r,t,``)}else for(let e in t)n[e]??Bc(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Bc(r,i,``):Wc(e,i,!E(t)&&t?t[i]:void 0,o)||Bc(r,i,o)}}else if(i){if(t!==n){let e=r[Fc];e&&(n+=`;`+e),r.cssText=n,a=Ic.test(n)}}else t&&e.removeAttribute(`style`);jc in e&&(i&&t===n||(e[jc]=a?r.display:``),e[Mc]&&(r.display=`none`))}var Rc=/[^\\];\s*$/,zc=/\s*!important$/;function Bc(e,t,n){if(S(n))n.forEach(n=>Bc(e,t,n));else if(n??=``,Rc.test(n)&&tc(`Unexpected semicolon at the end of '${t}' style value: '${n}'`),t.startsWith(`--`))zc.test(n)?e.setProperty(t,n.replace(zc,``),`important`):e.setProperty(t,n);else{let r=Uc(e,t);zc.test(n)?e.setProperty(k(r),n.replace(zc,``),`important`):e[r]=n}}var Vc=[`Webkit`,`Moz`,`ms`],Hc={};function Uc(e,t){let n=Hc[t];if(n)return n;let r=de(t);if(r!==`filter`&&r in e)return Hc[t]=r;r=pe(r);for(let n=0;n<Vc.length;n++){let i=Vc[n]+r;if(i in e)return Hc[t]=i}return t}function Wc(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&E(r)&&n===r}var Gc=`http://www.w3.org/1999/xlink`;function Kc(e,t,n,r,i,a=Ne(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Gc,t.slice(6,t.length)):e.setAttributeNS(Gc,t,n):n==null||a&&!Pe(n)?e.removeAttribute(t):e.setAttribute(t,a?``:D(n)?String(n):n)}function qc(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?ic(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);r===i&&`_value`in e||(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=Pe(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch(e){o||tc(`Failed setting prop "${t}" on <${a.toLowerCase()}>: value ${n} is invalid.`,e)}o&&e.removeAttribute(i||t)}function Jc(e,t,n,r){e.addEventListener(t,n,r)}function Yc(e,t,n,r){e.removeEventListener(t,n,r)}var Xc=Symbol(`_vei`);function Zc(e,t,n,r,i=null){let a=e[Xc]||(e[Xc]={}),o=a[t];if(r&&o)o.value=al(r,t);else{let[n,s]=el(t);r?Jc(e,n,a[t]=il(al(r,t),i),s):o&&(Yc(e,n,o,s),a[t]=void 0)}}var Qc=/(Once|Passive|Capture)$/,$c=/^on:?(?:Once|Passive|Capture)$/;function el(e){let t,n;for(;(n=e.match(Qc))&&!$c.test(e);)t||={},e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===`:`?e.slice(3):k(e.slice(2)),t]}var tl=0,nl=Promise.resolve(),rl=()=>tl||=(nl.then(()=>tl=0),Date.now());function il(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(S(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&Kn(e,t,5,a)}}else Kn(r,t,5,[e])};return n.value=e,n.attached=rl(),n}function al(e,t){return T(e)||S(e)?e:(tc(`Wrong type passed as event handler to ${t} - did you forget @ or : in front of your prop?
|
|
145
|
+
Expected function or array of functions, received type ${typeof e}.`),m)}var ol=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sl=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ac(e,r,o):t===`style`?Lc(e,n,r):g(t)?_(t)||Zc(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):cl(e,t,r,o))?(qc(e,t,r),e.tagName.includes(`-`)||t!==`value`&&t!==`checked`&&t!==`selected`||Kc(e,t,r,o,a,t!==`value`)):e._isVueCE&&(ll(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!E(r)))?qc(e,de(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Kc(e,t,r,o))};function cl(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&ol(t)&&T(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return ol(t)&&E(n)?!1:t in e}function ll(e,t){let n=e._def.props;if(!n)return!1;let r=de(t);return Array.isArray(n)?n.some(e=>de(e)===r):Object.keys(n).some(e=>de(e)===r)}var ul=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return S(t)?e=>ge(t,e):t};function dl(e){e.target.composing=!0}function fl(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var pl=Symbol(`_assign`),ml=Symbol(`_initialValue`);function hl(e,t,n){return t&&(e=e.trim()),n&&(e=ve(e)),e}var gl={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&(e.type===`text`?e[ml]=e.defaultValue.replace(/[\r\n]/g,``):e.type===`textarea`&&(e[ml]=e.defaultValue.replace(/\r\n?/g,`
|
|
146
|
+
`))),e[pl]=ul(i);let a=r||i.props&&i.props.type===`number`;Jc(e,t?`change`:`input`,t=>{t.target.composing||e[pl](hl(e.value,n,a))}),(n||a)&&Jc(e,`change`,()=>{e.value=hl(e.value,n,a)}),t||(Jc(e,`compositionstart`,dl),Jc(e,`compositionend`,fl),Jc(e,`change`,fl))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[ml];delete e[ml],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[pl](hl(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[pl]=ul(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?ve(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},_l={deep:!0,created(e,t,n){e[pl]=ul(n),Jc(e,`change`,()=>{let t=e._modelValue,n=Cl(e),r=e.checked,i=e[pl];if(S(t)){let e=Be(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(w(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(wl(e,r))})},mounted:vl,beforeUpdate(e,t,n){e[pl]=ul(n),vl(e,t,n)}};function vl(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(S(t))i=Be(t,r.props.value)>-1;else if(w(t))i=t.has(r.props.value);else{if(t===n)return;i=ze(t,wl(e,!0))}e.checked!==i&&(e.checked=i)}var yl={created(e,{value:t},n){e.checked=ze(t,n.props.value),e[pl]=ul(n),Jc(e,`change`,()=>{e[pl](Cl(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[pl]=ul(r),t!==n&&(e.checked=ze(t,r.props.value))}},bl={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,Jc(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ve(Cl(e)):Cl(e)),r=e.multiple,i=r?w(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?S(i)?t.slice():t:i];try{e[pl](i)}finally{rr(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[pl]=ul(r)},mounted(e,{value:t}){Sl(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[pl]=ul(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,n&&n[0]===e.multiple&&xl(t,n[1],n[0])||Sl(e,t)}};function xl(e,t,n){if(!n||S(e))return ze(e,t);if(w(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Sl(e,t){let n=e.multiple,r=S(t);if(n&&!r&&!w(t))tc(`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(t).slice(8,-1)}.`);else{for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=Cl(a);if(n){if(r){let e=typeof o;a.selected=e===`string`||e===`number`?t.some(e=>String(e)===String(o)):Be(t,o)>-1}else a.selected=t.has(o)}else if(ze(Cl(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Cl(e){return`_value`in e?e._value:e.value}function wl(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var Tl={created(e,t,n){Dl(e,t,n,null,`created`)},mounted(e,t,n){Dl(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Dl(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Dl(e,t,n,r,`updated`)}};function El(e,t){switch(e){case`SELECT`:return bl;case`TEXTAREA`:return gl;default:switch(t){case`checkbox`:return _l;case`radio`:return yl;default:return gl}}}function Dl(e,t,n,r,i){let a=El(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var Ol=[`ctrl`,`shift`,`alt`,`meta`],kl={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Ol.some(n=>e[`${n}Key`]&&!t.includes(n))},J=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=kl[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},Al={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},jl=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=k(n.key);if(t.some(e=>e===r||Al[e]===r))return e(n)}))},Ml=v({patchProp:sl},lc),Nl;function Pl(){return Nl||=Bo(Ml)}var Fl=((...e)=>{let t=Pl().createApp(...e);Ll(t),Rl(t);let{mount:n}=t;return t.mount=e=>{let r=zl(e);if(!r)return;let i=t._component;T(i)||i.render||i.template||(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Il(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Il(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Ll(e){Object.defineProperty(e.config,"isNativeTag",{value:e=>Ae(e)||je(e)||Me(e),writable:!1})}function Rl(e){if(Bs()){let t=e.config.isCustomElement;Object.defineProperty(e.config,"isCustomElement",{get(){return t},set(){tc("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}});let n=e.config.compilerOptions,r='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc';Object.defineProperty(e.config,"compilerOptions",{get(){return tc(r),n},set(){tc(r)}})}}function zl(e){if(E(e)){let t=document.querySelector(e);return t||tc(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode===`closed`&&tc('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}function Bl(){$s()}Bl();var Vl=`cardbuddy:dev-service`,Hl=typeof window<`u`&&(window.__CARD_DEV_PREVIEW_BASE__||window.__CARD_DEV_OFFLINE_BASE__)||``,Ul={enabled:!1,baseUrl:`http://127.0.0.1:8787`,token:``},Wl=new Set([`localhost`,`127.0.0.1`,`[::1]`,`::1`]);function Gl(){if(typeof window>`u`||!window.location)return!1;let{protocol:e,hostname:t}=window.location;return e!==`http:`&&e!==`https:`?!1:!Wl.has(t)}function Kl(){try{let e=localStorage.getItem(Vl);if(e)return{...Ul,...JSON.parse(e)}}catch{}return Hl?{...Ul,enabled:!0,baseUrl:Hl,token:``}:{...Ul}}function ql(e){try{localStorage.setItem(Vl,JSON.stringify(e))}catch{}}function Jl(){if(Hl)return Hl.replace(/\/+$/,``);let e=Kl();return e.enabled&&e.baseUrl?e.baseUrl.replace(/\/+$/,``):Gl()?``:Ul.baseUrl}function Yl(){let e=Kl();return e.enabled&&e.token||``}async function Y(e,t={}){let n=(Jl()||``)+e,r={...t.headers||{}},i=Yl();return i&&(r[`x-dev-token`]=i),fetch(n,{...t,headers:r})}var Xl=new Map;function Zl(e){let t=Xl.get(e);if(!t){let n=Yl(),r=new EventSource(e+`/__events`+(n?`?token=`+encodeURIComponent(n):``));t={es:r,states:new Set,refs:0},Xl.set(e,t),r.onopen=()=>{for(let e of t.states)e(`open`)},r.onerror=()=>{let e=r.readyState===2?`closed`:`connecting`;for(let n of t.states)n(e)}}return t.refs++,t}function Ql(e,t){if(t.refs=Math.max(0,t.refs-1),t.refs===0&&Xl.get(e)===t){Xl.delete(e);try{t.es.close()}catch{}}}function $l(e,{hmrEvents:t=[]}={}){return function(t,n){let r=Jl(),i=e=>{typeof n==`function`&&n(e)};if(r!==null){let n=Zl(r),a=e=>{try{t(e.data?JSON.parse(e.data):{})}catch{t({})}};for(let t of e)n.es.addEventListener(t,a);return n.states.add(i),i(n.es.readyState===1?`open`:n.es.readyState===2?`closed`:`connecting`),()=>{for(let t of e)n.es.removeEventListener(t,a);n.states.delete(i),Ql(r,n)}}return()=>{}}}var eu=$l([`cards-changed`],{hmrEvents:[`cards-changed`]}),tu=$l([`code-bridge-changed`,`code-bridge-closed`]),nu=$l([`service-log`]);async function ru({limit:e=300,since:t=0}={}){let n=new URLSearchParams({limit:String(e)});t&&n.set(`since`,String(t));let r=await Y(`/__logs?`+n.toString());if(!r.ok)throw Error(`HTTP `+r.status);return r.json()}async function iu(e,t=``){let n=await Y(`/__code-bridge`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,label:t})});if(!n.ok)throw Error(`code-bridge open failed: ${n.status}`);return n.json()}async function au(e){let t=await Y(`/__code-bridge/${e}`);if(!t.ok)throw Error(`code-bridge fetch failed: ${t.status}`);return t.json()}async function ou(e){return(await Y(`/__code-bridge/${e}/heartbeat`,{method:`POST`})).ok}async function su(e){return(await Y(`/__code-bridge/${e}`,{method:`DELETE`})).ok}var cu={"@staticfile/":`/fastdfs/`,"@filestore/":`/minio/`,"@minio/":`/minio/`,"@floorstatic/":`/floorstatic/`,"@flamestore/":`/`},lu=`https://uat-pkg.finmall.com`,uu=lu.replace(/^https?:/,``),du=[...new Set([lu,lu.replace(/^https:/,`http:`),uu])];function fu(e){if(typeof e!=`string`||!e)return e;for(let t of du)if(e.startsWith(t))return e.slice(t.length)||`/`;return e}var pu=class{constructor(e={}){this.options={availableWidth:0,applyUnit:`px`,applyUnitRatio:1,fontRatio:1,styleWidth:375,apiBase:void 0,...e}}getSystemInfo(){let e=this.options;return{screenWidth:typeof window<`u`?window.innerWidth:e.styleWidth,availableWidth:e.availableWidth,applyUnit:e.applyUnit,applyUnitRatio:e.applyUnitRatio,fontRatio:e.fontRatio}}getDesignInfo(){return{styleWidth:this.options.styleWidth}}doReplaceUrl(e){if(typeof e!=`string`||/^https?:\/\//i.test(e))return e;let t=e;try{for(let e of Object.keys(cu))t=t.replace(new RegExp(e,`g`),cu[e])}catch{}let n=fu(t),r=this.options.apiBase===void 0?Jl():this.options.apiBase;return r&&typeof n==`string`&&n.startsWith(`/`)?r+n:n}doSize(e,t){if(!e&&e!==0)return``;if(e===`auto`||String(e).indexOf(`%`)>-1)return e;let n=this.getSystemInfo()||{},r=this.getDesignInfo()||{},i=String(e).replace(/[^0-9\-.]/g,``),a=1;if(n.availableWidth){t===`font`&&(a=Number(n.fontRatio||1));let e=parseFloat(n.availableWidth)/parseFloat(r.styleWidth);return parseFloat(i)*e*a+n.applyUnit}return i+n.applyUnit}doColor(e=``){let t=String(e);if(/^#[a-fA-F0-9]{8}$/.test(t)){let[e,n,r,i]=t.substring(1).match(/[a-fA-F0-9]{2}/g);return`rgba(${parseInt(n,16)}, ${parseInt(r,16)}, ${parseInt(i,16)}, ${parseInt(e,16)/100})`}return t}doRemoveUnit(e=``){return String(e).replace(/[^0-9.]/g,``)}doApplyUnit(e){return e+(this.getSystemInfo()||{}).applyUnit}doI18n(e){return e}async doRpc(){return{}}};function mu(e){if(Array.isArray(e))return e.map(mu);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=mu(e[n]);return t}return e}function hu(e){return mu(e||{})}function gu(e){if(e===null)return`null`;if(e===void 0)return`undefined`;let t=typeof e;if(t===`string`)return e;if(t===`number`||t===`boolean`||t===`bigint`)return String(e);if(t===`function`)return`[Function `+(e.name||`anonymous`)+`]`;try{return JSON.stringify(e)}catch{return String(e)}}var _u=[`customAction`,`listener`,`syncRemote`,`saveCard`,`refresh`];function vu(e,t){let n=cn(e||{}),r=cn(hu(e)),i=cn({value:0}),a=cn({value:0}),o=!1,s=cn({value:0}),c=0,l=cn({value:0}),u=[],d={adapter:t,get rootScope(){return n},get state(){return r},setRootScope(e){let t=e||{};for(let e of Object.keys(n))delete n[e];Object.assign(n,t);let i=hu(t);for(let e of Object.keys(r))delete r[e];Object.assign(r,i),this.markDirty()},reseedState(){let e=hu(n);for(let e of Object.keys(r))delete r[e];Object.assign(r,e),this.markDirty()},get revision(){return i.value},get errorRev(){return a.value},get apiRev(){return s.value},get logRev(){return l.value},errors:[],eventErrors:[],eventLogs:[],apiCalls:[],listeners:{},markDirty(){i.value++},clearErrors(){this.errors.length=0,this.eventErrors.length=0,this.eventLogs.length=0,l.value++,this.scheduleErrorBump()},clearBindingErrors(){this.errors.length=0,this.scheduleErrorBump()},clearApiCalls(){this.apiCalls.length=0,s.value++},pushLog(e,t){let n=t||[],r=n.map(e=>gu(e)).join(` `);this.eventLogs.push({level:e,text:r,args:n,t:Date.now()}),this.eventLogs.length>500&&this.eventLogs.shift(),l.value++},clearEventLogs(){this.eventLogs.length=0,l.value++},pushError(e,t){let n=_u.includes(e)?this.eventErrors:this.errors;n.push({kind:e,msg:t,t:Date.now()}),n.length>500&&n.shift(),this.scheduleErrorBump()},scheduleErrorBump(){o||(o=!0,rr(()=>{o=!1,a.value++}))},getBindingBuffer(){return u},startBindingPass(){u=[]},commitBindingPass(){let e=new Set,t=[];for(let n of u)e.has(n.msg)||(e.add(n.msg),t.push(n));this.errors.length=0;for(let e of t)this.errors.push(e);this.scheduleErrorBump()},pushApiCall(e,t){this.apiCalls.push({api:e,payload:t,t:Date.now(),id:++c}),this.apiCalls.length>500&&this.apiCalls.shift(),s.value++},removeApiCall(e){if(!e||e.id==null)return;let t=this.apiCalls.findIndex(t=>t.id===e.id);t<0||(this.apiCalls.splice(t,1),s.value++)},addEventListener(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},postMessage(e,t){let n=this.listeners[e]||[],r={data:t,type:e};n.forEach(t=>{try{t(r)}catch(t){this.pushError(`listener`,`${e}: ${t&&t.message}`)}}),this.pushApiCall(`postMessage:`+e,t)}};return $r(()=>n,()=>d.reseedState(),{deep:!0}),d}var yu=0,bu=e=>`${e}_${(++yu).toString(36)}`,xu={const:`0`,var:`1`,image:`2`},Su={Delete:`1`,Append:`2`},Cu=e=>e===void 0?e:JSON.parse(JSON.stringify(e)),wu=class e{constructor(t=[],n={}){this.id=bu(`propgroup`),this.properties=(t||[]).map(e=>new X(e)),e.setPropertyValue(this.properties,n)}static setPropertyValue(e=[],t={}){t&&e.forEach(e=>{e.itemVisible&&e.itemKey&&t[e.itemKey]!==void 0&&e.itemValueFrom===`0`&&(e.itemValue=t[e.itemKey])})}onRestore(e={},t,n,r){X.restoreProperty(e.properties||[],this.properties,t,n,r)}onPreview(e){return this.properties.reduce((t,n)=>{let r=n.onPreview(e);return r&&Object.assign(t,r),t},{})}onExport(e){return{properties:this.properties.reduce((t,n)=>{if(!e||e.itemId===n.itemId){let r=n.onExport(e&&e.child);r&&t.push(r)}return t},[])}}},X=class e{constructor(e={}){this.id=bu(`prop`);let t=Cu(e)||{};this.itemId=t.itemId,this.itemName=t.itemName,this.itemType=t.itemType,this.itemKey=t.itemKey,this.itemOption=t.itemOption||{},this.itemParam=t.itemParam||{},this.itemDefaultValue=t.itemDefaultValue===void 0?null:t.itemDefaultValue,this.itemDesc=t.itemDesc,this.itemCondition=t.itemCondition,this.itemWatch=t.itemWatch||{},this.itemTypeRange=t.itemTypeRange||`const,var`,this.itemDirection=t.itemDirection,this.itemVisible=!0,this.itemUpdated=!1,this.itemValueFrom=xu[String(this.itemTypeRange).split(/,/)[0]],this._itemValueFrom=this.itemValueFrom;let n=Cu(this.itemDefaultValue);this.itemChildren=new wu(t.itemChildren||[],n),this.itemTemplate=t.itemTemplate||t.itemList||[],this.itemList=[],!this.itemChildren.properties.length&&Object.keys(this.itemTemplate).length&&this.initItemList(n),this.initItemValue(n),this._valuesByFrom={0:void 0,1:void 0,2:void 0},this._valuesByFrom[this.itemValueFrom]=this.itemValue}initItemValue(e,t=!1){this.itemValue=this.itemValueFrom===`1`||this.itemValueFrom===`2`?t?e:``:this.itemChildren.properties.length?{}:Object.keys(this.itemTemplate).length?[]:e}initItemList(e){let t=e||[];Array.isArray(t)&&t.forEach(e=>this.addItems(e))}addItems(e,t){let n=this.itemOption?.templateField||``;if(this.itemChildren.properties.length)return;let r=e?e[n]:``,i=new wu(n?this.itemTemplate[r]||[]:this.itemTemplate||[],e||{});return t&&t(i),this.itemList.push(i),i}removeAt(e){this.itemChildren.properties.length||e>=0&&e<this.itemList.length&&this.itemList.splice(e,1)}moveItem(e,t){if(this.itemChildren.properties.length||e<0||e>=this.itemList.length||(t=Math.max(0,Math.min(this.itemList.length-1,t)),e===t))return;let[n]=this.itemList.splice(e,1);this.itemList.splice(t,0,n)}onRestore(e={},t,n={},r=[]){if(!Object.keys(e).length)return;let i=[].concat(r);i.push(this.itemId),e.itemValueFrom!==void 0&&(this.itemValueFrom=e.itemValueFrom),this.initItemValue(e.itemValue,!0),this._valuesByFrom={0:void 0,1:void 0,2:void 0},this._valuesByFrom[this.itemValueFrom]=this.itemValue,this.itemChildren.onRestore(e.itemChildren||{},t,n,i),this.itemList=[];let a=Array.isArray(e.itemValue)?e.itemValue:[];a.length||!e.itemList?a.forEach(e=>this.addItems(e||{})):Array.isArray(e.itemList)&&e.itemList.forEach(e=>{let r=this.addItems({});r&&r.onRestore(e,t,n,i)})}onPreview(e){let t={},n=e?e.paths:[],r=!!(n&&n.length),i=r?e.vars:{},a=[].concat(n||[]);return this.itemVisible&&this.itemKey&&(this.itemValueFrom===`0`?this.itemChildren.properties.length>0?(a.push(this.itemKey),t[this.itemKey]=this.itemChildren.onPreview({paths:a,vars:i})):this.itemList.length>0?(a.push(this.itemKey),t[this.itemKey]=this.itemList.map((e,t)=>{let n=[].concat(a);return n.push(t),e.onPreview({paths:n,vars:i})})):t[this.itemKey]=this.itemValue:this.itemValueFrom===`1`?(t[this.itemKey]=this.itemDefaultValue,this.itemValue&&(a.push(this.itemKey),i[a.join(`.`)]=this.itemValue)):this.itemValueFrom===`2`&&(t[this.itemKey]=this.itemValue)),r||(t.__vars__=i),t}onExport(e){if(!this.itemVisible||this.itemKey===void 0||this.itemKey===null)return;let t=this.itemChildren.onExport(e),n=this.itemList.map(t=>t.onExport(e)),r={};return this.itemValueFrom===`1`&&(r.itemDefaultValue=this.itemDefaultValue),t&&t.properties.length?r.itemChildren=t:n.length&&(r.itemList=n),{itemId:this.itemId,itemKey:this.itemKey,itemValueFrom:this.itemValueFrom,itemValue:this.itemValue,...r}}static mergePreview(e={},t={}){let n=e.__vars__,r=t.__vars__;return r?Object.assign(e,t,{__vars__:Object.assign({},n,r)}):Object.assign(e,r)}static restoreProperty(e=[],t=[],n,r={},i){if(r||={},!e.length||!t.length)return;let a={},o=(e||[]).reduce((e,t)=>{let n=t.itemId||t.itemKey;return n&&(e[n]=t,a[n]=t),e},{});for(let e=0;e<t.length;e++){let s=t[e],c=o[s.itemId]||o[s.itemKey];c?(delete a[s.itemId],delete a[s.itemKey],s.onRestore(c,n,{},i),s.itemUpdated=!0,r.restore&&r.restore(s)):n===Su.Delete&&(t.splice(e--,1),r.delete&&r.delete(s))}if(n===Su.Append)for(let e in a)r.append&&r.append(a[e],t,[].concat(i||[]))}static updatePropertyVisible(t=[]){let n=t||[],r=e._conditionData(n);n.forEach(t=>{t.itemVisible=!/\./.test(t.itemCondition)||e._conditionResult(t.itemCondition,r),e.updatePropertyVisible(t.itemChildren.properties),t.itemList.forEach(t=>e.updatePropertyVisible(t.properties))})}static _conditionData(e){return e.reduce((e,t)=>{let n=`${t.itemCondition||``}`;return n&&n.split(`.`).length%2==1&&(e[n]=t.itemValue),e},{})}static _conditionResult(e=``,t={}){let n=!0,r=e.split(`.`);for(let e=0;e<r.length-1;e+=2){let i=r.slice(0,e+1).join(`.`),a=r[e+1],o=!1;/^!/.test(a)&&(o=!0,a=a.substring(1));let s=a.split(`|`);n=!1;for(let e=0;e<s.length;e++)if(t[i]==s[e]){n=!0;break}if(o&&(n=!n),!n)break}return n}},Tu={_source:`uat-pkg.finmall.com /ubomp-h5-sub/inner_card/js/6.5c0327ab.js module 931(组件分组清单)`,_note:`metaInfo 精简版:className / name / group / style.state / style.visible / style.meta / properties / slots / events。skeleton(SVG 缩略图) 已剔除。style.state 是组件的默认样式初始值,Style.onRestore 会先用它建组,再用 schema 的 style.properties 合并覆盖。`,groups:[`布局组件`,`基础组件`],components:JSON.parse('{"Row":{"className":"Row","name":"行","group":"布局组件","styleState":{"rect":{"width":"100%"},"flex":{"gap":"4","alignItems":"center"}},"styleVisible":{"rect":true,"background":true,"flex":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"flex":{"justifyContent":{"itemName":"水平对齐"},"alignItems":{"itemName":"垂直对齐"}}},"properties":[],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Column":{"className":"Column","name":"列","group":"布局组件","styleState":{"rect":{"width":"100%"},"flex":{"gap":"4","flexDirection":"column","justifyContent":"center"}},"styleVisible":{"rect":true,"background":true,"flex":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"MultiColumn":{"className":"MultiColumn","name":"多列布局","group":"布局组件","styleState":{"rect":{"width":"100%"},"flex":{"gap":"12"}},"styleVisible":{"rect":true,"background":true,"flex":{"gap":true,"flexShrink":true},"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"ListLayout":{"className":"ListLayout","name":"列表布局","group":"布局组件","styleState":{"rect":{"width":"100%","height":"auto"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"数据源","itemKey":"value","itemTypeRange":"var","itemOption":{},"itemDefaultValue":[{},{},{},{}]},{"itemId":"006","itemName":"方向","itemKey":"direction","itemTypeRange":"const","itemType":"TabSelect","itemOption":{"iParamList":[{"key":"vertical","value":"纵向"},{"key":"horizontal","value":"横向"}]},"itemDefaultValue":"vertical"},{"itemId":"003","itemName":"元素间距","itemKey":"row-spacing","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":12},{"itemId":"005","itemName":"内边距","itemKey":"edge-insets","itemTypeRange":"const","itemType":"PaddingStyle","itemOption":{},"itemDefaultValue":"{2,2,2,2}"}],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotScope":true,"slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"GridLayout":{"className":"GridLayout","name":"网格布局","group":"布局组件","styleState":{"rect":{"width":"100%","height":"auto"}},"styleVisible":{"rect":true,"background":true,"flex":{"flexShrink":true},"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"数据源","itemKey":"value","itemTypeRange":"var","itemOption":{},"itemDefaultValue":[{},{},{},{}]},{"itemId":"002","itemName":"列数目","itemKey":"column","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":2},{"itemId":"003","itemName":"行间距","itemKey":"row-spacing","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":12},{"itemId":"004","itemName":"列间距","itemKey":"item-spacing","itemTypeRange":"const","itemType":"InputNumber","itemOption":{},"itemDefaultValue":4},{"itemId":"005","itemName":"内边距","itemKey":"edge-insets","itemTypeRange":"const","itemType":"PaddingStyle","itemOption":{},"itemDefaultValue":"{2,2,2,2}"}],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotScope":true,"slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[{"eventName":"点击事件","eventKey":"click"}]},"AbsoluteLayout":{"className":"AbsoluteLayout","name":"绝对布局","group":"布局组件","styleState":{"rect":{"width":"100%","height":"100"}},"styleVisible":{"flex":{"flexShrink":true},"rect":true,"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"对齐方式","itemKey":"align","itemTypeRange":"const","itemType":"PositionStyle","itemOption":{},"itemDefaultValue":""}],"slots":[{"slotKey":"default","slotName":"容器组件插槽","slotWidth":"100%","slotHeight":"100%","slotSwitch":"1"}],"events":[]},"Text":{"className":"Text","name":"文本","group":"基础组件","styleState":{},"styleVisible":{"font":true,"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"rect":{"width":{"itemOption":{"iTypeList":[{"key":"percent","value":"%"},{"key":"number","value":"px"}]}}}},"properties":[{"itemId":"001","itemName":"内容","itemKey":"value","itemType":"Textarea","itemDefaultValue":"这是一个文本"},{"itemId":"002","itemName":"常用样式","itemTypeRange":"const","itemType":"CustomSelect","itemOption":{"list":[{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"黑色","style":{"fontSize":"14px","color":"#333333"}}],"sync":{"style.font.color":"#333333","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"灰色","style":{"fontSize":"14px","color":"#555555"}}],"sync":{"style.font.color":"#555555","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}},{"type":"div","innerText":"淡灰色","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"淡灰色","style":{"fontSize":"14px","color":"#999999"}}],"sync":{"style.font.color":"#999999","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"热门","style":{"fontSize":"10px","backgroundColor":"#ff0000","borderRadius":"4px","padding":"1px 5px","color":"#ffffff"}}],"sync":{"style.font.color":"#ffffff","style.font.fontWeight":"400","style.font.fontSize":"10","style.background.backgroundType":"01","style.background.backgroundColor":"#ff0000","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"4","style.padding.paddingType":"1","style.padding.paddingLeft":"5","style.padding.paddingTop":"1","style.padding.paddingRight":"5","style.padding.paddingBottom":"1"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"热销","style":{"fontSize":"10px","backgroundColor":"#ff0000","borderRadius":"100px","padding":"1px 5px","color":"#ffffff"}}],"sync":{"style.font.color":"#ffffff","style.font.fontWeight":"400","style.font.fontSize":"10","style.background.backgroundType":"01","style.background.backgroundColor":"#ff0000","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100","style.padding.paddingType":"1","style.padding.paddingLeft":"5","style.padding.paddingTop":"1","style.padding.paddingRight":"5","style.padding.paddingBottom":"1"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"理财","style":{"fontSize":"12px","backgroundColor":"#F1F4FE","borderRadius":"4px","padding":"2px 8px","color":"#90969E"}}],"sync":{"style.font.color":"#90969E","style.font.fontWeight":"400","style.font.fontSize":"12","style.background.backgroundType":"01","style.background.backgroundColor":"#F1F4FE","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"4","style.padding.paddingType":"1","style.padding.paddingLeft":"8","style.padding.paddingTop":"2","style.padding.paddingRight":"8","style.padding.paddingBottom":"2"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"存款","style":{"fontSize":"14px","border":"1px solid #8A8A8A","borderRadius":"4px","padding":"1px 4px","color":"#545356"}}],"sync":{"style.font.color":"#545356","style.font.fontWeight":"400","style.font.fontSize":"14","style.background.backgroundType":"00","style.border.isBorder":"1","style.border.borderWidth":"1","style.border.borderColor":"#8A8A8A","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"4","style.padding.paddingType":"1","style.padding.paddingLeft":"4","style.padding.paddingTop":"1","style.padding.paddingRight":"4","style.padding.paddingBottom":"1"}},{"type":"div","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","marginRight":"8px","cursor":"pointer"},"list":[{"type":"span","innerText":"240","style":{"fontSize":"22px","color":"#ff0000","fontWeight":"600"}}],"sync":{"style.font.color":"#ff0000","style.font.fontWeight":"600","style.font.fontSize":"22","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.padding.paddingType":""}}]}}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Button":{"className":"Button","name":"按钮","group":"基础组件","styleState":{"font":{"color":"#ffffff","fontSize":"16"},"background":{"backgroundType":"01","backgroundColor":"#0079f2"},"borderRadius":{"borderRadiusType":"0","borderRadius":"100"},"rect":{"width":"120","height":"40"}},"styleVisible":{"font":{"color":true,"fontSize":true,"fontWeight":true},"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"按钮文字","itemKey":"value","itemType":"Input","itemDefaultValue":"确定"},{"itemId":"002","itemName":"常用样式","itemTypeRange":"const","itemType":"CustomSelect","itemOption":{"list":[{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#fff","backgroundColor":"#0079f2"},"sync":{"style.font.color":"#ffffff","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#0079f2","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#fff","backgroundColor":"#f3464a"},"sync":{"style.font.color":"#ffffff","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#f3464a","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#0079f2","backgroundColor":"#ffffff","border":"1px solid #0079f2"},"sync":{"style.font.color":"#0079f2","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#ffffff","style.border.isBorder":"1","style.border.borderWidth":"1","style.border.borderStyle":"solid","style.border.borderColor":"#0079f2","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#555","backgroundColor":"#f0ead2"},"sync":{"style.font.color":"#555555","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#f0ead2","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#f3474b","backgroundColor":"#fff0f1"},"sync":{"style.font.color":"#f3474b","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#fff0f1","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","borderRadius":"20px","fontSize":"12px","marginRight":"8px","cursor":"pointer","color":"#9a9a9a","backgroundColor":"#e6e6e6"},"sync":{"style.font.color":"#9a9a9a","style.font.fontSize":"16","style.background.backgroundType":"01","style.background.backgroundColor":"#e6e6e6","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"0","style.borderRadius.borderRadius":"100"}},{"type":"div","innerText":"确定","style":{"width":"59px","height":"24px","lineHeight":"24px","textAlign":"center","fontSize":"15px","marginRight":"8px","cursor":"pointer","color":"#0079F2"},"sync":{"style.font.color":"#0079F2","style.font.fontSize":"15","style.background.backgroundType":"00","style.border.isBorder":"0","style.borderRadius.borderRadiusType":"","style.rect.width":"100%","style.rect.height":"40"}}]}},{"itemId":"003","itemName":"禁用按钮","itemKey":"disabled","itemTypeRange":"const,var","itemType":"BooleanForm","itemOption":{"activeText":"启用","inactiveText":"禁用"},"itemDefaultValue":false}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Image":{"className":"Image","name":"图片","group":"基础组件","styleState":{"rect":{"width":"72","height":"72"}},"styleVisible":{"image":true,"flex":{"flexShrink":true},"rect":true,"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"rect":{"width":{"itemOption":{"iTypeList":[{"key":"percent","value":"%"},{"key":"number","value":"px"}]}}}},"properties":[{"itemId":"001","itemName":"图片地址","itemKey":"value","itemTypeRange":"image,var","itemDefaultValue":""}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Icon":{"className":"Icon","name":"图标","group":"基础组件","styleState":{"rect":{"width":"32","height":"32"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{"rect":{"width":{"itemOption":{"iTypeList":[{"key":"number","value":"px"},{"key":"percent","value":"%"}]}},"height":{"itemOption":{"iTypeList":[{"key":"number","value":"px"}]}}}},"properties":[{"itemId":"001","itemName":"图标","itemKey":"icon","itemTypeRange":"const,var","itemType":"IconSelect","itemOption":{"type":"svg","width":"16","height":"16","image":"/ubomp-h5-sub/inner_card/svg/svg-symbols.9f0f35b.svg","iIconList":[{"key":"sousuo","value":"sousuo","name":"sousuo"},{"key":"gengduo","value":"gengduo","name":"gengduo"},{"key":"saoyisao","value":"saoyisao","name":"saoyisao"},{"key":"shanchu","value":"shanchu","name":"shanchu"},{"key":"shaixuan","value":"shaixuan","name":"shaixuan"},{"key":"shezhi","value":"shezhi","name":"shezhi"},{"key":"shengyin","value":"shengyin","name":"shengyin"},{"key":"shengyinguanbi","value":"shengyinguanbi","name":"shengyinguanbi"},{"key":"aixin","value":"aixin","name":"aixin"},{"key":"aixin_1","value":"aixin_1","name":"aixin_1"},{"key":"shoucang","value":"shoucang","name":"shoucang"},{"key":"shoucang_1","value":"shoucang_1","name":"shoucang_1"},{"key":"dianzan","value":"dianzan","name":"dianzan"},{"key":"dianzan_1","value":"dianzan_1","name":"dianzan_1"},{"key":"yanjing","value":"yanjing","name":"yanjing"},{"key":"yanjing_1","value":"yanjing_1","name":"yanjing_1"},{"key":"yanjing_hide","value":"yanjing_hide","name":"yanjing_hide"},{"key":"zengjia","value":"zengjia","name":"zengjia"},{"key":"zengjia_1","value":"zengjia_1","name":"zengjia_1"},{"key":"xiangji","value":"xiangji","name":"xiangji"},{"key":"xiangji_1","value":"xiangji_1","name":"xiangji_1"},{"key":"chenggong","value":"chenggong","name":"chenggong"},{"key":"chenggong_1","value":"chenggong_1","name":"chenggong_1"},{"key":"shibai","value":"shibai","name":"shibai"},{"key":"shibai_1","value":"shibai_1","name":"shibai_1"},{"key":"shijian","value":"shijian","name":"shijian"},{"key":"shijian_1","value":"shijian_1","name":"shijian_1"},{"key":"dianhua","value":"dianhua","name":"dianhua"},{"key":"dianhua_1","value":"dianhua_1","name":"dianhua_1"},{"key":"angle_left","value":"angle_left","name":"angle_left"},{"key":"angle_right","value":"angle_right","name":"angle_right"},{"key":"angle_up","value":"angle_up","name":"angle_up"},{"key":"angle_down","value":"angle_down","name":"angle_down"},{"key":"arrow_left","value":"arrow_left","name":"arrow_left"},{"key":"arrow_right","value":"arrow_right","name":"arrow_right"},{"key":"long_arrow_up","value":"long_arrow_up","name":"long_arrow_up"},{"key":"long_arrow_down","value":"long_arrow_down","name":"long_arrow_down"},{"key":"caret_left","value":"caret_left","name":"caret_left"},{"key":"caret_right","value":"caret_right","name":"caret_right"},{"key":"sort_up","value":"sort_up","name":"sort_up"},{"key":"sort_down","value":"sort_down","name":"sort_down"},{"key":"ditu","value":"ditu","name":"ditu"},{"key":"fuzhi","value":"fuzhi","name":"fuzhi"},{"key":"check","value":"check","name":"check"},{"key":"times","value":"times","name":"times"},{"key":"weixuanzhong","value":"weixuanzhong","name":"weixuanzhong"},{"key":"switch","value":"switch","name":"switch"},{"key":"tanhao","value":"tanhao","name":"tanhao"},{"key":"tanhao_1","value":"tanhao_1","name":"tanhao_1"},{"key":"jianshao","value":"jianshao","name":"jianshao"},{"key":"jianshao_1","value":"jianshao_1","name":"jianshao_1"},{"key":"pinglun","value":"pinglun","name":"pinglun"},{"key":"pinglun_1","value":"pinglun_1","name":"pinglun_1"},{"key":"shandian","value":"shandian","name":"shandian"},{"key":"shandian_1","value":"shandian_1","name":"shandian_1"},{"key":"shequ","value":"shequ","name":"shequ"},{"key":"shequ_1","value":"shequ_1","name":"shequ_1"},{"key":"shouji","value":"shouji","name":"shouji"},{"key":"shouji_1","value":"shouji_1","name":"shouji_1"},{"key":"shouye","value":"shouye","name":"shouye"},{"key":"shouye_1","value":"shouye_1","name":"shouye_1"},{"key":"shuju","value":"shuju","name":"shuju"},{"key":"shuju_1","value":"shuju_1","name":"shuju_1"},{"key":"wode","value":"wode","name":"wode"},{"key":"wode_1","value":"wode_1","name":"wode_1"},{"key":"yingchengka","value":"yingchengka","name":"yingchengka"},{"key":"yingchengka_1","value":"yingchengka_1","name":"yingchengka_1"},{"key":"yinhangka","value":"yinhangka","name":"yinhangka"},{"key":"yinhangyouhui","value":"yinhangyouhui","name":"yinhangyouhui"},{"key":"youhuiquan","value":"youhuiquan","name":"youhuiquan"},{"key":"youhuiquan_1","value":"youhuiquan_1","name":"youhuiquan_1"},{"key":"tuipiao","value":"tuipiao","name":"tuipiao"},{"key":"yulebao","value":"yulebao","name":"yulebao"},{"key":"anquan","value":"anquan","name":"anquan"},{"key":"bangzhu","value":"bangzhu","name":"bangzhu"},{"key":"bianji","value":"bianji","name":"bianji"},{"key":"bofangjilu","value":"bofangjilu","name":"bofangjilu"},{"key":"buganxingqu","value":"buganxingqu","name":"buganxingqu"},{"key":"chuangzuo","value":"chuangzuo","name":"chuangzuo"},{"key":"diantong_guan","value":"diantong_guan","name":"diantong_guan"},{"key":"dianying","value":"dianying","name":"dianying"},{"key":"dianyingpiao","value":"dianyingpiao","name":"dianyingpiao"},{"key":"dingdan","value":"dingdan","name":"dingdan"},{"key":"dingwei","value":"dingwei","name":"dingwei"},{"key":"faxian","value":"faxian","name":"faxian"},{"key":"fenxiang","value":"fenxiang","name":"fenxiang"},{"key":"gonggao","value":"gonggao","name":"gonggao"},{"key":"huati","value":"huati","name":"huati"},{"key":"huiyuan","value":"huiyuan","name":"huiyuan"},{"key":"lihe","value":"lihe","name":"lihe"},{"key":"mima","value":"mima","name":"mima"},{"key":"nan","value":"nan","name":"nan"},{"key":"nv","value":"nv","name":"nv"},{"key":"paihangbang","value":"paihangbang","name":"paihangbang"},{"key":"pengyouquan","value":"pengyouquan","name":"pengyouquan"},{"key":"remen","value":"remen","name":"remen"},{"key":"rili","value":"rili","name":"rili"},{"key":"search_minus","value":"search_minus","name":"search_minus"},{"key":"search_plus","value":"search_plus","name":"search_plus"},{"key":"shangchuan","value":"shangchuan","name":"shangchuan"},{"key":"shuaxin","value":"shuaxin","name":"shuaxin"},{"key":"taolunqu","value":"taolunqu","name":"taolunqu"},{"key":"tishi","value":"tishi","name":"tishi"},{"key":"tupian","value":"tupian","name":"tupian"},{"key":"weixin","value":"weixin","name":"weixin"},{"key":"wenda","value":"wenda","name":"wenda"},{"key":"wenjuan","value":"wenjuan","name":"wenjuan"},{"key":"wifi","value":"wifi","name":"wifi"},{"key":"wodeguanzhu","value":"wodeguanzhu","name":"wodeguanzhu"},{"key":"xiangkan","value":"xiangkan","name":"xiangkan"},{"key":"xiaoxi","value":"xiaoxi","name":"xiaoxi"},{"key":"xiaoxizhongxin","value":"xiaoxizhongxin","name":"xiaoxizhongxin"},{"key":"xiazai","value":"xiazai","name":"xiazai"},{"key":"yixiangkan","value":"yixiangkan","name":"yixiangkan"},{"key":"zhibo","value":"zhibo","name":"zhibo"},{"key":"zhiwen","value":"zhiwen","name":"zhiwen"}]},"itemDefaultValue":"angle_right"},{"itemId":"002","itemName":"图标颜色","itemKey":"color","itemTypeRange":"const,var","itemType":"Color","itemDefaultValue":"#a5afbc"},{"itemId":"003","itemName":"自定义图标","itemKey":"content","itemTypeRange":"const,var","itemType":"Textarea","itemOption":{"placeholder":"请输入svg文件内容","autosize":{"minRows":1,"maxRows":4}},"itemDefaultValue":""}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"MultiText":{"className":"MultiText","name":"多文本","group":"基础组件","styleState":{},"styleVisible":{"font":{"lineHeight":true,"textAlign":true},"rect":true,"flex":{"justifyContent":true,"alignItems":true,"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"文本列表","itemKey":"textList","itemTypeRange":"const","itemType":"List","itemOption":{"type":"editor","iFieldList":[{"key":"value","value":"内容"},{"key":"color","value":"颜色"},{"key":"fontSize","value":"大小"}],"btnText":"添加文本"},"itemDefaultValue":[{"value":"这是一个文本"}],"itemList":[{"itemId":"001","itemName":"文本内容","itemKey":"value","itemTypeRange":"const,var","itemType":"Input","itemDefaultValue":"这是一个文本"},{"itemId":"002","itemName":"字体颜色","itemKey":"color","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#000000"},{"itemId":"003","itemName":"字体大小","itemKey":"fontSize","itemTypeRange":"const","itemType":"InputNumber","itemOption":{"mode-mini":{"style":{"width":"50px"}}},"itemDefaultValue":"14"},{"itemId":"004","itemName":"字体权重","itemKey":"fontWeight","itemTypeRange":"const","itemType":"TabSelect","itemOption":{"size":"mini","iParamList":[{"key":"400","value":"常规"},{"key":"500","value":"中等"},{"key":"600","value":"加粗"}]},"itemDefaultValue":"400"},{"itemId":"005","itemName":"字体样式","itemKey":"fontStyle","itemTypeRange":"const","itemType":"FontStyle","itemOption":{},"itemDefaultValue":"normal"},{"itemId":"006","itemName":"字体样式","itemKey":"textDecoration","itemTypeRange":"const","itemType":"TextDecorationStyle","itemOption":{},"itemDefaultValue":"none"},{"itemId":"007","itemName":"字体背景色","itemKey":"backgroundColor","itemTypeRange":"const","itemType":"Color","itemOption":{},"itemDefaultValue":""},{"itemId":"008","itemName":"事件标识码","itemKey":"tag","itemTypeRange":"const","itemType":"Input","itemOption":{"placeholder":"用于点击事件中区分不同文本"},"itemDefaultValue":""}]}],"slots":[],"events":[{"eventName":"点击事件","eventKey":"click"}]},"Canvas":{"className":"Canvas","name":"画布","group":"基础组件","styleState":{"rect":{"width":"100%"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[],"slots":[],"events":[{"eventName":"初始化渲染","eventKey":"onMeasured","includes":["customAction"]}]},"Input":{"className":"Input","name":"输入框","group":"基础组件","styleState":{"rect":{"width":"100%","height":"35"},"background":{"backgroundType":"01","backgroundColor":"#FFFFFF"}},"styleVisible":{"font":{"textAlign":true,"fontSize":true,"fontWeight":true,"color":true},"flex":{"flexShrink":true},"rect":true,"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"占位符","itemKey":"placeholder","itemTypeRange":"const,var","itemType":"Input","itemDefaultValue":"请输入"},{"itemId":"003","itemName":"类型","itemKey":"inputType","itemTypeRange":"const,var","itemType":"Select","itemOption":{"iParamList":[{"key":"text","value":"普通文本"},{"key":"number","value":"数字"},{"key":"email","value":"邮箱"},{"key":"password","value":"密码"},{"key":"phone","value":"手机号"}]},"itemDefaultValue":"text"},{"itemId":"004","itemName":"最大长度","itemKey":"maxLength","itemTypeRange":"const,var","itemType":"InputNumber","itemOption":{"type":"+integer"},"itemDefaultValue":""}],"slots":[],"events":[]},"CheckGroup":{"className":"CheckGroup","name":"复选框","group":"基础组件","styleState":{},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"选项列表","itemKey":"dataList","itemTypeRange":"const,var","itemType":"List","itemOption":{"type":"text","showHeader":false,"iFieldList":[{"value":"选项名称","key":"desc"}],"replace":{"101":"${index}","102":"选项${index}"}},"itemList":[{"itemId":"101","itemName":"选项键","itemKey":"key","itemTypeRange":"const","itemType":"Input","itemDefaultValue":"1"},{"itemId":"102","itemName":"选项值","itemKey":"desc","itemTypeRange":"const","itemType":"Input","itemDefaultValue":"选项"}],"itemDefaultValue":[{"key":"1","desc":"选项1"},{"key":"2","desc":"选项2"}]},{"itemId":"003","itemName":"选中颜色","itemKey":"selectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#0082ff"},{"itemId":"004","itemName":"未选中颜色","itemKey":"unSelectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#333333"},{"itemId":"005","itemName":"样式类型","itemKey":"buttonStyle","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"Circle","value":"圆形"},{"key":"Square","value":"实心正方形"},{"key":"SquareEmpty","value":"空心正方形"},{"key":"Text","value":"纯文本"}]},"itemDefaultValue":"Circle"},{"itemId":"006","itemName":"选中数量限制","itemKey":"maxSelectCount","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"0","value":"不限制"},{"key":"1","value":"1个"},{"key":"2","value":"2个"},{"key":"3","value":"3个"}]},"itemDefaultValue":"0"},{"itemId":"007","itemName":"排列方向","itemKey":"direction","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"horizontal","value":"水平"},{"key":"vertical","value":"垂直"}]},"itemDefaultValue":"horizontal"},{"itemId":"008","itemName":"选项内边距","itemKey":"itemPadding","itemTypeRange":"const","itemType":"PaddingStyle","itemOption":{"normal":true,"seperator":" ","brackets":[]},"itemDefaultValue":"4 10 4 10"},{"itemId":"009","itemName":"选项间距","itemKey":"itemSpacing","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"4"},{"itemId":"010","itemName":"文字图标间距","itemKey":"textSpacing","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"3"},{"itemId":"011","itemName":"字体大小","itemKey":"fontSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"13"},{"itemId":"012","itemName":"icon大小","itemKey":"iconSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"14"}],"slots":[],"events":[{"eventKey":"selectChange","eventName":"选项发生改变"}]},"RadioButton":{"className":"RadioButton","name":"单选框","group":"基础组件","styleState":{},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"选中颜色","itemKey":"selectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#0082ff"},{"itemId":"003","itemName":"未选中颜色","itemKey":"unSelectColor","itemTypeRange":"const","itemType":"Color","itemDefaultValue":"#333333"},{"itemId":"004","itemName":"样式类型","itemKey":"buttonStyle","itemTypeRange":"const","itemType":"Select","itemOption":{"iParamList":[{"key":"Circle","value":"圆形"},{"key":"CircleEmpty","value":"空心圆形"}]},"itemDefaultValue":"Circle"},{"itemId":"005","itemName":"文字图标间距","itemKey":"textSpacing","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"3"},{"itemId":"006","itemName":"字体大小","itemKey":"fontSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"14"},{"itemId":"007","itemName":"icon大小","itemKey":"iconSize","itemTypeRange":"const","itemType":"InputNumber","itemDefaultValue":"14"},{"itemId":"008","itemName":"显示文字","itemKey":"showText","itemTypeRange":"const","itemType":"Switcher","itemDefaultValue":"1","itemCondition":"showText"},{"itemId":"009","itemName":"文字内容","itemKey":"text","itemTypeRange":"const,var","itemType":"Input","itemDefaultValue":"选项","itemCondition":"showText.1"}],"slots":[],"events":[{"eventKey":"selectChange","eventName":"选项发生改变"}]},"ProgressSlider":{"className":"ProgressSlider","name":"滑块","group":"基础组件","styleState":{"rect":{"width":"100%"},"other":{"overflow":"visible"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"other":true,"margin":true,"transform":true},"styleMeta":{"other":{"overflow":{"itemOption":{"iParamList":[{"key":"visible","value":"可见"}]}}}},"properties":[{"itemId":"001","itemName":"绑定变量","itemKey":"value","itemTypeRange":"var","itemDefaultValue":""},{"itemId":"002","itemName":"最小值","itemTypeRange":"const,var","itemKey":"minProgress","itemType":"InputNumber","itemDefaultValue":"0"},{"itemId":"003","itemName":"最大值","itemTypeRange":"const,var","itemKey":"maxProgress","itemType":"InputNumber","itemDefaultValue":"100"},{"itemId":"004","itemName":"步长","itemTypeRange":"const,var","itemKey":"step","itemType":"InputNumber","itemDefaultValue":"1"},{"itemId":"005","itemName":"背景色","itemTypeRange":"const,var","itemKey":"backgroundColor","itemType":"Color","itemDefaultValue":"#e6e6e6"},{"itemId":"006","itemName":"前景色","itemTypeRange":"const,var","itemKey":"foregroundColor","itemType":"Color","itemDefaultValue":"#0a59f5"},{"itemId":"007","itemName":"高度","itemTypeRange":"const,var","itemKey":"processHeight","itemType":"InputNumber","itemDefaultValue":"5"},{"itemId":"008","itemName":"滑块样式","itemTypeRange":"const,var","itemKey":"blockStyle","itemType":"Select","itemOption":{"iParamList":[{"key":"circle","value":"纯色圆"},{"key":"image","value":"图片"}]},"itemDefaultValue":"circle","itemCondition":"blockStyle"},{"itemId":"009","itemName":"滑块颜色","itemTypeRange":"const,var","itemKey":"blockColor","itemType":"Color","itemDefaultValue":"#ffffff","itemCondition":"blockStyle.circle"},{"itemId":"010","itemName":"滑块背景图","itemTypeRange":"image,var","itemKey":"blockImage","itemDefaultValue":"","itemCondition":"blockStyle.image"},{"itemId":"011","itemName":"滑块宽","itemTypeRange":"const,var","itemKey":"blockWidth","itemType":"InputNumber","itemDefaultValue":"15"},{"itemId":"012","itemName":"滑块高","itemTypeRange":"const,var","itemKey":"blockHeight","itemType":"InputNumber","itemDefaultValue":"15"}],"slots":[],"events":[{"eventName":"值改变事件","eventKey":"change"}]},"Video":{"className":"Video","name":"视频","group":"基础组件","styleState":{},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"padding":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"视频地址","itemKey":"url","itemTypeRange":"image,var","itemDefaultValue":""},{"itemId":"002","itemName":"视频封面","itemKey":"previewUrl","itemTypeRange":"image,var","itemDefaultValue":""}],"slots":[],"events":[]},"Map":{"className":"Map","name":"地图","group":"基础组件","styleState":{"rect":{"width":"100%","height":"100"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"borderRadius":true,"border":true,"shadow":true,"margin":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"中心经度Lat","itemKey":"centerLat","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"002","itemName":"中心纬度Lng","itemKey":"centerLng","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"003","itemName":"缩放比","itemKey":"zoom","itemType":"InputNumber","itemOption":{"type":"+integer"},"itemDefaultValue":""},{"itemId":"004","itemName":"标记点经度Lat","itemKey":"markerLat","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"005","itemName":"标记点纬度Lng","itemKey":"markerLng","itemType":"InputNumber","itemDefaultValue":""},{"itemId":"006","itemName":"标记点名称","itemKey":"markerName","itemTypeRange":"const,var","itemType":"Input","itemOption":{"placeholder":"请输入标记点名称"},"itemDefaultValue":""}],"slots":[],"events":[]},"Divider":{"className":"Divider","name":"分割线","group":"基础组件","styleState":{"rect":{"width":"100%","height":"1"},"background":{"backgroundType":"01","backgroundColor":"#f1f1f1"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"margin":true},"styleMeta":{},"properties":[],"slots":[],"events":[]},"ViewContainer":{"className":"ViewContainer","name":"自定义","group":"基础组件","styleState":{"rect":{"width":"100%","height":"auto"}},"styleVisible":{"rect":true,"flex":{"flexShrink":true},"background":true,"borderRadius":true,"border":true,"shadow":true,"other":true,"margin":true,"padding":true,"transform":true},"styleMeta":{},"properties":[{"itemId":"001","itemName":"自定义类","itemKey":"customClass","itemTypeRange":"const","itemType":"Input","itemDefaultValue":""},{"itemId":"002","itemName":"自定义属性","itemKey":"customProps","itemTypeRange":"var","itemDefaultValue":{}},{"itemId":"003","itemName":"占位图","itemKey":"customRemarkImg","itemTypeRange":"image","itemDefaultValue":{}}],"slots":[],"events":[{"eventName":"动作事件","eventKey":"action"}]}}')},Eu={properties:[{itemId:`1100`,itemName:`字体`,itemKey:`font`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`字体颜色`,itemKey:`color`,itemTypeRange:`const,var`,itemType:`Color`,itemDefaultValue:``},{itemId:`002`,itemName:`字体大小`,itemKey:`fontSize`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{type:`+integer`,iParamList:[{key:`12`,value:`12px`},{key:`14`,value:`14px`},{key:`16`,value:`16px`},{key:`18`,value:`18px`},{key:`20`,value:`20px`},{key:`22`,value:`22px`},{key:`24`,value:`24px`}]},itemDefaultValue:`14`},{itemId:`007`,itemName:`行高`,itemKey:`lineHeight`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`003`,itemName:`对齐`,itemKey:`textAlign`,itemTypeRange:`const,var`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`left`,value:`左`},{key:`center`,value:`中`},{key:`right`,value:`右`}]},itemDefaultValue:`left`},{itemId:`004`,itemName:`字体权重`,itemKey:`fontWeight`,itemTypeRange:`const,var`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`400`,value:`常规`},{key:`500`,value:`中等`},{key:`600`,value:`加粗`}]},itemDefaultValue:`400`},{itemId:`008`,itemName:`字体样式`,itemKey:`fontStyle`,itemTypeRange:`const`,itemType:`FontStyle`,itemOption:{},itemDefaultValue:`normal`},{itemId:`009`,itemName:`字体修饰`,itemKey:`textDecoration`,itemTypeRange:`const`,itemType:`TextDecorationStyle`,itemOption:{},itemDefaultValue:`none`},{itemId:`005`,itemName:`最大行数`,itemKey:`isMaxLine`,itemTypeRange:`const`,itemType:`Switcher`,itemOption:{},itemDefaultValue:`0`,itemCondition:`isMaxLine`},{itemId:`006`,itemName:`最大行数`,itemKey:`maxLine`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:`1`,itemCondition:`isMaxLine.1`}]},{itemId:`1200`,itemName:`图片`,itemKey:`image`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`裁剪模式`,itemKey:`cropMode`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`00`,value:`铺满缩放`},{key:`01`,value:`填充缩放`}]},itemDefaultValue:`00`}]},{itemId:`1300`,itemName:`定位`,itemKey:`position`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`左偏移`,itemKey:`left`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`002`,itemName:`上偏移`,itemKey:`top`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`003`,itemName:`右偏移`,itemKey:`right`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``},{itemId:`004`,itemName:`下偏移`,itemKey:`bottom`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``}]},{itemId:`100`,itemName:`布局`,itemKey:`flex`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`006`,itemName:`排列方向`,itemKey:`flexDirection`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`row`,value:`横向`},{key:`column`,value:`竖向`}]},itemDefaultValue:`row`},{itemId:`001`,itemName:`水平对齐`,itemKey:`justifyContent`,itemTypeRange:`const`,itemType:`JustifyContentStyle`,itemOption:{rowName:`水平对齐`,columnName:`垂直对齐`},itemDefaultValue:`flex-start`,itemWatch:{flexDirection:`flexDirection`}},{itemId:`002`,itemName:`垂直对齐`,itemKey:`alignItems`,itemTypeRange:`const`,itemType:`AlignItemsStyle`,itemOption:{rowName:`垂直对齐`,columnName:`水平对齐`},itemDefaultValue:`stretch`,itemWatch:{flexDirection:`flexDirection`}},{itemId:`003`,itemName:`元素间距`,itemKey:`gap`,itemTypeRange:`const`,itemType:`Select`,itemOption:{iParamList:[{key:`0`,value:`0px`},{key:`4`,value:`4px`},{key:`8`,value:`8px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`},{key:`20`,value:`20px`},{key:`24`,value:`24px`},{key:`28`,value:`28px`}]},itemDefaultValue:``},{itemId:`005`,itemName:`空间不足时压缩节点`,itemKey:`flexShrink`,itemTypeRange:`const`,itemType:`Switcher`,itemOption:{},itemDefaultValue:`1`}]},{itemId:`200`,itemName:`矩形`,itemKey:`rect`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`003`,itemName:`宽度`,itemKey:`width`,itemTypeRange:`const,var`,itemType:`NumberStyle`,itemOption:{},itemDefaultValue:``},{itemId:`004`,itemName:`高度`,itemKey:`height`,itemTypeRange:`const,var`,itemType:`NumberStyle`,itemOption:{iTypeList:[{key:`number`,value:`px`},{key:`auto`,value:`@`}]},itemDefaultValue:`auto`}]},{itemId:`300`,itemName:`背景`,itemKey:`background`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`背景`,itemKey:`backgroundType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:`00`,value:`透明`},{key:`01`,value:`颜色`},{key:`02`,value:`图片`},{key:`03`,value:`渐变色`}]},itemDefaultValue:`00`,itemCondition:`backgroundType`},{itemId:`002`,itemName:`背景颜色`,itemKey:`backgroundColor`,itemTypeRange:`const,var`,itemType:`Color`,itemDefaultValue:``,itemCondition:`backgroundType.01`},{itemId:`003`,itemName:`背景图片`,itemKey:`backgroundImage`,itemTypeRange:`image,var`,itemOption:{},itemDefaultValue:``,itemCondition:`backgroundType.02`},{itemId:`004`,itemName:`背景图位置`,itemKey:`backgroundPosition`,itemTypeRange:`const,var`,itemType:`BackgroundPositionStyle`,itemOption:{},itemDefaultValue:`50% 50%`,itemCondition:`backgroundType.02`},{itemId:`005`,itemName:`背景图大小`,itemKey:`backgroundSize`,itemTypeRange:`const,var`,itemType:`BackgroundSizeStyle`,itemOption:{},itemDefaultValue:`cover`,itemCondition:`backgroundType.02`},{itemId:`006`,itemName:`背景图重复`,itemKey:`backgroundRepeat`,itemTypeRange:`const,var`,itemType:`Select`,itemOption:{iParamList:[{key:`no-repeat`,value:`不重复`},{key:`repeat`,value:`重复图片`},{key:`repeat-x`,value:`水平重复`},{key:`repeat-y`,value:`垂直重复`}]},itemDefaultValue:`no-repeat`,itemCondition:`backgroundType.02`},{itemId:`007`,itemName:`背景渐变`,itemKey:`backgroundGradient`,itemTypeRange:`const,var`,itemType:`GradientStyle`,itemOption:{},itemDefaultValue:``,itemCondition:`backgroundType.03`}]},{itemId:`400`,itemName:`内边距`,itemKey:`padding`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`内边距`,itemKey:`paddingType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:``,value:`无`},{key:`0`,value:`全边`},{key:`1`,value:`自定义`}]},itemDefaultValue:``,itemCondition:`paddingType`},{itemId:`002`,itemName:`内边距`,itemKey:`padding`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{iParamList:[{key:`0`,value:`0px`},{key:`2`,value:`2px`},{key:`4`,value:`4px`},{key:`8`,value:`8px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`},{key:`20`,value:`20px`},{key:`24`,value:`24px`},{key:`28`,value:`28px`}]},itemDefaultValue:``,itemCondition:`paddingType.0`},{itemId:`003`,itemName:`内左边距`,itemKey:`paddingLeft`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`},{itemId:`004`,itemName:`内上边距`,itemKey:`paddingTop`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`},{itemId:`005`,itemName:`内右边距`,itemKey:`paddingRight`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`},{itemId:`006`,itemName:`内下边距`,itemKey:`paddingBottom`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`paddingType.1`}]},{itemId:`500`,itemName:`外边距`,itemKey:`margin`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`外边距`,itemKey:`marginType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:``,value:`无`},{key:`0`,value:`全边`},{key:`1`,value:`自定义`}]},itemDefaultValue:``,itemCondition:`marginType`},{itemId:`002`,itemName:`外边距`,itemKey:`margin`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{iParamList:[{key:`0`,value:`0px`},{key:`2`,value:`2px`},{key:`4`,value:`4px`},{key:`8`,value:`8px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`},{key:`20`,value:`20px`},{key:`24`,value:`24px`},{key:`28`,value:`28px`}]},itemDefaultValue:``,itemCondition:`marginType.0`},{itemId:`003`,itemName:`外左边距`,itemKey:`marginLeft`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`},{itemId:`004`,itemName:`外上边距`,itemKey:`marginTop`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`},{itemId:`005`,itemName:`外右边距`,itemKey:`marginRight`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`},{itemId:`006`,itemName:`外下边距`,itemKey:`marginBottom`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`marginType.1`}]},{itemId:`600`,itemName:`圆角`,itemKey:`borderRadius`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`圆角`,itemKey:`borderRadiusType`,itemTypeRange:`const`,itemType:`TabSelect`,itemOption:{iParamList:[{key:``,value:`无`},{key:`0`,value:`全角`},{key:`1`,value:`自定义`}]},itemDefaultValue:``,itemCondition:`borderRadiusType`},{itemId:`002`,itemName:`圆角`,itemKey:`borderRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{type:`+integer`,iParamList:[{key:`0`,value:`0px`},{key:`4`,value:`4px`},{key:`6`,value:`6px`},{key:`8`,value:`8px`},{key:`10`,value:`10px`},{key:`12`,value:`12px`},{key:`16`,value:`16px`}]},itemDefaultValue:``,itemCondition:`borderRadiusType.0`},{itemId:`003`,itemName:`圆角上左`,itemKey:`borderTopLeftRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`},{itemId:`004`,itemName:`圆角上右`,itemKey:`borderTopRightRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`},{itemId:`005`,itemName:`圆角下右`,itemKey:`borderBottomRightRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`},{itemId:`006`,itemName:`圆角下左`,itemKey:`borderBottomLeftRadius`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:``,itemCondition:`borderRadiusType.1`}]},{itemId:`700`,itemName:`边框`,itemKey:`border`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`边框`,itemKey:`isBorder`,itemTypeRange:`const`,itemType:`Switcher`,itemOption:{},itemDefaultValue:`0`,itemCondition:`isBorder`},{itemId:`002`,itemName:`边框宽度`,itemKey:`borderWidth`,itemTypeRange:`const,var`,itemType:`InputNumber`,itemOption:{},itemDefaultValue:`1`,itemCondition:`isBorder.1`},{itemId:`003`,itemName:`边框样式`,itemKey:`borderStyle`,itemTypeRange:`const,var`,itemType:`Select`,itemOption:{iParamList:[{key:`solid`,value:`solid`},{key:`dashed`,value:`dashed`},{key:`dotted`,value:`dotted`}]},itemDefaultValue:`solid`,itemCondition:`isBorder.1`},{itemId:`004`,itemName:`边框颜色`,itemKey:`borderColor`,itemTypeRange:`const,var`,itemType:`Color`,itemOption:{},itemDefaultValue:`#e7e7ee`,itemCondition:`isBorder.1`}]},{itemId:`800`,itemName:`阴影`,itemKey:`shadow`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`阴影`,itemKey:`isShadow`,itemTypeRange:`const`,itemType:`Switcher`,itemDefaultValue:`0`,itemCondition:`isShadow`},{itemId:`002`,itemName:`阴影颜色`,itemKey:`shadowColor`,itemTypeRange:`const`,itemType:`Color`,itemDefaultValue:`#e7e7ee`,itemCondition:`isShadow.1`},{itemId:`003`,itemName:`x偏移`,itemKey:`shadowX`,itemTypeRange:`const`,itemType:`InputNumber`,itemDefaultValue:`0`,itemCondition:`isShadow.1`},{itemId:`004`,itemName:`y偏移`,itemKey:`shadowY`,itemTypeRange:`const`,itemType:`InputNumber`,itemDefaultValue:`0`,itemCondition:`isShadow.1`},{itemId:`005`,itemName:`阴影模糊`,itemKey:`shadowBlur`,itemTypeRange:`const`,itemType:`InputNumber`,itemDefaultValue:``,itemCondition:`isShadow.1`},{itemId:`006`,itemName:`阴影拓展`,itemKey:`shadowSpread`,itemType:`InputNumber`,itemTypeRange:`const`,itemDefaultValue:``,itemCondition:`isShadow.1`}]},{itemId:`900`,itemName:`转换`,itemKey:`transform`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`旋转`,itemKey:`rotate`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{symbol:`deg`,type:`integer`},itemDefaultValue:``}]},{itemId:`1000`,itemName:`高级`,itemKey:`other`,itemTypeRange:`const`,itemType:`group`,itemOption:{mode:`free`},itemChildren:[{itemId:`002`,itemName:`溢出`,itemKey:`overflow`,itemTypeRange:`const`,itemType:`Select`,itemOption:{iParamList:[{key:`hidden`,value:`隐藏`},{key:`visible`,value:`可见`}]},itemDefaultValue:`hidden`},{itemId:`001`,itemName:`不透明度`,itemKey:`opacity`,itemTypeRange:`const`,itemType:`InputNumber`,itemOption:{symbol:`%`,type:`+integer`},itemDefaultValue:``}]}]},Du={_source:`c9.6a9947d5.js module (directives meta)`,properties:[{itemId:`001`,itemName:`显示条件`,itemDesc:``,itemTypeRange:`const`,itemType:`Group`,itemKey:`v-show`,itemOption:{mode:`free`},itemChildren:[{itemId:`001`,itemName:`显隐设置`,itemType:`Select`,itemKey:`showType`,itemOption:{iParamList:[{key:`00`,value:`始终显示`},{key:`01`,value:`满足条件显示`},{key:`02`,value:`满足条件隐藏`}]},itemDefaultValue:`00`,itemCondition:`showType`},{itemId:`002`,itemName:`具体条件`,itemType:`IfForm`,itemKey:`condition`,itemOption:{},itemDefaultValue:{},itemCondition:`showType.01|02`}]}]},Ou=e=>e===void 0?e:JSON.parse(JSON.stringify(e)),ku=0,Au=e=>`${e}_${(++ku).toString(36)}`,ju=Tu.components||{},Mu=Eu.properties||[],Nu={};(function e(t,n=[],r=[]){t.forEach(t=>{let i=n.concat(t.itemId),a=r.concat(t.itemKey);Nu[i.join(`|`)]=t,Nu[a.join(`.`)]=t,t.itemChildren&&e(t.itemChildren,i,a)})})(Mu);var Pu=Du.properties||[],Fu=class{constructor(e={}){this.id=Au(`style`),this.state=Object.assign({},e.state||{}),this.visible=e.visible||{},this.meta=e.meta||{},this.properties=[],this.parseStateProperties(this.state,this.properties)}parseStateProperties(e,t=[]){let n=Ou(e)||{};for(let e in n){let r=Nu[e];if(!r)continue;let i=new X(r);t.push(i);let a=Object.keys(n[e]||{}),o=i.itemChildren?.properties||[],s=this.visible&&this.visible.flex;e===`flex`&&s&&typeof s==`object`&&s.flexShrink&&a.push(`flexShrink`);for(let e=0;e<o.length;e++)a.includes(o[e].itemKey)||o.splice(e--,1);wu.setPropertyValue(o,n[e]),i.itemValueFrom=`0`,i.itemUpdated=!0}}onRestore(e={}){this.properties.length=0,this.parseStateProperties(this.state,this.properties);let t=this.properties.reduce((e,t)=>(e[t.itemId]=t,e),{}),n={append(e,t,n=[]){let r=[].concat(n);r.push(e.itemId);let i=Nu[r.join(`|`)],a=new X(i||{});t.push(a),a.onRestore(Ou(e),Su.Delete)}};(e.properties||[]).forEach(e=>{let r=Nu[e.itemId];if(!r){let n=new X(e);this.properties.push(n),t[e.itemId]=n,n.onRestore(e,Su.Delete);return}let i=t[e.itemId];if(i)i.onRestore(e,Su.Append,n);else{let n=new X(r);this.properties.push(n),t[e.itemId]=n,n.onRestore(e,Su.Delete)}}),X.updatePropertyVisible(this.properties)}onPreview(){let e=this.properties.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{});return{id:this.id,properties:e}}onExport(){return{properties:this.properties.reduce((e,t)=>{let n=t.onExport();return n&&e.push(n),e},[])}}applyChange(e,t){let n=e.onExport(t);if(!n)return;let r=e.itemId,i=this.properties.filter(e=>e.itemId===r)[0];if(!i){i=new X(Nu[r]||{}),this.properties.push(i),i.onRestore(Ou(n),Su.Delete);return}let a=[r];for(let e=t;e;e=e.child)a.push(e.itemId);i.onRestore(Ou(n),Su.Append,{append(e,t){let n=Nu[a.join(`|`)],r=new X(n||{});t.push(r),r.onRestore(Ou(e),Su.Delete)}})}},Iu=class{constructor(e={}){this.id=Au(`slot`),this.slotKey=e.slotKey,this.slotName=e.slotName,this.slotDesc=e.slotDesc||``,this.slotScope=e.slotScope===!0||e.slotScope===`true`,this.slotWidth=e.slotWidth||``,this.slotHeight=e.slotHeight||``,this.slotSwitch=e.slotSwitch===void 0?`1`:e.slotSwitch,this.components=[]}onRestore(e={}){e.slotSwitch!==void 0&&(this.slotSwitch=e.slotSwitch),this.components=(e.components||[]).map(e=>Bu(e))}onPreview(){return{id:this.id,slotKey:this.slotKey,slotScope:this.slotScope,slotDesc:this.slotDesc,slotSwitch:this.slotSwitch,slotWidth:this.slotWidth,slotHeight:this.slotHeight,components:this.components.reduce((e,t)=>{let n=t.onPreview();return n&&e.push(n),e},[])}}onExport(){return{slotKey:this.slotKey,slotScope:this.slotScope,slotSwitch:this.slotSwitch,components:(this.components||[]).map(e=>e&&typeof e.onExport==`function`?e.onExport():e)}}};function Lu(e=[],t=[],n={}){let r={},i=t.length>0;return(e||[]).forEach(e=>{if(!e||!e.itemKey)return;let i=t.concat(e.itemKey);e.itemValueFrom===`1`?(r[e.itemKey]=e.itemDefaultValue,e.itemValue&&(n[i.join(`.`)]=e.itemValue)):e.itemValueFrom===`2`?r[e.itemKey]=e.itemValue:e.itemChildren&&e.itemChildren.properties?r[e.itemKey]=Lu(e.itemChildren.properties,i,n):e.itemList?r[e.itemKey]=e.itemList.map((e,t)=>Lu(e&&e.properties||[],i.concat(String(t)),n)):r[e.itemKey]=e.itemValue}),i||(r.__vars__=n),r}function Ru(e={},t=[]){let n=e.event||{},r=(t||[]).filter(e=>e.eventKey===n.eventKey)[0]||{},i=e.action||{};return{event:{eventName:r.eventName,eventKey:r.eventKey},action:{actionType:i.actionType,properties:Lu(i.properties||[])},schemaIndex:-1}}var zu=class{constructor(e={}){let t=e.className,n=ju[t]||{};this.id=e.id||Au(`comp`),this.componentId=e.componentId||Au(String(t).toLowerCase()),this.name=e.name||n.name||t,this.className=t,this.version=e.version||n.version,this.visible=!0,this.metaMissing=!ju[t],this.style=new Fu({state:n.styleState,visible:n.styleVisible}),this.directives=Pu.map(e=>new X(e)),this.properties=(n.properties||[]).map(e=>new X(e)),this.events=n.events||[],this.eventactions=[],this.slots=(n.slots||[]).map(e=>new Iu(e)),this._schemaNode=e,this.onRestore(e)}onRestore(e={}){this.style.onRestore(e.style||{}),X.restoreProperty(e.directives||[],this.directives),X.updatePropertyVisible(this.directives),X.restoreProperty(e.properties||[],this.properties),X.updatePropertyVisible(this.properties),this.eventactions=(e.eventactions||[]).map((e,t)=>{let n=Ru(e,this.events);return n.schemaIndex=t,n});let t=(e.slots||[]).reduce((e,t)=>(e[t.slotKey]=t,e),{});this.slots.forEach(e=>{t[e.slotKey]&&e.onRestore(t[e.slotKey])}),this.metaMissing&&!this.slots.length&&(e.slots||[]).length&&(e.slots||[]).forEach(e=>{let t=new Iu({slotKey:e.slotKey,slotScope:e.slotScope});t.onRestore(e),this.slots.push(t)})}onPreview(){let e=this.directives.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{}),t=this.properties.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{}),n={id:this.id,componentId:this.componentId,name:this.name,className:this.className,version:this.version,directives:e,style:this.style.onPreview(),properties:t,eventactions:this.eventactions,slots:this.slots.map(e=>e.onPreview()),visible:this.visible,metaMissing:this.metaMissing||void 0,_schemaNode:this._schemaNode};return Xu(n,{className:this.className,properties:this.properties,style:this.style.properties,directives:this.directives,events:this.events}),n}};function Bu(e){return new zu(e)}var Vu=class{constructor(e={}){this.id=Au(`view`),this.width=e.width||`375`,this.className=e.className||`Root`,this.style=new Fu({state:{}}),this.properties=[],this.eventactions=[],this.components=[],this._schemaNode=e,this.onRestore(e)}onRestore(e={}){this.style.onRestore(e.style||{}),X.restoreProperty(e.properties||[],this.properties),X.updatePropertyVisible(this.properties),this.eventactions=(e.eventactions||[]).map((e,t)=>{let n=Ru(e,[]);return n.schemaIndex=t,n}),this.components=(e.components||[]).map(e=>Bu(e))}onPreview(){let e=this.properties.reduce((e,t)=>{let n=t.onPreview();return n&&X.mergePreview(e,n),e},{}),t={id:this.id,componentId:this.id,width:this.width,className:this.className,style:this.style.onPreview(),properties:e,eventactions:this.eventactions,components:this.components.map(e=>e.onPreview()),_schemaNode:this._schemaNode};return Xu(t,{className:this.className,properties:this.properties,style:this.style.properties,directives:[],events:[]}),t}};function Hu(e){if(!e)return;let t=e=>(e||[]).reduce((e,t)=>(e[t.key]=t.defaultValue,e),{});return{dictionaryList:t(e.dictionaryList),inputParams:t(e.inputParams),mocks:e.mocks||{}}}function Uu(e){return Au(String(e||`comp`).toLowerCase())}function Wu(e){let t=ju[e];return!!(t&&t.slots&&t.slots.length)}function Gu(e){let t=ju[e];return t&&t.slots&&t.slots.length?t.slots[0].slotKey:`default`}function Ku(e){if(!ju[e])throw Error(`未知组件类型:`+e);let t=new zu({className:e,componentId:Uu(e)}),n=e=>(e||[]).map(e=>e.onExport()).filter(e=>e!==void 0);return{componentId:t.componentId,className:t.className,directives:n(t.directives),style:t.style.onExport(),properties:n(t.properties),eventactions:[],slots:t.slots.map(e=>e.onExport())}}function qu(e={}){let t=new Vu(e.view||e),n=Hu(e.dictionary);return{id:e.id,version:e.version,pageId:e.pageId,name:e.name,desc:e.desc,platform:e.platform,...n?{dictionary:n}:{},view:t.onPreview()}}function Ju(e={}){let t={};return e.iParamList&&(t.iParamList=e.iParamList),e.iTypeList&&(t.iTypeList=e.iTypeList),e.codeKey&&(t.codeKey=e.codeKey),e.language&&(t.language=e.language),e.max!==void 0&&(t.max=e.max),e.min!==void 0&&(t.min=e.min),e.step!==void 0&&(t.step=e.step),t}function Yu(e){if(!e||!e.itemKey)return null;let t={itemId:e.itemId,itemKey:e.itemKey,itemName:e.itemName,itemType:e.itemType,itemValue:e.itemValue,itemValueFrom:e.itemValueFrom,itemTypeRange:e.itemTypeRange,itemVisible:e.itemVisible,itemRequired:!!e.itemRequired,itemDesc:e.itemDesc,options:Ju(e.itemOption)};return e.itemChildren&&e.itemChildren.properties&&e.itemChildren.properties.length&&(t.children=e.itemChildren.properties.map(Yu).filter(Boolean)),e.itemList&&e.itemList.length&&(t.itemList=e.itemList.map(e=>(e.properties||[]).map(Yu).filter(Boolean))),t}function Xu(e,t){Object.defineProperty(e,"_model",{value:t,enumerable:!1,configurable:!0,writable:!1})}function Zu(e){let t=[];if(e.components&&t.push(...e.components),e.slots)for(let n of e.slots)n.components&&t.push(...n.components);return t}function Qu(e){if(!e)return null;let t=e._model||{},n={id:e.id,componentId:e.componentId,className:e.className,name:e.name,properties:(t.properties||[]).map(Yu).filter(Boolean),style:(t.style||[]).map(Yu).filter(Boolean),directives:(t.directives||[]).map(Yu).filter(Boolean),eventactions:e.eventactions||[]},r=Zu(e);return r.length&&(n.components=r.map(Qu).filter(Boolean)),n}function $u(e={}){let t=Qu(qu(e).view);return t&&(t.id=e.id,t.version=e.version),t}var ed=cn({node:null,sourceCardId:null});function td(){return ed.node}function nd(){return ed.sourceCardId}function rd(e,t=null){e?(ed.node=JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)),ed.sourceCardId=t||null):(ed.node=null,ed.sourceCardId=null)}function id(e,t=new Set){if(!e||typeof e!=`object`)return[...t];if(typeof e.className==`string`&&e.className&&t.add(e.className),Array.isArray(e.slots)){for(let n of e.slots)if(n&&Array.isArray(n.components))for(let e of n.components)id(e,t)}return[...t]}function ad(e){if(e&&typeof e==`object`&&(e.componentId!=null&&e.className!=null&&(e.componentId=Uu(e.className)),Array.isArray(e.slots))){for(let t of e.slots)if(t&&Array.isArray(t.components))for(let e of t.components)ad(e)}}var od=class{constructor(e,t){this.vm=e,this.styleProps=t||{}}get adapter(){return this.vm&&this.vm.adapter?this.vm.adapter:this.vm}parse(){let e=this.styleProps,t={};return this.parseRect(e.rect||{},t),this.parseFlex(e.flex||{},t),this.parseBackground(e.background||{},t),this.parsePadding(e.padding||{},t),this.parseMargin(e.margin||{},t),this.parseBorderRadius(e.borderRadius||{},t),this.parseBorder(e.border||{},t),this.parseShadow(e.shadow||{},t),this.parseTransform(e.transform||{},t),this.parseOther(e.other||{},t),t.boxSizing=`border-box`,t}parseFont(e={},t={}){return e.color&&(t.color=this.adapter.doColor(e.color)),e.fontSize&&(t.fontSize=this.adapter.doSize(e.fontSize,`font`)),e.lineHeight&&(t.lineHeight=this.adapter.doSize(e.lineHeight)),e.textAlign&&(t.textAlign=e.textAlign),e.fontWeight&&(t.fontWeight=e.fontWeight),e.fontStyle&&(t.fontStyle=e.fontStyle),e.textDecoration&&(t.textDecoration=e.textDecoration),e.isMaxLine==`1`&&(t.lineClamp=e.maxLine||`1`,t[`-webkit-line-clamp`]=e.maxLine||`1`),t}parseImage(e={},t={}){return e.cropMode==`01`?(t.backgroundSize=`contain`,t.aspectRatio=`1/1`):(t.backgroundSize=`cover`,t.aspectRatio=`16/9`),t}parseRect(e,t){t.width=this.adapter.doSize(e.width),t.height=this.adapter.doSize(e.height),t.maxWidth=this.adapter.doSize(e.maxWidth),t.maxHeight=this.adapter.doSize(e.maxHeight),t.minWidth=this.adapter.doSize(e.minWidth),t.minHeight=this.adapter.doSize(e.minHeight)}parseFlex(e,t){e.flexDirection&&(t.flexDirection=e.flexDirection),e.justifyContent&&(t.justifyContent=e.justifyContent),e.alignItems&&(t.alignItems=e.alignItems),e.flexWrap&&(t.flexWrap=e.flexWrap),e.flexShrink&&(t.flexShrink=e.flexShrink),e.gap&&(t.gap=this.adapter.doSize(e.gap))}parseBackground(e,t){if(e.backgroundType==`01`&&e.backgroundColor)t.backgroundColor=this.adapter.doColor(e.backgroundColor);else if(e.backgroundType==`02`&&e.backgroundImage){if(t.backgroundImage=`url("${this.adapter.doReplaceUrl(this.adapter.doI18n(e.backgroundImage))}")`,e.backgroundPosition){let n=e.backgroundPosition.split(/[ ]+/);t.backgroundPosition=`${this.adapter.doSize(n[0]||``)} ${this.adapter.doSize(n[1]||``)}`}else t.backgroundPosition=`50% 50%`;if(e.backgroundSize){let n=e.backgroundSize.split(/[ ]+/);t.backgroundSize=n.length>=2?`${this.adapter.doSize(n[0]||``)} ${this.adapter.doSize(n[1]||``)}`:e.backgroundSize}else t.backgroundSize=`cover`;t.backgroundRepeat=e.backgroundRepeat||`no-repeat`}else e.backgroundType==`03`&&e.backgroundGradient&&(t.backgroundImage=e.backgroundGradient)}parsePadding(e,t){e.paddingType==`0`?t.padding=this.adapter.doSize(e.padding):e.paddingType==`1`&&(t.paddingLeft=this.adapter.doSize(e.paddingLeft),t.paddingTop=this.adapter.doSize(e.paddingTop),t.paddingRight=this.adapter.doSize(e.paddingRight),t.paddingBottom=this.adapter.doSize(e.paddingBottom))}parseMargin(e,t){e.marginType==`0`?t.margin=this.adapter.doSize(e.margin):e.marginType==`1`&&(t.marginLeft=this.adapter.doSize(e.marginLeft),t.marginTop=this.adapter.doSize(e.marginTop),t.marginRight=this.adapter.doSize(e.marginRight),t.marginBottom=this.adapter.doSize(e.marginBottom))}parseBorderRadius(e,t){e.borderRadiusType==`0`?t.borderRadius=this.adapter.doSize(e.borderRadius):e.borderRadiusType==`1`&&(t.borderTopLeftRadius=this.adapter.doSize(e.borderTopLeftRadius),t.borderTopRightRadius=this.adapter.doSize(e.borderTopRightRadius),t.borderBottomRightRadius=this.adapter.doSize(e.borderBottomRightRadius),t.borderBottomLeftRadius=this.adapter.doSize(e.borderBottomLeftRadius))}parseBorder(e,t){e.isBorder==`1`&&(t.borderWidth=this.adapter.doSize(e.borderWidth||`1`),t.borderStyle=e.borderStyle||`solid`,t.borderColor=this.adapter.doColor(e.borderColor||`#e7e7ee`))}parseShadow(e,t){if(e.isShadow==`1`){let n=[];n.push(this.adapter.doSize(e.shadowX||`0`)),n.push(this.adapter.doSize(e.shadowY||`0`)),e.shadowBlur&&n.push(this.adapter.doSize(e.shadowBlur)),e.shadowSpread&&n.push(this.adapter.doSize(e.shadowSpread)),n.push(this.adapter.doColor(e.shadowColor||`#e7e7ee`)),t.boxShadow=n.join(` `)}}parseTransform(e,t){let n=[];e.rotate&&n.push(`rotate(${e.rotate}deg)`),n.length&&(t.transform=n.join(` `))}parseOther(e,t){t.overflow=e.overflow?e.overflow:`hidden`,e.opacity&&(t.opacity=`${Number(e.opacity)/100}`)}},sd={inject:[`adapter`],methods:{doI18n(e){return this.adapter.doI18n(e)}}},Z=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},cd={name:`CeRoot`,emits:[`onReady`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){let e=new od(this,this.styleProps).parse();return Object.assign({fontSize:this.adapter.doSize(14,`font`)},e)}},mounted(){this.$emit(`onReady`,{})}};function ld(e,t,n,r,i,a){return V(),H(`div`,{ref:`root`,class:`ce_root`,style:A(a.styleObj)},[ca(e.$slots,`default`)],4)}var ud=Z(cd,[[`render`,ld],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Root.vue`]]),dd={name:`CeRow`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function fd(e,t,n,r,i,a){return V(),H(`div`,{ref:`row`,class:`ce_row`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[ca(e.$slots,`default`)],4)}var pd=Z(dd,[[`render`,fd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Row.vue`]]),md={name:`CeColumn`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function hd(e,t,n,r,i,a){return V(),H(`div`,{ref:`column`,class:`ce_column`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[ca(e.$slots,`default`)],4)}var gd=Z(md,[[`render`,hd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Column.vue`]]),_d={name:`CeText`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``}},computed:{styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),t}}};function vd(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_text`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},M(e.doI18n(n.value)),5)}var yd=Z(_d,[[`render`,vd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Text.vue`]]),bd={name:`CeButton`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``},disabled:{type:[Boolean,String,Number],default:!1}},computed:{styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),t}}};function xd(e,t,n,r,i,a){return V(),H(`button`,{class:j([`ce_button`,{ce_button_disabled:n.disabled}]),style:A(a.styleObj),onClick:t[0]||=t=>!n.disabled&&e.$emit(`click`,t)},M(e.doI18n(n.value)),7)}var Sd=Z(bd,[[`render`,xd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Button.vue`]]),Cd={name:`CeDivider`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function wd(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_divider`,style:A(a.styleObj)},null,4)}var Td=Z(Cd,[[`render`,wd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Divider.vue`]]),Ed=`/assets/svg-symbols-B2exBrAr.svg`,Dd=`/assets/default-image-wzZYQ86K.png`,Od=Ed,kd=Dd,Ad={name:`SvgSymbols`,props:{icon:{type:String,default:``},color:{type:String,default:``}},data(){return{symbols:Od}},computed:{href(){return`${this.symbols}#${this.icon}`}}},jd=[`fill`],Md=[`xlink:href`,`fill`];function Nd(e,t,n,r,i,a){return V(),H(`svg`,{class:`ce_svgsymbols`,fill:n.color},[W(`use`,{"xlink:href":a.href,fill:n.color},null,8,Md)],8,jd)}var Pd=Z(Ad,[[`render`,Nd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/SvgSymbols.vue`]]),Fd={name:`SvgCode`,props:{content:{type:String,default:``},color:{type:String,default:``}},computed:{svgStyle(){return{fill:this.color}}}},Id=[`innerHTML`];function Ld(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_svgcode`,style:A(a.svgStyle),innerHTML:n.content},null,12,Id)}var Rd={name:`CeIcon`,emits:[`click`],mixins:[sd],components:{SvgSymbols:Pd,SvgCode:Z(Fd,[[`render`,Ld],[`__file`,`/Users/ynet/dsl-card/card-editor/components/SvgCode.vue`]])},props:{styleProps:{type:Object,default:()=>({})},icon:{type:String,default:``},color:{type:String,default:``},content:{type:String,default:``}},computed:{styleObj(){return new od(this,this.styleProps).parse()}}};function zd(e,t,n,r,i,a){let o=R(`svg-code`),s=R(`svg-symbols`);return V(),H(`span`,{class:`ce_icon`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[n.content&&n.content.trim()?(V(),U(o,{key:0,color:n.color,content:n.content},null,8,[`color`,`content`])):(V(),U(s,{key:1,color:n.color,icon:n.icon},null,8,[`color`,`icon`]))],4)}var Bd=Z(Rd,[[`render`,zd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Icon.vue`]]),Vd={name:`CeImage`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``}},computed:{styleObj(){return new od(this,this.styleProps).parse()},fillStyleObj(){let e={};return new od(this,this.styleProps).parseImage(this.styleProps.image||{},e),e.backgroundImage=`url(${this.adapter.doReplaceUrl(this.doI18n(this.value||kd))})`,e}}};function Hd(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_image`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[W(`div`,{class:`ce_image_fill`,style:A(a.fillStyleObj)},null,4)],4)}var Ud=Z(Vd,[[`render`,Hd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Image.vue`]]),Wd={name:`CeMultiText`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},textList:{type:Array,default:()=>[]}},computed:{styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),t}},methods:{doClick(e,t,n){e.__do__||(e.__do__=!0,this.$emit(`click`,{data:{index:n,tag:t?t.tag:``,text:t?t.value:``}}))},parseFont(e){let t={};return new od(this,{}).parseFont(e||{},t),e&&e.backgroundColor&&(t.backgroundColor=this.adapter.doColor(e.backgroundColor)),t}}},Gd={class:`ce_multitext_item`},Kd=[`onClick`];function qd(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_multitext`,style:A(a.styleObj),onClick:t[0]||=e=>a.doClick(e)},[W(`span`,Gd,[(V(!0),H(B,null,z(n.textList,(t,n)=>(V(),H(`span`,{key:n,style:A(a.parseFont(t)),onClick:e=>a.doClick(e,t,n)},M(e.doI18n(t.value)),13,Kd))),128))])],4)}var Jd=Z(Wd,[[`render`,qd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/MultiText.vue`]]),Yd={name:`CeListLayout`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:Array,default:()=>[]},direction:{type:String,default:`vertical`},rowSpacing:{type:[String,Number],default:``},edgeInsets:{type:String,default:``}},computed:{itemStyleObj(){let e=this.direction===`horizontal`;return{marginLeft:e?this.adapter.doSize(this.rowSpacing):0,marginTop:e?0:this.adapter.doSize(this.rowSpacing)}},conClasses(){return{ce_listlayout_horizontal:this.direction===`horizontal`}},conStyleObj(){let e={};if(this.edgeInsets){let t=this.parsePadding(this.edgeInsets);e.paddingLeft=this.adapter.doSize(t[1]),e.paddingTop=this.adapter.doSize(t[0]),e.paddingRight=this.adapter.doSize(t[3]),e.paddingBottom=this.adapter.doSize(t[2])}return e},rootStyle(){return new od(this,this.styleProps).parse()}},methods:{parsePadding(e){return String(e).replace(/[{}]/g,``).split(`,`)}}};function Xd(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_listlayout`,style:A(a.rootStyle),onClick:t[0]||=t=>e.$emit(`click`,t)},[W(`div`,{class:j([`ce_listlayout_con`,a.conClasses]),style:A(a.conStyleObj)},[(V(!0),H(B,null,z(n.value||[],(t,n)=>(V(),H(`div`,{key:n,class:`ce_listlayout_item`,style:A(n===0?{}:a.itemStyleObj)},[ca(e.$slots,`default`,{item:t,index:n})],4))),128))],6)],4)}var Zd=Z(Yd,[[`render`,Xd],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ListLayout.vue`]]),Qd={name:`CeGridLayout`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:Array,default:()=>[]},column:{type:[Number,String],default:2},rowSpacing:{type:[String,Number],default:``},itemSpacing:{type:[String,Number],default:``},edgeInsets:{type:String,default:``}},computed:{styleObj(){let e=new od(this,this.styleProps).parse();if(this.rowSpacing&&(e.rowGap=this.adapter.doSize(this.rowSpacing)),this.edgeInsets){let t=this.parsePadding(this.edgeInsets);e.paddingLeft=this.adapter.doSize(t[1]),e.paddingTop=this.adapter.doSize(t[0]),e.paddingRight=this.adapter.doSize(t[3]),e.paddingBottom=this.adapter.doSize(t[2])}return e}},methods:{getItemStyle(e){let t=Number(this.column),n=100/t+`%`,r=0,i=0;return t>1&&(this.itemSpacing&&(i=this.adapter.doSize(this.itemSpacing),r=this.adapter.doSize((t-1)*Number(this.itemSpacing)/t)),n=`calc(${n} - ${r})`,e%t===t-1&&(i=0)),{width:n,marginRight:i}},parsePadding(e){return String(e).replace(/[{}]/g,``).split(`,`)}}};function $d(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_gridlayout`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[(V(!0),H(B,null,z(n.value||[],(t,n)=>(V(),H(`div`,{key:n,class:`ce_gridlayout_item`,style:A(a.getItemStyle(n))},[ca(e.$slots,`default`,{item:t,index:n})],4))),128))],4)}var ef=Z(Qd,[[`render`,$d],[`__file`,`/Users/ynet/dsl-card/card-editor/components/GridLayout.vue`]]);function tf(e){return t=>({get:()=>t[e],set:n=>{t[e]=n}})}function nf(e){return t=>({get:()=>t[e].bind(t)})}function rf(e,t=[]){return(n,r)=>({get:()=>(...i)=>(t.forEach(e=>{i[e]=Number(i[e])*r}),n[e](...i))})}var af={textAlign:tf(`textAlign`),textBaseline:tf(`textBaseline`),fillStyle:tf(`fillStyle`),strokeStyle:tf(`strokeStyle`),lineCap:tf(`lineCap`),imageSmoothingEnabled:tf(`imageSmoothingEnabled`),imageSmoothingQuality:tf(`imageSmoothingQuality`),lineWidth:(e,t)=>({get:()=>e.lineWidth,set:n=>{e.lineWidth=n*t}}),font:(e,t,n)=>({get:()=>e.font,set:r=>{e.font=String(r).replace(/([0-9.]+)px/,(e,r)=>Number(r)*t*Number(n||1)+`px`)}}),fillText:(e,t,n,r)=>({get:()=>(...n)=>(n[0]=n[0]?r.adapter.doI18n(n[0]):n[0],[1,2].forEach(e=>{n[e]=Number(n[e])*t}),e.fillText(...n))}),fillRect:rf(`fillRect`,[0,1,2,3]),moveTo:rf(`moveTo`,[0,1]),lineTo:rf(`lineTo`,[0,1]),arc:rf(`arc`,[0,1,2]),clearRect:rf(`clearRect`,[0,1,2,3]),createLinearGradient:rf(`createLinearGradient`,[0,1,2,3]),createRadialGradient:rf(`createRadialGradient`,[0,1,2,3,4,5]),beginPath:nf(`beginPath`),closePath:nf(`closePath`),fill:nf(`fill`),stroke:nf(`stroke`),measureText:(e,t)=>({get:()=>(...n)=>{let r=e.font;e.font=r.replace(/([0-9.]+)px/,(e,n)=>Number(n)/t+`px`);let i=e.measureText(...n);return e.font=r,i}}),setLineDash:e=>({get:()=>e.setLineDash.bind(e),set:t=>e.setLineDash(t)})};function of(e,t){function n(n,r){Object.keys(af).forEach(i=>{Object.defineProperty(this,i,af[i](e,n,r,t))})}return n.prototype=e,n}function sf(e,t){return function(n,r,i){this.width=n.width/r,this.height=n.height/r,this.style=e.style,this.getContext=function(...n){return new(of(e.getContext(...n),t))(r,i)}}}var cf={name:`CeCanvas`,emits:[`onMeasured`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})}},computed:{styleObj(){return new od(this,this.styleProps).parse()}},created(){this.resizeEvt=typeof window<`u`&&`orientationchange`in window?`orientationchange`:`resize`},mounted(){this.$nextTick(()=>this.doPaint()),typeof window<`u`&&window.addEventListener(this.resizeEvt,this.doRepaint,!1)},unmounted(){typeof window<`u`&&window.removeEventListener(this.resizeEvt,this.doRepaint,!1)},methods:{doPaint(){let e=this.$refs.canvas;if(!e)return;let t=e.getBoundingClientRect(),{availableWidth:n,applyUnitRatio:r,fontRatio:i=1}=this.adapter.getSystemInfo(),a=n*r/this.adapter.getDesignInfo().styleWidth||1,o=e.getContext(`2d`),s=(typeof window<`u`?window.devicePixelRatio:1)||1;e.width=t.width*s,e.height=t.height*s,o.scale(s,s);let c=new(sf(e,this))(t,a,i);this.$emit(`onMeasured`,{canvas:c,width:c.width,height:c.height})},doRepaint(){let e=this.$refs.canvas;e&&(e.getContext(`2d`).clearRect(0,0,e.width,e.height),this.doPaint())}}};function lf(e,t,n,r,i,a){return V(),H(`canvas`,{ref:`canvas`,class:`ce_canvas`,style:A(a.styleObj)},null,4)}var uf=Z(cf,[[`render`,lf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Canvas.vue`]]),df={name:`CeInput`,emits:[`input`,`change`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``},placeholder:{type:[String,Number],default:``},inputType:{type:String,default:``},maxLength:{type:[String,Number],default:``}},data(){return{typeMap:{text:`text`,number:`text`,email:`text`,password:`password`,phone:`text`},regexpMap:{number:/^-?([0-9]*|(0|[1-9][0-9]*)\.[0-9]{0,})?$/i,email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,phone:/^[0-9]{11}$/},inputValue:``,oldValue:``}},created(){this.inputValue=this.value,this.oldValue=this.inputValue},computed:{type(){return this.typeMap[this.inputType]},styleObj(){let e=new od(this,this.styleProps),t=e.parse();return e.parseFont(this.styleProps.font||{},t),Object.assign({padding:`${this.adapter.doSize(4)} ${this.adapter.doSize(8)}`},t)}},watch:{value(){this.inputValue=this.value,this.oldValue=this.inputValue}},methods:{doInput(e){let t=this.regexpMap[this.inputType];!t||t.test(e)?(this.$emit(`input`,e),this.inputValue=e):this.inputValue=this.oldValue}}},ff=[`type`,`placeholder`,`maxlength`,`value`];function pf(e,t,n,r,i,a){return V(),H(`input`,{class:`ce_input`,style:A(a.styleObj),type:a.type,placeholder:e.doI18n(n.placeholder),maxlength:n.maxLength,value:i.inputValue,onInput:t[0]||=t=>e.$emit(`input`,t.target.value),onChange:t[1]||=t=>e.$emit(`change`)},null,44,ff)}var mf=Z(df,[[`render`,pf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Input.vue`]]),hf={name:`CeViewContainer`,emits:[`action`],mixins:[sd],inject:[`adapter`,`customComponents`],props:{styleProps:{type:Object,default:()=>({})},customClass:{type:String,default:``},customProps:{type:Object,default:()=>({})},customRemarkImg:{type:String,default:``}},computed:{componentClass(){let e=this.customComponents;return e?this.customClass?e[this.customClass]||e.Placeholder||``:e.Placeholder||``:``},componentProps(){return this.customProps||{}},componentIcon(){return this.customRemarkImg||``},styleObj(){return new od(this,this.styleProps).parse()}}};function gf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_viewcontainer`,style:A(a.styleObj)},[a.componentClass?(V(),U(aa(a.componentClass),{key:0,icon:a.componentIcon,props:a.componentProps,"custom-class":n.customClass,onAction:t[0]||=t=>e.$emit(`action`,t)},null,40,[`icon`,`props`,`custom-class`])):q(`v-if`,!0)],4)}var _f=Z(hf,[[`render`,gf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ViewContainer.vue`]]),vf={TopLeft:{justifyContent:`flex-start`,alignItems:`flex-start`},TopCenter:{justifyContent:`flex-start`,alignItems:`center`},TopRight:{justifyContent:`flex-start`,alignItems:`flex-end`},CenterLeft:{justifyContent:`center`,alignItems:`flex-start`},Center:{justifyContent:`center`,alignItems:`center`},CenterRight:{justifyContent:`center`,alignItems:`flex-end`},BottomLeft:{justifyContent:`flex-end`,alignItems:`flex-start`},BottomCenter:{justifyContent:`flex-end`,alignItems:`center`},BottomRight:{justifyContent:`flex-end`,alignItems:`flex-end`}},yf={name:`CeAbsoluteLayout`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},align:{type:String,default:``}},computed:{styleObj(){let e=new od(this,this.styleProps).parse();return Object.assign(e,vf[this.align]||{})}}};function bf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_absolutelayout`,style:A(a.styleObj)},[ca(e.$slots,`default`)],4)}var xf=Z(yf,[[`render`,bf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/AbsoluteLayout.vue`]]),Sf={CheckGroupCircle:[`M512 65.983389c-245.919634 0-446.016611 200.095256-446.016611 446.016611 0 245.952318 200.064292 446.016611 446.016611 446.016611S958.016611 757.952318 958.016611 512C958.016611 266.080366 757.952318 65.983389 512 65.983389zM512 894.016611c-210.655557 0-382.016611-171.392017-382.016611-382.016611 0-210.655557 171.359333-382.016611 382.016611-382.016611 210.624593 0 382.016611 171.359333 382.016611 382.016611C894.016611 722.624593 722.624593 894.016611 512 894.016611z`,`M512 352.00086c-88.223841 0-160.00086 71.775299-160.00086 159.99914s71.775299 160.00086 160.00086 160.00086 160.00086-71.775299 160.00086-160.00086S600.223841 352.00086 512 352.00086z`],CheckGroupSquareEmpty:[`M833.008 928h-640c-52.944 0-96-43.072-96-96V192c0-52.928 43.056-96 96-96h640c52.912 0 96 43.072 96 96v640c0 52.928-43.072 96-96 96z m-640-768c-17.648 0-32 14.368-32 32v640c0 17.664 14.352 32 32 32h640a32 32 0 0 0 32-32V192c0-17.632-14.352-32-32-32h-640z`],CheckGroupSquareEmptyCheck:[`M727.984 393.184a31.968 31.968 0 0 0-45.248 0.256L449.44 629.248l-103.28-106.112a32 32 0 1 0-45.888 44.608l126.032 129.504c0.048 0.096 0.192 0.096 0.256 0.192 0.064 0.064 0.096 0.192 0.16 0.256 2.016 1.984 4.512 3.2 6.88 4.544 1.248 0.672 2.24 1.792 3.52 2.304a31.728 31.728 0 0 0 24.064 0.064c1.232-0.512 2.208-1.536 3.392-2.176 2.4-1.344 4.896-2.528 6.944-4.544 0.064-0.064 0.096-0.192 0.192-0.256 0.064-0.096 0.16-0.128 0.256-0.192l256.224-259.008a32 32 0 0 0-0.224-45.248zM832.992 928h-640c-52.928 0-96-43.072-96-96V192c0-52.928 43.072-96 96-96h640c52.928 0 96 43.072 96 96v640c0 52.928-43.056 96-96 96z m-640-768c-17.632 0-32 14.368-32 32v640c0 17.664 14.368 32 32 32h640a32 32 0 0 0 32-32V192c0-17.632-14.336-32-32-32h-640z`],CheckGroupSquare:[`M186 123c-33.137 0-60 26.863-60 60v655c0 33.137 26.863 60 60 60h655c33.137 0 60-26.863 60-60V183c0-33.137-26.863-60-60-60H186z m0-60h655c66.274 0 120 53.726 120 120v655c0 66.274-53.726 120-120 120H186c-66.274 0-120-53.726-120-120V183c0-66.274 53.726-120 120-120z`],CheckGroupSquareCheck:[`M840.6 97H185.4C137.1 97 98 136.1 98 184.4v655.3c0 48.3 39.1 87.4 87.4 87.4h655.3c48.3 0 87.4-39.1 87.4-87.4V184.4C928 136.1 888.9 97 840.6 97zM791 380.7L466.7 705.1c-17.1 17.1-44.7 17.1-61.8 0L235 535.2c-17.1-17.1-17.1-44.7 0-61.8 17.1-17.1 44.7-17.1 61.8 0l139 139L729.2 319c17.1-17.1 44.7-17.1 61.8 0 17.1 17 17.1 44.7 0 61.7z`]},Cf={RadioButtonCircle:[`M512 65.983389c-245.919634 0-446.016611 200.095256-446.016611 446.016611 0 245.952318 200.064292 446.016611 446.016611 446.016611S958.016611 757.952318 958.016611 512C958.016611 266.080366 757.952318 65.983389 512 65.983389zM512 894.016611c-210.655557 0-382.016611-171.392017-382.016611-382.016611 0-210.655557 171.359333-382.016611 382.016611-382.016611 210.624593 0 382.016611 171.359333 382.016611 382.016611C894.016611 722.624593 722.624593 894.016611 512 894.016611z`,`M512 352.00086c-88.223841 0-160.00086 71.775299-160.00086 159.99914s71.775299 160.00086 160.00086 160.00086 160.00086-71.775299 160.00086-160.00086S600.223841 352.00086 512 352.00086z`],RadioButtonCircleEmpty:[`M512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667-191.029333 426.666667-426.666667 426.666667z m0-64c200.298667 0 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667z`],RadioButtonCircleEmptyCheck:[`M512 85.333333c235.637333 0 426.666667 191.029333 426.666667 426.666667S747.637333 938.666667 512 938.666667 85.333333 747.637333 85.333333 512 276.362667 85.333333 512 85.333333z m182.613333 297.354667a32 32 0 0 0-45.258666 0.032L458.922667 573.44l-84.341334-83.989333a32 32 0 0 0-45.162666 45.344l106.986666 106.549333a32 32 0 0 0 45.226667-0.064l213.013333-213.333333a32 32 0 0 0-0.032-45.258667z`]},wf={name:`CeCheckGroup`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[Array,String,Number],default:()=>[]},dataList:{type:Array,default:()=>[]},selectColor:{type:String,default:`#0082ff`},unSelectColor:{type:String,default:`#333333`},buttonStyle:{type:String,default:`Circle`},maxSelectCount:{type:[String,Number],default:`0`},direction:{type:String,default:`horizontal`},itemPadding:{type:[String,Number],default:`4 10 4 10`},itemSpacing:{type:[String,Number],default:`4`},textSpacing:{type:[String,Number],default:`3`},fontSize:{type:[String,Number],default:`13`},iconSize:{type:[String,Number],default:`14`}},emits:[`change`,`selectChange`],computed:{rootStyle(){return{overflow:`hidden`,boxSizing:`border-box`}},checkedSet(){let e=this.value;return Array.isArray(e)?new Set(e.map(String)):e===``||e==null?new Set:new Set([String(e)])},limit(){let e=Number(this.maxSelectCount);return Number.isFinite(e)&&e>0?e:1/0}},methods:{isChecked(e){return this.checkedSet.has(String(e.key))},checkPaths(e){let t=this.isChecked(e);switch(this.buttonStyle){case`SquareEmpty`:return Sf[t?`CheckGroupSquareEmptyCheck`:`CheckGroupSquareEmpty`];case`Square`:return Sf[t?`CheckGroupSquareCheck`:`CheckGroupSquare`];case`Text`:return[];default:return Sf.CheckGroupCircle}},itemStyle(e){let t=String(this.itemPadding).split(/\s+/),n=Number(this.itemSpacing)||0,r=e===this.dataList.length-1?0:n,i=e===this.dataList.length-1?0:n,a=(e,t)=>this.adapter.doSize(e[t]===void 0?e[0]||0:e[t]),o=t.length>=4?`${a(t,0)} ${a(t,1)} ${a(t,2)} ${a(t,3)}`:this.adapter.doSize(this.itemPadding);return this.direction===`vertical`?{padding:o,marginBottom:i}:{padding:o,marginRight:r}},toggle(e){let t=String(e.key),n=new Set(this.checkedSet);n.has(t)?n.delete(t):(n.size>=this.limit&&n.clear(),n.add(t));let r=[...n];this.$emit(`change`,r),this.$emit(`selectChange`,{value:r,item:e})}}},Tf=[`onClick`],Ef={class:`ce_svgcheckstyle`,viewBox:`0 0 1024 1024`},Df=[`d`,`fill`],Of=[`title`];function kf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_check_group`,style:A(a.rootStyle)},[W(`div`,{class:`ce_check_list`,style:A({flexDirection:n.direction===`vertical`?`column`:`row`})},[(V(!0),H(B,null,z(n.dataList,(e,t)=>(V(),H(`div`,{key:e.key,class:`ce_check_item`,style:A(a.itemStyle(t)),onClick:t=>a.toggle(e)},[n.buttonStyle===`Text`?q(`v-if`,!0):(V(),H(`div`,{key:0,class:`ce_check_icon`,style:A({width:n.iconSize+`px`,height:n.iconSize+`px`,marginRight:n.textSpacing+`px`})},[(V(),H(`svg`,Ef,[(V(!0),H(B,null,z(a.checkPaths(e),(t,r)=>(V(),H(`path`,{key:r,d:t,fill:a.isChecked(e)?n.selectColor:n.unSelectColor},null,8,Df))),128))]))],4)),W(`span`,{class:`ce_check_text`,title:e.desc,style:A({color:a.isChecked(e)?n.selectColor:n.unSelectColor,fontSize:n.fontSize+`px`})},M(e.desc),13,Of)],12,Tf))),128))],4)],4)}var Af=Z(wf,[[`render`,kf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/CheckGroup.vue`]]),jf={name:`CeRadioButton`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:``},selectColor:{type:String,default:`#0082ff`},unSelectColor:{type:String,default:`#333333`},buttonStyle:{type:String,default:`Circle`},textSpacing:{type:[String,Number],default:`3`},fontSize:{type:[String,Number],default:`14`},iconSize:{type:[String,Number],default:`14`},showText:{type:[String,Number],default:`1`},text:{type:[String,Number],default:``}},emits:[`change`,`selectChange`],computed:{rootStyle(){return{overflow:`hidden`,boxSizing:`border-box`}},selected(){let e=this.value;return e!==``&&e!=null&&e!==!1&&e!==`0`},color(){return this.selected?this.selectColor:this.unSelectColor},radioPaths(){return this.selected&&this.buttonStyle===`CircleEmpty`?Cf.RadioButtonCircleEmptyCheck:this.buttonStyle===`CircleEmpty`?Cf.RadioButtonCircleEmpty:Cf.RadioButtonCircle}},methods:{toggle(){let e=this.selected?``:this.value||`1`;this.$emit(`change`,e),this.$emit(`selectChange`,!!e)}}},Mf=[`d`];function Nf(e,t,n,r,i,a){return V(),H(`span`,{class:`ce_radio_button`,style:A(a.rootStyle)},[W(`div`,{class:`ce_radio_item`,onClick:t[0]||=(...e)=>a.toggle&&a.toggle(...e)},[n.buttonStyle===`Text`?q(`v-if`,!0):(V(),H(`span`,{key:0,class:`ce_radio_icon`,style:A({width:n.iconSize+`px`,height:n.iconSize+`px`,marginRight:n.textSpacing+`px`})},[(V(),H(`svg`,{class:`ce_svgradiostyle`,viewBox:`0 0 1024 1024`,style:A({fill:a.color,stroke:a.color})},[(V(!0),H(B,null,z(a.radioPaths,(e,t)=>(V(),H(`path`,{key:t,d:e},null,8,Mf))),128))],4))],4)),n.showText===`1`||n.showText===1?(V(),H(`span`,{key:1,style:A({color:a.color,fontSize:n.fontSize+`px`})},M(e.doI18n(n.text)),5)):q(`v-if`,!0)])],4)}var Pf=Z(jf,[[`render`,Nf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/RadioButton.vue`]]),Ff={name:`CeProgressSlider`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},value:{type:[String,Number],default:0},minProgress:{type:[String,Number],default:0},maxProgress:{type:[String,Number],default:100},step:{type:[String,Number],default:1},backgroundColor:{type:String,default:`#e6e6e6`},foregroundColor:{type:String,default:`#0a59f5`},processHeight:{type:[String,Number],default:5},blockStyle:{type:String,default:`circle`},blockColor:{type:String,default:`#ffffff`},blockImage:{type:String,default:``},blockWidth:{type:[String,Number],default:15},blockHeight:{type:[String,Number],default:15}},emits:[`change`,`selectChange`],data(){return{dragging:!1}},computed:{rootStyle(){let e=(Number(this.processHeight)||5)+16,t=Number(this.blockHeight)||15;return{height:`auto`,minHeight:this.adapter.doSize(Math.max(e,t)),boxSizing:`border-box`}},min(){let e=Number(this.minProgress);return Number.isFinite(e)?e:0},max(){let e=Number(this.maxProgress);return Number.isFinite(e)?e:100},stepVal(){let e=Number(this.step);return e>0?e:1},numValue(){let e=Number(this.value);return Number.isFinite(e)?e:this.min},percent(){let e=this.max-this.min||1,t=(this.numValue-this.min)/e*100;return Math.max(0,Math.min(100,t))},conLeft(){let e=Number(this.blockWidth)||15;return`calc(${e/2}px + (100% - ${e}px) * ${this.percent} / 100)`},rectStyle(){let e=Number(this.processHeight)||5;return{backgroundColor:this.adapter.doColor(this.backgroundColor),height:this.adapter.doSize(e),borderRadius:this.adapter.doSize(e),marginTop:this.adapter.doSize(8),marginBottom:this.adapter.doSize(8)}},barStyle(){let e=Number(this.processHeight)||5,t=Number(this.blockWidth)||15;return{backgroundColor:this.adapter.doColor(this.foregroundColor),left:this.adapter.doSize(t/2),width:`calc((100% - ${t}px) * ${this.percent} / 100)`,borderTopLeftRadius:this.adapter.doSize(e),borderBottomLeftRadius:this.adapter.doSize(e)}},blockStyleObj(){let e=Number(this.blockWidth)||15,t=Number(this.blockHeight)||15,n={width:this.adapter.doSize(e),height:this.adapter.doSize(t),boxShadow:`rgba(0,0,0,0.3) 0 0 3px 0`};return this.blockStyle===`image`&&this.blockImage?(n.backgroundImage=`url(${this.adapter.doReplaceUrl(this.doI18n(this.blockImage))})`,n.borderRadius=`0`):this.blockStyle===`circle`?(n.backgroundColor=this.adapter.doColor(this.blockColor),n.borderRadius=this.adapter.doSize(Math.min(e,t)/2)):(n.backgroundColor=this.adapter.doColor(this.blockColor),n.borderRadius=this.adapter.doSize(2)),n}},methods:{clampStep(e){let t=Math.max(this.min,Math.min(this.max,e)),n=Math.round((t-this.min)/this.stepVal)*this.stepVal+this.min;return Math.max(this.min,Math.min(this.max,n))},valueFromEvent(e){let t=this.$refs.rect;if(!t)return this.numValue;let n=t.getBoundingClientRect(),r=(e.clientX-n.left)/n.width;return this.clampStep(this.min+r*(this.max-this.min))},onDown(e){this.dragging=!0,this.setValue(this.valueFromEvent(e)),window.addEventListener(`pointermove`,this.onMove),window.addEventListener(`pointerup`,this.onUp)},onMove(e){this.dragging&&this.setValue(this.valueFromEvent(e))},onUp(){this.dragging=!1,window.removeEventListener(`pointermove`,this.onMove),window.removeEventListener(`pointerup`,this.onUp)},setValue(e){this.$emit(`change`,e),this.$emit(`selectChange`,e)}},beforeUnmount(){this.onUp()}};function If(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_slider`,style:A(a.rootStyle)},[W(`div`,{ref:`rect`,class:`ce_slider_rect`,style:A(a.rectStyle),onPointerdown:t[0]||=(...e)=>a.onDown&&a.onDown(...e)},[W(`div`,{class:`ce_slider_bar`,style:A(a.barStyle)},null,4),W(`div`,{class:`ce_slider_con`,style:A({left:a.conLeft})},[W(`div`,{class:j([`ce_slider_block`,{ce_dragging:i.dragging}]),style:A(a.blockStyleObj)},null,6)],4)],36)],4)}var Lf=Z(Ff,[[`render`,If],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ProgressSlider.vue`]]),Rf={name:`CeVideo`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},url:{type:String,default:``},previewUrl:{type:String,default:``}},emits:[`click`],data(){return{showPoster:!0}},computed:{rootStyle(){let e=new od(this,this.styleProps).parse();return Object.assign(e,{overflow:`hidden`,boxSizing:`border-box`})},src(){return this.adapter.doReplaceUrl(this.doI18n(this.url||``))},poster(){return this.adapter.doReplaceUrl(this.doI18n(this.previewUrl||``))}},methods:{play(){this.showPoster=!1;let e=this.$refs.video;if(e)try{e.play()}catch{}this.$emit(`click`)}}},zf=[`src`,`poster`];function Bf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_video`,style:A(a.rootStyle)},[W(`video`,{ref:`video`,class:`ce_video_elem ce_npc`,src:a.src,poster:a.poster,controls:``,playsinline:``,"webkit-playsinline":``},null,8,zf),a.poster&&i.showPoster?(V(),H(`div`,{key:0,class:`ce_video_poster ce_npc`,style:A({backgroundImage:`url(${a.poster})`,backgroundSize:`cover`,backgroundPosition:`center`}),onClick:t[0]||=(...e)=>a.play&&a.play(...e)},null,4)):q(`v-if`,!0)],4)}var Vf=Z(Rf,[[`render`,Bf],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Video.vue`]]),Hf={name:`CeMap`,mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},centerLat:{type:[String,Number],default:``},centerLng:{type:[String,Number],default:``},zoom:{type:[String,Number],default:``},markerLat:{type:[String,Number],default:``},markerLng:{type:[String,Number],default:``},markerName:{type:String,default:``}},emits:[`click`],computed:{rootStyle(){let e=new od(this,this.styleProps).parse();return e.overflow=`hidden`,e}}},Uf={class:`ce_map_view`},Wf={class:`ce_map_center`},Gf={key:0,class:`ce_map_markname`};function Kf(e,t,n,r,i,a){return V(),H(`div`,{class:`ce_map`,style:A(a.rootStyle)},[W(`div`,Uf,[t[1]||=_s(`<svg class="ce_map_grid" viewBox="0 0 100 100" preserveAspectRatio="none" data-v-512dee75><defs data-v-512dee75><pattern id="ceMapGrid" width="10" height="10" patternUnits="userSpaceOnUse" data-v-512dee75><path d="M10 0 L0 0 0 10" fill="none" stroke="#dfe3ea" stroke-width="0.4" data-v-512dee75></path></pattern></defs><rect width="100" height="100" fill="#eef1f6" data-v-512dee75></rect><rect width="100" height="100" fill="url(#ceMapGrid)" data-v-512dee75></rect><!-- 模拟几条道路 --><path d="M0 60 Q40 50 100 65" fill="none" stroke="#cdd4df" stroke-width="2.2" data-v-512dee75></path><path d="M30 0 L45 100" fill="none" stroke="#cdd4df" stroke-width="2.2" data-v-512dee75></path></svg>`,1),W(`div`,Wf,[t[0]||=W(`div`,{class:`ce_map_pin`},[W(`svg`,{viewBox:`0 0 24 24`,width:`26`,height:`26`},[W(`path`,{d:`M12 2C7.6 2 4 5.6 4 10c0 5.4 7.1 11.6 7.4 11.9.6.6 1.6.6 2.2 0C13.9 21.6 21 15.4 21 10c0-4.4-3.6-8-9-8z`,fill:`#ff4d4f`}),W(`circle`,{cx:`12`,cy:`10`,r:`3`,fill:`#fff`})])],-1),n.markerName?(V(),H(`div`,Gf,M(e.doI18n(n.markerName)),1)):q(`v-if`,!0)])]),t[2]||=W(`div`,{class:`ce_map_placeholder`},null,-1)],4)}var qf=Z(Hf,[[`render`,Kf],[`__scopeId`,`data-v-512dee75`],[`__file`,`/Users/ynet/dsl-card/card-editor/components/Map.vue`]]),Jf={name:`CeMultiColumn`,emits:[`click`],mixins:[sd],props:{styleProps:{type:Object,default:()=>({})},column:{type:[Number,String],default:0}},computed:{cols(){let e=parseInt(this.column,10);return e>0?e:(this.$slots.default?this.$slots.default():[]).filter(e=>e&&e.type!==$o&&e.type!==Qo).length},styleObj(){let e=new od(this,this.styleProps).parse();return this.cols>1&&(e.display=`grid`,e.gridTemplateColumns=`repeat(${this.cols}, 1fr)`),e}}};function Yf(e,t,n,r,i,a){return V(),H(`div`,{ref:`mc`,class:`ce_multicolumn`,style:A(a.styleObj),onClick:t[0]||=t=>e.$emit(`click`,t)},[ca(e.$slots,`default`,{},void 0,!0)],4)}var Xf={Root:ud,Row:pd,Column:gd,Text:yd,Button:Sd,Divider:Td,Icon:Bd,Image:Ud,MultiText:Jd,ListLayout:Zd,GridLayout:ef,Canvas:uf,Input:mf,ViewContainer:_f,AbsoluteLayout:xf,CheckGroup:Af,RadioButton:Pf,ProgressSlider:Lf,Video:Vf,Map:qf,MultiColumn:Z(Jf,[[`render`,Yf],[`__scopeId`,`data-v-1881a1f4`],[`__file`,`/Users/ynet/dsl-card/card-editor/components/MultiColumn.vue`]])},Zf=new Set([`ListLayout`,`GridLayout`]);function Qf(e){return Xf[e]||null}function $f(e){let t={},n=e||{};for(let e in n)e===`$$`?t[e]=n[e]:t[`$`+e]=n[e];return t}function ep(e,t){let n=$f(t),r=new Proxy(n,{has(e,t){return typeof t==`string`&&(t[0]===`$`||t===`$$`)||t in e},get(e,t){if(t in e||typeof t!=`string`||t[0]!==`$`&&t!==`$$`)return e[t]}});return Function(`vars`,`\n\t\twith(vars){\n\t\t\treturn (${e})\n\t\t}\n\t`)(r)}function tp(e,t,n){let r=String(t).split(`.`),i=r.pop(),a=e;for(let e=0;e<r.length;e++)a=a[r[e]];a[i]=n}function np(e={},t={},n){let r=JSON.parse(JSON.stringify(e||{})),i=e&&e.__vars__;if(i)for(let e in i)try{tp(r,e,ep(i[e],t))}catch(t){n&&n.push({kind:`bind`,msg:`${e} <- ${i[e]}: ${t&&t.message}`,path:e,expr:i[e]})}return delete r.__vars__,r}function rp(e,t,n){return Object.assign({},e,typeof t==`object`&&t||{},{$$:t,_index:n})}function ip(e,t){return new Proxy({},{get(n,r){return r in t?t[r]:e[r]},has(n,r){return r in t||r in e},ownKeys(){let n=new Set;for(let e of Object.keys(t))n.add(e);for(let t of Object.keys(e))n.add(t);return[...n]},getOwnPropertyDescriptor(n,r){if(r in t)return{enumerable:!0,configurable:!0,value:t[r]};if(r in e)return{enumerable:!0,configurable:!0,value:e[r]}}})}var ap={name:`CustomPlaceholder`,props:{icon:{type:String,default:``},props:{type:Object,default:()=>({})},customClass:{type:String,default:``},title:{type:String,default:``}},computed:{tagText(){return this.title||`自定义组件`},label(){if(this.customClass)return this.customClass;let e=Object.keys(this.props||{});return e.length?e.join(`, `):`未指定 customClass`}}},op={class:`ce_custom_placeholder`},sp={class:`ce_custom_placeholder_tag`},cp={class:`ce_custom_placeholder_name`};function lp(e,t,n,r,i,a){return V(),H(`div`,op,[W(`span`,sp,M(a.tagText),1),W(`span`,cp,M(a.label),1),ca(e.$slots,`default`)])}var up=Z(ap,[[`render`,lp],[`__file`,`/Users/ynet/dsl-card/card-editor/components/CustomPlaceholder.vue`]]),dp=cn({el:null,id:null,visible:!1,top:0,left:0,width:0,height:0});function fp(e,t){dp.id!==t&&(dp.el=e,dp.id=t,dp.visible=!0)}function pp(e){dp.id===e&&(dp.el=null,dp.id=null,dp.visible=!1)}var mp=new Set([``,`onReady`,`onLoad`,`onCreate`]);function hp(e){return mp.has(e||``)}function gp(e){let t=String(e).replace(/-(\w)/g,(e,t)=>t.toUpperCase());return`on`+t.charAt(0).toUpperCase()+t.slice(1)}function _p(e){return typeof window<`u`&&window.CSS&&CSS.escape?CSS.escape(String(e)):String(e).replace(/["\\\]]/g,`\\$&`)}var vp=Z({name:`RenderTree`,inject:[`adapter`,`cardRuntime`],props:{node:{type:Object,required:!0},scope:{type:Object,default:()=>({})},selectedNodeId:{type:String,default:``}},methods:{getChildNodes(e){let t=e.slots||[];return t.length&&t[0].components&&t[0].components.length?t[0].components:e.components||[]},actionCode(e){let t=e.action&&e.action.properties&&e.action.properties.function||{};return t.code||t.compiled||``},isVisible(e,t){let n=this.cardRuntime,r=e.directives&&e.directives[`v-show`];if(!r)return!0;let i=r.showType||`00`;if(i===`00`)return!0;let a=(r.condition||{}).expression;if(!a)return i===`01`;try{let e=ep(a,t);return i===`01`?!!e:!e}catch(t){return n.pushError(`vshow`,`${e.className}: [${a}] -> ${t.message}`),i===`01`}},buildHandlers(e,t){this.cardRuntime;let n={};return(e.eventactions||[]).forEach(r=>{let i=(r.event||{}).eventKey||``;if(hp(i))return;let a=r.action||{},o=a.actionType;if(o===`customAction`){let a=this.actionCode(r);n[i]=n=>this.runCustomAction(a,t,n,e)}else n[i]=n=>this.runSystemAction(o,a.properties,t,n,e)}),n},runCustomAction(e,t,n,r){let i=this.cardRuntime,a={state:new Proxy(t,{set(e,t,n){return i.state[t]=n,!0}}),data:i.state,setData(e){e&&typeof e==`object`&&Object.assign(i.state,e),i.markDirty()},setRootData(e){e&&typeof e==`object`&&Object.assign(i.rootScope,e),i.markDirty()},addEventListener(e,t){i.addEventListener(e,t)},postMessage(e,t){i.postMessage(e,t)}},o={log:(...e)=>{console.log(...e),i.pushLog(`log`,e)},info:(...e)=>{console.info(...e),i.pushLog(`info`,e)},warn:(...e)=>{console.warn(...e),i.pushLog(`warn`,e)},error:(...e)=>{console.error(...e),i.pushLog(`error`,e)},debug:(...e)=>{console.debug(...e),i.pushLog(`debug`,e)}};try{Function(`event`,`console`,e||``).apply(a,[n,o])}catch(e){let t=r&&r.id?`${r.className}(${r.id})`:r.className;i.pushError(`customAction`,`${t}: ${e.message}`),console.error(`[customAction error]`,t,e)}},runSystemAction(e,t,n,r,i){let a=this.cardRuntime,o=typeof window<`u`?window.ynet:null;!o&&typeof window<`u`&&(o=window.ynet={callJSAPI(e,t,n){if(a.pushApiCall(e,t),typeof n==`function`)try{n({})}catch{}}});let s=t||{};e===`closeAlertCard`?o.callJSAPI(`closeAlertCard`,s,s&&s.callback):e===`sendAiChatMessage`?o.callJSAPI(`sendAiChatMessage`,{message:s&&s.message||``},void 0):o.callJSAPI(e,s,void 0),a.pushApiCall(e,s)},runLoadActions(){let e=this.cardRuntime,t=this.node;t.__loadRan||(t.__loadRan=!0,(t.eventactions||[]).forEach(n=>{if(!hp((n.event||{}).eventKey||``)||(n.action||{}).actionType!==`customAction`)return;let r=this.actionCode(n);r&&this.runCustomAction(r,ip(e.state,this.scope),void 0,t)}))},renderNode(e){if(e.visible===!1)return null;let t=this.cardRuntime,n=ip(t.state,this.scope);if(!this.isVisible(e,n))return null;let r=Qf(e.className);if(!r){let t=this.getChildNodes(e).map(e=>this.renderSub(e,n));return Qs(up,{customClass:e.className,title:`未知组件`},()=>t)}let i=np(e.properties||{},n,t.getBindingBuffer()),a=np(e.style&&e.style.properties||{},n,t.getBindingBuffer()),o=Object.assign({},i,{styleProps:a});o[`data-cid`]=e.componentId||e.id,o[`data-class`]=e.className,o[`data-id`]=e.id;let s=this.buildHandlers(e,n);for(let e in s)o[gp(e)]=s[e];if(e.className===`Input`&&!o.onInput){let n=(e.properties&&e.properties.__vars__||{}).value,r=/^\s*\$([A-Za-z_$][\w$]*)\s*$/.exec(String(n||``));if(r){let e=r[1];o.onInput=n=>{t.state[e]=n}}}if((e.className===`RadioButton`||e.className===`CheckGroup`)&&!o.onChange){let n=(e.properties&&e.properties.__vars__||{}).value,r=/^\s*\$([A-Za-z_$][\w$]*)\s*$/.exec(String(n||``));if(r){let e=r[1];o.onChange=n=>{t.state[e]=n,t.markDirty()}}}if(e.className===`ProgressSlider`){let n=(e.properties&&e.properties.__vars__||{}).value,r=/^\s*\$([A-Za-z_$][\w$]*)\s*$/.exec(String(n||``));if(r){let e=r[1],n=n=>{t.state[e]=n,t.markDirty()},i=o.onChange,a=o.onSelectChange;o.onChange=e=>{try{i&&i(e)}finally{n(e)}},o.onSelectChange=e=>{try{a&&a(e)}finally{n(e)}}}}let c=this.getChildNodes(e);return Zf.has(e.className)?Qs(r,o,{default:e=>{let t=rp(n,e.item,e.index);return c.map(e=>this.renderSub(e,t))}}):Qs(r,o,()=>c.map(e=>this.renderSub(e,n)))},renderSub(e,t){return Qs(vp,{node:e,scope:t,selectedNodeId:this.selectedNodeId})},updateHighlight(){let e=this.$el;if(!e||e.nodeType!==1)return;let t=this.node.id;if(this.selectedNodeId&&t===this.selectedNodeId){let n=typeof document<`u`?document.querySelector(`.phone__screen`):null;fp((n?n.querySelector(`[data-id="`+_p(String(t))+`"]`):null)||e,t)}else pp(t)}},render(){return this.cardRuntime.revision,this.node.className===`Root`&&this.cardRuntime.startBindingPass(),this.renderNode(this.node)},created(){this.runLoadActions()},mounted(){this.runLoadActions(),this.$nextTick(()=>this.updateHighlight()),this.node.className===`Root`&&this.cardRuntime.commitBindingPass()},updated(){this.node.className===`Root`&&this.cardRuntime.commitBindingPass()},watch:{selectedNodeId(){this.updateHighlight()}}},[[`__file`,`/Users/ynet/dsl-card/card-editor/components/RenderTree.vue`]]);async function yp(e){try{if(navigator.clipboard&&navigator.clipboard.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}var bp=cn({visible:!1,message:``,type:`ok`}),xp=null;function Q(e,t=`ok`,n=2400){bp.message=e,bp.type=t,bp.visible=!0,xp&&clearTimeout(xp),xp=setTimeout(()=>{bp.visible=!1,xp=null},n)}var Sp={name:`ConfirmDialog`,props:{visible:{type:Boolean,default:!1},title:{type:String,default:``},message:{type:String,default:``},confirmText:{type:String,default:`继续`},cancelText:{type:String,default:`取消`},closeOnMask:{type:Boolean,default:!0},severity:{type:String,default:`primary`,validator:e=>[`primary`,`warn`,`danger`].includes(e)}},emits:[`confirm`,`cancel`],computed:{confirmBtnClass(){return this.severity===`danger`?`confirm-modal__btn--danger`:this.severity===`warn`?`confirm-modal__btn--warn`:`confirm-modal__btn--primary`}}},Cp=[`aria-label`],wp={key:0,class:`confirm-modal__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Tp={key:1,class:`confirm-modal__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Ep={key:2,class:`confirm-modal__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Dp={class:`confirm-modal__desc`},Op={class:`confirm-modal__actions`};function kp(e,t,n,r,i,a){return V(),U(hc,{name:`modal`},{default:I(()=>[n.visible?(V(),H(`div`,{key:0,class:`confirm-mask`,onClick:t[2]||=J(t=>n.closeOnMask&&e.$emit(`cancel`),[`self`])},[W(`div`,{class:`confirm-modal modal-card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":n.title},[W(`div`,{class:j([`confirm-modal__title`,{"is-danger":n.severity===`danger`,"is-warn":n.severity===`warn`}])},[n.severity===`danger`?(V(),H(`svg`,wp,[...t[3]||=[W(`use`,{href:`#icon-no-entry`},null,-1)]])):n.severity===`warn`?(V(),H(`svg`,Tp,[...t[4]||=[W(`use`,{href:`#icon-alert-triangle`},null,-1)]])):(V(),H(`svg`,Ep,[...t[5]||=[W(`use`,{href:`#icon-gear`},null,-1)]])),K(` `+M(n.title),1)],2),W(`div`,Dp,M(n.message),1),W(`div`,Op,[W(`button`,{class:`confirm-modal__btn confirm-modal__btn--ghost`,type:`button`,onClick:t[0]||=t=>e.$emit(`cancel`)},M(n.cancelText),1),W(`button`,{class:j([`confirm-modal__btn`,a.confirmBtnClass]),type:`button`,onClick:t[1]||=t=>e.$emit(`confirm`)},M(n.confirmText),3)])],8,Cp)])):q(`v-if`,!0)]),_:1})}var Ap=Z(Sp,[[`render`,kp],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ConfirmDialog.vue`]]),jp=cn({openAll:null,selectedPath:null});function Mp(e,t,n){let r=e;for(let e=0;e<t.length-1;e++)r=r[t[e]];r[t[t.length-1]]=n}function Np(e,t){let n=e;for(let e=0;e<t.length-1;e++)n=n[t[e]];delete n[t[t.length-1]]}function Pp(e,t,n,r){if(!r||r===n)return!1;let i=e;for(let e=0;e<t.length;e++)i=i[t[e]];if(r in i)return!1;let a=i[n];return delete i[n],i[r]=a,!0}function Fp(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}var Ip={name:`JsonTree`,components:{ConfirmDialog:Ap},props:{data:{type:[Object,Array],default:()=>({})},depth:{type:Number,default:0},rt:{type:Object,default:null},path:{type:Array,default:()=>[]},editable:{type:Boolean,default:!1},defaultOpen:{type:Number,default:2},showTools:{type:Boolean,default:!1},schema:{type:Object,default:null}},data(){return{localOpen:{},editingKey:null,editingValue:null,editingComplex:null,jsonEditText:``,ctxMenu:{visible:!1,x:0,y:0,item:null},delConfirm:{show:!1,message:``,item:null}}},computed:{isRoot(){return this.depth===0},entries(){let e=this.data;return Array.isArray(e)?e.map((e,t)=>this.makeEntry(String(t),e,!0,t)):e&&typeof e==`object`?Object.keys(e).map(t=>this.makeEntry(t,e[t],!1,t)):[]}},watch:{data(){this.initOpen(),this.isRoot&&(jp.selectedPath=null)}},created(){this.isRoot&&(jp.openAll=null),this.initOpen()},methods:{makeEntry(e,t,n,r){let i=Array.isArray(t),a=i?t.length:Object.keys(t||{}).length;return{key:String(r),keyLabel:e,value:t,isArrayBranch:n,isArray:i,count:a,type:this.valueType(t),path:[...this.path,r]}},valueType(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e},isComplex(e){return typeof e==`object`&&!!e},initOpen(){let e={};this.entries.forEach(t=>{e[t.key]=this.depth<this.defaultOpen}),this.localOpen=e},isOpen(e){return jp.openAll===null?!!this.localOpen[e]:jp.openAll},toggle(e){let t=jp.openAll===null?!!this.localOpen[e]:jp.openAll;this.localOpen[e]=!t,jp.openAll=null},isSelected(e){let t=jp.selectedPath;return!t||t.length!==e.path.length?!1:t.every((t,n)=>String(t)===String(e.path[n]))},selectNode(e){jp.selectedPath=this.isSelected(e)?null:e.path.slice()},onBranchClick(e){this.toggle(e.key),jp.selectedPath=e.path.slice()},setOpen(e){jp.openAll=e},previewText(e){if(Array.isArray(e))return` … `+e.length+` 项`;let t=Object.keys(e);return` … `+t.slice(0,3).join(`, `)+(t.length>3?`, …`:``)+` `},formatPrimitive(e,t){return e===null?`null`:t===`string`?JSON.stringify(e):String(e)},formatForEdit(e,t){return e===null?`null`:t===`string`?e:String(e)},startEditKey(e){this.cancelEdit(),this.editingKey=e.key,this.$nextTick(()=>{let e=this.$refs.keyInput;if(e){let t=Array.isArray(e)?e[0]:e;t.focus(),t.select()}})},confirmEditKey(e,t){let n=t.target.value.trim();if(!n||n===e.keyLabel)this.cancelEdit();else{if(this.rt&&this.rt.rootScope){let t=e.path.slice(0,-1),r=e.path[e.path.length-1];if(!Pp(this.rt.rootScope,t,r,n)){this.cancelEdit();return}this.rt.markDirty()}this.editingKey=null}},startEditValue(e){this.cancelEdit(),this.editingValue=e.key,this.$nextTick(()=>{let e=this.$refs.valInput;if(e){let t=Array.isArray(e)?e[0]:e;t.focus(),t.select()}})},confirmEditValue(e,t){let n=t.target.value,r=n;if(e.type===`number`){let e=Number(n);isNaN(e)||(r=e)}else if(e.type===`boolean`)n===`true`?r=!0:n===`false`&&(r=!1);else if(e.type===`null`)r=n===`null`?null:n;else if(e.type===`string`)r=n;else try{r=JSON.parse(n)}catch{}this.rt&&this.rt.rootScope&&(Mp(this.rt.rootScope,e.path,r),this.rt.markDirty()),this.editingValue=null},startEditComplex(e){this.cancelEdit(),this.editingComplex=e.key,this.jsonEditText=JSON.stringify(e.value,null,2),this.$nextTick(()=>{let e=this.$refs.jsonInput;if(e){let t=Array.isArray(e)?e[0]:e;t.focus(),t.select()}})},confirmEditComplex(e){try{let t=JSON.parse(this.jsonEditText);this.rt&&this.rt.rootScope&&(Mp(this.rt.rootScope,e.path,t),this.rt.markDirty()),this.cancelEdit()}catch(e){alert(`JSON 解析失败: `+e.message)}},cancelEdit(){this.editingKey=null,this.editingValue=null,this.editingComplex=null,this.jsonEditText=``},deleteNode(e){this.rt&&this.rt.rootScope&&(Np(this.rt.rootScope,e.path),this.rt.markDirty())},addChild(){if(!this.rt||!this.rt.rootScope)return;let e=this.rt.rootScope,t=jp.selectedPath;if(t&&t.length){let n=Fp(this.rt.rootScope,t);typeof n==`object`&&n&&(e=n)}if(Array.isArray(e))e.push(``),this.rt.markDirty();else if(e&&typeof e==`object`){let t=`newKey`,n=1;for(;t in e;)t=`newKey`+(n>1?n:``),n++;e[t]=``,this.rt.markDirty()}},showContextMenu(e,t){this.ctxMenu.visible=!0,this.ctxMenu.x=t.clientX,this.ctxMenu.y=t.clientY,this.ctxMenu.item=e},hideContextMenu(){this.ctxMenu.visible=!1,this.ctxMenu.item=null},ctxCopyPath(){let e=this.ctxMenu.item;if(this.hideContextMenu(),!e)return;let t=this.formatKeyPath(e.path);yp(t).then(e=>{e?Q(`已复制路径:${t}`,`ok`):Q(`复制失败,请手动复制`,`err`)})},formatKeyPath(e){let t=``;for(let n of e)typeof n==`number`||/^\d+$/.test(String(n))?t+=`[${n}]`:t+=t?`.${n}`:`${n}`;return t},ctxDelete(){let e=this.ctxMenu.item;if(this.hideContextMenu(),e){if(this.isNodeReferenced(e.path)){let t=e.path.join(`.`);this.delConfirm.message=`节点 “${t}” 在 schema 中被引用,删除后可能导致渲染异常。\n\n确定要删除吗?`,this.delConfirm.item=e,this.delConfirm.show=!0}else this.deleteNode(e)}},onDelConfirm(){let e=this.delConfirm.item;this.delConfirm.show=!1,this.delConfirm.item=null,e&&this.deleteNode(e)},onDelCancel(){this.delConfirm.show=!1,this.delConfirm.item=null},isNodeReferenced(e){if(!this.schema)return!1;let t=JSON.stringify(this.schema);for(let n=0;n<e.length;n++){let r=e.slice(0,n+1).join(`.`),i=e[n];if(t.includes(`$`+i)||t.includes(`$`+r)||t.includes(`state.`+i)||t.includes(`state.`+r)||RegExp(`\\b`+this.escapeRegex(i)+`\\b`).test(t))return!0}return!1},escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}}},Lp={class:`jt`},Rp={key:0,class:`jt__toolbar`},zp={class:`jt__tool-group`},Bp=[`onClick`,`onContextmenu`],Vp=[`onDblclick`],Hp=[`value`,`onKeydown`,`onBlur`],Up=[`onDblclick`],Wp=[`onDblclick`],Gp=[`value`,`onKeydown`],Kp={class:`jt__json-actions`},qp=[`onClick`],Jp={key:2,class:`jt__row jt__row--close`},Yp={class:`jt__bracket`},Xp={class:`jt__count`},Zp=[`onClick`,`onContextmenu`],Qp=[`onDblclick`],$p=[`value`,`onKeydown`,`onBlur`],em={key:1,class:`jt__key`},tm={key:2,class:`jt__colon`},nm=[`onDblclick`],rm=[`value`,`onKeydown`,`onBlur`],im=[`onClick`];function am(e,t,n,r,i,a){let o=R(`JsonTree`,!0),s=R(`ConfirmDialog`);return V(),H(`div`,Lp,[q(` 仅根节点显示批量控制条:可编辑树给全套(含 + 添加);
|
|
147
147
|
只读树传 showTools 也可拿「展开 / 折叠全部」两个按钮(如 Schema 全屏预览) `),a.isRoot&&(n.editable||n.showTools)?(V(),H(`div`,Rp,[W(`div`,zp,[W(`button`,{class:`jt__tool`,type:`button`,onClick:t[0]||=e=>a.setOpen(!0)},`全部展开`),W(`button`,{class:`jt__tool`,type:`button`,onClick:t[1]||=e=>a.setOpen(!1)},`全部折叠`)]),n.editable?(V(),H(`button`,{key:0,class:`jt__tool jt__tool--add`,type:`button`,onClick:t[2]||=(...e)=>a.addChild&&a.addChild(...e),title:`添加子节点`},`+ 添加`)):q(`v-if`,!0)])):q(`v-if`,!0),W(`ul`,{class:j([`jt__list`,{"jt__list--root":a.isRoot}])},[(V(!0),H(B,null,z(a.entries,(e,r)=>(V(),H(`li`,{key:r,class:`jt__node`},[q(` 复合类型(对象 / 数组):可折叠 `),a.isComplex(e.value)?(V(),H(B,{key:0},[W(`div`,{class:j([`jt__row jt__row--branch`,{"jt__row--selected":a.isSelected(e)}]),onClick:t=>a.onBranchClick(e),onContextmenu:J(t=>a.showContextMenu(e,t),[`prevent`])},[W(`span`,{class:j([`jt__caret`,{"jt__caret--open":a.isOpen(e.key)}])},`▶`,2),e.isArrayBranch?q(`v-if`,!0):(V(),H(`span`,{key:0,class:`jt__key jt__editable`,onDblclick:J(t=>a.startEditKey(e),[`stop`])},[i.editingKey===e.key?(V(),H(`input`,{key:0,ref_for:!0,ref:`keyInput`,class:`jt__edit`,value:e.keyLabel,onKeydown:[jl(t=>a.confirmEditKey(e,t),[`enter`]),t[3]||=jl((...e)=>a.cancelEdit&&a.cancelEdit(...e),[`escape`])],onBlur:t=>a.confirmEditKey(e,t)},null,40,Hp)):(V(),H(B,{key:1},[K(M(e.keyLabel),1)],64))],40,Vp)),W(`span`,{class:`jt__bracket jt__editable`,onDblclick:J(t=>n.editable&&a.startEditComplex(e),[`stop`])},M(e.isArrayBranch?`[`:`{`),41,Up),a.isOpen(e.key)?q(`v-if`,!0):(V(),H(`span`,{key:1,class:`jt__preview jt__editable`,onDblclick:J(t=>n.editable&&a.startEditComplex(e),[`stop`])},M(a.previewText(e.value)),41,Wp))],42,Bp),q(` 复合类型整体编辑弹层 `),i.editingComplex===e.key?(V(),H(`div`,{key:0,class:`jt__json-edit`,onClick:t[7]||=J(()=>{},[`stop`])},[W(`textarea`,{ref_for:!0,ref:`jsonInput`,class:`jt__json-textarea`,value:i.jsonEditText,onInput:t[4]||=e=>i.jsonEditText=e.target.value,onKeydown:[t[5]||=jl((...e)=>a.cancelEdit&&a.cancelEdit(...e),[`escape`]),jl(J(t=>a.confirmEditComplex(e),[`ctrl`]),[`enter`]),jl(J(t=>a.confirmEditComplex(e),[`meta`]),[`enter`])]},null,40,Gp),W(`div`,Kp,[W(`button`,{type:`button`,class:`jt__json-btn`,onClick:t=>a.confirmEditComplex(e)},`确定`,8,qp),W(`button`,{type:`button`,class:`jt__json-btn jt__json-btn--cancel`,onClick:t[6]||=(...e)=>a.cancelEdit&&a.cancelEdit(...e)},`取消`),t[15]||=W(`span`,{class:`jt__json-hint`},`Ctrl+Enter 确认 · Esc 取消`,-1)])])):q(`v-if`,!0),a.isOpen(e.key)?(V(),U(o,{key:1,class:`jt__child`,data:e.value,depth:n.depth+1,rt:n.rt,path:e.path,editable:n.editable,"default-open":n.defaultOpen},null,8,[`data`,`depth`,`rt`,`path`,`editable`,`default-open`])):q(`v-if`,!0),a.isOpen(e.key)?(V(),H(`div`,Jp,[W(`span`,Yp,M(e.isArrayBranch?`]`:`}`),1),W(`span`,Xp,M(e.count)+` `+M(e.isArrayBranch?`项`:`键`),1)])):q(`v-if`,!0)],64)):(V(),H(B,{key:1},[q(` 基础类型:叶子 `),W(`div`,{class:j([`jt__row jt__row--leaf`,{"jt__row--selected":a.isSelected(e)}]),onClick:t=>a.selectNode(e),onContextmenu:J(t=>a.showContextMenu(e,t),[`prevent`])},[t[16]||=W(`span`,{class:`jt__caret jt__caret--leaf`},null,-1),e.keyLabel!==null&&n.editable?(V(),H(`span`,{key:0,class:`jt__key jt__editable`,onDblclick:J(t=>a.startEditKey(e),[`stop`])},[i.editingKey===e.key?(V(),H(`input`,{key:0,ref_for:!0,ref:`keyInput`,class:`jt__edit`,value:e.keyLabel,onKeydown:[jl(t=>a.confirmEditKey(e,t),[`enter`]),t[8]||=jl((...e)=>a.cancelEdit&&a.cancelEdit(...e),[`escape`])],onBlur:t=>a.confirmEditKey(e,t)},null,40,$p)):(V(),H(B,{key:1},[K(M(e.keyLabel),1)],64))],40,Qp)):q(`v-if`,!0),e.keyLabel!==null&&!n.editable?(V(),H(`span`,em,M(e.keyLabel),1)):q(`v-if`,!0),e.keyLabel===null?q(`v-if`,!0):(V(),H(`span`,tm,`:`)),W(`span`,{class:j([`jt__val`,[`jt__val--`+e.type,{jt__editable:n.editable}]]),onDblclick:J(t=>n.editable&&a.startEditValue(e),[`stop`])},[i.editingValue===e.key?(V(),H(`input`,{key:0,ref_for:!0,ref:`valInput`,class:`jt__edit`,value:a.formatForEdit(e.value,e.type),onKeydown:[jl(t=>a.confirmEditValue(e,t),[`enter`]),t[9]||=jl((...e)=>a.cancelEdit&&a.cancelEdit(...e),[`escape`])],onBlur:t=>a.confirmEditValue(e,t)},null,40,rm)):(V(),H(B,{key:1},[K(M(a.formatPrimitive(e.value,e.type)),1)],64))],42,nm),n.editable?(V(),H(`button`,{key:3,class:`jt__del`,type:`button`,onClick:J(t=>a.deleteNode(e),[`stop`]),title:`删除节点`},`×`,8,im)):q(`v-if`,!0)],42,Zp)],2112))]))),128))],2),q(` 右键菜单(fixed 定位,全局可见) `),i.ctxMenu.visible?(V(),H(`div`,{key:1,class:`jt__ctxmenu`,style:A({left:i.ctxMenu.x+`px`,top:i.ctxMenu.y+`px`}),onClick:t[12]||=J(()=>{},[`stop`])},[W(`button`,{class:`jt__ctxmenu-item`,type:`button`,onClick:t[10]||=(...e)=>a.ctxCopyPath&&a.ctxCopyPath(...e)},`复制路径`),q(` 删除节点仅在可编辑(绑定数据 tab)时提供;只读树(如运行态面板)只保留复制路径 `),n.editable?(V(),H(`button`,{key:0,class:`jt__ctxmenu-item jt__ctxmenu-item--del`,type:`button`,onClick:t[11]||=(...e)=>a.ctxDelete&&a.ctxDelete(...e)},`删除节点`)):q(`v-if`,!0)],4)):q(`v-if`,!0),i.ctxMenu.visible?(V(),H(`div`,{key:2,class:`jt__ctxmenu-mask`,onClick:t[13]||=(...e)=>a.hideContextMenu&&a.hideContextMenu(...e),onContextmenu:t[14]||=J((...e)=>a.hideContextMenu&&a.hideContextMenu(...e),[`prevent`])},null,32)):q(`v-if`,!0),q(` 删除被引用节点的二次确认:警告级(橙黄+警告三角),分级见 design/深浅主题配色规范手册.md §3.4 `),G(s,{visible:i.delConfirm.show,title:`删除被引用节点`,message:i.delConfirm.message,"confirm-text":`删除`,severity:`warn`,onConfirm:a.onDelConfirm,onCancel:a.onDelCancel},null,8,[`visible`,`message`,`onConfirm`,`onCancel`])])}var om=Z(Ip,[[`render`,am],[`__file`,`/Users/ynet/dsl-card/card-editor/components/JsonTree.vue`]]),sm=300;function cm(e){return typeof e==`object`&&!!e}function lm(e){if(Array.isArray(e))return e.length?`[ … ${e.length} 项 ]`:`[]`;let t=Object.keys(e).length;return t?`{ … ${t} 键 }`:`{}`}function um(e){let t=cm(e);return{val:e,complex:t,type:t?Array.isArray(e)?`array`:`object`:e===null?`null`:typeof e,preview:t?lm(e):null}}function dm(e){try{return JSON.stringify(e)}catch{return String(e)}}function fm(e,t,n,r,i,a,o,s,c){return{key:e,isIndex:t,path:n,id:n.join(`\0`),depth:r,kind:i,left:a,right:o,isBranch:s,children:c||null,dirtyCount:0}}function pm(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>new Uint16Array(r+1));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o]===t[s]?(a.push([`pair`,o,s]),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push([`del`,o]),o++):(a.push([`ins`,s]),s++);for(;o<n;)a.push([`del`,o++]);for(;s<r;)a.push([`ins`,s++]);return a}function mm(e,t,n){let r=(e,t)=>cm(e)&&cm(t)&&Array.isArray(e)===Array.isArray(t),i=[],a=0;for(;a<e.length;){if(e[a][0]!==`del`){i.push(e[a]),a++;continue}let o=a;for(;o<e.length&&e[o][0]===`del`;)o++;let s=o;for(;s<e.length&&e[s][0]===`ins`;)s++;let c=o-a,l=s-o;if(!l){for(let t=a;t<o;t++)i.push(e[t]);a=o;continue}let u=Math.min(c,l);for(let s=0;s<u;s++){let c=e[a+s][1],l=e[o+s][1];r(t[c],n[l])?i.push([`pair`,c,l]):(i.push(e[a+s]),i.push(e[o+s]))}for(let t=u;t<c;t++)i.push(e[a+t]);for(let t=u;t<l;t++)i.push(e[o+t]);a=s}return i}function hm(e,t){let n=e.length,r=t.length,i;if(n>sm||r>sm){i=[];let e=Math.min(n,r);for(let t=0;t<e;t++)i.push([`pair`,t,t]);for(let t=e;t<n;t++)i.push([`del`,t]);for(let t=e;t<r;t++)i.push([`ins`,t])}else i=pm(e.map(dm),t.map(dm));return mm(i,e,t)}function gm(e,t){let n=[],r=new Map(t.map((e,t)=>[e,t])),i=new Set(e),a=0;for(let o of e)if(r.has(o)){let e=r.get(o);for(;a<e;)i.has(t[a])||n.push([`right-only`,t[a]]),a++;n.push([`pair`,o]),a=e+1}else n.push([`left-only`,o]);for(;a<t.length;)i.has(t[a])||n.push([`right-only`,t[a]]),a++;return n}function _m(e,t,n,r,i,a,o){let s=a===`left`?`L\0`:`R\0`,c=a===`left`?um(i):null,l=a===`right`?um(i):null;if(!cm(i)){o[r]++;let i=fm(e,typeof e==`number`,t,n,r,c,l,!1,null);return i.dirtyCount=1,i.id=s+i.id,i}let u=Array.isArray(i)?i.map((e,i)=>_m(i,[...t,i],n+1,r,e,a,o)):Object.keys(i).map(e=>_m(e,[...t,e],n+1,r,i[e],a,o)),d=fm(e,typeof e==`number`,t,n,r,c,l,!0,u);return d.dirtyCount=u.reduce((e,t)=>e+t.dirtyCount,0),d.id=s+d.id,d}function vm(e,t,n,r,i,a,o,s){if(r&&a){let r=cm(i),a=cm(o);if(r&&a&&Array.isArray(i)===Array.isArray(o)){let r=ym(i,o,t,n,s),a=fm(e,typeof e==`number`,t,n,`branch`,um(i),um(o),!0,r);return a.dirtyCount=r.reduce((e,t)=>e+t.dirtyCount,0),a}let c=!r&&!a&&Object.is(i,o);c||s.changed++;let l=fm(e,typeof e==`number`,t,n,c?`same`:`changed`,um(i),um(o),!1,null);return l.dirtyCount=+!c,l}return r?_m(e,t,n,`added`,i,`left`,s):_m(e,t,n,`removed`,o,`right`,s)}function ym(e,t,n,r,i){return Array.isArray(e)?hm(e,t).map(a=>a[0]===`pair`?vm(a[1],[...n,a[1]],r+1,!0,e[a[1]],!0,t[a[2]],i):a[0]===`del`?vm(a[1],[...n,a[1]],r+1,!0,e[a[1]],!1,void 0,i):vm(a[1],[...n,a[1]],r+1,!1,void 0,!0,t[a[1]],i)):gm(Object.keys(e),Object.keys(t)).map(a=>{let o=a[1];return a[0]===`pair`?vm(o,[...n,o],r+1,!0,e[o],!0,t[o],i):a[0]===`left-only`?vm(o,[...n,o],r+1,!0,e[o],!1,void 0,i):vm(o,[...n,o],r+1,!1,void 0,!0,t[o],i)})}function bm(e,t){let n={changed:0,added:0,removed:0};return{tree:vm(``,[],0,!0,e??{},!0,t??{},n),stats:n,total:n.changed+n.added+n.removed}}var xm={name:`StateDiffPanel`,props:{rt:{type:Object,required:!0},cardId:{type:String,default:``}},data(){return{overrides:{}}},computed:{diff(){return bm(this.rt.state,this.rt.rootScope)},rows(){let e=[],t=n=>{for(let r of n)e.push(r),r.isBranch&&r.children&&this.isOpen(r)&&t(r.children)},n=this.diff.tree;return n.children&&t(n.children),e}},watch:{cardId(){this.overrides={}}},methods:{isOpen(e){return e.id in this.overrides?this.overrides[e.id]:!e.isBranch||e.kind===`added`||e.kind===`removed`?!1:e.dirtyCount>0},toggle(e){this.overrides={...this.overrides,[e.id]:!this.isOpen(e)}},cellIndent(e){return 12+e.depth*14+`px`},fmt(e){return e.val===null?`null`:e.val===void 0?`undefined`:e.type===`string`?JSON.stringify(e.val):String(e.val)},badgeClass(e){return e.kind===`added`?`sdp__badge--add`:e.kind===`removed`?`sdp__badge--del`:`sdp__badge--mod`},badgeText(e){return e.kind===`added`?`新增`:e.kind===`removed`?`已移除`:e.dirtyCount+` 处变化`},rowTitle(e){if(!e.isBranch){if(e.kind===`changed`){let t=[];return e.left&&t.push(`当前 `+this.fmt(e.left)),e.right&&t.push(`基线 `+this.fmt(e.right)),t.join(` · `)}return``}let t=e.isIndex?`[${e.key}]`:e.key;return e.kind===`added`?`${t}:运行期新增(基线中无此字段)`:e.kind===`removed`?`${t}:基线中被移除(当前运行态无此字段)`:e.dirtyCount?`${t}:子树含 ${e.dirtyCount} 处与基线不同,点击${this.isOpen(e)?`折叠`:`展开`}`:`${t}:与基线一致,点击${this.isOpen(e)?`折叠`:`展开`}`}}},Sm={class:`sdp`},Cm={class:`sdp__cols`},wm={class:`sdp__colhead sdp__colhead--base`},Tm=[`title`],Em={class:`sdp__body`},Dm={key:0,class:`empty-state`},Om=[`title`,`onClick`],km={key:1,class:`sdp__colon`},Am={key:3,class:`sdp__preview`},jm={key:1,class:`sdp__empty`},Mm={key:1,class:`sdp__colon`},Nm={key:3,class:`sdp__preview`},Pm={key:1,class:`sdp__empty`};function Fm(e,t,n,r,i,a){return V(),H(`div`,Sm,[W(`div`,Cm,[t[1]||=W(`div`,{class:`sdp__colhead`},[K(`当前 · 运行态 `),W(`code`,null,`state`)],-1),W(`div`,wm,[t[0]||=W(`span`,null,[K(`基线 · 绑定数据 `),W(`code`,null,`rootScope`)],-1),W(`span`,{class:j([`sdp__count`,{"is-zero":!a.diff.total}]),title:a.diff.total?`相对绑定数据基线:修改 ${a.diff.stats.changed} · 新增 ${a.diff.stats.added} · 删除 ${a.diff.stats.removed}`:`运行态与绑定数据基线一致`},M(a.diff.total?a.diff.total+` 处差异`:`一致`),11,Tm)])]),W(`div`,Em,[q(` 完全一致空态(total=0 才显示):与调试面板其它 tab 同款 empty-state 语言 `),a.diff.total?(V(!0),H(B,{key:1},z(a.rows,e=>(V(),H(`div`,{key:e.id,class:j([`sdp__row`,[`sdp__row--`+e.kind,{"sdp__row--branch":e.isBranch}]]),title:a.rowTitle(e),onClick:t=>e.isBranch&&a.toggle(e)},[q(` 左格:当前值(removed 行空占位) `),W(`div`,{class:`sdp__cell`,style:A({paddingLeft:a.cellIndent(e)})},[e.left?(V(),H(B,{key:0},[e.isBranch?(V(),H(`span`,{key:0,class:j([`sdp__caret`,{"sdp__caret--open":a.isOpen(e)}])},`▶`,2)):q(`v-if`,!0),W(`span`,{class:j([`sdp__key`,{sdp__idx:e.isIndex}])},M(e.isIndex?`[`+e.key+`]`:e.key),3),!e.isBranch||!a.isOpen(e)?(V(),H(`span`,km,`:`)):q(`v-if`,!0),e.isBranch?a.isOpen(e)?q(`v-if`,!0):(V(),H(`span`,Am,M(e.left.preview),1)):(V(),H(`span`,{key:2,class:j([`sdp__val`,`sdp__val--`+e.left.type])},M(a.fmt(e.left)),3)),q(` 概览徽标:仅新增 / 删除子树或确有变化的折叠分支显示,一致分支不给「0 处变化」噪音 `),e.isBranch&&!a.isOpen(e)&&(e.kind===`added`||e.kind===`removed`||e.dirtyCount>0)?(V(),H(`span`,{key:4,class:j([`sdp__badge`,a.badgeClass(e)])},M(a.badgeText(e)),3)):q(`v-if`,!0)],64)):(V(),H(`span`,jm,`—`))],4),q(` 右格:基线值(added 行空占位) `),W(`div`,{class:`sdp__cell sdp__cell--r`,style:A({paddingLeft:a.cellIndent(e)})},[e.right?(V(),H(B,{key:0},[e.isBranch?(V(),H(`span`,{key:0,class:j([`sdp__caret sdp__caret--ghost`,{"sdp__caret--open":a.isOpen(e)}])},`▶`,2)):q(`v-if`,!0),W(`span`,{class:j([`sdp__key`,{sdp__idx:e.isIndex}])},M(e.isIndex?`[`+e.key+`]`:e.key),3),!e.isBranch||!a.isOpen(e)?(V(),H(`span`,Mm,`:`)):q(`v-if`,!0),e.isBranch?a.isOpen(e)?q(`v-if`,!0):(V(),H(`span`,Nm,M(e.right.preview),1)):(V(),H(`span`,{key:2,class:j([`sdp__val`,`sdp__val--`+e.right.type])},M(a.fmt(e.right)),3))],64)):(V(),H(`span`,Pm,`—`))],4)],10,Om))),128)):(V(),H(`div`,Dm,[...t[2]||=[_s(`<span class="empty-state__badge" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-check"></use></svg></span><p class="sdp__clean">运行态与绑定数据基线一致</p><p class="empty-state__hint">交互改变 state 后,差异将在此按行对比显示</p>`,3)]]))])])}var Im=Z(xm,[[`render`,Fm],[`__file`,`/Users/ynet/dsl-card/card-editor/components/StateDiffPanel.vue`]]);function Lm(){return Qs(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[Qs(`circle`,{cx:`12`,cy:`12`,r:`3`}),Qs(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})])}function Rm(){let e=(e,t)=>Qs(`circle`,{cx:e,cy:t,r:`1.4`});return Qs(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`currentColor`},[e(3,2.5),e(9,2.5),e(3,6),e(9,6),e(3,9.5),e(9,9.5)])}var zm={name:`TreeNode`,props:{comp:{type:Object,required:!0},openState:{type:Object,required:!0},compNames:{type:Object,required:!0},selectedNodeId:{type:String,default:``},draggingId:{type:String,default:``},dropTarget:{type:Object,default:()=>({compId:null,type:null})},query:{type:String,default:``}},methods:{hasChildren(e){return(e.slots||[]).some(e=>(e.components||[]).length>0)},nodeMatches(e,t){if(!t)return!1;let n=(this.compNames[e.className]||e.className).toLowerCase(),r=String(e.componentId==null?``:e.componentId).toLowerCase(),i=String(e.className||``).toLowerCase();return n.indexOf(t)!==-1||r.indexOf(t)!==-1||i.indexOf(t)!==-1},subtreeMatches(e,t){if(!t||this.nodeMatches(e,t))return!0;if(!e.slots)return!1;for(let n of e.slots)if(n.components){for(let e of n.components)if(this.subtreeMatches(e,t))return!0}return!1},isContainer(e){let t=ju[e];return!!(t&&t.slots&&t.slots.length)},onRowClick(e,t){e.stopPropagation(),this.$emit(`select-node`,t.id)},onRowDblclick(e,t){e.stopPropagation(),e.preventDefault(),this.$emit(`inspect`,t)},onRowHover(e){this.$emit(`hover-node`,{componentId:e&&e.componentId,id:e&&e.id})},onRowLeave(e){this.$emit(`hover-node`,{componentId:e&&e.componentId,id:e&&e.id,leave:!0})},onDragStart(e,t){e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.componentId)),this.$emit(`drag-start`,t.componentId)},onDragEnd(){this.$emit(`drag-end`)},onDragOver(e,t){if(!this.draggingId||this.draggingId===t.componentId){this.clearDrop();return}e.preventDefault();let n=e.currentTarget.getBoundingClientRect(),r=e.clientY-n.top,i=n.height,a=this.isContainer(t.className),o;o=a?r<i*.25?`before`:r>i*.75?`after`:`inside`:r<i/2?`before`:`after`,this.isDescendantOf(this.draggingId,t)&&(o=`blocked`),e.dataTransfer.dropEffect=o===`blocked`?`none`:`move`,o===`inside`&&this.openState[t.id]===!1&&!this._expandTimer&&(this._expandTimer=setTimeout(()=>{this.$emit(`toggle`,t.id),this._expandTimer=null},450)),this.$emit(`drag-over`,{compId:t.componentId,type:o})},onDragLeave(e){e.relatedTarget&&e.currentTarget.contains(e.relatedTarget)||this.clearDrop()},onDrop(e,t){e.preventDefault(),this._expandTimer&&=(clearTimeout(this._expandTimer),null);let n=e.dataTransfer&&e.dataTransfer.getData(`text/plain`);if(this.clearDrop(),!n||n===t.componentId)return;let r=e.currentTarget.getBoundingClientRect(),i=e.clientY-r.top,a=r.height,o=this.isContainer(t.className),s;s=o?i<a*.25?`before`:i>a*.75?`after`:`inside`:i<a/2?`before`:`after`,!this.isDescendantOf(n,t)&&this.$emit(`move-node`,{sourceCompId:n,targetCompId:t.componentId,position:s})},isDescendantOf(e,t){if(!t)return!1;let n=[];if(t.components&&n.push(...t.components),t.slots)for(let e of t.slots)e.components&&n.push(...e.components);for(let t of n)if(t.componentId===e||this.isDescendantOf(e,t))return!0;return!1},dropClass(e){let t=this.dropTarget;return!t||t.compId!==e?``:t.type===`blocked`?`st__row--drop-blocked`:t.type===`before`?`st__row--drop-before`:t.type===`after`?`st__row--drop-after`:t.type===`inside`?`st__row--drop-inside`:``},clearDrop(){this._expandTimer&&=(clearTimeout(this._expandTimer),null),this.$emit(`drag-over`,{compId:null,type:null})}},render(){let e=this.comp;if(this.query&&!this.subtreeMatches(e,this.query))return null;let t=this.hasChildren(e),n=!!this.query||this.openState[e.id]!==!1,r=this.compNames[e.className]||e.className,i=!!(this.query&&this.nodeMatches(e,this.query)),a=[],o=[];t?o.push(Qs(`span`,{class:[`st__caret`,{"st__caret--open":n}],onClick:t=>{t.stopPropagation(),this.$emit(`toggle`,e.id)}},`▸`)):o.push(Qs(`span`,{class:`st__caret st__caret--leaf`})),o.push(Qs(`span`,{class:[`st__label`,{"st__label--hl":i}]},r)),o.push(Qs(`span`,{class:`st__id`},`【`+e.componentId+`】`));{let t=!!(e.eventactions&&e.eventactions.length);o.push(Qs(`span`,{class:[`st__badge`,t?`st__badge--clickable`:`st__badge--muted`],onClick:t=>{t.stopPropagation(),this.$emit(`edit-event`,e)}},`事件`))}if(o.push(Qs(`button`,{class:`st__gear`,type:`button`,title:`编辑节点属性`,onClick:t=>{t.stopPropagation(),this.$emit(`inspect`,e)}},[Lm()])),o.unshift(Qs(`span`,{class:`st__handle`,title:`拖拽以调整位置或嵌套关系`},[Rm()])),a.push(Qs(`div`,{class:[`st__row`,{"st__row--selected":this.selectedNodeId===e.id,"st__row--dragging":this.draggingId===e.componentId},this.dropClass(e.componentId)],title:`单击选中节点;双击打开节点设置;拖拽调整位置/嵌套`,draggable:`true`,"data-comp-id":e.componentId,"data-is-container":this.isContainer(e.className)?`true`:`false`,onClick:t=>this.onRowClick(t,e),onDblclick:t=>this.onRowDblclick(t,e),onDragstart:t=>this.onDragStart(t,e),onDragend:e=>this.onDragEnd(e),onDragover:t=>this.onDragOver(t,e),onDragleave:e=>this.onDragLeave(e),onDrop:t=>this.onDrop(t,e),onMouseenter:()=>this.onRowHover(e),onMouseleave:()=>this.onRowLeave(e),onContextmenu:t=>{t.preventDefault(),t.stopPropagation(),this.$emit(`context-menu`,e,t)}},o)),t){let t=[];for(let n of e.slots||[])for(let e of n.components||[])(!this.query||this.subtreeMatches(e,this.query))&&t.push(Qs(zm,{key:e.id,comp:e,openState:this.openState,compNames:this.compNames,selectedNodeId:this.selectedNodeId,draggingId:this.draggingId,dropTarget:this.dropTarget,query:this.query,onToggle:e=>this.$emit(`toggle`,e),onSelectNode:e=>this.$emit(`select-node`,e),onEditEvent:e=>this.$emit(`edit-event`,e),onInspect:e=>this.$emit(`inspect`,e),onDragStart:e=>this.$emit(`drag-start`,e),onDragEnd:()=>this.$emit(`drag-end`),onDragOver:e=>this.$emit(`drag-over`,e),onMoveNode:e=>this.$emit(`move-node`,e),onHoverNode:e=>this.$emit(`hover-node`,e),onContextMenu:(e,t)=>this.$emit(`context-menu`,e,t)}));t.length&&a.push(Qs(`ul`,{class:`st__children`,style:n?``:`display: none;`},t))}return Qs(`li`,{class:`st__node`},a)}},Bm={name:`StructureTree`,components:{TreeNode:zm},props:{preview:{type:Object,default:null},schema:{type:Object,default:null},cardCode:{type:String,default:``},selectedNodeId:{type:String,default:``},moveCollapseToken:{type:Number,default:0},canPaste:{type:Boolean,default:!1}},data(){return{openState:{},draggingId:``,dropTarget:{compId:null,type:null},query:``,locateEnabled:!1,contextMenu:{visible:!1,x:0,y:0,nodeId:``,node:null},helpOpen:!1,shortcuts:[{keys:[`⌘/Ctrl`,`C`],desc:`复制选中节点`},{keys:[`⌘/Ctrl`,`V`],desc:`粘贴节点`},{keys:[`⌘/Ctrl`,`D`],desc:`创建节点副本`},{keys:[`⌘/Ctrl`,`Z`],desc:`撤销`},{keys:[`⌘/Ctrl`,`⇧`,`Z`],desc:`重做`},{keys:[`Delete`],desc:`删除选中节点`},{keys:[`Esc`],desc:`取消选中`},{keys:[`⌘/Ctrl`,`点击`],desc:`点击画布元素,在本树中定位该节点`}]}},computed:{rootOpen(){return!!this.query||this.openState._root!==!1},view(){return this.preview&&this.preview.view},rootLabel(){return this.view&&(this.preview.name||this.view.className)||`卡片`},viewComponents(){return this.view&&this.view.components||[]},viewNode(){return this.view},viewEventCount(){return this.view&&this.view.eventactions&&this.view.eventactions.length},ctxTargetIsContainer(){return this.isContainerNode(this.contextMenu.node)},ctxTargetIsRoot(){return this.contextMenu.node===this.viewNode},compNames(){let e={};for(let t in ju)e[t]=ju[t].name||t;return e.Root=`根`,e}},watch:{selectedNodeId:{immediate:!0,handler(e){this.ensureVisible(e)}},preview:{handler(e){if(!e||!e.view){this.openState={};return}let t=new Set,n=e=>{if(!e)return;t.add(e.id);let r=[];if(e.components&&r.push(...e.components),e.slots)for(let t of e.slots)t.components&&r.push(...t.components);for(let e of r)n(e)};n(e.view);let r={};for(let e of Object.keys(this.openState))(e===`_root`||t.has(e))&&(r[e]=this.openState[e]);this.openState=r},immediate:!0},moveCollapseToken:{handler(){this.collapseOthersAndReveal(this.selectedNodeId)}}},methods:{toggle(e){let t=this.openState[e];this.openState[e]=t===!1},onRootClick(e){e.stopPropagation(),this.onSelect(`_root`)},onRowHover(e){this.locateEnabled&&this.$emit(`hover-node`,{componentId:e&&e.componentId,id:e&&e.id})},onRowLeave(e){this.locateEnabled&&this.$emit(`hover-node`,{componentId:e&&e.componentId,id:e&&e.id,leave:!0})},toggleLocate(){this.locateEnabled=!this.locateEnabled,this.locateEnabled||this.$emit(`hover-node`,null)},onChildHover(e){this.locateEnabled&&this.$emit(`hover-node`,e)},onRootDblclick(e){e.stopPropagation(),e.preventDefault(),this.onInspect(this.viewNode)},onSelect(e){this.$emit(`select-node`,this.selectedNodeId===e?``:e)},onNodeContextMenu(e,t){this.openContextMenu(e,t)},openContextMenu(e,t){let n=e===this.viewNode?`_root`:e.id;this.$emit(`select-node`,n),this.contextMenu={visible:!0,x:t.clientX,y:t.clientY,nodeId:n,node:e},this.$nextTick(()=>this.clampContextMenu())},clampContextMenu(){let e=this.$refs.ctxMenu;if(!e)return;let t=e.getBoundingClientRect(),n=this.contextMenu.x,r=this.contextMenu.y;n+t.width>window.innerWidth&&(n=Math.max(4,window.innerWidth-t.width-4)),r+t.height>window.innerHeight&&(r=Math.max(4,window.innerHeight-t.height-4)),this.contextMenu.x=n,this.contextMenu.y=r},closeContextMenu(){this.contextMenu.visible&&(this.contextMenu={visible:!1,x:0,y:0,nodeId:``,node:null})},onCtxCopy(){this.$emit(`copy-selected`),this.closeContextMenu()},onCtxPaste(){this.$emit(`paste`),this.closeContextMenu()},onCtxDuplicate(){this.$emit(`duplicate`),this.closeContextMenu()},onCtxDelete(){this.$emit(`delete-selected`),this.closeContextMenu()},onCtxAdd(e){let t=this.contextMenu.node;this.closeContextMenu(),this.$emit(`add-node`,{node:t||null,mode:e})},onCtxInspect(){this.$emit(`inspect`,this.contextMenu.node),this.closeContextMenu()},onCtxEditEvent(){this.$emit(`edit-event`,this.contextMenu.node),this.closeContextMenu()},async onCtxCopyId(){let e=this.contextMenu.node,t=e&&(e.componentId==null?e.id:e.componentId);t==null||t===``?(Q(`该节点没有可复制的 ID`,`err`),this.closeContextMenu()):(await yp(String(t))?Q(`已复制节点ID:${t}`,`ok`):Q(`复制失败,请手动复制`,`err`),this.closeContextMenu())},async onCtxCopyCardId(){let e=this.cardCode;e==null||e===``?(Q(`该卡片没有可复制的 code`,`err`),this.closeContextMenu()):(await yp(String(e))?Q(`已复制卡片code:${e}`,`ok`):Q(`复制失败,请手动复制`,`err`),this.closeContextMenu())},onCtxRenameCard(){this.$emit(`rename-card`),this.closeContextMenu()},isContainerNode(e){if(!e)return!1;if(e.className===`Root`)return!0;let t=ju[e.className];return!!(t&&t.slots&&t.slots.length)},onDocClick(e){this.contextMenu.visible&&this.$refs.ctxMenu&&!this.$refs.ctxMenu.contains(e.target)&&this.closeContextMenu()},onDocKeydown(e){e.key===`Escape`&&this.closeContextMenu()},expandAll(){this.openState={}},collapseAll(){let e={_root:!1},t=n=>{for(let r of n){(r.slots||[]).some(e=>(e.components||[]).length>0)&&(e[r.id]=!1);for(let e of r.slots||[])t(e.components||[])}};t(this.viewComponents),this.openState=e},onEditEvent(e){this.$emit(`edit-event`,e)},onRootDragOver(e){this.draggingId?(e.preventDefault(),e.dataTransfer.dropEffect=`move`,(this.dropTarget.compId!==`__root__`||this.dropTarget.type!==`inside`)&&(this.dropTarget={compId:`__root__`,type:`inside`})):this.dropTarget={compId:null,type:null}},onRootDragLeave(e){e.relatedTarget&&e.currentTarget.contains(e.relatedTarget)||(this.dropTarget={compId:null,type:null})},onRootDrop(e){e.preventDefault();let t=e.dataTransfer&&e.dataTransfer.getData(`text/plain`);this.dropTarget={compId:null,type:null},t&&this.$emit(`move-node`,{sourceCompId:t,targetCompId:`__root__`,position:`inside`})},dropClass(e){let t=this.dropTarget;return!t||t.compId!==e?``:t.type===`blocked`?`st__row--drop-blocked`:t.type===`before`?`st__row--drop-before`:t.type===`after`?`st__row--drop-after`:t.type===`inside`?`st__row--drop-inside`:``},clearDrag(){this.draggingId=``,this.dropTarget={compId:null,type:null}},onAddFromToolbar(){let e=this.selectedNodeId,t=null;e&&e!==`_root`&&(t=this.findViewNodeById(this.view,e)),this.$emit(`add-node`,{node:t,mode:`auto`})},findViewNodeById(e,t){if(!e)return null;if(e.id===t)return e;let n=[];if(e.components&&n.push(...e.components),e.slots)for(let t of e.slots)t.components&&n.push(...t.components);for(let e of n){let n=this.findViewNodeById(e,t);if(n)return n}return null},onInspect(e){this.$emit(`inspect`,e)},ensureVisible(e){if(!e)return;let t=this.collectAncestorIds(e);if(t.length){let e=Object.assign({},this.openState);for(let n of t)e[n]=!0;this.openState=e}this.$nextTick(()=>{let e=this.$el&&this.$el.querySelector?this.$el.querySelector(`.st__row--selected`):null;e&&e.scrollIntoView&&e.scrollIntoView({block:`nearest`})})},collectAncestorIds(e){let t=[],n=!1,r=(i,a)=>{for(let o of i){if(o.id===e)return n=!0,a!==void 0&&t.unshift(a),!0;let i=[];if(o.components&&i.push(...o.components),o.slots)for(let e of o.slots)e.components&&i.push(...e.components);if(r(i,o.id))return t.unshift(a),!0}return!1};return r(this.viewComponents,`_root`),n?t:[]},collapseOthersAndReveal(e){if(this.collapseAll(),e&&e!==`_root`){let t=this.collectAncestorIds(e);if(t.length){let e=Object.assign({},this.openState);for(let n of t)e[n]=!0;this.openState=e}}else e===`_root`&&(this.openState=Object.assign({},this.openState,{_root:!0}));this.$nextTick(()=>{let e=this.$el&&this.$el.querySelector?this.$el.querySelector(`.st__row--selected`):null;e&&e.scrollIntoView&&e.scrollIntoView({block:`nearest`})})}},mounted(){this._onDocClick=e=>this.onDocClick(e),this._onDocKeydown=e=>this.onDocKeydown(e),document.addEventListener(`click`,this._onDocClick,!0),document.addEventListener(`keydown`,this._onDocKeydown,!0)},beforeDestroy(){document.removeEventListener(`click`,this._onDocClick,!0),document.removeEventListener(`keydown`,this._onDocKeydown,!0)}},Vm={class:`st`},Hm={class:`st__toolbar st__toolbar--top`},Um={class:`st__tool-group`},Wm=[`title`,`aria-pressed`],Gm={class:`st__node st__node--root`},Km={class:`st__label`},qm={class:`st__children`},Jm=[`disabled`],Ym=[`disabled`],Xm=[`disabled`],Zm={key:2,class:`st__ctx-sep`},Qm=[`disabled`],$m={class:`st__help-wrap`},eh=[`aria-expanded`],th={class:`st__help-pop-head`},nh={class:`st__help-pop-body st__keys`},rh={class:`st__keys-combo`},ih={class:`st__kbd`},ah={key:0,class:`st__kbd-plus`},oh={class:`st__keys-desc`};function sh(e,t,n,r,i,a){let o=R(`tree-node`);return V(),H(`div`,Vm,[q(`
|
|
148
148
|
顶部工具条:与变量 mock 视图 JsonTree 的 .jt__toolbar 同款
|
|
149
149
|
(sticky 顶部 + .jt__tool 按钮风格),保持两个 tab 操作入口一致。
|
|
@@ -194,8 +194,8 @@ Expected function or array of functions, received type ${typeof e}.`),m)}var ol=
|
|
|
194
194
|
`),r=x();de(n),f(e),S({start:Math.min(r.start,r.end)+n.length,end:Math.min(r.start,r.end)+n.length,dir:`<-`})}function ie(t){let n=x(),r=he();(t.originalEvent??t).clipboardData.setData(`text/plain`,r.toString()),a.execCommand(`delete`),f(e),S({start:Math.min(n.start,n.end),end:Math.min(n.start,n.end),dir:`<-`}),me(t)}function ae(e,t){let n=[];e.firstChild&&n.push(e.firstChild);let r=n.pop();for(;r&&t(r)!==`stop`;)r.nextSibling&&n.push(r.nextSibling),r.firstChild&&n.push(r.firstChild),r=n.pop()}function oe(e){return e.metaKey||e.ctrlKey}function se(e){return oe(e)&&!e.shiftKey&&ue(e)===`Z`}function ce(e){return oe(e)&&e.shiftKey&&ue(e)===`Z`}function le(e){return oe(e)&&ue(e)===`C`}function ue(e){let t=e.key||e.keyCode||e.which;if(t)return(typeof t==`string`?t:String.fromCharCode(t)).toUpperCase()}function de(e){e=e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),a.execCommand(`insertHTML`,!1,e)}function fe(e,t){let n=0;return(...r)=>{clearTimeout(n),n=i.setTimeout(()=>e(...r),t)}}function k(e){let t=e.length-1;for(;t>=0&&e[t]!==`
|
|
195
195
|
`;)t--;t++;let n=t;for(;n<e.length&&/[ \t]/.test(e[n]);)n++;return[e.substring(t,n)||``,t,n]}function pe(){return e.textContent||``}function me(e){e.preventDefault()}function he(){return e.getRootNode().getSelection()}return{updateOptions(e){Object.assign(r,e)},updateCode(t,n=!0){e.textContent=t,f(e),n&&u(t)},onUpdate(e){u=e},toString:pe,save:x,restore:S,recordHistory:ne,destroy(){for(let[t,n]of o)e.removeEventListener(t,n)}}}var pv=c(o(((e,t)=>{var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,`&`).replace(/</g,`<`).replace(/\u00a0/g,` `)},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){n||={};var r,a;switch(i.util.type(t)){case`Object`:if(a=i.util.objId(t),n[a])return n[a];for(var o in r={},n[a]=r,t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case`Array`:return a=i.util.objId(t),n[a]?n[a]:(r=[],n[a]=r,t.forEach(function(t,i){r[i]=e(t,n)}),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return`none`},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,`gi`),``),e.classList.add(`language-`+n)},currentScript:function(){if(typeof document>`u`)return null;if(document.currentScript&&document.currentScript.tagName===`SCRIPT`)return document.currentScript;try{throw Error()}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName(`script`);for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r=`no-`+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=i.util.clone(i.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r||=i.languages;var a=r[e],o={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(o[c]=n[c]);n.hasOwnProperty(s)||(o[s]=a[s])}var l=r[e];return r[e]=o,i.languages.DFS(i.languages,function(t,n){n===l&&t!=e&&(this[t]=o)}),o},DFS:function e(t,n,r,a){a||={};var o=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var c=t[s],l=i.util.type(c);l===`Object`&&!a[o(c)]?(a[o(c)]=!0,e(c,n,null,a)):l===`Array`&&!a[o(c)]&&(a[o(c)]=!0,e(c,n,s,a))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:`code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code`};i.hooks.run(`before-highlightall`,r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),i.hooks.run(`before-all-elements-highlight`,r);for(var a=0,o;o=r.elements[a++];)i.highlightElement(o,t===!0,r.callback)},highlightElement:function(t,n,r){var a=i.util.getLanguage(t),o=i.languages[a];i.util.setLanguage(t,a);var s=t.parentElement;s&&s.nodeName.toLowerCase()===`pre`&&i.util.setLanguage(s,a);var c={element:t,language:a,grammar:o,code:t.textContent};function l(e){c.highlightedCode=e,i.hooks.run(`before-insert`,c),c.element.innerHTML=c.highlightedCode,i.hooks.run(`after-highlight`,c),i.hooks.run(`complete`,c),r&&r.call(c.element)}if(i.hooks.run(`before-sanity-check`,c),s=c.element.parentElement,s&&s.nodeName.toLowerCase()===`pre`&&!s.hasAttribute(`tabindex`)&&s.setAttribute(`tabindex`,`0`),!c.code)i.hooks.run(`complete`,c),r&&r.call(c.element);else if(i.hooks.run(`before-highlight`,c),!c.grammar)l(i.util.encode(c.code));else if(n&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){l(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else l(i.highlight(c.code,c.grammar,c.language))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(i.hooks.run(`before-tokenize`,r),!r.grammar)throw Error(`The language "`+r.language+`" has no grammar.`);return r.tokens=i.tokenize(r.code,r.grammar),i.hooks.run(`after-tokenize`,r),a.stringify(i.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var i=new c;return l(i,i.head,e),s(e,i,t,i.head,0),d(i)},hooks:{all:{},add:function(e,t){var n=i.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=i.hooks.all[e];if(n&&n.length)for(var r=0,a;a=n[r++];)a(t)}},Token:a};e.Prism=i;function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||``).length|0}a.stringify=function e(t,n){if(typeof t==`string`)return t;if(Array.isArray(t)){var r=``;return t.forEach(function(t){r+=e(t,n)}),r}var a={type:t.type,content:e(t.content,n),tag:`span`,classes:[`token`,t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(a.classes,o):a.classes.push(o)),i.hooks.run(`wrap`,a);var s=``;for(var c in a.attributes)s+=` `+c+`="`+(a.attributes[c]||``).replace(/"/g,`"`)+`"`;return`<`+a.tag+` class="`+a.classes.join(` `)+`"`+s+`>`+a.content+`</`+a.tag+`>`};function o(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function s(e,t,n,r,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+`,`+m)return;var h=p[m],g=h.inside,_=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var b=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,b+`g`)}for(var x=h.pattern||h,S=r.next,C=c;S!==t.tail&&!(d&&C>=d.reach);C+=S.value.length,S=S.next){var w=S.value;if(t.length>e.length)return;if(!(w instanceof a)){var ee=1,T;if(v){if(T=o(x,C,e,_),!T||T.index>=e.length)break;var E=T.index,D=T.index+T[0].length,O=C;for(O+=S.value.length;E>=O;)S=S.next,O+=S.value.length;if(O-=S.value.length,C=O,S.value instanceof a)continue;for(var te=S;te!==t.tail&&(O<D||typeof te.value==`string`);te=te.next)ee++,O+=te.value.length;ee--,w=e.slice(C,O),T.index-=C}else if(T=o(x,0,w,_),!T)continue;var E=T.index,ne=T[0],re=w.slice(0,E),ie=w.slice(E+ne.length),ae=C+w.length;d&&ae>d.reach&&(d.reach=ae);var oe=S.prev;re&&(oe=l(t,oe,re),C+=re.length),u(t,oe,ee);var se=new a(f,g?i.tokenize(ne,g):ne,y,ne);if(S=l(t,oe,se),ie&&l(t,S,ie),ee>1){var ce={cause:f+`,`+m,reach:ae};s(e,t,n,S.prev,C,ce),d&&ce.reach>d.reach&&(d.reach=ce.reach)}}}}}}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function u(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function d(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}if(!e.document)return e.addEventListener&&(i.disableWorkerMessageHandler||e.addEventListener(`message`,function(t){var n=JSON.parse(t.data),r=n.language,a=n.code,o=n.immediateClose;e.postMessage(i.highlight(a,i.languages[r],r)),o&&e.close()},!1)),i;var f=i.util.currentScript();f&&(i.filename=f.src,f.hasAttribute(`data-manual`)&&(i.manual=!0));function p(){i.manual||i.highlightAll()}if(!i.manual){var m=document.readyState;m===`loading`||m===`interactive`&&f&&f.defer?document.addEventListener(`DOMContentLoaded`,p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return i}(typeof window<`u`?window:typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope?self:{});t!==void 0&&t.exports&&(t.exports=n),typeof global<`u`&&(global.Prism=n),n.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:`attr-equals`},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:`named-entity`},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside[`attr-value`].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside[`internal-subset`].inside=n.languages.markup,n.hooks.add(`wrap`,function(e){e.type===`entity`&&(e.attributes.title=e.content.replace(/&/,`&`))}),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r[`language-`+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i[`language-`+t]={pattern:/[\s\S]+/,inside:n.languages[t]};var a={};a[e]={pattern:RegExp(`(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)`.replace(/__/g,function(){return e}),`i`),lookbehind:!0,greedy:!0,inside:i},n.languages.insertBefore(`markup`,`cdata`,a)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(e,t){n.languages.markup.tag.inside[`special-attr`].push({pattern:RegExp(`(^|["'\\s])(?:`+e+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,`i`),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,`language-`+t],inside:n.languages[t]},punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend(`markup`,{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+t.source+`)*?(?:;|(?=\\s*\\{))`),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:`selector`},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp(`\\burl\\((?:`+t.source+`|(?:[^\\\\\\r\\n()"']|\\\\[\\s\\S])*)\\)`,`i`),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp(`^`+t.source+`$`),alias:`url`}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+`)*(?=\\s*\\{)`),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(`style`,`css`),n.tag.addAttribute(`style`,`css`))})(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend(`clike`,{"class-name":[n.languages.clike[`class-name`],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(`(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])`),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript[`class-name`][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore(`javascript`,`keyword`,{regex:{pattern:RegExp(`((?:^|[^$\\w\\xA0-\\uFFFF."'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))`),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:`language-regex`,inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:`function`},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore(`javascript`,`string`,{hashbang:{pattern:/^#!.*/,greedy:!0,alias:`comment`},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:`string`},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:`punctuation`},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:`property`}}),n.languages.insertBefore(`javascript`,`operator`,{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:`property`}}),n.languages.markup&&(n.languages.markup.tag.addInlined(`script`,`javascript`),n.languages.markup.tag.addAttribute(`on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)`,`javascript`)),n.languages.js=n.languages.javascript,(function(){if(n===void 0||typeof document>`u`)return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e=`Loading…`,t=function(e,t){return`✖ Error `+e+` while fetching file: `+t},r=`✖ Error: File does not exist or is empty`,i={js:`javascript`,py:`python`,rb:`ruby`,ps1:`powershell`,psm1:`powershell`,sh:`bash`,bat:`batch`,h:`c`,tex:`latex`},a=`data-src-status`,o=`loading`,s=`loaded`,c=`failed`,l=`pre[data-src]:not([`+a+`="`+s+`"]):not([`+a+`="`+o+`"])`;function u(e,n,i){var a=new XMLHttpRequest;a.open(`GET`,e,!0),a.onreadystatechange=function(){a.readyState==4&&(a.status<400&&a.responseText?n(a.responseText):a.status>=400?i(t(a.status,a.statusText)):i(r))},a.send(null)}function d(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||``);if(t){var n=Number(t[1]),r=t[2],i=t[3];return r?i?[n,Number(i)]:[n,void 0]:[n,n]}}n.hooks.add(`before-highlightall`,function(e){e.selector+=`, `+l}),n.hooks.add(`before-sanity-check`,function(t){var r=t.element;if(r.matches(l)){t.code=``,r.setAttribute(a,o);var f=r.appendChild(document.createElement(`CODE`));f.textContent=e;var p=r.getAttribute(`data-src`),m=t.language;if(m===`none`){var h=(/\.(\w+)$/.exec(p)||[,`none`])[1];m=i[h]||h}n.util.setLanguage(f,m),n.util.setLanguage(r,m);var g=n.plugins.autoloader;g&&g.loadLanguages(m),u(p,function(e){r.setAttribute(a,s);var t=d(r.getAttribute(`data-range`));if(t){var i=e.split(/\r\n?|\n/g),o=t[0],c=t[1]==null?i.length:t[1];o<0&&(o+=i.length),o=Math.max(0,Math.min(o-1,i.length)),c<0&&(c+=i.length),c=Math.max(0,Math.min(c,i.length)),e=i.slice(o,c).join(`
|
|
196
196
|
`),r.hasAttribute(`data-start`)||r.setAttribute(`data-start`,String(o+1))}f.textContent=e,n.highlightElement(f)},function(e){r.setAttribute(a,c),f.textContent=e})}}),n.plugins.fileHighlight={highlight:function(e){for(var t=(e||document).querySelectorAll(l),r=0,i;i=t[r++];)n.highlightElement(i)}};var f=!1;n.fileHighlight=function(){f||=(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),!0),n.plugins.fileHighlight.highlight.apply(this,arguments)}})()}))());Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`}},Prism.languages.webmanifest=Prism.languages.json;function mv(e,t={}){if(!e||typeof e!=`object`)return{};let n=t.includeMocks?hv(e):null,r={};for(let t of e.dictionary?.inputParams||[]){let e=_v(t),i=t.defaultValue,a=i&&typeof i==`object`&&!Array.isArray(i)&&Object.keys(i).length===0,o=e!==void 0&&(i===void 0||i===``||a)?e:i;n&&gv(n,t.key)&&(o=n[t.key]),r[t.key]=vv(o)}return r}function hv(e){let t=e&&e.dictionary&&e.dictionary.mocks;return t&&typeof t==`object`&&!Array.isArray(t)?t:null}function gv(e,t){if(!e||!Object.prototype.hasOwnProperty.call(e,t))return!1;let n=e[t];return n==null||n===``?!1:Array.isArray(n)?n.length>0:typeof n!=`object`||Object.keys(n).length>0}function _v(e){if(!e.desc||typeof e.desc!=`string`)return;let t=e.desc.trim();if(t.startsWith(`{`))try{let n=JSON.parse(t);return Object.prototype.hasOwnProperty.call(n,e.key)?n[e.key]:void 0}catch{return}}function vv(e){return e==null?e:JSON.parse(JSON.stringify(e))}var yv=/\x1b\[[0-9;:?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[@-Z\\-_]/g;function bv(e){return String(e??``).replace(yv,``)}var xv=[[0,0,0],[170,0,0],[0,170,0],[170,85,0],[0,0,170],[170,0,170],[0,170,170],[170,170,170]],Sv=[[85,85,85],[255,85,85],[85,255,85],[255,255,85],[85,85,255],[255,85,255],[85,255,255],[255,255,255]];function Cv(e){let t=Math.round(Number(e));return Number.isFinite(t)?t<0?0:t>255?255:t:0}function wv(e){let t=Cv(e);if(t<8)return xv[t];if(t<16)return Sv[t-8];if(t<232){let e=t-16,n=e=>e?e*40+55:0;return[n(Math.floor(e/36)),n(Math.floor(e%36/6)),n(e%6)]}let n=8+(t-232)*10;return[n,n,n]}function Tv(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}function Ev(e){return`rgb(${e[0]},${e[1]},${e[2]})`}function Dv(){return{fg:null,bg:null,bold:!1,dim:!1,italic:!1,underline:!1}}function Ov(e){return!e.fg&&!e.bg&&!e.bold&&!e.dim&&!e.italic&&!e.underline}function kv(e){let t=[],n=e.fg;return n&&n.basic!=null&&(n={rgb:e.bold?Sv[n.basic]:xv[n.basic]}),n&&t.push(`color:${Ev(n.rgb)}`),e.bg&&t.push(`background-color:${Ev(e.bg.rgb)}`),e.bold&&t.push(`font-weight:600`),e.dim&&t.push(`opacity:.72`),e.italic&&t.push(`font-style:italic`),e.underline&&t.push(`text-decoration:underline`),t.join(`;`)}function Av(e,t){let n=String(t||``),r=(n===``?`0`:n).split(/[;:]/).map(e=>e===``?0:Number(e));for(let t=0;t<r.length;t++){let n=r[t];if(Number.isFinite(n)){if(n===0)Object.assign(e,Dv());else if(n===1)e.bold=!0;else if(n===2)e.dim=!0;else if(n===3)e.italic=!0;else if(n===4)e.underline=!0;else if(n===22)e.bold=!1,e.dim=!1;else if(n===23)e.italic=!1;else if(n===24)e.underline=!1;else if(n===39)e.fg=null;else if(n===49)e.bg=null;else if(n>=30&&n<=37)e.fg={basic:n-30};else if(n>=90&&n<=97)e.fg={rgb:Sv[n-90]};else if(n>=40&&n<=47)e.bg={basic:n-40};else if(n>=100&&n<=107)e.bg={rgb:Sv[n-100]};else if(n===38||n===48){let i=r[t+1],a=null,o=0;i===5?(a=wv(r[t+2]),o=2):i===2&&(a=[Cv(r[t+2]),Cv(r[t+3]),Cv(r[t+4])],o=4),a&&(n===38?e.fg={rgb:a}:e.bg={rgb:a},t+=o)}}}}function jv(e){let t=String(e??``);if(!t)return``;if(t.indexOf(`\x1B`)<0)return Tv(t);let n=Dv(),r=``,i=0,a;for(yv.lastIndex=0;(a=yv.exec(t))!==null;){a.index>i&&(r+=Mv(t.slice(i,a.index),n)),i=a.index+a[0].length;let e=a[0];e[1]===`[`&&/[m]$/.test(e)&&Av(n,e.slice(2,-1))}return i<t.length&&(r+=Mv(t.slice(i),n)),r}function Mv(e,t){if(!e)return``;let n=Tv(e);if(Ov(t))return n;let r=kv(t);return r?`<span style="${r}">${n}</span>`:n}var Nv=800;function Pv(e){let t=String(e??``).replace(/^\uFEFF/,``),n=``,r=0,i=t.length,a=()=>{let e=n.length-1;for(;e>=0&&/\s/.test(n[e]);)--e;return e},o=()=>{let e=a();e>=0&&n[e]!==`,`&&n[e]!==`[`&&n[e]!==`{`&&(n+=`,`)},s=e=>{let n=e;for(;n<i&&/\s/.test(t[n]);)n+=1;return n};for(;r<i;){let e=t[r];if(e===`"`){let e=r+1;for(;e<i;)if(t[e]===`\\`)e+=2;else{if(t[e]===`"`){e+=1;break}e+=1}n+=t.slice(r,e),r=e}else if(e===`'`){let e=r+1,a=``;for(;e<i;){let n=t[e];if(n===`\\`&&e+1<i){let r=t[e+1];if(r===`'`){a+=`'`,e+=2;continue}if(r===`"`){a+=`\\"`,e+=2;continue}a+=n+r,e+=2}else{if(n===`'`){e+=1;break}n===`"`?(a+=`\\"`,e+=1):(a+=n,e+=1)}}n+=`"`+a+`"`,r=e}else if(e===`/`&&t[r+1]===`/`)for(;r<i&&t[r]!==`
|
|
197
|
-
`;)r+=1;else if(e===`/`&&t[r+1]===`*`){let e=t.indexOf(`*/`,r+2);r=e===-1?i:e+2}else if(e===`;`||e===`,`)o(),r+=1;else if(/[A-Za-z_$]/.test(e)){let e=r;for(;e<i&&/[A-Za-z0-9_$]/.test(t[e]);)e+=1;let a=t.slice(r,e);t[s(e)]===`:`?n+=`"`+a+`"`:n+=a===`undefined`||a===`NaN`||a===`Infinity`?`null`:a,r=e}else if(e===`-`&&t.startsWith(`Infinity`,r+1))n+=`null`,r+=9;else if(/[0-9]/.test(e)||e===`-`&&/[0-9]/.test(t[r+1]||``)){let e=r;for(;e<i&&/[0-9eE+\-.]/.test(t[e]);)e+=1;let a=t.slice(r,e);t[s(e)]===`:`?n+=`"`+a+`"`:n+=a,r=e}else{if(e===`}`||e===`]`){let e=a();for(;e>=0&&n[e]===`,`;)n=n.slice(0,e)+n.slice(e+1),e=a()}n+=e,r+=1}}try{return{value:JSON.parse(n.trim()||`{}`)}}catch(e){return{error:e.message}}}function Fv(e){let t=/^\d{2}:\d{2}:\d{2}\.\d{3}\s+(INFO|OK\s|WARN|ERR)\b/.exec(e);if(t){let e=t[1].trim();return e===`ERR`?`error`:e===`WARN`?`warn`:e===`OK`?`ok`:`info`}return`info`}function Iv(e){let t=String(e&&e.text!=null?e.text:``),n=bv(t);return{seq:Number(e&&e.seq)||0,t:Number(e&&e.t)||0,level:Fv(n),plain:n,html:jv(t)}}function Lv(e,t){if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Lv(e[r],t[r]))return!1;return!0}function Rv(e){return e===void 0?void 0:JSON.parse(JSON.stringify(e))}var zv=`cardbuddy:history-cache:v1`,Bv=30,Vv=90;function Hv(){try{let e=JSON.parse(localStorage.getItem(zv)||`{}`);return e&&typeof e==`object`?e:{}}catch{return{}}}function Uv(e){try{localStorage.setItem(zv,JSON.stringify(e))}catch{}}var Wv={name:`DebugPanel`,components:{JsonTree:om,StateDiffPanel:Im,StructureTree:ch,NodeInspector:Vh,EventEditor:wg,PublishVersionsDialog:Zg,LogValue:k_,Dropdown:B_,ConfirmDialog:Ap,NumberStepper:J_,SetSegment:uv},props:{rt:{type:Object,required:!0},preview:{type:Object,default:null},schema:{type:Object,default:null},cardId:{type:String,default:``},reloadToken:{type:Number,default:0},cardCount:{type:Number,default:0},selectedNodeId:{type:String,default:``},moveCollapseToken:{type:Number,default:0},activeTab:{type:String,default:`vars`},metaRefreshToken:{type:Number,default:0},historyRefreshToken:{type:Number,default:0},devSvcClass:{type:String,default:`app__btn--warn`},devSvcTitle:{type:String,default:``},devSvcLabel:{type:String,default:``},devSvcConn:{type:String,default:``},chromeOff:{type:Boolean,default:!1},remoteLoggedIn:{type:Boolean,default:!1},hasCardSource:{type:Boolean,default:!1},historyRestoring:{type:Boolean,default:!1}},data(){return{copied:!1,copyTimer:null,copiedVar:null,varCopyTimer:null,errorPanel:``,eventTab:`log`,svcLogs:[],svcLogSeq:0,svcLogFloor:0,svcLogLive:!1,svcLogFollow:!0,svcLogDropped:0,svcLogLoading:!1,svcLogErr:``,svcCopied:!1,statePanelOpen:!1,panelH:this.loadPanelH(),panelDragging:!1,inspectingComp:null,inspectKey:0,editingEventComp:null,eventEditorKey:0,rawText:``,rawError:``,varsMode:`list`,varDlg:null,varDlgError:``,delVarTarget:null,schemaViewerOpen:!1,copiedSchemaText:!1,copiedCode:!1,schemaViewData:null,varTypeOptions:[{key:`string`,value:`字符串`},{key:`number`,value:`数字`},{key:`boolean`,value:`布尔`},{key:`array`,value:`数组`},{key:`object`,value:`对象`}],varBoolOptions:[{key:`true`,value:`true`},{key:`false`,value:`false`}],importMeta:null,remoteVersionLoading:!1,remoteVersionError:``,publishRecordsOpen:!1,historyLoading:!1,historyLoadingMore:!1,historyError:``,historyLoginNeeded:!1,historyList:[],historyTotal:0,historyTotalPages:1,historyPage:1,historyLoadedFor:``,historyPreview:``}},computed:{tabs(){let e=[{key:`vars`,label:`变量`},{key:`structure`,label:`组件结构`},{key:`meta`,label:`导入信息`}];return this.remoteLoggedIn&&this.hasCardSource&&e.push({key:`history`,label:`编辑记录`}),e},historyLatestId(){return this.historyList.length?this.historyList[0].id:``},historyGroups(){let e=[];for(let t of this.historyList){let n=this.historyDateGroup(t.createTime),r=e[e.length-1];
|
|
198
|
-
`).length:0},schemaTextBytes(){let e=new Blob([this.schemaText]).size;return e>=1024?(e/1024).toFixed(1)+` KB`:e+` B`},stateDirty(){return this.rt.revision,!Lv(this.rt.state,this.rt.rootScope)}},watch:{errorPanel(e){e===`svclog`?this.startSvcLog():this.stopSvcLog()},cardId:{immediate:!0,handler(){this.rawError=``,this.destroyJar(),this.varsMode=`list`,this.varDlg=null,this.varDlgError=``,this.delVarTarget=null,this.inspectingComp=null,this.editingEventComp=null,this.importMeta=null,this.remoteVersionLoading=!1,this.remoteVersionError=``,this.resetCardHistory(),this.schemaViewerOpen=!1,this.maybeFetchMeta()}},reloadToken(){this.maybeFetchMeta()},metaRefreshToken(e,t){e!==t&&this.activeTab===`meta`&&this.fetchImportMeta()},historyRefreshToken(e,t){e===t||this.historyLoading||this.historyLoadingMore||(this._dropHistoryCache(this.historyLoadedFor||this.cardId),this.historyLoadedFor=``,this.activeTab===`history`&&this.fetchCardHistoryPage(1))},activeTab(e){e===`meta`&&this.fetchImportMeta(),e===`history`&&this.maybeFetchCardHistory(),e!==`vars`&&(this.varsMode=`list`,this.rawError=``,this.destroyJar(),this.varDlg=null)},varDlg(e){e?(this.varDlgError=``,this.isComplexType(e.form.type)&&this.$nextTick(()=>this.initDlgJar())):this.destroyDlgJar()},"varDlg.form.type"(e,t){this.varDlg&&e!==t&&(this.varDlg.form.defaultValue=this.normalizeDefaultText(e,this.varDlg.form.defaultValue),this.isComplexType(e)?this.$nextTick(()=>this.initDlgJar()):this.destroyDlgJar())},varsMode(e){e===`mock`?(this.seedRawFromMocks(),this.$nextTick(()=>this.initJar())):(this.rawError=``,this.destroyJar())},schema(){this.inspectingComp=null,this.editingEventComp=null,this.varsMode===`mock`&&this.seedRawFromMocks()}},mounted(){let e=this.panelH;this.$refs.statePanel&&(this.$refs.statePanel.style.height=e+`px`),this.$refs.errPanel&&(this.$refs.errPanel.style.height=e+`px`)},beforeUnmount(){this.destroyJar(),this.destroyDlgJar(),this.cancelResize(),this.stopSvcLog()},methods:{toggleStatePanel(){this.statePanelOpen=!this.statePanelOpen,this.statePanelOpen&&(this.errorPanel=``)},toggleErrorPanel(e){this.errorPanel=this.errorPanel===e?``:e,this.errorPanel&&(this.statePanelOpen=!1,e===`event`&&(this.eventTab=this.eventErrors.length?`err`:`log`))},startResize(e){if(e.target.closest(`button`))return;this.panelDragging=!0;let t=e.clientY,n=this.panelH,r=Math.max(120,Math.round(window.innerHeight*.6)),i=e=>{this.panelH=e,this.$refs.statePanel&&(this.$refs.statePanel.style.height=e+`px`),this.$refs.errPanel&&(this.$refs.errPanel.style.height=e+`px`)},a=e=>{let a=t-e.clientY;i(Math.min(r,Math.max(120,n+a)))},o=()=>{document.body.style.cursor=``,document.body.style.userSelect=``,document.removeEventListener(`mousemove`,a),document.removeEventListener(`mouseup`,o),this._resizeMove=this._resizeUp=null,this.panelDragging=!1,this.savePanelH()};this._resizeMove=a,this._resizeUp=o,document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,a),document.addEventListener(`mouseup`,o)},cancelResize(){this._resizeMove&&document.removeEventListener(`mousemove`,this._resizeMove),this._resizeUp&&document.removeEventListener(`mouseup`,this._resizeUp),this._resizeMove=this._resizeUp=null,this.panelDragging=!1,document.body.style.cursor=``,document.body.style.userSelect=``},loadPanelH(){try{let e=localStorage.getItem(`cardbuddy:debug-panel-height`);if(e!=null){let t=parseInt(e,10);if(!Number.isNaN(t)){let e=Math.max(120,Math.round(window.innerHeight*.6));return Math.min(e,Math.max(120,t))}}}catch{}return 240},savePanelH(){try{localStorage.setItem(`cardbuddy:debug-panel-height`,String(Math.round(this.panelH)))}catch{}},initJar(){let e=this.$refs.rawEditor;if(!e)return;this.destroyJar();let t=e=>{e.innerHTML=pv.default.highlight(e.textContent,pv.default.languages.json,`json`)};this._jar=fv(e,t,{tab:` `,indentOn:/[({[]$/,addClosing:!0,history:!0}),this._jar.updateCode(this.rawText||``),this._jar.onUpdate(e=>{this.rawText=e,this.rawError&&=``}),window.__rawEditor=this._jar,this.$nextTick(()=>e.focus())},destroyJar(){this._jar&&this._jar.destroy&&this._jar.destroy(),this._jar=null,typeof window<`u`&&window.__rawEditor&&(window.__rawEditor=null)},initDlgJar(){let e=this.$refs.dlgCode;if(!e)return;this.destroyDlgJar();let t=e=>{e.innerHTML=pv.default.highlight(e.textContent,pv.default.languages.json,`json`)};this._dlgJar=fv(e,t,{tab:` `,indentOn:/[({[]$/,addClosing:!0,history:!0}),this._dlgJar.updateCode(this.varDlg?this.varDlg.form.defaultValue:``),this._dlgJar.onUpdate(e=>{this.varDlg&&(this.varDlg.form.defaultValue=e),this.varDlgError&&=``}),window.__dlgEditor=this._dlgJar},destroyDlgJar(){this._dlgJar&&this._dlgJar.destroy&&this._dlgJar.destroy(),this._dlgJar=null,typeof window<`u`&&window.__dlgEditor&&(window.__dlgEditor=null)},complexSeed(e,t){let n=e===`array`?`[]`:`{}`,r=String(t??``).trim();if(!r)return n;try{let t=JSON.parse(r);return(e===`array`?Array.isArray(t):t&&typeof t==`object`)?JSON.stringify(t,null,2):n}catch{return n}},normalizeDefaultText(e,t){if(this.isComplexType(e))return this.complexSeed(e,t);let n=String(t??``).trim();return e===`number`?n!==``&&Number.isFinite(Number(n))?String(Number(n)):``:e===`boolean`?/^(true|1)$/i.test(n)?`true`:`false`:String(t??``)},saveRaw(){let e=Pv(this.rawText);if(e.error){this.rawError=`JSON 格式错误:`+e.error;return}if(e.value===null||typeof e.value!=`object`||Array.isArray(e.value)){this.rawError=`变量 mock 必须是 JSON 对象({ ... })`;return}let t=this.schema;if(!t){this.rawError=`当前未载入卡片`;return}(!t.dictionary||typeof t.dictionary!=`object`)&&(t.dictionary={dictionaryList:[],inputParams:[]}),t.dictionary.mocks=e.value,this.rt.setRootScope(mv(t,{includeMocks:!0}));let n=JSON.stringify(e.value,null,2);this.rawText=n,this._jar&&this._jar.updateCode(n),this.$nextTick(()=>this.onCommit()),this.rawError=``},async copyScope(){await yp(this.rawText||``)&&(this.copied=!0,this.copyTimer&&clearTimeout(this.copyTimer),this.copyTimer=setTimeout(()=>{this.copied=!1},1500))},onEditEvent(e){this.editingEventComp=e,this.eventEditorKey++},onApply(){this.$emit(`schema-changed`)},onCommit(){this.$emit(`schema-commit`)},hasMock(e){return gv(this.mocks,e.key)},async copyVarName(e,t){let n=e&&e.key?String(e.key):``;n&&await yp(n)&&(this.copiedVar=t,this.varCopyTimer&&clearTimeout(this.varCopyTimer),this.varCopyTimer=setTimeout(()=>{this.copiedVar===t&&(this.copiedVar=null)},1500))},async copyCardCode(){let e=this.importMeta&&this.importMeta.cardCode!=null?String(this.importMeta.cardCode):``;e&&await yp(e)&&(this.copiedCode=!0,this._codeCopyTimer&&clearTimeout(this._codeCopyTimer),this._codeCopyTimer=setTimeout(()=>{this.copiedCode=!1},1500))},isComplexType(e){return e===`array`||e===`object`},scalarPlaceholder(e){return e===`number`?`数字,如 0 / 99.5`:`字符串原样保存`},onVarTypeChange(e){this.varDlg&&(this.varDlg.form.type=e)},openVarDlg(e){let t=e==null?null:this.inputParams[e],n=t&&t.type||`string`,r=t?t.defaultValue:void 0,i=``;r!=null&&(i=typeof r==`object`?JSON.stringify(r,null,2):String(r)),i=this.normalizeDefaultText(n,i),this.varDlgError=``,this.varDlg={index:e,form:{key:t&&t.key||``,name:t&&t.name||``,type:n,defaultValue:i,desc:t&&t.desc||``}}},parseDefault(e,t){let n=String(t??``).trim();if(this.isComplexType(e)){if(!n)return{value:e===`array`?[]:{}};let t=Pv(n);if(t.error)return{error:`默认值不是合法 JSON:`+t.error};let r=t.value;return e===`array`&&!Array.isArray(r)?{error:`默认值需为 JSON 数组`}:e===`object`&&(typeof r!=`object`||!r||Array.isArray(r))?{error:`默认值需为 JSON 对象`}:{value:r}}if(e===`number`){if(!n)return{value:0};let e=Number(n);return Number.isFinite(e)?{value:e}:{error:`默认值不是合法数字`}}return e===`boolean`?n?n===`true`||n===`1`?{value:!0}:n===`false`||n===`0`?{value:!1}:{error:`布尔默认值仅接受 true / false`}:{value:!1}:{value:String(t??``)}},confirmVarDlg(){let e=this.varDlg;if(!e)return;let t=e.form,n=String(t.key||``).trim(),r=String(t.name||``).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n)){this.varDlgError=`变量名需为字母 / 下划线开头的英文标识(绑定以 $key 引用)`;return}if(this.inputParams.some((t,r)=>t.key===n&&r!==e.index)){this.varDlgError=`已存在同名变量 `+n;return}if(!r){this.varDlgError=`中文名不能为空`;return}let i=this.parseDefault(t.type,t.defaultValue);if(i.error){this.varDlgError=i.error;return}if(this.isComplexType(t.type)){let e=JSON.stringify(i.value,null,2);t.defaultValue=e,this._dlgJar&&this._dlgJar.updateCode(e)}let a=this.schema;if(!a){this.varDlgError=`当前未载入卡片`;return}(!a.dictionary||typeof a.dictionary!=`object`)&&(a.dictionary={dictionaryList:[],inputParams:[]}),Array.isArray(a.dictionary.inputParams)||(a.dictionary.inputParams=[]);let o=a.dictionary.inputParams,s=this.rt.rootScope,c=hv(a)||{},l=Rv(i.value);if(e.index==null)o.push({key:n,name:r,type:t.type,defaultValue:Rv(l),desc:String(t.desc||``),rule:{type:``,options:{}},children:[]}),gv(c,n)||(s[n]=l);else{let i=o[e.index];if(!i)return;let a=i.key;i.key=n,i.name=r,i.type=t.type,i.desc=String(t.desc||``),i.defaultValue=Rv(l),a!==n&&(Object.prototype.hasOwnProperty.call(c,a)&&(c[n]=c[a],delete c[a]),s&&Object.prototype.hasOwnProperty.call(s,a)&&delete s[a]),gv(c,n)||(s[n]=l)}this.varDlg=null,this.onCommit()},askDeleteVar(e){this.delVarTarget=e},scanVarRefs(e){let t={binding:0,event:0,other:0},n=this.schema;if(!e||!n||typeof n!=`object`)return t;let r=String(e).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`\\$`+r+`(?![A-Za-z0-9_$])`),a=RegExp(`state\\s*(?:\\.\\s*`+r+`(?![A-Za-z0-9_$])|\\[\\s*['"]`+r+`['"]\\s*\\])`),o=e=>i.test(e)||a.test(e),s=e=>{if(e!=null){if(Array.isArray(e))for(let t of e)s(t);else if(typeof e==`object`){for(let[n,r]of Object.entries(e))if(n!==`dictionary`&&n!==`compiled`){if(typeof r==`string`){if(!o(r))continue;n===`itemValue`?t.binding+=1:n===`code`?t.event+=1:t.other+=1}else s(r)}}}};return s(n),t},confirmDeleteVar(){let e=this.delVarTarget==null?null:this.inputParams[this.delVarTarget];if(this.delVarTarget=null,!e||!this.schema||!this.schema.dictionary)return;let t=this.schema.dictionary.inputParams||[],n=t.indexOf(e);n>=0&&t.splice(n,1);let r=hv(this.schema)||{};Object.prototype.hasOwnProperty.call(r,e.key)&&delete r[e.key];let i=this.rt.rootScope;i&&Object.prototype.hasOwnProperty.call(i,e.key)&&delete i[e.key],this.onCommit()},leaveMock(){this.varsMode=`list`},seedRawFromMocks(){this.rawError=``;try{this.rawText=JSON.stringify(this.mocks,null,2)}catch(e){this.rawText=``,this.rawError=`无法序列化当前数据:`+(e&&e.message);return}this._jar&&this._jar.updateCode(this.rawText)},onInspect(e){this.inspectingComp=e,this.inspectKey++},openSchemaViewer(){try{let e={...this.schema||{}};this.schema&&this.rt&&this.rt.rootScope&&(e.data=this.rt.rootScope),this.schemaViewData=this.schema?JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)):null}catch{this.schemaViewData=null}this.schemaViewerOpen=!0,this.$nextTick(()=>{let e=this.$refs.schemaViewerEl;e&&e.focus&&e.focus()})},onSchemaViewerKey(e){e.key===`Escape`?(e.preventDefault(),this.schemaViewerOpen=!1):(e.key===`c`||e.key===`C`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&(e.preventDefault(),this.copySchemaText())},async copySchemaText(){this.schema&&this.schemaText&&await yp(this.schemaText)&&(this.copiedSchemaText=!0,clearTimeout(this._schemaCopyTimer),this._schemaCopyTimer=setTimeout(()=>{this.copiedSchemaText=!1},1500))},onSelectNode(e){this.$emit(`select-node`,e)},_saveHistoryToCache(){if(!this.historyLoadedFor||!this.historyList.length)return;this._historyCache||={};let e={at:Date.now(),list:this.historyList.slice(0,Vv),total:this.historyTotal,totalPages:this.historyTotalPages,page:this.historyPage};this._historyCache[this.historyLoadedFor]=e;let t=Hv();t[this.historyLoadedFor]=e;let n=Object.keys(t);if(n.length>Bv){n.sort((e,n)=>(t[e].at||0)-(t[n].at||0));for(let e of n.slice(0,n.length-Bv))delete t[e]}Uv(t)},_loadHistoryCache(e){if(!e)return null;if(this._historyCache&&this._historyCache[e])return this._historyCache[e];let t=Hv()[e];return!t||!t.list||!t.list.length?null:(this._historyCache||={},this._historyCache[e]=t,t)},_dropHistoryCache(e){if(!e)return;this._historyCache&&delete this._historyCache[e];let t=Hv();t[e]&&(delete t[e],Uv(t))},resetCardHistory(){this._saveHistoryToCache(),this.historyLoading=!1,this.historyLoadingMore=!1,this.historyError=``,this.historyLoginNeeded=!1,this.historyList=[],this.historyTotal=0,this.historyTotalPages=1,this.historyPage=1,this.historyLoadedFor=``,this.historyPreview=``},maybeFetchCardHistory(){if(!this.cardId||this.historyLoading||this.historyLoadingMore||this.historyLoadedFor===this.cardId)return;let e=this._loadHistoryCache(this.cardId);e?(this.historyList=e.list.slice(),this.historyTotal=e.total,this.historyTotalPages=e.totalPages,this.historyPage=e.page,this.historyLoadedFor=this.cardId,this.historyError=``,this.historyLoginNeeded=!1,this.historyPreview=``):this.fetchCardHistoryPage(1)},async fetchCardHistoryPage(e){let t=e>1,n=this.cardId;if(t){if(this.historyLoadingMore)return;this.historyLoadingMore=!0}else this.historyLoading=!0;this.historyError=``,this.historyLoginNeeded=!1;try{let r=await Y(`/__card-history/${encodeURIComponent(this.cardId)}?pageNo=${e}&pageSize=30`),i=await r.json().catch(()=>({}));if(this.cardId!==n)return;if(i&&i.needCredentials){this.historyList.length||(this.historyLoginNeeded=!0);return}if(!r.ok||!i||!i.ok)throw Error(i&&(i.message||i.error)||`HTTP `+r.status);this.historyList=t?this.historyList.concat(i.list||[]):i.list||[],this.historyTotal=i.totalNums||0,this.historyTotalPages=i.totalPages||1,this.historyPage=e,this.historyLoadedFor=this.cardId,this._saveHistoryToCache()}catch(e){(t||!this.historyList.length)&&(this.historyError=e&&e.message||`查询失败`)}finally{this.historyLoading=!1,this.historyLoadingMore=!1}},reloadCardHistory(){this.historyLoading||this.historyLoadingMore||(this.historyLoadedFor=``,this.fetchCardHistoryPage(1))},loadMoreCardHistory(){this.historyPage>=this.historyTotalPages||this.fetchCardHistoryPage(this.historyPage+1)},openHistoryPreview(e){e&&(this.historyPreview=e)},onThumbError(e){let t=e.target;t&&t.parentNode&&t.parentNode.classList.add(`hist__thumb--broken`),t&&(t.style.display=`none`)},historyDateGroup(e){let t=this.parseHistoryTime(e);if(!t)return{key:`unknown`,label:`时间未知`};let n=new Date,r=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),i=Math.round((r(n)-r(t))/864e5);return i<=0?{key:`today`,label:`今天`}:i===1?{key:`yesterday`,label:`昨天`}:{key:`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`,label:`${t.getMonth()+1} 月 ${t.getDate()} 日`}},formatRelTime(e){let t=this.parseHistoryTime(e);if(!t)return``;let n=Date.now()-t.getTime();return n<0?``:n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)} 分钟前`:n<864e5?`${Math.floor(n/36e5)} 小时前`:n<2592e6?`${Math.floor(n/864e5)} 天前`:e.slice(0,10)},parseHistoryTime(e){if(!e||typeof e!=`string`)return null;let t=new Date(e.replace(` `,`T`));return isNaN(t.getTime())?null:t},histTagClass(e){return e?e.indexOf(`新增`)===0?`hist__tag--ok`:e.indexOf(`移除`)===0?`hist__tag--danger`:e===`初始版本`?`hist__tag--accent`:e===`结构未变`?`hist__tag--muted`:`hist__tag--warn`:``},onAddNode(e){this.$emit(`add-node`,e)},onMoveNode(e){this.$emit(`move-node`,e)},onHoverNode(e){this.$emit(`hover-node`,e)},clearEventLogs(){this.rt.clearEventLogs()},async startSvcLog(){this.svcLogFollow=!0,await this.pullSvcLogHistory(0),!this._svcUnsub&&(this._svcUnsub=nu(e=>this.appendSvcLogs(e&&e.lines),e=>{this.svcLogLive=e===`open`,e===`open`&&this.svcLogSeq&&this.pullSvcLogHistory(this.svcLogSeq)}))},stopSvcLog(){this._svcUnsub&&=(this._svcUnsub(),null),this.svcLogLive=!1},async pullSvcLogHistory(e){if(this.svcLogLoading)return;this.svcLogLoading=!0;let t=Math.max(Number(e)||0,this.svcLogFloor);try{let e=await ru({limit:Nv,since:t});if(this.svcLogErr=``,e&&e.enabled===!1)this.svcLogErr=`服务端已关闭日志流(CARDBUDDY_STREAM_LOGS=0)`;else{this.svcLogDropped=e&&e.dropped||0,e&&e.seq&&(this.svcLogSeq=Math.max(this.svcLogSeq,e.seq));let n=(e&&e.lines||[]).map(Iv);t?this.appendSvcLogs(n):this.svcLogs=n,this.scrollSvcToBottom(!0)}}catch(e){this.svcLogErr=e&&e.message||String(e)}finally{this.svcLogLoading=!1}},appendSvcLogs(e){let t=Array.isArray(e)?e:[];if(!t.length)return;let n=[];for(let e of t){let t=e&&e.html!=null?e:Iv(e),r=Number(t.seq)||0;r&&r<=this.svcLogSeq||(r&&(this.svcLogSeq=r),n.push(t))}if(!n.length)return;let r=this.svcLogs.concat(n);this.svcLogs=r.length>Nv?r.slice(r.length-Nv):r,this.svcLogFollow&&this.scrollSvcToBottom()},clearSvcLogs(){this.svcLogFloor=this.svcLogSeq,this.svcLogs=[],this.svcLogDropped=0},async copySvcLogs(){await yp(this.svcLogs.map(e=>e.plain).join(`
|
|
197
|
+
`;)r+=1;else if(e===`/`&&t[r+1]===`*`){let e=t.indexOf(`*/`,r+2);r=e===-1?i:e+2}else if(e===`;`||e===`,`)o(),r+=1;else if(/[A-Za-z_$]/.test(e)){let e=r;for(;e<i&&/[A-Za-z0-9_$]/.test(t[e]);)e+=1;let a=t.slice(r,e);t[s(e)]===`:`?n+=`"`+a+`"`:n+=a===`undefined`||a===`NaN`||a===`Infinity`?`null`:a,r=e}else if(e===`-`&&t.startsWith(`Infinity`,r+1))n+=`null`,r+=9;else if(/[0-9]/.test(e)||e===`-`&&/[0-9]/.test(t[r+1]||``)){let e=r;for(;e<i&&/[0-9eE+\-.]/.test(t[e]);)e+=1;let a=t.slice(r,e);t[s(e)]===`:`?n+=`"`+a+`"`:n+=a,r=e}else{if(e===`}`||e===`]`){let e=a();for(;e>=0&&n[e]===`,`;)n=n.slice(0,e)+n.slice(e+1),e=a()}n+=e,r+=1}}try{return{value:JSON.parse(n.trim()||`{}`)}}catch(e){return{error:e.message}}}function Fv(e){let t=/^\d{2}:\d{2}:\d{2}\.\d{3}\s+(INFO|OK\s|WARN|ERR)\b/.exec(e);if(t){let e=t[1].trim();return e===`ERR`?`error`:e===`WARN`?`warn`:e===`OK`?`ok`:`info`}return`info`}function Iv(e){let t=String(e&&e.text!=null?e.text:``),n=bv(t);return{seq:Number(e&&e.seq)||0,t:Number(e&&e.t)||0,level:Fv(n),plain:n,html:jv(t)}}function Lv(e,t){if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Lv(e[r],t[r]))return!1;return!0}function Rv(e){return e===void 0?void 0:JSON.parse(JSON.stringify(e))}var zv=`cardbuddy:history-cache:v1`,Bv=30,Vv=90;function Hv(){try{let e=JSON.parse(localStorage.getItem(zv)||`{}`);return e&&typeof e==`object`?e:{}}catch{return{}}}function Uv(e){try{localStorage.setItem(zv,JSON.stringify(e))}catch{}}var Wv={name:`DebugPanel`,components:{JsonTree:om,StateDiffPanel:Im,StructureTree:ch,NodeInspector:Vh,EventEditor:wg,PublishVersionsDialog:Zg,LogValue:k_,Dropdown:B_,ConfirmDialog:Ap,NumberStepper:J_,SetSegment:uv},props:{rt:{type:Object,required:!0},preview:{type:Object,default:null},schema:{type:Object,default:null},cardId:{type:String,default:``},reloadToken:{type:Number,default:0},cardCount:{type:Number,default:0},selectedNodeId:{type:String,default:``},moveCollapseToken:{type:Number,default:0},activeTab:{type:String,default:`vars`},metaRefreshToken:{type:Number,default:0},historyRefreshToken:{type:Number,default:0},devSvcClass:{type:String,default:`app__btn--warn`},devSvcTitle:{type:String,default:``},devSvcLabel:{type:String,default:``},devSvcConn:{type:String,default:``},chromeOff:{type:Boolean,default:!1},remoteLoggedIn:{type:Boolean,default:!1},hasCardSource:{type:Boolean,default:!1},historyRestoring:{type:Boolean,default:!1}},data(){return{copied:!1,copyTimer:null,copiedVar:null,varCopyTimer:null,errorPanel:``,eventTab:`log`,svcLogs:[],svcLogSeq:0,svcLogFloor:0,svcLogLive:!1,svcLogFollow:!0,svcLogDropped:0,svcLogLoading:!1,svcLogErr:``,svcCopied:!1,statePanelOpen:!1,panelH:this.loadPanelH(),panelDragging:!1,inspectingComp:null,inspectKey:0,editingEventComp:null,eventEditorKey:0,rawText:``,rawError:``,varsMode:`list`,varDlg:null,varDlgError:``,delVarTarget:null,schemaViewerOpen:!1,copiedSchemaText:!1,copiedCode:!1,schemaViewData:null,varTypeOptions:[{key:`string`,value:`字符串`},{key:`number`,value:`数字`},{key:`boolean`,value:`布尔`},{key:`array`,value:`数组`},{key:`object`,value:`对象`}],varBoolOptions:[{key:`true`,value:`true`},{key:`false`,value:`false`}],importMeta:null,remoteVersionLoading:!1,remoteVersionError:``,publishRecordsOpen:!1,historyLoading:!1,historyLoadingMore:!1,historyError:``,historyLoginNeeded:!1,historyList:[],historyTotal:0,historyTotalPages:1,historyPage:1,historyLoadedFor:``,historyPreview:``}},computed:{tabs(){let e=[{key:`vars`,label:`变量`},{key:`structure`,label:`组件结构`},{key:`meta`,label:`导入信息`}];return this.remoteLoggedIn&&this.hasCardSource&&e.push({key:`history`,label:`编辑记录`}),e},historyLatestId(){return this.historyList.length?this.historyList[0].id:``},historyGroups(){let e=[];for(let t of this.historyList){let n=this.historyDateGroup(t.createTime),r=e[e.length-1];r&&r.key===n.key||(r={key:n.key,label:n.label,items:[]},e.push(r)),r.items.push(t)}return e},historyNeedLogin(){return!!this.historyLoginNeeded},mocks(){return hv(this.schema)||{}},inputParams(){let e=this.schema&&this.schema.dictionary;return e&&Array.isArray(e.inputParams)?e.inputParams:[]},delVarRefs(){let e=this.delVarTarget==null?null:this.inputParams[this.delVarTarget];return this.scanVarRefs(e&&e.key)},delVarSeverity(){let e=this.delVarRefs;return e.binding+e.event+e.other>0?`danger`:`warn`},delVarConfirmText(){return this.delVarSeverity===`danger`?`仍要删除`:`删除`},delVarMessage(){let e=this.delVarTarget==null?null:this.inputParams[this.delVarTarget];if(!e)return``;let t=e.name&&e.name!==e.key?`(`+e.name+`)`:``,n=this.delVarRefs,r=n.binding+n.event+n.other;if(r>0){let i=[];return n.binding&&i.push(`绑定表达式 ${n.binding} 处`),n.event&&i.push(`事件脚本 ${n.event} 处`),n.other&&i.push(`其它文本 ${n.other} 处`),`变量「${e.key}」${t}仍被${i.join(`、`)}引用(共 ${r} 处)。删除后这些引用将取不到值,画布可能出现空白或执行报错,请先迁移再删除。`}return`变量「${e.key}」${t}当前未被任何绑定表达式或事件脚本引用。删除后变量定义与 mock 值一并移除,不可恢复。`},svcEmptyText(){return this.devSvcConn===`unconfigured`?`未配置本地开发服务`:this.devSvcConn===`open`?`暂无服务日志`:`本地服务未连接`},svcEmptyHint(){return this.svcLogErr?`取历史失败:`+this.svcLogErr+`(本地服务需升级到支持 /__logs 的 cardbuddy 版本)`:this.devSvcConn===`unconfigured`?`在顶栏「连接」中配置本地开发服务地址后,这里会实时镜像该服务终端的彩色输出`:this.devSvcConn===`open`?`cardbuddy 终端的输出(含配色)会实时镜像到这里;试试同步、保存、校验或截图`:`连接恢复后自动继续;服务端保留最近 800 行历史,重连不丢`},scopeText(){this.rt.revision;try{return JSON.stringify(this.rt.rootScope,null,2)}catch{return`(无法序列化)`}},bindingErrors(){return this.rt.errorRev,this.rt.errors.slice()},eventErrors(){return this.rt.errorRev,this.rt.eventErrors.slice()},logs(){return this.rt.logRev,this.rt.eventLogs.slice()},eventCount(){return this.eventErrors.length+this.logs.length},eventStatusClass(){return this.eventErrors.length?`is-error`:this.logs.length?`is-log`:`is-ok`},eventStatusTitle(){return this.eventErrors.length?`查看事件(含错误)`:this.logs.length?`查看事件(含日志)`:`无事件记录`},panelErrors(){return this.errorPanel===`event`?this.eventErrors:this.bindingErrors},compNames(){let e={};for(let t in ju)e[t]=ju[t].name||t;return e.Root=`根`,e},canPaste(){return!!ed.node},schemaText(){if(!this.schema)return``;try{let e={...this.schema};return this.rt&&this.rt.rootScope&&(e.data=this.rt.rootScope),JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t,2)}catch{return`(无法序列化)`}},schemaTextLines(){return this.schemaText?this.schemaText.split(`
|
|
198
|
+
`).length:0},schemaTextBytes(){let e=new Blob([this.schemaText]).size;return e>=1024?(e/1024).toFixed(1)+` KB`:e+` B`},stateDirty(){return this.rt.revision,!Lv(this.rt.state,this.rt.rootScope)}},watch:{errorPanel(e){e===`svclog`?this.startSvcLog():this.stopSvcLog()},cardId:{immediate:!0,handler(){this.rawError=``,this.destroyJar(),this.varsMode=`list`,this.varDlg=null,this.varDlgError=``,this.delVarTarget=null,this.inspectingComp=null,this.editingEventComp=null,this.importMeta=null,this.remoteVersionLoading=!1,this.remoteVersionError=``,this.resetCardHistory(),this.schemaViewerOpen=!1,this.maybeFetchMeta()}},reloadToken(){this.maybeFetchMeta()},metaRefreshToken(e,t){e!==t&&this.activeTab===`meta`&&this.fetchImportMeta()},historyRefreshToken(e,t){e===t||this.historyLoading||this.historyLoadingMore||(this._dropHistoryCache(this.historyLoadedFor||this.cardId),this.historyLoadedFor=``,this.activeTab===`history`&&this.fetchCardHistoryPage(1))},activeTab(e){e===`meta`&&this.fetchImportMeta(),e===`history`&&this.maybeFetchCardHistory(),e!==`vars`&&(this.varsMode=`list`,this.rawError=``,this.destroyJar(),this.varDlg=null)},varDlg(e){e?(this.varDlgError=``,this.isComplexType(e.form.type)&&this.$nextTick(()=>this.initDlgJar())):this.destroyDlgJar()},"varDlg.form.type"(e,t){this.varDlg&&e!==t&&(this.varDlg.form.defaultValue=this.normalizeDefaultText(e,this.varDlg.form.defaultValue),this.isComplexType(e)?this.$nextTick(()=>this.initDlgJar()):this.destroyDlgJar())},varsMode(e){e===`mock`?(this.seedRawFromMocks(),this.$nextTick(()=>this.initJar())):(this.rawError=``,this.destroyJar())},schema(){this.inspectingComp=null,this.editingEventComp=null,this.varsMode===`mock`&&this.seedRawFromMocks()}},mounted(){let e=this.panelH;this.$refs.statePanel&&(this.$refs.statePanel.style.height=e+`px`),this.$refs.errPanel&&(this.$refs.errPanel.style.height=e+`px`)},beforeUnmount(){this.destroyJar(),this.destroyDlgJar(),this.cancelResize(),this.stopSvcLog()},methods:{toggleStatePanel(){this.statePanelOpen=!this.statePanelOpen,this.statePanelOpen&&(this.errorPanel=``)},toggleErrorPanel(e){this.errorPanel=this.errorPanel===e?``:e,this.errorPanel&&(this.statePanelOpen=!1,e===`event`&&(this.eventTab=this.eventErrors.length?`err`:`log`))},startResize(e){if(e.target.closest(`button`))return;this.panelDragging=!0;let t=e.clientY,n=this.panelH,r=Math.max(120,Math.round(window.innerHeight*.6)),i=e=>{this.panelH=e,this.$refs.statePanel&&(this.$refs.statePanel.style.height=e+`px`),this.$refs.errPanel&&(this.$refs.errPanel.style.height=e+`px`)},a=e=>{let a=t-e.clientY;i(Math.min(r,Math.max(120,n+a)))},o=()=>{document.body.style.cursor=``,document.body.style.userSelect=``,document.removeEventListener(`mousemove`,a),document.removeEventListener(`mouseup`,o),this._resizeMove=this._resizeUp=null,this.panelDragging=!1,this.savePanelH()};this._resizeMove=a,this._resizeUp=o,document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,a),document.addEventListener(`mouseup`,o)},cancelResize(){this._resizeMove&&document.removeEventListener(`mousemove`,this._resizeMove),this._resizeUp&&document.removeEventListener(`mouseup`,this._resizeUp),this._resizeMove=this._resizeUp=null,this.panelDragging=!1,document.body.style.cursor=``,document.body.style.userSelect=``},loadPanelH(){try{let e=localStorage.getItem(`cardbuddy:debug-panel-height`);if(e!=null){let t=parseInt(e,10);if(!Number.isNaN(t)){let e=Math.max(120,Math.round(window.innerHeight*.6));return Math.min(e,Math.max(120,t))}}}catch{}return 240},savePanelH(){try{localStorage.setItem(`cardbuddy:debug-panel-height`,String(Math.round(this.panelH)))}catch{}},initJar(){let e=this.$refs.rawEditor;if(!e)return;this.destroyJar();let t=e=>{e.innerHTML=pv.default.highlight(e.textContent,pv.default.languages.json,`json`)};this._jar=fv(e,t,{tab:` `,indentOn:/[({[]$/,addClosing:!0,history:!0}),this._jar.updateCode(this.rawText||``),this._jar.onUpdate(e=>{this.rawText=e,this.rawError&&=``}),window.__rawEditor=this._jar,this.$nextTick(()=>e.focus())},destroyJar(){this._jar&&this._jar.destroy&&this._jar.destroy(),this._jar=null,typeof window<`u`&&window.__rawEditor&&(window.__rawEditor=null)},initDlgJar(){let e=this.$refs.dlgCode;if(!e)return;this.destroyDlgJar();let t=e=>{e.innerHTML=pv.default.highlight(e.textContent,pv.default.languages.json,`json`)};this._dlgJar=fv(e,t,{tab:` `,indentOn:/[({[]$/,addClosing:!0,history:!0}),this._dlgJar.updateCode(this.varDlg?this.varDlg.form.defaultValue:``),this._dlgJar.onUpdate(e=>{this.varDlg&&(this.varDlg.form.defaultValue=e),this.varDlgError&&=``}),window.__dlgEditor=this._dlgJar},destroyDlgJar(){this._dlgJar&&this._dlgJar.destroy&&this._dlgJar.destroy(),this._dlgJar=null,typeof window<`u`&&window.__dlgEditor&&(window.__dlgEditor=null)},complexSeed(e,t){let n=e===`array`?`[]`:`{}`,r=String(t??``).trim();if(!r)return n;try{let t=JSON.parse(r);return(e===`array`?Array.isArray(t):t&&typeof t==`object`)?JSON.stringify(t,null,2):n}catch{return n}},normalizeDefaultText(e,t){if(this.isComplexType(e))return this.complexSeed(e,t);let n=String(t??``).trim();return e===`number`?n!==``&&Number.isFinite(Number(n))?String(Number(n)):``:e===`boolean`?/^(true|1)$/i.test(n)?`true`:`false`:String(t??``)},saveRaw(){let e=Pv(this.rawText);if(e.error){this.rawError=`JSON 格式错误:`+e.error;return}if(e.value===null||typeof e.value!=`object`||Array.isArray(e.value)){this.rawError=`变量 mock 必须是 JSON 对象({ ... })`;return}let t=this.schema;if(!t){this.rawError=`当前未载入卡片`;return}t.dictionary&&typeof t.dictionary==`object`||(t.dictionary={dictionaryList:[],inputParams:[]}),t.dictionary.mocks=e.value,this.rt.setRootScope(mv(t,{includeMocks:!0}));let n=JSON.stringify(e.value,null,2);this.rawText=n,this._jar&&this._jar.updateCode(n),this.$nextTick(()=>this.onCommit()),this.rawError=``},async copyScope(){await yp(this.rawText||``)&&(this.copied=!0,this.copyTimer&&clearTimeout(this.copyTimer),this.copyTimer=setTimeout(()=>{this.copied=!1},1500))},onEditEvent(e){this.editingEventComp=e,this.eventEditorKey++},onApply(){this.$emit(`schema-changed`)},onCommit(){this.$emit(`schema-commit`)},hasMock(e){return gv(this.mocks,e.key)},async copyVarName(e,t){let n=e&&e.key?String(e.key):``;n&&await yp(n)&&(this.copiedVar=t,this.varCopyTimer&&clearTimeout(this.varCopyTimer),this.varCopyTimer=setTimeout(()=>{this.copiedVar===t&&(this.copiedVar=null)},1500))},async copyCardCode(){let e=this.importMeta&&this.importMeta.cardCode!=null?String(this.importMeta.cardCode):``;e&&await yp(e)&&(this.copiedCode=!0,this._codeCopyTimer&&clearTimeout(this._codeCopyTimer),this._codeCopyTimer=setTimeout(()=>{this.copiedCode=!1},1500))},isComplexType(e){return e===`array`||e===`object`},scalarPlaceholder(e){return e===`number`?`数字,如 0 / 99.5`:`字符串原样保存`},onVarTypeChange(e){this.varDlg&&(this.varDlg.form.type=e)},openVarDlg(e){let t=e==null?null:this.inputParams[e],n=t&&t.type||`string`,r=t?t.defaultValue:void 0,i=``;r!=null&&(i=typeof r==`object`?JSON.stringify(r,null,2):String(r)),i=this.normalizeDefaultText(n,i),this.varDlgError=``,this.varDlg={index:e,form:{key:t&&t.key||``,name:t&&t.name||``,type:n,defaultValue:i,desc:t&&t.desc||``}}},parseDefault(e,t){let n=String(t??``).trim();if(this.isComplexType(e)){if(!n)return{value:e===`array`?[]:{}};let t=Pv(n);if(t.error)return{error:`默认值不是合法 JSON:`+t.error};let r=t.value;return e===`array`&&!Array.isArray(r)?{error:`默认值需为 JSON 数组`}:e===`object`&&(typeof r!=`object`||!r||Array.isArray(r))?{error:`默认值需为 JSON 对象`}:{value:r}}if(e===`number`){if(!n)return{value:0};let e=Number(n);return Number.isFinite(e)?{value:e}:{error:`默认值不是合法数字`}}return e===`boolean`?n?n===`true`||n===`1`?{value:!0}:n===`false`||n===`0`?{value:!1}:{error:`布尔默认值仅接受 true / false`}:{value:!1}:{value:String(t??``)}},confirmVarDlg(){let e=this.varDlg;if(!e)return;let t=e.form,n=String(t.key||``).trim(),r=String(t.name||``).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n)){this.varDlgError=`变量名需为字母 / 下划线开头的英文标识(绑定以 $key 引用)`;return}if(this.inputParams.some((t,r)=>t.key===n&&r!==e.index)){this.varDlgError=`已存在同名变量 `+n;return}if(!r){this.varDlgError=`中文名不能为空`;return}let i=this.parseDefault(t.type,t.defaultValue);if(i.error){this.varDlgError=i.error;return}if(this.isComplexType(t.type)){let e=JSON.stringify(i.value,null,2);t.defaultValue=e,this._dlgJar&&this._dlgJar.updateCode(e)}let a=this.schema;if(!a){this.varDlgError=`当前未载入卡片`;return}a.dictionary&&typeof a.dictionary==`object`||(a.dictionary={dictionaryList:[],inputParams:[]}),Array.isArray(a.dictionary.inputParams)||(a.dictionary.inputParams=[]);let o=a.dictionary.inputParams,s=this.rt.rootScope,c=hv(a)||{},l=Rv(i.value);if(e.index==null)o.push({key:n,name:r,type:t.type,defaultValue:Rv(l),desc:String(t.desc||``),rule:{type:``,options:{}},children:[]}),gv(c,n)||(s[n]=l);else{let i=o[e.index];if(!i)return;let a=i.key;i.key=n,i.name=r,i.type=t.type,i.desc=String(t.desc||``),i.defaultValue=Rv(l),a!==n&&(Object.prototype.hasOwnProperty.call(c,a)&&(c[n]=c[a],delete c[a]),s&&Object.prototype.hasOwnProperty.call(s,a)&&delete s[a]),gv(c,n)||(s[n]=l)}this.varDlg=null,this.onCommit()},askDeleteVar(e){this.delVarTarget=e},scanVarRefs(e){let t={binding:0,event:0,other:0},n=this.schema;if(!e||!n||typeof n!=`object`)return t;let r=String(e).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`\\$`+r+`(?![A-Za-z0-9_$])`),a=RegExp(`state\\s*(?:\\.\\s*`+r+`(?![A-Za-z0-9_$])|\\[\\s*['"]`+r+`['"]\\s*\\])`),o=e=>i.test(e)||a.test(e),s=e=>{if(e!=null){if(Array.isArray(e))for(let t of e)s(t);else if(typeof e==`object`){for(let[n,r]of Object.entries(e))if(n!==`dictionary`&&n!==`compiled`){if(typeof r==`string`){if(!o(r))continue;n===`itemValue`?t.binding+=1:n===`code`?t.event+=1:t.other+=1}else s(r)}}}};return s(n),t},confirmDeleteVar(){let e=this.delVarTarget==null?null:this.inputParams[this.delVarTarget];if(this.delVarTarget=null,!e||!this.schema||!this.schema.dictionary)return;let t=this.schema.dictionary.inputParams||[],n=t.indexOf(e);n>=0&&t.splice(n,1);let r=hv(this.schema)||{};Object.prototype.hasOwnProperty.call(r,e.key)&&delete r[e.key];let i=this.rt.rootScope;i&&Object.prototype.hasOwnProperty.call(i,e.key)&&delete i[e.key],this.onCommit()},leaveMock(){this.varsMode=`list`},seedRawFromMocks(){this.rawError=``;try{this.rawText=JSON.stringify(this.mocks,null,2)}catch(e){this.rawText=``,this.rawError=`无法序列化当前数据:`+(e&&e.message);return}this._jar&&this._jar.updateCode(this.rawText)},onInspect(e){this.inspectingComp=e,this.inspectKey++},openSchemaViewer(){try{let e={...this.schema||{}};this.schema&&this.rt&&this.rt.rootScope&&(e.data=this.rt.rootScope),this.schemaViewData=this.schema?JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)):null}catch{this.schemaViewData=null}this.schemaViewerOpen=!0,this.$nextTick(()=>{let e=this.$refs.schemaViewerEl;e&&e.focus&&e.focus()})},onSchemaViewerKey(e){e.key===`Escape`?(e.preventDefault(),this.schemaViewerOpen=!1):e.key!==`c`&&e.key!==`C`||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),this.copySchemaText())},async copySchemaText(){this.schema&&this.schemaText&&await yp(this.schemaText)&&(this.copiedSchemaText=!0,clearTimeout(this._schemaCopyTimer),this._schemaCopyTimer=setTimeout(()=>{this.copiedSchemaText=!1},1500))},onSelectNode(e){this.$emit(`select-node`,e)},_saveHistoryToCache(){if(!this.historyLoadedFor||!this.historyList.length)return;this._historyCache||={};let e={at:Date.now(),list:this.historyList.slice(0,Vv),total:this.historyTotal,totalPages:this.historyTotalPages,page:this.historyPage};this._historyCache[this.historyLoadedFor]=e;let t=Hv();t[this.historyLoadedFor]=e;let n=Object.keys(t);if(n.length>Bv){n.sort((e,n)=>(t[e].at||0)-(t[n].at||0));for(let e of n.slice(0,n.length-Bv))delete t[e]}Uv(t)},_loadHistoryCache(e){if(!e)return null;if(this._historyCache&&this._historyCache[e])return this._historyCache[e];let t=Hv()[e];return!t||!t.list||!t.list.length?null:(this._historyCache||={},this._historyCache[e]=t,t)},_dropHistoryCache(e){if(!e)return;this._historyCache&&delete this._historyCache[e];let t=Hv();t[e]&&(delete t[e],Uv(t))},resetCardHistory(){this._saveHistoryToCache(),this.historyLoading=!1,this.historyLoadingMore=!1,this.historyError=``,this.historyLoginNeeded=!1,this.historyList=[],this.historyTotal=0,this.historyTotalPages=1,this.historyPage=1,this.historyLoadedFor=``,this.historyPreview=``},maybeFetchCardHistory(){if(!this.cardId||this.historyLoading||this.historyLoadingMore||this.historyLoadedFor===this.cardId)return;let e=this._loadHistoryCache(this.cardId);e?(this.historyList=e.list.slice(),this.historyTotal=e.total,this.historyTotalPages=e.totalPages,this.historyPage=e.page,this.historyLoadedFor=this.cardId,this.historyError=``,this.historyLoginNeeded=!1,this.historyPreview=``):this.fetchCardHistoryPage(1)},async fetchCardHistoryPage(e){let t=e>1,n=this.cardId;if(t){if(this.historyLoadingMore)return;this.historyLoadingMore=!0}else this.historyLoading=!0;this.historyError=``,this.historyLoginNeeded=!1;try{let r=await Y(`/__card-history/${encodeURIComponent(this.cardId)}?pageNo=${e}&pageSize=30`),i=await r.json().catch(()=>({}));if(this.cardId!==n)return;if(i&&i.needCredentials){this.historyList.length||(this.historyLoginNeeded=!0);return}if(!r.ok||!i||!i.ok)throw Error(i&&(i.message||i.error)||`HTTP `+r.status);this.historyList=t?this.historyList.concat(i.list||[]):i.list||[],this.historyTotal=i.totalNums||0,this.historyTotalPages=i.totalPages||1,this.historyPage=e,this.historyLoadedFor=this.cardId,this._saveHistoryToCache()}catch(e){(t||!this.historyList.length)&&(this.historyError=e&&e.message||`查询失败`)}finally{this.historyLoading=!1,this.historyLoadingMore=!1}},reloadCardHistory(){this.historyLoading||this.historyLoadingMore||(this.historyLoadedFor=``,this.fetchCardHistoryPage(1))},loadMoreCardHistory(){this.historyPage>=this.historyTotalPages||this.fetchCardHistoryPage(this.historyPage+1)},openHistoryPreview(e){e&&(this.historyPreview=e)},onThumbError(e){let t=e.target;t&&t.parentNode&&t.parentNode.classList.add(`hist__thumb--broken`),t&&(t.style.display=`none`)},historyDateGroup(e){let t=this.parseHistoryTime(e);if(!t)return{key:`unknown`,label:`时间未知`};let n=new Date,r=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),i=Math.round((r(n)-r(t))/864e5);return i<=0?{key:`today`,label:`今天`}:i===1?{key:`yesterday`,label:`昨天`}:{key:`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`,label:`${t.getMonth()+1} 月 ${t.getDate()} 日`}},formatRelTime(e){let t=this.parseHistoryTime(e);if(!t)return``;let n=Date.now()-t.getTime();return n<0?``:n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)} 分钟前`:n<864e5?`${Math.floor(n/36e5)} 小时前`:n<2592e6?`${Math.floor(n/864e5)} 天前`:e.slice(0,10)},parseHistoryTime(e){if(!e||typeof e!=`string`)return null;let t=new Date(e.replace(` `,`T`));return isNaN(t.getTime())?null:t},histTagClass(e){return e?e.indexOf(`新增`)===0?`hist__tag--ok`:e.indexOf(`移除`)===0?`hist__tag--danger`:e===`初始版本`?`hist__tag--accent`:e===`结构未变`?`hist__tag--muted`:`hist__tag--warn`:``},onAddNode(e){this.$emit(`add-node`,e)},onMoveNode(e){this.$emit(`move-node`,e)},onHoverNode(e){this.$emit(`hover-node`,e)},clearEventLogs(){this.rt.clearEventLogs()},async startSvcLog(){this.svcLogFollow=!0,await this.pullSvcLogHistory(0),!this._svcUnsub&&(this._svcUnsub=nu(e=>this.appendSvcLogs(e&&e.lines),e=>{this.svcLogLive=e===`open`,e===`open`&&this.svcLogSeq&&this.pullSvcLogHistory(this.svcLogSeq)}))},stopSvcLog(){this._svcUnsub&&=(this._svcUnsub(),null),this.svcLogLive=!1},async pullSvcLogHistory(e){if(this.svcLogLoading)return;this.svcLogLoading=!0;let t=Math.max(Number(e)||0,this.svcLogFloor);try{let e=await ru({limit:Nv,since:t});if(this.svcLogErr=``,e&&e.enabled===!1)this.svcLogErr=`服务端已关闭日志流(CARDBUDDY_STREAM_LOGS=0)`;else{this.svcLogDropped=e&&e.dropped||0,e&&e.seq&&(this.svcLogSeq=Math.max(this.svcLogSeq,e.seq));let n=(e&&e.lines||[]).map(Iv);t?this.appendSvcLogs(n):this.svcLogs=n,this.scrollSvcToBottom(!0)}}catch(e){this.svcLogErr=e&&e.message||String(e)}finally{this.svcLogLoading=!1}},appendSvcLogs(e){let t=Array.isArray(e)?e:[];if(!t.length)return;let n=[];for(let e of t){let t=e&&e.html!=null?e:Iv(e),r=Number(t.seq)||0;r&&r<=this.svcLogSeq||(r&&(this.svcLogSeq=r),n.push(t))}if(!n.length)return;let r=this.svcLogs.concat(n);this.svcLogs=r.length>Nv?r.slice(r.length-Nv):r,this.svcLogFollow&&this.scrollSvcToBottom()},clearSvcLogs(){this.svcLogFloor=this.svcLogSeq,this.svcLogs=[],this.svcLogDropped=0},async copySvcLogs(){await yp(this.svcLogs.map(e=>e.plain).join(`
|
|
199
199
|
`))&&(this.svcCopied=!0,this._svcCopiedTimer&&clearTimeout(this._svcCopiedTimer),this._svcCopiedTimer=setTimeout(()=>{this.svcCopied=!1},1200))},toggleSvcFollow(){this.svcLogFollow=!this.svcLogFollow,this.svcLogFollow&&this.scrollSvcToBottom(!0)},scrollSvcToBottom(e){(e||this.svcLogFollow)&&this.$nextTick(()=>{let e=this.$refs.errBody;e&&(e.scrollTop=e.scrollHeight)})},onErrBodyScroll(){if(this.errorPanel!==`svclog`)return;let e=this.$refs.errBody;e&&(this.svcLogFollow=e.scrollHeight-e.scrollTop-e.clientHeight<24)},fmtTime(e){if(!e)return`--:--:--`;let t=new Date(e),n=e=>String(e).padStart(2,`0`);return n(t.getHours())+`:`+n(t.getMinutes())+`:`+n(t.getSeconds())},maybeFetchMeta(){this.activeTab===`meta`&&this.fetchImportMeta()},async fetchImportMeta(){let e=this.cardId;if(!e)this.importMeta=null;else try{let t=await Y(`/__import-meta/${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();this.importMeta=e.meta||null}else this.importMeta=null}catch{this.importMeta=null}},async refreshRemoteVersion(){if(this.importMeta&&this.importMeta.cardId){this.remoteVersionLoading=!0,this.remoteVersionError=``;try{let e=await Y(`/__card-version/${encodeURIComponent(this.cardId)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!e.ok){let t=await e.json().catch(()=>({}));if(t.needCredentials){this.remoteVersionError=`需先登录远端后查询`;return}throw Error(t.message||`HTTP `+e.status)}let t=await e.json();if(!t.ok)throw Error(t.message||`查询失败`);await this.fetchImportMeta()}catch(e){this.remoteVersionError=e&&e.message?e.message:`查询失败`}finally{this.remoteVersionLoading=!1}}},formatTime(e){if(!e)return`-`;try{return new Date(e).toLocaleString(`zh-CN`,{hour12:!1})}catch{return e}}}},Gv={class:`debug`},Kv={class:`debug__tabs`},qv=[`onClick`],Jv={class:`debug__body`},Yv={key:0,class:`vars`},Xv={key:0,class:`empty-state`},Zv={key:1,class:`vars__list`},Qv=[`onDblclick`],$v={class:`vars__key`},ey={key:0,class:`vars__mock`,title:`已配置 mock(dictionary.mocks,设计期覆盖默认值)`},ty=[`title`],ny=[`disabled`,`title`,`onClick`],ry={key:0,class:`debug__copy-ok`},iy={key:1,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},ay=[`onClick`],oy=[`onClick`],sy={class:`vars__fabs`},cy={class:`debug__scope-wrap debug__scope-wrap--raw`},ly={class:`vars__mockhead`},uy={class:`debug__scope-raw`},dy={key:0,class:`raw-err-bar`,role:`alert`},fy={class:`raw-err-bar__msg`},py={ref:`rawEditor`,class:`debug__raw-editor`,spellcheck:`false`},my={class:`debug__scope-foot`},hy={key:0,class:`debug__copied`},gy={key:1,class:`structab`},_y={class:`structab__fabs`},vy=[`title`],yy={key:0,class:`debug__copy-ok`},by={key:1,class:`debug__copy-icn`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},xy={key:2,class:`debug__meta`},Sy={key:0,class:`empty-state`},Cy={key:1,class:`debug__meta-list`},wy={class:`debug__meta-row`},Ty={class:`debug__meta-muted`},Ey={class:`debug__meta-row`},Dy={class:`debug__meta-row`},Oy={class:`debug__meta-row`},ky=[`title`],Ay={key:0,class:`debug__copy-ok`},jy={key:1,class:`debug__meta-copy-icn`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},My={key:0,class:`debug__meta-row`},Ny={class:`debug__meta-row`},Py={class:`debug__meta-row`},Fy={class:`debug__meta-row`},Iy={class:`debug__meta-row`},Ly={key:0,class:`debug__tag debug__tag--warn`,title:`本地已编辑,偏离导入镜像`},Ry={key:1,class:`debug__tag debug__tag--ok`},zy={key:1,class:`debug__meta-row`},By={key:0,class:`debug__tag debug__tag--ok`},Vy={key:1,class:`debug__tag debug__tag--err`},Hy={class:`debug__meta-muted`},Uy={key:2,class:`debug__meta-err`},Wy={class:`debug__meta-row`},Gy={key:0,class:`debug__meta-muted`},Ky={class:`debug__version`},qy={key:0,class:`debug__meta-muted`},Jy={key:2,class:`debug__meta-err`},Yy={key:3,class:`debug__meta-muted`},Xy={class:`hist`},Zy={class:`hist__bar`},Qy={key:0,class:`hist__count`},$y=[`disabled`],eb={key:0,class:`empty-state`},tb={key:1,class:`hist__loading`},nb={key:2,class:`empty-state`},rb={class:`empty-state__hint`},ib={key:3,class:`empty-state`},ab={key:4,class:`hist__timeline`},ob={class:`hist__group-label`},sb={class:`hist__card`},cb={class:`hist__card-head`},lb={class:`hist__time`},ub={class:`hist__rel`},db={class:`hist__id`,title:`远端版本记录 ID`},fb={key:0,class:`hist__badge`},pb=[`disabled`,`onClick`],mb={class:`hist__card-body`},hb=[`onClick`],gb=[`src`],_b={key:1,class:`hist__thumb hist__thumb--none`},vb={class:`hist__info`},yb={class:`hist__tags`},bb={class:`hist__meta`},xb={key:0},Sb={key:1},Cb=[`disabled`],wb=[`src`],Tb={class:`statepanel`,ref:`statePanel`},Eb={class:`statepanel__head`},Db={class:`statepanel__tree`},Ob={class:`statusbar`},kb=[`title`],Ab=[`title`],jb={class:`statusbar__icon`},Mb=[`title`],Nb={class:`statusbar__icon`},Pb=[`title`],Fb={class:`statusbar__item statusbar__item--right`},Ib={class:`statusbar__item statusbar__item--right`},Lb={class:`errpanel`,ref:`errPanel`},Rb={class:`errpanel__head`},zb={class:`errpanel__title`},Bb={key:0,class:`svclog__meta`},Vb={key:0},Hb={key:1,class:`errpanel__tabs`},Ub={class:`errpanel__tab-count`},Wb={class:`errpanel__actions`},Gb=[`disabled`],Kb=[`disabled`,`title`],qb=[`title`],Jb=[`disabled`],Yb={key:0,class:`empty-state`},Xb={class:`debug__empty`},Zb={class:`empty-state__hint`},Qb={key:1,class:`svclog`},$b=[`innerHTML`],ex={key:0,class:`empty-state`},tx={key:1,class:`debug__list debug__list--log`},nx={class:`log__time`},rx={class:`log__content`},ix={key:1,class:`log__empty`},ax={key:0,class:`empty-state`},ox={key:1,class:`debug__list`},sx={class:`err__time`},cx={class:`debug__kind`},lx={class:`err__msg`},ux={key:0,class:`empty-state`},dx={key:1,class:`debug__list`},fx={class:`err__time`},px={class:`debug__kind`},mx={class:`err__msg`},hx={class:`schemaview__title`},gx={class:`schemaview__card`},_x={class:`schemaview__meta`},vx={class:`schemaview__acts`},yx=[`title`],bx={key:0,class:`debug__copy-ok`},xx={key:1,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Sx={key:0,class:`schemaview__tree`},Cx={key:1,class:`empty-state`},wx=[`aria-label`],Tx={class:`ni-head`},Ex={class:`ni-title`},Dx={class:`ni-cls`},Ox={class:`ni-body`},kx={class:`ni-scroll`},Ax={class:`ni-field-row`},jx={class:`ni-field-row`},Mx={class:`ni-field-row`},Nx={key:0,class:`vars-type-pick`},Px={class:`vars-type-pick__name`},Fx={class:`vars-type-pick`},Ix={class:`vars-type-pick__name`},Lx={class:`ni-field-row ni-field-row--top`},Rx={key:0,ref:`dlgCode`,class:`vars-dlg__code`,spellcheck:`false`},zx=[`placeholder`],Bx={class:`ni-field-row ni-field-row--top`},Vx={key:0,class:`vars-dlg__err`},Hx={class:`ni-foot`},Ux={class:`ni-foot-btns`};function Wx(e,t,n,r,i,a){let o=R(`StructureTree`),s=R(`NodeInspector`),c=R(`EventEditor`),l=R(`PublishVersionsDialog`),u=R(`StateDiffPanel`),d=R(`LogValue`),f=R(`JsonTree`),p=R(`Dropdown`),m=R(`NumberStepper`),h=R(`SetSegment`),g=R(`ConfirmDialog`);return V(),H(`aside`,Gv,[W(`div`,Kv,[(V(!0),H(B,null,z(a.tabs,t=>(V(),H(`button`,{key:t.key,class:j([`debug__tab`,{"debug__tab--active":n.activeTab===t.key}]),onClick:n=>e.$emit(`update:activeTab`,t.key)},M(t.label),11,qv))),128))]),W(`div`,Jv,[n.activeTab===`vars`?(V(),H(B,{key:0},[q(` 变量列表视图:管理 schema.dictionary.inputParams(变量属性的增 / 删 / 改) `),i.varsMode===`list`?(V(),H(`div`,Yv,[q(` 空态占位:与导入信息 / API 调用面板同款语言 `),a.inputParams.length?(V(),H(`ul`,Zv,[(V(!0),H(B,null,z(a.inputParams,(e,n)=>(V(),H(`li`,{key:e.key||n,class:`vars__row`,onDblclick:e=>a.openVarDlg(n)},[W(`span`,$v,M(e.key),1),W(`span`,{class:j([`vars__type`,`vars__type--`+(e.type||`string`)])},M(e.type||`string`),3),a.hasMock(e)?(V(),H(`span`,ey,`m`)):q(`v-if`,!0),W(`span`,{class:`vars__name`,title:[e.name,e.desc].filter(Boolean).join(` · `)},M(e.name||e.desc||``),9,ty),q(` 操作区双击不冒泡到行:连点复制/删除/编辑钮时不误开编辑弹窗 `),W(`span`,{class:`vars__ops`,onDblclick:t[0]||=J(()=>{},[`stop`])},[q(` 复制变量名:复制当前变量 key(绑定以 $key 引用),无变量名时禁用 `),W(`button`,{class:`vars__op`,type:`button`,disabled:!e.key,title:i.copiedVar===n?`已复制 ✓`:e.key?`复制变量名`:`暂无变量名`,onClick:t=>a.copyVarName(e,n)},[i.copiedVar===n?(V(),H(`span`,ry,`✓`)):(V(),H(`svg`,iy,[...t[63]||=[W(`use`,{href:`#icon-copy-sm`},null,-1)]]))],8,ny),W(`button`,{class:`vars__op`,type:`button`,title:`编辑变量`,onClick:e=>a.openVarDlg(n)},[...t[64]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-gear`})],-1)]],8,ay),W(`button`,{class:`vars__op vars__op--del`,type:`button`,title:`删除变量`,onClick:e=>a.askDeleteVar(n)},[...t[65]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-trash`})],-1)]],8,oy)],32)],40,Qv))),128))])):(V(),H(`div`,Xv,[...t[62]||=[_s(`<span class="empty-state__badge" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-settings"></use></svg></span><p class="debug__empty">暂无变量</p><p class="empty-state__hint">变量与 schema.dictionary.inputParams 一一对应:绑定表达式以 $key 引用,mock 值供设计期预览</p>`,3)]])),q(` 右下角悬浮操作组:与 mock 视图悬浮条同语言,不占固定行高 `),W(`div`,sy,[W(`button`,{class:`debug__copy`,type:`button`,title:`新增变量(写入 dictionary.inputParams)`,onClick:t[1]||=e=>a.openVarDlg(null)},`+ 添加变量`),a.inputParams.length?(V(),H(`button`,{key:0,class:`debug__copy`,type:`button`,title:`以 Raw JSON 编辑全部变量的设计期 mock 数据`,onClick:t[2]||=e=>i.varsMode=`mock`},`配置变量 mock`)):q(`v-if`,!0)])])):(V(),H(B,{key:1},[q(` mock 二级视图:仅 Raw JSON(CodeJar + Prism 高亮);右下角操作按钮只在此出现 `),W(`div`,cy,[W(`div`,ly,[W(`button`,{class:`vars__back`,type:`button`,title:`返回变量列表`,onClick:t[3]||=(...e)=>a.leaveMock&&a.leaveMock(...e)},[...t[66]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-chevron-left`})],-1),K(` 变量 `,-1)]]),t[67]||=W(`span`,{class:`vars__mocktitle`},`变量 mock · 设计期覆盖(dictionary.mocks · Raw JSON)`,-1),t[68]||=W(`span`,{class:`vars__mockhint`},`仅设计期生效 · 未列出的键回退默认值`,-1)]),W(`div`,uy,[q(` 报错提示条:与顶部提示条同语言(语义色软底 + 图标 + 关闭),钉在编辑器顶部不挤占编辑区 `),i.rawError?(V(),H(`div`,dy,[t[69]||=W(`svg`,{class:`raw-err-bar__icn`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-alert-triangle`})],-1),W(`span`,fy,M(i.rawError),1),W(`button`,{class:`raw-err-bar__close`,type:`button`,title:`关闭`,onClick:t[4]||=e=>i.rawError=``},`✕`)])):q(`v-if`,!0),W(`div`,py,null,512)]),W(`div`,my,[q(` 右下角悬浮组内的返回:与头部 chip 同一 leaveMock 语义,手不离编辑区即可退出二级视图 `),W(`button`,{class:`debug__copy`,type:`button`,title:`返回变量列表`,onClick:t[5]||=(...e)=>a.leaveMock&&a.leaveMock(...e)},[...t[70]||=[W(`svg`,{class:`debug__copy-icn`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-chevron-left`})],-1),K(`返回 `,-1)]]),t[74]||=W(`span`,{class:`debug__sep`},null,-1),i.copied?(V(),H(`span`,hy,`已复制 ✓`)):q(`v-if`,!0),W(`button`,{class:`debug__copy`,type:`button`,onClick:t[6]||=(...e)=>a.copyScope&&a.copyScope(...e)},[...t[71]||=[W(`svg`,{class:`debug__copy-icn`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-copy-sm`})],-1),K(`复制 `,-1)]]),t[75]||=W(`span`,{class:`debug__sep`},null,-1),W(`button`,{class:`debug__copy debug__copy--primary`,type:`button`,onClick:t[7]||=(...e)=>a.saveRaw&&a.saveRaw(...e)},[...t[72]||=[W(`svg`,{class:`debug__copy-icn`,viewBox:`0 0 16 16`,"aria-hidden":`true`},[W(`use`,{href:`#icon-check`})],-1),K(`应用 `,-1)]]),W(`button`,{class:`debug__copy debug__copy--warn`,type:`button`,onClick:t[8]||=t=>e.$emit(`reset-import`),title:`丢弃内存编辑,从磁盘重新载入(导入优先于编辑)`},[...t[73]||=[W(`svg`,{class:`debug__copy-icn`,viewBox:`0 0 16 16`,"aria-hidden":`true`},[W(`use`,{href:`#icon-reset`})],-1),K(`重置 `,-1)]])])])],2112))],64)):n.activeTab===`structure`?(V(),H(`div`,gy,[G(o,{preview:n.preview,schema:n.schema,"card-code":n.cardId,"selected-node-id":n.selectedNodeId,"move-collapse-token":n.moveCollapseToken,"can-paste":a.canPaste,onEditEvent:a.onEditEvent,onInspect:a.onInspect,onSelectNode:a.onSelectNode,onAddNode:a.onAddNode,onMoveNode:a.onMoveNode,onHoverNode:a.onHoverNode,onCopySelected:t[9]||=t=>e.$emit(`copy-selected`),onPaste:t[10]||=t=>e.$emit(`paste`),onDuplicate:t[11]||=t=>e.$emit(`duplicate`),onDeleteSelected:t[12]||=t=>e.$emit(`delete-selected`),onRenameCard:t[13]||=t=>e.$emit(`rename-card`)},null,8,[`preview`,`schema`,`card-code`,`selected-node-id`,`move-collapse-token`,`can-paste`,`onEditEvent`,`onInspect`,`onSelectNode`,`onAddNode`,`onMoveNode`,`onHoverNode`]),q(` 右下角悬浮融合按钮组:查看 schema(全屏只读面板)+ 复制整份 schema `),W(`div`,_y,[W(`button`,{class:`debug__copy`,type:`button`,title:`全屏查看当前卡片的原始 schema(只读)`,onClick:t[14]||=(...e)=>a.openSchemaViewer&&a.openSchemaViewer(...e)},`查看 schema`),W(`button`,{class:`debug__copy`,type:`button`,title:i.copiedSchemaText?`已复制 ✓`:`复制整份 schema(含变量 mock 合并后的数据)`,onClick:t[15]||=(...e)=>a.copySchemaText&&a.copySchemaText(...e)},[i.copiedSchemaText?(V(),H(`span`,yy,`✓`)):(V(),H(`svg`,by,[...t[76]||=[W(`use`,{href:`#icon-copy-sm`},null,-1)]])),t[77]||=K(`复制 `,-1)],8,vy)])])):n.activeTab===`meta`?(V(),H(`div`,xy,[q(` 引导提示置顶:sticky 吸附在面板顶部(DOM 首位),滚动时不随列表滚走 `),t[98]||=W(`p`,{class:`debug__meta-hint`},`导入优先于编辑:在「变量」tab →「配置变量 mock」里点「重置」,可丢弃内存编辑、从磁盘重新载入最新导入。`,-1),q(` 空状态占位:与 API 调用面板同款(虚线徽章 + 线性图标 + 文案 + 弱提示) `),i.importMeta?(V(),H(`dl`,Cy,[W(`div`,wy,[t[80]||=W(`dt`,null,`导入接口`,-1),W(`dd`,null,[W(`code`,null,M(i.importMeta.interface),1),t[79]||=K(),W(`span`,Ty,`(`+M(i.importMeta.source)+`)`,1)])]),W(`div`,Ey,[t[81]||=W(`dt`,null,`远端基址`,-1),W(`dd`,null,[W(`code`,null,M(i.importMeta.baseUrl),1)])]),W(`div`,Dy,[t[82]||=W(`dt`,null,`cardId`,-1),W(`dd`,null,[W(`code`,null,M(i.importMeta.cardId),1)])]),W(`div`,Oy,[t[84]||=W(`dt`,null,`cardCode`,-1),W(`dd`,null,[W(`code`,null,M(i.importMeta.cardCode),1),W(`button`,{class:`debug__meta-copy`,type:`button`,title:i.copiedCode?`已复制 ✓`:`复制 cardCode`,onClick:t[16]||=(...e)=>a.copyCardCode&&a.copyCardCode(...e)},[i.copiedCode?(V(),H(`span`,Ay,`✓`)):(V(),H(`svg`,jy,[...t[83]||=[W(`use`,{href:`#icon-copy-sm`},null,-1)]]))],8,ky)])]),i.importMeta.cardName?(V(),H(`div`,My,[t[85]||=W(`dt`,null,`卡片标题`,-1),W(`dd`,null,M(i.importMeta.cardName),1)])):q(`v-if`,!0),W(`div`,Ny,[t[87]||=W(`dt`,null,`应用 / 空间`,-1),W(`dd`,null,[W(`code`,null,M(i.importMeta.appId),1),t[86]||=K(` / `,-1),W(`code`,null,M(i.importMeta.workspaceId),1)])]),W(`div`,Py,[t[88]||=W(`dt`,null,`同步时间`,-1),W(`dd`,null,M(a.formatTime(i.importMeta.syncedAt)),1)]),W(`div`,Fy,[t[89]||=W(`dt`,null,`落库位置`,-1),W(`dd`,null,[W(`code`,null,`src/cards/`+M(i.importMeta.cardCode)+`/`,1)])]),W(`div`,Iy,[t[90]||=W(`dt`,null,`本地状态`,-1),W(`dd`,null,[i.importMeta.dirty?(V(),H(`span`,Ly,`已编辑(偏离导入镜像)`)):(V(),H(`span`,Ry,`与导入镜像一致`))])]),i.importMeta.lastExport?(V(),H(`div`,zy,[t[91]||=W(`dt`,null,`最近导出`,-1),W(`dd`,null,[i.importMeta.lastExport.ok?(V(),H(`span`,By,`读回校验通过 ✓`)):(V(),H(`span`,Vy,`读回校验未通过 ✗`)),W(`span`,Hy,`(`+M(a.formatTime(i.importMeta.lastExport.at))+`)`,1),i.importMeta.lastExport.readBackError?(V(),H(`span`,Uy,` · `+M(i.importMeta.lastExport.readBackError),1)):q(`v-if`,!0)])])):q(`v-if`,!0),W(`div`,Wy,[t[97]||=W(`dt`,null,`线上最新版本`,-1),W(`dd`,null,[i.remoteVersionLoading?(V(),H(`span`,Gy,`查询中…`)):i.importMeta.remoteVersion==null?i.remoteVersionError?(V(),H(`span`,Jy,[K(M(i.remoteVersionError)+`(`,1),W(`a`,{class:`debug__link`,onClick:t[18]||=(...e)=>a.refreshRemoteVersion&&a.refreshRemoteVersion(...e)},`重试`),t[93]||=K(`)`,-1)])):(V(),H(`span`,Yy,[t[94]||=K(`未记录(`,-1),W(`a`,{class:`debug__link`,onClick:t[19]||=(...e)=>a.refreshRemoteVersion&&a.refreshRemoteVersion(...e)},`查询`),t[95]||=K(`)`,-1)])):(V(),H(B,{key:1},[W(`code`,Ky,M(i.importMeta.remoteVersion),1),i.importMeta.remoteVersionAt?(V(),H(`span`,qy,`(`+M(a.formatTime(i.importMeta.remoteVersionAt))+` 查询)`,1)):q(`v-if`,!0),W(`button`,{class:`debug__meta-refresh`,type:`button`,title:`刷新线上最新版本`,onClick:t[17]||=(...e)=>a.refreshRemoteVersion&&a.refreshRemoteVersion(...e)},[...t[92]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-refresh`})],-1)]])],64)),q(` 发布版本记录:与刷新按钮同款内联小按钮(图标换列表),点击弹 IDC10004 分页表格 `),W(`button`,{class:`debug__meta-history`,type:`button`,title:`查看发布版本记录`,onClick:t[20]||=e=>i.publishRecordsOpen=!0},[...t[96]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-list`})],-1)]])])])])):(V(),H(`div`,Sy,[...t[78]||=[_s(`<span class="empty-state__badge" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-cloud"></use></svg></span><p class="debug__empty">暂无导入信息</p><p class="empty-state__hint">该卡尚未经「同步远程」导入,无导入来源元数据;本地新建卡 / 未同步卡均如此</p>`,3)]]))])):n.activeTab===`history`?(V(),H(B,{key:3},[q(` 编辑记录:远端版本时间线(git log 式,新→旧)。仅远端已登录时出现该 tab,
|
|
200
200
|
数据经 GET /__card-history/:cardCode(服务端走 IDC10013)懒加载,换卡清空。 `),W(`div`,Xy,[W(`div`,Zy,[t[100]||=W(`span`,{class:`hist__title`},`远端版本时间线`,-1),i.historyList.length?(V(),H(`span`,Qy,`共 `+M(i.historyTotal)+` 个版本`,1)):q(`v-if`,!0),W(`button`,{class:j([`hist__refresh`,{"is-busy":i.historyLoading}]),type:`button`,disabled:i.historyLoading,title:`刷新历史记录`,onClick:t[21]||=(...e)=>a.reloadCardHistory&&a.reloadCardHistory(...e)},[...t[99]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-refresh`})],-1)]],10,$y)]),q(` 凭据缺失引导(双保险:tab 仅在登录态出现,凭据过期/被清时给出明确指引) `),a.historyNeedLogin?(V(),H(`div`,eb,[...t[101]||=[_s(`<span class="empty-state__badge" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-cloud"></use></svg></span><p class="debug__empty">远端登录凭据缺失</p><p class="empty-state__hint">请先通过顶栏「远端」完成远端登录,再查看远端历史版本</p>`,3)]])):i.historyLoading&&!i.historyList.length?(V(),H(`div`,tb,`正在查询远端历史…`)):i.historyError?(V(),H(`div`,nb,[t[103]||=W(`span`,{class:`empty-state__badge`,"aria-hidden":`true`},[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[W(`use`,{href:`#icon-history`})])],-1),t[104]||=W(`p`,{class:`debug__empty`},`历史记录加载失败`,-1),W(`p`,rb,[K(M(i.historyError)+`(`,1),W(`a`,{class:`debug__link`,onClick:t[22]||=(...e)=>a.reloadCardHistory&&a.reloadCardHistory(...e)},`重试`),t[102]||=K(`)`,-1)])])):i.historyList.length?(V(),H(`div`,ab,[(V(!0),H(B,null,z(a.historyGroups,r=>(V(),H(`div`,{key:r.key,class:`hist__group`},[W(`div`,ob,M(r.label),1),(V(!0),H(B,null,z(r.items,r=>(V(),H(`div`,{key:r.id,class:`hist__item`},[t[107]||=W(`div`,{class:`hist__rail`,"aria-hidden":`true`},[W(`span`,{class:`hist__dot`})],-1),W(`div`,sb,[W(`div`,cb,[W(`span`,lb,M(r.createTime),1),W(`span`,ub,M(a.formatRelTime(r.createTime)),1),W(`code`,db,`#`+M(r.id),1),r.id===a.historyLatestId?(V(),H(`span`,fb,`最新`)):q(`v-if`,!0),q(` 加载此版本:仅把该版本写本地 schema.json 并重载编辑器,不自动推送/保存到远端 `),W(`button`,{class:j([`hist__restore`,{"is-busy":n.historyRestoring}]),type:`button`,disabled:n.historyRestoring,title:`把该版本加载到编辑器(仅加载,不会自动保存到远端)`,onClick:t=>e.$emit(`restore-history`,r)},[...t[106]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-undo`})],-1),K(`加载此版本 `,-1)]],10,pb)]),W(`div`,mb,[r.screenshotPath?(V(),H(`div`,{key:0,class:`hist__thumb`,title:`点击查看大图`,onClick:e=>a.openHistoryPreview(r.screenshotPath)},[W(`img`,{src:r.screenshotPath,alt:`版本预览`,loading:`lazy`,onError:t[23]||=(...e)=>a.onThumbError&&a.onThumbError(...e)},null,40,gb)],8,hb)):(V(),H(`div`,_b,`无预览`)),W(`div`,vb,[W(`div`,yb,[(V(!0),H(B,null,z(r.tags,(e,t)=>(V(),H(`span`,{key:t,class:j([`hist__tag`,a.histTagClass(e)])},M(e),3))),128))]),W(`div`,bb,[K(M(r.summary.componentCount)+` 个组件`,1),r.summary.width?(V(),H(`span`,xb,` · 画布宽 `+M(r.summary.width),1)):q(`v-if`,!0),r.summary.name?(V(),H(`span`,Sb,` · `+M(r.summary.name),1)):q(`v-if`,!0)])])])])]))),128))]))),128)),i.historyList.length<i.historyTotal?(V(),H(`button`,{key:0,class:`hist__more`,type:`button`,disabled:i.historyLoadingMore,onClick:t[24]||=(...e)=>a.loadMoreCardHistory&&a.loadMoreCardHistory(...e)},M(i.historyLoadingMore?`加载中…`:`加载更多(剩余 ${i.historyTotal-i.historyList.length} 条)`),9,Cb)):q(`v-if`,!0)])):(V(),H(`div`,ib,[...t[105]||=[_s(`<span class="empty-state__badge" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-history"></use></svg></span><p class="debug__empty">暂无历史版本</p><p class="empty-state__hint">该卡在远端还没有已保存的版本记录;每次「保存到远端」后会生成新的一条</p>`,3)]]))]),q(` 版本预览大图:点击缩略图弹出,点遮罩或 ✕ 关闭 `),i.historyPreview?(V(),H(`div`,{key:0,class:`hist__preview-mask`,onClick:t[26]||=J(e=>i.historyPreview=``,[`self`])},[W(`img`,{class:`hist__preview-img`,src:i.historyPreview,alt:`版本预览大图`},null,8,wb),W(`button`,{class:`hist__preview-x`,type:`button`,title:`关闭预览`,onClick:t[25]||=e=>i.historyPreview=``},[...t[108]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-x`})],-1)]])])):q(`v-if`,!0)],64)):q(`v-if`,!0)]),q(`
|
|
201
201
|
节点属性面板:组件结构 tab 双击节点弹出(可编辑写回)。
|
|
@@ -244,7 +244,7 @@ Expected function or array of functions, received type ${typeof e}.`),m)}var ol=
|
|
|
244
244
|
Vue 会原地复用无 key 的组件实例,而 AlertCardInstance 的 cardRuntime 是在 data()
|
|
245
245
|
里按「首个 entry.scope」一次性创建的——复用会导致新弹窗卡沿用旧运行时/旧作用域,
|
|
246
246
|
表现如 myCardNumberDialog 的 $cardNumber 取不到值、绑定回落兜底文本。绑 key 后
|
|
247
|
-
每张弹窗卡都是全新实例,各自持有独立 cardRuntime(对齐组件头设计意图)。 `),(V(),U(o,{key:e.id,entry:e,"main-rt":n.mainRt},null,8,[`entry`,`main-rt`]))],4)],10,VS)),[[Nc,e===a.top]])),128))])):q(`v-if`,!0)}var US=Z(zS,[[`render`,HS],[`__file`,`/Users/ynet/dsl-card/card-editor/components/AlertCardLayer.vue`]]);function WS(){}var GS=Object.assign,KS=typeof window<`u`,qS=e=>typeof e==`object`&&!!e,JS=e=>e!=null,YS=e=>typeof e==`function`,XS=e=>qS(e)&&YS(e.then)&&YS(e.catch),ZS=e=>typeof e==`number`||/^\d+(\.\d+)?$/.test(e),QS=()=>KS?/ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()):!1;function $S(e,t){let n=t.split(`.`),r=e;return n.forEach(e=>{r=qS(r)?r[e]??``:``}),r}function eC(e,t,n){return t.reduce((t,r)=>((!n||e[r]!==void 0)&&(t[r]=e[r]),t),{})}var tC=(e,t)=>JSON.stringify(e)===JSON.stringify(t),nC=[Number,String],rC={type:Boolean,default:!0},iC=e=>({type:e,required:!0}),aC=()=>({type:Array,default:()=>[]}),oC=e=>({type:Number,default:e}),sC=e=>({type:nC,default:e}),cC=e=>({type:String,default:e}),lC=typeof window<`u`;function uC(e){return lC?requestAnimationFrame(e):-1}function dC(e){lC&&cancelAnimationFrame(e)}function fC(e){uC(()=>uC(e))}var pC=e=>e===window,mC=(e,t)=>({top:0,left:0,right:e,bottom:t,width:e,height:t}),hC=e=>{let t=Cn(e);if(pC(t)){let e=t.innerWidth,n=t.innerHeight;return mC(e,n)}return t?.getBoundingClientRect?t.getBoundingClientRect():mC(0,0)};function gC(e){let t=Yr(e,null);if(t){let e=Os(),{link:n,unlink:r,internalChildren:i}=t;return n(e),Qi(()=>r(e)),{parent:t,index:Zs(()=>i.indexOf(e))}}return{parent:null,index:P(-1)}}function _C(e){let t=[],n=e=>{Array.isArray(e)&&e.forEach(e=>{ss(e)&&(t.push(e),e.component?.subTree&&(t.push(e.component.subTree),n(e.component.subTree.children)),e.children&&n(e.children))})};return n(e),t}var vC=(e,t)=>{let n=e.indexOf(t);return n===-1?e.findIndex(e=>t.key!==void 0&&t.key!==null&&e.type===t.type&&e.key===t.key):n};function yC(e,t,n){let r=_C(e.subTree.children);n.sort((e,t)=>vC(r,e.vnode)-vC(r,t.vnode));let i=n.map(e=>e.proxy);t.sort((e,t)=>i.indexOf(e)-i.indexOf(t))}function bC(e){let t=cn([]),n=cn([]),r=Os();return{children:t,linkChildren:i=>{Jr(e,Object.assign({link:e=>{e.proxy&&(n.push(e),t.push(e.proxy),yC(r,t,n))},unlink:e=>{let r=n.indexOf(e);t.splice(r,1),n.splice(r,1)},children:t,internalChildren:n},i))}}}function xC(e){let t;Ji(()=>{e(),rr(()=>{t=!0})}),Vi(()=>{t&&e()})}function SC(e,t,n={}){if(!lC)return;let{target:r=window,passive:i=!1,capture:a=!1}=n,o=!1,s,c=n=>{if(o)return;let r=Cn(n);r&&!s&&(r.addEventListener(e,t,{capture:a,passive:i}),s=!0)},l=n=>{if(o)return;let r=Cn(n);r&&s&&(r.removeEventListener(e,t,a),s=!1)};Qi(()=>l(r)),Hi(()=>l(r)),xC(()=>c(r));let u;return bn(r)&&(u=$r(r,(e,t)=>{l(t),c(e)})),()=>{u?.(),l(r),o=!0}}function CC(e,t,n={}){if(!lC)return;let{eventName:r=`click`}=n;SC(r,n=>{(Array.isArray(e)?e:[e]).every(e=>{let t=Cn(e);return t&&!t.contains(n.target)})&&t(n)},{target:document})}var wC,TC;function EC(){if(!wC&&(wC=P(0),TC=P(0),lC)){let e=()=>{wC.value=window.innerWidth,TC.value=window.innerHeight};e(),window.addEventListener(`resize`,e,{passive:!0}),window.addEventListener(`orientationchange`,e,{passive:!0})}return{width:wC,height:TC}}var DC=/scroll|auto|overlay/i,OC=lC?window:void 0;function kC(e){return e.tagName!==`HTML`&&e.tagName!==`BODY`&&e.nodeType===1}function AC(e,t=OC){let n=e;for(;n&&n!==t&&kC(n);){let{overflowY:e}=window.getComputedStyle(n);if(DC.test(e))return n;n=n.parentNode}return t}function jC(e,t=OC){let n=P();return Ji(()=>{e.value&&(n.value=AC(e.value,t))}),n}var MC;function NC(){if(!MC&&(MC=P(`visible`),lC)){let e=()=>{MC.value=document.hidden?`hidden`:`visible`};e(),window.addEventListener(`visibilitychange`,e)}return MC}function PC(e){let t=`scrollTop`in e?e.scrollTop:e.pageYOffset;return Math.max(t,0)}function FC(e,t){`scrollTop`in e?e.scrollTop=t:e.scrollTo(e.scrollX,t)}function IC(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}function LC(e){FC(window,e),FC(document.body,e)}function RC(e,t){if(e===window)return 0;let n=t?PC(t):IC();return hC(e).top+n}QS();var zC=e=>e.stopPropagation();function BC(e,t){(typeof e.cancelable!=`boolean`||e.cancelable)&&e.preventDefault(),t&&zC(e)}function VC(e){let t=Cn(e);if(!t)return!1;let n=window.getComputedStyle(t),r=n.display===`none`,i=t.offsetParent===null&&n.position!==`fixed`;return r||i}var{width:HC,height:UC}=EC();function WC(e){if(JS(e))return ZS(e)?`${e}px`:String(e)}function GC(e){if(JS(e)){if(Array.isArray(e))return{width:WC(e[0]),height:WC(e[1])};let t=WC(e);return{width:t,height:t}}}function KC(e){let t={};return e!==void 0&&(t.zIndex=+e),t}var qC;function JC(){if(!qC){let e=document.documentElement,t=e.style.fontSize||window.getComputedStyle(e).fontSize;qC=parseFloat(t)}return qC}function YC(e){return e=e.replace(/rem/g,``),+e*JC()}function XC(e){return e=e.replace(/vw/g,``),+e*HC.value/100}function ZC(e){return e=e.replace(/vh/g,``),+e*UC.value/100}function QC(e){if(typeof e==`number`)return e;if(KS){if(e.includes(`rem`))return YC(e);if(e.includes(`vw`))return XC(e);if(e.includes(`vh`))return ZC(e)}return parseFloat(e)}var $C=/-(\w)/g,ew=e=>e.replace($C,(e,t)=>t.toUpperCase()),tw=(e,t,n)=>Math.min(Math.max(e,t),n),{hasOwnProperty:nw}=Object.prototype;function rw(e,t,n){let r=t[n];JS(r)&&(e[n]=!nw.call(e,n)||!qS(r)?r:iw(Object(e[n]),r))}function iw(e,t){return Object.keys(t).forEach(n=>{rw(e,t,n)}),e}var aw={name:`姓名`,tel:`电话`,save:`保存`,clear:`清空`,undo:`撤销`,cancel:`取消`,confirm:`确认`,delete:`删除`,loading:`加载中...`,noCoupon:`暂无优惠券`,nameEmpty:`请填写姓名`,addContact:`添加联系人`,telInvalid:`请填写正确的电话`,vanCalendar:{end:`结束`,start:`开始`,title:`日期选择`,weekdays:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],monthTitle:(e,t)=>`${e}\u5E74${t}\u6708`,rangePrompt:e=>`\u6700\u591A\u9009\u62E9 ${e} \u5929`},vanCascader:{select:`请选择`},vanPagination:{prev:`上一页`,next:`下一页`},vanPullRefresh:{pulling:`下拉即可刷新...`,loosing:`释放即可刷新...`},vanSubmitBar:{label:`合计:`},vanCoupon:{unlimited:`无门槛`,discount:e=>`${e}\u6298`,condition:e=>`\u6EE1${e}\u5143\u53EF\u7528`},vanCouponCell:{title:`优惠券`,count:e=>`${e}\u5F20\u53EF\u7528`},vanCouponList:{exchange:`兑换`,close:`不使用`,enable:`可用`,disabled:`不可用`,placeholder:`输入优惠码`},vanAddressEdit:{area:`地区`,areaEmpty:`请选择地区`,addressEmpty:`请填写详细地址`,addressDetail:`详细地址`,defaultAddress:`设为默认收货地址`},vanAddressList:{add:`新增地址`}},ow=P(`zh-CN`),sw=cn({"zh-CN":aw}),cw={messages(){return sw[ow.value]},use(e,t){ow.value=e,this.add({[e]:t})},add(e={}){iw(sw,e)}};function lw(e){let t=ew(e)+`.`;return(e,...n)=>{let r=cw.messages(),i=$S(r,t+e)||$S(r,e);return YS(i)?i(...n):i}}function uw(e,t){return t?typeof t==`string`?` ${e}--${t}`:Array.isArray(t)?t.reduce((t,n)=>t+uw(e,n),``):Object.keys(t).reduce((n,r)=>n+(t[r]?uw(e,r):``),``):``}function dw(e){return(t,n)=>(t&&typeof t!=`string`&&(n=t,t=``),t=t?`${e}__${t}`:e,`${t}${uw(t,n)}`)}function fw(e){let t=`van-${e}`;return[t,dw(t),lw(t)]}var pw=`van-hairline`,mw=`${pw}--top-bottom`,hw=`${pw}-unset--top-bottom`,gw=`van-haptics-feedback`;function _w(e,{args:t=[],done:n,canceled:r,error:i}){if(e){let a=e.apply(null,t);XS(a)?a.then(e=>{e?n():r&&r()}).catch(i||WS):a?n():r&&r()}else n()}function vw(e){return e.install=t=>{let{name:n}=e;n&&(t.component(n,e),t.component(ew(`-${n}`),e))},e}var yw=Symbol();function bw(e){let t=Yr(yw,null);t&&$r(t,t=>{t&&e()})}function xw(e){let t=Os();t&&GS(t.proxy,e)}var Sw={to:[String,Object],url:String,replace:Boolean};function Cw({to:e,url:t,replace:n,$router:r}){e&&r?r[n?`replace`:`push`](e):t&&(n?location.replace(t):location.href=t)}var[ww,Tw]=fw(`badge`),Ew=vw(Mi({name:ww,props:{dot:Boolean,max:nC,tag:cC(`div`),color:String,offset:Array,content:nC,showZero:rC,position:cC(`top-right`)},setup(e,{slots:t}){let n=()=>{if(t.content)return!0;let{content:n,showZero:r}=e;return JS(n)&&n!==``&&(r||n!==0&&n!==`0`)},r=()=>{let{dot:r,max:i,content:a}=e;if(!r&&n())return t.content?t.content():JS(i)&&ZS(a)&&+a>+i?`${i}+`:a},i=e=>e.startsWith(`-`)?e.replace(`-`,``):`-${e}`,a=Zs(()=>{let n={background:e.color};if(e.offset){let[r,a]=e.offset,{position:o}=e,[s,c]=o.split(`-`);t.default?(n[s]=typeof a==`number`?WC(s===`top`?a:-a):s===`top`?WC(a):i(a),n[c]=typeof r==`number`?WC(c===`left`?r:-r):c===`left`?WC(r):i(r)):(n.marginTop=WC(a),n.marginLeft=WC(r))}return n}),o=()=>{if(n()||e.dot)return G(`div`,{class:Tw([e.position,{dot:e.dot,fixed:!!t.default}]),style:a.value},[r()])};return()=>{if(t.default){let{tag:n}=e;return G(n,{class:Tw(`wrapper`)},{default:()=>[t.default(),o()]})}return o()}}})),Dw=2e3,Ow=()=>++Dw,[kw,Aw]=fw(`config-provider`),jw=Symbol(kw),[Mw,Nw]=fw(`icon`),Pw=e=>e?.includes(`/`),Fw=vw(Mi({name:Mw,props:{dot:Boolean,tag:cC(`i`),name:String,size:nC,badge:nC,color:String,badgeProps:Object,classPrefix:String},setup(e,{slots:t}){let n=Yr(jw,null),r=Zs(()=>e.classPrefix||n?.iconPrefix||Nw());return()=>{let{tag:n,dot:i,name:a,size:o,badge:s,color:c}=e,l=Pw(a);return G(Ew,xs({dot:i,tag:n,class:[r.value,l?``:`${r.value}-${a}`],style:{color:c,fontSize:WC(o)},content:s},e.badgeProps),{default:()=>[t.default?.call(t),l&&G(`img`,{class:Nw(`image`),src:a},null)]})}}})),[Iw,Lw]=fw(`loading`),Rw=Array(12).fill(null).map((e,t)=>G(`i`,{class:Lw(`line`,String(t+1))},null)),zw=G(`svg`,{class:Lw(`circular`),viewBox:`25 25 50 50`},[G(`circle`,{cx:`50`,cy:`50`,r:`20`,fill:`none`},null)]),Bw=vw(Mi({name:Iw,props:{size:nC,type:cC(`circular`),color:String,vertical:Boolean,textSize:nC,textColor:String},setup(e,{slots:t}){let n=Zs(()=>GS({color:e.color},GC(e.size))),r=()=>{let r=e.type===`spinner`?Rw:zw;return G(`span`,{class:Lw(`spinner`,e.type),style:n.value},[t.icon?t.icon():r])},i=()=>{if(t.default)return G(`span`,{class:Lw(`text`),style:{fontSize:WC(e.textSize),color:e.textColor??e.color}},[t.default()])};return()=>{let{type:t,vertical:n}=e;return G(`div`,{class:Lw([t,{vertical:n}]),"aria-live":`polite`,"aria-busy":!0},[r(),i()])}}})),Vw={show:Boolean,zIndex:nC,overlay:rC,duration:nC,teleport:[String,Object],lockScroll:rC,lazyRender:rC,beforeClose:Function,overlayProps:Object,overlayStyle:Object,overlayClass:null,transitionAppear:Boolean,closeOnClickOverlay:rC};Object.keys(Vw);function Hw(e,t){return e>t?`horizontal`:t>e?`vertical`:``}function Uw(){let e=P(0),t=P(0),n=P(0),r=P(0),i=P(0),a=P(0),o=P(``),s=P(!0),c=()=>o.value===`vertical`,l=()=>o.value===`horizontal`,u=()=>{n.value=0,r.value=0,i.value=0,a.value=0,o.value=``,s.value=!0};return{move:(c=>{let l=c.touches[0];n.value=(l.clientX<0?0:l.clientX)-e.value,r.value=l.clientY-t.value,i.value=Math.abs(n.value),a.value=Math.abs(r.value),(!o.value||i.value<10&&a.value<10)&&(o.value=Hw(i.value,a.value)),s.value&&(i.value>5||a.value>5)&&(s.value=!1)}),start:(n=>{u(),e.value=n.touches[0].clientX,t.value=n.touches[0].clientY}),reset:u,startX:e,startY:t,deltaX:n,deltaY:r,offsetX:i,offsetY:a,direction:o,isVertical:c,isHorizontal:l,isTap:s}}var Ww=0,Gw=`van-overflow-hidden`;function Kw(e,t){let n=Uw(),r=t=>{n.move(t);let r=n.deltaY.value>0?`10`:`01`,i=AC(t.target,e.value);for(;i.scrollHeight<=i.offsetHeight&&i!==e.value&&i.parentElement;)i=AC(i.parentElement,e.value);let{scrollHeight:a,offsetHeight:o,scrollTop:s}=i,c=`11`;s===0?c=o>=a?`00`:`01`:s+o>=a&&(c=`10`),c!==`11`&&n.isVertical()&&!(parseInt(c,2)&parseInt(r,2))&&BC(t,!0)},i=()=>{document.addEventListener(`touchstart`,n.start),document.addEventListener(`touchmove`,r,{passive:!1}),Ww||document.body.classList.add(Gw),Ww++},a=()=>{Ww&&(document.removeEventListener(`touchstart`,n.start),document.removeEventListener(`touchmove`,r),Ww--,Ww||document.body.classList.remove(Gw))},o=()=>t()&&i(),s=()=>t()&&a();xC(o),Hi(s),Zi(s),$r(t,e=>{e?i():a()})}function qw(e){let t=P(!1);return $r(e,e=>{e&&(t.value=e)},{immediate:!0}),e=>()=>t.value?e():null}var Jw=()=>{let{scopeId:e}=Os()?.vnode||{};return e?{[e]:``}:null},[Yw,Xw]=fw(`overlay`),Zw=vw(Mi({name:Yw,inheritAttrs:!1,props:{show:Boolean,zIndex:nC,duration:nC,className:null,lockScroll:rC,lazyRender:rC,customStyle:Object,teleport:[String,Object]},setup(e,{attrs:t,slots:n}){let r=P(),i=qw(()=>e.show||!e.lazyRender),a=t=>{e.lockScroll&&BC(t,!0)},o=i(()=>{let i=GS(KC(e.zIndex),e.customStyle);return JS(e.duration)&&(i.animationDuration=`${e.duration}s`),L(G(`div`,xs({ref:r,style:i,class:[Xw(),e.className]},t),[n.default?.call(n)]),[[Nc,e.show]])});return SC(`touchmove`,a,{target:r}),()=>{let t=G(hc,{name:`van-fade`,appear:!0},{default:o});return e.teleport?G(mi,{to:e.teleport},{default:()=>[t]}):t}}})),Qw=GS({},Vw,{round:Boolean,position:cC(`center`),closeIcon:cC(`cross`),closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,closeIconPosition:cC(`top-right`),destroyOnClose:Boolean,safeAreaInsetTop:Boolean,safeAreaInsetBottom:Boolean}),[$w,eT]=fw(`popup`),tT=vw(Mi({name:$w,inheritAttrs:!1,props:Qw,emits:[`open`,`close`,`opened`,`closed`,`keydown`,`update:show`,`clickOverlay`,`clickCloseIcon`],setup(e,{emit:t,attrs:n,slots:r}){let i,a,o=P(),s=P(),c=qw(()=>e.show||!e.lazyRender),l=Zs(()=>{let t={zIndex:o.value};if(JS(e.duration)){let n=e.position===`center`?`animationDuration`:`transitionDuration`;t[n]=`${e.duration}s`}return t}),u=()=>{i||(i=!0,o.value=e.zIndex===void 0?Ow():+e.zIndex,t(`open`))},d=()=>{i&&_w(e.beforeClose,{done(){i=!1,t(`close`),t(`update:show`,!1)}})},f=n=>{t(`clickOverlay`,n),e.closeOnClickOverlay&&d()},p=()=>{if(e.overlay)return G(Zw,xs(GS({show:e.show,class:e.overlayClass,zIndex:o.value,duration:e.duration,customStyle:e.overlayStyle,role:e.closeOnClickOverlay?`button`:void 0,tabindex:e.closeOnClickOverlay?0:void 0},e.overlayProps),Jw(),{onClick:f}),{default:r[`overlay-content`]})},m=e=>{t(`clickCloseIcon`,e),d()},h=()=>{if(e.closeable)return G(Fw,{role:`button`,tabindex:0,name:e.closeIcon,class:[eT(`close-icon`,e.closeIconPosition),gw],classPrefix:e.iconPrefix,onClick:m},null)},g,_=()=>{g&&clearTimeout(g),g=setTimeout(()=>{t(`opened`)})},v=()=>t(`closed`),y=e=>t(`keydown`,e),b=c(()=>{let{destroyOnClose:t,round:i,position:a,safeAreaInsetTop:o,safeAreaInsetBottom:c,show:u}=e;if(u||!t)return L(G(`div`,xs({ref:s,style:l.value,role:`dialog`,tabindex:0,class:[eT({round:i,[a]:a}),{"van-safe-area-top":o,"van-safe-area-bottom":c}],onKeydown:y},n,Jw()),[r.default?.call(r),h()]),[[Nc,u]])}),x=()=>{let{position:t,transition:n,transitionAppear:r}=e,i=t===`center`?`van-fade`:`van-popup-slide-${t}`;return G(hc,{name:n||i,appear:r,onAfterEnter:_,onAfterLeave:v},{default:b})};return $r(()=>e.show,e=>{e&&!i&&(u(),n.tabindex===0&&rr(()=>{var e;(e=s.value)==null||e.focus()})),!e&&i&&(i=!1,t(`close`))}),xw({popupRef:s}),Kw(s,()=>e.show&&e.lockScroll),SC(`popstate`,()=>{e.closeOnPopstate&&(d(),a=!1)}),Ji(()=>{e.show&&u()}),Vi(()=>{a&&=(t(`update:show`,!0),!1)}),Hi(()=>{e.show&&e.teleport&&(d(),a=!0)}),Jr(yw,()=>e.show),()=>e.teleport?G(mi,{to:e.teleport},{default:()=>[p(),x()]}):G(B,null,[p(),x()])}})),[nT,rT,iT]=fw(`picker`),aT=e=>e.find(e=>!e.disabled)||e[0];function oT(e,t){let n=e[0];if(n){if(Array.isArray(n))return`multiple`;if(t.children in n)return`cascade`}return`default`}function sT(e,t){t=tw(t,0,e.length);for(let n=t;n<e.length;n++)if(!e[n].disabled)return n;for(let n=t-1;n>=0;n--)if(!e[n].disabled)return n;return 0}var cT=(e,t,n)=>t!==void 0&&e.some(e=>e[n.value]===t);function lT(e,t,n){return e[sT(e,e.findIndex(e=>e[n.value]===t))]}function uT(e,t,n){let r=[],i={[t.children]:e},a=0;for(;i&&i[t.children];){let e=i[t.children],o=n.value[a];if(i=JS(o)?lT(e,o,t):void 0,!i&&e.length){let n=aT(e)[t.value];i=lT(e,n,t)}a++,r.push(e)}return r}function dT(e){let{transform:t}=window.getComputedStyle(e),n=t.slice(7,t.length-1).split(`, `)[5];return Number(n)}function fT(e){return GS({text:`text`,value:`value`,children:`children`},e)}var pT=200,mT=300,hT=15,[gT,_T]=fw(`picker-column`),vT=Symbol(gT),yT=Mi({name:gT,props:{value:nC,fields:iC(Object),options:aC(),readonly:Boolean,allowHtml:Boolean,optionHeight:iC(Number),swipeDuration:iC(nC),visibleOptionNum:iC(nC)},emits:[`change`,`clickOption`,`scrollInto`],setup(e,{emit:t,slots:n}){let r,i,a,o,s,c=P(),l=P(),u=P(0),d=P(0),f=Uw(),p=()=>e.options.length,m=()=>e.optionHeight*(e.visibleOptionNum-1)/2,h=n=>{let i=sT(e.options,n),a=-i*e.optionHeight,o=()=>{i>p()-1&&(i=sT(e.options,n));let r=e.options[i][e.fields.value];r!==e.value&&t(`change`,r)};r&&a!==u.value?s=o:o(),u.value=a},g=()=>e.readonly||!e.options.length,_=n=>{r||g()||(s=null,d.value=pT,h(n),t(`clickOption`,e.options[n]))},v=t=>tw(Math.round(-t/e.optionHeight),0,p()-1),y=Zs(()=>v(u.value)),b=(t,n)=>{let r=Math.abs(t/n);t=u.value+r/.003*(t<0?-1:1);let i=v(t);d.value=+e.swipeDuration,h(i)},x=()=>{r=!1,d.value=0,s&&=(s(),null)},S=e=>{if(!g()){if(f.start(e),r){let e=dT(l.value);u.value=Math.min(0,e-m())}d.value=0,i=u.value,a=Date.now(),o=i,s=null}},C=n=>{if(g())return;f.move(n),f.isVertical()&&(r=!0,BC(n,!0));let s=tw(i+f.deltaY.value,-(p()*e.optionHeight),e.optionHeight),c=v(s);c!==y.value&&t(`scrollInto`,e.options[c]),u.value=s;let l=Date.now();l-a>mT&&(a=l,o=s)},w=()=>{if(g())return;let e=u.value-o,t=Date.now()-a;if(t<mT&&Math.abs(e)>hT){b(e,t);return}let n=v(u.value);d.value=pT,h(n),setTimeout(()=>{r=!1},0)},ee=()=>{let t={height:`${e.optionHeight}px`};return e.options.map((r,i)=>{let a=r[e.fields.text],{disabled:o}=r,s=r[e.fields.value],c={role:`button`,style:t,tabindex:o?-1:0,class:[_T(`item`,{disabled:o,selected:s===e.value}),r.className],onClick:()=>_(i)},l={class:`van-ellipsis`,[e.allowHtml?`innerHTML`:`textContent`]:a};return G(`li`,c,[n.option?n.option(r,i):G(`div`,l,null)])})};return gC(vT),xw({stopMomentum:x}),Qr(()=>{let t=r?Math.floor(-u.value/e.optionHeight):e.options.findIndex(t=>t[e.fields.value]===e.value),n=sT(e.options,t),i=-n*e.optionHeight;r&&n<t&&x(),u.value=i}),SC(`touchmove`,C,{target:c}),()=>G(`div`,{ref:c,class:_T(),onTouchstartPassive:S,onTouchend:w,onTouchcancel:w},[G(`ul`,{ref:l,style:{transform:`translate3d(0, ${u.value+m()}px, 0)`,transitionDuration:`${d.value}ms`,transitionProperty:d.value?`all`:`none`},class:_T(`wrapper`),onTransitionend:x},[ee()])])}}),[bT]=fw(`picker-toolbar`),xT={title:String,cancelButtonText:String,confirmButtonText:String},ST=[`cancel`,`confirm`,`title`,`toolbar`],CT=Object.keys(xT),wT=Mi({name:bT,props:xT,emits:[`confirm`,`cancel`],setup(e,{emit:t,slots:n}){let r=()=>{if(n.title)return n.title();if(e.title)return G(`div`,{class:[rT(`title`),`van-ellipsis`]},[e.title])},i=()=>t(`cancel`),a=()=>t(`confirm`),o=()=>{let t=e.cancelButtonText??iT(`cancel`);if(n.cancel||t)return G(`button`,{type:`button`,class:[rT(`cancel`),gw],onClick:i},[n.cancel?n.cancel():t])},s=()=>{let t=e.confirmButtonText??iT(`confirm`);if(n.confirm||t)return G(`button`,{type:`button`,class:[rT(`confirm`),gw],onClick:a},[n.confirm?n.confirm():t])};return()=>G(`div`,{class:rT(`toolbar`)},[n.toolbar?n.toolbar():[o(),r(),s()]])}});function TT(e,t,n){let r,i=0,a=e.scrollLeft,o=n===0?1:Math.round(n*1e3/16),s=a;function c(){dC(r)}function l(){s+=(t-a)/o,e.scrollLeft=s,++i<o&&(r=uC(l))}return l(),c}function ET(e,t,n,r){let i,a=PC(e),o=a<t,s=n===0?1:Math.round(n*1e3/16),c=(t-a)/s;function l(){dC(i)}function u(){a+=c,(o&&a>t||!o&&a<t)&&(a=t),FC(e,a),o&&a<t||!o&&a>t?i=uC(u):r&&(i=uC(r))}return u(),l}var DT=0;function OT(){let{name:e=`unknown`}=Os()?.type||{};return`${e}-${++DT}`}function kT(){let e=P([]),t=[];return Yi(()=>{e.value=[]}),[e,n=>(t[n]||(t[n]=t=>{e.value[n]=t}),t[n])]}function AT(e,t){if(!KS||!window.IntersectionObserver)return;let n=new IntersectionObserver(e=>{t(e[0].intersectionRatio>0)},{root:document.body}),r=()=>{e.value&&n.observe(e.value)},i=()=>{e.value&&n.unobserve(e.value)};Hi(i),Zi(i),xC(r)}var[jT,MT]=fw(`sticky`),NT=vw(Mi({name:jT,props:{zIndex:nC,position:cC(`top`),container:Object,offsetTop:sC(0),offsetBottom:sC(0)},emits:[`scroll`,`change`],setup(e,{emit:t,slots:n}){let r=P(),i=jC(r),a=cn({fixed:!1,width:0,height:0,transform:0}),o=P(!1),s=Zs(()=>QC(e.position===`top`?e.offsetTop:e.offsetBottom)),c=Zs(()=>{if(o.value)return;let{fixed:e,height:t,width:n}=a;if(e)return{width:`${n}px`,height:`${t}px`}}),l=Zs(()=>{if(!a.fixed||o.value)return;let t=GS(KC(e.zIndex),{width:`${a.width}px`,height:`${a.height}px`,[e.position]:`${s.value}px`});return a.transform&&(t.transform=`translate3d(0, ${a.transform}px, 0)`),t}),u=e=>t(`scroll`,{scrollTop:e,isFixed:a.fixed}),d=()=>{if(!r.value||VC(r))return;let{container:t,position:n}=e,i=hC(r),o=PC(window);if(a.width=i.width,a.height=i.height,n===`top`){if(t){let e=hC(t),n=e.bottom-s.value-a.height;a.fixed=s.value>i.top&&e.bottom>0,a.transform=n<0?n:0}else a.fixed=s.value>i.top}else{let{clientHeight:e}=document.documentElement;if(t){let n=hC(t),r=e-n.top-s.value-a.height;a.fixed=e-s.value<i.bottom&&e>n.top,a.transform=r<0?-r:0}else a.fixed=e-s.value<i.bottom}u(o)};return $r(()=>a.fixed,e=>t(`change`,e)),SC(`scroll`,d,{target:i,passive:!0}),AT(r,d),$r([HC,UC],()=>{r.value&&!VC(r)&&a.fixed&&(o.value=!0,rr(()=>{let e=hC(r);a.width=e.width,a.height=e.height,o.value=!1}))}),()=>G(`div`,{ref:r,style:c.value},[G(`div`,{class:MT({fixed:a.fixed&&!o.value}),style:l.value},[n.default?.call(n)])])}})),[PT,FT]=fw(`swipe`),IT={loop:rC,width:nC,height:nC,vertical:Boolean,autoplay:sC(0),duration:sC(500),touchable:rC,lazyRender:Boolean,initialSwipe:sC(0),indicatorColor:String,showIndicators:rC,stopPropagation:rC},LT=Symbol(PT),RT=vw(Mi({name:PT,props:IT,emits:[`change`,`dragStart`,`dragEnd`],setup(e,{emit:t,slots:n}){let r=P(),i=P(),a=cn({rect:null,width:0,height:0,offset:0,active:0,swiping:!1}),o=!1,s=Uw(),{children:c,linkChildren:l}=bC(LT),u=Zs(()=>c.length),d=Zs(()=>a[e.vertical?`height`:`width`]),f=Zs(()=>e.vertical?s.deltaY.value:s.deltaX.value),p=Zs(()=>a.rect?(e.vertical?a.rect.height:a.rect.width)-d.value*u.value:0),m=Zs(()=>d.value?Math.ceil(Math.abs(p.value)/d.value):u.value),h=Zs(()=>u.value*d.value),g=Zs(()=>(a.active+u.value)%u.value),_=Zs(()=>{let t=e.vertical?`vertical`:`horizontal`;return s.direction.value===t}),v=Zs(()=>{let t={transitionDuration:`${a.swiping?0:e.duration}ms`,transform:`translate${e.vertical?`Y`:`X`}(${+a.offset.toFixed(2)}px)`};if(d.value){let n=e.vertical?`height`:`width`,r=e.vertical?`width`:`height`;t[n]=`${h.value}px`,t[r]=e[r]?`${e[r]}px`:``}return t}),y=t=>{let{active:n}=a;return t?e.loop?tw(n+t,-1,u.value):tw(n+t,0,m.value):n},b=(t,n=0)=>{let r=t*d.value;e.loop||(r=Math.min(r,-p.value));let i=n-r;return e.loop||(i=tw(i,p.value,0)),i},x=({pace:n=0,offset:r=0,emitChange:i})=>{if(u.value<=1)return;let{active:o}=a,s=y(n),l=b(s,r);if(e.loop){if(c[0]&&l!==p.value){let e=l<p.value;c[0].setOffset(e?h.value:0)}if(c[u.value-1]&&l!==0){let e=l>0;c[u.value-1].setOffset(e?-h.value:0)}}a.active=s,a.offset=l,i&&s!==o&&t(`change`,g.value)},S=()=>{a.swiping=!0,a.active<=-1?x({pace:u.value}):a.active>=u.value&&x({pace:-u.value})},C=()=>{S(),s.reset(),fC(()=>{a.swiping=!1,x({pace:-1,emitChange:!0})})},w=()=>{S(),s.reset(),fC(()=>{a.swiping=!1,x({pace:1,emitChange:!0})})},ee,T=()=>clearTimeout(ee),E=()=>{T(),+e.autoplay>0&&u.value>1&&(ee=setTimeout(()=>{w(),E()},+e.autoplay))},D=(t=+e.initialSwipe)=>{if(!r.value)return;let n=()=>{if(!VC(r)){let t={width:r.value.offsetWidth,height:r.value.offsetHeight};a.rect=t,a.width=+(e.width??t.width),a.height=+(e.height??t.height)}u.value&&(t=Math.min(u.value-1,t),t===-1&&(t=u.value-1)),a.active=t,a.swiping=!0,a.offset=b(t),c.forEach(e=>{e.setOffset(0)}),E()};VC(r)?rr().then(n):n()},O=()=>D(a.active),te,ne=t=>{!e.touchable||t.touches.length>1||(s.start(t),o=!1,te=Date.now(),T(),S())},re=n=>{e.touchable&&a.swiping&&(s.move(n),_.value&&(!e.loop&&(a.active===0&&f.value>0||a.active===u.value-1&&f.value<0)||(BC(n,e.stopPropagation),x({offset:f.value}),o||=(t(`dragStart`,{index:g.value}),!0))))},ie=()=>{if(!e.touchable||!a.swiping)return;let n=Date.now()-te,r=f.value/n;if((Math.abs(r)>.25||Math.abs(f.value)>d.value/2)&&_.value){let t=e.vertical?s.offsetY.value:s.offsetX.value,n=0;n=e.loop?t>0?f.value>0?-1:1:0:-Math[f.value>0?`ceil`:`floor`](f.value/d.value),x({pace:n,emitChange:!0})}else f.value&&x({pace:0});o=!1,a.swiping=!1,t(`dragEnd`,{index:g.value}),E()},ae=(t,n={})=>{S(),s.reset(),fC(()=>{let r;r=e.loop&&t===u.value?a.active===0?0:t:t%u.value,n.immediate?fC(()=>{a.swiping=!1}):a.swiping=!1,x({pace:r-a.active,emitChange:!0})})},oe=(t,n)=>{let r=n===g.value;return G(`i`,{style:r?{backgroundColor:e.indicatorColor}:void 0,class:FT(`indicator`,{active:r})},null)},se=()=>{if(n.indicator)return n.indicator({active:g.value,total:u.value});if(e.showIndicators&&u.value>1)return G(`div`,{class:FT(`indicators`,{vertical:e.vertical})},[Array(u.value).fill(``).map(oe)])};return xw({prev:C,next:w,state:a,resize:O,swipeTo:ae}),l({size:d,props:e,count:u,activeIndicator:g}),$r(()=>e.initialSwipe,e=>D(+e)),$r(u,()=>D(a.active)),$r(()=>e.autoplay,E),$r([HC,UC,()=>e.width,()=>e.height],O),$r(NC(),e=>{e===`visible`?E():T()}),Ji(D),Vi(()=>D(a.active)),bw(()=>D(a.active)),Hi(T),Zi(T),SC(`touchmove`,re,{target:i}),()=>G(`div`,{ref:r,class:FT()},[G(`div`,{ref:i,style:v.value,class:FT(`track`,{vertical:e.vertical}),onTouchstartPassive:ne,onTouchend:ie,onTouchcancel:ie},[n.default?.call(n)]),se()])}})),[zT,BT]=fw(`tabs`),VT=Mi({name:zT,props:{count:iC(Number),inited:Boolean,animated:Boolean,duration:iC(nC),swipeable:Boolean,lazyRender:Boolean,currentIndex:iC(Number)},emits:[`change`],setup(e,{emit:t,slots:n}){let r=P(),i=e=>t(`change`,e),a=()=>{let t=n.default?.call(n);return e.animated||e.swipeable?G(RT,{ref:r,loop:!1,class:BT(`track`),duration:e.duration*1e3,touchable:e.swipeable,lazyRender:e.lazyRender,showIndicators:!1,onChange:i},{default:()=>[t]}):t},o=t=>{let n=r.value;n&&n.state.active!==t&&n.swipeTo(t,{immediate:!e.inited})};return $r(()=>e.currentIndex,o),Ji(()=>{o(e.currentIndex)}),xw({swipeRef:r}),()=>G(`div`,{class:BT(`content`,{animated:e.animated||e.swipeable})},[a()])}}),[HT,UT]=fw(`tabs`),WT={type:cC(`line`),color:String,border:Boolean,sticky:Boolean,shrink:Boolean,active:sC(0),duration:sC(.3),animated:Boolean,ellipsis:rC,swipeable:Boolean,scrollspy:Boolean,offsetTop:sC(0),background:String,lazyRender:rC,showHeader:rC,lineWidth:nC,lineHeight:nC,beforeChange:Function,swipeThreshold:sC(5),titleActiveColor:String,titleInactiveColor:String},GT=Symbol(HT),KT=Mi({name:HT,props:WT,emits:[`change`,`scroll`,`rendered`,`clickTab`,`update:active`],setup(e,{emit:t,slots:n}){let r,i,a,o,s,c=P(),l=P(),u=P(),d=P(),f=OT(),p=jC(c),[m,h]=kT(),{children:g,linkChildren:_}=bC(GT),v=cn({inited:!1,position:``,lineStyle:{},currentIndex:-1}),y=Zs(()=>g.length>+e.swipeThreshold||!e.ellipsis||e.shrink),b=Zs(()=>({borderColor:e.color,background:e.background})),x=(e,t)=>e.name??t,S=Zs(()=>{let e=g[v.currentIndex];if(e)return x(e,v.currentIndex)}),C=Zs(()=>QC(e.offsetTop)),w=Zs(()=>e.sticky?C.value+r:0),ee=t=>{let n=l.value,r=m.value;if(!y.value||!n||!r||!r[v.currentIndex])return;let i=r[v.currentIndex].$el,a=i.offsetLeft-(n.offsetWidth-i.offsetWidth)/2;o&&o(),o=TT(n,a,t?0:+e.duration)},T=()=>{let t=v.inited;rr(()=>{let n=m.value;if(!n||!n[v.currentIndex]||e.type!==`line`||VC(c.value))return;let r=n[v.currentIndex].$el,{lineWidth:i,lineHeight:a}=e,o=r.offsetLeft+r.offsetWidth/2,s={width:WC(i),backgroundColor:e.color,transform:`translateX(${o}px) translateX(-50%)`};if(t&&(s.transitionDuration=`${e.duration}s`),JS(a)){let e=WC(a);s.height=e,s.borderRadius=e}v.lineStyle=s})},E=e=>{let t=e<v.currentIndex?-1:1;for(;e>=0&&e<g.length;){if(!g[e].disabled)return e;e+=t}},D=(n,r)=>{let i=E(n);if(!JS(i))return;let o=g[i],s=x(o,i),l=v.currentIndex!==null;v.currentIndex!==i&&(v.currentIndex=i,r||ee(),T()),s!==e.active&&(t(`update:active`,s),l&&t(`change`,s,o.title)),a&&!e.scrollspy&&LC(Math.ceil(RC(c.value)-C.value))},O=(e,t)=>{let n=g.findIndex((t,n)=>x(t,n)===e);D(n===-1?0:n,t)},te=(t=!1)=>{if(e.scrollspy){let n=g[v.currentIndex].$el;if(n&&p.value){let r=RC(n,p.value)-w.value;i=!0,s&&s(),s=ET(p.value,r,t?0:+e.duration,()=>{i=!1})}}},ne=(n,r,i)=>{let{title:a,disabled:o}=g[r],s=x(g[r],r);o||(_w(e.beforeChange,{args:[s],done:()=>{D(r),te()}}),Cw(n)),t(`clickTab`,{name:s,title:a,event:i,disabled:o})},re=e=>{a=e.isFixed,t(`scroll`,e)},ie=e=>{rr(()=>{O(e),te(!0)})},ae=()=>{for(let e=0;e<g.length;e++){let{top:t}=hC(g[e].$el);if(t>w.value)return e===0?0:e-1}return g.length-1},oe=()=>{if(e.scrollspy&&!i){let e=ae();D(e)}},se=()=>{if(e.type===`line`&&g.length)return G(`div`,{class:UT(`line`),style:v.lineStyle},null)},ce=()=>{let{type:t,border:r,sticky:i}=e,a=[G(`div`,{ref:i?void 0:u,class:[UT(`wrap`),{[mw]:t===`line`&&r}]},[G(`div`,{ref:l,role:`tablist`,class:UT(`nav`,[t,{shrink:e.shrink,complete:y.value}]),style:b.value,"aria-orientation":`horizontal`},[n[`nav-left`]?.call(n),g.map(e=>e.renderTitle(ne)),se(),n[`nav-right`]?.call(n)])]),n[`nav-bottom`]?.call(n)];return i?G(`div`,{ref:u},[a]):a},le=()=>{T(),rr(()=>{var e;ee(!0),(e=d.value?.swipeRef.value)==null||e.resize()})};return $r(()=>[e.color,e.duration,e.lineWidth,e.lineHeight],T),$r(HC,le),$r(()=>e.active,e=>{e!==S.value&&O(e)}),$r(()=>g.length,()=>{v.inited&&(O(e.active),T(),rr(()=>{ee(!0)}))}),xw({resize:le,scrollTo:ie}),Vi(T),bw(T),xC(()=>{O(e.active,!0),rr(()=>{v.inited=!0,u.value&&(r=hC(u.value).height),ee(!0)})}),AT(c,T),SC(`scroll`,oe,{target:p,passive:!0}),_({id:f,props:e,setLine:T,scrollable:y,onRendered:(e,n)=>t(`rendered`,e,n),currentName:S,setTitleRefs:h,scrollIntoView:ee}),()=>G(`div`,{ref:c,class:UT([e.type])},[e.showHeader?e.sticky?G(NT,{container:c.value,offsetTop:C.value,onScroll:re},{default:()=>[ce()]}):ce():null,G(VT,{ref:d,count:g.length,inited:v.inited,animated:e.animated,duration:e.duration,swipeable:e.swipeable,lazyRender:e.lazyRender,currentIndex:v.currentIndex,onChange:D},{default:()=>[n.default?.call(n)]})])}}),qT=Symbol(),JT=Symbol(),YT=()=>Yr(JT,null),XT=e=>{let t=YT();Jr(qT,e),Jr(JT,Zs(()=>(t==null||t.value)&&e.value))},[ZT,QT]=fw(`tab`),$T=Mi({name:ZT,props:{id:String,dot:Boolean,type:String,color:String,title:String,badge:nC,shrink:Boolean,isActive:Boolean,disabled:Boolean,controls:String,scrollable:Boolean,activeColor:String,inactiveColor:String,showZeroBadge:rC},setup(e,{slots:t}){let n=Zs(()=>{let t={},{type:n,color:r,disabled:i,isActive:a,activeColor:o,inactiveColor:s}=e;r&&n===`card`&&(t.borderColor=r,i||(a?t.backgroundColor=r:t.color=r));let c=a?o:s;return c&&(t.color=c),t}),r=()=>{let n=G(`span`,{class:QT(`text`,{ellipsis:!e.scrollable})},[t.title?t.title():e.title]);return e.dot||JS(e.badge)&&e.badge!==``?G(Ew,{dot:e.dot,content:e.badge,showZero:e.showZeroBadge},{default:()=>[n]}):n};return()=>G(`div`,{id:e.id,role:`tab`,class:[QT([e.type,{grow:e.scrollable&&!e.shrink,shrink:e.shrink,active:e.isActive,disabled:e.disabled}])],style:n.value,tabindex:e.disabled?void 0:e.isActive?0:-1,"aria-selected":e.isActive,"aria-disabled":e.disabled||void 0,"aria-controls":e.controls,"data-allow-mismatch":`attribute`},[r()])}}),[eE,tE]=fw(`swipe-item`),nE=vw(Mi({name:eE,setup(e,{slots:t}){let n,r=cn({offset:0,inited:!1,mounted:!1}),{parent:i,index:a}=gC(LT);if(!i){console.error(`[Vant] <SwipeItem> must be a child component of <Swipe>.`);return}let o=Zs(()=>{let e={},{vertical:t}=i.props;return i.size.value&&(e[t?`height`:`width`]=`${i.size.value}px`),r.offset&&(e.transform=`translate${t?`Y`:`X`}(${r.offset}px)`),e}),s=Zs(()=>{let{loop:e,lazyRender:t}=i.props;if(!t||n)return!0;if(!r.mounted)return!1;let o=i.activeIndicator.value,s=i.count.value-1,c=o===0&&e?s:o-1,l=o===s&&e?0:o+1;return n=a.value===o||a.value===c||a.value===l,n});return Ji(()=>{rr(()=>{r.mounted=!0})}),xw({setOffset:e=>{r.offset=e}}),()=>G(`div`,{class:tE(),style:o.value},[s.value?t.default?.call(t):null])}})),[rE,iE]=fw(`tab`);vw(Mi({name:rE,props:GS({},Sw,{dot:Boolean,name:nC,badge:nC,title:String,disabled:Boolean,titleClass:null,titleStyle:[String,Object],showZeroBadge:rC}),setup(e,{slots:t}){let n=OT(),r=P(!1),i=Os(),{parent:a,index:o}=gC(GT);if(!a){console.error(`[Vant] <Tab> must be a child component of <Tabs>.`);return}let s=()=>e.name??o.value,c=()=>{r.value=!0,a.props.lazyRender&&rr(()=>{a.onRendered(s(),e.title)})},l=Zs(()=>{let e=s()===a.currentName.value;return e&&!r.value&&c(),e}),u=P(``),d=P(``);Qr(()=>{let{titleClass:t,titleStyle:n}=e;u.value=t?j(t):``,d.value=n&&typeof n!=`string`?Ee(A(n)):n});let f=r=>G($T,xs({key:n,id:`${a.id}-${o.value}`,ref:a.setTitleRefs(o.value),style:d.value,class:u.value,isActive:l.value,controls:n,scrollable:a.scrollable.value,activeColor:a.props.titleActiveColor,inactiveColor:a.props.titleInactiveColor,onClick:e=>r(i.proxy,o.value,e)},eC(a.props,[`type`,`color`,`shrink`]),eC(e,[`dot`,`badge`,`title`,`disabled`,`showZeroBadge`])),{title:t.title}),p=P(!l.value);return $r(l,e=>{e?p.value=!1:fC(()=>{p.value=!0})}),$r(()=>e.title,()=>{a.setLine(),a.scrollIntoView()}),XT(l),xw({id:n,renderTitle:f}),()=>{let e=`${a.id}-${o.value}`,{animated:i,swipeable:s,scrollspy:c,lazyRender:u}=a.props;if(!t.default&&!i)return;let d=c||l.value;if(i||s)return G(nE,{id:n,role:`tabpanel`,class:iE(`panel-wrapper`,{inactive:p.value}),tabindex:l.value?0:-1,"aria-hidden":!l.value,"aria-labelledby":e,"data-allow-mismatch":`attribute`},{default:()=>[G(`div`,{class:iE(`panel`)},[t.default?.call(t)])]});let f=r.value||c||!u?t.default?.call(t):null;return L(G(`div`,{id:n,role:`tabpanel`,class:iE(`panel`),tabindex:d?0:-1,"aria-labelledby":e,"data-allow-mismatch":`attribute`},[f]),[[Nc,d]])}}})),vw(KT);var[aE,oE]=fw(`picker-group`),sE=Symbol(aE);GS({tabs:aC(),activeTab:sC(0),nextStepText:String,showToolbar:rC},xT);var cE=vw(Mi({name:nT,props:GS({},GS({loading:Boolean,readonly:Boolean,allowHtml:Boolean,optionHeight:sC(44),showToolbar:rC,swipeDuration:sC(1e3),visibleOptionNum:sC(6)},xT),{columns:aC(),modelValue:aC(),toolbarPosition:cC(`top`),columnsFieldNames:Object}),emits:[`confirm`,`cancel`,`change`,`scrollInto`,`clickOption`,`update:modelValue`],setup(e,{emit:t,slots:n}){let r=P(),i=P(e.modelValue.slice(0)),{parent:a}=gC(sE),{children:o,linkChildren:s}=bC(vT);s();let c=Zs(()=>fT(e.columnsFieldNames)),l=Zs(()=>QC(e.optionHeight)),u=Zs(()=>oT(e.columns,c.value)),d=Zs(()=>{let{columns:t}=e;switch(u.value){case`multiple`:return t;case`cascade`:return uT(t,c.value,i);default:return[t]}}),f=Zs(()=>d.value.some(e=>e.length)),p=Zs(()=>d.value.map((e,t)=>lT(e,i.value[t],c.value))),m=Zs(()=>d.value.map((e,t)=>e.findIndex(e=>e[c.value.value]===i.value[t]))),h=(e,t)=>{if(i.value[e]!==t){let n=i.value.slice(0);n[e]=t,i.value=n}},g=()=>({selectedValues:i.value.slice(0),selectedOptions:p.value,selectedIndexes:m.value}),_=(e,n)=>{h(n,e),u.value===`cascade`&&i.value.forEach((e,t)=>{let n=d.value[t];cT(n,e,c.value)||h(t,n.length?n[0][c.value.value]:void 0)}),rr(()=>{t(`change`,GS({columnIndex:n},g()))})},v=(e,n)=>{let r={columnIndex:n,currentOption:e};t(`clickOption`,GS(g(),r)),t(`scrollInto`,r)},y=()=>{o.forEach(e=>e.stopMomentum());let e=g();return rr(()=>{t(`confirm`,g())}),e},b=()=>t(`cancel`,g()),x=()=>d.value.map((r,a)=>G(yT,{value:i.value[a],fields:c.value,options:r,readonly:e.readonly,allowHtml:e.allowHtml,optionHeight:l.value,swipeDuration:e.swipeDuration,visibleOptionNum:e.visibleOptionNum,onChange:e=>_(e,a),onClickOption:e=>v(e,a),onScrollInto:e=>{t(`scrollInto`,{currentOption:e,columnIndex:a})}},{option:n.option})),S=e=>{if(f.value){let t={height:`${l.value}px`},n={backgroundSize:`100% ${(e-l.value)/2}px`};return[G(`div`,{class:rT(`mask`),style:n},null),G(`div`,{class:[hw,rT(`frame`)],style:t},null)]}},C=()=>{let t=l.value*+e.visibleOptionNum,i={height:`${t}px`};return!e.loading&&!f.value&&n.empty?n.empty():G(`div`,{ref:r,class:rT(`columns`),style:i},[x(),S(t)])},w=()=>{if(e.showToolbar&&!a)return G(wT,xs(eC(e,CT),{onConfirm:y,onCancel:b}),eC(n,ST))},ee=e=>{e.forEach((e,t)=>{e.length&&!cT(e,i.value[t],c.value)&&h(t,aT(e)[c.value.value])})};$r(d,e=>ee(e),{immediate:!0});let T;return $r(()=>e.modelValue,t=>{!tC(t,i.value)&&!tC(t,T)&&(i.value=t.slice(0),T=t.slice(0)),e.modelValue.length===0&&ee(d.value)},{deep:!0}),$r(i,n=>{tC(n,e.modelValue)||(T=n.slice(0),t(`update:modelValue`,T))},{immediate:!0}),SC(`touchmove`,BC,{target:r}),xw({confirm:y,getSelectedOptions:()=>p.value}),()=>G(`div`,{class:rT()},[e.toolbarPosition===`top`?w():null,e.loading?G(Bw,{class:rT(`loading`)},null):null,n[`columns-top`]?.call(n),C(),n[`columns-bottom`]?.call(n),e.toolbarPosition===`bottom`?w():null])}})),lE=0;function uE(e){e?(lE||document.body.classList.add(`van-toast--unclickable`),lE++):lE&&(lE--,lE||document.body.classList.remove(`van-toast--unclickable`))}var[dE,fE]=fw(`toast`),pE=[`show`,`overlay`,`teleport`,`transition`,`overlayClass`,`overlayStyle`,`closeOnClickOverlay`,`zIndex`],mE=Mi({name:dE,props:{icon:String,show:Boolean,type:cC(`text`),overlay:Boolean,message:nC,iconSize:nC,duration:oC(2e3),position:cC(`middle`),teleport:[String,Object],wordBreak:String,className:null,iconPrefix:String,transition:cC(`van-fade`),loadingType:String,forbidClick:Boolean,overlayClass:null,overlayStyle:Object,closeOnClick:Boolean,closeOnClickOverlay:Boolean,zIndex:nC},emits:[`update:show`],setup(e,{emit:t,slots:n}){let r,i=!1,a=()=>{let t=e.show&&e.forbidClick;i!==t&&(i=t,uE(i))},o=e=>t(`update:show`,e),s=()=>{e.closeOnClick&&o(!1)},c=()=>clearTimeout(r),l=()=>{let{icon:t,type:n,iconSize:r,iconPrefix:i,loadingType:a}=e;if(t||n===`success`||n===`fail`)return G(Fw,{name:t||n,size:r,class:fE(`icon`),classPrefix:i},null);if(n===`loading`)return G(Bw,{class:fE(`loading`),size:r,type:a},null)},u=()=>{let{type:t,message:r}=e;if(n.message)return G(`div`,{class:fE(`text`)},[n.message()]);if(JS(r)&&r!==``)return t===`html`?G(`div`,{key:0,class:fE(`text`),innerHTML:String(r)},null):G(`div`,{class:fE(`text`)},[r])};return $r(()=>[e.show,e.forbidClick],a),$r(()=>[e.show,e.type,e.message,e.duration],()=>{c(),e.show&&e.duration>0&&(r=setTimeout(()=>{o(!1)},e.duration))}),Ji(a),Qi(a),()=>G(tT,xs({class:[fE([e.position,e.wordBreak===`normal`?`break-normal`:e.wordBreak,{[e.type]:!e.icon}]),e.className],lockScroll:!1,onClick:s,onClosed:c,"onUpdate:show":o},eC(e,pE)),{default:()=>[l(),u()]})}});function hE(){let e=cn({show:!1}),t=t=>{e.show=t},n=n=>{GS(e,n,{transitionAppear:!0}),t(!0)},r=()=>t(!1);return xw({open:n,close:r,toggle:t}),{open:n,close:r,state:e,toggle:t}}function gE(e){let t=Fl(e),n=document.createElement(`div`);return document.body.appendChild(n),{instance:t.mount(n),unmount(){t.unmount(),document.body.removeChild(n)}}}var _E={icon:``,type:`text`,message:``,className:``,overlay:!1,onClose:void 0,onOpened:void 0,duration:2e3,teleport:`body`,iconSize:void 0,iconPrefix:void 0,position:`middle`,transition:`van-fade`,forbidClick:!1,loadingType:void 0,overlayClass:``,overlayStyle:void 0,closeOnClick:!1,closeOnClickOverlay:!1},vE=[],yE=GS({},_E),bE=new Map;function xE(e){return qS(e)?e:{message:e}}function SE(){let{instance:e,unmount:t}=gE({setup(){let e=P(``),{open:t,state:n,close:r,toggle:i}=hE(),a=()=>{},o=()=>G(mE,xs(n,{onClosed:a,"onUpdate:show":i}),null);return $r(e,e=>{n.message=e}),Os().render=o,{open:t,close:r,message:e}}});return e}function CE(){if(!vE.length){let e=SE();vE.push(e)}return vE[vE.length-1]}function wE(e={}){if(!KS)return{};let t=CE(),n=xE(e);return t.open(GS({},yE,bE.get(n.type||yE.type),n)),t}var TE=e=>{vE.length&&(e?(vE.forEach(e=>{e.close()}),vE=[]):vE[0].close())},[EE,DE]=fw(`key`),OE=G(`svg`,{class:DE(`collapse-icon`),viewBox:`0 0 30 24`},[G(`path`,{d:`M26 13h-2v2h2v-2zm-8-3h2V8h-2v2zm2-4h2V4h-2v2zm2 4h4V4h-2v4h-2v2zm-7 14 3-3h-6l3 3zM6 13H4v2h2v-2zm16 0H8v2h14v-2zm-12-3h2V8h-2v2zM28 0l1 1 1 1v15l-1 2H1l-1-2V2l1-1 1-1zm0 2H2v15h26V2zM6 4v2H4V4zm10 2h2V4h-2v2zM8 9v1H4V8zm8 0v1h-2V8zm-6-5v2H8V4zm4 0v2h-2V4z`,fill:`currentColor`},null)]),kE=G(`svg`,{class:DE(`delete-icon`),viewBox:`0 0 32 22`},[G(`path`,{d:`M28 0a4 4 0 0 1 4 4v14a4 4 0 0 1-4 4H10.4a2 2 0 0 1-1.4-.6L1 13.1c-.6-.5-.9-1.3-.9-2 0-1 .3-1.7.9-2.2L9 .6a2 2 0 0 1 1.4-.6zm0 2H10.4l-8.2 8.3a1 1 0 0 0-.3.7c0 .3.1.5.3.7l8.2 8.4H28a2 2 0 0 0 2-2V4c0-1.1-.9-2-2-2zm-5 4a1 1 0 0 1 .7.3 1 1 0 0 1 0 1.4L20.4 11l3.3 3.3c.2.2.3.5.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3L19 12.4l-3.4 3.3a1 1 0 0 1-.6.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.2.1-.5.3-.7l3.3-3.3-3.3-3.3A1 1 0 0 1 14 7c0-.3.1-.5.3-.7A1 1 0 0 1 15 6a1 1 0 0 1 .6.3L19 9.6l3.3-3.3A1 1 0 0 1 23 6z`,fill:`currentColor`},null)]),AE=Mi({name:EE,props:{type:String,text:nC,color:String,wider:Boolean,large:Boolean,loading:Boolean},emits:[`press`],setup(e,{emit:t,slots:n}){let r=P(!1),i=Uw(),a=e=>{i.start(e),r.value=!0},o=e=>{i.move(e),i.direction.value&&(r.value=!1)},s=i=>{r.value&&(n.default||BC(i),r.value=!1,t(`press`,e.text,e.type))},c=()=>{if(e.loading)return G(Bw,{class:DE(`loading-icon`)},null);let t=n.default?n.default():e.text;switch(e.type){case`delete`:return t||kE;case`extra`:return t||OE;default:return t}};return()=>G(`div`,{class:DE(`wrapper`,{wider:e.wider}),onTouchstartPassive:a,onTouchmovePassive:o,onTouchend:s,onTouchcancel:s},[G(`div`,{role:`button`,tabindex:0,class:DE([e.color,{large:e.large,active:r.value,delete:e.type===`delete`}])},[c()])])}}),[jE,ME]=fw(`number-keyboard`),NE={show:Boolean,title:String,theme:cC(`default`),zIndex:nC,teleport:[String,Object],maxlength:sC(1/0),modelValue:cC(``),transition:rC,blurOnClose:rC,showDeleteKey:rC,randomKeyOrder:Boolean,closeButtonText:String,deleteButtonText:String,closeButtonLoading:Boolean,hideOnClickOutside:rC,safeAreaInsetBottom:rC,extraKey:{type:[String,Array],default:``}};function PE(e){for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}var FE=vw(Mi({name:jE,inheritAttrs:!1,props:NE,emits:[`show`,`hide`,`blur`,`input`,`close`,`delete`,`update:modelValue`],setup(e,{emit:t,slots:n,attrs:r}){let i=P(),a=()=>{let t=Array(9).fill(``).map((e,t)=>({text:t+1}));return e.randomKeyOrder&&PE(t),t},o=()=>[...a(),{text:e.extraKey,type:`extra`},{text:0},{text:e.showDeleteKey?e.deleteButtonText:``,type:e.showDeleteKey?`delete`:``}],s=()=>{let t=a(),{extraKey:n}=e,r=Array.isArray(n)?n:[n];return r.length===0?t.push({text:0,wider:!0}):r.length===1?t.push({text:0,wider:!0},{text:r[0],type:`extra`}):r.length===2&&t.push({text:r[0],type:`extra`},{text:0},{text:r[1],type:`extra`}),t},c=Zs(()=>e.theme===`custom`?s():o()),l=()=>{e.show&&t(`blur`)},u=()=>{t(`close`),e.blurOnClose&&l()},d=()=>t(e.show?`show`:`hide`),f=(n,r)=>{if(n===``){r===`extra`&&l();return}let i=e.modelValue;r===`delete`?(t(`delete`),t(`update:modelValue`,i.slice(0,i.length-1))):r===`close`?u():i.length<+e.maxlength&&(t(`input`,n),t(`update:modelValue`,i+n))},p=()=>{let{title:t,theme:r,closeButtonText:i}=e,a=n[`title-left`],o=i&&r==="default";if(t||o||a)return G(`div`,{class:ME(`header`)},[a&&G(`span`,{class:ME(`title-left`)},[a()]),t&&G(`h2`,{class:ME(`title`)},[t]),o&&G(`button`,{type:`button`,class:[ME(`close`),`van-haptics-feedback`],onClick:u},[i])])},m=()=>c.value.map(e=>{let t={};return e.type===`delete`&&(t.default=n.delete),e.type===`extra`&&(t.default=n[`extra-key`]),G(AE,{key:e.text,text:e.text,type:e.type,wider:e.wider,color:e.color,onPress:f},t)}),h=()=>{if(e.theme===`custom`)return G(`div`,{class:ME(`sidebar`)},[e.showDeleteKey&&G(AE,{large:!0,text:e.deleteButtonText,type:`delete`,onPress:f},{default:n.delete}),G(AE,{large:!0,text:e.closeButtonText,type:`close`,color:`blue`,loading:e.closeButtonLoading,onPress:f},null)])};return $r(()=>e.show,n=>{e.transition||t(n?`show`:`hide`)}),e.hideOnClickOutside&&CC(i,l,{eventName:`touchstart`}),()=>{let t=p(),n=G(hc,{name:e.transition?`van-slide-up`:``},{default:()=>[L(G(`div`,xs({ref:i,style:KC(e.zIndex),class:ME({unfit:!e.safeAreaInsetBottom,"with-title":!!t}),onAnimationend:d,onTouchstartPassive:zC},r),[t,G(`div`,{class:ME(`body`)},[G(`div`,{class:ME(`keys`)},[m()]),h()])]),[[Nc,e.show]])]});return e.teleport?G(mi,{to:e.teleport},{default:()=>[n]}):n}}})),IE=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21],LE=Array(64);for(let e=0;e<64;e++)LE[e]=Math.floor(Math.abs(Math.sin(e+1))*4294967296);var RE=(e,t,n)=>e&t|~e&n,zE=(e,t,n)=>e&n|t&~n,BE=(e,t,n)=>e^t^n,VE=(e,t,n)=>t^(e|~n);function HE(e){let t=``;for(let n=0;n<32;n+=8)t+=(e>>>n&255).toString(16).padStart(2,`0`);return t}function UE(e){let t=new TextEncoder().encode(String(e)),n=t.length,r=Math.ceil((n+9)/64)*16,i=new Uint32Array(r);for(let e=0;e<n;e++)i[e>>2]|=t[e]<<e%4*8;i[n>>2]|=128<<n%4*8;let a=n*8;i[r-2]=a>>>0,i[r-1]=Math.floor(a/4294967296);let o=1732584193,s=4023233417,c=2562383102,l=271733878;for(let e=0;e<r;e+=16){let t=o,n=s,r=c,a=l;for(let o=0;o<64;o++){let s,c;o<16?(s=RE(n,r,a),c=o):o<32?(s=zE(n,r,a),c=(5*o+1)%16):o<48?(s=BE(n,r,a),c=(3*o+5)%16):(s=VE(n,r,a),c=7*o%16);let l=a;a=r,r=n;let u=t+s+LE[o]+i[e+c]>>>0,d=IE[(o>>4)*4+o%4];n=((u<<d|u>>>32-d)>>>0)+n>>>0,t=l}o=o+t>>>0,s=s+n>>>0,c=c+r>>>0,l=l+a>>>0}return HE(o)+HE(s)+HE(c)+HE(l)}var WE=cn({dialog:null,picker:null,datePicker:null,keyboard:null,loadingEx:null}),GE=[],KE=0,qE=null,JE=[],YE=0,XE=[],ZE=0,QE=2200;function $E(e,t){if(typeof e==`function`)try{e(t)}catch{}}function eD(){WE.dialog=GE.length?GE.shift():null}function tD(e,t){let n=e||{};GE.push({id:++KE,title:n.title||``,message:n.message==null?``:String(n.message),okButton:n.okButton||`确定`,cancelButton:n.cancelButton||``,clickBgToHide:n.clickBgToHide===!0,cancelGrayStyle:n.cancelGrayStyle===!0,callback:t}),WE.dialog||eD()}function nD(e){let t=WE.dialog;t&&(WE.dialog=null,$E(t.callback,{success:!0,data:{ok:!!e.ok,dismissByClickBg:!!e.dismissByClickBg}}),eD())}function rD(e,t){let n=e||{},r=n.showIcon==null?``:String(n.showIcon),i=r===`1`?`success`:r===`0`?`fail`:`text`;try{wE({type:i,message:n.message==null?``:String(n.message),duration:QE,teleport:document.querySelector(`.phone-viewport`)||void 0})}catch{}$E(t,{success:!0,data:{}})}function iD(e,t){let n=e||{},r=Array.isArray(n.currentValue)?n.currentValue:[];r.length&&Array.isArray(r[0])&&(r=r[0]),JE.push({id:++YE,title:n.title||``,mode:n.mode===`multi`?`multi`:`single`,dataSource:Array.isArray(n.dataSource)?n.dataSource:[],currentValue:r.map(e=>String(e)),callback:t}),WE.picker||aD()}function aD(){WE.picker=JE.length?JE.shift():null}function oD(e,t){let n=WE.picker;if(n){if(WE.picker=null,e){let e={success:!0,error:`0`,data:{result:t},result:t};$E(n.callback,e)}else $E(n.callback,{success:!0,data:{}});aD()}}function sD(e,t){let n=e||{},r=[`year_month_day`,`year_month`,`month_day`].includes(n.type)?n.type:`year_month_day`;XE.push({id:++ZE,title:n.title||``,type:r,startDate:n.startDate||`1970-1-1`,endDate:n.endDate||`2100-12-31`,selectDate:n.selectDate||``,callback:t}),WE.datePicker||cD()}function cD(){WE.datePicker=XE.length?XE.shift():null}function lD(e,t){let n=WE.datePicker;if(n){if(WE.datePicker=null,e){let e={success:!0,error:`0`,currentDate:t.value,data:{year:t.year,month:t.month,day:t.day,value:t.value}};$E(n.callback,e)}else $E(n.callback,{success:!0,data:{}});cD()}}var uD=[`number`,`password`,`idcard`];function dD(e){let t=``;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n).toString(16).padStart(2,`0`);return t}function fD(e){let t=!1,n=!1,r=!1;for(let i of e)i>=`0`&&i<=`9`?t=!0:i>=`a`&&i<=`z`||i>=`A`&&i<=`Z`?n=!0:r=!0;return+!!t+ +!!n+ +!!r}function pD(e){if(!e)return!1;if(/^(.)\1*$/.test(e))return!0;if(e.length>=3){let t=!0,n=!0;for(let r=1;r<e.length;r++){let i=e.charCodeAt(r)-e.charCodeAt(r-1);i!==1&&(t=!1),i!==-1&&(n=!1)}if(t||n)return!0}return!1}function mD(e,t){let n=e.value;return{success:!0,data:{value:e.isEncry?dD(n):n,md5:UE(n),inputSimple:pD(n),inputLevel:fD(n),isMatch:!e.regular||new RegExp(e.regular).test(n),length:n.length,action:t,error:`0`,errorMessage:``}}}function hD(e,t){let n=e||{},r=uD.includes(n.type)?n.type:`number`;WE.keyboard&&vD();let i=n.max==null?n.maxLength:n.max,a=Number(i)>0?Number(i):r===`password`?6:r===`idcard`?18:0,o=n.isEncry===void 0?r!==`number`:!!n.isEncry;WE.keyboard={type:r,maxLength:a,random:n.random===void 0?r!==`number`:!!n.random,extraKey:r===`idcard`?`X`:``,isEncry:o,encryptType:n.encryptType||(o?`SM2SM4`:``),randomKey:n.randomKey||``,regular:n.regular||``,value:``,callback:t}}function gD(e){let t=WE.keyboard;t&&(t.maxLength>0&&t.value.length>=t.maxLength||(t.value+=e,$E(t.callback,mD(t,`input`))))}function _D(){let e=WE.keyboard;e&&e.value&&(e.value=e.value.slice(0,-1),$E(e.callback,mD(e,`input`)))}function vD(){let e=WE.keyboard;e&&(WE.keyboard=null,$E(e.callback,mD(e,`hide`)))}function yD(e,t){vD(),$E(t,{success:!0,data:{}})}function bD(e,t){let n=e||{},r=n.message==null?``:String(n.message),i=Number(n.duration)>0?Number(n.duration):8;qE&&=(clearTimeout(qE),null),WE.loadingEx={message:r},qE=setTimeout(()=>{qE=null,WE.loadingEx=null},i*1e3),$E(t,{success:!0,data:{}})}function xD(e,t){qE&&=(clearTimeout(qE),null),WE.loadingEx=null,$E(t,{success:!0,data:{}})}function SD(e,t){let n=e||{},r=n.text==null?``:String(n.text),i=()=>$E(t,{success:!1,error:`-1`,errorMessage:`复制失败`,data:{}}),a=()=>$E(t,{success:!0,data:{}}),o=()=>{try{let e=document.createElement(`textarea`);e.value=r,e.style.cssText=`position:fixed;opacity:0;pointer-events:none`,document.body.appendChild(e),e.select();let t=document.execCommand(`copy`);return document.body.removeChild(e),t}catch{return!1}};navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(r).then(a,()=>o()?a():i()):o()?a():i()}var CD={alertCard:(e,t)=>IS(e,t),closeAlertCard:(e,t)=>LS(e,t),alertDialog:tD,showToast:rD,showPicker:iD,showDatePicker:sD,showKeyboard:hD,hideKeyboard:yD,showLoadingEx:bD,hideLoadingEx:xD,copyToClipboard:SD};function wD(e){typeof window<`u`&&(window.ynet={callJSAPI(t,n,r){e&&e.pushApiCall&&e.pushApiCall(t,n);let i=CD[t];i?i(n,r):$E(r,{success:!0,data:{}})}})}function TD(){GE.length=0,WE.dialog=null;try{TE()}catch{}JE.length=0,WE.picker=null,XE.length=0,WE.datePicker=null,WE.keyboard=null,qE&&=(clearTimeout(qE),null),WE.loadingEx=null}var ED={name:`DeviceOverlay`,computed:{dialog(){return WE.dialog}},methods:{onOk(){nD({ok:!0,dismissByClickBg:!1})},onCancel(){nD({ok:!1,dismissByClickBg:!1})},onMaskClick(){this.dialog&&this.dialog.clickBgToHide&&nD({ok:!1,dismissByClickBg:!0})}}},DD={class:`device-ui`},OD={class:`dlg`},kD={key:0,class:`dlg__title`},AD={key:1,class:`dlg__msg`},jD={class:`dlg__btns`};function MD(e,t,n,r,i,a){return V(),H(`div`,DD,[q(` alertDialog:原生风格居中确认对话框 `),G(hc,{name:`dlg-fade`},{default:I(()=>[a.dialog?(V(),H(`div`,{key:0,class:`dlg-mask`,onClick:t[2]||=J((...e)=>a.onMaskClick&&a.onMaskClick(...e),[`self`])},[W(`div`,OD,[a.dialog.title?(V(),H(`div`,kD,M(a.dialog.title),1)):q(`v-if`,!0),a.dialog.message?(V(),H(`div`,AD,M(a.dialog.message),1)):q(`v-if`,!0),W(`div`,jD,[a.dialog.cancelButton?(V(),H(`button`,{key:0,type:`button`,class:j([`dlg__btn dlg__btn--cancel`,{"dlg__btn--gray":a.dialog.cancelGrayStyle}]),onClick:t[0]||=(...e)=>a.onCancel&&a.onCancel(...e)},M(a.dialog.cancelButton),3)):q(`v-if`,!0),W(`button`,{type:`button`,class:`dlg__btn dlg__btn--ok`,onClick:t[1]||=(...e)=>a.onOk&&a.onOk(...e)},M(a.dialog.okButton),1)])])])):q(`v-if`,!0)]),_:1})])}var ND=Z(ED,[[`render`,MD],[`__file`,`/Users/ynet/dsl-card/card-editor/components/DeviceOverlay.vue`]]),PD=0,FD=!1;typeof document<`u`&&(document.addEventListener(`touchmove`,()=>{FD=!0},{capture:!0,passive:!0}),document.addEventListener(`touchend`,()=>{FD&&(PD=Date.now()),FD=!1},{capture:!0}));function ID(){return Date.now()-PD<200}var LD={name:`PickerOverlay`,components:{VanPicker:cE},data(){return{selKeys:[],OPTION_H:44,VISIBLE_N:5,SWIPE_MS:240}},computed:{picker(){return WE.picker},fieldNames(){return{text:`text`,value:`key`,children:`children`}},columns(){if(!this.picker)return[];let e=this.picker.dataSource||[];return this.picker.mode===`multi`?e.map(e=>({text:e.text,key:String(e.key),children:e.children||[]})):e.map(e=>({text:e.text,key:String(e.key)}))}},watch:{picker:{immediate:!0,handler(e){if(!e){this.selKeys=[];return}let t=e.dataSource||[],n=(e.currentValue||[]).map(e=>String(e));if(e.mode===`multi`){let e=t.find(e=>String(e.key)===n[0])||t[0],r=e&&e.children||[],i=r.find(e=>String(e.key)===n[1])||r[0];this.selKeys=[e?String(e.key):``,i?String(i.key):``]}else{let e=t.find(e=>String(e.key)===n[0])||t[0];this.selKeys=[e?String(e.key):``]}}}},methods:{onChange(e){this.selKeys=(e.selectedValues||[]).map(e=>String(e))},buildResult(){let e=this.picker;if(!e)return[];let t=e.dataSource||[],n=e=>({key:String(e.key),text:e.text,value:e.text});if(e.mode===`multi`){let e=t.find(e=>String(e.key)===this.selKeys[0])||t[0],r=e&&e.children||[],i=r.find(e=>String(e.key)===this.selKeys[1])||r[0],a=[];return e&&a.push(n(e)),i&&a.push(n(i)),a}let r=t.find(e=>String(e.key)===this.selKeys[0])||t[0];return r?[n(r)]:[]},onConfirm(){oD(!0,this.buildResult())},onMaskClick(){ID()||this.onCancel()},onCancel(){oD(!1)}}},RD={class:`device-ui`},zD={class:`pk-sheet`},BD={class:`pk-bar`},VD={key:0,class:`pk-bar__title`};function HD(e,t,n,r,i,a){let o=R(`van-picker`);return V(),H(`div`,RD,[G(hc,{name:`picker-fade`},{default:I(()=>[a.picker?(V(),H(`div`,{key:0,class:`pk-mask`,onClick:t[2]||=J((...e)=>a.onMaskClick&&a.onMaskClick(...e),[`self`])},[W(`div`,zD,[W(`div`,BD,[W(`button`,{type:`button`,class:`pk-bar__btn pk-bar__btn--cancel`,onClick:t[0]||=(...e)=>a.onCancel&&a.onCancel(...e)},`取消`),a.picker.title?(V(),H(`div`,VD,M(a.picker.title),1)):q(`v-if`,!0),W(`button`,{type:`button`,class:`pk-bar__btn pk-bar__btn--ok`,onClick:t[1]||=(...e)=>a.onConfirm&&a.onConfirm(...e)},`确定`)]),q(` ⚠️ vant 4 属性名是 option-height / visible-option-num(Vant 2 的
|
|
247
|
+
每张弹窗卡都是全新实例,各自持有独立 cardRuntime(对齐组件头设计意图)。 `),(V(),U(o,{key:e.id,entry:e,"main-rt":n.mainRt},null,8,[`entry`,`main-rt`]))],4)],10,VS)),[[Nc,e===a.top]])),128))])):q(`v-if`,!0)}var US=Z(zS,[[`render`,HS],[`__file`,`/Users/ynet/dsl-card/card-editor/components/AlertCardLayer.vue`]]);function WS(){}var GS=Object.assign,KS=typeof window<`u`,qS=e=>typeof e==`object`&&!!e,JS=e=>e!=null,YS=e=>typeof e==`function`,XS=e=>qS(e)&&YS(e.then)&&YS(e.catch),ZS=e=>typeof e==`number`||/^\d+(\.\d+)?$/.test(e),QS=()=>KS?/ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()):!1;function $S(e,t){let n=t.split(`.`),r=e;return n.forEach(e=>{r=qS(r)?r[e]??``:``}),r}function eC(e,t,n){return t.reduce((t,r)=>(n&&e[r]===void 0||(t[r]=e[r]),t),{})}var tC=(e,t)=>JSON.stringify(e)===JSON.stringify(t),nC=[Number,String],rC={type:Boolean,default:!0},iC=e=>({type:e,required:!0}),aC=()=>({type:Array,default:()=>[]}),oC=e=>({type:Number,default:e}),sC=e=>({type:nC,default:e}),cC=e=>({type:String,default:e}),lC=typeof window<`u`;function uC(e){return lC?requestAnimationFrame(e):-1}function dC(e){lC&&cancelAnimationFrame(e)}function fC(e){uC(()=>uC(e))}var pC=e=>e===window,mC=(e,t)=>({top:0,left:0,right:e,bottom:t,width:e,height:t}),hC=e=>{let t=Cn(e);if(pC(t)){let e=t.innerWidth,n=t.innerHeight;return mC(e,n)}return t?.getBoundingClientRect?t.getBoundingClientRect():mC(0,0)};function gC(e){let t=Yr(e,null);if(t){let e=Os(),{link:n,unlink:r,internalChildren:i}=t;return n(e),Qi(()=>r(e)),{parent:t,index:Zs(()=>i.indexOf(e))}}return{parent:null,index:P(-1)}}function _C(e){let t=[],n=e=>{Array.isArray(e)&&e.forEach(e=>{ss(e)&&(t.push(e),e.component?.subTree&&(t.push(e.component.subTree),n(e.component.subTree.children)),e.children&&n(e.children))})};return n(e),t}var vC=(e,t)=>{let n=e.indexOf(t);return n===-1?e.findIndex(e=>t.key!==void 0&&t.key!==null&&e.type===t.type&&e.key===t.key):n};function yC(e,t,n){let r=_C(e.subTree.children);n.sort((e,t)=>vC(r,e.vnode)-vC(r,t.vnode));let i=n.map(e=>e.proxy);t.sort((e,t)=>i.indexOf(e)-i.indexOf(t))}function bC(e){let t=cn([]),n=cn([]),r=Os();return{children:t,linkChildren:i=>{Jr(e,Object.assign({link:e=>{e.proxy&&(n.push(e),t.push(e.proxy),yC(r,t,n))},unlink:e=>{let r=n.indexOf(e);t.splice(r,1),n.splice(r,1)},children:t,internalChildren:n},i))}}}function xC(e){let t;Ji(()=>{e(),rr(()=>{t=!0})}),Vi(()=>{t&&e()})}function SC(e,t,n={}){if(!lC)return;let{target:r=window,passive:i=!1,capture:a=!1}=n,o=!1,s,c=n=>{if(o)return;let r=Cn(n);r&&!s&&(r.addEventListener(e,t,{capture:a,passive:i}),s=!0)},l=n=>{if(o)return;let r=Cn(n);r&&s&&(r.removeEventListener(e,t,a),s=!1)};Qi(()=>l(r)),Hi(()=>l(r)),xC(()=>c(r));let u;return bn(r)&&(u=$r(r,(e,t)=>{l(t),c(e)})),()=>{u?.(),l(r),o=!0}}function CC(e,t,n={}){if(!lC)return;let{eventName:r=`click`}=n;SC(r,n=>{(Array.isArray(e)?e:[e]).every(e=>{let t=Cn(e);return t&&!t.contains(n.target)})&&t(n)},{target:document})}var wC,TC;function EC(){if(!wC&&(wC=P(0),TC=P(0),lC)){let e=()=>{wC.value=window.innerWidth,TC.value=window.innerHeight};e(),window.addEventListener(`resize`,e,{passive:!0}),window.addEventListener(`orientationchange`,e,{passive:!0})}return{width:wC,height:TC}}var DC=/scroll|auto|overlay/i,OC=lC?window:void 0;function kC(e){return e.tagName!==`HTML`&&e.tagName!==`BODY`&&e.nodeType===1}function AC(e,t=OC){let n=e;for(;n&&n!==t&&kC(n);){let{overflowY:e}=window.getComputedStyle(n);if(DC.test(e))return n;n=n.parentNode}return t}function jC(e,t=OC){let n=P();return Ji(()=>{e.value&&(n.value=AC(e.value,t))}),n}var MC;function NC(){if(!MC&&(MC=P(`visible`),lC)){let e=()=>{MC.value=document.hidden?`hidden`:`visible`};e(),window.addEventListener(`visibilitychange`,e)}return MC}function PC(e){let t=`scrollTop`in e?e.scrollTop:e.pageYOffset;return Math.max(t,0)}function FC(e,t){`scrollTop`in e?e.scrollTop=t:e.scrollTo(e.scrollX,t)}function IC(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}function LC(e){FC(window,e),FC(document.body,e)}function RC(e,t){if(e===window)return 0;let n=t?PC(t):IC();return hC(e).top+n}QS();var zC=e=>e.stopPropagation();function BC(e,t){(typeof e.cancelable!=`boolean`||e.cancelable)&&e.preventDefault(),t&&zC(e)}function VC(e){let t=Cn(e);if(!t)return!1;let n=window.getComputedStyle(t),r=n.display===`none`,i=t.offsetParent===null&&n.position!==`fixed`;return r||i}var{width:HC,height:UC}=EC();function WC(e){if(JS(e))return ZS(e)?`${e}px`:String(e)}function GC(e){if(JS(e)){if(Array.isArray(e))return{width:WC(e[0]),height:WC(e[1])};let t=WC(e);return{width:t,height:t}}}function KC(e){let t={};return e!==void 0&&(t.zIndex=+e),t}var qC;function JC(){if(!qC){let e=document.documentElement,t=e.style.fontSize||window.getComputedStyle(e).fontSize;qC=parseFloat(t)}return qC}function YC(e){return e=e.replace(/rem/g,``),+e*JC()}function XC(e){return e=e.replace(/vw/g,``),+e*HC.value/100}function ZC(e){return e=e.replace(/vh/g,``),+e*UC.value/100}function QC(e){if(typeof e==`number`)return e;if(KS){if(e.includes(`rem`))return YC(e);if(e.includes(`vw`))return XC(e);if(e.includes(`vh`))return ZC(e)}return parseFloat(e)}var $C=/-(\w)/g,ew=e=>e.replace($C,(e,t)=>t.toUpperCase()),tw=(e,t,n)=>Math.min(Math.max(e,t),n),{hasOwnProperty:nw}=Object.prototype;function rw(e,t,n){let r=t[n];JS(r)&&(e[n]=!nw.call(e,n)||!qS(r)?r:iw(Object(e[n]),r))}function iw(e,t){return Object.keys(t).forEach(n=>{rw(e,t,n)}),e}var aw={name:`姓名`,tel:`电话`,save:`保存`,clear:`清空`,undo:`撤销`,cancel:`取消`,confirm:`确认`,delete:`删除`,loading:`加载中...`,noCoupon:`暂无优惠券`,nameEmpty:`请填写姓名`,addContact:`添加联系人`,telInvalid:`请填写正确的电话`,vanCalendar:{end:`结束`,start:`开始`,title:`日期选择`,weekdays:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],monthTitle:(e,t)=>`${e}\u5E74${t}\u6708`,rangePrompt:e=>`\u6700\u591A\u9009\u62E9 ${e} \u5929`},vanCascader:{select:`请选择`},vanPagination:{prev:`上一页`,next:`下一页`},vanPullRefresh:{pulling:`下拉即可刷新...`,loosing:`释放即可刷新...`},vanSubmitBar:{label:`合计:`},vanCoupon:{unlimited:`无门槛`,discount:e=>`${e}\u6298`,condition:e=>`\u6EE1${e}\u5143\u53EF\u7528`},vanCouponCell:{title:`优惠券`,count:e=>`${e}\u5F20\u53EF\u7528`},vanCouponList:{exchange:`兑换`,close:`不使用`,enable:`可用`,disabled:`不可用`,placeholder:`输入优惠码`},vanAddressEdit:{area:`地区`,areaEmpty:`请选择地区`,addressEmpty:`请填写详细地址`,addressDetail:`详细地址`,defaultAddress:`设为默认收货地址`},vanAddressList:{add:`新增地址`}},ow=P(`zh-CN`),sw=cn({"zh-CN":aw}),cw={messages(){return sw[ow.value]},use(e,t){ow.value=e,this.add({[e]:t})},add(e={}){iw(sw,e)}};function lw(e){let t=ew(e)+`.`;return(e,...n)=>{let r=cw.messages(),i=$S(r,t+e)||$S(r,e);return YS(i)?i(...n):i}}function uw(e,t){return t?typeof t==`string`?` ${e}--${t}`:Array.isArray(t)?t.reduce((t,n)=>t+uw(e,n),``):Object.keys(t).reduce((n,r)=>n+(t[r]?uw(e,r):``),``):``}function dw(e){return(t,n)=>(t&&typeof t!=`string`&&(n=t,t=``),t=t?`${e}__${t}`:e,`${t}${uw(t,n)}`)}function fw(e){let t=`van-${e}`;return[t,dw(t),lw(t)]}var pw=`van-hairline`,mw=`${pw}--top-bottom`,hw=`${pw}-unset--top-bottom`,gw=`van-haptics-feedback`;function _w(e,{args:t=[],done:n,canceled:r,error:i}){if(e){let a=e.apply(null,t);XS(a)?a.then(e=>{e?n():r&&r()}).catch(i||WS):a?n():r&&r()}else n()}function vw(e){return e.install=t=>{let{name:n}=e;n&&(t.component(n,e),t.component(ew(`-${n}`),e))},e}var yw=Symbol();function bw(e){let t=Yr(yw,null);t&&$r(t,t=>{t&&e()})}function xw(e){let t=Os();t&&GS(t.proxy,e)}var Sw={to:[String,Object],url:String,replace:Boolean};function Cw({to:e,url:t,replace:n,$router:r}){e&&r?r[n?`replace`:`push`](e):t&&(n?location.replace(t):location.href=t)}var[ww,Tw]=fw(`badge`),Ew=vw(Mi({name:ww,props:{dot:Boolean,max:nC,tag:cC(`div`),color:String,offset:Array,content:nC,showZero:rC,position:cC(`top-right`)},setup(e,{slots:t}){let n=()=>{if(t.content)return!0;let{content:n,showZero:r}=e;return JS(n)&&n!==``&&(r||n!==0&&n!==`0`)},r=()=>{let{dot:r,max:i,content:a}=e;if(!r&&n())return t.content?t.content():JS(i)&&ZS(a)&&+a>+i?`${i}+`:a},i=e=>e.startsWith(`-`)?e.replace(`-`,``):`-${e}`,a=Zs(()=>{let n={background:e.color};if(e.offset){let[r,a]=e.offset,{position:o}=e,[s,c]=o.split(`-`);t.default?(n[s]=typeof a==`number`?WC(s===`top`?a:-a):s===`top`?WC(a):i(a),n[c]=typeof r==`number`?WC(c===`left`?r:-r):c===`left`?WC(r):i(r)):(n.marginTop=WC(a),n.marginLeft=WC(r))}return n}),o=()=>{if(n()||e.dot)return G(`div`,{class:Tw([e.position,{dot:e.dot,fixed:!!t.default}]),style:a.value},[r()])};return()=>{if(t.default){let{tag:n}=e;return G(n,{class:Tw(`wrapper`)},{default:()=>[t.default(),o()]})}return o()}}})),Dw=2e3,Ow=()=>++Dw,[kw,Aw]=fw(`config-provider`),jw=Symbol(kw),[Mw,Nw]=fw(`icon`),Pw=e=>e?.includes(`/`),Fw=vw(Mi({name:Mw,props:{dot:Boolean,tag:cC(`i`),name:String,size:nC,badge:nC,color:String,badgeProps:Object,classPrefix:String},setup(e,{slots:t}){let n=Yr(jw,null),r=Zs(()=>e.classPrefix||n?.iconPrefix||Nw());return()=>{let{tag:n,dot:i,name:a,size:o,badge:s,color:c}=e,l=Pw(a);return G(Ew,xs({dot:i,tag:n,class:[r.value,l?``:`${r.value}-${a}`],style:{color:c,fontSize:WC(o)},content:s},e.badgeProps),{default:()=>[t.default?.call(t),l&&G(`img`,{class:Nw(`image`),src:a},null)]})}}})),[Iw,Lw]=fw(`loading`),Rw=Array(12).fill(null).map((e,t)=>G(`i`,{class:Lw(`line`,String(t+1))},null)),zw=G(`svg`,{class:Lw(`circular`),viewBox:`25 25 50 50`},[G(`circle`,{cx:`50`,cy:`50`,r:`20`,fill:`none`},null)]),Bw=vw(Mi({name:Iw,props:{size:nC,type:cC(`circular`),color:String,vertical:Boolean,textSize:nC,textColor:String},setup(e,{slots:t}){let n=Zs(()=>GS({color:e.color},GC(e.size))),r=()=>{let r=e.type===`spinner`?Rw:zw;return G(`span`,{class:Lw(`spinner`,e.type),style:n.value},[t.icon?t.icon():r])},i=()=>{if(t.default)return G(`span`,{class:Lw(`text`),style:{fontSize:WC(e.textSize),color:e.textColor??e.color}},[t.default()])};return()=>{let{type:t,vertical:n}=e;return G(`div`,{class:Lw([t,{vertical:n}]),"aria-live":`polite`,"aria-busy":!0},[r(),i()])}}})),Vw={show:Boolean,zIndex:nC,overlay:rC,duration:nC,teleport:[String,Object],lockScroll:rC,lazyRender:rC,beforeClose:Function,overlayProps:Object,overlayStyle:Object,overlayClass:null,transitionAppear:Boolean,closeOnClickOverlay:rC};Object.keys(Vw);function Hw(e,t){return e>t?`horizontal`:t>e?`vertical`:``}function Uw(){let e=P(0),t=P(0),n=P(0),r=P(0),i=P(0),a=P(0),o=P(``),s=P(!0),c=()=>o.value===`vertical`,l=()=>o.value===`horizontal`,u=()=>{n.value=0,r.value=0,i.value=0,a.value=0,o.value=``,s.value=!0};return{move:(c=>{let l=c.touches[0];n.value=(l.clientX<0?0:l.clientX)-e.value,r.value=l.clientY-t.value,i.value=Math.abs(n.value),a.value=Math.abs(r.value),(!o.value||i.value<10&&a.value<10)&&(o.value=Hw(i.value,a.value)),s.value&&(i.value>5||a.value>5)&&(s.value=!1)}),start:(n=>{u(),e.value=n.touches[0].clientX,t.value=n.touches[0].clientY}),reset:u,startX:e,startY:t,deltaX:n,deltaY:r,offsetX:i,offsetY:a,direction:o,isVertical:c,isHorizontal:l,isTap:s}}var Ww=0,Gw=`van-overflow-hidden`;function Kw(e,t){let n=Uw(),r=t=>{n.move(t);let r=n.deltaY.value>0?`10`:`01`,i=AC(t.target,e.value);for(;i.scrollHeight<=i.offsetHeight&&i!==e.value&&i.parentElement;)i=AC(i.parentElement,e.value);let{scrollHeight:a,offsetHeight:o,scrollTop:s}=i,c=`11`;s===0?c=o>=a?`00`:`01`:s+o>=a&&(c=`10`),c!==`11`&&n.isVertical()&&!(parseInt(c,2)&parseInt(r,2))&&BC(t,!0)},i=()=>{document.addEventListener(`touchstart`,n.start),document.addEventListener(`touchmove`,r,{passive:!1}),Ww||document.body.classList.add(Gw),Ww++},a=()=>{Ww&&(document.removeEventListener(`touchstart`,n.start),document.removeEventListener(`touchmove`,r),Ww--,Ww||document.body.classList.remove(Gw))},o=()=>t()&&i(),s=()=>t()&&a();xC(o),Hi(s),Zi(s),$r(t,e=>{e?i():a()})}function qw(e){let t=P(!1);return $r(e,e=>{e&&(t.value=e)},{immediate:!0}),e=>()=>t.value?e():null}var Jw=()=>{let{scopeId:e}=Os()?.vnode||{};return e?{[e]:``}:null},[Yw,Xw]=fw(`overlay`),Zw=vw(Mi({name:Yw,inheritAttrs:!1,props:{show:Boolean,zIndex:nC,duration:nC,className:null,lockScroll:rC,lazyRender:rC,customStyle:Object,teleport:[String,Object]},setup(e,{attrs:t,slots:n}){let r=P(),i=qw(()=>e.show||!e.lazyRender),a=t=>{e.lockScroll&&BC(t,!0)},o=i(()=>{let i=GS(KC(e.zIndex),e.customStyle);return JS(e.duration)&&(i.animationDuration=`${e.duration}s`),L(G(`div`,xs({ref:r,style:i,class:[Xw(),e.className]},t),[n.default?.call(n)]),[[Nc,e.show]])});return SC(`touchmove`,a,{target:r}),()=>{let t=G(hc,{name:`van-fade`,appear:!0},{default:o});return e.teleport?G(mi,{to:e.teleport},{default:()=>[t]}):t}}})),Qw=GS({},Vw,{round:Boolean,position:cC(`center`),closeIcon:cC(`cross`),closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,closeIconPosition:cC(`top-right`),destroyOnClose:Boolean,safeAreaInsetTop:Boolean,safeAreaInsetBottom:Boolean}),[$w,eT]=fw(`popup`),tT=vw(Mi({name:$w,inheritAttrs:!1,props:Qw,emits:[`open`,`close`,`opened`,`closed`,`keydown`,`update:show`,`clickOverlay`,`clickCloseIcon`],setup(e,{emit:t,attrs:n,slots:r}){let i,a,o=P(),s=P(),c=qw(()=>e.show||!e.lazyRender),l=Zs(()=>{let t={zIndex:o.value};if(JS(e.duration)){let n=e.position===`center`?`animationDuration`:`transitionDuration`;t[n]=`${e.duration}s`}return t}),u=()=>{i||(i=!0,o.value=e.zIndex===void 0?Ow():+e.zIndex,t(`open`))},d=()=>{i&&_w(e.beforeClose,{done(){i=!1,t(`close`),t(`update:show`,!1)}})},f=n=>{t(`clickOverlay`,n),e.closeOnClickOverlay&&d()},p=()=>{if(e.overlay)return G(Zw,xs(GS({show:e.show,class:e.overlayClass,zIndex:o.value,duration:e.duration,customStyle:e.overlayStyle,role:e.closeOnClickOverlay?`button`:void 0,tabindex:e.closeOnClickOverlay?0:void 0},e.overlayProps),Jw(),{onClick:f}),{default:r[`overlay-content`]})},m=e=>{t(`clickCloseIcon`,e),d()},h=()=>{if(e.closeable)return G(Fw,{role:`button`,tabindex:0,name:e.closeIcon,class:[eT(`close-icon`,e.closeIconPosition),gw],classPrefix:e.iconPrefix,onClick:m},null)},g,_=()=>{g&&clearTimeout(g),g=setTimeout(()=>{t(`opened`)})},v=()=>t(`closed`),y=e=>t(`keydown`,e),b=c(()=>{let{destroyOnClose:t,round:i,position:a,safeAreaInsetTop:o,safeAreaInsetBottom:c,show:u}=e;if(u||!t)return L(G(`div`,xs({ref:s,style:l.value,role:`dialog`,tabindex:0,class:[eT({round:i,[a]:a}),{"van-safe-area-top":o,"van-safe-area-bottom":c}],onKeydown:y},n,Jw()),[r.default?.call(r),h()]),[[Nc,u]])}),x=()=>{let{position:t,transition:n,transitionAppear:r}=e,i=t===`center`?`van-fade`:`van-popup-slide-${t}`;return G(hc,{name:n||i,appear:r,onAfterEnter:_,onAfterLeave:v},{default:b})};return $r(()=>e.show,e=>{e&&!i&&(u(),n.tabindex===0&&rr(()=>{var e;(e=s.value)==null||e.focus()})),!e&&i&&(i=!1,t(`close`))}),xw({popupRef:s}),Kw(s,()=>e.show&&e.lockScroll),SC(`popstate`,()=>{e.closeOnPopstate&&(d(),a=!1)}),Ji(()=>{e.show&&u()}),Vi(()=>{a&&=(t(`update:show`,!0),!1)}),Hi(()=>{e.show&&e.teleport&&(d(),a=!0)}),Jr(yw,()=>e.show),()=>e.teleport?G(mi,{to:e.teleport},{default:()=>[p(),x()]}):G(B,null,[p(),x()])}})),[nT,rT,iT]=fw(`picker`),aT=e=>e.find(e=>!e.disabled)||e[0];function oT(e,t){let n=e[0];if(n){if(Array.isArray(n))return`multiple`;if(t.children in n)return`cascade`}return`default`}function sT(e,t){t=tw(t,0,e.length);for(let n=t;n<e.length;n++)if(!e[n].disabled)return n;for(let n=t-1;n>=0;n--)if(!e[n].disabled)return n;return 0}var cT=(e,t,n)=>t!==void 0&&e.some(e=>e[n.value]===t);function lT(e,t,n){return e[sT(e,e.findIndex(e=>e[n.value]===t))]}function uT(e,t,n){let r=[],i={[t.children]:e},a=0;for(;i&&i[t.children];){let e=i[t.children],o=n.value[a];if(i=JS(o)?lT(e,o,t):void 0,!i&&e.length){let n=aT(e)[t.value];i=lT(e,n,t)}a++,r.push(e)}return r}function dT(e){let{transform:t}=window.getComputedStyle(e),n=t.slice(7,t.length-1).split(`, `)[5];return Number(n)}function fT(e){return GS({text:`text`,value:`value`,children:`children`},e)}var pT=200,mT=300,hT=15,[gT,_T]=fw(`picker-column`),vT=Symbol(gT),yT=Mi({name:gT,props:{value:nC,fields:iC(Object),options:aC(),readonly:Boolean,allowHtml:Boolean,optionHeight:iC(Number),swipeDuration:iC(nC),visibleOptionNum:iC(nC)},emits:[`change`,`clickOption`,`scrollInto`],setup(e,{emit:t,slots:n}){let r,i,a,o,s,c=P(),l=P(),u=P(0),d=P(0),f=Uw(),p=()=>e.options.length,m=()=>e.optionHeight*(e.visibleOptionNum-1)/2,h=n=>{let i=sT(e.options,n),a=-i*e.optionHeight,o=()=>{i>p()-1&&(i=sT(e.options,n));let r=e.options[i][e.fields.value];r!==e.value&&t(`change`,r)};r&&a!==u.value?s=o:o(),u.value=a},g=()=>e.readonly||!e.options.length,_=n=>{r||g()||(s=null,d.value=pT,h(n),t(`clickOption`,e.options[n]))},v=t=>tw(Math.round(-t/e.optionHeight),0,p()-1),y=Zs(()=>v(u.value)),b=(t,n)=>{let r=Math.abs(t/n);t=u.value+r/.003*(t<0?-1:1);let i=v(t);d.value=+e.swipeDuration,h(i)},x=()=>{r=!1,d.value=0,s&&=(s(),null)},S=e=>{if(!g()){if(f.start(e),r){let e=dT(l.value);u.value=Math.min(0,e-m())}d.value=0,i=u.value,a=Date.now(),o=i,s=null}},C=n=>{if(g())return;f.move(n),f.isVertical()&&(r=!0,BC(n,!0));let s=tw(i+f.deltaY.value,-(p()*e.optionHeight),e.optionHeight),c=v(s);c!==y.value&&t(`scrollInto`,e.options[c]),u.value=s;let l=Date.now();l-a>mT&&(a=l,o=s)},w=()=>{if(g())return;let e=u.value-o,t=Date.now()-a;if(t<mT&&Math.abs(e)>hT){b(e,t);return}let n=v(u.value);d.value=pT,h(n),setTimeout(()=>{r=!1},0)},ee=()=>{let t={height:`${e.optionHeight}px`};return e.options.map((r,i)=>{let a=r[e.fields.text],{disabled:o}=r,s=r[e.fields.value],c={role:`button`,style:t,tabindex:o?-1:0,class:[_T(`item`,{disabled:o,selected:s===e.value}),r.className],onClick:()=>_(i)},l={class:`van-ellipsis`,[e.allowHtml?`innerHTML`:`textContent`]:a};return G(`li`,c,[n.option?n.option(r,i):G(`div`,l,null)])})};return gC(vT),xw({stopMomentum:x}),Qr(()=>{let t=r?Math.floor(-u.value/e.optionHeight):e.options.findIndex(t=>t[e.fields.value]===e.value),n=sT(e.options,t),i=-n*e.optionHeight;r&&n<t&&x(),u.value=i}),SC(`touchmove`,C,{target:c}),()=>G(`div`,{ref:c,class:_T(),onTouchstartPassive:S,onTouchend:w,onTouchcancel:w},[G(`ul`,{ref:l,style:{transform:`translate3d(0, ${u.value+m()}px, 0)`,transitionDuration:`${d.value}ms`,transitionProperty:d.value?`all`:`none`},class:_T(`wrapper`),onTransitionend:x},[ee()])])}}),[bT]=fw(`picker-toolbar`),xT={title:String,cancelButtonText:String,confirmButtonText:String},ST=[`cancel`,`confirm`,`title`,`toolbar`],CT=Object.keys(xT),wT=Mi({name:bT,props:xT,emits:[`confirm`,`cancel`],setup(e,{emit:t,slots:n}){let r=()=>{if(n.title)return n.title();if(e.title)return G(`div`,{class:[rT(`title`),`van-ellipsis`]},[e.title])},i=()=>t(`cancel`),a=()=>t(`confirm`),o=()=>{let t=e.cancelButtonText??iT(`cancel`);if(n.cancel||t)return G(`button`,{type:`button`,class:[rT(`cancel`),gw],onClick:i},[n.cancel?n.cancel():t])},s=()=>{let t=e.confirmButtonText??iT(`confirm`);if(n.confirm||t)return G(`button`,{type:`button`,class:[rT(`confirm`),gw],onClick:a},[n.confirm?n.confirm():t])};return()=>G(`div`,{class:rT(`toolbar`)},[n.toolbar?n.toolbar():[o(),r(),s()]])}});function TT(e,t,n){let r,i=0,a=e.scrollLeft,o=n===0?1:Math.round(n*1e3/16),s=a;function c(){dC(r)}function l(){s+=(t-a)/o,e.scrollLeft=s,++i<o&&(r=uC(l))}return l(),c}function ET(e,t,n,r){let i,a=PC(e),o=a<t,s=n===0?1:Math.round(n*1e3/16),c=(t-a)/s;function l(){dC(i)}function u(){a+=c,(o&&a>t||!o&&a<t)&&(a=t),FC(e,a),o&&a<t||!o&&a>t?i=uC(u):r&&(i=uC(r))}return u(),l}var DT=0;function OT(){let{name:e=`unknown`}=Os()?.type||{};return`${e}-${++DT}`}function kT(){let e=P([]),t=[];return Yi(()=>{e.value=[]}),[e,n=>(t[n]||(t[n]=t=>{e.value[n]=t}),t[n])]}function AT(e,t){if(!KS||!window.IntersectionObserver)return;let n=new IntersectionObserver(e=>{t(e[0].intersectionRatio>0)},{root:document.body}),r=()=>{e.value&&n.observe(e.value)},i=()=>{e.value&&n.unobserve(e.value)};Hi(i),Zi(i),xC(r)}var[jT,MT]=fw(`sticky`),NT=vw(Mi({name:jT,props:{zIndex:nC,position:cC(`top`),container:Object,offsetTop:sC(0),offsetBottom:sC(0)},emits:[`scroll`,`change`],setup(e,{emit:t,slots:n}){let r=P(),i=jC(r),a=cn({fixed:!1,width:0,height:0,transform:0}),o=P(!1),s=Zs(()=>QC(e.position===`top`?e.offsetTop:e.offsetBottom)),c=Zs(()=>{if(o.value)return;let{fixed:e,height:t,width:n}=a;if(e)return{width:`${n}px`,height:`${t}px`}}),l=Zs(()=>{if(!a.fixed||o.value)return;let t=GS(KC(e.zIndex),{width:`${a.width}px`,height:`${a.height}px`,[e.position]:`${s.value}px`});return a.transform&&(t.transform=`translate3d(0, ${a.transform}px, 0)`),t}),u=e=>t(`scroll`,{scrollTop:e,isFixed:a.fixed}),d=()=>{if(!r.value||VC(r))return;let{container:t,position:n}=e,i=hC(r),o=PC(window);if(a.width=i.width,a.height=i.height,n===`top`){if(t){let e=hC(t),n=e.bottom-s.value-a.height;a.fixed=s.value>i.top&&e.bottom>0,a.transform=n<0?n:0}else a.fixed=s.value>i.top}else{let{clientHeight:e}=document.documentElement;if(t){let n=hC(t),r=e-n.top-s.value-a.height;a.fixed=e-s.value<i.bottom&&e>n.top,a.transform=r<0?-r:0}else a.fixed=e-s.value<i.bottom}u(o)};return $r(()=>a.fixed,e=>t(`change`,e)),SC(`scroll`,d,{target:i,passive:!0}),AT(r,d),$r([HC,UC],()=>{r.value&&!VC(r)&&a.fixed&&(o.value=!0,rr(()=>{let e=hC(r);a.width=e.width,a.height=e.height,o.value=!1}))}),()=>G(`div`,{ref:r,style:c.value},[G(`div`,{class:MT({fixed:a.fixed&&!o.value}),style:l.value},[n.default?.call(n)])])}})),[PT,FT]=fw(`swipe`),IT={loop:rC,width:nC,height:nC,vertical:Boolean,autoplay:sC(0),duration:sC(500),touchable:rC,lazyRender:Boolean,initialSwipe:sC(0),indicatorColor:String,showIndicators:rC,stopPropagation:rC},LT=Symbol(PT),RT=vw(Mi({name:PT,props:IT,emits:[`change`,`dragStart`,`dragEnd`],setup(e,{emit:t,slots:n}){let r=P(),i=P(),a=cn({rect:null,width:0,height:0,offset:0,active:0,swiping:!1}),o=!1,s=Uw(),{children:c,linkChildren:l}=bC(LT),u=Zs(()=>c.length),d=Zs(()=>a[e.vertical?`height`:`width`]),f=Zs(()=>e.vertical?s.deltaY.value:s.deltaX.value),p=Zs(()=>a.rect?(e.vertical?a.rect.height:a.rect.width)-d.value*u.value:0),m=Zs(()=>d.value?Math.ceil(Math.abs(p.value)/d.value):u.value),h=Zs(()=>u.value*d.value),g=Zs(()=>(a.active+u.value)%u.value),_=Zs(()=>{let t=e.vertical?`vertical`:`horizontal`;return s.direction.value===t}),v=Zs(()=>{let t={transitionDuration:`${a.swiping?0:e.duration}ms`,transform:`translate${e.vertical?`Y`:`X`}(${+a.offset.toFixed(2)}px)`};if(d.value){let n=e.vertical?`height`:`width`,r=e.vertical?`width`:`height`;t[n]=`${h.value}px`,t[r]=e[r]?`${e[r]}px`:``}return t}),y=t=>{let{active:n}=a;return t?e.loop?tw(n+t,-1,u.value):tw(n+t,0,m.value):n},b=(t,n=0)=>{let r=t*d.value;e.loop||(r=Math.min(r,-p.value));let i=n-r;return e.loop||(i=tw(i,p.value,0)),i},x=({pace:n=0,offset:r=0,emitChange:i})=>{if(u.value<=1)return;let{active:o}=a,s=y(n),l=b(s,r);if(e.loop){if(c[0]&&l!==p.value){let e=l<p.value;c[0].setOffset(e?h.value:0)}if(c[u.value-1]&&l!==0){let e=l>0;c[u.value-1].setOffset(e?-h.value:0)}}a.active=s,a.offset=l,i&&s!==o&&t(`change`,g.value)},S=()=>{a.swiping=!0,a.active<=-1?x({pace:u.value}):a.active>=u.value&&x({pace:-u.value})},C=()=>{S(),s.reset(),fC(()=>{a.swiping=!1,x({pace:-1,emitChange:!0})})},w=()=>{S(),s.reset(),fC(()=>{a.swiping=!1,x({pace:1,emitChange:!0})})},ee,T=()=>clearTimeout(ee),E=()=>{T(),+e.autoplay>0&&u.value>1&&(ee=setTimeout(()=>{w(),E()},+e.autoplay))},D=(t=+e.initialSwipe)=>{if(!r.value)return;let n=()=>{if(!VC(r)){let t={width:r.value.offsetWidth,height:r.value.offsetHeight};a.rect=t,a.width=+(e.width??t.width),a.height=+(e.height??t.height)}u.value&&(t=Math.min(u.value-1,t),t===-1&&(t=u.value-1)),a.active=t,a.swiping=!0,a.offset=b(t),c.forEach(e=>{e.setOffset(0)}),E()};VC(r)?rr().then(n):n()},O=()=>D(a.active),te,ne=t=>{!e.touchable||t.touches.length>1||(s.start(t),o=!1,te=Date.now(),T(),S())},re=n=>{e.touchable&&a.swiping&&(s.move(n),_.value&&(!e.loop&&(a.active===0&&f.value>0||a.active===u.value-1&&f.value<0)||(BC(n,e.stopPropagation),x({offset:f.value}),o||=(t(`dragStart`,{index:g.value}),!0))))},ie=()=>{if(!e.touchable||!a.swiping)return;let n=Date.now()-te,r=f.value/n;if((Math.abs(r)>.25||Math.abs(f.value)>d.value/2)&&_.value){let t=e.vertical?s.offsetY.value:s.offsetX.value,n=0;n=e.loop?t>0?f.value>0?-1:1:0:-Math[f.value>0?`ceil`:`floor`](f.value/d.value),x({pace:n,emitChange:!0})}else f.value&&x({pace:0});o=!1,a.swiping=!1,t(`dragEnd`,{index:g.value}),E()},ae=(t,n={})=>{S(),s.reset(),fC(()=>{let r;r=e.loop&&t===u.value?a.active===0?0:t:t%u.value,n.immediate?fC(()=>{a.swiping=!1}):a.swiping=!1,x({pace:r-a.active,emitChange:!0})})},oe=(t,n)=>{let r=n===g.value;return G(`i`,{style:r?{backgroundColor:e.indicatorColor}:void 0,class:FT(`indicator`,{active:r})},null)},se=()=>{if(n.indicator)return n.indicator({active:g.value,total:u.value});if(e.showIndicators&&u.value>1)return G(`div`,{class:FT(`indicators`,{vertical:e.vertical})},[Array(u.value).fill(``).map(oe)])};return xw({prev:C,next:w,state:a,resize:O,swipeTo:ae}),l({size:d,props:e,count:u,activeIndicator:g}),$r(()=>e.initialSwipe,e=>D(+e)),$r(u,()=>D(a.active)),$r(()=>e.autoplay,E),$r([HC,UC,()=>e.width,()=>e.height],O),$r(NC(),e=>{e===`visible`?E():T()}),Ji(D),Vi(()=>D(a.active)),bw(()=>D(a.active)),Hi(T),Zi(T),SC(`touchmove`,re,{target:i}),()=>G(`div`,{ref:r,class:FT()},[G(`div`,{ref:i,style:v.value,class:FT(`track`,{vertical:e.vertical}),onTouchstartPassive:ne,onTouchend:ie,onTouchcancel:ie},[n.default?.call(n)]),se()])}})),[zT,BT]=fw(`tabs`),VT=Mi({name:zT,props:{count:iC(Number),inited:Boolean,animated:Boolean,duration:iC(nC),swipeable:Boolean,lazyRender:Boolean,currentIndex:iC(Number)},emits:[`change`],setup(e,{emit:t,slots:n}){let r=P(),i=e=>t(`change`,e),a=()=>{let t=n.default?.call(n);return e.animated||e.swipeable?G(RT,{ref:r,loop:!1,class:BT(`track`),duration:e.duration*1e3,touchable:e.swipeable,lazyRender:e.lazyRender,showIndicators:!1,onChange:i},{default:()=>[t]}):t},o=t=>{let n=r.value;n&&n.state.active!==t&&n.swipeTo(t,{immediate:!e.inited})};return $r(()=>e.currentIndex,o),Ji(()=>{o(e.currentIndex)}),xw({swipeRef:r}),()=>G(`div`,{class:BT(`content`,{animated:e.animated||e.swipeable})},[a()])}}),[HT,UT]=fw(`tabs`),WT={type:cC(`line`),color:String,border:Boolean,sticky:Boolean,shrink:Boolean,active:sC(0),duration:sC(.3),animated:Boolean,ellipsis:rC,swipeable:Boolean,scrollspy:Boolean,offsetTop:sC(0),background:String,lazyRender:rC,showHeader:rC,lineWidth:nC,lineHeight:nC,beforeChange:Function,swipeThreshold:sC(5),titleActiveColor:String,titleInactiveColor:String},GT=Symbol(HT),KT=Mi({name:HT,props:WT,emits:[`change`,`scroll`,`rendered`,`clickTab`,`update:active`],setup(e,{emit:t,slots:n}){let r,i,a,o,s,c=P(),l=P(),u=P(),d=P(),f=OT(),p=jC(c),[m,h]=kT(),{children:g,linkChildren:_}=bC(GT),v=cn({inited:!1,position:``,lineStyle:{},currentIndex:-1}),y=Zs(()=>g.length>+e.swipeThreshold||!e.ellipsis||e.shrink),b=Zs(()=>({borderColor:e.color,background:e.background})),x=(e,t)=>e.name??t,S=Zs(()=>{let e=g[v.currentIndex];if(e)return x(e,v.currentIndex)}),C=Zs(()=>QC(e.offsetTop)),w=Zs(()=>e.sticky?C.value+r:0),ee=t=>{let n=l.value,r=m.value;if(!y.value||!n||!r||!r[v.currentIndex])return;let i=r[v.currentIndex].$el,a=i.offsetLeft-(n.offsetWidth-i.offsetWidth)/2;o&&o(),o=TT(n,a,t?0:+e.duration)},T=()=>{let t=v.inited;rr(()=>{let n=m.value;if(!n||!n[v.currentIndex]||e.type!==`line`||VC(c.value))return;let r=n[v.currentIndex].$el,{lineWidth:i,lineHeight:a}=e,o=r.offsetLeft+r.offsetWidth/2,s={width:WC(i),backgroundColor:e.color,transform:`translateX(${o}px) translateX(-50%)`};if(t&&(s.transitionDuration=`${e.duration}s`),JS(a)){let e=WC(a);s.height=e,s.borderRadius=e}v.lineStyle=s})},E=e=>{let t=e<v.currentIndex?-1:1;for(;e>=0&&e<g.length;){if(!g[e].disabled)return e;e+=t}},D=(n,r)=>{let i=E(n);if(!JS(i))return;let o=g[i],s=x(o,i),l=v.currentIndex!==null;v.currentIndex!==i&&(v.currentIndex=i,r||ee(),T()),s!==e.active&&(t(`update:active`,s),l&&t(`change`,s,o.title)),a&&!e.scrollspy&&LC(Math.ceil(RC(c.value)-C.value))},O=(e,t)=>{let n=g.findIndex((t,n)=>x(t,n)===e);D(n===-1?0:n,t)},te=(t=!1)=>{if(e.scrollspy){let n=g[v.currentIndex].$el;if(n&&p.value){let r=RC(n,p.value)-w.value;i=!0,s&&s(),s=ET(p.value,r,t?0:+e.duration,()=>{i=!1})}}},ne=(n,r,i)=>{let{title:a,disabled:o}=g[r],s=x(g[r],r);o||(_w(e.beforeChange,{args:[s],done:()=>{D(r),te()}}),Cw(n)),t(`clickTab`,{name:s,title:a,event:i,disabled:o})},re=e=>{a=e.isFixed,t(`scroll`,e)},ie=e=>{rr(()=>{O(e),te(!0)})},ae=()=>{for(let e=0;e<g.length;e++){let{top:t}=hC(g[e].$el);if(t>w.value)return e===0?0:e-1}return g.length-1},oe=()=>{if(e.scrollspy&&!i){let e=ae();D(e)}},se=()=>{if(e.type===`line`&&g.length)return G(`div`,{class:UT(`line`),style:v.lineStyle},null)},ce=()=>{let{type:t,border:r,sticky:i}=e,a=[G(`div`,{ref:i?void 0:u,class:[UT(`wrap`),{[mw]:t===`line`&&r}]},[G(`div`,{ref:l,role:`tablist`,class:UT(`nav`,[t,{shrink:e.shrink,complete:y.value}]),style:b.value,"aria-orientation":`horizontal`},[n[`nav-left`]?.call(n),g.map(e=>e.renderTitle(ne)),se(),n[`nav-right`]?.call(n)])]),n[`nav-bottom`]?.call(n)];return i?G(`div`,{ref:u},[a]):a},le=()=>{T(),rr(()=>{var e;ee(!0),(e=d.value?.swipeRef.value)==null||e.resize()})};return $r(()=>[e.color,e.duration,e.lineWidth,e.lineHeight],T),$r(HC,le),$r(()=>e.active,e=>{e!==S.value&&O(e)}),$r(()=>g.length,()=>{v.inited&&(O(e.active),T(),rr(()=>{ee(!0)}))}),xw({resize:le,scrollTo:ie}),Vi(T),bw(T),xC(()=>{O(e.active,!0),rr(()=>{v.inited=!0,u.value&&(r=hC(u.value).height),ee(!0)})}),AT(c,T),SC(`scroll`,oe,{target:p,passive:!0}),_({id:f,props:e,setLine:T,scrollable:y,onRendered:(e,n)=>t(`rendered`,e,n),currentName:S,setTitleRefs:h,scrollIntoView:ee}),()=>G(`div`,{ref:c,class:UT([e.type])},[e.showHeader?e.sticky?G(NT,{container:c.value,offsetTop:C.value,onScroll:re},{default:()=>[ce()]}):ce():null,G(VT,{ref:d,count:g.length,inited:v.inited,animated:e.animated,duration:e.duration,swipeable:e.swipeable,lazyRender:e.lazyRender,currentIndex:v.currentIndex,onChange:D},{default:()=>[n.default?.call(n)]})])}}),qT=Symbol(),JT=Symbol(),YT=()=>Yr(JT,null),XT=e=>{let t=YT();Jr(qT,e),Jr(JT,Zs(()=>(t==null||t.value)&&e.value))},[ZT,QT]=fw(`tab`),$T=Mi({name:ZT,props:{id:String,dot:Boolean,type:String,color:String,title:String,badge:nC,shrink:Boolean,isActive:Boolean,disabled:Boolean,controls:String,scrollable:Boolean,activeColor:String,inactiveColor:String,showZeroBadge:rC},setup(e,{slots:t}){let n=Zs(()=>{let t={},{type:n,color:r,disabled:i,isActive:a,activeColor:o,inactiveColor:s}=e;r&&n===`card`&&(t.borderColor=r,i||(a?t.backgroundColor=r:t.color=r));let c=a?o:s;return c&&(t.color=c),t}),r=()=>{let n=G(`span`,{class:QT(`text`,{ellipsis:!e.scrollable})},[t.title?t.title():e.title]);return e.dot||JS(e.badge)&&e.badge!==``?G(Ew,{dot:e.dot,content:e.badge,showZero:e.showZeroBadge},{default:()=>[n]}):n};return()=>G(`div`,{id:e.id,role:`tab`,class:[QT([e.type,{grow:e.scrollable&&!e.shrink,shrink:e.shrink,active:e.isActive,disabled:e.disabled}])],style:n.value,tabindex:e.disabled?void 0:e.isActive?0:-1,"aria-selected":e.isActive,"aria-disabled":e.disabled||void 0,"aria-controls":e.controls,"data-allow-mismatch":`attribute`},[r()])}}),[eE,tE]=fw(`swipe-item`),nE=vw(Mi({name:eE,setup(e,{slots:t}){let n,r=cn({offset:0,inited:!1,mounted:!1}),{parent:i,index:a}=gC(LT);if(!i){console.error(`[Vant] <SwipeItem> must be a child component of <Swipe>.`);return}let o=Zs(()=>{let e={},{vertical:t}=i.props;return i.size.value&&(e[t?`height`:`width`]=`${i.size.value}px`),r.offset&&(e.transform=`translate${t?`Y`:`X`}(${r.offset}px)`),e}),s=Zs(()=>{let{loop:e,lazyRender:t}=i.props;if(!t||n)return!0;if(!r.mounted)return!1;let o=i.activeIndicator.value,s=i.count.value-1,c=o===0&&e?s:o-1,l=o===s&&e?0:o+1;return n=a.value===o||a.value===c||a.value===l,n});return Ji(()=>{rr(()=>{r.mounted=!0})}),xw({setOffset:e=>{r.offset=e}}),()=>G(`div`,{class:tE(),style:o.value},[s.value?t.default?.call(t):null])}})),[rE,iE]=fw(`tab`);vw(Mi({name:rE,props:GS({},Sw,{dot:Boolean,name:nC,badge:nC,title:String,disabled:Boolean,titleClass:null,titleStyle:[String,Object],showZeroBadge:rC}),setup(e,{slots:t}){let n=OT(),r=P(!1),i=Os(),{parent:a,index:o}=gC(GT);if(!a){console.error(`[Vant] <Tab> must be a child component of <Tabs>.`);return}let s=()=>e.name??o.value,c=()=>{r.value=!0,a.props.lazyRender&&rr(()=>{a.onRendered(s(),e.title)})},l=Zs(()=>{let e=s()===a.currentName.value;return e&&!r.value&&c(),e}),u=P(``),d=P(``);Qr(()=>{let{titleClass:t,titleStyle:n}=e;u.value=t?j(t):``,d.value=n&&typeof n!=`string`?Ee(A(n)):n});let f=r=>G($T,xs({key:n,id:`${a.id}-${o.value}`,ref:a.setTitleRefs(o.value),style:d.value,class:u.value,isActive:l.value,controls:n,scrollable:a.scrollable.value,activeColor:a.props.titleActiveColor,inactiveColor:a.props.titleInactiveColor,onClick:e=>r(i.proxy,o.value,e)},eC(a.props,[`type`,`color`,`shrink`]),eC(e,[`dot`,`badge`,`title`,`disabled`,`showZeroBadge`])),{title:t.title}),p=P(!l.value);return $r(l,e=>{e?p.value=!1:fC(()=>{p.value=!0})}),$r(()=>e.title,()=>{a.setLine(),a.scrollIntoView()}),XT(l),xw({id:n,renderTitle:f}),()=>{let e=`${a.id}-${o.value}`,{animated:i,swipeable:s,scrollspy:c,lazyRender:u}=a.props;if(!t.default&&!i)return;let d=c||l.value;if(i||s)return G(nE,{id:n,role:`tabpanel`,class:iE(`panel-wrapper`,{inactive:p.value}),tabindex:l.value?0:-1,"aria-hidden":!l.value,"aria-labelledby":e,"data-allow-mismatch":`attribute`},{default:()=>[G(`div`,{class:iE(`panel`)},[t.default?.call(t)])]});let f=r.value||c||!u?t.default?.call(t):null;return L(G(`div`,{id:n,role:`tabpanel`,class:iE(`panel`),tabindex:d?0:-1,"aria-labelledby":e,"data-allow-mismatch":`attribute`},[f]),[[Nc,d]])}}})),vw(KT);var[aE,oE]=fw(`picker-group`),sE=Symbol(aE);GS({tabs:aC(),activeTab:sC(0),nextStepText:String,showToolbar:rC},xT);var cE=vw(Mi({name:nT,props:GS({},GS({loading:Boolean,readonly:Boolean,allowHtml:Boolean,optionHeight:sC(44),showToolbar:rC,swipeDuration:sC(1e3),visibleOptionNum:sC(6)},xT),{columns:aC(),modelValue:aC(),toolbarPosition:cC(`top`),columnsFieldNames:Object}),emits:[`confirm`,`cancel`,`change`,`scrollInto`,`clickOption`,`update:modelValue`],setup(e,{emit:t,slots:n}){let r=P(),i=P(e.modelValue.slice(0)),{parent:a}=gC(sE),{children:o,linkChildren:s}=bC(vT);s();let c=Zs(()=>fT(e.columnsFieldNames)),l=Zs(()=>QC(e.optionHeight)),u=Zs(()=>oT(e.columns,c.value)),d=Zs(()=>{let{columns:t}=e;switch(u.value){case`multiple`:return t;case`cascade`:return uT(t,c.value,i);default:return[t]}}),f=Zs(()=>d.value.some(e=>e.length)),p=Zs(()=>d.value.map((e,t)=>lT(e,i.value[t],c.value))),m=Zs(()=>d.value.map((e,t)=>e.findIndex(e=>e[c.value.value]===i.value[t]))),h=(e,t)=>{if(i.value[e]!==t){let n=i.value.slice(0);n[e]=t,i.value=n}},g=()=>({selectedValues:i.value.slice(0),selectedOptions:p.value,selectedIndexes:m.value}),_=(e,n)=>{h(n,e),u.value===`cascade`&&i.value.forEach((e,t)=>{let n=d.value[t];cT(n,e,c.value)||h(t,n.length?n[0][c.value.value]:void 0)}),rr(()=>{t(`change`,GS({columnIndex:n},g()))})},v=(e,n)=>{let r={columnIndex:n,currentOption:e};t(`clickOption`,GS(g(),r)),t(`scrollInto`,r)},y=()=>{o.forEach(e=>e.stopMomentum());let e=g();return rr(()=>{t(`confirm`,g())}),e},b=()=>t(`cancel`,g()),x=()=>d.value.map((r,a)=>G(yT,{value:i.value[a],fields:c.value,options:r,readonly:e.readonly,allowHtml:e.allowHtml,optionHeight:l.value,swipeDuration:e.swipeDuration,visibleOptionNum:e.visibleOptionNum,onChange:e=>_(e,a),onClickOption:e=>v(e,a),onScrollInto:e=>{t(`scrollInto`,{currentOption:e,columnIndex:a})}},{option:n.option})),S=e=>{if(f.value){let t={height:`${l.value}px`},n={backgroundSize:`100% ${(e-l.value)/2}px`};return[G(`div`,{class:rT(`mask`),style:n},null),G(`div`,{class:[hw,rT(`frame`)],style:t},null)]}},C=()=>{let t=l.value*+e.visibleOptionNum,i={height:`${t}px`};return!e.loading&&!f.value&&n.empty?n.empty():G(`div`,{ref:r,class:rT(`columns`),style:i},[x(),S(t)])},w=()=>{if(e.showToolbar&&!a)return G(wT,xs(eC(e,CT),{onConfirm:y,onCancel:b}),eC(n,ST))},ee=e=>{e.forEach((e,t)=>{e.length&&!cT(e,i.value[t],c.value)&&h(t,aT(e)[c.value.value])})};$r(d,e=>ee(e),{immediate:!0});let T;return $r(()=>e.modelValue,t=>{!tC(t,i.value)&&!tC(t,T)&&(i.value=t.slice(0),T=t.slice(0)),e.modelValue.length===0&&ee(d.value)},{deep:!0}),$r(i,n=>{tC(n,e.modelValue)||(T=n.slice(0),t(`update:modelValue`,T))},{immediate:!0}),SC(`touchmove`,BC,{target:r}),xw({confirm:y,getSelectedOptions:()=>p.value}),()=>G(`div`,{class:rT()},[e.toolbarPosition===`top`?w():null,e.loading?G(Bw,{class:rT(`loading`)},null):null,n[`columns-top`]?.call(n),C(),n[`columns-bottom`]?.call(n),e.toolbarPosition===`bottom`?w():null])}})),lE=0;function uE(e){e?(lE||document.body.classList.add(`van-toast--unclickable`),lE++):lE&&(lE--,lE||document.body.classList.remove(`van-toast--unclickable`))}var[dE,fE]=fw(`toast`),pE=[`show`,`overlay`,`teleport`,`transition`,`overlayClass`,`overlayStyle`,`closeOnClickOverlay`,`zIndex`],mE=Mi({name:dE,props:{icon:String,show:Boolean,type:cC(`text`),overlay:Boolean,message:nC,iconSize:nC,duration:oC(2e3),position:cC(`middle`),teleport:[String,Object],wordBreak:String,className:null,iconPrefix:String,transition:cC(`van-fade`),loadingType:String,forbidClick:Boolean,overlayClass:null,overlayStyle:Object,closeOnClick:Boolean,closeOnClickOverlay:Boolean,zIndex:nC},emits:[`update:show`],setup(e,{emit:t,slots:n}){let r,i=!1,a=()=>{let t=e.show&&e.forbidClick;i!==t&&(i=t,uE(i))},o=e=>t(`update:show`,e),s=()=>{e.closeOnClick&&o(!1)},c=()=>clearTimeout(r),l=()=>{let{icon:t,type:n,iconSize:r,iconPrefix:i,loadingType:a}=e;if(t||n===`success`||n===`fail`)return G(Fw,{name:t||n,size:r,class:fE(`icon`),classPrefix:i},null);if(n===`loading`)return G(Bw,{class:fE(`loading`),size:r,type:a},null)},u=()=>{let{type:t,message:r}=e;if(n.message)return G(`div`,{class:fE(`text`)},[n.message()]);if(JS(r)&&r!==``)return t===`html`?G(`div`,{key:0,class:fE(`text`),innerHTML:String(r)},null):G(`div`,{class:fE(`text`)},[r])};return $r(()=>[e.show,e.forbidClick],a),$r(()=>[e.show,e.type,e.message,e.duration],()=>{c(),e.show&&e.duration>0&&(r=setTimeout(()=>{o(!1)},e.duration))}),Ji(a),Qi(a),()=>G(tT,xs({class:[fE([e.position,e.wordBreak===`normal`?`break-normal`:e.wordBreak,{[e.type]:!e.icon}]),e.className],lockScroll:!1,onClick:s,onClosed:c,"onUpdate:show":o},eC(e,pE)),{default:()=>[l(),u()]})}});function hE(){let e=cn({show:!1}),t=t=>{e.show=t},n=n=>{GS(e,n,{transitionAppear:!0}),t(!0)},r=()=>t(!1);return xw({open:n,close:r,toggle:t}),{open:n,close:r,state:e,toggle:t}}function gE(e){let t=Fl(e),n=document.createElement(`div`);return document.body.appendChild(n),{instance:t.mount(n),unmount(){t.unmount(),document.body.removeChild(n)}}}var _E={icon:``,type:`text`,message:``,className:``,overlay:!1,onClose:void 0,onOpened:void 0,duration:2e3,teleport:`body`,iconSize:void 0,iconPrefix:void 0,position:`middle`,transition:`van-fade`,forbidClick:!1,loadingType:void 0,overlayClass:``,overlayStyle:void 0,closeOnClick:!1,closeOnClickOverlay:!1},vE=[],yE=GS({},_E),bE=new Map;function xE(e){return qS(e)?e:{message:e}}function SE(){let{instance:e,unmount:t}=gE({setup(){let e=P(``),{open:t,state:n,close:r,toggle:i}=hE(),a=()=>{},o=()=>G(mE,xs(n,{onClosed:a,"onUpdate:show":i}),null);return $r(e,e=>{n.message=e}),Os().render=o,{open:t,close:r,message:e}}});return e}function CE(){if(!vE.length){let e=SE();vE.push(e)}return vE[vE.length-1]}function wE(e={}){if(!KS)return{};let t=CE(),n=xE(e);return t.open(GS({},yE,bE.get(n.type||yE.type),n)),t}var TE=e=>{vE.length&&(e?(vE.forEach(e=>{e.close()}),vE=[]):vE[0].close())},[EE,DE]=fw(`key`),OE=G(`svg`,{class:DE(`collapse-icon`),viewBox:`0 0 30 24`},[G(`path`,{d:`M26 13h-2v2h2v-2zm-8-3h2V8h-2v2zm2-4h2V4h-2v2zm2 4h4V4h-2v4h-2v2zm-7 14 3-3h-6l3 3zM6 13H4v2h2v-2zm16 0H8v2h14v-2zm-12-3h2V8h-2v2zM28 0l1 1 1 1v15l-1 2H1l-1-2V2l1-1 1-1zm0 2H2v15h26V2zM6 4v2H4V4zm10 2h2V4h-2v2zM8 9v1H4V8zm8 0v1h-2V8zm-6-5v2H8V4zm4 0v2h-2V4z`,fill:`currentColor`},null)]),kE=G(`svg`,{class:DE(`delete-icon`),viewBox:`0 0 32 22`},[G(`path`,{d:`M28 0a4 4 0 0 1 4 4v14a4 4 0 0 1-4 4H10.4a2 2 0 0 1-1.4-.6L1 13.1c-.6-.5-.9-1.3-.9-2 0-1 .3-1.7.9-2.2L9 .6a2 2 0 0 1 1.4-.6zm0 2H10.4l-8.2 8.3a1 1 0 0 0-.3.7c0 .3.1.5.3.7l8.2 8.4H28a2 2 0 0 0 2-2V4c0-1.1-.9-2-2-2zm-5 4a1 1 0 0 1 .7.3 1 1 0 0 1 0 1.4L20.4 11l3.3 3.3c.2.2.3.5.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3L19 12.4l-3.4 3.3a1 1 0 0 1-.6.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.2.1-.5.3-.7l3.3-3.3-3.3-3.3A1 1 0 0 1 14 7c0-.3.1-.5.3-.7A1 1 0 0 1 15 6a1 1 0 0 1 .6.3L19 9.6l3.3-3.3A1 1 0 0 1 23 6z`,fill:`currentColor`},null)]),AE=Mi({name:EE,props:{type:String,text:nC,color:String,wider:Boolean,large:Boolean,loading:Boolean},emits:[`press`],setup(e,{emit:t,slots:n}){let r=P(!1),i=Uw(),a=e=>{i.start(e),r.value=!0},o=e=>{i.move(e),i.direction.value&&(r.value=!1)},s=i=>{r.value&&(n.default||BC(i),r.value=!1,t(`press`,e.text,e.type))},c=()=>{if(e.loading)return G(Bw,{class:DE(`loading-icon`)},null);let t=n.default?n.default():e.text;switch(e.type){case`delete`:return t||kE;case`extra`:return t||OE;default:return t}};return()=>G(`div`,{class:DE(`wrapper`,{wider:e.wider}),onTouchstartPassive:a,onTouchmovePassive:o,onTouchend:s,onTouchcancel:s},[G(`div`,{role:`button`,tabindex:0,class:DE([e.color,{large:e.large,active:r.value,delete:e.type===`delete`}])},[c()])])}}),[jE,ME]=fw(`number-keyboard`),NE={show:Boolean,title:String,theme:cC(`default`),zIndex:nC,teleport:[String,Object],maxlength:sC(1/0),modelValue:cC(``),transition:rC,blurOnClose:rC,showDeleteKey:rC,randomKeyOrder:Boolean,closeButtonText:String,deleteButtonText:String,closeButtonLoading:Boolean,hideOnClickOutside:rC,safeAreaInsetBottom:rC,extraKey:{type:[String,Array],default:``}};function PE(e){for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}var FE=vw(Mi({name:jE,inheritAttrs:!1,props:NE,emits:[`show`,`hide`,`blur`,`input`,`close`,`delete`,`update:modelValue`],setup(e,{emit:t,slots:n,attrs:r}){let i=P(),a=()=>{let t=Array(9).fill(``).map((e,t)=>({text:t+1}));return e.randomKeyOrder&&PE(t),t},o=()=>[...a(),{text:e.extraKey,type:`extra`},{text:0},{text:e.showDeleteKey?e.deleteButtonText:``,type:e.showDeleteKey?`delete`:``}],s=()=>{let t=a(),{extraKey:n}=e,r=Array.isArray(n)?n:[n];return r.length===0?t.push({text:0,wider:!0}):r.length===1?t.push({text:0,wider:!0},{text:r[0],type:`extra`}):r.length===2&&t.push({text:r[0],type:`extra`},{text:0},{text:r[1],type:`extra`}),t},c=Zs(()=>e.theme===`custom`?s():o()),l=()=>{e.show&&t(`blur`)},u=()=>{t(`close`),e.blurOnClose&&l()},d=()=>t(e.show?`show`:`hide`),f=(n,r)=>{if(n===``){r===`extra`&&l();return}let i=e.modelValue;r===`delete`?(t(`delete`),t(`update:modelValue`,i.slice(0,i.length-1))):r===`close`?u():i.length<+e.maxlength&&(t(`input`,n),t(`update:modelValue`,i+n))},p=()=>{let{title:t,theme:r,closeButtonText:i}=e,a=n[`title-left`],o=i&&r==="default";if(t||o||a)return G(`div`,{class:ME(`header`)},[a&&G(`span`,{class:ME(`title-left`)},[a()]),t&&G(`h2`,{class:ME(`title`)},[t]),o&&G(`button`,{type:`button`,class:[ME(`close`),`van-haptics-feedback`],onClick:u},[i])])},m=()=>c.value.map(e=>{let t={};return e.type===`delete`&&(t.default=n.delete),e.type===`extra`&&(t.default=n[`extra-key`]),G(AE,{key:e.text,text:e.text,type:e.type,wider:e.wider,color:e.color,onPress:f},t)}),h=()=>{if(e.theme===`custom`)return G(`div`,{class:ME(`sidebar`)},[e.showDeleteKey&&G(AE,{large:!0,text:e.deleteButtonText,type:`delete`,onPress:f},{default:n.delete}),G(AE,{large:!0,text:e.closeButtonText,type:`close`,color:`blue`,loading:e.closeButtonLoading,onPress:f},null)])};return $r(()=>e.show,n=>{e.transition||t(n?`show`:`hide`)}),e.hideOnClickOutside&&CC(i,l,{eventName:`touchstart`}),()=>{let t=p(),n=G(hc,{name:e.transition?`van-slide-up`:``},{default:()=>[L(G(`div`,xs({ref:i,style:KC(e.zIndex),class:ME({unfit:!e.safeAreaInsetBottom,"with-title":!!t}),onAnimationend:d,onTouchstartPassive:zC},r),[t,G(`div`,{class:ME(`body`)},[G(`div`,{class:ME(`keys`)},[m()]),h()])]),[[Nc,e.show]])]});return e.teleport?G(mi,{to:e.teleport},{default:()=>[n]}):n}}})),IE=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21],LE=Array(64);for(let e=0;e<64;e++)LE[e]=Math.floor(Math.abs(Math.sin(e+1))*4294967296);var RE=(e,t,n)=>e&t|~e&n,zE=(e,t,n)=>e&n|t&~n,BE=(e,t,n)=>e^t^n,VE=(e,t,n)=>t^(e|~n);function HE(e){let t=``;for(let n=0;n<32;n+=8)t+=(e>>>n&255).toString(16).padStart(2,`0`);return t}function UE(e){let t=new TextEncoder().encode(String(e)),n=t.length,r=Math.ceil((n+9)/64)*16,i=new Uint32Array(r);for(let e=0;e<n;e++)i[e>>2]|=t[e]<<e%4*8;i[n>>2]|=128<<n%4*8;let a=n*8;i[r-2]=a>>>0,i[r-1]=Math.floor(a/4294967296);let o=1732584193,s=4023233417,c=2562383102,l=271733878;for(let e=0;e<r;e+=16){let t=o,n=s,r=c,a=l;for(let o=0;o<64;o++){let s,c;o<16?(s=RE(n,r,a),c=o):o<32?(s=zE(n,r,a),c=(5*o+1)%16):o<48?(s=BE(n,r,a),c=(3*o+5)%16):(s=VE(n,r,a),c=7*o%16);let l=a;a=r,r=n;let u=t+s+LE[o]+i[e+c]>>>0,d=IE[(o>>4)*4+o%4];n=((u<<d|u>>>32-d)>>>0)+n>>>0,t=l}o=o+t>>>0,s=s+n>>>0,c=c+r>>>0,l=l+a>>>0}return HE(o)+HE(s)+HE(c)+HE(l)}var WE=cn({dialog:null,picker:null,datePicker:null,keyboard:null,loadingEx:null}),GE=[],KE=0,qE=null,JE=[],YE=0,XE=[],ZE=0,QE=2200;function $E(e,t){if(typeof e==`function`)try{e(t)}catch{}}function eD(){WE.dialog=GE.length?GE.shift():null}function tD(e,t){let n=e||{};GE.push({id:++KE,title:n.title||``,message:n.message==null?``:String(n.message),okButton:n.okButton||`确定`,cancelButton:n.cancelButton||``,clickBgToHide:n.clickBgToHide===!0,cancelGrayStyle:n.cancelGrayStyle===!0,callback:t}),WE.dialog||eD()}function nD(e){let t=WE.dialog;t&&(WE.dialog=null,$E(t.callback,{success:!0,data:{ok:!!e.ok,dismissByClickBg:!!e.dismissByClickBg}}),eD())}function rD(e,t){let n=e||{},r=n.showIcon==null?``:String(n.showIcon),i=r===`1`?`success`:r===`0`?`fail`:`text`;try{wE({type:i,message:n.message==null?``:String(n.message),duration:QE,teleport:document.querySelector(`.phone-viewport`)||void 0})}catch{}$E(t,{success:!0,data:{}})}function iD(e,t){let n=e||{},r=Array.isArray(n.currentValue)?n.currentValue:[];r.length&&Array.isArray(r[0])&&(r=r[0]),JE.push({id:++YE,title:n.title||``,mode:n.mode===`multi`?`multi`:`single`,dataSource:Array.isArray(n.dataSource)?n.dataSource:[],currentValue:r.map(e=>String(e)),callback:t}),WE.picker||aD()}function aD(){WE.picker=JE.length?JE.shift():null}function oD(e,t){let n=WE.picker;if(n){if(WE.picker=null,e){let e={success:!0,error:`0`,data:{result:t},result:t};$E(n.callback,e)}else $E(n.callback,{success:!0,data:{}});aD()}}function sD(e,t){let n=e||{},r=[`year_month_day`,`year_month`,`month_day`].includes(n.type)?n.type:`year_month_day`;XE.push({id:++ZE,title:n.title||``,type:r,startDate:n.startDate||`1970-1-1`,endDate:n.endDate||`2100-12-31`,selectDate:n.selectDate||``,callback:t}),WE.datePicker||cD()}function cD(){WE.datePicker=XE.length?XE.shift():null}function lD(e,t){let n=WE.datePicker;if(n){if(WE.datePicker=null,e){let e={success:!0,error:`0`,currentDate:t.value,data:{year:t.year,month:t.month,day:t.day,value:t.value}};$E(n.callback,e)}else $E(n.callback,{success:!0,data:{}});cD()}}var uD=[`number`,`password`,`idcard`];function dD(e){let t=``;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n).toString(16).padStart(2,`0`);return t}function fD(e){let t=!1,n=!1,r=!1;for(let i of e)i>=`0`&&i<=`9`?t=!0:i>=`a`&&i<=`z`||i>=`A`&&i<=`Z`?n=!0:r=!0;return+!!t+ +!!n+ +!!r}function pD(e){if(!e)return!1;if(/^(.)\1*$/.test(e))return!0;if(e.length>=3){let t=!0,n=!0;for(let r=1;r<e.length;r++){let i=e.charCodeAt(r)-e.charCodeAt(r-1);i!==1&&(t=!1),i!==-1&&(n=!1)}if(t||n)return!0}return!1}function mD(e,t){let n=e.value;return{success:!0,data:{value:e.isEncry?dD(n):n,md5:UE(n),inputSimple:pD(n),inputLevel:fD(n),isMatch:!e.regular||new RegExp(e.regular).test(n),length:n.length,action:t,error:`0`,errorMessage:``}}}function hD(e,t){let n=e||{},r=uD.includes(n.type)?n.type:`number`;WE.keyboard&&vD();let i=n.max==null?n.maxLength:n.max,a=Number(i)>0?Number(i):r===`password`?6:r===`idcard`?18:0,o=n.isEncry===void 0?r!==`number`:!!n.isEncry;WE.keyboard={type:r,maxLength:a,random:n.random===void 0?r!==`number`:!!n.random,extraKey:r===`idcard`?`X`:``,isEncry:o,encryptType:n.encryptType||(o?`SM2SM4`:``),randomKey:n.randomKey||``,regular:n.regular||``,value:``,callback:t}}function gD(e){let t=WE.keyboard;t&&(t.maxLength>0&&t.value.length>=t.maxLength||(t.value+=e,$E(t.callback,mD(t,`input`))))}function _D(){let e=WE.keyboard;e&&e.value&&(e.value=e.value.slice(0,-1),$E(e.callback,mD(e,`input`)))}function vD(){let e=WE.keyboard;e&&(WE.keyboard=null,$E(e.callback,mD(e,`hide`)))}function yD(e,t){vD(),$E(t,{success:!0,data:{}})}function bD(e,t){let n=e||{},r=n.message==null?``:String(n.message),i=Number(n.duration)>0?Number(n.duration):8;qE&&=(clearTimeout(qE),null),WE.loadingEx={message:r},qE=setTimeout(()=>{qE=null,WE.loadingEx=null},i*1e3),$E(t,{success:!0,data:{}})}function xD(e,t){qE&&=(clearTimeout(qE),null),WE.loadingEx=null,$E(t,{success:!0,data:{}})}function SD(e,t){let n=e||{},r=n.text==null?``:String(n.text),i=()=>$E(t,{success:!1,error:`-1`,errorMessage:`复制失败`,data:{}}),a=()=>$E(t,{success:!0,data:{}}),o=()=>{try{let e=document.createElement(`textarea`);e.value=r,e.style.cssText=`position:fixed;opacity:0;pointer-events:none`,document.body.appendChild(e),e.select();let t=document.execCommand(`copy`);return document.body.removeChild(e),t}catch{return!1}};navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(r).then(a,()=>o()?a():i()):o()?a():i()}var CD={alertCard:(e,t)=>IS(e,t),closeAlertCard:(e,t)=>LS(e,t),alertDialog:tD,showToast:rD,showPicker:iD,showDatePicker:sD,showKeyboard:hD,hideKeyboard:yD,showLoadingEx:bD,hideLoadingEx:xD,copyToClipboard:SD};function wD(e){typeof window<`u`&&(window.ynet={callJSAPI(t,n,r){e&&e.pushApiCall&&e.pushApiCall(t,n);let i=CD[t];i?i(n,r):$E(r,{success:!0,data:{}})}})}function TD(){GE.length=0,WE.dialog=null;try{TE()}catch{}JE.length=0,WE.picker=null,XE.length=0,WE.datePicker=null,WE.keyboard=null,qE&&=(clearTimeout(qE),null),WE.loadingEx=null}var ED={name:`DeviceOverlay`,computed:{dialog(){return WE.dialog}},methods:{onOk(){nD({ok:!0,dismissByClickBg:!1})},onCancel(){nD({ok:!1,dismissByClickBg:!1})},onMaskClick(){this.dialog&&this.dialog.clickBgToHide&&nD({ok:!1,dismissByClickBg:!0})}}},DD={class:`device-ui`},OD={class:`dlg`},kD={key:0,class:`dlg__title`},AD={key:1,class:`dlg__msg`},jD={class:`dlg__btns`};function MD(e,t,n,r,i,a){return V(),H(`div`,DD,[q(` alertDialog:原生风格居中确认对话框 `),G(hc,{name:`dlg-fade`},{default:I(()=>[a.dialog?(V(),H(`div`,{key:0,class:`dlg-mask`,onClick:t[2]||=J((...e)=>a.onMaskClick&&a.onMaskClick(...e),[`self`])},[W(`div`,OD,[a.dialog.title?(V(),H(`div`,kD,M(a.dialog.title),1)):q(`v-if`,!0),a.dialog.message?(V(),H(`div`,AD,M(a.dialog.message),1)):q(`v-if`,!0),W(`div`,jD,[a.dialog.cancelButton?(V(),H(`button`,{key:0,type:`button`,class:j([`dlg__btn dlg__btn--cancel`,{"dlg__btn--gray":a.dialog.cancelGrayStyle}]),onClick:t[0]||=(...e)=>a.onCancel&&a.onCancel(...e)},M(a.dialog.cancelButton),3)):q(`v-if`,!0),W(`button`,{type:`button`,class:`dlg__btn dlg__btn--ok`,onClick:t[1]||=(...e)=>a.onOk&&a.onOk(...e)},M(a.dialog.okButton),1)])])])):q(`v-if`,!0)]),_:1})])}var ND=Z(ED,[[`render`,MD],[`__file`,`/Users/ynet/dsl-card/card-editor/components/DeviceOverlay.vue`]]),PD=0,FD=!1;typeof document<`u`&&(document.addEventListener(`touchmove`,()=>{FD=!0},{capture:!0,passive:!0}),document.addEventListener(`touchend`,()=>{FD&&(PD=Date.now()),FD=!1},{capture:!0}));function ID(){return Date.now()-PD<200}var LD={name:`PickerOverlay`,components:{VanPicker:cE},data(){return{selKeys:[],OPTION_H:44,VISIBLE_N:5,SWIPE_MS:240}},computed:{picker(){return WE.picker},fieldNames(){return{text:`text`,value:`key`,children:`children`}},columns(){if(!this.picker)return[];let e=this.picker.dataSource||[];return this.picker.mode===`multi`?e.map(e=>({text:e.text,key:String(e.key),children:e.children||[]})):e.map(e=>({text:e.text,key:String(e.key)}))}},watch:{picker:{immediate:!0,handler(e){if(!e){this.selKeys=[];return}let t=e.dataSource||[],n=(e.currentValue||[]).map(e=>String(e));if(e.mode===`multi`){let e=t.find(e=>String(e.key)===n[0])||t[0],r=e&&e.children||[],i=r.find(e=>String(e.key)===n[1])||r[0];this.selKeys=[e?String(e.key):``,i?String(i.key):``]}else{let e=t.find(e=>String(e.key)===n[0])||t[0];this.selKeys=[e?String(e.key):``]}}}},methods:{onChange(e){this.selKeys=(e.selectedValues||[]).map(e=>String(e))},buildResult(){let e=this.picker;if(!e)return[];let t=e.dataSource||[],n=e=>({key:String(e.key),text:e.text,value:e.text});if(e.mode===`multi`){let e=t.find(e=>String(e.key)===this.selKeys[0])||t[0],r=e&&e.children||[],i=r.find(e=>String(e.key)===this.selKeys[1])||r[0],a=[];return e&&a.push(n(e)),i&&a.push(n(i)),a}let r=t.find(e=>String(e.key)===this.selKeys[0])||t[0];return r?[n(r)]:[]},onConfirm(){oD(!0,this.buildResult())},onMaskClick(){ID()||this.onCancel()},onCancel(){oD(!1)}}},RD={class:`device-ui`},zD={class:`pk-sheet`},BD={class:`pk-bar`},VD={key:0,class:`pk-bar__title`};function HD(e,t,n,r,i,a){let o=R(`van-picker`);return V(),H(`div`,RD,[G(hc,{name:`picker-fade`},{default:I(()=>[a.picker?(V(),H(`div`,{key:0,class:`pk-mask`,onClick:t[2]||=J((...e)=>a.onMaskClick&&a.onMaskClick(...e),[`self`])},[W(`div`,zD,[W(`div`,BD,[W(`button`,{type:`button`,class:`pk-bar__btn pk-bar__btn--cancel`,onClick:t[0]||=(...e)=>a.onCancel&&a.onCancel(...e)},`取消`),a.picker.title?(V(),H(`div`,VD,M(a.picker.title),1)):q(`v-if`,!0),W(`button`,{type:`button`,class:`pk-bar__btn pk-bar__btn--ok`,onClick:t[1]||=(...e)=>a.onConfirm&&a.onConfirm(...e)},`确定`)]),q(` ⚠️ vant 4 属性名是 option-height / visible-option-num(Vant 2 的
|
|
248
248
|
item-height / visible-item-count 已改名):写错不报错、静默落默认值
|
|
249
249
|
(optionHeight=44 / visibleOptionNum=6),滚轮会被拉成 6 槽。 `),G(o,{columns:a.columns,"columns-field-names":a.fieldNames,"model-value":i.selKeys,"option-height":i.OPTION_H,"visible-option-num":i.VISIBLE_N,"swipe-duration":i.SWIPE_MS,"show-toolbar":!1,onChange:a.onChange},null,8,[`columns`,`columns-field-names`,`model-value`,`option-height`,`visible-option-num`,`swipe-duration`,`onChange`])])])):q(`v-if`,!0)]),_:1})])}var UD=Z(LD,[[`render`,HD],[`__file`,`/Users/ynet/dsl-card/card-editor/components/PickerOverlay.vue`]]);function WD(e){return String(e).padStart(2,`0`)}function GD(e,t){let n=[];for(let r=e;r<=t;r++)n.push(r);return n}function KD(e,t){return[31,e%4==0&&e%100!=0||e%400==0?29:28,31,30,31,30,31,31,30,31,30,31][(t-1+12)%12]}function qD(e){if(!e)return null;let t=String(e).split(`-`).map(e=>parseInt(e,10));return t.some(e=>Number.isNaN(e))?null:t.length===3?{y:t[0],m:t[1],d:t[2]}:t.length===2?{m:t[0],d:t[1]}:null}var JD={name:`DatePickerOverlay`,components:{VanPicker:cE},data(){return{sel:[],OPTION_H:44,VISIBLE_N:5,SWIPE_MS:240}},computed:{datePicker(){return WE.datePicker},yearRange(){let e=this.datePicker,t=qD(e&&e.startDate)||{y:1970},n=qD(e&&e.endDate)||{y:2100};return{minY:t.y||1970,maxY:n.y||2100}},columns(){let e=this.datePicker;if(!e)return[];let{minY:t}=this.yearRange;if(e.type===`month_day`)return[{key:`month`,items:GD(1,12).map(e=>({text:WD(e)}))},{key:`day`,items:GD(1,31).map(e=>({text:WD(e)}))}];if(e.type===`year_month`)return[{key:`year`,items:GD(t,this.yearRange.maxY).map(e=>({text:String(e)}))},{key:`month`,items:GD(1,12).map(e=>({text:WD(e)}))}];let n=KD(t+(this.sel[0]||0),(this.sel[1]||0)+1);return[{key:`year`,items:GD(t,this.yearRange.maxY).map(e=>({text:String(e)}))},{key:`month`,items:GD(1,12).map(e=>({text:WD(e)}))},{key:`day`,items:GD(1,n).map(e=>({text:WD(e)}))}]},dateColumns(){return this.columns.map(e=>e.items.map(e=>({text:e.text,value:e.text})))},selectedValues(){return this.columns.map((e,t)=>{let n=e.items[this.sel[t]||0];return n?n.text:``})}},watch:{datePicker:{immediate:!0,handler(e){if(!e){this.sel=[];return}let t=qD(e.selectDate)||this.todayConstrained(e),{minY:n}=this.yearRange;if(e.type===`month_day`)this.sel=[t.m-1,t.d-1];else if(e.type===`year_month`)this.sel=[t.y-n,t.m-1];else{let e=KD(t.y,t.m);this.sel=[t.y-n,t.m-1,Math.min(t.d,e)-1]}}},sel:{deep:!0,handler(){let e=this.datePicker;if(!e||e.type!==`year_month_day`)return;let t=this.sel.slice(),n=KD(this.yearRange.minY+(t[0]||0),(t[1]||0)+1);t[2]>n-1&&(t[2]=n-1,this.sel=t)}}},methods:{onChange(e){let t=(e.selectedIndexes||[]).slice(),n=this.datePicker;if(n&&n.type===`year_month_day`&&(e.columnIndex===0||e.columnIndex===1)){let e=KD(this.yearRange.minY+(t[0]||0),(t[1]||0)+1);t[2]>e-1&&(t[2]=e-1)}this.sel=t},todayConstrained(e){let t=new Date,{minY:n,maxY:r}=this.yearRange,i=t.getFullYear();i=Math.max(n,Math.min(r,i));let a=t.getMonth()+1,o=KD(i,a),s=Math.min(t.getDate(),o);return{y:i,m:a,d:s}},buildResult(){let e=this.datePicker;if(!e)return null;let{minY:t}=this.yearRange,n=``,r=0,i=0;e.type===`month_day`?(r=(this.sel[0]||0)+1,i=(this.sel[1]||0)+1):e.type===`year_month`?(n=t+(this.sel[0]||0),r=(this.sel[1]||0)+1):(n=t+(this.sel[0]||0),r=(this.sel[1]||0)+1,i=(this.sel[2]||0)+1);let a=WD(r),o=WD(i),s;return s=e.type===`year_month_day`?`${n}-${a}-${o}`:e.type===`year_month`?`${n}-${a}`:`${a}-${o}`,{year:e.type===`month_day`?``:String(n),month:a,day:e.type===`year_month`?``:o,value:s}},onConfirm(){lD(!0,this.buildResult())},onMaskClick(){ID()||this.onCancel()},onCancel(){lD(!1)}}},YD={class:`device-ui`},XD={class:`pk-sheet`},ZD={class:`pk-bar`},QD={key:0,class:`pk-bar__title`};function $D(e,t,n,r,i,a){let o=R(`van-picker`);return V(),H(`div`,YD,[G(hc,{name:`picker-fade`},{default:I(()=>[a.datePicker?(V(),H(`div`,{key:0,class:`pk-mask`,onClick:t[2]||=J((...e)=>a.onMaskClick&&a.onMaskClick(...e),[`self`])},[W(`div`,XD,[W(`div`,ZD,[W(`button`,{type:`button`,class:`pk-bar__btn pk-bar__btn--cancel`,onClick:t[0]||=(...e)=>a.onCancel&&a.onCancel(...e)},`取消`),a.datePicker.title?(V(),H(`div`,QD,M(a.datePicker.title),1)):q(`v-if`,!0),W(`button`,{type:`button`,class:`pk-bar__btn pk-bar__btn--ok`,onClick:t[1]||=(...e)=>a.onConfirm&&a.onConfirm(...e)},`确定`)]),q(` ⚠️ vant 4 属性名是 option-height / visible-option-num(Vant 2 的
|
|
250
250
|
item-height / visible-item-count 已改名):写错不报错、静默落默认值
|
|
@@ -254,7 +254,7 @@ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.expo
|
|
|
254
254
|
Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),KO=o((e=>{var t=wO(),n=TO(),r=EO(),i=DO(),a=OO(),o=kO(),s=AO(),c=jO(),l=PO(),u=RO(),d=zO(),f=LO(),p=GO();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
|
|
255
255
|
The chosen QR Code version cannot contain this amount of data.
|
|
256
256
|
Minimum version required to store current data is: `+c+`.
|
|
257
|
-
`);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),qO=o((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||(e.color={});let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),JO=o((e=>{var t=qO();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o
|
|
257
|
+
`);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),qO=o((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||(e.color={});let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),JO=o((e=>{var t=qO();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o!==void 0||i&&i.getContext||(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i!==void 0||n&&n.getContext||(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),YO=o((e=>{var t=qO();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
|
|
258
258
|
`;return typeof a==`function`&&a(null,p),p}})),XO=c(o((e=>{var t=CO(),n=KO(),r=JO(),i=YO();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))()),ZO={name:`RemotePreview`,props:{visible:{type:Boolean,default:!1},pageId:{type:[String,Number],default:``},schema:{type:Object,default:null},cardCode:{type:String,default:``}},data(){return{qrDataUrl:``,url:``,loading:!1,publishing:!1,copied:!1,copyTimer:null,warn:``,code:``}},watch:{visible(e){e&&this.open()},pageId(){this.visible&&this.open()}},beforeUnmount(){this.copyTimer&&clearTimeout(this.copyTimer)},methods:{buildSocket(e){return`${`https://uat-pkg.finmall.com`.replace(/^https?:/,`wss:`)}/pmb-web/websocket/card/${e}`},fullUrl(e,t){let n=this.buildSocket(e);return`app://previewCard?cardId=${encodeURIComponent(e)}&cardCode=${encodeURIComponent(t||``)}&cardVersion=00000000&socket=${encodeURIComponent(n)}`},async makeQr(e){return XO.toDataURL(e,{width:220,margin:1,errorCorrectionLevel:`H`,color:{dark:`#10131a`,light:`#ffffff`}})},async open(){this.qrDataUrl=``,this.url=``,this.loading=!0,this.publishing=!1,this.copied=!1,this.warn=``,this.code=this.cardCode||``;let e=String(this.pageId||``).trim();if(!e)this.warn=`当前卡片缺少 pageId(远端卡片 id),无法生成预览二维码`,this.loading=!1;else{this.url=`app://previewCard?cardId=${encodeURIComponent(e)}`;try{this.qrDataUrl=await this.makeQr(this.url)}catch(e){this.warn=`二维码生成失败:`+(e&&e.message)}this.publishing=!0;try{let t=await Y(`/__preview`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({schema:this.schema||{pageId:e}})}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n.message||`preview failed`);n.cardCode!==void 0&&(this.code=n.cardCode),this.url=this.fullUrl(e,this.code),this.qrDataUrl=await this.makeQr(this.url)}catch(e){this.warn=`远端发布失败:`+(e&&e.message)}finally{this.publishing=!1,this.loading=!1}}},async copyUrl(){if(this.url)try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(this.url);else{let e=document.createElement(`textarea`);e.value=this.url,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e),e.select(),document.execCommand(`copy`),document.body.removeChild(e)}this.copied=!0,this.copyTimer&&clearTimeout(this.copyTimer),this.copyTimer=setTimeout(()=>{this.copied=!1},1500)}catch(e){this.warn=`复制失败:`+(e&&e.message)}}}},QO={class:`rp-card modal-card`,role:`dialog`,"aria-label":`远端预览二维码`},$O={class:`rp-head`},ek={class:`rp-body`},tk={class:`rp-qr-wrap`},nk=[`src`],rk={key:1,class:`rp-qr rp-qr--loading`},ik={key:2,class:`rp-qr-loading`},ak={class:`rp-url`},ok={class:`rp-url-text`},sk=[`disabled`],ck={key:0,class:`rp-warn`};function lk(e,t,n,r,i,a){return V(),U(hc,{name:`modal`},{default:I(()=>[n.visible?(V(),H(`div`,{key:0,class:`rp-mask`,onClick:t[2]||=J(t=>e.$emit(`close`),[`self`])},[W(`div`,QO,[W(`div`,$O,[t[3]||=W(`span`,{class:`rp-title`},`远端预览(真机扫码)`,-1),W(`button`,{class:`rp-x`,type:`button`,onClick:t[0]||=t=>e.$emit(`close`),"aria-label":`关闭`},`×`)]),W(`div`,ek,[W(`div`,tk,[i.qrDataUrl?(V(),H(`img`,{key:0,src:i.qrDataUrl,class:j([`rp-qr`,{"rp-qr--blurred":i.publishing}]),alt:`preview qr`},null,10,nk)):(V(),H(`div`,rk,M(i.loading?`准备中…`:`—`),1)),i.publishing?(V(),H(`div`,ik,[...t[4]||=[W(`span`,{class:`rp-spinner`},null,-1),W(`span`,{class:`rp-loading-text`},`正在发布预览…`,-1)]])):q(`v-if`,!0)]),t[5]||=W(`p`,{class:`rp-tip`},`手机(远端 App)扫一扫,真机查看当前卡片预览`,-1),W(`div`,ak,[W(`code`,ok,M(i.url||`—`),1),W(`button`,{class:`rp-copy`,type:`button`,disabled:!i.url,onClick:t[1]||=(...e)=>a.copyUrl&&a.copyUrl(...e)},M(i.copied?`已复制 ✓`:`复制链接`),9,sk)]),i.warn?(V(),H(`p`,ck,M(i.warn),1)):q(`v-if`,!0)])])])):q(`v-if`,!0)]),_:1})}var uk=Z(ZO,[[`render`,lk],[`__file`,`/Users/ynet/dsl-card/card-editor/components/RemotePreview.vue`]]),dk={name:`AppToast`,computed:{toast(){return bp},iconHref(){return this.toast.type===`ok`?`#icon-check-plain`:this.toast.type===`warn`?`#icon-alert-triangle`:`#icon-x`}}},fk={class:`apptoast__icon`},pk={class:`apptoast__icon-svg`,viewBox:`0 0 24 24`,"aria-hidden":`true`},mk=[`href`],hk={class:`apptoast__msg`};function gk(e,t,n,r,i,a){return V(),U(hc,{name:`apptoast-fade`},{default:I(()=>[a.toast.visible?(V(),H(`div`,{key:0,class:j([`apptoast`,`apptoast--`+a.toast.type]),role:`status`,"aria-live":`polite`},[W(`span`,fk,[(V(),H(`svg`,pk,[W(`use`,{href:a.iconHref},null,8,mk)]))]),W(`span`,hk,M(a.toast.message),1)],2)):q(`v-if`,!0)]),_:1})}var _k=Z(dk,[[`render`,gk],[`__file`,`/Users/ynet/dsl-card/card-editor/components/AppToast.vue`]]),vk=[{key:`blue`,name:`默认`,swatch:`#4F6BF2`},{key:`yellow`,name:`黄`,swatch:`#E0A32B`},{key:`green`,name:`绿`,swatch:`#2FA35B`},{key:`orange`,name:`橙`,swatch:`#E8761F`}],yk=`cardbuddy:accent`,bk=`blue`;function xk(e){return vk.some(t=>t.key===e)}function Sk(){try{let e=localStorage.getItem(yk);return xk(e)?e:bk}catch{return bk}}function Ck(e){let t=document.documentElement;!xk(e)||e===`blue`?t.removeAttribute(`data-accent`):t.dataset.accent=e}function wk(e){try{localStorage.setItem(yk,e)}catch{}}var Tk=[{key:`light`,name:`浅色`,icon:`#icon-sun`},{key:`dark`,name:`深色`,icon:`#icon-moon`}],Ek={name:`ThemeSettings`,props:{theme:{type:String,default:`dark`},accent:{type:String,default:`blue`},disabled:{type:Boolean,default:!1}},emits:[`update:theme`,`update:accent`],data(){return{open:!1,MODES:Tk,presets:vk}},watch:{disabled(e){e&&(this.open=!1)},open(e){e?document.addEventListener(`keydown`,this.onKeydown):document.removeEventListener(`keydown`,this.onKeydown)}},beforeUnmount(){document.removeEventListener(`keydown`,this.onKeydown)},methods:{toggle(){this.disabled||(this.open=!this.open)},pickTheme(e){e!==this.theme&&this.$emit(`update:theme`,e)},pickAccent(e){e!==this.accent&&this.$emit(`update:accent`,e)},onKeydown(e){e.key===`Escape`&&(this.open=!1)}}},Dk={class:`app__theme`},Ok=[`disabled`,`title`,`aria-expanded`],kk={class:`app__theme-head`},Ak={class:`app__theme-body`},jk={class:`app__theme-seg`,role:`radiogroup`,"aria-label":`外观`},Mk=[`aria-checked`,`data-testid`,`onClick`],Nk={class:`app__theme-seg-icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},Pk=[`href`],Fk={class:`app__theme-swatches`,role:`radiogroup`,"aria-label":`主题色`},Ik=[`aria-checked`,`title`,`data-testid`,`onClick`];function Lk(e,t,n,r,i,a){return V(),H(`div`,Dk,[W(`button`,{class:j([`app__btn app__btn--icon`,{"app__btn--active":i.open}]),type:`button`,disabled:n.disabled,title:i.open?`收起主题设置`:`主题设置(外观 / 主题色)`,"aria-haspopup":`dialog`,"aria-expanded":i.open?`true`:`false`,"data-testid":`theme-settings-trigger`,onClick:t[0]||=(...e)=>a.toggle&&a.toggle(...e)},[...t[4]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-palette`})],-1)]],10,Ok),q(` 点遮罩关闭:与本顶栏「本地开发服务」浮层同一交互 `),i.open?(V(),H(`div`,{key:0,class:`app__theme-mask`,onClick:t[1]||=e=>i.open=!1})):q(`v-if`,!0),G(hc,{name:`pop`},{default:I(()=>[i.open?(V(),H(`div`,{key:0,class:`app__theme-panel`,role:`dialog`,"aria-label":`主题设置`,onClick:t[3]||=J(()=>{},[`stop`])},[W(`div`,kk,[t[5]||=W(`span`,{class:`app__theme-title`},`主题设置`,-1),W(`button`,{class:`app__theme-close`,type:`button`,title:`关闭`,onClick:t[2]||=e=>i.open=!1})]),W(`div`,Ak,[q(` 外观:浅色 / 深色分段控件 `),W(`section`,null,[t[6]||=W(`div`,{class:`app__theme-label`},[W(`span`,null,`外观`)],-1),W(`div`,jk,[(V(!0),H(B,null,z(i.MODES,e=>(V(),H(`button`,{key:e.key,class:j([`app__theme-seg-btn`,{"is-active":n.theme===e.key}]),type:`button`,role:`radio`,"aria-checked":n.theme===e.key?`true`:`false`,"data-testid":`theme-mode-`+e.key,onClick:t=>a.pickTheme(e.key)},[(V(),H(`svg`,Nk,[W(`use`,{href:e.icon},null,8,Pk)])),W(`span`,null,M(e.name),1)],10,Mk))),128))])]),q(` 主题色:四档色板(默认 / 黄 / 绿 / 橙) `),W(`section`,null,[t[7]||=W(`div`,{class:`app__theme-label`},[W(`span`,null,`主题色`),W(`span`,{class:`app__theme-label-note`},`强调色`)],-1),W(`div`,Fk,[(V(!0),H(B,null,z(i.presets,e=>(V(),H(`button`,{key:e.key,class:j([`app__theme-swatch`,{"is-active":n.accent===e.key}]),type:`button`,role:`radio`,"aria-checked":n.accent===e.key?`true`:`false`,title:e.name+(e.key===`blue`?`(品牌蓝)`:``),"data-testid":`accent-`+e.key,onClick:t=>a.pickAccent(e.key)},[W(`span`,{class:`app__theme-dot`,style:A({background:e.swatch})},null,4),W(`span`,null,M(e.name),1)],10,Ik))),128))])])]),t[8]||=W(`p`,{class:`app__theme-hint`},`主题色作用于按钮、选中态、链接与高亮等外壳元素,不影响卡片内容本身的配色。`,-1)])):q(`v-if`,!0)]),_:1})])}var Rk=Z(Ek,[[`render`,Lk],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ThemeSettings.vue`]]),zk=cn({open:!1,index:0,items:[]});function Bk(e,t=0){let n=Array.isArray(e)?e.filter(e=>e&&e.src):[];n.length&&(zk.items=n,zk.index=Math.max(0,Math.min(n.length-1,t|0)),zk.open=!0)}function Vk(e){if(!zk.open)return;let t=zk.index+e;t<0||t>=zk.items.length||(zk.index=t)}function Hk(){zk.open=!1}var Uk=1.25,Wk=.05,Gk=16,Kk={name:`ImageLightbox`,data(){return{STEP:Uk,scale:1,tx:0,ty:0,natW:0,natH:0,loaded:!1,failed:!1,dragging:!1,fitScale:1,_pan:null,_prevFocus:null}},computed:{box(){return zk},current(){return this.box.items[this.box.index]||{src:``,alt:``,title:``}},displayName(){return(this.current.alt||this.current.title||``).split(/[\\/]/).pop()||`图片`},zoomLabel(){return`${Math.round(this.scale*100)}%`},atFit(){return Math.abs(this.scale-this.fitScale)<.001&&this.tx===0&&this.ty===0},imgStyle(){let e={transform:`translate(${this.tx}px, ${this.ty}px) scale(${this.scale})`};return this.natW&&this.natH&&(e.width=`${this.natW}px`,e.height=`${this.natH}px`),e}},watch:{"box.open"(e){e?(this._prevFocus=document.activeElement,this.resetView(),this.$nextTick(()=>this.$refs.rootEl?.focus())):this._prevFocus&&this._prevFocus.focus&&(this._prevFocus.focus(),this._prevFocus=null)},"box.index"(){this.resetView()}},mounted(){window.addEventListener(`resize`,this.onResize)},beforeUnmount(){window.removeEventListener(`resize`,this.onResize),this.stopPan()},methods:{resetView(){this.scale=1,this.fitScale=1,this.tx=0,this.ty=0,this.natW=0,this.natH=0,this.loaded=!1,this.failed=!1},onLoaded(e){let t=e.target;this.natW=t.naturalWidth||0,this.natH=t.naturalHeight||0,this.loaded=!0,this.fit()},fit(){let e=this.$refs.stageEl;if(!e||!this.natW||!this.natH)return;let t=Math.max(80,e.clientWidth-96),n=Math.max(80,e.clientHeight-96);this.fitScale=Math.min(t/this.natW,n/this.natH),this.scale=this.fitScale,this.tx=0,this.ty=0},toggleFit(){this.atFit?(this.scale=1,this.tx=0,this.ty=0):this.fit()},clampScale(e){return Math.max(Wk,Math.min(Gk,e))},zoomAt(e,t,n){let r=this.$refs.stageEl;if(!r)return;let i=this.clampScale(n),a=r.getBoundingClientRect(),o=e-a.left-a.width/2,s=t-a.top-a.height/2,c=i/this.scale;this.tx=o-(o-this.tx)*c,this.ty=s-(s-this.ty)*c,this.scale=i},zoomBy(e){let t=this.$refs.stageEl;if(!t)return;let n=t.getBoundingClientRect();this.zoomAt(n.left+n.width/2,n.top+n.height/2,this.scale*e)},onWheel(e){e.preventDefault();let t=Math.exp(-e.deltaY*(e.ctrlKey?.01:.0022));this.zoomAt(e.clientX,e.clientY,this.scale*t)},onPanStart(e){e.button!==0||this.failed||(e.preventDefault(),this.dragging=!0,this._pan={x:e.clientX,y:e.clientY,tx:this.tx,ty:this.ty,id:e.pointerId},e.currentTarget.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,this.onPanMove),window.addEventListener(`pointerup`,this.onPanEnd))},onPanMove(e){this._pan&&(this.tx=this._pan.tx+(e.clientX-this._pan.x),this.ty=this._pan.ty+(e.clientY-this._pan.y))},onPanEnd(){this.stopPan()},stopPan(){this.dragging=!1,this._pan=null,window.removeEventListener(`pointermove`,this.onPanMove),window.removeEventListener(`pointerup`,this.onPanEnd)},onResize(){this.box.open&&this.atFit&&this.fit()},onKey(e){let t=e.key;t===`Escape`?(e.preventDefault(),this.close()):t===`ArrowLeft`?(e.preventDefault(),this.step(-1)):t===`ArrowRight`?(e.preventDefault(),this.step(1)):t===`+`||t===`=`?(e.preventDefault(),this.zoomBy(Uk)):t===`-`||t===`_`?(e.preventDefault(),this.zoomBy(1/Uk)):t===`0`?(e.preventDefault(),this.fit()):t===`1`&&(e.preventDefault(),this.scale=1,this.tx=0,this.ty=0)},step(e){Vk(e)},close(){Hk()},openRaw(){this.current.src&&window.open(this.current.src,`_blank`,`noopener`)},async copyPath(){let e=await yp(this.current.title||this.current.src);Q(e?`已复制图片路径`:`复制失败`,e?`ok`:`err`)}}},qk=[`title`],Jk={class:`imgbox__name`},Yk={key:0,class:`imgbox__count`},Xk={key:1,class:`imgbox__dims`},Zk={class:`imgbox__acts`},Qk=[`title`],$k={key:0,class:`imgbox__fail`},eA=[`title`],tA=[`src`,`alt`],nA={key:2,class:`imgbox__spin`,"aria-hidden":`true`};function rA(e,t,n,r,i,a){return V(),U(mi,{to:`body`},[G(hc,{name:`imgbox-fade`},{default:I(()=>[a.box.open?(V(),H(`div`,{key:0,ref:`rootEl`,class:`imgbox`,role:`dialog`,"aria-modal":`true`,"aria-label":`图片预览`,tabindex:`-1`,onKeydown:t[16]||=(...e)=>a.onKey&&a.onKey(...e),onClick:t[17]||=J((...e)=>a.close&&a.close(...e),[`self`])},[q(` 顶栏:左=图名与序号 / 右=工具 `),W(`header`,{class:`imgbox__bar`,onClick:t[7]||=J(()=>{},[`stop`])},[W(`span`,{class:`imgbox__meta`,title:a.current.title||a.current.alt},[W(`span`,Jk,M(a.displayName),1),a.box.items.length>1?(V(),H(`span`,Yk,M(a.box.index+1)+` / `+M(a.box.items.length),1)):q(`v-if`,!0),i.natW?(V(),H(`span`,Xk,M(i.natW)+`×`+M(i.natH),1)):q(`v-if`,!0)],8,qk),W(`span`,Zk,[W(`button`,{type:`button`,class:`imgbox__btn`,title:`缩小(-)`,onClick:t[0]||=e=>a.zoomBy(1/i.STEP)},[...t[18]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-zoom-out`})],-1)]]),W(`button`,{type:`button`,class:`imgbox__zoom`,title:a.atFit?`当前为适应窗口,点击恢复 1:1`:`点击恢复适应窗口`,onClick:t[1]||=(...e)=>a.toggleFit&&a.toggleFit(...e)},M(a.zoomLabel),9,Qk),W(`button`,{type:`button`,class:`imgbox__btn`,title:`放大(+)`,onClick:t[2]||=e=>a.zoomBy(i.STEP)},[...t[19]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-zoom-in`})],-1)]]),t[24]||=W(`span`,{class:`imgbox__sep`},null,-1),W(`button`,{type:`button`,class:j([`imgbox__btn`,{"is-on":a.atFit}]),title:`适应窗口(0)`,onClick:t[3]||=(...e)=>a.fit&&a.fit(...e)},[...t[20]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-maximize`})],-1)]],2),W(`button`,{type:`button`,class:`imgbox__btn`,title:`复制图片路径`,onClick:t[4]||=(...e)=>a.copyPath&&a.copyPath(...e)},[...t[21]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-copy-sm`})],-1)]]),W(`button`,{type:`button`,class:`imgbox__btn`,title:`在新标签打开原图`,onClick:t[5]||=(...e)=>a.openRaw&&a.openRaw(...e)},[...t[22]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-external`})],-1)]]),t[25]||=W(`span`,{class:`imgbox__sep`},null,-1),W(`button`,{type:`button`,class:`imgbox__btn`,title:`关闭(Esc)`,onClick:t[6]||=(...e)=>a.close&&a.close(...e)},[...t[23]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-x`})],-1)]])])]),q(` 画布:图片居中,transform 承担缩放与平移 `),W(`div`,{ref:`stageEl`,class:`imgbox__stage`,onWheel:t[10]||=(...e)=>a.onWheel&&a.onWheel(...e),onPointerdown:t[11]||=(...e)=>a.onPanStart&&a.onPanStart(...e),onDblclick:t[12]||=(...e)=>a.toggleFit&&a.toggleFit(...e)},[i.failed?(V(),H(`div`,$k,[t[26]||=W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-alert-triangle`})],-1),t[27]||=W(`span`,null,`图片加载失败`,-1),W(`code`,{title:a.current.src},M(a.displayName),9,eA)])):(V(),H(`img`,{key:a.current.src,class:j([`imgbox__img`,{"is-dragging":i.dragging,"is-loading":!i.loaded}]),src:a.current.src,alt:a.current.alt||`预览图`,draggable:`false`,style:A(a.imgStyle),onLoad:t[8]||=(...e)=>a.onLoaded&&a.onLoaded(...e),onError:t[9]||=e=>i.failed=!0},null,46,tA)),!i.loaded&&!i.failed?(V(),H(`div`,nA,[...t[28]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[W(`use`,{href:`#icon-loading`})],-1)]])):q(`v-if`,!0)],544),q(` 多张时的左右翻页 `),a.box.index>0?(V(),H(`button`,{key:0,type:`button`,class:`imgbox__nav imgbox__nav--prev`,title:`上一张(←)`,onClick:t[13]||=J(e=>a.step(-1),[`stop`])},[...t[29]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-chevron-right`})],-1)]])):q(`v-if`,!0),a.box.index<a.box.items.length-1?(V(),H(`button`,{key:1,type:`button`,class:`imgbox__nav imgbox__nav--next`,title:`下一张(→)`,onClick:t[14]||=J(e=>a.step(1),[`stop`])},[...t[30]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-chevron-right`})],-1)]])):q(`v-if`,!0),W(`footer`,{class:`imgbox__hint`,onClick:t[15]||=J(()=>{},[`stop`])},`滚轮缩放 · 拖拽平移 · 双击切换 1:1 · ←/→ 翻页 · Esc 关闭`)],544)):q(`v-if`,!0)]),_:1})])}var iA=Z(Kk,[[`render`,rA],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ImageLightbox.vue`]]),aA={name:`CardGallery`,components:{ConfirmDialog:Ap},props:{visible:{type:Boolean,default:!1},cards:{type:Array,default:()=>[]},selectedId:{type:String,default:``},compiling:{type:Boolean,default:!1}},emits:[`select`,`close`,`delete`,`export`,`compile`],data(){return{query:``,sortByTime:this.loadSortByTime(),selectMode:!1,checked:new Set,visibleIds:new Set,failed:new Set,observer:null,base:``,pendingDelete:null,placeholderUrl:kd,busyVisible:!1,busyCount:0,busyElapsed:0,busyShowTimer:null,busyTickTimer:null}},created(){this.saveSortByTime()},computed:{filtered(){let e=this.query.trim().toLowerCase(),t=this.cards;return e&&(t=t.filter(t=>t.id.toLowerCase().includes(e)||String(t.name||``).toLowerCase().includes(e))),this.sortByTime?t.slice().sort((e,t)=>(t.mtime||0)-(e.mtime||0)):t.slice().sort((e,t)=>String(e.name||``).localeCompare(String(t.name||``)))},checkedCount(){return this.checked.size},allChecked(){return this.filtered.length>0&&this.filtered.every(e=>this.checked.has(e.id))},someChecked(){return!this.allChecked&&this.filtered.some(e=>this.checked.has(e.id))}},watch:{visible(e){e?(this.query=``,this.failed=new Set,this.$nextTick(()=>{this.setupObserver(),this.focusSearch()}),window.addEventListener(`keydown`,this.onKey)):(this.teardownObserver(),window.removeEventListener(`keydown`,this.onKey),this.selectMode=!1,this.checked=new Set)},query(){this.visible&&this.$nextTick(this.setupObserver)},sortByTime(e){this.saveSortByTime()},selectMode(e){e||(this.checked=new Set)},compiling(e){e?this.startBusy():this.stopBusy()}},beforeUnmount(){this.teardownObserver(),this.stopBusy(),window.removeEventListener(`keydown`,this.onKey)},methods:{askDelete(e){this.pendingDelete=e},confirmDelete(){let e=this.pendingDelete;this.pendingDelete=null,e&&(this.visibleIds.delete(e.id),this.failed.delete(e.id),this.$emit(`delete`,e.id))},thumbUrl(e){return(this.base||Jl()||``)+`/__card-image/`+encodeURIComponent(e)},setupObserver(){this.base=Jl()||``;let e=this.$refs.grid;e&&(this.teardownObserver(),this.observer=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=t.target.getAttribute(`data-id`);if(e&&!this.visibleIds.has(e)){let t=new Set(this.visibleIds);t.add(e),this.visibleIds=t}this.observer.unobserve(t.target)}},{root:e,rootMargin:`200px`}),e.querySelectorAll(`.cg-tile`).forEach(e=>this.observer.observe(e)))},teardownObserver(){this.observer&&=(this.observer.disconnect(),null)},onImgError(e){let t=new Set(this.failed);t.add(e),this.failed=t},loadSortByTime(){try{return localStorage.getItem(`cardbuddy:cardgallery-sort-by-time`)===`1`}catch{return!1}},saveSortByTime(){try{localStorage.setItem(`cardbuddy:cardgallery-sort-by-time`,this.sortByTime?`1`:`0`)}catch{}},toggleSort(){this.sortByTime=!this.sortByTime},onKey(e){e.key===`Escape`&&this.close()},focusSearch(){this.$refs.search&&this.$refs.search.focus()},onTileClick(e){e&&(this.selectMode?this.toggleOne(e.id):this.choose(e))},toggleOne(e){let t=new Set(this.checked);t.has(e)?t.delete(e):t.add(e),this.checked=t},toggleAll(){if(this.allChecked){let e=new Set(this.checked);for(let t of this.filtered)e.delete(t.id);this.checked=e}else{let e=new Set(this.checked);for(let t of this.filtered)e.add(t.id);this.checked=e}},requestExport(){this.checkedCount&&this.$emit(`export`,[...this.checked])},requestCompile(){this.checkedCount&&!this.compiling&&(this.busyCount=this.checkedCount,this.$emit(`compile`,[...this.checked]))},startBusy(){this.stopBusy(),this.busyElapsed=0,this.busyShowTimer=setTimeout(()=>{this.busyShowTimer=null,this.busyVisible=!0,this.busyTickTimer=setInterval(()=>{this.busyElapsed+=1},1e3)},240)},stopBusy(){this.busyShowTimer&&=(clearTimeout(this.busyShowTimer),null),this.busyTickTimer&&=(clearInterval(this.busyTickTimer),null),this.busyVisible=!1,this.busyElapsed=0},setChecked(e){this.checked=new Set(Array.isArray(e)?e:[])},choose(e){e&&(this.$emit(`select`,e.id),this.close())},close(){this.compiling?Q(`编译进行中,完成后自动解除`,`warn`,1600):this.$emit(`close`)}}},oA={class:`cg-modal modal-card`,role:`dialog`,"aria-modal":`true`,"aria-label":`卡片网格预览`},sA={class:`cg-modal__head`},cA={class:`cg-modal__title`},lA={class:`cg-modal__count`},uA={class:`cg-modal__search`},dA=[`title`,`aria-pressed`],fA=[`title`],pA={ref:`grid`,class:`cg-grid`},mA=[`data-id`,`onClick`],hA={class:`cg-tile__thumb`},gA={key:0,class:`cg-tile__tag`,title:`导入卡片(含 .import-meta.json 来源信息)`},_A=[`aria-checked`,`aria-label`,`title`,`onClick`],vA={key:0,class:`cg-tile__cb-mark`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},yA=[`src`,`alt`,`onError`],bA={key:3,class:`cg-tile__skeleton`},xA=[`src`,`alt`],SA={class:`cg-tile__meta`},CA=[`title`],wA=[`title`],TA=[`title`,`aria-label`,`onClick`,`onKeydown`],EA={key:0,class:`cg-empty`},DA={key:0,class:`cg-foot`},OA=[`title`],kA=[`checked`,`.indeterminate`,`disabled`],AA=[`disabled`,`title`],jA=[`disabled`,`title`],MA={key:0,class:`cg-busy`,role:`status`,"aria-live":`polite`,"aria-busy":`true`},NA={class:`cg-busy__box`},PA={class:`cg-busy__title`},FA={class:`cg-busy__time`};function IA(e,t,n,r,i,a){let o=R(`ConfirmDialog`);return V(),U(hc,{name:`modal`},{default:I(()=>[n.visible?(V(),H(`div`,{key:0,class:`cg-mask`,onClick:t[8]||=J((...e)=>a.close&&a.close(...e),[`self`])},[W(`div`,oA,[W(`header`,sA,[W(`div`,cA,[t[9]||=W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-grid`})],-1),t[10]||=W(`span`,null,`卡片网格预览`,-1),W(`span`,lA,M(n.cards.length)+` 张本地卡片`,1)]),W(`div`,uA,[t[11]||=W(`svg`,{class:`cg-modal__search-icon`,viewBox:`0 0 16 16`,width:`13`,height:`13`,"aria-hidden":`true`},[W(`use`,{href:`#icon-search`})],-1),L(W(`input`,{ref:`search`,"onUpdate:modelValue":t[0]||=e=>i.query=e,class:`cg-modal__input`,type:`text`,placeholder:`搜索卡片 ID / 名称…`},null,512),[[gl,i.query]])]),W(`button`,{class:j([`cg-modal__sort`,{"cg-modal__sort--active":i.sortByTime}]),type:`button`,title:i.sortByTime?`已按修改时间排序(新→旧),点击取消`:`按修改时间排序(新→旧)`,"aria-pressed":i.sortByTime,onClick:t[1]||=(...e)=>a.toggleSort&&a.toggleSort(...e)},`按修改时间排序`,10,dA),q(` 导出选择模式开关:头部右上角(关闭钮左侧),进入后格子出勾选框、底部出导出操作栏 `),W(`label`,{class:j([`cg-modal__selmode`,{"cg-modal__selmode--active":i.selectMode}]),title:i.selectMode?`退出选择模式`:`进入选择模式(勾选卡片后导出)`},[L(W(`input`,{class:`cg-cb`,type:`checkbox`,"onUpdate:modelValue":t[2]||=e=>i.selectMode=e},null,512),[[_l,i.selectMode]]),t[12]||=W(`span`,{class:`cg-modal__selmode-text`},`选择`,-1)],10,fA),W(`button`,{class:`cg-modal__close`,type:`button`,title:`关闭`,onClick:t[3]||=(...e)=>a.close&&a.close(...e),"aria-label":`关闭`},[...t[13]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-x`})],-1)]])]),W(`div`,pA,[(V(!0),H(B,null,z(a.filtered,e=>(V(),H(`button`,{key:e.id,"data-id":e.id,type:`button`,class:j([`cg-tile`,{"cg-tile--active":e.id===n.selectedId,"cg-tile--failed":i.failed.has(e.id),"cg-tile--checked":i.selectMode&&i.checked.has(e.id)}]),onClick:t=>a.onTileClick(e)},[W(`div`,hA,[q(` 导入标记:仅含 .import-meta.json 侧车的卡(经远端同步导入)显示,悬浮于缩略图右上角 `),e.imported?(V(),H(`span`,gA,`导入`)):q(`v-if`,!0),q(` 选择模式勾选框:格子左上角(与 rac-tile__cb 同观感)。
|
|
259
259
|
格子本身是 button,嵌套原生 input 非法,用 span+role=checkbox;
|
|
260
260
|
回车/空格由格子按钮的 click 统一承接(onTileClick 切勾选) `),i.selectMode?(V(),H(`span`,{key:1,class:`cg-tile__cb`,role:`checkbox`,"aria-checked":i.checked.has(e.id)?`true`:`false`,"aria-label":`选择卡片 ${e.id}`,title:i.checked.has(e.id)?`取消勾选`:`勾选此卡`,onClick:J(t=>a.toggleOne(e.id),[`stop`])},[i.checked.has(e.id)?(V(),H(`svg`,vA,[...t[14]||=[W(`path`,{d:`M2.5 6.4l2.4 2.4 4.6-5.2`},null,-1)]])):q(`v-if`,!0)],8,_A)):q(`v-if`,!0),i.visibleIds.has(e.id)&&!i.failed.has(e.id)?(V(),H(`img`,{key:2,class:`cg-tile__img`,src:a.thumbUrl(e.id),alt:e.name,loading:`lazy`,onError:t=>a.onImgError(e.id)},null,40,yA)):i.visibleIds.has(e.id)?(V(),H(B,{key:4},[q(` 无封面(空白新卡无位图、且空白卡跳过无头截图直接 404):
|
|
@@ -336,7 +336,7 @@ ${e}</tr>
|
|
|
336
336
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
337
337
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${JP(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:r,autolink:i}){let a=i?JP(n,!0):this.parser.parseInline(r),o=XP(e);if(o===null)return a;e=JP(o,i);let s=`<a href="`+e+`"`;return t&&(s+=` title="`+JP(t)+`"`),s+=`>`+a+`</a>`,s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=XP(e);if(i===null)return JP(n);e=i;let a=`<img src="${JP(e)}" alt="${JP(n)}"`;return t&&(a+=` title="${JP(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:JP(e.text)}},lF=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},uF=class e{options;renderer;textRenderer;constructor(e){this.options=e||wN,this.options.renderer=this.options.renderer||new cF,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new lF}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},dF=class{options;block;constructor(e){this.options=e||wN}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?sF.lex:sF.lexInline}provideParser(e=this.block){return e?uF.parse:uF.parseInline}};function fF(e,t){if(Array.isArray(t))for(let n=0;n<t.length;n++)e.push(t[n]);else e.push(t)}var pF=new class{defaults=CN();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=uF;Renderer=cF;TextRenderer=lF;Lexer=sF;Tokenizer=oF;Hooks=dF;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(fF(n,t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)fF(n,this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)fF(n,this.walkTokens(e.tokens,t));break}case`list`:{let e=r;fF(n,this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);fF(n,this.walkTokens(i,t))}):e.tokens&&fF(n,this.walkTokens(e.tokens,t))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new cF(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new oF(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new dF;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=dF.passThroughHooks.has(n)?e=>{if(this.defaults.async&&dF.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&fF(n,t.call(this,e)),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return sF.lex(e,t??this.defaults)}parser(e,t){return uF.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?sF.lex:sF.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?uF.parse:uF.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?sF.lex:sF.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?uF.parse:uF.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
338
338
|
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+JP(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function mF(e,t){return pF.parse(e,t)}mF.options=mF.setOptions=function(e){return pF.setOptions(e),mF.defaults=pF.defaults,TN(mF.defaults),mF},mF.getDefaults=CN,mF.defaults=wN;function hF(...e){return pF.use(...e),mF.defaults=pF.defaults,TN(mF.defaults),mF}mF.use=hF,mF.walkTokens=function(e,t){return pF.walkTokens(e,t)},mF.parseInline=pF.parseInline,mF.Parser=uF,mF.parser=uF.parse,mF.Renderer=cF,mF.TextRenderer=lF,mF.Lexer=sF,mF.lexer=sF.lex,mF.Tokenizer=oF,mF.Hooks=dF,mF.parse=mF,mF.options,mF.setOptions,mF.walkTokens,mF.parseInline,uF.parse,sF.lex;function gF(e,t){this.v=e,this.k=t}function _F(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function vF(e){if(Array.isArray(e))return e}function yF(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function bF(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
339
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xF(e,t){return vF(e)||yF(e,t)||SF(e,t)||bF()}function SF(e,t){if(e){if(typeof e==`string`)return _F(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_F(e,t):void 0}}function CF(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof gF;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`&&o.k?t:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(!!a.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}CF.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},CF.prototype.next=function(e){return this._invoke(`next`,e)},CF.prototype.throw=function(e){return this._invoke(`throw`,e)},CF.prototype.return=function(e){return this._invoke(`return`,e)};var wF=Object.entries,TF=Object.setPrototypeOf,EF=Object.isFrozen,DF=Object.getPrototypeOf,OF=Object.getOwnPropertyDescriptor,kF=Object.freeze,AF=Object.seal,jF=Object.create,MF=typeof Reflect<`u`&&Reflect,NF=MF.apply,PF=MF.construct;kF||=function(e){return e},AF||=function(e){return e},NF||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},PF||=function(e){return new e(...[...arguments].slice(1))};var FF=aI(Array.prototype.forEach);Array.prototype.indexOf;var IF=aI(Array.prototype.lastIndexOf),LF=aI(Array.prototype.pop),RF=aI(Array.prototype.push),zF=aI(Array.prototype.slice),BF=aI(Array.prototype.splice),VF=Array.isArray,HF=oI(Set),UF=aI(Set.prototype.add),WF=aI(Set.prototype.has),GF=aI(String.prototype.toLowerCase),KF=aI(String.prototype.toString),qF=aI(String.prototype.match),JF=aI(String.prototype.replace),YF=aI(String.prototype.indexOf),XF=aI(String.prototype.trim),ZF=aI(Number.prototype.toString),QF=aI(Boolean.prototype.toString),$F=typeof BigInt>`u`?null:aI(BigInt.prototype.toString),eI=typeof Symbol>`u`?null:aI(Symbol.prototype.toString),tI=aI(Object.prototype.hasOwnProperty),nI=aI(Object.prototype.toString),rI=aI(RegExp.prototype.test),iI=oI(TypeError);function aI(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return NF(e,t,n)}}function oI(e){return function(){return PF(e,[...arguments])}}function sI(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:GF;if(TF&&TF(e,null),!VF(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(EF(t)||(t[r]=e),i=e)}e[i]=!0}return e}function cI(e){for(let t=0;t<e.length;t++)tI(e,t)||(e[t]=null);return e}function lI(e){let t=jF(null);for(let r of wF(e)){var n=xF(r,2);let i=n[0],a=n[1];tI(e,i)&&(t[i]=VF(a)?cI(a):a&&typeof a==`object`&&a.constructor===Object?lI(a):a)}return t}function uI(e){switch(typeof e){case`string`:return e;case`number`:return ZF(e);case`boolean`:return QF(e);case`bigint`:return $F?$F(e):`0`;case`symbol`:return eI?eI(e):`Symbol()`;case`undefined`:return nI(e);case`function`:case`object`:{if(e===null)return nI(e);let t=e,n=dI(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:nI(e)}return nI(e)}default:return nI(e)}}function dI(e,t){for(;e!==null;){let n=OF(e,t);if(n){if(n.get)return aI(n.get);if(typeof n.value==`function`)return aI(n.value)}e=DF(e)}function n(){return null}return n}function fI(e,t){for(;e!==null;){let n=OF(e,t);if(n)return n.get?aI(n.get):null;e=DF(e)}return null}function pI(e){try{return rI(e,``),!0}catch{return!1}}var mI=kF(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),hI=kF(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),gI=kF([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),_I=kF([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),vI=kF(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),yI=kF([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),bI=kF([`#text`]),xI=kF(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),SI=kF(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),CI=kF(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),wI=kF([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),TI=AF(/{{[\w\W]*|^[\w\W]*}}/g),EI=AF(/<%[\w\W]*|^[\w\W]*%>/g),DI=AF(/\${[\w\W]*/g),OI=AF(/^data-[\-\w.\u00B7-\uFFFF]+$/),kI=AF(/^aria-[\-\w]+$/),AI=AF(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),jI=AF(/^(?:\w+script|data):/i),MI=AF(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),NI=AF(/^html$/i),PI=AF(/^[a-z][.\w]*(-[.\w]+)+$/i),FI=AF(/<[/\w!]/g),II=AF(/<[/\w]/g),LI=AF(/<\/no(script|embed|frames)/i),RI=AF(/\/>/i),zI={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},BI=kF(sI({},[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`])),VI=function(){return typeof window>`u`?null:window},HI=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},UI=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},WI=function(e,t,n,r){return tI(e,t)&&VF(e[t])?sI(r.base?lI(r.base):{},e[t],r.transform):n},GI=function(e,t,n){let r=tI(e,t)?e[t]:void 0;return r&&typeof r==`object`?lI(r):n()};function KI(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:VI(),t=e=>KI(e);if(t.version=`3.4.17`,t.removed=[],!e||!e.document||e.document.nodeType!==zI.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=dI(d,`cloneNode`),p=dI(d,`remove`),m=dI(d,`removeAttributeNode`),h=dI(d,`nextSibling`),g=dI(d,`childNodes`),_=dI(d,`parentNode`),v=dI(d,`shadowRoot`),y=dI(d,`attributes`),b=o&&o.prototype?dI(o.prototype,`nodeType`):null,x=o&&o.prototype?dI(o.prototype,`nodeName`):null,S=o&&o.prototype?dI(o.prototype,`ownerDocument`):null,C=function(e){return b?b(e):e.nodeType},w=function(e){return x?x(e):e.nodeName},ee=fI(d,`namespaceURI`),T=function(e){return ee?ee(e):e.namespaceURI};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let E,D=``,O,te=!1,ne=0,re=function(){if(ne>0)throw iI(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},ie=function(e){re(),ne++;try{return E.createHTML(e)}finally{ne--}},ae=function(e){re(),ne++;try{return E.createScriptURL(e)}finally{ne--}},oe=function(){return te||=(O=HI(u,i),!0),O},se=n,ce=se.implementation,le=se.createNodeIterator,ue=se.createDocumentFragment,de=se.getElementsByTagName,fe=r.importNode,k=UI();t.isSupported=typeof wF==`function`&&typeof _==`function`&&ce&&ce.createHTMLDocument!==void 0;let pe=TI,me=EI,he=DI,ge=OI,_e=kI,ve=jI,ye=MI,be=PI,xe=AI,A=null,Se=sI({},[...mI,...hI,...gI,...vI,...bI]),Ce=null,we=sI({},[...xI,...SI,...CI,...wI]),Te=Object.seal(jF(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ee=null,j=null,De=Object.seal(jF(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Oe=!0,ke=!0,Ae=!1,je=!0,Me=!1,Ne=!0,Pe=!1,Fe=!1,Ie=null,Le=null,Re=!1,ze=!1,Be=!1,Ve=!1,M=!0,He=!1,Ue=`user-content-`,We=!0,Ge=!1,Ke=null,qe={},Je=null,Ye=sI({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Xe=null,Ze=sI({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Qe=null,$e=sI({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),et=`http://www.w3.org/1998/Math/MathML`,tt=`http://www.w3.org/2000/svg`,nt=`http://www.w3.org/1999/xhtml`,rt=nt,it=!1,at=null,ot=sI({},[et,tt,nt],KF),st=kF([`mi`,`mo`,`mn`,`ms`,`mtext`]),ct=sI({},st),lt=kF([`annotation-xml`]),ut=sI({},lt),dt=sI({},[`title`,`style`,`font`,`a`,`script`]),ft=null,pt=[`application/xhtml+xml`,`text/html`],mt=null,ht=null,gt=n.createElement(`form`),_t=function(e){return e instanceof RegExp||e instanceof Function},vt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ht&&ht===e)return;(!e||typeof e!=`object`)&&(e={}),e=lI(e),ft=pt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,mt=ft===`application/xhtml+xml`?KF:GF,A=WI(e,`ALLOWED_TAGS`,Se,{transform:mt}),Ce=WI(e,`ALLOWED_ATTR`,we,{transform:mt}),at=WI(e,`ALLOWED_NAMESPACES`,ot,{transform:KF}),Qe=WI(e,`ADD_URI_SAFE_ATTR`,$e,{transform:mt,base:$e}),Xe=WI(e,`ADD_DATA_URI_TAGS`,Ze,{transform:mt,base:Ze}),Je=WI(e,`FORBID_CONTENTS`,Ye,{transform:mt}),Ee=WI(e,`FORBID_TAGS`,lI({}),{transform:mt}),j=WI(e,`FORBID_ATTR`,lI({}),{transform:mt}),qe=tI(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?lI(e.USE_PROFILES):e.USE_PROFILES:!1,Oe=e.ALLOW_ARIA_ATTR!==!1,ke=e.ALLOW_DATA_ATTR!==!1,Ae=e.ALLOW_UNKNOWN_PROTOCOLS||!1,je=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Me=e.SAFE_FOR_TEMPLATES||!1,Ne=e.SAFE_FOR_XML!==!1,Pe=e.WHOLE_DOCUMENT||!1,ze=e.RETURN_DOM||!1,Be=e.RETURN_DOM_FRAGMENT||!1,Ve=e.RETURN_TRUSTED_TYPE||!1,Re=e.FORCE_BODY||!1,M=e.SANITIZE_DOM!==!1,He=e.SANITIZE_NAMED_PROPS||!1,We=e.KEEP_CONTENT!==!1,Ge=e.IN_PLACE||!1,xe=pI(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:AI,rt=typeof e.NAMESPACE==`string`?e.NAMESPACE:nt,ct=GI(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>sI({},st)),ut=GI(e,`HTML_INTEGRATION_POINTS`,()=>sI({},lt));let t=GI(e,`CUSTOM_ELEMENT_HANDLING`,()=>jF(null));if(Te=jF(null),tI(t,`tagNameCheck`)&&_t(t.tagNameCheck)&&(Te.tagNameCheck=t.tagNameCheck),tI(t,`attributeNameCheck`)&&_t(t.attributeNameCheck)&&(Te.attributeNameCheck=t.attributeNameCheck),tI(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(Te.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),AF(Te),Me&&(ke=!1),Be&&(ze=!0),qe&&(A=sI({},bI),Ce=jF(null),qe.html===!0&&(sI(A,mI),sI(Ce,xI)),qe.svg===!0&&(sI(A,hI),sI(Ce,SI),sI(Ce,wI)),qe.svgFilters===!0&&(sI(A,gI),sI(Ce,SI),sI(Ce,wI)),qe.mathMl===!0&&(sI(A,vI),sI(Ce,CI),sI(Ce,wI))),De.tagCheck=null,De.attributeCheck=null,tI(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?De.tagCheck=e.ADD_TAGS:VF(e.ADD_TAGS)&&(A===Se&&(A=lI(A)),sI(A,e.ADD_TAGS,mt))),tI(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?De.attributeCheck=e.ADD_ATTR:VF(e.ADD_ATTR)&&(Ce===we&&(Ce=lI(Ce)),sI(Ce,e.ADD_ATTR,mt))),tI(e,`ADD_FORBID_CONTENTS`)&&VF(e.ADD_FORBID_CONTENTS)&&(Je===Ye&&(Je=lI(Je)),sI(Je,e.ADD_FORBID_CONTENTS,mt)),We&&(A[`#text`]=!0),Pe&&sI(A,[`html`,`head`,`body`]),A.table&&(sI(A,[`tbody`]),delete Ee.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw iI(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw iI(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=E;E=e.TRUSTED_TYPES_POLICY;try{D=ie(``)}catch(e){throw E=t,e}}else e.TRUSTED_TYPES_POLICY===null?(E=void 0,D=``):(E===void 0&&(E=oe()),E&&typeof D==`string`&&(D=ie(``)));kF&&kF(e),ht=e},yt=sI({},[...hI,...gI,..._I]),bt=sI({},[...vI,...yI]),xt=function(e,t,n){return t.namespaceURI===nt?e===`svg`:t.namespaceURI===et?e===`svg`&&(n===`annotation-xml`||ct[n]):!!yt[e]},St=function(e,t,n){return t.namespaceURI===nt?e===`math`:t.namespaceURI===tt?e===`math`&&ut[n]:!!bt[e]},Ct=function(e,t,n){return t.namespaceURI===tt&&!ut[n]||t.namespaceURI===et&&!ct[n]?!1:!bt[e]&&(dt[e]||!yt[e])},wt=function(e){let t=T(e),n=GF(w(e)),r=_(e),i,a;return r&&C(r)===zI.element?(i={namespaceURI:T(r)},a=GF(w(r))):(i={namespaceURI:rt},a=`template`),at[t]?t===tt?xt(n,i,a):t===et?St(n,i,a):t===nt?Ct(n,i,a):!!(ft===`application/xhtml+xml`&&at[t]):!1},Tt=function(e){RF(t.removed,{element:e});try{_(e).removeChild(e)}catch{if(p(e),!_(e))throw iI(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},Et=function(e,t,n){try{m(e,t)}catch{try{e.removeAttribute(n)}catch{}}},Dt=function(e){jt(e);let t=g(e);t&&FF(zF(t),e=>{try{p(e)}catch{}});let n=C(e)===zI.element?y(e):null;if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&Et(e,r,i)}},Ot=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}RF(t.removed,{attribute:r||null,from:n});try{r?m(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(ze||Be)try{Tt(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},kt=function(e){let t=y(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||Ce[mt(i)]||Et(e,r,i)}},At=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=[e];for(;r.length>0;){let e=r.pop();if(t(e)===!1)continue;if(n&&C(e)===zI.element){let t=v(e);Kt(t)&&r.push(t)}let i=g(e);if(i)for(let e=i.length-1;e>=0;--e)r.push(i[e])}},jt=function(e){At(e,e=>{C(e)===zI.element&&kt(e)})},Mt=function(e){let t=[];return At(e,e=>{t.push(e)},!0),t},Nt=function(e,t){let n=HF();FF(Mt(e),e=>{C(e)===zI.element&&UF(n,e)}),FF(t,e=>{C(e)===zI.element&&!WF(n,e)&&kt(e)})},Pt=function(e,n){let r=!1;return FF(t.removed,t=>{t.element&&(r||=t.element===e,jt(t.element))}),Nt(e,n),r},Ft=function(e,t){let n=Ke,r=null,i=()=>(r||(r=HF(),FF(t,e=>{UF(r,e)})),r);for(let t=0;;t++){let r=Mt(e),a=[e],o=!1;if(FF(r,e=>{C(e)===zI.documentFragment?RF(a,e):!o&&!WF(n,e)&&(o=WF(i(),e))}),!o)return;if(t>=8)throw iI(`the tree kept changing during in-place sanitization; refusing to return it`);FF(a,(t,n)=>{It(t,n>0,e,i())})}},It=function(e,t,n,r){let i=Vt(e),a;for(;a=i.nextNode();)WF(r,a)&&!WF(Ke,a)&&(t&&Jt(k.uponSanitizeShadowNode,a,null),en(a,n),cn(a,n),Kt(a.content)&&ln(a.content))},Lt=function(e){Ke&&UF(Ke,e)},Rt=function(e,t){return Ne?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},zt=function(e){Ne&&At(e,e=>{let t=C(e);if(t===zI.processingInstruction||t===zI.comment&&rI(II,e.data)){try{p(e)}catch{}return!1}if(t===zI.element){let t=e,n=mt(w(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&Rt(`for`,n)&&t.removeAttribute(`for`)}catch{}}return!0})},Bt=function(e){let t=null,r=null;if(Re)e=`<remove></remove>`+e;else{let t=qF(e,/^[\r\n\t ]+/);r=t&&t[0]}ft===`application/xhtml+xml`&&rt===nt&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=E?ie(e):e;if(rt===nt)try{t=new l().parseFromString(i,ft)}catch{}if(!t||!t.documentElement){t=ce.createDocument(rt,`template`,null);try{t.documentElement.innerHTML=it?D:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),rt===nt?de.call(t,Pe?`html`:`body`)[0]:Pe?t.documentElement:a},Vt=function(e){let t=S?S(e):e.ownerDocument;return le.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Ht=function(e){return e=JF(e,pe,` `),e=JF(e,me,` `),e=JF(e,he,` `),e},Ut=function(e){Wt(e);let t=e.querySelectorAll?.call(e,`template`);t&&FF(t,e=>{Kt(e.content)&&Ut(e.content)})},Wt=function(e){e.normalize();let t=S?S(e):e.ownerDocument,n=le.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Ht(r.data),r=n.nextNode()},Gt=function(e){let t=x?x(e):null;return typeof t!=`string`||mt(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==y(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==b(e)||e.childNodes!==g(e)},Kt=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return b(e)===zI.documentFragment}catch{return!1}},qt=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return typeof b(e)==`number`}catch{return!1}};function Jt(e,n,r){e.length!==0&&FF(e,e=>{e.call(t,n,r,ht)})}let Yt=function(e,t){return!!(Ne&&e.hasChildNodes()&&!qt(e.firstElementChild)&&rI(FI,e.textContent)&&rI(FI,e.innerHTML)||Ne&&BI[t]&&C(e)===zI.element&&T(e)===nt&&(qt(e.firstElementChild)||typeof e.textContent==`string`&&rI(FI,e.textContent))||e.nodeType===zI.processingInstruction||Ne&&e.nodeType===zI.comment&&rI(II,e.data))},Xt=function(e,t){return e instanceof RegExp?rI(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},Zt=function(e,t,n){if(!Ee[t]&&rn(t)&&Xt(Te.tagNameCheck,t))return!1;if(We&&!Je[t]&&!Je[GF(t)]){let t=_(e),r=g(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,h(e))}}}return Tt(e),!0},Qt=function(e,t,n,r){return e.length===0?t:t===n||t===r?lI(t):t},$t=function(e,t){return e===t||_(e)!==null?!1:(Ge&&jt(e),!0)},en=function(e,n){if(Lt(e),Jt(k.beforeSanitizeElements,e,null),$t(e,n))return!0;if(Gt(e))return Tt(e),!0;let r=mt(w(e));if(A=Qt(k.uponSanitizeElement,A,Se,Ie),Jt(k.uponSanitizeElement,e,{tagName:r,allowedTags:A}),$t(e,n))return!0;if(Yt(e,r))return Tt(e),!0;if(Ee[r]||!(De.tagCheck instanceof Function&&De.tagCheck(r))&&!A[r]){let t=Zt(e,r,n);return t===!1&&(Jt(k.afterSanitizeElements,e,null),$t(e,n))?!0:t}if(C(e)===zI.element&&!wt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&rI(LI,e.innerHTML))return Tt(e),!0;if(Me&&e.nodeType===zI.text){let n=Ht(e.textContent);e.textContent!==n&&(RF(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Jt(k.afterSanitizeElements,e,null),$t(e,n)},tn=function(e,t,r){if(j[t]||Rt(t,e)||M&&(t===`id`||t===`name`)&&(r in n||r in gt))return!1;let i=Ce[t]||De.attributeCheck instanceof Function&&De.attributeCheck(t,e);return ke&&rI(ge,t)||Oe&&rI(_e,t)?!0:i?Qe[t]||rI(xe,JF(r,ye,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&YF(r,`data:`)===0&&Xe[e]||Ae&&!rI(ve,JF(r,ye,``))?!0:!r:rn(e)&&Xt(Te.tagNameCheck,e)&&Xt(Te.attributeNameCheck,t,e)||t===`is`&&Te.allowCustomizedBuiltInElements&&Xt(Te.tagNameCheck,r)},nn=sI({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),rn=function(e){return!nn[GF(e)]&&rI(be,e)},an=function(e,t,n,r){if(E&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return ie(r);case`TrustedScriptURL`:return ae(r)}return r},on=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Gt(e)||(Tt(e),!1)}catch{return Ot(t,e),!1}},sn=function(e,t){return Ne&&rI(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,t)?!0:GF(e)===`attributename`&&qF(t,`href`)!==null},cn=function(e,n){if(Jt(k.beforeSanitizeAttributes,e,null),$t(e,n))return;let r=e.attributes;if(!r||Gt(e))return;Ce=Qt(k.uponSanitizeAttribute,Ce,we,Le);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:Ce,forceKeepAttr:void 0},a=r.length,o=mt(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=mt(s),d=l,f=s===`value`?d:XF(d),p=!1;i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,Jt(k.uponSanitizeAttribute,e,i),f=i.attrValue,He&&(u===`id`||u===`name`)&&YF(f,Ue)!==0&&(Ot(s,e,n),f=Ue+f,p=!0),sn(s,f)?Ot(s,e,n):i.forceKeepAttr||(i.keepAttr?!je&&rI(RI,f)?Ot(s,e,n):(Me&&(f=Ht(f)),tn(o,u,f)?(f=an(o,u,c,f),f!==d&&on(e,s,c,f)&&p&&LF(t.removed)):Ot(s,e,n)):Ot(s,e,n))}Jt(k.afterSanitizeAttributes,e,null),$t(e,n)},ln=function(e){let t=null,n=Vt(e);for(Jt(k.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Jt(k.uponSanitizeShadowNode,t,null),en(t,e),cn(t,e),Kt(t.content)&&ln(t.content),C(t)===zI.element){let e=v(t);Kt(e)&&(un(e),ln(e))}Me&&Wt(e),Jt(k.afterSanitizeShadowDOM,e,null)},un=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){ln(e.shadow);continue}let n=e.node,r=C(n)===zI.element,i=g(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=x?x(n):null;if(typeof e==`string`&&mt(e)===`template`){let e=n.content;Kt(e)&&t.push({node:e,shadow:null})}}if(r){let e=v(n);Kt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(it=!e,it&&(e=`<!-->`),typeof e!=`string`&&!qt(e)&&(e=uI(e),typeof e!=`string`))throw iI(`dirty is not a string, aborting`);if(!t.isSupported)return e;Fe?(A=Ie,Ce=Le):vt(n),(k.uponSanitizeElement.length>0||k.uponSanitizeAttribute.length>0)&&(A=lI(A)),k.uponSanitizeAttribute.length>0&&(Ce=lI(Ce)),t.removed=[];let c=Ge&&typeof e!=`string`&&qt(e),l=[],u=Ke;if(c){zt(e);let t=w(e);if(typeof t==`string`){let n=mt(t);if(!A[n]||Ee[n])throw Dt(e),iI(`root node is forbidden and cannot be sanitized in-place`)}if(Gt(e))throw Dt(e),iI(`root node is clobbered and cannot be sanitized in-place`);l=Mt(e),Ke=HF()}else if(qt(e))i=Bt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===zI.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),un(i);else{if(!ze&&!Me&&!Pe&&e.indexOf(`<`)===-1)return E&&Ve?ie(e):e;if(i=Bt(e),!i)return ze?null:Ve?D:``}i&&Re&&Tt(i.firstChild);let d=c?e:i;try{c&&un(e);let t=Vt(d);for(;o=t.nextNode();)en(o,d),cn(o,d),Kt(o.content)&&ln(o.content);c&&Ft(e,l)}catch(t){throw c&&(Dt(e),Pt(e,l)),t}finally{Ke=u}if(c){if(Pt(e,l))throw iI(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return Me&&Ut(e),e}if(ze){if(Me&&Ut(i),Be)for(s=ue.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(Ce.shadowroot||Ce.shadowrootmode)&&(s=fe.call(r,s,!0)),s}let f=Pe?i.outerHTML:i.innerHTML;return Pe&&A[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&rI(NI,i.ownerDocument.doctype.name)&&(f=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
339
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xF(e,t){return vF(e)||yF(e,t)||SF(e,t)||bF()}function SF(e,t){if(e){if(typeof e==`string`)return _F(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_F(e,t):void 0}}function CF(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof gF;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`&&o.k?t:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(!!a.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}CF.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},CF.prototype.next=function(e){return this._invoke(`next`,e)},CF.prototype.throw=function(e){return this._invoke(`throw`,e)},CF.prototype.return=function(e){return this._invoke(`return`,e)};var wF=Object.entries,TF=Object.setPrototypeOf,EF=Object.isFrozen,DF=Object.getPrototypeOf,OF=Object.getOwnPropertyDescriptor,kF=Object.freeze,AF=Object.seal,jF=Object.create,MF=typeof Reflect<`u`&&Reflect,NF=MF.apply,PF=MF.construct;kF||=function(e){return e},AF||=function(e){return e},NF||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},PF||=function(e){return new e(...[...arguments].slice(1))};var FF=aI(Array.prototype.forEach);Array.prototype.indexOf;var IF=aI(Array.prototype.lastIndexOf),LF=aI(Array.prototype.pop),RF=aI(Array.prototype.push),zF=aI(Array.prototype.slice),BF=aI(Array.prototype.splice),VF=Array.isArray,HF=oI(Set),UF=aI(Set.prototype.add),WF=aI(Set.prototype.has),GF=aI(String.prototype.toLowerCase),KF=aI(String.prototype.toString),qF=aI(String.prototype.match),JF=aI(String.prototype.replace),YF=aI(String.prototype.indexOf),XF=aI(String.prototype.trim),ZF=aI(Number.prototype.toString),QF=aI(Boolean.prototype.toString),$F=typeof BigInt>`u`?null:aI(BigInt.prototype.toString),eI=typeof Symbol>`u`?null:aI(Symbol.prototype.toString),tI=aI(Object.prototype.hasOwnProperty),nI=aI(Object.prototype.toString),rI=aI(RegExp.prototype.test),iI=oI(TypeError);function aI(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return NF(e,t,n)}}function oI(e){return function(){return PF(e,[...arguments])}}function sI(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:GF;if(TF&&TF(e,null),!VF(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(EF(t)||(t[r]=e),i=e)}e[i]=!0}return e}function cI(e){for(let t=0;t<e.length;t++)tI(e,t)||(e[t]=null);return e}function lI(e){let t=jF(null);for(let r of wF(e)){var n=xF(r,2);let i=n[0],a=n[1];tI(e,i)&&(t[i]=VF(a)?cI(a):a&&typeof a==`object`&&a.constructor===Object?lI(a):a)}return t}function uI(e){switch(typeof e){case`string`:return e;case`number`:return ZF(e);case`boolean`:return QF(e);case`bigint`:return $F?$F(e):`0`;case`symbol`:return eI?eI(e):`Symbol()`;case`undefined`:return nI(e);case`function`:case`object`:{if(e===null)return nI(e);let t=e,n=dI(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:nI(e)}return nI(e)}default:return nI(e)}}function dI(e,t){for(;e!==null;){let n=OF(e,t);if(n){if(n.get)return aI(n.get);if(typeof n.value==`function`)return aI(n.value)}e=DF(e)}function n(){return null}return n}function fI(e,t){for(;e!==null;){let n=OF(e,t);if(n)return n.get?aI(n.get):null;e=DF(e)}return null}function pI(e){try{return rI(e,``),!0}catch{return!1}}var mI=kF(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),hI=kF(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),gI=kF([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),_I=kF([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),vI=kF(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),yI=kF([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),bI=kF([`#text`]),xI=kF(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),SI=kF(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),CI=kF(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),wI=kF([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),TI=AF(/{{[\w\W]*|^[\w\W]*}}/g),EI=AF(/<%[\w\W]*|^[\w\W]*%>/g),DI=AF(/\${[\w\W]*/g),OI=AF(/^data-[\-\w.\u00B7-\uFFFF]+$/),kI=AF(/^aria-[\-\w]+$/),AI=AF(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),jI=AF(/^(?:\w+script|data):/i),MI=AF(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),NI=AF(/^html$/i),PI=AF(/^[a-z][.\w]*(-[.\w]+)+$/i),FI=AF(/<[/\w!]/g),II=AF(/<[/\w]/g),LI=AF(/<\/no(script|embed|frames)/i),RI=AF(/\/>/i),zI={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},BI=kF(sI({},[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`])),VI=function(){return typeof window>`u`?null:window},HI=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},UI=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},WI=function(e,t,n,r){return tI(e,t)&&VF(e[t])?sI(r.base?lI(r.base):{},e[t],r.transform):n},GI=function(e,t,n){let r=tI(e,t)?e[t]:void 0;return r&&typeof r==`object`?lI(r):n()};function KI(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:VI(),t=e=>KI(e);if(t.version=`3.4.17`,t.removed=[],!e||!e.document||e.document.nodeType!==zI.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=dI(d,`cloneNode`),p=dI(d,`remove`),m=dI(d,`removeAttributeNode`),h=dI(d,`nextSibling`),g=dI(d,`childNodes`),_=dI(d,`parentNode`),v=dI(d,`shadowRoot`),y=dI(d,`attributes`),b=o&&o.prototype?dI(o.prototype,`nodeType`):null,x=o&&o.prototype?dI(o.prototype,`nodeName`):null,S=o&&o.prototype?dI(o.prototype,`ownerDocument`):null,C=function(e){return b?b(e):e.nodeType},w=function(e){return x?x(e):e.nodeName},ee=fI(d,`namespaceURI`),T=function(e){return ee?ee(e):e.namespaceURI};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let E,D=``,O,te=!1,ne=0,re=function(){if(ne>0)throw iI(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},ie=function(e){re(),ne++;try{return E.createHTML(e)}finally{ne--}},ae=function(e){re(),ne++;try{return E.createScriptURL(e)}finally{ne--}},oe=function(){return te||=(O=HI(u,i),!0),O},se=n,ce=se.implementation,le=se.createNodeIterator,ue=se.createDocumentFragment,de=se.getElementsByTagName,fe=r.importNode,k=UI();t.isSupported=typeof wF==`function`&&typeof _==`function`&&ce&&ce.createHTMLDocument!==void 0;let pe=TI,me=EI,he=DI,ge=OI,_e=kI,ve=jI,ye=MI,be=PI,xe=AI,A=null,Se=sI({},[...mI,...hI,...gI,...vI,...bI]),Ce=null,we=sI({},[...xI,...SI,...CI,...wI]),Te=Object.seal(jF(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ee=null,j=null,De=Object.seal(jF(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Oe=!0,ke=!0,Ae=!1,je=!0,Me=!1,Ne=!0,Pe=!1,Fe=!1,Ie=null,Le=null,Re=!1,ze=!1,Be=!1,Ve=!1,M=!0,He=!1,Ue=`user-content-`,We=!0,Ge=!1,Ke=null,qe={},Je=null,Ye=sI({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Xe=null,Ze=sI({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Qe=null,$e=sI({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),et=`http://www.w3.org/1998/Math/MathML`,tt=`http://www.w3.org/2000/svg`,nt=`http://www.w3.org/1999/xhtml`,rt=nt,it=!1,at=null,ot=sI({},[et,tt,nt],KF),st=kF([`mi`,`mo`,`mn`,`ms`,`mtext`]),ct=sI({},st),lt=kF([`annotation-xml`]),ut=sI({},lt),dt=sI({},[`title`,`style`,`font`,`a`,`script`]),ft=null,pt=[`application/xhtml+xml`,`text/html`],mt=null,ht=null,gt=n.createElement(`form`),_t=function(e){return e instanceof RegExp||e instanceof Function},vt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ht&&ht===e)return;e&&typeof e==`object`||(e={}),e=lI(e),ft=pt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,mt=ft===`application/xhtml+xml`?KF:GF,A=WI(e,`ALLOWED_TAGS`,Se,{transform:mt}),Ce=WI(e,`ALLOWED_ATTR`,we,{transform:mt}),at=WI(e,`ALLOWED_NAMESPACES`,ot,{transform:KF}),Qe=WI(e,`ADD_URI_SAFE_ATTR`,$e,{transform:mt,base:$e}),Xe=WI(e,`ADD_DATA_URI_TAGS`,Ze,{transform:mt,base:Ze}),Je=WI(e,`FORBID_CONTENTS`,Ye,{transform:mt}),Ee=WI(e,`FORBID_TAGS`,lI({}),{transform:mt}),j=WI(e,`FORBID_ATTR`,lI({}),{transform:mt}),qe=tI(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?lI(e.USE_PROFILES):e.USE_PROFILES:!1,Oe=e.ALLOW_ARIA_ATTR!==!1,ke=e.ALLOW_DATA_ATTR!==!1,Ae=e.ALLOW_UNKNOWN_PROTOCOLS||!1,je=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Me=e.SAFE_FOR_TEMPLATES||!1,Ne=e.SAFE_FOR_XML!==!1,Pe=e.WHOLE_DOCUMENT||!1,ze=e.RETURN_DOM||!1,Be=e.RETURN_DOM_FRAGMENT||!1,Ve=e.RETURN_TRUSTED_TYPE||!1,Re=e.FORCE_BODY||!1,M=e.SANITIZE_DOM!==!1,He=e.SANITIZE_NAMED_PROPS||!1,We=e.KEEP_CONTENT!==!1,Ge=e.IN_PLACE||!1,xe=pI(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:AI,rt=typeof e.NAMESPACE==`string`?e.NAMESPACE:nt,ct=GI(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>sI({},st)),ut=GI(e,`HTML_INTEGRATION_POINTS`,()=>sI({},lt));let t=GI(e,`CUSTOM_ELEMENT_HANDLING`,()=>jF(null));if(Te=jF(null),tI(t,`tagNameCheck`)&&_t(t.tagNameCheck)&&(Te.tagNameCheck=t.tagNameCheck),tI(t,`attributeNameCheck`)&&_t(t.attributeNameCheck)&&(Te.attributeNameCheck=t.attributeNameCheck),tI(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(Te.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),AF(Te),Me&&(ke=!1),Be&&(ze=!0),qe&&(A=sI({},bI),Ce=jF(null),qe.html===!0&&(sI(A,mI),sI(Ce,xI)),qe.svg===!0&&(sI(A,hI),sI(Ce,SI),sI(Ce,wI)),qe.svgFilters===!0&&(sI(A,gI),sI(Ce,SI),sI(Ce,wI)),qe.mathMl===!0&&(sI(A,vI),sI(Ce,CI),sI(Ce,wI))),De.tagCheck=null,De.attributeCheck=null,tI(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?De.tagCheck=e.ADD_TAGS:VF(e.ADD_TAGS)&&(A===Se&&(A=lI(A)),sI(A,e.ADD_TAGS,mt))),tI(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?De.attributeCheck=e.ADD_ATTR:VF(e.ADD_ATTR)&&(Ce===we&&(Ce=lI(Ce)),sI(Ce,e.ADD_ATTR,mt))),tI(e,`ADD_FORBID_CONTENTS`)&&VF(e.ADD_FORBID_CONTENTS)&&(Je===Ye&&(Je=lI(Je)),sI(Je,e.ADD_FORBID_CONTENTS,mt)),We&&(A[`#text`]=!0),Pe&&sI(A,[`html`,`head`,`body`]),A.table&&(sI(A,[`tbody`]),delete Ee.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw iI(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw iI(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=E;E=e.TRUSTED_TYPES_POLICY;try{D=ie(``)}catch(e){throw E=t,e}}else e.TRUSTED_TYPES_POLICY===null?(E=void 0,D=``):(E===void 0&&(E=oe()),E&&typeof D==`string`&&(D=ie(``)));kF&&kF(e),ht=e},yt=sI({},[...hI,...gI,..._I]),bt=sI({},[...vI,...yI]),xt=function(e,t,n){return t.namespaceURI===nt?e===`svg`:t.namespaceURI===et?e===`svg`&&(n===`annotation-xml`||ct[n]):!!yt[e]},St=function(e,t,n){return t.namespaceURI===nt?e===`math`:t.namespaceURI===tt?e===`math`&&ut[n]:!!bt[e]},Ct=function(e,t,n){return t.namespaceURI===tt&&!ut[n]||t.namespaceURI===et&&!ct[n]?!1:!bt[e]&&(dt[e]||!yt[e])},wt=function(e){let t=T(e),n=GF(w(e)),r=_(e),i,a;return r&&C(r)===zI.element?(i={namespaceURI:T(r)},a=GF(w(r))):(i={namespaceURI:rt},a=`template`),at[t]?t===tt?xt(n,i,a):t===et?St(n,i,a):t===nt?Ct(n,i,a):!!(ft===`application/xhtml+xml`&&at[t]):!1},Tt=function(e){RF(t.removed,{element:e});try{_(e).removeChild(e)}catch{if(p(e),!_(e))throw iI(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},Et=function(e,t,n){try{m(e,t)}catch{try{e.removeAttribute(n)}catch{}}},Dt=function(e){jt(e);let t=g(e);t&&FF(zF(t),e=>{try{p(e)}catch{}});let n=C(e)===zI.element?y(e):null;if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&Et(e,r,i)}},Ot=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}RF(t.removed,{attribute:r||null,from:n});try{r?m(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(ze||Be)try{Tt(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},kt=function(e){let t=y(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||Ce[mt(i)]||Et(e,r,i)}},At=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=[e];for(;r.length>0;){let e=r.pop();if(t(e)===!1)continue;if(n&&C(e)===zI.element){let t=v(e);Kt(t)&&r.push(t)}let i=g(e);if(i)for(let e=i.length-1;e>=0;--e)r.push(i[e])}},jt=function(e){At(e,e=>{C(e)===zI.element&&kt(e)})},Mt=function(e){let t=[];return At(e,e=>{t.push(e)},!0),t},Nt=function(e,t){let n=HF();FF(Mt(e),e=>{C(e)===zI.element&&UF(n,e)}),FF(t,e=>{C(e)===zI.element&&!WF(n,e)&&kt(e)})},Pt=function(e,n){let r=!1;return FF(t.removed,t=>{t.element&&(r||=t.element===e,jt(t.element))}),Nt(e,n),r},Ft=function(e,t){let n=Ke,r=null,i=()=>(r||(r=HF(),FF(t,e=>{UF(r,e)})),r);for(let t=0;;t++){let r=Mt(e),a=[e],o=!1;if(FF(r,e=>{C(e)===zI.documentFragment?RF(a,e):!o&&!WF(n,e)&&(o=WF(i(),e))}),!o)return;if(t>=8)throw iI(`the tree kept changing during in-place sanitization; refusing to return it`);FF(a,(t,n)=>{It(t,n>0,e,i())})}},It=function(e,t,n,r){let i=Vt(e),a;for(;a=i.nextNode();)WF(r,a)&&!WF(Ke,a)&&(t&&Jt(k.uponSanitizeShadowNode,a,null),en(a,n),cn(a,n),Kt(a.content)&&ln(a.content))},Lt=function(e){Ke&&UF(Ke,e)},Rt=function(e,t){return Ne?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},zt=function(e){Ne&&At(e,e=>{let t=C(e);if(t===zI.processingInstruction||t===zI.comment&&rI(II,e.data)){try{p(e)}catch{}return!1}if(t===zI.element){let t=e,n=mt(w(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&Rt(`for`,n)&&t.removeAttribute(`for`)}catch{}}return!0})},Bt=function(e){let t=null,r=null;if(Re)e=`<remove></remove>`+e;else{let t=qF(e,/^[\r\n\t ]+/);r=t&&t[0]}ft===`application/xhtml+xml`&&rt===nt&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=E?ie(e):e;if(rt===nt)try{t=new l().parseFromString(i,ft)}catch{}if(!t||!t.documentElement){t=ce.createDocument(rt,`template`,null);try{t.documentElement.innerHTML=it?D:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),rt===nt?de.call(t,Pe?`html`:`body`)[0]:Pe?t.documentElement:a},Vt=function(e){let t=S?S(e):e.ownerDocument;return le.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Ht=function(e){return e=JF(e,pe,` `),e=JF(e,me,` `),e=JF(e,he,` `),e},Ut=function(e){Wt(e);let t=e.querySelectorAll?.call(e,`template`);t&&FF(t,e=>{Kt(e.content)&&Ut(e.content)})},Wt=function(e){e.normalize();let t=S?S(e):e.ownerDocument,n=le.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Ht(r.data),r=n.nextNode()},Gt=function(e){let t=x?x(e):null;return typeof t!=`string`||mt(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==y(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==b(e)||e.childNodes!==g(e)},Kt=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return b(e)===zI.documentFragment}catch{return!1}},qt=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return typeof b(e)==`number`}catch{return!1}};function Jt(e,n,r){e.length!==0&&FF(e,e=>{e.call(t,n,r,ht)})}let Yt=function(e,t){return!!(Ne&&e.hasChildNodes()&&!qt(e.firstElementChild)&&rI(FI,e.textContent)&&rI(FI,e.innerHTML)||Ne&&BI[t]&&C(e)===zI.element&&T(e)===nt&&(qt(e.firstElementChild)||typeof e.textContent==`string`&&rI(FI,e.textContent))||e.nodeType===zI.processingInstruction||Ne&&e.nodeType===zI.comment&&rI(II,e.data))},Xt=function(e,t){return e instanceof RegExp?rI(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},Zt=function(e,t,n){if(!Ee[t]&&rn(t)&&Xt(Te.tagNameCheck,t))return!1;if(We&&!Je[t]&&!Je[GF(t)]){let t=_(e),r=g(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,h(e))}}}return Tt(e),!0},Qt=function(e,t,n,r){return e.length===0?t:t===n||t===r?lI(t):t},$t=function(e,t){return e===t||_(e)!==null?!1:(Ge&&jt(e),!0)},en=function(e,n){if(Lt(e),Jt(k.beforeSanitizeElements,e,null),$t(e,n))return!0;if(Gt(e))return Tt(e),!0;let r=mt(w(e));if(A=Qt(k.uponSanitizeElement,A,Se,Ie),Jt(k.uponSanitizeElement,e,{tagName:r,allowedTags:A}),$t(e,n))return!0;if(Yt(e,r))return Tt(e),!0;if(Ee[r]||!(De.tagCheck instanceof Function&&De.tagCheck(r))&&!A[r]){let t=Zt(e,r,n);return t===!1&&(Jt(k.afterSanitizeElements,e,null),$t(e,n))?!0:t}if(C(e)===zI.element&&!wt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&rI(LI,e.innerHTML))return Tt(e),!0;if(Me&&e.nodeType===zI.text){let n=Ht(e.textContent);e.textContent!==n&&(RF(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Jt(k.afterSanitizeElements,e,null),$t(e,n)},tn=function(e,t,r){if(j[t]||Rt(t,e)||M&&(t===`id`||t===`name`)&&(r in n||r in gt))return!1;let i=Ce[t]||De.attributeCheck instanceof Function&&De.attributeCheck(t,e);return ke&&rI(ge,t)||Oe&&rI(_e,t)?!0:i?Qe[t]||rI(xe,JF(r,ye,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&YF(r,`data:`)===0&&Xe[e]||Ae&&!rI(ve,JF(r,ye,``))?!0:!r:rn(e)&&Xt(Te.tagNameCheck,e)&&Xt(Te.attributeNameCheck,t,e)||t===`is`&&Te.allowCustomizedBuiltInElements&&Xt(Te.tagNameCheck,r)},nn=sI({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),rn=function(e){return!nn[GF(e)]&&rI(be,e)},an=function(e,t,n,r){if(E&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return ie(r);case`TrustedScriptURL`:return ae(r)}return r},on=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Gt(e)||(Tt(e),!1)}catch{return Ot(t,e),!1}},sn=function(e,t){return Ne&&rI(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,t)?!0:GF(e)===`attributename`&&qF(t,`href`)!==null},cn=function(e,n){if(Jt(k.beforeSanitizeAttributes,e,null),$t(e,n))return;let r=e.attributes;if(!r||Gt(e))return;Ce=Qt(k.uponSanitizeAttribute,Ce,we,Le);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:Ce,forceKeepAttr:void 0},a=r.length,o=mt(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=mt(s),d=l,f=s===`value`?d:XF(d),p=!1;i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,Jt(k.uponSanitizeAttribute,e,i),f=i.attrValue,He&&(u===`id`||u===`name`)&&YF(f,Ue)!==0&&(Ot(s,e,n),f=Ue+f,p=!0),sn(s,f)?Ot(s,e,n):i.forceKeepAttr||(i.keepAttr?!je&&rI(RI,f)?Ot(s,e,n):(Me&&(f=Ht(f)),tn(o,u,f)?(f=an(o,u,c,f),f!==d&&on(e,s,c,f)&&p&&LF(t.removed)):Ot(s,e,n)):Ot(s,e,n))}Jt(k.afterSanitizeAttributes,e,null),$t(e,n)},ln=function(e){let t=null,n=Vt(e);for(Jt(k.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Jt(k.uponSanitizeShadowNode,t,null),en(t,e),cn(t,e),Kt(t.content)&&ln(t.content),C(t)===zI.element){let e=v(t);Kt(e)&&(un(e),ln(e))}Me&&Wt(e),Jt(k.afterSanitizeShadowDOM,e,null)},un=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){ln(e.shadow);continue}let n=e.node,r=C(n)===zI.element,i=g(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=x?x(n):null;if(typeof e==`string`&&mt(e)===`template`){let e=n.content;Kt(e)&&t.push({node:e,shadow:null})}}if(r){let e=v(n);Kt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(it=!e,it&&(e=`<!-->`),typeof e!=`string`&&!qt(e)&&(e=uI(e),typeof e!=`string`))throw iI(`dirty is not a string, aborting`);if(!t.isSupported)return e;Fe?(A=Ie,Ce=Le):vt(n),(k.uponSanitizeElement.length>0||k.uponSanitizeAttribute.length>0)&&(A=lI(A)),k.uponSanitizeAttribute.length>0&&(Ce=lI(Ce)),t.removed=[];let c=Ge&&typeof e!=`string`&&qt(e),l=[],u=Ke;if(c){zt(e);let t=w(e);if(typeof t==`string`){let n=mt(t);if(!A[n]||Ee[n])throw Dt(e),iI(`root node is forbidden and cannot be sanitized in-place`)}if(Gt(e))throw Dt(e),iI(`root node is clobbered and cannot be sanitized in-place`);l=Mt(e),Ke=HF()}else if(qt(e))i=Bt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===zI.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),un(i);else{if(!ze&&!Me&&!Pe&&e.indexOf(`<`)===-1)return E&&Ve?ie(e):e;if(i=Bt(e),!i)return ze?null:Ve?D:``}i&&Re&&Tt(i.firstChild);let d=c?e:i;try{c&&un(e);let t=Vt(d);for(;o=t.nextNode();)en(o,d),cn(o,d),Kt(o.content)&&ln(o.content);c&&Ft(e,l)}catch(t){throw c&&(Dt(e),Pt(e,l)),t}finally{Ke=u}if(c){if(Pt(e,l))throw iI(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return Me&&Ut(e),e}if(ze){if(Me&&Ut(i),Be)for(s=ue.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(Ce.shadowroot||Ce.shadowrootmode)&&(s=fe.call(r,s,!0)),s}let f=Pe?i.outerHTML:i.innerHTML;return Pe&&A[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&rI(NI,i.ownerDocument.doctype.name)&&(f=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
340
340
|
`+f),Me&&(f=Ht(f)),E&&Ve?ie(f):f},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};vt(e),Fe=!0,Ie=A,Le=Ce},t.clearConfig=function(){ht=null,Fe=!1,Ie=null,Le=null,E=O,D=``},t.isValidAttribute=function(e,t,n){ht||vt({});let r=mt(e),i=mt(t);return typeof n==`string`&&(sn(t,n)||!je&&rI(RI,n))?!1:tn(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&tI(k,e)&&RF(k[e],t)},t.removeHook=function(e,t){if(tI(k,e)){if(t!==void 0){let n=IF(k[e],t);return n===-1?void 0:BF(k[e],n,1)[0]}return LF(k[e])}},t.removeHooks=function(e){tI(k,e)&&(k[e]=[])},t.removeAllHooks=function(){k=UI()},t}var qI=KI(),JI=`png|jpe?g|gif|webp|bmp|svg|avif|ico|tiff?`,YI=`(?:file:\\/\\/(?:(?:localhost)?\\/(?=[^\\s])|[A-Za-z]:[\\\\/]|[^\\/\\s:]+\\/)|\\/(?!\\/)(?!\\s)|[A-Za-z]:[\\\\/](?!\\s)|\\\\\\\\[^\\\\/\\s]+[\\\\/](?!\\s))`,XI=`(?:(?:图|图片|预览图|预览|截图|设计稿|整图|效果图|封面|原图|缩略图|路径|image|img|preview|screenshot|pic|photo|file|path)\\s*[::]\\s*)?`,ZI=RegExp(`^(\\s*(?:[-*+]\\s+|\\d+[.)]\\s+)?)(?:(?:图|图片|预览图|预览|截图|设计稿|整图|效果图|封面|原图|缩略图|路径|image|img|preview|screenshot|pic|photo|file|path)\\s*[::]\\s*)?(${YI}.+?\\.(?:${JI}))\\s*$`,`i`),QI=RegExp(`(^|[\\s(「『【>])(${YI}[^\`"'<>()\\[\\]{}\\s()「」『』【】,。;、!?:…·]+?\\.(?:${JI}))(?=$|[\\s))」』】.,;:!?,。;、!?])`,`gi`),$I=/^\s*(?:```|~~~)/,eL=RegExp(`\\.(?:${JI})`,`i`);function tL(e){return ZI.test(e)||uL.test(e)||e.match(mL)!=null||e.match(hL)!=null}function nL(e){let t=[];for(let n=0;n<e.length;){if(!$I.test(e[n])){t.push(e[n]),n++;continue}let r=n+1;for(;r<e.length&&!$I.test(e[r]);)r++;let i=e.slice(n+1,r);i.filter(tL).length>=2?(t.push(...i),n=r<e.length?r+1:e.length):(t.push(e[n]),n++)}return t}var rL=/^\/(?:slices|assets|icons|favicon|__)(?:[/.]|$)/i,iL=e=>rL.test(String(e)),aL=e=>/[*{}]/.test(String(e)),oL=e=>iL(e)||aL(e),sL=/^(?:…|\.{3,})[\\/]/,cL=`(?:…|\\.{3,})[\\\\/][^\\s\`"'<>()「」『』【】,。;、!?:…]+?\\.(?:${JI})`,lL=RegExp(`(^|[\\s(「『【>→::])(\`?)(${cL})(\`?)`,`gi`),uL=RegExp(`^(\\s*(?:[-*+]\\s+|\\d+[.)]\\s+)?)${XI}(${cL})\\s*$`,`i`);function dL(e,t){let n=String(e).replace(sL,``).replace(/\\/g,`/`);if(aL(n))return null;let r=`/${n.replace(/^\/+/,``)}`;return iL(r)?`} "${vL(e)}")`:wL(e,t)}var fL=/!\[([^\]]*)\]\(\s*(data:[^)]*)\)/gi;function pL(e){let t=String(e??``);return!t||!/!\[[^\]]*\]\(\s*data:/i.test(t)?t:t.replace(fL,(e,t,n)=>{let r=/^data:([^;,]*)((?:;[^,]*)*),([\s\S]*)$/i.exec(n),i=String(t||``).trim()||`未命名`;return r?String(r[3]||``).trim()?e:`\`⚠ 图片缺失:${i}(data URI 载荷为空)\``:`\`⚠ 图片缺失:${i}(data URI 结构异常)\``})}var mL=RegExp(`(!\\[[^\\]]*\\]\\()\\s*(${YI}(?:[^\\s?#()]|\\([^\\s()]*\\))+?\\.(?:${JI}))(?=\\s*(?:"[^"]*"|'[^']*')?\\s*\\))`,`gi`),hL=RegExp(`(!\\[[^\\]]*\\]\\()\\s*([^\\s()/?#\\\\](?:[^\\s?#()]|\\([^\\s()]*\\))*?\\.(?:${JI}))(?=\\s*(?:"[^"]*"|'[^']*')?\\s*\\))`,`gi`);function gL(e){return _L(e).replace(/[[\]!]/g,``).trim().slice(0,120)||`预览图`}function _L(e){let t=String(e??``).trim();if(!t||/^(?:data|blob):/i.test(t))return``;let n=t;try{let e=new URL(t,`http://localhost/`);n=e.searchParams.get(`path`)||e.pathname||t,n=decodeURIComponent(n)}catch{try{n=decodeURIComponent(n)}catch{}}return(n.split(/[\\/]/).pop()||``).trim()}function vL(e){return String(e).replace(/"/g,`'`)}function yL(e){return String(e).replace(/\(/g,`%28`).replace(/\)/g,`%29`).replace(/ /g,`%20`)}function bL(e){let t=String(e);if(!t.includes(`%`))return t;try{return decodeURIComponent(t)}catch{return t}}function xL(e){let t=String(e);if(!/^file:\/\//i.test(t))return t;let n=t.replace(/^file:\/\//i,``),r=/^(?:localhost)?(\/.*)$/i.exec(n);if(r){let e=r[1];return/^\/[A-Za-z]:[\\/]/.test(e)?e.slice(1):e}if(/^[A-Za-z]:[\\/]/.test(n))return n;let i=/^([^\/\s:]+)\/(.*)$/.exec(n);return i?`\\\\${i[1]}\\${i[2].replace(/\//g,`\\`)}`:t}function SL(e,t){let n=xL(bL(e));if(oL(n))return null;let r=``;try{r=t(n)}catch{return null}return r?yL(r):null}function CL(e,t){let n=bL(e).replace(/\\/g,`/`);if(/^[A-Za-z][A-Za-z0-9+.-]*:/.test(n)||n.startsWith(`.`)||n.split(`/`).includes(`..`))return null;let r=``;try{r=t(n)}catch{return null}return r?yL(r):null}function wL(e,t){let n=xL(e);if(oL(n))return null;let r=``;try{r=t(n)}catch{return null}if(!r)return null;let i=yL(r);return`}")`}function TL(e,t){let n=pL(e);if(!n||typeof t!=`function`||!eL.test(n))return n;let r=!1;return nL(n.split(`
|
|
341
341
|
`)).map(e=>{if($I.test(e))return r=!r,e;if(r||!eL.test(e))return e;let n=e.match(ZI);if(n){let r=wL(n[2],t);return r===null?e:n[1]+r}let i=e.match(uL);if(i){let n=dL(i[2],t);return n===null?e:i[1]+n}return e.replace(mL,(e,n,r)=>n+(SL(r,t)??r)).replace(hL,(e,n,r)=>n+(CL(r,t)??r)).replace(QI,(e,n,r)=>n+(wL(r,t)??r)).replace(lL,(e,n,r,i)=>{let a=dL(i,t);return a===null?e:n+a})}).join(`
|
|
342
342
|
`)}(function(e){var t=`\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b`,n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:`punctuation`,inside:null},r={bash:n,environment:{pattern:RegExp(`\\$`+t),alias:`constant`},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp(`(\\{)`+t),lookbehind:!0,alias:`constant`}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:`important`},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:`function`},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:`function`}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:`variable`,lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp(`(^|[\\s;|&]|[<>]\\()`+t),lookbehind:!0,alias:`constant`}},alias:`variable`,lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:`variable`,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp(`\\$?`+t),alias:`constant`},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:`class-name`},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:`important`},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:`important`}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=[`comment`,`function-name`,`for-or-select`,`assign-left`,`parameter`,`string`,`environment`,`function`,`keyword`,`builtin`,`boolean`,`file-descriptor`,`operator`,`punctuation`,`number`],a=r.variable[1].inside,o=0;o<i.length;o++)a[i[o]]=e.languages.bash[i[o]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash})(Prism),(function(e){e.languages.typescript=e.languages.extend(`javascript`,{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript[`literal-property`];var t=e.languages.extend(`typescript`,{});delete t[`class-name`],e.languages.typescript[`class-name`].inside=t,e.languages.insertBefore(`typescript`,`function`,{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:`operator`},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:t}}}}),e.languages.ts=e.languages.typescript})(Prism),(function(e){var t=e.util.clone(e.languages.javascript),n=`(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)`,r=`(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})`,i=`(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})`;function a(e,t){return e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return i}),RegExp(e,t)}i=a(i).source,e.languages.jsx=e.languages.extend(`markup`,t),e.languages.jsx.tag.pattern=a(`<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:"(?:\\\\[\\s\\S]|[^\\\\"])*"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>`),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside[`attr-value`].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside[`class-name`]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore(`inside`,`attr-name`,{spread:{pattern:a(`<SPREAD>`),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore(`inside`,`special-attr`,{script:{pattern:a(`=<BRACES>`),alias:`language-javascript`,inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:`punctuation`},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?typeof e==`string`?e:typeof e.content==`string`?e.content:e.content.map(o).join(``):``},s=function(t){for(var n=[],r=0;r<t.length;r++){var i=t[r],a=!1;if(typeof i!=`string`&&(i.type===`tag`&&i.content[0]&&i.content[0].type===`tag`?i.content[0].content[0].content===`</`?n.length>0&&n[n.length-1].tagName===o(i.content[0].content[1])&&n.pop():i.content[i.content.length-1].content===`/>`||n.push({tagName:o(i.content[0].content[1]),openedBraces:0}):n.length>0&&i.type===`punctuation`&&i.content===`{`?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&i.type===`punctuation`&&i.content===`}`?n[n.length-1].openedBraces--:a=!0),(a||typeof i==`string`)&&n.length>0&&n[n.length-1].openedBraces===0){var c=o(i);r<t.length-1&&(typeof t[r+1]==`string`||t[r+1].type===`plain-text`)&&(c+=o(t[r+1]),t.splice(r+1,1)),r>0&&(typeof t[r-1]==`string`||t[r-1].type===`plain-text`)&&(c=o(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token(`plain-text`,c,null,c)}i.content&&typeof i.content!=`string`&&s(i.content)}};e.hooks.add(`after-tokenize`,function(e){(e.language===`jsx`||e.language===`tsx`)&&s(e.tokens)})})(Prism),mF.setOptions({gfm:!0,breaks:!0}),qI.addHook(`afterSanitizeAttributes`,e=>{e.tagName===`A`&&e.getAttribute(`href`)&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`)),e.tagName===`IMG`&&(e.setAttribute(`loading`,`lazy`),e.setAttribute(`decoding`,`async`))});var EL={js:`javascript`,mjs:`javascript`,cjs:`javascript`,node:`javascript`,ts:`typescript`,sh:`bash`,shell:`bash`,zsh:`bash`,console:`bash`,html:`markup`,vue:`markup`,xml:`markup`,svg:`markup`,jsonc:`json`,json5:`json`,py:`python`,yml:`yaml`};function DL(e){let t=String(e||``).trim().toLowerCase();if(!t)return``;let n=EL[t]||t;return pv.default.languages[n]?n:``}function OL(e){let t=String(e??``);if(!t.trim())return``;let n=``;try{n=mF.parse(t)}catch{n=`<p>${t.replace(/[&<>]/g,e=>({"&":`&`,"<":`<`,">":`>`})[e])}</p>`}return qI.sanitize(n,{ADD_ATTR:[`target`,`rel`]})}function kL(e){if(e&&e.querySelectorAll)for(let t of e.querySelectorAll(`pre`)){let e=t.querySelector(`code`);if(!e)continue;let n=DL((e.className.match(/language-([\w+-]+)/)||[])[1]||``);if(n&&e.className.indexOf(`language-`)<0&&(e.className=`language-${n}`),n&&!e.dataset.mdHighlighted){try{pv.default.highlightElement(e)}catch{}e.dataset.mdHighlighted=`1`}if(t.dataset.mdCode)continue;t.dataset.mdCode=`1`;let r=document.createElement(`div`);r.className=`md-code`;let i=document.createElement(`div`);i.className=`md-code__bar`;let a=document.createElement(`span`);a.className=`md-code__lang`,a.textContent=n||`text`;let o=document.createElement(`button`);o.type=`button`,o.className=`md-code__copy`,o.textContent=`复制`,o.addEventListener(`click`,async()=>{await yp(e.textContent||``)?(o.textContent=`已复制`,o.classList.add(`is-ok`)):o.textContent=`复制失败`,setTimeout(()=>{o.textContent=`复制`,o.classList.remove(`is-ok`)},1600)}),i.append(a,o),t.parentNode?.insertBefore(r,t),r.append(i,t)}}function AL(e){if(e&&e.querySelectorAll)for(let t of e.querySelectorAll(`pre code[data-md-highlighted]`))delete t.dataset.mdHighlighted}function jL(e){return e?e.nodeType===3?!e.textContent.trim():e.nodeType===1&&e.tagName===`BR`:!1}function ML(e){if(e.length>1)return`${e.length} 张图像`;let t=e[0],n=(t.getAttribute(`alt`)||``).trim();if(n)return n;let r=(t.getAttribute(`title`)||``).trim();return(r?(r.split(/[\\/]/).pop()||``).trim():``)||_L(t.getAttribute(`src`))||`1 张图像`}function NL(e){let t=document.createElement(`div`);t.className=`md-imggroup`,t.dataset.mdImggroup=`1`;let n=document.createElement(`button`);n.type=`button`,n.className=`md-imggroup__head`,n.setAttribute(`aria-expanded`,`false`),n.innerHTML=`<svg class="md-imggroup__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#icon-images" /></svg><span class="md-imggroup__label"></span><svg class="md-imggroup__chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#icon-chevron-right" /></svg>`,n.querySelector(`.md-imggroup__label`).textContent=ML(e);let r=document.createElement(`div`);return r.className=`md-imggroup__body`,r.hidden=!0,n.addEventListener(`click`,()=>{let e=r.hidden;r.hidden=!e,t.classList.toggle(`is-open`,e),n.setAttribute(`aria-expanded`,e?`true`:`false`)}),t.append(n,r),{group:t,body:r}}function PL(e){if(e.dataset.mdImgFallback)return;e.dataset.mdImgFallback=`1`;let t=()=>{if(!e.isConnected||!(e.complete&&e.naturalWidth===0))return;let t=e.getAttribute(`src`)||``;if(/\.svgz?(?:[?#]|$)/i.test(t)||/^data:image\/svg/i.test(t))return;let n=_L(t)||(e.getAttribute(`alt`)||``).trim()||`未知图片`,r=document.createElement(`span`);r.className=`md-imgfail`,r.textContent=`图片加载失败:${n}`,r.title=t,e.replaceWith(r);let i=r.closest(`.md-imggroup__body`);if(i&&!i.querySelector(`img`)){let e=r.closest(`[data-md-imggroup]`);if(e){let t=e.querySelector(`.md-imggroup__head`);t&&t.remove(),e.classList.add(`is-open`)}}};e.addEventListener(`error`,t,{once:!0}),t()}function FL(e){if(!e||!e.querySelectorAll)return;let t=[...e.querySelectorAll(`img`)];for(let e of t)PL(e);for(let e of t){if(e.closest(`[data-md-imggroup]`))continue;let t=[e],n=e.nextSibling;for(;n;)if(jL(n))n=n.nextSibling;else if(n.tagName===`IMG`&&!n.closest(`[data-md-imggroup]`))t.push(n),n=n.nextSibling;else break;let{group:r,body:i}=NL(t);e.parentNode.insertBefore(r,e);for(let e of t)i.append(e)}}var IL={name:`MarkdownBody`,props:{source:{type:String,default:``},streaming:{type:Boolean,default:!1}},data(){return{html:``,_raf:0}},watch:{source:{immediate:!0,handler(){this.scheduleRender()}},streaming(e){e||this.renderNow()}},beforeUnmount(){this._raf&&cancelAnimationFrame(this._raf),this._raf=0},methods:{scheduleRender(){this.streaming?this._raf||=requestAnimationFrame(()=>{this._raf=0,this.renderNow()}):this.renderNow()},renderNow(){this._raf&&=(cancelAnimationFrame(this._raf),0),this.html=OL(this.source),this.$nextTick(()=>{let e=this.$refs.bodyEl;e&&(AL(e),kL(e),FL(e))})}}},LL=[`innerHTML`];function RL(e,t,n,r,i,a){return V(),H(B,null,[q(` 模型输出经 marked 解析 + DOMPurify 消毒后注入;代码块由 enhanceCodeBlocks 补高亮与复制按钮 `),W(`div`,{ref:`bodyEl`,class:`md-body`,innerHTML:i.html},null,8,LL)],2112)}var zL=Z(IL,[[`render`,RL],[`__file`,`/Users/ynet/dsl-card/card-editor/components/MarkdownBody.vue`]]),BL={card_list:`列出卡片`,card_read:`读取卡片`,card_write:`写入卡片`,card_validate:`校验卡片`,card_render_status:`渲染状态`,card_node_models:`组件模型`,card_screenshot:`截图预览`,card_sync:`同步远端卡片`,card_save:`推送到远端`,card_slice_upload:`上传切图`,card_import_meta:`来源侧车`,card_route_input:`输入路由`,card_scaffold:`生成骨架`,card_add_component:`添加组件`,card_history:`编辑历史`,card_rollback:`回滚版本`,skill_read:`读技能文档`,skill_exec:`跑技能脚本`,card_grep:`定位卡片字段`,card_patch:`最小改写卡片`,fs_read:`读文件`,fs_list:`列目录`,fs_write:`写草稿文件`,fs_copy:`复制文件`,shell_exec:`本地命令`};function VL(e){return BL[e]||e||`工具`}function HL(e){let t=e&&e.args||{};return`${typeof t.script==`string`?t.script:``} ${Array.isArray(t.args)?t.args.join(` `):typeof t.command==`string`?t.command:``} ${typeof t.name==`string`?t.name:``}`.toLowerCase()}var UL=[{order:6,id:`S6`,label:`收尾门禁`,hit:(e,t)=>/check_fidelity/.test(t)||/iterate/.test(t)&&/--gate/.test(t)},{order:5,id:`S5`,label:`像素自循环`,hit:(e,t)=>/iterate|diff_bands/.test(t)||e===`card_screenshot`},{order:4,id:`S4`,label:`组件填充`,hit:e=>e===`card_add_component`||e===`card_patch`||e===`card_write`},{order:3,id:`S3`,label:`骨架落盘`,hit:(e,t)=>e===`card_scaffold`||/expand_ir/.test(t)||e===`fs_write`&&/\.ir\.json/.test(t)},{order:2,id:`S2`,label:`设计稿审计`,hit:(e,t)=>/spec_tree|sketch_spec|design_sample|audit_|slice_/.test(t)},{order:1,id:`S1`,label:`输入路由`,hit:e=>e===`card_route_input`}];function WL(e){let t=Math.max(0,Math.round(Number(e||0)/1e3));if(t<60)return`${t} 秒`;let n=Math.floor(t/60);return n<60?`${n} 分 ${t%60} 秒`:`${Math.floor(n/60)} 小时 ${n%60} 分`}function GL(e){let t=Number(e||0);if(!t)return``;let n=new Date(t),r=e=>String(e).padStart(2,`0`);return`${r(n.getHours())}:${r(n.getMinutes())}:${r(n.getSeconds())}`}function KL(e){let t=Number(e||0);return t>0?`+${WL(t)}`:``}function qL(e,t=0){let n=Number(e&&e.startedAt)||0;if(!n)return 0;let r=Number(e&&e.ms)||0;if(r>0)return n+r;let i=Number(t)||0;return i>n?i:0}function JL(e){let t=e&&e.toolName||``,n=HL(e);for(let e of UL)if(e.hit(t,n))return e;return null}var YL=new Set([`card_write`,`card_patch`,`card_scaffold`,`card_add_component`,`fs_write`,`fs_copy`,`card_save`,`card_sync`,`card_slice_upload`]),XL=new Set([`card_read`,`card_list`,`card_node_models`,`card_grep`,`card_history`,`card_validate`,`card_render_status`,`fs_read`,`fs_list`,`skill_read`]);function ZL(e){let t=e&&e.toolName||``;return e&&e.error||YL.has(t)||t===`skill_exec`||t===`shell_exec`||t===`card_screenshot`?!0:!XL.has(t)}function QL(e){if(e==null||e===``)return null;if(typeof e==`object`)return e;let t=String(e);try{return JSON.parse(t)}catch{}let n=t.indexOf(`{`),r=t.lastIndexOf(`}`);if(n>=0&&r>n)try{return JSON.parse(t.slice(n,r+1))}catch{return null}return null}function $L(e){let t=HL(e);if(!/--gate|check_fidelity/.test(t))return null;let n=QL(e&&e.result),r=n&&typeof n==`object`?n.gate:null;if(r&&typeof r.passed==`boolean`)return{passed:r.passed,verdict:String(r.verdict||``)};let i=String(e&&e.result||``);if(!/"passed"\s*:/.test(i))return null;let a=/"passed"\s*:\s*(true|false)/.exec(i),o=/"verdict"\s*:\s*"((?:[^"\\]|\\.)*)"/.exec(i);return a?{passed:a[1]===`true`,verdict:o?o[1].replace(/\\n/g,` `):``}:null}var eR=/\s#([^\s#]+)\s*$/;function tR(e){let t=String(e??``),n=eR.exec(t);return n?{text:t.slice(0,n.index).trim(),cid:n[1]}:{text:t,cid:``}}var nR=12;function rR(e){let t=e&&e.toolName||``,n=QL(e&&e.result);if(!n||typeof n!=`object`)return null;let r=t===`card_validate`?n:n.verify&&n.verify.validate;if(!r||typeof r!=`object`||!Array.isArray(r.errors))return null;let i=Array.isArray(r.warnings)?r.warnings:[],a=[...r.errors.map(e=>({level:`error`,...tR(e)})),...i.map(e=>({level:`warn`,...tR(e)}))].slice(0,nR);return{ok:r.ok!==!1&&r.errors.length===0,errors:r.errors.length,warnings:i.length,issues:a}}function iR(e){let t=Array.isArray(e)?e:[],n=0,r=0,i=0,a=0,o=null,s=null;for(let e of t){e.error&&a++,YL.has(e.toolName)&&(e.error?r++:n++),e.toolName===`card_screenshot`&&!e.error&&i++;let t=rR(e);t&&(o=t);let c=$L(e);c&&(s=c)}return{total:t.length,writes:n,writeFails:r,shots:i,failed:a,validate:o,gate:s}}var aR={length:`单次输出上限截断:调高「单次输出上限」,或要求 AI 走紧凑 IR 路线(fs_write 写 IR → expand_ir 展开)`,stall:`上游长时间静默:多为网关 / 网络抖动。上下文与已落盘产物都在,重试本轮即可接着做`,empty:`网关连续返回空响应:重试本轮,或检查网关额度 / 换个时间段`,context:`上下文超出网关窗口:后端已自动压缩重试仍失败,建议新开一轮或清理对话记录`,network:`连不上网关:检查网络与 Base URL 后重试本轮`,"rate-limit":`网关限流或额度不足:稍后重试,或换一个 API Key`,auth:`API Key 无效或权限不足:到设置里更新 Key 再重试`,"wrap-failed":`熔断收尾的进度汇总也没拿到:上下文已保留,回复「继续」接着做`,aborted:`本轮已中止:已执行的写入都保留,可从中断处继续`,unknown:`未归类的失败:复制错误原文排查,或换个说法重试本轮`};function oR(e){return{hint:aR[e]||``,action:e===`length`||e===`auth`?`settings`:e===`wrap-failed`||e===`aborted`?`continue`:`retry`}}var sR=/^\s*(\d+)\.\s+(.+?)\s+\((\d+x\d+|\?)\)\s*(.*)$/,cR=/--pick\s+([\d.,~]+)/;function lR(e){if(typeof e!=`string`||!e.includes(`--pick`))return[];let t=[];for(let n of e.split(`
|
|
@@ -358,16 +358,16 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
358
358
|
`:``}[已挂载本地文件(仅本机路径,未上传;需要内容请用工具读取)]\n${e.join(`
|
|
359
359
|
`)}`}return{role:`user`,content:n}}let t=(e.toolCalls||[]).filter(e=>e.result!==void 0||e.error).map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,args:e.args||{},result:typeof e.result==`string`?HU(e.toolName,e.result):e.result,error:e.error||``})),n=e.content||``;return e.status===`aborted`&&(n=n?`${n}\n\n[本轮生成被用户手动中止,以上为已完成部分;未完成的步骤没有执行,请从中断处继续。]`:`[上一轮被用户手动中止于思考/工具阶段,没有产出可用内容;请重新规划并继续完成用户的目标。]`),{role:`assistant`,content:n,toolCalls:t}})},onScroll(){let e=this.$refs.listEl;e&&(this.pinned=e.scrollHeight-e.scrollTop-e.clientHeight<48)},scrollToBottom(e=!1){let t=this.$refs.listEl;t&&(e||this.pinned)&&(t.scrollTop=t.scrollHeight)},stopTickers(){this._saveTimer&&clearTimeout(this._saveTimer),this._saveTimer=0},startTurn(){let e=Date.now();this.turnId=``,this.lastSeq=0,this.turnStep=0,this.turnStage=null,this.turnToolLabel=``,this.turnStartedAt=e,this.lastByteAt=e,this.nowTs=e,this.stopTurnTimers(),this._liveTicker=setInterval(()=>{this.nowTs=Date.now(),this.$emit(`turn-progress`,{steps:this.turnStep,startedAt:this.turnStartedAt,ms:this.nowTs-this.turnStartedAt,stage:this.turnStage?`${this.turnStage.id} ${this.turnStage.label}`:this.turnToolLabel,stalled:this.stalled})},1e3),this._turnPersistTimer=setInterval(()=>this.persist(),8e3),this.persist(),this.$emit(`busy`,!0)},stopTurnTimers(){this._liveTicker&&clearInterval(this._liveTicker),this._liveTicker=0,this._turnPersistTimer&&clearInterval(this._turnPersistTimer),this._turnPersistTimer=0},onPagehide(){let e=this.cardId;if(!e||!this.messages.length)return;let t=this.fitArchive(this.serialize());this._dirtyFor=null,this._saveTimer&&=(clearTimeout(this._saveTimer),0),iz(e,t,{keepalive:!0}).catch(()=>{})},fmtClock:WL,pushEvent(e,t){let n=String(t&&t.message||``);n&&e&&(Array.isArray(e.events)||(e.events=[]),e.events.push({ts:Date.now(),level:t.level||`warn`,code:t.code||``,message:n}))},applyUsage(e,t){if(!e||!t)return;let n=e=>Number.isFinite(Number(e))?Number(e):0;e.usage={steps:n(t.steps),promptTokens:n(t.promptTokens),completionTokens:n(t.completionTokens),cachedTokens:n(t.cachedTokens),cacheMissTokens:n(t.cacheMissTokens),hitRate:n(t.hitRate),reported:t.reported!==!1}},loadCompact(){try{this.compactSteps=localStorage.getItem($U)===`1`}catch{}},setCompact(e){let t=!!e;if(this.compactSteps!==t){this.compactSteps=t;try{t?localStorage.setItem($U,`1`):localStorage.removeItem($U)}catch{}this.$nextTick(()=>this.scrollToBottom())}},toggleCompact(){this.setCompact(!this.compactSteps)},onLocateNode(e){e&&this.$emit(`locate-node`,String(e))},onRollbackTurn(e){if(this.busy)return;let t=this.cardId;t&&e&&this.$emit(`rollback-turn`,{cardId:t,ts:Number(e.ts)||0,msgId:e.id})},notify(e,t){this.notice={type:e,text:t},this._noticeTimer&&clearTimeout(this._noticeTimer),this._noticeTimer=setTimeout(()=>{this.notice=null},6e3)}}},sW={class:`aichat__head`},cW={class:`aichat__titles`},lW={class:`aichat__sub`},uW={class:`aichat__acts`},dW=[`title`,`aria-pressed`],fW={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},pW=[`href`],mW=[`disabled`],hW={key:0,class:`aichat__banner`},gW={class:`aichat__scroll`},_W={key:0,class:`aichat__archnote`,title:`长对话记录超出落盘体积上限时,较早的工具参数与结果会被裁剪归档;正文、思考与过程事件都完整保留`},vW={key:1,class:`aichat__loading`},yW={key:2,class:`aichat__empty`},bW={class:`aichat__empty-title`},xW={class:`aichat__empty-desc`},SW={class:`aichat__suggests`},CW=[`title`,`data-suggest-id`,`onClick`],wW={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},TW=[`href`],EW={class:`aichat__suggest-text`},DW={class:`aichat__suggest-label`},OW={class:`aichat__suggest-hint`},kW={key:0,class:`aichat__suggest-badge`,title:`该操作会改动卡片`},AW={class:`aichat__live-text`},jW={key:1,class:`aichat__quick`},MW=[`title`,`data-suggest-id`,`onClick`],NW={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},PW=[`href`],FW={class:`ni-panel modal-card ccsw-dlg`,role:`dialog`,"aria-modal":`true`,"aria-label":`从 cc-switch 导入模型`},IW={class:`ni-head`},LW={class:`ni-body`},RW={class:`ni-scroll`},zW={key:0,class:`ccsw-dlg__msg`},BW={class:`ccsw-dlg__msg ccsw-dlg__msg--err`},VW={class:`ccsw-dlg__list`},HW=[`onClick`],UW={key:0,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.8`,"stroke-linecap":`round`,"stroke-linejoin":`round`},WW={class:`ccsw-dlg__info`},GW={class:`ccsw-dlg__name`},KW={key:0,class:`ccsw-dlg__badge ccsw-dlg__badge--cur`,title:`cc-switch 中当前生效`},qW={key:1,class:`ccsw-dlg__badge ccsw-dlg__badge--dup`,title:`模型库中已存在同名模型`},JW={class:`ccsw-dlg__meta`},YW={class:`ccsw-dlg__model`},XW={class:`ccsw-dlg__host`},ZW={class:`ni-foot`},QW={class:`ni-tip`},$W={class:`ni-foot-btns`},eG=[`disabled`];function tG(e,t,n,r,i,a){let o=R(`ChatMessage`),s=R(`ChatComposer`),c=R(`ModelList`),l=R(`AiSettings`),u=R(`ConfirmDialog`),d=R(`AiCommonSettings`);return V(),H(`aside`,{class:j([`aichat`,{"is-open":n.visible}]),style:A(a.panelStyle),role:`complementary`,"aria-label":`AI 开发助手`,onKeydown:t[21]||=jl((...e)=>a.onEscape&&a.onEscape(...e),[`esc`]),onClick:t[22]||=(...e)=>a.onImageClick&&a.onImageClick(...e)},[q(` 左缘拖拽把手:调宽(双击恢复默认 33%) `),W(`div`,{class:j([`aichat__grip`,{"is-dragging":i.resizing}]),title:`拖拽调整宽度(双击恢复默认)`,onPointerdown:t[0]||=J((...e)=>a.startResize&&a.startResize(...e),[`prevent`]),onDblclick:t[1]||=J((...e)=>a.resetWidth&&a.resetWidth(...e),[`prevent`])},null,34),q(` 头部:标题 + 当前卡片 / 模型 + 清空 / 设置 / 关闭 `),W(`header`,sW,[t[27]||=W(`span`,{class:`aichat__logo`},[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-sparkles`})])],-1),W(`span`,cW,[t[23]||=W(`span`,{class:`aichat__title`},`AI 开发助手`,-1),W(`span`,lW,[n.cardId?(V(),H(B,{key:0},[K(M(n.cardName||n.cardId),1)],64)):(V(),H(B,{key:1},[K(`未选择卡片`)],64)),i.config.model?(V(),H(B,{key:2},[K(` · `+M(i.config.model),1)],64)):q(`v-if`,!0)])]),W(`span`,uW,[q(` 紧凑视图(面板级):长任务里读取类调用能刷几十行,把写入与门禁挤到折叠线以下 `),W(`button`,{type:`button`,class:j([`aichat__iconbtn`,{"is-on":i.compactSteps}]),title:i.compactSteps?`紧凑视图已开启:已折叠读取类调用,点击显示全部步骤`:`只看关键步骤:折叠读取类调用(写入 / 跑脚本 / 报错始终显示)`,"aria-pressed":i.compactSteps?`true`:`false`,onClick:t[2]||=(...e)=>a.toggleCompact&&a.toggleCompact(...e)},[(V(),H(`svg`,fW,[W(`use`,{href:i.compactSteps?`#icon-eye-off`:`#icon-eye`},null,8,pW)]))],10,dW),W(`button`,{type:`button`,class:`aichat__iconbtn`,title:`清空本卡片对话记录`,disabled:!i.messages.length||i.busy,onClick:t[3]||=(...e)=>a.askClear&&a.askClear(...e)},[...t[24]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-trash`})],-1)]],8,mW),W(`button`,{type:`button`,class:`aichat__iconbtn`,title:`模型库`,onClick:t[4]||=(...e)=>a.openModelList&&a.openModelList(...e)},[...t[25]||=[W(`svg`,{class:`is-solid-icon`,viewBox:`0 0 1024 1024`,"aria-hidden":`true`},[W(`use`,{href:`#icon-model`})],-1)]]),W(`button`,{type:`button`,class:`aichat__iconbtn`,title:`关闭(Esc)`,onClick:t[5]||=t=>e.$emit(`close`)},[...t[26]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-x`})],-1)]])])]),q(` 未配置模型:常驻提示条,一键打开设置 `),a.configReady?q(`v-if`,!0):(V(),H(`div`,hW,[t[28]||=W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-alert-triangle`})],-1),t[29]||=W(`span`,null,`尚未配置模型,无法对话。`,-1),W(`button`,{type:`button`,class:`aichat__banner-btn`,onClick:t[6]||=(...e)=>a.openModelList&&a.openModelList(...e)},`去设置`)])),q(` 消息区:滚动容器与悬浮「回到底部」共处一个定位上下文,按钮只贴消息区底缘,
|
|
360
360
|
输入区拖高 / 反馈条出现都不会把它盖住或悬空 `),W(`div`,gW,[W(`div`,{ref:`listEl`,class:`aichat__list`,onScroll:t[10]||=(...e)=>a.onScroll&&a.onScroll(...e)},[q(` 体积治理痕迹:较早的工具结果被裁剪过就说清楚,别让人以为记录丢了 `),i.archiveTrimmed?(V(),H(`div`,_W,[...t[30]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-activity`})],-1),W(`span`,null,`较早的工具参数 / 结果已裁剪归档(对话正文与过程事件完整保留)`,-1)]])):q(`v-if`,!0),i.loadingHistory?(V(),H(`div`,vW,`正在加载对话记录…`)):i.messages.length?(V(),H(B,{key:3},[q(` compact = 面板级「只看关键步骤」;can-rollback 只对当前卡片、非流式中开放(切了卡再回滚会写错对象) `),(V(!0),H(B,null,z(i.messages,(e,r)=>(V(),U(o,{key:e.id,msg:e,streaming:i.busy&&r===i.messages.length-1,"can-regenerate":e.role===`assistant`&&r===i.messages.length-1,compact:i.compactSteps,"can-rollback":e.role===`assistant`&&!i.busy&&!!n.cardId,"now-ts":i.busy&&r===i.messages.length-1?i.nowTs:0,"pick-owner":a.pickOwnerRow,onRegenerate:a.regenerate,onApproval:a.onApproval,onContinue:a.onContinue,onRollback:a.onRollbackTurn,onOpenSettings:a.openModelList,onShowAllSteps:t[8]||=e=>a.setCompact(!1),onLocateNode:a.onLocateNode,onPickBoard:a.onPickBoard},null,8,[`msg`,`streaming`,`can-regenerate`,`compact`,`can-rollback`,`now-ts`,`pick-owner`,`onRegenerate`,`onApproval`,`onContinue`,`onRollback`,`onOpenSettings`,`onLocateNode`,`onPickBoard`]))),128)),q(` 面板级进度:步数 / 已用时长 / 建卡阶段 / 最近收到数据多久前。
|
|
361
|
-
长任务里「还活着吗」全靠这一行——旧版只有一句「生成中…」,网关静默与真在跑无从区分 `),i.busy?(V(),H(`div`,{key:0,class:j([`aichat__live`,{"is-stalled":a.stalled}]),role:`status`,"aria-live":`polite`},[t[33]||=W(`span`,{class:`aichat__live-dot`},null,-1),W(`span`,AW,M(a.liveText),1),a.stalled?(V(),H(`button`,{key:0,type:`button`,class:`aichat__live-act`,title:`连接可能已中断,终止本轮(已落盘的产物会保留)`,onClick:t[9]||=(...e)=>a.stop&&a.stop(...e)},` 终止 `)):q(`v-if`,!0)],2)):q(`v-if`,!0)],64)):(V(),H(`div`,yW,[t[32]||=W(`span`,{class:`aichat__empty-logo`},[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-sparkles`})])],-1),W(`p`,bW,M(a.emptyTitle),1),W(`p`,xW,M(a.emptyDesc),1),W(`div`,SW,[(V(!0),H(B,null,z(a.suggestions,e=>(V(),H(`button`,{key:e.id,type:`button`,class:j([`aichat__suggest`,`is-${e.weight}`]),title:e.text,"data-suggest-id":e.id,onClick:t=>a.useSuggestion(e)},[(V(),H(`svg`,wW,[W(`use`,{href:e.icon},null,8,TW)])),W(`span`,EW,[W(`span`,DW,M(e.label),1),W(`span`,OW,M(e.hint),1)]),e.weight===`write`?(V(),H(`span`,kW,`改卡`)):q(`v-if`,!0)],10,CW))),128)),a.canShuffle?(V(),H(`button`,{key:0,type:`button`,class:`aichat__suggest-shuffle`,onClick:t[7]||=(...e)=>a.shuffleSuggestions&&a.shuffleSuggestions(...e)},[...t[31]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-refresh`})],-1),W(`span`,null,`换一批`,-1)]])):q(`v-if`,!0)])]))],544),q(` 回到底部:脱离底部吸附时出现 `),L(W(`button`,{type:`button`,class:`aichat__jump`,title:`回到底部`,onClick:t[11]||=e=>a.scrollToBottom(!0)},[...t[34]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-arrow-down`})],-1)]],512),[[Nc,!i.pinned&&i.messages.length]])]),q(` 常驻「常用」指令:有对话后空态建议区不再出现,这里保留一排轻量入口,随上下文同源 `),a.quickChips.length&&i.messages.length&&!i.busy?(V(),H(`div`,jW,[(V(!0),H(B,null,z(a.quickChips,e=>(V(),H(`button`,{key:e.id,type:`button`,class:j([`aichat__chip`,`is-${e.weight}`]),title:e.text,"data-suggest-id":e.id,onClick:t=>a.useSuggestion(e)},[(V(),H(`svg`,NW,[W(`use`,{href:e.icon},null,8,PW)])),W(`span`,null,M(e.label),1)],10,MW))),128))])):q(`v-if`,!0),q(` 操作反馈(附件解析失败 / 历史保存失败等) `),i.notice?(V(),H(`div`,{key:2,class:j([`aichat__notice`,`aichat__notice--${i.notice.type}`])},[W(`span`,null,M(i.notice.text),1),W(`button`,{type:`button`,class:`aichat__notice-x`,title:`关闭`,onClick:t[12]||=e=>i.notice=null},[...t[35]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-x`})],-1)]])],2)):q(`v-if`,!0),G(s,{ref:`composerEl`,busy:i.busy,model:i.config.model,attachments:i.draftAttachments,placeholder:a.configReady?`描述你要改的卡片,Enter 发送 / Shift+Enter 换行`:`请先在设置中配置模型…`,context:i.contextUsage,onSend:a.onSend,onStop:a.stop,onPick:a.onPick,onAddPath:a.onAddPath,onRemoveAttachment:a.removeAttachment,onDropFiles:a.onDropFiles,onPasteImage:a.onPasteImage,onEscape:a.onEscape},null,8,[`busy`,`model`,`attachments`,`placeholder`,`context`,`onSend`,`onStop`,`onPick`,`onAddPath`,`onRemoveAttachment`,`onDropFiles`,`onPasteImage`,`onEscape`]),q(` 一级面板:模型库。从齿轮 / 横幅 / 消息内「去设置」进入 `),i.modelListOpen?(V(),U(c,{key:3,models:i.models,"active-id":i.activeId,"turn-running":i.turnRunning,onClose:a.closeModelList,onAdd:a.onModelAdd,onEdit:a.onModelEdit,onDelete:a.onModelDelete,onActivate:a.onModelActivate,onImportCcswitch:a.onImportCcSwitch,onOpenCommon:a.openCommon},null,8,[`models`,`active-id`,`turn-running`,`onClose`,`onAdd`,`onEdit`,`onDelete`,`onActivate`,`onImportCcswitch`,`onOpenCommon`])):q(`v-if`,!0),q(` 新增 / 编辑模型:复用 AiSettings(modelId 区分,initialModel 预填) `),i.modelEditOpen?(V(),U(l,{key:4,config:i.config,"model-id":i.editModelId,"initial-model":i.editInitialModel,onClose:a.onModelEditClose,onSaved:a.onModelSaved},null,8,[`config`,`model-id`,`initial-model`,`onClose`,`onSaved`])):q(`v-if`,!0),q(` 删除模型确认:二次确认后才真正落盘删除 `),G(u,{visible:!!i.confirmDeleteModel,"close-on-mask":!1,title:`删除模型`,message:a.deleteModelMessage,"confirm-text":`删除`,severity:`danger`,onConfirm:a.doDeleteModel,onCancel:t[13]||=e=>i.confirmDeleteModel=null},null,8,[`visible`,`message`,`onConfirm`]),q(` cc-switch 导入弹窗:列出 cc-switch 的 Codex 类供应商,勾选后批量导入模型库(按 model 去重) `),G(hc,{name:`modal`},{default:I(()=>[i.ccSwitchOpen?(V(),H(`div`,{key:0,class:`ni-overlay`,onClick:t[17]||=J(e=>i.ccSwitchOpen=!1,[`self`])},[W(`div`,FW,[W(`div`,IW,[t[36]||=W(`span`,{class:`ni-title`},`从 cc-switch 导入`,-1),W(`button`,{class:`ni-close`,type:`button`,title:`关闭`,onClick:t[14]||=e=>i.ccSwitchOpen=!1})]),W(`div`,LW,[W(`div`,RW,[q(` 加载中 `),i.ccSwitchLoading?(V(),H(`p`,zW,`正在读取 cc-switch 供应商…`)):i.ccSwitchReason?(V(),H(B,{key:1},[q(` 无可导入项 `),W(`p`,BW,M(i.ccSwitchReason),1)],2112)):(V(),H(B,{key:2},[q(` 供应商列表 `),W(`ul`,VW,[(V(!0),H(B,null,z(i.ccSwitchProviders,e=>(V(),H(`li`,{key:e.id,class:j([`ccsw-dlg__item`,{"is-active":i.ccSwitchSelected[e.id],"is-dup":e.duplicate}]),onClick:t=>a.toggleCcSwitchItem(e)},[W(`span`,{class:j([`ccsw-dlg__check`,{"is-on":i.ccSwitchSelected[e.id]}])},[i.ccSwitchSelected[e.id]?(V(),H(`svg`,UW,[...t[37]||=[W(`use`,{href:`#icon-check`},null,-1)]])):q(`v-if`,!0)],2),W(`span`,WW,[W(`span`,GW,[K(M(e.name||e.model)+` `,1),e.isCurrent?(V(),H(`span`,KW,`当前`)):q(`v-if`,!0),e.duplicate?(V(),H(`span`,qW,`已存在`)):q(`v-if`,!0)]),W(`span`,JW,[W(`span`,YW,M(e.model),1),t[38]||=W(`span`,{class:`ccsw-dlg__dot`},`·`,-1),W(`span`,XW,M(e.baseUrl),1)])])],10,HW))),128))])],2112))])]),W(`div`,ZW,[W(`span`,QW,M(a.ccSwitchDupCount>0?`已有 ${a.ccSwitchDupCount} 个重复模型被自动跳过`:`勾选要导入的供应商,批量加入模型库`),1),W(`div`,$W,[W(`button`,{class:`ni-btn ni-btn--ghost`,type:`button`,onClick:t[15]||=e=>i.ccSwitchOpen=!1},`取消`),W(`button`,{class:`ni-btn`,type:`button`,disabled:i.ccSwitchLoading||!i.ccSwitchProviders.length||a.ccSwitchCheckedCount===0,onClick:t[16]||=(...e)=>a.confirmImportCcSwitch&&a.confirmImportCcSwitch(...e)},M(a.ccSwitchCheckedCount>0?`导入选中 ${a.ccSwitchCheckedCount} 项`:`导入`),9,eG)])])])])):q(`v-if`,!0)]),_:1}),q(` 通用设置:所有模型共享的执行策略 / 环境参数 `),i.commonOpen?(V(),U(d,{key:5,onClose:t[18]||=e=>i.commonOpen=!1,onSaved:a.onCommonSaved},null,8,[`onSaved`])):q(`v-if`,!0),G(u,{visible:i.confirmClear,"close-on-mask":!1,title:`清空对话记录`,message:`将删除卡片「${n.cardName||n.cardId||`当前卡片`}」的全部对话记录,此操作不可撤销。`,"confirm-text":`清空`,severity:`danger`,onConfirm:a.doClear,onCancel:t[19]||=e=>i.confirmClear=!1},null,8,[`visible`,`message`,`onConfirm`]),q(` 终止确认:生成中按 Esc 会走到这里。几十分钟的建卡被一次误按抹掉代价太大,故加一道确认 `),G(u,{visible:i.confirmStop,"close-on-mask":!1,title:`终止本次生成`,message:`已执行的写入与落盘产物都会保留,上下文也留在对话里,之后回复「继续」可从中断处接着做。确定现在终止?`,"confirm-text":`终止生成`,severity:`danger`,onConfirm:a.doStop,onCancel:t[20]||=e=>i.confirmStop=!1},null,8,[`visible`,`onConfirm`])],38)}var nG=Z(oW,[[`render`,tG],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ChatPanel.vue`]]),rG=`/assets/site-icon-CFMif8z4.png`,iG={includeMocks:!0};function aG(e){return e?JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)):null}function oG(e){let t=aG(e);if(t&&t.dictionary&&Array.isArray(t.dictionary.inputParams)){let e=hv(t);for(let n of t.dictionary.inputParams)n&&typeof n==`object`&&!gv(e,n.key)&&(n.defaultValue=void 0)}return t}function sG(e,t){return!e||!t?e===t:JSON.stringify(oG(e))===JSON.stringify(oG(t))}function cG(e,t){return JSON.stringify(e)===JSON.stringify(t)}function lG(e,t){return!t||!e?!1:!sG(e,t)}function uG(e,t,n){return!t||!e?!1:!cG(e,n??mv(t,iG))}function dG(e,t,n,r){return!t||!e?!1:lG(e,t)||uG(n,t,r)}var fG={includeMocks:!0},pG=2500,mG=8e3,hG=`cardbuddy:remote-cards-cache:v1`,gG=3e5;function _G(){try{let e=JSON.parse(localStorage.getItem(hG)||`null`);if(e&&e.v===1&&Array.isArray(e.cards))return e}catch{}return null}function vG(e){try{localStorage.setItem(hG,JSON.stringify({v:1,at:Date.now(),cards:e}))}catch{}}var yG=new pu,bG=vu({},yG);typeof window<`u`&&(window.__rt=bG);var xG=188,SG=320,CG=200,wG=160,TG={name:`App`,components:{RenderTree:vp,DebugPanel:Gx,ApiCallPanel:pS,CardSelect:MS,AlertCardLayer:US,DeviceOverlay:ND,PickerOverlay:UD,DatePickerOverlay:eO,KeyboardOverlay:oO,LoadingExOverlay:fO,SelectionOverlay:gO,HoverGuides:SO,RemotePreview:uk,AppToast:_k,ThemeSettings:Rk,ImageLightbox:iA,ConfirmDialog:Ap,CardGallery:LA,RemoteAllCards:vj,RemoteCardFormDialog:$j,SyncProgressModal:uM,ExportDirDialog:EM,ExportProgressModal:LM,NewCardDialog:rN,ComponentPalette:vN,Switch:SN,ChatPanel:nG},provide(){return{adapter:yG,cardRuntime:bG,customComponents:{}}},data(){return{adapter:yG,rt:bG,logoUrl:rG,appVersion:`0.81.8`,cardList:[],cardCount:0,galleryOpen:!1,remoteAllOpen:!1,remoteCards:[],remoteCardsLoading:!1,remoteCardsRefreshing:!1,remoteCardsError:``,remoteCardFormOpen:!1,remoteCardFormMode:`create`,remoteCardFormCard:null,remoteCardDeletingId:``,syncJobId:``,syncProgressOpen:!1,syncProgress:{done:0,total:0,current:``},syncPollTimer:null,exportDirDialog:{visible:!1,ids:[]},compilingCards:!1,exportJobId:``,exportProgressOpen:!1,exportProgress:{done:0,total:0,current:``},exportPollTimer:null,syncPendingCodes:void 0,cardDialog:{visible:!1,mode:`create`,cardId:``,cardDesc:``},selectedId:``,externalReloadNote:``,externalReloadTimer:null,selfSaveId:``,selfSaveAt:0,preview:null,chromeOff:!1,theme:`dark`,accent:bk,cardReady:!1,reloadToken:0,moveCollapseToken:0,refreshing:!1,loadingCard:!1,currentSchema:null,currentCard:null,loadedCardId:``,cardImportMeta:null,localSchema:null,localData:null,selectedNodeId:``,activeTab:`vars`,apiPanelOpen:!0,addNodePanelOpen:!1,addNodeTarget:null,validateBadge:{state:`idle`,errors:0,warnings:0,renderOk:null,ts:0},validateTimer:null,savedCard:!1,savingCard:!1,saveTimer:null,coverBusy:!1,savingRemote:!1,restoringHistory:!1,savedRemote:!1,verifiedRemote:null,saveRemoteTimer:null,syncingRemote:!1,syncedRemote:!1,remotePreviewOpen:!1,syncTarget:null,syncTimer:null,uploadingSlices:!1,publishing:!1,metaRefreshToken:0,historyRefreshToken:0,loginModal:!1,loginName:``,loginPassword:``,loginSubmitting:!1,loginError:``,credentialsReady:!1,loginPendingAction:``,remoteToggleFn:null,confirm:{show:!1,title:``,message:``,confirmText:`继续`,cancelText:`取消`,severity:`primary`,onConfirm:null},past:[],future:[],baseline:null,_commitTimer:null,viewportHeight:700,canvasBg:`gray`,refreshing:!1,bgOptions:[{key:`checker`,label:`棋盘`},{key:`white`,label:`白色`},{key:`gray`,label:`浅灰`},{key:`black`,label:`黑色`}],_previewWidthPx:372,_apiPanelWidthPx:360,presetSizes:[{key:375,value:`375`},{key:430,value:`430`},{key:188,value:`188`}],stageWidth:typeof window<`u`?window.innerWidth:1280,colsWidth:0,stageHeight:typeof window<`u`?window.innerHeight-52:748,dragging:!1,apiDragging:!1,_stageObserver:null,devServiceOpen:!1,aiChatOpen:(()=>{try{return sessionStorage.getItem(`cardbuddy:ai-chat-open`)===`1`}catch{return!1}})(),chatBusy:!1,chatProgress:null,fab:{x:null,y:null,dragging:!1},fabDrag:null,fabSuppressClick:!1,devServiceForm:Kl(),apiBaseResolved:Jl(),devSvcLive:`unknown`,devSvcDown:!1,_unsubCardsChanged:null}},computed:{fabTitle(){if(this.aiChatOpen)return`AI 开发助手(已打开)`;if(!this.chatBusy)return`AI 开发助手`;let e=this.chatProgress,t=e&&e.startedAt?`${GL(e.startedAt)} 开始 · `:``;return`AI 开发助手正在生成(${e?`${t}第 ${e.steps} 步 · 已用 ${WL(e.ms)}${e.stage?` · ${e.stage}`:``}${e.stalled?` · 疑似断流`:``}`:``}),点击展开查看`},fabStyle(){return this.fab.x==null||this.fab.y==null?{}:{right:this.fab.x+`px`,bottom:this.fab.y+`px`,left:`auto`,top:`auto`,transition:this.fab.dragging?`none`:``}},currentBg(){return this.bgOptions.find(e=>e.key===this.canvasBg)||this.bgOptions[0]},cardIds(){return this.cardList.map(e=>e&&e.id).filter(Boolean)},remoteImportedIds(){return this.cardList.filter(e=>e&&e.imported).map(e=>e.id)},canUndo(){return this.past.length>0},canRedo(){return this.future.length>0},devSvcBlockReason(){let e=this.devServiceForm||{};return String(e.baseUrl||``).trim()?e.enabled?null:`disabled`:`empty`},canPaste(){return!!td()},hasCardSource(){return!!(this.cardImportMeta&&this.cardImportMeta.source)},remoteBusy(){return!!(this.savingRemote||this.syncingRemote||this.uploadingSlices||this.publishing)},remoteBusyReason(){return this.savingRemote?`正在推送至远端…`:this.syncingRemote?`正在拉取远端卡片…`:this.uploadingSlices?`正在上传切图…`:this.publishing?`正在发布版本…`:``},historyDirty(){return dG(this.currentSchema,this.localSchema,this.rt&&this.rt.rootScope,this.localData)},devSvcConn(){return this.apiBaseResolved===null?`unconfigured`:this.devSvcLive===`open`?`open`:this.devSvcDown?`closed`:`connecting`},devSvcTitle(){if(this.apiBaseResolved===null)return this.devSvcBlockReason===`disabled`?`已填地址但未开启用本地服务`:`未配置本地开发服务(部署态必填)`;let e=this.apiBaseResolved===``?`同源开发服务`:`本地开发服务`;return this.devSvcLive===`open`?e+`已连接`:this.devSvcDown?e+`已断开(连接失败或服务已停止,重连中…)`:e+`连接中 / 重连中…`},devSvcClass(){return this.apiBaseResolved===null?`app__btn--warn`:this.devSvcLive===`open`?`app__btn--connected`:this.devSvcDown?`app__btn--disconnected`:`app__btn--reconnecting`},devSvcLabel(){return this.apiBaseResolved===null?`未配置本地服务`:this.devSvcLive===`open`?`本地服务已连接`:this.devSvcDown?`本地服务已断开`:`本地服务连接中…`},badgeText(){return{idle:`待校验`,pending:`校验中…`,ok:`校验通过`,error:`校验未通过`,nopython:`未配置校验`,fail:`校验服务异常`}[this.validateBadge.state]||`待校验`},badgeTitle(){let e=this.validateBadge;if(e.state===`ok`)return`结构合法 + 渲染不抛错(不保证画得对,视觉正确性见截图)`;if(e.state===`error`){let t=[];return e.errors&&t.push(`契约错误 ${e.errors} 个`),e.renderOk===!1&&t.push(`渲染抛出异常`),`校验未通过:`+(t.join(`;`)||`详见 /__validate 与 /__render-status`)}return e.state===`nopython`?`未找到 python3/python,无法跑契约校验(请安装 Python 或设置 DSL_PYTHON)`:e.state===`fail`?`校验服务异常(dev server 未启动或端点不可用)`:``},previewWidth(){if(this.chromeOff)return this.stageWidth;let{min:e,max:t}=this.previewBounds,n=this._previewWidthPx||xG;return Math.max(e,Math.min(t,n))},viewportWidth(){return this.stageWidth,typeof window<`u`?window.innerWidth:1280},debugSoftWidth(){return Math.max(CG,Math.floor(this.viewportWidth/3))},previewBounds(){let e=this.stageWidth||0,t=Math.floor(e/2),n=e-SG-this.debugSoftWidth;return{min:xG,max:Math.max(xG,Math.min(t,n))}},debugMinWidth(){let e=this.colsWidth||Math.max(0,(this.stageWidth||0)-this.previewWidth);return Math.max(CG,Math.min(this.debugSoftWidth,Math.floor(e)-SG))},apiPanelBounds(){let e=this.colsWidth||Math.max(0,(this.stageWidth||0)-this.previewWidth),t=Math.max(wG,Math.floor(e)-this.debugMinWidth);return{min:Math.min(SG,t),max:t}},canvasW(){return Math.round(this.previewWidth||375)},selectedCardName(){let e=this.cardList.find(e=>e.id===this.selectedId);return e&&e.name||this.selectedId||``},cardEmpty(){let e=this.currentSchema;if(!e||!e.view)return!0;let t=e.view.components;return!Array.isArray(t)||t.length===0},apiPanelWidth(){let{min:e,max:t}=this.apiPanelBounds,n=this._apiPanelWidthPx||360;return Math.max(e,Math.min(t,n))},frameStyle(){return{}}},watch:{activeTab(e){e!==`structure`&&(this.selectedNodeId=``,yO())},credentialsReady(e){!e&&this.activeTab===`history`&&(this.activeTab=`vars`)},aiChatOpen(e){try{sessionStorage.setItem(`cardbuddy:ai-chat-open`,e?`1`:`0`)}catch{}},theme(e){document.documentElement.dataset.theme=e;try{localStorage.setItem(`cardbuddy:theme`,e)}catch{}},accent(e){Ck(e),wk(e)},apiPanelOpen(e){try{localStorage.setItem(`cardbuddy:api-panel-open`,e?`1`:`0`)}catch{}},remoteBusy(e){e&&(this.devServiceOpen=!1)},chatBusy(e,t){if(t&&!e&&this.selectedId){if(this.historyDirty){let e=this.currentSchema&&this.currentSchema.name||this.selectedId;this.showExternalReloadNote(`AI 已更新磁盘上的卡片「${e}」,当前有未保存编辑,未自动重载(点顶栏刷新可载入最新版)`)}else this.loadCard(this.selectedId)}}},beforeUnmount(){this.viewportObserver&&this.viewportObserver.disconnect(),this._stageObserver&&this._stageObserver.disconnect(),this.saveTimer&&clearTimeout(this.saveTimer),this.syncTimer&&clearTimeout(this.syncTimer),this.saveRemoteTimer&&clearTimeout(this.saveRemoteTimer),this.syncPollTimer&&clearTimeout(this.syncPollTimer),this.exportPollTimer&&clearTimeout(this.exportPollTimer),window.removeEventListener(`keydown`,this.onKeydown)},mounted(){this.viewportObserver=new ResizeObserver(e=>{for(let t of e)this.viewportHeight=Math.round(t.contentRect.height)}),this.$refs.phoneViewport&&this.viewportObserver.observe(this.$refs.phoneViewport),this.loadPreviewWidth(),this.loadCanvasBg(),this.loadApiPanelWidth(),this._stageObserver=new ResizeObserver(e=>{for(let t of e)t.target===this.$refs.colsEl?this.colsWidth=Math.round(t.contentRect.width):(this.stageWidth=Math.round(t.contentRect.width),this.stageHeight=Math.round(t.contentRect.height))}),this.$refs.stageEl&&this._stageObserver.observe(this.$refs.stageEl),this.$refs.colsEl&&this._stageObserver.observe(this.$refs.colsEl),window.addEventListener(`keydown`,this.onKeydown),this.fabInitPosition(),window.addEventListener(`resize`,this.onFabResize),this.checkCredentials()},beforeDestroy(){window.removeEventListener(`resize`,this.onFabResize)},async created(){wD(bG);let e=new URLSearchParams(location.search).get(`chrome`);this.chromeOff=e===`off`||e===``;try{let e=localStorage.getItem(`cardbuddy:theme`);(e===`light`||e===`dark`)&&(this.theme=e)}catch{}document.documentElement.dataset.theme=this.theme,this.accent=Sk(),Ck(this.accent);try{localStorage.getItem(`cardbuddy:api-panel-open`)===`0`&&(this.apiPanelOpen=!1)}catch{}await this.fetchCardList();let t=new URLSearchParams(location.search).get(`card`),n=null;try{let e=localStorage.getItem(`cardbuddy:selected-card`);e&&this.cardList.some(t=>t.id===e)&&(n=e)}catch{}let r=t&&this.cardList.some(e=>e.id===t)?t:n||this.cardList[0]&&this.cardList[0].id;r&&(this.selectedId=r,await this.loadCard(this.selectedId)),this.$watch(()=>this.rt.rootScope,()=>{this.syncDataToSchema()},{deep:!0}),this.setupCardsChanged()},methods:{fabBounds(){let e=this.$refs.aiFab,t=e?e.offsetWidth:56,n=e?e.offsetHeight:56,r=document.documentElement.clientWidth,i=document.documentElement.clientHeight;return{minX:0,minY:0,maxX:Math.max(0,r-t),maxY:Math.max(0,i-n)}},clampFab(e,t){let n=this.fabBounds();return[Math.min(Math.max(e,n.minX),n.maxX),Math.min(Math.max(t,n.minY),n.maxY)]},fabInitPosition(){let e=this.$refs.aiFab;if(!e)return;let t=this.loadFabPos(),n=document.documentElement.clientWidth,r=document.documentElement.clientHeight,i,a;if(t)[i,a]=this.clampFab(t.x,t.y);else{let t=e.getBoundingClientRect();[i,a]=this.clampFab(n-t.right,r-t.bottom)}this.fab.x=i,this.fab.y=a},loadFabPos(){try{let e=localStorage.getItem(`cardbuddy:ai-fab-pos`);if(!e)return null;let t=JSON.parse(e);if(typeof t.x==`number`&&typeof t.y==`number`&&isFinite(t.x)&&isFinite(t.y))return t}catch{}return null},saveFabPos(){try{localStorage.setItem(`cardbuddy:ai-fab-pos`,JSON.stringify({x:this.fab.x,y:this.fab.y}))}catch{}},onFabPointerDown(e){if(!this.aiChatOpen){this.fabSuppressClick=!1,this.fab.x??this.fabInitPosition(),this.fabDrag={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originX:this.fab.x,originY:this.fab.y,moved:!1};try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}}},onFabPointerMove(e){let t=this.fabDrag;if(!t||t.pointerId!==e.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(!t.moved){if(Math.hypot(n,r)<4)return;t.moved=!0,this.fab.dragging=!0}let[i,a]=this.clampFab(t.originX-n,t.originY-r);this.fab.x=i,this.fab.y=a},onFabPointerUp(e){let t=this.fabDrag;if(!t||t.pointerId!==e.pointerId)this.fab.dragging=!1;else{try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}t.moved&&(this.fabSuppressClick=!0,this.saveFabPos()),this.fab.dragging=!1,this.fabDrag=null}},onFabClick(){this.fabSuppressClick?this.fabSuppressClick=!1:this.aiChatOpen=!this.aiChatOpen},onFabResize(){if(this.fab.x==null)return;let[e,t]=this.clampFab(this.fab.x,this.fab.y);this.fab.x=e,this.fab.y=t},setupCardsChanged(){if(this._unsubCardsChanged){try{this._unsubCardsChanged()}catch{}this._unsubCardsChanged=null}this.devSvcLive=`connecting`,this._unsubCardsChanged=eu(e=>this.onCardsChanged(e),e=>this.onDevServiceState(e))},onDevServiceState(e){let t=this.devSvcLive===`connecting`;this.devSvcLive=e,e===`open`?this.devSvcDown=!1:e===`closed`&&(this.devSvcDown=!0),e===`connecting`?!t&&!this._svcWatchdog&&(this._svcWatchdog=setTimeout(()=>{this.devSvcLive===`connecting`&&(this.devSvcLive=`closed`,this.devSvcDown=!0),this._svcWatchdog=null},8e3)):this._svcWatchdog&&=(clearTimeout(this._svcWatchdog),null)},saveDevService(){ql(this.devServiceForm),this.apiBaseResolved=Jl(),this.setupCardsChanged(),this.devServiceOpen=!1,Q(`本地开发服务配置已保存`,`ok`),this.fetchCardList()},beginColumnDrag(e,t,n){let r=e&&e.currentTarget;if(!r)return;let i=e.pointerId;try{r.setPointerCapture(i)}catch{}let a=()=>{r.removeEventListener(`pointermove`,t),r.removeEventListener(`pointerup`,a),r.removeEventListener(`pointercancel`,a),window.removeEventListener(`blur`,a);try{r.hasPointerCapture?.(i)&&r.releasePointerCapture(i)}catch{}document.body.style.cursor=``,document.body.style.userSelect=``,n()};document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,r.addEventListener(`pointermove`,t),r.addEventListener(`pointerup`,a),r.addEventListener(`pointercancel`,a),window.addEventListener(`blur`,a)},startDrag(e){if(this.chromeOff)return;let t=this.$refs.stageEl;if(!t)return;let n=t.getBoundingClientRect().left;this.dragging=!0,this.beginColumnDrag(e,e=>{let{min:t,max:r}=this.previewBounds;this._previewWidthPx=Math.max(t,Math.min(r,Math.round(e.clientX-n)))},()=>{this.dragging=!1,this.savePreviewWidth()})},startApiDrag(e){if(this.chromeOff||!this.apiPanelOpen)return;let t=this.$refs.colsEl;if(!t)return;let n=t.getBoundingClientRect().right;this.apiDragging=!0,this.beginColumnDrag(e,e=>{let{min:t,max:r}=this.apiPanelBounds;this._apiPanelWidthPx=Math.max(t,Math.min(r,Math.round(n-e.clientX)))},()=>{this.apiDragging=!1,this.saveApiPanelWidth()})},loadCanvasBg(){try{let e=localStorage.getItem(`cardbuddy:canvas-bg`);e!=null&&this.bgOptions.some(t=>t.key===e)&&(this.canvasBg=e)}catch{}},saveCanvasBg(){try{localStorage.setItem(`cardbuddy:canvas-bg`,this.canvasBg)}catch{}},loadPreviewWidth(){try{let e=localStorage.getItem(`cardbuddy:preview-width`);if(e!=null){let t=parseInt(e,10);!Number.isNaN(t)&&t>=188&&(this._previewWidthPx=t)}}catch{}},savePreviewWidth(){try{localStorage.setItem(`cardbuddy:preview-width`,String(Math.round(this._previewWidthPx)))}catch{}},setPresetWidth(e){if(this.chromeOff)return;let{min:t,max:n}=this.previewBounds;this._previewWidthPx=Math.max(t,Math.min(n,e)),this.savePreviewWidth()},loadApiPanelWidth(){try{let e=localStorage.getItem(`cardbuddy:api-panel-width`);if(e!=null){let t=parseInt(e,10);!Number.isNaN(t)&&t>=320&&(this._apiPanelWidthPx=t)}}catch{}},saveApiPanelWidth(){try{localStorage.setItem(`cardbuddy:api-panel-width`,String(Math.round(this.apiPanelWidth)))}catch{}},chooseBg(e){this.canvasBg=e,this.saveCanvasBg()},onSelect(e){e!==this.selectedId&&(this.remoteBusy?Q(`远端操作进行中(${this.remoteBusyReason}),完成前不能切换卡片`,`err`,3200):this.chatBusy?Q(`AI 正在生成「${this.selectedId}」:先点 ■ 停止,或等本轮结束后再切卡`,`err`,3600):(this.loadingCard=!0,this.selectedId=e,this.loadCard(e,{clearAll:!0})))},selectCard(e){this.selectedId=e;try{localStorage.setItem(`cardbuddy:selected-card`,e)}catch{}},openGallery(){this.cardList.length&&(this.galleryOpen=!0)},openNewCard(){this.cardDialog.mode=`create`,this.cardDialog.cardId=``,this.cardDialog.cardDesc=``,this.cardDialog.visible=!0,this.fetchCardList()},openRenameCard(){this.selectedId&&(this.cardDialog.mode=`rename`,this.cardDialog.cardId=this.selectedId,this.cardDialog.cardDesc=this.currentSchema&&this.currentSchema.desc||``,this.cardDialog.visible=!0,this.fetchCardList())},async onCardRenamed({oldId:e,id:t}){if(this.cardDialog.visible=!1,Q(t===e?`已更新卡片描述`:`已重命名卡片 ${e} → ${t}`,`ok`),t!==e)return this.applyCardRename(e,t);await this.fetchCardList(),await this.loadCard(t)},async applyCardRename(e,t){if(!e||!t||e===t)return;let n=`${e}->${t}`;if(this._renameAppliedKey===n)return;this._renameAppliedKey=n,setTimeout(()=>{this._renameAppliedKey===n&&(this._renameAppliedKey=``)},1e3);let r=this.selectedId===e;this.$refs.chatPanel?.migrateCard(e,t),r&&this.selectCard(t),this.selfSaveId=t,this.selfSaveAt=Date.now(),await this.fetchCardList(),r&&(this.historyDirty&&!this.confirm.show?this.requestConfirm({title:`卡片已重命名`,message:`卡片「${e}」已重命名为「${t}」,而编辑器内还有未保存的改动。\n重新载入会放弃这些未保存改动并显示磁盘版本;保留改动则继续用当前编辑器内容(后续保存会写到新目录 ${t})。`,confirmText:`重新载入`,cancelText:`保留我的改动`,onConfirm:()=>this.loadCard(t)}):await this.loadCard(t))},closeGallery(){this.galleryOpen=!1},onGalleryExport(e){!this.exportProgressOpen&&e&&e.length&&(this.exportDirDialog={visible:!0,ids:e})},async onGalleryCompile(e){if(!this.compilingCards&&e&&e.length){this.compilingCards=!0;try{let t=await Y(`/__compile-cards`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardIds:e})}),n=await t.json().catch(()=>({}));if(!t.ok||!n.ok)throw Error(n.message||n.error||`HTTP `+t.status);let r=(n.cards||[]).filter(e=>e.ok),i=(n.cards||[]).filter(e=>!e.ok),a=r.reduce((e,t)=>e+(t.warnings?t.warnings.length:0),0);console.info(`[compile] 产物目录`,n.outDir);for(let e of r){console.info(`[compile] ${e.id} 模板 ${e.templates} 个 / 节点 ${e.nodes} / 客户端 ${e.clientBytes}B / H5 ${e.h5Bytes}B`);for(let t of e.warnings||[])console.warn(`[compile] ${e.id} ${t}`)}for(let e of i)console.error(`[compile] ${e.id} 失败:${e.error}`);if(i.length)Q(`已编译 ${r.length} 张,${i.length} 张失败(原因见控制台)`,`err`,4200);else{let e=a?`(${a} 条告警见控制台)`:``;Q(`已编译 ${r.length} 张卡片,客户端模板与 H5 脚本已写入 flame-build 目录${e}`,`ok`,3600)}this.$refs.cardGallery?.setChecked(i.map(e=>e.id))}catch(e){Q(`编译失败:`+(e&&e.message?e.message:`无法连接本地开发服务`),`err`,4200)}finally{this.compilingCards=!1}}},async onExportDirConfirm(e){this.exportDirDialog.visible=!1;let t=this.exportDirDialog.ids;try{let n=await Y(`/__export-cards`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardIds:t,targetDir:e})}),r=await n.json().catch(()=>({}));if(!n.ok||!r.ok)throw Error(r.message||r.error||`HTTP `+n.status);this.exportJobId=r.jobId,this.exportProgress={done:0,total:Number(r.total)||0,current:``},this.exportProgressOpen=!0,this.pollExportProgress()}catch(e){this.exportDirDialog.ids=[],Q(`启动导出失败:`+(e&&e.message),`err`)}},pollExportProgress(){this.exportPollTimer&&clearTimeout(this.exportPollTimer);let e=async()=>{if(this.exportJobId&&this.exportProgressOpen){try{let e=await Y(`/__export/progress?jobId=`+encodeURIComponent(this.exportJobId)),t=await e.json().catch(()=>({}));if(!e.ok||!t.ok)throw Error(t.message||`进度查询失败`);if(this.exportProgress={done:Number(t.done)||0,total:Number(t.total)||0,current:t.currentTitle||t.currentId||``},t.finished){this.onExportJobFinished(t.result||{});return}}catch(e){console.error(`[导出进度查询失败]`,e)}this.exportPollTimer=setTimeout(e,600)}};e()},stopExportPolling(){this.exportPollTimer&&=(clearTimeout(this.exportPollTimer),null)},onExportJobFinished(e){this.stopExportPolling(),this.exportProgressOpen=!1,this.exportJobId=``,this.exportDirDialog.ids=[];let t=e.failed||[],n=e.warnings||[];if(t.length&&console.warn(`[导出失败明细]`,t),n.length&&console.warn(`[导出告警明细]`,n),!e.cancelled&&e.success&&this.$refs.cardGallery?.setChecked(t.map(e=>e&&e.id).filter(Boolean)),e.cancelled){let t=e.exported||0;Q(t?`导出已取消(已完成 ${t} 张,未生成 zip)`:`导出已取消`,`ok`)}else if(e.success){let r=e.exported||0,i=t.length,a=e.folderName?`${e.folderName}.zip`:`zip`,o=e.revealed?`,已打开所在目录`:``,s=i?`(${t[0].id||`?`}:${String(t[0].error||``).slice(0,60)})`:``,c=n.length?`,${n.length} 条告警见控制台`:``;Q(i?`导出完成:成功 ${r} 张,失败 ${i} 张${s} → ${a}${o}${c}`:`导出成功:${a}(${r} 张卡片)${o}${c}`,i?`warn`:`ok`)}else Q(`导出失败:`+(e.error||`未知错误`),`err`)},cancelExportJob(){this.exportJobId&&Y(`/__export/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({jobId:this.exportJobId})}).catch(()=>{})},async openCardFolder(){if(this.selectedId)try{let e=await Y(`/__open-folder`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:this.selectedId})}),t=(e.headers.get(`content-type`)||``).includes(`application/json`)?await e.json().catch(()=>({})):{};!e.ok||!t.ok?Q(t.error||`打开文件夹失败`,`err`):Q(`已打开卡片文件夹`,`ok`)}catch{Q(`无法连接本地开发服务,请确认已启动`,`err`)}},async refreshCard(){if(this.selectedId&&!this.refreshing){this.refreshing=!0;try{await this.loadCard(this.selectedId)}finally{this.refreshing=!1}}},toggleApiPanel(){this.apiPanelOpen=!this.apiPanelOpen},async refreshValidateBadge(){let e=this.selectedId;if(e&&this.preview&&(this.validateTimer&&clearTimeout(this.validateTimer),this.validateBadge={...this.validateBadge,state:`pending`},await new Promise(e=>{this.validateTimer=setTimeout(e,120)}),this.selectedId===e))try{let[t,n]=await Promise.all([Y(`/__validate/${encodeURIComponent(e)}`),Y(`/__render-status/${encodeURIComponent(e)}`)]);if(!t.ok){this.validateBadge={...this.validateBadge,state:t.status===503?`nopython`:`fail`};return}let r=await t.json().catch(()=>null),i=n.ok?await n.json().catch(()=>null):null;if(!r){this.validateBadge={...this.validateBadge,state:`fail`};return}let a=!!r.ok,o=!i||!!i.renderOk,s=a&&o?`ok`:`error`,c=this.validateBadge.state!==s;this.validateBadge={state:s,errors:(r.errors||[]).length,warnings:(r.warnings||[]).length,renderOk:o,ts:Date.now()},c&&(s===`ok`||s===`error`)&&this.celebrateValidate(s)}catch{this.validateBadge={...this.validateBadge,state:`fail`}}},celebrateValidate(e=`ok`){let t=this.$refs.validateBadgeEl;if(!t||window.matchMedia&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;t.classList.remove(`is-celebrating`),t.offsetWidth,t.classList.add(`is-celebrating`),setTimeout(()=>t.classList.remove(`is-celebrating`),600);let n=t.getBoundingClientRect(),r={ok:`--ok`,error:`--danger`,pending:`--warn`,fail:`--text-faint`,nopython:`--text-faint`}[e]||`--ok`,i={ok:`#52c41a`,error:`#F5222D`,pending:`#FAAD14`,fail:`#8c8c8c`,nopython:`#8c8c8c`}[e]||`#52c41a`,a=getComputedStyle(t).getPropertyValue(r).trim()||i,o=document.createElement(`div`);o.className=`app__confetti`,o.style.left=n.left+n.width/2+`px`,o.style.top=n.top+n.height/2+`px`;let s=[`polygon(50% 0%, 0% 100%, 100% 100%)`,`polygon(62% 0%, 100% 40%, 45% 100%, 0% 52%)`,`polygon(0% 0%, 100% 18%, 82% 100%, 12% 70%)`,`polygon(22% 0%, 100% 8%, 88% 100%, 0% 76%)`,`polygon(0% 32%, 100% 0%, 76% 100%, 18% 86%)`,`polygon(8% 0%, 100% 22%, 70% 100%, 0% 64%)`,`polygon(0% 12%, 100% 0%, 100% 78%, 30% 100%, 12% 55%)`],c=n.width/2,l=n.height/2;for(let e=0;e<22;e++){let e=document.createElement(`span`);e.className=`app__confetti-bit`;let t=Math.random()*4|0,n,r;t===0?(n=(Math.random()*2-1)*c,r=-l):t===1?(n=c,r=(Math.random()*2-1)*l):t===2?(n=(Math.random()*2-1)*c,r=l):(n=-c,r=(Math.random()*2-1)*l);let i=Math.hypot(n,r)||1,u=Math.atan2(r/i,n/i)+(Math.random()-.5)*.5,d=16+Math.random()*26;e.style.setProperty(`--sx`,n.toFixed(1)+`px`),e.style.setProperty(`--sy`,r.toFixed(1)+`px`),e.style.setProperty(`--tx`,(Math.cos(u)*d).toFixed(1)+`px`),e.style.setProperty(`--ty`,(Math.sin(u)*d).toFixed(1)+`px`),e.style.setProperty(`--rot`,(Math.random()*720-360).toFixed(0)+`deg`),e.style.setProperty(`--clip`,s[Math.random()*s.length|0]),e.style.setProperty(`--c`,a),e.style.setProperty(`--o`,(.68+Math.random()*.27).toFixed(2));let f=Math.random(),p,m;f<.35?(p=1.5+Math.random()*2,m=10+Math.random()*10):f<.75?(p=4+Math.random()*5,m=p*(.6+Math.random()*.8)):(p=2+Math.random()*2.5,m=p),e.style.width=p.toFixed(0)+`px`,e.style.height=m.toFixed(0)+`px`,o.appendChild(e)}document.body.appendChild(o),setTimeout(()=>o.remove(),800)},async loadCard(e,t={}){if(e){this.loadingCard=!0;try{let n=await Y(`/__card/${encodeURIComponent(e)}`);if(!n.ok){this.rt.pushError(`loadCard`,`HTTP `+n.status);return}let r=await n.json();if(!r.schema){this.rt.pushError(`loadCard`,`schema 读取失败`);return}this.selectCard(e),e!==this.loadedCardId&&(this.activeTab=`vars`),this.loadedCardId=e,t.clearAll?this.rt.clearErrors():this.rt.clearBindingErrors(),this.rt.clearApiCalls(),t.keepScope||this.rt.setRootScope(mv(r.schema,fG)),this.currentCard={schema:r.schema},this.currentSchema=r.schema,this.cardImportMeta=null,this.fetchImportMeta(e),this.localSchema=this.cloneSchema(r.schema),this.localData=this.cloneData(mv(r.schema,fG)),this.preview=qu(r.schema),typeof window<`u`&&(window.__cardModel=$u(r.schema)),this.cardReady=!1,this.$nextTick(()=>{this.cardReady=!0}),this.syncDataToSchema(),this.selectedNodeId=``,this.baseline={schema:this.cloneSchema(this.currentSchema)},this.reloadToken+=1,RS(),TD(),this.refreshValidateBadge(),await this.loadHistory(e)}finally{this.loadingCard=!1}}},cloneSchema(e){return e?JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)):null},cloneData(e){return e==null?e:JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t))},applySchemaSnapshot(e){if(!this.selectedId||!e)return;let t=e.schema||e,n=e.data==null?mv(t,fG):e.data;this.currentSchema=this.cloneSchema(t),this.rt.setRootScope(this.cloneData(n)),this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``,this.reloadToken+=1,this.refreshValidateBadge()},commitHistory(){if(!this.currentSchema||!this.baseline||!dG(this.currentSchema,this.baseline.schema,this.rt.rootScope))return;let e={schema:this.baseline.schema};this.past.push(e),this.past.length>30&&this.past.shift(),this.future=[],this.baseline={schema:this.cloneSchema(this.currentSchema)},this.persistSnapshot(e)},scheduleCommit(){this._commitTimer&&clearTimeout(this._commitTimer),this._commitTimer=setTimeout(()=>{this._commitTimer=null,this.commitHistory()},500)},persistSnapshot(e){let t=this.selectedId;if(!t)return;let n=e.schema||e;Y(`/__history/${encodeURIComponent(t)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({schema:n},(e,t)=>e===`_schemaNode`?void 0:t,2)}).catch(e=>console.warn(`[历史快照落盘失败]`,e))},async loadHistory(e){this.past=[],this.future=[];try{let t=await Y(`/__history/${encodeURIComponent(e)}`);if(!t.ok)return;let n=await t.json().catch(()=>null),r=n&&n.snapshots||[];this.past=r.slice(-30).map(e=>({schema:e.schema,data:e.data==null?mv(e.schema,fG):e.data}))}catch(e){console.warn(`[加载编辑历史失败]`,e)}},undo(){if(!this.canUndo||this.remoteBusy)return;let e=this.past.pop();this.future.push(this.baseline),this.future.length>30&&this.future.shift(),this.baseline=e,this.applySchemaSnapshot(e)},redo(){if(!this.canRedo||this.remoteBusy)return;let e=this.future.pop();this.past.push(this.baseline),this.past.length>30&&this.past.shift(),this.baseline=e,this.applySchemaSnapshot(e)},async applyHistoryToLocal(){this.loadingCard||this.remoteBusy||this.historyDirty&&this.preview&&this.selectedId&&await this.saveCard()&&(this.credentialsReady&&this.hasCardSource?(Q(`已保存到本地,正在同步至远端…`,`ok`),Promise.resolve(this.saveToRemote({fromAutoSave:!0})).then(e=>{e&&(e.ok?e.verified===!1?Q(`已保存到本地,远端已提交但读回校验未通过`,`warn`,4200):Q(`已保存到本地并同步至远端`,`ok`):Q(`已保存到本地,但同步至远端失败`+(e.message?`:`+e.message:``),`warn`,4200))}).catch(()=>{})):Q(`已将该版本保存到本地`,`ok`))},async generateCardCover(){if(!this.preview||!this.selectedId||this.coverBusy||this.remoteBusy)return;if(this.historyDirty&&!await this.saveCard()){Q(`本地保存失败,已取消生成预览图`,`err`);return}let e=null;try{let t=await Y(`/__card-image/`+encodeURIComponent(this.selectedId)+`?probe=1`),n=await t.json().catch(()=>({}));t.ok&&n.exists&&(e=n.file)}catch{}e?this.requestConfirm({title:`重新生成截图`,message:`该卡片已有截图(${e}),继续将覆盖它。确定重新生成吗?`,confirmText:`重新生成`,severity:`warn`,onConfirm:()=>this.doGenerateCover()}):this.doGenerateCover()},async doGenerateCover(){this.coverBusy=!0;try{let e=await Y(`/__card-image/`+encodeURIComponent(this.selectedId),{method:`POST`}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.message||`HTTP `+e.status);Q(`截图已生成(${t.width}×${t.height})→ ${t.file}`,`ok`,3e3)}catch(e){Q(`生成截图失败:`+String(e&&e.message||e),`err`,3600)}finally{this.coverBusy=!1}},onSchemaChanged(){this.selectedId&&this.currentSchema&&(this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``)},onSchemaCommit(){this.selectedId&&this.currentSchema&&(this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``,this.commitHistory())},syncDataToSchema(){let e=this.currentSchema;if(!e||!e.dictionary||!Array.isArray(e.dictionary.inputParams))return;let t=this.rt&&this.rt.rootScope;if(!t||typeof t!=`object`)return;let n=e.dictionary.inputParams,r=hv(e);for(let e of Object.keys(t)){let i=n.find(t=>t&&(t.key===e||t.name===e));if(!i)continue;let a=JSON.parse(JSON.stringify(t[e],(e,t)=>e===`_schemaNode`?void 0:t));r&&Object.prototype.hasOwnProperty.call(r,e)?r[e]=a:i.defaultValue=a}},onSelectNode(e){this.selectedNodeId=e||``},findPreviewNodeById(e,t){if(!e||t==null)return null;let n=String(t),r=e=>{if(!e)return null;if(String(e.id)===n)return e;let t=[];if(e.components&&t.push(...e.components),e.slots)for(let n of e.slots)n.components&&t.push(...n.components);for(let e of t){let t=r(e);if(t)return t}return null};return r(e)},copySelectedNode(){let e=this.selectedNodeId;if(!e||e===`_root`||!this.currentSchema||!this.preview)return;let t=this.findPreviewNodeById(this.preview.view,e);if(!t)return;let n=this.findSchemaNodeByComponentId(this.currentSchema.view,t.componentId);n&&(rd(n.node,this.selectedId),Q(`已复制节点(含子节点)`,`ok`))},pasteNode(){let e=td();if(!e||!this.currentSchema)return;let t=id(e),n=[...new Set(t.filter(e=>!ju[e]))];if(n.length){Q(`粘贴失败:含未知组件类型 `+n.join(`、`),`err`);return}let r=JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t));ad(r);let i=this.selectedNodeId&&this.selectedNodeId!==`_root`?this.findPreviewNodeById(this.preview.view,this.selectedNodeId):null,a=`root`;i&&(a=Wu(i.className)?`into`:`after`),this.insertClone(r,i,a);let o=nd();o&&o!==this.selectedId?Q(`已从卡片「${o}」跨卡片粘贴到「${this.selectedId}」`,`ok`):Q(`已粘贴节点(含子节点)`,`ok`)},duplicateNode(){let e=this.selectedNodeId;if(!e||e===`_root`||!this.currentSchema||!this.preview)return;let t=this.findPreviewNodeById(this.preview.view,e);if(!t)return;let n=this.findSchemaNodeByComponentId(this.currentSchema.view,t.componentId);if(!n)return;let r=JSON.parse(JSON.stringify(n.node,(e,t)=>e===`_schemaNode`?void 0:t));ad(r),n.parentArr.splice(n.index+1,0,r),this.afterStructuralEdit(r.componentId)},insertClone(e,t,n){let r=this.currentSchema;if(n===`root`)r.view.components||(r.view.components=[]),r.view.components.push(e);else if(n===`into`){let n=t&&t._schemaNode;if(!n){r.view.components||(r.view.components=[]),r.view.components.push(e),this.afterStructuralEdit(e.componentId);return}let i=Gu(t.className),a=(n.slots||[]).find(e=>e.slotKey===i);a||(n.slots||=[],a={slotKey:i,slotScope:!1,slotSwitch:`1`,components:[]},n.slots.push(a)),a.components||(a.components=[]),a.components.push(e)}else{let n=this.findSchemaNodeByComponentId(r.view,t.componentId);n?n.parentArr.splice(n.index+1,0,e):(r.view.components||(r.view.components=[]),r.view.components.push(e))}this.afterStructuralEdit(e.componentId)},afterStructuralEdit(e){let t=this.currentSchema;this.reloadToken+=1,this.preview=qu(t),typeof window<`u`&&(window.__cardModel=$u(t)),this.syncDataToSchema(),this.selectedNodeId=e&&this.findViewIdByComponentId(this.preview.view,e)||``,this.scheduleCommit()},deleteSelectedNode(){let e=this.selectedNodeId;if(!e||e===`_root`||!this.currentSchema||!this.preview)return;let t=this.findPreviewNodeById(this.preview.view,e);if(!t)return;let n=this.findSchemaNodeByComponentId(this.currentSchema.view,t.componentId);n&&(n.parentArr.splice(n.index,1),this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``,yO(),this.scheduleCommit())},hasTextSelection(){if(typeof window>`u`||!window.getSelection)return!1;let e=window.getSelection();return!!e&&!e.isCollapsed&&e.toString().trim()!==``},hasNodeSelection(){return!!this.selectedNodeId&&this.selectedNodeId!==`_root`},isEditableTarget(e){let t=e.target;if(!t)return!1;let n=t.tagName;return!!(n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable)},onKeydown(e){if(this.chromeOff||!this.preview)return;let t=this.isEditableTarget(e),n=e.ctrlKey||e.metaKey,r=e.key;if(n&&(r===`c`||r===`C`)){if(t||this.hasTextSelection()||!this.hasNodeSelection())return;this.copySelectedNode(),e.preventDefault()}else if(n&&(r===`v`||r===`V`)){if(t||this.hasTextSelection()||!this.hasNodeSelection()||!td())return;this.pasteNode(),e.preventDefault()}else if(n&&(r===`d`||r===`D`)){if(t||this.hasTextSelection()||!this.hasNodeSelection())return;this.duplicateNode(),e.preventDefault()}else if(n&&(r===`z`||r===`Z`)){if(t)return;e.preventDefault(),e.shiftKey?this.redo():this.undo()}else if(n&&(r===`y`||r===`Y`)){if(t)return;e.preventDefault(),this.redo()}else if(r===`Delete`||r===`Backspace`){if(t||!this.selectedNodeId||this.selectedNodeId===`_root`)return;e.preventDefault(),this.deleteSelectedNode()}else r===`Escape`&&this.selectedNodeId&&(this.selectedNodeId=``,e.preventDefault())},onHoverNode(e){if(!e){yO();return}if(e.leave){yO(e.id);return}let t=typeof document<`u`?document.querySelector(`.phone__screen`):null;if(!t){yO(e.id);return}let n=e=>window.CSS&&CSS.escape?CSS.escape(String(e)):String(e).replace(/["\\\]]/g,`\\$&`),r=null;e.componentId!=null&&(r=t.querySelector(`[data-cid="`+n(e.componentId)+`"]`)),!r&&e.id!=null&&(r=t.querySelector(`[data-cid="`+n(e.id)+`"]`)),r?vO(r,e.id):yO(e.id)},onCanvasClick(e){if(!e.ctrlKey&&!e.metaKey||this.chromeOff)return;let t=e.target&&e.target.closest?e.target.closest(`[data-cid]`):null;if(!t)return;let n=t.getAttribute(`data-cid`);if(!n)return;let r=this.findPreviewNodeByCid(n);r&&(this.activeTab=`structure`,this.selectedNodeId=r.id)},onAiLocateNode(e){let t=e?this.findPreviewNodeByCid(e):null;t?(this.activeTab=`structure`,this.selectedNodeId=t.id):Q(`没找到组件 ${e||``}:卡片可能已被改动,重新校验一次即可`,`err`)},findPreviewNodeByCid(e){let t=this.preview&&this.preview.view;if(!t)return null;let n=String(e),r=e=>{if(!e)return null;if(String(e.componentId==null?e.id:e.componentId)===n)return e;let t=[];if(e.components&&t.push(...e.components),e.slots)for(let n of e.slots)n.components&&t.push(...n.components);for(let e of t){let t=r(e);if(t)return t}return null};return r(t)},onAddNode(e){this.currentSchema&&(this.addNodeTarget=e||null,this.addNodePanelOpen=!0)},cancelAddNode(){this.addNodePanelOpen=!1,this.addNodeTarget=null},findSchemaLocation(e,t){let n=e=>{for(let r=0;r<e.length;r++){let i=e[r];if(i===t)return{containerArr:e,index:r};let a=i.slots||[];for(let e of a){let t=n(e.components||[]);if(t)return t}}return null};return n(e&&e.components||[])},findViewIdByComponentId(e,t){if(!e)return null;if(e.componentId===t)return e.id;let n=[];if(e.components&&n.push(...e.components),e.slots)for(let t of e.slots)t.components&&n.push(...t.components);for(let e of n){let n=this.findViewIdByComponentId(e,t);if(n)return n}return null},findSchemaNodeByComponentId(e,t){let n=(e,r)=>{for(let i=0;i<e.length;i++){let a=e[i];if(a.componentId===t)return{node:a,parentArr:e,index:i,owner:r};let o=a.slots||[];for(let e of o){let t=n(e.components||[],a);if(t)return t}}return null};return n(e&&e.components||[],`root`)},isDescendantCompId(e,t){if(!t||!t.componentId)return!1;if(t.componentId===e)return!0;let n=[];if(t.components&&n.push(...t.components),t.slots)for(let e of t.slots)e.components&&n.push(...e.components);for(let t of n)if(this.isDescendantCompId(e,t))return!0;return!1},moveNode(e,t,n){let r=this.currentSchema;if(!r||!r.view||e===t)return!1;let i=this.findSchemaNodeByComponentId(r.view,e);if(!i)return!1;let a=i.node;if(this.isDescendantCompId(t,a))return!1;let o,s;if(t===`__root__`)r.view.components||(r.view.components=[]),o=r.view.components,s=o.length;else{let e=this.findSchemaNodeByComponentId(r.view,t);if(!e)return!1;let i=e.node;if(n===`inside`){if(!Wu(i.className))return!1;let e=Gu(i.className),t=(i.slots||[]).find(t=>t.slotKey===e);t||(i.slots||=[],t={slotKey:e,slotScope:!1,slotSwitch:`1`,components:[]},i.slots.push(t)),t.components||(t.components=[]),o=t.components,s=o.length}else o=e.parentArr,s=n===`before`?e.index:e.index+1}let c=o===i.parentArr&&i.index<s;return i.parentArr.splice(i.index,1),c&&--s,o.splice(s,0,a),a},onMoveNode({sourceCompId:e,targetCompId:t,position:n}){if(!this.currentSchema||!this.moveNode(e,t,n))return;this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema();let r=this.findViewIdByComponentId(this.preview.view,e);this.selectedNodeId=r||``,r&&(this.moveCollapseToken+=1)},onPickComponent(e){let t=this.addNodeTarget||{},n=t.node||null,r=t.mode||`auto`,i=this.currentSchema;if(!i){this.cancelAddNode();return}let a;try{a=Ku(e)}catch(e){console.error(`[创建组件节点失败]`,e),this.rt.pushError(`addNode`,String(e&&e.message)),this.cancelAddNode();return}let o=!n||n.className===`Root`;if((r===`before`||r===`after`)&&!o){let e=n._schemaNode,t=e?this.findSchemaLocation(i.view,e):null;if(!t)i.view.components||(i.view.components=[]),i.view.components.push(a);else{let e=r===`before`?t.index:t.index+1;t.containerArr.splice(e,0,a)}}else if(o)i.view.components||(i.view.components=[]),i.view.components.push(a);else{let e=n._schemaNode;if(!e){this.cancelAddNode();return}if(Wu(n.className)){let t=Gu(n.className),r=(e.slots||[]).find(e=>e.slotKey===t);r||(e.slots||=[],r={slotKey:t,slotScope:!1,slotSwitch:`1`,components:[]},e.slots.push(r)),r.components||(r.components=[]),r.components.push(a)}else{let t=this.findSchemaLocation(i.view,e);t?t.containerArr.splice(t.index+1,0,a):(i.view.components||(i.view.components=[]),i.view.components.push(a))}}this.cancelAddNode(),this.reloadToken+=1,this.preview=qu(i),typeof window<`u`&&(window.__cardModel=$u(i)),this.syncDataToSchema();let s=this.findViewIdByComponentId(this.preview.view,a.componentId);this.selectedNodeId=s||``,this.scheduleCommit()},async runSync(e){if(this.syncingRemote||e&&!this.selectedId)return;this.syncingRemote=!0,this.syncedRemote=!1,this.syncTarget=e?`selected`:`full`;let t=null,n=()=>{t&&=(clearTimeout(t),null)};try{let n=await Y(`/__sync`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e?{cardCode:e}:{})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+n.status)}let r=await n.json().catch(()=>({}));if(!r.ok||!r.jobId)throw Error(r.message||r.error||`同步任务启动失败`);let i=await new Promise((e,n)=>{let i=0,a=async()=>{try{let t=await Y(`/__sync/progress?jobId=`+encodeURIComponent(r.jobId)),n=await t.json().catch(()=>({}));if(!t.ok||!n.ok)throw Error(n.message||`进度查询失败`);if(n.finished){e(n.result||{});return}}catch(e){console.error(`[同步进度查询失败]`,e)}++i>=200?n(Error(`同步超时(进度查询无响应)`)):t=setTimeout(a,600)};a()});if(i.needCredentials){this.openLoginModal(`sync`);return}if(i.cancelled){Q(`同步已取消`,`ok`);return}if(!i.success){let e=(i.failed||[]).map(e=>`${e.id}: ${e.error}`).join(`; `);throw Error(e||i.error||`同步失败`)}this.syncedRemote=!0,this.credentialsReady=!0,this.syncTimer&&clearTimeout(this.syncTimer),this.syncTimer=setTimeout(()=>{this.syncedRemote=!1,this.syncTarget=null},1800),await this.onRefresh(),Q(this.syncTarget===`selected`?`已拉取最新卡到本地`:`拉取全部卡完成`,`ok`),this.persistRemoteVersion(this.selectedId,null)}catch(e){console.error(`[同步远程数据失败]`,e),Q(`同步失败:`+(e&&e.message),`err`)}finally{n(),this.syncingRemote=!1}},syncSelected(){return this.runSync(this.selectedId)},async openRemoteAllCards(){if(this.syncProgressOpen||this.syncingRemote)return;this.remoteAllOpen=!0;let e=this.readRemoteCardsCache();if(e){if(this.remoteCards=e.cards,this.remoteCardsError=``,this.remoteCardsLoading=!1,Date.now()-e.at<gG)return;this.revalidateRemoteCards()}else await this.fetchRemoteCards()},async fetchRemoteCards(){this.remoteCardsLoading=!0,this.remoteCardsError=``;try{let e=await Y(`/__remote-cards`),t=await e.json().catch(()=>({}));if(t.needCredentials){this.remoteAllOpen=!1,this.openLoginModal(`remote-all`);return}if(!e.ok||!t.ok)throw Error(t.message||t.error||`HTTP `+e.status);let n=Array.isArray(t.cards)?t.cards:[];this.remoteCards=n,this.writeRemoteCardsCache(n)}catch(e){this.remoteCardsError=e&&e.message||`远端卡片列表加载失败`}finally{this.remoteCardsLoading=!1}},async revalidateRemoteCards(){if(!this.remoteCardsRefreshing){this.remoteCardsRefreshing=!0;try{let e=await Y(`/__remote-cards`),t=await e.json().catch(()=>({}));if(!e.ok||!t.ok||t.needCredentials)return;let n=Array.isArray(t.cards)?t.cards:[];this.remoteCards=n,this.remoteCardsError=``,this.writeRemoteCardsCache(n)}catch{}finally{this.remoteCardsRefreshing=!1}}},readRemoteCardsCache(){if(this._remoteCardsMem)return this._remoteCardsMem;let e=_G();return e&&(this._remoteCardsMem=e),e},writeRemoteCardsCache(e){let t={v:1,at:Date.now(),cards:e};this._remoteCardsMem=t,vG(e)},closeRemoteAllCards(){this.remoteAllOpen=!1,this.remoteCardFormOpen=!1},openRemoteCardCreate(){this.remoteCardFormMode=`create`,this.remoteCardFormCard=null,this.remoteCardFormOpen=!0},openRemoteCardEdit(e){e&&(this.remoteCardFormMode=`edit`,this.remoteCardFormCard=e,this.remoteCardFormOpen=!0)},requestDeleteRemoteCard(e){if(!e||this.remoteCardDeletingId)return;let t=e.title||e.id;this.requestConfirm({title:`删除远端卡片`,message:`即将从远端删除卡片「${t}」(${e.id})。删除后该卡片及其发布记录将从远端移除,且无法恢复——此操作不可撤销。本地 src/cards 下的同名目录不受影响。`,confirmText:`删除`,severity:`danger`,onConfirm:()=>this.deleteRemoteCardItem(e)})},async deleteRemoteCardItem(e){if(!e||!e.cardId)Q(`删除失败:该卡片缺少远端主键 cardId,请刷新列表后重试`,`err`,3600);else{this.remoteCardDeletingId=e.id;try{let t=await Y(`/__remote-card/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardId:e.cardId})}),n=await t.json().catch(()=>({}));if(n.needCredentials){this.openLoginModal(`remote-all`);return}if(!t.ok||!n.ok)throw Error(n.message||n.error||`HTTP `+t.status);Q(`已删除远端卡片 ${e.id}`,`ok`),this.revalidateRemoteCards()}catch(e){Q(`删除失败:`+(e&&e.message||e),`err`,3600)}finally{this.remoteCardDeletingId=``}}},onRemoteCardSubmitted({mode:e,code:t}){this.remoteCardFormOpen=!1,Q(e===`edit`?`已更新远端卡片 ${t} 的基本信息`:`已在远端新建卡片 ${t}`,`ok`),this.revalidateRemoteCards()},requestDownloadSelected(e){!this.syncProgressOpen&&e&&e.length&&this.requestConfirm({title:`下载选中卡片`,message:`即将从远端拉取 ${e.length} 张卡片并覆盖本地同名卡(已有内容将被替换,不可撤销)。是否继续?`,confirmText:`开始下载`,severity:`warn`,onConfirm:()=>this.startSyncJob(e)})},requestDownloadAll(){this.syncProgressOpen||this.requestConfirm({title:`下载全部卡片`,message:`即将从远端拉取完整卡片列表,并逐张覆盖本地同名卡片。本地独有卡片会保留,但被覆盖卡片的未保存改动将丢失,且无法撤销。是否继续?`,confirmText:`开始下载`,severity:`warn`,onConfirm:()=>this.startSyncJob(null)})},async startSyncJob(e){this.syncPendingCodes=e;try{let t=await Y(`/__sync`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e?{cardCodes:e}:{})}),n=await t.json().catch(()=>({}));if(n.needCredentials){this.openLoginModal(`remote-all`);return}if(!t.ok||!n.ok)throw Error(n.message||n.error||`HTTP `+t.status);this.syncJobId=n.jobId,this.syncProgress={done:0,total:Number(n.total)||0,current:``},this.syncProgressOpen=!0,this.pollSyncProgress()}catch(e){this.syncPendingCodes=void 0,Q(`启动下载失败:`+(e&&e.message),`err`)}},pollSyncProgress(){this.syncPollTimer&&clearTimeout(this.syncPollTimer);let e=async()=>{if(this.syncJobId&&this.syncProgressOpen){try{let e=await Y(`/__sync/progress?jobId=`+encodeURIComponent(this.syncJobId)),t=await e.json().catch(()=>({}));if(!e.ok||!t.ok)throw Error(t.message||`进度查询失败`);if(this.syncProgress={done:Number(t.done)||0,total:Number(t.total)||0,current:t.currentTitle||t.currentId||``},t.finished){this.onSyncJobFinished(t.result||{});return}}catch(e){console.error(`[同步进度查询失败]`,e)}this.syncPollTimer=setTimeout(e,600)}};e()},stopSyncPolling(){this.syncPollTimer&&=(clearTimeout(this.syncPollTimer),null)},async onSyncJobFinished(e){if(this.stopSyncPolling(),this.syncProgressOpen=!1,this.syncJobId=``,e.needCredentials){this.openLoginModal(`remote-all`);return}let t=this.syncPendingCodes;if(this.syncPendingCodes=void 0,e.cancelled){let t=(e.synced||[]).length;Q(t?`下载已取消(已完成 ${t} 张)`:`下载已取消`,`ok`)}else if(e.success){let t=(e.synced||[]).length,n=(e.failed||[]).length;Q(n?`下载完成:成功 ${t} 张,失败 ${n} 张`:`下载完成:共 ${t} 张`,n?`warn`:`ok`)}else Q(`下载失败:`+(e.error||`未知错误`),`err`);if((e.success||e.cancelled)&&(this.credentialsReady=!0),await this.fetchCardList(),this.selectedId)try{await this.onRefresh()}catch{}e.success&&t&&t.length&&(this.remoteAllOpen=!1)},cancelSyncJob(){this.syncJobId&&Y(`/__sync/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({jobId:this.syncJobId})}).catch(()=>{})},async checkCredentials(){try{let e=await Y(`/__login-credentials`),t=await e.json().catch(()=>({}));this.credentialsReady=!e.ok||!!t.hasCredentials}catch{this.credentialsReady=!0}},onRemoteTrigger(e){this.remoteToggleFn=e,!this.remoteBusy&&(this.credentialsReady?e():this.openLoginModal(`dropdown`))},openLoginModal(e){this.loginModal=!0,this.loginName=``,this.loginPassword=``,this.loginError=``,this.loginPendingAction=e||``},closeLoginModal(){this.loginSubmitting||(this.loginModal=!1,this.loginPassword=``,this.loginError=``,this.loginPendingAction=``,this.remoteToggleFn=null)},async submitLogin(){if(this.loginSubmitting)return;let e=this.loginName.trim(),t=this.loginPassword;if(!e||!t)this.loginError=`账号与密码均不能为空`;else{this.loginSubmitting=!0,this.loginError=``;try{let n=await Y(`/__login-credentials`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({loginName:e,loginPassword:t})}),r=await n.json().catch(()=>({}));if(!n.ok||!r.ok)throw Error(r.message||r.error||`HTTP `+n.status);this.credentialsReady=!0,this.loginModal=!1,this.loginPassword=``,Q(`登录验证成功,凭据已保存`,`ok`);let i=this.loginPendingAction;if(this.loginPendingAction=``,i===`sync`)await this.runSync(this.syncTarget===`selected`?this.selectedId:void 0);else if(i===`publish`)await this.doPublish();else if(i===`slices`)await this.uploadCardSlices();else if(i===`dropdown`){let e=this.remoteToggleFn;this.remoteToggleFn=null,e&&this.$nextTick(()=>e())}else if(i===`remote-all`){this.remoteAllOpen=!0;let e=this.syncPendingCodes;e===void 0?this.openRemoteAllCards():this.startSyncJob(e)}}catch(e){this.loginError=e&&e.message||`登录验证失败`,this.loginPassword=``}finally{this.loginSubmitting=!1}}},chooseSync(e){this.preview&&this.selectedId&&!this.syncingRemote&&this.requestConfirm({title:`拉取最新卡`,message:`即将从远端拉取当前卡片「${this.selectedId}」的最新版本并覆盖本地。本地未保存的改动将丢失,且无法撤销。是否继续?`,confirmText:`继续同步`,onConfirm:()=>this.syncSelected()})},chooseRsave(e){if(e===`save`){if(!this.preview||!this.selectedId||this.savingRemote||!this.hasCardSource)return;this.requestConfirm({title:`推送当前卡`,message:`即将把本地卡片「${this.selectedId}」的当前版本推送并覆盖到远端。线上版本会被立即更新,且该操作不可撤销。推送成功后会为当前卡片截图并上传为远端列表预览图。是否继续?`,confirmText:`继续推送`,severity:`warn`,onConfirm:()=>this.saveToRemote()})}else if(e===`publish`){if(!this.preview||!this.selectedId||this.publishing||!this.hasCardSource)return;let e=this.historyDirty;this.requestConfirm({title:`卡片发布`,message:e?`当前卡片存在未保存到远端的改动,发布将使用远端「已保存」的版本(不含这些本地改动)。仍将以「最大版本号 +1」作为新版本号上线。确认继续?`:`即将取远端「${this.selectedId}」当前最大版本号并 +1,发布上线为新版本。发布的是远端已保存的卡片内容(建议先「推送当前卡」)。该操作不可撤销。确认继续?`,confirmText:`继续发布`,severity:e?`danger`:`warn`,onConfirm:()=>this.doPublish()})}else if(e===`slices`){if(!this.preview||!this.selectedId||this.uploadingSlices)return;this.requestConfirm({title:`当前卡切图上传`,message:`即将把当前卡片「${this.selectedId}」引用的本地切图(src/slices/)上传到远端图片库,并把卡片里的 /slices/ 引用替换为线上地址(@filestore/…)。本地切图文件保留不动;内容未变的切图会直接复用已有线上地址,不重复上传。`+(this.historyDirty?`
|
|
361
|
+
长任务里「还活着吗」全靠这一行——旧版只有一句「生成中…」,网关静默与真在跑无从区分 `),i.busy?(V(),H(`div`,{key:0,class:j([`aichat__live`,{"is-stalled":a.stalled}]),role:`status`,"aria-live":`polite`},[t[33]||=W(`span`,{class:`aichat__live-dot`},null,-1),W(`span`,AW,M(a.liveText),1),a.stalled?(V(),H(`button`,{key:0,type:`button`,class:`aichat__live-act`,title:`连接可能已中断,终止本轮(已落盘的产物会保留)`,onClick:t[9]||=(...e)=>a.stop&&a.stop(...e)},` 终止 `)):q(`v-if`,!0)],2)):q(`v-if`,!0)],64)):(V(),H(`div`,yW,[t[32]||=W(`span`,{class:`aichat__empty-logo`},[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-sparkles`})])],-1),W(`p`,bW,M(a.emptyTitle),1),W(`p`,xW,M(a.emptyDesc),1),W(`div`,SW,[(V(!0),H(B,null,z(a.suggestions,e=>(V(),H(`button`,{key:e.id,type:`button`,class:j([`aichat__suggest`,`is-${e.weight}`]),title:e.text,"data-suggest-id":e.id,onClick:t=>a.useSuggestion(e)},[(V(),H(`svg`,wW,[W(`use`,{href:e.icon},null,8,TW)])),W(`span`,EW,[W(`span`,DW,M(e.label),1),W(`span`,OW,M(e.hint),1)]),e.weight===`write`?(V(),H(`span`,kW,`改卡`)):q(`v-if`,!0)],10,CW))),128)),a.canShuffle?(V(),H(`button`,{key:0,type:`button`,class:`aichat__suggest-shuffle`,onClick:t[7]||=(...e)=>a.shuffleSuggestions&&a.shuffleSuggestions(...e)},[...t[31]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-refresh`})],-1),W(`span`,null,`换一批`,-1)]])):q(`v-if`,!0)])]))],544),q(` 回到底部:脱离底部吸附时出现 `),L(W(`button`,{type:`button`,class:`aichat__jump`,title:`回到底部`,onClick:t[11]||=e=>a.scrollToBottom(!0)},[...t[34]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-arrow-down`})],-1)]],512),[[Nc,!i.pinned&&i.messages.length]])]),q(` 常驻「常用」指令:有对话后空态建议区不再出现,这里保留一排轻量入口,随上下文同源 `),a.quickChips.length&&i.messages.length&&!i.busy?(V(),H(`div`,jW,[(V(!0),H(B,null,z(a.quickChips,e=>(V(),H(`button`,{key:e.id,type:`button`,class:j([`aichat__chip`,`is-${e.weight}`]),title:e.text,"data-suggest-id":e.id,onClick:t=>a.useSuggestion(e)},[(V(),H(`svg`,NW,[W(`use`,{href:e.icon},null,8,PW)])),W(`span`,null,M(e.label),1)],10,MW))),128))])):q(`v-if`,!0),q(` 操作反馈(附件解析失败 / 历史保存失败等) `),i.notice?(V(),H(`div`,{key:2,class:j([`aichat__notice`,`aichat__notice--${i.notice.type}`])},[W(`span`,null,M(i.notice.text),1),W(`button`,{type:`button`,class:`aichat__notice-x`,title:`关闭`,onClick:t[12]||=e=>i.notice=null},[...t[35]||=[W(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-x`})],-1)]])],2)):q(`v-if`,!0),G(s,{ref:`composerEl`,busy:i.busy,model:i.config.model,attachments:i.draftAttachments,placeholder:a.configReady?`描述你要改的卡片,Enter 发送 / Shift+Enter 换行`:`请先在设置中配置模型…`,context:i.contextUsage,onSend:a.onSend,onStop:a.stop,onPick:a.onPick,onAddPath:a.onAddPath,onRemoveAttachment:a.removeAttachment,onDropFiles:a.onDropFiles,onPasteImage:a.onPasteImage,onEscape:a.onEscape},null,8,[`busy`,`model`,`attachments`,`placeholder`,`context`,`onSend`,`onStop`,`onPick`,`onAddPath`,`onRemoveAttachment`,`onDropFiles`,`onPasteImage`,`onEscape`]),q(` 一级面板:模型库。从齿轮 / 横幅 / 消息内「去设置」进入 `),i.modelListOpen?(V(),U(c,{key:3,models:i.models,"active-id":i.activeId,"turn-running":i.turnRunning,onClose:a.closeModelList,onAdd:a.onModelAdd,onEdit:a.onModelEdit,onDelete:a.onModelDelete,onActivate:a.onModelActivate,onImportCcswitch:a.onImportCcSwitch,onOpenCommon:a.openCommon},null,8,[`models`,`active-id`,`turn-running`,`onClose`,`onAdd`,`onEdit`,`onDelete`,`onActivate`,`onImportCcswitch`,`onOpenCommon`])):q(`v-if`,!0),q(` 新增 / 编辑模型:复用 AiSettings(modelId 区分,initialModel 预填) `),i.modelEditOpen?(V(),U(l,{key:4,config:i.config,"model-id":i.editModelId,"initial-model":i.editInitialModel,onClose:a.onModelEditClose,onSaved:a.onModelSaved},null,8,[`config`,`model-id`,`initial-model`,`onClose`,`onSaved`])):q(`v-if`,!0),q(` 删除模型确认:二次确认后才真正落盘删除 `),G(u,{visible:!!i.confirmDeleteModel,"close-on-mask":!1,title:`删除模型`,message:a.deleteModelMessage,"confirm-text":`删除`,severity:`danger`,onConfirm:a.doDeleteModel,onCancel:t[13]||=e=>i.confirmDeleteModel=null},null,8,[`visible`,`message`,`onConfirm`]),q(` cc-switch 导入弹窗:列出 cc-switch 的 Codex 类供应商,勾选后批量导入模型库(按 model 去重) `),G(hc,{name:`modal`},{default:I(()=>[i.ccSwitchOpen?(V(),H(`div`,{key:0,class:`ni-overlay`,onClick:t[17]||=J(e=>i.ccSwitchOpen=!1,[`self`])},[W(`div`,FW,[W(`div`,IW,[t[36]||=W(`span`,{class:`ni-title`},`从 cc-switch 导入`,-1),W(`button`,{class:`ni-close`,type:`button`,title:`关闭`,onClick:t[14]||=e=>i.ccSwitchOpen=!1})]),W(`div`,LW,[W(`div`,RW,[q(` 加载中 `),i.ccSwitchLoading?(V(),H(`p`,zW,`正在读取 cc-switch 供应商…`)):i.ccSwitchReason?(V(),H(B,{key:1},[q(` 无可导入项 `),W(`p`,BW,M(i.ccSwitchReason),1)],2112)):(V(),H(B,{key:2},[q(` 供应商列表 `),W(`ul`,VW,[(V(!0),H(B,null,z(i.ccSwitchProviders,e=>(V(),H(`li`,{key:e.id,class:j([`ccsw-dlg__item`,{"is-active":i.ccSwitchSelected[e.id],"is-dup":e.duplicate}]),onClick:t=>a.toggleCcSwitchItem(e)},[W(`span`,{class:j([`ccsw-dlg__check`,{"is-on":i.ccSwitchSelected[e.id]}])},[i.ccSwitchSelected[e.id]?(V(),H(`svg`,UW,[...t[37]||=[W(`use`,{href:`#icon-check`},null,-1)]])):q(`v-if`,!0)],2),W(`span`,WW,[W(`span`,GW,[K(M(e.name||e.model)+` `,1),e.isCurrent?(V(),H(`span`,KW,`当前`)):q(`v-if`,!0),e.duplicate?(V(),H(`span`,qW,`已存在`)):q(`v-if`,!0)]),W(`span`,JW,[W(`span`,YW,M(e.model),1),t[38]||=W(`span`,{class:`ccsw-dlg__dot`},`·`,-1),W(`span`,XW,M(e.baseUrl),1)])])],10,HW))),128))])],2112))])]),W(`div`,ZW,[W(`span`,QW,M(a.ccSwitchDupCount>0?`已有 ${a.ccSwitchDupCount} 个重复模型被自动跳过`:`勾选要导入的供应商,批量加入模型库`),1),W(`div`,$W,[W(`button`,{class:`ni-btn ni-btn--ghost`,type:`button`,onClick:t[15]||=e=>i.ccSwitchOpen=!1},`取消`),W(`button`,{class:`ni-btn`,type:`button`,disabled:i.ccSwitchLoading||!i.ccSwitchProviders.length||a.ccSwitchCheckedCount===0,onClick:t[16]||=(...e)=>a.confirmImportCcSwitch&&a.confirmImportCcSwitch(...e)},M(a.ccSwitchCheckedCount>0?`导入选中 ${a.ccSwitchCheckedCount} 项`:`导入`),9,eG)])])])])):q(`v-if`,!0)]),_:1}),q(` 通用设置:所有模型共享的执行策略 / 环境参数 `),i.commonOpen?(V(),U(d,{key:5,onClose:t[18]||=e=>i.commonOpen=!1,onSaved:a.onCommonSaved},null,8,[`onSaved`])):q(`v-if`,!0),G(u,{visible:i.confirmClear,"close-on-mask":!1,title:`清空对话记录`,message:`将删除卡片「${n.cardName||n.cardId||`当前卡片`}」的全部对话记录,此操作不可撤销。`,"confirm-text":`清空`,severity:`danger`,onConfirm:a.doClear,onCancel:t[19]||=e=>i.confirmClear=!1},null,8,[`visible`,`message`,`onConfirm`]),q(` 终止确认:生成中按 Esc 会走到这里。几十分钟的建卡被一次误按抹掉代价太大,故加一道确认 `),G(u,{visible:i.confirmStop,"close-on-mask":!1,title:`终止本次生成`,message:`已执行的写入与落盘产物都会保留,上下文也留在对话里,之后回复「继续」可从中断处接着做。确定现在终止?`,"confirm-text":`终止生成`,severity:`danger`,onConfirm:a.doStop,onCancel:t[20]||=e=>i.confirmStop=!1},null,8,[`visible`,`onConfirm`])],38)}var nG=Z(oW,[[`render`,tG],[`__file`,`/Users/ynet/dsl-card/card-editor/components/ChatPanel.vue`]]),rG=`/assets/site-icon-CFMif8z4.png`,iG={includeMocks:!0};function aG(e){return e?JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)):null}function oG(e){let t=aG(e);if(t&&t.dictionary&&Array.isArray(t.dictionary.inputParams)){let e=hv(t);for(let n of t.dictionary.inputParams)n&&typeof n==`object`&&!gv(e,n.key)&&(n.defaultValue=void 0)}return t}function sG(e,t){return!e||!t?e===t:JSON.stringify(oG(e))===JSON.stringify(oG(t))}function cG(e,t){return JSON.stringify(e)===JSON.stringify(t)}function lG(e,t){return!t||!e?!1:!sG(e,t)}function uG(e,t,n){return!t||!e?!1:!cG(e,n??mv(t,iG))}function dG(e,t,n,r){return!t||!e?!1:lG(e,t)||uG(n,t,r)}var fG={includeMocks:!0},pG=2500,mG=8e3,hG=`cardbuddy:remote-cards-cache:v1`,gG=3e5;function _G(){try{let e=JSON.parse(localStorage.getItem(hG)||`null`);if(e&&e.v===1&&Array.isArray(e.cards))return e}catch{}return null}function vG(e){try{localStorage.setItem(hG,JSON.stringify({v:1,at:Date.now(),cards:e}))}catch{}}var yG=new pu,bG=vu({},yG);typeof window<`u`&&(window.__rt=bG);var xG=188,SG=320,CG=200,wG=160,TG={name:`App`,components:{RenderTree:vp,DebugPanel:Gx,ApiCallPanel:pS,CardSelect:MS,AlertCardLayer:US,DeviceOverlay:ND,PickerOverlay:UD,DatePickerOverlay:eO,KeyboardOverlay:oO,LoadingExOverlay:fO,SelectionOverlay:gO,HoverGuides:SO,RemotePreview:uk,AppToast:_k,ThemeSettings:Rk,ImageLightbox:iA,ConfirmDialog:Ap,CardGallery:LA,RemoteAllCards:vj,RemoteCardFormDialog:$j,SyncProgressModal:uM,ExportDirDialog:EM,ExportProgressModal:LM,NewCardDialog:rN,ComponentPalette:vN,Switch:SN,ChatPanel:nG},provide(){return{adapter:yG,cardRuntime:bG,customComponents:{}}},data(){return{adapter:yG,rt:bG,logoUrl:rG,appVersion:`0.84.3`,cardList:[],cardCount:0,galleryOpen:!1,remoteAllOpen:!1,remoteCards:[],remoteCardsLoading:!1,remoteCardsRefreshing:!1,remoteCardsError:``,remoteCardFormOpen:!1,remoteCardFormMode:`create`,remoteCardFormCard:null,remoteCardDeletingId:``,syncJobId:``,syncProgressOpen:!1,syncProgress:{done:0,total:0,current:``},syncPollTimer:null,exportDirDialog:{visible:!1,ids:[]},compilingCards:!1,exportJobId:``,exportProgressOpen:!1,exportProgress:{done:0,total:0,current:``},exportPollTimer:null,syncPendingCodes:void 0,cardDialog:{visible:!1,mode:`create`,cardId:``,cardDesc:``},selectedId:``,externalReloadNote:``,externalReloadTimer:null,selfSaveId:``,selfSaveAt:0,preview:null,chromeOff:!1,theme:`dark`,accent:bk,cardReady:!1,reloadToken:0,moveCollapseToken:0,refreshing:!1,loadingCard:!1,currentSchema:null,currentCard:null,loadedCardId:``,cardImportMeta:null,localSchema:null,localData:null,selectedNodeId:``,activeTab:`vars`,apiPanelOpen:!0,addNodePanelOpen:!1,addNodeTarget:null,validateBadge:{state:`idle`,errors:0,warnings:0,renderOk:null,ts:0},validateTimer:null,savedCard:!1,savingCard:!1,saveTimer:null,coverBusy:!1,savingRemote:!1,restoringHistory:!1,savedRemote:!1,verifiedRemote:null,saveRemoteTimer:null,syncingRemote:!1,syncedRemote:!1,remotePreviewOpen:!1,syncTarget:null,syncTimer:null,uploadingSlices:!1,publishing:!1,metaRefreshToken:0,historyRefreshToken:0,loginModal:!1,loginName:``,loginPassword:``,loginSubmitting:!1,loginError:``,credentialsReady:!1,loginPendingAction:``,remoteToggleFn:null,confirm:{show:!1,title:``,message:``,confirmText:`继续`,cancelText:`取消`,severity:`primary`,onConfirm:null},past:[],future:[],baseline:null,_commitTimer:null,viewportHeight:700,canvasBg:`gray`,refreshing:!1,bgOptions:[{key:`checker`,label:`棋盘`},{key:`white`,label:`白色`},{key:`gray`,label:`浅灰`},{key:`black`,label:`黑色`}],_previewWidthPx:372,_apiPanelWidthPx:360,presetSizes:[{key:375,value:`375`},{key:430,value:`430`},{key:188,value:`188`}],stageWidth:typeof window<`u`?window.innerWidth:1280,colsWidth:0,stageHeight:typeof window<`u`?window.innerHeight-52:748,dragging:!1,apiDragging:!1,_stageObserver:null,devServiceOpen:!1,aiChatOpen:(()=>{try{return sessionStorage.getItem(`cardbuddy:ai-chat-open`)===`1`}catch{return!1}})(),chatBusy:!1,chatProgress:null,fab:{x:null,y:null,dragging:!1},fabDrag:null,fabSuppressClick:!1,devServiceForm:Kl(),apiBaseResolved:Jl(),devSvcLive:`unknown`,devSvcDown:!1,_unsubCardsChanged:null}},computed:{fabTitle(){if(this.aiChatOpen)return`AI 开发助手(已打开)`;if(!this.chatBusy)return`AI 开发助手`;let e=this.chatProgress,t=e&&e.startedAt?`${GL(e.startedAt)} 开始 · `:``;return`AI 开发助手正在生成(${e?`${t}第 ${e.steps} 步 · 已用 ${WL(e.ms)}${e.stage?` · ${e.stage}`:``}${e.stalled?` · 疑似断流`:``}`:``}),点击展开查看`},fabStyle(){return this.fab.x==null||this.fab.y==null?{}:{right:this.fab.x+`px`,bottom:this.fab.y+`px`,left:`auto`,top:`auto`,transition:this.fab.dragging?`none`:``}},currentBg(){return this.bgOptions.find(e=>e.key===this.canvasBg)||this.bgOptions[0]},cardIds(){return this.cardList.map(e=>e&&e.id).filter(Boolean)},remoteImportedIds(){return this.cardList.filter(e=>e&&e.imported).map(e=>e.id)},canUndo(){return this.past.length>0},canRedo(){return this.future.length>0},devSvcBlockReason(){let e=this.devServiceForm||{};return String(e.baseUrl||``).trim()?e.enabled?null:`disabled`:`empty`},canPaste(){return!!td()},hasCardSource(){return!!(this.cardImportMeta&&this.cardImportMeta.source)},remoteBusy(){return!!(this.savingRemote||this.syncingRemote||this.uploadingSlices||this.publishing)},remoteBusyReason(){return this.savingRemote?`正在推送至远端…`:this.syncingRemote?`正在拉取远端卡片…`:this.uploadingSlices?`正在上传切图…`:this.publishing?`正在发布版本…`:``},historyDirty(){return dG(this.currentSchema,this.localSchema,this.rt&&this.rt.rootScope,this.localData)},devSvcConn(){return this.apiBaseResolved===null?`unconfigured`:this.devSvcLive===`open`?`open`:this.devSvcDown?`closed`:`connecting`},devSvcTitle(){if(this.apiBaseResolved===null)return this.devSvcBlockReason===`disabled`?`已填地址但未开启用本地服务`:`未配置本地开发服务(部署态必填)`;let e=this.apiBaseResolved===``?`同源开发服务`:`本地开发服务`;return this.devSvcLive===`open`?e+`已连接`:this.devSvcDown?e+`已断开(连接失败或服务已停止,重连中…)`:e+`连接中 / 重连中…`},devSvcClass(){return this.apiBaseResolved===null?`app__btn--warn`:this.devSvcLive===`open`?`app__btn--connected`:this.devSvcDown?`app__btn--disconnected`:`app__btn--reconnecting`},devSvcLabel(){return this.apiBaseResolved===null?`未配置本地服务`:this.devSvcLive===`open`?`本地服务已连接`:this.devSvcDown?`本地服务已断开`:`本地服务连接中…`},badgeText(){return{idle:`待校验`,pending:`校验中…`,ok:`校验通过`,error:`校验未通过`,nopython:`未配置校验`,fail:`校验服务异常`}[this.validateBadge.state]||`待校验`},badgeTitle(){let e=this.validateBadge;if(e.state===`ok`)return`结构合法 + 渲染不抛错(不保证画得对,视觉正确性见截图)`;if(e.state===`error`){let t=[];return e.errors&&t.push(`契约错误 ${e.errors} 个`),e.renderOk===!1&&t.push(`渲染抛出异常`),`校验未通过:`+(t.join(`;`)||`详见 /__validate 与 /__render-status`)}return e.state===`nopython`?`未找到 python3/python,无法跑契约校验(请安装 Python 或设置 DSL_PYTHON)`:e.state===`fail`?`校验服务异常(dev server 未启动或端点不可用)`:``},previewWidth(){if(this.chromeOff)return this.stageWidth;let{min:e,max:t}=this.previewBounds,n=this._previewWidthPx||xG;return Math.max(e,Math.min(t,n))},viewportWidth(){return this.stageWidth,typeof window<`u`?window.innerWidth:1280},debugSoftWidth(){return Math.max(CG,Math.floor(this.viewportWidth/3))},previewBounds(){let e=this.stageWidth||0,t=Math.floor(e/2),n=e-SG-this.debugSoftWidth;return{min:xG,max:Math.max(xG,Math.min(t,n))}},debugMinWidth(){let e=this.colsWidth||Math.max(0,(this.stageWidth||0)-this.previewWidth);return Math.max(CG,Math.min(this.debugSoftWidth,Math.floor(e)-SG))},apiPanelBounds(){let e=this.colsWidth||Math.max(0,(this.stageWidth||0)-this.previewWidth),t=Math.max(wG,Math.floor(e)-this.debugMinWidth);return{min:Math.min(SG,t),max:t}},canvasW(){return Math.round(this.previewWidth||375)},selectedCardName(){let e=this.cardList.find(e=>e.id===this.selectedId);return e&&e.name||this.selectedId||``},cardEmpty(){let e=this.currentSchema;if(!e||!e.view)return!0;let t=e.view.components;return!Array.isArray(t)||t.length===0},apiPanelWidth(){let{min:e,max:t}=this.apiPanelBounds,n=this._apiPanelWidthPx||360;return Math.max(e,Math.min(t,n))},frameStyle(){return{}}},watch:{activeTab(e){e!==`structure`&&(this.selectedNodeId=``,yO())},credentialsReady(e){!e&&this.activeTab===`history`&&(this.activeTab=`vars`)},aiChatOpen(e){try{sessionStorage.setItem(`cardbuddy:ai-chat-open`,e?`1`:`0`)}catch{}},theme(e){document.documentElement.dataset.theme=e;try{localStorage.setItem(`cardbuddy:theme`,e)}catch{}},accent(e){Ck(e),wk(e)},apiPanelOpen(e){try{localStorage.setItem(`cardbuddy:api-panel-open`,e?`1`:`0`)}catch{}},remoteBusy(e){e&&(this.devServiceOpen=!1)},chatBusy(e,t){if(t&&!e&&this.selectedId){if(this.historyDirty){let e=this.currentSchema&&this.currentSchema.name||this.selectedId;this.showExternalReloadNote(`AI 已更新磁盘上的卡片「${e}」,当前有未保存编辑,未自动重载(点顶栏刷新可载入最新版)`)}else this.loadCard(this.selectedId)}}},beforeUnmount(){this.viewportObserver&&this.viewportObserver.disconnect(),this._stageObserver&&this._stageObserver.disconnect(),this.saveTimer&&clearTimeout(this.saveTimer),this.syncTimer&&clearTimeout(this.syncTimer),this.saveRemoteTimer&&clearTimeout(this.saveRemoteTimer),this.syncPollTimer&&clearTimeout(this.syncPollTimer),this.exportPollTimer&&clearTimeout(this.exportPollTimer),window.removeEventListener(`keydown`,this.onKeydown)},mounted(){this.viewportObserver=new ResizeObserver(e=>{for(let t of e)this.viewportHeight=Math.round(t.contentRect.height)}),this.$refs.phoneViewport&&this.viewportObserver.observe(this.$refs.phoneViewport),this.loadPreviewWidth(),this.loadCanvasBg(),this.loadApiPanelWidth(),this._stageObserver=new ResizeObserver(e=>{for(let t of e)t.target===this.$refs.colsEl?this.colsWidth=Math.round(t.contentRect.width):(this.stageWidth=Math.round(t.contentRect.width),this.stageHeight=Math.round(t.contentRect.height))}),this.$refs.stageEl&&this._stageObserver.observe(this.$refs.stageEl),this.$refs.colsEl&&this._stageObserver.observe(this.$refs.colsEl),window.addEventListener(`keydown`,this.onKeydown),this.fabInitPosition(),window.addEventListener(`resize`,this.onFabResize),this.checkCredentials()},beforeDestroy(){window.removeEventListener(`resize`,this.onFabResize)},async created(){wD(bG);let e=new URLSearchParams(location.search).get(`chrome`);this.chromeOff=e===`off`||e===``;try{let e=localStorage.getItem(`cardbuddy:theme`);(e===`light`||e===`dark`)&&(this.theme=e)}catch{}document.documentElement.dataset.theme=this.theme,this.accent=Sk(),Ck(this.accent);try{localStorage.getItem(`cardbuddy:api-panel-open`)===`0`&&(this.apiPanelOpen=!1)}catch{}await this.fetchCardList();let t=new URLSearchParams(location.search).get(`card`),n=null;try{let e=localStorage.getItem(`cardbuddy:selected-card`);e&&this.cardList.some(t=>t.id===e)&&(n=e)}catch{}let r=t&&this.cardList.some(e=>e.id===t)?t:n||this.cardList[0]&&this.cardList[0].id;r&&(this.selectedId=r,await this.loadCard(this.selectedId)),this.$watch(()=>this.rt.rootScope,()=>{this.syncDataToSchema()},{deep:!0}),this.setupCardsChanged()},methods:{fabBounds(){let e=this.$refs.aiFab,t=e?e.offsetWidth:56,n=e?e.offsetHeight:56,r=document.documentElement.clientWidth,i=document.documentElement.clientHeight;return{minX:0,minY:0,maxX:Math.max(0,r-t),maxY:Math.max(0,i-n)}},clampFab(e,t){let n=this.fabBounds();return[Math.min(Math.max(e,n.minX),n.maxX),Math.min(Math.max(t,n.minY),n.maxY)]},fabInitPosition(){let e=this.$refs.aiFab;if(!e)return;let t=this.loadFabPos(),n=document.documentElement.clientWidth,r=document.documentElement.clientHeight,i,a;if(t)[i,a]=this.clampFab(t.x,t.y);else{let t=e.getBoundingClientRect();[i,a]=this.clampFab(n-t.right,r-t.bottom)}this.fab.x=i,this.fab.y=a},loadFabPos(){try{let e=localStorage.getItem(`cardbuddy:ai-fab-pos`);if(!e)return null;let t=JSON.parse(e);if(typeof t.x==`number`&&typeof t.y==`number`&&isFinite(t.x)&&isFinite(t.y))return t}catch{}return null},saveFabPos(){try{localStorage.setItem(`cardbuddy:ai-fab-pos`,JSON.stringify({x:this.fab.x,y:this.fab.y}))}catch{}},onFabPointerDown(e){if(!this.aiChatOpen){this.fabSuppressClick=!1,this.fab.x??this.fabInitPosition(),this.fabDrag={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originX:this.fab.x,originY:this.fab.y,moved:!1};try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}}},onFabPointerMove(e){let t=this.fabDrag;if(!t||t.pointerId!==e.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(!t.moved){if(Math.hypot(n,r)<4)return;t.moved=!0,this.fab.dragging=!0}let[i,a]=this.clampFab(t.originX-n,t.originY-r);this.fab.x=i,this.fab.y=a},onFabPointerUp(e){let t=this.fabDrag;if(!t||t.pointerId!==e.pointerId)this.fab.dragging=!1;else{try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}t.moved&&(this.fabSuppressClick=!0,this.saveFabPos()),this.fab.dragging=!1,this.fabDrag=null}},onFabClick(){this.fabSuppressClick?this.fabSuppressClick=!1:this.aiChatOpen=!this.aiChatOpen},onFabResize(){if(this.fab.x==null)return;let[e,t]=this.clampFab(this.fab.x,this.fab.y);this.fab.x=e,this.fab.y=t},setupCardsChanged(){if(this._unsubCardsChanged){try{this._unsubCardsChanged()}catch{}this._unsubCardsChanged=null}this.devSvcLive=`connecting`,this._unsubCardsChanged=eu(e=>this.onCardsChanged(e),e=>this.onDevServiceState(e))},onDevServiceState(e){let t=this.devSvcLive===`connecting`;this.devSvcLive=e,e===`open`?this.devSvcDown=!1:e===`closed`&&(this.devSvcDown=!0),e===`connecting`?!t&&!this._svcWatchdog&&(this._svcWatchdog=setTimeout(()=>{this.devSvcLive===`connecting`&&(this.devSvcLive=`closed`,this.devSvcDown=!0),this._svcWatchdog=null},8e3)):this._svcWatchdog&&=(clearTimeout(this._svcWatchdog),null)},saveDevService(){ql(this.devServiceForm),this.apiBaseResolved=Jl(),this.setupCardsChanged(),this.devServiceOpen=!1,Q(`本地开发服务配置已保存`,`ok`),this.fetchCardList()},beginColumnDrag(e,t,n){let r=e&&e.currentTarget;if(!r)return;let i=e.pointerId;try{r.setPointerCapture(i)}catch{}let a=()=>{r.removeEventListener(`pointermove`,t),r.removeEventListener(`pointerup`,a),r.removeEventListener(`pointercancel`,a),window.removeEventListener(`blur`,a);try{r.hasPointerCapture?.(i)&&r.releasePointerCapture(i)}catch{}document.body.style.cursor=``,document.body.style.userSelect=``,n()};document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,r.addEventListener(`pointermove`,t),r.addEventListener(`pointerup`,a),r.addEventListener(`pointercancel`,a),window.addEventListener(`blur`,a)},startDrag(e){if(this.chromeOff)return;let t=this.$refs.stageEl;if(!t)return;let n=t.getBoundingClientRect().left;this.dragging=!0,this.beginColumnDrag(e,e=>{let{min:t,max:r}=this.previewBounds;this._previewWidthPx=Math.max(t,Math.min(r,Math.round(e.clientX-n)))},()=>{this.dragging=!1,this.savePreviewWidth()})},startApiDrag(e){if(this.chromeOff||!this.apiPanelOpen)return;let t=this.$refs.colsEl;if(!t)return;let n=t.getBoundingClientRect().right;this.apiDragging=!0,this.beginColumnDrag(e,e=>{let{min:t,max:r}=this.apiPanelBounds;this._apiPanelWidthPx=Math.max(t,Math.min(r,Math.round(n-e.clientX)))},()=>{this.apiDragging=!1,this.saveApiPanelWidth()})},loadCanvasBg(){try{let e=localStorage.getItem(`cardbuddy:canvas-bg`);e!=null&&this.bgOptions.some(t=>t.key===e)&&(this.canvasBg=e)}catch{}},saveCanvasBg(){try{localStorage.setItem(`cardbuddy:canvas-bg`,this.canvasBg)}catch{}},loadPreviewWidth(){try{let e=localStorage.getItem(`cardbuddy:preview-width`);if(e!=null){let t=parseInt(e,10);!Number.isNaN(t)&&t>=188&&(this._previewWidthPx=t)}}catch{}},savePreviewWidth(){try{localStorage.setItem(`cardbuddy:preview-width`,String(Math.round(this._previewWidthPx)))}catch{}},setPresetWidth(e){if(this.chromeOff)return;let{min:t,max:n}=this.previewBounds;this._previewWidthPx=Math.max(t,Math.min(n,e)),this.savePreviewWidth()},loadApiPanelWidth(){try{let e=localStorage.getItem(`cardbuddy:api-panel-width`);if(e!=null){let t=parseInt(e,10);!Number.isNaN(t)&&t>=320&&(this._apiPanelWidthPx=t)}}catch{}},saveApiPanelWidth(){try{localStorage.setItem(`cardbuddy:api-panel-width`,String(Math.round(this.apiPanelWidth)))}catch{}},chooseBg(e){this.canvasBg=e,this.saveCanvasBg()},onSelect(e){e!==this.selectedId&&(this.remoteBusy?Q(`远端操作进行中(${this.remoteBusyReason}),完成前不能切换卡片`,`err`,3200):this.chatBusy?Q(`AI 正在生成「${this.selectedId}」:先点 ■ 停止,或等本轮结束后再切卡`,`err`,3600):(this.loadingCard=!0,this.selectedId=e,this.loadCard(e,{clearAll:!0})))},selectCard(e){this.selectedId=e;try{localStorage.setItem(`cardbuddy:selected-card`,e)}catch{}},openGallery(){this.cardList.length&&(this.galleryOpen=!0)},openNewCard(){this.cardDialog.mode=`create`,this.cardDialog.cardId=``,this.cardDialog.cardDesc=``,this.cardDialog.visible=!0,this.fetchCardList()},openRenameCard(){this.selectedId&&(this.cardDialog.mode=`rename`,this.cardDialog.cardId=this.selectedId,this.cardDialog.cardDesc=this.currentSchema&&this.currentSchema.desc||``,this.cardDialog.visible=!0,this.fetchCardList())},async onCardRenamed({oldId:e,id:t}){if(this.cardDialog.visible=!1,Q(t===e?`已更新卡片描述`:`已重命名卡片 ${e} → ${t}`,`ok`),t!==e)return this.applyCardRename(e,t);await this.fetchCardList(),await this.loadCard(t)},async applyCardRename(e,t){if(!e||!t||e===t)return;let n=`${e}->${t}`;if(this._renameAppliedKey===n)return;this._renameAppliedKey=n,setTimeout(()=>{this._renameAppliedKey===n&&(this._renameAppliedKey=``)},1e3);let r=this.selectedId===e;this.$refs.chatPanel?.migrateCard(e,t),r&&this.selectCard(t),this.selfSaveId=t,this.selfSaveAt=Date.now(),await this.fetchCardList(),r&&(this.historyDirty&&!this.confirm.show?this.requestConfirm({title:`卡片已重命名`,message:`卡片「${e}」已重命名为「${t}」,而编辑器内还有未保存的改动。\n重新载入会放弃这些未保存改动并显示磁盘版本;保留改动则继续用当前编辑器内容(后续保存会写到新目录 ${t})。`,confirmText:`重新载入`,cancelText:`保留我的改动`,onConfirm:()=>this.loadCard(t)}):await this.loadCard(t))},closeGallery(){this.galleryOpen=!1},onGalleryExport(e){!this.exportProgressOpen&&e&&e.length&&(this.exportDirDialog={visible:!0,ids:e})},async onGalleryCompile(e){if(!this.compilingCards&&e&&e.length){this.compilingCards=!0;try{let t=await Y(`/__compile-cards`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardIds:e})}),n=await t.json().catch(()=>({}));if(!t.ok||!n.ok)throw Error(n.message||n.error||`HTTP `+t.status);let r=(n.cards||[]).filter(e=>e.ok),i=(n.cards||[]).filter(e=>!e.ok),a=r.reduce((e,t)=>e+(t.warnings?t.warnings.length:0),0);console.info(`[compile] 产物目录`,n.outDir);for(let e of r){console.info(`[compile] ${e.id} 模板 ${e.templates} 个 / 节点 ${e.nodes} / 客户端 ${e.clientBytes}B / H5 ${e.h5Bytes}B`);for(let t of e.warnings||[])console.warn(`[compile] ${e.id} ${t}`)}for(let e of i)console.error(`[compile] ${e.id} 失败:${e.error}`);if(i.length)Q(`已编译 ${r.length} 张,${i.length} 张失败(原因见控制台)`,`err`,4200);else{let e=a?`(${a} 条告警见控制台)`:``;Q(`已编译 ${r.length} 张卡片,客户端模板与 H5 脚本已写入 flame-build 目录${e}`,`ok`,3600)}this.$refs.cardGallery?.setChecked(i.map(e=>e.id))}catch(e){Q(`编译失败:`+(e&&e.message?e.message:`无法连接本地开发服务`),`err`,4200)}finally{this.compilingCards=!1}}},async onExportDirConfirm(e){this.exportDirDialog.visible=!1;let t=this.exportDirDialog.ids;try{let n=await Y(`/__export-cards`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardIds:t,targetDir:e})}),r=await n.json().catch(()=>({}));if(!n.ok||!r.ok)throw Error(r.message||r.error||`HTTP `+n.status);this.exportJobId=r.jobId,this.exportProgress={done:0,total:Number(r.total)||0,current:``},this.exportProgressOpen=!0,this.pollExportProgress()}catch(e){this.exportDirDialog.ids=[],Q(`启动导出失败:`+(e&&e.message),`err`)}},pollExportProgress(){this.exportPollTimer&&clearTimeout(this.exportPollTimer);let e=async()=>{if(this.exportJobId&&this.exportProgressOpen){try{let e=await Y(`/__export/progress?jobId=`+encodeURIComponent(this.exportJobId)),t=await e.json().catch(()=>({}));if(!e.ok||!t.ok)throw Error(t.message||`进度查询失败`);if(this.exportProgress={done:Number(t.done)||0,total:Number(t.total)||0,current:t.currentTitle||t.currentId||``},t.finished){this.onExportJobFinished(t.result||{});return}}catch(e){console.error(`[导出进度查询失败]`,e)}this.exportPollTimer=setTimeout(e,600)}};e()},stopExportPolling(){this.exportPollTimer&&=(clearTimeout(this.exportPollTimer),null)},onExportJobFinished(e){this.stopExportPolling(),this.exportProgressOpen=!1,this.exportJobId=``,this.exportDirDialog.ids=[];let t=e.failed||[],n=e.warnings||[];if(t.length&&console.warn(`[导出失败明细]`,t),n.length&&console.warn(`[导出告警明细]`,n),!e.cancelled&&e.success&&this.$refs.cardGallery?.setChecked(t.map(e=>e&&e.id).filter(Boolean)),e.cancelled){let t=e.exported||0;Q(t?`导出已取消(已完成 ${t} 张,未生成 zip)`:`导出已取消`,`ok`)}else if(e.success){let r=e.exported||0,i=t.length,a=e.folderName?`${e.folderName}.zip`:`zip`,o=e.revealed?`,已打开所在目录`:``,s=i?`(${t[0].id||`?`}:${String(t[0].error||``).slice(0,60)})`:``,c=n.length?`,${n.length} 条告警见控制台`:``;Q(i?`导出完成:成功 ${r} 张,失败 ${i} 张${s} → ${a}${o}${c}`:`导出成功:${a}(${r} 张卡片)${o}${c}`,i?`warn`:`ok`)}else Q(`导出失败:`+(e.error||`未知错误`),`err`)},cancelExportJob(){this.exportJobId&&Y(`/__export/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({jobId:this.exportJobId})}).catch(()=>{})},async openCardFolder(){if(this.selectedId)try{let e=await Y(`/__open-folder`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:this.selectedId})}),t=(e.headers.get(`content-type`)||``).includes(`application/json`)?await e.json().catch(()=>({})):{};!e.ok||!t.ok?Q(t.error||`打开文件夹失败`,`err`):Q(`已打开卡片文件夹`,`ok`)}catch{Q(`无法连接本地开发服务,请确认已启动`,`err`)}},async refreshCard(){if(this.selectedId&&!this.refreshing){this.refreshing=!0;try{await this.loadCard(this.selectedId)}finally{this.refreshing=!1}}},toggleApiPanel(){this.apiPanelOpen=!this.apiPanelOpen},async refreshValidateBadge(){let e=this.selectedId;if(e&&this.preview&&(this.validateTimer&&clearTimeout(this.validateTimer),this.validateBadge={...this.validateBadge,state:`pending`},await new Promise(e=>{this.validateTimer=setTimeout(e,120)}),this.selectedId===e))try{let[t,n]=await Promise.all([Y(`/__validate/${encodeURIComponent(e)}`),Y(`/__render-status/${encodeURIComponent(e)}`)]);if(!t.ok){this.validateBadge={...this.validateBadge,state:t.status===503?`nopython`:`fail`};return}let r=await t.json().catch(()=>null),i=n.ok?await n.json().catch(()=>null):null;if(!r){this.validateBadge={...this.validateBadge,state:`fail`};return}let a=!!r.ok,o=!i||!!i.renderOk,s=a&&o?`ok`:`error`,c=this.validateBadge.state!==s;this.validateBadge={state:s,errors:(r.errors||[]).length,warnings:(r.warnings||[]).length,renderOk:o,ts:Date.now()},c&&(s===`ok`||s===`error`)&&this.celebrateValidate(s)}catch{this.validateBadge={...this.validateBadge,state:`fail`}}},celebrateValidate(e=`ok`){let t=this.$refs.validateBadgeEl;if(!t||window.matchMedia&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;t.classList.remove(`is-celebrating`),t.offsetWidth,t.classList.add(`is-celebrating`),setTimeout(()=>t.classList.remove(`is-celebrating`),600);let n=t.getBoundingClientRect(),r={ok:`--ok`,error:`--danger`,pending:`--warn`,fail:`--text-faint`,nopython:`--text-faint`}[e]||`--ok`,i={ok:`#52c41a`,error:`#F5222D`,pending:`#FAAD14`,fail:`#8c8c8c`,nopython:`#8c8c8c`}[e]||`#52c41a`,a=getComputedStyle(t).getPropertyValue(r).trim()||i,o=document.createElement(`div`);o.className=`app__confetti`,o.style.left=n.left+n.width/2+`px`,o.style.top=n.top+n.height/2+`px`;let s=[`polygon(50% 0%, 0% 100%, 100% 100%)`,`polygon(62% 0%, 100% 40%, 45% 100%, 0% 52%)`,`polygon(0% 0%, 100% 18%, 82% 100%, 12% 70%)`,`polygon(22% 0%, 100% 8%, 88% 100%, 0% 76%)`,`polygon(0% 32%, 100% 0%, 76% 100%, 18% 86%)`,`polygon(8% 0%, 100% 22%, 70% 100%, 0% 64%)`,`polygon(0% 12%, 100% 0%, 100% 78%, 30% 100%, 12% 55%)`],c=n.width/2,l=n.height/2;for(let e=0;e<22;e++){let e=document.createElement(`span`);e.className=`app__confetti-bit`;let t=Math.random()*4|0,n,r;t===0?(n=(Math.random()*2-1)*c,r=-l):t===1?(n=c,r=(Math.random()*2-1)*l):t===2?(n=(Math.random()*2-1)*c,r=l):(n=-c,r=(Math.random()*2-1)*l);let i=Math.hypot(n,r)||1,u=Math.atan2(r/i,n/i)+(Math.random()-.5)*.5,d=16+Math.random()*26;e.style.setProperty(`--sx`,n.toFixed(1)+`px`),e.style.setProperty(`--sy`,r.toFixed(1)+`px`),e.style.setProperty(`--tx`,(Math.cos(u)*d).toFixed(1)+`px`),e.style.setProperty(`--ty`,(Math.sin(u)*d).toFixed(1)+`px`),e.style.setProperty(`--rot`,(Math.random()*720-360).toFixed(0)+`deg`),e.style.setProperty(`--clip`,s[Math.random()*s.length|0]),e.style.setProperty(`--c`,a),e.style.setProperty(`--o`,(.68+Math.random()*.27).toFixed(2));let f=Math.random(),p,m;f<.35?(p=1.5+Math.random()*2,m=10+Math.random()*10):f<.75?(p=4+Math.random()*5,m=p*(.6+Math.random()*.8)):(p=2+Math.random()*2.5,m=p),e.style.width=p.toFixed(0)+`px`,e.style.height=m.toFixed(0)+`px`,o.appendChild(e)}document.body.appendChild(o),setTimeout(()=>o.remove(),800)},async loadCard(e,t={}){if(e){this.loadingCard=!0;try{let n=await Y(`/__card/${encodeURIComponent(e)}`);if(!n.ok){this.rt.pushError(`loadCard`,`HTTP `+n.status);return}let r=await n.json();if(!r.schema){this.rt.pushError(`loadCard`,`schema 读取失败`);return}this.selectCard(e),e!==this.loadedCardId&&(this.activeTab=`vars`),this.loadedCardId=e,t.clearAll?this.rt.clearErrors():this.rt.clearBindingErrors(),this.rt.clearApiCalls(),t.keepScope||this.rt.setRootScope(mv(r.schema,fG)),this.currentCard={schema:r.schema},this.currentSchema=r.schema,this.cardImportMeta=null,this.fetchImportMeta(e),this.localSchema=this.cloneSchema(r.schema),this.localData=this.cloneData(mv(r.schema,fG)),this.preview=qu(r.schema),typeof window<`u`&&(window.__cardModel=$u(r.schema)),this.cardReady=!1,this.$nextTick(()=>{this.cardReady=!0}),this.syncDataToSchema(),this.selectedNodeId=``,this.baseline={schema:this.cloneSchema(this.currentSchema)},this.reloadToken+=1,RS(),TD(),this.refreshValidateBadge(),await this.loadHistory(e)}finally{this.loadingCard=!1}}},cloneSchema(e){return e?JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t)):null},cloneData(e){return e==null?e:JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t))},applySchemaSnapshot(e){if(!this.selectedId||!e)return;let t=e.schema||e,n=e.data==null?mv(t,fG):e.data;this.currentSchema=this.cloneSchema(t),this.rt.setRootScope(this.cloneData(n)),this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``,this.reloadToken+=1,this.refreshValidateBadge()},commitHistory(){if(!this.currentSchema||!this.baseline||!dG(this.currentSchema,this.baseline.schema,this.rt.rootScope))return;let e={schema:this.baseline.schema};this.past.push(e),this.past.length>30&&this.past.shift(),this.future=[],this.baseline={schema:this.cloneSchema(this.currentSchema)},this.persistSnapshot(e)},scheduleCommit(){this._commitTimer&&clearTimeout(this._commitTimer),this._commitTimer=setTimeout(()=>{this._commitTimer=null,this.commitHistory()},500)},persistSnapshot(e){let t=this.selectedId;if(!t)return;let n=e.schema||e;Y(`/__history/${encodeURIComponent(t)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({schema:n},(e,t)=>e===`_schemaNode`?void 0:t,2)}).catch(e=>console.warn(`[历史快照落盘失败]`,e))},async loadHistory(e){this.past=[],this.future=[];try{let t=await Y(`/__history/${encodeURIComponent(e)}`);if(!t.ok)return;let n=await t.json().catch(()=>null),r=n&&n.snapshots||[];this.past=r.slice(-30).map(e=>({schema:e.schema,data:e.data==null?mv(e.schema,fG):e.data}))}catch(e){console.warn(`[加载编辑历史失败]`,e)}},undo(){if(!this.canUndo||this.remoteBusy)return;let e=this.past.pop();this.future.push(this.baseline),this.future.length>30&&this.future.shift(),this.baseline=e,this.applySchemaSnapshot(e)},redo(){if(!this.canRedo||this.remoteBusy)return;let e=this.future.pop();this.past.push(this.baseline),this.past.length>30&&this.past.shift(),this.baseline=e,this.applySchemaSnapshot(e)},async applyHistoryToLocal(){this.loadingCard||this.remoteBusy||this.historyDirty&&this.preview&&this.selectedId&&await this.saveCard()&&Q(`已将该版本保存到本地`,`ok`)},async generateCardCover(){if(!this.preview||!this.selectedId||this.coverBusy||this.remoteBusy)return;if(this.historyDirty&&!await this.saveCard()){Q(`本地保存失败,已取消生成预览图`,`err`);return}let e=null;try{let t=await Y(`/__card-image/`+encodeURIComponent(this.selectedId)+`?probe=1`),n=await t.json().catch(()=>({}));t.ok&&n.exists&&(e=n.file)}catch{}e?this.requestConfirm({title:`重新生成截图`,message:`该卡片已有截图(${e}),继续将覆盖它。确定重新生成吗?`,confirmText:`重新生成`,severity:`warn`,onConfirm:()=>this.doGenerateCover()}):this.doGenerateCover()},async doGenerateCover(){this.coverBusy=!0;try{let e=await Y(`/__card-image/`+encodeURIComponent(this.selectedId),{method:`POST`}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.message||`HTTP `+e.status);Q(`截图已生成(${t.width}×${t.height})→ ${t.file}`,`ok`,3e3)}catch(e){Q(`生成截图失败:`+String(e&&e.message||e),`err`,3600)}finally{this.coverBusy=!1}},onSchemaChanged(){this.selectedId&&this.currentSchema&&(this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``)},onSchemaCommit(){this.selectedId&&this.currentSchema&&(this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``,this.commitHistory())},syncDataToSchema(){let e=this.currentSchema;if(!e||!e.dictionary||!Array.isArray(e.dictionary.inputParams))return;let t=this.rt&&this.rt.rootScope;if(!t||typeof t!=`object`)return;let n=e.dictionary.inputParams,r=hv(e);for(let e of Object.keys(t)){let i=n.find(t=>t&&(t.key===e||t.name===e));if(!i)continue;let a=JSON.parse(JSON.stringify(t[e],(e,t)=>e===`_schemaNode`?void 0:t));r&&Object.prototype.hasOwnProperty.call(r,e)?r[e]=a:i.defaultValue=a}},onSelectNode(e){this.selectedNodeId=e||``},findPreviewNodeById(e,t){if(!e||t==null)return null;let n=String(t),r=e=>{if(!e)return null;if(String(e.id)===n)return e;let t=[];if(e.components&&t.push(...e.components),e.slots)for(let n of e.slots)n.components&&t.push(...n.components);for(let e of t){let t=r(e);if(t)return t}return null};return r(e)},copySelectedNode(){let e=this.selectedNodeId;if(!e||e===`_root`||!this.currentSchema||!this.preview)return;let t=this.findPreviewNodeById(this.preview.view,e);if(!t)return;let n=this.findSchemaNodeByComponentId(this.currentSchema.view,t.componentId);n&&(rd(n.node,this.selectedId),Q(`已复制节点(含子节点)`,`ok`))},pasteNode(){let e=td();if(!e||!this.currentSchema)return;let t=id(e),n=[...new Set(t.filter(e=>!ju[e]))];if(n.length){Q(`粘贴失败:含未知组件类型 `+n.join(`、`),`err`);return}let r=JSON.parse(JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t));ad(r);let i=this.selectedNodeId&&this.selectedNodeId!==`_root`?this.findPreviewNodeById(this.preview.view,this.selectedNodeId):null,a=`root`;i&&(a=Wu(i.className)?`into`:`after`),this.insertClone(r,i,a);let o=nd();o&&o!==this.selectedId?Q(`已从卡片「${o}」跨卡片粘贴到「${this.selectedId}」`,`ok`):Q(`已粘贴节点(含子节点)`,`ok`)},duplicateNode(){let e=this.selectedNodeId;if(!e||e===`_root`||!this.currentSchema||!this.preview)return;let t=this.findPreviewNodeById(this.preview.view,e);if(!t)return;let n=this.findSchemaNodeByComponentId(this.currentSchema.view,t.componentId);if(!n)return;let r=JSON.parse(JSON.stringify(n.node,(e,t)=>e===`_schemaNode`?void 0:t));ad(r),n.parentArr.splice(n.index+1,0,r),this.afterStructuralEdit(r.componentId)},insertClone(e,t,n){let r=this.currentSchema;if(n===`root`)r.view.components||(r.view.components=[]),r.view.components.push(e);else if(n===`into`){let n=t&&t._schemaNode;if(!n){r.view.components||(r.view.components=[]),r.view.components.push(e),this.afterStructuralEdit(e.componentId);return}let i=Gu(t.className),a=(n.slots||[]).find(e=>e.slotKey===i);a||(n.slots||=[],a={slotKey:i,slotScope:!1,slotSwitch:`1`,components:[]},n.slots.push(a)),a.components||(a.components=[]),a.components.push(e)}else{let n=this.findSchemaNodeByComponentId(r.view,t.componentId);n?n.parentArr.splice(n.index+1,0,e):(r.view.components||(r.view.components=[]),r.view.components.push(e))}this.afterStructuralEdit(e.componentId)},afterStructuralEdit(e){let t=this.currentSchema;this.reloadToken+=1,this.preview=qu(t),typeof window<`u`&&(window.__cardModel=$u(t)),this.syncDataToSchema(),this.selectedNodeId=e&&this.findViewIdByComponentId(this.preview.view,e)||``,this.scheduleCommit()},deleteSelectedNode(){let e=this.selectedNodeId;if(!e||e===`_root`||!this.currentSchema||!this.preview)return;let t=this.findPreviewNodeById(this.preview.view,e);if(!t)return;let n=this.findSchemaNodeByComponentId(this.currentSchema.view,t.componentId);n&&(n.parentArr.splice(n.index,1),this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema(),this.selectedNodeId=``,yO(),this.scheduleCommit())},hasTextSelection(){if(typeof window>`u`||!window.getSelection)return!1;let e=window.getSelection();return!!e&&!e.isCollapsed&&e.toString().trim()!==``},hasNodeSelection(){return!!this.selectedNodeId&&this.selectedNodeId!==`_root`},isEditableTarget(e){let t=e.target;if(!t)return!1;let n=t.tagName;return!!(n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable)},onKeydown(e){if(this.chromeOff||!this.preview)return;let t=this.isEditableTarget(e),n=e.ctrlKey||e.metaKey,r=e.key;if(n&&(r===`c`||r===`C`)){if(t||this.hasTextSelection()||!this.hasNodeSelection())return;this.copySelectedNode(),e.preventDefault()}else if(n&&(r===`v`||r===`V`)){if(t||this.hasTextSelection()||!this.hasNodeSelection()||!td())return;this.pasteNode(),e.preventDefault()}else if(n&&(r===`d`||r===`D`)){if(t||this.hasTextSelection()||!this.hasNodeSelection())return;this.duplicateNode(),e.preventDefault()}else if(n&&(r===`z`||r===`Z`)){if(t)return;e.preventDefault(),e.shiftKey?this.redo():this.undo()}else if(n&&(r===`y`||r===`Y`)){if(t)return;e.preventDefault(),this.redo()}else if(r===`Delete`||r===`Backspace`){if(t||!this.selectedNodeId||this.selectedNodeId===`_root`)return;e.preventDefault(),this.deleteSelectedNode()}else r===`Escape`&&this.selectedNodeId&&(this.selectedNodeId=``,e.preventDefault())},onHoverNode(e){if(!e){yO();return}if(e.leave){yO(e.id);return}let t=typeof document<`u`?document.querySelector(`.phone__screen`):null;if(!t){yO(e.id);return}let n=e=>window.CSS&&CSS.escape?CSS.escape(String(e)):String(e).replace(/["\\\]]/g,`\\$&`),r=null;e.componentId!=null&&(r=t.querySelector(`[data-cid="`+n(e.componentId)+`"]`)),!r&&e.id!=null&&(r=t.querySelector(`[data-cid="`+n(e.id)+`"]`)),r?vO(r,e.id):yO(e.id)},onCanvasClick(e){if(!e.ctrlKey&&!e.metaKey||this.chromeOff)return;let t=e.target&&e.target.closest?e.target.closest(`[data-cid]`):null;if(!t)return;let n=t.getAttribute(`data-cid`);if(!n)return;let r=this.findPreviewNodeByCid(n);r&&(this.activeTab=`structure`,this.selectedNodeId=r.id)},onAiLocateNode(e){let t=e?this.findPreviewNodeByCid(e):null;t?(this.activeTab=`structure`,this.selectedNodeId=t.id):Q(`没找到组件 ${e||``}:卡片可能已被改动,重新校验一次即可`,`err`)},findPreviewNodeByCid(e){let t=this.preview&&this.preview.view;if(!t)return null;let n=String(e),r=e=>{if(!e)return null;if(String(e.componentId==null?e.id:e.componentId)===n)return e;let t=[];if(e.components&&t.push(...e.components),e.slots)for(let n of e.slots)n.components&&t.push(...n.components);for(let e of t){let t=r(e);if(t)return t}return null};return r(t)},onAddNode(e){this.currentSchema&&(this.addNodeTarget=e||null,this.addNodePanelOpen=!0)},cancelAddNode(){this.addNodePanelOpen=!1,this.addNodeTarget=null},findSchemaLocation(e,t){let n=e=>{for(let r=0;r<e.length;r++){let i=e[r];if(i===t)return{containerArr:e,index:r};let a=i.slots||[];for(let e of a){let t=n(e.components||[]);if(t)return t}}return null};return n(e&&e.components||[])},findViewIdByComponentId(e,t){if(!e)return null;if(e.componentId===t)return e.id;let n=[];if(e.components&&n.push(...e.components),e.slots)for(let t of e.slots)t.components&&n.push(...t.components);for(let e of n){let n=this.findViewIdByComponentId(e,t);if(n)return n}return null},findSchemaNodeByComponentId(e,t){let n=(e,r)=>{for(let i=0;i<e.length;i++){let a=e[i];if(a.componentId===t)return{node:a,parentArr:e,index:i,owner:r};let o=a.slots||[];for(let e of o){let t=n(e.components||[],a);if(t)return t}}return null};return n(e&&e.components||[],`root`)},isDescendantCompId(e,t){if(!t||!t.componentId)return!1;if(t.componentId===e)return!0;let n=[];if(t.components&&n.push(...t.components),t.slots)for(let e of t.slots)e.components&&n.push(...e.components);for(let t of n)if(this.isDescendantCompId(e,t))return!0;return!1},moveNode(e,t,n){let r=this.currentSchema;if(!r||!r.view||e===t)return!1;let i=this.findSchemaNodeByComponentId(r.view,e);if(!i)return!1;let a=i.node;if(this.isDescendantCompId(t,a))return!1;let o,s;if(t===`__root__`)r.view.components||(r.view.components=[]),o=r.view.components,s=o.length;else{let e=this.findSchemaNodeByComponentId(r.view,t);if(!e)return!1;let i=e.node;if(n===`inside`){if(!Wu(i.className))return!1;let e=Gu(i.className),t=(i.slots||[]).find(t=>t.slotKey===e);t||(i.slots||=[],t={slotKey:e,slotScope:!1,slotSwitch:`1`,components:[]},i.slots.push(t)),t.components||(t.components=[]),o=t.components,s=o.length}else o=e.parentArr,s=n===`before`?e.index:e.index+1}let c=o===i.parentArr&&i.index<s;return i.parentArr.splice(i.index,1),c&&--s,o.splice(s,0,a),a},onMoveNode({sourceCompId:e,targetCompId:t,position:n}){if(!this.currentSchema||!this.moveNode(e,t,n))return;this.reloadToken+=1,this.preview=qu(this.currentSchema),typeof window<`u`&&(window.__cardModel=$u(this.currentSchema)),this.syncDataToSchema();let r=this.findViewIdByComponentId(this.preview.view,e);this.selectedNodeId=r||``,r&&(this.moveCollapseToken+=1)},onPickComponent(e){let t=this.addNodeTarget||{},n=t.node||null,r=t.mode||`auto`,i=this.currentSchema;if(!i){this.cancelAddNode();return}let a;try{a=Ku(e)}catch(e){console.error(`[创建组件节点失败]`,e),this.rt.pushError(`addNode`,String(e&&e.message)),this.cancelAddNode();return}let o=!n||n.className===`Root`;if((r===`before`||r===`after`)&&!o){let e=n._schemaNode,t=e?this.findSchemaLocation(i.view,e):null;if(!t)i.view.components||(i.view.components=[]),i.view.components.push(a);else{let e=r===`before`?t.index:t.index+1;t.containerArr.splice(e,0,a)}}else if(o)i.view.components||(i.view.components=[]),i.view.components.push(a);else{let e=n._schemaNode;if(!e){this.cancelAddNode();return}if(Wu(n.className)){let t=Gu(n.className),r=(e.slots||[]).find(e=>e.slotKey===t);r||(e.slots||=[],r={slotKey:t,slotScope:!1,slotSwitch:`1`,components:[]},e.slots.push(r)),r.components||(r.components=[]),r.components.push(a)}else{let t=this.findSchemaLocation(i.view,e);t?t.containerArr.splice(t.index+1,0,a):(i.view.components||(i.view.components=[]),i.view.components.push(a))}}this.cancelAddNode(),this.reloadToken+=1,this.preview=qu(i),typeof window<`u`&&(window.__cardModel=$u(i)),this.syncDataToSchema();let s=this.findViewIdByComponentId(this.preview.view,a.componentId);this.selectedNodeId=s||``,this.scheduleCommit()},async runSync(e){if(this.syncingRemote||e&&!this.selectedId)return;this.syncingRemote=!0,this.syncedRemote=!1,this.syncTarget=e?`selected`:`full`;let t=null,n=()=>{t&&=(clearTimeout(t),null)};try{let n=await Y(`/__sync`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e?{cardCode:e}:{})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+n.status)}let r=await n.json().catch(()=>({}));if(!r.ok||!r.jobId)throw Error(r.message||r.error||`同步任务启动失败`);let i=await new Promise((e,n)=>{let i=0,a=async()=>{try{let t=await Y(`/__sync/progress?jobId=`+encodeURIComponent(r.jobId)),n=await t.json().catch(()=>({}));if(!t.ok||!n.ok)throw Error(n.message||`进度查询失败`);if(n.finished){e(n.result||{});return}}catch(e){console.error(`[同步进度查询失败]`,e)}++i>=200?n(Error(`同步超时(进度查询无响应)`)):t=setTimeout(a,600)};a()});if(i.needCredentials){this.openLoginModal(`sync`);return}if(i.cancelled){Q(`同步已取消`,`ok`);return}if(!i.success){let e=(i.failed||[]).map(e=>`${e.id}: ${e.error}`).join(`; `);throw Error(e||i.error||`同步失败`)}this.syncedRemote=!0,this.credentialsReady=!0,this.syncTimer&&clearTimeout(this.syncTimer),this.syncTimer=setTimeout(()=>{this.syncedRemote=!1,this.syncTarget=null},1800),await this.onRefresh(),Q(this.syncTarget===`selected`?`已拉取最新卡到本地`:`拉取全部卡完成`,`ok`),this.persistRemoteVersion(this.selectedId,null)}catch(e){console.error(`[同步远程数据失败]`,e),Q(`同步失败:`+(e&&e.message),`err`)}finally{n(),this.syncingRemote=!1}},syncSelected(){return this.runSync(this.selectedId)},async openRemoteAllCards(){if(this.syncProgressOpen||this.syncingRemote)return;this.remoteAllOpen=!0;let e=this.readRemoteCardsCache();if(e){if(this.remoteCards=e.cards,this.remoteCardsError=``,this.remoteCardsLoading=!1,Date.now()-e.at<gG)return;this.revalidateRemoteCards()}else await this.fetchRemoteCards()},async fetchRemoteCards(){this.remoteCardsLoading=!0,this.remoteCardsError=``;try{let e=await Y(`/__remote-cards`),t=await e.json().catch(()=>({}));if(t.needCredentials){this.remoteAllOpen=!1,this.openLoginModal(`remote-all`);return}if(!e.ok||!t.ok)throw Error(t.message||t.error||`HTTP `+e.status);let n=Array.isArray(t.cards)?t.cards:[];this.remoteCards=n,this.writeRemoteCardsCache(n)}catch(e){this.remoteCardsError=e&&e.message||`远端卡片列表加载失败`}finally{this.remoteCardsLoading=!1}},async revalidateRemoteCards(){if(!this.remoteCardsRefreshing){this.remoteCardsRefreshing=!0;try{let e=await Y(`/__remote-cards`),t=await e.json().catch(()=>({}));if(!e.ok||!t.ok||t.needCredentials)return;let n=Array.isArray(t.cards)?t.cards:[];this.remoteCards=n,this.remoteCardsError=``,this.writeRemoteCardsCache(n)}catch{}finally{this.remoteCardsRefreshing=!1}}},readRemoteCardsCache(){if(this._remoteCardsMem)return this._remoteCardsMem;let e=_G();return e&&(this._remoteCardsMem=e),e},writeRemoteCardsCache(e){let t={v:1,at:Date.now(),cards:e};this._remoteCardsMem=t,vG(e)},closeRemoteAllCards(){this.remoteAllOpen=!1,this.remoteCardFormOpen=!1},openRemoteCardCreate(){this.remoteCardFormMode=`create`,this.remoteCardFormCard=null,this.remoteCardFormOpen=!0},openRemoteCardEdit(e){e&&(this.remoteCardFormMode=`edit`,this.remoteCardFormCard=e,this.remoteCardFormOpen=!0)},requestDeleteRemoteCard(e){if(!e||this.remoteCardDeletingId)return;let t=e.title||e.id;this.requestConfirm({title:`删除远端卡片`,message:`即将从远端删除卡片「${t}」(${e.id})。删除后该卡片及其发布记录将从远端移除,且无法恢复——此操作不可撤销。本地 src/cards 下的同名目录不受影响。`,confirmText:`删除`,severity:`danger`,onConfirm:()=>this.deleteRemoteCardItem(e)})},async deleteRemoteCardItem(e){if(!e||!e.cardId)Q(`删除失败:该卡片缺少远端主键 cardId,请刷新列表后重试`,`err`,3600);else{this.remoteCardDeletingId=e.id;try{let t=await Y(`/__remote-card/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardId:e.cardId})}),n=await t.json().catch(()=>({}));if(n.needCredentials){this.openLoginModal(`remote-all`);return}if(!t.ok||!n.ok)throw Error(n.message||n.error||`HTTP `+t.status);Q(`已删除远端卡片 ${e.id}`,`ok`),this.revalidateRemoteCards()}catch(e){Q(`删除失败:`+(e&&e.message||e),`err`,3600)}finally{this.remoteCardDeletingId=``}}},onRemoteCardSubmitted({mode:e,code:t}){this.remoteCardFormOpen=!1,Q(e===`edit`?`已更新远端卡片 ${t} 的基本信息`:`已在远端新建卡片 ${t}`,`ok`),this.revalidateRemoteCards()},requestDownloadSelected(e){!this.syncProgressOpen&&e&&e.length&&this.requestConfirm({title:`下载选中卡片`,message:`即将从远端拉取 ${e.length} 张卡片并覆盖本地同名卡(已有内容将被替换,不可撤销)。是否继续?`,confirmText:`开始下载`,severity:`warn`,onConfirm:()=>this.startSyncJob(e)})},requestDownloadAll(){this.syncProgressOpen||this.requestConfirm({title:`下载全部卡片`,message:`即将从远端拉取完整卡片列表,并逐张覆盖本地同名卡片。本地独有卡片会保留,但被覆盖卡片的未保存改动将丢失,且无法撤销。是否继续?`,confirmText:`开始下载`,severity:`warn`,onConfirm:()=>this.startSyncJob(null)})},async startSyncJob(e){this.syncPendingCodes=e;try{let t=await Y(`/__sync`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e?{cardCodes:e}:{})}),n=await t.json().catch(()=>({}));if(n.needCredentials){this.openLoginModal(`remote-all`);return}if(!t.ok||!n.ok)throw Error(n.message||n.error||`HTTP `+t.status);this.syncJobId=n.jobId,this.syncProgress={done:0,total:Number(n.total)||0,current:``},this.syncProgressOpen=!0,this.pollSyncProgress()}catch(e){this.syncPendingCodes=void 0,Q(`启动下载失败:`+(e&&e.message),`err`)}},pollSyncProgress(){this.syncPollTimer&&clearTimeout(this.syncPollTimer);let e=async()=>{if(this.syncJobId&&this.syncProgressOpen){try{let e=await Y(`/__sync/progress?jobId=`+encodeURIComponent(this.syncJobId)),t=await e.json().catch(()=>({}));if(!e.ok||!t.ok)throw Error(t.message||`进度查询失败`);if(this.syncProgress={done:Number(t.done)||0,total:Number(t.total)||0,current:t.currentTitle||t.currentId||``},t.finished){this.onSyncJobFinished(t.result||{});return}}catch(e){console.error(`[同步进度查询失败]`,e)}this.syncPollTimer=setTimeout(e,600)}};e()},stopSyncPolling(){this.syncPollTimer&&=(clearTimeout(this.syncPollTimer),null)},async onSyncJobFinished(e){if(this.stopSyncPolling(),this.syncProgressOpen=!1,this.syncJobId=``,e.needCredentials){this.openLoginModal(`remote-all`);return}let t=this.syncPendingCodes;if(this.syncPendingCodes=void 0,e.cancelled){let t=(e.synced||[]).length;Q(t?`下载已取消(已完成 ${t} 张)`:`下载已取消`,`ok`)}else if(e.success){let t=(e.synced||[]).length,n=(e.failed||[]).length;Q(n?`下载完成:成功 ${t} 张,失败 ${n} 张`:`下载完成:共 ${t} 张`,n?`warn`:`ok`)}else Q(`下载失败:`+(e.error||`未知错误`),`err`);if((e.success||e.cancelled)&&(this.credentialsReady=!0),await this.fetchCardList(),this.selectedId)try{await this.onRefresh()}catch{}e.success&&t&&t.length&&(this.remoteAllOpen=!1)},cancelSyncJob(){this.syncJobId&&Y(`/__sync/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({jobId:this.syncJobId})}).catch(()=>{})},async checkCredentials(){try{let e=await Y(`/__login-credentials`),t=await e.json().catch(()=>({}));this.credentialsReady=!e.ok||!!t.hasCredentials}catch{this.credentialsReady=!0}},onRemoteTrigger(e){this.remoteToggleFn=e,!this.remoteBusy&&(this.credentialsReady?e():this.openLoginModal(`dropdown`))},openLoginModal(e){this.loginModal=!0,this.loginName=``,this.loginPassword=``,this.loginError=``,this.loginPendingAction=e||``},closeLoginModal(){this.loginSubmitting||(this.loginModal=!1,this.loginPassword=``,this.loginError=``,this.loginPendingAction=``,this.remoteToggleFn=null)},async submitLogin(){if(this.loginSubmitting)return;let e=this.loginName.trim(),t=this.loginPassword;if(!e||!t)this.loginError=`账号与密码均不能为空`;else{this.loginSubmitting=!0,this.loginError=``;try{let n=await Y(`/__login-credentials`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({loginName:e,loginPassword:t})}),r=await n.json().catch(()=>({}));if(!n.ok||!r.ok)throw Error(r.message||r.error||`HTTP `+n.status);this.credentialsReady=!0,this.loginModal=!1,this.loginPassword=``,Q(`登录验证成功,凭据已保存`,`ok`);let i=this.loginPendingAction;if(this.loginPendingAction=``,i===`sync`)await this.runSync(this.syncTarget===`selected`?this.selectedId:void 0);else if(i===`publish`)await this.doPublish();else if(i===`slices`)await this.uploadCardSlices();else if(i===`dropdown`){let e=this.remoteToggleFn;this.remoteToggleFn=null,e&&this.$nextTick(()=>e())}else if(i===`remote-all`){this.remoteAllOpen=!0;let e=this.syncPendingCodes;e===void 0?this.openRemoteAllCards():this.startSyncJob(e)}}catch(e){this.loginError=e&&e.message||`登录验证失败`,this.loginPassword=``}finally{this.loginSubmitting=!1}}},chooseSync(e){this.preview&&this.selectedId&&!this.syncingRemote&&this.requestConfirm({title:`拉取最新卡`,message:`即将从远端拉取当前卡片「${this.selectedId}」的最新版本并覆盖本地。本地未保存的改动将丢失,且无法撤销。是否继续?`,confirmText:`继续同步`,onConfirm:()=>this.syncSelected()})},chooseRsave(e){if(e===`save`){if(!this.preview||!this.selectedId||this.savingRemote||!this.hasCardSource)return;this.requestConfirm({title:`推送当前卡`,message:`即将把本地卡片「${this.selectedId}」的当前版本推送并覆盖到远端。线上版本会被立即更新,且该操作不可撤销。推送成功后会为当前卡片截图并上传为远端列表预览图。是否继续?`,confirmText:`继续推送`,severity:`warn`,onConfirm:()=>this.saveToRemote()})}else if(e===`publish`){if(!this.preview||!this.selectedId||this.publishing||!this.hasCardSource)return;let e=this.historyDirty;this.requestConfirm({title:`卡片发布`,message:e?`当前卡片存在未保存到远端的改动,发布将使用远端「已保存」的版本(不含这些本地改动)。仍将以「最大版本号 +1」作为新版本号上线。确认继续?`:`即将取远端「${this.selectedId}」当前最大版本号并 +1,发布上线为新版本。发布的是远端已保存的卡片内容(建议先「推送当前卡」)。该操作不可撤销。确认继续?`,confirmText:`继续发布`,severity:e?`danger`:`warn`,onConfirm:()=>this.doPublish()})}else if(e===`slices`){if(!this.preview||!this.selectedId||this.uploadingSlices)return;this.requestConfirm({title:`当前卡切图上传`,message:`即将把当前卡片「${this.selectedId}」引用的本地切图(src/slices/)上传到远端图片库,并把卡片里的 /slices/ 引用替换为线上地址(@filestore/…)。本地切图文件保留不动;内容未变的切图会直接复用已有线上地址,不重复上传。`+(this.historyDirty?`
|
|
362
362
|
当前卡片有未保存的改动,会先保存到本地再执行,避免被随后的重载丢弃。`:``)+`
|
|
363
|
-
是否继续?`,confirmText:`继续上传`,onConfirm:()=>this.uploadCardSlices()})}else this.preview&&this.selectedId&&this.hasCardSource&&(this.remotePreviewOpen=!0)},requestConfirm({title:e,message:t,confirmText:n,cancelText:r,severity:i,onConfirm:a}){this.confirm={show:!0,title:e,message:t,confirmText:n||`继续`,cancelText:r||`取消`,severity:[`primary`,`warn`,`danger`].includes(i)?i:`primary`,onConfirm:a}},onConfirmDialog(){let e=this.confirm.onConfirm;this.confirm.show=!1,this.confirm.onConfirm=null,typeof e==`function`&&e()},onCancelDialog(){this.confirm.show=!1,this.confirm.onConfirm=null},async doPublish(){if(this.preview&&this.selectedId&&!this.publishing&&this.hasCardSource){this.publishing=!0;try{let e=await Y(`/__publish`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({schema:this.currentSchema})});if(!e.ok){let t=await e.json().catch(()=>({}));if(t.needCredentials){this.openLoginModal(`publish`);return}throw Error(t.message||t.error||`HTTP `+e.status)}let t=await e.json();if(!t.ok)throw Error(t.message||`发布失败`);let n=t.commit,r=n&&n.committed?` · 已提交 ${n.hash||`本地变更`}`:``;Q(`已发布版本 ${t.nextVersion}${r}`,`ok`),n&&n.committed===!1&&n.reason===`failed`&&Q(`发布成功,但卡片本地变更提交失败:${n.message||`未知原因`}`,`warn`,4e3),await this.persistRemoteVersion(this.selectedId,t.nextVersion),this.metaRefreshToken++,this.historyRefreshToken++}catch(e){console.error(`[卡片发布失败]`,e),Q(`发布失败:`+(e&&e.message),`err`)}finally{this.publishing=!1}}},async persistRemoteVersion(e,t){if(e)try{let n=t==null?`{}`:JSON.stringify({version:t}),r=await Y(`/__card-version/${encodeURIComponent(e)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:n});if(!r.ok){let e=await r.json().catch(()=>({}));if(e.needCredentials)return;throw Error(e.message||`HTTP `+r.status)}}catch(e){console.warn(`[persistRemoteVersion 失败]`,e&&e.message)}},async saveCard(){if(!this.preview||!this.selectedId)return;this.savingCard=!0;let e=this.selectedId;this.selfSaveId=e,this.selfSaveAt=Date.now();try{try{let e=await this.fetchDiskCard(this.selectedId);if(e&&e.schema){let t=e.schema,n=this.currentSchema;n&&(t.pageId&&(n.pageId=t.pageId),t.name&&(n.name=t.name),t.desc!==void 0&&(n.desc=t.desc))}}catch{}this.syncDataToSchema();let e={schema:this.currentSchema},t=JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t,2),n=await Y(`/__card/${encodeURIComponent(this.selectedId)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:t});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.message||`HTTP `+n.status)}return this.currentCard={schema:e.schema},this.localSchema=this.cloneSchema(this.currentSchema),this.localData=this.cloneData(mv(this.currentSchema,fG)),this.savedCard=!0,this.refreshValidateBadge(),this.saveTimer&&clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.savedCard=!1},1800),!0}catch(e){return console.error(`[本地保存失败]`,e),this.rt.pushError(`saveCard`,String(e&&e.message)),this.selfSaveId=``,this.selfSaveAt=0,!1}finally{this.savingCard=!1}},async fetchDiskCard(e){let t=await Y(`/__card/${encodeURIComponent(e)}`);if(!t.ok)throw Error(`HTTP `+t.status);return t.json()},async fetchImportMeta(e){if(!e)this.setCardImportMeta(null);else try{let t=await Y(`/__import-meta/${encodeURIComponent(e)}`);if(!t.ok){this.setCardImportMeta(null);return}let n=await t.json().catch(()=>({}));this.setCardImportMeta(n&&n.meta||null)}catch{this.setCardImportMeta(null)}},setCardImportMeta(e){this.cardImportMeta=e,!(e&&e.source)&&this.activeTab===`history`&&(this.activeTab=`vars`)},async saveToRemote({fromAutoSave:e=!1}={}){if(!this.preview||!this.selectedId||this.savingRemote)return;this.savingRemote=!0,this.savedRemote=!1,this.verifiedRemote=null;let t=!1;try{if(this.historyDirty){let e=await this.saveCard();t=!!e,e||console.warn(`[推送] 本地落盘失败:预览图可能滞后于本次推送的内容`)}try{let e=await this.fetchDiskCard(this.selectedId);e&&e.schema&&e.schema.pageId&&this.currentSchema&&(this.currentSchema.pageId=e.schema.pageId)}catch{}this.syncDataToSchema(),this.selfSaveId=this.selectedId,this.selfSaveAt=Date.now();let n=await Y(`/__save`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:this.selectedId,schema:this.currentSchema},(e,t)=>e===`_schemaNode`?void 0:t,2)});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+n.status)}let r=await n.json();if(!r.ok)throw Error(r.error||`远端保存失败`);this.verifiedRemote=r.verified?!!r.verified.ok:null,this.savedRemote=!0;let i=r.preview||null;if(this.verifiedRemote===!1){let t=r.verified||{},n=t.diff&&t.diff.length?`差异:`+t.diff.join(`;`):t.readBackError||`读回校验未通过`;return console.warn(`[保存校验不符]`,t),e||Q(`已保存至远端,但读回校验未通过`,`err`),{ok:!0,verified:!1,message:n,preview:i}}return e||(i&&i.ok===!1?Q(`已保存至远端,但预览图未更新:`+(i.message||i.error||`未知原因`),`warn`,3600):Q(i&&i.ok?`已保存至远端,预览图已更新`:`已保存至远端`,`ok`)),this.metaRefreshToken++,this.historyRefreshToken++,this.saveRemoteTimer&&clearTimeout(this.saveRemoteTimer),this.saveRemoteTimer=setTimeout(()=>{this.savedRemote=!1,this.verifiedRemote=null},2500),{ok:!0,verified:this.verifiedRemote,preview:i}}catch(n){return console.error(`[保存至远端失败]`,n),e||Q(`保存至远端失败:`+(n&&n.message),`err`),t||(this.selfSaveId=``,this.selfSaveAt=0),{ok:!1,verified:null,message:n&&n.message||String(n)}}finally{this.savingRemote=!1}},onRestoreHistory(e){if(!e||!this.selectedId||this.restoringHistory)return;let t=e.summary&&e.summary.componentCount!=null?`,${e.summary.componentCount} 个组件`:``;this.requestConfirm({title:`加载历史版本到编辑器`,message:`将把远端版本 #${e.id}(${e.createTime}${t})写入本地并重新载入编辑器。\n仅作加载,不会自动推送或保存到远端;当前未保存的本地编辑会被覆盖。`,confirmText:`加载此版本`,severity:`warn`,onConfirm:()=>this.restoreHistoryVersion(e)})},async restoreHistoryVersion(e){if(this.selectedId&&!this.restoringHistory){this.restoringHistory=!0;try{let t=await Y(`/__card-history/${encodeURIComponent(this.selectedId)}/restore`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({versionId:String(e.id)})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+t.status)}let n=await t.json();if(!n.ok)throw Error(n.error||`恢复历史版本失败`);if(n.needCredentials){this.openLoginModal(`history`);return}this._restoreSuppressUntil=Date.now()+mG,await this.loadCard(this.selectedId,{clearAll:!0}),Q(`已加载历史版本 #${e.id}(仅本地加载,未推送远端)`,`ok`)}catch(e){console.error(`[加载历史版本失败]`,e),Q(`加载历史版本失败:`+(e&&e.message||e),`err`)}finally{this.restoringHistory=!1}}},async uploadCardSlices(){if(!this.preview||!this.selectedId||this.uploadingSlices)return;let e=this.selectedId;this.uploadingSlices=!0;try{if(this.historyDirty&&!await this.saveCard())throw Error(`本地保存失败,已中止切图上传`);this.selfSaveId=e,this.selfSaveAt=Date.now();let t=await Y(`/__slice-upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardId:e})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+t.status)}let n=await t.json();if(n.needCredentials){this.openLoginModal(`slices`);return}if(this.selfSaveAt=Date.now(),!n.success){let e=(n.failed||[]).map(e=>`${e.name}: ${e.error}`).join(`; `);throw Error(e||`切图上传失败`)}await this.onRefresh();let r=(n.rewritten||[]).reduce((e,t)=>e+t.count,0);n.referenced?Q(`当前卡切图上传完成:新上传 ${n.uploaded.length} 张、复用 ${n.skipped.length} 张,替换引用 ${r} 处`,`ok`):Q(`当前卡片没有引用本地切图,无需上传`,`ok`),n.dangling&&n.dangling.length&&Q(`有 ${n.dangling.length} 处引用的切图在 src/slices 下不存在:${n.dangling.join(`、`)}`,`err`)}catch(e){console.error(`[切图上传失败]`,e),Q(`当前卡切图上传失败:`+(e&&e.message),`err`),this.selfSaveId=``,this.selfSaveAt=0}finally{this.uploadingSlices=!1}},async syncCardMeta(e){let t=await this.fetchCardMeta(e);if(!t)return;let n=this.cardList.findIndex(t=>t.id===e);n>=0?this.cardList.splice(n,1,t):this.cardList.push(t),this.cardCount=this.cardList.length},async fetchCardMeta(e){try{let t=await Y(`/__card/`+encodeURIComponent(e)+`/meta`);return t.ok?await t.json():null}catch(e){return console.error(`[读取卡片列表项失败]`,e),null}},async fetchCardList(){try{let e=await Y(`/__cards`);if(!e.ok)return;let t=await e.json(),n=t&&t.cards||[];this.cardList=n,this.cardCount=n.length}catch(e){console.error(`[加载卡片列表失败]`,e)}},async onGalleryDelete(e){try{let t=await Y(`/__card/${encodeURIComponent(e)}`,{method:`DELETE`}),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n&&(n.message||n.error)||`HTTP ${t.status}`);if(Q(`已删除本地卡片 ${e}`,`ok`),this.$refs.chatPanel?.discardCard(e),await this.fetchCardList(),this.selectedId===e){let e=this.cardList[0];e?await this.loadCard(e.id):(this.selectedId=``,this.currentSchema=null,this.preview=null)}}catch(e){Q(`删除卡片失败:${e.message}`,`err`)}},async onNewCardCreated(e){this.cardDialog.visible=!1,Q(`已创建空白卡片 ${e}`,`ok`),await this.fetchCardList(),this.chatBusy?Q(`AI 正在生成「${this.selectedId}」:新卡 ${e} 已建好,本轮结束后再切过去`,`err`,3600):await this.loadCard(e)},async onRefresh(){let e=this.selectedId;if(e&&!this.refreshing){this.refreshing=!0;try{await this.loadCard(e),await this.syncCardMeta(e);let t=this.cardList.find(t=>t.id===e);t&&this.currentSchema&&this.currentSchema.name&&(t.name=this.currentSchema.name)}catch(e){console.error(`[刷新卡片失败]`,e),this.rt.pushError(`refresh`,String(e&&e.message))}finally{this.refreshing=!1}}},onChatTurnFinished(e){if(this.chatProgress=null,this.aiChatOpen)return;let t=e&&e.steps||0,n=WL(e&&e.ms||0),r=GL(e&&e.finishedAt||Date.now());e&&e.status===`error`?Q(`AI 助手本轮报错(${r} · ${t} 步 / ${n}),展开面板查看原因`,`err`):e&&e.status===`aborted`?Q(`AI 助手本轮已终止(${r} · ${t} 步):展开面板可「从中断处继续」`,`ok`):Q(`AI 助手已完成本轮(${r} · ${t} 步 / ${n})`,`ok`)},async onChatRollbackTurn(e){let t=e&&e.cardId||this.selectedId;if(!t||this.loadingCard)return;if(t!==this.selectedId){Q(`请先切换到那张卡片再回滚`,`err`);return}let n=[];try{let e=await Y(`/__history/${encodeURIComponent(t)}`);if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json().catch(()=>null);n=r&&r.snapshots||[]}catch(e){Q(`读取历史快照失败:${e.message||e}`,`err`);return}let r=Number(e&&e.ts)||0,i=r?n.filter(e=>Number(e.ts)>=r-2e3):[],a=i.length?i[0]:n[n.length-1];if(!a||!a.schema){Q(`没找到本轮之前的历史快照(可能已被 30 张上限裁掉,或本轮没写入过卡片)`,`err`);return}let o=new Date(Number(a.ts)||Date.now()).toLocaleString(`zh-CN`,{hour12:!1});this.requestConfirm({title:`回滚到 AI 动手之前`,message:`将把卡片「${this.selectedCardName||t}」恢复到 ${o} 的版本,本轮及其后的 ${i.length||1} 张快照都会被撤销。回滚只改当前编辑态,可用 Ctrl+Z 撤回;确认无误后仍需点顶栏「保存到本地」才写盘。`,confirmText:`回滚`,severity:`warn`,onConfirm:()=>this.applyTurnRollback(a)})},applyTurnRollback(e){this.currentSchema&&e&&(this.past.push({schema:this.cloneSchema(this.currentSchema)}),this.past.length>30&&this.past.shift(),this.future=[],this.baseline={schema:this.cloneSchema(e.schema)},this.applySchemaSnapshot({schema:e.schema,data:e.data}),Q(`已回滚到本轮之前的版本(未落盘,可撤销;确认后点「保存到本地」)`,`ok`))},onCardsChanged(e){let t=e&&e.file||``,n=e&&e.type||`change`;if(n===`rename`&&e.oldId&&e.id&&e.oldId!==e.id)return this.applyCardRename(e.oldId,e.id);if(/\.history[\\/]/.test(t)||/data\.json$/i.test(t)||/\.import-meta\.json(\.tmp)?$/i.test(t))return;let r=t.match(/src[\\/]cards[\\/]([^\\/]+)[\\/]/),i=r?r[1]:null;this._ccIds||=new Set,this._ccTypes||={},i&&(this._ccIds.add(i),this._ccTypes[i]=n),!this._ccTimer&&(this._ccTimer=setTimeout(async()=>{this._ccTimer=null;let e=this._ccIds,t=this._ccTypes;if(this._ccIds=new Set,this._ccTypes={},!e.size)return;let n=Array.from(e),r=n[n.length-1];if(e.size===1&&r&&r===this.selectedId){if(this.selfSaveId===r&&Date.now()-this.selfSaveAt<pG){this.selfSaveId=``,this.selfSaveAt=0;return}if(this._restoreSuppressUntil&&Date.now()<this._restoreSuppressUntil){this._restoreSuppressUntil=0;return}if(this.historyDirty)this.promptExternalReload(r);else{let e=this.currentSchema&&this.currentSchema.name||r;this.showExternalReloadNote(this.chatBusy?`AI 助手已写入卡片「${e}」,预览已自动刷新`:`卡片「${e}」已在编辑器外被修改,已自动重新载入预览`),this.loadCard(this.selectedId)}return}if(e.size>1){await this.fetchCardList();let t=e.has(this.selectedId),n=this.selfSaveId===this.selectedId&&Date.now()-this.selfSaveAt<pG;if(t&&!n){if(this.historyDirty)this.promptExternalReload(this.selectedId);else{this.selfSaveId===this.selectedId&&(this.selfSaveId=``,this.selfSaveAt=0);let e=this.currentSchema&&this.currentSchema.name||this.selectedId;this.showExternalReloadNote(this.chatBusy?`AI 助手已写入卡片「${e}」,预览已自动刷新`:`卡片「${e}」已在编辑器外被修改,已自动重新载入预览`),this.loadCard(this.selectedId)}}return}if((t[r]||`change`)===`unlink`){let e=this.cardList.findIndex(e=>e.id===r);e>=0&&(this.cardList.splice(e,1),this.cardCount=this.cardList.length);return}let i=await this.fetchCardMeta(r);if(!i){await this.fetchCardList();return}let a=this.cardList.findIndex(e=>e.id===r);a>=0?this.cardList.splice(a,1,i):this.cardList.push(i),this.cardCount=this.cardList.length},120))},promptExternalReload(e){if(this.confirm.show)return;let t=this.currentSchema&&this.currentSchema.name||e;this.requestConfirm({title:`卡片已在编辑器外被修改`,message:`卡片「${t}」的 schema / data 在编辑器外发生了变更(例如 IDE 或其他工具覆盖了文件)。\n当前编辑器存在未保存的改动,是否放弃本地未保存改动并重新载入磁盘版本?`,confirmText:`重新载入`,cancelText:`保留我的改动`,onConfirm:()=>this.loadCard(e)})},showExternalReloadNote(e){this.externalReloadNote=e,this.externalReloadTimer&&clearTimeout(this.externalReloadTimer),this.externalReloadTimer=setTimeout(()=>{this.externalReloadNote=``,this.externalReloadTimer=null},3500)}}},EG=[`aria-busy`],DG={class:`app__logo`},OG=[`src`],kG={class:`app__logo-version`},AG={class:`csel-combo`},jG={class:`app__btn-group`},MG=[`disabled`],NG=[`disabled`],PG=[`disabled`],FG=[`title`],IG={class:`app__badge-text`},LG={class:`app__bar-actions`},RG={class:`app__op-group`,role:`group`,"aria-label":`编辑历史与本地操作`},zG=[`disabled`],BG=[`disabled`],VG=[`disabled`,`title`],HG=[`disabled`],UG=[`disabled`,`onClick`],WG={key:0,class:`app__icon app__icon--spin`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},GG={key:1,class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},KG={key:2,class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},qG={key:3,class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},JG={class:`app__remote-pop dd__menu`,role:`menu`},YG=[`title`,`onClick`],XG=[`title`,`onClick`],ZG=[`onClick`],QG=[`title`,`onClick`],$G=[`title`,`onClick`],eK=[`onClick`],tK=[`disabled`,`title`,`aria-pressed`],nK={class:`app__dev-svc`},rK=[`disabled`,`title`],iK={class:`app__dev-svc-head`},aK={class:`app__dev-svc-body`},oK={class:`app__dev-svc-row`},sK={class:`app__dev-svc-row app__dev-svc-row--col`},cK={class:`app__dev-svc-row app__dev-svc-row--col`},lK={key:0,class:`app__dev-svc-hint`},uK={class:`app__dev-svc-actions`},dK=[`title`],fK={style:{display:`none`}},pK=[`title`,`aria-expanded`],mK={key:0,class:`app__nosvc-banner`},hK={key:1,class:`app__nosvc-banner app__nosvc-banner--disconnected`},gK={key:2,class:`app__nosvc-banner app__extreload-banner`},_K={class:`app__stage`,ref:`stageEl`},vK={class:`phone__scaler`},yK=[`title`],bK={class:`canvas-bar__txt`},xK={class:`canvas-bar__chip`,title:`画布宽度预设(高度随列高自适应)`},SK={class:`canvas-bar__txt`},CK={class:`canvas-bar__size`,title:`画布实际尺寸(宽 × 高,高度随窗口自适应)`},wK=[`disabled`],TK=[`data-card-ready`],EK={class:`workside`},DK={class:`workside__cols`,ref:`colsEl`},OK={class:`login-modal modal-card`,role:`dialog`,"aria-modal":`true`},kK={class:`login-modal__row`},AK=[`disabled`],jK={class:`login-modal__row`},MK=[`disabled`],NK={key:0,class:`login-modal__error`},PK={class:`login-modal__actions`},FK=[`disabled`],IK=[`disabled`];function LK(e,t,n,r,i,a){let o=R(`CardSelect`),s=R(`Dropdown`),c=R(`ThemeSettings`),l=R(`Switch`),u=R(`ChatPanel`),d=R(`RenderTree`),f=R(`SelectionOverlay`),p=R(`HoverGuides`),m=R(`AlertCardLayer`),h=R(`DeviceOverlay`),g=R(`PickerOverlay`),_=R(`DatePickerOverlay`),v=R(`KeyboardOverlay`),y=R(`LoadingExOverlay`),b=R(`DebugPanel`),x=R(`ApiCallPanel`),S=R(`RemotePreview`),C=R(`ComponentPalette`),w=R(`CardGallery`),ee=R(`RemoteAllCards`),T=R(`RemoteCardFormDialog`),E=R(`SyncProgressModal`),D=R(`ExportDirDialog`),O=R(`ExportProgressModal`),te=R(`NewCardDialog`),ne=R(`ConfirmDialog`),re=R(`AppToast`),ie=R(`ImageLightbox`);return V(),H(`div`,{class:j([`app`,{"app--chrome-off":i.chromeOff}]),style:A({"--preview-width":a.previewWidth+`px`,"--api-panel-width":a.apiPanelWidth+`px`,"--debug-min":a.debugMinWidth+`px`})},[q(` 远端接口调用中(推送 / 拉取 / 切图上传 / 发布):顶栏整体冻结。
|
|
363
|
+
是否继续?`,confirmText:`继续上传`,onConfirm:()=>this.uploadCardSlices()})}else this.preview&&this.selectedId&&this.hasCardSource&&(this.remotePreviewOpen=!0)},requestConfirm({title:e,message:t,confirmText:n,cancelText:r,severity:i,onConfirm:a}){this.confirm={show:!0,title:e,message:t,confirmText:n||`继续`,cancelText:r||`取消`,severity:[`primary`,`warn`,`danger`].includes(i)?i:`primary`,onConfirm:a}},onConfirmDialog(){let e=this.confirm.onConfirm;this.confirm.show=!1,this.confirm.onConfirm=null,typeof e==`function`&&e()},onCancelDialog(){this.confirm.show=!1,this.confirm.onConfirm=null},async doPublish(){if(this.preview&&this.selectedId&&!this.publishing&&this.hasCardSource){this.publishing=!0;try{let e=await Y(`/__publish`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({schema:this.currentSchema})});if(!e.ok){let t=await e.json().catch(()=>({}));if(t.needCredentials){this.openLoginModal(`publish`);return}throw Error(t.message||t.error||`HTTP `+e.status)}let t=await e.json();if(!t.ok)throw Error(t.message||`发布失败`);let n=t.commit,r=n&&n.committed?` · 已提交 ${n.hash||`本地变更`}`:``;Q(`已发布版本 ${t.nextVersion}${r}`,`ok`),n&&n.committed===!1&&n.reason===`failed`&&Q(`发布成功,但卡片本地变更提交失败:${n.message||`未知原因`}`,`warn`,4e3),await this.persistRemoteVersion(this.selectedId,t.nextVersion),this.metaRefreshToken++,this.historyRefreshToken++}catch(e){console.error(`[卡片发布失败]`,e),Q(`发布失败:`+(e&&e.message),`err`)}finally{this.publishing=!1}}},async persistRemoteVersion(e,t){if(e)try{let n=t==null?`{}`:JSON.stringify({version:t}),r=await Y(`/__card-version/${encodeURIComponent(e)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:n});if(!r.ok){let e=await r.json().catch(()=>({}));if(e.needCredentials)return;throw Error(e.message||`HTTP `+r.status)}}catch(e){console.warn(`[persistRemoteVersion 失败]`,e&&e.message)}},async saveCard(){if(!this.preview||!this.selectedId)return;this.savingCard=!0;let e=this.selectedId;this.selfSaveId=e,this.selfSaveAt=Date.now();try{try{let e=await this.fetchDiskCard(this.selectedId);if(e&&e.schema){let t=e.schema,n=this.currentSchema;n&&(t.pageId&&(n.pageId=t.pageId),t.name&&(n.name=t.name),t.desc!==void 0&&(n.desc=t.desc))}}catch{}this.syncDataToSchema();let e={schema:this.currentSchema},t=JSON.stringify(e,(e,t)=>e===`_schemaNode`?void 0:t,2),n=await Y(`/__card/${encodeURIComponent(this.selectedId)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:t});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.message||`HTTP `+n.status)}return this.currentCard={schema:e.schema},this.localSchema=this.cloneSchema(this.currentSchema),this.localData=this.cloneData(mv(this.currentSchema,fG)),this.savedCard=!0,this.refreshValidateBadge(),this.saveTimer&&clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.savedCard=!1},1800),!0}catch(e){return console.error(`[本地保存失败]`,e),this.rt.pushError(`saveCard`,String(e&&e.message)),this.selfSaveId=``,this.selfSaveAt=0,!1}finally{this.savingCard=!1}},async fetchDiskCard(e){let t=await Y(`/__card/${encodeURIComponent(e)}`);if(!t.ok)throw Error(`HTTP `+t.status);return t.json()},async fetchImportMeta(e){if(!e)this.setCardImportMeta(null);else try{let t=await Y(`/__import-meta/${encodeURIComponent(e)}`);if(!t.ok){this.setCardImportMeta(null);return}let n=await t.json().catch(()=>({}));this.setCardImportMeta(n&&n.meta||null)}catch{this.setCardImportMeta(null)}},setCardImportMeta(e){this.cardImportMeta=e,!(e&&e.source)&&this.activeTab===`history`&&(this.activeTab=`vars`)},async saveToRemote(){if(!this.preview||!this.selectedId||this.savingRemote)return;this.savingRemote=!0,this.savedRemote=!1,this.verifiedRemote=null;let e=!1;try{if(this.historyDirty){let t=await this.saveCard();e=!!t,t||console.warn(`[推送] 本地落盘失败:预览图可能滞后于本次推送的内容`)}try{let e=await this.fetchDiskCard(this.selectedId);e&&e.schema&&e.schema.pageId&&this.currentSchema&&(this.currentSchema.pageId=e.schema.pageId)}catch{}this.syncDataToSchema(),this.selfSaveId=this.selectedId,this.selfSaveAt=Date.now();let t=await Y(`/__save`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:this.selectedId,schema:this.currentSchema},(e,t)=>e===`_schemaNode`?void 0:t,2)});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+t.status)}let n=await t.json();if(!n.ok)throw Error(n.error||`远端保存失败`);this.verifiedRemote=n.verified?!!n.verified.ok:null,this.savedRemote=!0;let r=n.preview||null;if(this.verifiedRemote===!1){let e=n.verified||{},t=e.diff&&e.diff.length?`差异:`+e.diff.join(`;`):e.readBackError||`读回校验未通过`;return console.warn(`[保存校验不符]`,e),Q(`已保存至远端,但读回校验未通过`,`err`),{ok:!0,verified:!1,message:t,preview:r}}return r&&r.ok===!1?Q(`已保存至远端,但预览图未更新:`+(r.message||r.error||`未知原因`),`warn`,3600):Q(r&&r.ok?`已保存至远端,预览图已更新`:`已保存至远端`,`ok`),this.metaRefreshToken++,this.historyRefreshToken++,this.saveRemoteTimer&&clearTimeout(this.saveRemoteTimer),this.saveRemoteTimer=setTimeout(()=>{this.savedRemote=!1,this.verifiedRemote=null},2500),{ok:!0,verified:this.verifiedRemote,preview:r}}catch(t){return console.error(`[保存至远端失败]`,t),Q(`保存至远端失败:`+(t&&t.message),`err`),e||(this.selfSaveId=``,this.selfSaveAt=0),{ok:!1,verified:null,message:t&&t.message||String(t)}}finally{this.savingRemote=!1}},onRestoreHistory(e){if(!e||!this.selectedId||this.restoringHistory)return;let t=e.summary&&e.summary.componentCount!=null?`,${e.summary.componentCount} 个组件`:``;this.requestConfirm({title:`加载历史版本到编辑器`,message:`将把远端版本 #${e.id}(${e.createTime}${t})写入本地并重新载入编辑器。\n仅作加载,不会自动推送或保存到远端;当前未保存的本地编辑会被覆盖。`,confirmText:`加载此版本`,severity:`warn`,onConfirm:()=>this.restoreHistoryVersion(e)})},async restoreHistoryVersion(e){if(this.selectedId&&!this.restoringHistory){this.restoringHistory=!0;try{let t=await Y(`/__card-history/${encodeURIComponent(this.selectedId)}/restore`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({versionId:String(e.id)})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+t.status)}let n=await t.json();if(!n.ok)throw Error(n.error||`恢复历史版本失败`);if(n.needCredentials){this.openLoginModal(`history`);return}this._restoreSuppressUntil=Date.now()+mG,await this.loadCard(this.selectedId,{clearAll:!0}),Q(`已加载历史版本 #${e.id}(仅本地加载,未推送远端)`,`ok`)}catch(e){console.error(`[加载历史版本失败]`,e),Q(`加载历史版本失败:`+(e&&e.message||e),`err`)}finally{this.restoringHistory=!1}}},async uploadCardSlices(){if(!this.preview||!this.selectedId||this.uploadingSlices)return;let e=this.selectedId;this.uploadingSlices=!0;try{if(this.historyDirty&&!await this.saveCard())throw Error(`本地保存失败,已中止切图上传`);this.selfSaveId=e,this.selfSaveAt=Date.now();let t=await Y(`/__slice-upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cardId:e})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.message||e.error||`HTTP `+t.status)}let n=await t.json();if(n.needCredentials){this.openLoginModal(`slices`);return}if(this.selfSaveAt=Date.now(),!n.success){let e=(n.failed||[]).map(e=>`${e.name}: ${e.error}`).join(`; `);throw Error(e||`切图上传失败`)}await this.onRefresh();let r=(n.rewritten||[]).reduce((e,t)=>e+t.count,0);n.referenced?Q(`当前卡切图上传完成:新上传 ${n.uploaded.length} 张、复用 ${n.skipped.length} 张,替换引用 ${r} 处`,`ok`):Q(`当前卡片没有引用本地切图,无需上传`,`ok`),n.dangling&&n.dangling.length&&Q(`有 ${n.dangling.length} 处引用的切图在 src/slices 下不存在:${n.dangling.join(`、`)}`,`err`)}catch(e){console.error(`[切图上传失败]`,e),Q(`当前卡切图上传失败:`+(e&&e.message),`err`),this.selfSaveId=``,this.selfSaveAt=0}finally{this.uploadingSlices=!1}},async syncCardMeta(e){let t=await this.fetchCardMeta(e);if(!t)return;let n=this.cardList.findIndex(t=>t.id===e);n>=0?this.cardList.splice(n,1,t):this.cardList.push(t),this.cardCount=this.cardList.length},async fetchCardMeta(e){try{let t=await Y(`/__card/`+encodeURIComponent(e)+`/meta`);return t.ok?await t.json():null}catch(e){return console.error(`[读取卡片列表项失败]`,e),null}},async fetchCardList(){try{let e=await Y(`/__cards`);if(!e.ok)return;let t=await e.json(),n=t&&t.cards||[];this.cardList=n,this.cardCount=n.length}catch(e){console.error(`[加载卡片列表失败]`,e)}},async onGalleryDelete(e){try{let t=await Y(`/__card/${encodeURIComponent(e)}`,{method:`DELETE`}),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n&&(n.message||n.error)||`HTTP ${t.status}`);if(Q(`已删除本地卡片 ${e}`,`ok`),this.$refs.chatPanel?.discardCard(e),await this.fetchCardList(),this.selectedId===e){let e=this.cardList[0];e?await this.loadCard(e.id):(this.selectedId=``,this.currentSchema=null,this.preview=null)}}catch(e){Q(`删除卡片失败:${e.message}`,`err`)}},async onNewCardCreated(e){this.cardDialog.visible=!1,Q(`已创建空白卡片 ${e}`,`ok`),await this.fetchCardList(),this.chatBusy?Q(`AI 正在生成「${this.selectedId}」:新卡 ${e} 已建好,本轮结束后再切过去`,`err`,3600):await this.loadCard(e)},async onRefresh(){let e=this.selectedId;if(e&&!this.refreshing){this.refreshing=!0;try{await this.loadCard(e),await this.syncCardMeta(e);let t=this.cardList.find(t=>t.id===e);t&&this.currentSchema&&this.currentSchema.name&&(t.name=this.currentSchema.name)}catch(e){console.error(`[刷新卡片失败]`,e),this.rt.pushError(`refresh`,String(e&&e.message))}finally{this.refreshing=!1}}},onChatTurnFinished(e){if(this.chatProgress=null,this.aiChatOpen)return;let t=e&&e.steps||0,n=WL(e&&e.ms||0),r=GL(e&&e.finishedAt||Date.now());e&&e.status===`error`?Q(`AI 助手本轮报错(${r} · ${t} 步 / ${n}),展开面板查看原因`,`err`):e&&e.status===`aborted`?Q(`AI 助手本轮已终止(${r} · ${t} 步):展开面板可「从中断处继续」`,`ok`):Q(`AI 助手已完成本轮(${r} · ${t} 步 / ${n})`,`ok`)},async onChatRollbackTurn(e){let t=e&&e.cardId||this.selectedId;if(!t||this.loadingCard)return;if(t!==this.selectedId){Q(`请先切换到那张卡片再回滚`,`err`);return}let n=[];try{let e=await Y(`/__history/${encodeURIComponent(t)}`);if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json().catch(()=>null);n=r&&r.snapshots||[]}catch(e){Q(`读取历史快照失败:${e.message||e}`,`err`);return}let r=Number(e&&e.ts)||0,i=r?n.filter(e=>Number(e.ts)>=r-2e3):[],a=i.length?i[0]:n[n.length-1];if(!a||!a.schema){Q(`没找到本轮之前的历史快照(可能已被 30 张上限裁掉,或本轮没写入过卡片)`,`err`);return}let o=new Date(Number(a.ts)||Date.now()).toLocaleString(`zh-CN`,{hour12:!1});this.requestConfirm({title:`回滚到 AI 动手之前`,message:`将把卡片「${this.selectedCardName||t}」恢复到 ${o} 的版本,本轮及其后的 ${i.length||1} 张快照都会被撤销。回滚只改当前编辑态,可用 Ctrl+Z 撤回;确认无误后仍需点顶栏「保存到本地」才写盘。`,confirmText:`回滚`,severity:`warn`,onConfirm:()=>this.applyTurnRollback(a)})},applyTurnRollback(e){this.currentSchema&&e&&(this.past.push({schema:this.cloneSchema(this.currentSchema)}),this.past.length>30&&this.past.shift(),this.future=[],this.baseline={schema:this.cloneSchema(e.schema)},this.applySchemaSnapshot({schema:e.schema,data:e.data}),Q(`已回滚到本轮之前的版本(未落盘,可撤销;确认后点「保存到本地」)`,`ok`))},onCardsChanged(e){let t=e&&e.file||``,n=e&&e.type||`change`;if(n===`rename`&&e.oldId&&e.id&&e.oldId!==e.id)return this.applyCardRename(e.oldId,e.id);if(/\.history[\\/]/.test(t)||/data\.json$/i.test(t)||/\.import-meta\.json(\.tmp)?$/i.test(t))return;let r=t.match(/src[\\/]cards[\\/]([^\\/]+)[\\/]/),i=r?r[1]:null;this._ccIds||=new Set,this._ccTypes||={},i&&(this._ccIds.add(i),this._ccTypes[i]=n),!this._ccTimer&&(this._ccTimer=setTimeout(async()=>{this._ccTimer=null;let e=this._ccIds,t=this._ccTypes;if(this._ccIds=new Set,this._ccTypes={},!e.size)return;let n=Array.from(e),r=n[n.length-1];if(e.size===1&&r&&r===this.selectedId){if(this.selfSaveId===r&&Date.now()-this.selfSaveAt<pG){this.selfSaveId=``,this.selfSaveAt=0;return}if(this._restoreSuppressUntil&&Date.now()<this._restoreSuppressUntil){this._restoreSuppressUntil=0;return}if(this.historyDirty)this.promptExternalReload(r);else{let e=this.currentSchema&&this.currentSchema.name||r;this.showExternalReloadNote(this.chatBusy?`AI 助手已写入卡片「${e}」,预览已自动刷新`:`卡片「${e}」已在编辑器外被修改,已自动重新载入预览`),this.loadCard(this.selectedId)}return}if(e.size>1){await this.fetchCardList();let t=e.has(this.selectedId),n=this.selfSaveId===this.selectedId&&Date.now()-this.selfSaveAt<pG;if(t&&!n){if(this.historyDirty)this.promptExternalReload(this.selectedId);else{this.selfSaveId===this.selectedId&&(this.selfSaveId=``,this.selfSaveAt=0);let e=this.currentSchema&&this.currentSchema.name||this.selectedId;this.showExternalReloadNote(this.chatBusy?`AI 助手已写入卡片「${e}」,预览已自动刷新`:`卡片「${e}」已在编辑器外被修改,已自动重新载入预览`),this.loadCard(this.selectedId)}}return}if((t[r]||`change`)===`unlink`){let e=this.cardList.findIndex(e=>e.id===r);e>=0&&(this.cardList.splice(e,1),this.cardCount=this.cardList.length);return}let i=await this.fetchCardMeta(r);if(!i){await this.fetchCardList();return}let a=this.cardList.findIndex(e=>e.id===r);a>=0?this.cardList.splice(a,1,i):this.cardList.push(i),this.cardCount=this.cardList.length},120))},promptExternalReload(e){if(this.confirm.show)return;let t=this.currentSchema&&this.currentSchema.name||e;this.requestConfirm({title:`卡片已在编辑器外被修改`,message:`卡片「${t}」的 schema / data 在编辑器外发生了变更(例如 IDE 或其他工具覆盖了文件)。\n当前编辑器存在未保存的改动,是否放弃本地未保存改动并重新载入磁盘版本?`,confirmText:`重新载入`,cancelText:`保留我的改动`,onConfirm:()=>this.loadCard(e)})},showExternalReloadNote(e){this.externalReloadNote=e,this.externalReloadTimer&&clearTimeout(this.externalReloadTimer),this.externalReloadTimer=setTimeout(()=>{this.externalReloadNote=``,this.externalReloadTimer=null},3500)}}},EG=[`aria-busy`],DG={class:`app__logo`},OG=[`src`],kG={class:`app__logo-version`},AG={class:`csel-combo`},jG={class:`app__btn-group`},MG=[`disabled`],NG=[`disabled`],PG=[`disabled`],FG=[`title`],IG={class:`app__badge-text`},LG={class:`app__bar-actions`},RG={class:`app__op-group`,role:`group`,"aria-label":`编辑历史与本地操作`},zG=[`disabled`],BG=[`disabled`],VG=[`disabled`,`title`],HG=[`disabled`],UG=[`disabled`,`onClick`],WG={key:0,class:`app__icon app__icon--spin`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},GG={key:1,class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},KG={key:2,class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},qG={key:3,class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},JG={class:`app__remote-pop dd__menu`,role:`menu`},YG=[`title`,`onClick`],XG=[`title`,`onClick`],ZG=[`onClick`],QG=[`title`,`onClick`],$G=[`title`,`onClick`],eK=[`onClick`],tK=[`disabled`,`title`,`aria-pressed`],nK={class:`app__dev-svc`},rK=[`disabled`,`title`],iK={class:`app__dev-svc-head`},aK={class:`app__dev-svc-body`},oK={class:`app__dev-svc-row`},sK={class:`app__dev-svc-row app__dev-svc-row--col`},cK={class:`app__dev-svc-row app__dev-svc-row--col`},lK={key:0,class:`app__dev-svc-hint`},uK={class:`app__dev-svc-actions`},dK=[`title`],fK={style:{display:`none`}},pK=[`title`,`aria-expanded`],mK={key:0,class:`app__nosvc-banner`},hK={key:1,class:`app__nosvc-banner app__nosvc-banner--disconnected`},gK={key:2,class:`app__nosvc-banner app__extreload-banner`},_K={class:`app__stage`,ref:`stageEl`},vK={class:`phone__scaler`},yK=[`title`],bK={class:`canvas-bar__txt`},xK={class:`canvas-bar__chip`,title:`画布宽度预设(高度随列高自适应)`},SK={class:`canvas-bar__txt`},CK={class:`canvas-bar__size`,title:`画布实际尺寸(宽 × 高,高度随窗口自适应)`},wK=[`disabled`],TK=[`data-card-ready`],EK={class:`workside`},DK={class:`workside__cols`,ref:`colsEl`},OK={class:`login-modal modal-card`,role:`dialog`,"aria-modal":`true`},kK={class:`login-modal__row`},AK=[`disabled`],jK={class:`login-modal__row`},MK=[`disabled`],NK={key:0,class:`login-modal__error`},PK={class:`login-modal__actions`},FK=[`disabled`],IK=[`disabled`];function LK(e,t,n,r,i,a){let o=R(`CardSelect`),s=R(`Dropdown`),c=R(`ThemeSettings`),l=R(`Switch`),u=R(`ChatPanel`),d=R(`RenderTree`),f=R(`SelectionOverlay`),p=R(`HoverGuides`),m=R(`AlertCardLayer`),h=R(`DeviceOverlay`),g=R(`PickerOverlay`),_=R(`DatePickerOverlay`),v=R(`KeyboardOverlay`),y=R(`LoadingExOverlay`),b=R(`DebugPanel`),x=R(`ApiCallPanel`),S=R(`RemotePreview`),C=R(`ComponentPalette`),w=R(`CardGallery`),ee=R(`RemoteAllCards`),T=R(`RemoteCardFormDialog`),E=R(`SyncProgressModal`),D=R(`ExportDirDialog`),O=R(`ExportProgressModal`),te=R(`NewCardDialog`),ne=R(`ConfirmDialog`),re=R(`AppToast`),ie=R(`ImageLightbox`);return V(),H(`div`,{class:j([`app`,{"app--chrome-off":i.chromeOff}]),style:A({"--preview-width":a.previewWidth+`px`,"--api-panel-width":a.apiPanelWidth+`px`,"--debug-min":a.debugMinWidth+`px`})},[q(` 远端接口调用中(推送 / 拉取 / 切图上传 / 发布):顶栏整体冻结。
|
|
364
364
|
这些操作都会读写远端,并与本地卡片状态(当前卡、撤销栈、磁盘版本、预览图)交叉;
|
|
365
365
|
执行期间允许切卡 / 撤销 / 本地保存,极易造成版本互相覆盖或状态错乱。
|
|
366
366
|
两道保险:① 控件自身 disabled(挡住键盘与焦点路径);② 顶层冻结层吃掉所有指针事件。 `),L(W(`header`,{class:j([`app__bar`,{"app__bar--locked":a.remoteBusy}]),"aria-busy":a.remoteBusy?`true`:`false`},[W(`strong`,DG,[W(`img`,{class:`app__logo-icon`,src:i.logoUrl,alt:``},null,8,OG),t[44]||=K(` CardBuddy `,-1),W(`span`,kG,`v`+M(i.appVersion),1)]),W(`div`,AG,[G(o,{class:`csel--combo`,value:i.selectedId,options:i.cardList,disabled:a.remoteBusy,onChange:a.onSelect},null,8,[`value`,`options`,`disabled`,`onChange`])]),q(` 卡片网格预览:图标按钮,打开本地全部卡片的缩略图墙,点击任一张载入工作台 `),W(`div`,jG,[W(`button`,{class:`app__btn app__btn--icon`,type:`button`,disabled:!i.cardList.length||a.remoteBusy,onClick:t[0]||=(...e)=>a.openGallery&&a.openGallery(...e),title:`卡片网格预览`},[...t[45]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-grid`})],-1)]],8,MG),q(` 新增空白卡片:紧邻网格预览的图标按钮;弹窗收 ID(必填、本地重名前置拦截)+ 描述(选填),创建成功切换到新卡 `),W(`button`,{class:`app__btn app__btn--icon`,type:`button`,disabled:a.remoteBusy,onClick:t[1]||=(...e)=>a.openNewCard&&a.openNewCard(...e),title:`新增空白卡片`},[...t[46]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-folder-plus`})],-1)]],8,NG),q(` 打开当前卡片所在文件夹:从卡片下拉里拆出,合并进本组作为第三位 `),W(`button`,{class:`app__btn app__btn--icon`,type:`button`,disabled:!i.selectedId||a.remoteBusy,onClick:t[2]||=(...e)=>a.openCardFolder&&a.openCardFolder(...e),title:`在文件管理器中打开当前卡片所在文件夹`},[...t[47]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-folder`})],-1)]],8,PG)]),L(W(`div`,{ref:`validateBadgeEl`,class:j([`app__badge`,`app__badge--`+i.validateBadge.state]),title:a.badgeTitle},[t[48]||=W(`span`,{class:`app__badge-dot`},null,-1),W(`span`,IG,M(a.badgeText),1)],10,FG),[[Nc,!i.chromeOff]]),W(`div`,LG,[W(`div`,RG,[q(` 撤销 / 重做:图标 + 文案;无可回退/重做版本时置灰 `),W(`button`,{class:`app__btn app__btn--hist`,type:`button`,disabled:!i.preview||!a.canUndo||a.remoteBusy,onClick:t[3]||=(...e)=>a.undo&&a.undo(...e),title:`后退一步(撤销)`},[...t[49]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-undo`})],-1),W(`span`,null,`撤销`,-1)]],8,zG),W(`button`,{class:`app__btn app__btn--hist`,type:`button`,disabled:!i.preview||!a.canRedo||a.remoteBusy,onClick:t[4]||=(...e)=>a.redo&&a.redo(...e),title:`前进一步(重做)`},[...t[50]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-redo`})],-1),W(`span`,null,`重做`,-1)]],8,BG),q(` 保存到本地:当前显示版本(撤销/重做导航到的历史版本,或编辑后未本地保存的版本)
|
|
367
367
|
与本地磁盘版本不一致时高亮可用;一致时置灰。点击把当前版本真正写回磁盘,
|
|
368
368
|
使下一次重新打开加载的是这个「真实版本」,而非任意历史记录。
|
|
369
|
-
|
|
370
|
-
|
|
369
|
+
本按钮**只写本地**,不触发任何远端请求;需要同步远端时由顶栏「远端 → 保存至远端」
|
|
370
|
+
手动推送(自动续调已按需求移除,避免一次点击产生两处副作用)。 `),W(`button`,{class:j([`app__btn app__btn--history-save`,{"is-dirty":a.historyDirty}]),type:`button`,disabled:!i.preview||!a.historyDirty||i.savingCard||i.loadingCard||a.remoteBusy,onClick:t[5]||=(...e)=>a.applyHistoryToLocal&&a.applyHistoryToLocal(...e),title:a.historyDirty?`当前版本与本地不一致,点击将该版本保存到本地(不同步远端)`:`当前版本已与本地一致`},[...t[51]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-save`})],-1),W(`span`,null,`保存`,-1)]],10,VG),q(` 生成预览图:无头渲染当前卡 → 透明底、与卡片实际尺寸 1:1 的 PNG → 覆盖写
|
|
371
371
|
src/cards/<id>/<id>.png(手动搭建 / 生成卡片后补齐封面用)。
|
|
372
372
|
未保存改动先落盘:服务端渲染的是磁盘态,不先保存会截到旧版。 `),W(`button`,{class:`app__btn app__btn--hist`,type:`button`,disabled:!i.preview||i.coverBusy||i.savingCard||i.loadingCard||a.remoteBusy,onClick:t[6]||=(...e)=>a.generateCardCover&&a.generateCardCover(...e),title:`生成预览图:透明底、与卡片实际尺寸一致,写入 src/cards/<id>/<id>.png(已存在则覆盖)`},[...t[52]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-image`})],-1),W(`span`,null,`截图`,-1)]],8,HG)]),q(` 远端:合并「远端保存 / 远端预览 / 切图上传 / 全量同步 / 选中卡片同步」为一个分组,组名「远端」,云图标 `),G(s,{class:`app__remote-menu`,size:`md`,placement:`bottom-end`,disabled:a.remoteBusy,title:a.remoteBusy?a.remoteBusyReason+`(顶栏已临时冻结)`:i.credentialsReady?`远端操作:推送 / 卡片发布 / 预览(真机)/ 拉取 / 查看全部 / 切图上传`:`未检测到远端登录凭据:点击先填写账号密码并验证,通过后才能使用远端功能`,"data-testid":`remote-group`},{trigger:I(({open:e,toggle:n})=>[W(`button`,{type:`button`,class:j([`app__btn app__btn--remote`,{"app__btn--warn":i.savedRemote&&i.verifiedRemote===!1,"app__remote-trigger--active":e,"is-processing":a.remoteBusy}]),disabled:a.remoteBusy,onClick:J(e=>a.onRemoteTrigger(n),[`stop`])},[a.remoteBusy?(V(),H(`svg`,WG,[...t[53]||=[W(`use`,{href:`#icon-loading`},null,-1)]])):i.savedRemote&&i.verifiedRemote!==!1?(V(),H(`svg`,GG,[...t[54]||=[W(`use`,{href:`#icon-cloud-check`},null,-1)]])):i.savedRemote&&i.verifiedRemote===!1?(V(),H(`svg`,KG,[...t[55]||=[W(`use`,{href:`#icon-cloud-alert`},null,-1)]])):(V(),H(`svg`,qG,[...t[56]||=[W(`use`,{href:`#icon-cloud`},null,-1)]])),t[58]||=W(`span`,null,`远端`,-1),(V(),H(`svg`,{class:j([`app__icon app__icon--chev`,{"app__icon--chev--open":e}]),viewBox:`0 0 16 16`,width:`12`,height:`12`,"aria-hidden":`true`},[...t[57]||=[W(`use`,{href:`#icon-chevron`},null,-1)]],2))],10,UG)]),default:I(({close:e})=>[W(`ul`,JG,[W(`li`,{class:j([`app__remote-item`,{"is-disabled":!i.preview||!i.selectedId||!a.hasCardSource}]),title:a.hasCardSource?`预览当前卡:生成真机预览二维码(远端 App 扫码)`:`该卡未经「同步远程」导入,无远端来源信息,无法生成真机预览二维码`,"data-testid":`remote-preview`,role:`menuitem`,onClick:t=>{a.chooseRsave(`preview`),e()}},[...t[59]||=[W(`svg`,{class:`app__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[W(`use`,{href:`#icon-device-mobile`})],-1),W(`span`,null,`真机预览`,-1)]],10,YG),q(` 切图上传:仅点击时执行,把「当前卡片引用到的」src/slices 切图上传到远端图片库
|
|
373
373
|
(CC0000.do),并把该卡 schema/data 里的 /slices/ 引用改写为返回的 @filestore/ 线上地址。
|