2026-07-09 18:37:16 +08:00
var e3e = Object . defineProperty ; var rR = Mn => { throw TypeError ( Mn ) } ; var t3e = ( Mn , In , Qt ) => In in Mn ? e3e ( Mn , In , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : Qt } ) : Mn [ In ] = Qt ; var Ut = ( Mn , In , Qt ) => t3e ( Mn , typeof In != "symbol" ? In + "" : In , Qt ) , Dw = ( Mn , In , Qt ) => In . has ( Mn ) || rR ( "Cannot " + Qt ) ; var y = ( Mn , In , Qt ) => ( Dw ( Mn , In , "read from private field" ) , Qt ? Qt . call ( Mn ) : In . get ( Mn ) ) , ne = ( Mn , In , Qt ) => In . has ( Mn ) ? rR ( "Cannot add the same private member more than once" ) : In instanceof WeakSet ? In . add ( Mn ) : In . set ( Mn , Qt ) , G = ( Mn , In , Qt , er ) => ( Dw ( Mn , In , "write to private field" ) , er ? er . call ( Mn , Qt ) : In . set ( Mn , Qt ) , Qt ) , oe = ( Mn , In , Qt ) => ( Dw ( Mn , In , "access private method" ) , Qt ) ; var za = ( Mn , In , Qt , er ) => ( { set _ ( en ) { G ( Mn , In , en , Qt ) } , get _ ( ) { return y ( Mn , In , er ) } } ) ; ( function ( ) { "use strict" ; var hl , Bb , Bw , Ov , kc , Yu , kr , Xu , Lv , Nv , yb , iR , Na , lR , cR , Vb , uR , Vw , $v , Ju , Zu , Ec , dR , fR , hR , wb , vh , Dv , ya , mh , zb , ms , Ac , Fv , ls , _b , pR , gh , bo , Os , Js , bh , vl , yh , jo , Tc , Qu , wh , ed , hi , Er , td , Bv , Vv , _h , zv , pi , Mc , Ch , Pc , vi , Sb , Rc , Hv , Ic , nd , Wv , jv , zs , $n , ml , sd , Kv , Uv , Oc , mi , gl , qv , Ko , xt , Hb , zw , vR , mR , Wb , gR , bR , yR , Hw , wR , Ww , jw , _R , Ha , Ul , CR , SR , Kw , xR , c2 , Uw , Hs , gi , Ar , xh , bi , yo , kh , yi , to , bl , ad , wi , Lc , Tr , u2 , jb , Gv , od , Yv , Xv , Jv , Zv , Qv , Eh , yl , rd , Nc , wl , kR , ER , qw , id , Mr , Jn , Ah , $c , em , ld , Zs , cd , _l , Dc , tm , ud , wo , nm , dd , Cl , _i , Th , Mh , Uo , fd , sm , xb , Kt , Gw , am , Yw , Kb , AR , TR , Xw , Ub , Jw , MR , PR , RR , Zw , IR , Qw , OR , LR , NR , e _ , d2 , hd , pd , Ws , kb , $R , om , Ph , Rh , qo , DR , FR , BR , qb , rm , vd , Ih , Sl , xl , wa , md , gd , It , xa , f2 , x0 , Gb , k0 , VR , t _ , E0 , h2 , p2 , n _ , v2 , Pr , s _ , a _ , o _ , im , lm , bd , cm , um , dm , fm , Oh , Fc , Dn , Lh , Nh , hm , r _ , oR , Bc , no , pm , vm , yd , kl , mm , gm , wd , $h , Dh , Vc , Fh , bm , Bh , _d , ym , wm , Cd , Sd , _m , zc , Vh , El , zR , HR , i _ , _o , Yb , l _ , WR , jR , Ab , Hc , Al , Go , A0 , Xb , Tl , Mb , Pb , xd , kd , zh , Jb , Hh , Zb , Ml , Ci , Wh , jh , Pl , Ed , m2 , Co , Cm , c _ , Wc , jc , Ad , Md , Kh , Uh , Sm , u _ , So , nf , KR , UR , qh , Rb , Ib , Gh , Pd , ps , Rl , Yh , xm , km , Xh , Il , Rr , Ol , Em , Ll , Am , Rd , Id , Vn , Qb , d _ , qR , GR , YR , XR , e4 , t4 , f _ , Tm , Mm , Pm , Rm , Im , Od , Om , h _ , Lm , Nm , p _ , $m , Ld , Nd , Dm , $d , JR , v _ , Ir , xo , Fm , Dd , ko , ks , ZR , QR , eI , n4 , Nl , s4 , a4 , tI , m _ , nI , Eo , Or , Jh , Zh , Si , gn , Fd , Bd , Bm , Vm , Qh , e0 , Kc , zm , Ob , Lb , Ns , g2 , sI , aI , oI , rI , iI , lI , t0 , Vd , Dl , Hm , Ao , Wm , gs , Nb , cI , jm , Km , Uc , Lr , Da , uI , o4 , dI , fI , g _ , Um , n0 , Nr , zd , s0 , $s , qm , a0 , Gm , Ym , qc , $r , o0 , Xm , zn , b _ , y _ , w _ , sf , hI , nu , r0 , Jm , Fl , Hd , i0 , ao , Zm , Qm , Wd , Yo , To , Qs , l0 , Bl , _a , c0 , Xo , e2 , cn , _ _ , r4 , pI , vI , mI , C _ , af , Jo , T0 , gI , i4 , b2 , bI , yI , wI , _I , CI , jd , Mo , u0 , js , Kd , Ud , Gc , Yc , Xc , qd , Sn , S _ , x _ , k _ , y2 , SI , l4 , w2 , M0 , xi , Ks , Us , Gd , d0 , Fa , ea , Zo , Yd , Xd , Jd , f0 , c4 , Ba , t2 , n2 , Po , ki , Ei , h0 , p0 , v0 , ta , ql , xI , kI , EI , m0 , $b , AI , cs , na , Jc , Vl , Zc , b0 , Ai , Ti , Ro , y0 , An , _2 , C2 , u4 , E _ , d4 , A _ , f4 , TI , Zd , w0 , Mi , Qc , zl , Qo , eu , _0 , Qd , Dr , Hl , Ca , Wl , Vt , tu , as , MI , Oi , T _ , M _ , h4 , Br , a2 , Va , ef , Db , PI , Pi , P _ , RI , R _ ; var Mn = typeof document < "u" ? document . currentScript : null ; /**
2026-05-27 23:13:02 +08:00
* @vue/shared v3.5.28
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
2026-07-09 18:37:16 +08:00
**/ function In ( e ) { const t = Object . create ( null ) ; for ( const n of e . split ( "," ) ) t [ n ] = 1 ; return n => n in t } const Qt = { } , er = [ ] , en = ( ) => { } , I _ = ( ) => ! 1 , S2 = e => e . charCodeAt ( 0 ) === 111 && e . charCodeAt ( 1 ) === 110 && ( e . charCodeAt ( 2 ) > 122 || e . charCodeAt ( 2 ) < 97 ) , p4 = e => e . startsWith ( "onUpdate:" ) , bs = Object . assign , v4 = ( e , t ) => { const n = e . indexOf ( t ) ; n > - 1 && e . splice ( n , 1 ) } , II = Object . prototype . hasOwnProperty , Gt = ( e , t ) => II . call ( e , t ) , Ae = Array . isArray , of = e => P0 ( e ) === "[object Map]" , x2 = e => P0 ( e ) === "[object Set]" , Gl = e => P0 ( e ) === "[object Date]" , Ze = e => typeof e == "function" , Xe = e => typeof e == "string" , tr = e => typeof e == "symbol" , bt = e => e !== null && typeof e == "object" , su = e => ( bt ( e ) || Ze ( e ) ) && Ze ( e . then ) && Ze ( e . catch ) , O _ = Object . prototype . toString , P0 = e => O _ . call ( e ) , OI = e => P0 ( e ) . slice ( 8 , - 1 ) , R0 = e => P0 ( e ) === "[object Object]" , k2 = e => Xe ( e ) && e !== "NaN" && e [ 0 ] !== "-" && "" + parseInt ( e , 10 ) === e , I0 = In ( ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" ) , E2 = e => { const t = Object . create ( null ) ; return n => t [ n ] || ( t [ n ] = e ( n ) ) } , LI = /-\w/g , ka = E2 ( e => e . replace ( LI , t => t . slice ( 1 ) . toUpperCase ( ) ) ) , NI = /\B([A-Z])/g , Li = E2 ( e => e . replace ( NI , "-$1" ) . toLowerCase ( ) ) , O0 = E2 ( e => e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) ) , L0 = E2 ( e => e ? ` on ${ O0 ( e ) } ` : "" ) , Yl = ( e , t ) => ! Object . is ( e , t ) , A2 = ( e , ... t ) => { for ( let n = 0 ; n < e . length ; n ++ ) e [ n ] ( ... t ) } , L _ = ( e , t , n , s = ! 1 ) => { Object . defineProperty ( e , t , { configurable : ! 0 , enumerable : ! 1 , writable : s , value : n } ) } , m4 = e => { const t = parseFloat ( e ) ; return isNaN ( t ) ? e : t } , $I = e => { const t = Xe ( e ) ? Number ( e ) : NaN ; return isNaN ( t ) ? e : t } ; let N _ ; const T2 = ( ) => N _ || ( N _ = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : { } ) ; function Qe ( e ) { if ( Ae ( e ) ) { const t = { } ; for ( let n = 0 ; n < e . length ; n ++ ) { const s = e [ n ] , a = Xe ( s ) ? VI ( s ) : Qe ( s ) ; if ( a ) for ( const o in a ) t [ o ] = a [ o ] } return t } else if ( Xe ( e ) || bt ( e ) ) return e } const DI = /;(?![^(]*\))/g , FI = /:([^]+)/ , BI = /\/\*[^]*?\*\//g ; function VI ( e ) { const t = { } ; return e . replace ( BI , "" ) . split ( DI ) . forEach ( n => { if ( n ) { const s = n . split ( FI ) ; s . length > 1 && ( t [ s [ 0 ] . trim ( ) ] = s [ 1 ] . trim ( ) ) } } ) , t } function D ( e ) { let t = "" ; if ( Xe ( e ) ) t = e ; else if ( Ae ( e ) ) for ( let n = 0 ; n < e . length ; n ++ ) { const s = D ( e [ n ] ) ; s && ( t += s + " " ) } else if ( bt ( e ) ) for ( const n in e ) e [ n ] && ( t += n + " " ) ; return t . trim ( ) } function Ni ( e ) { if ( ! e ) return null ; let { class : t , style : n } = e ; return t && ! Xe ( t ) && ( e . class = D ( t ) ) , n && ( e . style = Qe ( n ) ) , e } const zI = In ( "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly" ) ; function $ _ ( e ) { return ! ! e || e === "" } function HI ( e , t ) { if ( e . length !== t . length ) return ! 1 ; let n = ! 0 ; for ( let s = 0 ; n && s < e . length ; s ++ ) n = au ( e [ s ] , t [ s ] ) ; return n } function au ( e , t ) { if ( e === t ) return ! 0 ; let n = Gl ( e ) , s = Gl ( t ) ; if ( n || s ) return n && s ? e . getTime ( ) === t . getTime ( ) : ! 1 ; if ( n = tr ( e ) , s = tr ( t ) , n || s ) return e === t ; if ( n = Ae ( e ) , s = Ae ( t ) , n || s ) return n && s ? HI ( e , t ) : ! 1 ; if ( n = bt ( e ) , s = bt ( t ) , n || s ) { if ( ! n || ! s ) return ! 1 ; const a = Object . keys ( e ) . length , o = Object . keys ( t ) . length ; if ( a !== o ) return ! 1 ; for ( const r in e ) { const i = e . hasOwnProperty ( r ) , l = t . hasOwnProperty ( r ) ; if ( i && ! l || ! i && l || ! au ( e [ r ] , t [ r ] ) ) return ! 1 } } return String ( e ) === String ( t ) } function D _ ( e , t ) { return e . findIndex ( n => au ( n , t ) ) } const F _ = e => ! ! ( e && e . _ _v _isRef === ! 0 ) , ge = e => Xe ( e ) ? e : e == null ? "" : Ae ( e ) || bt ( e ) && ( e . toString === O _ || ! Ze ( e . toString ) ) ? F _ ( e ) ? ge ( e . value ) : JSON . stringify ( e , B _ , 2 ) : String ( e ) , B _ = ( e , t ) => F _ ( t ) ? B _ ( e , t . value ) : of ( t ) ? { [ ` Map( ${ t . size } ) ` ] : [ ... t . entries ( ) ] . reduce ( ( n , [ s , a ] , o ) => ( n [ g4 ( s , o ) + " =>" ] = a , n ) , { } ) } : x2 ( t ) ? { [ ` Set( ${ t . size } ) ` ] : [ ... t . values ( ) ] . map ( n => g4 ( n ) ) } : tr ( t ) ? g4 ( t ) : bt ( t ) && ! Ae ( t ) && ! R0 ( t ) ? String ( t ) : t , g4 = ( e , t = "" ) => { var n ; return tr ( e ) ? ` Symbol( ${ ( n = e . description ) != null ? n : t } ) ` : e } ; /**
2026-05-27 23:13:02 +08:00
* @vue/reactivity v3.5.28
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
2026-07-09 18:37:16 +08:00
**/ let aa ; class V _ { constructor ( t = ! 1 ) { this . detached = t , this . _active = ! 0 , this . _on = 0 , this . effects = [ ] , this . cleanups = [ ] , this . _isPaused = ! 1 , this . _ _v _skip = ! 0 , this . parent = aa , ! t && aa && ( this . index = ( aa . scopes || ( aa . scopes = [ ] ) ) . push ( this ) - 1 ) } get active ( ) { return this . _active } pause ( ) { if ( this . _active ) { this . _isPaused = ! 0 ; let t , n ; if ( this . scopes ) for ( t = 0 , n = this . scopes . length ; t < n ; t ++ ) this . scopes [ t ] . pause ( ) ; for ( t = 0 , n = this . effects . length ; t < n ; t ++ ) this . effects [ t ] . pause ( ) } } resume ( ) { if ( this . _active && this . _isPaused ) { this . _isPaused = ! 1 ; let t , n ; if ( this . scopes ) for ( t = 0 , n = this . scopes . length ; t < n ; t ++ ) this . scopes [ t ] . resume ( ) ; for ( t = 0 , n = this . effects . length ; t < n ; t ++ ) this . effects [ t ] . resume ( ) } } run ( t ) { if ( this . _active ) { const n = aa ; try { return aa = this , t ( ) } finally { aa = n } } } on ( ) { ++ this . _on === 1 && ( this . prevScope = aa , aa = this ) } off ( ) { this . _on > 0 && -- this . _on === 0 && ( aa = this . prevScope , this . prevScope = void 0 ) } stop ( t ) { if ( this . _active ) { this . _active = ! 1 ; let n , s ; for ( n = 0 , s = this . effects . length ; n < s ; n ++ ) this . effects [ n ] . stop ( ) ; for ( this . effects . length = 0 , n = 0 , s = this . cleanups . length ; n < s ; n ++ ) this . cleanups [ n ] ( ) ; if ( this . cleanups . length = 0 , this . scopes ) { for ( n = 0 , s = this . scopes . length ; n < s ; n ++ ) this . scopes [ n ] . stop ( ! 0 ) ; this . scopes . length = 0 } if ( ! this . detached && this . parent && ! t ) { const a = this . parent . scopes . pop ( ) ; a && a !== this && ( this . parent . scopes [ this . index ] = a , a . index = this . index ) } this . parent = void 0 } } } function WI ( e ) { return new V _ ( e ) } function z _ ( ) { return aa } function H _ ( e , t = ! 1 ) { aa && aa . cleanups . push ( e ) } let Wn ; const b4 = new WeakSet ; class W _ { constructor ( t ) { this . fn = t , this . deps = void 0 , this . depsTail = void 0 , this . flags = 5 , this . next = void 0 , this . cleanup = void 0 , this . scheduler = void 0 , aa && aa . active && aa . effects . push ( this ) } pause ( ) { this . flags |= 64 } resume ( ) { this . flags & 64 && ( this . flags &= - 65 , b4 . has ( this ) && ( b4 . delete ( this ) , this . trigger ( ) ) ) } notify ( ) { this . flags & 2 && ! ( this . flags & 32 ) || this . flags & 8 || K _ ( this ) } run ( ) { if ( ! ( this . flags & 1 ) ) return this . fn ( ) ; this . flags |= 2 , X _ ( this ) , U _ ( this ) ; const t = Wn , n = nr ; Wn = this , nr = ! 0 ; try { return this . fn ( ) } finally { q _ ( this ) , Wn = t , nr = n , this . flags &= - 3 } } stop ( ) { if ( this . flags & 1 ) { for ( let t = this . deps ; t ; t = t . nextDep ) C4 ( t ) ; this . deps = this . depsTail = void 0 , X _ ( this ) , this . onStop && this . onStop ( ) , this . flags &= - 2 } } trigger ( ) { this . flags & 64 ? b4 . add ( this ) : this . scheduler ? this . scheduler ( ) : this . runIfDirty ( ) } runIfDirty ( ) { _4 ( this ) && this . run ( ) } get dirty ( ) { return _4 ( this ) } } let j _ = 0 , N0 , $0 ; function K _ ( e , t = ! 1 ) { if ( e . flags |= 8 , t ) { e . next = $0 , $0 = e ; return } e . next = N0 , N0 = e } function y4 ( ) { j _ ++ } function w4 ( ) { if ( -- j _ > 0 ) return ; if ( $0 ) { let t = $0 ; for ( $0 = void 0 ; t ; ) { const n = t . next ; t . next = void 0 , t . flags &= - 9 , t = n } } let e ; for ( ; N0 ; ) { let t = N0 ; for ( N0 = void 0 ; t ; ) { const n = t . next ; if ( t . next = void 0 , t . flags &= - 9 , t . flags & 1 ) try { t . trigger ( ) } catch ( s ) { e || ( e = s ) } t = n } } if ( e ) throw e } function U _ ( e ) { for ( let t = e . deps ; t ; t = t . nextDep ) t . version = - 1 , t . prevActiveLink = t . dep . activeLink , t . dep . activeLink = t } function q _ ( e ) { let t , n = e . depsTail , s = n ; for ( ; s ; ) { const a = s . prevDep ; s . version === - 1 ? ( s === n && ( n = a ) , C4 ( s ) , jI ( s ) ) : t = s , s . dep . activeLink = s . prevActiveLink , s . prevActiveLink = void 0 , s = a } e . deps = t , e . depsTail = n } function _4 ( e ) { for ( let t = e . deps ; t ; t = t . nextDep ) if ( t . dep . version !== t . version || t . dep . computed && ( G _ ( t . dep . computed ) || t . dep . version !== t . version ) ) return ! 0 ; return ! ! e . _dirty } function G _ ( e ) { if ( e . flags & 4 && ! ( e . flags & 16 ) || ( e . flags &= - 17 , e . globalVersion === D0 ) || ( e . globalVersion = D0 , ! e . isSSR && e . flags & 128 && ( ! e . deps && ! e . _dirty || ! _4 ( e ) ) ) ) return ; e . flags |= 2 ; const t = e . dep , n = Wn , s = nr ; Wn = e , nr = ! 0 ; try { U _ ( e ) ; const a = e . fn ( e . _value ) ; ( t . version === 0 || Yl ( a , e . _value ) ) && ( e . flags |= 128 , e . _value = a , t . version ++ ) } catch ( a ) { throw t . version ++ , a } finally { Wn = n , nr = s , q _ ( e ) , e . flags &= - 3 } } function C4 ( e , t = ! 1 ) { const { dep : n , prevSub : s , nextSub : a } = e ; if ( s && ( s . nextSub = a , e . prevSub = void 0 ) , a && ( a . prevSub = s , e . nextSub = void 0 ) , n . subs === e && ( n . subs = s , ! s && n . computed ) ) { n . computed . flags &= - 5 ; for ( let o = n . computed . deps ; o ; o = o . nextDep ) C4 ( o , ! 0 ) } ! t && ! -- n . sc && n . map && n . map . delete ( n . key ) } function jI ( e ) { const { prevDep : t , nextDep : n } = e ; t && ( t . nextDep = n , e . prevDep = void 0 ) , n && ( n . prevDep = t , e . nextDep = void 0 ) } let nr = ! 0 ; const Y _ = [ ] ; function zr ( ) { Y _ . push ( nr ) , nr = ! 1 } function Hr ( ) { const e = Y _ . pop ( ) ; nr = e === void 0 ? ! 0 : e } function X _ ( e ) { const { cleanup : t } = e ; if ( e . cleanup = void 0 , t ) { const n = Wn ; Wn = void 0 ; try { t ( ) } finally { Wn = n } } } let D0 = 0 ; class
2026-05-27 23:13:02 +08:00
* @ vue / runtime - core v3 . 5.28
* ( c ) 2018 - present Yuxi ( Evan ) You and Vue contributors
* @ license MIT
2026-07-09 18:37:16 +08:00
* * / c o n s t V 0 = [ ] ; l e t T 4 = ! 1 ; f u n c t i o n a 3 e ( e , . . . t ) { i f ( T 4 ) r e t u r n ; T 4 = ! 0 , z r ( ) ; c o n s t n = V 0 . l e n g t h ? V 0 [ V 0 . l e n g t h - 1 ] . c o m p o n e n t : n u l l , s = n & & n . a p p C o n t e x t . c o n f i g . w a r n H a n d l e r , a = g O ( ) ; i f ( s ) c f ( s , n , 1 1 , [ e + t . m a p ( o = > { v a r r , i ; r e t u r n ( i = ( r = o . t o S t r i n g ) = = n u l l ? v o i d 0 : r . c a l l ( o ) ) ! = n u l l ? i : J S O N . s t r i n g i f y ( o ) } ) . j o i n ( " " ) , n & & n . p r o x y , a . m a p ( ( { v n o d e : o } ) = > ` a t < $ { m S ( n , o . t y p e ) } > ` ) . j o i n ( `
2026-05-27 23:13:02 +08:00
` ),a]);else{const o=[ ` [ Vue warn ] : $ { e } ` ,...t];a.length&&o.push( `
2026-07-09 18:37:16 +08:00
` ,...bO(a)),console.warn(...o)}Hr(),T4=!1}function gO(){let e=V0[V0.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const s=e.component&&e.component.parent;e=s&&s.vnode}return t}function bO(e){const t=[];return e.forEach((n,s)=>{t.push(...s===0?[]:[ `
` ],...yO(n))}),t}function yO({vnode:e,recurseCount:t}){const n=t>0? ` ... ( $ { t } recursive calls ) ` :"",s=e.component?e.component.parent==null:!1,a= ` at < $ { mS ( e . component , e . type , s ) } ` ,o=">"+n;return e.props?[a,...wO(e.props),o]:[a+o]}function wO(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(s=>{t.push(...uC(s,e[s]))}),n.length>3&&t.push(" ..."),t}function uC(e,t,n){return Xe(t)?(t=JSON.stringify(t),n?t:[ ` $ { e } = $ { t } ` ]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[ ` $ { e } = $ { t } ` ]:yn(t)?(t=uC(e,pn(t.value),!0),n?t:[ ` $ { e } = Ref < ` ,t,">"]):Ze(t)?[ ` $ { e } = fn$ { t . name ? ` < ${ t . name } > ` : "" } ` ]:(t=pn(t),n?t:[ ` $ { e } = ` ,t])}function cf(e,t,n,s){try{return s?e(...s):e()}catch(a){V2(a,t,n)}}function ar(e,t,n,s){if(Ze(e)){const a=cf(e,t,n,s);return a&&su(a)&&a.catch(o=>{V2(o,t,n)}),a}if(Ae(e)){const a=[];for(let o=0;o<e.length;o++)a.push(ar(e[o],t,n,s));return a}}function V2(e,t,n,s=!0){const a=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||Qt;if(t){let i=t.parent;const l=t.proxy,c= ` https : //vuejs.org/error-reference/#runtime-${n}`;for(;i;){const u=i.ec;if(u){for(let d=0;d<u.length;d++)if(u[d](e,l,c)===!1)return}i=i.parent}if(o){zr(),cf(o,null,10,[e,l,c]),Hr();return}}_O(e,n,a,s,r)}function _O(e,t,n,s=!0,a=!1){if(a)throw e;console.error(e)}const Ea=[];let jr=-1;const uf=[];let Jl=null,df=0;const dC=Promise.resolve();let z2=null;function ze(e){const t=z2||dC;return e?t.then(this?e.bind(this):e):t}function CO(e){let t=jr+1,n=Ea.length;for(;t<n;){const s=t+n>>>1,a=Ea[s],o=z0(a);o<e||o===e&&a.flags&2?t=s+1:n=s}return t}function M4(e){if(!(e.flags&1)){const t=z0(e),n=Ea[Ea.length-1];!n||!(e.flags&2)&&t>=z0(n)?Ea.push(e):Ea.splice(CO(t),0,e),e.flags|=1,fC()}}function fC(){z2||(z2=dC.then(vC))}function SO(e){Ae(e)?uf.push(...e):Jl&&e.id===-1?Jl.splice(df+1,0,e):e.flags&1||(uf.push(e),e.flags|=1),fC()}function hC(e,t,n=jr+1){for(;n<Ea.length;n++){const s=Ea[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Ea.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function pC(e){if(uf.length){const t=[...new Set(uf)].sort((n,s)=>z0(n)-z0(s));if(uf.length=0,Jl){Jl.push(...t);return}for(Jl=t,df=0;df<Jl.length;df++){const n=Jl[df];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}Jl=null,df=0}}const z0=e=>e.id==null?e.flags&2?-1:1/0:e.id;function vC(e){try{for(jr=0;jr<Ea.length;jr++){const t=Ea[jr];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),cf(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;jr<Ea.length;jr++){const t=Ea[jr];t&&(t.flags&=-2)}jr=-1,Ea.length=0,pC(),z2=null,(Ea.length||uf.length)&&vC()}}let qs=null,mC=null;function H2(e){const t=qs;return qs=e,mC=e&&e.type.__scopeId||null,t}function X(e,t=qs,n){if(!t||e._n)return e;const s=(...a)=>{s._d&&J2(-1);const o=H2(t);let r;try{r=e(...a)}finally{H2(o),s._d&&J2(1)}return r};return s._n=!0,s._c=!0,s._d=!0,s}function Ct(e,t){if(qs===null)return e;const n=eg(qs),s=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[o,r,i,l=Qt]=t[a];o&&(Ze(o)&&(o={mounted:o,updated:o}),o.deep&&Bi(r),s.push({dir:o,instance:n,value:r,oldValue:void 0,arg:i,modifiers:l}))}return e}function cu(e,t,n,s){const a=e.dirs,o=t&&t.dirs;for(let r=0;r<a.length;r++){const i=a[r];o&&(i.oldValue=o[r].value);let l=i.dir[s];l&&(zr(),ar(l,n,8,[e.el,i,e,t]),Hr())}}function Nt(e,t){if(ia){let n=ia.provides;const s=ia.parent&&ia.parent.provides;s===n&&(n=ia.provides=Object.create(s)),n[e]=t}}function Ke(e,t,n=!1){const s=Mt();if(s||hf){let a=hf?hf._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(a&&e in a)return a[e];if(arguments.length>1)return n&&Ze(t)?t.call(s&&s.proxy):t}}const xO=Symbol.for("v-scx"),kO=()=>Ke(xO);function Wa(e,t){return P4(e,null,t)}function be(e,t,n){return P4(e,t,n)}function P4(e,t,n=Qt){const{immediate:s,deep:a,flush:o,once:r}=n,i=bs({},n),l=t&&s||!t&&o!=="post";let c;if(Z0){if(o==="sync"){const p=kO();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=en,p.resume=en,p.pause=en,p}}const u=ia;i.call=(p,v,m)=>ar(p,u,v,m);let d=!1;o==="post"?i.sc
2026-05-27 23:13:02 +08:00
* @ vue / runtime - dom v3 . 5.28
* ( c ) 2018 - present Yuxi ( Evan ) You and Vue contributors
* @ license MIT
2026-07-09 18:37:16 +08:00
* * /let Z4;const gS=typeof window<"u"&&window.trustedTypes;if(gS)try{Z4=gS.createPolicy("vue",{createHTML:e=>e})}catch{}const bS=Z4?e=>Z4.createHTML(e):e=>e,SL="http:/ / www . w3 . org / 2000 / svg ",xL=" http : //www.w3.org/1998/Math/MathML",ji=typeof document<"u"?document:null,yS=ji&&ji.createElement("template"),kL={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const a=t==="svg"?ji.createElementNS(SL,e):t==="mathml"?ji.createElementNS(xL,e):n?ji.createElement(e,{is:n}):ji.createElement(e);return e==="select"&&s&&s.multiple!=null&&a.setAttribute("multiple",s.multiple),a},createText:e=>ji.createTextNode(e),createComment:e=>ji.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ji.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,a,o){const r=n?n.previousSibling:t.lastChild;if(a&&(a===o||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),!(a===o||!(a=a.nextSibling)););else{yS.innerHTML=bS(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const i=yS.content;if(s==="svg"||s==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Zl="transition",Q0="animation",vf=Symbol("_vtc"),wS={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},_S=bs({},kC,wS),ws=(e=>(e.displayName="Transition",e.props=_S,e))((e,{slots:t})=>ut(PO,SS(e),t)),pu=(e,t=[])=>{Ae(e)?e.forEach(n=>n(...t)):e&&e(...t)},CS=e=>e?Ae(e)?e.some(t=>t.length>1):e.length>1:!1;function SS(e){const t={};for(const M in e)M in wS||(t[M]=e[M]);if(e.css===!1)return t;const{name:n="v",type:s,duration:a,enterFromClass:o=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:c=r,appearToClass:u=i,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,v=EL(a),m=v&&v[0],g=v&&v[1],{onBeforeEnter:b,onEnter:C,onEnterCancelled:w,onLeave:_,onLeaveCancelled:x,onBeforeAppear:k=b,onAppear:T=C,onAppearCancelled:I=w}=t,O=(M,B,U,J)=>{M._enterCancelled=J,Ql(M,B?u:i),Ql(M,B?c:r),U&&U()},R=(M,B)=>{M._isLeaving=!1,Ql(M,d),Ql(M,p),Ql(M,h),B&&B()},$=M=>(B,U)=>{const J=M?T:C,Y=()=>O(B,M,U);pu(J,[B,Y]),xS(()=>{Ql(B,M?l:o),Yr(B,M?u:i),CS(J)||kS(B,s,m,Y)})};return bs(t,{onBeforeEnter(M){pu(b,[M]),Yr(M,o),Yr(M,r)},onBeforeAppear(M){pu(k,[M]),Yr(M,l),Yr(M,c)},onEnter:$(!1),onAppear:$(!0),onLeave(M,B){M._isLeaving=!0;const U=()=>R(M,B);Yr(M,d),M._enterCancelled?(Yr(M,h),ey(M)):(ey(M),Yr(M,h)),xS(()=>{M._isLeaving&&(Ql(M,d),Yr(M,p),CS(_)||kS(M,s,g,U))}),pu(_,[M,U])},onEnterCancelled(M){O(M,!1,void 0,!0),pu(w,[M])},onAppearCancelled(M){O(M,!0,void 0,!0),pu(I,[M])},onLeaveCancelled(M){R(M),pu(x,[M])}})}function EL(e){if(e==null)return null;if(bt(e))return[Q4(e.enter),Q4(e.leave)];{const t=Q4(e);return[t,t]}}function Q4(e){return $I(e)}function Yr(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[vf]||(e[vf]=new Set)).add(t)}function Ql(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[vf];n&&(n.delete(t),n.size||(e[vf]=void 0))}function xS(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let AL=0;function kS(e,t,n,s){const a=e._endId=++AL,o=()=>{a===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:r,timeout:i,propCount:l}=ES(e,t);if(!r)return s();const c=r+"end";let u=0;const d=()=>{e.removeEventListener(c,h),o()},h=p=>{p.target===e&&++u>=l&&d()};setTimeout(()=>{u<l&&d()},i+1),e.addEventListener(c,h)}function ES(e,t){const n=window.getComputedStyle(e),s=v=>(n[v]||"").split(", "),a=s(`${Zl}Delay`),o=s(`${Zl}Duration`),r=AS(a,o),i=s(`${Q0}Delay`),l=s(`${Q0}Duration`),
2026-05-27 23:13:02 +08:00
Add an empty element to avoid render label ,
do not use empty fragment here for https : //github.com/vuejs/vue-next/pull/2485
2026-07-09 18:37:16 +08:00
` ),R[2]||(R[2]=A("span",null,null,-1))]),_:1},8,["model-value","label","disabled"])):h.value&&e.node.checked?(S(),le(f(Je),{key:2,class:D(f(o).e("prefix"))},{default:X(()=>[W(f(Tf))]),_:1},8,["class"])):ie("v-if",!0),ie(" content "),W(f(one),{node:e.node},null,8,["node"]),ie(" postfix "),h.value?ie("v-if",!0):(S(),P(He,{key:3},[e.node.loading?(S(),le(f(Je),{key:0,class:D([f(o).is("loading"),f(o).e("postfix")])},{default:X(()=>[W(f(Fs))]),_:1},8,["class"])):(S(),le(f(Je),{key:1,class:D(["arrow-right",f(o).e("postfix")])},{default:X(()=>[W(f(Ds))]),_:1},8,["class"]))],64))],42,rne))}}),lne=j({name:"ElCascaderMenu",__name:"menu",props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(e){const t=e,n=Mt(),s=Ee("cascader-menu"),{t:a}=Bt(),o=Bs();let r,i;const l=Ke(Yg),c=F(),u=E(()=>!t.nodes.length),d=E(()=>!l.initialLoaded),h=E(()=> ` $ { o . value } - $ { t . index } ` ),p=b=>{r=b.target},v=b=>{var C;if(!(!l.isHoverMenu||!r||!c.value))if(r.contains(b.target)){m();const w=n.vnode.el,{left:_}=w.getBoundingClientRect(),{offsetWidth:x,offsetHeight:k}=w,T=b.clientX-_,I=r.offsetTop,O=I+r.offsetHeight,R=((C=w.querySelector( ` . $ { s . e ( "wrap" ) } ` ))==null?void 0:C.scrollTop)||0;c.value.innerHTML= `
< path style = "pointer-events: auto;" fill = "transparent" d = "M${T} ${I} L${x} ${R} V${I} Z" / >
< path style = "pointer-events: auto;" fill = "transparent" d = "M${T} ${O} L${x} ${k+R} V${O} Z" / >
` }else i||(i=window.setTimeout(g,l.config.hoverThreshold))},m=()=>{i&&(clearTimeout(i),i=void 0)},g=()=>{c.value&&(c.value.innerHTML="",m())};return(b,C)=>(S(),le(f(pr),{key:h.value,tag:"ul",role:"menu",class:D(f(s).b()),"wrap-class":f(s).e("wrap"),"view-class":[f(s).e("list"),f(s).is("empty",u.value)],onMousemove:v,onMouseleave:g},{default:X(()=>{var w;return[(S(!0),P(He,null,Et(e.nodes,_=>(S(),le(ine,{key:_.uid,node:_,"menu-id":h.value,onExpand:p},null,8,["node","menu-id"]))),128)),d.value?(S(),P("div",{key:0,class:D(f(s).e("empty-text"))},[W(f(Je),{size:"14",class:D(f(s).is("loading"))},{default:X(()=>[W(f(Fs))]),_:1},8,["class"]),je(" "+ge(f(a)("el.cascader.loading")),1)],2)):u.value?(S(),P("div",{key:1,class:D(f(s).e("empty-text"))},[ue(b. $ slots,"empty",{},()=>[je(ge(f(a)("el.cascader.noData")),1)])],2)):(w=f(l))!=null&&w.isHoverMenu?(S(),P(He,{key:2},[ie(" eslint-disable vue/html-self-closing "),(S(),P("svg",{ref_key:"hoverZone",ref:c,class:D(f(s).e("hover-zone"))},null,2))],2112)):ie("v-if",!0),ie(" eslint-enable vue/html-self-closing ")]}),_:3},8,["class","wrap-class","view-class"]))}}),cne=Object.defineProperty,une=(e,t,n)=>t in e?cne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xa=(e,t,n)=>une(e,typeof t!="symbol"?t+"":t,n);let dne=0;const fne=e=>{const t=[e];let{parent:n}=e;for(;n;)t.unshift(n),n=n.parent;return t};let O3=class Fw{constructor(t,n,s,a=!1){this.data=t,this.config=n,this.parent=s,this.root=a,Xa(this,"uid",dne++),Xa(this,"level"),Xa(this,"value"),Xa(this,"label"),Xa(this,"pathNodes"),Xa(this,"pathValues"),Xa(this,"pathLabels"),Xa(this,"childrenData"),Xa(this,"children"),Xa(this,"text"),Xa(this,"loaded"),Xa(this,"checked",!1),Xa(this,"indeterminate",!1),Xa(this,"loading",!1);const{value:o,label:r,children:i}=n,l=t[i],c=fne(this);this.level=a?0:s?s.level+1:1,this.value=t[o],this.label=t[r],this.pathNodes=c,this.pathValues=c.map(u=>u.value),this.pathLabels=c.map(u=>u.label),this.childrenData=l,this.children=(l||[]).map(u=>new Fw(u,n,this)),this.loaded=!n.lazy||this.isLeaf||!Ra(l),this.text=""}get isDisabled(){const{data:t,parent:n,config:s}=this,{disabled:a,checkStrictly:o}=s;return(Ze(a)?a(t,this):!!t[a])||!o&&!!(n!=null&&n.isDisabled)}get isLeaf(){const{data:t,config:n,childrenData:s,loaded:a}=this,{lazy:o,leaf:r}=n,i=Ze(r)?r(t,this):t[r];return Ht(i)?o&&!a?!1:!(Ae(s)&&s.length):!!i}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(t){const{childrenData:n,children:s}=this,a=new Fw(t,this.config,this);return Ae(n)?n.push(t):this.childrenData=[t],s.push(a),a}calcText(t,n){const s=t?this.pathLabels.join(n):this.label;return this.text=s,s}broadcast(t){this.children.forEach(n=>{var s;n&&(n.broadcast(t),(s=n.onParentCheck)==null||s.call(n,t))})}emit(){var t;const{parent:n}=this;n&&((t=n.onChildCheck)==null||t.call(n),n.emit())}onParentCheck(t){this.isDisabled||this.setCheckState(t)}onChildCheck(){const{children:t}=this,n=t.filter(a=>!a.isDisabled),s=n.length?n.every(a=>a.checked):!1;this.setCheckState(s)}setCheckState(t){const n=this.children.length,s=this.children.reduce((a,o)=>{const r=o.checked?1:o.indeterminate?.5:0;return a+r},0);this.checked=this.loaded&&this.children.filter(a=>!a.isDisabled).every(a=>a.loaded&&a.checked)&&t,this.indeterminate=this.loaded&&s!==n&&s>0}doCheck(t){if(this.checked===t)return;const{checkStrictly:n,multiple:s}=this.config;n||!s?this.checked=t:(this.broadcast(t),this.setCheckState(t),this.emit())}};var hne=Object.defineProperty,pne=(e,t,n)=>t in e?hne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L3=(e,t,n)=>pne(e,typeof t!="symbol"?t+"":t,n);const N3=(e,t)=>e.reduce((n,s)=>(s.isLeaf?n.push(s):(!t&&n.push(s),n=n.concat(N3(s.children,t))),n),[]);class bE{constructor(t,n){this.config=n,L3(this,"nodes"),L3(this,"allNodes"),L3(this,"leafNodes");const s=(t||[]).map(a=>new O3(a,this.config));this.nodes=s,this.allNodes=N3(s,!1),this.leafNodes=N3(s,!0)}getNodes(){return this.nodes}getFlattedNodes(t){return t?this.leafNodes:this.allNodes}appendNode(t,n){const s=n?n.appendChild(t):new O3(t,this.confi
2026-05-27 23:13:02 +08:00
(?:
(?: ` + s + ":){7}(?:" + s + ` |:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
(?: ` + s + ":){6}(?:" + n + "|:" + s + ` |:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
(?: ` + s + ":){5}(?::" + n + "|(?::" + s + ` ){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
(?: ` + s + ":){4}(?:(?::" + s + "){0,1}:" + n + "|(?::" + s + ` ){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
(?: ` + s + ":){3}(?:(?::" + s + "){0,2}:" + n + "|(?::" + s + ` ){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
(?: ` + s + ":){2}(?:(?::" + s + "){0,3}:" + n + "|(?::" + s + ` ){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
(?: ` + s + ":){1}(?:(?::" + s + "){0,4}:" + n + "|(?::" + s + ` ){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
(?::(?:(?:: ` + s + "){0,5}:" + n + "|(?::" + s + ` ){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
2026-07-09 18:37:16 +08:00
` ) . replace ( /\s*\/\/.*$/gm , "" ) . replace ( /\n/g , "" ) . trim ( ) , o = new RegExp ( "(?:^" + n + "$)|(?:^" + a + "$)" ) , r = new RegExp ( "^" + n + "$" ) , i = new RegExp ( "^" + a + "$" ) , l = function ( _ ) { return _ && _ . exact ? o : new RegExp ( "(?:" + t ( _ ) + n + t ( _ ) + ")|(?:" + t ( _ ) + a + t ( _ ) + ")" , "g" ) } ; l . v4 = function ( w ) { return w && w . exact ? r : new RegExp ( "" + t ( w ) + n + t ( w ) , "g" ) } , l . v6 = function ( w ) { return w && w . exact ? i : new RegExp ( "" + t ( w ) + a + t ( w ) , "g" ) } ; var c = "(?:(?:[a-z]+:)?//)" , u = "(?:\\S+(?::\\S*)?@)?" , d = l . v4 ( ) . source , h = l . v6 ( ) . source , p = "(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)" , v = "(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*" , m = "(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" , g = "(?::\\d{2,5})?" , b = '(?:[/?#][^\\s"]*)?' , C = "(?:" + c + "|www\\.)" + u + "(?:localhost|" + d + "|" + h + "|" + p + v + m + ")" + g + b ; return f1 = new RegExp ( "(?:^" + C + "$)" , "i" ) , f1 } , OA = { email : /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/ , hex : /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i } , Yp = { integer : function ( t ) { return Yp . number ( t ) && parseInt ( t , 10 ) === t } , float : function ( t ) { return Yp . number ( t ) && ! Yp . integer ( t ) } , array : function ( t ) { return Array . isArray ( t ) } , regexp : function ( t ) { if ( t instanceof RegExp ) return ! 0 ; try { return ! ! new RegExp ( t ) } catch { return ! 1 } } , date : function ( t ) { return typeof t . getTime == "function" && typeof t . getMonth == "function" && typeof t . getYear == "function" && ! isNaN ( t . getTime ( ) ) } , number : function ( t ) { return isNaN ( t ) ? ! 1 : typeof t == "number" } , object : function ( t ) { return typeof t == "object" && ! Yp . array ( t ) } , method : function ( t ) { return typeof t == "function" } , email : function ( t ) { return typeof t == "string" && t . length <= 320 && ! ! t . match ( OA . email ) } , url : function ( t ) { return typeof t == "string" && t . length <= 2048 && ! ! t . match ( Cie ( ) ) } , hex : function ( t ) { return typeof t == "string" && ! ! t . match ( OA . hex ) } } , Sie = function ( t , n , s , a , o ) { if ( t . required && n === void 0 ) { IA ( t , n , s , a , o ) ; return } var r = [ "integer" , "float" , "array" , "regexp" , "object" , "method" , "email" , "number" , "date" , "url" , "hex" ] , i = t . type ; r . indexOf ( i ) > - 1 ? Yp [ i ] ( n ) || a . push ( ho ( o . messages . types [ i ] , t . fullField , t . type ) ) : i && typeof n !== t . type && a . push ( ho ( o . messages . types [ i ] , t . fullField , t . type ) ) } , xie = function ( t , n , s , a , o ) { var r = typeof t . len == "number" , i = typeof t . min == "number" , l = typeof t . max == "number" , c = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g , u = n , d = null , h = typeof n == "number" , p = typeof n == "string" , v = Array . isArray ( n ) ; if ( h ? d = "number" : p ? d = "string" : v && ( d = "array" ) , ! d ) return ! 1 ; v && ( u = n . length ) , p && ( u = n . replace ( c , "_" ) . length ) , r ? u !== t . len && a . push ( ho ( o . messages [ d ] . len , t . fullField , t . len ) ) : i && ! l && u < t . min ? a . push ( ho ( o . messages [ d ] . min , t . fullField , t . min ) ) : l && ! i && u > t . max ? a . push ( ho ( o . messages [ d ] . max , t . fullField , t . max ) ) : i && l && ( u < t . min || u > t . max ) && a . push ( ho ( o . messages [ d ] . range , t . fullField , t . min , t . max ) ) } , jf = "enum" , kie = function ( t , n , s , a , o ) { t [ jf ] = Array . isArray ( t [ jf ] ) ? t [ jf ] : [ ] , t [ jf ] . indexOf ( n ) === - 1 && a . push ( ho ( o . messages [ jf ] , t . fullField , t [ jf ] . join ( ", " ) ) ) } , Eie = function ( t , n , s , a , o ) { if ( t . pattern ) { if ( t . pattern instanceof RegExp ) t . pattern . lastIndex = 0 , t . pattern . test ( n ) || a . push ( ho ( o . messages . pattern . mismatch , t . fullField , n , t . pattern ) ) ; else if ( typeof t . pattern == "string" ) { var r = new RegExp ( t . pattern ) ; r . test ( n ) || a . push ( ho ( o . messages . pattern . mismatch , t . fullField , n , t . pattern ) ) } } } , wn = { required : IA , whitespace : _ie , type : Sie , range : xie , enum : kie , pattern : Eie } , Aie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( Ps ( n , "string" ) && ! t . required ) return s ( ) ; wn . required ( t , n , a , r , o , "string" ) , Ps ( n , "string" ) || ( wn . type ( t , n , a , r , o ) , wn . range ( t , n , a , r , o ) , wn . pattern ( t , n , a , r , o ) , t . whitespace === ! 0 && wn . whitespace ( t , n , a , r , o ) ) } s ( r ) } , Tie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( Ps ( n ) && ! t . required ) return s ( ) ; wn . required ( t , n , a , r , o ) , n !== void 0 && wn . type ( t , n , a , r , o ) } s ( r ) } , Mie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( n === "" && ( n = void 0 ) , Ps ( n ) && ! t . required ) return s ( ) ; wn . required ( t , n , a , r , o ) , n !== void 0 && ( wn . type ( t , n , a , r , o ) , wn . range ( t , n , a , r , o ) ) } s ( r ) } , Pie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( Ps
2026-05-27 23:13:02 +08:00
M 50 50
2026-07-09 18:37:16 +08:00
m 0 $ { _ ? "" : "-" } $ { w }
a $ { w } $ { w } 0 1 1 0 $ { _ ? "-" : "" } $ { w * 2 }
a $ { w } $ { w } 0 1 1 0 $ { _ ? "" : "-" } $ { w * 2 }
` }),l=E(()=>2*Math.PI*r.value),c=E(()=>n.type==="dashboard"?.75:1),u=E(()=> ` $ { - 1 * l . value * ( 1 - c . value ) / 2 } px ` ),d=E(()=>({strokeDasharray: ` $ { l . value * c . value } px , $ { l . value } px ` ,strokeDashoffset:u.value})),h=E(()=>({strokeDasharray: ` $ { l . value * c . value * ( n . percentage / 100 ) } px , $ { l . value } px ` ,strokeDashoffset:u.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"})),p=E(()=>{let w;return n.color?w=C(n.percentage):w=t[n.status]||t.default,w}),v=E(()=>n.status==="warning"?Ep:n.type==="line"?n.status==="success"?xp:Do:n.status==="success"?Tf:Ua),m=E(()=>n.type==="line"?12+n.strokeWidth*.4:n.width*.111111+2),g=E(()=>n.format(n.percentage));function b(w){const _=100/w.length;return w.map((k,T)=>Xe(k)?{color:k,percentage:(T+1)*_}:k).sort((k,T)=>k.percentage-T.percentage)}const C=w=>{var _;const{color:x}=n;if(Ze(x))return x(w);if(Xe(x))return x;{const k=b(x);for(const T of k)if(T.percentage>w)return T.color;return(_=k[k.length-1])==null?void 0:_.color}};return(w,_)=>(S(),P("div",{class:D([f(s).b(),f(s).m(e.type),f(s).is(e.status),{[f(s).m("without-text")]:!e.showText,[f(s).m("text-inside")]:e.textInside}]),role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"},[e.type==="line"?(S(),P("div",{key:0,class:D(f(s).b("bar"))},[A("div",{class:D(f(s).be("bar","outer")),style:Qe({height: ` $ { e . strokeWidth } px ` })},[A("div",{class:D([f(s).be("bar","inner"),{[f(s).bem("bar","inner","indeterminate")]:e.indeterminate},{[f(s).bem("bar","inner","striped")]:e.striped},{[f(s).bem("bar","inner","striped-flow")]:e.stripedFlow}]),style:Qe(a.value)},[(e.showText||w. $ slots.default)&&e.textInside?(S(),P("div",{key:0,class:D(f(s).be("bar","innerText"))},[ue(w. $ slots,"default",{percentage:e.percentage},()=>[A("span",null,ge(g.value),1)])],2)):ie("v-if",!0)],6)],6)],2)):(S(),P("div",{key:1,class:D(f(s).b("circle")),style:Qe({height: ` $ { e . width } px ` ,width: ` $ { e . width } px ` })},[(S(),P("svg",Ice,[A("path",{class:D(f(s).be("circle","track")),d:i.value,stroke: ` var ( $ { f ( s ) . cssVarName ( "fill-color-light" ) } , # e5e9f2 ) ` ,"stroke-linecap":e.strokeLinecap,"stroke-width":o.value,fill:"none",style:Qe(d.value)},null,14,Oce),A("path",{class:D(f(s).be("circle","path")),d:i.value,stroke:p.value,fill:"none",opacity:e.percentage?1:0,"stroke-linecap":e.strokeLinecap,"stroke-width":o.value,style:Qe(h.value)},null,14,Lce)]))],6)),(e.showText||w. $ slots.default)&&!e.textInside?(S(),P("div",{key:2,class:D(f(s).e("text")),style:Qe({fontSize: ` $ { m . value } px ` })},[ue(w. $ slots,"default",{percentage:e.percentage},()=>[e.status?(S(),le(f(Je),{key:1},{default:X(()=>[(S(),le(kt(v.value)))]),_:1})):(S(),P("span",Nce,ge(g.value),1))])],6)):ie("v-if",!0)],10,Rce))}});const GA=yt( $ ce),Dce=Me({modelValue:{type:Number,default:0},id:{type:String,default:void 0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:re([Array,Object]),default:()=>Ln(["","",""])},voidColor:{type:String,default:""},disabledVoidColor:{type:String,default:""},icons:{type:re([Array,Object]),default:()=>[kp,kp,kp]},voidIcon:{type:rn,default:()=>d9},disabledVoidIcon:{type:rn,default:()=>kp},disabled:{type:Boolean,default:void 0},allowHalf:Boolean,showText:Boolean,showScore:Boolean,textColor:{type:String,default:""},texts:{type:re(Array),default:()=>Ln(["Extremely bad","Disappointed","Fair","Satisfied","Surprise"])},scoreTemplate:{type:String,default:"{value}"},size:ds,clearable:Boolean,...ca(["ariaLabel"])}),Fce={[Dt]:e=>at(e),[mt]:e=>at(e)},Bce=["id","aria-label","aria-labelledby","aria-valuenow","aria-valuetext","aria-valuemax"],Vce=["onMousemove","onClick"];var zce=j({name:"ElRate",__name:"rate",props:Dce,emits:Fce,setup(e,{expose:t,emit:n}){function s(N,V){const z=K=>bt(K),q=Object.keys(V).map(K=>+K).filter(K=>{const ee=V[K];return(z(ee)?ee.excluded:!1)?N<K:N<=K}).sort((K,ee)=>K-ee),Q=V[q[0]];return z(Q)&&Q.value||Q}const a=e,o=n,r=Ke(si,void 0),i=rs(),l=Ee("rate"),{inputId:c,isLabeledByFormItem:u}=uo(a,{formItemContext:r}),d=F(yu(a.modelValue,0,a.max)),h=F(-1),p=F(!0),v=F([]),m=E(()=>v.value.map(N=>N. $
2026-05-27 23:13:02 +08:00
* Checks if an event is supported in the current execution environment.
*
* NOTE: This will not work correctly for non-generic events such as ` change ` ,
* ` reset ` , ` load ` , ` error ` , and ` select ` .
*
* Borrows from Modernizr.
*
* @param {string} eventNameSuffix Event name, e.g. "click".
* @param {?boolean} capture Check if the capture phase is supported.
* @return {boolean} True if the event is supported.
* @internal
* @license Modernizr 3.0.0pre (Custom Build) | MIT
2026-07-09 18:37:16 +08:00
*/const E1="_Mousewheel",UT=function(e,t){if(e&&e.addEventListener){qT(e);const n=function(s){const a=yfe(s);t&&Reflect.apply(t,this,[s,a])};e[E1]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},qT=e=>{var t;(t=e[E1])!=null&&t.wheelHandler&&(e.removeEventListener("wheel",e[E1].wheelHandler),e[E1]=null)},wfe={beforeMount(e,t){UT(e,t.value)},unmounted(e){qT(e)},updated(e,t){t.value!==t.oldValue&&UT(e,t.value)}};let _fe=1;var Cfe=j({name:"ElTable",directives:{Mousewheel:wfe},components:{TableHeader:Qde,TableBody:ofe,TableFooter:lfe,ElScrollbar:pr,hColgroup:LT},props:ffe,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t}=Bt(),n=Ee("table"),s=Mt();Nt(br,s);const a=Fde(s,e);s.store=a;const o=new Hde({store:s.store,table:s,fit:e.fit,showHeader:e.showHeader});s.layout=o;const r=E(()=>(a.states.data.value||[]).length===0),{setCurrentRow:i,getSelectionRows:l,toggleRowSelection:c,clearSelection:u,clearFilter:d,toggleAllSelection:h,toggleRowExpansion:p,clearSort:v,sort:m,updateKeyChildren:g}=cfe(a),{isHidden:b,renderExpanded:C,setDragVisible:w,isGroup:_,handleMouseLeave:x,handleHeaderFooterMousewheel:k,tableSize:T,emptyBlockStyle:I,resizeProxyVisible:O,bodyWidth:R,resizeState: $ ,doLayout:M,tableBodyStyles:B,tableLayout:U,scrollbarViewStyle:J,scrollbarStyle:Y}=ufe(e,o,a,s),{scrollBarRef:L,scrollTo:N,setScrollLeft:V,setScrollTop:z}=hfe(),q=Jr(M,50),Q= ` $ { n . namespace . value } - table _$ { _fe ++ } ` ;s.tableId=Q,s.state={isGroup:_,resizeState: $ ,doLayout:M,debouncedUpdateLayout:q};const K=E(()=>{var pe;return(pe=e.sumText)!=null?pe:t("el.table.sumText")}),ee=E(()=>{var pe;return(pe=e.emptyText)!=null?pe:t("el.table.emptyText")}),se=E(()=>OT(a.states.originColumns.value)[0]);return dfe(s),tn(()=>{q.cancel()}),{ns:n,layout:o,store:a,columns:se,handleHeaderFooterMousewheel:k,handleMouseLeave:x,tableId:Q,tableSize:T,isHidden:b,isEmpty:r,renderExpanded:C,resizeProxyVisible:O,resizeState: $ ,isGroup:_,bodyWidth:R,tableBodyStyles:B,emptyBlockStyle:I,debouncedUpdateLayout:q,setCurrentRow:i,getSelectionRows:l,toggleRowSelection:c,clearSelection:u,clearFilter:d,toggleAllSelection:h,toggleRowExpansion:p,clearSort:v,doLayout:M,sort:m,updateKeyChildren:g,t,setDragVisible:w,context:s,computedSumText:K,computedEmptyText:ee,tableLayout:U,scrollbarViewStyle:J,scrollbarStyle:Y,scrollBarRef:L,scrollTo:N,setScrollLeft:V,setScrollTop:z,allowDragLastColumn:e.allowDragLastColumn}}});const Sfe=["data-prefix"],xfe={ref:"hiddenColumns",class:"hidden-columns"};function kfe(e,t,n,s,a,o){const r=Ge("hColgroup"),i=Ge("table-header"),l=Ge("table-body"),c=Ge("table-footer"),u=Ge("el-scrollbar"),d=F4("mousewheel");return S(),P("div",{ref:"tableWrapper",class:D([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m( ` layout - $ { e . tableLayout } ` )]),style:Qe(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...h)=>e.handleMouseLeave&&e.handleMouseLeave(...h))},[A("div",{ref:"tableInnerWrapper",class:D(e.ns.e("inner-wrapper"))},[A("div",xfe,[ue(e. $ slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?Ct((S(),P("div",{key:0,ref:"headerWrapper",class:D(e.ns.e("header-wrapper"))},[A("table",{ref:"tableHeader",class:D(e.ns.e("header")),style:Qe(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[W(r,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]
` || c === "\r" ) { r = l ; continue } if ( o . includes ( c ) ) { const u = r === - 1 ? s : r ; i = { pattern : a . slice ( l + 1 , u ) , start : l + 1 , end : u , prefix : c , prefixIndex : l , splitIndex : r , selectionEnd : s } ; break } } return i } , nme = ( e , t = { debug : ! 1 , useSelectionEnd : ! 1 } ) => { const n = e . selectionStart !== null ? e . selectionStart : 0 , s = e . selectionEnd !== null ? e . selectionEnd : 0 , a = t . useSelectionEnd ? s : n , o = [ "direction" , "boxSizing" , "width" , "height" , "overflowX" , "overflowY" , "borderTopWidth" , "borderRightWidth" , "borderBottomWidth" , "borderLeftWidth" , "borderStyle" , "paddingTop" , "paddingRight" , "paddingBottom" , "paddingLeft" , "fontStyle" , "fontVariant" , "fontWeight" , "fontStretch" , "fontSize" , "fontSizeAdjust" , "lineHeight" , "fontFamily" , "textAlign" , "textTransform" , "textIndent" , "textDecoration" , "letterSpacing" , "wordSpacing" , "tabSize" , "MozTabSize" ] ; if ( t . debug ) { const h = document . querySelector ( "#input-textarea-caret-position-mirror-div" ) ; h != null && h . parentNode && h . parentNode . removeChild ( h ) } const r = document . createElement ( "div" ) ; r . id = "input-textarea-caret-position-mirror-div" , document . body . appendChild ( r ) ; const i = r . style , l = window . getComputedStyle ( e ) , c = e . nodeName === "INPUT" ; i . whiteSpace = c ? "nowrap" : "pre-wrap" , c || ( i . wordWrap = "break-word" ) , i . position = "absolute" , t . debug || ( i . visibility = "hidden" ) , o . forEach ( h => { if ( c && h === "lineHeight" ) if ( l . boxSizing === "border-box" ) { const p = Number . parseInt ( l . height ) , v = Number . parseInt ( l . paddingTop ) + Number . parseInt ( l . paddingBottom ) + Number . parseInt ( l . borderTopWidth ) + Number . parseInt ( l . borderBottomWidth ) , m = v + Number . parseInt ( l . lineHeight ) ; p > m ? i . lineHeight = ` ${ p - v } px ` : p === m ? i . lineHeight = l . lineHeight : i . lineHeight = "0" } else i . lineHeight = l . height ; else i [ h ] = l [ h ] } ) , o3 ( ) ? e . scrollHeight > Number . parseInt ( l . height ) && ( i . overflowY = "scroll" ) : i . overflow = "hidden" , r . textContent = e . value . slice ( 0 , Math . max ( 0 , a ) ) , c && r . textContent && ( r . textContent = r . textContent . replace ( /\s/g , " " ) ) ; const u = document . createElement ( "span" ) ; u . textContent = e . value . slice ( Math . max ( 0 , a ) ) || "." , u . style . position = "relative" , u . style . left = ` ${ - e . scrollLeft } px ` , u . style . top = ` ${ - e . scrollTop } px ` , r . appendChild ( u ) ; const d = { top : u . offsetTop + Number . parseInt ( l . borderTopWidth ) , left : u . offsetLeft + Number . parseInt ( l . borderLeftWidth ) , height : Number . parseInt ( l . fontSize ) * 1.5 } ; return t . debug ? u . style . backgroundColor = "#aaa" : document . body . removeChild ( r ) , d . left >= e . clientWidth && ( d . left = e . clientWidth ) , d } , sme = Me ( { ... Lp , options : { type : re ( Array ) , default : ( ) => [ ] } , prefix : { type : re ( [ String , Array ] ) , default : "@" , validator : e => Xe ( e ) ? e . length === 1 : e . every ( t => Xe ( t ) && t . length === 1 ) } , split : { type : String , default : " " , validator : e => e . length === 1 } , filterOption : { type : re ( [ Boolean , Function ] ) , default : ( ) => eme , validator : e => e === ! 1 ? ! 0 : Ze ( e ) } , placement : { type : re ( String ) , default : "bottom" } , showArrow : Boolean , offset : { type : Number , default : 0 } , whole : Boolean , checkIsWhole : { type : re ( Function ) } , modelValue : String , loading : Boolean , popperClass : ln . popperClass , popperStyle : ln . popperStyle , popperOptions : { type : re ( Object ) , default : ( ) => ( { } ) } , props : { type : re ( Object ) , default : ( ) => w7 } } ) , ame = { [ mt ] : e => Xe ( e ) , "whole-remove" : ( e , t ) => Xe ( e ) && Xe ( t ) , input : e => Xe ( e ) , search : ( e , t ) => Xe ( e ) && Xe ( t ) , select : ( e , t ) => bt ( e ) && Xe ( t ) , focus : e => e instanceof FocusEvent , blur : e => e instanceof FocusEvent } , w7 = { value : "value" , label : "label" , disabled : "disabled" } , ome = Me ( { options : { type : re ( Array ) , default : ( ) => [ ] } , loading : Boolean , disabled : Boolean , contentId : String , ariaLabel : String } ) , rme = { select : e => Xe ( e . value ) } , ime = [ "id" , "aria-disabled" , "aria-selected" , "onMousemove" , "onClick" ] ; var lme = j ( { name : "ElMentionDropdown" , _ _name : "mention-dropdown" , props : ome , emits : rme , setup ( e , { expose : t , emit : n } ) { const s = e , a = n , o = Ee ( "mention" ) , { t : r } = Bt ( ) , i = F ( - 1 ) , l = F ( ) , c = F ( ) , u = F ( ) , d = ( _ , x ) => [ o . be ( "dropdown" , "item" ) , o . is ( "hovering" , i . value === x ) , o . is ( "disabled" , _ . disabled || s . disabled ) ] , h = _ => { _ . disabled || s . disabled || a ( "select" , _ ) } , p = _ => { i . value = _ } , v = E ( ( ) => s . disabled || s . options . every ( _ => _ . disabled ) ) , m = E ( ( ) => s . options [ i . value ] ) , g = ( ) => { m . value && a ( "select" , m . value ) } , b = _ => { const { options : x } = s ; if ( x . length === 0 || v . value ) return ; _ === "next" ? ( i . value ++ , i . value === x . length && ( i . value = 0 ) ) : _ === "prev" && ( i . value -- , i . value < 0 && ( i . value = x . length - 1 ) ) ; const k = x [ i . value ] ; if ( k . disabled ) { b ( _ ) ; return } ze ( ( ) => C ( k ) ) } , C = _ => { var x , k , T , I ; const { options : O } = s , R = O . findIndex
2026-05-27 23:13:02 +08:00
* vue - router v4 . 6.4
* ( c ) 2025 Eduardo San Martin Morote
* @ license MIT
2026-07-09 18:37:16 +08:00
* /const ch=typeof document<"u";function O7(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function k2e(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&O7(e.default)}const Rn=Object.assign;function D8(e,t){const n={};for(const s in t){const a=t[s];n[s]=Cr(a)?a.map(e):e(a)}return n}const gv=()=>{},Cr=Array.isArray;function L7(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const N7=/ # / g , E2e = /&/g , A2e = /\//g , T2e = /=/g , M2e = /\?/g , $7 = /\+/g , P2e = /%5B/g , R2e = /%5D/g , D7 = /%5E/g , I2e = /%60/g , F7 = /%7B/g , O2e = /%7C/g , B7 = /%7D/g , L2e = /%20/g ; function F8 ( e ) { return e == null ? "" : encodeURI ( "" + e ) . replace ( O2e , "|" ) . replace ( P2e , "[" ) . replace ( R2e , "]" ) } function N2e ( e ) { return F8 ( e ) . replace ( F7 , "{" ) . replace ( B7 , "}" ) . replace ( D7 , "^" ) } function B8 ( e ) { return F8 ( e ) . replace ( $7 , "%2B" ) . replace ( L2e , "+" ) . replace ( N7 , "%23" ) . replace ( E2e , "%26" ) . replace ( I2e , "`" ) . replace ( F7 , "{" ) . replace ( B7 , "}" ) . replace ( D7 , "^" ) } function $2e ( e ) { return B8 ( e ) . replace ( T2e , "%3D" ) } function D2e ( e ) { return F8 ( e ) . replace ( N7 , "%23" ) . replace ( M2e , "%3F" ) } function F2e ( e ) { return D2e ( e ) . replace ( A2e , "%2F" ) } function bv ( e ) { if ( e == null ) return null ; try { return decodeURIComponent ( "" + e ) } catch { } return "" + e } const B2e = /\/$/ , V2e = e => e . replace ( B2e , "" ) ; function V8 ( e , t , n = "/" ) { let s , a = { } , o = "" , r = "" ; const i = t . indexOf ( "#" ) ; let l = t . indexOf ( "?" ) ; return l = i >= 0 && l > i ? - 1 : l , l >= 0 && ( s = t . slice ( 0 , l ) , o = t . slice ( l , i > 0 ? i : t . length ) , a = e ( o . slice ( 1 ) ) ) , i >= 0 && ( s = s || t . slice ( 0 , i ) , r = t . slice ( i , t . length ) ) , s = j2e ( s ? ? t , n ) , { fullPath : s + o + r , path : s , query : a , hash : bv ( r ) } } function z2e ( e , t ) { const n = t . query ? e ( t . query ) : "" ; return t . path + ( n && "?" ) + n + ( t . hash || "" ) } function V7 ( e , t ) { return ! t || ! e . toLowerCase ( ) . startsWith ( t . toLowerCase ( ) ) ? e : e . slice ( t . length ) || "/" } function H2e ( e , t , n ) { const s = t . matched . length - 1 , a = n . matched . length - 1 ; return s > - 1 && s === a && uh ( t . matched [ s ] , n . matched [ a ] ) && z7 ( t . params , n . params ) && e ( t . query ) === e ( n . query ) && t . hash === n . hash } function uh ( e , t ) { return ( e . aliasOf || e ) === ( t . aliasOf || t ) } function z7 ( e , t ) { if ( Object . keys ( e ) . length !== Object . keys ( t ) . length ) return ! 1 ; for ( var n in e ) if ( ! W2e ( e [ n ] , t [ n ] ) ) return ! 1 ; return ! 0 } function W2e ( e , t ) { return Cr ( e ) ? H7 ( e , t ) : Cr ( t ) ? H7 ( t , e ) : ( e == null ? void 0 : e . valueOf ( ) ) === ( t == null ? void 0 : t . valueOf ( ) ) } function H7 ( e , t ) { return Cr ( t ) ? e . length === t . length && e . every ( ( n , s ) => n === t [ s ] ) : e . length === 1 && e [ 0 ] === t } function j2e ( e , t ) { if ( e . startsWith ( "/" ) ) return e ; if ( ! e ) return t ; const n = t . split ( "/" ) , s = e . split ( "/" ) , a = s [ s . length - 1 ] ; ( a === ".." || a === "." ) && s . push ( "" ) ; let o = n . length - 1 , r , i ; for ( r = 0 ; r < s . length ; r ++ ) if ( i = s [ r ] , i !== "." ) if ( i === ".." ) o > 1 && o -- ; else break ; return n . slice ( 0 , o ) . join ( "/" ) + "/" + s . slice ( r ) . join ( "/" ) } const bc = { path : "/" , name : void 0 , params : { } , query : { } , hash : "" , fullPath : "/" , matched : [ ] , meta : { } , redirectedFrom : void 0 } ; let z8 = function ( e ) { return e . pop = "pop" , e . push = "push" , e } ( { } ) , H8 = function ( e ) { return e . back = "back" , e . forward = "forward" , e . unknown = "" , e } ( { } ) ; function K2e ( e ) { if ( ! e ) if ( ch ) { const t = document . querySelector ( "base" ) ; e = t && t . getAttribute ( "href" ) || "/" , e = e . replace ( /^\w+:\/\/[^\/]+/ , "" ) } else e = "/" ; return e [ 0 ] !== "/" && e [ 0 ] !== "#" && ( e = "/" + e ) , V2e ( e ) } const U2e = /^[^#]+#/ ; function q2e ( e , t ) { return e . replace ( U2e , "#" ) + t } function G2e ( e , t ) { const n = document . documentElement . getBoundingClientRect ( ) , s = e . getBoundingClientRect ( ) ; return { behavior : t . behavior , left : s . left - n . left - ( t . left || 0 ) , top : s . top - n . top - ( t . top || 0 ) } } const q1 = ( ) => ( { left : window . scrollX , top : window . scrollY } ) ; function Y2e ( e ) { let t ; if ( "el" in e ) { const n = e . el , s = typeof n == "string" && n . startsWith ( "#" ) , a = typeof n == "string" ? s ? document . getElementById ( n . slice ( 1 ) ) : document . querySelector ( n ) : n ; if ( ! a ) return ; t = G2e ( a , e ) } else t = e ; "scrollBehavior" in document . documentElement . style ? window . scrollTo ( t ) : window . scrollTo ( t . left != null ? t . left : window . scrollX , t . top != null ? t . top : window . scrollY ) } function W7 ( e , t ) { return ( history . state ? history . state . position - t : - 1 ) + e } const W8 = new Map ; function X2e ( e , t ) { W8 . set ( e , t ) } function J2e ( e ) { const t = W8 . get ( e ) ; return W8 . delete ( e ) , t } function Z2e ( e ) { return typeof e == "string" || e && typeof e == "object" } function j7 ( e ) { return typeof e == "string" || typeof e == "symbol" } let hs = function ( e ) { return e [ e . MATCHER _NOT _FOUND = 1 ] = "MATCHER_NOT_FOUND" , e [ e . NAVIGATION _GUARD _REDIRECT = 2 ] = "NAVIGATION
2026-05-27 23:13:02 +08:00
* vue-router v4.6.4
* (c) 2025 Eduardo San Martin Morote
* @license MIT
2026-07-09 18:37:16 +08:00
*/let oge=()=>location.protocol+" //"+location.host;function Y7(e,t){const{pathname:n,search:s,hash:a}=t,o=e.indexOf("#");if(o>-1){let r=a.includes(e.slice(o))?e.slice(o).length:1,i=a.slice(r);return i[0]!=="/"&&(i="/"+i),V7(i,"")}return V7(n,e)+s+a}function rge(e,t,n,s){let a=[],o=[],r=null;const i=({state:h})=>{const p=Y7(e,location),v=n.value,m=t.value;let g=0;if(h){if(n.value=p,t.value=h,r&&r===v){r=null;return}g=m?h.position-m.position:0}else s(p);a.forEach(b=>{b(n.value,v,{delta:g,type:z8.pop,direction:g?g>0?H8.forward:H8.back:H8.unknown})})};function l(){r=n.value}function c(h){a.push(h);const p=()=>{const v=a.indexOf(h);v>-1&&a.splice(v,1)};return o.push(p),p}function u(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Rn({},h.state,{scroll:q1()}),"")}}function d(){for(const h of o)h();o=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:d}}function X7(e,t,n,s=!1,a=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:a?q1():null}}function ige(e){const{history:t,location:n}=window,s={value:Y7(e,n)},a={value:t.state};a.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const d=e.indexOf("#"),h=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+l:oge()+e+l;try{t[u?"replaceState":"pushState"](c,"",h),a.value=c}catch(p){console.error(p),n[u?"replace":"assign"](h)}}function r(l,c){o(l,Rn({},t.state,X7(a.value.back,l,a.value.forward,!0),c,{position:a.value.position}),!0),s.value=l}function i(l,c){const u=Rn({},a.value,t.state,{forward:l,scroll:q1()});o(u.current,u,!0),o(l,Rn({},X7(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:a,push:i,replace:r}}function lge(e){e=K2e(e);const t=ige(e),n=rge(e,t.state,t.location,t.replace);function s(o,r=!0){r||n.pauseListeners(),history.go(o)}const a=Rn({location:"",base:e,go:s,createHref:q2e.bind(null,e)},t,n);return Object.defineProperty(a,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(a,"state",{enumerable:!0,get:()=>t.state.value}),a}function cge(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),lge(e)}let Wu=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var Rs=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(Rs||{});const uge={type:Wu.Static,value:""},dge=/[a-zA-Z0-9_]/;function fge(e){if(!e)return[[]];if(e==="/")return[[uge]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=Rs.Static,s=n;const a=[];let o;function r(){o&&a.push(o),o=[]}let i=0,l,c="",u="";function d(){c&&(n===Rs.Static?o.push({type:Wu.Static,value:c}):n===Rs.Param||n===Rs.ParamRegExp||n===Rs.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Wu.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function h(){c+=l}for(;i<e.length;){if(l=e[i++],l==="\\"&&n!==Rs.ParamRegExp){s=n,n=Rs.EscapeNext;continue}switch(n){case Rs.Static:l==="/"?(c&&d(),r()):l===":"?(d(),n=Rs.Param):h();break;case Rs.EscapeNext:h(),n=s;break;case Rs.Param:l==="("?n=Rs.ParamRegExp:dge.test(l)?h():(d(),n=Rs.Static,l!=="*"&&l!=="?"&&l!=="+"&&i--);break;case Rs.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=Rs.ParamRegExpEnd:u+=l;break;case Rs.ParamRegExpEnd:d(),n=Rs.Static,l!=="*"&&l!=="?"&&l!=="+"&&i--,u="";break;default:t("Unknown state");break}}return n===Rs.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),d(),r(),a}const
` );a=i.pop()??"";for(const l of i)if(l.startsWith("data: "))try{const c=JSON.parse(l.slice(6));t(c)}catch{}}}function X1(e,t){return ` $ { Y1 } / download / $ { e } / $ { t } ` }function qge(e,t=["excel","json"],n,s="drawing",a=!0,o=null){const r=new FormData;for(const l of e)r.append("files",l);r.append("export_formats",t.join(",")),r.append("pdf_mode",s),r.append("auto_correct",a?"true":"false"),o&&r.append("max_concurrent",String(o));const i=new AbortController;return fetch( ` $ { Y1 } / batch ` ,{method:"POST",body:r,signal:i.signal}).then(l=>{if(!l.ok)throw new Error( ` HTTP $ { l . status } ` );return U8(l,n)}).catch(l=>{l.name!=="AbortError"&&n({type:"error",data:{message:l.message}})}),()=>i.abort()}const Gge={class:"panel-header"},Yge={class:"panel-title"},Xge={class:"panel-actions"},Jge={key:0,class:"overall-progress"},Zge={class:"progress-label"},Qge={key:0,class:"current-file"},e1e={key:0,class:"current-msg"},t1e={key:1,class:"summary-row"},n1e={key:1,class:"row-msg"},s1e={key:2,class:"text-danger"},a1e={key:3,class:"text-success"},o1e=cl({__name:"BatchResultPanel",props:{batchEvents:{type:Array,default:()=>[]},batchDone:{type:Boolean,default:!1},mergedSessionId:{type:String,default:""},outputFiles:{type:Object,default:()=>({})},totalFiles:{type:Number,default:0}},emits:["reset"],setup(e,{emit:t}){const n=e,s=t,a=F({});be(()=>n.batchEvents,w=>{for(const _ of w)o(_)},{deep:!0});function o(w){const{type:_,data:x}=w;if(_==="file_start")a.value[x.filename]={filename:x.filename,status:"processing",pages:0,message:"准备中...",percent:0,sessionId:null,error:null,success:!1};else if(_==="file_progress"){const k=a.value[x.filename];k&&(k.message=x.message||k.message,x.percent!=null&&(k.percent=x.percent))}else _==="file_done"?a.value[x.filename]={filename:x.filename,status:"done",pages:x.pages||0,message:"",percent:100,sessionId:x.session_id,error:null,success:!0}:_==="file_error"&&(a.value[x.filename]={filename:x.filename,status:"error",pages:0,message:"",percent:0,sessionId:null,error:x.error,success:!1})}const r=E(()=>Object.values(a.value)),i=E(()=>r.value.filter(w=>w.status==="done"||w.status==="error").length),l=E(()=>r.value.filter(w=>w.status==="done").length),c=E(()=>r.value.filter(w=>w.status==="error").length),u=E(()=>r.value.reduce((w,_)=>w+(_.pages||0),0)),d=E(()=>n.totalFiles?Math.round(i.value/n.totalFiles*100):0),h=E(()=>r.value.find(w=>w.status==="processing")),p=E(()=>{var w;return((w=h.value)==null?void 0:w.filename)||""}),v=E(()=>{var w;return((w=h.value)==null?void 0:w.message)||""}),m=E(()=>{var w;return!!((w=n.outputFiles)!=null&&w.excel)}),g=E(()=>{var w;return!!((w=n.outputFiles)!=null&&w.json)});function b(w){const _=X1(n.mergedSessionId,w),x=document.createElement("a");x.href=_,x.download=w,document.body.appendChild(x),x.click(),document.body.removeChild(x)}function C(w,_,x){const k=X1(w,_),T=_.endsWith(".xlsx")?".xlsx":".json",I=x?x.replace(/ \. pdf $ /i,"")+T:_,O=document.createElement("a");O.href=k,O.download=I,document.body.appendChild(O),O.click(),document.body.removeChild(O)}return(w,_)=>{const x=Ge("el-icon"),k=Ge("el-tag"),T=Ge("el-button"),I=Ge("el-progress"),O=Ge("el-statistic"),R=Ge("el-table-column"), $ =Ge("el-table"),M=Ge("el-card");return S(),le(M,{class:"batch-result-card",shadow:"never"},{header:X(()=>[A("div",Gge,[A("div",Yge,[W(x,null,{default:X(()=>[W(f(Vy))]),_:1}),_[3]||(_[3]=A("span",null,"批量解析结果",-1)),e.batchDone?(S(),le(k,{key:0,type:"success",size:"small"},{default:X(()=>[je(" 完成 "+ge(l.value)+"/"+ge(e.totalFiles),1)]),_:1})):ie("",!0),c.value>0?(S(),le(k,{key:1,type:"danger",size:"small"},{default:X(()=>[je(" 失败 "+ge(c.value),1)]),_:1})):ie("",!0)]),A("div",Xge,[e.mergedSessionId?(S(),P(He,{key:0},[m.value?(S(),le(T,{key:0,type:"primary",size:"small",icon:f(Qi),onClick:_[0]||(_[0]=B=>b("result.xlsx"))},{default:X(()=>[..._[4]||(_[4]=[je("下载合并 Excel",-1)])]),_:1},8,["icon"])):ie("",!0),g.value?(S(),le(T,{key:1,size:"small",icon:f(Qi),onClick:_[1]||(_[1]=B=>b("result.json"))},{default:X(()=>[..._[5]||(_[5]=[je("下载合并 JSON",-1)])]),_:1},8,["icon"])):ie("",!0)],64)):ie("",
${ v } ` : ` [ ${ v } ] ` } function u ( { row : d , column : h } ) { if ( ! d . _flags ) return { } ; const p = h . property , v = d . _flags [ p ] ; return v ? new Set ( [ "llm_corrected" , "rule_corrected" ] ) . has ( v ) ? { backgroundColor : "#FFB347" , color : "#000" , fontWeight : "bold" } : { backgroundColor : "#ADD8E6" , color : "#000" , fontWeight : "bold" } : { } } return ( d , h ) => { const p = Ge ( "el-tooltip" ) , v = Ge ( "el-table-column" ) , m = Ge ( "el-table" ) , g = Ge ( "el-empty" ) ; return S ( ) , P ( "div" , null , [ o . value . length > 0 ? ( S ( ) , P ( He , { key : 0 } , [ W ( m , { data : o . value , border : "" , stripe : "" , size : "small" , style : { width : "100%" } , "max-height" : 500 , "cell-style" : u } , { default : X ( ( ) => [ ( S ( ! 0 ) , P ( He , null , Et ( r . value , b => ( S ( ) , le ( v , { key : b , prop : b , label : l ( b ) , "min-width" : "100" } , { default : X ( ( { row : C } ) => [ C . _flags && C . _flags [ b ] ? ( S ( ) , le ( p , { key : 0 , content : c ( C , b ) , placement : "top" , "show-after" : 300 } , { default : X ( ( ) => [ A ( "span" , u1e , ge ( C [ b ] ) , 1 ) ] ) , _ : 2 } , 1032 , [ "content" ] ) ) : ( S ( ) , P ( "span" , d1e , ge ( C [ b ] ) , 1 ) ) ] ) , _ : 2 } , 1032 , [ "prop" , "label" ] ) ) ) , 128 ) ) ] ) , _ : 1 } , 8 , [ "data" ] ) , A ( "div" , f1e , "共 " + ge ( o . value . length ) + " 行" , 1 ) ] , 64 ) ) : i . value ? ( S ( ) , P ( "pre" , h1e , ge ( i . value ) , 1 ) ) : ( S ( ) , le ( g , { key : 2 , description : "暂无识别数据" , "image-size" : 60 } ) ) ] ) } } } , [ [ "__scopeId" , "data-v-bfa225df" ] ] ) , v1e = { key : 1 , class : "raw-text" } , cP = cl ( { _ _name : "MetaInfo" , props : { data : { type : [ Object , null ] , default : null } } , setup ( e ) { const t = e , n = E ( ( ) => ! t . data || typeof t . data != "object" ? [ ] : Object . entries ( t . data ) . filter ( ( [ a ] ) => a !== "raw_text" && a !== "parse_error" && a !== "part" ) . filter ( ( [ , a ] ) => a != null ) . map ( ( [ a , o ] ) => ( { key : a , value : String ( o ) } ) ) ) , s = E ( ( ) => { var a ; return ( ( a = t . data ) == null ? void 0 : a . raw _text ) || "" } ) ; return ( a , o ) => { const r = Ge ( "el-descriptions-item" ) , i = Ge ( "el-descriptions" ) , l = Ge ( "el-empty" ) ; return S ( ) , P ( "div" , null , [ n . value . length > 0 ? ( S ( ) , le ( i , { key : 0 , column : 1 , border : "" , size : "small" } , { default : X ( ( ) => [ ( S ( ! 0 ) , P ( He , null , Et ( n . value , ( { key : c , value : u } ) => ( S ( ) , le ( r , { key : c , label : c } , { default : X ( ( ) => [ je ( ge ( u ) , 1 ) ] ) , _ : 2 } , 1032 , [ "label" ] ) ) ) , 128 ) ) ] ) , _ : 1 } ) ) : s . value ? ( S ( ) , P ( "pre" , v1e , ge ( s . value ) , 1 ) ) : ( S ( ) , le ( l , { key : 2 , description : "暂无数据" , "image-size" : 50 } ) ) ] ) } } } , [ [ "__scopeId" , "data-v-9250db36" ] ] ) , m1e = { class : "toolbar" } , g1e = { class : "result-summary" } , b1e = { key : 0 , class : "token-hint" } , y1e = { class : "btn-group" } , w1e = { key : 0 } , _1e = { key : 1 } , C1e = { key : 0 , style : { color : "#e6a23c" } } , S1e = { key : 0 , class : "reason-tags" } , x1e = { key : 2 , class : "page-detail" } , uP = cl ( { _ _name : "ResultPanel" , props : { pagesData : { type : Array , default : ( ) => [ ] } , sessionId : { type : String , default : "" } , outputFiles : { type : Object , default : ( ) => ( { } ) } , outputFilenames : { type : Object , default : ( ) => ( { } ) } , tokenUsage : { type : Object , default : null } , pdfName : { type : String , default : "" } , correctionSummary : { type : Object , default : null } } , emits : [ "reset" ] , setup ( e , { emit : t } ) { const n = e , s = t , a = F ( "1" ) , o = E ( ( ) => { const c = parseInt ( a . value ) ; return n . pagesData . find ( u => u . page === c ) || n . pagesData [ 0 ] } ) ; function r ( c ) { const u = c === "excel" ? ".xlsx" : ".json" , d = n . outputFilenames [ c ] || ` result ${ u } ` , h = X1 ( n . sessionId , d ) , p = document . createElement ( "a" ) ; p . href = h , p . download = d , document . body . appendChild ( p ) , p . click ( ) , document . body . removeChild ( p ) } const i = { llm _suspicious : "LLM标记可疑" , llm _corrected : "LLM已修正" , rule _corrected : "规则已修正" , seq _gap : "序号不连续" , seq _dup : "序号重复" , desc _overflow : "描述溢出到规格列" , size _invalid : "规格字段异常" , size _outlier : "规格偏离主导尺寸" , qty _invalid : "数量字段异常" , cell _overlap : "数值重叠(两格合并)" , desc _num _tail : "描述末尾残留尺寸数字" , size _num _prefix : "尺寸前缀数字粘连" , pressure _oob : "压力值超范围" , cross _inconsist : "跨页参数不一致" } ; function l ( c ) { return i [ c ] || c } return ( c , u ) => { const d = Ge ( "CircleCheck" ) , h = Ge ( "el-icon" ) , p = Ge ( "el-button" ) , v = Ge ( "el-card" ) , m = Ge ( "el-tag" ) , g = Ge ( "el-alert" ) , b = Ge ( "el-tab-pane" ) , C = Ge ( "el-tabs" ) , w = Ge ( "el-col" ) , _ = Ge ( "el-row" ) ; return S ( ) , P ( "div" , null , [ W ( v , { class : "toolbar-card" , shadow : "never" } , { default : X ( ( ) => [ A ( "div" , m1e , [ A ( "div" , g1e , [ W ( h , { color : "#67C23A" , size : "20" } , { default : X ( ( ) => [ W ( d ) ] ) , _ : 1 } ) , A ( "span" , null , [ u [ 4 ] || ( u [ 4 ] = je ( "识别完成,共处理 " , - 1 ) ) , A ( "strong" , null , ge ( e . pagesData . length ) , 1 ) , u [ 5 ] || ( u [ 5 ] = je ( " 页" , - 1 ) ) ] ) , e . tokenUsage ? ( S ( ) , P ( "span" , b1e , " · " + ge ( e . tokenUsage . total _tokens . toLocaleString ( ) ) + " tokens ¥" + ge ( e . tokenUsage . cost _cny ) , 1 ) ) : ie ( "" , ! 0 ) ] ) , A ( "div" , y1e , [ e . sessionId ?
` );return t.join("")}}function xv(e,t){try{const{protocol:n}=t?new URL(e,t):new URL(e);return n==="http:"||n==="https:"}catch{return!1}}function xr(e){e.preventDefault()}function go(e){e.preventDefault(),e.stopPropagation()}class sw{static toDateObject(t){if(!t||typeof t!="string")return null;y(this,Ov)||G(this,Ov,new RegExp("^D:( \\ d{4})( \\ d{2})?( \\ d{2})?( \\ d{2})?( \\ d{2})?( \\ d{2})?([Z|+|-])?( \\ d{2})?'?( \\ d{2})?'?"));const n=y(this,Ov).exec(t);if(!n)return null;const s=parseInt(n[1],10);let a=parseInt(n[2],10);a=a>=1&&a<=12?a-1:0;let o=parseInt(n[3],10);o=o>=1&&o<=31?o:1;let r=parseInt(n[4],10);r=r>=0&&r<=23?r:0;let i=parseInt(n[5],10);i=i>=0&&i<=59?i:0;let l=parseInt(n[6],10);l=l>=0&&l<=59?l:0;const c=n[7]||"Z";let u=parseInt(n[8],10);u=u>=0&&u<=23?u:0;let d=parseInt(n[9],10)||0;return d=d>=0&&d<=59?d:0,c==="-"?(r+=u,i+=d):c==="+"&&(r-=u,i-=d),new Date(Date.UTC(s,a,o,r,i,l))}}Ov=new WeakMap,ne(sw,Ov);function obe(e,{scale:t=1,rotation:n=0}){const{width:s,height:a}=e.attributes.style,o=[0,0,parseInt(s),parseInt(a)];return new Sv({viewBox:o,userUnit:1,scale:t,rotation:n})}function aw(e){if(e.startsWith("#")){const t=parseInt(e.slice(1),16);return[(t&16711680)>>16,(t&65280)>>8,t&255]}return e.startsWith("rgb(")?e.slice(4,-1).split(",").map(t=>parseInt(t)):e.startsWith("rgba(")?e.slice(5,-1).split(",").map(t=>parseInt(t)).slice(0,3):(fn( ` Not a valid color format : "${e}" ` ),[0,0,0])}function rbe(e){const t=document.createElement("span");t.style.visibility="hidden",document.body.append(t);for(const n of e.keys()){t.style.color=n;const s=window.getComputedStyle(t).color;e.set(n,aw(s))}t.remove()}function ns(e){const{a:t,b:n,c:s,d:a,e:o,f:r}=e.getTransform();return[t,n,s,a,o,r]}function di(e){const{a:t,b:n,c:s,d:a,e:o,f:r}=e.getTransform().invertSelf();return[t,n,s,a,o,r]}function ju(e,t,n=!1,s=!0){if(t instanceof Sv){const{pageWidth:a,pageHeight:o}=t.rawDims,{style:r}=e,i=La.isCSSRoundSupported,l= ` var ( -- scale - factor ) * $ { a } px ` ,c= ` var ( -- scale - factor ) * $ { o } px ` ,u=i? ` round ( down , $ { l } , var ( -- scale - round - x , 1 px ) ) ` : ` calc ( $ { l } ) ` ,d=i? ` round ( down , $ { c } , var ( -- scale - round - y , 1 px ) ) ` : ` calc ( $ { c } ) ` ;!n||t.rotation%180===0?(r.width=u,r.height=d):(r.width=d,r.height=u)}s&&e.setAttribute("data-main-rotation",t.rotation)}class ow{constructor(){const t=window.devicePixelRatio||1;this.sx=t,this.sy=t}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}}const pl=class pl{constructor(t){ne(this,Na);ne(this,kc,null);ne(this,Yu,null);ne(this,kr);ne(this,Xu,null);ne(this,Lv,null);G(this,kr,t),y(pl,Nv)||G(pl,Nv,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button"}))}render(){const t=G(this,kc,document.createElement("div"));t.classList.add("editToolbar","hidden"),t.setAttribute("role","toolbar");const n=y(this,kr)._uiManager._signal;t.addEventListener("contextmenu",xr,{signal:n}),t.addEventListener("pointerdown",oe(pl,yb,iR),{signal:n});const s=G(this,Xu,document.createElement("div"));s.className="buttons",t.append(s);const a=y(this,kr).toolbarPosition;if(a){const{style:o}=t,r=y(this,kr)._uiManager.direction==="ltr"?1-a[0]:a[0];o.insetInlineEnd= ` $ { 100 * r } % ` ,o.top= ` calc ( $ { 100 * a [ 1 ] } % + var ( -- editor - toolbar - vert - offset ) ) ` }return oe(this,Na,uR).call(this),t}get div(){return y(this,kc)}hide(){var t;y(this,kc).classList.add("hidden"),(t=y(this,Yu))==null||t.hideDropdown()}show(){var t;y(this,kc).classList.remove("hidden"),(t=y(this,Lv))==null||t.shown()}async addAltText(t){const n=await t.render();oe(this,Na,Vb).call(this,n),y(this,Xu).prepend(n,y(this,Na,Vw)),G(this,Lv,t)}addColorPicker(t){G(this,Yu,t);const n=t.renderButton();oe(this,Na,Vb).call(this,n),y(this,Xu).prepend(n,y(this,Na,Vw))}remove(){var t;y(this,kc).remove(),(t=y(this,Yu))==null||t.destroy(),G(this,Yu,null)}};kc=new WeakMap,Yu=new WeakMap,kr=new WeakMap,Xu=new WeakMap,Lv=new WeakMap,Nv=new WeakMap,yb=new WeakSet,iR=function(t){t.stopPropagation()},Na=new WeakSet,lR=function(t){y(this,kr)._focusEventsAllowed=!1,go(t)},cR=function(
` ) ) || null ; c && this . data . comb && ( c = c . replaceAll ( /\s+/g , "" ) ) ; const u = { userValue : i , formattedValue : c , lastCommittedValue : null , commitKey : 1 , focused : ! 1 } ; this . data . multiLine ? ( s = document . createElement ( "textarea" ) , s . textContent = c ? ? i , this . data . doNotScroll && ( s . style . overflowY = "hidden" ) ) : ( s = document . createElement ( "input" ) , s . type = "text" , s . setAttribute ( "value" , c ? ? i ) , this . data . doNotScroll && ( s . style . overflowX = "hidden" ) ) , this . data . hasOwnCanvas && ( s . hidden = ! 0 ) , Uu . add ( s ) , s . setAttribute ( "data-element-id" , n ) , s . disabled = this . data . readOnly , s . name = this . data . fieldName , s . tabIndex = Iv , this . _setRequired ( s , this . data . required ) , l && ( s . maxLength = l ) , s . addEventListener ( "input" , h => { t . setValue ( n , { value : h . target . value } ) , this . setPropertyOnSiblings ( s , "value" , h . target . value , "value" ) , u . formattedValue = null } ) , s . addEventListener ( "resetform" , h => { const p = this . data . defaultFieldValue ? ? "" ; s . value = u . userValue = p , u . formattedValue = null } ) ; let d = h => { const { formattedValue : p } = u ; p != null && ( h . target . value = p ) , h . target . scrollLeft = 0 } ; if ( this . enableScripting && this . hasJSActions ) { s . addEventListener ( "focus" , p => { var m ; if ( u . focused ) return ; const { target : v } = p ; u . userValue && ( v . value = u . userValue ) , u . lastCommittedValue = v . value , u . commitKey = 1 , ( m = this . data . actions ) != null && m . Focus || ( u . focused = ! 0 ) } ) , s . addEventListener ( "updatefromsandbox" , p => { this . showElementAndHideCanvas ( p . target ) ; const v = { value ( m ) { u . userValue = m . detail . value ? ? "" , t . setValue ( n , { value : u . userValue . toString ( ) } ) , m . target . value = u . userValue } , formattedValue ( m ) { const { formattedValue : g } = m . detail ; u . formattedValue = g , g != null && m . target !== document . activeElement && ( m . target . value = g ) , t . setValue ( n , { formattedValue : g } ) } , selRange ( m ) { m . target . setSelectionRange ( ... m . detail . selRange ) } , charLimit : m => { var w ; const { charLimit : g } = m . detail , { target : b } = m ; if ( g === 0 ) { b . removeAttribute ( "maxLength" ) ; return } b . setAttribute ( "maxLength" , g ) ; let C = u . userValue ; ! C || C . length <= g || ( C = C . slice ( 0 , g ) , b . value = u . userValue = C , t . setValue ( n , { value : C } ) , ( w = this . linkService . eventBus ) == null || w . dispatch ( "dispatcheventinsandbox" , { source : this , detail : { id : n , name : "Keystroke" , value : C , willCommit : ! 0 , commitKey : 1 , selStart : b . selectionStart , selEnd : b . selectionEnd } } ) ) } } ; this . _dispatchEventFromSandbox ( v , p ) } ) , s . addEventListener ( "keydown" , p => { var g ; u . commitKey = 1 ; let v = - 1 ; if ( p . key === "Escape" ? v = 0 : p . key === "Enter" && ! this . data . multiLine ? v = 2 : p . key === "Tab" && ( u . commitKey = 3 ) , v === - 1 ) return ; const { value : m } = p . target ; u . lastCommittedValue !== m && ( u . lastCommittedValue = m , u . userValue = m , ( g = this . linkService . eventBus ) == null || g . dispatch ( "dispatcheventinsandbox" , { source : this , detail : { id : n , name : "Keystroke" , value : m , willCommit : ! 0 , commitKey : v , selStart : p . target . selectionStart , selEnd : p . target . selectionEnd } } ) ) } ) ; const h = d ; d = null , s . addEventListener ( "blur" , p => { var m , g ; if ( ! u . focused || ! p . relatedTarget ) return ; ( m = this . data . actions ) != null && m . Blur || ( u . focused = ! 1 ) ; const { value : v } = p . target ; u . userValue = v , u . lastCommittedValue !== v && ( ( g = this . linkService . eventBus ) == null || g . dispatch ( "dispatcheventinsandbox" , { source : this , detail : { id : n , name : "Keystroke" , value : v , willCommit : ! 0 , commitKey : u . commitKey , selStart : p . target . selectionStart , selEnd : p . target . selectionEnd } } ) ) , h ( p ) } ) , ( o = this . data . actions ) != null && o . Keystroke && s . addEventListener ( "beforeinput" , p => { var x ; u . lastCommittedValue = null ; const { data : v , target : m } = p , { value : g , selectionStart : b , selectionEnd : C } = m ; let w = b , _ = C ; switch ( p . inputType ) { case "deleteWordBackward" : { const k = g . substring ( 0 , b ) . match ( /\w*[^\w]*$/ ) ; k && ( w -= k [ 0 ] . length ) ; break } case "deleteWordForward" : { const k = g . substring ( b ) . match ( /^[^\w]*\w*/ ) ; k && ( _ += k [ 0 ] . length ) ; break } case "deleteContentBackward" : b === C && ( w -= 1 ) ; break ; case "deleteContentForward" : b === C && ( _ += 1 ) ; break } p . preventDefault ( ) , ( x = this . linkService . eventBus ) == null || x . dispatch ( "dispatcheventinsandbox" , { source : this , detail : { id : n , name : "Keystroke" , value : g , change : v || "" , willCommit : ! 1 , selStart : w , selEnd : _ } } ) } ) , this . _setEventListeners ( s , u , [ [ "focus" , "Focus" ] , [ "blur" , "Blur" ] , [ "mousedown" , "Mouse Down" ] , [ "mouseenter" , "Mouse Enter" ] , [ "mouseleave" , "Mouse Exit" ] , [ "mouseup" , "Mouse Up" ] ] , p => p . target . value ) } if ( d && s . addEventListener ( "blur" , d ) , this . data . comb ) { const p = ( this . data . rect [ 2 ] - this . data . rect [ 0 ] ) / l ; s . classList . add ( "comb" ) , s . style . letterSpacing = `
` ) ) n . push ( { name : "span" , value : o , attributes : a } ) ; return s } , YR = function ( t ) { t . altKey || t . shiftKey || t . ctrlKey || t . metaKey || ( t . key === "Enter" || t . key === "Escape" && y ( this , Il ) ) && oe ( this , Vn , e4 ) . call ( this ) } , XR = function ( ) { if ( y ( this , Ol ) !== null ) return ; const { page : { view : t } , viewport : { rawDims : { pageWidth : n , pageHeight : s , pageX : a , pageY : o } } } = y ( this , km ) ; let r = ! ! y ( this , Xh ) , i = r ? y ( this , Xh ) : y ( this , Em ) ; for ( const v of y ( this , xm ) ) if ( ! i || zt . intersect ( v . data . rect , i ) !== null ) { i = v . data . rect , r = ! 0 ; break } const l = zt . normalizeRect ( [ i [ 0 ] , t [ 3 ] - i [ 1 ] + t [ 1 ] , i [ 2 ] , t [ 3 ] - i [ 3 ] + t [ 1 ] ] ) , u = r ? i [ 2 ] - i [ 0 ] + 5 : 0 , d = l [ 0 ] + u , h = l [ 1 ] ; G ( this , Ol , [ 100 * ( d - a ) / n , 100 * ( h - o ) / s ] ) ; const { style : p } = y ( this , ps ) ; p . left = ` ${ y ( this , Ol ) [ 0 ] } % ` , p . top = ` ${ y ( this , Ol ) [ 1 ] } % ` } , e4 = function ( ) { G ( this , Il , ! y ( this , Il ) ) , y ( this , Il ) ? ( oe ( this , Vn , t4 ) . call ( this ) , y ( this , ps ) . addEventListener ( "click" , y ( this , Gh ) ) , y ( this , ps ) . addEventListener ( "keydown" , y ( this , qh ) ) ) : ( oe ( this , Vn , f _ ) . call ( this ) , y ( this , ps ) . removeEventListener ( "click" , y ( this , Gh ) ) , y ( this , ps ) . removeEventListener ( "keydown" , y ( this , qh ) ) ) } , t4 = function ( ) { y ( this , Rr ) || this . render ( ) , this . isVisible ? y ( this , Il ) && y ( this , ps ) . classList . add ( "focused" ) : ( oe ( this , Vn , XR ) . call ( this ) , y ( this , ps ) . hidden = ! 1 , y ( this , ps ) . style . zIndex = parseInt ( y ( this , ps ) . style . zIndex ) + 1e3 ) } , f _ = function ( ) { y ( this , ps ) . classList . remove ( "focused" ) , ! ( y ( this , Il ) || ! this . isVisible ) && ( y ( this , ps ) . hidden = ! 0 , y ( this , ps ) . style . zIndex = parseInt ( y ( this , ps ) . style . zIndex ) - 1e3 ) } ; class QP extends vs { constructor ( t ) { super ( t , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) , this . textContent = t . data . textContent , this . textPosition = t . data . textPosition , this . annotationEditorType = dn . FREETEXT } render ( ) { if ( this . container . classList . add ( "freeTextAnnotation" ) , this . textContent ) { const t = document . createElement ( "div" ) ; t . classList . add ( "annotationTextContent" ) , t . setAttribute ( "role" , "comment" ) ; for ( const n of this . textContent ) { const s = document . createElement ( "span" ) ; s . textContent = n , t . append ( s ) } this . container . append ( t ) } return ! this . data . popupRef && this . hasPopupData && this . _createPopup ( ) , this . _editOnDoubleClick ( ) , this . container } } class E4e extends vs { constructor ( n ) { super ( n , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) ; ne ( this , Tm , null ) } render ( ) { this . container . classList . add ( "lineAnnotation" ) ; const n = this . data , { width : s , height : a } = xc ( n . rect ) , o = this . svgFactory . create ( s , a , ! 0 ) , r = G ( this , Tm , this . svgFactory . createElement ( "svg:line" ) ) ; return r . setAttribute ( "x1" , n . rect [ 2 ] - n . lineCoordinates [ 0 ] ) , r . setAttribute ( "y1" , n . rect [ 3 ] - n . lineCoordinates [ 1 ] ) , r . setAttribute ( "x2" , n . rect [ 2 ] - n . lineCoordinates [ 2 ] ) , r . setAttribute ( "y2" , n . rect [ 3 ] - n . lineCoordinates [ 3 ] ) , r . setAttribute ( "stroke-width" , n . borderStyle . width || 1 ) , r . setAttribute ( "stroke" , "transparent" ) , r . setAttribute ( "fill" , "transparent" ) , o . append ( r ) , this . container . append ( o ) , ! n . popupRef && this . hasPopupData && this . _createPopup ( ) , this . container } getElementsToTriggerPopup ( ) { return y ( this , Tm ) } addHighlightArea ( ) { this . container . classList . add ( "highlightArea" ) } } Tm = new WeakMap ; class A4e extends vs { constructor ( n ) { super ( n , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) ; ne ( this , Mm , null ) } render ( ) { this . container . classList . add ( "squareAnnotation" ) ; const n = this . data , { width : s , height : a } = xc ( n . rect ) , o = this . svgFactory . create ( s , a , ! 0 ) , r = n . borderStyle . width , i = G ( this , Mm , this . svgFactory . createElement ( "svg:rect" ) ) ; return i . setAttribute ( "x" , r / 2 ) , i . setAttribute ( "y" , r / 2 ) , i . setAttribute ( "width" , s - r ) , i . setAttribute ( "height" , a - r ) , i . setAttribute ( "stroke-width" , r || 1 ) , i . setAttribute ( "stroke" , "transparent" ) , i . setAttribute ( "fill" , "transparent" ) , o . append ( i ) , this . container . append ( o ) , ! n . popupRef && this . hasPopupData && this . _createPopup ( ) , this . container } getElementsToTriggerPopup ( ) { return y ( this , Mm ) } addHighlightArea ( ) { this . container . classList . add ( "highlightArea" ) } } Mm = new WeakMap ; class T4e extends vs { constructor ( n ) { super ( n , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) ; ne ( this , Pm , null ) } render ( ) { this . container . classList . add ( "circleAnnotation" ) ; const n = this . data , { width : s , height : a } = xc ( n . rect ) , o = this . svgFactory . create ( s , a , ! 0 ) , r = n . borderStyle . width , i = G ( this , Pm , this . svgFactory . createElement ( "svg:ellipse" ) ) ; return i . setAttribute ( "cx" , s / 2 ) , i . setAttribute ( "cy" , a / 2 ) , i . setAttribute ( "rx" , s / 2 - r / 2 ) , i . setAttribute ( "ry" , a / 2 - r / 2 ) , i . setAttribute ( "stroke-width" , r || 1 ) , i . se
2026-05-27 23:13:02 +08:00
` );if(!o)return;const r=window.getSelection();if(!r.rangeCount)return;this.editorDiv.normalize(),r.deleteFromDocument();const i=r.getRangeAt(0);if(!o.includes( `
2026-07-09 18:37:16 +08:00
` )){i.insertNode(document.createTextNode(o)),this.editorDiv.normalize(),r.collapseToStart();return}const{startContainer:l,startOffset:c}=i,u=[],d=[];if(l.nodeType===Node.TEXT_NODE){const b=l.parentElement;if(d.push(l.nodeValue.slice(c).replaceAll(hb,"")),b!==this.editorDiv){let C=u;for(const w of this.editorDiv.childNodes){if(w===b){C=d;continue}C.push(oe(m=Un,Nl,s4).call(m,w))}}u.push(l.nodeValue.slice(0,c).replaceAll(hb,""))}else if(l===this.editorDiv){let b=u,C=0;for(const w of this.editorDiv.childNodes)C++===c&&(b=d),b.push(oe(g=Un,Nl,s4).call(g,w))}G(this,xo, ` $ { u . join ( `
2026-05-27 23:13:02 +08:00
` ) } $ { o } $ { d . join ( `
2026-07-09 18:37:16 +08:00
` ) } ` ),oe(this,ks,a4).call(this);const h=new Range;let p=u.reduce((b,C)=>b+C.length,0);for(const{firstChild:b}of this.editorDiv.childNodes)if(b.nodeType===Node.TEXT_NODE){const C=b.nodeValue.length;if(p<=C){h.setStart(b,p),h.setEnd(b,p);break}p-=C}r.removeAllRanges(),r.addRange(h)}get contentDiv(){return this.editorDiv}static async deserialize(n,s,a){var i;let o=null;if(n instanceof QP){const{data:{defaultAppearanceData:{fontSize:l,fontColor:c},rect:u,rotation:d,id:h,popupRef:p},textContent:v,textPosition:m,parent:{page:{pageNumber:g}}}=n;if(!v||v.length===0)return null;o=n={annotationType:dn.FREETEXT,color:Array.from(c),fontSize:l,value:v.join( `
` ),position:m,pageIndex:g-1,rect:u.slice(0),rotation:d,id:h,deleted:!1,popupRef:p}}const r=await super.deserialize(n,s,a);return G(r,ko,n.fontSize),G(r,Ir,zt.makeHexColor(...n.color)),G(r,xo,oe(i=Un,Nl,m_).call(i,n.value)),r.annotationElementId=n.id||null,r._initialData=o,r}serialize(n=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const s=Un._internalPadding*this.parentScale,a=this.getRect(s,s),o=is._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:y(this,Ir)),r={annotationType:dn.FREETEXT,color:o,fontSize:y(this,ko),value:oe(this,ks,tI).call(this),pageIndex:this.pageIndex,rect:a,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return n?r:this.annotationElementId&&!oe(this,ks,nI).call(this,r)?null:(r.id=this.annotationElementId,r)}renderAnnotationElement(n){const s=super.renderAnnotationElement(n);if(this.deleted)return s;const{style:a}=s;a.fontSize= ` calc ( $ { y ( this , ko ) } px * var ( -- scale - factor ) ) ` ,a.color=y(this,Ir),s.replaceChildren();for(const r of y(this,xo).split( `
` )){const i=document.createElement("div");i.append(r?document.createTextNode(r):document.createElement("br")),s.append(i)}const o=Un._internalPadding*this.parentScale;return n.updateEdited({rect:this.getRect(o,o),popupContent:y(this,xo)}),s}resetAnnotationElement(n){super.resetAnnotationElement(n),n.resetEdited()}};Ir=new WeakMap,xo=new WeakMap,Fm=new WeakMap,Dd=new WeakMap,ko=new WeakMap,ks=new WeakSet,ZR=function(n){const s=o=>{this.editorDiv.style.fontSize= ` calc ( $ { o } px * var ( -- scale - factor ) ) ` ,this.translate(0,-(o-y(this,ko))*this.parentScale),G(this,ko,o),oe(this,ks,n4).call(this)},a=y(this,ko);this.addCommands({cmd:s.bind(this,n),undo:s.bind(this,a),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:_n.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},QR=function(n){const s=o=>{G(this,Ir,this.editorDiv.style.color=o)},a=y(this,Ir);this.addCommands({cmd:s.bind(this,n),undo:s.bind(this,a),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:_n.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},eI=function(){var a;const n=[];this.editorDiv.normalize();let s=null;for(const o of this.editorDiv.childNodes)(s==null?void 0:s.nodeType)===Node.TEXT_NODE&&o.nodeName==="BR"||(n.push(oe(a=Un,Nl,s4).call(a,o)),s=o);return n.join( `
` )},n4=function(){const[n,s]=this.parentDimensions;let a;if(this.isAttachedToDOM)a=this.div.getBoundingClientRect();else{const{currentLayer:o,div:r}=this,i=r.style.display,l=r.classList.contains("hidden");r.classList.remove("hidden"),r.style.display="hidden",o.div.append(this.div),a=r.getBoundingClientRect(),r.remove(),r.style.display=i,r.classList.toggle("hidden",l)}this.rotation%180===this.parentRotation%180?(this.width=a.width/n,this.height=a.height/s):(this.width=a.height/n,this.height=a.width/s),this.fixAndSetPosition()},Nl=new WeakSet,s4=function(n){return(n.nodeType===Node.TEXT_NODE?n.nodeValue:n.innerText).replaceAll(hb,"")},a4=function(){if(this.editorDiv.replaceChildren(),!!y(this,xo))for(const n of y(this,xo).split( `
` )){const s=document.createElement("div");s.append(n?document.createTextNode(n):document.createElement("br")),this.editorDiv.append(s)}},tI=function(){return y(this,xo).replaceAll(" "," ")},m_=function(n){return n.replaceAll(" "," ")},nI=function(n){const{value:s,fontSize:a,color:o,pageIndex:r}=this._initialData;return this._hasBeenMoved||n.value!==s||n.fontSize!==a||n.color.some((i,l)=>i!==o[l])||n.pageIndex!==r},ne(Un,Nl),Ut(Un,"_freeTextDefaultContent",""),Ut(Un,"_internalPadding",0),Ut(Un,"_defaultColor",null),Ut(Un,"_defaultFontSize",10),Ut(Un,"_type","freetext"),Ut(Un,"_editorType",dn.FREETEXT);let Cw=Un;class Lt{toSVGPath(){Hn("Abstract method ` toSVGPath ` must be implemented.")}get box(){Hn("Abstract getter ` box ` must be implemented.")}serialize(t,n){Hn("Abstract method ` serialize ` must be implemented.")}static _rescale(t,n,s,a,o,r){r||(r=new Float32Array(t.length));for(let i=0,l=t.length;i<l;i+=2)r[i]=n+t[i]*a,r[i+1]=s+t[i+1]*o;return r}static _rescaleAndSwap(t,n,s,a,o,r){r||(r=new Float32Array(t.length));for(let i=0,l=t.length;i<l;i+=2)r[i]=n+t[i+1]*a,r[i+1]=s+t[i]*o;return r}static _translate(t,n,s,a){a||(a=new Float32Array(t.length));for(let o=0,r=t.length;o<r;o+=2)a[o]=n+t[o],a[o+1]=s+t[o+1];return a}static svgRound(t){return Math.round(t*1e4)}static _normalizePoint(t,n,s,a,o){switch(o){case 90:return[1-n/s,t/a];case 180:return[1-t/s,1-n/a];case 270:return[n/s,1-t/a];default:return[t/s,n/a]}}static _normalizePagePoint(t,n,s){switch(s){case 90:return[1-n,t];case 180:return[1-t,1-n];case 270:return[n,1-t];default:return[t,n]}}static createBezierPoints(t,n,s,a,o,r){return[(t+5*s)/6,(n+5*a)/6,(5*s+o)/6,(5*a+r)/6,(s+o)/2,(a+r)/2]}}Ut(Lt,"PRECISION",1e-4);const $ l=class $ l{constructor({x:t,y:n},s,a,o,r,i=0){ne(this,Ns);ne(this,Eo);ne(this,Or,[]);ne(this,Jh);ne(this,Zh);ne(this,Si,[]);ne(this,gn,new Float32Array(18));ne(this,Fd);ne(this,Bd);ne(this,Bm);ne(this,Vm);ne(this,Qh);ne(this,e0);ne(this,Kc,[]);G(this,Eo,s),G(this,e0,o*a),G(this,Zh,r),y(this,gn).set([NaN,NaN,NaN,NaN,t,n],6),G(this,Jh,i),G(this,Vm,y( $ l,zm)*a),G(this,Bm,y( $ l,Lb)*a),G(this,Qh,a),y(this,Kc).push(t,n)}isEmpty(){return isNaN(y(this,gn)[8])}add({x:t,y:n}){var O;G(this,Fd,t),G(this,Bd,n);const[s,a,o,r]=y(this,Eo);let[i,l,c,u]=y(this,gn).subarray(8,12);const d=t-c,h=n-u,p=Math.hypot(d,h);if(p<y(this,Bm))return!1;const v=p-y(this,Vm),m=v/p,g=m*d,b=m*h;let C=i,w=l;i=c,l=u,c+=g,u+=b,(O=y(this,Kc))==null||O.push(t,n);const _=-b/v,x=g/v,k=_*y(this,e0),T=x*y(this,e0);return y(this,gn).set(y(this,gn).subarray(2,8),0),y(this,gn).set([c+k,u+T],4),y(this,gn).set(y(this,gn).subarray(14,18),12),y(this,gn).set([c-k,u-T],16),isNaN(y(this,gn)[6])?(y(this,Si).length===0&&(y(this,gn).set([i+k,l+T],2),y(this,Si).push(NaN,NaN,NaN,NaN,(i+k-s)/o,(l+T-a)/r),y(this,gn).set([i-k,l-T],14),y(this,Or).push(NaN,NaN,NaN,NaN,(i-k-s)/o,(l-T-a)/r)),y(this,gn).set([C,w,i,l,c,u],6),!this.isEmpty()):(y(this,gn).set([C,w,i,l,c,u],6),Math.abs(Math.atan2(w-l,C-i)-Math.atan2(b,g))<Math.PI/2?([i,l,c,u]=y(this,gn).subarray(2,6),y(this,Si).push(NaN,NaN,NaN,NaN,((i+c)/2-s)/o,((l+u)/2-a)/r),[i,l,C,w]=y(this,gn).subarray(14,18),y(this,Or).push(NaN,NaN,NaN,NaN,((C+i)/2-s)/o,((w+l)/2-a)/r),!0):([C,w,i,l,c,u]=y(this,gn).subarray(0,6),y(this,Si).push(((C+5*i)/6-s)/o,((w+5*l)/6-a)/r,((5*i+c)/6-s)/o,((5*l+u)/6-a)/r,((i+c)/2-s)/o,((l+u)/2-a)/r),[c,u,i,l,C,w]=y(this,gn).subarray(12,18),y(this,Or).push(((C+5*i)/6-s)/o,((w+5*l)/6-a)/r,((5*i+c)/6-s)/o,((5*l+u)/6-a)/r,((i+c)/2-s)/o,((l+u)/2-a)/r),!0))}toSVGPath(){if(this.isEmpty())return"";const t=y(this,Si),n=y(this,Or);if(isNaN(y(this,gn)[6])&&!this.isEmpty())return oe(this,Ns,sI).call(this);const s=[];s.push( ` M$ { t [ 4 ] } $ { t [ 5 ] } ` );for(let a=6;a<t.length;a+=6)isNaN(t[a])?s.push( ` L$ { t [ a + 4 ] } $ { t [ a + 5 ] } ` ):s.push( ` C$ { t [ a ] } $ { t [ a + 1 ] } $ { t [ a + 2 ] } $ { t [ a + 3 ] } $ { t [ a + 4 ] } $ { t [ a + 5 ] } ` );oe(this,Ns,oI).call(this,s);for(let a=n.length-6;a>=6;a-=6)isNaN(n[a])?s.push( ` L$ { n [ a + 4 ] } $ { n [ a + 5 ] } ` ):s.push( ` C$ { n [ a ] } $ { n [ a + 1 ] } $ { n [ a + 2 ] } $ { n [ a + 3 ] } $ { n [ a + 4 ] } $ { n [ a + 5 ] } ` );return oe(this,Ns,aI).call(this,s),s.join(" ")}newFreeDrawOutline(t,n,s,a,o,r){return new sR(t,n,s,a,o,r)}getOutlines()
` ) : "(该页无材料明细行)" , St . status = Ne . _validation _failed ? "error" : "done" } const tt = ft . results . filter ( Ne => Ne . _validation _failed ) . length ; tt > 0 ? ts . warning ( ` VL 识别完成, ${ ft . total _pages } 页中 ${ tt } 页校验未通过(内容可能为空) ` ) : ts . success ( ` VL 识别完成,共 ${ ft . total _pages } 页 ` ) } catch ( Ft ) { clearInterval ( lt ) , M . value . filter ( ft => ft . type === "A" ) . forEach ( ft => { ft . status === "recognizing" && ( ft . status = "error" ) } ) , ts . error ( ` VL 识别失败: ${ Ft . message } ` ) } finally { L . value = ! 1 } } function C0 ( me ) { return ! Array . isArray ( me ) || ! me . length ? "" : me . map ( he => { const Re = String ( ( he == null ? void 0 : he . name ) || "" ) . trim ( ) , it = String ( ( he == null ? void 0 : he . value ) || "" ) . trim ( ) ; return ! Re && ! it ? null : ` ${ Re } : ${ it } ` } ) . filter ( Boolean ) . join ( `
` ) } function jl ( me ) { if ( ! Array . isArray ( me ) ) return "" ; const he = me . find ( Re => { const it = String ( ( Re == null ? void 0 : Re . name ) || "" ) . toLowerCase ( ) ; return it . includes ( "pipeline" ) || it . includes ( "line" ) || it . includes ( "管段" ) || it . includes ( "管线" ) } ) ; return String ( ( he == null ? void 0 : he . value ) || "" ) . trim ( ) } function S0 ( me ) { return ! Array . isArray ( me ) || ! me . length ? "" : me . map ( he => { const Re = ( he == null ? void 0 : he . group _index ) ? ? "" , it = ( he == null ? void 0 : he . pos _no ) ? ? "" , qe = ( he == null ? void 0 : he . length _mm ) ? ? "" , lt = ( he == null ? void 0 : he . dn ) ? ? "" ; return ` 组 ${ Re } | ${ it } | ${ qe } | ${ lt } ` } ) . join ( `
` ) } async function Vr ( ) { var it ; const me = M . value . find ( qe => qe . type === "B" ) ; if ( ! me ) return ; M . value . filter ( qe => qe . type === "B" && qe . status === "pending" ) . forEach ( qe => { qe . status = "recognizing" } ) ; const he = q . value - 1 , Re = Q . value - 1 ; try { const qe = await fetch ( ` ${ n } /api/manual/ocr-all-pages-vl-b-ru ` , { method : "POST" , headers : { "Content-Type" : "application/json" } , body : JSON . stringify ( { session _id : _ . value , x _ratio : me . xr , y _ratio : me . yr , w _ratio : me . wr , h _ratio : me . hr , concurrency : 5 , start _page : he , end _page : Re } ) } ) ; if ( ! qe . ok ) { const Ft = await qe . json ( ) . catch ( ( ) => ( { } ) ) ; throw new Error ( Ft . detail || ` HTTP ${ qe . status } ` ) } const lt = await qe . json ( ) , vt = ( it = lt . usage ) != null && it . total _tokens ? Math . round ( lt . usage . total _tokens / ( lt . total _pages || 1 ) ) : null ; for ( const Ft of lt . results ) { let ft = M . value . find ( tt => tt . type === "B" && tt . page === Ft . page _index ) ; ft || ( ft = { id : s ( ) , type : "B" , page : Ft . page _index , xr : me . xr , yr : me . yr , wr : me . wr , hr : me . hr , cx : me . cx , cy : me . cy , cw : me . cw , ch : me . ch , status : "pending" , text : "" , boxes : [ ] , tokens : null , parts1 : { } , b _table _rows : [ ] } , M . value . push ( ft ) ) ; const ke = Ft . table _rows || [ ] ; ft . b _table _rows = Array . isArray ( ke ) ? ke : [ ] , ft . parts1 = { } , ft . text = C0 ( ft . b _table _rows ) , ft . tokens = vt , ft . status = Ft . parse _error || ! ft . text ? "error" : "done" } } catch ( qe ) { M . value . filter ( lt => lt . type === "B" && lt . status === "recognizing" ) . forEach ( lt => { lt . status = "error" } ) , ts . error ( ` 管线号 VL 识别失败: ${ qe . message } ` ) } } function o2 ( ) { var me , he , Re , it , qe ; for ( const lt of M . value . filter ( vt => vt . type === "B" && vt . status === "done" ) ) { const vt = ( ( he = ( me = lt . parts1 ) == null ? void 0 : me . pipeline _id ) == null ? void 0 : he . trim ( ) ) || jl ( lt . b _table _rows ) || ( ( it = ( Re = lt . text ) == null ? void 0 : Re . split ( `
` ) [ 0 ] ) == null ? void 0 : it . replace ( /^管段号[:: ]\s*/ , "" ) . trim ( ) ) || "" ; if ( ! vt ) continue ; const Ft = M . value . find ( ft => ft . type === "A" && ft . page === lt . page ) ; ( qe = Ft == null ? void 0 : Ft . rows ) != null && qe . length && ( Ft . rows = Ft . rows . map ( ft => ( { ... ft , pipe _no : vt } ) ) ) } } function tf ( ) { var Re ; if ( ! U . value ) return 0 ; const me = M . value . filter ( it => it . type === "C" && String ( p ( it ) ) . toUpperCase ( ) === "C3" ) ; if ( ! me . length ) return 0 ; let he = 0 ; for ( const it of me ) { const qe = M . value . find ( vt => vt . type === "A" && vt . page === it . page ) , lt = String ( ( it == null ? void 0 : it . text ) || "" ) . trim ( ) ; lt && ( Re = qe == null ? void 0 : qe . rows ) != null && Re . length && ( qe . rows = qe . rows . map ( vt => ( { ... vt , pipe _no : lt } ) ) , he += 1 ) } return he } async function r2 ( ) { var qe ; const me = [ ] , he = new Set ; for ( const lt of M . value . filter ( vt => vt . type === "C" ) ) { const vt = p ( lt ) ; he . has ( vt ) || ( he . add ( vt ) , me . push ( { code : vt , ref : lt } ) ) } if ( ! me . length ) return ; me . sort ( ( lt , vt ) => { const Ft = Number . parseInt ( String ( lt . code ) . replace ( /^C/i , "" ) , 10 ) , ft = Number . parseInt ( String ( vt . code ) . replace ( /^C/i , "" ) , 10 ) ; return Number . isFinite ( Ft ) && Number . isFinite ( ft ) ? Ft - ft : String ( lt . code ) . localeCompare ( String ( vt . code ) ) } ) , M . value . filter ( lt => lt . type === "C" && lt . status === "pending" ) . forEach ( lt => { lt . status = "recognizing" } ) ; const Re = q . value - 1 , it = Q . value - 1 ; try { for ( const lt of me ) { const vt = lt . ref , Ft = await fetch ( ` ${ n } /api/manual/ocr-all-pages-vl-c ` , { method : "POST" , headers : { "Content-Type" : "application/json" } , body : JSON . stringify ( { session _id : _ . value , x _ratio : vt . xr , y _ratio : vt . yr , w _ratio : vt . wr , h _ratio : vt . hr , concurrency : 5 , start _page : Re , end _page : it } ) } ) ; if ( ! Ft . ok ) { const tt = await Ft . json ( ) . catch ( ( ) => ( { } ) ) ; throw new Error ( tt . detail || ` HTTP ${ Ft . status } ` ) } const ft = await Ft . json ( ) , ke = ( qe = ft . usage ) != null && qe . total _tokens ? Math . round ( ft . usage . total _tokens / ( ft . total _pages || 1 ) ) : null ; for ( const tt of ft . results ) { let Ne = M . value . find ( St => St . type === "C" && St . page === tt . page _index && ( St . region _code || "" ) === lt . code ) ; Ne || ( Ne = { id : s ( ) , type : "C" , region _code : lt . code , page : tt . page _index , xr : vt . xr , yr : vt . yr , wr : vt . wr , hr : vt . hr , cx : vt . cx , cy : vt . cy , cw : vt . cw , ch : vt . ch , status : "pending" , text : "" , boxes : [ ] , tokens : null , rows : [ ] , b _table _rows : [ ] } , M . value . push ( Ne ) ) , Ne . region _code = lt . code , Ne . status = "done" , Ne . text = tt . text || "" , Ne . tokens = ke , Ne . boxes = [ ] , Ne . _validation _failed = tt . _validation _failed || ! 1 } } ot ( ) } catch ( lt ) { M . value . filter ( vt => vt . type === "C" && vt . status === "recognizing" ) . forEach ( vt => { vt . status = "error" } ) , ts . error ( ` C 区域全页识别失败: ${ lt . message } ` ) } } async function i2 ( ) { var it ; const me = M . value . find ( qe => qe . type === "D" ) ; if ( ! me ) return ; M . value . filter ( qe => qe . type === "D" && qe . status === "pending" ) . forEach ( qe => { qe . status = "recognizing" } ) ; const he = q . value - 1 , Re = Q . value - 1 ; try { const qe = await fetch ( ` ${ n } /api/manual/ocr-all-pages-vl-d ` , { method : "POST" , headers : { "Content-Type" : "application/json" } , body : JSON . stringify ( { session _id : _ . value , x _ratio : me . xr , y _ratio : me . yr , w _ratio : me . wr , h _ratio : me . hr , concurrency : 5 , start _page : he , end _page : Re } ) } ) ; if ( ! qe . ok ) { const Ft = await qe . json ( ) . catch ( ( ) => ( { } ) ) ; throw new Error ( Ft . detail || ` HTTP ${ qe . status } ` ) } const lt = await qe . json ( ) , vt = ( it = lt . usage ) != null && it . total _tokens ? Math . round ( lt . usage . total _tokens / ( lt . total _pages || 1 ) ) : null ; for ( const Ft of lt . results ) { let ft = M . value . find ( ke => ke . type === "D" && ke . page === Ft . page _index ) ; ft || ( ft = { id : s ( ) , type : "D" , page : Ft . page _index , xr : me . xr , yr : me . yr , wr : me . wr , hr : me . hr , cx : me . cx , cy : me . cy , cw : me . cw , ch : me . ch , status : "pending" , text : "" , boxes : [ ] , tokens : null , rows : [ ] , b _table _rows : [ ] , d _rows : [ ] } , M . value . push ( ft ) ) , ft . status = "done" , ft . d _rows = Ft . rows || [ ] , ft . text = S0 ( ft . d _rows ) , ft . tokens = vt , ft . _validation _failed = Ft . _validation _failed || ! 1 } ot ( ) } catch ( qe ) { M . value . filter ( lt => lt . type === "D" && lt . status === "recognizing" ) . forEach ( lt => { lt . status = "error" } ) , ts . error ( ` D 区域全页识别失败: ${ qe . message } ` ) } } async function l2 ( ) { if ( M . value . filter ( he => he . status === "pending" ) . length ) { J . value = ! 0 ; try { const he = dt . value > 0 , Re = M . value . some ( ke => ke . type === "B" ) , it = M . value . some ( ke => ke . type === "C" ) , qe = M . value . some ( ke => ke . type === "D" ) ; he || ( L . value = ! 1 , N . value = 0 , V . value = 0 ) ; const lt = [ ] ; he && lt . push ( Io ( ) ) , Re && lt . push ( Vr ( ) ) , it && lt . push ( r2 ( ) ) , qe && lt . push ( i2 ( ) ) , lt . length && await Promise . all ( lt ) , he && Re && o2 ( ) , tf ( ) ; const vt = nt . value , Ft = We . value , ft = M . value . filter ( ke => ke . status ===