Files
2026-07-17 17:45:56 +08:00

14 lines
143 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,ee=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),te=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ne=/-\w/g,T=te(e=>e.replace(ne,e=>e.slice(1).toUpperCase())),E=/\B([A-Z])/g,D=te(e=>e.replace(E,`-$1`).toLowerCase()),re=te(e=>e.charAt(0).toUpperCase()+e.slice(1)),O=te(e=>e?`on${re(e)}`:``),k=(e,t)=>!Object.is(e,t),ie=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},A=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},j=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ae,oe=()=>ae||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function se(e){if(d(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=g(r)?de(r):se(r);if(i)for(let e in i)t[e]=i[e]}return t}else if(g(e)||v(e))return e}var ce=/;(?![^(]*\))/g,le=/:([^]+)/,ue=/\/\*[^]*?\*\//g;function de(e){let t={};return e.replace(ue,``).split(ce).forEach(e=>{if(e){let n=e.split(le);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function M(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;n<e.length;n++){let r=M(e[n]);r&&(t+=r+` `)}else if(v(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var fe=`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`,N=e(fe);fe+``;function pe(e){return!!e||e===``}function P(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=F(e[r],t[r]);return n}function F(e,t){if(e===t)return!0;let n=m(e),r=m(t);if(n||r)return n&&r?e.getTime()===t.getTime():!1;if(n=_(e),r=_(t),n||r)return e===t;if(n=d(e),r=d(t),n||r)return n&&r?P(e,t):!1;if(n=v(e),r=v(t),n||r){if(!n||!r||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let r=e.hasOwnProperty(n),i=t.hasOwnProperty(n);if(r&&!i||!r&&i||!F(e[n],t[n]))return!1}}return String(e)===String(t)}function I(e,t){return e.findIndex(e=>F(e,t))}var L=e=>!!(e&&e.__v_isRef===!0),R=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?L(e)?R(e.value):JSON.stringify(e,me,2):String(e),me=(e,t)=>L(t)?me(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[z(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>z(e))}:_(t)?z(t):v(t)&&!d(t)&&!C(t)?String(t):t,z=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e,B,he=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&B&&(B.active?(this.parent=B,this.index=(B.scopes||=[]).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=B;try{return B=this,e()}finally{B=t}}}on(){++this._on===1&&(this.prevScope=B,B=this)}off(){if(this._on>0&&--this._on===0){if(B===this)B=this.prevScope;else{let e=B;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function ge(){return B}var V,_e=new WeakSet,ve=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,B&&(B.active?B.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,_e.has(this)&&(_e.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Se(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Fe(this),Te(this);let e=V,t=je;V=this,je=!0;try{return this.fn()}finally{Ee(this),V=e,je=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)ke(e);this.deps=this.depsTail=void 0,Fe(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?_e.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){De(this)&&this.run()}get dirty(){return De(this)}},ye=0,be,xe;function Se(e,t=!1){if(e.flags|=8,t){e.next=xe,xe=e;return}e.next=be,be=e}function Ce(){ye++}function we(){if(--ye>0)return;if(xe){let e=xe;for(xe=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;be;){let t=be;for(be=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Te(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ee(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),ke(r),Ae(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function De(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Oe(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Oe(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ie)||(e.globalVersion=Ie,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!De(e))))return;e.flags|=2;let t=e.dep,n=V,r=je;V=e,je=!0;try{Te(e);let n=e.fn(e._value);(t.version===0||k(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{V=n,je=r,Ee(e),e.flags&=-3}}function ke(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ke(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ae(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var je=!0,Me=[];function Ne(){Me.push(je),je=!1}function Pe(){let e=Me.pop();je=e===void 0?!0:e}function Fe(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=V;V=void 0;try{t()}finally{V=e}}}var Ie=0,Le=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Re=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!V||!je||V===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==V)t=this.activeLink=new Le(V,this),V.deps?(t.prevDep=V.depsTail,V.depsTail.nextDep=t,V.depsTail=t):V.deps=V.depsTail=t,ze(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=V.depsTail,t.nextDep=void 0,V.depsTail.nextDep=t,V.depsTail=t,V.deps===t&&(V.deps=e)}return t}trigger(e){this.version++,Ie++,this.notify(e)}notify(e){Ce();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{we()}}};function ze(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)ze(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Be=new WeakMap,Ve=Symbol(``),He=Symbol(``),Ue=Symbol(``);function H(e,t,n){if(je&&V){let t=Be.get(e);t||Be.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Re),r.map=t,r.key=n),r.track()}}function We(e,t,n,r,i,a){let o=Be.get(e);if(!o){Ie++;return}let s=e=>{e&&e.trigger()};if(Ce(),t===`clear`)o.forEach(s);else{let i=d(e),a=i&&w(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===Ue||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(Ue)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Ve)),f(e)&&s(o.get(He)));break;case`delete`:i||(s(o.get(Ve)),f(e)&&s(o.get(He)));break;case`set`:f(e)&&s(o.get(Ve));break}}we()}function Ge(e){let t=U(e);return t===e?t:(H(t,`iterate`,Ue),At(e)?t:t.map(Nt))}function Ke(e){return H(e=U(e),`iterate`,Ue),e}function qe(e,t){return kt(e)?Pt(Ot(e)?Nt(t):t):Nt(t)}var Je={__proto__:null,[Symbol.iterator](){return Ye(this,Symbol.iterator,e=>qe(this,e))},concat(...e){return Ge(this).concat(...e.map(e=>d(e)?Ge(e):e))},entries(){return Ye(this,`entries`,e=>(e[1]=qe(this,e[1]),e))},every(e,t){return Ze(this,`every`,e,t,void 0,arguments)},filter(e,t){return Ze(this,`filter`,e,t,e=>e.map(e=>qe(this,e)),arguments)},find(e,t){return Ze(this,`find`,e,t,e=>qe(this,e),arguments)},findIndex(e,t){return Ze(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return Ze(this,`findLast`,e,t,e=>qe(this,e),arguments)},findLastIndex(e,t){return Ze(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return Ze(this,`forEach`,e,t,void 0,arguments)},includes(...e){return $e(this,`includes`,e)},indexOf(...e){return $e(this,`indexOf`,e)},join(e){return Ge(this).join(e)},lastIndexOf(...e){return $e(this,`lastIndexOf`,e)},map(e,t){return Ze(this,`map`,e,t,void 0,arguments)},pop(){return et(this,`pop`)},push(...e){return et(this,`push`,e)},reduce(e,...t){return Qe(this,`reduce`,e,t)},reduceRight(e,...t){return Qe(this,`reduceRight`,e,t)},shift(){return et(this,`shift`)},some(e,t){return Ze(this,`some`,e,t,void 0,arguments)},splice(...e){return et(this,`splice`,e)},toReversed(){return Ge(this).toReversed()},toSorted(e){return Ge(this).toSorted(e)},toSpliced(...e){return Ge(this).toSpliced(...e)},unshift(...e){return et(this,`unshift`,e)},values(){return Ye(this,`values`,e=>qe(this,e))}};function Ye(e,t,n){let r=Ke(e),i=r[t]();return r!==e&&!At(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var Xe=Array.prototype;function Ze(e,t,n,r,i,a){let o=Ke(e),s=o!==e&&!At(e),c=o[t];if(c!==Xe[t]){let t=c.apply(e,a);return s?Nt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,qe(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function Qe(e,t,n,r){let i=Ke(e),a=i!==e&&!At(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=qe(e,t)),n.call(this,t,qe(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?qe(e,c):c}function $e(e,t,n){let r=U(e);H(r,`iterate`,Ue);let i=r[t](...n);return(i===-1||i===!1)&&jt(n[0])?(n[0]=U(n[0]),r[t](...n)):i}function et(e,t,n=[]){Ne(),Ce();let r=U(e)[t].apply(e,n);return we(),Pe(),r}var tt=e(`__proto__,__v_isRef,__isVue`),nt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function rt(e){_(e)||(e=String(e));let t=U(this);return H(t,`has`,e),t.hasOwnProperty(e)}var it=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?St:xt:i?bt:yt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=Je[t]))return e;if(t===`hasOwnProperty`)return rt}let o=Reflect.get(e,t,Ft(e)?e:n);if((_(t)?nt.has(t):tt(t))||(r||H(e,`get`,t),i))return o;if(Ft(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Et(e):e}return v(o)?r?Et(o):wt(o):o}},at=class extends it{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=d(e)&&w(t);if(!this._isShallow){let e=kt(i);if(!At(n)&&!kt(n)&&(i=U(i),n=U(n)),!a&&Ft(i)&&!Ft(n))return e||(i.value=n),!0}let o=a?Number(t)<e.length:u(e,t),s=Reflect.set(e,t,n,Ft(e)?e:r);return e===U(r)&&(o?k(n,i)&&We(e,`set`,t,n,i):We(e,`add`,t,n)),s}deleteProperty(e,t){let n=u(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&We(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!_(t)||!nt.has(t))&&H(e,`has`,t),n}ownKeys(e){return H(e,`iterate`,d(e)?`length`:Ve),Reflect.ownKeys(e)}},ot=class extends it{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},st=new at,ct=new ot,lt=new at(!0),ut=e=>e,dt=e=>Reflect.getPrototypeOf(e);function ft(e,t,n){return function(...r){let i=this.__v_raw,a=U(i),o=f(a),c=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?ut:t?Pt:Nt;return!t&&H(a,`iterate`,l?He:Ve),s(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function pt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function mt(e,t){let n={get(n){let r=this.__v_raw,i=U(r),a=U(n);e||(k(n,a)&&H(i,`get`,n),H(i,`get`,a));let{has:o}=dt(i),s=t?ut:e?Pt:Nt;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&H(U(t),`iterate`,Ve),t.size},has(t){let n=this.__v_raw,r=U(n),i=U(t);return e||(k(t,i)&&H(r,`has`,t),H(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=U(a),s=t?ut:e?Pt:Nt;return!e&&H(o,`iterate`,Ve),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:pt(`add`),set:pt(`set`),delete:pt(`delete`),clear:pt(`clear`)}:{add(e){let n=U(this),r=dt(n),i=U(e),a=!t&&!At(e)&&!kt(e)?i:e;return r.has.call(n,a)||k(e,a)&&r.has.call(n,e)||k(i,a)&&r.has.call(n,i)||(n.add(a),We(n,`add`,a,a)),this},set(e,n){!t&&!At(n)&&!kt(n)&&(n=U(n));let r=U(this),{has:i,get:a}=dt(r),o=i.call(r,e);o||=(e=U(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?k(n,s)&&We(r,`set`,e,n,s):We(r,`add`,e,n),this},delete(e){let t=U(this),{has:n,get:r}=dt(t),i=n.call(t,e);i||=(e=U(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&We(t,`delete`,e,void 0,a),o},clear(){let e=U(this),t=e.size!==0,n=e.clear();return t&&We(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=ft(r,e,t)}),n}function ht(e,t){let n=mt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(u(n,r)&&r in t?n:t,r,i)}var gt={get:ht(!1,!1)},_t={get:ht(!1,!0)},vt={get:ht(!0,!1)},yt=new WeakMap,bt=new WeakMap,xt=new WeakMap,St=new WeakMap;function Ct(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function wt(e){return kt(e)?e:Dt(e,!1,st,gt,yt)}function Tt(e){return Dt(e,!1,lt,_t,bt)}function Et(e){return Dt(e,!0,ct,vt,xt)}function Dt(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=Ct(S(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Ot(e){return kt(e)?Ot(e.__v_raw):!!(e&&e.__v_isReactive)}function kt(e){return!!(e&&e.__v_isReadonly)}function At(e){return!!(e&&e.__v_isShallow)}function jt(e){return e?!!e.__v_raw:!1}function U(e){let t=e&&e.__v_raw;return t?U(t):e}function Mt(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&A(e,`__v_skip`,!0),e}var Nt=e=>v(e)?wt(e):e,Pt=e=>v(e)?Et(e):e;function Ft(e){return e?e.__v_isRef===!0:!1}function W(e){return It(e,!1)}function It(e,t){return Ft(e)?e:new Lt(e,t)}var Lt=class{constructor(e,t){this.dep=new Re,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:U(e),this._value=t?e:Nt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||At(e)||kt(e);e=n?e:U(e),k(e,t)&&(this._rawValue=e,this._value=n?e:Nt(e),this.dep.trigger())}};function Rt(e){return Ft(e)?e.value:e}var zt={get:(e,t,n)=>t===`__v_raw`?e:Rt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return Ft(i)&&!Ft(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Bt(e){return Ot(e)?e:new Proxy(e,zt)}var Vt=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Re(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ie-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&V!==this)return Se(this,!0),!0}get value(){let e=this.dep.track();return Oe(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function Ht(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new Vt(r,i,n)}var Ut={},Wt=new WeakMap,Gt=void 0;function Kt(e,t=!1,n=Gt){if(n){let t=Wt.get(n);t||Wt.set(n,t=[]),t.push(e)}}function qt(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:At(e)||o===!1||o===0?Jt(e,1):Jt(e),m,g,_,v,y=!1,b=!1;if(Ft(e)?(g=()=>e.value,y=At(e)):Ot(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Ot(e)||At(e)),g=()=>e.map(e=>{if(Ft(e))return e.value;if(Ot(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){Ne();try{_()}finally{Pe()}}let t=Gt;Gt=m;try{return f?f(e,3,[v]):e(v)}finally{Gt=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>Jt(e(),t)}let x=ge(),S=()=>{m.stop(),x&&x.active&&c(x.effects,m)};if(s&&n){let e=n;n=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(Ut):Ut,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(n){let t=m.run();if(e||o||y||(b?t.some((e,t)=>k(e,C[t])):k(t,C))){_&&_();let e=Gt;Gt=m;try{let e=[t,C===Ut?void 0:b&&C[0]===Ut?[]:C,v];C=t,f?f(n,3,e):n(...e)}finally{Gt=e}}}else m.run()};return u&&u(w),m=new ve(g),m.scheduler=l?()=>l(w,!1):w,v=e=>Kt(e,!1,m),_=m.onStop=()=>{let e=Wt.get(m);if(e){if(f)f(e,4);else for(let t of e)t();Wt.delete(m)}},n?a?w(!0):C=m.run():l?l(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function Jt(e,t=1/0,n){if(t<=0||!v(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ft(e))Jt(e.value,t,n);else if(d(e))for(let r=0;r<e.length;r++)Jt(e[r],t,n);else if(p(e)||f(e))e.forEach(e=>{Jt(e,t,n)});else if(C(e)){for(let r in e)Jt(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Jt(e[r],t,n)}return e}function Yt(e,t,n,r){try{return r?e(...r):e()}catch(e){Zt(e,t,n)}}function Xt(e,t,n,r){if(h(e)){let i=Yt(e,t,n,r);return i&&y(i)&&i.catch(e=>{Zt(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a<e.length;a++)i.push(Xt(e[a],t,n,r));return i}}function Zt(e,n,r,i=!0){let a=n?n.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:s}=n&&n.appContext.config||t;if(n){let t=n.parent,i=n.proxy,a=`https://vuejs.org/error-reference/#runtime-${r}`;for(;t;){let n=t.ec;if(n){for(let t=0;t<n.length;t++)if(n[t](e,i,a)===!1)return}t=t.parent}if(o){Ne(),Yt(o,null,10,[e,i,a]),Pe();return}}Qt(e,r,a,i,s)}function Qt(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}var $t=[],en=-1,tn=[],nn=null,rn=0,an=Promise.resolve(),on=null;function sn(e){let t=on||an;return e?t.then(this?e.bind(this):e):t}function cn(e){let t=en+1,n=$t.length;for(;t<n;){let r=t+n>>>1,i=$t[r],a=mn(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function ln(e){if(!(e.flags&1)){let t=mn(e),n=$t[$t.length-1];!n||!(e.flags&2)&&t>=mn(n)?$t.push(e):$t.splice(cn(t),0,e),e.flags|=1,un()}}function un(){on||=an.then(hn)}function dn(e){d(e)?tn.push(...e):nn&&e.id===-1?nn.splice(rn+1,0,e):e.flags&1||(tn.push(e),e.flags|=1),un()}function fn(e,t,n=en+1){for(;n<$t.length;n++){let t=$t[n];if(t&&t.flags&2){if(e&&t.id!==e.uid)continue;$t.splice(n,1),n--,t.flags&4&&(t.flags&=-2),t(),t.flags&4||(t.flags&=-2)}}}function pn(e){if(tn.length){let e=[...new Set(tn)].sort((e,t)=>mn(e)-mn(t));if(tn.length=0,nn){nn.push(...e);return}for(nn=e,rn=0;rn<nn.length;rn++){let e=nn[rn];e.flags&4&&(e.flags&=-2),e.flags&8||e(),e.flags&=-2}nn=null,rn=0}}var mn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function hn(e){try{for(en=0;en<$t.length;en++){let e=$t[en];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Yt(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;en<$t.length;en++){let e=$t[en];e&&(e.flags&=-2)}en=-1,$t.length=0,pn(e),on=null,($t.length||tn.length)&&hn(e)}}var gn=null,_n=null;function vn(e){let t=gn;return gn=e,_n=e&&e.type.__scopeId||null,t}function yn(e,t=gn,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&wi(-1);let i=vn(t),a;try{a=e(...n)}finally{vn(i),r._d&&wi(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function G(e,n){if(gn===null)return e;let r=oa(gn),i=e.dirs||=[];for(let e=0;e<n.length;e++){let[a,o,s,c=t]=n[e];a&&(h(a)&&(a={mounted:a,updated:a}),a.deep&&Jt(o),i.push({dir:a,instance:r,value:o,oldValue:void 0,arg:s,modifiers:c}))}return e}function bn(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(Ne(),Xt(c,n,8,[e.el,s,e,t]),Pe())}}function xn(e,t){if(Wi){let n=Wi.provides,r=Wi.parent&&Wi.parent.provides;r===n&&(n=Wi.provides=Object.create(r)),n[e]=t}}function Sn(e,t,n=!1){let r=Gi();if(r||Dr){let i=Dr?Dr._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&h(t)?t.call(r&&r.proxy):t}}var Cn=Symbol.for(`v-scx`),wn=()=>Sn(Cn);function Tn(e,t,n){return En(e,t,n)}function En(e,n,i=t){let{immediate:a,deep:o,flush:c,once:l}=i,u=s({},i),d=n&&a||!n&&c!==`post`,f;if(Zi){if(c===`sync`){let e=wn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=Wi;u.call=(e,t,n)=>Xt(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{ii(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():ln(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=qt(e,n,u);return Zi&&(f?f.push(h):d&&h()),h}function Dn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?On(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=Ji(this),s=En(i,a.bind(r),n);return o(),s}function On(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var kn=Symbol(`_vte`),An=e=>e.__isTeleport,jn=Symbol(`_leaveCb`);function Mn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Mn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Nn(e,t){return h(e)?s({name:e.name},t,{setup:e}):e}function Pn(e){e.ids=[e.ids[0]+ e.ids[2]+++`-`,0,0]}function Fn(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var In=new WeakMap;function Ln(e,n,r,a,o=!1){if(d(e)){e.forEach((e,t)=>Ln(e,n&&(d(n)?n[t]:n),r,a,o));return}if(zn(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Ln(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?oa(a.component):a.el,l=o?null:s,{i:f,r:p}=e,m=n&&n.r,_=f.refs===t?f.refs={}:f.refs,v=f.setupState,y=U(v),b=v===t?i:e=>Fn(_,e)?!1:u(y,e),x=(e,t)=>!(t&&Fn(_,t));if(m!=null&&m!==p){if(Rn(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(Ft(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))Yt(p,f,12,[l,_]);else{let t=g(p),n=Ft(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?v[p]:_[p]:x(p)||!e.k?p.value:_[e.k];if(o)d(n)&&c(n,s);else if(d(n))n.includes(s)||n.push(s);else if(t)_[p]=[s],b(p)&&(v[p]=_[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(_[e.k]=t)}}else t?(_[p]=l,b(p)&&(v[p]=l)):n&&(x(p,e.k)&&(p.value=l),e.k&&(_[e.k]=l))};if(l){let t=()=>{i(),In.delete(e)};t.id=-1,In.set(e,t),ii(t,r)}else Rn(e),i()}}}function Rn(e){let t=In.get(e);t&&(t.flags|=8,In.delete(e))}oe().requestIdleCallback,oe().cancelIdleCallback;var zn=e=>!!e.type.__asyncLoader,Bn=e=>e.type.__isKeepAlive;function Vn(e,t){Un(e,`a`,t)}function Hn(e,t){Un(e,`da`,t)}function Un(e,t,n=Wi){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Gn(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Bn(e.parent.vnode)&&Wn(r,t,n,e),e=e.parent}}function Wn(e,t,n,r){let i=Gn(t,e,r,!0);Qn(()=>{c(r[t],i)},n)}function Gn(e,t,n=Wi,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Ne();let i=Ji(n),a=Xt(t,n,e,r);return i(),Pe(),a};return r?i.unshift(a):i.push(a),a}}var Kn=e=>(t,n=Wi)=>{(!Zi||e===`sp`)&&Gn(e,(...e)=>t(...e),n)},qn=Kn(`bm`),Jn=Kn(`m`),Yn=Kn(`bu`),Xn=Kn(`u`),Zn=Kn(`bum`),Qn=Kn(`um`),$n=Kn(`sp`),er=Kn(`rtg`),tr=Kn(`rtc`);function nr(e,t=Wi){Gn(`ec`,e,t)}var rr=Symbol.for(`v-ndc`);function K(e,t,n,r){let i,a=n&&n[r],o=d(e);if(o||g(e)){let n=o&&Ot(e),r=!1,s=!1;n&&(r=!At(e),s=kt(e),e=Ke(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?Pt(Nt(e[n])):Nt(e[n]):e[n],n,void 0,a&&a[n])}else if(typeof e==`number`){i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,a&&a[n])}else if(v(e))if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r<o;r++){let o=n[r];i[r]=t(e[o],o,r,a&&a[r])}}else i=[];return n&&(n[r]=i),i}var ir=e=>e?Xi(e)?oa(e):ir(e.parent):null,ar=s(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ir(e.parent),$root:e=>ir(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>mr(e),$forceUpdate:e=>e.f||=()=>{ln(e.update)},$nextTick:e=>e.n||=sn.bind(e.proxy),$watch:e=>Dn.bind(e)}),or=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),sr={get({_:e},n){if(n===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(n[0]!==`$`){let e=s[n];if(e!==void 0)switch(e){case 1:return i[n];case 2:return a[n];case 4:return r[n];case 3:return o[n]}else if(or(i,n))return s[n]=1,i[n];else if(a!==t&&u(a,n))return s[n]=2,a[n];else if(u(o,n))return s[n]=3,o[n];else if(r!==t&&u(r,n))return s[n]=4,r[n];else lr&&(s[n]=0)}let d=ar[n],f,p;if(d)return n===`$attrs`&&H(e.attrs,`get`,``),d(e);if((f=c.__cssModules)&&(f=f[n]))return f;if(r!==t&&u(r,n))return s[n]=4,r[n];if(p=l.config.globalProperties,u(p,n))return p[n]},set({_:e},n,r){let{data:i,setupState:a,ctx:o}=e;return or(a,n)?(a[n]=r,!0):i!==t&&u(i,n)?(i[n]=r,!0):u(e.props,n)||n[0]===`$`&&n.slice(1)in e?!1:(o[n]=r,!0)},has({_:{data:e,setupState:n,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==t&&c[0]!==`$`&&u(e,c)||or(n,c)||u(o,c)||u(i,c)||u(ar,c)||u(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?u(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function cr(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var lr=!0;function ur(e){let t=mr(e),n=e.proxy,i=e.ctx;lr=!1,t.beforeCreate&&fr(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:f,beforeMount:p,mounted:m,beforeUpdate:g,updated:_,activated:y,deactivated:b,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:ee,renderTracked:te,renderTriggered:ne,errorCaptured:T,serverPrefetch:E,expose:D,inheritAttrs:re,components:O,directives:k,filters:ie}=t;if(u&&dr(u,i,null),s)for(let e in s){let t=s[e];h(t)&&(i[e]=t.bind(n))}if(a){let t=a.call(n,n);v(t)&&(e.data=wt(t))}if(lr=!0,o)for(let e in o){let t=o[e],a=Q({get:h(t)?t.bind(n,n):h(t.get)?t.get.bind(n,n):r,set:!h(t)&&h(t.set)?t.set.bind(n):r});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)pr(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{xn(t,e[t])})}f&&fr(f,e,`c`);function A(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(A(qn,p),A(Jn,m),A(Yn,g),A(Xn,_),A(Vn,y),A(Hn,b),A(nr,T),A(tr,te),A(er,ne),A(Zn,S),A(Qn,w),A($n,E),d(D))if(D.length){let t=e.exposed||={};D.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};ee&&e.render===r&&(e.render=ee),re!=null&&(e.inheritAttrs=re),O&&(e.components=O),k&&(e.directives=k),E&&Pn(e)}function dr(e,t,n=r){d(e)&&(e=yr(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?Sn(r.from||n,r.default,!0):Sn(r.from||n):Sn(r),Ft(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function fr(e,t,n){Xt(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function pr(e,t,n,r){let i=r.includes(`.`)?On(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&Tn(i,n)}else if(h(e))Tn(i,e.bind(n));else if(v(e))if(d(e))e.forEach(e=>pr(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&Tn(i,r,e)}}function mr(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>hr(c,e,o,!0)),hr(c,t,o)),v(t)&&a.set(t,c),c}function hr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&hr(e,a,n,!0),i&&i.forEach(t=>hr(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=gr[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var gr={data:_r,props:Sr,emits:Sr,methods:xr,computed:xr,beforeCreate:br,created:br,beforeMount:br,mounted:br,beforeUpdate:br,updated:br,beforeDestroy:br,beforeUnmount:br,destroyed:br,unmounted:br,activated:br,deactivated:br,errorCaptured:br,serverPrefetch:br,components:xr,directives:xr,watch:Cr,provide:_r,inject:vr};function _r(e,t){return t?e?function(){return s(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function vr(e,t){return xr(yr(e),yr(t))}function yr(e){if(d(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function br(e,t){return e?[...new Set([].concat(e,t))]:t}function xr(e,t){return e?s(Object.create(null),e,t):t}function Sr(e,t){return e?d(e)&&d(t)?[...new Set([...e,...t])]:s(Object.create(null),cr(e),cr(t??{})):t}function Cr(e,t){if(!e)return t;if(!t)return e;let n=s(Object.create(null),e);for(let r in t)n[r]=br(e[r],t[r]);return n}function wr(){return{app:null,config:{isNativeTag:i,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var Tr=0;function Er(e,t){return function(n,r=null){h(n)||(n=s({},n)),r!=null&&!v(r)&&(r=null);let i=wr(),a=new WeakSet,o=[],c=!1,l=i.app={_uid:Tr++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:ca,get config(){return i.config},set config(e){},use(e,...t){return a.has(e)||(e&&h(e.install)?(a.add(e),e.install(l,...t)):h(e)&&(a.add(e),e(l,...t))),l},mixin(e){return i.mixins.includes(e)||i.mixins.push(e),l},component(e,t){return t?(i.components[e]=t,l):i.components[e]},directive(e,t){return t?(i.directives[e]=t,l):i.directives[e]},mount(a,o,s){if(!c){let u=l._ceVNode||ji(n,r);return u.appContext=i,s===!0?s=`svg`:s===!1&&(s=void 0),o&&t?t(u,a):e(u,a,s),c=!0,l._container=a,a.__vue_app__=l,oa(u.component)}},onUnmount(e){o.push(e)},unmount(){c&&(Xt(o,l._instance,16),e(null,l._container),delete l._container.__vue_app__)},provide(e,t){return i.provides[e]=t,l},runWithContext(e){let t=Dr;Dr=l;try{return e()}finally{Dr=t}}};return l}}var Dr=null,Or=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${D(t)}Modifiers`];function kr(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&Or(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=r.map(j)));let c,l=i[c=O(n)]||i[c=O(T(n))];!l&&o&&(l=i[c=O(D(n))]),l&&Xt(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,Xt(u,e,6,a)}}var Ar=new WeakMap;function jr(e,t,n=!1){let r=n?Ar:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},c=!1;if(!h(e)){let r=e=>{let n=jr(e,t,!0);n&&(c=!0,s(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!c?(v(e)&&r.set(e,null),null):(d(a)?a.forEach(e=>o[e]=null):s(o,a),v(e)&&r.set(e,o),o)}function Mr(e,t){return!e||!a(t)?!1:(t=t.slice(2).replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,D(t))||u(e,t))}function Nr(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:s,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=vn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Ii(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Ii(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:Pr(c)}}catch(t){bi.length=0,Zt(t,e,1),v=ji(vi)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=Fr(y,a)),b=Pi(b,y,!1,!0))}return n.dirs&&(b=Pi(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Mn(b,n.transition),v=b,vn(_),v}var Pr=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},Fr=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ir(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Lr(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(Rr(o,r,n)&&!Mr(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?o?Lr(r,o,l):!0:!!o;return!1}function Lr(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(Rr(t,e,a)&&!Mr(n,a))return!0}return!1}function Rr(e,t,n){let r=e[n],i=t[n];return n===`style`&&v(r)&&v(i)?!F(r,i):r!==i}function zr({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var Br={},Vr=()=>Object.create(Br),Hr=e=>Object.getPrototypeOf(e)===Br;function Ur(e,t,n,r=!1){let i={},a=Vr();e.propsDefaults=Object.create(null),Gr(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Tt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function Wr(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=U(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(Mr(e.emitsOptions,o))continue;let d=t[o];if(c)if(u(a,o))d!==a[o]&&(a[o]=d,l=!0);else{let t=T(o);i[t]=Kr(c,s,t,d,e,!1)}else d!==a[o]&&(a[o]=d,l=!0)}}}else{Gr(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!u(t,a)&&((r=D(a))===a||!u(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=Kr(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)(!t||!u(t,e))&&(delete a[e],l=!0)}l&&We(e.attrs,`set`,``)}function Gr(e,n,r,i){let[a,o]=e.propsOptions,s=!1,c;if(n)for(let t in n){if(ee(t))continue;let l=n[t],d;a&&u(a,d=T(t))?!o||!o.includes(d)?r[d]=l:(c||={})[d]=l:Mr(e.emitsOptions,t)||(!(t in i)||l!==i[t])&&(i[t]=l,s=!0)}if(o){let n=U(r),i=c||t;for(let t=0;t<o.length;t++){let s=o[t];r[s]=Kr(a,n,s,i[s],e,!u(i,s))}}return s}function Kr(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=u(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&h(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=Ji(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===D(n))&&(r=!0))}return r}var qr=new WeakMap;function Jr(e,r,i=!1){let a=i?qr:r.propsCache,o=a.get(e);if(o)return o;let c=e.props,l={},f=[],p=!1;if(!h(e)){let t=e=>{p=!0;let[t,n]=Jr(e,r,!0);s(l,t),n&&f.push(...n)};!i&&r.mixins.length&&r.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!c&&!p)return v(e)&&a.set(e,n),n;if(d(c))for(let e=0;e<c.length;e++){let n=T(c[e]);Yr(n)&&(l[n]=t)}else if(c)for(let e in c){let t=T(e);if(Yr(t)){let n=c[e],r=l[t]=d(n)||h(n)?{type:n}:s({},n),i=r.type,a=!1,o=!0;if(d(i))for(let e=0;e<i.length;++e){let t=i[e],n=h(t)&&t.name;if(n===`Boolean`){a=!0;break}else n===`String`&&(o=!1)}else a=h(i)&&i.name===`Boolean`;r[0]=a,r[1]=o,(a||u(r,`default`))&&f.push(t)}}let m=[l,f];return v(e)&&a.set(e,m),m}function Yr(e){return e[0]!==`$`&&!ee(e)}var Xr=e=>e===`_`||e===`_ctx`||e===`$stable`,Zr=e=>d(e)?e.map(Ii):[Ii(e)],Qr=(e,t,n)=>{if(t._n)return t;let r=yn((...e)=>Zr(t(...e)),n);return r._c=!1,r},$r=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Xr(n))continue;let i=e[n];if(h(i))t[n]=Qr(n,i,r);else if(i!=null){let e=Zr(i);t[n]=()=>e}}},ei=(e,t)=>{let n=Zr(t);e.slots.default=()=>n},ti=(e,t,n)=>{for(let r in t)(n||!Xr(r))&&(e[r]=t[r])},ni=(e,t,n)=>{let r=e.slots=Vr();if(e.vnode.shapeFlag&32){let e=t._;e?(ti(r,t,n),n&&A(r,`_`,e,!0)):$r(t,r)}else t&&ei(e,t)},ri=(e,n,r)=>{let{vnode:i,slots:a}=e,o=!0,s=t;if(i.shapeFlag&32){let e=n._;e?r&&e===1?o=!1:ti(a,n,r):(o=!n.$stable,$r(n,a)),s=n}else n&&(ei(e,n),s={default:1});if(o)for(let e in a)!Xr(e)&&s[e]==null&&delete a[e]},ii=gi;function ai(e){return oi(e)}function oi(e,i){let a=oe();a.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=r,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Oi(e,t)&&(r=F(e),M(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case _i:y(e,t,n,r);break;case vi:b(e,t,n,r);break;case yi:e??x(t,n,r,o);break;case q:O(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?k(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,R)}u!=null&&i?Ln(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Ln(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)te(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),E(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},te=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&T(e.children,d,null,r,i,si(e,a),s,u),_&&bn(e,null,r,`created`),ne(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ee(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Bi(f,r,e)}_&&bn(e,null,r,`beforeMount`);let v=li(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&ii(()=>{try{f&&Bi(f,r,e),v&&g.enter(d),_&&bn(e,null,r,`mounted`)}finally{}},i)},ne=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t<r.length;t++)g(e,r[t]);if(i){let n=i.subTree;if(t===n||hi(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;ne(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},T=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++)v(null,e[l]=s?Li(e[l]):Ii(e[l]),t,n,r,i,a,o,s)},E=(e,n,r,i,a,o,s)=>{let l=n.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=e.patchFlag&16;let m=e.props||t,h=n.props||t,g;if(r&&ci(r,!1),(g=h.onVnodeBeforeUpdate)&&Bi(g,r,n,e),f&&bn(n,e,r,`beforeUpdate`),r&&ci(r,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?D(e.dynamicChildren,d,l,r,i,si(n,a),o):s||ce(e,n,l,null,r,i,si(n,a),o,!1),u>0){if(u&16)re(l,m,h,r,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=n.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t],i=m[n],o=h[n];(o!==i||n===`value`)&&c(l,n,i,o,a,r)}}u&1&&e.children!==n.children&&p(l,n.children)}else !s&&d==null&&re(l,m,h,r,a);((g=h.onVnodeUpdated)||f)&&ii(()=>{g&&Bi(g,r,n,e),f&&bn(n,e,r,`updated`)},i)},D=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s];v(c,l,c.el&&(c.type===q||!Oi(c,l)||c.shapeFlag&198)?m(c.el):n,null,r,i,a,o,!0)}},re=(e,n,r,i,a)=>{if(n!==r){if(n!==t)for(let t in n)!ee(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(ee(t))continue;let o=r[t],s=n[t];o!==s&&t!==`value`&&c(e,t,s,o,a,i)}`value`in r&&c(e,`value`,n.value,r.value,a)}},O=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),T(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(D(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&ui(e,t,!0)):ce(e,t,n,f,i,a,s,c,l)},k=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):A(t,n,r,i,a,o,c):j(e,t,c)},A=(e,t,n,r,i,a,o)=>{let s=e.component=Ui(e,r,i);if(Bn(e)&&(s.ctx.renderer=R),Qi(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,ae,o),!e.el){let r=s.subTree=ji(vi);b(null,r,t,n),e.placeholder=r.el}}else ae(s,e,t,n,i,a,o)},j=(e,t,n)=>{let r=t.component=e.component;if(Ir(e,t,n))if(r.asyncDep&&!r.asyncResolved){se(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},ae=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=fi(e);if(n){t&&(t.el=c.el,se(e,t,o)),n.asyncDep.then(()=>{ii(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;ci(e,!1),t?(t.el=c.el,se(e,t,o)):t=c,n&&ie(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Bi(d,s,t,c),ci(e,!0);let f=Nr(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),F(p),e,i,a),t.el=f.el,u===null&&zr(e,f.el),r&&ii(r,i),(d=t.props&&t.props.onVnodeUpdated)&&ii(()=>Bi(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=zn(t);if(ci(e,!1),l&&ie(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Bi(o,d,t),ci(e,!0),s&&z){let t=()=>{e.subTree=Nr(e),z(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Nr(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&ii(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;ii(()=>Bi(o,d,e),i)}(t.shapeFlag&256||d&&zn(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&ii(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new ve(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>ln(u),ci(e,!0),l()},se=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,Wr(e,t.props,r,n),ri(e,t.children,n),Ne(),fn(e),Pe()},ce=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){ue(l,d,n,r,i,a,o,s,c);return}else if(f&256){le(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&P(l,i,a),d!==l&&p(n,d)):u&16?m&16?ue(l,d,n,r,i,a,o,s,c):P(l,i,a,!0):(u&8&&p(n,``),m&16&&T(d,n,r,i,a,o,s,c))},le=(e,t,r,i,a,o,s,c,l)=>{e||=n,t||=n;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;p<f;p++){let n=t[p]=l?Li(t[p]):Ii(t[p]);v(e[p],n,r,null,a,o,s,c,l)}u>d?P(e,a,o,!0,!1,f):T(t,r,i,a,o,s,c,l,f)},ue=(e,t,r,i,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let n=e[u],i=t[u]=l?Li(t[u]):Ii(t[u]);if(Oi(n,i))v(n,i,r,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let n=e[f],i=t[p]=l?Li(t[p]):Ii(t[p]);if(Oi(n,i))v(n,i,r,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,n=e<d?t[e].el:i;for(;u<=p;)v(null,t[u]=l?Li(t[u]):Ii(t[u]),r,n,a,o,s,c,l),u++}}else if(u>p)for(;u<=f;)M(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?Li(t[u]):Ii(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u<b;u++)C[u]=0;for(u=m;u<=f;u++){let n=e[u];if(y>=b){M(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Oi(n,t[_])){i=_;break}i===void 0?M(n,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(n,t[i],r,null,a,o,s,c,l),y++)}let w=x?di(C):n;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,n=t[e],f=t[e+1],p=e+1<d?f.el||mi(f):i;C[u]===0?v(null,n,r,p,a,o,s,c,l):x&&(_<0||u!==w[_]?de(n,r,p,2):_--)}}},de=(e,t,n,r,i=null)=>{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){de(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,R);return}if(c===q){o(a,t,n);for(let e=0;e<u.length;e++)de(u[e],t,n,r);o(e.anchor,t,n);return}if(c===yi){S(e,t,n);return}if(r!==2&&d&1&&l)if(r===0)l.persisted&&!a[jn]?o(a,t,n):(l.beforeEnter(a),o(a,t,n),ii(()=>l.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[jn];a._isLeaving&&a[jn](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},M=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(Ne(),Ln(s,null,n,e,!0),Pe()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!zn(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Bi(_,t,e),u&6)pe(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&bn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,R,r):l&&!l.hasOnce&&(a!==q||d>0&&d&64)?P(l,t,n,!1,!0):(a===q&&d&384||!i&&u&16)&&P(c,t,n),r&&fe(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&ii(()=>{_&&Bi(_,t,e),h&&bn(e,null,t,`unmounted`),v&&(e.el=null)},n)},fe=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===q){N(n,r);return}if(t===yi){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},N=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},pe=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;pi(c),pi(l),r&&ie(r),i.stop(),a&&(a.flags|=8,M(o,e,t,n)),s&&ii(s,t),ii(()=>{e.isUnmounted=!0},t)},P=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)M(e[o],t,n,r,i)},F=e=>{if(e.shapeFlag&6)return F(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[kn];return n?h(n):t},I=!1,L=(e,t,n)=>{let r;e==null?t._vnode&&(M(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,I||=(I=!0,fn(r),pn(),!1)},R={p:v,um:M,m:de,r:fe,mt:A,mc:T,pc:ce,pbc:D,n:F,o:e},me,z;return i&&([me,z]=i(R)),{render:L,hydrate:me,createApp:Er(L,me)}}function si({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function ci({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function li(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ui(e,t,n=!1){let r=e.children,i=t.children;if(d(r)&&d(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=Li(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&ui(t,a)),a.type===_i&&(a.patchFlag===-1&&(a=i[e]=Li(a)),a.el=t.el),a.type===vi&&!a.el&&(a.el=t.el)}}function di(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=t[o];return n}function fi(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:fi(t)}function pi(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function mi(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?mi(t.subTree):null}var hi=e=>e.__isSuspense;function gi(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):dn(e)}var q=Symbol.for(`v-fgt`),_i=Symbol.for(`v-txt`),vi=Symbol.for(`v-cmt`),yi=Symbol.for(`v-stc`),bi=[],xi=null;function J(e=!1){bi.push(xi=e?null:[])}function Si(){bi.pop(),xi=bi[bi.length-1]||null}var Ci=1;function wi(e,t=!1){Ci+=e,e<0&&xi&&t&&(xi.hasOnce=!0)}function Ti(e){return e.dynamicChildren=Ci>0?xi||n:null,Si(),Ci>0&&xi&&xi.push(e),e}function Y(e,t,n,r,i,a){return Ti(X(e,t,n,r,i,a,!0))}function Ei(e,t,n,r,i){return Ti(ji(e,t,n,r,i,!0))}function Di(e){return e?e.__v_isVNode===!0:!1}function Oi(e,t){return e.type===t.type&&e.key===t.key}var ki=({key:e})=>e??null,Ai=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||Ft(e)||h(e)?{i:gn,r:e,k:t,f:!!n}:e);function X(e,t=null,n=null,r=0,i=null,a=e===q?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ki(t),ref:t&&Ai(t),scopeId:_n,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:gn};return s?(Ri(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),Ci>0&&!o&&xi&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&xi.push(c),c}var ji=Mi;function Mi(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===rr)&&(e=vi),Di(e)){let r=Pi(e,t,!0);return n&&Ri(r,n),Ci>0&&!a&&xi&&(r.shapeFlag&6?xi[xi.indexOf(e)]=r:xi.push(r)),r.patchFlag=-2,r}if(sa(e)&&(e=e.__vccOpts),t){t=Ni(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=M(e)),v(n)&&(jt(n)&&!d(n)&&(n=s({},n)),t.style=se(n))}let o=g(e)?1:hi(e)?128:An(e)?64:v(e)?4:h(e)?2:0;return X(e,t,n,r,i,o,a,!0)}function Ni(e){return e?jt(e)||Hr(e)?s({},e):e:null}function Pi(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?zi(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ki(l),ref:t&&t.ref?n&&a?d(a)?a.concat(Ai(t)):[a,Ai(t)]:Ai(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==q?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pi(e.ssContent),ssFallback:e.ssFallback&&Pi(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Mn(u,c.clone(u)),u}function Fi(e=` `,t=0){return ji(_i,null,e,t)}function Z(e=``,t=!1){return t?(J(),Ei(vi,null,e)):ji(vi,null,e)}function Ii(e){return e==null||typeof e==`boolean`?ji(vi):d(e)?ji(q,null,e.slice()):Di(e)?Li(e):ji(_i,null,String(e))}function Li(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Pi(e)}function Ri(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(d(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Ri(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!Hr(t)?t._ctx=gn:r===3&&gn&&(gn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else h(t)?(t={default:t,_ctx:gn},n=32):(t=String(t),r&64?(n=16,t=[Fi(t)]):n=8);e.children=t,e.shapeFlag|=n}function zi(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=M([t.class,r.class]));else if(e===`style`)t.style=se([t.style,r.style]);else if(a(e)){let n=t[e],i=r[e];i&&n!==i&&!(d(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!o(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function Bi(e,t,n,r=null){Xt(e,t,7,[n,r])}var Vi=wr(),Hi=0;function Ui(e,n,r){let i=e.type,a=(n?n.appContext:e.appContext)||Vi,o={uid:Hi++,vnode:e,type:i,parent:n,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new he(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:n?n.provides:Object.create(a.provides),ids:n?n.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Jr(i,a),emitsOptions:jr(i,a),emit:null,emitted:null,propsDefaults:t,inheritAttrs:i.inheritAttrs,ctx:t,data:t,props:t,attrs:t,slots:t,refs:t,setupState:t,setupContext:null,suspense:r,suspenseId:r?r.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 o.ctx={_:o},o.root=n?n.root:o,o.emit=kr.bind(null,o),e.ce&&e.ce(o),o}var Wi=null,Gi=()=>Wi||gn,Ki,qi;{let e=oe(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Ki=t(`__VUE_INSTANCE_SETTERS__`,e=>Wi=e),qi=t(`__VUE_SSR_SETTERS__`,e=>Zi=e)}var Ji=e=>{let t=Wi;return Ki(e),e.scope.on(),()=>{e.scope.off(),Ki(t)}},Yi=()=>{Wi&&Wi.scope.off(),Ki(null)};function Xi(e){return e.vnode.shapeFlag&4}var Zi=!1;function Qi(e,t=!1,n=!1){t&&qi(t);let{props:r,children:i}=e.vnode,a=Xi(e);Ur(e,r,a,t),ni(e,i,n||t);let o=a?$i(e,t):void 0;return t&&qi(!1),o}function $i(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sr);let{setup:r}=n;if(r){Ne();let n=e.setupContext=r.length>1?aa(e):null,i=Ji(e),a=Yt(r,e,0,[e.props,n]),o=y(a);if(Pe(),i(),(o||e.sp)&&!zn(e)&&Pn(e),o){if(a.then(Yi,Yi),t)return a.then(n=>{ea(e,n,t)}).catch(t=>{Zt(t,e,0)});e.asyncDep=a}else ea(e,a,t)}else ra(e,t)}function ea(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=Bt(t)),ra(e,n)}var ta,na;function ra(e,t,n){let i=e.type;if(!e.render){if(!t&&ta&&!i.render){let t=i.template||mr(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:o}=i;i.render=ta(t,s(s({isCustomElement:n,delimiters:a},r),o))}}e.render=i.render||r,na&&na(e)}{let t=Ji(e);Ne();try{ur(e)}finally{Pe(),t()}}}var ia={get(e,t){return H(e,`get`,``),e[t]}};function aa(e){return{attrs:new Proxy(e.attrs,ia),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function oa(e){return e.exposed?e.exposeProxy||=new Proxy(Bt(Mt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ar)return ar[n](e)},has(e,t){return t in e||t in ar}}):e.proxy}function sa(e){return h(e)&&`__vccOpts`in e}var Q=(e,t)=>Ht(e,t,Zi),ca=`3.5.38`,la=void 0,ua=typeof window<`u`&&window.trustedTypes;if(ua)try{la=ua.createPolicy(`vue`,{createHTML:e=>e})}catch{}var da=la?e=>la.createHTML(e):e=>e,fa=`http://www.w3.org/2000/svg`,pa=`http://www.w3.org/1998/Math/MathML`,ma=typeof document<`u`?document:null,ha=ma&&ma.createElement(`template`),ga={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?ma.createElementNS(fa,e):t===`mathml`?ma.createElementNS(pa,e):n?ma.createElement(e,{is:n}):ma.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>ma.createTextNode(e),createComment:e=>ma.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ma.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{ha.innerHTML=da(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=ha.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},_a=Symbol(`_vtc`);function va(e,t,n){let r=e[_a];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var ya=Symbol(`_vod`),ba=Symbol(`_vsh`),xa=Symbol(``),Sa=/(?:^|;)\s*display\s*:/;function Ca(e,t,n){let r=e.style,i=g(n),a=!1;if(n&&!i){if(t)if(g(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Ta(r,t,``)}else for(let e in t)n[e]??Ta(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Ta(r,i,``):ka(e,i,!g(t)&&t?t[i]:void 0,o)||Ta(r,i,o)}}else if(i){if(t!==n){let e=r[xa];e&&(n+=`;`+e),r.cssText=n,a=Sa.test(n)}}else t&&e.removeAttribute(`style`);ya in e&&(e[ya]=a?r.display:``,e[ba]&&(r.display=`none`))}var wa=/\s*!important$/;function Ta(e,t,n){if(d(n))n.forEach(n=>Ta(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Oa(e,t);wa.test(n)?e.setProperty(D(r),n.replace(wa,``),`important`):e[r]=n}}var Ea=[`Webkit`,`Moz`,`ms`],Da={};function Oa(e,t){let n=Da[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return Da[t]=r;r=re(r);for(let n=0;n<Ea.length;n++){let i=Ea[n]+r;if(i in e)return Da[t]=i}return t}function ka(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&g(r)&&n===r}var Aa=`http://www.w3.org/1999/xlink`;function ja(e,t,n,r,i,a=N(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Aa,t.slice(6,t.length)):e.setAttributeNS(Aa,t,n):n==null||a&&!pe(n)?e.removeAttribute(t):e.setAttribute(t,a?``:_(n)?String(n):n)}function Ma(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?da(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=pe(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function Na(e,t,n,r){e.addEventListener(t,n,r)}function Pa(e,t,n,r){e.removeEventListener(t,n,r)}var Fa=Symbol(`_vei`);function Ia(e,t,n,r,i=null){let a=e[Fa]||(e[Fa]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=Ra(t);r?Na(e,n,a[t]=Ha(r,i),s):o&&(Pa(e,n,o,s),a[t]=void 0)}}var La=/(?:Once|Passive|Capture)$/;function Ra(e){let t;if(La.test(e)){t={};let n;for(;n=e.match(La);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===`:`?e.slice(3):D(e.slice(2)),t]}var za=0,Ba=Promise.resolve(),Va=()=>za||=(Ba.then(()=>za=0),Date.now());function Ha(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(d(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&Xt(e,t,5,a)}}else Xt(r,t,5,[e])};return n.value=e,n.attached=Va(),n}var Ua=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Wa=(e,t,n,r,i,s)=>{let c=i===`svg`;t===`class`?va(e,r,c):t===`style`?Ca(e,n,r):a(t)?o(t)||Ia(e,t,n,r,s):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):Ga(e,t,r,c))?(Ma(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&ja(e,t,r,c,s,t!==`value`)):e._isVueCE&&(Ka(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!g(r)))?Ma(e,T(t),r,s,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),ja(e,t,r,c))};function Ga(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Ua(t)&&h(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Ua(t)&&g(n)?!1:t in e}function Ka(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var qa=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return d(t)?e=>ie(t,e):t};function Ja(e){e.target.composing=!0}function Ya(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var Xa=Symbol(`_assign`);function Za(e,t,n){return t&&(e=e.trim()),n&&(e=j(e)),e}var $={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Xa]=qa(i);let a=r||i.props&&i.props.type===`number`;Na(e,t?`change`:`input`,t=>{t.target.composing||e[Xa](Za(e.value,n,a))}),(n||a)&&Na(e,`change`,()=>{e.value=Za(e.value,n,a)}),t||(Na(e,`compositionstart`,Ja),Na(e,`compositionend`,Ya),Na(e,`change`,Ya))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[Xa]=qa(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?j(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Qa={deep:!0,created(e,t,n){e[Xa]=qa(n),Na(e,`change`,()=>{let t=e._modelValue,n=no(e),r=e.checked,i=e[Xa];if(d(t)){let e=I(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(p(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(ro(e,r))})},mounted:$a,beforeUpdate(e,t,n){e[Xa]=qa(n),$a(e,t,n)}};function $a(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(d(t))i=I(t,r.props.value)>-1;else if(p(t))i=t.has(r.props.value);else{if(t===n)return;i=F(t,ro(e,!0))}e.checked!==i&&(e.checked=i)}var eo={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=p(t);Na(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?j(no(e)):no(e));e[Xa](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,sn(()=>{e._assigning=!1})}),e[Xa]=qa(r)},mounted(e,{value:t}){to(e,t)},beforeUpdate(e,t,n){e[Xa]=qa(n)},updated(e,{value:t}){e._assigning||to(e,t)}};function to(e,t){let n=e.multiple,r=d(t);if(!(n&&!r&&!p(t))){for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=no(a);if(n)if(r){let e=typeof o;e===`string`||e===`number`?a.selected=t.some(e=>String(e)===String(o)):a.selected=I(t,o)>-1}else a.selected=t.has(o);else if(F(no(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function no(e){return`_value`in e?e._value:e.value}function ro(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var io=s({patchProp:Wa},ga),ao;function oo(){return ao||=ai(io)}var so=((...e)=>{let t=oo().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=lo(e);if(!r)return;let i=t._component;!h(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,co(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function co(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function lo(e){return g(e)?document.querySelector(e):e}var uo={class:`knowledge-workspace`},fo={class:`knowledge-header`},po=[`disabled`],mo={class:`status-band`},ho={class:`knowledge-grid`},go={class:`knowledge-panel ingest-panel`},_o={class:`inline-fields`},vo=[`disabled`],yo={class:`knowledge-panel`},bo=[`disabled`],xo={class:`knowledge-panel`},So={class:`limit-field`},Co=[`disabled`],wo={class:`knowledge-message`},To={key:0,class:`query-results`},Eo={class:`match-heading`},Do={key:0,class:`matched-terms`},Oo=Nn({__name:`KnowledgeWorkspace`,setup(e){let t=`http://127.0.0.1:7200`.replace(/\/$/,``),n=W(null),r=W(!1),i=W(``),a=W(``),o=W(``),s=W(50),c=W(``),l=W(``),u=W(``),d=W(8),f=W(null);async function p(e,n){let r=await fetch(`${t}${e}`,n);if(!r.ok){let e=await r.text();try{let t=JSON.parse(e);throw Error(t.detail||t.message||t.title||e||`HTTP ${r.status}`)}catch(t){throw t instanceof SyntaxError?Error(e||`HTTP ${r.status}`):t}}return await r.json()}async function m(e=!1){r.value=!0,e&&(i.value=`正在检查文档解析与知识索引工具...`);try{n.value=await p(`/api/knowledge-builder/status`),e&&(i.value=n.value.extraction_ready?`MinerU 文档解析与本地知识索引均可用。`:`本地知识索引可用,MinerU OCR 模型尚未就绪。`)}catch(e){n.value=null,i.value=e instanceof Error?e.message:`知识库工具检查失败。`}finally{r.value=!1}}async function h(){if(a.value.trim()){r.value=!0,i.value=`正在解析 PDF 并建立知识索引...`;try{let e=await p(`/api/knowledge-builder/ingest`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({source:a.value.trim(),job_name:o.value.trim(),chunk_size:Number(s.value)})});i.value=e.ok===!1?e.message||`PDF 导入未完成:${e.stage||`运行时检查未通过`}`:`PDF 导入完成:${e.entry_count??0} 条知识,保存到 ${e.index_path||`runtime/knowledge-base`}`}catch(e){i.value=e instanceof Error?e.message:`PDF 文档导入失败。`}finally{r.value=!1}}}async function g(){if(c.value.trim()){r.value=!0,i.value=`正在读取 Markdown/JSON 并构建知识索引...`;try{let e=await p(`/api/knowledge-builder/index`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({input_root:c.value.trim(),job_name:l.value.trim()})});i.value=`索引构建完成:${e.entry_count} 条知识,保存到 ${e.index_path}`}catch(e){i.value=e instanceof Error?e.message:`知识索引构建失败。`}finally{r.value=!1}}}async function _(){if(u.value.trim()){r.value=!0,f.value=null,i.value=`正在检索工程文档知识...`;try{f.value=await p(`/api/knowledge-builder/query`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({query:u.value.trim(),limit:Number(d.value)})}),i.value=`检索完成:从 ${f.value.entry_count} 条知识中命中 ${f.value.matched_count} 条。`}catch(e){i.value=e instanceof Error?e.message:`文档知识检索失败。`}finally{r.value=!1}}}function v(e){return Number.isFinite(Number(e))?Number(e)<=1?`${Math.round(Number(e)*100)}%`:Number(e).toFixed(3):`--`}return Jn(()=>void m(!1)),(e,p)=>(J(),Y(`section`,uo,[X(`header`,fo,[p[8]||=X(`div`,null,[X(`p`,null,`Document Knowledge`),X(`h2`,null,`知识库构建与检索`)],-1),X(`button`,{type:`button`,class:`secondary`,disabled:r.value,onClick:p[0]||=e=>m(!0)},`重新检查`,8,po)]),X(`section`,mo,[X(`article`,null,[p[9]||=X(`span`,null,`文档解析`,-1),X(`strong`,null,R(n.value?.extraction_ready?`可用`:`模型未就绪`),1),X(`small`,null,`MinerU `+R(n.value?.mineru_version||`未连接`),1)]),X(`article`,null,[p[10]||=X(`span`,null,`本地索引`,-1),X(`strong`,null,R(n.value?.indexing_ready?`可用`:`不可用`),1),X(`small`,null,R(n.value?.python_version||`未连接`),1)]),X(`article`,null,[p[11]||=X(`span`,null,`工具目录`,-1),X(`strong`,null,R(n.value?.ok?`已连接`:`等待连接`),1),X(`small`,null,R(n.value?.helper_root||Rt(t)),1)])]),X(`div`,ho,[X(`section`,go,[p[15]||=X(`div`,{class:`panel-heading`},[X(`span`,null,`01`),X(`div`,null,[X(`h3`,null,`解析 PDF 并入库`),X(`p`,null,`MinerU ingestion`)])],-1),X(`label`,null,[p[12]||=X(`span`,null,`PDF 文件路径`,-1),G(X(`input`,{"onUpdate:modelValue":p[1]||=e=>a.value=e,placeholder:`D:\\books\\mechanical-design.pdf`},null,512),[[$,a.value]])]),X(`div`,_o,[X(`label`,null,[p[13]||=X(`span`,null,`知识库名称`,-1),G(X(`input`,{"onUpdate:modelValue":p[2]||=e=>o.value=e,placeholder:`mechanical-design`},null,512),[[$,o.value]])]),X(`label`,null,[p[14]||=X(`span`,null,`每批页数`,-1),G(X(`input`,{"onUpdate:modelValue":p[3]||=e=>s.value=e,type:`number`,min:`1`,max:`200`},null,512),[[$,s.value,void 0,{number:!0}]])])]),X(`button`,{type:`button`,disabled:r.value||!a.value.trim(),onClick:h},`解析并建立索引`,8,vo)]),X(`section`,yo,[p[18]||=X(`div`,{class:`panel-heading`},[X(`span`,null,`02`),X(`div`,null,[X(`h3`,null,`导入已有解析结果`),X(`p`,null,`Markdown / JSON index`)])],-1),X(`label`,null,[p[16]||=X(`span`,null,`解析产物目录`,-1),G(X(`input`,{"onUpdate:modelValue":p[4]||=e=>c.value=e,placeholder:`D:\\knowledge-output\\chunks`},null,512),[[$,c.value]])]),X(`label`,null,[p[17]||=X(`span`,null,`知识库名称`,-1),G(X(`input`,{"onUpdate:modelValue":p[5]||=e=>l.value=e,placeholder:`bearing-design-handbook`},null,512),[[$,l.value]])]),X(`button`,{type:`button`,disabled:r.value||!c.value.trim(),onClick:g},`构建知识索引`,8,bo)]),X(`section`,xo,[p[21]||=X(`div`,{class:`panel-heading`},[X(`span`,null,`03`),X(`div`,null,[X(`h3`,null,`验证知识检索`),X(`p`,null,`Retrieval test`)])],-1),X(`label`,null,[p[19]||=X(`span`,null,`工程问题`,-1),G(X(`textarea`,{"onUpdate:modelValue":p[6]||=e=>u.value=e,rows:`4`,placeholder:`支架底座固定后,螺栓孔附近如何避免应力集中?`},null,512),[[$,u.value]])]),X(`label`,So,[p[20]||=X(`span`,null,`返回数量`,-1),G(X(`input`,{"onUpdate:modelValue":p[7]||=e=>d.value=e,type:`number`,min:`1`,max:`50`},null,512),[[$,d.value,void 0,{number:!0}]])]),X(`button`,{type:`button`,disabled:r.value||!u.value.trim(),onClick:_},`检索知识`,8,Co)])]),X(`p`,wo,R(i.value||`知识库 API${Rt(t)}`),1),f.value?(J(),Y(`section`,To,[X(`header`,null,[p[22]||=X(`div`,null,[X(`p`,null,`Retrieval Results`),X(`h3`,null,`检索结果`)],-1),X(`strong`,null,R(f.value.matched_count)+` / `+R(f.value.entry_count),1)]),(J(!0),Y(q,null,K(f.value.matches,e=>(J(),Y(`article`,{key:e.id},[X(`div`,Eo,[X(`strong`,null,R(e.title),1),X(`span`,null,R(v(e.score)),1)]),X(`p`,null,R(e.excerpt),1),e.matched_terms?.length?(J(),Y(`div`,Do,[(J(!0),Y(q,null,K(e.matched_terms,e=>(J(),Y(`span`,{key:e},R(e),1))),128))])):Z(``,!0),X(`small`,null,R(e.job_name)+` · 第 `+R(e.source.page_start??`?`)+`-`+R(e.source.page_end??`?`)+` 页 · `+R(e.source.markdown_path||e.source.document_path),1)]))),128))])):Z(``,!0)]))}}),ko=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Ao=ko(Oo,[[`__scopeId`,`data-v-5497362b`]]),jo={class:`simulation-workspace`},Mo={class:`simulation-controls`},No={class:`simulation-heading`},Po=[`title`],Fo={class:`parameter-grid`},Io={class:`simulation-actions`},Lo=[`disabled`],Ro=[`disabled`],zo=[`disabled`],Bo=[`disabled`],Vo=[`disabled`],Ho={class:`simulation-message`},Uo={class:`simulation-main`},Wo={class:`simulation-status`},Go={class:`status-metrics`},Ko={class:`progress-track`},qo={key:0,class:`simulation-section`},Jo={class:`section-title`},Yo={class:`selected-faces`},Xo={class:`face-table-wrap`},Zo={class:`face-actions`},Qo=[`onClick`],$o=[`onClick`],es={class:`section-title`},ts={key:2,class:`simulation-section result-section`},ns={class:`section-title`},rs=[`href`],is={class:`result-metrics`},as={class:`result-images`},os={key:0},ss=[`src`],cs={key:1},ls=[`src`],us={key:0},ds={key:3,class:`simulation-empty`},fs=ko(Nn({__name:`SimulationWorkspace`,setup(e){let t=`http://127.0.0.1:7200`.replace(/\/$/,``),n=W(``),r=W(``),i=W(`structural_steel`),a=W(1e3),o=W(`[0, -1, 0]`),s=W(5),c=W(null),l=W(null),u=W(null),d=W(null),f=W(!1),p=W(null),m=W(null),h=W(!1),g=W(`checking`),_=W(``),v=W(0),y,b,x=Q(()=>u.value?.face_scan?.faces??u.value?.faceScan?.faces??[]),S=Q(()=>u.value?.geometry_file||u.value?.geometryFile||n.value.trim()),C=Q(()=>!h.value&&!!n.value.trim()),w=Q(()=>!h.value&&x.value.length>0),ee=Q(()=>!h.value&&x.value.length>0&&c.value!==null&&l.value!==null&&f.value),te=Q(()=>p.value?.state||`Idle`),ne=Q(()=>m.value||te.value===`Failed`?100:te.value===`Done`?95:p.value?70:f.value?50:d.value?40:u.value?25:0),T=Q(()=>{let e=d.value?.plan;return e?String(e.objective||e.summary||e.model_simplification?.summary||`静力结构仿真方案`):``});async function E(e,n){let r=await fetch(`${t}${e}`,n);if(!r.ok){let e=await r.text();try{let t=JSON.parse(e);throw Error(t.detail||t.message||t.title||e||`HTTP ${r.status}`)}catch(t){throw t instanceof SyntaxError?Error(e||`HTTP ${r.status}`):t}}return await r.json()}async function D(e=!1){g.value=`checking`;try{let t=await E(`/api/ansys/status`);g.value=`ready`,e&&(_.value=t.message||`ANSYS 仿真服务已连接。`)}catch(t){g.value=`unavailable`,e&&(_.value=t instanceof Error?t.message:`ANSYS 仿真服务连接失败。`)}}function re(){try{let e=JSON.parse(o.value);if(!Array.isArray(e)||e.length!==3||e.some(e=>!Number.isFinite(Number(e))))throw Error();return e.map(Number)}catch{throw Error(`载荷方向必须是包含 3 个数字的数组,例如 [0, -1, 0]。`)}}function O(){return r.value.trim()||`sim-${Date.now()}`}async function k(){if(C.value){le(),h.value=!0,u.value=null,d.value=null,p.value=null,m.value=null,f.value=!1,_.value=`正在读取模型并扫描 ANSYS 几何面...`;try{let e=O();r.value=e;let t=await E(`/api/ansys/simulation/scan-faces`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({workflow_id:e,source_agent:`agent4`,model_artifacts:{geometry_path:n.value.trim()},execution_options:{timeout:7200,use_tools_functional_faces:!0},design_context:{}})});u.value=t;let i=t.face_scan?.faces??t.faceScan?.faces??[];c.value=i.find(e=>e.tags?.includes(`y_min`))?.face_id??i[0]?.face_id??null,l.value=i.find(e=>e.tags?.includes(`y_max`))?.face_id??i.at(-1)?.face_id??null,_.value=`模型扫描完成,共识别 ${i.length} 个面。`}catch(e){_.value=e instanceof Error?e.message:`模型扫描失败。`}finally{h.value=!1}}}async function ie(){if(w.value){h.value=!0,_.value=`正在生成仿真方案...`;try{let e=await E(`/api/ansys/simulation/ai-plan`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({workflow_id:O(),source_agent:`agent4`,model_artifacts:{geometry_path:S.value,original_geometry_path:n.value.trim(),faces:x.value},execution_options:{material:i.value,force_magnitude:Number(a.value),force_direction:re(),mesh_size:Number(s.value)},design_context:{faces:x.value}})});d.value=e,f.value=!1,_.value=e.message||`AI 仿真方案已生成,请确认后提交求解。`}catch(e){_.value=e instanceof Error?e.message:`生成仿真方案失败。`}finally{h.value=!1}}}function A(){d.value&&(f.value=!0,_.value=`方案已确认,可以提交 ANSYS 求解。`)}async function j(){if(ee.value){h.value=!0,m.value=null,_.value=`正在提交 ANSYS 静力结构求解...`,ue();try{let e=O();r.value=e;let t=d.value?.plan??null,o=await E(`/api/ansys/simulation/plans`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({workflow_id:e,source_agent:`agent4`,approved_plan_text:T.value||`Agent4 前端已确认的 ANSYS 静力结构仿真计划。`,execution_options:{timeout:7200,ai_plan_confirmed:!0},model_artifacts:{geometry_path:S.value,original_geometry_path:n.value.trim(),ansys_project_path:u.value?.project_path||u.value?.projectPath||``,ai_simulation_plan:t},design_context:{faces:x.value,ai_simulation_plan:t},simulation_plan:{enabled:!0,target_agent:`ansys`,units:`mm`,analysis_type:`static_structural`,summary:`对用户指定三维模型执行静力结构仿真。`,steps:[{id:`static-structural`,target_agent:`ansys`,skill_name:`run_static_structural_simulation`,name:`执行静力结构仿真`,arguments:{geometry_path:S.value,material:i.value,fixed_face_id:c.value,force_face_id:l.value,force_magnitude:Number(a.value),force_direction:re(),mesh_size:Number(s.value),ai_simulation_plan:t}}]}})});p.value=o.current_workflow??o.currentWorkflow??{workflow_id:e,state:`Pending`},_.value=p.value.message||`仿真任务已提交。`,ce(e)}catch(e){_.value=e instanceof Error?e.message:`提交仿真失败。`,de()}finally{h.value=!1}}}async function ae(e=r.value.trim()){if(e)try{let t=await E(`/api/ansys/simulation/workflows/${encodeURIComponent(e)}`);p.value=t,_.value=t.error||t.message||_.value,t.state===`Done`&&await oe(e),t.state===`Failed`&&(le(),de())}catch(e){_.value=e instanceof Error?e.message:`读取仿真状态失败。`}}async function oe(e=r.value.trim()){if(e)try{m.value=await E(`/api/ansys/simulation/workflows/${encodeURIComponent(e)}/results`),_.value=`ANSYS 仿真完成。`,le(),de()}catch(e){_.value=e instanceof Error?e.message:`读取仿真结果失败。`}}function ce(e){le(),ae(e),y=window.setInterval(()=>void ae(e),5e3)}function le(){y!==void 0&&window.clearInterval(y),y=void 0}function ue(){de(),v.value=0,b=window.setInterval(()=>{v.value+=1},1e3)}function de(){b!==void 0&&window.clearInterval(b),b=void 0}function fe(e){return e?/^https?:\/\//i.test(e)?e:e.startsWith(`/results/`)?`${t}/api/ansys${e}`:`${t}${e.startsWith(`/`)?``:`/`}${e}`:``}function N(e){return Number.isFinite(Number(e))?Number(e).toPrecision(5):`--`}function pe(e){return Array.isArray(e)?`[${e.map(e=>Number(e).toFixed(2)).join(`, `)}]`:`--`}return Jn(()=>{let e=new URLSearchParams(window.location.search);n.value=e.get(`modelPath`)||e.get(`model_path`)||``,r.value=e.get(`workflowId`)||e.get(`workflow_id`)||``,D(!1),r.value&&ce(r.value)}),Zn(()=>{le(),de()}),(e,p)=>(J(),Y(`section`,jo,[X(`aside`,Mo,[X(`div`,No,[p[8]||=X(`div`,null,[X(`p`,null,`Static Structural`),X(`h2`,null,`ANSYS 仿真`)],-1),X(`button`,{class:`connection-button`,type:`button`,title:Rt(t),onClick:p[0]||=e=>D(!0)},[X(`span`,{class:M(g.value)},null,2),Fi(` `+R(g.value===`ready`?`已连接`:g.value===`checking`?`检测中`:`未连接`),1)],8,Po)]),X(`label`,null,[p[9]||=X(`span`,null,`模型路径`,-1),G(X(`input`,{"onUpdate:modelValue":p[1]||=e=>n.value=e,placeholder:`D:\\path\\model.SLDASM`},null,512),[[$,n.value]])]),X(`label`,null,[p[10]||=X(`span`,null,`工作流 ID`,-1),G(X(`input`,{"onUpdate:modelValue":p[2]||=e=>r.value=e,placeholder:`自动生成,也可填写已有 ID`},null,512),[[$,r.value]])]),X(`div`,Fo,[X(`label`,null,[p[12]||=X(`span`,null,`材料`,-1),G(X(`select`,{"onUpdate:modelValue":p[3]||=e=>i.value=e},[...p[11]||=[X(`option`,{value:`structural_steel`},`结构钢`,-1),X(`option`,{value:`aluminum_alloy`},`铝合金`,-1),X(`option`,{value:`stainless_steel`},`不锈钢`,-1),X(`option`,{value:`cast_iron`},`铸铁`,-1)]],512),[[eo,i.value]])]),X(`label`,null,[p[13]||=X(`span`,null,`载荷 N`,-1),G(X(`input`,{"onUpdate:modelValue":p[4]||=e=>a.value=e,type:`number`,min:`0`,step:`10`},null,512),[[$,a.value,void 0,{number:!0}]])]),X(`label`,null,[p[14]||=X(`span`,null,`载荷方向`,-1),G(X(`input`,{"onUpdate:modelValue":p[5]||=e=>o.value=e,placeholder:`[0, -1, 0]`},null,512),[[$,o.value]])]),X(`label`,null,[p[15]||=X(`span`,null,`网格 mm`,-1),G(X(`input`,{"onUpdate:modelValue":p[6]||=e=>s.value=e,type:`number`,min:`0.1`,step:`0.5`},null,512),[[$,s.value,void 0,{number:!0}]])])]),X(`div`,Io,[X(`button`,{type:`button`,disabled:!C.value,onClick:k},`1. 扫描模型`,8,Lo),X(`button`,{type:`button`,class:`secondary`,disabled:!w.value,onClick:ie},`2. 生成方案`,8,Ro),X(`button`,{type:`button`,class:`secondary`,disabled:!d.value||h.value,onClick:A},`3. 确认方案`,8,zo),X(`button`,{type:`button`,disabled:!ee.value,onClick:j},`4. 开始求解`,8,Bo),X(`button`,{type:`button`,class:`secondary`,disabled:!r.value||h.value,onClick:p[7]||=e=>ae()},`刷新状态`,8,Vo)]),X(`p`,Ho,R(_.value||`仿真 API${Rt(t)}`),1)]),X(`section`,Uo,[X(`header`,Wo,[X(`div`,null,[p[16]||=X(`p`,null,`Workflow`,-1),X(`h2`,null,R(te.value),1)]),X(`div`,Go,[X(`span`,null,R(v.value)+` s`,1),X(`span`,null,R(ne.value)+`%`,1)])]),X(`div`,Ko,[X(`div`,{style:se({width:`${ne.value}%`})},null,4)]),u.value?(J(),Y(`section`,qo,[X(`div`,Jo,[p[17]||=X(`div`,null,[X(`p`,null,`Geometry`),X(`h3`,null,`几何面选择`)],-1),X(`span`,null,R(x.value.length)+` faces`,1)]),X(`div`,Yo,[X(`article`,null,[p[18]||=X(`span`,null,`固定面`,-1),X(`strong`,null,R(c.value??`--`),1)]),X(`article`,null,[p[19]||=X(`span`,null,`载荷面`,-1),X(`strong`,null,R(l.value??`--`),1)]),X(`article`,null,[p[20]||=X(`span`,null,`中间几何`,-1),X(`strong`,null,R(S.value),1)])]),X(`div`,Xo,[X(`table`,null,[p[21]||=X(`thead`,null,[X(`tr`,null,[X(`th`,null,`ID`),X(`th`,null,`面积`),X(`th`,null,`中心`),X(`th`,null,`标签`),X(`th`,null,`边界条件`)])],-1),X(`tbody`,null,[(J(!0),Y(q,null,K(x.value.slice(0,100),e=>(J(),Y(`tr`,{key:e.face_id},[X(`td`,null,R(e.face_id),1),X(`td`,null,R(N(e.area)),1),X(`td`,null,R(pe(e.centroid)),1),X(`td`,null,R(e.tags?.join(`, `)||`--`),1),X(`td`,Zo,[X(`button`,{type:`button`,class:M({active:c.value===e.face_id}),onClick:t=>c.value=e.face_id},`固定`,10,Qo),X(`button`,{type:`button`,class:M({active:l.value===e.face_id}),onClick:t=>l.value=e.face_id},`载荷`,10,$o)])]))),128))])])])])):Z(``,!0),d.value?(J(),Y(`section`,{key:1,class:M([`simulation-section plan-section`,{confirmed:f.value}])},[X(`div`,es,[p[22]||=X(`div`,null,[X(`p`,null,`Engineering Plan`),X(`h3`,null,`AI 仿真方案`)],-1),X(`span`,null,R(f.value?`已确认`:`待确认`),1)]),X(`p`,null,R(T.value),1),X(`pre`,null,R(JSON.stringify(d.value.plan,null,2)),1)],2)):Z(``,!0),m.value?(J(),Y(`section`,ts,[X(`div`,ns,[X(`div`,null,[p[23]||=X(`p`,null,`Solution`,-1),X(`h3`,null,R(m.value.mock?`演示结果`:`求解结果`),1)]),m.value.detailed_report_url||m.value.detailedReportUrl?(J(),Y(`a`,{key:0,href:fe(m.value.detailed_report_url||m.value.detailedReportUrl),target:`_blank`,rel:`noreferrer`},`详细报告`,8,rs)):Z(``,!0)]),X(`div`,is,[X(`article`,null,[p[24]||=X(`span`,null,`最大等效应力`,-1),X(`strong`,null,R(N(m.value.max_von_mises_stress??m.value.maxVonMisesStress)),1),X(`small`,null,R(m.value.max_stress_unit||m.value.maxStressUnit||`MPa`),1)]),X(`article`,null,[p[25]||=X(`span`,null,`最大位移`,-1),X(`strong`,null,R(N(m.value.max_displacement??m.value.maxDisplacement)),1),X(`small`,null,R(m.value.max_displacement_unit||m.value.maxDisplacementUnit||`mm`),1)])]),X(`div`,as,[m.value.stress_image_url||m.value.stressImageUrl?(J(),Y(`figure`,os,[X(`img`,{src:fe(m.value.stress_image_url||m.value.stressImageUrl),alt:`等效应力云图`},null,8,ss),p[26]||=X(`figcaption`,null,`等效应力`,-1)])):Z(``,!0),m.value.displacement_image_url||m.value.displacementImageUrl?(J(),Y(`figure`,cs,[X(`img`,{src:fe(m.value.displacement_image_url||m.value.displacementImageUrl),alt:`总变形云图`},null,8,ls),p[27]||=X(`figcaption`,null,`总变形`,-1)])):Z(``,!0)]),m.value.report?(J(),Y(`pre`,us,R(m.value.report),1)):Z(``,!0)])):Z(``,!0),!u.value&&!m.value?(J(),Y(`section`,ds,[...p[28]||=[X(`strong`,null,`等待模型`,-1),X(`p`,null,`填写模型路径后开始扫描。`,-1)]])):Z(``,!0)])]))}}),[[`__scopeId`,`data-v-13626791`]]),ps={class:`app`},ms={class:`topbar`},hs={class:`top-actions`},gs={key:0,class:`stage`},_s={class:`choice-grid mode-grid`},vs={key:3,class:`stage`},ys={class:`choice-grid four`},bs={key:4,class:`workspace diagnostic-workspace`},xs={class:`course-panel`},Ss={class:`manual-box`},Cs={class:`inline-check`},ws={class:`inline-check`},Ts={class:`inline-check`},Es={class:`diagnostic-note`},Ds={class:`action-stack`},Os=[`disabled`],ks=[`disabled`],As=[`disabled`],js=[`disabled`],Ms={key:0,class:`form-hint`},Ns={key:1,class:`form-hint`},Ps={class:`manual-box`},Fs={class:`inline-check`},Is={class:`inline-check`},Ls={class:`inline-check`},Rs={class:`diagnostic-note`},zs={class:`action-stack`},Bs=[`disabled`],Vs=[`disabled`],Hs=[`disabled`],Us=[`disabled`],Ws=[`disabled`],Gs={key:0,class:`form-hint`},Ks={key:1,class:`form-hint`},qs={key:2,class:`form-hint`},Js=[`placeholder`],Ys={class:`action-stack`},Xs=[`disabled`],Zs=[`disabled`],Qs=[`disabled`],$s={key:3,class:`form-hint`},ec={class:`feedback`},tc={class:`work-panel`},nc={class:`section-head`},rc={key:0,class:`status-pill`},ic={key:0,class:`diagnostic-result`},ac={class:`diagnostic-overview`},oc={class:`drawing-summary`},sc={class:`drawing-issue-section`},cc={key:0,class:`format-issue-grid`},lc={key:1},uc={key:1,class:`diagnostic-result`},dc={class:`diagnostic-overview`},fc={class:`drawing-summary`},pc={key:0},mc={key:1},hc={key:2},gc={key:3},_c={class:`category-grid`},vc={key:0,class:`category-card`},yc={class:`category-card`},bc={key:1,class:`category-card`},xc={key:2,class:`category-card`},Sc={class:`drawing-issue-layout`},Cc={class:`drawing-issue-section`},wc={class:`section-head compact`},Tc={class:`status-pill`},Ec={key:0,class:`format-issue-grid`},Dc=[`src`,`alt`],Oc={key:1,class:`issue-image-placeholder`},kc={class:`format-issue-body`},Ac={key:1,class:`empty-state`},jc={class:`drawing-issue-section`},Mc={key:0,class:`report-snippet`},Nc={key:1,class:`empty-state`},Pc={class:`drawing-issue-section`},Fc={key:0,class:`report-snippet`},Ic={key:1,class:`empty-state`},Lc={class:`diagnostic-note`},Rc={key:2,class:`diagnostic-result`},zc={class:`diagnostic-overview`},Bc={class:`drawing-summary`},Vc={class:`category-grid`},Hc={class:`type-counts`},Uc={key:3,class:`diagnostic-progress`},Wc={class:`progress-summary`},Gc={class:`progress-track`},Kc={key:0,class:`progress-stats`},qc={key:1,class:`current-unit current-subgraph-component`},Jc={key:2,class:`current-unit`},Yc={class:`progress-steps`},Xc={key:4,class:`diagnostic-result full-diagnostic-result`},Zc={class:`diagnostic-overview`},Qc={class:`diagnostic-result-stats`},$c={key:0,class:`diagnostic-result-tabs`,role:`tablist`,"aria-label":`诊断结果视图`},el=[`aria-selected`],tl=[`aria-selected`],nl=[`aria-selected`],rl=[`aria-selected`],il={key:1,class:`diagnostic-result-panel`,role:`tabpanel`},al={key:0,class:`diagnostic-report`},ol={key:0},sl={key:1},cl={key:2},ll={key:3},ul={key:4},dl={key:1,class:`empty-state`},fl={key:2,class:`diagnostic-result-panel`,role:`tabpanel`},pl={key:0,class:`issue-list`},ml={class:`issue-group-head`},hl={class:`issue-group-items`},gl={class:`issue-summary`},_l={class:`issue-judgement`},vl={key:0,class:`issue-evidence-set`},yl=[`src`,`alt`],bl={key:1},xl={key:3,class:`diagnostic-result-panel`,role:`tabpanel`},Sl={class:`result-panel-head`},Cl={key:0,class:`retrieval-candidate-list`},wl={class:`candidate-meta`},Tl={key:0,class:`candidate-evidence-grid`},El=[`src`,`alt`],Dl={key:0},Ol={key:1,class:`empty-state`},kl={key:1,class:`empty-state`},Al={key:4,class:`diagnostic-result-panel`,role:`tabpanel`},jl={class:`diagnostic-paths`},Ml={class:`result-panel-head artifact-head`},Nl={key:0,class:`artifact-list`},Pl={key:1,class:`empty-state`},Fl={key:5,class:`diagnostic-empty`},Il={key:6,class:`diagnostic-empty`},Ll={key:0},Rl={key:1},zl={key:2},Bl={key:7,class:`diagnostic-empty`},Vl={key:5,class:`stage`},Hl={class:`stage-head`},Ul={key:6,class:`stage`},Wl={class:`stage-head`},Gl={class:`choice-grid two`},Kl=[`disabled`],ql={key:7,class:`stage`},Jl={class:`part-grid`},Yl=[`onClick`],Xl={key:8,class:`workspace`},Zl={class:`course-panel`},Ql=[`disabled`],$l=[`disabled`],eu={key:2,class:`feedback`},tu={key:3,class:`designer-panel`},nu={key:0},ru={key:4,class:`session-meta`},iu={class:`work-panel`},au={class:`section-head`},ou={class:`voice`},su={key:0,class:`step-thinking`},cu={key:0},lu={key:1},uu={key:1,class:`manual-box`},du={class:`feedback`},fu={class:`feedback`},pu={class:`section-head`},mu=[`disabled`],hu={key:0,class:`intro-panel`},gu={class:`intro-grid`},_u={class:`knowledge-box`},vu={class:`knowledge-box`},yu={key:0},bu={key:1,class:`target-list`},xu=[`disabled`,`onClick`],Su={class:`path-note`},Cu={class:`feedback`},wu={key:3},Tu=`part-misc-two-stage-reducer`,Eu=`part-gear-gear-1-high-speed-shaft`;so(Nn({__name:`App`,setup(e){let t=`http://127.0.0.1:7211`.replace(/\/$/,``),n=W(`未连接`),r=W([]),i=W(null),a=W(!1),o=W(null),s=W(null),c=W(null),l=W(``),u=W(``),d=W(!1),f=W(!1),p=W(!1),m=W(null),h=W(!1),g=W(null),_=W(!1),v=W(!1),y=W(``),b=W(!1),x=W(`create_new_part`),S=W(`{}`),C=W(null),w=W(``),ee=W(``),te=W(``),ne=W(``),T=W(``),E=W(``),D=W(``),re=W(``),O=W(!0),k=W(!0),ie=W(!1),A=W(1e5),j=W(null),ae=W(null),oe=W(``),ce=W(``),le=W(``),ue=W(``),de=W(``),fe=W(``),N=W(null),pe=W(null),P=W(!1),F=W(``),I=W(null),L=W(null),me=W(null),z=W(`report`),B=W(0),he=W(0),ge=W(`idle`),V,_e,ve,ye=``,be=0,xe=[{key:`extract`,title:`提取零件 B-rep 与装配关系`,detail:`在装配体坐标系中读取各零件实例的 B-rep、包围盒、接触、配合、同轴和平面贴合等装配关系信息。`,thresholdSeconds:0},{key:`component_images`,title:`提取零件高亮图`,detail:`按零件实例导出装配体中的零件高亮图;对被遮挡零件保留直接相连零件作为上下文。`,thresholdSeconds:0},{key:`component_functions`,title:`LLM 生成各零件功能介绍`,detail:`让 LLM 结合产品描述、B-rep、图片、接触和配合关系,先判断每个零件在整机中的功能和接口角色。`,thresholdSeconds:0},{key:`functional_groups`,title:`形成多个功能组`,detail:`按照功能关系、直接连接关系和内部遮挡关系,把零件划分为若干功能组,后续按组分析。`,thresholdSeconds:0},{key:`group_part_checks`,title:`按功能组走零件查错过程`,detail:`依次对每个功能组提取组内零件 B-rep、图片和局部结构证据,并对组内非标零件执行零件查错流程。`,thresholdSeconds:0},{key:`retrieval`,title:`检索功能组相关规则`,detail:`针对功能组内的配合关系问题和各零件自身结构问题,检索对应动态知识表和禁忌规则。`,thresholdSeconds:0},{key:`judge`,title:`判定配合关系和零件自身问题`,detail:`结合功能组事实、配合关系、零件局部证据和检索规则,判定组内装配问题及各零件自身结构问题。`,thresholdSeconds:0}],Se=[{key:`extract`,title:`提取 B-rep 信息与特征分组`,detail:`读取零件的面、边、孔、平面、圆柱面、包围盒等 B-rep 信息,并先把孔组、平面组、圆柱面组和未知曲面候选分组。`,thresholdSeconds:0},{key:`feature_images`,title:`提取特征高亮图片`,detail:`按特征组导出对应高亮图片;对于内部有结构的回转体零件,补充中心线剖视图作为辅助证据。`,thresholdSeconds:0},{key:`coarse_scan`,title:`获取粗扫描信息`,detail:`让 LLM 结合静态知识表、B-rep 信息和特征图片,先生成面向知识错误类型的粗扫描信息。`,thresholdSeconds:0},{key:`dynamic_retrieval`,title:`检索动态知识表`,detail:`只用粗扫描信息检索动态侦查块和相关规则,不把粗扫描结论直接作为判定依据。`,thresholdSeconds:0},{key:`local_subgraphs`,title:`生成局部子图`,detail:`结合动态侦查信息、B-rep 和特征图片,生成用于判定的局部语义子图。`,thresholdSeconds:0},{key:`judge`,title:`规则判定`,detail:`把完整规则条款与局部子图、原始 B-rep 和图片证据逐条对比,输出问题位置、原因和修改建议。`,thresholdSeconds:0}],Ce=Q(()=>i.value===`testing`?`测试`:i.value===`diagnostic`?`查错`:i.value===`simulation`?`仿真`:i.value===`knowledge`?`知识库`:`学习`),we=Q(()=>r.value.find(e=>e.standard_id===Tu)??null),Te=Q(()=>r.value.filter(e=>e.source_type===`manifest`).filter(e=>e.standard_id!==Tu).filter(e=>e.steps.length>0).sort((e,t)=>e.title.localeCompare(t.title,`zh-CN`))),Ee=Q(()=>c.value?c.value.lesson_steps[c.value.current_step_index]??null:null),De=Q(()=>{if(!c.value)return``;let e=c.value.lesson_steps.length;return`${Math.min(c.value.current_step_index+1,e)}/${e}`}),Oe=Q(()=>I.value?.retrieved_issues??L.value?.retrieved_issues??[]),ke=Q(()=>Oe.value.filter((e,t,n)=>n.findIndex(t=>bt(t)===bt(e))===t).sort((e,t)=>t.score-e.score||e.rule_id.localeCompare(t.rule_id,`zh-CN`))),Ae=Q(()=>Oe.value.filter(e=>e.rule_id.startsWith(`18.`)).filter((e,t,n)=>n.findIndex(t=>bt(t)===bt(e))===t)),je=Q(()=>{let e=I.value?.final_issues??[];return e.length?e.map((e,t)=>({unit_key:e.related_unit_keys.join(`|`)||`final_issue_${t}`,component_id:``,instance_name:``,local_id:e.related_anchor_ids.join(`、`)||`final_issue_${t}`,retrieval_sentence:e.location||e.related_anchor_ids.join(`、`),anchor_type:`final_issue`,anchor_id:e.related_anchor_ids.join(`、`),pattern_type:``,rule_id:e.rule_id,rule_title:e.rule_title,primary_view:``,score:0,image_evidence_names:e.evidence_images.map(e=>e.name),evidence_images:e.evidence_images,judgement:e.report_block_markdown||wt(e),final_issue:!0,related_unit_keys:e.related_unit_keys,related_anchor_ids:e.related_anchor_ids})).filter(e=>kt(e.judgement)):yt(Ae.value.map(e=>({...e,judgement:vt(e,I.value?.final_report_markdown??I.value?.final_message??``)})).filter(e=>!I.value||kt(e.judgement)))}),Me=Q(()=>{let e=new Map;for(let t of je.value){let n=t.rule_id;e.has(n)||e.set(n,{rule_id:t.rule_id,rule_title:t.rule_title,issues:[]}),e.get(n).issues.push(t)}return Array.from(e.values()).sort((e,t)=>e.rule_id.localeCompare(t.rule_id,`zh-CN`))}),Ne=Q(()=>new Set(ke.value.flatMap(e=>e.evidence_images.map(e=>e.url))).size),Pe=Q(()=>{let e=[...I.value?.artifacts??[],...I.value?.bridge?.artifacts??[]];return e.filter((t,n)=>e.findIndex(e=>e.file_path===t.file_path)===n)}),Fe=Q(()=>ct(I.value?.final_report_markdown??``)),Ie=Q(()=>C.value===`part`?Se:xe),Le=Q(()=>C.value===`drawing-part`||C.value===`drawing-assembly`),Re=Q(()=>C.value===`drawing-part`),ze=Q(()=>C.value===`drawing-assembly`),Be=Q(()=>N.value?.format_issues??[]),Ve=Q(()=>ot(N.value?.final_report_markdown??``,`2. 标注错误`,`3. 绘制错误`)),He=Q(()=>ot(N.value?.final_report_markdown??``,`3. 绘制错误`)),Ue=Q(()=>C.value===`part`?`三维零件图查错`:C.value===`assembly`?`三维装配体查错`:C.value===`drawing-part`?`二维零件图查错`:`二维装配图查错`),H=Q(()=>C.value===`part`?`D:\\path\\model.SLDPRT`:`D:\\path\\model.SLDASM`),We=Q(()=>C.value===`drawing-part`?`二维零件图查错读取学生 DWG,格式错误由后端程序化线型/线宽规则直接判定;标注错误和绘制错误仍保留给 AI 分析模块。`:C.value===`drawing-assembly`?`二维装配图查错读取装配 DWG 工程图,覆盖提取归属信息、绘制工程图导出 DWG、图纸实体抽取、后续上色和装配图分析等流程。`:C.value===`part`?`零件查错只分析单个零件本身:先提取 B-rep 并做特征分组,再导出特征高亮图,随后由 LLM 结合静态知识表生成粗扫描信息,用粗扫描检索动态知识表,最后生成局部子图并判定。`:`装配体查错先提取各零件 B-rep 和装配关系,再导出零件高亮图,让 LLM 理解每个零件功能并形成多个功能组;之后按功能组走零件查错过程,并同时判定组内配合关系问题和零件自身问题。`),Ge=Q(()=>Le.value?``:w.value.trim()?C.value===`assembly`&&!T.value.trim()?`装配体查错需要填写外购件/不分析零件的完整名称。`:C.value===`part`&&!ne.value.trim()?`零件查错需要先填写该零件的功能画像。`:``:`请先填写 SolidWorks 模型路径。`),Ke=Q(()=>!P.value&&!Ge.value),qe=Q(()=>Le.value&&!P.value&&!!E.value.trim()),Je=Q(()=>Le.value&&!E.value.trim()?`如需重新抽取 DWG 结构化信息,请填写 DWG 图纸路径。`:``),Ye=Q(()=>Re.value?E.value.trim()?``:`请先填写学生零件 DWG 路径。`:``),Xe=Q(()=>ze.value?E.value.trim()?w.value.trim()?``:`请先填写三维装配体模型路径。`:`请先填写学生原始 DWG 路径。`:``),Ze=Q(()=>Re.value&&!P.value&&!Ye.value),Qe=Q(()=>ze.value&&!P.value&&!Xe.value),$e=Q(()=>ze.value?!le.value.trim()&&!j.value?.export_dir?`请先填写 DWG 提取目录,或先读取/抽取一次 DWG。`:ue.value.trim()?de.value.trim()?``:`请先填写二维线条零件归属目录。`:`请先填写三维接触分析目录。`:``),et=Q(()=>ze.value&&!P.value&&!$e.value),tt=Q(()=>Object.entries(j.value?.type_counts??{}).sort((e,t)=>t[1]-e[1]).slice(0,12)),nt=Q(()=>(j.value?.category_files??[]).filter(e=>e.exists||e.item_count>0)),rt=Q(()=>pe.value?.tolerance_assessment_context?.tolerance_candidates??[]),it=Q(()=>{let e=pe.value,t=e?.assembly_function_context?.interface_function_profiles?.cylindrical?.length??0,n=e?.assembly_function_context?.interface_function_profiles?.planar?.length??0,r=e?.tolerance_assessment_context?.tolerance_candidates??[];return{components:e?.assembly_function_context?.component_function_profiles?.length??0,cylindrical:t,planar:n,tolerances:r.length,brepBound:r.filter(e=>(e.drawing_boundary_to_3d_interface_matches??[]).some(e=>e.brep_binding_status===`brep_face_pair_candidate_by_boundary_pair_and_nominal_diameter`)).length,ownershipSamples:e?.drawing_ownership_context?.sample_count??0}}),at=Q(()=>rt.value.map(e=>{let t=(e.drawing_boundary_to_3d_interface_matches??[]).filter(e=>e.brep_binding_status===`brep_face_pair_candidate_by_boundary_pair_and_nominal_diameter`),n=Array.from(new Set(t.map(e=>e.interface_group_id).filter(Boolean)));return{id:e.candidate_id,text:e.dwg_annotation?.text||e.candidate_id,binding:e.binding_status,geometry:e.dwg_annotation?.drawing_geometry_binding?.status||`未绑定`,brepStrong:t.length,uniqueInterfaces:n.join(`、`)||`无`}}));function ot(e,t,n){if(!e.trim())return``;let r=`## ${t}`,i=e.indexOf(r);if(i<0)return``;let a=i+r.length,o=n?e.indexOf(`## ${n}`,a):-1;return e.slice(a,o>=0?o:void 0).trim()}function st(e){return`x ${e.min_x.toFixed(2)}-${e.max_x.toFixed(2)}, y ${e.min_y.toFixed(2)}-${e.max_y.toFixed(2)}`}function ct(e){let t=[],n=e.replace(/\r\n/g,`
`).split(`
`),r=[],i=[],a=()=>{r.length&&(t.push({type:`paragraph`,text:lt(r.join(` `))}),r=[])},o=()=>{i.length&&(t.push({type:`list`,items:i.map(lt)}),i=[])};for(let e of n){let n=e.trim();if(!n){a(),o();continue}let s=n.match(/^(#{1,6})\s+(.+)$/);if(s){a(),o(),t.push({type:`heading`,level:s[1].length,text:lt(s[2])});continue}let c=n.match(/^[-*+]\s+(.+)$/);if(c){a(),i.push(c[1]);continue}o(),r.push(n)}return a(),o(),t}function lt(e){return e.replace(/\*\*(.*?)\*\*/g,`$1`).replace(/__(.*?)__/g,`$1`).replace(/`([^`]+)`/g,`$1`).trim()}function ut(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function dt(e){if(!e)return`未知时间`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(`zh-CN`)}let ft=Q(()=>{let e=Ie.value;return e[Math.min(B.value,e.length-1)]}),pt=Q(()=>{if(ge.value===`done`)return 100;if(ge.value===`idle`)return 0;if(L.value?.total_units){let e=B.value/Ie.value.length,t=1/Ie.value.length,n=L.value.processed_units/Math.max(1,L.value.total_units);return Math.min(98,Math.round((e+t*n)*100))}let e=B.value/Ie.value.length;return Math.min(96,Math.round(e*100))}),mt=Q(()=>L.value?.total_units?`已处理 ${L.value.processed_units}/${L.value.total_units},剩余 ${L.value.remaining_units}`:``),ht=Q(()=>L.value?.current_unit??null),gt=Q(()=>L.value?.current_subgraph_component??null),_t=Q(()=>{let e=gt.value;if(!e)return``;let t=[`面 ${e.face_count}`,`特征 ${e.feature_count}`,`接触 ${e.contact_count}`,`配合 ${e.mate_count}`,`图片 ${e.image_count}`].join(` / `),n=e.adjacent_component_ids?.length?`,相邻 ${e.adjacent_component_ids.length} 个`:``;return`${e.current_index}/${e.total_components} · ${t}${n}`});function vt(e,t){let n=t.trim();if(!n)return`最终判定尚未生成。`;let r=Dt(n).split(/\n(?=-\s*判定[:])/).map(e=>e.trim()).filter(Boolean),i=r.find(t=>t.includes(e.rule_id)&&Ot(t,e.rule_id));if(i)return At(i);let a=e.rule_title.slice(0,10),o=a?r.find(t=>t.includes(a)&&Ot(t,e.rule_id)):null;return o?At(o):`最终报告未单独给出该条禁忌的判定说明,需要查看完整诊断报告或重新生成更结构化的判定。`}function yt(e){if(!I.value)return e;let t=new Set;return e.filter(e=>{let n=`${bt(e)}:${e.judgement.replace(/\s+/g,``)}`;return t.has(n)?!1:(t.add(n),!0)})}function bt(e){return`${e.unit_key||e.local_id||e.retrieval_sentence}:${e.rule_id}`}function xt(e){let t=e.evidence_images[0];if(!t)return{name:``,url:``};let n=Tt([e.anchor_id,e.anchor_type,e.pattern_type,e.unit_key,e.local_id,e.primary_view,...e.image_evidence_names??[]]);return e.evidence_images.map(t=>{let r=Et(`${t.name} ${t.url} ${t.image_kind??``} ${t.evidence_family??``} ${t.evidence_purpose??``}`),i=0;for(let e of n)e&&(r.includes(`/${e}/`)?i+=240:r.includes(e)&&(i+=120));return e.anchor_id&&r.includes(Et(e.anchor_id))&&(i+=200),e.image_evidence_names?.some(e=>r.includes(Et(e)))&&(i+=300),{image:t,score:i}}).sort((e,t)=>t.score-e.score)[0]?.image??t}function St(e){if(e.final_issue)return e.evidence_images;let t=xt(e);return t.url?[t]:[]}function Ct(e){let t=e.source_anchor_id||e.source_local_id||e.source_unit_key;return t?`${t}${e.name}`:e.name}function wt(e){return[`- 判定:${e.judgement}`,`- 对应禁忌:${e.rule_id} ${e.rule_title}`.trim(),`- 问题部位:${e.location}`,`- 为什么错:${e.reason}`,`- 建议:${e.suggestion}`].join(`
`)}function Tt(e){let t=new Set;for(let n of e){let e=Et(n??``);if(!e)continue;t.add(e);for(let n of e.split(/[/:\\\s]+/))n.length>=3&&t.add(n);let r=e.replace(/\.[a-z0-9]+$/i,``);r.length>=3&&t.add(r)}return Array.from(t)}function Et(e){return e.replace(/模型截图:|功能组拆分后零件全脸高亮图:|功能组接触配合证据图:|组件上下文截图:|装配体高亮截图:|零件图截图:|等轴测截图:/g,``).replace(/\\/g,`/`).trim().toLowerCase()}function Dt(e){return e.replace(/\r\n/g,`
`).replace(/\s+-\s*判定[:]/g,`
- 判定:`).replace(/\s+-\s*对应禁忌[:]/g,`
- 对应禁忌:`).replace(/\s+-\s*问题部位[:]/g,`
- 问题部位:`).replace(/\s+-\s*为什么错[:]/g,`
- 为什么错:`).replace(/\s+-\s*建议[:]/g,`
- 建议:`)}function Ot(e,t){let n=e.match(/对应禁忌[:]\s*([^\n]+)/);if(n)return n[1].includes(t);let r=Array.from(e.matchAll(/18\.\d+(?:\.\d+)*/g)).map(e=>e[0]);return r.length>0&&r[0]===t}function kt(e){let t=e.trim().toLowerCase();return!t||t.includes(`最终报告未单独给出`)?!1:t.includes(`problem`)||t.includes(`needs_review`)||t.includes(`问题部位`)||t.includes(`为什么错`)||t.includes(`需复核`)?!0:t.includes(`未发现明确违反`)||t.includes(`pass`)||t.includes(`not_applicable`)||t.includes(`不适用`)?!1:t.includes(`违反`)}function At(e){return e.replace(/```[\s\S]*?```/g,``).replace(/^#{1,4}\s*/gm,``).replace(/本次附加截图证据[:][\s\S]*$/g,``).replace(/\n{3,}/g,`
`).trim().slice(0,520)}function jt(e){if(C.value===`part`)switch(e){case`extract_brep`:return 0;case`classify_components`:case`export_images`:return 1;case`semantic_bridge`:case`validate_semantic_graph`:return 2;case`retrieval`:return 3;case`ai_final_judgement`:return 5;case`completed`:return Ie.value.length-1;case`failed`:return B.value;default:return 0}switch(e){case`extract_brep`:return 0;case`classify_components`:return 1;case`export_images`:return 1;case`semantic_bridge`:return 4;case`validate_semantic_graph`:return 4;case`retrieval`:return 5;case`ai_final_judgement`:return 6;case`completed`:return Ie.value.length-1;case`failed`:return B.value;default:return 0}}async function U(e,n){let r=await fetch(`${t}${e}`,n);if(!r.ok)throw Error(await r.text());return await r.json()}async function Mt(){try{let e=await U(`/health`);n.value=e.ok?`后端已连接 / ${e.backend}`:`连接异常`,r.value=(await U(`/api/standards`)).items}catch(e){n.value=e instanceof Error?e.message:`连接失败`}}function Nt(e){Bt(),i.value=e,e===`diagnostic`&&Ht()}function Pt(e){Vt(),C.value=e,e===`part`&&(te.value=``,T.value=``),(e===`drawing-part`||e===`drawing-assembly`)&&(w.value=``,te.value=``,ne.value=``,T.value=``),e===`drawing-assembly`&&Wt()}function Ft(){a.value=!0}function It(e){fn(),hn(),o.value=e,s.value=e===`overall`?we.value:null,c.value=null,m.value=null,g.value=null,l.value=``}async function Lt(e){fn(),hn(),s.value=e,c.value=null,m.value=null,g.value=null,l.value=``,await an(e.standard_id),e.standard_id===Eu&&await on(e.standard_id)}function zt(){if(fn(),i.value===`diagnostic`){if(C.value){Vt(),C.value=null;return}i.value=null;return}if(c.value){hn(),c.value=null,l.value=``;return}if(s.value&&o.value===`part`){s.value=null,m.value=null,g.value=null;return}if(o.value){o.value=null,s.value=null,m.value=null,g.value=null;return}if(a.value){a.value=!1;return}i.value=null}function Bt(){fn(),hn(),a.value=!1,o.value=null,s.value=null,c.value=null,m.value=null,g.value=null,l.value=``,C.value=null,te.value=``,ne.value=``,T.value=``,E.value=``,D.value=``,re.value=``,O.value=!0,k.value=!0,ie.value=!1,A.value=1e5,oe.value=``,ce.value=``,le.value=``,ue.value=``,de.value=``,fe.value=``,Vt()}function Vt(){I.value=null,L.value=null,z.value=`report`,F.value=``,ge.value=`idle`,B.value=0,he.value=0,P.value=!1,j.value=null,N.value=null,pe.value=null,rn(),nn()}async function Ht(){try{me.value=await U(`/api/mechanical-diagnostics/usage`)}catch(e){F.value=e instanceof Error?e.message:`加载机械查错说明失败`}}async function Ut(){if(!Ke.value){F.value=Ge.value;return}P.value=!0,F.value=`正在启动${Ue.value}任务...`,I.value=null,L.value=null,z.value=`report`,en();let e=C.value===`assembly`;try{let t=await U(`/api/mechanical-diagnostics/diagnose/start`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model_path:w.value,output_dir:ee.value||null,product_description:e&&te.value||null,part_function_profile:e?null:ne.value||null,purchased_component_hints:e?T.value.split(/\r?\n|[;]/).map(e=>e.trim()).filter(Boolean):[],deep:!1,max_iterations:1,max_rules_per_unit:4})});L.value=t,F.value=t.message||`任务已启动,正在等待后端进度...`,ve=window.setInterval(()=>{$t(t.job_id)},1500),await $t(t.job_id)}catch(e){F.value=e instanceof Error?e.message:`${Ue.value}失败`,tn(!1),P.value=!1}}async function Wt(){try{ae.value=await U(`/api/dwg-draft/bridge`)}catch(e){F.value=e instanceof Error?e.message:`读取 AutoCAD 桥接状态失败`}}async function Gt(){P.value=!0,F.value=`正在读取最近一次 DWG 抽取结果...`;try{let e=await U(`/api/dwg-draft/latest-extraction`);if(!e.found){j.value=null,F.value=e.message||`还没有可用的 DWG 抽取结果。`;return}j.value={ok:e.ok,source:`latest extraction`,prog_id:``,started:!1,drawing_path:``,export_dir:e.export_dir,manifest_path:e.manifest_path,entity_count:e.category_files.find(e=>e.category===`entities-common`)?.item_count??0,type_counts:{},category_files:e.category_files,message:e.message},F.value=`已读取最近一次 DWG 抽取结果。`}catch(e){F.value=e instanceof Error?e.message:`读取最近一次 DWG 抽取结果失败`}finally{P.value=!1}}async function Kt(){if(!qe.value){F.value=Je.value;return}P.value=!0,F.value=`正在通过 AutoCAD 读取 DWG 图纸...`,j.value=null;try{let e=await U(`/api/dwg-draft/extract`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({drawing_path:E.value,output_dir:D.value||``,prog_id:re.value||``,visible:O.value,close_after_extract:ie.value,max_entities:A.value||1e5,use_bridge:k.value,bridge_timeout_seconds:600})});j.value=e,F.value=e.message||`DWG 图纸抽取完成。`,await Wt()}catch(e){F.value=e instanceof Error?e.message:`DWG 图纸抽取失败`}finally{P.value=!1}}async function qt(){if(!Ze.value){F.value=Ye.value;return}P.value=!0,F.value=`正在执行二维零件图格式查错:抽取 DWG 实体并按程序化规则检查线型/线宽...`,N.value=null;try{let e=await U(`/api/drawing-part-diagnostics/run-full`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({student_dwg_path:E.value,output_dir:fe.value||``,prog_id:re.value||``,visible:O.value,max_entities:A.value||1e5})});N.value=e,F.value=e.ok?`二维零件图格式查错完成。`:e.message}catch(e){F.value=e instanceof Error?e.message:`二维零件图格式查错失败`}finally{P.value=!1}}async function Jt(){if(!Qe.value){F.value=Xe.value;return}P.value=!0,F.value=`正在执行二维装配图完整查错流程:识别主视图、生成工程图、导出两张 PNG,再进入 AI 三层分析...`,N.value=null;try{let e=await U(`/api/drawing-assembly-diagnostics/run-full`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({student_dwg_path:E.value,model_path:w.value,mechanical_context_dir:ue.value||``,output_dir:fe.value||``,visible:O.value,max_entities:A.value||1e5})});N.value=e,F.value=e.ok?`二维装配图完整查错流程完成。`:e.message}catch(e){F.value=e instanceof Error?e.message:`二维装配图完整查错流程失败`}finally{P.value=!1}}async function Yt(){if(!et.value){F.value=$e.value;return}P.value=!0,F.value=`正在构建二维公差到三维 B-rep 接触功能的证据上下文...`,pe.value=null;try{pe.value=await U(`/api/drawing-assembly-diagnostics/build-interface-drawing-context`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({dwg_extraction_dir:le.value||j.value?.export_dir||``,mechanical_context_dir:ue.value||``,ownership_context_dir:de.value||``})}),F.value=`证据上下文构建完成:${it.value.tolerances} 条公差,${it.value.brepBound} 条已有 B-rep 强证据。`}catch(e){F.value=e instanceof Error?e.message:`构建二维-三维公差证据上下文失败`}finally{P.value=!1}}function Xt(e){return{"entities-common":`全部实体`,geometry:`几何线框`,annotations:`文字标注`,dimensions:`尺寸标注`,"dimensional-tolerances":`尺寸公差`,roughness:`粗糙度`,"geometric-tolerances":`形位公差`,datums:`基准`,"unknown-entities":`未分类实体`}[e]??e}async function Zt(){P.value=!0,F.value=`正在复用已有 B-rep、图片和局部子图集合重新判定...`,I.value=null,L.value=null,en(),B.value=Math.max(0,Ie.value.length-2);try{let e=await U(`/api/mechanical-diagnostics/diagnose/finalize-existing`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({output_dir:ee.value||null,max_rules_per_unit:20})});I.value=e,z.value=`report`,F.value=e.final_status===`ok`?`已使用已有证据重新完成最终判定。`:e.final_message,tn(e.final_status===`ok`)}catch(e){F.value=e instanceof Error?e.message:`复用已有证据重新判定失败`,tn(!1)}finally{P.value=!1}}async function Qt(){P.value=!0,F.value=`正在读取已有完整诊断结果...`,I.value=null,L.value=null,z.value=`report`;try{let e=await U(`/api/mechanical-diagnostics/diagnose/load-existing`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({output_dir:ee.value||null,model_path:w.value||``})});I.value=e,ee.value=e.output_dir,!w.value&&e.model_path&&(w.value=e.model_path),F.value=e.final_message,ge.value=e.ok?`done`:`failed`,B.value=Ie.value.length-1}catch(e){F.value=e instanceof Error?e.message:`读取已有完整诊断结果失败`}finally{P.value=!1}}async function $t(e){try{let t=await U(`/api/mechanical-diagnostics/diagnose/status/${e}`);L.value=t,F.value=t.message||F.value,B.value=Math.max(B.value,jt(t.phase)),t.status===`done`?(I.value=t.result??null,z.value=`report`,F.value=t.result?.final_status===`ok`?`${Ue.value}完成。`:t.message,tn(!0),P.value=!1,rn()):t.status===`failed`&&(I.value=t.result??null,F.value=t.error||t.message||`${Ue.value}失败`,tn(!1),P.value=!1,rn())}catch(e){F.value=e instanceof Error?e.message:`读取查错进度失败`}}function en(){nn(),ge.value=`running`,B.value=0,he.value=0;let e=Date.now();_e=window.setInterval(()=>{he.value=Math.floor((Date.now()-e)/1e3)},1e3)}function tn(e){nn(),ge.value=e?`done`:`failed`,e&&(B.value=Ie.value.length-1)}function nn(){_e!==void 0&&(window.clearInterval(_e),_e=void 0)}function rn(){ve!==void 0&&(window.clearInterval(ve),ve=void 0)}async function an(e){_.value=!0;try{g.value=await U(`/api/teaching/introduction/${e}`)}catch(e){l.value=e instanceof Error?e.message:`加载课前导入失败`}finally{_.value=!1}}async function on(e){h.value=!0;try{m.value=await U(`/api/teaching/design/${e}`)}catch(e){l.value=e instanceof Error?e.message:`教学语言设计失败`}finally{h.value=!1}}async function sn(){if(!(!s.value||!i.value)){fn(),p.value=!0,l.value=`正在连接或启动 SolidWorks...`;try{c.value=await U(i.value===`teaching`?`/api/teaching/sessions`:`/api/testing/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({standard_id:s.value.standard_id})}),l.value=`SolidWorks 已连接,课程已开始。`,i.value===`teaching`&&(setTimeout(()=>bn(Ee.value?.voice_text??``),200),mn())}catch(e){l.value=e instanceof Error?e.message:`启动课程失败`}finally{p.value=!1}}}async function cn(){if(!(!s.value||!g.value)){v.value=!0,l.value=`正在打开标准零件...`;try{l.value=(await U(`/api/teaching/introduction/${s.value.standard_id}/open-standard-part`,{method:`POST`})).message||`标准零件已打开。`,await dn()}catch(e){l.value=e instanceof Error?e.message:`打开标准零件失败`}finally{v.value=!1}}}async function ln(e){fn(),await un(e,!0,!1)}async function un(e,t,n){if(!(!s.value||!g.value)){y.value=e.id,l.value=`正在高亮:${e.label}...`;try{let n=await U(`/api/teaching/introduction/${s.value.standard_id}/highlight/${e.id}`,{method:`POST`});l.value=n.message,t&&bn(`${e.description}${n.ok?n.message:`暂时没有稳定高亮。${n.message}`}`)}catch(e){l.value=e instanceof Error?e.message:`高亮功能面失败`,t&&bn(l.value)}finally{n||(y.value=``)}}}async function dn(){if(!g.value)return;fn();let e=++be;b.value=!0;try{let t=g.value;await xn(`先认识标准零件:${t.title}。下面我会按关键功能面依次讲解,讲到哪里,SolidWorks 里就高亮哪里。`);let n=t.highlight_targets.slice(0,12);for(let t of n){if(e!==be)return;let n=un(t,!1,!0);if(e!==be)return;await Promise.all([n,xn(`现在看${t.label}${t.description}`)]),e===be&&(y.value=``)}e===be&&(l.value=`零件课前讲解完成,可以开始正式建模教学。`)}finally{e===be&&(b.value=!1,y.value=``)}}function fn(){be++,b.value=!1,y.value=``,window.speechSynthesis.cancel()}async function pn(){c.value&&=await U(`/api/sessions/${c.value.session_id}`)}function mn(){hn(),!(!c.value||i.value!==`teaching`)&&(f.value=!0,ye=``,u.value=`实时监听已开启。`,V=window.setInterval(()=>{gn()},3500),gn())}function hn(){f.value=!1,d.value=!1,u.value=``,ye=``,V!==void 0&&(window.clearInterval(V),V=void 0)}async function gn(){if(!c.value||i.value!==`teaching`||d.value)return;if(c.value.status===`completed`){hn();return}let e=c.value.current_step_index;d.value=!0,u.value=`正在读取 SolidWorks 当前特征树...`;try{let t=await U(`/api/teaching/sessions/${c.value.session_id}/poll-active-part`,{method:`POST`});l.value=t.result.feedback_text,await pn(),t.result.ok&&c.value?.current_step_index!==e&&Ee.value?(ye=``,bn(Ee.value.voice_text)):t.result.ok||Sn(t.result.feedback_text,e),c.value?.status===`completed`?(l.value=`教学步骤已经完成。`,hn()):u.value=f.value?`实时监听中,已读取 ${t.observed_step_count} 个特征步骤。`:``}catch(e){l.value=e instanceof Error?e.message:`实时读取 SolidWorks 失败`,Sn(l.value,c.value.current_step_index),u.value=`监听遇到错误,系统会继续重试。`}finally{d.value=!1}}async function _n(){if(!c.value)return;let e={};try{e=JSON.parse(S.value||`{}`)}catch{l.value=`参数 JSON 格式错误`;return}l.value=(await U(`/api/teaching/sessions/${c.value.session_id}/observations`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({steps:[{skill:x.value,args:e,name:x.value}]})})).feedback_text,await pn()}function vn(){bn(Ee.value?.voice_text??``)}function yn(){dn()}function bn(e){xn(e)}function xn(e){return e?new Promise(t=>{let n=new SpeechSynthesisUtterance(e);n.lang=`zh-CN`,n.onend=()=>t(),n.onerror=()=>t(),window.speechSynthesis.cancel(),window.speechSynthesis.speak(n)}):Promise.resolve()}function Sn(e,t){if(!e)return;let n=`${c.value?.session_id??``}:${t}:${e}`;n!==ye&&(ye=n,bn(e))}async function Cn(){await Mt();let e=new URLSearchParams(window.location.search).get(`mode`);(e===`simulation`||e===`knowledge`)&&(i.value=e)}return Jn(Cn),Zn(()=>{fn(),hn(),rn(),nn()}),(e,r)=>(J(),Y(`main`,ps,[X(`header`,ms,[r[41]||=X(`div`,null,[X(`p`,null,`Agent4`),X(`h1`,null,`二级齿轮减速器建模训练`)],-1),X(`div`,hs,[X(`span`,null,R(n.value),1),i.value?(J(),Y(`button`,{key:0,class:`ghost`,onClick:Bt},`返回首页`)):Z(``,!0)])]),i.value?i.value===`knowledge`?(J(),Ei(Ao,{key:1})):i.value===`simulation`?(J(),Ei(fs,{key:2})):i.value===`diagnostic`&&!C.value?(J(),Y(`section`,vs,[X(`div`,{class:`stage-head`},[X(`button`,{class:`ghost`,onClick:zt},`返回`),r[48]||=X(`h2`,null,`选择查错对象`,-1)]),X(`div`,ys,[X(`button`,{class:`choice diagnostic-choice`,onClick:r[5]||=e=>Pt(`part`)},[...r[49]||=[X(`strong`,null,`三维零件图查错`,-1),X(`span`,null,`只分析单个零件的结构设计问题,不需要产品描述和外购件信息。`,-1)]]),X(`button`,{class:`choice diagnostic-choice`,onClick:r[6]||=e=>Pt(`assembly`)},[...r[50]||=[X(`strong`,null,`三维装配体查错`,-1),X(`span`,null,`先理解整机功能、零件角色和配合关系,再对非标零件逐个查错。`,-1)]]),X(`button`,{class:`choice diagnostic-choice`,onClick:r[7]||=e=>Pt(`drawing-part`)},[...r[51]||=[X(`strong`,null,`二维零件图查错`,-1),X(`span`,null,`已接入格式查错:按 DWG 图元规则检查线型和线宽,标注/绘制错误保留给 AI。`,-1)]]),X(`button`,{class:`choice diagnostic-choice`,onClick:r[8]||=e=>Pt(`drawing-assembly`)},[...r[52]||=[X(`strong`,null,`二维装配图查错`,-1),X(`span`,null,`当前已接入:归属信息、工程图导出 DWG、图纸抽取、上色和装配图分析。`,-1)]])])])):i.value===`diagnostic`&&C.value?(J(),Y(`section`,bs,[X(`aside`,xs,[X(`button`,{class:`ghost`,onClick:zt},`返回`),X(`h2`,null,R(Ue.value),1),X(`p`,null,R(We.value),1),Re.value?(J(),Y(q,{key:0},[r[61]||=X(`label`,{class:`field-label`},`学生零件 DWG 路径`,-1),G(X(`input`,{"onUpdate:modelValue":r[9]||=e=>E.value=e,placeholder:`D:\\path\\part-drawing.dwg`},null,512),[[$,E.value]]),r[62]||=X(`label`,{class:`field-label`},`查错输出目录(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[10]||=e=>fe.value=e,placeholder:`留空则写入 runtime\\drawing-part-diagnostics`},null,512),[[$,fe.value]]),r[63]||=X(`div`,{class:`diagnostic-note`},` 当前零件图入口先接入格式查错:线型、线宽由后端直接读取 DWG 图元信息判断,不经过 AI。标注错误和绘制错误后续仍走 AI 模块。 `,-1),X(`details`,Ss,[r[56]||=X(`summary`,null,`调试:AutoCAD 抽取参数`,-1),r[57]||=X(`label`,{class:`field-label`},`抽取输出目录(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[11]||=e=>D.value=e,placeholder:`留空则写入 runtime\\dwg-draft\\latest-extraction`},null,512),[[$,D.value]]),r[58]||=X(`label`,{class:`field-label`},`AutoCAD ProgID(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[12]||=e=>re.value=e,placeholder:`留空自动选择,例如 AutoCAD.Application.23.1`},null,512),[[$,re.value]]),r[59]||=X(`label`,{class:`field-label`},`最大读取实体数`,-1),G(X(`input`,{"onUpdate:modelValue":r[13]||=e=>A.value=e,type:`number`,min:`1`,step:`1000`},null,512),[[$,A.value,void 0,{number:!0}]]),X(`label`,Cs,[G(X(`input`,{"onUpdate:modelValue":r[14]||=e=>k.value=e,type:`checkbox`},null,512),[[Qa,k.value]]),r[53]||=X(`span`,null,`优先使用常驻 AutoCAD 桥接进程`,-1)]),X(`label`,ws,[G(X(`input`,{"onUpdate:modelValue":r[15]||=e=>O.value=e,type:`checkbox`},null,512),[[Qa,O.value]]),r[54]||=X(`span`,null,`抽取时显示 AutoCAD`,-1)]),X(`label`,Ts,[G(X(`input`,{"onUpdate:modelValue":r[16]||=e=>ie.value=e,type:`checkbox`},null,512),[[Qa,ie.value]]),r[55]||=X(`span`,null,`抽取完成后关闭图纸`,-1)])]),X(`div`,Es,[Fi(` 桥接状态:`+R(ae.value?ae.value.alive?`在线`:`未在线`:`未读取`)+` `,1),r[60]||=X(`br`,null,null,-1),Fi(` `+R(ae.value?.message||`可以直接抽取;如果桥接未在线,后端会尝试启动外部抽取器。`),1)]),X(`div`,Ds,[X(`button`,{disabled:!Ze.value,onClick:qt},`开始二维零件图格式查错`,8,Os),X(`button`,{class:`ghost`,disabled:!qe.value,onClick:Kt},`重新抽取DWG结构化信息`,8,ks),X(`button`,{class:`ghost`,disabled:P.value,onClick:Gt},`读取最近一次结果`,8,As),X(`button`,{class:`ghost`,disabled:P.value,onClick:Wt},`刷新桥接状态`,8,js)]),Ye.value&&!P.value?(J(),Y(`p`,Ms,R(Ye.value),1)):Z(``,!0),Je.value&&!P.value?(J(),Y(`p`,Ns,R(Je.value),1)):Z(``,!0)],64)):ze.value?(J(),Y(q,{key:1},[r[72]||=X(`label`,{class:`field-label`},`学生原始 DWG 路径`,-1),G(X(`input`,{"onUpdate:modelValue":r[17]||=e=>E.value=e,placeholder:`D:\\path\\assembly-drawing.dwg`},null,512),[[$,E.value]]),r[73]||=X(`label`,{class:`field-label`},`三维装配体模型路径`,-1),G(X(`input`,{"onUpdate:modelValue":r[18]||=e=>w.value=e,placeholder:`D:\\path\\model.SLDASM`},null,512),[[$,w.value]]),r[74]||=X(`label`,{class:`field-label`},`三维接触分析目录(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[19]||=e=>ue.value=e,placeholder:`例如 runtime\\2\\external_interface_recheck_v3_fast`},null,512),[[$,ue.value]]),r[75]||=X(`p`,{class:`form-hint`},`留空时按同一装配体模型自动选取最新的外部接口分析报告。`,-1),r[76]||=X(`label`,{class:`field-label`},`二维线条零件归属目录`,-1),G(X(`input`,{"onUpdate:modelValue":r[20]||=e=>de.value=e,placeholder:`例如 runtime\\current-standard-flow\\41-all-view-ownership`},null,512),[[$,de.value]]),r[77]||=X(`label`,{class:`field-label`},`查错输出目录(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[21]||=e=>fe.value=e,placeholder:`留空则写入 runtime\\drawing-assembly-diagnostics`},null,512),[[$,fe.value]]),r[78]||=X(`div`,{class:`diagnostic-note`},` 该入口会从学生 DWG 和当前打开的 SolidWorks 工程图开始,自动识别主视图、放置/对齐三维工程图、导出学生原始视图 PNG 和归属/上色 PNG,然后进入三层查错。DWG 不会直接传给 AI。 `,-1),X(`details`,Ps,[r[67]||=X(`summary`,null,`调试:只抽取 DWG 结构化信息`,-1),r[68]||=X(`label`,{class:`field-label`},`抽取输出目录(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[22]||=e=>D.value=e,placeholder:`留空则写入 runtime\\dwg-draft\\latest-extraction`},null,512),[[$,D.value]]),r[69]||=X(`label`,{class:`field-label`},`AutoCAD ProgID(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[23]||=e=>re.value=e,placeholder:`留空自动选择,例如 AutoCAD.Application.23.1`},null,512),[[$,re.value]]),r[70]||=X(`label`,{class:`field-label`},`最大读取实体数`,-1),G(X(`input`,{"onUpdate:modelValue":r[24]||=e=>A.value=e,type:`number`,min:`1`,step:`1000`},null,512),[[$,A.value,void 0,{number:!0}]]),X(`label`,Fs,[G(X(`input`,{"onUpdate:modelValue":r[25]||=e=>k.value=e,type:`checkbox`},null,512),[[Qa,k.value]]),r[64]||=X(`span`,null,`优先使用常驻 AutoCAD 桥接进程`,-1)]),X(`label`,Is,[G(X(`input`,{"onUpdate:modelValue":r[26]||=e=>O.value=e,type:`checkbox`},null,512),[[Qa,O.value]]),r[65]||=X(`span`,null,`抽取时显示 AutoCAD`,-1)]),X(`label`,Ls,[G(X(`input`,{"onUpdate:modelValue":r[27]||=e=>ie.value=e,type:`checkbox`},null,512),[[Qa,ie.value]]),r[66]||=X(`span`,null,`抽取完成后关闭图纸`,-1)])]),X(`div`,Rs,[Fi(` 桥接状态:`+R(ae.value?ae.value.alive?`在线`:`未在线`:`未读取`)+` `,1),r[71]||=X(`br`,null,null,-1),Fi(` `+R(ae.value?.message||`可以直接抽取;如果桥接未在线,后端会尝试启动外部抽取器。`),1)]),X(`div`,zs,[X(`button`,{disabled:!Qe.value,onClick:Jt},`开始二维装配图完整查错流程`,8,Bs),X(`button`,{class:`ghost`,disabled:!et.value,onClick:Yt},`构建公差-B-rep证据`,8,Vs),X(`button`,{class:`ghost`,disabled:!qe.value,onClick:Kt},`重新抽取DWG结构化信息`,8,Hs),X(`button`,{class:`ghost`,disabled:P.value,onClick:Gt},`读取最近一次结果`,8,Us),X(`button`,{class:`ghost`,disabled:P.value,onClick:Wt},`刷新桥接状态`,8,Ws)]),Xe.value&&!P.value?(J(),Y(`p`,Gs,R(Xe.value),1)):Z(``,!0),$e.value&&!P.value?(J(),Y(`p`,Ks,R($e.value),1)):Z(``,!0),Je.value&&!P.value?(J(),Y(`p`,qs,R(Je.value),1)):Z(``,!0)],64)):(J(),Y(q,{key:2},[r[83]||=X(`label`,{class:`field-label`},`SolidWorks 模型路径`,-1),G(X(`input`,{"onUpdate:modelValue":r[28]||=e=>w.value=e,placeholder:H.value},null,8,Js),[[$,w.value]]),r[84]||=X(`label`,{class:`field-label`},`输出目录(可选)`,-1),G(X(`input`,{"onUpdate:modelValue":r[29]||=e=>ee.value=e,placeholder:`留空则写入 runtime`},null,512),[[$,ee.value]]),C.value===`assembly`?(J(),Y(q,{key:0},[r[79]||=X(`label`,{class:`field-label`},`产品描述`,-1),G(X(`textarea`,{"onUpdate:modelValue":r[30]||=e=>te.value=e,rows:`4`,placeholder:`例如:这是机器人小臂关节组件,用于连接大臂和小臂,内部包含电机、减速器、轴承和连接支撑件。`},null,512),[[$,te.value]]),r[80]||=X(`label`,{class:`field-label`},`外购件/不分析零件完整名称`,-1),G(X(`textarea`,{"onUpdate:modelValue":r[31]||=e=>T.value=e,rows:`4`,placeholder:`每行一个完整零件/子装配名或完整组件实例名,不要只写“电机”“减速器”等泛词。例如:
小臂关节装配2
GBT276-94深沟球轴承61810-2Z`},null,512),[[$,T.value]])],64)):(J(),Y(q,{key:1},[r[81]||=X(`label`,{class:`field-label`},`零件功能画像`,-1),G(X(`textarea`,{"onUpdate:modelValue":r[32]||=e=>ne.value=e,rows:`5`,placeholder:`说明该零件的用途、主要功能面、可能承担的定位/支撑/传力/密封/导向/紧固等作用。例如:该零件是减速器箱盖,用于封闭箱体、支撑轴承座并提供安装/定位面。`},null,512),[[$,ne.value]]),r[82]||=X(`div`,{class:`diagnostic-note`},` 单零件查错没有装配体自动生成功能画像,必须由用户提供这部分功能上下文。 `,-1)],64)),X(`div`,Ys,[X(`button`,{disabled:!Ke.value,onClick:Ut},`开始`+R(Ue.value),9,Xs),X(`button`,{class:`ghost`,disabled:P.value,onClick:Qt},`读取已有完整结果`,8,Zs),X(`button`,{class:`ghost`,disabled:P.value,onClick:Zt},`使用已有证据重新判定`,8,Qs)])],64)),Ge.value&&!P.value?(J(),Y(`p`,$s,R(Ge.value),1)):Z(``,!0),X(`p`,ec,R(F.value),1)]),X(`section`,tc,[X(`div`,nc,[X(`h2`,null,R(Ue.value)+`结果`,1),P.value?(J(),Y(`span`,rc,`运行中`)):Z(``,!0)]),ze.value&&pe.value?(J(),Y(`section`,ic,[X(`div`,ac,[X(`div`,null,[r[85]||=X(`strong`,null,`公差-B-rep证据上下文已构建`,-1),X(`span`,null,R(it.value.tolerances)+` 条公差 / `+R(it.value.brepBound)+` 条有 B-rep 强证据`,1)]),r[86]||=X(`span`,{class:`status-pill`},`证据收集`,-1)]),X(`div`,oc,[X(`article`,null,[r[87]||=X(`strong`,null,`二维归属采样`,-1),X(`p`,null,R(it.value.ownershipSamples)+` 点`,1)]),X(`article`,null,[r[88]||=X(`strong`,null,`三维接口`,-1),X(`p`,null,`圆柱 `+R(it.value.cylindrical)+` / 平面 `+R(it.value.planar),1)]),X(`article`,null,[r[89]||=X(`strong`,null,`零件功能画像`,-1),X(`p`,null,R(it.value.components)+` 个`,1)])]),X(`div`,sc,[r[90]||=X(`h3`,null,`公差绑定摘要`,-1),at.value.length?(J(),Y(`div`,cc,[(J(!0),Y(q,null,K(at.value,e=>(J(),Y(`article`,{key:e.id,class:`format-issue-card`},[X(`div`,null,[X(`strong`,null,R(e.text),1),X(`span`,null,R(e.binding),1)]),X(`p`,null,`二维几何:`+R(e.geometry),1),X(`p`,null,`B-rep强证据:`+R(e.brepStrong)+` 条`,1),X(`p`,null,`接口:`+R(e.uniqueInterfaces),1)]))),128))])):(J(),Y(`p`,lc,`未解析到可用于公差判断的候选。`))])])):Z(``,!0),Le.value&&N.value?(J(),Y(`section`,uc,[X(`div`,dc,[X(`strong`,null,R(Re.value?N.value.ok?`格式查错完成`:`格式查错未完成`:N.value.ok?`AI三层分析完成`:`AI三层分析未完成`),1),X(`span`,null,R(N.value.stage)+` / `+R(N.value.artifacts.length)+` 个产物`,1)]),X(`div`,fc,[X(`article`,null,[r[91]||=X(`strong`,null,`学生 DWG`,-1),X(`p`,null,R(N.value.student_dwg_path||`由流程输入生成`),1)]),ze.value?(J(),Y(`article`,pc,[r[92]||=X(`strong`,null,`三维模型`,-1),X(`p`,null,R(N.value.model_path||`由流程输入生成`),1)])):Z(``,!0),ze.value?(J(),Y(`article`,mc,[r[93]||=X(`strong`,null,`学生原始视图`,-1),X(`p`,null,R(N.value.student_view_image),1)])):Z(``,!0),ze.value?(J(),Y(`article`,hc,[r[94]||=X(`strong`,null,`归属/上色图`,-1),X(`p`,null,R(N.value.ownership_image),1)])):Z(``,!0),X(`article`,null,[r[95]||=X(`strong`,null,`输出目录`,-1),X(`p`,null,R(N.value.output_dir),1)]),X(`article`,null,[r[96]||=X(`strong`,null,`最终报告`,-1),X(`p`,null,R(N.value.final_report_path),1)]),N.value.pipeline_manifest_path?(J(),Y(`article`,gc,[r[97]||=X(`strong`,null,`完整流程清单`,-1),X(`p`,null,R(N.value.pipeline_manifest_path),1)])):Z(``,!0)]),r[110]||=X(`h3`,null,`流程产物`,-1),X(`div`,_c,[ze.value?(J(),Y(`article`,vc,[r[98]||=X(`strong`,null,`第一轮视图探针`,-1),r[99]||=X(`span`,null,`图片初筛`,-1),X(`p`,null,R(N.value.probe_path),1)])):Z(``,!0),X(`article`,yc,[r[100]||=X(`strong`,null,`补充事实`,-1),r[101]||=X(`span`,null,`三维/DWG摘要`,-1),X(`p`,null,R(N.value.supplemental_facts_path),1)]),ze.value?(J(),Y(`article`,bc,[r[102]||=X(`strong`,null,`三层候选问题`,-1),r[103]||=X(`span`,null,`格式/标注/绘制`,-1),X(`p`,null,R(N.value.candidate_issues_path),1)])):Z(``,!0),ze.value?(J(),Y(`article`,xc,[r[104]||=X(`strong`,null,`知识库检索`,-1),r[105]||=X(`span`,null,`规则依据`,-1),X(`p`,null,R(N.value.retrieved_rules_path),1)])):Z(``,!0)]),X(`div`,Sc,[X(`section`,Cc,[X(`div`,wc,[r[106]||=X(`h3`,null,`1. 格式错误`,-1),X(`span`,Tc,R(Be.value.length)+` 条`,1)]),r[107]||=X(`p`,{class:`form-hint`},`线型和线宽由后端程序化规则判断,不经过 AI。`,-1),Be.value.length?(J(),Y(`div`,Ec,[(J(!0),Y(q,null,K(Be.value,e=>(J(),Y(`article`,{key:e.id,class:`format-issue-card`},[e.evidence_image_url?(J(),Y(`img`,{key:0,src:`${Rt(t)}${e.evidence_image_url}`,alt:e.label||`格式错误区域`},null,8,Dc)):(J(),Y(`div`,Oc,`局部图未生成`)),X(`div`,kc,[X(`strong`,null,R(e.label||`格式错误`),1),X(`span`,null,R(e.expected_style),1),X(`p`,null,R(e.reason),1),X(`small`,null,R(e.current_style),1),X(`small`,null,R(st(e.bounds)),1)])]))),128))])):(J(),Y(`p`,Ac,`未发现确定的线型/线宽格式错误。`))]),X(`section`,jc,[r[108]||=X(`h3`,null,`2. 标注错误`,-1),Ve.value?(J(),Y(`pre`,Mc,R(Ve.value),1)):(J(),Y(`p`,Nc,`AI 报告中没有单独列出标注错误。`))]),X(`section`,Pc,[r[109]||=X(`h3`,null,`3. 绘制错误`,-1),He.value?(J(),Y(`pre`,Fc,R(He.value),1)):(J(),Y(`p`,Ic,`AI 报告中没有单独列出绘制错误。`))])]),X(`div`,Lc,R(Re.value?`该流程没有把线型/线宽格式错误交给 AI;当前零件图入口只执行 DWG 程序化格式查错。`:`该流程没有把 DWG 直接传给 AI;AI 输入为两张图片、后端整理后的结构化事实和知识库检索结果。`),1)])):Le.value&&j.value?(J(),Y(`section`,Rc,[X(`div`,zc,[X(`strong`,null,R(j.value.ok?`图纸抽取完成`:`图纸抽取未完成`),1),X(`span`,null,`共读取 `+R(j.value.entity_count)+` 个实体,输出 `+R(nt.value.length)+` 类结构化文件`,1)]),X(`div`,Bc,[X(`article`,null,[r[111]||=X(`strong`,null,`图纸类型`,-1),X(`p`,null,R(Ue.value),1)]),X(`article`,null,[r[112]||=X(`strong`,null,`图纸文件`,-1),X(`p`,null,R(j.value.drawing_path||`来自最近一次结果`),1)]),X(`article`,null,[r[113]||=X(`strong`,null,`输出目录`,-1),X(`p`,null,R(j.value.export_dir),1)]),X(`article`,null,[r[114]||=X(`strong`,null,`抽取方式`,-1),X(`p`,null,R(j.value.source)+R(j.value.prog_id?` / ${j.value.prog_id}`:``),1)])]),r[116]||=X(`h3`,null,`二维证据分类`,-1),X(`div`,Vc,[(J(!0),Y(q,null,K(nt.value,e=>(J(),Y(`article`,{key:e.category,class:`category-card`},[X(`strong`,null,R(Xt(e.category)),1),X(`span`,null,R(e.item_count)+` 项`,1),X(`p`,null,R(e.file),1)]))),128))]),tt.value.length?(J(),Y(q,{key:0},[r[115]||=X(`h3`,null,`实体类型概览`,-1),X(`div`,Hc,[(J(!0),Y(q,null,K(tt.value,([e,t])=>(J(),Y(`span`,{key:e},R(e)+` `+R(t),1))),128))])],64)):Z(``,!0),r[117]||=X(`div`,{class:`diagnostic-note`},` 当前这里只显示 DWG 抽取结果;格式查错需要点击左侧开始查错按钮。 `,-1)])):!Le.value&&ge.value!==`idle`?(J(),Y(`section`,Uc,[X(`div`,Wc,[X(`div`,null,[X(`strong`,null,R(ge.value===`done`?`流程完成`:ge.value===`failed`?`流程中断`:ft.value.title),1),X(`p`,null,R(L.value?.message||(ge.value===`running`?ft.value.detail:F.value)),1)]),X(`span`,null,R(he.value)+` 秒`,1)]),X(`div`,Gc,[X(`div`,{class:`progress-bar`,style:se({width:`${pt.value}%`})},null,4)]),L.value?(J(),Y(`div`,Kc,[X(`span`,null,R(mt.value||_t.value||(C.value===`assembly`?`正在准备零件功能介绍、功能组和组内查错队列`:`正在准备粗扫描、动态知识检索和局部子图队列`)),1),X(`span`,null,`候选规则 `+R(L.value.retrieved_candidate_count),1)])):Z(``,!0),(ft.value.key===`group_part_checks`||ft.value.key===`local_subgraphs`)&&gt.value?(J(),Y(`div`,qc,[X(`strong`,null,`正在生成:`+R(gt.value.display_name),1),X(`p`,null,R(gt.value.component_id)+` / `+R(gt.value.instance_name),1),X(`span`,null,R(_t.value)+` / 第 `+R(gt.value.iteration)+` 轮`,1)])):Z(``,!0),ht.value?(J(),Y(`div`,Jc,[X(`strong`,null,`正在分析:`+R(ht.value.display_name),1),X(`p`,null,R(ht.value.retrieval_sentence||ht.value.local_id),1),X(`span`,null,R(ht.value.primary_view||`未标注视图`)+` / 候选 `+R(ht.value.candidate_count),1)])):Z(``,!0),X(`ol`,Yc,[(J(!0),Y(q,null,K(Ie.value,(e,t)=>(J(),Y(`li`,{key:e.key,class:M({active:ge.value===`running`&&t===B.value,done:ge.value===`done`||t<B.value,failed:ge.value===`failed`&&t===B.value})},[X(`span`,null,R(t+1),1),X(`div`,null,[X(`strong`,null,R(e.title),1),X(`p`,null,R(e.detail),1)])],2))),128))])])):Z(``,!0),!Le.value&&(I.value||je.value.length)?(J(),Y(`section`,Xc,[X(`div`,Zc,[X(`div`,null,[X(`strong`,null,R(I.value?I.value.final_status===`ok`?`诊断完成`:`诊断未完成`:`已处理零件的问题`),1),X(`span`,null,R(I.value?.final_message||F.value),1)]),X(`div`,Qc,[X(`span`,null,`确认问题 `+R(je.value.length),1),X(`span`,null,`候选规则 `+R(I.value?.retrieved_candidate_count??L.value?.retrieved_candidate_count??0),1),X(`span`,null,`证据图片 `+R(Ne.value),1)])]),I.value?(J(),Y(`div`,$c,[X(`button`,{class:M({active:z.value===`report`}),role:`tab`,"aria-selected":z.value===`report`,onClick:r[33]||=e=>z.value=`report`},`完整报告`,10,el),X(`button`,{class:M({active:z.value===`issues`}),role:`tab`,"aria-selected":z.value===`issues`,onClick:r[34]||=e=>z.value=`issues`},`确认问题`,10,tl),X(`button`,{class:M({active:z.value===`evidence`}),role:`tab`,"aria-selected":z.value===`evidence`,onClick:r[35]||=e=>z.value=`evidence`},`检索证据`,10,nl),X(`button`,{class:M({active:z.value===`artifacts`}),role:`tab`,"aria-selected":z.value===`artifacts`,onClick:r[36]||=e=>z.value=`artifacts`},`产物与路径`,10,rl)])):Z(``,!0),I.value&&z.value===`report`?(J(),Y(`div`,il,[Fe.value.length?(J(),Y(`div`,al,[(J(!0),Y(q,null,K(Fe.value,(e,t)=>(J(),Y(q,{key:t},[e.type===`heading`&&e.level===1?(J(),Y(`h2`,ol,R(e.text),1)):e.type===`heading`&&e.level===2?(J(),Y(`h3`,sl,R(e.text),1)):e.type===`heading`?(J(),Y(`h4`,cl,R(e.text),1)):e.type===`list`?(J(),Y(`ul`,ll,[(J(!0),Y(q,null,K(e.items,(e,t)=>(J(),Y(`li`,{key:t},R(e),1))),128))])):(J(),Y(`p`,ul,R(e.text),1))],64))),128))])):(J(),Y(`p`,dl,`最终报告没有返回正文。`))])):z.value===`issues`||!I.value?(J(),Y(`div`,fl,[X(`h3`,null,R(I.value?`最终确认的问题`:`已处理零件检索到的问题`),1),Me.value.length?(J(),Y(`div`,pl,[(J(!0),Y(q,null,K(Me.value,e=>(J(),Y(`article`,{key:e.rule_id,class:`issue-card grouped`},[X(`header`,ml,[X(`strong`,null,R(e.rule_id)+` `+R(e.rule_title),1),X(`span`,null,R(e.issues.length)+` 个位置`,1)]),X(`div`,hl,[(J(!0),Y(q,null,K(e.issues,(e,n)=>(J(),Y(`div`,{key:`${e.unit_key||e.local_id}-${e.rule_id}-${e.score}-${n}`,class:`issue-content`},[X(`div`,null,[X(`p`,gl,R(e.retrieval_sentence),1),X(`div`,_l,[r[118]||=X(`b`,null,`判定说明`,-1),X(`p`,null,R(e.judgement),1)])]),St(e).length?(J(),Y(`div`,vl,[(J(!0),Y(q,null,K(St(e),n=>(J(),Y(`figure`,{key:`${n.source_unit_key||e.unit_key}-${n.url}`,class:`evidence-card issue-evidence-panel`},[X(`img`,{src:`${Rt(t)}${n.url}`,alt:n.name},null,8,yl),X(`figcaption`,null,R(Ct(n)),1)]))),128))])):Z(``,!0)]))),128))])]))),128))])):(J(),Y(`p`,bl,R(I.value?`最终报告未确认结构设计问题。`:`已处理单元暂未检索到可用于判定的第 18 章禁忌条目。`),1))])):z.value===`evidence`?(J(),Y(`div`,xl,[X(`div`,Sl,[r[119]||=X(`div`,null,[X(`h3`,null,`全部检索候选与证据`),X(`p`,null,`这里展示进入最终判定的全部局部单元和候选规则,不代表这些候选都被判定为问题。`)],-1),X(`span`,null,R(ke.value.length)+` 个单元-规则组合`,1)]),ke.value.length?(J(),Y(`div`,Cl,[(J(!0),Y(q,null,K(ke.value,(e,n)=>(J(),Y(`article`,{key:`${e.unit_key}-${e.rule_id}-${n}`,class:`retrieval-candidate`},[X(`header`,null,[X(`div`,null,[X(`strong`,null,R(e.rule_id)+` `+R(e.rule_title),1),X(`span`,null,R(e.instance_name||e.component_id||e.local_id),1)]),X(`b`,null,`匹配分 `+R(e.score),1)]),X(`p`,null,R(e.retrieval_sentence),1),X(`div`,wl,[X(`span`,null,`视图:`+R(e.primary_view||`未标注`),1),X(`span`,null,`局部单元:`+R(e.local_id),1),X(`span`,null,`证据:`+R(e.evidence_images.length)+` 张`,1)]),e.evidence_images.length?(J(),Y(`div`,Tl,[(J(!0),Y(q,null,K(e.evidence_images,e=>(J(),Y(`figure`,{key:e.url,class:`candidate-evidence`},[X(`img`,{src:`${Rt(t)}${e.url}`,alt:e.name},null,8,El),X(`figcaption`,null,[X(`strong`,null,R(e.name),1),e.evidence_purpose?(J(),Y(`span`,Dl,R(e.evidence_purpose),1)):Z(``,!0)])]))),128))])):(J(),Y(`p`,Ol,`该局部单元没有绑定导出的图片证据,判定依据来自结构化几何与语义事实。`))]))),128))])):(J(),Y(`p`,kl,`没有返回检索候选。`))])):(J(),Y(`div`,Al,[r[128]||=X(`h3`,null,`运行结果`,-1),X(`dl`,jl,[X(`div`,null,[r[120]||=X(`dt`,null,`模型`,-1),X(`dd`,null,R(I.value.model_path||`未记录`),1)]),X(`div`,null,[r[121]||=X(`dt`,null,`输出目录`,-1),X(`dd`,null,R(I.value.output_dir),1)]),X(`div`,null,[r[122]||=X(`dt`,null,`语义图`,-1),X(`dd`,null,R(I.value.semantic_graph_path),1)]),X(`div`,null,[r[123]||=X(`dt`,null,`检索结果`,-1),X(`dd`,null,R(I.value.retrieval_path),1)]),X(`div`,null,[r[124]||=X(`dt`,null,`最终报告`,-1),X(`dd`,null,R(I.value.final_report_path),1)]),X(`div`,null,[r[125]||=X(`dt`,null,`原始响应`,-1),X(`dd`,null,R(I.value.final_response_path),1)]),X(`div`,null,[r[126]||=X(`dt`,null,`桥接阶段`,-1),X(`dd`,null,R(I.value.bridge.stage),1)])]),X(`div`,Ml,[r[127]||=X(`div`,null,[X(`h3`,null,`全部产物`),X(`p`,null,`包括 B-rep、局部子图、知识检索、分阶段判定和最终报告产物。`)],-1),X(`span`,null,R(Pe.value.length)+` 个文件`,1)]),Pe.value.length?(J(),Y(`div`,Nl,[(J(!0),Y(q,null,K(Pe.value,e=>(J(),Y(`div`,{key:e.file_path,class:`artifact-row`},[X(`div`,null,[X(`strong`,null,R(e.name),1),X(`span`,null,R(e.file_path),1)]),X(`span`,null,R(ut(e.length))+` · `+R(dt(e.last_modified)),1)]))),128))])):(J(),Y(`p`,Pl,`没有返回产物清单。`))]))])):Le.value&&P.value?(J(),Y(`section`,Fl,[...r[129]||=[X(`h3`,null,`正在读取图纸`,-1),X(`p`,null,`后端正在通过 AutoCAD 抽取 DWG 实体并写出分类证据文件。`,-1)]])):ge.value===`idle`?(J(),Y(`section`,Il,[r[130]||=X(`h3`,null,`等待查错`,-1),Re.value?(J(),Y(`p`,Ll,`填写学生零件 DWG 路径后开始格式查错。后端会按 CAD 图元信息直接判断线型和线宽,不经过 AI。`)):ze.value?(J(),Y(`p`,Rl,`填写学生原始 DWG 路径和三维装配体模型路径后开始完整查错流程。后端会自动生成两张 PNG,DWG 不会直接传给 AI。`)):(J(),Y(`p`,zl,R(C.value===`assembly`?`填写装配体路径、产品描述和外购件完整名称后开始查错。`:`填写零件路径后开始查错。`)+`结果会显示截图证据、问题位置、文字判定和对应禁忌条目。`,1))])):(J(),Y(`section`,Bl,[...r[131]||=[X(`h3`,null,`正在查错`,-1),X(`p`,null,`后端正在生成或判定局部单元;已完成单元检索到的问题会实时出现在这里。`,-1)]]))])])):a.value?o.value?o.value===`part`&&!s.value?(J(),Y(`section`,ql,[X(`div`,{class:`stage-head`},[X(`button`,{class:`ghost`,onClick:zt},`返回`),r[135]||=X(`h2`,null,`选择零件`,-1)]),X(`div`,Jl,[(J(!0),Y(q,null,K(Te.value,e=>(J(),Y(`button`,{key:e.standard_id,class:`part-tile`,onClick:t=>Lt(e)},[X(`strong`,null,R(e.title),1),X(`span`,null,R(e.steps.length)+` 步`,1)],8,Yl))),128))])])):(J(),Y(`section`,Xl,[X(`aside`,Zl,[X(`button`,{class:`ghost`,onClick:zt},`返回`),X(`h2`,null,R(o.value===`overall`?`二级齿轮减速器整体${Ce.value}`:s.value?.title),1),X(`p`,null,R(s.value?.summary),1),!c.value&&i.value===`teaching`?(J(),Y(`button`,{key:0,disabled:!s.value||v.value||b.value||!g.value?.standard_part_path,onClick:cn},R(v.value?`正在打开标准零件...`:b.value?`正在讲解并高亮...`:`打开标准零件并讲解`),9,Ql)):Z(``,!0),c.value?Z(``,!0):(J(),Y(`button`,{key:1,disabled:!s.value||p.value,onClick:sn},R(p.value?`正在连接 SolidWorks...`:`开始${Ce.value}`),9,$l)),c.value?Z(``,!0):(J(),Y(`p`,eu,R(l.value),1)),h.value||m.value?(J(),Y(`section`,tu,[r[137]||=X(`h3`,null,`设计智能体`,-1),h.value?(J(),Y(`p`,nu,`正在分析完整建模步骤...`)):m.value?(J(),Y(q,{key:1},[X(`p`,null,R(m.value.summary),1),X(`details`,null,[r[136]||=X(`summary`,null,`查看前 8 步提示语言`,-1),X(`ol`,null,[(J(!0),Y(q,null,K(m.value.steps.slice(0,8),e=>(J(),Y(`li`,{key:e.order},R(e.voice_text),1))),128))])])],64)):Z(``,!0)])):Z(``,!0),c.value?(J(),Y(`div`,ru,[X(`span`,null,R(c.value.status),1),X(`strong`,null,R(De.value),1)])):Z(``,!0)]),X(`section`,iu,[c.value&&Ee.value?(J(),Y(q,{key:0},[X(`div`,au,[X(`h2`,null,R(Ee.value.title),1),X(`button`,{onClick:vn},`播放语音`)]),X(`p`,ou,R(Ee.value.voice_text),1),Ee.value.teaching_intent||Ee.value.common_mistake?(J(),Y(`div`,su,[Ee.value.teaching_intent?(J(),Y(`p`,cu,[r[138]||=X(`strong`,null,`操作意图:`,-1),Fi(R(Ee.value.teaching_intent),1)])):Z(``,!0),Ee.value.common_mistake?(J(),Y(`p`,lu,[r[139]||=X(`strong`,null,`易错提醒:`,-1),Fi(R(Ee.value.common_mistake),1)])):Z(``,!0)])):Z(``,!0),X(`div`,{class:M([`listen-state`,{active:f.value}])},[X(`strong`,null,R(f.value?`实时检测中`:`实时检测未开启`),1),X(`span`,null,R(u.value||`系统会自动读取 SolidWorks 当前特征树。`),1)],2),i.value===`teaching`?(J(),Y(`details`,uu,[r[140]||=X(`summary`,null,`手动模拟`,-1),G(X(`input`,{"onUpdate:modelValue":r[39]||=e=>x.value=e},null,512),[[$,x.value]]),G(X(`textarea`,{"onUpdate:modelValue":r[40]||=e=>S.value=e,rows:`4`},null,512),[[$,S.value]]),X(`button`,{onClick:_n},`提交并对比`)])):Z(``,!0),X(`p`,du,R(l.value),1)],64)):c.value?(J(),Y(q,{key:1},[X(`h2`,null,R(Ce.value)+`已完成`,1),X(`p`,fu,R(l.value),1)],64)):i.value===`teaching`?(J(),Y(q,{key:2},[X(`div`,pu,[X(`h2`,null,R(_.value?`正在准备零件导入...`:`认识零件:${g.value?.title||s.value?.title||``}`),1),X(`button`,{disabled:!g.value||b.value,onClick:yn},R(b.value?`正在讲解并高亮...`:`播放介绍`),9,mu)]),g.value?(J(),Y(`section`,hu,[X(`div`,gu,[X(`article`,null,[r[141]||=X(`h3`,null,`零件是什么`,-1),X(`p`,null,R(g.value.overview),1)]),X(`article`,null,[r[142]||=X(`h3`,null,`在减速器中的位置`,-1),X(`p`,null,R(g.value.reducer_position),1)]),X(`article`,null,[r[143]||=X(`h3`,null,`作用`,-1),X(`p`,null,R(g.value.functional_role),1)]),X(`article`,null,[r[144]||=X(`h3`,null,`基本特征`,-1),X(`p`,null,R(g.value.key_features),1)])]),X(`div`,_u,[r[145]||=X(`h3`,null,`知识库覆盖情况`,-1),X(`p`,null,R(g.value.knowledge_coverage.highlight_support),1),X(`ul`,null,[(J(!0),Y(q,null,K(g.value.knowledge_snippets,e=>(J(),Y(`li`,{key:e},R(e),1))),128)),(J(!0),Y(q,null,K(g.value.source_notes,e=>(J(),Y(`li`,{key:e},R(e),1))),128)),(J(!0),Y(q,null,K(g.value.knowledge_coverage.missing_items,e=>(J(),Y(`li`,{key:e},`缺少:`+R(e),1))),128))])]),X(`div`,vu,[r[146]||=X(`h3`,null,`可讲解的功能面`,-1),g.value.highlight_targets.length?(J(),Y(`div`,bu,[(J(!0),Y(q,null,K(g.value.highlight_targets.slice(0,12),e=>(J(),Y(`button`,{key:e.id,class:M([`target-item`,{active:y.value===e.id}]),disabled:y.value===e.id,onClick:t=>ln(e)},[X(`strong`,null,R(e.label),1),X(`span`,null,R(y.value===e.id?`正在高亮...`:e.description),1)],10,xu))),128))])):(J(),Y(`p`,yu,`当前知识库还没有足够的功能面语义,暂时只能讲解零件整体和特征树。`))]),X(`p`,Su,`标准零件:`+R(g.value.standard_part_path||`未找到`),1)])):Z(``,!0),X(`p`,Cu,R(l.value),1)],64)):(J(),Y(`h2`,wu,`准备开始`))])])):(J(),Y(`section`,Ul,[X(`div`,Wl,[X(`button`,{class:`ghost`,onClick:zt},`返回`),X(`h2`,null,`选择`+R(Ce.value)+`方式`,1)]),X(`div`,Gl,[X(`button`,{class:`choice`,disabled:!we.value,onClick:r[37]||=e=>It(`overall`)},[X(`strong`,null,`减速器整体`+R(Ce.value),1),r[133]||=X(`span`,null,`从第一个零件开始,直到完成装配`,-1)],8,Kl),X(`button`,{class:`choice`,onClick:r[38]||=e=>It(`part`)},[X(`strong`,null,`部分零件`+R(Ce.value),1),r[134]||=X(`span`,null,`选择一个非标零件单独训练`,-1)])])])):(J(),Y(`section`,Vl,[X(`div`,Hl,[X(`button`,{class:`ghost`,onClick:zt},`返回`),X(`h2`,null,`选择`+R(Ce.value)+`内容`,1)]),X(`div`,{class:`choice-grid one`},[X(`button`,{class:`choice project-choice`,onClick:Ft},[...r[132]||=[X(`strong`,null,`二级齿轮减速器`,-1),X(`span`,null,`当前课程`,-1)]])])])):(J(),Y(`section`,gs,[r[47]||=X(`div`,{class:`stage-head`},[X(`h2`,null,`选择训练模式`)],-1),X(`div`,_s,[X(`button`,{class:`choice`,onClick:r[0]||=e=>Nt(`teaching`)},[...r[42]||=[X(`strong`,null,`学习`,-1),X(`span`,null,`按步骤引导完成建模操作`,-1)]]),X(`button`,{class:`choice`,onClick:r[1]||=e=>Nt(`testing`)},[...r[43]||=[X(`strong`,null,`测试`,-1),X(`span`,null,`按任务要求建模并提交评分`,-1)]]),X(`button`,{class:`choice`,onClick:r[2]||=e=>Nt(`diagnostic`)},[...r[44]||=[X(`strong`,null,`机械设计查错`,-1),X(`span`,null,`针对第 18 章机械加工件结构设计进行 AI 查错`,-1)]]),X(`button`,{class:`choice`,onClick:r[3]||=e=>Nt(`simulation`)},[...r[45]||=[X(`strong`,null,`ANSYS 仿真`,-1),X(`span`,null,`分析模型、确认工况并跟踪静力结构求解`,-1)]]),X(`button`,{class:`choice`,onClick:r[4]||=e=>Nt(`knowledge`)},[...r[46]||=[X(`strong`,null,`知识库管理`,-1),X(`span`,null,`解析工程文档、构建本地索引并验证知识检索`,-1)]])])]))]))}})).mount(`#app`);