index-DzAKXroE.js 155 KB

123456789101112131415161718192021222324
  1. (function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))n(l);new MutationObserver(l=>{for(const r of l)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(l){const r={};return l.integrity&&(r.integrity=l.integrity),l.referrerPolicy&&(r.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?r.credentials="include":l.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function n(l){if(l.ep)return;l.ep=!0;const r=s(l);fetch(l.href,r)}})();/**
  2. * @vue/shared v3.5.43
  3. * (c) 2018-present Yuxi (Evan) You and Vue contributors
  4. * @license MIT
  5. **/function gn(t){const e=Object.create(null);for(const s of t.split(","))e[s]=1;return s=>s in e}const nt={},$e=[],Zt=()=>{},yl=()=>!1,Es=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),As=t=>t.startsWith("onUpdate:"),_t=Object.assign,vn=(t,e)=>{const s=t.indexOf(e);s>-1&&t.splice(s,1)},Fr=Object.prototype.hasOwnProperty,Z=(t,e)=>Fr.call(t,e),W=Array.isArray,_e=t=>os(t)==="[object Map]",vs=t=>os(t)==="[object Set]",qn=t=>os(t)==="[object Date]",V=t=>typeof t=="function",at=t=>typeof t=="string",Xt=t=>typeof t=="symbol",tt=t=>t!==null&&typeof t=="object",wl=t=>(tt(t)||V(t))&&V(t.then)&&V(t.catch),xl=Object.prototype.toString,os=t=>xl.call(t),Dr=t=>os(t).slice(8,-1),kl=t=>os(t)==="[object Object]",bn=t=>at(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Ge=gn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Os=t=>{const e=Object.create(null);return(s=>e[s]||(e[s]=t(s)))},Ir=/-\w/g,Lt=Os(t=>t.replace(Ir,e=>e.slice(1).toUpperCase())),Rr=/\B([A-Z])/g,Ee=Os(t=>t.replace(Rr,"-$1").toLowerCase()),$l=Os(t=>t.charAt(0).toUpperCase()+t.slice(1)),Bs=Os(t=>t?`on${$l(t)}`:""),Yt=(t,e)=>!Object.is(t,e),Ws=(t,...e)=>{for(let s=0;s<t.length;s++)t[s](...e)},Sl=(t,e,s,n=!1)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:s})},qr=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Nn;const Ps=()=>Nn||(Nn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function dt(t){if(W(t)){const e={};for(let s=0;s<t.length;s++){const n=t[s],l=at(n)?jr(n):dt(n);if(l)for(const r in l)e[r]=l[r]}return e}else if(at(t)||tt(t))return t}const Nr=/;(?![^(]*\))/g,Lr=/:([^]+)/,Hr=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function jr(t){const e={};return t.replace(Hr,s=>s.startsWith("/*")?"":s).split(Nr).forEach(s=>{if(s){const n=s.split(Lr);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function wt(t){let e="";if(at(t))e=t;else if(W(t))for(let s=0;s<t.length;s++){const n=wt(t[s]);n&&(e+=n+" ")}else if(tt(t))for(const s in t)t[s]&&(e+=s+" ");return e.trim()}const Br="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Wr=gn(Br);function Ml(t){return!!t||t===""}function Vr(t,e,s){if(t.length!==e.length)return!1;let n=!0;for(let l=0;n&&l<t.length;l++)n=Fs(t[l],e[l],s);return n}function Ln(t,e,s){if(t.size!==e.size)return!1;const n=Array.from(e),l=new Uint8Array(n.length);for(const r of t){let i=-1;for(let o=0;o<n.length;o++)if(!l[o]&&Fs(r,n[o],s)){i=o;break}if(i<0)return!1;l[i]=1}return!0}function Kr(t,e,s){let n=_e(t),l=_e(e);if(n||l||(n=vs(t),l=vs(e),n||l))return n&&l?Ln(t,e,s):!1;const r=Object.keys(t).length,i=Object.keys(e).length;if(r!==i)return!1;for(const o in t){const c=t.hasOwnProperty(o),m=e.hasOwnProperty(o);if(c&&!m||!c&&m||!Fs(t[o],e[o],s))return!1}return String(t)===String(e)}function Hn(t,e,s,n){s||(s=[new Map,new Map]);const[l,r]=s;if(l.has(t)||r.has(e))return l.get(t)===e&&r.get(e)===t;l.set(t,e),r.set(e,t);const i=n(t,e,s);return l.delete(t),r.delete(e),i}function Fs(t,e,s){if(t===e)return!0;let n=qn(t),l=qn(e);return n||l?n&&l?t.getTime()===e.getTime():!1:(n=Xt(t),l=Xt(e),n||l?t===e:(n=W(t),l=W(e),n||l?n&&l?Hn(t,e,s,Vr):!1:(n=tt(t),l=tt(e),n||l?!n||!l?!1:Hn(t,e,s,Kr):String(t)===String(e))))}const Tl=t=>!!(t&&t.__v_isRef===!0),_=t=>at(t)?t:t==null?"":W(t)||tt(t)&&(t.toString===xl||!V(t.toString))?Tl(t)?_(t.value):JSON.stringify(t,Cl,2):String(t),Cl=(t,e)=>Tl(e)?Cl(t,e.value):_e(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((s,[n,l],r)=>(s[Vs(n,r)+" =>"]=l,s),{})}:vs(e)?{[`Set(${e.size})`]:[...e.values()].map(s=>Vs(s))}:Xt(e)?Vs(e):tt(e)&&!W(e)&&!kl(e)?String(e):e,Vs=(t,e="")=>{var s;return Xt(t)?`Symbol(${(s=t.description)!=null?s:e})`:t};/**
  6. * @vue/reactivity v3.5.43
  7. * (c) 2018-present Yuxi (Evan) You and Vue contributors
  8. * @license MIT
  9. **/let mt;class Ur{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&&mt&&(mt.active?(this.parent=mt,this.index=(mt.scopes||(mt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,s;if(this.scopes){const n=this.scopes.slice();for(e=0,s=n.length;e<s;e++)n[e].pause()}for(e=0,s=this.effects.length;e<s;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,s;if(this.scopes){const l=this.scopes.slice();for(e=0,s=l.length;e<s;e++)l[e].resume()}const n=this.effects.slice();for(e=0,s=n.length;e<s;e++)n[e].resume()}}run(e){if(this._active){const s=mt;try{return mt=this,e()}finally{mt=s}}}on(){++this._on===1&&(this.prevScope=mt,mt=this)}off(){if(this._on>0&&--this._on===0){if(mt===this)mt=this.prevScope;else{let e=mt;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 s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){const l=this.scopes.slice();for(s=0,n=l.length;s<n;s++)l[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const l=this.parent.scopes.pop();l&&l!==this&&(this.parent.scopes[this.index]=l,l.index=this.index)}this.parent=void 0}}}function Gr(){return mt}let rt;const Ks=new WeakSet;class El{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,mt&&(mt.active?mt.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ks.has(this)&&(Ks.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Ol(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,jn(this),Pl(this);const e=rt,s=Ht;rt=this,Ht=!0;try{return this.fn()}finally{Fl(this),rt=e,Ht=s,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)xn(e);this.deps=this.depsTail=void 0,jn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ks.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ln(this)&&this.run()}get dirty(){return ln(this)}}let Al=0,ze,Je;function Ol(t,e=!1){if(t.flags|=8,e){t.next=Je,Je=t;return}t.next=ze,ze=t}function yn(){Al++}function wn(){if(--Al>0)return;if(Je){let e=Je;for(Je=void 0;e;){const s=e.next;e.next=void 0,e.flags&=-9,e=s}}let t;for(;ze;){let e=ze;for(ze=void 0;e;){const s=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=s}}if(t)throw t}function Pl(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Fl(t){let e,s=t.depsTail,n=s;for(;n;){const l=n.prevDep;n.version===-1?(n===s&&(s=l),xn(n),zr(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=l}t.deps=e,t.depsTail=s}function ln(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Dl(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Dl(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===es)||(t.globalVersion=es,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!ln(t))))return;t.flags|=2;const e=t.dep,s=rt,n=Ht;rt=t,Ht=!0;try{Pl(t);const l=t.fn(t._value);(e.version===0||Yt(l,t._value))&&(t.flags|=128,t._value=l,e.version++)}catch(l){throw e.version++,l}finally{rt=s,Ht=n,Fl(t),t.flags&=-3}}function xn(t,e=!1){const{dep:s,prevSub:n,nextSub:l}=t;if(n&&(n.nextSub=l,t.prevSub=void 0),l&&(l.prevSub=n,t.nextSub=void 0),s.subs===t&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let r=s.computed.deps;r;r=r.nextDep)xn(r,!0)}!e&&!--s.sc&&s.map&&s.map.delete(s.key)}function zr(t){const{prevDep:e,nextDep:s}=t;e&&(e.nextDep=s,t.prevDep=void 0),s&&(s.prevDep=e,t.nextDep=void 0)}let Ht=!0;const Il=[];function ae(){Il.push(Ht),Ht=!1}function ce(){const t=Il.pop();Ht=t===void 0?!0:t}function jn(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const s=rt;rt=void 0;try{e()}finally{rt=s}}}let es=0;class Jr{constructor(e,s){this.sub=e,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class kn{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}track(e){if(!rt||!Ht||rt===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==rt)s=this.activeLink=new Jr(rt,this),rt.deps?(s.prevDep=rt.depsTail,rt.depsTail.nextDep=s,rt.depsTail=s):rt.deps=rt.depsTail=s,Rl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=rt.depsTail,s.nextDep=void 0,rt.depsTail.nextDep=s,rt.depsTail=s,rt.deps===s&&(rt.deps=n)}return s}trigger(e){this.version++,es++,this.notify(e)}notify(e){yn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{wn()}}}function Rl(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)Rl(n)}const s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}const rn=new WeakMap,Se=Symbol(""),on=Symbol(""),ss=Symbol("");function gt(t,e,s){if(Ht&&rt){let n=rn.get(t);n||rn.set(t,n=new Map);let l=n.get(s);l||(n.set(s,l=new kn),l.map=n,l.key=s),l.track()}}function re(t,e,s,n,l,r){const i=rn.get(t);if(!i){es++;return}const o=c=>{c&&c.trigger()};if(yn(),e==="clear")i.forEach(o);else{const c=W(t),m=c&&bn(s);if(c&&s==="length"){const f=Number(n);i.forEach((g,d)=>{(d==="length"||d===ss||!Xt(d)&&d>=f)&&o(g)})}else switch((s!==void 0||i.has(void 0))&&o(i.get(s)),m&&o(i.get(ss)),e){case"add":c?m&&o(i.get("length")):(o(i.get(Se)),_e(t)&&o(i.get(on)));break;case"delete":c||(o(i.get(Se)),_e(t)&&o(i.get(on)));break;case"set":_e(t)&&o(i.get(Se));break}}wn()}function Fe(t){const e=Y(t);return e===t||(gt(e,"iterate",ss),Ft(t))?e:Qt(t)?ge(t)?e.map(s=>ve(Dt(s))):e.map(ve):e.map(Dt)}function Ds(t){return gt(t=Y(t),"iterate",ss),t}function zt(t,e){return Qt(t)?ve(ge(t)?Dt(e):e):Dt(e)}const Yr={__proto__:null,[Symbol.iterator](){return Us(this,Symbol.iterator,t=>zt(this,t))},concat(...t){return Fe(this).concat(...t.map(e=>W(e)?Fe(e):e))},entries(){return Us(this,"entries",t=>(t[1]=zt(this,t[1]),t))},every(t,e){return ee(this,"every",t,e,void 0,arguments)},filter(t,e){return ee(this,"filter",t,e,s=>s.map(n=>zt(this,n)),arguments)},find(t,e){return ee(this,"find",t,e,s=>zt(this,s),arguments)},findIndex(t,e){return ee(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return ee(this,"findLast",t,e,s=>zt(this,s),arguments)},findLastIndex(t,e){return ee(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return ee(this,"forEach",t,e,void 0,arguments)},includes(...t){return Gs(this,"includes",t)},indexOf(...t){return Gs(this,"indexOf",t)},join(t){return Fe(this).join(t)},lastIndexOf(...t){return Gs(this,"lastIndexOf",t)},map(t,e){return ee(this,"map",t,e,void 0,arguments)},pop(){return Be(this,"pop")},push(...t){return Be(this,"push",t)},reduce(t,...e){return Bn(this,"reduce",t,e)},reduceRight(t,...e){return Bn(this,"reduceRight",t,e)},shift(){return Be(this,"shift")},some(t,e){return ee(this,"some",t,e,void 0,arguments)},splice(...t){return Be(this,"splice",t)},toReversed(){return Fe(this).toReversed()},toSorted(t){return Fe(this).toSorted(t)},toSpliced(...t){return Fe(this).toSpliced(...t)},unshift(...t){return Be(this,"unshift",t)},values(){return Us(this,"values",t=>zt(this,t))}};function Us(t,e,s){const n=Ds(t),l=n[e]();return n!==t&&!Ft(t)&&(l._next=l.next,l.next=()=>{const r=l._next();return r.done||(r.value=s(r.value)),r}),l}const Zr=Array.prototype;function ee(t,e,s,n,l,r){const i=Ds(t),o=i!==t&&!Ft(t),c=i[e];if(c!==Zr[e]){const g=c.apply(t,r);return o?Dt(g):g}let m=s;i!==t&&(o?m=function(g,d){return s.call(this,zt(t,g),d,t)}:s.length>2&&(m=function(g,d){return s.call(this,g,d,t)}));const f=c.call(i,m,n);return o&&l?l(f):f}function Bn(t,e,s,n){const l=Ds(t),r=l!==t&&!Ft(t);let i=s,o=!1;l!==t&&(r?(o=n.length===0,i=function(m,f,g){return o&&(o=!1,m=zt(t,m)),s.call(this,m,zt(t,f),g,t)}):s.length>3&&(i=function(m,f,g){return s.call(this,m,f,g,t)}));const c=l[e](i,...n);return o?zt(t,c):c}function Gs(t,e,s){const n=Y(t);gt(n,"iterate",ss);const l=n[e](...s);return(l===-1||l===!1)&&Tn(s[0])?(s[0]=Y(s[0]),n[e](...s)):l}function Be(t,e,s=[]){ae(),yn();const n=Y(t)[e].apply(t,s);return wn(),ce(),n}const Xr=gn("__proto__,__v_isRef,__isVue"),ql=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Xt));function Qr(t){Xt(t)||(t=String(t));const e=Y(this);return gt(e,"has",t),e.hasOwnProperty(t)}class Nl{constructor(e=!1,s=!1){this._isReadonly=e,this._isShallow=s}get(e,s,n){if(s==="__v_skip")return e.__v_skip;const l=this._isReadonly,r=this._isShallow;if(s==="__v_isReactive")return!l;if(s==="__v_isReadonly")return l;if(s==="__v_isShallow")return r;if(s==="__v_raw")return n===(l?r?ci:Bl:r?jl:Hl).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const i=W(e);if(!l){let c;if(i&&(c=Yr[s]))return c;if(s==="hasOwnProperty")return Qr}const o=Reflect.get(e,s,vt(e)?e:n);if((Xt(s)?ql.has(s):Xr(s))||(l||gt(e,"get",s),r))return o;if(vt(o)){const c=i&&bn(s)?o:o.value;return l&&tt(c)?cn(c):c}return tt(o)?l?cn(o):Sn(o):o}}class Ll extends Nl{constructor(e=!1){super(!1,e)}set(e,s,n,l){let r=e[s];const i=W(e)&&bn(s);if(!this._isShallow){const m=Qt(r);if(!Ft(n)&&!Qt(n)&&(r=Y(r),n=Y(n)),!i&&vt(r)&&!vt(n))return m||(r.value=n),!0}const o=i?Number(s)<e.length:Z(e,s),c=Reflect.set(e,s,n,vt(e)?e:l);return e===Y(l)&&c&&(o?Yt(n,r)&&re(e,"set",s,n):re(e,"add",s,n)),c}deleteProperty(e,s){const n=Z(e,s);e[s];const l=Reflect.deleteProperty(e,s);return l&&n&&re(e,"delete",s,void 0),l}has(e,s){const n=Reflect.has(e,s);return(!Xt(s)||!ql.has(s))&&gt(e,"has",s),n}ownKeys(e){return gt(e,"iterate",W(e)?"length":Se),Reflect.ownKeys(e)}}class ti extends Nl{constructor(e=!1){super(!0,e)}set(e,s){return!0}deleteProperty(e,s){return!0}}const ei=new Ll,si=new ti,ni=new Ll(!0);const an=t=>t,fs=t=>Reflect.getPrototypeOf(t);function li(t,e,s){return function(...n){const l=this.__v_raw,r=Y(l),i=_e(r),o=t==="entries"||t===Symbol.iterator&&i,c=t==="keys"&&i,m=l[t](...n),f=s?an:e?ve:Dt;return!e&&gt(r,"iterate",c?on:Se),_t(Object.create(m),{next(){const{value:g,done:d}=m.next();return d?{value:g,done:d}:{value:o?[f(g[0]),f(g[1])]:f(g),done:d}}})}}function ds(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function ri(t,e){const s={get(l){const r=this.__v_raw,i=Y(r),o=Y(l);t||(Yt(l,o)&&gt(i,"get",l),gt(i,"get",o));const{has:c}=fs(i),m=e?an:t?ve:Dt;if(c.call(i,l))return m(r.get(l));if(c.call(i,o))return m(r.get(o));r!==i&&r.get(l)},get size(){const l=this.__v_raw;return!t&&gt(Y(l),"iterate",Se),l.size},has(l){const r=this.__v_raw,i=Y(r),o=Y(l);return t||(Yt(l,o)&&gt(i,"has",l),gt(i,"has",o)),l===o?r.has(l):r.has(l)||r.has(o)},forEach(l,r){const i=this,o=i.__v_raw,c=Y(o),m=e?an:t?ve:Dt;return!t&&gt(c,"iterate",Se),o.forEach((f,g)=>l.call(r,m(f),m(g),i))}};return _t(s,t?{add:ds("add"),set:ds("set"),delete:ds("delete"),clear:ds("clear")}:{add(l){const r=Y(this),i=fs(r),o=Y(l),c=!e&&!Ft(l)&&!Qt(l)?o:l;return i.has.call(r,c)||Yt(l,c)&&i.has.call(r,l)||Yt(o,c)&&i.has.call(r,o)||(r.add(c),re(r,"add",c,c)),this},set(l,r){!e&&!Ft(r)&&!Qt(r)&&(r=Y(r));const i=Y(this),{has:o,get:c}=fs(i);let m=o.call(i,l);m||(l=Y(l),m=o.call(i,l));const f=c.call(i,l);return i.set(l,r),m?Yt(r,f)&&re(i,"set",l,r):re(i,"add",l,r),this},delete(l){const r=Y(this),{has:i,get:o}=fs(r);let c=i.call(r,l);c||(l=Y(l),c=i.call(r,l)),o&&o.call(r,l);const m=r.delete(l);return c&&re(r,"delete",l,void 0),m},clear(){const l=Y(this),r=l.size!==0,i=l.clear();return r&&re(l,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(l=>{s[l]=li(l,t,e)}),s}function $n(t,e){const s=ri(t,e);return(n,l,r)=>l==="__v_isReactive"?!t:l==="__v_isReadonly"?t:l==="__v_raw"?n:Reflect.get(Z(s,l)&&l in n?s:n,l,r)}const ii={get:$n(!1,!1)},oi={get:$n(!1,!0)},ai={get:$n(!0,!1)};const Hl=new WeakMap,jl=new WeakMap,Bl=new WeakMap,ci=new WeakMap;function ui(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Sn(t){return Qt(t)?t:Mn(t,!1,ei,ii,Hl)}function fi(t){return Mn(t,!1,ni,oi,jl)}function cn(t){return Mn(t,!0,si,ai,Bl)}function Mn(t,e,s,n,l){if(!tt(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const r=l.get(t);if(r)return r;const i=ui(Dr(t));if(i===0)return t;const o=new Proxy(t,i===2?n:s);return l.set(t,o),o}function ge(t){return Qt(t)?ge(t.__v_raw):!!(t&&t.__v_isReactive)}function Qt(t){return!!(t&&t.__v_isReadonly)}function Ft(t){return!!(t&&t.__v_isShallow)}function Tn(t){return t?!!t.__v_raw:!1}function Y(t){const e=t&&t.__v_raw;return e?Y(e):t}function di(t){return!Z(t,"__v_skip")&&Object.isExtensible(t)&&Sl(t,"__v_skip",!0),t}const Dt=t=>tt(t)?Sn(t):t,ve=t=>tt(t)?cn(t):t;function vt(t){return t?t.__v_isRef===!0:!1}function Nt(t){return pi(t,!1)}function pi(t,e){return vt(t)?t:new hi(t,e)}class hi{constructor(e,s){this.dep=new kn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?e:Y(e),this._value=s?e:Dt(e),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(e){const s=this._rawValue,n=this.__v_isShallow||Ft(e)||Qt(e);e=n?e:Y(e),Yt(e,s)&&(this._rawValue=e,this._value=n?e:Dt(e),this.dep.trigger())}}function v(t){return vt(t)?t.value:t}const mi={get:(t,e,s)=>e==="__v_raw"?t:v(Reflect.get(t,e,s)),set:(t,e,s,n)=>{const l=t[e];return vt(l)&&!vt(s)?(l.value=s,!0):Reflect.set(t,e,s,n)}};function Wl(t){return ge(t)?t:new Proxy(t,mi)}class _i{constructor(e,s,n){this.fn=e,this.setter=s,this._value=void 0,this.dep=new kn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=es-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&rt!==this)return Ol(this,!0),!0}get value(){const e=this.dep.track();return Dl(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function gi(t,e,s=!1){let n,l;return V(t)?n=t:(n=t.get,l=t.set),new _i(n,l,s)}const ps={},bs=new WeakMap;let ke;function vi(t,e=!1,s=ke){if(s){let n=bs.get(s);n||bs.set(s,n=[]),n.push(t)}}function bi(t,e,s=nt){const{immediate:n,deep:l,once:r,scheduler:i,augmentJob:o,call:c}=s,m=q=>l?q:Ft(q)||l===!1||l===0?ie(q,1):ie(q);let f,g,d,b,S=!1,x=!1;if(vt(t)?(g=()=>t.value,S=Ft(t)):ge(t)?(g=()=>m(t),S=!0):W(t)?(x=!0,S=t.some(q=>ge(q)||Ft(q)),g=()=>t.map(q=>{if(vt(q))return q.value;if(ge(q))return m(q);if(V(q))return c?c(q,2):q()})):V(t)?e?g=c?()=>c(t,2):t:g=()=>{if(d){ae();try{d()}finally{ce()}}const q=ke;ke=f;try{return c?c(t,3,[b]):t(b)}finally{ke=q}}:g=Zt,e&&l){const q=g,ot=l===!0?1/0:l;g=()=>ie(q(),ot)}const F=Gr(),w=()=>{f.stop(),F&&F.active&&vn(F.effects,f)};if(r&&e){const q=e;e=(...ot)=>{const kt=q(...ot);return w(),kt}}let D=x?new Array(t.length).fill(ps):ps;const U=q=>{if(!(!(f.flags&1)||!f.dirty&&!q))if(e){const ot=f.run();if(q||l||S||(x?ot.some((kt,$t)=>Yt(kt,D[$t])):Yt(ot,D))){d&&d();const kt=ke;ke=f;try{const $t=[ot,D===ps?void 0:x&&D[0]===ps?[]:D,b];D=ot,c?c(e,3,$t):e(...$t)}finally{ke=kt}}}else f.run()};return o&&o(U),f=new El(g),f.scheduler=i?()=>i(U,!1):U,b=q=>vi(q,!1,f),d=f.onStop=()=>{const q=bs.get(f);if(q){if(c)c(q,4);else for(const ot of q)ot();bs.delete(f)}},e?n?U(!0):D=f.run():i?i(U.bind(null,!0),!0):f.run(),w.pause=f.pause.bind(f),w.resume=f.resume.bind(f),w.stop=w,w}function ie(t,e=1/0,s){if(e<=0||!tt(t)||t.__v_skip||(s=s||new Map,(s.get(t)||0)>=e))return t;if(s.set(t,e),e--,vt(t))ie(t.value,e,s);else if(W(t))for(let n=0;n<t.length;n++)ie(t[n],e,s);else if(vs(t)||_e(t))t.forEach(n=>{ie(n,e,s)});else if(kl(t)){for(const n in t)ie(t[n],e,s);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&ie(t[n],e,s)}return t}/**
  10. * @vue/runtime-core v3.5.43
  11. * (c) 2018-present Yuxi (Evan) You and Vue contributors
  12. * @license MIT
  13. **/function as(t,e,s,n){try{return n?t(...n):t()}catch(l){Is(l,e,s)}}function jt(t,e,s,n){if(V(t)){const l=as(t,e,s,n);return l&&wl(l)&&l.catch(r=>{Is(r,e,s)}),l}if(W(t)){const l=[];for(let r=0;r<t.length;r++)l.push(jt(t[r],e,s,n));return l}}function Is(t,e,s,n=!0){const l=e?e.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:i}=e&&e.appContext.config||nt;if(e){let o=e.parent;const c=e.proxy,m=`https://vuejs.org/error-reference/#runtime-${s}`;for(;o;){const f=o.ec;if(f){for(let g=0;g<f.length;g++)if(f[g](t,c,m)===!1)return}o=o.parent}if(r){ae(),as(r,null,10,[t,c,m]),ce();return}}yi(t,s,l,n,i)}function yi(t,e,s,n=!0,l=!1){if(l)throw t;console.error(t)}const yt=[];let Ut=-1;const Ie=[];let he=null,De=0;const Vl=Promise.resolve();let ys=null;function wi(t){const e=ys||Vl;return t?e.then(this?t.bind(this):t):e}function xi(t){let e=Ut+1,s=yt.length;for(;e<s;){const n=e+s>>>1,l=yt[n],r=ns(l);r<t||r===t&&l.flags&2?e=n+1:s=n}return e}function Cn(t){if(!(t.flags&1)){const e=ns(t),s=yt[yt.length-1];!s||!(t.flags&2)&&e>=ns(s)?yt.push(t):yt.splice(xi(e),0,t),t.flags|=1,Kl()}}function Kl(){ys||(ys=Vl.then(Gl))}function ki(t){if(!W(t))he&&t.id===-1?he.splice(De+1,0,t):t.flags&1||(Ie.push(t),t.flags|=1);else for(let e=0;e<t.length;e++)Ie.push(t[e]);Kl()}function Wn(t,e,s=Ut+1){for(;s<yt.length;s++){const n=yt[s];if(n&&n.flags&2){if(t&&n.id!==t.uid)continue;yt.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Ul(t){if(Ie.length){const e=[...new Set(Ie)].sort((s,n)=>ns(s)-ns(n));if(Ie.length=0,he){for(let s=0;s<e.length;s++)he.push(e[s]);return}for(he=e,De=0;De<he.length;De++){const s=he[De];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}he=null,De=0}}const ns=t=>t.id==null?t.flags&2?-1:1/0:t.id;function Gl(t){try{for(Ut=0;Ut<yt.length;Ut++){const e=yt[Ut];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),as(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;Ut<yt.length;Ut++){const e=yt[Ut];e&&(e.flags&=-2)}Ut=-1,yt.length=0,Ul(),ys=null,(yt.length||Ie.length)&&Gl()}}let Pt=null,zl=null;function ws(t){const e=Pt;return Pt=t,zl=t&&t.type.__scopeId||null,e}function $i(t,e=Pt,s){if(!e||t._n)return t;const n=(...l)=>{n._d&&el(-1);const r=ws(e),i=Me.length;let o;try{o=t(...l)}finally{for(let c=Me.length;c>i;c--)br();ws(r),n._d&&el(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Vn(t,e){if(Pt===null)return t;const s=js(Pt),n=t.dirs||(t.dirs=[]);for(let l=0;l<e.length;l++){let[r,i,o,c=nt]=e[l];r&&(V(r)&&(r={mounted:r,updated:r}),r.deep&&ie(i),n.push({dir:r,instance:s,value:i,oldValue:void 0,arg:o,modifiers:c}))}return t}function we(t,e,s,n){const l=t.dirs,r=e&&e.dirs;for(let i=0;i<l.length;i++){const o=l[i];r&&(o.oldValue=r[i].value);let c=o.dir[n];c&&(ae(),jt(c,s,8,[t.el,o,t,e]),ce())}}function Si(t,e){if(xt){let s=xt.provides;const n=xt.parent&&xt.parent.provides;n===s&&(s=xt.provides=Object.create(n)),s[t]=e}}function ms(t,e,s=!1){const n=xo();if(n||Re){let l=Re?Re._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(l&&t in l)return l[t];if(arguments.length>1)return s&&V(e)?e.call(n&&n.proxy):e}}const Mi=Symbol.for("v-scx"),Ti=()=>ms(Mi);function Ye(t,e,s){return Jl(t,e,s)}function Jl(t,e,s=nt){const{immediate:n,deep:l,flush:r,once:i}=s,o=_t({},s),c=e&&n||!e&&r!=="post";let m;if(is){if(r==="sync"){const b=Ti();m=b.__watcherHandles||(b.__watcherHandles=[])}else if(!c){const b=()=>{};return b.stop=Zt,b.resume=Zt,b.pause=Zt,b}}const f=xt;o.call=(b,S,x)=>jt(b,f,S,x);let g=!1;r==="post"?o.scheduler=b=>{Mt(b,f&&f.suspense)}:r!=="sync"&&(g=!0,o.scheduler=(b,S)=>{S?b():Cn(b)}),o.augmentJob=b=>{e&&(b.flags|=4),g&&(b.flags|=2,f&&(b.id=f.uid,b.i=f))};const d=bi(t,e,o);return is&&(m?m.push(d):c&&d()),d}function Ci(t,e,s){const n=this.proxy,l=at(t)?t.includes(".")?Yl(n,t):()=>n[t]:t.bind(n,n);let r;V(e)?r=e:(r=e.handler,s=e);const i=cs(this),o=Jl(l,r.bind(n),s);return i(),o}function Yl(t,e){const s=e.split(".");return()=>{let n=t;for(let l=0;l<s.length&&n;l++)n=n[s[l]];return n}}const Ei=Symbol("_vte"),Rs=t=>t.__isTeleport,zs=Symbol("_leaveCb");function Ai(t){let e=t[0];if(t.length>1){for(const s of t)if(s.type!==ue){e=s;break}}return e}function Zl(t){if(!An(t))return Rs(t.type)&&t.children?Ai(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:s}=t;if(s){if(e&16)return s[0];if(e&32&&V(s.default))return s.default()}}function En(t,e){if(t.shapeFlag&6&&t.component){t.transition=e;const s=t.component.subTree;En(Rs(s.type)&&Zl(s)||s,e)}else t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function fe(t,e){return V(t)?_t({name:t.name},e,{setup:t}):t}function Xl(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function Kn(t,e){let s;return!!((s=Object.getOwnPropertyDescriptor(t,e))&&!s.configurable)}const xs=new WeakMap;function Ze(t,e,s,n,l=!1){if(W(t)){t.forEach((x,F)=>Ze(x,e&&(W(e)?e[F]:e),s,n,l));return}if(Xe(n)&&!l){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Ze(t,e,s,n.component.subTree);return}const r=n.shapeFlag&4?js(n.component):n.el,i=l?null:r,{i:o,r:c}=t,m=e&&e.r,f=o.refs===nt?o.refs={}:o.refs,g=o.setupState,d=Y(g),b=g===nt?yl:x=>Kn(f,x)?!1:Z(d,x),S=(x,F)=>!(F&&Kn(f,F));if(m!=null&&m!==c){if(Un(e),at(m))f[m]=null,b(m)&&(g[m]=null);else if(vt(m)){const x=e;S(m,x.k)&&(m.value=null),x.k&&(f[x.k]=null)}}if(V(c))as(c,o,12,[i,f]);else{const x=at(c),F=vt(c);if(x||F){const w=()=>{if(t.f){const D=x?b(c)?g[c]:f[c]:S()||!t.k?c.value:f[t.k];if(l)W(D)&&vn(D,r);else if(W(D))D.includes(r)||D.push(r);else if(x)f[c]=[r],b(c)&&(g[c]=f[c]);else{const U=[r];S(c,t.k)&&(c.value=U),t.k&&(f[t.k]=U)}}else x?(f[c]=i,b(c)&&(g[c]=i)):F&&(S(c,t.k)&&(c.value=i),t.k&&(f[t.k]=i))};if(i){const D=()=>{w(),xs.delete(t)};D.id=-1,xs.set(t,D),Mt(D,s)}else Un(t),w()}}}function Un(t){const e=xs.get(t);e&&(e.flags|=8,xs.delete(t))}Ps().requestIdleCallback;Ps().cancelIdleCallback;const Xe=t=>!!t.type.__asyncLoader,An=t=>t.type.__isKeepAlive;function Oi(t,e){Ql(t,"a",e)}function Pi(t,e){Ql(t,"da",e)}function Ql(t,e,s=xt){const n=t.__wdc||(t.__wdc=()=>{let l=s;for(;l;){if(l.isDeactivated)return;l=l.parent}return t()});if(qs(e,n,s),s){let l=s.parent;for(;l&&l.parent;)An(l.parent.vnode)&&Fi(n,e,s,l),l=l.parent}}function Fi(t,e,s,n){const l=qs(e,t,n,!0);er(()=>{vn(n[e],l)},s)}function qs(t,e,s=xt,n=!1){if(s){const l=s[t]||(s[t]=[]),r=e.__weh||(e.__weh=(...i)=>{ae();const o=cs(s),c=jt(e,s,t,i);return o(),ce(),c});return n?l.unshift(r):l.push(r),r}}const de=t=>(e,s=xt)=>{(!is||t==="sp")&&qs(t,(...n)=>e(...n),s)},Di=de("bm"),Ns=de("m"),Ii=de("bu"),Ri=de("u"),tr=de("bum"),er=de("um"),qi=de("sp"),Ni=de("rtg"),Li=de("rtc");function Hi(t,e=xt){qs("ec",t,e)}const ji=Symbol.for("v-ndc");function it(t,e,s,n){let l;const r=s,i=W(t);if(i||at(t)){const o=i&&ge(t);let c=!1,m=!1;o&&(c=!Ft(t),m=Qt(t),t=Ds(t)),l=new Array(t.length);for(let f=0,g=t.length;f<g;f++)l[f]=e(c?m?ve(Dt(t[f])):Dt(t[f]):t[f],f,void 0,r)}else if(typeof t=="number"){l=new Array(t);for(let o=0;o<t;o++)l[o]=e(o+1,o,void 0,r)}else if(tt(t))if(t[Symbol.iterator])l=Array.from(t,(o,c)=>e(o,c,void 0,r));else{const o=Object.keys(t);l=new Array(o.length);for(let c=0,m=o.length;c<m;c++){const f=o[c];l[c]=e(t[f],f,c,r)}}else l=[];return l}const un=t=>t?kr(t)?js(t):un(t.parent):null,Qe=_t(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>un(t.parent),$root:t=>un(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>nr(t),$forceUpdate:t=>t.f||(t.f=()=>{Cn(t.update)}),$nextTick:t=>t.n||(t.n=wi.bind(t.proxy)),$watch:t=>Ci.bind(t)}),Js=(t,e)=>t!==nt&&!t.__isScriptSetup&&Z(t,e),Bi={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:s,setupState:n,data:l,props:r,accessCache:i,type:o,appContext:c}=t;if(e[0]!=="$"){const d=i[e];if(d!==void 0)switch(d){case 1:return n[e];case 2:return l[e];case 4:return s[e];case 3:return r[e]}else{if(Js(n,e))return i[e]=1,n[e];if(l!==nt&&Z(l,e))return i[e]=2,l[e];if(Z(r,e))return i[e]=3,r[e];if(s!==nt&&Z(s,e))return i[e]=4,s[e];fn&&(i[e]=0)}}const m=Qe[e];let f,g;if(m)return e==="$attrs"&&gt(t.attrs,"get",""),m(t);if((f=o.__cssModules)&&(f=f[e]))return f;if(s!==nt&&Z(s,e))return i[e]=4,s[e];if(g=c.config.globalProperties,Z(g,e))return g[e]},set({_:t},e,s){const{data:n,setupState:l,ctx:r}=t;return Js(l,e)?(l[e]=s,!0):n!==nt&&Z(n,e)?(n[e]=s,!0):Z(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(r[e]=s,!0)},has({_:{data:t,setupState:e,accessCache:s,ctx:n,appContext:l,props:r,type:i}},o){let c;return!!(s[o]||t!==nt&&o[0]!=="$"&&Z(t,o)||Js(e,o)||Z(r,o)||Z(n,o)||Z(Qe,o)||Z(l.config.globalProperties,o)||(c=i.__cssModules)&&c[o])},defineProperty(t,e,s){return s.get!=null?t._.accessCache[e]=0:Z(s,"value")&&this.set(t,e,s.value,null),Reflect.defineProperty(t,e,s)}};function Gn(t){return W(t)?t.reduce((e,s)=>(e[s]=null,e),{}):t}let fn=!0;function Wi(t){const e=nr(t),s=t.proxy,n=t.ctx;fn=!1,e.beforeCreate&&zn(e.beforeCreate,t,"bc");const{data:l,computed:r,methods:i,watch:o,provide:c,inject:m,created:f,beforeMount:g,mounted:d,beforeUpdate:b,updated:S,activated:x,deactivated:F,beforeDestroy:w,beforeUnmount:D,destroyed:U,unmounted:q,render:ot,renderTracked:kt,renderTriggered:$t,errorCaptured:It,serverPrefetch:pe,expose:te,inheritAttrs:be,components:Ae,directives:At,filters:Ne}=e;if(m&&Vi(m,n,null),i)for(const lt in i){const X=i[lt];V(X)&&(n[lt]=X.bind(s))}if(l){const lt=l.call(s,s);tt(lt)&&(t.data=Sn(lt))}if(fn=!0,r)for(const lt in r){const X=r[lt],Rt=V(X)?X.bind(s,s):V(X.get)?X.get.bind(s,s):Zt,ye=!V(X)&&V(X.set)?X.set.bind(s):Zt,N=R({get:Rt,set:ye});Object.defineProperty(n,lt,{enumerable:!0,configurable:!0,get:()=>N.value,set:j=>N.value=j})}if(o)for(const lt in o)sr(o[lt],n,s,lt);if(c){const lt=V(c)?c.call(s):c;Reflect.ownKeys(lt).forEach(X=>{Si(X,lt[X])})}f&&zn(f,t,"c");function pt(lt,X){W(X)?X.forEach(Rt=>lt(Rt.bind(s))):X&&lt(X.bind(s))}if(pt(Di,g),pt(Ns,d),pt(Ii,b),pt(Ri,S),pt(Oi,x),pt(Pi,F),pt(Hi,It),pt(Li,kt),pt(Ni,$t),pt(tr,D),pt(er,q),pt(qi,pe),W(te))if(te.length){const lt=t.exposed||(t.exposed={});te.forEach(X=>{Object.defineProperty(lt,X,{get:()=>s[X],set:Rt=>s[X]=Rt,enumerable:!0})})}else t.exposed||(t.exposed={});ot&&t.render===Zt&&(t.render=ot),be!=null&&(t.inheritAttrs=be),Ae&&(t.components=Ae),At&&(t.directives=At),pe&&Xl(t)}function Vi(t,e,s=Zt){W(t)&&(t=dn(t));for(const n in t){const l=t[n];let r;tt(l)?"default"in l?r=ms(l.from||n,l.default,!0):r=ms(l.from||n):r=ms(l),vt(r)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):e[n]=r}}function zn(t,e,s){jt(W(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,s)}function sr(t,e,s,n){let l=n.includes(".")?Yl(s,n):()=>s[n];if(at(t)){const r=e[t];V(r)&&Ye(l,r)}else if(V(t))Ye(l,t.bind(s));else if(tt(t))if(W(t))t.forEach(r=>sr(r,e,s,n));else{const r=V(t.handler)?t.handler.bind(s):e[t.handler];V(r)&&Ye(l,r,t)}}function nr(t){const e=t.type,{mixins:s,extends:n}=e,{mixins:l,optionsCache:r,config:{optionMergeStrategies:i}}=t.appContext,o=r.get(e);let c;return o?c=o:!l.length&&!s&&!n?c=e:(c={},l.length&&l.forEach(m=>ks(c,m,i,!0)),ks(c,e,i)),tt(e)&&r.set(e,c),c}function ks(t,e,s,n=!1){const{mixins:l,extends:r}=e;r&&ks(t,r,s,!0),l&&l.forEach(i=>ks(t,i,s,!0));for(const i in e)if(!(n&&i==="expose")){const o=Ki[i]||s&&s[i];t[i]=o?o(t[i],e[i]):e[i]}return t}const Ki={data:Jn,props:Yn,emits:Yn,methods:Ke,computed:Ke,beforeCreate:bt,created:bt,beforeMount:bt,mounted:bt,beforeUpdate:bt,updated:bt,beforeDestroy:bt,beforeUnmount:bt,destroyed:bt,unmounted:bt,activated:bt,deactivated:bt,errorCaptured:bt,serverPrefetch:bt,components:Ke,directives:Ke,watch:Gi,provide:Jn,inject:Ui};function Jn(t,e){return e?t?function(){return _t(V(t)?t.call(this,this):t,V(e)?e.call(this,this):e)}:e:t}function Ui(t,e){return Ke(dn(t),dn(e))}function dn(t){if(W(t)){const e={};for(let s=0;s<t.length;s++)e[t[s]]=t[s];return e}return t}function bt(t,e){return t?[...new Set([].concat(t,e))]:e}function Ke(t,e){return t?_t(Object.create(null),t,e):e}function Yn(t,e){return t?W(t)&&W(e)?[...new Set([...t,...e])]:_t(Object.create(null),Gn(t),Gn(e??{})):e}function Gi(t,e){if(!t)return e;if(!e)return t;const s=_t(Object.create(null),t);for(const n in e)s[n]=bt(t[n],e[n]);return s}function lr(){return{app:null,config:{isNativeTag:yl,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}}let zi=0;function Ji(t,e){return function(n,l=null){V(n)||(n=_t({},n)),l!=null&&!tt(l)&&(l=null);const r=lr(),i=new WeakSet,o=[];let c=!1;const m=r.app={_uid:zi++,_component:n,_props:l,_container:null,_context:r,_instance:null,version:Co,get config(){return r.config},set config(f){},use(f,...g){return i.has(f)||(f&&V(f.install)?(i.add(f),f.install(m,...g)):V(f)&&(i.add(f),f(m,...g))),m},mixin(f){return r.mixins.includes(f)||r.mixins.push(f),m},component(f,g){return g?(r.components[f]=g,m):r.components[f]},directive(f,g){return g?(r.directives[f]=g,m):r.directives[f]},mount(f,g,d){if(!c){const b=m._ceVNode||ft(n,l);return b.appContext=r,d===!0?d="svg":d===!1&&(d=void 0),t(b,f,d),c=!0,m._container=f,f.__vue_app__=m,js(b.component)}},onUnmount(f){o.push(f)},unmount(){c&&(jt(o,m._instance,16),t(null,m._container),delete m._container.__vue_app__)},provide(f,g){return r.provides[f]=g,m},runWithContext(f){const g=Re;Re=m;try{return f()}finally{Re=g}}};return m}}let Re=null;const Yi=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Lt(e)}Modifiers`]||t[`${Ee(e)}Modifiers`];function Zi(t,e,...s){if(t.isUnmounted)return;const n=t.vnode.props||nt;let l=s;const r=e.startsWith("update:"),i=r&&Yi(n,e.slice(7));i&&(i.trim&&(l=s.map(f=>at(f)?f.trim():f)),i.number&&(l=l.map(qr)));let o,c=n[o=Bs(e)]||n[o=Bs(Lt(e))];!c&&r&&(c=n[o=Bs(Ee(e))]),c&&jt(c,t,6,l);const m=n[o+"Once"];if(m){if(!t.emitted)t.emitted={};else if(t.emitted[o])return;t.emitted[o]=!0,jt(m,t,6,l)}}const Xi=new WeakMap;function rr(t,e,s=!1){const n=s?Xi:e.emitsCache,l=n.get(t);if(l!==void 0)return l;const r=t.emits;let i={},o=!1;if(!V(t)){const c=m=>{const f=rr(m,e,!0);f&&(o=!0,_t(i,f))};!s&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}return!r&&!o?(tt(t)&&n.set(t,null),null):(W(r)?r.forEach(c=>i[c]=null):_t(i,r),tt(t)&&n.set(t,i),i)}function Ls(t,e){return!t||!Es(e)?!1:(e=e.slice(2),e=e==="Once"?e:e.replace(/Once$/,""),Z(t,e[0].toLowerCase()+e.slice(1))||Z(t,Ee(e))||Z(t,e))}function Zn(t){const{type:e,vnode:s,proxy:n,withProxy:l,propsOptions:[r],slots:i,attrs:o,emit:c,render:m,renderCache:f,props:g,data:d,setupState:b,ctx:S,inheritAttrs:x}=t,F=ws(t);let w,D;try{if(s.shapeFlag&4){const q=l||n,ot=q;w=Jt(m.call(ot,q,f,g,b,d,S)),D=o}else{const q=e;w=Jt(q.length>1?q(g,{attrs:o,slots:i,emit:c}):q(g,null)),D=e.props?o:Qi(o)}}catch(q){Me.length=0,Is(q,t,1),w=ft(ue)}let U=w;if(D&&x!==!1){const q=Object.keys(D),{shapeFlag:ot}=U;q.length&&ot&7&&(r&&q.some(As)&&(D=to(D,r)),U=qe(U,D,!1,!0))}if(s.dirs&&(U=qe(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(s.dirs):s.dirs),s.transition){const q=Rs(U.type)&&Zl(U)||U;En(q,s.transition)}return w=U,ws(F),w}const Qi=t=>{let e;for(const s in t)(s==="class"||s==="style"||Es(s))&&((e||(e={}))[s]=t[s]);return e},to=(t,e)=>{const s={};for(const n in t)(!As(n)||!(n.slice(9)in e))&&(s[n]=t[n]);return s};function eo(t,e,s){const{props:n,children:l,component:r}=t,{props:i,children:o,patchFlag:c}=e,m=r.emitsOptions;if(e.dirs||e.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?Xn(n,i,m):!!i;if(c&8){const f=e.dynamicProps;for(let g=0;g<f.length;g++){const d=f[g];if(ir(i,n,d)&&!Ls(m,d))return!0}}}else return(l||o)&&(!o||!o.$stable)?!0:n===i?!1:n?i?Xn(n,i,m):!0:!!i;return!1}function Xn(t,e,s){const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!0;for(let l=0;l<n.length;l++){const r=n[l];if(ir(e,t,r)&&!Ls(s,r))return!0}return!1}function ir(t,e,s){const n=t[s],l=e[s];return s==="style"&&tt(n)&&tt(l)?!Fs(n,l):n!==l}function so({vnode:t,parent:e,suspense:s},n){for(;e;){const l=e.subTree;if(l.suspense&&l.suspense.activeBranch===t&&(l.suspense.vnode.el=l.el=n,t=l),l===t)(t=e.vnode).el=n,e=e.parent;else break}s&&s.activeBranch===t&&(s.vnode.el=n)}const or={},ar=()=>Object.create(or),cr=t=>Object.getPrototypeOf(t)===or;function no(t,e,s,n=!1){const l={},r=ar();t.propsDefaults=Object.create(null),ur(t,e,l,r);for(const i in t.propsOptions[0])i in l||(l[i]=void 0);s?t.props=n?l:fi(l):t.type.props?t.props=l:t.props=r,t.attrs=r}function lo(t,e,s,n){const{props:l,attrs:r,vnode:{patchFlag:i}}=t,o=Y(l),[c]=t.propsOptions;let m=!1;if((n||i>0)&&!(i&16)){if(i&8){const f=t.vnode.dynamicProps;for(let g=0;g<f.length;g++){let d=f[g];if(Ls(t.emitsOptions,d))continue;const b=e[d];if(c)if(Z(r,d))b!==r[d]&&(r[d]=b,m=!0);else{const S=Lt(d);l[S]=pn(c,o,S,b,t,!1)}else b!==r[d]&&(r[d]=b,m=!0)}}}else{ur(t,e,l,r)&&(m=!0);let f;for(const g in o)(!e||!Z(e,g)&&((f=Ee(g))===g||!Z(e,f)))&&(c?s&&(s[g]!==void 0||s[f]!==void 0)&&(l[g]=pn(c,o,g,void 0,t,!0)):delete l[g]);if(r!==o)for(const g in r)(!e||!Z(e,g))&&(delete r[g],m=!0)}m&&re(t.attrs,"set","")}function ur(t,e,s,n){const[l,r]=t.propsOptions;let i=!1,o;if(e)for(let c in e){if(Ge(c))continue;const m=e[c];let f;l&&Z(l,f=Lt(c))?!r||!r.includes(f)?s[f]=m:(o||(o={}))[f]=m:Ls(t.emitsOptions,c)||(!(c in n)||m!==n[c])&&(n[c]=m,i=!0)}if(r){const c=Y(s),m=o||nt;for(let f=0;f<r.length;f++){const g=r[f];s[g]=pn(l,c,g,m[g],t,!Z(m,g))}}return i}function pn(t,e,s,n,l,r){const i=t[s];if(i!=null){const o=Z(i,"default");if(o&&n===void 0){const c=i.default;if(i.type!==Function&&!i.skipFactory&&V(c)){const{propsDefaults:m}=l;if(s in m)n=m[s];else{const f=cs(l);n=m[s]=c.call(null,e),f()}}else n=c;l.ce&&l.ce._setProp(s,n)}i[0]&&(r&&!o?n=!1:i[1]&&(n===""||n===Ee(s))&&(n=!0))}return n}const ro=new WeakMap;function fr(t,e,s=!1){const n=s?ro:e.propsCache,l=n.get(t);if(l)return l;const r=t.props,i={},o=[];let c=!1;if(!V(t)){const f=g=>{c=!0;const[d,b]=fr(g,e,!0);_t(i,d),b&&o.push(...b)};!s&&e.mixins.length&&e.mixins.forEach(f),t.extends&&f(t.extends),t.mixins&&t.mixins.forEach(f)}if(!r&&!c)return tt(t)&&n.set(t,$e),$e;if(W(r))for(let f=0;f<r.length;f++){const g=Lt(r[f]);Qn(g)&&(i[g]=nt)}else if(r)for(const f in r){const g=Lt(f);if(Qn(g)){const d=r[f],b=i[g]=W(d)||V(d)?{type:d}:_t({},d),S=b.type;let x=!1,F=!0;if(W(S))for(let w=0;w<S.length;++w){const D=S[w],U=V(D)&&D.name;if(U==="Boolean"){x=!0;break}else U==="String"&&(F=!1)}else x=V(S)&&S.name==="Boolean";b[0]=x,b[1]=F,(x||Z(b,"default"))&&o.push(g)}}const m=[i,o];return tt(t)&&n.set(t,m),m}function Qn(t){return t[0]!=="$"&&!Ge(t)}const On=t=>t==="_"||t==="_ctx"||t==="$stable",Pn=t=>W(t)?t.map(Jt):[Jt(t)],io=(t,e,s)=>{if(e._n)return e;const n=$i((...l)=>Pn(e(...l)),s);return n._c=!1,n},dr=(t,e,s)=>{const n=t._ctx;for(const l in t){if(On(l))continue;const r=t[l];if(V(r))e[l]=io(l,r,n);else if(r!=null){const i=Pn(r);e[l]=()=>i}}},pr=(t,e)=>{const s=Pn(e);t.slots.default=()=>s},hr=(t,e,s)=>{for(const n in e)(s||!On(n))&&(t[n]=e[n])},oo=(t,e,s)=>{const n=t.slots=ar();if(t.vnode.shapeFlag&32){const l=e._;l?(hr(n,e,s),s&&Sl(n,"_",l,!0)):dr(e,n)}else e&&pr(t,e)},ao=(t,e,s)=>{const{vnode:n,slots:l}=t;let r=!0,i=nt;if(n.shapeFlag&32){const o=e._;o?s&&o===1?r=!1:hr(l,e,s):(r=!e.$stable,dr(e,l)),i=e}else e&&(pr(t,e),i={default:1});if(r)for(const o in l)!On(o)&&i[o]==null&&delete l[o]},Mt=ho;function co(t){return uo(t)}function uo(t,e){const s=Ps();s.__VUE__=!0;const{insert:n,remove:l,patchProp:r,createElement:i,createText:o,createComment:c,setText:m,setElementText:f,parentNode:g,nextSibling:d,setScopeId:b=Zt,insertStaticContent:S}=t,x=(u,h,y,T=null,k=null,M=null,P=void 0,O=null,A=!!h.dynamicChildren)=>{if(u===h)return;u&&!We(u,h)&&(T=qt(u),j(u,k,M,!0),u=null),h.patchFlag===-2&&(A=!1,h.dynamicChildren=null),h.dynamicChildren&&u&&u.dynamicChildren&&u.dynamicChildren.hasOnce&&(h.dynamicChildren===$e&&(h.dynamicChildren=[]),h.dynamicChildren.hasOnce=!0);const{type:$,ref:H,shapeFlag:I}=h;switch($){case Hs:F(u,h,y,T);break;case ue:w(u,h,y,T);break;case _s:u==null&&D(h,y,T,P);break;case K:Ae(u,h,y,T,k,M,P,O,A);break;default:I&1?ot(u,h,y,T,k,M,P,O,A):I&6?At(u,h,y,T,k,M,P,O,A):(I&64||I&128)&&$.process(u,h,y,T,k,M,P,O,A,Pe)}H!=null&&k?Ze(H,u&&u.ref,M,h||u,!h):H==null&&u&&u.ref!=null&&Ze(u.ref,null,M,u,!0)},F=(u,h,y,T)=>{if(u==null)n(h.el=o(h.children),y,T);else{const k=h.el=u.el;h.children!==u.children&&m(k,h.children)}},w=(u,h,y,T)=>{u==null?n(h.el=c(h.children||""),y,T):h.el=u.el},D=(u,h,y,T)=>{[u.el,u.anchor]=S(u.children,h,y,T,u.el,u.anchor)},U=({el:u,anchor:h},y,T)=>{let k;for(;u&&u!==h;)k=d(u),n(u,y,T),u=k;n(h,y,T)},q=({el:u,anchor:h})=>{let y;for(;u&&u!==h;)y=d(u),l(u),u=y;l(h)},ot=(u,h,y,T,k,M,P,O,A)=>{if(h.type==="svg"?P="svg":h.type==="math"&&(P="mathml"),u==null)kt(h,y,T,k,M,P,O,A);else{const $=u.el&&u.el._isVueCE?u.el:null;try{$&&$._beginPatch(),pe(u,h,k,M,P,O,A)}finally{$&&$._endPatch()}}},kt=(u,h,y,T,k,M,P,O)=>{let A,$;const{props:H,shapeFlag:I,transition:L,dirs:B}=u;if(A=u.el=i(u.type,M,H&&H.is,H),I&8?f(A,u.children):I&16&&It(u.children,A,null,T,k,Ys(u,M),P,O),B&&we(u,null,T,"created"),$t(A,u,u.scopeId,P,T),H){for(const et in H)et!=="value"&&!Ge(et)&&r(A,et,null,H[et],M,T);"value"in H&&r(A,"value",null,H.value,M),($=H.onVnodeBeforeMount)&&Kt($,T,u)}B&&we(u,null,T,"beforeMount");const J=fo(k,L);J&&L.beforeEnter(A),n(A,h,y),(($=H&&H.onVnodeMounted)||J||B)&&Mt(()=>{try{$&&Kt($,T,u),J&&L.enter(A),B&&we(u,null,T,"mounted")}finally{}},k)},$t=(u,h,y,T,k)=>{if(y&&b(u,y),T)for(let M=0;M<T.length;M++)b(u,T[M]);if(k){let M=k.subTree;if(h===M||vr(M.type)&&(M.ssContent===h||M.ssFallback===h)){const P=k.vnode;$t(u,P,P.scopeId,P.slotScopeIds,k.parent)}}},It=(u,h,y,T,k,M,P,O,A=0)=>{for(let $=A;$<u.length;$++){const H=u[$]=O?ne(u[$]):Jt(u[$]);x(null,H,h,y,T,k,M,P,O)}},pe=(u,h,y,T,k,M,P)=>{const O=h.el=u.el;let{patchFlag:A,dynamicChildren:$,dirs:H}=h;A|=u.patchFlag&16;const I=u.props||nt,L=h.props||nt;let B;if(y&&xe(y,!1),(B=L.onVnodeBeforeUpdate)&&Kt(B,y,h,u),H&&we(h,u,y,"beforeUpdate"),y&&xe(y,!0),$&&(!u.dynamicChildren||u.dynamicChildren.length!==$.length)&&(A=0,P=!1,$=null),(I.innerHTML&&L.innerHTML==null||I.textContent&&L.textContent==null)&&f(O,""),$?te(u.dynamicChildren,$,O,y,T,Ys(h,k),M):P||X(u,h,O,null,y,T,Ys(h,k),M,!1),A>0){if(A&16)be(O,I,L,y,k);else if(A&2&&I.class!==L.class&&r(O,"class",null,L.class,k),A&4&&r(O,"style",I.style,L.style,k),A&8){const J=h.dynamicProps;for(let et=0;et<J.length;et++){const Q=J[et],ut=I[Q],ht=L[Q];(ht!==ut||Q==="value")&&r(O,Q,ut,ht,k,y)}}A&1&&u.children!==h.children&&f(O,h.children)}else!P&&$==null&&be(O,I,L,y,k);((B=L.onVnodeUpdated)||H)&&Mt(()=>{B&&Kt(B,y,h,u),H&&we(h,u,y,"updated")},T)},te=(u,h,y,T,k,M,P)=>{for(let O=0;O<h.length;O++){const A=u[O],$=h[O],H=A.el&&(A.type===K||!We(A,$)||A.shapeFlag&198)?g(A.el):y;x(A,$,H,null,T,k,M,P,!0)}},be=(u,h,y,T,k)=>{if(h!==y){if(h!==nt)for(const M in h)!Ge(M)&&!(M in y)&&r(u,M,h[M],null,k,T);for(const M in y){if(Ge(M))continue;const P=y[M],O=h[M];P!==O&&M!=="value"&&r(u,M,O,P,k,T)}"value"in y&&r(u,"value",h.value,y.value,k)}},Ae=(u,h,y,T,k,M,P,O,A)=>{const $=h.el=u?u.el:o(""),H=h.anchor=u?u.anchor:o("");let{patchFlag:I,dynamicChildren:L,slotScopeIds:B}=h;B&&(O=O?O.concat(B):B),u==null?(n($,y,T),n(H,y,T),It(h.children||[],y,H,k,M,P,O,A)):I>0&&I&64&&L&&u.dynamicChildren&&u.dynamicChildren.length===L.length?(te(u.dynamicChildren,L,y,k,M,P,O),(h.key!=null||k&&h===k.subTree)&&mr(u,h,!0)):X(u,h,y,H,k,M,P,O,A)},At=(u,h,y,T,k,M,P,O,A)=>{h.slotScopeIds=O,u==null?h.shapeFlag&512?k.ctx.activate(h,y,T,P,A):Ne(h,y,T,k,M,P,A):us(u,h,A)},Ne=(u,h,y,T,k,M,P)=>{const O=u.component=wo(u,T,k);if(An(u)&&(O.ctx.renderer=Pe),ko(O,!1,P),O.asyncDep){if(k&&k.registerDep(O,pt,P),!u.el){const A=O.subTree=ft(ue);w(null,A,h,y),u.placeholder=A.el}}else pt(O,u,h,y,k,M,P)},us=(u,h,y)=>{const T=h.component=u.component;if(eo(u,h,y))if(T.asyncDep&&!T.asyncResolved){h.el=u.el,lt(T,h,y);return}else T.next=h,T.update();else h.el=u.el,T.vnode=h},pt=(u,h,y,T,k,M,P)=>{const O=()=>{if(u.isMounted){let{next:I,bu:L,u:B,parent:J,vnode:et}=u;{const Wt=_r(u);if(Wt){I&&(I.el=et.el,lt(u,I,P)),Wt.asyncDep.then(()=>{Mt(()=>{u.isUnmounted||$()},k)});return}}let Q=I,ut;xe(u,!1),I?(I.el=et.el,lt(u,I,P)):I=et,L&&Ws(L),(ut=I.props&&I.props.onVnodeBeforeUpdate)&&Kt(ut,J,I,et),xe(u,!0);const ht=Zn(u),Bt=u.subTree;u.subTree=ht,x(Bt,ht,g(Bt.el),qt(Bt),u,k,M),I.el=ht.el,Q===null&&so(u,ht.el),B&&Mt(B,k),(ut=I.props&&I.props.onVnodeUpdated)&&Mt(()=>Kt(ut,J,I,et),k)}else{let I;const{el:L,props:B}=h,{bm:J,m:et,parent:Q,root:ut,type:ht}=u,Bt=Xe(h);xe(u,!1),J&&Ws(J),!Bt&&(I=B&&B.onVnodeBeforeMount)&&Kt(I,Q,h),xe(u,!0);{ut.ce&&ut.ce._hasShadowRoot()&&ut.ce._injectChildStyle(ht,u.parent?u.parent.type:void 0);const Wt=u.subTree=Zn(u);x(null,Wt,y,T,u,k,M),h.el=Wt.el}if(et&&Mt(et,k),!Bt&&(I=B&&B.onVnodeMounted)){const Wt=h;Mt(()=>Kt(I,Q,Wt),k)}(h.shapeFlag&256||Q&&Xe(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&Mt(u.a,k),u.isMounted=!0,h=y=T=null}};u.scope.on();const A=u.effect=new El(O);u.scope.off();const $=u.update=A.run.bind(A),H=u.job=A.runIfDirty.bind(A);H.i=u,H.id=u.uid,A.scheduler=()=>Cn(H),xe(u,!0),$()},lt=(u,h,y)=>{h.component=u;const T=u.vnode.props;u.vnode=h,u.next=null,lo(u,h.props,T,y),ao(u,h.children,y),ae(),Wn(u),ce()},X=(u,h,y,T,k,M,P,O,A=!1)=>{const $=u&&u.children,H=u?u.shapeFlag:0,I=h.children,{patchFlag:L,shapeFlag:B}=h;if(L>0){if(L&128){ye($,I,y,T,k,M,P,O,A);return}else if(L&256){Rt($,I,y,T,k,M,P,O,A);return}}B&8?(H&16&&St($,k,M),I!==$&&f(y,I)):H&16?B&16?ye($,I,y,T,k,M,P,O,A):St($,k,M,!0):(H&8&&f(y,""),B&16&&It(I,y,T,k,M,P,O,A))},Rt=(u,h,y,T,k,M,P,O,A)=>{u=u||$e,h=h||$e;const $=u.length,H=h.length,I=Math.min($,H);let L;for(L=0;L<I;L++){const B=h[L]=A?ne(h[L]):Jt(h[L]);x(u[L],B,y,null,k,M,P,O,A)}$>H?St(u,k,M,!0,!1,I):It(h,y,T,k,M,P,O,A,I)},ye=(u,h,y,T,k,M,P,O,A)=>{let $=0;const H=h.length;let I=u.length-1,L=H-1;for(;$<=I&&$<=L;){const B=u[$],J=h[$]=A?ne(h[$]):Jt(h[$]);if(We(B,J))x(B,J,y,null,k,M,P,O,A);else break;$++}for(;$<=I&&$<=L;){const B=u[I],J=h[L]=A?ne(h[L]):Jt(h[L]);if(We(B,J))x(B,J,y,null,k,M,P,O,A);else break;I--,L--}if($>I){if($<=L){const B=L+1,J=B<H?h[B].el:T;for(;$<=L;)x(null,h[$]=A?ne(h[$]):Jt(h[$]),y,J,k,M,P,O,A),$++}}else if($>L)for(;$<=I;)j(u[$],k,M,!0),$++;else{const B=$,J=$,et=new Map;for($=J;$<=L;$++){const Ct=h[$]=A?ne(h[$]):Jt(h[$]);Ct.key!=null&&et.set(Ct.key,$)}let Q,ut=0;const ht=L-J+1;let Bt=!1,Wt=0;const je=new Array(ht);for($=0;$<ht;$++)je[$]=0;for($=B;$<=I;$++){const Ct=u[$];if(ut>=ht){j(Ct,k,M,!0);continue}let Vt;if(Ct.key!=null)Vt=et.get(Ct.key);else for(Q=J;Q<=L;Q++)if(je[Q-J]===0&&We(Ct,h[Q])){Vt=Q;break}Vt===void 0?j(Ct,k,M,!0):(je[Vt-J]=$+1,Vt>=Wt?Wt=Vt:Bt=!0,x(Ct,h[Vt],y,null,k,M,P,O,A),ut++)}const Dn=Bt?po(je):$e;for(Q=Dn.length-1,$=ht-1;$>=0;$--){const Ct=J+$,Vt=h[Ct],In=h[Ct+1],Rn=Ct+1<H?In.el||gr(In):T;je[$]===0?x(null,Vt,y,Rn,k,M,P,O,A):Bt&&(Q<0||$!==Dn[Q]?N(Vt,y,Rn,2):Q--)}}},N=(u,h,y,T,k=null)=>{const{el:M,type:P,transition:O,children:A,shapeFlag:$}=u;if($&6){N(u.component.subTree,h,y,T);return}if($&128){u.suspense.move(h,y,T);return}if($&64){P.move(u,h,y,Pe);return}if(P===K){n(M,h,y);for(let I=0;I<A.length;I++)N(A[I],h,y,T);n(u.anchor,h,y);return}if(P===_s){U(u,h,y);return}if(T!==2&&$&1&&O)if(T===0)O.persisted&&!M[zs]?n(M,h,y):(O.beforeEnter(M),n(M,h,y),Mt(()=>O.enter(M),k));else{const{leave:I,delayLeave:L,afterLeave:B}=O,J=()=>{u.ctx.isUnmounted?l(M):n(M,h,y)},et=()=>{const Q=M._isLeaving||!!M[zs];M._isLeaving&&M[zs](!0),O.persisted&&!Q?J():I(M,()=>{J(),B&&B()})};L?L(M,J,et):et()}else n(M,h,y)},j=(u,h,y,T=!1,k=!1)=>{const{type:M,props:P,ref:O,children:A,dynamicChildren:$,shapeFlag:H,patchFlag:I,dirs:L,cacheIndex:B,memo:J}=u;if((I===-2||$&&$.hasOnce)&&(k=!1),O!=null&&(ae(),Ze(O,null,y,u,!0),ce()),B!=null&&(!u.ctx||u.ctx===h)&&(h.renderCache[B]=void 0),H&256){h.ctx.deactivate(u);return}const et=H&1&&L,Q=!Xe(u);let ut;if(Q&&(ut=P&&P.onVnodeBeforeUnmount)&&Kt(ut,h,u),H&6)Oe(u.component,y,T);else{if(H&128){u.suspense.unmount(y,T);return}et&&we(u,null,h,"beforeUnmount"),H&64?u.type.remove(u,h,y,Pe,T):$&&!$.hasOnce&&(M!==K||I>0&&I&64)?St($,h,y,!1,!0):(M===K&&I&384||!k&&H&16)&&St(A,h,y),T&&G(u)}const ht=J!=null&&B==null;(Q&&(ut=P&&P.onVnodeUnmounted)||et||ht)&&Mt(()=>{ut&&Kt(ut,h,u),et&&we(u,null,h,"unmounted"),ht&&(u.el=null)},y)},G=u=>{const{type:h,el:y,anchor:T,transition:k}=u;if(h===K){Ot(y,T);return}if(h===_s){q(u),k&&!k.persisted&&k.afterLeave&&k.afterLeave();return}const M=()=>{l(y),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(u.shapeFlag&1&&k&&!k.persisted){const{leave:P,delayLeave:O}=k,A=()=>P(y,M);O?O(u.el,M,A):A()}else M()},Ot=(u,h)=>{let y;for(;u!==h;)y=d(u),l(u),u=y;l(h)},Oe=(u,h,y)=>{const{bum:T,scope:k,job:M,subTree:P,um:O,m:A,a:$}=u;tl(A),tl($),T&&Ws(T),k.stop(),M?(M.flags|=8,j(P,u,h,y)):u.vnode.el&&P&&(P.transition=u.vnode.transition,j(P,u,h,y)),O&&Mt(O,h),Mt(()=>{u.isUnmounted=!0},h)},St=(u,h,y,T=!1,k=!1,M=0)=>{for(let P=M;P<u.length;P++)j(u[P],h,y,T,k)},qt=u=>{if(u.shapeFlag&6)return qt(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const h=d(u.anchor||u.el),y=h&&h[Ei];return y?d(y):h};let Le=!1;const He=(u,h,y)=>{let T;u==null?h._vnode&&(j(h._vnode,null,null,!0),T=h._vnode.component):x(h._vnode||null,u,h,null,null,null,y),h._vnode=u,Le||(Le=!0,Wn(T),Ul(),Le=!1)},Pe={p:x,um:j,m:N,r:G,mt:Ne,mc:It,pc:X,pbc:te,n:qt,o:t};return{render:He,hydrate:void 0,createApp:Ji(He)}}function Ys({type:t,props:e},s){return s==="svg"&&t==="foreignObject"||s==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:s}function xe({effect:t,job:e},s){s?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function fo(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function mr(t,e,s=!1){const n=t.children,l=e.children;if(W(n)&&W(l))for(let r=0;r<n.length;r++){const i=n[r];let o=l[r];o.shapeFlag&1&&!o.dynamicChildren&&((o.patchFlag<=0||o.patchFlag===32)&&(o=l[r]=ne(l[r]),o.el=i.el),!s&&o.patchFlag!==-2&&mr(i,o)),o.type===Hs&&(o.patchFlag===-1&&(o=l[r]=ne(o)),o.el=i.el),o.type===ue&&!o.el&&(o.el=i.el)}}function po(t){const e=t.slice(),s=[0];let n,l,r,i,o;const c=t.length;for(n=0;n<c;n++){const m=t[n];if(m!==0){if(l=s[s.length-1],t[l]<m){e[n]=l,s.push(n);continue}for(r=0,i=s.length-1;r<i;)o=r+i>>1,t[s[o]]<m?r=o+1:i=o;m<t[s[r]]&&(r>0&&(e[n]=s[r-1]),s[r]=n)}}for(r=s.length,i=s[r-1];r-- >0;)s[r]=i,i=e[i];return s}function _r(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:_r(e)}function tl(t){if(t)for(let e=0;e<t.length;e++)t[e].flags|=8}function gr(t){if(t.placeholder)return t.placeholder;const e=t.component;return e?gr(e.subTree):null}const vr=t=>t.__isSuspense;function ho(t,e){e&&e.pendingBranch?W(t)?e.effects.push(...t):e.effects.push(t):ki(t)}const K=Symbol.for("v-fgt"),Hs=Symbol.for("v-txt"),ue=Symbol.for("v-cmt"),_s=Symbol.for("v-stc"),Me=[];let Et=null;function C(t=!1){Me.push(Et=t?null:[])}function br(){Me.pop(),Et=Me[Me.length-1]||null}let ls=1;function el(t,e=!1){ls+=t,t<0&&Et&&e&&(Et.hasOnce=!0)}function yr(t){return t.dynamicChildren=ls>0?Et||$e:null,br(),ls>0&&Et&&Et.push(t),t}function E(t,e,s,n,l,r){return yr(a(t,e,s,n,l,r,!0))}function me(t,e,s,n,l){return yr(ft(t,e,s,n,l,!0))}function wr(t){return t?t.__v_isVNode===!0:!1}function We(t,e){return t.type===e.type&&t.key===e.key}const xr=({key:t})=>t??null,gs=({ref:t,ref_key:e,ref_for:s})=>(typeof t=="number"&&(t=""+t),t!=null?at(t)||vt(t)||V(t)?{i:Pt,r:t,k:e,f:!!s}:t:null);function a(t,e=null,s=null,n=0,l=null,r=t===K?0:1,i=!1,o=!1){const c={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&xr(e),ref:e&&gs(e),scopeId:zl,slotScopeIds:null,children:s,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:r,patchFlag:n,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Pt};return o?($s(c,s),r&128&&t.normalize(c)):s&&(c.shapeFlag|=at(s)?8:16),ls>0&&!i&&Et&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&Et.push(c),c}const ft=mo;function mo(t,e=null,s=null,n=0,l=null,r=!1){if((!t||t===ji)&&(t=ue),wr(t)){const o=qe(t,e,!0);return s&&$s(o,s),ls>0&&!r&&Et&&(o.shapeFlag&6?Et[Et.indexOf(t)]=o:Et.push(o)),o.patchFlag=-2,o}if(To(t)&&(t=t.__vccOpts),e){e=_o(e);let{class:o,style:c}=e;o&&!at(o)&&(e.class=wt(o)),tt(c)&&(Tn(c)&&!W(c)&&(c=_t({},c)),e.style=dt(c))}const i=at(t)?1:vr(t)?128:Rs(t)?64:tt(t)?4:V(t)?2:0;return a(t,e,s,n,l,i,r,!0)}function _o(t){return t?Tn(t)||cr(t)?_t({},t):t:null}function qe(t,e,s=!1,n=!1){const{props:l,ref:r,patchFlag:i,children:o,transition:c}=t,m=e?vo(l||{},e):l,f={__v_isVNode:!0,__v_skip:!0,type:t.type,props:m,key:m&&xr(m),ref:e&&e.ref?s&&r?W(r)?r.concat(gs(e)):[r,gs(e)]:gs(e):r,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==K?i===-1?16:i|16:i,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:c,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&qe(t.ssContent),ssFallback:t.ssFallback&&qe(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce,cacheIndex:t.cacheIndex};return c&&n&&En(f,c.clone(f)),f}function z(t=" ",e=0){return ft(Hs,null,t,e)}function go(t,e){const s=ft(_s,null,t);return s.staticCount=e,s}function ct(t="",e=!1){return e?(C(),me(ue,null,t)):ft(ue,null,t)}function Jt(t){return t==null||typeof t=="boolean"?ft(ue):W(t)?ft(K,null,t.slice()):wr(t)?ne(t):ft(Hs,null,String(t))}function ne(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:qe(t)}function $s(t,e){let s=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(W(e))s=16;else if(typeof e=="object")if(n&65){const l=e.default;l&&(l._c&&(l._d=!1),$s(t,l()),l._c&&(l._d=!0));return}else{s=32;const l=e._;!l&&!cr(e)?e._ctx=Pt:l===3&&Pt&&(Pt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else if(V(e)){if(n&65){$s(t,{default:e});return}e={default:e,_ctx:Pt},s=32}else e=String(e),n&64?(s=16,e=[z(e)]):s=8;t.children=e,t.shapeFlag|=s}function vo(...t){const e={};for(let s=0;s<t.length;s++){const n=t[s];for(const l in n)if(l==="class")e.class!==n.class&&(e.class=wt([e.class,n.class]));else if(l==="style")e.style=dt([e.style,n.style]);else if(Es(l)){const r=e[l],i=n[l];i&&r!==i&&!(W(r)&&r.includes(i))?e[l]=r?[].concat(r,i):i:i==null&&r==null&&!As(l)&&(e[l]=i)}else l!==""&&(e[l]=n[l])}return e}function Kt(t,e,s,n=null){jt(t,e,7,[s,n])}const bo=lr();let yo=0;function wo(t,e,s){const n=t.type,l=(e?e.appContext:t.appContext)||bo,r={uid:yo++,vnode:t,type:n,parent:e,appContext:l,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ur(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(l.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:fr(n,l),emitsOptions:rr(n,l),emit:null,emitted:null,propsDefaults:nt,inheritAttrs:n.inheritAttrs,ctx:nt,data:nt,props:nt,attrs:nt,slots:nt,refs:nt,setupState:nt,setupContext:null,suspense:s,suspenseId:s?s.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 r.ctx={_:r},r.root=e?e.root:r,r.emit=Zi.bind(null,r),t.ce&&t.ce(r),r}let xt=null;const xo=()=>xt||Pt;let Ss,rs;{const t=Ps(),e=(s,n)=>{let l;return(l=t[s])||(l=t[s]=[]),l.push(n),r=>{l.length>1?l.forEach(i=>i(r)):l[0](r)}};Ss=e("__VUE_INSTANCE_SETTERS__",s=>xt=s),rs=e("__VUE_SSR_SETTERS__",s=>is=s)}const cs=t=>{const e=xt;return Ss(t),t.scope.on(),()=>{t.scope.off(),Ss(e)}},sl=()=>{xt&&xt.scope.off(),Ss(null)};function kr(t){return t.vnode.shapeFlag&4}let is=!1;function ko(t,e=!1,s=!1){e&&rs(e);const{props:n,children:l}=t.vnode,r=kr(t);no(t,n,r,e),oo(t,l,s||e);const i=r?$o(t,e):void 0;return e&&rs(!1),i}function $o(t,e){const s=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Bi);const{setup:n}=s;if(n){ae();const l=t.setupContext=n.length>1?Mo(t):null,r=cs(t),i=as(n,t,0,[t.props,l]),o=wl(i);if(ce(),r(),(o||t.sp)&&!Xe(t)&&Xl(t),o){if(i.then(sl,sl),e)return i.then(c=>{rs(!0);try{nl(t,c,e)}finally{rs(!1)}}).catch(c=>{Is(c,t,0)});t.asyncDep=i}else nl(t,i)}else $r(t)}function nl(t,e,s){V(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:tt(e)&&(t.setupState=Wl(e)),$r(t)}function $r(t,e,s){const n=t.type;t.render||(t.render=n.render||Zt);{const l=cs(t);ae();try{Wi(t)}finally{ce(),l()}}}const So={get(t,e){return gt(t,"get",""),t[e]}};function Mo(t){const e=s=>{t.exposed=s||{}};return{attrs:new Proxy(t.attrs,So),slots:t.slots,emit:t.emit,expose:e}}function js(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Wl(di(t.exposed)),{get(e,s){if(s in e)return e[s];if(s in Qe)return Qe[s](t)},has(e,s){return s in e||s in Qe}})):t.proxy}function To(t){return V(t)&&"__vccOpts"in t}const R=(t,e)=>gi(t,e,is),Co="3.5.43";/**
  14. * @vue/runtime-dom v3.5.43
  15. * (c) 2018-present Yuxi (Evan) You and Vue contributors
  16. * @license MIT
  17. **/let hn;const ll=typeof window<"u"&&window.trustedTypes;if(ll)try{hn=ll.createPolicy("vue",{createHTML:t=>t})}catch{}const Sr=hn?t=>hn.createHTML(t):t=>t,Eo="http://www.w3.org/2000/svg",Ao="http://www.w3.org/1998/Math/MathML",se=typeof document<"u"?document:null,rl=se&&se.createElement("template"),Oo={insert:(t,e,s)=>{e.insertBefore(t,s||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,s,n)=>{const l=e==="svg"?se.createElementNS(Eo,t):e==="mathml"?se.createElementNS(Ao,t):s?se.createElement(t,{is:s}):se.createElement(t);return t==="select"&&n&&n.multiple!=null&&l.setAttribute("multiple",n.multiple),l},createText:t=>se.createTextNode(t),createComment:t=>se.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>se.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,s,n,l,r){const i=s?s.previousSibling:e.lastChild;if(l&&(l===r||l.nextSibling))for(;e.insertBefore(l.cloneNode(!0),s),!(l===r||!(l=l.nextSibling)););else{rl.innerHTML=Sr(n==="svg"?`<svg>${t}</svg>`:n==="mathml"?`<math>${t}</math>`:t);const o=rl.content;if(n==="svg"||n==="mathml"){const c=o.firstChild;for(;c.firstChild;)o.appendChild(c.firstChild);o.removeChild(c)}e.insertBefore(o,s)}return[i?i.nextSibling:e.firstChild,s?s.previousSibling:e.lastChild]}},Po=Symbol("_vtc");function Fo(t,e,s){const n=t[Po];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):s?t.setAttribute("class",e):t.className=e}const Ms=Symbol("_vod"),Mr=Symbol("_vsh"),il={name:"show",beforeMount(t,{value:e},{transition:s}){t[Ms]=t.style.display==="none"?"":t.style.display,s&&e?s.beforeEnter(t):Ve(t,e)},mounted(t,{value:e},{transition:s}){s&&e&&s.enter(t)},updated(t,{value:e,oldValue:s},{transition:n}){!e!=!s&&(n?e?(n.beforeEnter(t),Ve(t,!0),n.enter(t)):n.leave(t,()=>{Ve(t,!1)}):Ve(t,e))},beforeUnmount(t,{value:e}){Ve(t,e)}};function Ve(t,e){t.style.display=e?t[Ms]:"none",t[Mr]=!e}const Do=Symbol(""),Io=/(?:^|;)\s*display\s*:/;function Ro(t,e,s){const n=t.style,l=at(s);let r=!1;if(s&&!l){if(e)if(at(e))for(const i of e.split(";")){const o=i.slice(0,i.indexOf(":")).trim();s[o]==null&&Ue(n,o,"")}else for(const i in e)s[i]==null&&Ue(n,i,"");for(const i in s){i==="display"&&(r=!0);const o=s[i];o!=null?No(t,i,!at(e)&&e?e[i]:void 0,o)||Ue(n,i,o):Ue(n,i,"")}}else if(l){if(e!==s){const i=n[Do];i&&(s+=";"+i),n.cssText=s,r=Io.test(s)}}else e&&t.removeAttribute("style");Ms in t&&(t[Ms]=r?n.display:"",t[Mr]&&(n.display="none"))}const hs=/\s*!important$/;function Ue(t,e,s){if(W(s))s.forEach(n=>Ue(t,e,n));else if(s==null&&(s=""),e.startsWith("--"))hs.test(s)?t.setProperty(e,s.replace(hs,""),"important"):t.setProperty(e,s);else{const n=qo(t,e);hs.test(s)?t.setProperty(Ee(n),s.replace(hs,""),"important"):t[n]=s}}const ol=["Webkit","Moz","ms"],Zs={};function qo(t,e){const s=Zs[e];if(s)return s;let n=Lt(e);if(n!=="filter"&&n in t)return Zs[e]=n;n=$l(n);for(let l=0;l<ol.length;l++){const r=ol[l]+n;if(r in t)return Zs[e]=r}return e}function No(t,e,s,n){return t.tagName==="TEXTAREA"&&(e==="width"||e==="height")&&at(n)&&s===n}const al="http://www.w3.org/1999/xlink";function cl(t,e,s,n,l,r=Wr(e)){n&&e.startsWith("xlink:")?s==null?t.removeAttributeNS(al,e.slice(6,e.length)):t.setAttributeNS(al,e,s):s==null||r&&!Ml(s)?t.removeAttribute(e):t.setAttribute(e,r?"":Xt(s)?String(s):s)}function ul(t,e,s,n,l){if(e==="innerHTML"||e==="textContent"){s!=null&&(t[e]=e==="innerHTML"?Sr(s):s);return}const r=t.tagName;if(e==="value"&&r!=="PROGRESS"&&!r.includes("-")){const o=r==="OPTION"?t.getAttribute("value")||"":t.value,c=s==null?t.type==="checkbox"?"on":"":String(s);(o!==c||!("_value"in t))&&(t.value=c),s==null&&t.removeAttribute(e),t._value=s;return}let i=!1;if(s===""||s==null){const o=typeof t[e];o==="boolean"?s=Ml(s):s==null&&o==="string"?(s="",i=!0):o==="number"&&(s=0,i=!0)}try{t[e]=s}catch{}i&&t.removeAttribute(l||e)}function Lo(t,e,s,n){t.addEventListener(e,s,n)}function Ho(t,e,s,n){t.removeEventListener(e,s,n)}const fl=Symbol("_vei");function jo(t,e,s,n,l=null){const r=t[fl]||(t[fl]={}),i=r[e];if(n&&i)i.value=n;else{const[o,c]=Vo(e);if(n){const m=r[e]=Go(n,l);Lo(t,o,m,c)}else i&&(Ho(t,o,i,c),r[e]=void 0)}}const Bo=/(Once|Passive|Capture)$/,Wo=/^on:?(?:Once|Passive|Capture)$/;function Vo(t){let e,s;for(;(s=t.match(Bo))&&!Wo.test(t);)e||(e={}),t=t.slice(0,t.length-s[1].length),e[s[1].toLowerCase()]=!0;return[t[2]===":"?t.slice(3):Ee(t.slice(2)),e]}let Xs=0;const Ko=Promise.resolve(),Uo=()=>Xs||(Ko.then(()=>Xs=0),Xs=Date.now());function Go(t,e){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;const l=s.value;if(W(l)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const i=l.slice(),o=[n];for(let c=0;c<i.length&&!n._stopped;c++){const m=i[c];m&&jt(m,e,5,o)}}else jt(l,e,5,[n])};return s.value=t,s.attached=Uo(),s}const dl=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,zo=(t,e,s,n,l,r)=>{const i=l==="svg";e==="class"?Fo(t,n,i):e==="style"?Ro(t,s,n):Es(e)?As(e)||jo(t,e,s,n,r):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Jo(t,e,n,i))?(ul(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&cl(t,e,n,i,r,e!=="value")):t._isVueCE&&(Yo(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!at(n)))?ul(t,Lt(e),n,r,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),cl(t,e,n,i))};function Jo(t,e,s,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&dl(e)&&V(s));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const l=t.tagName;if(l==="IMG"||l==="VIDEO"||l==="CANVAS"||l==="SOURCE")return!1}return dl(e)&&at(s)?!1:e in t}function Yo(t,e){const s=t._def.props;if(!s)return!1;const n=Lt(e);return Array.isArray(s)?s.some(l=>Lt(l)===n):Object.keys(s).some(l=>Lt(l)===n)}const Zo=_t({patchProp:zo},Oo);let pl;function Xo(){return pl||(pl=co(Zo))}const Qo=((...t)=>{const e=Xo().createApp(...t),{mount:s}=e;return e.mount=n=>{const l=ea(n);if(!l)return;const r=e._component;!V(r)&&!r.render&&!r.template&&(r.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const i=s(l,!1,ta(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},e});function ta(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function ea(t){return at(t)?document.querySelector(t):t}const Tr={fleet:"/api/fleet",curves:"/api/curves",channels:"/api/channels",facts:"/api/facts",maintSurvey:"/api/maint_survey",maintStd:"/api/maint_std",maintFramework:"/api/maint_framework",dqFindings:"/api/dq_findings",ontList:"/api/ont_list",askStatus:"/api/ask_status",askModels:"/api/ask_models",vibcms:"/api/vibcms",algoHealth:"/algorithm/healthz",algoEndpoints:"/algorithm/api/endpoints",algoMatrix:"/algorithm/api/matrix",algoReliability:"/algorithm/api/reliability",algoPurity:"/algorithm/api/curves_check"};async function Cr(t,e){const s=Tr[t],n=performance.now();try{const l=await fetch(s,{headers:{Accept:"application/json",...e?.body?{"Content-Type":"application/json"}:{}},...e}),r=await l.text();let i=r;try{i=JSON.parse(r)}catch{}return{name:t,path:s,ok:l.ok,status:l.status,ms:Math.round(performance.now()-n),data:i}}catch(l){return{name:t,path:s,ok:!1,status:0,ms:Math.round(performance.now()-n),error:l instanceof Error?l.message:String(l)}}}const Qs=["facts","maintSurvey","ontList","askStatus","channels","dqFindings","algoHealth","algoEndpoints","algoMatrix","algoReliability","algoPurity"],sa={class:"card"},na={class:"hint"},la=["disabled"],ra={class:"hint"},ia=fe({__name:"ContractSmoke",setup(t){const e=Nt([]),s=Nt(!1),n=Nt(0);function l(i){return Array.isArray(i)?`list[${i.length}]`:i&&typeof i=="object"?Object.keys(i).slice(0,8).join(", "):typeof i}async function r(){s.value=!0,e.value=[],n.value=0;for(const i of Qs){const o=await Cr(i);e.value.push({name:i,path:o.path,ok:o.ok,status:o.status,ms:o.ms,keys:l(o.data),error:o.error}),n.value+=1}s.value=!1}return Ns(r),(i,o)=>(C(),E("section",sa,[o[3]||(o[3]=a("h2",null,[z("契约自检 "),a("small",null,"(后端结构与算法服务可达性;对拍基准见 docs/接口契约_前后端_v0.1.md)")],-1)),a("p",na,[z(" 进度 "+_(n.value)+"/"+_(v(Qs).length)+' · 只判"通不通",不比数据值(值随数据变,锚点在 Python 侧的门禁里) ',1),a("button",{class:"re",disabled:s.value,onClick:r},"重跑",8,la)]),a("table",null,[o[0]||(o[0]=a("thead",null,[a("tr",null,[a("th",null,"接口"),a("th",null,"路径"),a("th",null,"状态"),a("th",null,"耗时"),a("th",null,"顶层键 / 形状")])],-1)),a("tbody",null,[(C(!0),E(K,null,it(e.value,c=>(C(),E("tr",{key:c.name,class:wt({bad:!c.ok})},[a("td",null,_(c.name),1),a("td",null,[a("code",null,_(c.path),1)]),a("td",null,_(c.status),1),a("td",null,_(c.ms)+" ms",1),a("td",null,_(c.error||c.keys),1)],2))),128))])]),a("p",ra,[z(" 契约登记接口合计 "+_(Object.keys(v(Tr)).length)+" 条(本页抽样 "+_(v(Qs).length)+" 条); 全量 42 条由 ",1),o[1]||(o[1]=a("code",null,"python scripts/http_contract_audit.py",-1)),o[2]||(o[2]=z(" 在线复核。 ",-1))])]))}}),oa={"app.brand":"观澜","app.build":"最新完成构建","app.lang_en":"英文","app.lang_zh":"中文","app.subtitle":"海上风电场","app.title":"观澜 · 风电数据分析与决策支持","ask.common_q":"{cat} · 常用问题 (点即问, 或下方自由输入)","ask.done_meta":"模型 {m} · 用时 {s} 秒 · {n} 步","ask.elapsed":"{s} 秒","ask.empty":"问题为空","ask.en_qa_failed":"英文质检未通过: 已拦截这次模型回答, 请重新提问。","ask.error":"出错: {e}","ask.go":"提问","ask.grounding":"答案句句带 [对象id] 溯源 + 数据回抓校验核验; 判级只转述本体原文带审级, 模型零判级权。","ask.idle":"空闲 — 点常用问题或输入后提问。串行一次一问。","ask.local_down":"本机模型未启动 (Ollama 127.0.0.1:11434 未响应); 离线版不转云","ask.model":"模型","ask.no_models":"无可用模型","ask.offline":"离线版: 模型问答需连接系统。","ask.partial":"初答 · 27B 复核中","ask.placeholder":"自由提问 ({cat})","ask.question":"问题: {q}","ask.refined":"已复核 (默认档 {m} 未过成文校验, 由更强模型重答)","ask.refs.none":"无匹配契约条目 (契约 {sha}): 本回答未被结构化事实契约背书, 按模型输出对待","ask.refs.title":"契约引用 ({n} 条, 契约 {sha}) — 按问题/回答匹配的可交付结论, 引文来自 qa_refs","ask.review":"交叉审核 · {m}","ask.review_err":"审核未完成: {e}","ask.review_note":"由另一模型基于同一份证据复核上述答案。溯源核验仅校验数字与机组号是否越界, 本项校验结论是否有证据支撑。","ask.running":"推理中…","ask.verify_bad":"溯源核验未全过 (引用 {n})","ask.verify_ok":"溯源核验 {n}/{n} 全真","ask.xrev":"交叉审核","ask.xrev_note":"(DeepSeek 14B 互审, +约 1 分钟)","ask.xrev_title":"由另一模型基于同一份证据复核; 同一模型自审无法构成独立校验","asst.alarm_type":"告警类型 {t}","asst.cause_counts":"手册 {r} 次 · 工单 {w} 次 · 涉码 {c}","asst.causes":"← 可能原因 (手册排查方向 + 工单实证)","asst.check":"查什么","asst.code_placeholder":"报警码, 如 3225 / 3130 / 13902","asst.common":"常见","asst.corrective":"抢修","asst.corrective_flow":"报警码 → 失效模式 → 手册分步处置 → 历史工单","asst.drawings":"对应图纸","asst.failmodes":"指向的失效模式","asst.faulttree":"故障树","asst.faulttree_flow":"按证据量排序的系统失效模式 + 部件级成因","asst.fm_counts":"该类本场报警 {a} 条 / 工单 {w} 条","asst.head":"检修助手 — 确定性本体查询","asst.head_note":"结果逐字取自手册与工单, 不经模型","asst.identity":"系统 {sys} · 本场 {n} 条","asst.interval":"周期 {i}","asst.known_tags":"该系统手册出现过的位号 (对图纸时参考):","asst.no_causes":"(手册无该类排查条目 — 原因层待补)","asst.no_name":"(码表未收录)","asst.no_steps":"本码无手册处置条目 (手册覆盖本场 161/322 码) — 需查图纸或联系厂商支持。","asst.node":"节点","asst.nodes":"应检节点 · {c}","asst.nodes_note":"手册此步未给位号 → 按回路构成展开, 逐点查","asst.prev_empty":"(该系统无匹配的年度维护条目 — 维护作业指导书按位置代号编排, 未必逐系统对齐)","asst.prev_fm":"失效模式 (按本场报警量)","asst.prev_head":"{sys} 预防链 · 失效模式 {f} 类 · 预防性任务 {n} 项","asst.prev_tasks":"年度任务","asst.preventive":"预防性维护","asst.preventive_flow":"系统 → 失效模式 → 年度任务 → 作业指导步骤","asst.qty":"量: {q}","asst.query_failed":"查询失败: {e}","asst.querying":"查询中…","asst.spec_name":"名称","asst.spec_no":"参数号","asst.spec_range":"允许范围","asst.spec_val":"整定值","asst.specs":"判定规范 (实机参数表)","asst.step_n":"第 {n} 步","asst.steps":"现场处置 {n} 步","asst.steps_note":"节点部件 = 手册原文元件位号 (确定); 判定规范 = 实机参数表按物理量匹配的候选判据, 非厂商绑定 — 现场以铭牌与图纸复核。","asst.tags":"节点部件","asst.tree_codes":"征兆码 {c}","asst.tree_counts":"本场报警 {a} 条 · 工单 {w} 条","asst.tree_empty":"该系统无失效模式记录","asst.tree_head":"{sys} 故障树 · {n} 个失效模式","asst.tree_note":"一层 = 系统 × 失效类 (归纳自本场码表与工单) · 二层 = 手册排查方向归一 + 工单原因计数; 条长按实证量 (报警条数 + 工单 × 10), 因果来自手册与工单原文非推断, 树深两层不外推。","asst.unassigned":"未归属","asst.wi_steps":"WI {n} 步","asst.wo_action":"处置","asst.wo_fault":"故障","asst.wo_head":"现场实际怎么修的 ({sys} 历史工单 {n} 条, 台账 2020~2024)","asst.wo_note":'工单时间窗止 2024-11-21; 2025–26 现场未提供 ⇒ "0 条" 是记录缺失非未修过。',"attr.变桨与液压":"变桨与液压","attr.塔架/结构":"塔架/结构","attr.无记录停机":"无记录停机","attr.未归类":"未归类","attr.电网/供电(外部)":"电网/供电(外部)","attr.轮毂/叶片":"轮毂/叶片","attr.运维操作":"运维操作","attr.风况(外部)":"风况(外部)","cat.equip":"设备类","cat.equip.hint":"设备状态 / 机制 / 判级 — 从机组档案、对象查询与机制检索取证","cat.equip.q1":"29号机组现在什么状态、为什么、该怎么办?","cat.equip.q2":"全场哪些机组有报警级或定论级判级?逐台列出并注明审级","cat.equip.q3":"失效机制库里有哪些机制族?各涉及哪些机组、状态如何?","cat.loss":"损失分析","cat.loss.hint":"当前 3 个月损失 / 未来损失 — ont_loss / ont_scenario 取证, 金额带电价区间统计方法","cat.loss.q1":"近3个月全场损失结构如何?分状态和分机组说, 电量与金额都给","cat.loss.q2":"29号如果拖到主轴承失效, 未来损失量级是多少?与现在修对比","cat.loss.q3":"限电常态化对检修机会成本有什么影响?","cat.risk":"安全风险预测","cat.risk.hint":"风险敞口 / 劣化趋势 / 盲区 — ont_risk / ont_mechanism_search 取证, 未列 ≠ 正常","cat.risk.q1":"当前哪些机组风险在上升需要重点盯?联动监视读数如何?","cat.risk.q2":'监测有哪些盲区?哪些"没报警"不等于正常?',"cat.risk.q3":"29号轴承正在承受金属接触, 风险敞口怎么评估?","cat.sched":"检修排程决策","cat.sched.hint":"排期沙盘 / 天气窗 / 验收树 — ont_scenario / ont_get 取证","cat.sched.q1":"29号修泵什么时候做最合适?对比各情景的损失与风险","cat.sched.q2":"未来几个月哪些月份适合安排CTV检修和吊装作业?依据历史可作业窗","cat.sched.q3":"29号修好之后按什么判据验收?三分支分别是什么条件?","ch.attrib.none":"无记录 {h}h ({p}%)","ch.attrib.ok":"已归因到部件 {h}h ({p}%)","ch.attrib.uncls":"未归类 {h}h","ch.beta.median":"全场中位 {v}°","ch.blame.d1":"限电与调度令, 不进设备责任","ch.blame.d2":"故障与检修停机, 唯一进设备考核","ch.blame.d3":"正常发电欠发与低风待机","ch.blame.n1":"交易与调度侧","ch.blame.n2":"设备侧","ch.blame.n3":"运行侧","ch.blame.title":"损失 {tot} MWh 按责任归属","ch.cap.legend":"圆内数字 = 台数, 圆面积 ∝ 台数","ch.cap.median":"中位 {v}","ch.cap.p":"满发封顶","ch.cap.w":"转速封顶","ch.ml.legend":"— {s}","ch.pareto.cum80":"累计 80%","ch.pareto.cumtip":"{k} · 累计 {p}%","ch.pareto.key":"关键少数: 前 {k} 项占 80%","ch.pareto.none":"时间窗内无数据","ch.pareto.top3":"前三: ","ch.pareto.total":"共 {n} 项, 合计 {tot}{unit}","ch.pareto.xlab":"报警码 (悬停看全名)","ch.quad.few":"时间窗内码数不足, 不作四象限","ch.quad.q1":"低频长时 · 硬故障","ch.quad.q1s":"备件与检修窗","ch.quad.q2":"高频长时 · 重点治理","ch.quad.q2s":"优先派工","ch.quad.q3":"低频短时 · 本底","ch.quad.q3s":"不单独处置","ch.quad.q4":"高频短时 · 重复触发","ch.quad.q4s":"调整参数或屏蔽, 非硬件故障","ch.quad.tip":"{n} 条 · 单次中位 {med}s · 累计 {h}h · {nt} 台","ch.quad.xlab":"发生条数 (对数)","ch.quad.ylab":"单次中位时长 (对数)","ch.ram.area":"圆面积 = 累计停机时长","ch.ram.equip":"设备类","ch.ram.ext":"外部类","ch.ram.few":"部件数不足, 不作象限","ch.ram.median":"虚线 = 本场中位分界","ch.ram.q1":"常坏且难修","ch.ram.q1s":"最高优先级","ch.ram.q2":"罕发难修","ch.ram.q2s":"备件与作业窗","ch.ram.q3":"频发易修","ch.ram.q3s":"查根因, 换件无用","ch.ram.q4":"少发好修","ch.ram.q4s":"维持","ch.ram.tip":"{p}: 平均无故障间隔(MTBF){mtbf}h · 单次停机时长(MDT){mdt}h · 停机 {h}h · {n}起 · {u}台","ch.ram.tip_ext":" · 外部类不计设备可靠性","ch.ram.xlab":"平均无故障间隔(MTBF,h,对数)→ 越右越可靠","ch.ram.ylab":"单次停机时长(MDT,h)→ 越上越难修","ch.rate.days":"仅{d}天","ch.rate.month":"{m}月","ch.rate.n":"{n}条","ch.rate.tip":"{m}: {v} 条/日 (总 {n} 条, 数据覆盖 {cov}%)","ch.rate.ylab":"条/日","ch.ruler.norm":"正态期望 3.7σ","ch.ruler.row":"{r}σ σ = {s}","ch.wf.act":"实际上网","ch.wf.theo":"理论可发","ch.wf.tip":"{nm}: 损失 {loss} MWh, 占理论 {pct}%, 时长 {h}h","chain.gb":"齿轮箱","chain.gde":"发电机DE","chain.gen":"发电机","chain.gnde":"发电机NDE","chain.hss":"高速","chain.ims":"中间","chain.mba":"主轴承后","chain.mbf":"主轴承前","chain.ps":"行星","cmp.alarm_n":"报警 {a}","cmp.alarm_units":"报警机组","cmp.basis":"依据","cmp.by_system":"按系统查看","cmp.cards_note":"点系统卡 → 该系统全场机组与依据; 九系统 = 交付九分册一一对应; 叶片与叶根 / 塔架与基础无 SCADA 轴 (分册蓝本取 CMS / 巡检)","cmp.counts":"报警 {a} · 不可判 {u} · 良好 {g} · 优秀 {e}","cmp.cross_eyebrow":"多系统交叉机组","cmp.detail":"详情","cmp.detail_head":"{sys} · 全场 {n} 台","cmp.external":"外部","cmp.fleet_n":" · 全场 {n} 台","cmp.fusion_moved":"振动线结论与四源融合已移至独立板块 →","cmp.fusion_n":"({n} 台次收录)","cmp.good_units":"良好 {n} 台 (轻微偏离, 周期观察 — 点开看逐台依据)","cmp.grading_pending":"正在按所选时间窗重算判级…","cmp.grading_pending_why":"时间窗 {span}:变桨/偏航/蓄能/温度四个判级面正按该时间窗重算(首次约 25 秒),下面的系统卡暂时还是上一份统计方法 —— 算完会自动刷新,不会静默混用。","cmp.hit_sys":"命中系统","cmp.n_sys":"系统数","cmp.n_units":"({n} 台)","cmp.none":"本系统全场无非常态。","cmp.problem_page":"该问题页 →","cmp.rel_ev":"事件","cmp.rel_eyebrow":"部件可靠性 · 时间窗 {win}","cmp.rel_fm":"典型失效模式 (按时长)","cmp.rel_h":"停机时长","cmp.rel_head":"部件停机贡献与可靠性","cmp.rel_mdt":"单次停机时长(MDT,h)","cmp.rel_meta":"总停机 {t}h = 设备类 {a} + 外部类 {b}","cmp.rel_mtbo":"平均停机间隔(MTBO,h)","cmp.rel_note":'统计方法 ≥1h 停机段, 不含调度令 — 与"电量算账"里的停机时长{h} 不同, 差额是短于 1h 的停机段 (本页按段做可靠性指标须成段, 能量账按逐条工况态算电量): 两个数都对, 不可互相相减。',"cmp.rel_part":"部件","cmp.rel_units":"影响机组","cmp.unk_n":" · 不可判 {u}","cmp.unk_units":"不可判 (监测/数据不足, ≠ 正常)","cmp.watch_head":"关注机组 (≥2 系统交叉, {n} 台; 点机组号 → 该台独立页)","dec.classic":"维护标准 / 维护框架 / 数据质量三块尚未迁入新版 —","dec.head":"检修决策 · 本体问答 (推理无界, 结论须过校验)","en.balance":"电量平衡","en.blame":"损失责任分账","en.blame_note":'最大一笔是限电不是故障。进设备考核的只有"故障与检修停机" {n} MWh; 限电属交易与调度侧, 2026 起交易策略主导, 少发未必是弃风。',"en.cap_fail":"不通过","en.cap_note":"能量守恒核 · 理论 {op} 全额定上限 {cap}","en.cap_pass":"通过","en.kpi_act":"实际上网 · 等效满发 {h} h","en.kpi_loss":"损失率 · {v} MWh","en.kpi_theo":"理论可发 (实际+损失)","en.loss_mwh":"损失 MWh","en.share":"时长占比","en.state":"工况态","en.states":"工况态明细","en.states_note":"控制参数一致性与曲线欠发筛查在固定干净窗判, 已迁入「发电性能」页 — 本页只出当期电量账。","en.win":"窗 {win}","fig.fleet_median":"全场中位","fig.point":"测点","fig.quartile":"四分位","fig.this_unit":"本台","fig.trend":"趋势","fig.vibbar_note":"条为本台与全场中位之比; 色按 z (稳健离群度): 绿 <2 · 橙 2~3 · 红 ≥3","fig.x_median":"×中位","flt.alarm_face":"报警面","flt.alarm_meta":"{n} 条 · {c} 个码 · 时间窗 {win}","flt.attrib_note":'归因覆盖: "无记录停机" {h}h 是全场最大单项, 因不给 MTBF 而在上图中不出现 — 它不是"没有故障", 是"没归上因"。统计方法为段起点 ±30min 首发码。缺口成因待定: 此前写的"98% 的段在前 72h 内有报警 ⇒ 长停远窗"不成立 — 前 72h 有报警不等于该报警与本段停机有因果 (双模审 2026-08-28 逮)。要定成因须改判"段起止是否落在某条报警的持续区间内", 未做之前只报缺口不报原因。',"flt.block_err":"本块未算出 ({k}): {e}","flt.eyebrow":"故障统计与可靠性","flt.pareto_d":"帕累托 · 按持续时长","flt.pareto_d_note":"时长 = 闩锁统计方法 (复位 − 激活), 只作排序参考不作停机时长","flt.pareto_n":"帕累托 · 按发生条数","flt.pareto_n_note":"条数 = 发生频次, 不反映影响程度 — 高频短时报警码 (信号抖动或重复触发) 排序靠前","flt.per_t":"台级分布 · 报警条数 top{n}","flt.per_t_note":"全场合计 {n} 条 · 单台占比高须先核查是否为单一报警码重复触发","flt.per_t_share":"占全场","flt.quad":"故障模式四象限 · 条数 × 单次时长","flt.quad_note":"时间窗内共 {n} 个码, 图上为条数前 {m} 个。","flt.quad_note2":"点面积表示影响机组数, 大点为批次共性、小点为单台; 竖分界取条数中位, 横分界取 10min (一个 SCADA 采样格)。右下角的码不要按条数排优先级 — 属重复触发, 非硬件故障。上面两张帕累托对照看即此图的两条投影。","flt.quad_partial":"窗含不满月 {m} (覆盖 {c}%), 条数为原始累计未按天归一。","flt.ram":"可靠性 × 可维修性 · 部件象限","flt.ram_note":'按停机时长排序的表看不出这层结构: 同样 500h 的停机, "频发易修"要查根因、"罕发难修"要备件, 处置相反。设备类停机 {a}h / 外部类 {b}h (外部 = 电网·风况·运维操作, 不计设备可靠性)。海上机组 MDT 普遍偏高是交通窗口决定的, 不等于维修本身慢 — 跨场比 MDT 须同为海上。',"flt.rate":"月度故障率","flt.rate_example":"实测: {m} 总数最低但日均 {v} 条/日 = 全时间窗前列。","flt.rate_full":"各月覆盖完整。","flt.rate_note":"柱高 = 日均条数, 不是月总数","flt.rate_partial":"本时间窗 {m} 数据不满月 (灰虚线柱), 直接比月总数会读反。","flt.seasonal":"故障季节性 · top 报警族 × 月","flt.seasonal_note":"全程 19 个月 (跨 2 冬 1 夏); 未做 χ² 显著性检验前为【参考级】, 只看形态不作季节归因","flt.seasonal_unit":"条/月","flt.seasonal_x":"月","flt.stop_face":"停机面","flt.stop_h":"停机时长","flt.stop_meta":"{h}h · {n} 起 · 统计方法 ≥1h 段, 不含调度令","flt.stop_n":"次数","flt.stop_pareto":"停机归因帕累托","flt.stop_pareto_note":"按停机时长; 事件次数见悬停","flt.stop_units":"台级停机 top{n}","flt.stop_units_note":"停机时长高 ≠ 设备差 — 须先看归因里外部类占比 (调度令已剔除)","fus.alarm_n":"{n} 条","fus.alarm_rank":" · 第 {r}/{t}","fus.burst":"⚠ {p}% 是码 {c} 抖动","fus.burst_tip":"⚠ 单码 {c} 占 {p}%, 中位 {m} 秒/次 — 条数被抖动灌满","fus.clear":"× 清除","fus.cms_act":"行动","fus.cms_action":"需行动机组 (报警 / 不可判)","fus.cms_basis":"统计方法说明","fus.cms_basis_note":"本表 = windcms 状态管理判级 (含标量趋势与数据可判性); 融合矩阵 / 逐台结论 = 振动线确诊链转录 (候选以上)。两统计方法差异台: 仅本表列 {a} (多为标量发作 / 数据不可判, 未到确诊链); 仅确诊链列 {b} (预警级在察, 状态管理未升)。","fus.cms_chain":"部件状态链","fus.cms_chain_note":"(主承前 · 主承后 · 齿轮箱 · 发电机; 悬停看逐件等级)","fus.cms_evidence":"证据强度","fus.cms_focus":"状态焦点","fus.cms_focus_note":"(传动链: 主承前 · 主承后 · 齿轮箱 · 发电机两端)","fus.cms_grades":"38 台部件等级一览","fus.cms_head":"振动状态评估 (windcms 报告 {d} 结果转录)","fus.cms_link":"谱图 · 波形 · 判据 · 工作台等分析功能在独立 windcms 系统 →","fus.cms_loading":"载入振动评估结果…","fus.cms_note":"状态管理判级, 不代表确诊数量; 判据/谱线/计算过程不在本页 — 深潜走底部独立系统。","fus.cms_open":"打开 windcms ↗","fus.cms_overall":"综合","fus.cms_static":"(未启动时用静态版)","fus.cms_window":'数据窗 {r} —— 本时间窗**实算**覆盖区间 (窗名只是起始日代号); 页面上的图谱与"末窗"状态取自时间窗内最新记录, 故多显示末期日期。',"fus.col.alarm":"报警","fus.col.claim":"证据时间窗","fus.col.claim_axis":"26-01 → 09","fus.col.display_only":" · 只展示","fus.col.fixed":" · 不随本时间窗","fus.col.lub":"润滑柱塞","fus.col.oil":"油样","fus.col.part":"部件","fus.col.signal":"振动信号","fus.col.state_concl":"设备状态 / 振动结论","fus.col.temp":"温度","fus.col.tempaxis":"温度轴","fus.col.tempaxis_note":"±6 K","fus.col.vib":"振动","fus.col.wo":"工单","fus.ev_code":"码","fus.ev_dur":"累计时长 h","fus.ev_head":"{c} — 报警 {an} 条 / {au} 台 · 工单 {wn} 条 / {wu} 台 (时间窗内)","fus.ev_min":"时长 min","fus.ev_no_alarm":"时间窗内无该部件报警","fus.ev_no_wo":"时间窗内无该部件工单 (工单数据止 2024-11, 2026 类窗必空 = 数据边界)","fus.ev_recent":"最近 {n} 条明细","fus.ev_text":"报警内容","fus.ev_time":"时间","fus.ev_top":"台分布 top: ","fus.ev_units":"台数","fus.ev_win":"时间窗 {win} · 顶部选择器可换","fus.ev_wo_act":"处理","fus.ev_wo_cause":"原因","fus.ev_wo_name":"故障名称","fus.eval_head":"评价体系 (规范化定义 — 两轴并存, 不可互相替代)","fus.eval_meaning":"含义","fus.eval_note":'设备状态答"这台设备现在怎么样" (危险 > 报警 > 良好 > 优秀 > 不可判); 证据状态答"这个判断有多可信" (定论 → INSUFFICIENT)。设备状态一律取自振动线的判级栏这一个来源。本页判级为转录, 不产新判级; 标注为参照同型机组/频谱信号级 (未定位到具体零件)/测量链/未对应到具体部件的行不作部件级结论消费; claim_window = 该结论的证据时间窗, 窗外状态该结论不背书。',"fus.eval_state":"设备状态 (业主统计方法)","fus.eval_tier":"证据状态 (可信度)","fus.eyebrow":"振动与 SCADA 证据视图 · 展示振动结论、SCADA 指标、报警与工单线索","fus.fam_tip":"{n} 条 · 全场最多 {m} 条","fus.legend_note":'两轴不可互相替代: "候选"说的是可信度不是设备好坏; "良好"说的是设备状态不是证据强度。设备状态只取自振动线的判级栏这一个来源。',"fus.legend_state":"格子颜色 = 设备状态 (业主统计方法, 与 windcms 报告同一套):","fus.legend_tier":"徽章 = 证据状态 (可信度, windcms 九枚举):","fus.loop_ba":"换前 → 换后 (同标尺)","fus.loop_bound":"数据边界: {b}","fus.loop_closed":"已闭环 · 换件后恢复 ({n} 例)","fus.loop_date":"换件日","fus.loop_el":"早期 → 近期 (同标尺)","fus.loop_head":"维修后验证案例 (检出 → 换件 → 恢复)","fus.loop_item":"事项","fus.loop_neg":"负面对照: 工单后持平 {n} 例 (换件 ≠ 必然回落, 说明回落非巧合)。","fus.loop_none":"暂无端到端闭环证据:现场提交的振动数据包里没有「报警→检修→复测」的成对记录","fus.loop_note":"有换件记录且同一统计方法指标回落, 可作为检测链已闭合的案例; 指标仍在上升但缺少可匹配工单的机组, 需现场或台账确认后再关闭。","fus.loop_ratio":"恢复比","fus.loop_rising":"未闭环 · 指标上升待现场/工单确认 ({n} 台)","fus.loop_state":"状态","fus.loop_verdict":"判","fus.loop_x":"倍比","fus.lub_now":"润滑柱塞现状","fus.lv.bad":"定论/报警级","fus.lv.note":"候选/监视/观察级","fus.lv.ok":"销案/无新证","fus.lv.warn":"预警级","fus.m.bad":"异常严重, 建议尽快停机检查","fus.m.bad_e":"证据: 已定案","fus.m.ex":"未见异常, 保持常规监视","fus.m.ex_e":"证据: 仅记录 / 已取消","fus.m.ok":"轻微偏离, 记录观察","fus.m.ok_e":"证据: 待现场核实 / 已记为基线下窗观察","fus.m.unk":"数据不足或监测中断 — 不等于正常","fus.m.unk_e":"证据: 数据不足","fus.m.warn":"存在需现场核实或处置的异常","fus.m.warn_e":"证据: 基本确认 / 新出现待核实","fus.matrix_foot":'润滑柱塞各台设定本就不同 (全场单次循环 22~961 秒), 所以此列只展示不判级, 只有已定案的机制链才标色; 油液多数台末次取样距今超 12 个月, 此列看的是"样够不够新", 不代表当前状态。',"fus.matrix_head":"全场融合矩阵 (38 台 × 6 个证据面)","fus.matrix_note1":'各列取数窗口不同 (见列头) — 不同窗的两格同时发红不等于"同时发生", 不可当共时印证。',"fus.matrix_note2":'每格右侧曲线 = 逐月记忆轨迹 ({n} 个月, {m0} 起; 实心点 = 现窗) — 现窗快照会丢形态, 轨迹才看得见"塌→回升→翻转"类机制签名。',"fus.no_alarm":"时间窗内无报警","fus.none_word":"无","fus.oil_fresh":"近共时","fus.oil_none":"无样","fus.oil_stale":"stale > 12 个月","fus.rule1":"① 同一失效机制的多个观测面 ≠ 多源印证 — 融合禁按源数加权 (29# 柱塞/温度/振动稳态/振动瞬态 = 四个观测面一条机制链)。","fus.rule2":'② "没报警" ≠ "正常" — 在已知盲区上, 缺报警只说明监测面无效, 不说明设备无恙。',"fus.rules_head":"两条判读纪律 (随板块常显)","fus.short.nodata":"数据不足","fus.short.normal":"正常","fus.short.nosample":"未取样","fus.short.stale":"样龄过期","fus.short.uneval":"未评估","fus.short.unlisted":"未收录","fus.sub.cms":"振动分析","fus.sub.events":"报警工单","fus.sub.loop":"端到端闭环","fus.sub.matrix":"融合矩阵","fus.sub.units":"逐台情况","fus.temp_now":"温度轴现状","fus.tip_state":" — 设备状态 {s}","fus.tip_tier":" / 证据状态 {e}","fus.unavailable":"融合面数据不可用: {e}","fus.units_filter":" · 筛选: {l}","fus.units_head":'逐台情况 (全场 {u} 台 / {n} 台次{f}; 深入谱图/波形 → "振动分析")',"fus.unlisted_head":"未列机组 {n} 台 (振动线未收录 — 未列 ≠ 正常)","fus.unlisted_link":"未列 {n} 台","fus.win_n":"{n} 个窗段","fus.win_none":"未标窗","fus.wo_n":"{n} 单","fus.wo_none":"时间窗内无传动链工单","gen.beta":"桨距调度同档差","gen.beta_note":"同一功率档下的桨角与全场中位之差。{units} 偏离达中位的 {k} 倍 → {v}","gen.cands":"曲线欠发筛查","gen.cands_meta":"{note} · σ = {s}%","gen.cap":"封顶参数落位","gen.cap_note":"台数落在几个离散位置上, 不是连成一片 — 这是配置/版本差异的形状; 磨损或工况引起的会是连续散布。两轴各自成组且分组不同台 ⇒ 参数级差异, 成因须配置台账。","gen.ctrl":"控制参数一致性","gen.ctrl_win":"窗 {win}","gen.eyebrow":"特性曲线与控制参数","gen.figs":"七个镜头 · 逐档中位与同型机群残差","gen.fixed_win":"随上方时间窗 · 按时间窗重算","gen.loading":"正在计算七个镜头 (剥限电 · 逐档中位 · 同型机群残差)…","gen.no_cands":"无候选","gen.recomputing":"正在按所选时间窗重算七镜头…","gen.recomputing_short":"正在按窗重算…","gen.ruler":"尺子巡检 · 极差 ÷ σ","gen.ruler_note":"判据自身的分辨力。38 台正态抽样的极差期望约 3.7σ, 明显超出即分布非单峰 — 与左图的分组互为印证; 落在期望附近的轴 (额定桨角) 则是连续分布。","gen.win_range":"时间窗 {span}","gen.win_why":'七镜头与月度时序都按所选时间窗重算(含自定义起止日期)。提示:2025-07 ~ 2025-12 是"限电前干净判别窗"——2026 起交易策略主导,曲线含策略性少发,作设备判据时须注意;选到含 2026 的窗时该影响存在但不再遮掩。',"kpi.alarm_units":"九系统有报警的台数 / 全场","kpi.alarm_units.hint":"统计方法: 九系统 (叶片与叶根/变桨/偏航/齿轮箱/发电机/主轴承/变流器/塔架与基础/主控与传感网) 中任一被判「报警」即计一台。与下方「全场状态」格的统计方法不同 —— 那里按每台 振动/温度/润滑/油液/报警/工单 六列取最严一级, 所以两处数字可以不同, 不是矛盾。","kpi.avail":"时间可用率 (不含调度令) · {win}","kpi.curtail":"限电·绑定 电量损失","kpi.downtime":"停机时长 · {n} 起","kpi.loss":"停机电量损失 · {win}","kpi.loss_dispatch":"另调度令 {n}","kpi.mtbo":"平均停机间隔(MTBO;非行业 MTBF)","loss.curtail_bound":"限电 (命令与实际功率对得上)","loss.curtail_unbound":"限电命令期 · 功率未被压制","loss.dispatch":"调度令停机","loss.lowwind":"低风待机","loss.normal":"正常发电时的欠发","loss.stop":"故障与检修停机","mdl.cloud":"云端","mdl.deepseek-chat.nm":"DeepSeek","mdl.deepseek-chat.t":"约 3 到 10 秒","mdl.deepseek-r1:14b.nm":"本机 DeepSeek 14B · 审核档","mdl.deepseek-r1:14b.t":"约 1 到 3 分钟","mdl.deepseek-r1:32b.nm":"本机 DeepSeek 32B","mdl.deepseek-r1:32b.t":"约 3 到 8 分钟","mdl.deepseek-v4-pro.nm":"云端 DS","mdl.deepseek-v4-pro.t":"约 2 到 6 分钟","mdl.kimi-fast.nm":"Kimi","mdl.kimi-fast.t":"约 5 到 20 秒","mdl.local":"本地","mdl.outbound_warn":"内容会外发到模型厂商, 场名与台号已去标识化","mdl.qwen-plus.nm":"通义千问","mdl.qwen-plus.t":"约 5 到 20 秒","mdl.qwen3.8:27b.nm":"标准 27B · 复杂题","mdl.qwen3.8:27b.t":"约 2 到 4 分钟","mdl.qwen3:30b-a3b.nm":"快 30B (a3b)","mdl.qwen3:30b-a3b.t":"约 20 到 60 秒","mdl.qwen3:8b.nm":"轻量 8B · 默认","mdl.qwen3:8b.t":"约 30 到 60 秒","mdl.unknown_warn":"未知档位, 按内容会外发处理","mdl.zero_outbound":"全程零外发","mt.cov":"当前覆盖","mt.eyebrow":"系统维护 · 数据输入与更新端口","mt.fail":"盘点失败: {e}","mt.freq":"频率","mt.head":"数据维护面 · {n} 个源","mt.how":"补数据怎么做","mt.last":"末次更新","mt.layer_data":"数据层","mt.layer_data_note":"随运营滚动 — 新数据到位后跑摄入, 本体与判级自动刷新","mt.layer_mech":"机理层","mt.layer_mech_note":"相对稳定 — 换厂商资料或现场反馈修正时才动; 它是判据的地基, 变更须过审","mt.note":'每个源给出: 当前覆盖 / 末次更新 / 约定位置 / 摄入命令 / 更新频率 / 责任方。要补数据就把新文件放到"约定位置"再跑"摄入命令"。',"mt.put":"放到:","mt.resp":"责任","mt.rows_n":" ({n} 条)","mt.run":"跑:","mt.src":"源","mt.surveying":"盘点中…","ov.all_steps_done":"已走完(待验收)","ov.attention":"需要关注","ov.attention_n":"{n} 台","ov.basis_fusion":"本台依据来自融合面(九系统判级无「报警」行):部件 {part} · 链路走到第 {done}/{n} 步 · 卡在「{stuck}」 · 证据源 {srcs}","ov.caveat":"限定","ov.evidence":"查看完整依据","ov.fus_gap_hint":"这一面(需要关注 / 全场状态)取数来自融合面;缺件时如实为空,不从交付包补齐。在本机放好原始件后跑一次重算即会由观澜自己的生成端补上(scripts/rudong_fusion_handoff.py,见 docs 的「源代码化清单」)。","ov.illustrative":"示意数据","ov.no_srcs":"无(该台无外部证据源)","ov.quiet":"其余 {n} 台未进入优先关注清单;设备状态请查看全场状态评估。","ov.quiet_all":"当前优先关注清单为空;{n} 台机组的设备状态请查看全场状态评估。","ov.ranked_by":"按 设备状态 × 证据量 排序","ov.strip":"全场状态","ov.strip_hint":"一格一台 · 点格定位","ov.systems":"九系统","ov.systems_hint":"点系统看逐台依据","pop.acts":"动作统计","pop.close":"关闭","pop.loading":"载入中…","pop.none":"本时间窗无记录","pop.o_act":"处置","pop.o_cause":"原因","pop.o_check":"排查","pop.o_date":"日期","pop.o_fault":"故障","pop.o_kind":"类别","pop.orders":"工单 {n} 单","pop.orders_none":"时间窗内无工单","pop.orders_one":"工单 1 单","pop.problem":"{u} · {sys}","pop.unit":"{u} · 全部问题","rpt.attrib.note":'"无记录停机"不是没有故障, 是没归上因。',"rpt.attrib.title":"归因覆盖","rpt.aud_in":"场站内部 (全量)","rpt.aud_up":"上报集团 (脱敏)","rpt.b.attrib.d":"已归因 vs 无记录停机的占比 — 无记录不等于没有故障","rpt.b.attrib.nm":"归因覆盖","rpt.b.blame.d":'交易调度侧 / 设备侧 / 运行侧 三段占比 — 回答"谁的责任"',"rpt.b.blame.nm":"损失责任分账","rpt.b.caliber.d":"统计期 / 残月 / 工单时间窗 / 判级性质 — 建议常驻, 没有边界的数字堆不能作汇报依据","rpt.b.caliber.nm":"统计方法与适用边界","rpt.b.chain.d":"证据→机制→判级→排期→动作→验收 六步的瓶颈分布","rpt.b.chain.nm":"决策链进度","rpt.b.emon.d":"逐月上网 / 损失 / 损失率 / 等效满发, 含数据覆盖率","rpt.b.emon.nm":"逐月发电表","rpt.b.frate.d":"按天归一的日均条数, 数据不满月单独标注","rpt.b.frate.nm":"月度故障率","rpt.b.kpi.d":"六个核心数: 上网电量 / 等效满发 / 可用率 / 损失率 / 停机间隔 / 需行动台","rpt.b.kpi.nm":"一级指标","rpt.b.loop.d":"检出 → 换件 → 复测回落的历史例证, 证明这条链是通的","rpt.b.loop.nm":"闭环实证","rpt.b.narr.d":"模型基于实测数据生成的运行总结 — 为图表补充文字结论, 供汇报使用","rpt.b.narr.nm":"运行总结","rpt.b.pareto.d":"按条数降序 + 累计 80% 线, 找关键少数","rpt.b.pareto.nm":"故障帕累托","rpt.b.parts.d":"逐部件停机时长 / 事件数 / 平均无故障间隔(MTBF)/ 单次停机时长(MDT)/ 影响机组数","rpt.b.parts.nm":"部件停机表","rpt.b.plan.d":"由数据推出的行动项, 不是套话","rpt.b.plan.nm":"下期建议","rpt.b.quad.d":"条数 × 单次时长, 区分重复触发与实际停机 — 按条数排序会误定优先级","rpt.b.quad.nm":"故障四象限","rpt.b.ram.d":'平均无故障间隔(MTBF)× 单次停机时长(MDT)部件象限, 分出"频发易修"与"罕发难修", 处置方向相反',"rpt.b.ram.nm":"可靠性象限","rpt.b.units.d":"需跟踪台的部件 / 证据源 / 六步进度 / 卡在哪一步","rpt.b.units.nm":"重点机组","rpt.b.water.d":"理论可发 → 逐段扣损 → 实际上网, 用于定位电量流向","rpt.b.water.nm":"能量瀑布","rpt.blame.cal":"工况态分解 + 限电命令面绑定判别; 平均出力=实发÷台时, 用作风资源代理量","rpt.blame.note":'进设备考核的只有"故障与检修停机"; 限电属交易与调度侧。',"rpt.blame.note2":'限电不是"低风时段收到的空令": 限电·绑定时段平均出力 1.435 MW, 正常发电时段 1.412 MW, 比值 1.02 — 风况相同而出力被压, 说明限电是真压制; 但"限电命令期·功率未被压制"那一档平均出力仅 0.724 MW (18% 额定), 确属低风时段收令。',"rpt.blame.title":"损失责任分账","rpt.cal.deid":"脱敏","rpt.cal.deid_d":"上报版隐去判据门槛与特征频率","rpt.cal.denom":"可用率与损失率分母不同","rpt.cal.denom_d":'可用率分母剔除低风待机与调度令(问"该发时能不能发"), 损失率分母含全部时段(问"理论能发多少"); 同一低风时段在可用率里不计时间、在损失率里计入基数 — 这是两个指标的设计差异不是错, 但两者不可直接相乘或互推。低风待机对损失的贡献仅 118 MWh(0.5%)',"rpt.cal.partial":" — {m} 数据不满月(覆盖 {c}%), 月度已按天归一","rpt.cal.period":"统计期","rpt.cal.rating":"判级","rpt.cal.rating_d":"由振动/温度/润滑/油液四源融合得出; 行动等级由综合报告出具","rpt.cal.stop":"停机","rpt.cal.stop_d":"可靠性统计方法 ≥1h 段, 电量账为逐条工况态 — 两个数都对, 不可相减","rpt.cal.title":"统计方法与数据边界","rpt.cal.wo":"工单","rpt.cal.wo_d":"台账 2020~2024-11, 本报告不对本期检修执行下结论","rpt.caliber_lbl":"统计方法: ","rpt.chain.cal":"「动作」一列不可判 — {b}","rpt.chain.note":"六步: 证据 → 机制 → 判级 → 排期 → 动作 → 验收。当前 {s}。","rpt.chain.title":"决策链进度","rpt.chapters":"{n} 个章节","rpt.cloud_note":"; 内容会外发到模型厂商","rpt.compose":"生成","rpt.compose_fail":"生成失败: {e}","rpt.composed":"已按需求编排 {n} 块{narr} · {m} 用时 {s}s","rpt.composing":"模型编排中… 挑组件 + 写总结","rpt.emon.act":"上网 MWh","rpt.emon.cal":"覆盖率<50% 的月不参与环比","rpt.emon.cov":"覆盖","rpt.emon.eflh":"等效满发 h","rpt.emon.loss":"损失 MWh","rpt.emon.m":"月","rpt.emon.partial":" 不满月","rpt.emon.pct":"损失率","rpt.emon.title":"逐月发电","rpt.empty_canvas":"画布是空的 — 先从组件库选内容","rpt.export_docx":"导出 Word","rpt.export_xlsx":"导出 Excel","rpt.eyebrow":"汇报定制 · 画布","rpt.facts.agg":"聚合层","rpt.facts.sub":"{n} 条, 契约 {sha}; 数据/时间窗/结论只经契约更新","rpt.facts.sys":"系统","rpt.facts.text":"结论","rpt.facts.title":"可交付级结论 · 契约生成","rpt.facts.verdict":"裁决","rpt.foot_asof":"出件 {d}","rpt.foot_deid":"判据门槛与特征频率已脱敏","rpt.foot_src":"数据源 SCADA 10min · 报警事件 · 工单台账 · CMS 振动 · 油液化验","rpt.foot_trace":"结论可回溯至本体对象","rpt.frate.cal":"不满月按天归一","rpt.frate.note":"柱高=日均条数, 不是月总数。","rpt.frate.title":"月度故障率","rpt.g.end":"收尾","rpt.g.flt":"故障","rpt.g.gen":"发电","rpt.g.rel":"可靠性","rpt.g.unit":"机组","rpt.grounded":"数字全部接地","rpt.hint_idle":"悬停查看组件说明 · 已选组件再次点击移出 · 右侧 ↑↓ 调整顺序","rpt.kpi.act":"上网电量","rpt.kpi.action":"需行动机组","rpt.kpi.action_n":"定论 {a} · 预警 {b} · 候选 {c}","rpt.kpi.annual":"年化约 {v} h","rpt.kpi.avail":"时间可用率","rpt.kpi.avail_n":"不含调度令与低风待机","rpt.kpi.eflh":"等效满发小时","rpt.kpi.loss":"损失率","rpt.kpi.mom":"环比 {v}%","rpt.kpi.mom_na":"环比不可比(末月不满)","rpt.kpi.mtbo":"平均停机间隔","rpt.kpi.mtbo_n":"停机 {n} 起 · 单次均 {h}h","rpt.kpi.theo":"理论可发 {v}","rpt.library":"组件库","rpt.library_note":"点击加入报告, 再次点击移出 · 画布里已有 {n} 块","rpt.local_note":"; 数据不出本地","rpt.loop.cal":"振动标量前后对比","rpt.loop.comp":"部件","rpt.loop.date":"换件日期","rpt.loop.note":"这几台正是算法当初的检出台 ⇒ 故障前能看见、换件后能看见恢复。","rpt.loop.post":"换后","rpt.loop.pre":"换前","rpt.loop.ratio":"比值","rpt.loop.title":"端到端闭环实证","rpt.narr.cal":"模型 {m} 生成 · 数字取自系统实测摘要 · 数据回抓校验{g}","rpt.narr.empty":"还没有生成 — 在上面的交互窗输入报告要求。","rpt.narr.g_n":"报 {n} 处待核","rpt.narr.g_ok":"全通过","rpt.narr.title":"运行总结","rpt.narr.ungr":"⚠ 以下数值由模型自行推算, 不在原始数据摘要中, 引用前须核对: {v}","rpt.narr_plus":" + 一段运行总结","rpt.need_empty":"先输入报告要求","rpt.need_head":"输入报告要求","rpt.need_hint":"模型依据需求选取组件, 并基于实测数据生成运行总结","rpt.need_ph":"例如: 上报集团月报, 侧重设备可靠性与重点机组","rpt.no_compose":"本部署未启用编排接口, 画布仍可手动拼装","rpt.no_models":"本部署未配置任何模型密钥, 编排不可用","rpt.paper_sub":"统计期 {win} | {n} 台","rpt.paper_title":"运行分析报告","rpt.pareto.cal":"报警事件表","rpt.pareto.title":"故障帕累托","rpt.parts.cal":"归因=段起点±30min 首发码","rpt.parts.ev":"事件","rpt.parts.ext":" (外部)","rpt.parts.h":"停机h","rpt.parts.mdt":"单次停机时长(MDT,h)","rpt.parts.mtbf":"平均无故障间隔(MTBF,h)","rpt.parts.part":"部件","rpt.parts.title":"部件停机","rpt.parts.units":"影响机组","rpt.plan.1":'补机制定性 — {n} 台停在"判了级但根因未定", 是当前最大单一瓶颈',"rpt.plan.2":"回收 25~26 工单 — 台账止 2024-11, 本期检修执行与闭环无法自动判定","rpt.plan.3":"油液采样节奏 — 四源里油液长期 stale, 只能作回测锚","rpt.plan.4":"限电侧 — 损失六成在交易与调度侧, 设备侧改善空间有限","rpt.plan.cal":"建议级 — 排期与动作须经审批","rpt.plan.title":"下期计划与建议","rpt.preset.blank":"空白画布","rpt.preset.month":"月度运行分析","rpt.preset.topic":"设备专题","rpt.preset.week":"周报","rpt.preset.year":"年度总结","rpt.presets":"预设","rpt.preview_empty":"文档预览窗 — 从上面的组件库点选内容, 此处显示报告预览","rpt.print":"打印 / 存 PDF","rpt.quad.cal":"纵界=10min(一个SCADA采样格)","rpt.quad.note":"右下角报警码属重复触发, 不应按条数排定优先级。","rpt.quad.title":"故障模式四象限","rpt.ram.cal":"SCADA ≥1h 停机段, 不含调度令; 海上 MDT 含交通窗口","rpt.ram.note":"设备类 {a}h / 外部类 {b}h (电网·风况·运维操作不计设备可靠性)","rpt.ram.title":"可靠性 × 可维修性","rpt.ungrounded_n":"{n} 个数字待核","rpt.units.at":"卡在","rpt.units.cal":"四源融合判级","rpt.units.clear":"全通","rpt.units.ev":"部件与证据","rpt.units.head":"需跟踪 {n} 台 / {tot} | 瓶颈 ","rpt.units.prog":"进度","rpt.units.rising":"在升 {r}×","rpt.units.state":"状态","rpt.units.stuck":"{n} 台卡在「{s}」","rpt.units.title":"重点机组与处置","rpt.up_note":"上报版 — 判据门槛与特征频率已脱敏","rpt.up_tag":"上报版","rpt.water.cal":"SCADA 10min 工况态分解; 损失=同工况理论出力与实测之差。量级自检为防虚高的下限校验, 不是风资源判据","rpt.water.cap_bad":"量级自检: 理论 ≥ 全额定上限 {cap} MWh ✗ 数字不可信","rpt.water.cap_ok":"量级自检: 理论低于全额定上限 {cap} MWh ✔","rpt.water.note":"理论可发 {theo} = 上网 {act} + 损失 {loss} MWh ({pct}%)","rpt.water.title":"发电完成情况","rv.advci":"AdvCI","rv.dual":"双模型审","rv.lite":"lite","rv.none":"未审","st.bad":"危险","st.excellent":"优秀","st.ok":"良好","st.ok_excellent":"良好 / 优秀","st.unk":"不可判","st.warn":"报警","step.acceptance":"验收","step.action":"动作","step.evidence":"证据","step.mechanism":"机制","step.rating":"判级","step.schedule":"排期","step.site_records":"现场记录","step.stuck_at":"卡在「{step}」","sys.blade":"叶片与叶根","sys.control":"主控与传感网","sys.converter":"变流器","sys.gearbox":"齿轮箱","sys.generator":"发电机","sys.main_bearing":"主轴承","sys.other":"其他","sys.pitch":"变桨","sys.tower":"塔架与基础","sys.yaw":"偏航","tab.assistant":"检修助手","tab.component":"部件问题","tab.decision":"检修决策","tab.energy":"电量算账","tab.fault":"故障统计","tab.generation":"发电性能","tab.ontology":"本体","tab.overview":"总览","tab.report":"汇报定制","tab.system":"系统维护","tab.vibration":"振动融合分析","tier.candidate":"候选","tier.candidate.s":"候选","tier.candidate_baseline":"候选·记基线","tier.candidate_baseline.s":"候选·记基线","tier.candidate_new":"候选·新发","tier.candidate_new.s":"候选·新发","tier.confirmed":"定论","tier.confirmed.s":"定论","tier.detail.不可判":"不可判","tier.detail.仲裁输入":"仲裁输入","tier.detail.优":"优","tier.detail.优秀":"优秀","tier.detail.传感器项":"传感器项","tier.detail.候选":"候选","tier.detail.候选·监视(复发)":"候选·监视(复发)","tier.detail.候选·跟踪":"候选·跟踪","tier.detail.危险":"危险","tier.detail.可降":"可降","tier.detail.复发候选(两轴合并)":"复发候选(两轴合并)","tier.detail.定论":"定论","tier.detail.弱同向新证":"弱同向新证","tier.detail.报":"报","tier.detail.报警":"报警","tier.detail.本体无新证":"本体无新证","tier.detail.正常":"正常","tier.detail.正样本":"正样本","tier.detail.温度单轴保留":"温度单轴保留","tier.detail.监视":"监视","tier.detail.监视(不开箱)":"监视(不开箱)","tier.detail.良":"良","tier.detail.良好":"良好","tier.detail.蓄能失效候选(定向查)":"蓄能失效候选(定向查)","tier.detail.观察":"观察","tier.detail.观察(发电机侧)":"观察(发电机侧)","tier.detail.记基线观察":"记基线观察","tier.detail.销案(定论)":"销案(定论)","tier.detail.降观察":"降观察","tier.detail.预警":"预警","tier.detail.预警·处置升急":"预警·处置升急","tier.detail.预警·处置规划":"预警·处置规划","tier.insufficient":"不足","tier.insufficient.s":"不足","tier.near":"准定论·预警","tier.near.s":"准定论","tier.normal":"正常","tier.normal.s":"正常","tier.reference":"参考","tier.reference.s":"参考","tier.withdrawn":"撤回","tier.withdrawn.s":"撤回","ui.all":"全部","ui.back_portal":"← 返回门户","ui.back_to":"← 返回{tab}","ui.collapse":"收起","ui.count":"条数","ui.data_hidden":"({n} 处数据文本尚无英文,需复核)","ui.date":"日期","ui.empty":"无数据","ui.error":"出错了","ui.expand":"展开","ui.loading":"载入中…","ui.not_ported":"本页尚未迁入新版。","ui.not_recorded":"台账未填","ui.open":"查看 →","ui.open_classic":"在经典版打开 →","ui.query":"查询","ui.reselect":"重新选择机组 / 测点","ui.retry":"重试","ui.system":"系统","ui.unit":"机组","ui.units":"机组","ui.verbatim":"原始记录 (中文)","ui.verbatim_note":"{n} 处为手册/工单原文, 无英文译本, 按原文转录。","unit.h":"h","unit.n":" 条","unit.units":"台","vp.(振动线未收录)":"(振动线未收录)","vp.主轴承(后)+集中润滑泵":"主轴承(后)+集中润滑泵","vp.发电机(引用同族, 见族主台)":"发电机(无本台独立证据, 参照同型机组)","vp.发电机(未映射)":"发电机(未对应到具体部件)","vp.发电机DE":"发电机DE","vp.发电机DE+NDE(两端)":"发电机DE+NDE(两端)","vp.发电机NDE":"发电机NDE","vp.齿轮箱(未映射)":"齿轮箱(未对应到具体部件)","vp.齿轮箱(测量链问题, 非部件)":"齿轮箱(测量链问题, 非部件)","vp.齿轮箱(谱线级, 未映射到部件)":"齿轮箱(频谱信号级 (未定位到具体零件), 未对应到具体部件)","vp.齿轮箱中间轴":"齿轮箱中间轴","vp.齿轮箱二级行星内齿圈":"齿轮箱二级行星内齿圈","vp.齿轮箱高速轴":"齿轮箱高速轴","win.2025H2":"2025H2","win.2026":"2026年","win.2026H1":"2026H1","win.30d":"近30日","win.90d":"近90日","win.all":"全程","win.apply":"应用","win.bad_order":"开始日期不能晚于结束日期","win.banner":"时间窗 {win} · 本页全部数字随上方时间窗切换","win.custom":"自定义","win.custom_hint":"自定义起止日期(含两端)。日粒度件(判级/停机台账/曲线)按日精确;月度聚合件按所跨月份取整,图上会写明。","win.custom_sel":"自定义 {a} ~ {b}","win.from":"开始日期(含)","win.label":"时间窗","win.months":"按月","win.need_both":"请把开始与结束日期都选上","win.partial":"时间窗内 {m} 数据不满月 (覆盖 {c}%), 月度图已按天归一","win.presets":"预设时间窗","win.through":"至{date}","win.to":"结束日期(含)"};function p(t,e){let s=oa[t]??t;if(e)for(const[n,l]of Object.entries(e))s=s.split(`{${n}}`).join(String(l));return s}const aa=["overview","energy","component","vibration","generation","fault","decision","assistant","report","system"],tn=["overview","energy","component","fault"],ca={危险:"bad",报警:"warn",不可判:"unk",良好:"ok",优秀:"ex"},ua={critical:"bad",alarm:"warn",undeterminable:"unk",indeterminate:"unk","not evaluable":"unk",good:"ok",excellent:"ex",warn:"warn",bad:"bad",ok:"ok",unk:"unk",ex:"ex"},Ts=t=>ca[String(t)]||ua[String(t)],hl={证据:"evidence",机制:"mechanism",判级:"rating",排期:"schedule",动作:"action",验收:"acceptance"},mn=t=>"st."+(t==="ex"?"excellent":t),oe=t=>String(t).replace("WTG","").replace(/^0/,"")+"#",st=(t,e=0)=>{if(t==null||typeof t=="number"&&isNaN(t))return"—";const s=Number(t);return isNaN(s)?"—":s.toLocaleString("zh-CN",{maximumFractionDigits:e,minimumFractionDigits:e})},ml=t=>{const e=Ts(t);return e?p(mn(e)):String(t??"")},fa=["振动","温度","润滑","油液","报警","工单"];function _l(t){const e=fa.map(n=>Ts((t?.[n]||{}).ostate)).filter(Boolean);if(!e.length)return"unk";if(e.includes("bad"))return"bad";if(e.includes("warn"))return"warn";const s=e.filter(n=>n!=="unk");return s.length?s.includes("ok")?"ok":"ex":"unk"}const gl={bad:"critical",warn:"warning",unk:"unknown",ok:"good",ex:"excellent"},Ce=t=>String(t??""),Fn=["叶片与叶根","变桨","偏航","齿轮箱","发电机","主轴承","变流器","塔架与基础","主控与传感网"],Cs={叶片与叶根:"blade",变桨:"pitch",偏航:"yaw",齿轮箱:"gearbox",发电机:"generator",主轴承:"main_bearing",变流器:"converter",塔架与基础:"tower",主控与传感网:"control",主轴:"main_bearing",其他:"other"},Er=(()=>{const t={};for(const e of Fn)t[Cs[e]]=e;for(const[e,s]of Object.entries(Cs))s in t||(t[s]=e);return t})(),Ar=t=>Cs[String(t)]||String(t),vl=t=>Er[String(t)]||String(t),Te=t=>{const e=Cs[String(t)]||String(t);return Er[e]?p("sys."+e):String(t??"")},da=t=>Te(t),pa={key:0},ha={class:"small"},ma={href:"#tab=component","data-back":"1"},_a={class:"panel mb"},ga={style:{display:"flex",height:"12px","border-radius":"4px",overflow:"hidden",margin:"8px 0 4px"}},va={class:"small muted"},ba={class:"tblwrap"},ya={style:{width:"74px"}},wa={class:"r",style:{width:"96px"}},xa=["href"],ka={class:"small"},$a={class:"r"},Sa=["href"],Ma={key:0,class:"panel mb"},Ta={style:{cursor:"pointer","font-weight":"600"}},Ca={class:"tblwrap"},Ea={style:{"margin-top":"10px"}},Aa={style:{width:"74px"}},Oa={class:"small"},Pa={key:1,class:"panel"},Fa={class:"small"},Da={key:0},Ia={class:"panel mb small",style:{"border-left":"3px solid var(--accent)"}},Ra={class:"eyebrow"},qa={class:"panel mb"},Na={style:{display:"grid","grid-template-columns":"repeat(auto-fit,minmax(170px,1fr))",gap:"10px"}},La=["data-sys"],Ha={class:"t"},ja={class:"bar"},Ba={class:"small muted"},Wa=["innerHTML"],Va={class:"small muted",style:{"margin-top":"8px"}},Ka={key:1},Ua={class:"panel mb",style:{"border-left":"3px solid var(--critical)"}},Ga={class:"small"},za={key:2},Ja={class:"eyebrow"},Ya={class:"panel mb"},Za={class:"small muted",style:{"font-weight":"400"}},Xa={class:"small muted",style:{margin:"-2px 0 8px"}},Qa={class:"tblwrap"},tc={class:"r"},ec={class:"r"},sc={class:"r"},nc={class:"r"},lc={key:0},rc={class:"badge"},ic={class:"num small"},oc={class:"r"},ac={class:"r"},cc={class:"r"},uc={class:"r"},fc={class:"small"},dc={class:"small muted"},pc={key:3},hc={class:"panel mb"},mc={class:"small"},_c={href:"#tab=vibration"},gc={class:"eyebrow"},vc={class:"panel mb"},bc={class:"tblwrap"},yc={class:"r"},wc=["href"],xc={class:"r"},kc=["innerHTML"],$c={class:"small"},Sc=fe({__name:"Component",props:{d:{},sys:{}},setup(t){const e=t,s=R(()=>e.d?.sysdist||{}),n=R(()=>e.d?.rel&&!e.d.rel.err?e.d.rel:null),l=R(()=>e.sys?vl(e.sys):null),r=R(()=>Fn.filter(f=>s.value[f]).map(f=>{const g=s.value[f],d=g.报警||0,b=g.不可判||0,S=Object.values(g).reduce((F,w)=>F+w,0)||1,x=d>=8?"var(--critical)":d>=3?"var(--warning)":d?"var(--accent)":"var(--good)";return{s:f,dist:g,a:d,u:b,N:S,col:x}}));function i(f){return(f.syss||[]).map(g=>`<a href="/problem/${f.t}/${encodeURIComponent(vl(g)||g)}">${Te(g)}</a>`).join(" · ")}const o=R(()=>{const g=(((e.d?.control||{}).energy||{}).items||[]).filter(d=>d.k==="停机").map(d=>d.h)[0];return g??null}),c=R(()=>{const f=n.value?.表||[],g=Math.max(1,...f.map(d=>d.停机时长h));return f.map(d=>({r:d,maxH:g,sev:d.部件==="无记录停机"?"var(--unknown)":d.外部?"var(--accent)":d.占停机>=.06?"var(--critical)":d.占停机>=.03?"var(--warning)":"var(--good)"}))}),m=R(()=>{const f=l.value;if(!f)return null;const g=(e.d?.systems||{})[f]||[],d=s.value[f]||{},b=(e.d?.systems||{})[f+"·良好"]||[],S=F=>d[F]||0,x=Object.values(d).reduce((F,w)=>F+w,0)||1;return{s:f,N:x,gd:b,cnt:S,al:g.filter(F=>F.st==="报警"),un:g.filter(F=>F.st==="不可判"),dist:d}});return(f,g)=>m.value?(C(),E("section",pa,[a("p",ha,[a("a",ma,_(v(p)("ui.back_to",{tab:v(p)("tab.component")})),1)]),a("div",_a,[a("h3",null,_(v(p)("cmp.detail_head",{sys:v(Te)(m.value.s),n:m.value.N})),1),a("div",ga,[(C(),E(K,null,it([["报警","critical"],["不可判","unknown"],["良好","good"],["优秀","excellent"]],([d,b])=>a("i",{key:d,style:dt(`width:${(m.value.cnt(d)/m.value.N*100).toFixed(1)}%;background:var(--${b})`)},null,4)),64))]),a("div",va,_(v(p)("cmp.counts",{a:m.value.cnt("报警"),u:m.value.cnt("不可判"),g:m.value.cnt("良好"),e:m.value.cnt("优秀")})),1)]),(C(!0),E(K,null,it([m.value.al,m.value.un],(d,b)=>Vn((C(),E("div",{key:b,class:"panel mb"},[a("h3",null,_(b===0?v(p)("cmp.alarm_units"):v(p)("cmp.unk_units"))+" "+_(v(p)("cmp.n_units",{n:d.length})),1),a("div",ba,[a("table",null,[a("tr",null,[a("th",ya,_(v(p)("ui.unit")),1),a("th",null,_(v(p)("cmp.why")),1),a("th",wa,_(v(p)("cmp.detail")),1)]),(C(!0),E(K,null,it(d,S=>(C(),E("tr",{key:S.t},[a("td",null,[a("a",{href:`/turbine/${S.t}`},[a("b",null,_(v(oe)(S.t)),1)],8,xa)]),a("td",ka,_(S.why),1),a("td",$a,[a("a",{class:"small",href:`/problem/${S.t}/${encodeURIComponent(m.value.s)}`},_(v(p)("cmp.detail_link")),9,Sa)])]))),128))])])])),[[il,d.length]])),128)),m.value.gd.length?(C(),E("details",Ma,[a("summary",Ta,_(v(p)("cmp.good_units",{n:m.value.gd.length})),1),a("div",Ca,[a("table",Ea,[a("tr",null,[a("th",Aa,_(v(p)("ui.unit")),1),a("th",null,_(v(p)("cmp.why")),1)]),(C(!0),E(K,null,it(m.value.gd,d=>(C(),E("tr",{key:d.t},[a("td",null,[a("b",null,_(v(oe)(d.t)),1)]),a("td",Oa,_(d.why),1)]))),128))])])])):ct("",!0),!m.value.al.length&&!m.value.un.length&&!m.value.gd.length?(C(),E("div",Pa,[a("p",Fa,_(v(p)("cmp.none")),1)])):ct("",!0)])):(C(),E(K,{key:1},[t.d.sysmx_pending?(C(),E("section",Da,[a("div",Ia,[a("b",null,_(v(p)("cmp.grading_pending")),1),z(" "+_(v(p)("cmp.grading_pending_why",{span:t.d.sysmx_span||""})),1)])])):ct("",!0),a("section",null,[a("div",Ra,_(v(p)("cmp.by_system")),1),a("div",qa,[a("div",Na,[(C(!0),E(K,null,it(r.value,d=>(C(),E("div",{key:d.s,class:"sysc",role:"button",tabindex:"0","data-sys":v(Ar)(d.s),style:dt(`cursor:pointer;border-left:3px solid ${d.col}`)},[a("div",Ha,[a("b",null,_(v(Te)(d.s)),1)]),a("div",ja,[(C(),E(K,null,it([["报警","critical"],["不可判","unknown"],["良好","good"],["优秀","excellent"]],([b,S])=>Vn(a("i",{key:b,style:dt(`width:${(d.dist[b]/d.N*100).toFixed(1)}%;background:var(--${S})`)},null,4),[[il,d.dist[b]]])),64))]),a("div",Ba,[a("span",{innerHTML:v(p)("cmp.alarm_n",{a:`<b style="color:${d.col}">${d.a}</b>`})},null,8,Wa),z(_((d.u?v(p)("cmp.unk_n",{u:d.u}):"")+v(p)("cmp.fleet_n",{n:d.N})),1)])],12,La))),128))]),a("p",Va,_(v(p)("cmp.cards_note")),1)])]),t.d.rel&&t.d.rel.err?(C(),E("section",Ka,[a("div",Ua,[a("p",Ga,_(v(p)("flt.block_err",{k:"rel",e:t.d.rel.err})),1)])])):n.value?(C(),E("section",za,[a("div",Ja,_(v(p)("cmp.rel_eyebrow",{win:n.value.窗})),1),a("div",Ya,[a("h3",null,[z(_(v(p)("cmp.rel_head"))+" ",1),a("span",Za,_(v(p)("cmp.rel_meta",{t:n.value.总停机h,a:n.value.设备类停机h,b:n.value.外部类停机h})),1)]),a("p",Xa,_(v(p)("cmp.rel_note",{h:o.value==null?"":" "+v(st)(o.value)+"h"})),1),a("div",Qa,[a("table",null,[a("tr",null,[a("th",null,_(v(p)("cmp.rel_part")),1),a("th",null,_(v(p)("cmp.rel_h")),1),a("th",tc,_(v(p)("cmp.rel_ev")),1),a("th",ec,_(v(p)("cmp.rel_mtbo")),1),a("th",sc,_(v(p)("cmp.rel_mdt")),1),a("th",nc,_(v(p)("cmp.rel_units")),1),a("th",null,_(v(p)("cmp.rel_fm")),1)]),(C(!0),E(K,null,it(c.value,d=>(C(),E("tr",{key:d.r.部件},[a("td",null,[a("b",null,_(v(da)(d.r.部件)),1),d.r.外部?(C(),E("span",lc,[g[0]||(g[0]=z(_(" "),-1)),a("span",rc,_(v(p)("cmp.external")),1)])):ct("",!0)]),a("td",null,[a("i",{class:"bar",style:dt(`width:${Math.round(d.r.停机时长h/d.maxH*72)}px;background:${d.sev}`)},null,4),a("span",ic,_(d.r.停机时长h)+"h · "+_((d.r.占停机*100).toFixed(1))+"%",1)]),a("td",oc,_(d.r.事件数),1),a("td",ac,_(d.r.外部?"—":d.r.MTBF_h||"—"),1),a("td",cc,_(d.r.MDT_h),1),a("td",uc,_(d.r.影响台数),1),a("td",fc,_(d.r.典型失效模式||"—"),1)]))),128))])]),a("p",dc,_(n.value.口径),1)])])):ct("",!0),t.d.fus&&!t.d.fus.err?(C(),E("section",pc,[a("div",hc,[a("p",mc,[z(_(v(p)("cmp.fusion_moved"))+" ",1),a("a",_c,[a("b",null,_(v(p)("tab.vibration")),1)]),z(" "+_(v(p)("cmp.fusion_n",{n:(t.d.fus.表||[]).length})),1)])])])):ct("",!0),a("section",null,[a("div",gc,_(v(p)("cmp.cross_eyebrow")),1),a("div",vc,[a("h3",null,_(v(p)("cmp.watch_head",{n:(t.d.watch||[]).length})),1),a("div",bc,[a("table",null,[a("tr",null,[a("th",null,_(v(p)("ui.unit")),1),a("th",yc,_(v(p)("cmp.n_sys")),1),a("th",null,_(v(p)("cmp.hit_sys")),1),a("th",null,_(v(p)("cmp.basis")),1)]),(C(!0),E(K,null,it(t.d.watch||[],d=>(C(),E("tr",{key:d.t},[a("td",null,[a("a",{href:`/turbine/${d.t}`},[a("b",null,_(v(oe)(d.t)),1)],8,wc)]),a("td",xc,_(d.n),1),a("td",{class:"small",innerHTML:i(d)},null,8,kc),a("td",$c,_(d.why),1)]))),128))])])])])],64))}}),Mc="modulepreload",Tc=function(t,e){return new URL(t,e).href},bl={},Cc=function(e,s,n){let l=Promise.resolve();if(s&&s.length>0){let i=function(f){return Promise.all(f.map(g=>Promise.resolve(g).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const o=document.getElementsByTagName("link"),c=document.querySelector("meta[property=csp-nonce]"),m=c?.nonce||c?.getAttribute("nonce");l=i(s.map(f=>{if(f=Tc(f,n),f in bl)return;bl[f]=!0;const g=f.endsWith(".css"),d=g?'[rel="stylesheet"]':"";if(!!n)for(let x=o.length-1;x>=0;x--){const F=o[x];if(F.href===f&&(!g||F.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${d}`))return;const S=document.createElement("link");if(S.rel=g?"stylesheet":Mc,g||(S.as="script"),S.crossOrigin="",S.href=f,m&&S.setAttribute("nonce",m),document.head.appendChild(S),g)return new Promise((x,F)=>{S.addEventListener("load",x),S.addEventListener("error",()=>F(new Error(`Unable to preload CSS for ${f}`)))})}))}function r(i){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i}return l.then(i=>{for(const o of i||[])o.status==="rejected"&&r(o.reason);return e().catch(r)})},Ec=["data-chart"],Ac=fe({__name:"EChart",props:{option:{},height:{}},setup(t){const e=t,s=Nt(null);let n=null;async function l(){if(!s.value)return;const r=await Cc(()=>import("./index-BAPDkhe3.js"),[],import.meta.url);n||(n=r.init(s.value,void 0,{renderer:"canvas"})),n.setOption(e.option,!0)}return Ns(l),Ye(()=>e.option,l,{deep:!0}),tr(()=>{n&&(n.dispose(),n=null)}),(r,i)=>(C(),E("div",{class:"echart","data-chart":JSON.stringify(t.option),style:dt(`height:${t.height||"260px"}`),ref_key:"el",ref:s},null,12,Ec))}}),Or=(t,e)=>{const s=t.__vccOpts||t;for(const[n,l]of e)s[n]=l;return s},Gt=Or(Ac,[["__scopeId","data-v-999bee15"]]),Oc={key:0},Pc={class:"panel"},Fc={class:"small muted"},Dc={key:1},Ic={class:"kpis",style:{"margin-bottom":"12px"}},Rc={key:0},qc={class:"grid2"},Nc={class:"panel span2"},Lc={class:"small muted",style:{"font-weight":"400"}},Hc={class:"panel"},jc={style:{"font-weight":"600"}},Bc={class:"num"},Wc={class:"small muted"},Vc={class:"small muted",style:{"margin-top":"6px"}},Kc={class:"panel"},Uc={class:"small muted",style:{"font-weight":"400"}},Gc={class:"tblwrap"},zc={class:"r",style:{width:"90px"}},Jc={class:"small"},Yc={class:"num small"},Zc={class:"r small"},Xc={class:"small muted",style:{"margin-top":"6px"}},Qc=fe({__name:"Energy",props:{d:{}},setup(t){const e=t,s=R(()=>(e.d?.control||{}).energy),n=R(()=>(e.d?.control||{}).states||[]),l={"限电·绑定":"loss.curtail_bound","限电命令·未绑定":"loss.curtail_unbound","停机(调度令)":"loss.dispatch",停机:"loss.stop",正常发电:"loss.normal",低风待机:"loss.lowwind"},r=d=>l[d]?p(l[d]):d,i=R(()=>{const d=s.value||{};return[{v:st(d.theo),u:"MWh",l:p("en.kpi_theo"),k:""},{v:st(d.act),u:"MWh",l:p("en.kpi_act",{h:st(d.eflh)}),k:"ok"},{v:st(d.loss_pct,1),u:"%",l:p("en.kpi_loss",{v:st(d.loss)}),k:d.loss_pct>=10?"warn":""},{v:d.cap_ok?p("en.cap_pass"):p("en.cap_fail"),u:"",l:p("en.cap_note",{op:d.cap_ok?"<":"≥",cap:st(d.cap)}),k:d.cap_ok?"ok":"bad"}]}),o=d=>d.indexOf("限电")>=0||d.indexOf("调度")>=0?0:d==="停机"?1:2,c=R(()=>{const d=[0,0,0];for(const b of s.value?.items||[])d[o(b.k)]+=b.loss;return d}),m=R(()=>{const d=s.value||{},b=(d.items||[]).filter(w=>w.loss>0).map(w=>({name:w.k,value:Math.round(w.loss)})),S=c.value,x=S.reduce((w,D)=>w+D,0)||1,F=S.map(w=>Math.round(w/x*100)).filter((w,D)=>S[D]/x*500>46);return{title:{text:p("en.balance"),left:"center",textStyle:{fontSize:13}},tooltip:{trigger:"axis"},grid:{left:70,right:20,top:44,bottom:40},xAxis:{type:"category",data:b.map(w=>w.name)},yAxis:{type:"value",name:"MWh"},series:[{type:"bar",data:b.map(w=>w.value),itemStyle:{color:"#0b5fa5"}}],__data__:[Math.round(d.theo),Math.round(d.act),Math.round(b.reduce((w,D)=>w+D.value,0)),...b.map(w=>w.value),...F]}}),f=R(()=>{const d=c.value;return{grid:{left:90,right:24,top:20,bottom:30},xAxis:{type:"value",name:"MWh"},yAxis:{type:"category",data:[p("ch.blame.n1"),p("ch.blame.n2"),p("ch.blame.n3")]},series:[{type:"bar",data:d.map(b=>Math.round(b)),itemStyle:{color:"#2f7dbf"}}],__data__:[]}}),g=R(()=>Math.max(1,...n.value.map(d=>d.pct)));return(d,b)=>s.value?(C(),E("section",Dc,[a("div",Ic,[(C(!0),E(K,null,it(i.value,(S,x)=>(C(),E("div",{key:x,class:wt(["kpi",S.k])},[a("b",null,[z(_(S.v),1),S.u?(C(),E("small",Rc,_(S.u),1)):ct("",!0)]),a("span",null,_(S.l),1)],2))),128))]),a("div",qc,[a("div",Nc,[a("h3",null,[z(_(v(p)("en.balance"))+" ",1),a("span",Lc,_(v(p)("en.win",{win:v(Ce)(t.d.win)})),1)]),ft(Gt,{option:m.value,height:"280px"},null,8,["option"])]),a("div",Hc,[a("h3",null,_(v(p)("en.blame")),1),ft(Gt,{option:f.value,height:"240px"},null,8,["option"]),(C(!0),E(K,null,it(c.value,(S,x)=>(C(),E("div",{key:x,style:{display:"flex","align-items":"baseline",gap:"7px","margin-top":"5px"}},[a("i",{style:dt(`flex:none;width:9px;height:9px;border-radius:2px;background:${["var(--accent)","var(--critical)","var(--muted)"][x]};opacity:.55`)},null,4),a("span",jc,_(v(p)(["ch.blame.n1","ch.blame.n2","ch.blame.n3"][x])),1),a("span",Bc,_(v(st)(Math.round(S)))+" MWh",1),a("span",Wc,_(v(p)(["ch.blame.d1","ch.blame.d2","ch.blame.d3"][x])),1)]))),128)),a("p",Vc,_(v(p)("en.blame_note",{n:v(st)(Math.round(((s.value.items||[]).find(S=>S.k==="停机")||{}).loss||0))})),1)]),a("div",Kc,[a("h3",null,[z(_(v(p)("en.states"))+" ",1),a("span",Uc,_(v(p)("en.win",{win:v(Ce)(t.d.win)})),1)]),a("div",Gc,[a("table",null,[a("tr",null,[a("th",null,_(v(p)("en.state")),1),a("th",null,_(v(p)("en.share")),1),a("th",zc,_(v(p)("en.loss_mwh")),1)]),(C(!0),E(K,null,it(n.value,S=>(C(),E("tr",{key:S.k},[a("td",Jc,_(r(S.k)),1),a("td",null,[a("i",{class:"bar",style:dt(`width:${Math.round(S.pct/g.value*84)}px;background:${S.k.indexOf("停机")>=0&&S.k.indexOf("调度")<0?"var(--critical)":"var(--accent)"}`)},null,4),a("span",Yc,_(S.pct)+"% · "+_(v(st)(Math.round(S.h)))+"h",1)]),a("td",Zc,_(v(st)(Math.round(S.loss))),1)]))),128))])]),a("p",Xc,[z(_(t.d.control.anchors||""),1),b[0]||(b[0]=a("br",null,null,-1)),z(_(v(p)("en.states_note")),1)])])])])):(C(),E("section",Oc,[a("div",Pc,[a("p",Fc,_(v(p)("ui.empty")),1)])]))}}),tu={class:"eyebrow"},eu={class:"panel mb small",style:{"border-left":"3px solid var(--accent)"}},su={style:{color:"var(--warning)"}},nu={class:"grid2"},lu={class:"eyebrow",style:{"grid-column":"1/-1","margin-top":"4px"}},ru={style:{"text-transform":"none","letter-spacing":"0",color:"var(--muted)"}},iu={class:"panel span2"},ou={class:"small muted",style:{"margin-top":"6px"}},au={class:"panel"},cu=["innerHTML"],uu={class:"panel"},fu=["innerHTML"],du={class:"panel span2"},pu={class:"small muted",style:{"margin-top":"6px"}},hu={key:0,style:{color:"var(--warning)"}},mu={class:"panel"},_u={class:"tblwrap"},gu={style:{width:"70px"}},vu={class:"r",style:{width:"80px"}},bu={class:"num small"},yu={class:"r small"},wu={class:"small muted",style:{"margin-top":"6px"}},xu={key:0,class:"panel",style:{"border-left":"3px solid var(--critical)"}},ku={class:"small"},$u={key:1,class:"panel"},Su={class:"small muted",style:{"font-weight":"400"}},Mu={class:"legend",style:{"margin-top":"6px","flex-wrap":"wrap"}},Tu={class:"small muted",style:{"margin-top":"6px"}},Cu={class:"eyebrow",style:{"grid-column":"1/-1","margin-top":"4px"}},Eu={style:{"text-transform":"none","letter-spacing":"0",color:"var(--muted)"}},Au={key:0,class:"panel span2"},Ou={class:"small muted",style:{"margin-top":"6px"}},Pu={style:{"margin-top":"12px"}},Fu={class:"small muted",style:{"margin-top":"2px"}},Du={class:"panel"},Iu=["innerHTML"],Ru={class:"small muted",style:{"margin-top":"4px"}},qu={class:"panel"},Nu={class:"tblwrap"},Lu={style:{width:"64px"}},Hu={class:"r",style:{width:"56px"}},ju={class:"num small"},Bu={class:"r small"},Wu={class:"small muted",style:{"margin-top":"6px"}},Vu=fe({__name:"Fault",props:{d:{}},setup(t){const e=t,s=R(()=>e.d?.faults||{}),n=R(()=>s.value.partial||[]),l=R(()=>e.d?.m8&&!e.d.m8.err?e.d.m8.mtbf:null),r=R(()=>s.value.monthly||{months:[],vals:[]}),i=R(()=>r.value.per_day||[]),o=R(()=>n.value.length?(r.value.months||[]).indexOf(n.value[0]):-1),c=R(()=>{const N=n.value.length?p("flt.rate_partial",{m:n.value.join("/")}):p("flt.rate_full"),j=o.value>=0&&!!r.value.per_day;return N+(j?" "+p("flt.rate_example",{m:n.value[0],v:m.value}):"")}),m=R(()=>{const N=o.value;return N>=0&&r.value.per_day?r.value.per_day[N]:null}),f=R(()=>n.value.length?p("win.partial",{m:n.value.join("/"),c:Math.round((s.value.cov_min||0)*100)}):""),g={grid:{left:60,right:20,top:24,bottom:46},tooltip:{trigger:"axis"},yAxis:{type:"value"}},d=R(()=>({...g,xAxis:{type:"category",data:r.value.months||[]},series:[{type:"bar",data:i.value.map(N=>N==null?null:Math.round(N*100)/100),itemStyle:{color:"#0b5fa5"}}],__data__:i.value.filter(N=>N!=null)}));function b(N){const j=(N||[]).filter(G=>G&&G.v>0);return{...g,xAxis:{type:"category",data:j.map(G=>G.k)},series:[{type:"bar",data:j.map(G=>G.v),itemStyle:{color:"#2f7dbf"}}],__data__:[]}}const S=N=>{const j=String(N).match(/^([0-9]+)/);return j?j[1]:String(N).slice(0,4)},x=N=>String(N??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");function F(N,j,G){const Ot=(N||[]).filter(Tt=>Tt&&Tt.v>0);if(!Ot.length)return x(p("ch.pareto.none"));const Oe=Ot.reduce((Tt,u)=>Tt+u.v,0);let St=0,qt=null;for(let Tt=0;Tt<Ot.length;Tt++)St+=Ot[Tt].v,qt===null&&Oe&&St/Oe>=.8&&(qt=Tt+1);const Le=Ot.slice(0,3).map(Tt=>`<b>${x(S(Tt.k))}</b> ${x(String(Tt.k).replace(/^[0-9]+ */,"").slice(0,18))}`).join(" · "),He=p("ch.pareto.total",{n:Ot.length,tot:st(Math.round(Oe)),unit:j});return(qt?`<b>${x(p("ch.pareto.key",{k:qt}))}</b> (${x(He)})`:x(He))+"<br>"+x(p("ch.pareto.top3"))+Le+(G?"<br>"+x(G):"")}const w=R(()=>F(s.value.pareto_n||[],p("unit.n"),p("flt.pareto_n_note"))),D=R(()=>F(s.value.pareto_d||[]," h",p("flt.pareto_d_note"))),U=R(()=>F(lt.value," h",p("flt.stop_pareto_note"))),q=R(()=>b(s.value.pareto_n||[])),ot=R(()=>b(s.value.pareto_d||[])),kt=R(()=>{const N=(s.value.quad||[]).filter(j=>j&&j.n>0&&j.med>0);return{grid:{left:60,right:24,top:24,bottom:46},xAxis:{type:"log",name:"MTBF(h)"},yAxis:{type:"value",name:"MDT(h)"},series:[{type:"scatter",data:N.map(j=>[j.mtbf??j.n,j.med]),symbolSize:j=>Math.min(28,6+Math.sqrt(Math.max(j[0]||1,1))),itemStyle:{color:"#b42318",opacity:.6}}],__data__:[]}}),$t=R(()=>s.value.per_t||[]),It=R(()=>Math.max(1,...$t.value.map(N=>N.v))),pe=R(()=>l.value&&e.d?.m8?.seasonal?e.d.m8.seasonal:[]),te=["var(--accent)","#D48A1E","#2E8B6A","#7C5295"],be=R(()=>pe.value.slice(0,4).map(N=>String(N.name).slice(0,16))),Ae=R(()=>{const N=pe.value.slice(0,4),j=N.length?N[0].months:[];return{...g,xAxis:{type:"category",data:j},legend:{top:0,textStyle:{fontSize:10}},series:N.map(G=>({name:String(G.name).slice(0,16),type:"line",data:G.vals,connectNulls:!1})),__data__:[]}}),At=R(()=>e.d?.rel&&!e.d.rel.err?e.d.rel:null),Ne=R(()=>{const N=At.value?.表||[];return{grid:{left:60,right:24,top:24,bottom:40},xAxis:{type:"value",name:"MTBF(h)"},yAxis:{type:"value",name:"MDT(h)"},series:[{type:"scatter",data:N.filter(j=>!j.外部&&j.MTBF_h).map(j=>[j.MTBF_h,j.MDT_h]),symbolSize:8,itemStyle:{color:"#2f7dbf",opacity:.5}}],__data__:[]}}),us=R(()=>{const N=At.value?.表||[],j=(N.find(St=>St.部件==="无记录停机")||{}).停机时长h||0,G=N.filter(St=>St.部件==="未归类").reduce((St,qt)=>St+qt.停机时长h,0);return{ok:(At.value?.总停机h||0)-j-G,unk:j,un2:G}}),pt=R(()=>{const N=us.value;return{xAxis:{type:"value"},yAxis:{type:"category",data:[p("ch.attrib.ok",{h:Math.round(N.ok),p:""}),p("ch.attrib.none",{h:Math.round(N.unk),p:""}),p("ch.attrib.uncls",{h:Math.round(N.un2)})]},series:[{type:"bar",data:[Math.round(N.ok),Math.round(N.unk),Math.round(N.un2)],itemStyle:{color:"#0b5fa5"}}],__data__:[Math.round(N.ok),Math.round(N.unk),Math.round(N.un2)]}}),lt=R(()=>(e.d?.m8?.stop_pareto||[]).map(N=>({k:String(N.k).split(";")[0].slice(0,26),v:N.h}))),X=R(()=>b(lt.value)),Rt=R(()=>l.value?.台级top||[]),ye=R(()=>Math.max(1,...Rt.value.map(N=>N.时长h)));return(N,j)=>(C(),E("section",null,[a("div",tu,_(v(p)("flt.eyebrow")),1),a("div",eu,[a("b",null,_(v(p)("win.banner",{win:v(Ce)(t.d.win)})),1),f.value?(C(),E(K,{key:0},[j[0]||(j[0]=z(" | ",-1)),a("span",su,_(f.value),1)],64)):ct("",!0)]),a("div",nu,[a("div",lu,[z(_(v(p)("flt.alarm_face"))+" ",1),a("span",ru,_(v(p)("flt.alarm_meta",{n:v(st)(s.value.total),c:s.value.n_codes,win:v(Ce)(t.d.win)})),1)]),a("div",iu,[a("h3",null,_(v(p)("flt.rate")),1),ft(Gt,{option:d.value,height:"250px"},null,8,["option"]),a("p",ou,[a("b",null,_(v(p)("flt.rate_note")),1),z(" — "+_(c.value),1)])]),a("div",au,[a("h3",null,_(v(p)("flt.pareto_n")),1),ft(Gt,{option:q.value,height:"240px"},null,8,["option"]),a("p",{class:"small muted",style:{"margin-top":"5px","line-height":"1.6"},innerHTML:w.value},null,8,cu)]),a("div",uu,[a("h3",null,_(v(p)("flt.pareto_d")),1),ft(Gt,{option:ot.value,height:"240px"},null,8,["option"]),a("p",{class:"small muted",style:{"margin-top":"5px","line-height":"1.6"},innerHTML:D.value},null,8,fu)]),a("div",du,[a("h3",null,_(v(p)("flt.quad")),1),ft(Gt,{option:kt.value,height:"300px"},null,8,["option"]),a("p",pu,[z(_(v(p)("flt.quad_note",{n:s.value.n_codes,m:(s.value.quad||[]).length}))+" ",1),n.value.length?(C(),E("span",hu,_(v(p)("flt.quad_partial",{m:n.value.join("/"),c:Math.round((s.value.cov_min||0)*100)})),1)):ct("",!0),z(" "+_(v(p)("flt.quad_note2")),1)])]),a("div",mu,[a("h3",null,_(v(p)("flt.per_t",{n:$t.value.length})),1),a("div",_u,[a("table",null,[a("tr",null,[a("th",gu,_(v(p)("ui.unit")),1),a("th",null,_(v(p)("ui.count")),1),a("th",vu,_(v(p)("flt.per_t_share")),1)]),(C(!0),E(K,null,it($t.value,G=>(C(),E("tr",{key:G.k},[a("td",null,[a("b",null,_(v(oe)(G.k)),1)]),a("td",null,[a("i",{class:"bar",style:dt(`width:${Math.round(G.v/It.value*90)}px;background:${G.v/It.value>.6?"var(--critical)":"var(--accent)"}`)},null,4),a("span",bu,_(v(st)(G.v)),1)]),a("td",yu,_((G.v/s.value.total*100).toFixed(1))+"%",1)]))),128))])]),a("p",wu,_(v(p)("flt.per_t_note",{n:v(st)(s.value.total)})),1)]),t.d.m8&&t.d.m8.err?(C(),E("div",xu,[a("p",ku,_(v(p)("flt.block_err",{k:"m8",e:t.d.m8.err})),1)])):ct("",!0),l.value&&pe.value.length?(C(),E("div",$u,[a("h3",null,[z(_(v(p)("flt.seasonal"))+" ",1),a("span",Su,"("+_(v(p)("flt.seasonal_unit"))+")",1)]),ft(Gt,{option:Ae.value,height:"260px"},null,8,["option"]),a("div",Mu,[(C(!0),E(K,null,it(be.value,(G,Ot)=>(C(),E("span",{key:Ot},[a("i",{style:dt(`background:${te[Ot%4]}`)},null,4),z(_(G),1)]))),128))]),a("p",Tu,_(v(p)("flt.seasonal_note")),1)])):ct("",!0),l.value?(C(),E(K,{key:2},[a("div",Cu,[z(_(v(p)("flt.stop_face"))+" ",1),a("span",Eu,_(v(p)("flt.stop_meta",{h:v(st)(l.value.停机总时长h),n:v(st)(l.value.停机事件数)})),1)]),At.value?(C(),E("div",Au,[a("h3",null,_(v(p)("flt.ram")),1),ft(Gt,{option:Ne.value,height:"300px"},null,8,["option"]),a("p",Ou,_(v(p)("flt.ram_note",{a:At.value.设备类停机h,b:At.value.外部类停机h})),1),a("div",Pu,[ft(Gt,{option:pt.value,height:"160px"},null,8,["option"])]),a("p",Fu,_(v(p)("flt.attrib_note",{h:((At.value.表||[]).find(G=>G.部件==="无记录停机")||{}).停机时长h||0})),1)])):ct("",!0),a("div",Du,[a("h3",null,_(v(p)("flt.stop_pareto")),1),ft(Gt,{option:X.value,height:"240px"},null,8,["option"]),a("p",{class:"small muted",style:{"margin-top":"5px","line-height":"1.6"},innerHTML:U.value},null,8,Iu),a("p",Ru,_(l.value.口径),1)]),a("div",qu,[a("h3",null,_(v(p)("flt.stop_units",{n:Rt.value.length})),1),a("div",Nu,[a("table",null,[a("tr",null,[a("th",Lu,_(v(p)("ui.unit")),1),a("th",null,_(v(p)("flt.stop_h")),1),a("th",Hu,_(v(p)("flt.stop_n")),1)]),(C(!0),E(K,null,it(Rt.value,G=>(C(),E("tr",{key:G.t},[a("td",null,[a("b",null,_(v(oe)(G.t)),1)]),a("td",null,[a("i",{class:"bar",style:dt(`width:${Math.round(G.时长h/ye.value*90)}px;background:${G.时长h/ye.value>.6?"var(--critical)":"var(--accent)"}`)},null,4),a("span",ju,_(v(st)(G.时长h)),1),j[1]||(j[1]=z("h",-1))]),a("td",Bu,_(G.次),1)]))),128))])]),a("p",Wu,_(v(p)("flt.stop_units_note")),1)])],64)):ct("",!0)])]))}}),Ku=[[/DE[/]NDE/g,"驱动端与非驱动端"],[/GenDE/g,"发电机驱动端"],[/GenNDE/g,"发电机非驱动端"],[/HS_gen2?/g,"高速轴发电机侧"],[/HS_rot/g,"高速轴转子侧"],[/IMS/g,"中间轴"],[/(?<![A-Za-z])NDE(?![A-Za-z])/g,"非驱动端"],[/(?<![A-Za-z])DE(?![A-Za-z])/g,"驱动端"],[/内圈BPFI/g,"内圈特征频率"],[/外圈BPFO/g,"外圈特征频率"],[/BPFI/g,"内圈特征频率"],[/BPFO/g,"外圈特征频率"],[/FTF/g,"保持架特征频率"],[/BSF/g,"滚动体特征频率"],[/TD_1R/g,"时域单转指标"],[/Peak/g,"冲击峰值"],[/Rms/gi,"有效值"],[/([0-9]+(?:[.][0-9]+)?)[ ]*阶/g,"$1 倍轴频"],[/[(]o([0-9]+(?:[.][0-9]+)?)[)]/g,"(轴频 $1 倍)"],[/×p90/g,"×全场90分位"],[/×fleet/g,"×全场中位"],[/六窗/g,"六个观测窗"],[/([0-9])窗/g,"$1 个观测窗"],[/宽带/g,"宽频带总量"],[/台阶/g,"阶跃上升"],[/缓升/g,"缓慢上升"],[/回落/g,"回落至"],[/全净|六窗全净/g,"各窗均干净"],[/清洁/g,"干净"],[/回归/g,"回到常态"],[/同族/g,"同批次共性 (见该批主台)"],[/族第([^ ]+)台/g,"同批次第$1台"],[/族/g,"批次共性组"],[/gain异常/g,"测点增益异常"],[/gain/g,"测点增益"],[/[(]销[)]/g,"(已销案)"],[/梯度/g,"沿链梯度最高点"],[/周期主导/g,"周期成分主导"],[/急性事件/g,"突发事件"],[/慢性/g,"长期"],[/主异常在/g,"主要异常位于"]],le=t=>String(t??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),ts=t=>le(t),Uu={危险:"bad",报警:"warn",不可判:"unk",良好:"ok",优秀:"ex"},Gu={critical:"bad",alarm:"warn",undeterminable:"unk",indeterminate:"unk","not evaluable":"unk",good:"ok",excellent:"ex",warn:"warn",bad:"bad",ok:"ok",unk:"unk",ex:"ex"},zu=t=>Uu[String(t)]||Gu[String(t)],Ju={bad:"var(--critical)",warn:"var(--warning)",unk:"var(--unknown)",ok:"var(--good)",ex:"var(--excellent)"},Yu={优秀:"var(--excellent)",良好:"var(--good)",报警:"var(--warning)",危险:"var(--critical)",不可判:"var(--unknown)",监测不可用:"var(--unknown)",无监测:"var(--unknown)"},Zu={bad:"var(--critical)",warn:"var(--warning)",note:"var(--muted)",ok:"var(--good)",unlisted:"var(--muted)",stale:"var(--muted)",meta:"var(--muted)"},Xu={定论:"confirmed","准定论·预警":"near","候选·新发":"candidate_new",候选:"candidate","候选·记基线":"candidate_baseline",参考:"reference",INSUFFICIENT:"insufficient",正常:"normal",撤回:"withdrawn"},Pr=t=>"st."+(t==="ex"?"excellent":t),en=t=>{const e=zu(t);return e?p(Pr(e)):ts(t)},sn=t=>{const e=Xu[String(t)],s="tier."+e;return e?p(s):String(t)==="—"?"—":ts(t)},Qu=(t,e,s)=>`<span class="duo" style="--c:${s}"><span class="st">${t}</span><span class="ev">${e}</span></span>`,_n=t=>{let e=String(t??"");for(const[s,n]of Ku)e=e.replace(s,n);return e},nn=t=>_n(t),tf=(t,e)=>{if(!t||t.filter(g=>g!=null).length<3)return"";const s=t.filter(g=>g!=null),n=Math.min(...s),l=Math.max(...s),r=l-n||1,i=84,o=22,c=t.length;let m="",f=null;return t.forEach((g,d)=>{if(g==null)return;const b=d/(c-1)*i,S=o-2-(g-n)/r*(o-4);m+=(m?"L":"M")+b.toFixed(1)+" "+S.toFixed(1),f=[b,S]}),`<svg width="${i}" height="${o}" style="vertical-align:middle;margin-left:6px"><path d="${m}" fill="none" stroke="${e}" stroke-width="1.2" opacity=".75"/><circle cx="${f[0]}" cy="${f[1]}" r="2.4" fill="${e}"/></svg>`},ef={齿轮箱:"#8A6D3B",发电机:"#4A6FA5",主轴承:"#2E7D6B",变桨叶片:"#4A6FA5",偏航:"#2E7D6B",测风:"#7C5295",其他:"#5A6470"},sf=(t,e,s)=>{if(!e)return`<span class="small muted">${p("fus.no_alarm")}</span>`;const n=118,l=Math.max(6,Math.round(e/Math.max(s||e,1)*n));return`<div title="${le(p("fus.fam_tip",{n:e,m:s||e}))}" style="display:flex;height:9px;border-radius:3px;overflow:hidden;width:${l}px">${(t||[]).map(r=>`<i title="${le(Te(r.k))} ${r.n}" style="width:${(r.n/e*100).toFixed(1)}%;background:${ef[r.k]||"#5A6470"}"></i>`).join("")}</div><div class="small muted" style="margin-top:3px">${(t||[]).slice(0,2).map(r=>Te(r.k)+" "+r.n).join(" · ")}</div>`};function nf(t){const e=(t.列窗||{}).months||[];let s=`<div class="panel mb" style="border-left:3px solid var(--warning)"><b>${p("fus.rules_head")}</b><p class="small" style="margin-top:4px">${p("fus.rule1")}<br>${p("fus.rule2")}</p></div>`;s+=`<div class="panel mb"><h3>${p("fus.matrix_head")}</h3><p class="small muted">${p("fus.matrix_note1")}</p><p class="small">${p("fus.matrix_note2",{n:e.length,m0:e[0]||"?"})}</p>
  18. <div class="small muted" style="margin:6px 0 12px;line-height:2"><div><b>${p("fus.legend_state")}</b> ${["bad","warn","ok","ex","unk"].map(d=>`<span style="display:inline-flex;align-items:center;gap:4px;margin-right:12px"><i style="width:10px;height:10px;border-radius:2px;background:${Ju[d]}"></i>${p(Pr(d))}</span>`).join("")}</div>
  19. <div><b>${p("fus.legend_tier")}</b> ${["定论","准定论·预警","候选·新发","候选","候选·记基线","参考","INSUFFICIENT"].map(d=>`<span style="display:inline-flex;align-items:center;gap:4px;margin-right:12px"><i style="width:10px;height:10px;border-radius:2px;background:${(t.色标||{})[d]||"#ccc"}"></i>${sn(d)}</span>`).join("")}</div><div>${p("fus.legend_note")}</div></div>`;const n=d=>{const b=String(d||""),S=b.match(/20[0-9][0-9]-[0-9][0-9](?:~20[0-9][0-9]-[0-9][0-9])?|至[ ]*20[0-9][0-9]-[0-9][0-9]|20[0-9][0-9]~20[0-9][0-9]/);return S?S[0].startsWith("至")?p("win.through",{date:S[0].replace(/^至\s*/,"")}):S[0]:b.slice(0,14)},l=(d,b,S)=>`<th title="${le(b||"")}${S||""}"><div>${d}</div><div class="small muted" style="font-weight:400">${ts(n(b))}${S||""}</div></th>`,r=t.列窗||{};s+=`<div class="tblwrap"><table class="fmx" style="table-layout:fixed;width:100%;min-width:900px"><colgroup><col style="width:7%">${'<col style="width:15.5%">'.repeat(6)}</colgroup><tr><th>${p("ui.unit")}</th>${l(p("fus.col.vib"),r.振动,p("fus.col.fixed"))}${l(p("fus.col.temp"),r.温度)}${l(p("fus.col.lub"),r.润滑,p("fus.col.display_only"))}${l(p("fus.col.oil"),r.油液)}${l(p("fus.col.alarm"),r.报警)}${l(p("fus.col.wo"),r.工单)}</tr>`;const i=t.矩阵||[],o=Math.max(1,...i.map(d=>(d.报警||{}).n||0)),c=Math.max(1,...i.map(d=>(d.工单||{}).n||0)),m=t.色标||{},f=d=>{if(d.ostate&&d.ostate!=="不可判")return en(d.ostate);const b=String(d.note||"");return/数据不足|不可判|nsufficient/.test(b)?p("fus.short.nodata"):/未评估|ot assessed/.test(b)?p("fus.short.uneval"):/无样|未取样|o sample/.test(b)?p("fus.short.nosample"):/样龄|stale/.test(b)?p("fus.short.stale"):{ok:p("fus.short.normal"),unlisted:p("fus.short.unlisted"),stale:p("fus.short.stale")}[d.level]||"—"},g=d=>{const b=d||{},S=Yu[b.ostate]||m[b.wlevel]||Zu[b.level]||"var(--muted)",x=_n(b.note),F=["bad","warn","note"].includes(b.level),w=le(x)+p("fus.tip_state",{s:en(b.ostate||"?")});if(!F)return`<td class="small" title="${w}" style="border-left:3px solid ${S};color:var(--muted)">${f(b)}</td>`;const D=x.split(/[::]/),U=(D.length>1?D.slice(1).join(":"):x).trim(),q=/^[ ]*(评估报告|两口径差异|⚠|ssessment)/.test(U)||U.length>16?"":U,ot=q?ts(q):b.ostate&&b.ostate!=="不可判"?"":f(b),kt=b.wlevel&&b.wlevel!=="—"&&b.wlevel!=="正常"&&b.ostate?Qu(en(b.ostate),sn(b.wlevel),S):"";return`<td class="small" title="${w}${p("fus.tip_tier",{e:sn(b.wlevel||"?")})}" style="border-left:3px solid ${S};overflow:hidden"><div><div style="color:${S};font-weight:${["bad","warn"].includes(b.level)?600:400}">${ot}</div>${kt}</div>${tf(b.hist,b.level==="bad"?"var(--critical)":b.level==="warn"?"var(--warning)":"var(--muted)")}</td>`};return i.forEach(d=>{const b=d.报警||{n:0,fam:[]},S=d.工单||{n:0,acts:[]},x=b.rank&&b.rank<=5?"var(--warning)":"var(--line)",F=b.burst,w=le((b.items||[]).map(D=>`${D.code} ${_n(D.text)} — ${D.n} (${D.first}~${D.last})`).join(`
  20. `))+(F?`
  21. `+le(p("fus.burst_tip",{c:F.code,p:(F.share*100).toFixed(0),m:F.med_s})):"");s+=`<tr><td><a href="/turbine/${d.turbine}"><b>${oe(d.turbine)}</b></a></td>${g(d.振动)}${g(d.温度)}${g(d.润滑)}${g(d.油液)}
  22. <td title="${w}" style="border-left:3px solid ${F?"var(--unknown)":x}"><b class="small num" style="color:${b.rank&&b.rank<=10?"var(--ink)":"var(--muted)"}">${p("fus.alarm_n",{n:b.n})}</b>${b.rank?`<span class="small muted">${p("fus.alarm_rank",{r:b.rank,t:b.tot})}</span>`:""}${F?`<div class="small" style="color:var(--unknown)">${p("fus.burst",{p:(F.share*100).toFixed(0),c:F.code})}</div>`:""}${b.rank&&b.rank<=10||F?sf(b.fam,b.n,o):""}</td>
  23. <td title="${le((S.items||[]).map(D=>`${D.date} ${nn(D.name)} → ${nn(D.act)}${D.part?" "+nn(D.part):""}`).join(`
  24. `)||p("fus.wo_none"))}" style="min-width:110px">${S.n?`<b class="small">${p("fus.wo_n",{n:S.n})}</b>${S.last?`<span class="small muted"> · ${le(S.last)}</span>`:""}<div style="height:7px;border-radius:3px;background:var(--muted);opacity:.5;margin-top:4px;width:${Math.max(6,Math.round(S.n/c*90))}px"></div><div class="small muted" style="margin-top:3px">${(S.acts||[]).slice(0,2).map(D=>ts(D.k)+"×"+D.n).join(" · ")}</div>`:'<span class="small muted">—</span>'}</td></tr>`}),s+`</table></div><p class="small muted" style="margin-top:8px">${p("fus.matrix_foot")}</p></div>`}const lf=["matrix","loop","units","events","cms"],rf={class:"eyebrow"},of={style:{display:"flex",gap:"8px","margin-bottom":"14px","flex-wrap":"wrap"}},af=["data-fsub","onClick"],cf=["innerHTML"],uf=fe({__name:"Vibration",props:{d:{},sub:{}},emits:["sub"],setup(t,{emit:e}){const s=t,n=e,l=R(()=>s.sub||"matrix"),r=R(()=>s.d?.fus),i=R(()=>{const o=r.value;return!o||o.err?`<section><div class="panel"><p>${p("fus.unavailable",{e:String(o&&o.err||"")})}</p></div></section>`:l.value==="matrix"?nf(o):`<div class="panel mb"><p class="small muted">子视图「${p("fus.sub."+l.value)}」尚未迁移到 Vue(迁移中)。</p></div>`});return(o,c)=>(C(),E("section",null,[a("div",rf,_(v(p)("fus.eyebrow")),1),a("div",of,[(C(!0),E(K,null,it(v(lf),m=>(C(),E("button",{key:m,class:wt(["pill",{on:m===l.value}]),"data-fsub":m,onClick:f=>n("sub",m)},_(v(p)("fus.sub."+m)),11,af))),128))]),a("div",{innerHTML:i.value},null,8,cf)]))}}),ff={class:"kpis"},df=["title"],pf=["innerHTML"],hf={key:1},mf={key:0},_f={class:"sechead"},gf={class:"meta"},vf={class:"meta"},bf={key:0,class:"card mb",style:{"margin-bottom":"10px"}},yf={class:"small",style:{color:"var(--warning)"}},wf={class:"small muted"},xf={class:"cards"},kf=["id"],$f={class:"head"},Sf=["href"],Mf={class:"sys"},Tf={class:"evidence-detail"},Cf={class:"why"},Ef={class:"evid"},Af={key:1,class:"rv"},Of={key:0,class:"caveat"},Pf={class:"sechead"},Ff={class:"meta"},Df={class:"legend"},If={class:"cells"},Rf=["data-u","title"],qf={key:1,class:"quiet",style:{padding:"10px"}},Nf={class:"nums"},Lf={class:"quiet"},Hf={class:"sechead"},jf={class:"meta"},Bf={class:"systems"},Wf={class:"t"},Vf=["href"],Kf={class:"bar"},Uf={class:"cnt"},Gf=fe({__name:"Overview",props:{d:{}},setup(t){const e=t,s=R(()=>e.d?.fus||{}),n=R(()=>e.d?.m8?.mtbf||{}),l=R(()=>e.d?.control||{}),r=R(()=>{const x={};for(const F of l.value.states||[])x[F.k]=F.loss;return x}),i=R(()=>{const x=l.value,F=p("kpi.loss",{win:Ce(e.d?.win)})+(r.value["停机(调度令)"]!=null?` · ${p("kpi.loss_dispatch",{n:st(r.value["停机(调度令)"])})}`:"");return[{v:st(x.avail,1),u:"%",l:p("kpi.avail",{win:Ce(e.d?.win)}),k:x.avail>=95?"ok":"warn",ti:""},{v:st(n.value.停机总时长h),u:"h",l:p("kpi.downtime",{n:st(n.value.停机事件数)}),k:"warn",ti:""},{v:st(n.value.MTBF_h),u:"h",l:p("kpi.mtbo"),k:"",ti:""},{v:st(r.value.停机),u:"MWh",l:F,k:"",ti:""},{v:st(r.value["限电·绑定"]),u:"MWh",l:p("kpi.curtail"),k:"",ti:""},{vRaw:`${st(e.d?.kpi?.报警台)} <small>/ ${st(e.d?.kpi?.全场)}</small>`,u:"",l:p("kpi.alarm_units"),k:e.d?.kpi?.报警台?"warn":"ok",ti:p("kpi.alarm_units.hint"),vHtml:!0}]}),o=R(()=>{const x={};for(const F of e.d?.watch||[])x[F.t]=F.why;return x}),c=R(()=>((s.value.链盘||{}).rows||[]).filter(x=>x.lvl==="bad"||x.lvl==="warn"));function m(x){const F=(o.value[x.t]||"").trim();if(F)return F;const w=hl[x.stuck]||String(x.stuck||"").toLowerCase(),D=p(w==="evidence"?"step.site_records":"step."+(w||"evidence"));return p("ov.basis_fusion",{part:x.part||"—",done:x.done==null?"—":x.done,n:(x.steps||[]).length||"—",stuck:x.stuck?D:p("ov.all_steps_done"),srcs:(x.srcs||[]).join(" / ")||p("ov.no_srcs")})}function f(x){if(!x.stuck)return"";const F=hl[x.stuck]||String(x.stuck||"").toLowerCase(),w=p(F==="evidence"?"step.site_records":"step."+(F||"evidence"));return p("step.stuck_at",{step:w})}const g=[["危险","critical"],["报警","warning"],["不可判","unknown"],["良好","good"],["优秀","excellent"]],d=R(()=>{const x=e.d?.sysdist||{};return Fn.map(F=>{const w=x[F]||{},D=Object.values(w).reduce((U,q)=>U+q,0)||1;return{name:Te(F),slug:Ar(F),dist:w,n:D,seg:g.filter(([U])=>w[U]).map(([U,q])=>({k:U,v:q}))}})}),b=R(()=>s.value.矩阵||[]),S=R(()=>new Set(c.value.map(x=>x.t)));return(x,F)=>(C(),E(K,null,[a("section",null,[a("div",ff,[(C(!0),E(K,null,it(i.value,(w,D)=>(C(),E("div",{key:D,class:wt(["kpi",w.k]),title:w.ti||void 0},[w.vHtml?(C(),E("b",{key:0,innerHTML:w.vRaw},null,8,pf)):(C(),E("b",hf,[z(_(w.v),1),w.u?(C(),E("small",mf,_(w.u),1)):ct("",!0)])),a("span",null,_(w.l),1)],10,df))),128))])]),a("section",null,[a("div",_f,[a("h2",null,_(v(p)("ov.attention")),1),a("span",gf,_(v(p)("ov.attention_n",{n:c.value.length})),1),a("span",vf,_(v(p)("ov.ranked_by")),1)]),s.value.gap?(C(),E("div",bf,[a("p",yf,_(s.value.gap),1),a("p",wf,_(v(p)("ov.fus_gap_hint")),1)])):ct("",!0),a("div",xf,[(C(!0),E(K,null,it(c.value,w=>(C(),E("div",{key:w.t,class:"card",id:`u-${w.t}`,style:dt(`--sev:var(--${v(gl)[v(Ts)(w.ostate)||(w.lvl==="bad"?"bad":"warn")]})`)},[a("div",$f,[a("a",{class:"unit",href:`/turbine/${w.t}`},_(v(oe)(w.t)),9,Sf),a("span",Mf,_(w.part||""),1),a("span",{class:wt(["chip",v(Ts)(w.ostate)||(w.lvl==="bad"?"bad":"warn")])},_(v(ml)(w.ostate||(w.lvl==="bad"?"危险":"报警"))),3)]),a("details",Tf,[a("summary",null,_(v(p)("ov.evidence")),1),a("div",Cf,_(m(w)),1)]),a("div",Ef,[w.estate?(C(),E("span",{key:0,class:wt(["tier",w.estate])},_(v(ml)(w.estate)),3)):ct("",!0),w.srcs&&w.srcs.length?(C(),E("span",Af,_(w.srcs.length)+" sources",1)):ct("",!0)]),f(w)||w.next?(C(),E("div",Of,[a("b",null,_(v(p)("ov.caveat")),1),z(_(f(w))+_(f(w)&&w.next?" — ":"")+_(w.next||""),1)])):ct("",!0)],12,kf))),128))])]),a("section",null,[a("div",Pf,[a("h2",null,_(v(p)("ov.strip")),1),a("span",Ff,_(v(p)("ov.strip_hint")),1),a("div",Df,[(C(),E(K,null,it(["bad","warn","unk","ok","ex"],w=>a("span",{key:w},[a("i",{style:dt(`background:var(--${v(gl)[w]})`)},null,4),z(_(v(p)(v(mn)(w))),1)])),64))])]),a("div",{class:"strip",style:dt(`--n:${b.value.length||38}`)},[a("div",If,[b.value.length?(C(!0),E(K,{key:0},it(b.value,w=>(C(),E("div",{key:w.turbine,class:wt(["cell",[v(_l)(w),S.value.has(w.turbine)?"hot":""]]),"data-u":w.turbine,title:`${v(oe)(w.turbine)} ${v(p)(v(mn)(v(_l)(w)))}`},null,10,Rf))),128)):(C(),E("div",qf,_(s.value.gap||v(p)("ov.fus_gap_hint")),1))]),a("div",Nf,[(C(!0),E(K,null,it(b.value,w=>(C(),E("span",{key:`n-${w.turbine}`,class:wt(S.value.has(w.turbine)?"hot":"")},_(v(oe)(w.turbine).replace("#","")),3))),128))]),a("div",Lf,_(c.value.length?v(p)("ov.quiet",{n:Math.max(0,(b.value.length||38)-c.value.length)}):v(p)("ov.quiet_all",{n:b.value.length||38})),1)],4)]),a("section",null,[a("div",Hf,[a("h2",null,_(v(p)("ov.systems")),1),a("span",jf,_(v(p)("ov.systems_hint")),1)]),a("div",Bf,[(C(!0),E(K,null,it(d.value,w=>(C(),E("div",{key:w.name,class:"sysc"},[a("div",Wf,[a("b",null,_(w.name),1),a("a",{href:`#tab=component&sys=${encodeURIComponent(w.slug)}`},_(v(p)("ui.open")),9,Vf)]),a("div",Kf,[(C(!0),E(K,null,it(w.seg,D=>(C(),E("i",{key:D.k,style:dt(`width:${(w.dist[D.k]/w.n*100).toFixed(1)}%;background:var(--${D.v})`)},null,4))),128))]),a("div",Uf,[(C(!0),E(K,null,it(w.seg,D=>(C(),E("span",{key:`c-${D.k}`},[a("i",{style:dt(`background:var(--${D.v})`)},null,4),z(_(w.dist[D.k]),1)]))),128))])]))),128))])])],64))}}),zf={class:"wb-tabs"},Jf=["onClick"],Yf={key:0,class:"todo"},Zf={class:"page-head"},Xf={class:"window-badge"},Qf={key:5,class:"card"},td={class:"hint"},ed=fe({__name:"Workbench",props:{d:{},tab:{},sys:{},sub:{}},emits:["tab","sub"],setup(t,{emit:e}){const s=t,n=e,l=R(()=>!tn.includes(s.tab));return(r,i)=>(C(),E(K,null,[a("nav",zf,[(C(!0),E(K,null,it(v(aa),o=>(C(),E("button",{key:o,class:wt({on:o===t.tab}),onClick:c=>n("tab",o)},[z(_(v(p)("tab."+o)),1),v(tn).includes(o)?ct("",!0):(C(),E("sup",Yf,"迁移中"))],10,Jf))),128))]),a("div",Zf,[a("h1",null,_(v(p)("tab."+t.tab)),1),a("span",Xf,_(v(p)("win.label"))+" · "+_(v(Ce)(t.d?.win)),1)]),t.tab==="overview"?(C(),me(Gf,{key:0,d:t.d},null,8,["d"])):t.tab==="energy"?(C(),me(Qc,{key:1,d:t.d},null,8,["d"])):t.tab==="component"?(C(),me(Sc,{key:2,d:t.d,sys:t.sys},null,8,["d","sys"])):t.tab==="fault"?(C(),me(Vu,{key:3,d:t.d},null,8,["d"])):t.tab==="vibration"?(C(),me(uf,{key:4,d:t.d,sub:t.sub,onSub:i[0]||(i[0]=o=>n("sub",o))},null,8,["d","sub"])):l.value?(C(),E("section",Qf,[a("h2",null,[z(_(v(p)("tab."+t.tab))+" ",1),i[1]||(i[1]=a("small",null,"(本页签尚未迁移到 Vue)",-1))]),a("p",td,[i[2]||(i[2]=z(" 迁移纪律:页签逐个搬,每搬一个就用 ",-1)),i[3]||(i[3]=a("code",null,"tools/render_parity.mjs",-1)),i[4]||(i[4]=z(" 与重构前页面 (现网 ",-1)),i[5]||(i[5]=a("code",null,"/detail/v2",-1)),z(")对拍文案/数值/类名序列,**通过后**才删对应的 Python 前端源码。 当前已迁移:"+_(v(tn).join("、"))+"。 ",1)])])):ct("",!0)],64))}}),sd=Or(ed,[["__scopeId","data-v-3d118848"]]),nd={class:"top"},ld={key:0,class:"hint",style:{padding:"0 18px"}},rd={key:1,class:"hint",style:{padding:"0 18px",color:"var(--bad)"}},id={key:2,class:"card"},od=fe({__name:"App",setup(t){const e=Nt("workbench"),s=Nt("overview"),n=Nt(null),l=Nt(null),r=Nt(""),i=Nt(!1),o=Nt("");async function c(){i.value=!0,o.value="";const m=r.value?`?win=${encodeURIComponent(r.value)}`:"",f=await Cr("fleet",{method:"GET"});if(m)try{const g=await fetch("/api/fleet"+m);l.value=await g.json()}catch(g){o.value=g instanceof Error?g.message:String(g)}else f.ok?(l.value=f.data,l.value?.win&&(r.value=l.value.win)):o.value=f.error||`HTTP ${f.status}`;i.value=!1}return Ye(r,m=>{m&&m!==l.value?.win&&c()}),Ns(c),(m,f)=>(C(),E(K,null,[a("header",nd,[f[5]||(f[5]=a("div",{class:"brand"},"观澜 · 风电数据分析与决策支持",-1)),a("nav",null,[a("button",{class:wt({on:e.value==="workbench"}),onClick:f[0]||(f[0]=g=>e.value="workbench")},"工作台",2),a("button",{class:wt({on:e.value==="smoke"}),onClick:f[1]||(f[1]=g=>e.value="smoke")},"契约自检",2),a("button",{class:wt({on:e.value==="about"}),onClick:f[2]||(f[2]=g=>e.value="about")},"关于本前端",2)])]),a("main",null,[e.value==="workbench"?(C(),E(K,{key:0},[i.value?(C(),E("p",ld,"取数中(/api/fleet)…")):o.value?(C(),E("p",rd,"取数失败:"+_(o.value),1)):l.value?(C(),me(sd,{key:2,d:l.value,tab:s.value,sub:n.value,onTab:f[3]||(f[3]=g=>s.value=g),onSub:f[4]||(f[4]=g=>n.value=g)},null,8,["d","tab","sub"])):ct("",!0)],64)):e.value==="smoke"?(C(),me(ia,{key:1})):(C(),E("section",id,[...f[6]||(f[6]=[go("<h2>关于本前端</h2><ul><li>技术栈:<b>Vue 3 + Vite + TypeScript + Node.js</b>(用户令 2026-09-29)</li><li>与后端交互:只走网关一个源站,路径与形状以 <code>app_backEnd/app_backEnd_guanlan/contract/http_api_v1.json</code> 冻契约为准</li><li>数据来源:与重构前 <code>/detail/v2</code> 同一个接口 <code>/api/fleet?win=</code></li><li>迁移纪律:页签逐个搬,与重构前页面对拍通过后才删对应 Python 源码</li></ul>",2)])]))])],64))}});Qo(od).mount("#app");