2026-07-26 17:52:46 +08:00
var p3e = Object . defineProperty ; var SR = Nn => { throw TypeError ( Nn ) } ; var v3e = ( Nn , Fn , nn ) => Fn in Nn ? p3e ( Nn , Fn , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : nn } ) : Nn [ Fn ] = nn ; var Jt = ( Nn , Fn , nn ) => v3e ( Nn , typeof Fn != "symbol" ? Fn + "" : Fn , nn ) , Qw = ( Nn , Fn , nn ) => Fn . has ( Nn ) || SR ( "Cannot " + nn ) ; var y = ( Nn , Fn , nn ) => ( Qw ( Nn , Fn , "read from private field" ) , nn ? nn . call ( Nn ) : Fn . get ( Nn ) ) , se = ( Nn , Fn , nn ) => Fn . has ( Nn ) ? SR ( "Cannot add the same private member more than once" ) : Fn instanceof WeakSet ? Fn . add ( Nn ) : Fn . set ( Nn , nn ) , q = ( Nn , Fn , nn , fr ) => ( Qw ( Nn , Fn , "write to private field" ) , fr ? fr . call ( Nn , nn ) : Fn . set ( Nn , nn ) , nn ) , oe = ( Nn , Fn , nn ) => ( Qw ( Nn , Fn , "access private method" ) , nn ) ; var Ja = ( Nn , Fn , nn , fr ) => ( { set _ ( sn ) { q ( Nn , Fn , sn , nn ) } , get _ ( ) { return y ( Nn , Fn , fr ) } } ) ; ( function ( ) { "use strict" ; var xl , Zb , t _ , Kv , Nc , cd , Dr , ud , Uv , qv , Ib , xR , ja , kR , ER , Qb , AR , n _ , Gv , dd , fd , $c , TR , MR , PR , Ob , Th , Yv , Ta , Mh , e4 , Ss , Dc , Xv , ps , Lb , RR , Ph , Mo , Vs , ia , Rh , El , Ih , tr , Fc , hd , Oh , pd , Ei , Fr , vd , Jv , Zv , Lh , Qv , Ai , Vc , Nh , Bc , Ti , $b , zc , em , Hc , md , tm , nm , Ys , Hn , Al , gd , sm , am , Wc , Mi , Tl , om , nr , Ct , t4 , s _ , IR , OR , n4 , LR , NR , $R , a _ , DR , o _ , r _ , FR , Za , tc , VR , BR , i _ , zR , C2 , l _ , Xs , Pi , Vr , Dh , Ri , Po , Fh , Ii , fo , Ml , bd , Oi , jc , Br , S2 , s4 , rm , yd , im , lm , cm , um , dm , Vh , Pl , wd , Kc , Rl , HR , WR , c _ , _d , zr , ss , Bh , Uc , fm , Cd , la , Sd , Il , qc , hm , xd , Ro , pm , kd , Ol , Li , zh , Hh , sr , Ed , vm , Db , Gt , u _ , mm , d _ , a4 , jR , KR , f _ , o4 , h _ , UR , qR , GR , p _ , YR , v _ , XR , JR , ZR , m _ , x2 , Ad , Td , Js , Fb , QR , gm , Wh , jh , ar , eI , tI , nI , r4 , bm , Md , Kh , Ll , Nl , Ma , Pd , Rd , Pt , Oa , k2 , $0 , i4 , D0 , sI , g _ , F0 , E2 , A2 , b _ , T2 , Hr , y _ , w _ , _ _ , ym , wm , Id , _m , Cm , Sm , xm , Uh , Gc , Wn , qh , Gh , km , C _ , CR , Yc , ho , Em , Am , Od , $l , Tm , Mm , Ld , Yh , Xh , Xc , Jh , Pm , Zh , Nd , Rm , Im , $d , Dd , Om , Jc , Qh , Dl , aI , oI , S _ , Io , l4 , x _ , rI , iI , Bb , Zc , Fl , or , V0 , c4 , Vl , Hb , Wb , Fd , Vd , e0 , u4 , t0 , d4 , Bl , Ni , n0 , s0 , zl , Bd , M2 , Oo , Lm , k _ , Qc , eu , zd , Wd , a0 , o0 , Nm , E _ , Lo , mf , lI , cI , r0 , jb , Kb , i0 , jd , ws , Hl , l0 , $m , Dm , c0 , Wl , Wr , jl , Fm , Kl , Vm , Kd , Ud , Un , f4 , A _ , uI , dI , fI , hI , h4 , p4 , T _ , Bm , zm , Hm , Wm , jm , qd , Km , M _ , Um , qm , P _ , Gm , Gd , Yd , Ym , Xd , pI , R _ , jr , No , Xm , Jd , $o , Is , vI , mI , gI , v4 , Ul , m4 , g4 , bI , I _ , yI , Do , Kr , u0 , d0 , $i , Cn , Zd , Qd , Jm , Zm , f0 , h0 , tu , Qm , Ub , qb , zs , P2 , wI , _I , CI , SI , xI , kI , p0 , ef , Gl , e2 , Fo , t2 , xs , Gb , EI , n2 , s2 , nu , Ur , Ua , AI , b4 , TI , MI , O _ , a2 , v0 , qr , tf , m0 , Hs , o2 , g0 , r2 , i2 , su , Gr , b0 , l2 , qn , L _ , N _ , $ _ , gf , PI , gu , y0 , c2 , Yl , nf , w0 , vo , u2 , d2 , sf , rr , Vo , ca , _0 , Xl , Pa , C0 , ir , f2 , hn , D _ , y4 , RI , II , OI , F _ , bf , lr , B0 , LI , w4 , R2 , NI , $I , DI , FI , VI , af , Bo , S0 , Zs , of , rf , au , ou , ru , lf , An , V _ , B _ , z _ , I2 , BI , _4 , O2 , z0 , Di , Qs , ea , cf , x0 , qa , ua , cr , uf , df , ff , k0 , C4 , Ga , h2 , p2 , zo , Fi , Vi , E0 , A0 , T0 , da , nc , zI , HI , WI , M0 , Yb , jI , vs , fa , iu , Jl , lu , R0 , Bi , zi , Ho , I0 , Rn , L2 , N2 , S4 , H _ , x4 , W _ , k4 , KI , hf , O0 , Hi , cu , Zl , ur , uu , L0 , pf , Yr , Ql , Ra , ec , Bt , du , us , UI , ji , j _ , K _ , E4 , Jr , m2 , Ya , vf , Xb , qI , Wi , U _ , GI , q _ ; var Nn = 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-26 17:52:46 +08:00
**/ function Fn ( e ) { const t = Object . create ( null ) ; for ( const n of e . split ( "," ) ) t [ n ] = 1 ; return n => n in t } const nn = { } , fr = [ ] , sn = ( ) => { } , G _ = ( ) => ! 1 , $2 = e => e . charCodeAt ( 0 ) === 111 && e . charCodeAt ( 1 ) === 110 && ( e . charCodeAt ( 2 ) > 122 || e . charCodeAt ( 2 ) < 97 ) , A4 = e => e . startsWith ( "onUpdate:" ) , ks = Object . assign , T4 = ( e , t ) => { const n = e . indexOf ( t ) ; n > - 1 && e . splice ( n , 1 ) } , YI = Object . prototype . hasOwnProperty , Zt = ( e , t ) => YI . call ( e , t ) , Ee = Array . isArray , yf = e => H0 ( e ) === "[object Map]" , D2 = e => H0 ( e ) === "[object Set]" , sc = e => H0 ( e ) === "[object Date]" , Je = e => typeof e == "function" , Ge = e => typeof e == "string" , hr = e => typeof e == "symbol" , gt = e => e !== null && typeof e == "object" , bu = e => ( gt ( e ) || Je ( e ) ) && Je ( e . then ) && Je ( e . catch ) , Y _ = Object . prototype . toString , H0 = e => Y _ . call ( e ) , XI = e => H0 ( e ) . slice ( 8 , - 1 ) , W0 = e => H0 ( e ) === "[object Object]" , F2 = e => Ge ( e ) && e !== "NaN" && e [ 0 ] !== "-" && "" + parseInt ( e , 10 ) === e , j0 = Fn ( ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" ) , V2 = e => { const t = Object . create ( null ) ; return n => t [ n ] || ( t [ n ] = e ( n ) ) } , JI = /-\w/g , La = V2 ( e => e . replace ( JI , t => t . slice ( 1 ) . toUpperCase ( ) ) ) , ZI = /\B([A-Z])/g , Ki = V2 ( e => e . replace ( ZI , "-$1" ) . toLowerCase ( ) ) , K0 = V2 ( e => e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) ) , U0 = V2 ( e => e ? ` on ${ K0 ( e ) } ` : "" ) , ac = ( e , t ) => ! Object . is ( e , t ) , B2 = ( e , ... t ) => { for ( let n = 0 ; n < e . length ; n ++ ) e [ n ] ( ... t ) } , X _ = ( 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 } , QI = e => { const t = Ge ( e ) ? Number ( e ) : NaN ; return isNaN ( t ) ? e : t } ; let J _ ; const z2 = ( ) => J _ || ( J _ = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : { } ) ; function Ze ( e ) { if ( Ee ( e ) ) { const t = { } ; for ( let n = 0 ; n < e . length ; n ++ ) { const s = e [ n ] , a = Ge ( s ) ? sO ( s ) : Ze ( s ) ; if ( a ) for ( const o in a ) t [ o ] = a [ o ] } return t } else if ( Ge ( e ) || gt ( e ) ) return e } const eO = /;(?![^(]*\))/g , tO = /:([^]+)/ , nO = /\/\*[^]*?\*\//g ; function sO ( e ) { const t = { } ; return e . replace ( nO , "" ) . split ( eO ) . forEach ( n => { if ( n ) { const s = n . split ( tO ) ; s . length > 1 && ( t [ s [ 0 ] . trim ( ) ] = s [ 1 ] . trim ( ) ) } } ) , t } function D ( e ) { let t = "" ; if ( Ge ( e ) ) t = e ; else if ( Ee ( e ) ) for ( let n = 0 ; n < e . length ; n ++ ) { const s = D ( e [ n ] ) ; s && ( t += s + " " ) } else if ( gt ( e ) ) for ( const n in e ) e [ n ] && ( t += n + " " ) ; return t . trim ( ) } function Ui ( e ) { if ( ! e ) return null ; let { class : t , style : n } = e ; return t && ! Ge ( t ) && ( e . class = D ( t ) ) , n && ( e . style = Ze ( n ) ) , e } const aO = Fn ( "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly" ) ; function Z _ ( e ) { return ! ! e || e === "" } function oO ( e , t ) { if ( e . length !== t . length ) return ! 1 ; let n = ! 0 ; for ( let s = 0 ; n && s < e . length ; s ++ ) n = yu ( e [ s ] , t [ s ] ) ; return n } function yu ( e , t ) { if ( e === t ) return ! 0 ; let n = sc ( e ) , s = sc ( t ) ; if ( n || s ) return n && s ? e . getTime ( ) === t . getTime ( ) : ! 1 ; if ( n = hr ( e ) , s = hr ( t ) , n || s ) return e === t ; if ( n = Ee ( e ) , s = Ee ( t ) , n || s ) return n && s ? oO ( e , t ) : ! 1 ; if ( n = gt ( e ) , s = gt ( 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 || ! yu ( e [ r ] , t [ r ] ) ) return ! 1 } } return String ( e ) === String ( t ) } function Q _ ( e , t ) { return e . findIndex ( n => yu ( n , t ) ) } const eC = e => ! ! ( e && e . _ _v _isRef === ! 0 ) , me = e => Ge ( e ) ? e : e == null ? "" : Ee ( e ) || gt ( e ) && ( e . toString === Y _ || ! Je ( e . toString ) ) ? eC ( e ) ? me ( e . value ) : JSON . stringify ( e , tC , 2 ) : String ( e ) , tC = ( e , t ) => eC ( t ) ? tC ( e , t . value ) : yf ( t ) ? { [ ` Map( ${ t . size } ) ` ] : [ ... t . entries ( ) ] . reduce ( ( n , [ s , a ] , o ) => ( n [ P4 ( s , o ) + " =>" ] = a , n ) , { } ) } : D2 ( t ) ? { [ ` Set( ${ t . size } ) ` ] : [ ... t . values ( ) ] . map ( n => P4 ( n ) ) } : hr ( t ) ? P4 ( t ) : gt ( t ) && ! Ee ( t ) && ! W0 ( t ) ? String ( t ) : t , P4 = ( e , t = "" ) => { var n ; return hr ( 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-26 17:52:46 +08:00
**/ let ha ; class nC { 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 = ha , ! t && ha && ( this . index = ( ha . scopes || ( ha . 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 = ha ; try { return ha = this , t ( ) } finally { ha = n } } } on ( ) { ++ this . _on === 1 && ( this . prevScope = ha , ha = this ) } off ( ) { this . _on > 0 && -- this . _on === 0 && ( ha = 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 rO ( e ) { return new nC ( e ) } function sC ( ) { return ha } function aC ( e , t = ! 1 ) { ha && ha . cleanups . push ( e ) } let Xn ; const R4 = new WeakSet ; class oC { 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 , ha && ha . active && ha . effects . push ( this ) } pause ( ) { this . flags |= 64 } resume ( ) { this . flags & 64 && ( this . flags &= - 65 , R4 . has ( this ) && ( R4 . delete ( this ) , this . trigger ( ) ) ) } notify ( ) { this . flags & 2 && ! ( this . flags & 32 ) || this . flags & 8 || iC ( this ) } run ( ) { if ( ! ( this . flags & 1 ) ) return this . fn ( ) ; this . flags |= 2 , fC ( this ) , lC ( this ) ; const t = Xn , n = pr ; Xn = this , pr = ! 0 ; try { return this . fn ( ) } finally { cC ( this ) , Xn = t , pr = n , this . flags &= - 3 } } stop ( ) { if ( this . flags & 1 ) { for ( let t = this . deps ; t ; t = t . nextDep ) N4 ( t ) ; this . deps = this . depsTail = void 0 , fC ( this ) , this . onStop && this . onStop ( ) , this . flags &= - 2 } } trigger ( ) { this . flags & 64 ? R4 . add ( this ) : this . scheduler ? this . scheduler ( ) : this . runIfDirty ( ) } runIfDirty ( ) { L4 ( this ) && this . run ( ) } get dirty ( ) { return L4 ( this ) } } let rC = 0 , q0 , G0 ; function iC ( e , t = ! 1 ) { if ( e . flags |= 8 , t ) { e . next = G0 , G0 = e ; return } e . next = q0 , q0 = e } function I4 ( ) { rC ++ } function O4 ( ) { if ( -- rC > 0 ) return ; if ( G0 ) { let t = G0 ; for ( G0 = void 0 ; t ; ) { const n = t . next ; t . next = void 0 , t . flags &= - 9 , t = n } } let e ; for ( ; q0 ; ) { let t = q0 ; for ( q0 = 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 lC ( e ) { for ( let t = e . deps ; t ; t = t . nextDep ) t . version = - 1 , t . prevActiveLink = t . dep . activeLink , t . dep . activeLink = t } function cC ( e ) { let t , n = e . depsTail , s = n ; for ( ; s ; ) { const a = s . prevDep ; s . version === - 1 ? ( s === n && ( n = a ) , N4 ( s ) , iO ( s ) ) : t = s , s . dep . activeLink = s . prevActiveLink , s . prevActiveLink = void 0 , s = a } e . deps = t , e . depsTail = n } function L4 ( e ) { for ( let t = e . deps ; t ; t = t . nextDep ) if ( t . dep . version !== t . version || t . dep . computed && ( uC ( t . dep . computed ) || t . dep . version !== t . version ) ) return ! 0 ; return ! ! e . _dirty } function uC ( e ) { if ( e . flags & 4 && ! ( e . flags & 16 ) || ( e . flags &= - 17 , e . globalVersion === Y0 ) || ( e . globalVersion = Y0 , ! e . isSSR && e . flags & 128 && ( ! e . deps && ! e . _dirty || ! L4 ( e ) ) ) ) return ; e . flags |= 2 ; const t = e . dep , n = Xn , s = pr ; Xn = e , pr = ! 0 ; try { lC ( e ) ; const a = e . fn ( e . _value ) ; ( t . version === 0 || ac ( a , e . _value ) ) && ( e . flags |= 128 , e . _value = a , t . version ++ ) } catch ( a ) { throw t . version ++ , a } finally { Xn = n , pr = s , cC ( e ) , e . flags &= - 3 } } function N4 ( 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 ) N4 ( o , ! 0 ) } ! t && ! -- n . sc && n . map && n . map . delete ( n . key ) } function iO ( e ) { const { prevDep : t , nextDep : n } = e ; t && ( t . nextDep = n , e . prevDep = void 0 ) , n && ( n . prevDep = t , e . nextDep = void 0 ) } let pr = ! 0 ; const dC = [ ] ; function ei ( ) { dC . push ( pr ) , pr = ! 1 } function ti ( ) { const e = dC . pop ( ) ; pr = e === void 0 ? ! 0 : e } function fC ( e ) { const { cleanup : t } = e ; if ( e . cleanup = void 0 , t ) { const n = Xn ; Xn = void 0 ; try { t ( ) } finally { Xn = n } } } let Y0 = 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-26 17:52:46 +08:00
* * / c o n s t Z 0 = [ ] ; l e t z 4 = ! 1 ; f u n c t i o n b 3 e ( e , . . . t ) { i f ( z 4 ) r e t u r n ; z 4 = ! 0 , e i ( ) ; c o n s t n = Z 0 . l e n g t h ? Z 0 [ Z 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 = L 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 < $ { I 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-26 17:52:46 +08:00
` ,...NO(a)),console.warn(...o)}ti(),z4=!1}function LO(){let e=Z0[Z0.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 NO(e){const t=[];return e.forEach((n,s)=>{t.push(...s===0?[]:[ `
` ],... $ O(n))}),t}function $ O({vnode:e,recurseCount:t}){const n=t>0? ` ... ( $ { t } recursive calls ) ` :"",s=e.component?e.component.parent==null:!1,a= ` at < $ { IS ( e . component , e . type , s ) } ` ,o=">"+n;return e.props?[a,...DO(e.props),o]:[a+o]}function DO(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(s=>{t.push(...EC(s,e[s]))}),n.length>3&&t.push(" ..."),t}function EC(e,t,n){return Ge(t)?(t=JSON.stringify(t),n?t:[ ` $ { e } = $ { t } ` ]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[ ` $ { e } = $ { t } ` ]:xn(t)?(t=EC(e,yn(t.value),!0),n?t:[ ` $ { e } = Ref < ` ,t,">"]):Je(t)?[ ` $ { e } = fn$ { t . name ? ` < ${ t . name } > ` : "" } ` ]:(t=yn(t),n?t:[ ` $ { e } = ` ,t])}function Cf(e,t,n,s){try{return s?e(...s):e()}catch(a){Q2(a,t,n)}}function mr(e,t,n,s){if(Je(e)){const a=Cf(e,t,n,s);return a&&bu(a)&&a.catch(o=>{Q2(o,t,n)}),a}if(Ee(e)){const a=[];for(let o=0;o<e.length;o++)a.push(mr(e[o],t,n,s));return a}}function Q2(e,t,n,s=!0){const a=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||nn;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 f=0;f<u.length;f++)if(u[f](e,l,c)===!1)return}i=i.parent}if(o){ei(),Cf(o,null,10,[e,l,c]),ti();return}}FO(e,n,a,s,r)}function FO(e,t,n,s=!0,a=!1){if(a)throw e;console.error(e)}const Na=[];let si=-1;const Sf=[];let rc=null,xf=0;const AC=Promise.resolve();let eg=null;function Ve(e){const t=eg||AC;return e?t.then(this?e.bind(this):e):t}function VO(e){let t=si+1,n=Na.length;for(;t<n;){const s=t+n>>>1,a=Na[s],o=Q0(a);o<e||o===e&&a.flags&2?t=s+1:n=s}return t}function H4(e){if(!(e.flags&1)){const t=Q0(e),n=Na[Na.length-1];!n||!(e.flags&2)&&t>=Q0(n)?Na.push(e):Na.splice(VO(t),0,e),e.flags|=1,TC()}}function TC(){eg||(eg=AC.then(RC))}function BO(e){Ee(e)?Sf.push(...e):rc&&e.id===-1?rc.splice(xf+1,0,e):e.flags&1||(Sf.push(e),e.flags|=1),TC()}function MC(e,t,n=si+1){for(;n<Na.length;n++){const s=Na[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Na.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function PC(e){if(Sf.length){const t=[...new Set(Sf)].sort((n,s)=>Q0(n)-Q0(s));if(Sf.length=0,rc){rc.push(...t);return}for(rc=t,xf=0;xf<rc.length;xf++){const n=rc[xf];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}rc=null,xf=0}}const Q0=e=>e.id==null?e.flags&2?-1:1/0:e.id;function RC(e){try{for(si=0;si<Na.length;si++){const t=Na[si];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(;si<Na.length;si++){const t=Na[si];t&&(t.flags&=-2)}si=-1,Na.length=0,PC(),eg=null,(Na.length||Sf.length)&&RC()}}let sa=null,IC=null;function tg(e){const t=sa;return sa=e,IC=e&&e.type.__scopeId||null,t}function X(e,t=sa,n){if(!t||e._n)return e;const s=(...a)=>{s._d&&ug(-1);const o=tg(t);let r;try{r=e(...a)}finally{tg(o),s._d&&ug(1)}return r};return s._n=!0,s._c=!0,s._d=!0,s}function _t(e,t){if(sa===null)return e;const n=hg(sa),s=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[o,r,i,l=nn]=t[a];o&&(Je(o)&&(o={mounted:o,updated:o}),o.deep&&Xi(r),s.push({dir:o,instance:n,value:r,oldValue:void 0,arg:i,modifiers:l}))}return e}function xu(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&&(ei(),mr(l,n,8,[e.el,i,e,t]),ti())}}function Nt(e,t){if(ma){let n=ma.provides;const s=ma.parent&&ma.parent.provides;s===n&&(n=ma.provides=Object.create(s)),n[e]=t}}function je(e,t,n=!1){const s=At();if(s||Ef){let a=Ef?Ef._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&&Je(t)?t.call(s&&s.proxy):t}}const zO=Symbol.for("v-scx"),HO=()=>je(zO);function Qa(e,t){return W4(e,null,t)}function ge(e,t,n){return W4(e,t,n)}function W4(e,t,n=nn){const{immediate:s,deep:a,flush:o,once:r}=n,i=ks({},n),l=t&&s||!t&&o!=="post";let c;if(up){if(o==="sync"){const p=HO();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=sn,p.resume=sn,p.pause=sn,p}}const u=ma;i.call=(p,v,m)=>mr(p,u,v,m);let f=!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-26 17:52:46 +08:00
* * /let dy;const OS=typeof window<"u"&&window.trustedTypes;if(OS)try{dy=OS.createPolicy("vue",{createHTML:e=>e})}catch{}const LS=dy?e=>dy.createHTML(e):e=>e,BL="http:/ / www . w3 . org / 2000 / svg ",zL=" http : //www.w3.org/1998/Math/MathML",tl=typeof document<"u"?document:null,NS=tl&&tl.createElement("template"),HL={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"?tl.createElementNS(BL,e):t==="mathml"?tl.createElementNS(zL,e):n?tl.createElement(e,{is:n}):tl.createElement(e);return e==="select"&&s&&s.multiple!=null&&a.setAttribute("multiple",s.multiple),a},createText:e=>tl.createTextNode(e),createComment:e=>tl.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>tl.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{NS.innerHTML=LS(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const i=NS.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]}},lc="transition",dp="animation",Tf=Symbol("_vtc"),$S={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},DS=ks({},zC,$S),As=(e=>(e.displayName="Transition",e.props=DS,e))((e,{slots:t})=>ot(qO,VS(e),t)),Tu=(e,t=[])=>{Ee(e)?e.forEach(n=>n(...t)):e&&e(...t)},FS=e=>e?Ee(e)?e.some(t=>t.length>1):e.length>1:!1;function VS(e){const t={};for(const O in e)O in $S||(t[O]=e[O]);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:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,v=WL(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:R=w}=t,I=(O,B,H,J)=>{O._enterCancelled=J,cc(O,B?u:i),cc(O,B?c:r),H&&H()},P=(O,B)=>{O._isLeaving=!1,cc(O,f),cc(O,p),cc(O,h),B&&B()},$=O=>(B,H)=>{const J=O?T:C,Y=()=>I(B,O,H);Tu(J,[B,Y]),BS(()=>{cc(B,O?l:o),li(B,O?u:i),FS(J)||zS(B,s,m,Y)})};return ks(t,{onBeforeEnter(O){Tu(b,[O]),li(O,o),li(O,r)},onBeforeAppear(O){Tu(k,[O]),li(O,l),li(O,c)},onEnter:$(!1),onAppear:$(!0),onLeave(O,B){O._isLeaving=!0;const H=()=>P(O,B);li(O,f),O._enterCancelled?(li(O,h),hy(O)):(hy(O),li(O,h)),BS(()=>{O._isLeaving&&(cc(O,f),li(O,p),FS(_)||zS(O,s,g,H))}),Tu(_,[O,H])},onEnterCancelled(O){I(O,!1,void 0,!0),Tu(w,[O])},onAppearCancelled(O){I(O,!0,void 0,!0),Tu(R,[O])},onLeaveCancelled(O){P(O),Tu(x,[O])}})}function WL(e){if(e==null)return null;if(gt(e))return[fy(e.enter),fy(e.leave)];{const t=fy(e);return[t,t]}}function fy(e){return QI(e)}function li(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Tf]||(e[Tf]=new Set)).add(t)}function cc(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Tf];n&&(n.delete(t),n.size||(e[Tf]=void 0))}function BS(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let jL=0;function zS(e,t,n,s){const a=e._endId=++jL,o=()=>{a===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:r,timeout:i,propCount:l}=HS(e,t);if(!r)return s();const c=r+"end";let u=0;const f=()=>{e.removeEventListener(c,h),o()},h=p=>{p.target===e&&++u>=l&&f()};setTimeout(()=>{u<l&&f()},i+1),e.addEventListener(c,h)}function HS(e,t){const n=window.getComputedStyle(e),s=v=>(n[v]||"").split(", "),a=s(`${lc}Delay`),o=s(`${lc}Duration`),r=WS(a,o),i=s(`${dp}Delay`),l=s(`${dp}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-26 17:52:46 +08:00
` ),P[2]||(P[2]=A("span",null,null,-1))]),_:1},8,["model-value","label","disabled"])):h.value&&e.node.checked?(S(),le(d(Ye),{key:2,class:D(d(o).e("prefix"))},{default:X(()=>[j(d(zf))]),_:1},8,["class"])):ie("v-if",!0),ie(" content "),j(d(Cne),{node:e.node},null,8,["node"]),ie(" postfix "),h.value?ie("v-if",!0):(S(),M(Be,{key:3},[e.node.loading?(S(),le(d(Ye),{key:0,class:D([d(o).is("loading"),d(o).e("postfix")])},{default:X(()=>[j(d(Us))]),_:1},8,["class"])):(S(),le(d(Ye),{key:1,class:D(["arrow-right",d(o).e("postfix")])},{default:X(()=>[j(d(Ks))]),_:1},8,["class"]))],64))],42,Sne))}}),kne=K({name:"ElCascaderMenu",__name:"menu",props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(e){const t=e,n=At(),s=ke("cascader-menu"),{t:a}=Ft(),o=qs();let r,i;const l=je(l1),c=F(),u=E(()=>!t.nodes.length),f=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-_,R=r.offsetTop,I=R+r.offsetHeight,P=((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} ${R} L${x} ${P} V${R} Z" / >
< path style = "pointer-events: auto;" fill = "transparent" d = "M${T} ${I} L${x} ${k+P} V${I} 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(d(Er),{key:h.value,tag:"ul",role:"menu",class:D(d(s).b()),"wrap-class":d(s).e("wrap"),"view-class":[d(s).e("list"),d(s).is("empty",u.value)],onMousemove:v,onMouseleave:g},{default:X(()=>{var w;return[(S(!0),M(Be,null,xt(e.nodes,_=>(S(),le(xne,{key:_.uid,node:_,"menu-id":h.value,onExpand:p},null,8,["node","menu-id"]))),128)),f.value?(S(),M("div",{key:0,class:D(d(s).e("empty-text"))},[j(d(Ye),{size:"14",class:D(d(s).is("loading"))},{default:X(()=>[j(d(Us))]),_:1},8,["class"]),We(" "+me(d(a)("el.cascader.loading")),1)],2)):u.value?(S(),M("div",{key:1,class:D(d(s).e("empty-text"))},[ue(b. $ slots,"empty",{},()=>[We(me(d(a)("el.cascader.noData")),1)])],2)):(w=d(l))!=null&&w.isHoverMenu?(S(),M(Be,{key:2},[ie(" eslint-disable vue/html-self-closing "),(S(),M("svg",{ref_key:"hoverZone",ref:c,class:D(d(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"]))}}),Ene=Object.defineProperty,Ane=(e,t,n)=>t in e?Ene(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ro=(e,t,n)=>Ane(e,typeof t!="symbol"?t+"":t,n);let Tne=0;const Mne=e=>{const t=[e];let{parent:n}=e;for(;n;)t.unshift(n),n=n.parent;return t};let U3=class e_{constructor(t,n,s,a=!1){this.data=t,this.config=n,this.parent=s,this.root=a,ro(this,"uid",Tne++),ro(this,"level"),ro(this,"value"),ro(this,"label"),ro(this,"pathNodes"),ro(this,"pathValues"),ro(this,"pathLabels"),ro(this,"childrenData"),ro(this,"children"),ro(this,"text"),ro(this,"loaded"),ro(this,"checked",!1),ro(this,"indeterminate",!1),ro(this,"loading",!1);const{value:o,label:r,children:i}=n,l=t[i],c=Mne(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 e_(u,n,this)),this.loaded=!n.lazy||this.isLeaf||!Ba(l),this.text=""}get isDisabled(){const{data:t,parent:n,config:s}=this,{disabled:a,checkStrictly:o}=s;return(Je(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=Je(r)?r(t,this):t[r];return Kt(i)?o&&!a?!1:!(Ee(s)&&s.length):!!i}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(t){const{childrenData:n,children:s}=this,a=new e_(t,this.config,this);return Ee(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 Pne=Object.defineProperty,Rne=(e,t,n)=>t in e?Pne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,q3=(e,t,n)=>Rne(e,typeof t!="symbol"?t+"":t,n);const G3=(e,t)=>e.reduce((n,s)=>(s.isLeaf?n.push(s):(!t&&n.push(s),n=n.concat(G3(s.children,t))),n),[]);class LE{constructor(t,n){this.config=n,q3(this,"nodes"),q3(this,"allNodes"),q3(this,"leafNodes");const s=(t||[]).map(a=>new U3(a,this.config));this.nodes=s,this.allNodes=G3(s,!1),this.leafNodes=G3(s,!0)}getNodes(){return this.nodes}getFlattedNodes(t){return t?this.leafNodes:this.allNodes}appendNode(t,n){const s=n?n.appendChild(t):new U3(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-26 17:52:46 +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*)?@)?" , f = 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|" + f + "|" + h + "|" + p + v + m + ")" + g + b ; return k1 = new RegExp ( "(?:^" + C + "$)" , "i" ) , k1 } , YA = { 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 } , iv = { integer : function ( t ) { return iv . number ( t ) && parseInt ( t , 10 ) === t } , float : function ( t ) { return iv . number ( t ) && ! iv . 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" && ! iv . array ( t ) } , method : function ( t ) { return typeof t == "function" } , email : function ( t ) { return typeof t == "string" && t . length <= 320 && ! ! t . match ( YA . email ) } , url : function ( t ) { return typeof t == "string" && t . length <= 2048 && ! ! t . match ( Vie ( ) ) } , hex : function ( t ) { return typeof t == "string" && ! ! t . match ( YA . hex ) } } , Bie = function ( t , n , s , a , o ) { if ( t . required && n === void 0 ) { GA ( 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 ? iv [ i ] ( n ) || a . push ( xo ( o . messages . types [ i ] , t . fullField , t . type ) ) : i && typeof n !== t . type && a . push ( xo ( o . messages . types [ i ] , t . fullField , t . type ) ) } , zie = 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 , f = null , h = typeof n == "number" , p = typeof n == "string" , v = Array . isArray ( n ) ; if ( h ? f = "number" : p ? f = "string" : v && ( f = "array" ) , ! f ) return ! 1 ; v && ( u = n . length ) , p && ( u = n . replace ( c , "_" ) . length ) , r ? u !== t . len && a . push ( xo ( o . messages [ f ] . len , t . fullField , t . len ) ) : i && ! l && u < t . min ? a . push ( xo ( o . messages [ f ] . min , t . fullField , t . min ) ) : l && ! i && u > t . max ? a . push ( xo ( o . messages [ f ] . max , t . fullField , t . max ) ) : i && l && ( u < t . min || u > t . max ) && a . push ( xo ( o . messages [ f ] . range , t . fullField , t . min , t . max ) ) } , sh = "enum" , Hie = function ( t , n , s , a , o ) { t [ sh ] = Array . isArray ( t [ sh ] ) ? t [ sh ] : [ ] , t [ sh ] . indexOf ( n ) === - 1 && a . push ( xo ( o . messages [ sh ] , t . fullField , t [ sh ] . join ( ", " ) ) ) } , Wie = function ( t , n , s , a , o ) { if ( t . pattern ) { if ( t . pattern instanceof RegExp ) t . pattern . lastIndex = 0 , t . pattern . test ( n ) || a . push ( xo ( 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 ( xo ( o . messages . pattern . mismatch , t . fullField , n , t . pattern ) ) } } } , kn = { required : GA , whitespace : Fie , type : Bie , range : zie , enum : Hie , pattern : Wie } , jie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( $s ( n , "string" ) && ! t . required ) return s ( ) ; kn . required ( t , n , a , r , o , "string" ) , $s ( n , "string" ) || ( kn . type ( t , n , a , r , o ) , kn . range ( t , n , a , r , o ) , kn . pattern ( t , n , a , r , o ) , t . whitespace === ! 0 && kn . whitespace ( t , n , a , r , o ) ) } s ( r ) } , Kie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( $s ( n ) && ! t . required ) return s ( ) ; kn . required ( t , n , a , r , o ) , n !== void 0 && kn . type ( t , n , a , r , o ) } s ( r ) } , Uie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( n === "" && ( n = void 0 ) , $s ( n ) && ! t . required ) return s ( ) ; kn . required ( t , n , a , r , o ) , n !== void 0 && ( kn . type ( t , n , a , r , o ) , kn . range ( t , n , a , r , o ) ) } s ( r ) } , qie = function ( t , n , s , a , o ) { var r = [ ] , i = t . required || ! t . required && a . hasOwnProperty ( t . field ) ; if ( i ) { if ( $s
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 }
2026-07-26 17:52:46 +08:00
` }),l=E(()=>2*Math.PI*r.value),c=E(()=>n.type==="dashboard"?.75:1),u=E(()=> ` $ { - 1 * l . value * ( 1 - c . value ) / 2 } px ` ),f=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"?Fp:n.type==="line"?n.status==="success"? $ p:Go:n.status==="success"?zf:no),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)=>Ge(k)?{color:k,percentage:(T+1)*_}:k).sort((k,T)=>k.percentage-T.percentage)}const C=w=>{var _;const{color:x}=n;if(Je(x))return x(w);if(Ge(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(),M("div",{class:D([d(s).b(),d(s).m(e.type),d(s).is(e.status),{[d(s).m("without-text")]:!e.showText,[d(s).m("text-inside")]:e.textInside}]),role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"},[e.type==="line"?(S(),M("div",{key:0,class:D(d(s).b("bar"))},[A("div",{class:D(d(s).be("bar","outer")),style:Ze({height: ` $ { e . strokeWidth } px ` })},[A("div",{class:D([d(s).be("bar","inner"),{[d(s).bem("bar","inner","indeterminate")]:e.indeterminate},{[d(s).bem("bar","inner","striped")]:e.striped},{[d(s).bem("bar","inner","striped-flow")]:e.stripedFlow}]),style:Ze(a.value)},[(e.showText||w. $ slots.default)&&e.textInside?(S(),M("div",{key:0,class:D(d(s).be("bar","innerText"))},[ue(w. $ slots,"default",{percentage:e.percentage},()=>[A("span",null,me(g.value),1)])],2)):ie("v-if",!0)],6)],6)],2)):(S(),M("div",{key:1,class:D(d(s).b("circle")),style:Ze({height: ` $ { e . width } px ` ,width: ` $ { e . width } px ` })},[(S(),M("svg",Yce,[A("path",{class:D(d(s).be("circle","track")),d:i.value,stroke: ` var ( $ { d ( s ) . cssVarName ( "fill-color-light" ) } , # e5e9f2 ) ` ,"stroke-linecap":e.strokeLinecap,"stroke-width":o.value,fill:"none",style:Ze(f.value)},null,14,Xce),A("path",{class:D(d(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:Ze(h.value)},null,14,Jce)]))],6)),(e.showText||w. $ slots.default)&&!e.textInside?(S(),M("div",{key:2,class:D(d(s).e("text")),style:Ze({fontSize: ` $ { m . value } px ` })},[ue(w. $ slots,"default",{percentage:e.percentage},()=>[e.status?(S(),le(d(Ye),{key:1},{default:X(()=>[(S(),le(St(v.value)))]),_:1})):(S(),M("span",Zce,me(g.value),1))])],6)):ie("v-if",!0)],10,Gce))}});const uT=bt(Qce),eue=Te({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:()=>Bn(["","",""])},voidColor:{type:String,default:""},disabledVoidColor:{type:String,default:""},icons:{type:re([Array,Object]),default:()=>[Dp,Dp,Dp]},voidIcon:{type:dn,default:()=>A9},disabledVoidIcon:{type:dn,default:()=>Dp},disabled:{type:Boolean,default:void 0},allowHalf:Boolean,showText:Boolean,showScore:Boolean,textColor:{type:String,default:""},texts:{type:re(Array),default:()=>Bn(["Extremely bad","Disappointed","Fair","Satisfied","Surprise"])},scoreTemplate:{type:String,default:"{value}"},size:gs,clearable:Boolean,...ba(["ariaLabel"])}),tue={[Dt]:e=>tt(e),[pt]:e=>tt(e)},nue=["id","aria-label","aria-labelledby","aria-valuenow","aria-valuetext","aria-valuemax"],sue=["onMousemove","onClick"];var aue=K({name:"ElRate",__name:"rate",props:eue,emits:tue,setup(e,{expose:t,emit:n}){function s(L,V){const z=U=>gt(U),G=Object.keys(V).map(U=>+U).filter(U=>{const te=V[U];return(z(te)?te.excluded:!1)?L<U:L<=U}).sort((U,te)=>U-te),Q=V[G[0]];return z(Q)&&Q.value||Q}const a=e,o=n,r=je(mi,void 0),i=fs(),l=ke("rate"),{inputId:c,isLabeledByFormItem:u}=Co(a,{formItemContext:r}),f=F(Ou(a.modelValue,0,a.max)),h=F(-1),p=F(!0),v=F([]),m=E(()=>v.value.map(L=>L. $
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-26 17:52:46 +08:00
*/const V1="_Mousewheel",lM=function(e,t){if(e&&e.addEventListener){cM(e);const n=function(s){const a= $ fe(s);t&&Reflect.apply(t,this,[s,a])};e[V1]={wheelHandler:n},e.addEventListener("wheel",n,{passive:!0})}},cM=e=>{var t;(t=e[V1])!=null&&t.wheelHandler&&(e.removeEventListener("wheel",e[V1].wheelHandler),e[V1]=null)},Dfe={beforeMount(e,t){lM(e,t.value)},unmounted(e){cM(e)},updated(e,t){t.value!==t.oldValue&&lM(e,t.value)}};let Ffe=1;var Vfe=K({name:"ElTable",directives:{Mousewheel:Dfe},components:{TableHeader:mfe,TableBody:Cfe,TableFooter:kfe,ElScrollbar:Er,hColgroup:XT},props:Mfe,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}=Ft(),n=ke("table"),s=At();Nt(Pr,s);const a=tfe(s,e);s.store=a;const o=new ofe({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:f,toggleAllSelection:h,toggleRowExpansion:p,clearSort:v,sort:m,updateKeyChildren:g}=Efe(a),{isHidden:b,renderExpanded:C,setDragVisible:w,isGroup:_,handleMouseLeave:x,handleHeaderFooterMousewheel:k,tableSize:T,emptyBlockStyle:R,resizeProxyVisible:I,bodyWidth:P,resizeState: $ ,doLayout:O,tableBodyStyles:B,tableLayout:H,scrollbarViewStyle:J,scrollbarStyle:Y}=Afe(e,o,a,s),{scrollBarRef:N,scrollTo:L,setScrollLeft:V,setScrollTop:z}=Pfe(),G=ui(O,50),Q= ` $ { n . namespace . value } - table _$ { Ffe ++ } ` ;s.tableId=Q,s.state={isGroup:_,resizeState: $ ,doLayout:O,debouncedUpdateLayout:G};const U=E(()=>{var he;return(he=e.sumText)!=null?he:t("el.table.sumText")}),te=E(()=>{var he;return(he=e.emptyText)!=null?he:t("el.table.emptyText")}),ae=E(()=>YT(a.states.originColumns.value)[0]);return Tfe(s),on(()=>{G.cancel()}),{ns:n,layout:o,store:a,columns:ae,handleHeaderFooterMousewheel:k,handleMouseLeave:x,tableId:Q,tableSize:T,isHidden:b,isEmpty:r,renderExpanded:C,resizeProxyVisible:I,resizeState: $ ,isGroup:_,bodyWidth:P,tableBodyStyles:B,emptyBlockStyle:R,debouncedUpdateLayout:G,setCurrentRow:i,getSelectionRows:l,toggleRowSelection:c,clearSelection:u,clearFilter:f,toggleAllSelection:h,toggleRowExpansion:p,clearSort:v,doLayout:O,sort:m,updateKeyChildren:g,t,setDragVisible:w,context:s,computedSumText:U,computedEmptyText:te,tableLayout:H,scrollbarViewStyle:J,scrollbarStyle:Y,scrollBarRef:N,scrollTo:L,setScrollLeft:V,setScrollTop:z,allowDragLastColumn:e.allowDragLastColumn}}});const Bfe=["data-prefix"],zfe={ref:"hiddenColumns",class:"hidden-columns"};function Hfe(e,t,n,s,a,o){const r=Ue("hColgroup"),i=Ue("table-header"),l=Ue("table-body"),c=Ue("table-footer"),u=Ue("el-scrollbar"),f=J4("mousewheel");return S(),M("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:Ze(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",zfe,[ue(e. $ slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?_t((S(),M("div",{key:0,ref:"headerWrapper",class:D(e.ns.e("header-wrapper"))},[A("table",{ref:"tableHeader",class:D(e.ns.e("header")),style:Ze(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[j(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 } , yme = ( 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 ] } ) , b3 ( ) ? 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 f = { 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 ) , f . left >= e . clientWidth && ( f . left = e . clientWidth ) , f } , wme = Te ( { ... Up , options : { type : re ( Array ) , default : ( ) => [ ] } , prefix : { type : re ( [ String , Array ] ) , default : "@" , validator : e => Ge ( e ) ? e . length === 1 : e . every ( t => Ge ( t ) && t . length === 1 ) } , split : { type : String , default : " " , validator : e => e . length === 1 } , filterOption : { type : re ( [ Boolean , Function ] ) , default : ( ) => gme , validator : e => e === ! 1 ? ! 0 : Je ( 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 : fn . popperClass , popperStyle : fn . popperStyle , popperOptions : { type : re ( Object ) , default : ( ) => ( { } ) } , props : { type : re ( Object ) , default : ( ) => $7 } } ) , _me = { [ pt ] : e => Ge ( e ) , "whole-remove" : ( e , t ) => Ge ( e ) && Ge ( t ) , input : e => Ge ( e ) , search : ( e , t ) => Ge ( e ) && Ge ( t ) , select : ( e , t ) => gt ( e ) && Ge ( t ) , focus : e => e instanceof FocusEvent , blur : e => e instanceof FocusEvent } , $7 = { value : "value" , label : "label" , disabled : "disabled" } , Cme = Te ( { options : { type : re ( Array ) , default : ( ) => [ ] } , loading : Boolean , disabled : Boolean , contentId : String , ariaLabel : String } ) , Sme = { select : e => Ge ( e . value ) } , xme = [ "id" , "aria-disabled" , "aria-selected" , "onMousemove" , "onClick" ] ; var kme = K ( { name : "ElMentionDropdown" , _ _name : "mention-dropdown" , props : Cme , emits : Sme , setup ( e , { expose : t , emit : n } ) { const s = e , a = n , o = ke ( "mention" ) , { t : r } = Ft ( ) , i = F ( - 1 ) , l = F ( ) , c = F ( ) , u = F ( ) , f = ( _ , 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 } Ve ( ( ) => C ( k ) ) } , C = _ => { var x , k , T , R ; const { options : I } = s , P = I . findIndex
2026-05-27 23:13:02 +08:00
* vue - router v4 . 6.4
* ( c ) 2025 Eduardo San Martin Morote
* @ license MIT
2026-07-26 17:52:46 +08:00
* /const Ch=typeof document<"u";function Y7(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function H2e(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Y7(e.default)}const Dn=Object.assign;function X8(e,t){const n={};for(const s in t){const a=t[s];n[s]=Lr(a)?a.map(e):e(a)}return n}const Mv=()=>{},Lr=Array.isArray;function X7(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const J7=/ # / g , W2e = /&/g , j2e = /\//g , K2e = /=/g , U2e = /\?/g , Z7 = /\+/g , q2e = /%5B/g , G2e = /%5D/g , Q7 = /%5E/g , Y2e = /%60/g , eP = /%7B/g , X2e = /%7C/g , tP = /%7D/g , J2e = /%20/g ; function J8 ( e ) { return e == null ? "" : encodeURI ( "" + e ) . replace ( X2e , "|" ) . replace ( q2e , "[" ) . replace ( G2e , "]" ) } function Z2e ( e ) { return J8 ( e ) . replace ( eP , "{" ) . replace ( tP , "}" ) . replace ( Q7 , "^" ) } function Z8 ( e ) { return J8 ( e ) . replace ( Z7 , "%2B" ) . replace ( J2e , "+" ) . replace ( J7 , "%23" ) . replace ( W2e , "%26" ) . replace ( Y2e , "`" ) . replace ( eP , "{" ) . replace ( tP , "}" ) . replace ( Q7 , "^" ) } function Q2e ( e ) { return Z8 ( e ) . replace ( K2e , "%3D" ) } function ege ( e ) { return J8 ( e ) . replace ( J7 , "%23" ) . replace ( U2e , "%3F" ) } function tge ( e ) { return ege ( e ) . replace ( j2e , "%2F" ) } function Pv ( e ) { if ( e == null ) return null ; try { return decodeURIComponent ( "" + e ) } catch { } return "" + e } const nge = /\/$/ , sge = e => e . replace ( nge , "" ) ; function Q8 ( 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 = ige ( s ? ? t , n ) , { fullPath : s + o + r , path : s , query : a , hash : Pv ( r ) } } function age ( e , t ) { const n = t . query ? e ( t . query ) : "" ; return t . path + ( n && "?" ) + n + ( t . hash || "" ) } function nP ( e , t ) { return ! t || ! e . toLowerCase ( ) . startsWith ( t . toLowerCase ( ) ) ? e : e . slice ( t . length ) || "/" } function oge ( e , t , n ) { const s = t . matched . length - 1 , a = n . matched . length - 1 ; return s > - 1 && s === a && Sh ( t . matched [ s ] , n . matched [ a ] ) && sP ( t . params , n . params ) && e ( t . query ) === e ( n . query ) && t . hash === n . hash } function Sh ( e , t ) { return ( e . aliasOf || e ) === ( t . aliasOf || t ) } function sP ( e , t ) { if ( Object . keys ( e ) . length !== Object . keys ( t ) . length ) return ! 1 ; for ( var n in e ) if ( ! rge ( e [ n ] , t [ n ] ) ) return ! 1 ; return ! 0 } function rge ( e , t ) { return Lr ( e ) ? aP ( e , t ) : Lr ( t ) ? aP ( t , e ) : ( e == null ? void 0 : e . valueOf ( ) ) === ( t == null ? void 0 : t . valueOf ( ) ) } function aP ( e , t ) { return Lr ( t ) ? e . length === t . length && e . every ( ( n , s ) => n === t [ s ] ) : e . length === 1 && e [ 0 ] === t } function ige ( 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 Tc = { path : "/" , name : void 0 , params : { } , query : { } , hash : "" , fullPath : "/" , matched : [ ] , meta : { } , redirectedFrom : void 0 } ; let ew = function ( e ) { return e . pop = "pop" , e . push = "push" , e } ( { } ) , tw = function ( e ) { return e . back = "back" , e . forward = "forward" , e . unknown = "" , e } ( { } ) ; function lge ( 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 ) , sge ( e ) } const cge = /^[^#]+#/ ; function uge ( e , t ) { return e . replace ( cge , "#" ) + t } function dge ( 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 rb = ( ) => ( { left : window . scrollX , top : window . scrollY } ) ; function fge ( 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 = dge ( 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 oP ( e , t ) { return ( history . state ? history . state . position - t : - 1 ) + e } const nw = new Map ; function hge ( e , t ) { nw . set ( e , t ) } function pge ( e ) { const t = nw . get ( e ) ; return nw . delete ( e ) , t } function vge ( e ) { return typeof e == "string" || e && typeof e == "object" } function rP ( e ) { return typeof e == "string" || typeof e == "symbol" } let ys = 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-26 17:52:46 +08:00
*/let Cge=()=>location.protocol+" //"+location.host;function dP(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),nP(i,"")}return nP(n,e)+s+a}function Sge(e,t,n,s){let a=[],o=[],r=null;const i=({state:h})=>{const p=dP(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:ew.pop,direction:g?g>0?tw.forward:tw.back:tw.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(Dn({},h.state,{scroll:rb()}),"")}}function f(){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:f}}function fP(e,t,n,s=!1,a=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:a?rb():null}}function xge(e){const{history:t,location:n}=window,s={value:dP(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 f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Cge()+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,Dn({},t.state,fP(a.value.back,l,a.value.forward,!0),c,{position:a.value.position}),!0),s.value=l}function i(l,c){const u=Dn({},a.value,t.state,{forward:l,scroll:rb()});o(u.current,u,!0),o(l,Dn({},fP(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:a,push:i,replace:r}}function kge(e){e=lge(e);const t=xge(e),n=Sge(e,t.state,t.location,t.replace);function s(o,r=!0){r||n.pauseListeners(),history.go(o)}const a=Dn({location:"",base:e,go:s,createHref:uge.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 Ege(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),kge(e)}let sd=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var Ds=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}(Ds||{});const Age={type:sd.Static,value:""},Tge=/[a-zA-Z0-9_]/;function Mge(e){if(!e)return[[]];if(e==="/")return[[Age]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=Ds.Static,s=n;const a=[];let o;function r(){o&&a.push(o),o=[]}let i=0,l,c="",u="";function f(){c&&(n===Ds.Static?o.push({type:sd.Static,value:c}):n===Ds.Param||n===Ds.ParamRegExp||n===Ds.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:sd.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!==Ds.ParamRegExp){s=n,n=Ds.EscapeNext;continue}switch(n){case Ds.Static:l==="/"?(c&&f(),r()):l===":"?(f(),n=Ds.Param):h();break;case Ds.EscapeNext:h(),n=s;break;case Ds.Param:l==="("?n=Ds.ParamRegExp:Tge.test(l)?h():(f(),n=Ds.Static,l!=="*"&&l!=="?"&&l!=="+"&&i--);break;case Ds.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=Ds.ParamRegExpEnd:u+=l;break;case Ds.ParamRegExpEnd:f(),n=Ds.Static,l!=="*"&&l!=="?"&&l!=="+"&&i--,u="";break;default:t("Unknown state");break}}return n===Ds.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),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 cb(e,t){return ` $ { lb } / download / $ { e } / $ { t } ` }function u1e(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( ` $ { lb } / batch ` ,{method:"POST",body:r,signal:i.signal}).then(l=>{if(!l.ok)throw new Error( ` HTTP $ { l . status } ` );return ow(l,n)}).catch(l=>{l.name!=="AbortError"&&n({type:"error",data:{message:l.message}})}),()=>i.abort()}const d1e={class:"panel-header"},f1e={class:"panel-title"},h1e={class:"panel-actions"},p1e={key:0,class:"overall-progress"},v1e={class:"progress-label"},m1e={key:0,class:"current-file"},g1e={key:0,class:"current-msg"},b1e={key:1,class:"summary-row"},y1e={key:1,class:"row-msg"},w1e={key:2,class:"text-danger"},_1e={key:3,class:"text-success"},C1e=wl({__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({});ge(()=>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)),f=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 _=cb(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=cb(w,_),T=_.endsWith(".xlsx")?".xlsx":".json",R=x?x.replace(/ \. pdf $ /i,"")+T:_,I=document.createElement("a");I.href=k,I.download=R,document.body.appendChild(I),I.click(),document.body.removeChild(I)}return(w,_)=>{const x=Ue("el-icon"),k=Ue("el-tag"),T=Ue("el-button"),R=Ue("el-progress"),I=Ue("el-statistic"),P=Ue("el-table-column"), $ =Ue("el-table"),O=Ue("el-card");return S(),le(O,{class:"batch-result-card",shadow:"never"},{header:X(()=>[A("div",d1e,[A("div",f1e,[j(x,null,{default:X(()=>[j(d(Qy))]),_:1}),_[3]||(_[3]=A("span",null,"批量解析结果",-1)),e.batchDone?(S(),le(k,{key:0,type:"success",size:"small"},{default:X(()=>[We(" 完成 "+me(l.value)+"/"+me(e.totalFiles),1)]),_:1})):ie("",!0),c.value>0?(S(),le(k,{key:1,type:"danger",size:"small"},{default:X(()=>[We(" 失败 "+me(c.value),1)]),_:1})):ie("",!0)]),A("div",h1e,[e.mergedSessionId?(S(),M(Be,{key:0},[m.value?(S(),le(T,{key:0,type:"primary",size:"small",icon:d(ul),onClick:_[0]||(_[0]=B=>b("result.xlsx"))},{default:X(()=>[..._[4]||(_[4]=[We("下载合并 Excel",-1)])]),_:1},8,["icon"])):ie("",!0),g.value?(S(),le(T,{key:1,size:"small",icon:d(ul),onClick:_[1]||(_[1]=B=>b("result.json"))},{default:X(()=>[..._[5]||(_[5]=[We("下载合并 JSON",-1)])]),_:1},8,["icon"])):ie("",!0)],64)):ie("",
${ v } ` : ` [ ${ v } ] ` } function u ( { row : f , column : h } ) { if ( ! f . _flags ) return { } ; const p = h . property , v = f . _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 ( f , h ) => { const p = Ue ( "el-tooltip" ) , v = Ue ( "el-table-column" ) , m = Ue ( "el-table" ) , g = Ue ( "el-empty" ) ; return S ( ) , M ( "div" , null , [ o . value . length > 0 ? ( S ( ) , M ( Be , { key : 0 } , [ j ( m , { data : o . value , border : "" , stripe : "" , size : "small" , style : { width : "100%" } , "max-height" : 500 , "cell-style" : u } , { default : X ( ( ) => [ ( S ( ! 0 ) , M ( Be , null , xt ( 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" , A1e , me ( C [ b ] ) , 1 ) ] ) , _ : 2 } , 1032 , [ "content" ] ) ) : ( S ( ) , M ( "span" , T1e , me ( C [ b ] ) , 1 ) ) ] ) , _ : 2 } , 1032 , [ "prop" , "label" ] ) ) ) , 128 ) ) ] ) , _ : 1 } , 8 , [ "data" ] ) , A ( "div" , M1e , "共 " + me ( o . value . length ) + " 行" , 1 ) ] , 64 ) ) : i . value ? ( S ( ) , M ( "pre" , P1e , me ( i . value ) , 1 ) ) : ( S ( ) , le ( g , { key : 2 , description : "暂无识别数据" , "image-size" : 60 } ) ) ] ) } } } , [ [ "__scopeId" , "data-v-bfa225df" ] ] ) , I1e = { key : 1 , class : "raw-text" } , kP = wl ( { _ _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 = Ue ( "el-descriptions-item" ) , i = Ue ( "el-descriptions" ) , l = Ue ( "el-empty" ) ; return S ( ) , M ( "div" , null , [ n . value . length > 0 ? ( S ( ) , le ( i , { key : 0 , column : 1 , border : "" , size : "small" } , { default : X ( ( ) => [ ( S ( ! 0 ) , M ( Be , null , xt ( n . value , ( { key : c , value : u } ) => ( S ( ) , le ( r , { key : c , label : c } , { default : X ( ( ) => [ We ( me ( u ) , 1 ) ] ) , _ : 2 } , 1032 , [ "label" ] ) ) ) , 128 ) ) ] ) , _ : 1 } ) ) : s . value ? ( S ( ) , M ( "pre" , I1e , me ( s . value ) , 1 ) ) : ( S ( ) , le ( l , { key : 2 , description : "暂无数据" , "image-size" : 50 } ) ) ] ) } } } , [ [ "__scopeId" , "data-v-9250db36" ] ] ) , O1e = { class : "toolbar" } , L1e = { class : "result-summary" } , N1e = { key : 0 , class : "token-hint" } , $1e = { class : "btn-group" } , D1e = { key : 0 } , F1e = { key : 1 } , V1e = { key : 0 , style : { color : "#e6a23c" } } , B1e = { key : 0 , class : "reason-tags" } , z1e = { key : 2 , class : "page-detail" } , EP = wl ( { _ _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" , f = n . outputFilenames [ c ] || ` result ${ u } ` , h = cb ( n . sessionId , f ) , p = document . createElement ( "a" ) ; p . href = h , p . download = f , 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 f = Ue ( "CircleCheck" ) , h = Ue ( "el-icon" ) , p = Ue ( "el-button" ) , v = Ue ( "el-card" ) , m = Ue ( "el-tag" ) , g = Ue ( "el-alert" ) , b = Ue ( "el-tab-pane" ) , C = Ue ( "el-tabs" ) , w = Ue ( "el-col" ) , _ = Ue ( "el-row" ) ; return S ( ) , M ( "div" , null , [ j ( v , { class : "toolbar-card" , shadow : "never" } , { default : X ( ( ) => [ A ( "div" , O1e , [ A ( "div" , L1e , [ j ( h , { color : "#67C23A" , size : "20" } , { default : X ( ( ) => [ j ( f ) ] ) , _ : 1 } ) , A ( "span" , null , [ u [ 4 ] || ( u [ 4 ] = We ( "识别完成,共处理 " , - 1 ) ) , A ( "strong" , null , me ( e . pagesData . length ) , 1 ) , u [ 5 ] || ( u [ 5 ] = We ( " 页" , - 1 ) ) ] ) , e . tokenUsage ? ( S ( ) , M ( "span" , N1e , " · " + me ( e . tokenUsage . total _tokens . toLocaleString ( ) ) + " tokens ¥" + me ( e . tokenUsage . cost _cny ) , 1 ) ) : ie ( "" , ! 0 ) ] ) , A ( "div" , $1e , [ e . sessionId ?
` );return t.join("")}}function $ v(e,t){try{const{protocol:n}=t?new URL(e,t):new URL(e);return n==="http:"||n==="https:"}catch{return!1}}function $ r(e){e.preventDefault()}function To(e){e.preventDefault(),e.stopPropagation()}class mw{static toDateObject(t){if(!t||typeof t!="string")return null;y(this,Kv)||q(this,Kv,new RegExp("^D:( \\ d{4})( \\ d{2})?( \\ d{2})?( \\ d{2})?( \\ d{2})?( \\ d{2})?([Z|+|-])?( \\ d{2})?'?( \\ d{2})?'?"));const n=y(this,Kv).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 f=parseInt(n[9],10)||0;return f=f>=0&&f<=59?f:0,c==="-"?(r+=u,i+=f):c==="+"&&(r-=u,i-=f),new Date(Date.UTC(s,a,o,r,i,l))}}Kv=new WeakMap,se(mw,Kv);function Cbe(e,{scale:t=1,rotation:n=0}){const{width:s,height:a}=e.attributes.style,o=[0,0,parseInt(s),parseInt(a)];return new Nv({viewBox:o,userUnit:1,scale:t,rotation:n})}function gw(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):(mn( ` Not a valid color format : "${e}" ` ),[0,0,0])}function Sbe(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,gw(s))}t.remove()}function ls(e){const{a:t,b:n,c:s,d:a,e:o,f:r}=e.getTransform();return[t,n,s,a,o,r]}function xi(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 ad(e,t,n=!1,s=!0){if(t instanceof Nv){const{pageWidth:a,pageHeight:o}=t.rawDims,{style:r}=e,i=Wa.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 } ) ` ,f=i? ` round ( down , $ { c } , var ( -- scale - round - y , 1 px ) ) ` : ` calc ( $ { c } ) ` ;!n||t.rotation%180===0?(r.width=u,r.height=f):(r.width=f,r.height=u)}s&&e.setAttribute("data-main-rotation",t.rotation)}class bw{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 kl=class kl{constructor(t){se(this,ja);se(this,Nc,null);se(this,cd,null);se(this,Dr);se(this,ud,null);se(this,Uv,null);q(this,Dr,t),y(kl,qv)||q(kl,qv,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=q(this,Nc,document.createElement("div"));t.classList.add("editToolbar","hidden"),t.setAttribute("role","toolbar");const n=y(this,Dr)._uiManager._signal;t.addEventListener("contextmenu", $ r,{signal:n}),t.addEventListener("pointerdown",oe(kl,Ib,xR),{signal:n});const s=q(this,ud,document.createElement("div"));s.className="buttons",t.append(s);const a=y(this,Dr).toolbarPosition;if(a){const{style:o}=t,r=y(this,Dr)._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,ja,AR).call(this),t}get div(){return y(this,Nc)}hide(){var t;y(this,Nc).classList.add("hidden"),(t=y(this,cd))==null||t.hideDropdown()}show(){var t;y(this,Nc).classList.remove("hidden"),(t=y(this,Uv))==null||t.shown()}async addAltText(t){const n=await t.render();oe(this,ja,Qb).call(this,n),y(this,ud).prepend(n,y(this,ja,n_)),q(this,Uv,t)}addColorPicker(t){q(this,cd,t);const n=t.renderButton();oe(this,ja,Qb).call(this,n),y(this,ud).prepend(n,y(this,ja,n_))}remove(){var t;y(this,Nc).remove(),(t=y(this,cd))==null||t.destroy(),q(this,cd,null)}};Nc=new WeakMap,cd=new WeakMap,Dr=new WeakMap,ud=new WeakMap,Uv=new WeakMap,qv=new WeakMap,Ib=new WeakSet,xR=function(t){t.stopPropagation()},ja=new WeakSet,kR=function(t){y(this,Dr)._focusEventsAllowed=!1,To(t)},ER=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 ) , rd . add ( s ) , s . setAttribute ( "data-element-id" , n ) , s . disabled = this . data . readOnly , s . name = this . data . fieldName , s . tabIndex = jv , 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 f = 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 = f ; f = 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 ( f && s . addEventListener ( "blur" , f ) , 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 } , fI = function ( t ) { t . altKey || t . shiftKey || t . ctrlKey || t . metaKey || ( t . key === "Enter" || t . key === "Escape" && y ( this , Wl ) ) && oe ( this , Un , h4 ) . call ( this ) } , hI = function ( ) { if ( y ( this , jl ) !== null ) return ; const { page : { view : t } , viewport : { rawDims : { pageWidth : n , pageHeight : s , pageX : a , pageY : o } } } = y ( this , Dm ) ; let r = ! ! y ( this , c0 ) , i = r ? y ( this , c0 ) : y ( this , Fm ) ; for ( const v of y ( this , $m ) ) if ( ! i || Ht . intersect ( v . data . rect , i ) !== null ) { i = v . data . rect , r = ! 0 ; break } const l = Ht . 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 , f = l [ 0 ] + u , h = l [ 1 ] ; q ( this , jl , [ 100 * ( f - a ) / n , 100 * ( h - o ) / s ] ) ; const { style : p } = y ( this , ws ) ; p . left = ` ${ y ( this , jl ) [ 0 ] } % ` , p . top = ` ${ y ( this , jl ) [ 1 ] } % ` } , h4 = function ( ) { q ( this , Wl , ! y ( this , Wl ) ) , y ( this , Wl ) ? ( oe ( this , Un , p4 ) . call ( this ) , y ( this , ws ) . addEventListener ( "click" , y ( this , i0 ) ) , y ( this , ws ) . addEventListener ( "keydown" , y ( this , r0 ) ) ) : ( oe ( this , Un , T _ ) . call ( this ) , y ( this , ws ) . removeEventListener ( "click" , y ( this , i0 ) ) , y ( this , ws ) . removeEventListener ( "keydown" , y ( this , r0 ) ) ) } , p4 = function ( ) { y ( this , Wr ) || this . render ( ) , this . isVisible ? y ( this , Wl ) && y ( this , ws ) . classList . add ( "focused" ) : ( oe ( this , Un , hI ) . call ( this ) , y ( this , ws ) . hidden = ! 1 , y ( this , ws ) . style . zIndex = parseInt ( y ( this , ws ) . style . zIndex ) + 1e3 ) } , T _ = function ( ) { y ( this , ws ) . classList . remove ( "focused" ) , ! ( y ( this , Wl ) || ! this . isVisible ) && ( y ( this , ws ) . hidden = ! 0 , y ( this , ws ) . style . zIndex = parseInt ( y ( this , ws ) . style . zIndex ) - 1e3 ) } ; class vR extends Cs { constructor ( t ) { super ( t , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) , this . textContent = t . data . textContent , this . textPosition = t . data . textPosition , this . annotationEditorType = vn . 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 W4e extends Cs { constructor ( n ) { super ( n , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) ; se ( this , Bm , null ) } render ( ) { this . container . classList . add ( "lineAnnotation" ) ; const n = this . data , { width : s , height : a } = Lc ( n . rect ) , o = this . svgFactory . create ( s , a , ! 0 ) , r = q ( this , Bm , 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 , Bm ) } addHighlightArea ( ) { this . container . classList . add ( "highlightArea" ) } } Bm = new WeakMap ; class j4e extends Cs { constructor ( n ) { super ( n , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) ; se ( this , zm , null ) } render ( ) { this . container . classList . add ( "squareAnnotation" ) ; const n = this . data , { width : s , height : a } = Lc ( n . rect ) , o = this . svgFactory . create ( s , a , ! 0 ) , r = n . borderStyle . width , i = q ( this , zm , 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 , zm ) } addHighlightArea ( ) { this . container . classList . add ( "highlightArea" ) } } zm = new WeakMap ; class K4e extends Cs { constructor ( n ) { super ( n , { isRenderable : ! 0 , ignoreBorder : ! 0 } ) ; se ( this , Hm , null ) } render ( ) { this . container . classList . add ( "circleAnnotation" ) ; const n = this . data , { width : s , height : a } = Lc ( n . rect ) , o = this . svgFactory . create ( s , a , ! 0 ) , r = n . borderStyle . width , i = q ( this , Hm , 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-26 17:52:46 +08:00
` )){i.insertNode(document.createTextNode(o)),this.editorDiv.normalize(),r.collapseToStart();return}const{startContainer:l,startOffset:c}=i,u=[],f=[];if(l.nodeType===Node.TEXT_NODE){const b=l.parentElement;if(f.push(l.nodeValue.slice(c).replaceAll(Eb,"")),b!==this.editorDiv){let C=u;for(const w of this.editorDiv.childNodes){if(w===b){C=f;continue}C.push(oe(m=Qn,Ul,m4).call(m,w))}}u.push(l.nodeValue.slice(0,c).replaceAll(Eb,""))}else if(l===this.editorDiv){let b=u,C=0;for(const w of this.editorDiv.childNodes)C++===c&&(b=f),b.push(oe(g=Qn,Ul,m4).call(g,w))}q(this,No, ` $ { u . join ( `
` ) } $ { o } $ { f . join ( `
` ) } ` ),oe(this,Is,g4).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 vR){const{data:{defaultAppearanceData:{fontSize:l,fontColor:c},rect:u,rotation:f,id:h,popupRef:p},textContent:v,textPosition:m,parent:{page:{pageNumber:g}}}=n;if(!v||v.length===0)return null;o=n={annotationType:vn.FREETEXT,color:Array.from(c),fontSize:l,value:v.join( `
` ),position:m,pageIndex:g-1,rect:u.slice(0),rotation:f,id:h,deleted:!1,popupRef:p}}const r=await super.deserialize(n,s,a);return q(r, $ o,n.fontSize),q(r,jr,Ht.makeHexColor(...n.color)),q(r,No,oe(i=Qn,Ul,I_).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=Qn._internalPadding*this.parentScale,a=this.getRect(s,s),o=hs._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:y(this,jr)),r={annotationType:vn.FREETEXT,color:o,fontSize:y(this, $ o),value:oe(this,Is,bI).call(this),pageIndex:this.pageIndex,rect:a,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return n?r:this.annotationElementId&&!oe(this,Is,yI).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 , $o ) } px * var ( -- scale - factor ) ) ` ,a.color=y(this,jr),s.replaceChildren();for(const r of y(this,No).split( `
` )){const i=document.createElement("div");i.append(r?document.createTextNode(r):document.createElement("br")),s.append(i)}const o=Qn._internalPadding*this.parentScale;return n.updateEdited({rect:this.getRect(o,o),popupContent:y(this,No)}),s}resetAnnotationElement(n){super.resetAnnotationElement(n),n.resetEdited()}};jr=new WeakMap,No=new WeakMap,Xm=new WeakMap,Jd=new WeakMap, $ o=new WeakMap,Is=new WeakSet,vI=function(n){const s=o=>{this.editorDiv.style.fontSize= ` calc ( $ { o } px * var ( -- scale - factor ) ) ` ,this.translate(0,-(o-y(this, $ o))*this.parentScale),q(this, $ o,o),oe(this,Is,v4).call(this)},a=y(this, $ o);this.addCommands({cmd:s.bind(this,n),undo:s.bind(this,a),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:En.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},mI=function(n){const s=o=>{q(this,jr,this.editorDiv.style.color=o)},a=y(this,jr);this.addCommands({cmd:s.bind(this,n),undo:s.bind(this,a),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:En.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},gI=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=Qn,Ul,m4).call(a,o)),s=o);return n.join( `
` )},v4=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()},Ul=new WeakSet,m4=function(n){return(n.nodeType===Node.TEXT_NODE?n.nodeValue:n.innerText).replaceAll(Eb,"")},g4=function(){if(this.editorDiv.replaceChildren(),!!y(this,No))for(const n of y(this,No).split( `
` )){const s=document.createElement("div");s.append(n?document.createTextNode(n):document.createElement("br")),this.editorDiv.append(s)}},bI=function(){return y(this,No).replaceAll(" "," ")},I_=function(n){return n.replaceAll(" "," ")},yI=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},se(Qn,Ul),Jt(Qn,"_freeTextDefaultContent",""),Jt(Qn,"_internalPadding",0),Jt(Qn,"_defaultColor",null),Jt(Qn,"_defaultFontSize",10),Jt(Qn,"_type","freetext"),Jt(Qn,"_editorType",vn.FREETEXT);let Nw=Qn;class Ot{toSVGPath(){Yn("Abstract method ` toSVGPath ` must be implemented.")}get box(){Yn("Abstract getter ` box ` must be implemented.")}serialize(t,n){Yn("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]}}Jt(Ot,"PRECISION",1e-4);const ql=class ql{constructor({x:t,y:n},s,a,o,r,i=0){se(this,zs);se(this,Do);se(this,Kr,[]);se(this,u0);se(this,d0);se(this, $ i,[]);se(this,Cn,new Float32Array(18));se(this,Zd);se(this,Qd);se(this,Jm);se(this,Zm);se(this,f0);se(this,h0);se(this,tu,[]);q(this,Do,s),q(this,h0,o*a),q(this,d0,r),y(this,Cn).set([NaN,NaN,NaN,NaN,t,n],6),q(this,u0,i),q(this,Zm,y(ql,Qm)*a),q(this,Jm,y(ql,qb)*a),q(this,f0,a),y(this,tu).push(t,n)}isEmpty(){return isNaN(y(this,Cn)[8])}add({x:t,y:n}){var I;q(this,Zd,t),q(this,Qd,n);const[s,a,o,r]=y(this,Do);let[i,l,c,u]=y(this,Cn).subarray(8,12);const f=t-c,h=n-u,p=Math.hypot(f,h);if(p<y(this,Jm))return!1;const v=p-y(this,Zm),m=v/p,g=m*f,b=m*h;let C=i,w=l;i=c,l=u,c+=g,u+=b,(I=y(this,tu))==null||I.push(t,n);const _=-b/v,x=g/v,k=_*y(this,h0),T=x*y(this,h0);return y(this,Cn).set(y(this,Cn).subarray(2,8),0),y(this,Cn).set([c+k,u+T],4),y(this,Cn).set(y(this,Cn).subarray(14,18),12),y(this,Cn).set([c-k,u-T],16),isNaN(y(this,Cn)[6])?(y(this, $ i).length===0&&(y(this,Cn).set([i+k,l+T],2),y(this, $ i).push(NaN,NaN,NaN,NaN,(i+k-s)/o,(l+T-a)/r),y(this,Cn).set([i-k,l-T],14),y(this,Kr).push(NaN,NaN,NaN,NaN,(i-k-s)/o,(l-T-a)/r)),y(this,Cn).set([C,w,i,l,c,u],6),!this.isEmpty()):(y(this,Cn).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,Cn).subarray(2,6),y(this, $ i).push(NaN,NaN,NaN,NaN,((i+c)/2-s)/o,((l+u)/2-a)/r),[i,l,C,w]=y(this,Cn).subarray(14,18),y(this,Kr).push(NaN,NaN,NaN,NaN,((C+i)/2-s)/o,((w+l)/2-a)/r),!0):([C,w,i,l,c,u]=y(this,Cn).subarray(0,6),y(this, $ i).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,Cn).subarray(12,18),y(this,Kr).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, $ i),n=y(this,Kr);if(isNaN(y(this,Cn)[6])&&!this.isEmpty())return oe(this,zs,wI).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,zs,CI).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,zs,_I).call(this,s),s.join(" ")}newFreeDrawOutline(t,n,s,a,o,r){return new yR(t,n,s,a,o,r)}getOutlines()
` ) : "(该页无材料明细行)" , Lt . status = an . _validation _failed ? "error" : "done" } const tn = lt . results . filter ( an => an . _validation _failed ) . length ; tn > 0 ? is . warning ( ` VL 识别完成, ${ lt . total _pages } 页中 ${ tn } 页校验未通过(内容可能为空) ` ) : is . success ( ` VL 识别完成,共 ${ lt . total _pages } 页 ` ) , Z ( ! 0 ) } catch ( ct ) { Z ( ! 1 ) , H . value . filter ( lt => lt . type === "A" ) . forEach ( lt => { lt . status === "recognizing" && ( lt . status = "error" ) } ) , is . error ( ` VL 识别失败: ${ ct . message } ` ) } } function Gn ( be ) { return ! be || typeof be != "object" ? "" : Object . entries ( { pipeline _id : "管段号" , operation _pressure _mpa : "操作压力(MPa)" , operation _temp _c : "操作温度(℃)" , design _pressure _mpa : "设计压力(MPa)" , design _temp _c : "设计温度(℃)" , test _pressure _mpa : "试验压力(MPa)" , hydraulic _test _pressure : "水压/气密" , pipe _diameter _dn : "管径DN" , pipe _spec _grade : "管道等级" , heat _insulation : "隔热要求" , insulation _thickness _mm : "保温厚度(mm)" , post _weld _heat _treatment : "焊后热处理" , radiographic _examination : "射线探伤" } ) . map ( ( [ Ne , ut ] ) => { const nt = be [ Ne ] ; return nt != null && nt !== "" ? ` ${ ut } : ${ nt } ` : null } ) . filter ( Boolean ) . join ( `
` ) } function na ( be ) { return ! Array . isArray ( be ) || ! be . length ? "" : be . map ( ve => { const Ne = String ( ( ve == null ? void 0 : ve . name ) || "" ) . trim ( ) , ut = String ( ( ve == null ? void 0 : ve . value ) || "" ) . trim ( ) ; return ! Ne && ! ut ? null : ` ${ Ne } : ${ ut } ` } ) . filter ( Boolean ) . join ( `
` ) } function js ( be ) { if ( ! Array . isArray ( be ) ) return "" ; const ve = be . find ( Ne => { const ut = String ( ( Ne == null ? void 0 : Ne . name ) || "" ) . toLowerCase ( ) ; return ut . includes ( "pipeline" ) || ut . includes ( "line" ) || ut . includes ( "管段" ) || ut . includes ( "管线" ) } ) ; return String ( ( ve == null ? void 0 : ve . value ) || "" ) . trim ( ) } function dr ( be ) { return ! Array . isArray ( be ) || ! be . length ? "" : be . map ( ve => { const Ne = ( ve == null ? void 0 : ve . group _index ) ? ? "" , ut = ( ve == null ? void 0 : ve . pos _no ) ? ? "" , nt = ( ve == null ? void 0 : ve . length _mm ) ? ? "" , ct = ( ve == null ? void 0 : ve . dn ) ? ? "" ; return ` 组 ${ Ne } | ${ ut } | ${ nt } | ${ ct } ` } ) . join ( `
` ) } async function Qr ( ) { var ct ; const be = H . value . find ( lt => lt . type === "B" ) ; if ( ! be ) return ; const ve = ! ! Y . value , Ne = ve ? "ocr-all-pages-vl-b-ru" : "ocr-all-pages-vl-b" ; H . value . filter ( lt => lt . type === "B" && lt . status === "pending" ) . forEach ( lt => { lt . status = "recognizing" } ) ; const ut = ee . value - 1 , nt = de . value - 1 ; try { const lt = await fetch ( ` ${ n } /api/manual/ ${ Ne } ` , { method : "POST" , headers : { "Content-Type" : "application/json" } , body : JSON . stringify ( { session _id : k . value , x _ratio : be . xr , y _ratio : be . yr , w _ratio : be . wr , h _ratio : be . hr , concurrency : 5 , start _page : ut , end _page : nt } ) } ) ; if ( ! lt . ok ) { const an = await lt . json ( ) . catch ( ( ) => ( { } ) ) ; throw new Error ( an . detail || ` HTTP ${ lt . status } ` ) } const Xt = await lt . json ( ) , tn = ( ct = Xt . usage ) != null && ct . total _tokens ? Math . round ( Xt . usage . total _tokens / ( Xt . total _pages || 1 ) ) : null ; for ( const an of Xt . results ) { let Lt = H . value . find ( bn => bn . type === "B" && bn . page === an . page _index ) ; if ( Lt || ( Lt = { id : s ( ) , type : "B" , page : an . page _index , xr : be . xr , yr : be . yr , wr : be . wr , hr : be . hr , cx : be . cx , cy : be . cy , cw : be . cw , ch : be . ch , status : "pending" , text : "" , boxes : [ ] , tokens : null , parts1 : { } , b _table _rows : [ ] } , H . value . push ( Lt ) ) , ve ) { const bn = an . table _rows || [ ] ; Lt . b _table _rows = Array . isArray ( bn ) ? bn : [ ] , Lt . parts1 = { } , Lt . text = na ( Lt . b _table _rows ) } else { const bn = an . parts1 && typeof an . parts1 == "object" ? an . parts1 : an ; Lt . parts1 = Object . fromEntries ( Object . entries ( bn && typeof bn == "object" ? bn : { } ) . filter ( ( [ mu ] ) => ! [ "page_index" , "parse_error" , "error" , "_validation_failed" ] . includes ( mu ) ) ) , Lt . b _table _rows = [ ] , Lt . text = Gn ( Lt . parts1 ) } Lt . tokens = tn ; const dt = ! ! ( an . parse _error || an . _validation _failed ) ; Lt . status = dt || ! Lt . text ? "error" : "done" } } catch ( lt ) { H . value . filter ( Xt => Xt . type === "B" && Xt . status === "recognizing" ) . forEach ( Xt => { Xt . status = "error" } ) , is . error ( ` 管线号 VL 识别失败: ${ lt . message } ` ) } } function pu ( ) { var be , ve , Ne , ut , nt ; for ( const ct of H . value . filter ( lt => lt . type === "B" && lt . status === "done" ) ) { const lt = ( ( ve = ( be = ct . parts1 ) == null ? void 0 : be . pipeline _id ) == null ? void 0 : ve . trim ( ) ) || js ( ct . b _table _rows ) || ( ( ut = ( Ne = ct . text ) == null ? void 0 : Ne . split ( `
` ) [ 0 ] ) == null ? void 0 : ut . replace ( /^管段号[:: ]\s*/ , "" ) . trim ( ) ) || "" ; if ( ! lt ) continue ; const Xt = H . value . find ( tn => tn . type === "A" && tn . page === ct . page ) ; ( nt = Xt == null ? void 0 : Xt . rows ) != null && nt . length && ( Xt . rows = Xt . rows . map ( tn => ( { ... tn , pipe _no : lt } ) ) ) } } function vu ( ) { var Ne ; if ( ! Y . value ) return 0 ; const be = H . value . filter ( ut => ut . type === "C" && String ( m ( ut ) ) . toUpperCase ( ) === "C3" ) ; if ( ! be . length ) return 0 ; let ve = 0 ; for ( const ut of be ) { const nt = H . value . find ( lt => lt . type === "A" && lt . page === ut . page ) , ct = String ( ( ut == null ? void 0 : ut . text ) || "" ) . trim ( ) ; ct && ( Ne = nt == null ? void 0 : nt . rows ) != null && Ne . length && ( nt . rows = nt . rows . map ( lt => ( { ... lt , pipe _no : ct } ) ) , ve += 1 ) } return ve } async function Oe ( ) { var nt ; const be = [ ] , ve = new Set ; for ( const ct of H . value . filter ( lt => lt . type === "C" ) ) { const lt = m ( ct ) ; ve . has ( lt ) || ( ve . add ( lt ) , be . push ( { code : lt , ref : ct } ) ) } if ( ! be . length ) return ; be . sort ( ( ct , lt ) => { const Xt = Number . parseInt ( String ( ct . code ) . replace ( /^C/i , "" ) , 10 ) , tn = Number . parseInt ( String ( lt . code ) . replace ( /^C/i , "" ) , 10 ) ; return Number . isFinite ( Xt ) && Number . isFinite ( tn ) ? Xt - tn : String ( ct . code ) . localeCompare ( String ( lt . code ) ) } ) , H . value . filter ( ct => ct . type === "C" && ct . status === "pending" ) . forEach ( ct => { ct . status = "recognizing" } ) ; const Ne = ee . value - 1 , ut = de . value - 1 ; try { for ( const ct of be ) { const lt = ct . ref , Xt = await fetch ( ` ${ n } /api/manual/ocr-all-pages-vl-c ` , { method : "POST" , headers : { "Content-Type" : "application/json" } , body : JSON . stringify ( { session _id : k . value , x _ratio : lt . xr , y _ratio : lt . yr , w _ratio : lt . wr , h _ratio : lt . hr , concurrency : 5 , start _page : Ne , end _page : ut } ) } ) ; if ( ! Xt . ok ) { const Lt = await Xt . json ( ) . catch ( ( ) => ( { } ) ) ; throw new Error ( Lt . detail || ` HTTP ${ Xt . status } ` ) } const tn = await Xt . json ( ) , an = ( nt = tn . usage ) != null && nt . total _tokens ? Math . round ( tn . usage . total _tokens / ( tn . total _pages || 1 ) ) : null ; for ( const Lt of tn . results ) { let dt = H . value . find ( bn => bn . type === "C" && bn . page === Lt . page _index && ( bn . region _code || "" ) === ct . code ) ; dt || ( dt = { id : s ( ) , type : "C" , region _code : ct . code , page : Lt . page _index , xr : lt . xr , yr : lt . yr , wr : lt . wr , hr : lt . hr , cx : lt . cx , cy : lt . cy , cw : lt . cw , ch : lt . ch , status : "pending" , text : "" , boxes : [ ] , tokens : null , rows : [ ] , b _table _rows : [ ] } , H . value . push ( dt ) ) , dt . region _code = ct . code , dt . status = "done" , dt . text = Lt . text || "" , dt . tokens = an , dt . boxes = [ ] , dt . _validation _failed = Lt . _validation _failed || ! 1 } } ta ( ) } catch ( ct ) { H . value . filter ( lt => lt . type === "C" && lt . status === "recognizing" ) . forEach ( lt => { lt . status = "error" } ) , is . error ( ` C 区域全页识别失败: ${ ct . message } ` ) } } async function vt ( ) { var ut ; const be = H . value . find ( nt => nt . type === "D" ) ; if ( ! be ) return ; H . value . filter ( nt => nt . type === "D" && nt . status === "pending" ) . forEach ( nt => { nt . status = "recognizing" } ) ; const ve = ee . value - 1 , Ne = de . value - 1 ; try { const nt = await fetch ( ` ${ n } /api/manual/ocr-all-pages-vl-d ` , { method : "POST" , headers : { "Content-Type" : "application/json" } , body : JSON . stringify ( { session _id : k . value , x _ratio : be . xr , y _ratio : be . yr , w _ratio : be . wr , h _ratio : be . hr , concurrency : 5 , start _page : ve , end _page : Ne } ) } ) ; if ( ! nt . ok ) { const Xt = await nt . json ( ) . catch ( ( ) => ( { } ) ) ; throw new Error ( Xt . detail || ` HTTP ${ nt . status } ` ) } const ct = await nt . json ( ) , lt = ( ut = ct . usage ) != null && ut . total _tokens ? Math . round ( ct . usage . total _tokens / ( ct . total _pages || 1 ) ) : null ; for ( const Xt of ct . results ) { let tn = H . value . find ( an => an . type === "D" && an . page === Xt . page _index ) ; tn || ( tn = { id : s ( ) , type : "D" , page : Xt . page _index , xr : be . xr , yr : be . yr , wr : be . wr , hr : be . hr , cx : be . cx , cy : be . cy , cw : be . cw , ch : be . ch , status : "pending" , text : "" , boxes : [ ] , tokens : null , rows : [ ] , b _table _rows : [ ] , d _rows : [ ] } , H . value . push ( tn ) ) , tn . status = "done" , tn . d _rows = Xt . rows || [ ] , tn . text = dr ( tn . d _rows ) , tn . tokens = lt , tn . _validation _failed = Xt . _validation _failed || ! 1 } ta ( ) } catch ( nt ) { H . value . filter ( ct => ct . type === "D" && ct . status === "recognizing" ) . forEach ( ct => { ct . status = "error" } ) , is . error ( ` D 区域全页识别失败: ${ nt . message } ` ) } } async function Rt ( ) { if ( H . value . filter ( ve => ve . status === "pending" ) . length ) { N . value = ! 0 ; try { const ve = qe . value > 0 , Ne = H . value . some ( an => an . type === "B" ) , ut = H . value . some ( an => an . type === "C" ) , nt = H . value . some ( an => an . type === "D" ) ; ve || ( V . value = ! 1 , z . value = 0 , G . value = 0 ) ; const ct = [ ] ; ve && ct . push ( Mn ( ) ) , Ne && ct . push ( Qr ( ) ) , ut && ct . push ( Oe ( ) ) , nt && ct . push ( vt ( ) ) , ct . length && await Promise . all ( ct ) , ve && Ne && pu ( ) , vu ( ) ; const lt = _e . value , Xt = Ke . value , tn = H . value . filter ( an => an . statu