chatlab-cli 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chat-command-IHRNO7J4.mjs → chat-command-XPY3WURC.mjs} +9 -9
- package/dist/{chunk-KWJ5FZ74.mjs → chunk-AQPDZAWB.mjs} +385 -248
- package/dist/chunk-AQPDZAWB.mjs.map +1 -0
- package/dist/{chunk-RHA534GU.mjs → chunk-BQ3QN4QT.mjs} +3 -3
- package/dist/{chunk-NHTOSDYI.mjs → chunk-DGF3S3TZ.mjs} +2 -2
- package/dist/{chunk-4V6UP7EW.mjs → chunk-IGEHMLHM.mjs} +2 -2
- package/dist/{chunk-NSWFHMBZ.mjs → chunk-IGK6UMN2.mjs} +11 -11
- package/dist/{chunk-U4F6BNGZ.mjs → chunk-ISRLGLUL.mjs} +2 -2
- package/dist/{chunk-HGV4MUIW.mjs → chunk-JCSPDTZL.mjs} +15 -62
- package/dist/chunk-JCSPDTZL.mjs.map +1 -0
- package/dist/{chunk-S7YPBKQ3.mjs → chunk-JTOHAMIW.mjs} +2 -2
- package/dist/{chunk-C3B7RXES.mjs → chunk-OLE2USEN.mjs} +626 -318
- package/dist/chunk-OLE2USEN.mjs.map +1 -0
- package/dist/{chunk-YAQLYL52.mjs → chunk-QZCNVAH6.mjs} +2 -2
- package/dist/{chunk-YAQLYL52.mjs.map → chunk-QZCNVAH6.mjs.map} +1 -1
- package/dist/{chunk-ZERQIKI4.mjs → chunk-S5NCEESV.mjs} +3 -3
- package/dist/{chunk-ZTMZ7S7T.mjs → chunk-UO2XVFY6.mjs} +31 -20
- package/dist/chunk-UO2XVFY6.mjs.map +1 -0
- package/dist/cli.mjs +9 -9
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +2 -2
- package/dist/{http-Y2WC2UK4.mjs → http-HV6XWU6X.mjs} +12 -12
- package/dist/{import-4HF2UNQI.mjs → import-DP2XLZ2H.mjs} +8 -8
- package/dist/index.mjs +12 -12
- package/dist/{mcp-DJPDRFTW.mjs → mcp-QDPFBPGW.mjs} +9 -9
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-R7MZLKXQ.mjs → src-B3A2QHP5.mjs} +9 -7
- package/dist/{stream-import-DX57ANUL.mjs → stream-import-KEGNP3QK.mjs} +8 -8
- package/dist/{worker-runtime-QMN7OKOZ.mjs → worker-runtime-MDYKX3BW.mjs} +6 -6
- package/dist-cli-web/assets/{ActionToolsPanel.vue_vue_type_script_setup_true_lang-hwRVh048.js → ActionToolsPanel.vue_vue_type_script_setup_true_lang-JxPR2O6b.js} +5 -5
- package/dist-cli-web/assets/{BufferResource-DwfMBlAa.js → BufferResource--dSbJb0k.js} +1 -1
- package/dist-cli-web/assets/{CanvasRenderer-q312LRsp.js → CanvasRenderer-Cm_dmJXZ.js} +1 -1
- package/dist-cli-web/assets/{DataDirCleanupNotice--ee1dY0d.js → DataDirCleanupNotice-B0s5txX3.js} +1 -1
- package/dist-cli-web/assets/{EChartWordcloud-BaMgUl0Y.js → EChartWordcloud-CwMVJLBO.js} +1 -1
- package/dist-cli-web/assets/{Filter-BOb5cLBx.js → Filter-BjYScRpK.js} +1 -1
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-BshQybD_.js +1 -0
- package/dist-cli-web/assets/{MessageExportModal-CFbovWh1.js → MessageExportModal-DAJW2mFj.js} +1 -1
- package/dist-cli-web/assets/{PageHeader-B3-W9mvh.js → PageHeader-BKAjCuqs.js} +1 -1
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-GEpsKHxV.js → RelationshipGalaxyCanvas-mlZs7k4L.js} +14 -14
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-BluPHjCR.css → RelationshipGalaxyThreeCanvas-CeYJABxI.css} +1 -1
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-DHOU66Gj.js → RelationshipGalaxyThreeCanvas-DgMG3jdU.js} +14 -14
- package/dist-cli-web/assets/{RenderTargetSystem-PEnnW2yb.js → RenderTargetSystem-D00Ex44y.js} +1 -1
- package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-sNw3hP4c.js → ThemeCard.vue_vue_type_script_setup_true_lang-Dsb6lzs-.js} +1 -1
- package/dist-cli-web/assets/{TimeSelect.vue_vue_type_script_setup_true_lang-BtUvMehe.js → TimeSelect.vue_vue_type_script_setup_true_lang-BfR3tlkz.js} +1 -1
- package/dist-cli-web/assets/{WebGLRenderer-BjP_1do7.js → WebGLRenderer-CTTusm2n.js} +1 -1
- package/dist-cli-web/assets/{WebGPURenderer-ldVv92u7.js → WebGPURenderer-pyv3EXor.js} +1 -1
- package/dist-cli-web/assets/{annual-summary-time-range-BHClzNvd.js → annual-summary-time-range-C_d1oZrj.js} +1 -1
- package/dist-cli-web/assets/{base-DBJ95yXf.js → base-D91aVUwM.js} +1 -1
- package/dist-cli-web/assets/{browserAll-CPoMOLKh.js → browserAll-C9fW936Y.js} +1 -1
- package/dist-cli-web/assets/{cli-web-B5VYO-Dh.js → cli-web-C7uGKz_E.js} +1 -1
- package/dist-cli-web/assets/{dateFormat-Cf2xuaE-.js → dateFormat-rY43adcv.js} +1 -1
- package/dist-cli-web/assets/{fetch-CtyVktRW.js → fetch-C6po4XYB.js} +1 -1
- package/dist-cli-web/assets/{fetch-J67jyI2k.js → fetch-CNy9OQ2g.js} +1 -1
- package/dist-cli-web/assets/{fetch-BuWxo6oK.js → fetch-CS3T-v-1.js} +1 -1
- package/dist-cli-web/assets/{fetch-C0HHT1Yn.js → fetch-CbnX5VoM.js} +1 -1
- package/dist-cli-web/assets/fetch-CrSz5KJy.js +1 -0
- package/dist-cli-web/assets/{fetch-CXIdj2-_.js → fetch-DG3AeEjW.js} +1 -1
- package/dist-cli-web/assets/{fetch-B1km2u3N.js → fetch-DYNgtIcU.js} +1 -1
- package/dist-cli-web/assets/{fetch-DGi_9my2.js → fetch-DZPC3D8R.js} +1 -1
- package/dist-cli-web/assets/{fetch-BFDKzf1P.js → fetch-Kk2knkEo.js} +1 -1
- package/dist-cli-web/assets/{fetch-Dr41uuXL.js → fetch-PLrI3V67.js} +1 -1
- package/dist-cli-web/assets/{index-BGiTw98l.js → index-2-OaYdzt.js} +1 -1
- package/dist-cli-web/assets/index-2S80bo1s.js +2 -0
- package/dist-cli-web/assets/index-3YO6RI5e.js +2 -0
- package/dist-cli-web/assets/index-BKo68Iu5.js +1 -0
- package/dist-cli-web/assets/{index-Bf3gFaid.js → index-BrkDgcJ6.js} +1 -1
- package/dist-cli-web/assets/{index-5UdyJtVU.js → index-CGI3Y8pq.js} +1 -1
- package/dist-cli-web/assets/index-CW9H_fBd.js +53 -0
- package/dist-cli-web/assets/{index-Ba21yU86.js → index-DA3Q0TGT.js} +1 -1
- package/dist-cli-web/assets/{index-B7R74Yp7.js → index-DFHYr_-u.js} +1 -1
- package/dist-cli-web/assets/index-DmwA85vG.js +173 -0
- package/dist-cli-web/assets/index-DrjoMv9s.css +1 -0
- package/dist-cli-web/assets/{index-DzQT-qXF.js → index-DsdMsKYT.js} +1 -1
- package/dist-cli-web/assets/{index-DtlTo3nt.js → index-JYfjMRb-.js} +1 -1
- package/dist-cli-web/assets/index-Jhwca9kg.css +1 -0
- package/dist-cli-web/assets/index-ZTgfCZvY.js +64 -0
- package/dist-cli-web/assets/index-vtF05fh7.css +1 -0
- package/dist-cli-web/assets/{people-page-header-BvQy1GQj.js → people-page-header-D-LWaEqn.js} +1 -1
- package/dist-cli-web/assets/{webworkerAll-DgKQKbNn.js → webworkerAll-CPOVECup.js} +1 -1
- package/dist-cli-web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-C3B7RXES.mjs.map +0 -1
- package/dist/chunk-HGV4MUIW.mjs.map +0 -1
- package/dist/chunk-KWJ5FZ74.mjs.map +0 -1
- package/dist/chunk-ZTMZ7S7T.mjs.map +0 -1
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-DK2z0Jrh.js +0 -1
- package/dist-cli-web/assets/fetch-80O3EH4a.js +0 -1
- package/dist-cli-web/assets/index-7jm3YI9u.js +0 -53
- package/dist-cli-web/assets/index-ByQSR8Bj.js +0 -2
- package/dist-cli-web/assets/index-CPZYydbc.js +0 -2
- package/dist-cli-web/assets/index-D8Q3U-6e.js +0 -1
- package/dist-cli-web/assets/index-DGtDxRCd.js +0 -173
- package/dist-cli-web/assets/index-DTxnpQiv.css +0 -1
- package/dist-cli-web/assets/index-gpTDI3sq.js +0 -64
- package/dist-cli-web/assets/index-lwhCMqhd.css +0 -1
- package/dist-cli-web/assets/index-qsbWn8VP.css +0 -1
- /package/dist/{chat-command-IHRNO7J4.mjs.map → chat-command-XPY3WURC.mjs.map} +0 -0
- /package/dist/{chunk-RHA534GU.mjs.map → chunk-BQ3QN4QT.mjs.map} +0 -0
- /package/dist/{chunk-NHTOSDYI.mjs.map → chunk-DGF3S3TZ.mjs.map} +0 -0
- /package/dist/{chunk-4V6UP7EW.mjs.map → chunk-IGEHMLHM.mjs.map} +0 -0
- /package/dist/{chunk-NSWFHMBZ.mjs.map → chunk-IGK6UMN2.mjs.map} +0 -0
- /package/dist/{chunk-U4F6BNGZ.mjs.map → chunk-ISRLGLUL.mjs.map} +0 -0
- /package/dist/{chunk-S7YPBKQ3.mjs.map → chunk-JTOHAMIW.mjs.map} +0 -0
- /package/dist/{chunk-ZERQIKI4.mjs.map → chunk-S5NCEESV.mjs.map} +0 -0
- /package/dist/{http-Y2WC2UK4.mjs.map → http-HV6XWU6X.mjs.map} +0 -0
- /package/dist/{import-4HF2UNQI.mjs.map → import-DP2XLZ2H.mjs.map} +0 -0
- /package/dist/{mcp-DJPDRFTW.mjs.map → mcp-QDPFBPGW.mjs.map} +0 -0
- /package/dist/{src-R7MZLKXQ.mjs.map → src-B3A2QHP5.mjs.map} +0 -0
- /package/dist/{stream-import-DX57ANUL.mjs.map → stream-import-KEGNP3QK.mjs.map} +0 -0
- /package/dist/{worker-runtime-QMN7OKOZ.mjs.map → worker-runtime-MDYKX3BW.mjs.map} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import{b1 as Ut,a as M,G as t,b2 as ct,d as ue,b3 as Dt,b4 as Ct,b5 as Ns,b6 as xa,b7 as wt,w as fe,o as r,E as U,F as B,r as ye,b8 as Qa,h as R,an as De,ad as He,b9 as Et,ba as Ja,b as z,bb as jt,bc as Us,bd as Ws,be as Hs,bf as Xa,g as p,ar as Ge,al as Oe,bg as Ks,C as Re,O as tt,bh as ba,bi as xt,b0 as ze,bj as Je,bk as Ys,bl as Gs,bm as Qs,s as Js,bn as Fa,a7 as Qt,bo as Xs,bp as Zs,bq as Za,br as en,c as m,Z as ie,$ as pe,V as es,P as et,bs as tn,S as ts,bt as an,bu as sn,bv as nn,bw as on,bx as ln,by as rn,bz as un,bA as as,bB as cn,bC as dn,bD as ht,bE as mn,bF as gn,bG as pn,I as le,t as d,bH as zt,bI as hn,bJ as fn,bK as vn,bL as lt,bM as yn,bN as We,bO as ss,e as Ee,av as Jt,M as Ke,f as a,n as X,_ as _e,A as we,H as Ue,J as Xe,a3 as nt,aW as ka,B as bt,ap as ut,ak as _a,K as wa,D as ns,bP as $a,bQ as os,a1 as Qe,a2 as ft,ay as ls,U as vt,Y as dt,a8 as Ca,a0 as Wt,bR as xn,bS as rs,bT as is,bU as bn,bV as Sa,bW as us,bX as Ra,bY as At,bZ as Ht,b_ as kn,b$ as _n,aj as Bt,c0 as qt,af as Ia,c1 as Ta,c2 as Va,c3 as Tt,a5 as cs,c4 as ds,ae as $t,c5 as wn,c6 as $n,T as pt,aX as Cn,a6 as Ye,aI as ms,c7 as Sn,aM as yt,az as St,c8 as In,c9 as It,aq as Xt,ca as Tn,cb as Ft,cc as Mn,cd as An,ce as Vt,aB as Ma,aA as Zt,cf as zn,ao as gt,au as gs,cg as qn,aY as ps,j as Oa,m as Ln,a4 as Dn,aC as En,ch as Bn,ci as Fn,ax as Rn,R as Vn,as as On,z as Pn,cj as jn,ck as Nn,Q as Un,cl as Wn,cm as Hn,aF as Kn,aH as Yn,aG as Pa}from"./index-7jm3YI9u.js";import{a as Lt,M as Aa,_ as Gn}from"./index-Bf3gFaid.js";import{_ as mt}from"./ThemeCard.vue_vue_type_script_setup_true_lang-sNw3hP4c.js";import{C as Qn,a as ea,_ as rt,g as ma}from"./base-DBJ95yXf.js";import{f as Jn,d as ja}from"./dateFormat-Cf2xuaE-.js";import{u as ta,p as hs,z as fs,j as za,v as vs,i as aa,k as sa,A as Xn,m as Zn,n as eo,t as to}from"./vendor-echarts-B-i_56Av.js";import"./vendor-echarts-wordcloud-Ca8n6qS6.js";import{_ as Kt}from"./LoadingState.vue_vue_type_script_setup_true_lang-DK2z0Jrh.js";import{_ as ao}from"./TimeSelect.vue_vue_type_script_setup_true_lang-BtUvMehe.js";import{P as so}from"./PageHeader-B3-W9mvh.js";function Nt(i,l,e){const n=i.findIndex(c=>Ut(c,l)),s=i.findIndex(c=>Ut(c,e));if(n===-1||s===-1)return[];const[u,o]=[n,s].sort((c,g)=>c-g);return i.slice(u,o+1)}function ys(i){const l=M(()=>t(i)),e=M(()=>new Intl.Collator("en",{usage:"search",...l.value}));return{startsWith:(o,c)=>c.length===0?!0:(o=o.normalize("NFC"),c=c.normalize("NFC"),e.value.compare(o.slice(0,c.length),c)===0),endsWith:(o,c)=>c.length===0?!0:(o=o.normalize("NFC"),c=c.normalize("NFC"),e.value.compare(o.slice(-c.length),c)===0),contains:(o,c)=>{if(c.length===0)return!0;o=o.normalize("NFC"),c=c.normalize("NFC");let g=0;const h=c.length;for(;g+h<=o.length;g++){const f=o.slice(g,g+h);if(e.value.compare(c,f)===0)return!0}return!1}}}function Na(i){return i?.querySelector("[data-state=checked]")}function no(i,l,e){return i===void 0?!1:Array.isArray(i)?i.some(n=>it(n,l,e)):it(i,l,e)}function it(i,l,e){return i===void 0||l===void 0?!1:typeof i=="string"?i===l:typeof e=="function"?e(i,l):typeof e=="string"?i?.[e]===l?.[e]:Ut(i,l)}const[Rt,oo]=ct("ListboxRoot");var lo=ue({__name:"ListboxRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:"vertical"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:"toggle"},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(i,{expose:l,emit:e}){const n=i,s=e,{multiple:u,highlightOnHover:o,orientation:c,disabled:g,selectionBehavior:h,dir:f}=Dt(n),{getItems:b}=Ct({isProvider:!0}),{handleTypeaheadSearch:y}=Ns(),{primitiveElement:k,currentElement:x}=Et(),_=Hs(),C=xa(f),$=Ja(x),S=z(),T=z(!1),v=z(!0),w=wt(n,"modelValue",s,{defaultValue:n.defaultValue??(u.value?[]:void 0),passive:n.modelValue===void 0,deep:!0});function E(oe){if(T.value=!0,n.multiple){const Q=Array.isArray(w.value)?[...w.value]:[],J=Q.findIndex(ge=>it(ge,oe,n.by));n.selectionBehavior==="toggle"?(J===-1?Q.push(oe):Q.splice(J,1),w.value=Q):(w.value=[oe],S.value=oe)}else n.selectionBehavior==="toggle"&&it(w.value,oe,n.by)?w.value=void 0:w.value=oe;setTimeout(()=>{T.value=!1},1)}const F=z(null),D=z(null),A=z(!1),I=z(!1),q=jt(),Y=jt(),G=jt();function Z(){return b().map(oe=>oe.ref).filter(oe=>oe.dataset.disabled!=="")}function ce(oe,Q=!0,J){if(!oe)return;F.value=oe,(J??v.value)&&F.value.focus(),Q&&F.value.scrollIntoView({block:"nearest"});const ge=b().find(ke=>ke.ref===oe);s("highlight",ge)}function ne(oe){if(A.value)G.trigger(oe);else{const Q=b().find(J=>it(J.value,oe,n.by));Q&&(F.value=Q.ref,ce(Q.ref))}}function H(oe){F.value&&F.value.isConnected&&(oe.preventDefault(),oe.stopPropagation(),I.value||F.value.click())}function W(oe){if(v.value){if(T.value=!0,A.value)Y.trigger(oe);else{const Q=oe.altKey||oe.ctrlKey||oe.metaKey;if(Q&&oe.key==="a"&&u.value){const J=b(),ge=J.map($e=>$e.value);w.value=[...ge],oe.preventDefault();const ke=J.at(-1);ke&&ce(ke.ref)}else if(!Q){const J=y(oe.key,b());J&&ce(J)}}setTimeout(()=>{T.value=!1},1)}}function re(){I.value=!0}function ve(){De(()=>{I.value=!1})}function he(){De(()=>{const oe=new KeyboardEvent("keydown",{key:"PageUp"});j(oe)})}function ee(oe){const Q=F.value;Q?.isConnected&&(D.value=Q),F.value=null,s("leave",oe)}function te(oe){const Q=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(oe.currentTarget?.dispatchEvent(Q),s("entryFocus",Q),!Q.defaultPrevented)if(D.value)ce(D.value);else{const J=Z()?.[0];ce(J)}}function j(oe){const Q=Us(oe,c.value,C.value);if(!Q)return;let J=Z();if(F.value){if(Q==="last")J.reverse();else if(Q==="prev"||Q==="next"){Q==="prev"&&J.reverse();const ge=J.indexOf(F.value);J=J.slice(ge+1)}de(oe,J[0])}if(J.length){const ge=!F.value&&Q==="prev"?J.length-1:0;ce(J[ge])}if(A.value)return Y.trigger(oe)}function de(oe,Q){if(!(A.value||n.selectionBehavior!=="replace"||!u.value||!Array.isArray(w.value)||(oe.altKey||oe.ctrlKey||oe.metaKey)&&!oe.shiftKey)&&oe.shiftKey){const ge=b().filter(Le=>Le.ref.dataset.disabled!=="");let ke=ge.find(Le=>Le.ref===Q)?.value;if(oe.key===_.END?ke=ge.at(-1)?.value:oe.key===_.HOME&&(ke=ge[0]?.value),!ke||!S.value)return;const $e=Nt(ge.map(Le=>Le.value),S.value,ke);w.value=$e}}async function be(oe,Q=!0){if(Ws)if(await De(),A.value)q.trigger({event:oe,scroll:Q});else{const J=Z(),ge=J.find($e=>$e.dataset.state==="checked"),ke=Q?void 0:!1;ge?ce(ge,Q,ke):J.length&&ce(J[0],Q,ke)}}let xe=!1;return fe(w,()=>{if(!T.value){const oe=xe;xe=!0,De(()=>{be(void 0,oe)})}},{immediate:!0,deep:!0}),l({highlightedElement:F,highlightItem:ne,highlightFirstItem:he,highlightSelected:be,getItems:b}),oo({modelValue:w,onValueChange:E,multiple:u,orientation:c,dir:C,disabled:g,highlightOnHover:o,highlightedElement:F,isVirtual:A,virtualFocusHook:q,virtualKeydownHook:Y,virtualHighlightHook:G,by:n.by,firstValue:S,selectionBehavior:h,focusable:v,onLeave:ee,onEnter:te,changeHighlight:ce,onKeydownEnter:H,onKeydownNavigation:j,onKeydownTypeAhead:W,onCompositionStart:re,onCompositionEnd:ve,highlightFirstItem:he}),(oe,Q)=>(r(),U(t(He),{ref_key:"primitiveElement",ref:k,as:oe.as,"as-child":oe.asChild,dir:t(C),"data-disabled":t(g)?"":void 0,onPointerleave:ee,onFocusout:Q[0]||(Q[0]=async J=>{const ge=J.relatedTarget||J.target;await De(),F.value&&t(x)&&!t(x).contains(ge)&&ee(J)})},{default:B(()=>[ye(oe.$slots,"default",{modelValue:t(w)}),t($)&&oe.name?(r(),U(t(Qa),{key:0,name:oe.name,value:t(w),disabled:t(g),required:oe.required},null,8,["name","value","disabled","required"])):R("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),ro=lo,io=ue({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const{CollectionSlot:l}=Ct(),e=Rt(),n=Xa(!1,10);return(s,u)=>(r(),U(t(l),null,{default:B(()=>[p(t(He),{role:"listbox",as:s.as,"as-child":s.asChild,tabindex:t(e).focusable.value?t(e).highlightedElement.value?"-1":"0":"-1","aria-orientation":t(e).orientation.value,"aria-multiselectable":!!t(e).multiple.value,"data-orientation":t(e).orientation.value,onMousedown:u[0]||(u[0]=Oe(o=>n.value=!0,["left"])),onFocus:u[1]||(u[1]=o=>{t(n)||t(e).onEnter(o)}),onKeydown:[u[2]||(u[2]=Ge(o=>{t(e).orientation.value==="vertical"&&(o.key==="ArrowLeft"||o.key==="ArrowRight")||t(e).orientation.value==="horizontal"&&(o.key==="ArrowUp"||o.key==="ArrowDown")||(o.preventDefault(),t(e).focusable.value&&t(e).onKeydownNavigation(o))},["down","up","left","right","home","end"])),Ge(t(e).onKeydownEnter,["enter"]),t(e).onKeydownTypeAhead]},{default:B(()=>[ye(s.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),uo=io,co=ue({__name:"ListboxFilter",props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,s=wt(e,"modelValue",l,{defaultValue:"",passive:e.modelValue===void 0}),u=Rt(),{primitiveElement:o,currentElement:c}=Et(),g=M(()=>e.disabled||u.disabled.value||!1),h=z();Ks(()=>h.value=u.highlightedElement.value?.id),Re(()=>{u.focusable.value=!1,setTimeout(()=>{e.autoFocus&&c.value?.focus()},1)}),tt(()=>{u.focusable.value=!0});const{isComposing:f,handleCompositionStart:b,handleCompositionEnd:y}=ba($=>{s.value=$.target.value,u.onCompositionEnd(),u.highlightFirstItem()});function k(){u.onCompositionStart(),b()}function x($){f.value||(s.value=$.target.value,u.highlightFirstItem())}function _($){f.value||($.preventDefault(),u.onKeydownNavigation($))}function C($){f.value||u.onKeydownEnter($)}return($,S)=>(r(),U(t(He),{ref_key:"primitiveElement",ref:o,as:$.as,"as-child":$.asChild,value:t(s),disabled:g.value?"":void 0,"data-disabled":g.value?"":void 0,"aria-disabled":g.value??void 0,"aria-activedescendant":h.value,type:"text",onKeydown:[Ge(_,["down","up","home","end"]),Ge(C,["enter"])],onInput:x,onCompositionstart:k,onCompositionend:t(y)},{default:B(()=>[ye($.$slots,"default",{modelValue:t(s)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onCompositionend"]))}}),mo=co;const[Pw,go]=ct("ListboxGroup");var po=ue({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,e=xt(void 0,"reka-listbox-group");return go({id:e}),(n,s)=>(r(),U(t(He),ze({role:"group"},l,{"aria-labelledby":t(e)}),{default:B(()=>[ye(n.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),ho=po;const fo="listbox.select",[vo,yo]=ct("ListboxItem");var xo=ue({__name:"ListboxItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},emits:["select"],setup(i,{emit:l}){const e=i,n=l,s=xt(void 0,"reka-listbox-item"),{CollectionItem:u}=Ct(),{forwardRef:o,currentElement:c}=Je(),g=Rt(),h=M(()=>c.value!=null&&c.value===g.highlightedElement.value),f=M(()=>no(g.modelValue.value,e.value,g.by)),b=M(()=>g.disabled.value||e.disabled);async function y(x){n("select",x),!x?.defaultPrevented&&!b.value&&x&&(g.onValueChange(e.value),g.changeHighlight(c.value))}function k(x){const _={originalEvent:x,value:e.value};Gs(fo,y,_)}return yo({isSelected:f}),(x,_)=>(r(),U(t(u),{value:x.value},{default:B(()=>[Ys([h.value,f.value,b.value,t(g).focusable.value],()=>p(t(He),ze({id:t(s)},x.$attrs,{ref:t(o),role:"option",tabindex:t(g).focusable.value?h.value?"0":"-1":-1,"aria-selected":f.value,as:x.as,"as-child":x.asChild,disabled:b.value?"":void 0,"data-disabled":b.value?"":void 0,"data-highlighted":h.value?"":void 0,"data-state":f.value?"checked":"unchecked",onClick:k,onKeydown:Ge(Oe(k,["prevent"]),["space"]),onPointermove:_[0]||(_[0]=()=>{t(g).highlightedElement.value!==t(c)&&t(g).highlightOnHover.value&&t(g).changeHighlight(t(c),!1,!1)})}),{default:B(()=>[ye(x.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),_,1)]),_:3},8,["value"]))}}),bo=xo,ko=ue({__name:"ListboxItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const l=i;Je();const e=vo();return(n,s)=>t(e).isSelected.value?(r(),U(t(He),ze({key:0,"aria-hidden":"true"},l),{default:B(()=>[ye(n.$slots,"default")]),_:3},16)):R("v-if",!0)}}),_o=ko;function wo(i,l,e){const n=new Array(i);return new Proxy(n,{get(s,u,o){if(typeof u=="string"){const c=u.charCodeAt(0);if(c>=48&&c<=57){const g=+u;if(Number.isInteger(g)&&g>=0&&g<i){let h=s[g];if(!h){const f=l[g*2];h=s[g]={index:g,key:e(g),start:f,size:l[g*2+1],end:f+l[g*2+1],lane:0}}return h}}if(u==="length")return i}return Reflect.get(s,u,o)}})}function _t(i,l,e){let n=e.initialDeps??[],s,u=!0;function o(){const c=i();return(c.length!==n.length||c.some((h,f)=>n[f]!==h))&&(n=c,s=l(...c),e?.onChange&&!(u&&e.skipInitialOnChange)&&e.onChange(s),u=!1),s}return o.updateDeps=c=>{n=c},o}function Ua(i,l){if(i===void 0)throw new Error("Unexpected undefined");return i}const $o=(i,l)=>Math.abs(i-l)<1.01,Co=(i,l,e)=>{let n;return function(...s){i.clearTimeout(n),n=i.setTimeout(()=>l.apply(this,s),e)}};let Mt;const la=()=>{if(Mt!==void 0)return Mt;if(typeof navigator>"u")return Mt=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Mt=!0;const i=navigator.maxTouchPoints;return Mt=navigator.platform==="MacIntel"&&i!==void 0&&i>0},Wa=i=>{const{offsetWidth:l,offsetHeight:e}=i;return{width:l,height:e}},So=i=>i,Io=i=>{const l=Math.max(i.startIndex-i.overscan,0),n=Math.min(i.endIndex+i.overscan,i.count-1)-l+1,s=new Array(n);for(let u=0;u<n;u++)s[u]=l+u;return s},To=(i,l)=>{const e=i.scrollElement;if(!e)return;const n=i.targetWindow;if(!n)return;const s=o=>{const{width:c,height:g}=o;l({width:Math.round(c),height:Math.round(g)})};if(s(Wa(e)),!n.ResizeObserver)return()=>{};const u=new n.ResizeObserver(o=>{const c=()=>{const g=o[0];if(g?.borderBoxSize){const h=g.borderBoxSize[0];if(h){s({width:h.inlineSize,height:h.blockSize});return}}s(Wa(e))};i.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(c):c()});return u.observe(e,{box:"border-box"}),()=>{u.unobserve(e)}},Yt={passive:!0},Mo=typeof window>"u"?!0:"onscrollend"in window,Ao=(i,l,e)=>{const n=i.scrollElement;if(!n)return;const s=i.targetWindow;if(!s)return;const u=i.options.useScrollendEvent&&Mo;let o=0;const c=u?null:Co(s,()=>l(o,!1),i.options.isScrollingResetDelay),g=b=>()=>{o=e(n),c?.(),l(o,b)},h=g(!0),f=g(!1);return n.addEventListener("scroll",h,Yt),u&&n.addEventListener("scrollend",f,Yt),()=>{n.removeEventListener("scroll",h),u&&n.removeEventListener("scrollend",f)}},zo=(i,l)=>Ao(i,l,e=>{const{horizontal:n,isRtl:s}=i.options;return n?e.scrollLeft*(s&&-1||1):e.scrollTop}),qo=(i,l,e)=>{if(e.options.useCachedMeasurements){const n=e.indexFromElement(i),s=e.options.getItemKey(n);return e.itemSizeCache.get(s)??e.options.estimateSize(n)}if(l?.borderBoxSize){const n=l.borderBoxSize[0];if(n)return Math.round(n[e.options.horizontal?"inlineSize":"blockSize"])}if(!l){const n=e.indexFromElement(i),s=e.options.getItemKey(n),u=e.itemSizeCache.get(s);if(u!==void 0)return u}return i[e.options.horizontal?"offsetWidth":"offsetHeight"]},Lo=(i,{adjustments:l=0,behavior:e},n)=>{var s,u;(u=(s=n.scrollElement)==null?void 0:s.scrollTo)==null||u.call(s,{[n.options.horizontal?"left":"top"]:i+l,behavior:e})},Do=Lo;class Eo{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e,n,s;return((s=(n=(e=this.targetWindow)==null?void 0:e.performance)==null?void 0:n.now)==null?void 0:s.call(n))??Date.now()},this.observer=(()=>{let e=null;const n=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(s=>{s.forEach(u=>{const o=()=>{const c=u.target,g=this.indexFromElement(c);if(!c.isConnected){this.observer.unobserve(c);for(const[h,f]of this.elementsCache)if(f===c){this.elementsCache.delete(h);break}return}this.shouldMeasureDuringScroll(g)&&this.resizeItem(g,this.options.measureElement(c,u,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=n())==null||s.disconnect(),e=null},observe:s=>{var u;return(u=n())==null?void 0:u.observe(s,{box:"border-box"})},unobserve:s=>{var u;return(u=n())==null?void 0:u.unobserve(s)}}})(),this.range=null,this.setOptions=e=>{var n,s;const u={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:So,rangeExtractor:Io,onChange:()=>{},measureElement:qo,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const y in e){const k=e[y];k!==void 0&&(u[y]=k)}const o=this.options;let c=null,g=null,h=!1;if(o!==void 0&&o.enabled&&u.enabled&&u.anchorTo==="end"&&this.scrollElement!==null){const y=o.count,k=u.count,x=this.getMeasurements(),_=y>0?((n=x[0])==null?void 0:n.key)??o.getItemKey(0):null,C=y>0?((s=x[y-1])==null?void 0:s.key)??o.getItemKey(y-1):null;if(k!==y||y>0&&k>0&&(u.getItemKey(0)!==_||u.getItemKey(k-1)!==C)){h=!0;const T=y>0?this.getVirtualItemForOffset(this.getScrollOffset())??x[0]:null;T&&(c=[T.key,this.getScrollOffset()-T.start]);const v=u.followOnAppend===!0?"auto":u.followOnAppend||null;v&&k>y&&this.isAtEnd(o.scrollEndThreshold)&&(y===0||u.getItemKey(k-1)!==C)&&(g=v)}}this.options=u,h&&(this.pendingMin=0,this.itemSizeCacheVersion++);let f=!1,b=0;if(c&&this.scrollOffset!==null){const[y,k]=c,x=this.getMeasurements(),{count:_,getItemKey:C}=this.options;let $=0;for(;$<_&&C($)!==y;)$++;if($<_){const S=x[$];if(S){const T=S.start+k;T!==this.scrollOffset&&(b=T-this.scrollOffset,this.scrollOffset=T,f=!0)}}}(f||g)&&(this.pendingScrollAnchor=[f?c[0]:null,f?c[1]:0,g,b])},this.notify=e=>{var n,s;(s=(n=this.options).onChange)==null||s.call(n,this,e)},this.maybeNotify=_t(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const n=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==n){if(this.cleanup(),!n){this.maybeNotify();return}if(this.scrollElement=n,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(u=>{this.observer.observe(u)}),this.unsubs.push(this.options.observeElementRect(this,u=>{this.scrollRect=u,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(u,o)=>{if(o&&this._intendedScrollOffset===null&&u===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(u-this._intendedScrollOffset)<1.5&&(u=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const c=this.getScrollOffset();this.scrollDirection=o?c===u?this.scrollDirection:c<u?"forward":"backward":null,this.scrollOffset=u,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const u=this.scrollElement,o=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},c=()=>{this._iosTouching=!1,!(!la()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};u.addEventListener("touchstart",o,Yt),u.addEventListener("touchend",c,Yt),this.unsubs.push(()=>{u.removeEventListener("touchstart",o),u.removeEventListener("touchend",c),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[u,o,c,g]=s;u!==null&&!c&&(la()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?g!==0&&(this._iosDeferredAdjustment+=g):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),c&&this.scrollToEnd({behavior:c})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const e=this.getScrollOffset(),n=this.getMaxScrollOffset();if(e<0||e>n)return;const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=_t(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,n,s,u,o,c,g,h)=>(this.prevLanes!==void 0&&this.prevLanes!==c&&(this.lanesChangedFlag=!0),this.prevLanes=c,this.pendingMin=null,{count:e,paddingStart:n,scrollMargin:s,getItemKey:u,enabled:o,lanes:c,laneAssignmentMode:g,gap:h}),{key:!1}),this.getMeasurements=_t(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:n,scrollMargin:s,getItemKey:u,enabled:o,lanes:c,laneAssignmentMode:g,gap:h},f)=>{const b=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const $ of this.laneAssignments.keys())$>=e&&this.laneAssignments.delete($);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach($=>{this.itemSizeCache.set($.key,$.size)}));const y=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),c===1){const $=e*2;let S=this._flatMeasurements;if(!S||S.length<$){const w=new Float64Array($);S&&y>0&&w.set(S.subarray(0,y*2)),S=w,this._flatMeasurements=S}let T;if(y===0)T=n+s;else{const w=y-1;T=S[w*2]+S[w*2+1]+h}for(let w=y;w<e;w++){const E=u(w),F=b.get(E),D=typeof F=="number"?F:this.options.estimateSize(w);S[w*2]=T,S[w*2+1]=D,T+=D+h}const v=wo(e,S,u);return this.measurementsCache=v,v}const k=this.measurementsCache.slice(0,y),x=new Array(c).fill(void 0),_=new Float64Array(c);let C=0;for(let $=0;$<y;$++){const S=k[$];S&&(x[S.lane]===void 0&&C++,x[S.lane]=$,_[S.lane]=S.end)}for(let $=y;$<e;$++){const S=u($),T=this.laneAssignments.get($);let v,w;const E=g==="estimate"||b.has(S);if(T!==void 0&&this.options.lanes>1){v=T;const I=x[v],q=I!==void 0?k[I]:void 0;w=q?q.end+h:n+s}else if(C===c){let I=0,q=_[0],Y=x[0];for(let G=1;G<c;G++){const Z=_[G];(Z<q||Z===q&&x[G]<Y)&&(I=G,q=Z,Y=x[G])}v=I,w=q+h,E&&this.laneAssignments.set($,v)}else v=$%this.options.lanes,w=n+s,E&&this.laneAssignments.set($,v);const F=b.get(S),D=typeof F=="number"?F:this.options.estimateSize($),A=w+D;k[$]={index:$,start:w,size:D,end:A,key:S,lane:v},x[v]===void 0&&C++,x[v]=$,_[v]=A}return this.measurementsCache=k,k},{key:!1,debug:()=>this.options.debug}),this.calculateRange=_t(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,n,s,u)=>e.length===0||n===0?(this.range=null,null):(this.range=Fo(e,n,s,u,u===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=_t(()=>{let e=null,n=null;const s=this.calculateRange();return s&&(e=s.startIndex,n=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,n]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,n]},(e,n,s,u,o)=>u===null||o===null?[]:e({startIndex:u,endIndex:o,overscan:n,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const n=this.options.indexAttribute,s=e.getAttribute(n);return s?parseInt(s,10):(console.warn(`Missing attribute name '${n}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var n;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((n=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:n.index);if(s!==void 0&&this.range){const u=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-u),c=Math.min(this.options.count-1,s+u);return e>=o&&e<=c}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((o,c)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(c))});return}const n=this.indexFromElement(e),s=this.options.getItemKey(n),u=this.elementsCache.get(s);u!==e&&(u&&this.observer.unobserve(u),this.observer.observe(e),this.elementsCache.set(s,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,n)=>{var s,u;if(e<0||e>=this.options.count)return;let o,c,g;const h=this._flatMeasurements;if(this.options.lanes===1&&h!==null)g=this.options.getItemKey(e),c=h[e*2],o=h[e*2+1];else{const y=this.measurementsCache[e];if(!y)return;g=y.key,c=y.start,o=y.size}const f=this.itemSizeCache.get(g)??o,b=n-f;if(b!==0){const y=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,k=y?this.getTotalSize():0,x=((u=this.scrollState)==null?void 0:u.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:g,start:c,size:o,end:c+o,lane:0},b,this):c<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(g)||this.scrollDirection!=="backward"));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(g,n),this.itemSizeCacheVersion++,y?this.applyScrollAdjustment(this.getTotalSize()-k):x&&this.applyScrollAdjustment(b),this.notify(!1)}},this.getVirtualItems=_t(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,n)=>{const s=[];for(let u=0,o=e.length;u<o;u++){const c=e[u],g=n[c];s.push(g)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const n=this.getMeasurements();if(n.length===0)return;const s=this._flatMeasurements,u=this.options.lanes===1&&s!=null,o=xs(0,n.length-1,u?c=>s[c*2]:c=>Ua(n[c]).start,e);return Ua(n[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,n,s=0)=>{if(!this.scrollElement)return 0;const u=this.getSize(),o=this.getScrollOffset();n==="auto"&&(n=e>=o+u?"end":"start"),n==="center"?e+=(s-u)/2:n==="end"&&(e-=u);const c=this.getMaxScrollOffset();return Math.max(Math.min(c,e),0)},this.getOffsetForIndex=(e,n="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.getSize(),u=this.getScrollOffset(),o=this.measurementsCache[e];if(!o)return;if(n==="auto")if(o.end>=u+s-this.options.scrollPaddingEnd)n="end";else if(o.start<=u+this.options.scrollPaddingStart)n="start";else return[u,n];if(n==="end"&&e===this.options.count-1)return[this.getMaxScrollOffset(),n];const c=n==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(c,n,o.size),n]},this.scrollToOffset=(e,{align:n="start",behavior:s="auto"}={})=>{const u=this.getOffsetForAlignment(e,n),o=this.now();this.scrollState={index:null,align:n,behavior:s,startedAt:o,lastTargetOffset:u,stableFrames:0},this._scrollToOffset(u,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:n="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));const u=this.getOffsetForIndex(e,n);if(!u)return;const[o,c]=u,g=this.now();this.scrollState={index:e,align:c,behavior:s,startedAt:g,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:n="auto"}={})=>{const s=this.getScrollOffset()+e,u=this.now();this.scrollState={index:null,align:"start",behavior:n,startedAt:u,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{var e;const n=this.getMeasurements();let s;if(n.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const u=n.length-1,o=this._flatMeasurements;o!=null?s=o[u*2]+o[u*2+1]:s=((e=n[u])==null?void 0:e.end)??0}else{const u=Array(this.options.lanes).fill(null);let o=n.length-1;for(;o>=0&&u.some(c=>c===null);){const c=n[o];u[c.lane]===null&&(u[c.lane]=c.end),o--}s=Math.max(...u.filter(c=>c!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const e=[];if(this.itemSizeCache.size===0)return e;const n=this.getMeasurements();for(const s of n)s&&this.itemSizeCache.has(s.key)&&e.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return e},this._scrollToOffset=(e,{adjustments:n,behavior:s})=>{this._intendedScrollOffset=e+(n??0),this.options.scrollToFn(e,{behavior:s,adjustments:n},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(l)}applyScrollAdjustment(l,e){l!==0&&(la()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=l:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=l,behavior:e}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const n=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=n?n[0]:this.scrollState.lastTargetOffset,u=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&$o(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=u){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const c=this.getSize()||600,g=Math.abs(s-this.getScrollOffset()),h=this.scrollState.behavior==="smooth"&&g>c;this.scrollState.lastTargetOffset=s,h||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:h?"smooth":"auto"})}this.scheduleScrollReconcile()}}const xs=(i,l,e,n)=>{for(;i<=l;){const s=(i+l)/2|0,u=e(s);if(u<n)i=s+1;else if(u>n)l=s-1;else return s}return i>0?i-1:0};function Bo(i,l,e){let n=0;for(;n<=l;){const s=(n+l)/2|0,u=i[s*2];if(u<e)n=s+1;else if(u>e)l=s-1;else return s}return n>0?n-1:0}function Fo(i,l,e,n,s){const u=i.length-1;if(i.length<=n)return{startIndex:0,endIndex:u};if(n===1&&s!==null){const h=Bo(s,u,e);let f=h;const b=e+l;for(;f<u&&s[f*2]+s[f*2+1]<b;)f++;return{startIndex:h,endIndex:f}}let c=xs(0,u,h=>i[h].start,e),g=c;if(n===1)for(;g<u&&i[g].end<e+l;)g++;else if(n>1){const h=Array(n).fill(0);for(;g<u&&h.some(b=>b<e+l);){const b=i[g];h[b.lane]=b.end,g++}const f=Array(n).fill(e+l);for(;c>=0&&f.some(b=>b>=e);){const b=i[c];f[b.lane]=b.start,c--}c=Math.max(0,c-c%n),g=Math.min(u,g+(n-1-g%n))}return{startIndex:c,endIndex:g}}function Ro(i){const l=new Eo(t(i)),e=Js(l),n=l._didMount();return fe(()=>t(i).getScrollElement(),s=>{s&&l._willUpdate()},{immediate:!0}),fe(()=>t(i),s=>{l.setOptions({...s,onChange:(u,o)=>{var c;Fa(e),(c=s.onChange)==null||c.call(s,u,o)}}),l._willUpdate(),Fa(e)},{immediate:!0}),Qs(n),e}function Vo(i){return Ro(M(()=>({observeElementRect:To,observeElementOffset:zo,scrollToFn:Do,...t(i)})))}var Oo=ue({__name:"ListboxVirtualizer",props:{options:{type:Array,required:!0},overscan:{type:Number,required:!1},estimateSize:{type:[Number,Function],required:!1},textContent:{type:Function,required:!1}},setup(i){const l=i,e=Qt(),n=Rt(),s=Xs(),{getItems:u}=Ct();n.isVirtual.value=!0;const o=M(()=>{const y=s.value;if(y){const k=window.getComputedStyle(y);return{start:Number.parseFloat(k.paddingBlockStart||k.paddingTop),end:Number.parseFloat(k.paddingBlockEnd||k.paddingBottom)}}else return{start:0,end:0}}),c=Vo({get scrollPaddingStart(){return o.value.start},get scrollPaddingEnd(){return o.value.end},get count(){return l.options.length},get horizontal(){return n.orientation.value==="horizontal"},estimateSize(y){return typeof l.estimateSize=="function"?l.estimateSize(y):l.estimateSize??28},getScrollElement(){return s.value},overscan:l.overscan??12}),g=M(()=>c.value.getVirtualItems().map(y=>{const k=e.default({option:l.options[y.index],virtualizer:c.value,virtualItem:y})[0],x=k.type===ie&&Array.isArray(k.children)?k.children.find(_=>typeof _.type!="symbol"):k;return{item:y,is:tn(x,{key:`${y.key}`,"data-index":y.index,"aria-setsize":l.options.length,"aria-posinset":y.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${y.start}px)`,overflowAnchor:"none"}})}}));n.virtualFocusHook.on(({event:y,scroll:k})=>{const x=l.options.findIndex(_=>Array.isArray(n.modelValue.value)?it(_,n.modelValue.value[0],n.by):it(_,n.modelValue.value,n.by));x!==-1?(y?.preventDefault(),c.value.scrollToIndex(x,{align:"start"}),requestAnimationFrame(()=>{const _=Na(s.value);_&&(n.changeHighlight(_,k,k?void 0:!1),y&&_?.focus())})):k?n.highlightFirstItem():requestAnimationFrame(()=>{const _=u().find(C=>C.ref.dataset.disabled!=="")?.ref;_&&n.changeHighlight(_,!1,!1)})}),n.virtualHighlightHook.on(y=>{const k=l.options.findIndex(x=>it(x,y,n.by));c.value.scrollToIndex(k,{align:"start"}),requestAnimationFrame(()=>{const x=Na(s.value);x&&n.changeHighlight(x)})});const h=Xa("",1e3),f=M(()=>{const y=k=>l.textContent?l.textContent(k):k?.toString().toLowerCase();return l.options.map((k,x)=>({index:x,textContent:y(k)}))});function b(y,k){if(!n.firstValue?.value||!n.multiple.value||!Array.isArray(n.modelValue.value))return;const _=u().filter($=>$.ref.dataset.disabled!=="").find($=>$.ref===n.highlightedElement.value)?.value;if(!_)return;let C=null;switch(k){case"prev":case"next":{C=Nt(l.options,n.firstValue.value,_);break}case"first":{C=Nt(l.options,n.firstValue.value,l.options?.[0]);break}case"last":{C=Nt(l.options,n.firstValue.value,l.options.at(-1));break}}n.modelValue.value=C}return n.virtualKeydownHook.on(y=>{const k=y.altKey||y.ctrlKey||y.metaKey;if(y.key==="Tab"&&!k)return;let _=Zs[y.key];if(k&&y.key==="a"&&n.multiple.value?(y.preventDefault(),n.modelValue.value=[...l.options],_="last"):y.shiftKey&&_&&b(y,_),["first","last"].includes(_)){y.preventDefault();const C=_==="first"?0:l.options.length-1;c.value.scrollToIndex(C),requestAnimationFrame(()=>{const $=u(),S=_==="first"?$[0]:$.at(-1);S&&n.changeHighlight(S.ref)})}else if(!_&&!k){h.value+=y.key;const C=Number(Za()?.getAttribute("data-index")),$=f.value[C].textContent,S=f.value.map(w=>w.textContent??""),T=en(S,h.value,$),v=f.value.find(w=>w.textContent===T);v&&(c.value.scrollToIndex(v.index,{align:"start"}),requestAnimationFrame(()=>{const w=s.value.querySelector(`[data-index="${v.index}"]`);w instanceof HTMLElement&&n.changeHighlight(w)}))}}),(y,k)=>(r(),m("div",{"data-reka-virtualizer":"",style:et({position:"relative",width:"100%",height:`${t(c).getTotalSize()}px`})},[(r(!0),m(ie,null,pe(g.value,({is:x,item:_})=>(r(),U(es(x),{key:_.index}))),128))],4))}}),Po=Oo;const[at,jo]=ct("ComboboxRoot");var No=ue({__name:"ComboboxRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!0},resetSearchTermOnSelect:{type:Boolean,required:!1,default:!0},openOnFocus:{type:Boolean,required:!1,default:!1},openOnClick:{type:Boolean,required:!1,default:!1},ignoreFilter:{type:Boolean,required:!1},resetModelValueOnClear:{type:Boolean,required:!1,default:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","update:open"],setup(i,{expose:l,emit:e}){const n=i,s=e,{primitiveElement:u,currentElement:o}=Et(),{multiple:c,disabled:g,ignoreFilter:h,resetSearchTermOnSelect:f,openOnFocus:b,openOnClick:y,dir:k,resetModelValueOnClear:x,highlightOnHover:_}=Dt(n),C=xa(k),$=wt(n,"modelValue",s,{defaultValue:n.defaultValue??(c.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),S=wt(n,"open",s,{defaultValue:n.defaultOpen,passive:n.open===void 0});async function T(ne){S.value=ne,G.value="",ne?(await De(),u.value?.highlightSelected(),w.value=!0,F.value?.focus()):(w.value=!1,setTimeout(()=>{!ne&&n.resetSearchTermOnBlur&&v.trigger()},1))}const v=jt(),w=z(!1),E=z(!1),F=z(),D=z(),A=M(()=>u.value?.highlightedElement??void 0),I=z(new Map),q=z(new Map),{contains:Y}=ys({sensitivity:"base"}),G=z(""),Z=M(ne=>{if(!G.value||n.ignoreFilter||E.value)return{count:I.value.size,items:ne?.items??new Map,groups:ne?.groups??new Set(q.value.keys())};let H=0;const W=new Map,re=new Set;for(const[ve,he]of I.value){const ee=Y(he,G.value);W.set(ve,ee?1:0),ee&&H++}for(const[ve,he]of q.value)for(const ee of he)if(W.get(ee)>0){re.add(ve);break}return{count:H,items:W,groups:re}}),ce=sn();return Re(()=>{ce?.exposed&&(ce.exposed.highlightItem=u.value?.highlightItem,ce.exposed.highlightFirstItem=u.value?.highlightFirstItem,ce.exposed.highlightSelected=u.value?.highlightSelected)}),l({filtered:Z,highlightedElement:A,highlightItem:u.value?.highlightItem,highlightFirstItem:u.value?.highlightFirstItem,highlightSelected:u.value?.highlightSelected}),jo({modelValue:$,multiple:c,disabled:g,open:S,onOpenChange:T,contentId:"",isUserInputted:w,isVirtual:E,inputElement:F,highlightedElement:A,onInputElementChange:ne=>F.value=ne,triggerElement:D,onTriggerElementChange:ne=>D.value=ne,parentElement:o,resetSearchTermOnSelect:f,onResetSearchTerm:v.on,allItems:I,allGroups:q,filterSearch:G,filterState:Z,ignoreFilter:h,openOnFocus:b,openOnClick:y,resetModelValueOnClear:x}),(ne,H)=>(r(),U(t(an),null,{default:B(()=>[p(t(ro),ze({ref_key:"primitiveElement",ref:u},ne.$attrs,{modelValue:t($),"onUpdate:modelValue":H[0]||(H[0]=W=>ts($)?$.value=W:null),style:{pointerEvents:t(S)?"auto":void 0},as:ne.as,"as-child":ne.asChild,dir:t(C),multiple:t(c),name:ne.name,required:ne.required,disabled:t(g),"highlight-on-hover":t(_),by:n.by,onHighlight:H[1]||(H[1]=W=>s("highlight",W))}),{default:B(()=>[ye(ne.$slots,"default",{open:t(S),modelValue:t($)})]),_:3},16,["modelValue","style","as","as-child","dir","multiple","name","required","disabled","highlight-on-hover","by"])]),_:3}))}}),Uo=No,Wo=ue({__name:"ComboboxAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const{forwardRef:l}=Je();return(e,n)=>(r(),U(t(nn),{"as-child":"",reference:e.reference},{default:B(()=>[p(t(He),ze({ref:t(l),"as-child":e.asChild,as:e.as},e.$attrs),{default:B(()=>[ye(e.$slots,"default")]),_:3},16,["as-child","as"])]),_:3},8,["reference"]))}}),Ho=Wo;const[Ko,Yo]=ct("ComboboxContent");var Go=ue({__name:"ComboboxContentImpl",props:{position:{type:String,required:!1,default:"inline"},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(i,{emit:l}){const e=i,n=l,{position:s}=Dt(e),u=at(),o=M(()=>u.ignoreFilter.value?u.allItems.value.size===0:u.filterState.value.count===0),{forwardRef:c,currentElement:g}=Je();on(e.bodyLock),ln(),rn(u.parentElement);const h=M(()=>e.position==="popper"?e:{}),f=un(h.value),b={boxSizing:"border-box","--reka-combobox-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-combobox-content-available-width":"var(--reka-popper-available-width)","--reka-combobox-content-available-height":"var(--reka-popper-available-height)","--reka-combobox-trigger-width":"var(--reka-popper-anchor-width)","--reka-combobox-trigger-height":"var(--reka-popper-anchor-height)"};Yo({position:s});const y=z(!1);Re(()=>{u.inputElement.value&&(y.value=g.value.contains(u.inputElement.value),y.value&&u.inputElement.value.focus())}),tt(()=>{const x=Za();y.value&&(!x||x===document.body)&&u.triggerElement.value?.focus()});function k(x){if(u.parentElement.value?.contains(x))return!0;const C=(x instanceof Element?x.closest("label"):null)?.control;return!!C&&!!u.parentElement.value?.contains(C)}return(x,_)=>(r(),U(t(uo),{"as-child":""},{default:B(()=>[p(t(as),{"as-child":"",onMountAutoFocus:_[5]||(_[5]=Oe(()=>{},["prevent"])),onUnmountAutoFocus:_[6]||(_[6]=Oe(()=>{},["prevent"]))},{default:B(()=>[p(t(cn),{"as-child":"","disable-outside-pointer-events":x.disableOutsidePointerEvents,onDismiss:_[0]||(_[0]=C=>t(u).onOpenChange(!1)),onFocusOutside:_[1]||(_[1]=C=>{k(C.target)&&C.preventDefault(),n("focusOutside",C)}),onInteractOutside:_[2]||(_[2]=C=>n("interactOutside",C)),onEscapeKeyDown:_[3]||(_[3]=C=>n("escapeKeyDown",C)),onPointerDownOutside:_[4]||(_[4]=C=>{k(C.target)&&C.preventDefault(),n("pointerDownOutside",C)})},{default:B(()=>[(r(),U(es(t(s)==="popper"?t(dn):t(He)),ze({...x.$attrs,...t(f)},{id:t(u).contentId,ref:t(c),"data-state":t(u).open.value?"open":"closed","data-empty":o.value?"":void 0,style:{display:e.hideWhenEmpty&&o.value?"none":"flex",flexDirection:"column",outline:"none",...t(s)==="popper"?b:{}}}),{default:B(()=>[ye(x.$slots,"default")]),_:3},16,["id","data-state","data-empty","style"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Qo=Go,Jo=ue({__name:"ComboboxArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(i){const l=i,e=at(),n=Ko();return Je(),(s,u)=>t(e).open.value&&t(n).position.value==="popper"?(r(),U(t(mn),ht(ze({key:0},l)),{default:B(()=>[ye(s.$slots,"default")]),_:3},16)):R("v-if",!0)}}),Xo=Jo,Zo=ue({__name:"ComboboxCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i;Je();const e=at();function n(){e.filterSearch.value="",e.inputElement.value&&(e.inputElement.value.value="",e.inputElement.value.focus()),e.resetModelValueOnClear?.value&&(e.modelValue.value=e.multiple.value?[]:null)}return(s,u)=>(r(),U(t(He),ze({type:s.as==="button"?"button":void 0},l,{tabindex:"-1",onClick:n}),{default:B(()=>[ye(s.$slots,"default")]),_:3},16,["type"]))}}),el=Zo,tl=ue({__name:"ComboboxContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(i,{emit:l}){const s=gn(i,l),{forwardRef:u}=Je(),o=at();return o.contentId||=xt(void 0,"reka-combobox-content"),(c,g)=>(r(),U(t(pn),{present:c.forceMount||t(o).open.value},{default:B(()=>[p(Qo,ze({...t(s),...c.$attrs},{ref:t(u)}),{default:B(()=>[ye(c.$slots,"default")]),_:3},16)]),_:3},8,["present"]))}}),al=tl,sl=ue({__name:"ComboboxEmpty",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,e=at(),n=M(()=>e.ignoreFilter.value?e.allItems.value.size===0:e.filterState.value.count===0);return(s,u)=>n.value?(r(),U(t(He),ht(ze({key:0},l)),{default:B(()=>[ye(s.$slots,"default",{},()=>[u[0]||(u[0]=le("No options"))])]),_:3},16)):R("v-if",!0)}}),nl=sl;const[bs,ol]=ct("ComboboxGroup");var ll=ue({__name:"ComboboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,e=xt(void 0,"reka-combobox-group"),n=at(),s=M(()=>n.ignoreFilter.value?!0:n.filterSearch.value?n.filterState.value.groups.has(e):!0),u=ol({id:e,labelId:""});return Re(()=>{n.allGroups.value.has(e)||n.allGroups.value.set(e,new Set)}),tt(()=>{n.allGroups.value.delete(e)}),(o,c)=>(r(),U(t(ho),ze({id:t(e),"aria-labelledby":t(u).labelId},l,{hidden:s.value?void 0:!0}),{default:B(()=>[ye(o.$slots,"default")]),_:3},16,["id","aria-labelledby","hidden"]))}}),ra=ll,rl=ue({__name:"ComboboxInput",props:{displayValue:{type:Function,required:!1},modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,n=l,s=at(),u=Rt(),{primitiveElement:o,currentElement:c}=Et(),g=wt(e,"modelValue",n,{passive:e.modelValue===void 0});Re(()=>{c.value&&s.onInputElementChange(c.value)});const{isComposing:h,handleCompositionStart:f,handleCompositionEnd:b}=ba(T=>{const v=T.target;v&&k(v.value)});function y(T){h.value||(T.preventDefault(),s.open.value||s.onOpenChange(!0))}function k(T){s.open.value?s.filterSearch.value=T:(s.onOpenChange(!0),De(()=>{T&&(s.filterSearch.value=T,u.highlightFirstItem())}))}function x(T){h.value||k(T.target.value)}function _(){s.openOnFocus.value&&!s.open.value&&s.onOpenChange(!0)}function C(T){if(!s.open.value)return;const v=T.relatedTarget;if(!v)return;const w=s.parentElement.value?.contains(v),E=document.getElementById(s.contentId)?.contains(v);!w&&!E&&requestAnimationFrame(()=>{if(!s.open.value)return;const F=document.activeElement;!s.parentElement.value?.contains(F)&&!document.getElementById(s.contentId)?.contains(F)&&s.onOpenChange(!1)})}function $(){s.openOnClick.value&&!s.open.value&&s.onOpenChange(!0)}function S(){const T=s.modelValue.value;e.displayValue?g.value=e.displayValue(T):!s.multiple.value&&T&&!Array.isArray(T)&&typeof T!="object"?g.value=T.toString():g.value="",De(()=>{g.value=g.value})}return s.onResetSearchTerm(()=>{S()}),fe(s.modelValue,async()=>{!s.isUserInputted.value&&s.resetSearchTermOnSelect.value&&S()},{immediate:!0,deep:!0}),fe(s.filterState,(T,v)=>{!s.isVirtual.value&&v.count===0&&u.highlightFirstItem()}),(T,v)=>(r(),U(t(mo),{ref_key:"primitiveElement",ref:o,modelValue:t(g),"onUpdate:modelValue":v[0]||(v[0]=w=>ts(g)?g.value=w:null),as:T.as,"as-child":T.asChild,"auto-focus":T.autoFocus,disabled:T.disabled,"aria-expanded":t(s).open.value,"aria-controls":t(s).contentId,"aria-autocomplete":"list",role:"combobox",autocomplete:"off",onClick:$,onInput:x,onKeydown:Ge(y,["down","up"]),onFocus:_,onBlur:C,onCompositionstart:t(f),onCompositionend:t(b)},{default:B(()=>[ye(T.$slots,"default")]),_:3},8,["modelValue","as","as-child","auto-focus","disabled","aria-expanded","aria-controls","onCompositionstart","onCompositionend"]))}}),il=rl,ul=ue({__name:"ComboboxItem",props:{textValue:{type:String,required:!1},value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(i,{emit:l}){const e=i,n=l,s=xt(void 0,"reka-combobox-item"),u=at(),o=bs(null),{primitiveElement:c,currentElement:g}=Et();if(e.value==="")throw new Error("A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.");const h=M(()=>{if(u.isVirtual.value||u.ignoreFilter.value||!u.filterSearch.value)return!0;{const f=u.filterState.value.items.get(s);return f===void 0?!0:f>0}});return Re(()=>{u.allItems.value.set(s,e.textValue||g.value.textContent||g.value.innerText);const f=o?.id;f&&(u.allGroups.value.has(f)?u.allGroups.value.get(f)?.add(s):u.allGroups.value.set(f,new Set([s])))}),tt(()=>{u.allItems.value.delete(s)}),(f,b)=>h.value?(r(),U(t(bo),ze({key:0},e,{id:t(s),ref_key:"primitiveElement",ref:c,disabled:t(u).disabled.value||f.disabled,onSelect:b[0]||(b[0]=y=>{n("select",y),!y.defaultPrevented&&(!t(u).multiple.value&&!f.disabled&&!t(u).disabled.value?(y.preventDefault(),t(u).onOpenChange(!1),t(u).modelValue.value=e.value):t(u).multiple.value&&t(u).inputElement.value?.focus())})}),{default:B(()=>[ye(f.$slots,"default",{},()=>[le(d(f.value),1)])]),_:3},16,["id","disabled"])):R("v-if",!0)}}),Ha=ul,cl=ue({__name:"ComboboxItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const l=i;return(e,n)=>(r(),U(t(_o),ht(zt(l)),{default:B(()=>[ye(e.$slots,"default")]),_:3},16))}}),dl=cl,ml=ue({__name:"ComboboxLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(i){const l=i;Je();const e=bs({id:"",labelId:""});return e.labelId||=xt(void 0,"reka-combobox-group-label"),(n,s)=>(r(),U(t(He),ze(l,{id:t(e).labelId}),{default:B(()=>[ye(n.$slots,"default")]),_:3},16,["id"]))}}),gl=ml,pl=ue({__name:"ComboboxPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(i){const l=i;return(e,n)=>(r(),U(t(hn),ht(zt(l)),{default:B(()=>[ye(e.$slots,"default")]),_:3},16))}}),hl=pl,fl=ue({__name:"ComboboxSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i;return Je(),(e,n)=>(r(),U(t(He),ze(l,{"aria-hidden":"true"}),{default:B(()=>[ye(e.$slots,"default")]),_:3},16))}}),vl=fl,yl=ue({__name:"ComboboxTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i,{forwardRef:e,currentElement:n}=Je(),s=at(),u=M(()=>l.disabled||s.disabled.value||!1);return Re(()=>{n.value&&s.onTriggerElementChange(n.value)}),(o,c)=>(r(),U(t(He),ze(l,{ref:t(e),type:o.as==="button"?"button":void 0,tabindex:"-1","aria-label":"Show popup","aria-haspopup":"listbox","aria-expanded":t(s).open.value,"aria-controls":t(s).contentId,"data-state":t(s).open.value?"open":"closed",disabled:u.value,"data-disabled":u.value?"":void 0,"aria-disabled":u.value??void 0,onClick:c[0]||(c[0]=g=>t(s).onOpenChange(!t(s).open.value))}),{default:B(()=>[ye(o.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","disabled","data-disabled","aria-disabled"]))}}),xl=yl,bl=ue({__name:"ComboboxVirtualizer",props:{options:{type:Array,required:!0},overscan:{type:Number,required:!1},estimateSize:{type:[Number,Function],required:!1},textContent:{type:Function,required:!1}},setup(i){const l=i,e=at();return e.isVirtual.value=!0,(n,s)=>(r(),U(Po,ht(zt(l)),{default:B(u=>[ye(n.$slots,"default",ht(zt(u)))]),_:3},16))}}),kl=bl;const[qa,_l]=ct("TagsInputRoot");var wl=ue({__name:"TagsInputRoot",props:{modelValue:{type:[Array,null],required:!1},defaultValue:{type:Array,required:!1,default:()=>[]},addOnPaste:{type:Boolean,required:!1},addOnTab:{type:Boolean,required:!1},addOnBlur:{type:Boolean,required:!1},duplicate:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},delimiter:{type:null,required:!1,default:","},dir:{type:String,required:!1},max:{type:Number,required:!1,default:0},id:{type:String,required:!1},convertValue:{type:Function,required:!1},displayValue:{type:Function,required:!1,default:i=>i.toString()},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","invalid","addTag","removeTag"],setup(i,{emit:l}){const e=i,n=l,{addOnPaste:s,disabled:u,delimiter:o,max:c,id:g,dir:h,addOnBlur:f,addOnTab:b}=Dt(e),y=xa(h),k=wt(e,"modelValue",n,{defaultValue:e.defaultValue,passive:!0,deep:!0}),{forwardRef:x,currentElement:_}=Je(),{focused:C}=fn(_),$=Ja(_),{getItems:S,CollectionSlot:T}=Ct({isProvider:!0}),v=z(),w=z(!1),E=M(()=>Array.isArray(k.value)?[...k.value]:[]);function F(D){if(D!==-1){const A=S().filter(I=>I.ref.dataset.disabled!=="");k.value=k.value.filter((I,q)=>q!==D),n("removeTag",A[D].value)}}return _l({modelValue:k,onAddValue:D=>{const A=[...E.value],I=A.length>0&&typeof A[0]=="object",q=A.length>0&&typeof e.defaultValue[0]=="object";if((I||q)&&typeof e.convertValue!="function")throw new Error("You must provide a `convertValue` function when using objects as values.");const Y=e.convertValue?e.convertValue(D):D;if(A.length>=c.value&&c.value)return n("invalid",Y),!1;if(e.duplicate)return k.value=[...A,Y],n("addTag",Y),!0;if(A.includes(Y))w.value=!0;else return k.value=[...A,Y],n("addTag",Y),!0;return n("invalid",Y),!1},onRemoveValue:F,onInputKeydown:D=>{if(D.isComposing)return;const A=D.target,I=S().map(Y=>Y.ref).filter(Y=>Y.dataset.disabled!=="");if(!I.length)return;const q=I.at(-1);switch(D.key){case"Delete":case"Backspace":{if(A.selectionStart!==0||A.selectionEnd!==0)break;if(v.value){const Y=I.findIndex(G=>G===v.value);F(Y),v.value=v.value===q?I.at(Y-1):I.at(Y+1),D.preventDefault()}else D.key==="Backspace"&&(v.value=q,D.preventDefault());break}case"Home":case"End":case"ArrowRight":case"ArrowLeft":{const Y=D.key==="ArrowRight"&&y.value==="ltr"||D.key==="ArrowLeft"&&y.value==="rtl",G=!Y;if(A.selectionStart!==0||A.selectionEnd!==0)break;if(G&&!v.value)v.value=q,D.preventDefault();else if(Y&&q&&v.value===q)v.value=void 0,D.preventDefault();else if(v.value){const Z=vn(D,v.value,void 0,{itemsArray:I,loop:!1,dir:y.value});Z&&(v.value=Z),D.preventDefault()}break}case"ArrowUp":case"ArrowDown":{v.value&&D.preventDefault();break}default:v.value=void 0}},selectedElement:v,isInvalidInput:w,addOnPaste:s,addOnBlur:f,addOnTab:b,dir:y,disabled:u,delimiter:o,max:c,id:g,displayValue:e.displayValue}),(D,A)=>(r(),U(t(T),null,{default:B(()=>[p(t(He),{ref:t(x),dir:t(y),as:D.as,"as-child":D.asChild,"data-invalid":w.value?"":void 0,"data-disabled":t(u)?"":void 0,"data-focused":t(C)?"":void 0},{default:B(()=>[ye(D.$slots,"default",{modelValue:t(k)}),t($)&&D.name?(r(),U(t(Qa),{key:0,name:D.name,value:t(k),required:D.required,disabled:t(u)},null,8,["name","value","required","disabled"])):R("v-if",!0)]),_:3},8,["dir","as","as-child","data-invalid","data-disabled","data-focused"])]),_:3}))}}),$l=wl,Cl=ue({__name:"TagsInputInput",props:{placeholder:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},maxLength:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},setup(i){const l=i,e=qa(),{forwardRef:n,currentElement:s}=Je();function u(x){if(e.selectedElement.value=void 0,!e.addOnBlur.value)return;const _=x.target,C=x.relatedTarget,$=_.getAttribute("aria-controls");if($&&C?.closest(`#${CSS.escape($)}`)||!_.value)return;e.onAddValue(_.value)&&(_.value="")}function o(x){e.addOnTab.value&&f(x)}const{isComposing:c,handleCompositionStart:g,handleCompositionEnd:h}=ba();async function f(x){if(c.value||(await De(),x.defaultPrevented))return;const _=x.target;if(!_.value)return;e.onAddValue(_.value)&&(_.value=""),x.preventDefault()}function b(x){if(c.value||(e.isInvalidInput.value=!1,x.data===null))return;const _=e.delimiter.value;if(_===x.data||_ instanceof RegExp&&_.test(x.data)){const $=x.target;if($.value=$.value.replace(_,""),$.value.trim()===""){$.value="";return}e.onAddValue($.value)&&($.value="")}}function y(x){c.value||e.onInputKeydown(x)}function k(x){if(e.addOnPaste.value){x.preventDefault();const _=x.clipboardData;if(!_)return;const C=_.getData("text");e.delimiter.value?C.split(e.delimiter.value).forEach(S=>{e.onAddValue(S)}):e.onAddValue(C)}}return Re(()=>{const x=s.value.nodeName==="INPUT"?s.value:s.value.querySelector("input");x&&setTimeout(()=>{l.autoFocus&&x?.focus()},1)}),(x,_)=>(r(),U(t(He),{id:t(e).id?.value,ref:t(n),type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",as:x.as,"as-child":x.asChild,maxlength:x.maxLength,placeholder:x.placeholder,disabled:t(e).disabled.value,"data-invalid":t(e).isInvalidInput.value?"":void 0,onInput:b,onKeydown:[Ge(f,["enter"]),Ge(o,["tab"]),y],onBlur:u,onCompositionstart:t(g),onCompositionend:t(h),onPaste:k},{default:B(()=>[ye(x.$slots,"default")]),_:3},8,["id","as","as-child","maxlength","placeholder","disabled","data-invalid","onCompositionstart","onCompositionend"]))}}),Sl=Cl;const[ks,Il]=ct("TagsInputItem");var Tl=ue({__name:"TagsInputItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,{value:e}=Dt(l),n=qa(),{forwardRef:s,currentElement:u}=Je(),{CollectionItem:o}=Ct(),c=M(()=>n.selectedElement.value===u.value),g=M(()=>l.disabled||n.disabled.value),h=Il({value:e,isSelected:c,disabled:g,textId:"",displayValue:M(()=>n.displayValue(e.value))});return(f,b)=>(r(),U(t(o),{value:t(e)},{default:B(()=>[p(t(He),{ref:t(s),as:f.as,"as-child":f.asChild,"aria-labelledby":t(h).textId,"aria-current":c.value,"data-disabled":g.value?"":void 0,"data-state":c.value?"active":"inactive"},{default:B(()=>[ye(f.$slots,"default")]),_:3},8,["as","as-child","aria-labelledby","aria-current","data-disabled","data-state"])]),_:3},8,["value"]))}}),Ml=Tl,Al=ue({__name:"TagsInputItemDelete",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i;Je();const e=qa(),n=ks(),s=M(()=>n.disabled?.value||e.disabled.value);function u(){if(s.value)return;const o=e.modelValue.value.findIndex(c=>Ut(c,n.value.value));e.onRemoveValue(o)}return(o,c)=>(r(),U(t(He),ze({tabindex:"-1"},l,{"aria-labelledby":t(n).textId,"aria-current":t(n).isSelected.value,"data-state":t(n).isSelected.value?"active":"inactive","data-disabled":s.value?"":void 0,type:o.as==="button"?"button":void 0,onClick:u}),{default:B(()=>[ye(o.$slots,"default")]),_:3},16,["aria-labelledby","aria-current","data-state","data-disabled","type"]))}}),zl=Al,ql=ue({__name:"TagsInputItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const l=i,e=ks();return Je(),e.textId||=xt(void 0,"reka-tags-input-item-text"),(n,s)=>(r(),U(t(He),ze(l,{id:t(e).textId}),{default:B(()=>[ye(n.$slots,"default",{},()=>[le(d(t(e).displayValue.value),1)])]),_:3},16,["id"]))}}),Ll=ql;const Dl={none:[],qwen:["default","off","high"],deepseek_v4:["default","off","high","xhigh"],deepseek_hybrid:["default","off","auto"],o_series:["default","low","medium","high"],gpt5:["default","minimal","low","medium","high"],gpt5_1:["default","off","low","medium","high"],gpt5_2plus:["default","off","minimal","low","medium","high","xhigh"],grok:["default","low","high"],kimi:["default","off","auto","low","medium","high"],doubao:["default","off","auto","high"],hunyuan:["default","off","high"],gemini:["default","off","low","medium","high"],default:["default","off","low","medium","high"]},Ka=/^(?!.*-non-reasoning\b)(o\d+(?:-[\w-]+)?|.*\b(?:reasoning|reasoner|thinking|think)\b.*|.*-[rR]\d+.*|.*\bqwq(?:-[\w-]+)?\b.*|.*\bhunyuan-t1(?:-[\w-]+)?\b.*|.*\bgrok-(?:3-mini|4|4-fast|build)(?:-[\w-]+)?\b.*)$/i;function El(i,l){const e=l.toLowerCase(),n=i.toLowerCase();if(e.includes("-non-reasoning")||n==="anthropic")return"none";if(n==="gemini")return/gemini-(?:2\.5|3(?:\.\d+)?-(?:flash|pro)|flash-latest|pro-latest)/i.test(e)?"gemini":"none";if(n==="qwen"||/\bqwen|qwq/i.test(e))return"qwen";if(/deepseek[_-]v([4-9]|\d{2,})/i.test(e)||/deepseek-ai\/deepseek-r1/i.test(e))return"deepseek_v4";if(/deepseek[_-]chat|deepseek[_-]v3/i.test(e))return"deepseek_hybrid";if(n==="openai"||n==="openai-compatible"){if(/gpt-5\.[2-9]|gpt-5\.[1-9]\d/.test(e))return"gpt5_2plus";if(/gpt-5\.1/.test(e))return"gpt5_1";if(/gpt-5/.test(e))return"gpt5";if(/^o\d/.test(e))return"o_series"}return/^o\d/.test(e)?"o_series":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(e)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(e)||n==="kimi"&&/thinking/i.test(e)?"kimi":/\bdoubao-.*seed/i.test(e)||n==="doubao"&&/seed/i.test(e)?"doubao":/\bhunyuan-(?:t1|a13b)/i.test(e)?"hunyuan":n==="glm"||/\bglm-?(?:5|4\.[5-7]|z1|zero)/i.test(e)?"qwen":n==="siliconflow"&&/r[1-9]/i.test(e)?"deepseek_v4":n==="openrouter"?/deepseek.*(v[4-9]|r\d)/i.test(e)?"deepseek_v4":/deepseek[_-]?(chat|v3)/i.test(e)?"deepseek_hybrid":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(e)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(e)?"kimi":Ka.test(e)?"default":"none":/\bmimo-v2/i.test(e)||/\bminimax-m[123]/i.test(e)||/\bseed-oss/i.test(e)?"deepseek_hybrid":/\bbaichuan-m[23]/i.test(e)||/\bmagistral/i.test(e)||/\bmistral-small-2603/i.test(e)||/\bstep-(?:3|r1-v-mini)/i.test(e)||/\bgemma-?4/i.test(e)||/\bpangu-pro-moe/i.test(e)||/\bsonar-deep-research/i.test(e)||/\bring-(?:1t|mini|flash)/i.test(e)?"default":/\bqwen|qwq/i.test(e)?"qwen":/deepseek[_-]?r\d|deepseek[_-]?v[4-9]/i.test(e)?"deepseek_v4":/^o\d/i.test(e)?"o_series":Ka.test(e)?"default":"none"}function Bl(i,l){const e=El(i,l);return Dl[e]}function Fl(){const{contains:i,startsWith:l}=ys({sensitivity:"base"});function e(o,c){return i(o,c)?i(c,o)?0:l(o,c)?1:2:null}function n(o,c,g){if(typeof o!="object"||o===null)return e(String(o),c);let h=null;for(const f of g){const b=lt(o,f);if(b==null)continue;const y=Array.isArray(b)?b.map(String):[String(b)];for(const k of y){const x=e(k,c);if(x!==null&&(h===null||x<h)&&(h=x),h===0)return 0}}return h}function s(o,c,g){if(!c)return o;const h=[];for(const f of o){const b=n(f,c,g);b!==null&&h.push({item:f,score:b})}return h.sort((f,b)=>f.score-b.score),h.map(({item:f})=>f)}function u(o,c,g){return c?o.map(h=>{const f=[];for(const b of h){if(b==null)continue;if(g.isStructural?.(b)){f.push({item:b,score:-1});continue}const y=n(b,c,g.fields);y!==null&&f.push({item:b,score:y})}return f.sort((b,y)=>b.score-y.score),f.map(({item:b})=>b)}).filter(h=>h.some(f=>!g.isStructural?.(f))):o}return{score:e,scoreItem:n,filter:s,filterGroups:u}}function Rl(i,l,e,n="group",s="zh-CN"){const u=yn(),{chatKey:o,state:c}=u.ensureSessionState({sessionId:i,sessionName:l,timeFilter:e,chatType:n,locale:s});return u.resetToSelectorOnEnter(o),u.applySessionAssistantSelection(o),{messages:We(c,"messages"),sourceMessages:We(c,"sourceMessages"),currentKeywords:We(c,"currentKeywords"),isLoadingSource:We(c,"isLoadingSource"),isAIThinking:We(c,"isAIThinking"),currentAIChatId:We(c,"currentAIChatId"),currentToolStatus:We(c,"currentToolStatus"),toolsUsedInCurrentRound:We(c,"toolsUsedInCurrentRound"),sessionTokenUsage:We(c,"sessionTokenUsage"),agentStatus:We(c,"agentStatus"),selectedAssistantId:We(c,"selectedAssistantId"),sendMessage:(g,h)=>u.sendMessage(o,g,h),editMessageAndRegenerate:(g,h,f)=>u.editMessageAndRegenerate(o,g,h,f),loadAIChat:g=>u.loadAIChat(o,g),startNewAIChat:g=>u.startNewAIChat(o,g),loadMoreSourceMessages:()=>u.loadMoreSourceMessages(),updateMaxMessages:()=>u.updateMaxMessages(),stopGeneration:()=>u.stopGeneration(o),selectAssistantForSession:g=>u.selectAssistantForSession(o,g)}}const ia=new Map;function Vl(i,l,e){const{activeTab:n,isInitialLoad:s,currentSessionId:u,onTimeRangeChange:o}=e,c=z(null),g=z(null),h=z([]),f=M(()=>{const x=c.value;if(x)return{startTs:x.startTs,endTs:x.endTs}}),b=M(()=>{const x=c.value;return x?`${x.startTs}-${x.endTs}`:"init"}),y=M(()=>{const x=i.query,_=x.timeMode;return _?{mode:_,recentDays:x.timeDays?Number(x.timeDays):void 0,year:x.timeYear?Number(x.timeYear):void 0,quarterYear:x.timeYear?Number(x.timeYear):void 0,quarter:x.timeQuarter?Number(x.timeQuarter):void 0,customStart:x.timeStart||void 0,customEnd:x.timeEnd||void 0}:u.value&&ia.has(u.value)?ia.get(u.value):{mode:"recent",recentDays:365}});fe([n,c],([x,_])=>{if(s.value||!_)return;const C=_.state,$={tab:x,timeMode:C.mode,timeDays:void 0,timeYear:void 0,timeQuarter:void 0,timeStart:void 0,timeEnd:void 0};C.mode==="recent"&&($.timeDays=C.recentDays),C.mode==="year"&&($.timeYear=C.year),C.mode==="quarter"&&($.timeYear=C.quarterYear,$.timeQuarter=C.quarter),C.mode==="custom"&&($.timeStart=C.customStart,$.timeEnd=C.customEnd),l.replace({query:{...i.query,...$}})}),fe(c,x=>{!x||!u.value||(ss(),ia.set(u.value,x.state),o?.())},{immediate:!0});function k(){c.value=null,g.value=null,h.value=[]}return{timeRangeValue:c,fullTimeRange:g,availableYears:h,timeFilter:f,timeFilterKey:b,initialTimeState:y,resetTimeRange:k}}function Ol(i){return i.content.trim()?i.content:i.contentBlocks?.filter(e=>e.type==="text"&&!!e.text).map(e=>e.text).join("")??""}function ga(i){return i.flatMap(l=>{if(l.role!=="user"&&l.role!=="assistant")return[];const e=Ol(l);return e.trim()?[{role:l.role,content:e,timestamp:l.timestamp}]:[]})}function Pl(i){return ga(i).length>0}function jl(i,l,e,n){const s=[];s.push(`# ${i}`),s.push(""),s.push(`> ${n.createdAt}: ${Ee(e).format("YYYY-MM-DD HH:mm:ss")}`),s.push(""),s.push("---"),s.push("");for(const u of l){const o=Ee(u.timestamp).format("YYYY-MM-DD HH:mm:ss"),c=u.role==="user"?n.user:n.assistant;s.push(`### ${c}`),s.push(`*${o}*`),s.push(""),s.push(u.content),s.push(""),s.push("---"),s.push("")}return s.join(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CW9H_fBd.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-DrjoMv9s.css","assets/EChartWordcloud-CwMVJLBO.js","assets/vendor-echarts-wordcloud-Ca8n6qS6.js","assets/vendor-echarts-B-i_56Av.js","assets/vendor-zrender-5DcYjSZk.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{b1 as Ut,a as M,G as t,b2 as ct,d as ue,b3 as Dt,b4 as Ct,b5 as Ns,b6 as xa,b7 as wt,w as fe,o as r,E as U,F as B,r as ye,b8 as Qa,h as R,an as De,ad as He,b9 as Et,ba as Ja,b as z,bb as jt,bc as Us,bd as Ws,be as Hs,bf as Xa,g as p,ar as Ge,al as Oe,bg as Ks,C as Re,O as tt,bh as ba,bi as xt,b0 as ze,bj as Je,bk as Ys,bl as Gs,bm as Qs,s as Js,bn as Fa,a7 as Qt,bo as Xs,bp as Zs,bq as Za,br as en,c as m,Z as ie,$ as pe,V as es,P as et,bs as tn,S as ts,bt as an,bu as sn,bv as nn,bw as on,bx as ln,by as rn,bz as un,bA as as,bB as cn,bC as dn,bD as ht,bE as mn,bF as gn,bG as pn,I as le,t as d,bH as zt,bI as hn,bJ as fn,bK as vn,bL as lt,bM as yn,bN as We,bO as ss,e as Ee,av as Jt,M as Ke,f as a,n as X,_ as _e,A as we,H as Ue,J as Xe,a3 as nt,aW as ka,B as bt,ap as ut,ak as _a,K as wa,D as ns,bP as $a,bQ as os,a1 as Qe,a2 as ft,ay as ls,U as vt,Y as dt,a8 as Ca,a0 as Wt,bR as xn,bS as rs,bT as is,bU as bn,bV as Sa,bW as us,bX as Ra,bY as At,bZ as Ht,b_ as kn,b$ as _n,aj as Bt,c0 as qt,af as Ia,c1 as Ta,c2 as Va,c3 as Tt,a5 as cs,c4 as ds,ae as $t,c5 as wn,c6 as $n,T as pt,aX as Cn,a6 as Ye,aI as ms,c7 as Sn,aM as yt,az as St,c8 as In,c9 as It,aq as Xt,ca as Tn,cb as Ft,cc as Mn,cd as An,ce as Vt,aB as Ma,aA as Zt,ao as gt,au as gs,cf as zn,aY as ps,j as Oa,m as qn,cg as Ln,a4 as Dn,aC as En,ch as Bn,ci as Fn,ax as Rn,R as Vn,as as On,z as Pn,cj as jn,ck as Nn,Q as Un,cl as Wn,cm as Hn,aF as Kn,aH as Yn,aG as Pa}from"./index-CW9H_fBd.js";import{a as Lt,M as Aa,_ as Gn}from"./index-BrkDgcJ6.js";import{_ as mt}from"./ThemeCard.vue_vue_type_script_setup_true_lang-Dsb6lzs-.js";import{C as Qn,a as ea,_ as rt,g as ma}from"./base-D91aVUwM.js";import"./vendor-echarts-wordcloud-Ca8n6qS6.js";import{_ as Kt}from"./LoadingState.vue_vue_type_script_setup_true_lang-BshQybD_.js";import{u as ta,p as hs,z as fs,j as za,v as vs,i as aa,k as sa,m as Jn,n as Xn,t as Zn,A as eo}from"./vendor-echarts-B-i_56Av.js";import{f as to,d as ja}from"./dateFormat-rY43adcv.js";import{_ as ao}from"./TimeSelect.vue_vue_type_script_setup_true_lang-BfR3tlkz.js";import{P as so}from"./PageHeader-BKAjCuqs.js";function Nt(i,l,e){const n=i.findIndex(c=>Ut(c,l)),s=i.findIndex(c=>Ut(c,e));if(n===-1||s===-1)return[];const[u,o]=[n,s].sort((c,g)=>c-g);return i.slice(u,o+1)}function ys(i){const l=M(()=>t(i)),e=M(()=>new Intl.Collator("en",{usage:"search",...l.value}));return{startsWith:(o,c)=>c.length===0?!0:(o=o.normalize("NFC"),c=c.normalize("NFC"),e.value.compare(o.slice(0,c.length),c)===0),endsWith:(o,c)=>c.length===0?!0:(o=o.normalize("NFC"),c=c.normalize("NFC"),e.value.compare(o.slice(-c.length),c)===0),contains:(o,c)=>{if(c.length===0)return!0;o=o.normalize("NFC"),c=c.normalize("NFC");let g=0;const h=c.length;for(;g+h<=o.length;g++){const f=o.slice(g,g+h);if(e.value.compare(c,f)===0)return!0}return!1}}}function Na(i){return i?.querySelector("[data-state=checked]")}function no(i,l,e){return i===void 0?!1:Array.isArray(i)?i.some(n=>it(n,l,e)):it(i,l,e)}function it(i,l,e){return i===void 0||l===void 0?!1:typeof i=="string"?i===l:typeof e=="function"?e(i,l):typeof e=="string"?i?.[e]===l?.[e]:Ut(i,l)}const[Rt,oo]=ct("ListboxRoot");var lo=ue({__name:"ListboxRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:"vertical"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:"toggle"},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(i,{expose:l,emit:e}){const n=i,s=e,{multiple:u,highlightOnHover:o,orientation:c,disabled:g,selectionBehavior:h,dir:f}=Dt(n),{getItems:b}=Ct({isProvider:!0}),{handleTypeaheadSearch:y}=Ns(),{primitiveElement:k,currentElement:x}=Et(),_=Hs(),C=xa(f),$=Ja(x),S=z(),T=z(!1),v=z(!0),w=wt(n,"modelValue",s,{defaultValue:n.defaultValue??(u.value?[]:void 0),passive:n.modelValue===void 0,deep:!0});function E(oe){if(T.value=!0,n.multiple){const Q=Array.isArray(w.value)?[...w.value]:[],J=Q.findIndex(ge=>it(ge,oe,n.by));n.selectionBehavior==="toggle"?(J===-1?Q.push(oe):Q.splice(J,1),w.value=Q):(w.value=[oe],S.value=oe)}else n.selectionBehavior==="toggle"&&it(w.value,oe,n.by)?w.value=void 0:w.value=oe;setTimeout(()=>{T.value=!1},1)}const F=z(null),D=z(null),A=z(!1),I=z(!1),q=jt(),Y=jt(),G=jt();function Z(){return b().map(oe=>oe.ref).filter(oe=>oe.dataset.disabled!=="")}function ce(oe,Q=!0,J){if(!oe)return;F.value=oe,(J??v.value)&&F.value.focus(),Q&&F.value.scrollIntoView({block:"nearest"});const ge=b().find(ke=>ke.ref===oe);s("highlight",ge)}function ne(oe){if(A.value)G.trigger(oe);else{const Q=b().find(J=>it(J.value,oe,n.by));Q&&(F.value=Q.ref,ce(Q.ref))}}function H(oe){F.value&&F.value.isConnected&&(oe.preventDefault(),oe.stopPropagation(),I.value||F.value.click())}function W(oe){if(v.value){if(T.value=!0,A.value)Y.trigger(oe);else{const Q=oe.altKey||oe.ctrlKey||oe.metaKey;if(Q&&oe.key==="a"&&u.value){const J=b(),ge=J.map($e=>$e.value);w.value=[...ge],oe.preventDefault();const ke=J.at(-1);ke&&ce(ke.ref)}else if(!Q){const J=y(oe.key,b());J&&ce(J)}}setTimeout(()=>{T.value=!1},1)}}function re(){I.value=!0}function ve(){De(()=>{I.value=!1})}function he(){De(()=>{const oe=new KeyboardEvent("keydown",{key:"PageUp"});j(oe)})}function ee(oe){const Q=F.value;Q?.isConnected&&(D.value=Q),F.value=null,s("leave",oe)}function te(oe){const Q=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(oe.currentTarget?.dispatchEvent(Q),s("entryFocus",Q),!Q.defaultPrevented)if(D.value)ce(D.value);else{const J=Z()?.[0];ce(J)}}function j(oe){const Q=Us(oe,c.value,C.value);if(!Q)return;let J=Z();if(F.value){if(Q==="last")J.reverse();else if(Q==="prev"||Q==="next"){Q==="prev"&&J.reverse();const ge=J.indexOf(F.value);J=J.slice(ge+1)}de(oe,J[0])}if(J.length){const ge=!F.value&&Q==="prev"?J.length-1:0;ce(J[ge])}if(A.value)return Y.trigger(oe)}function de(oe,Q){if(!(A.value||n.selectionBehavior!=="replace"||!u.value||!Array.isArray(w.value)||(oe.altKey||oe.ctrlKey||oe.metaKey)&&!oe.shiftKey)&&oe.shiftKey){const ge=b().filter(Le=>Le.ref.dataset.disabled!=="");let ke=ge.find(Le=>Le.ref===Q)?.value;if(oe.key===_.END?ke=ge.at(-1)?.value:oe.key===_.HOME&&(ke=ge[0]?.value),!ke||!S.value)return;const $e=Nt(ge.map(Le=>Le.value),S.value,ke);w.value=$e}}async function be(oe,Q=!0){if(Ws)if(await De(),A.value)q.trigger({event:oe,scroll:Q});else{const J=Z(),ge=J.find($e=>$e.dataset.state==="checked"),ke=Q?void 0:!1;ge?ce(ge,Q,ke):J.length&&ce(J[0],Q,ke)}}let xe=!1;return fe(w,()=>{if(!T.value){const oe=xe;xe=!0,De(()=>{be(void 0,oe)})}},{immediate:!0,deep:!0}),l({highlightedElement:F,highlightItem:ne,highlightFirstItem:he,highlightSelected:be,getItems:b}),oo({modelValue:w,onValueChange:E,multiple:u,orientation:c,dir:C,disabled:g,highlightOnHover:o,highlightedElement:F,isVirtual:A,virtualFocusHook:q,virtualKeydownHook:Y,virtualHighlightHook:G,by:n.by,firstValue:S,selectionBehavior:h,focusable:v,onLeave:ee,onEnter:te,changeHighlight:ce,onKeydownEnter:H,onKeydownNavigation:j,onKeydownTypeAhead:W,onCompositionStart:re,onCompositionEnd:ve,highlightFirstItem:he}),(oe,Q)=>(r(),U(t(He),{ref_key:"primitiveElement",ref:k,as:oe.as,"as-child":oe.asChild,dir:t(C),"data-disabled":t(g)?"":void 0,onPointerleave:ee,onFocusout:Q[0]||(Q[0]=async J=>{const ge=J.relatedTarget||J.target;await De(),F.value&&t(x)&&!t(x).contains(ge)&&ee(J)})},{default:B(()=>[ye(oe.$slots,"default",{modelValue:t(w)}),t($)&&oe.name?(r(),U(t(Qa),{key:0,name:oe.name,value:t(w),disabled:t(g),required:oe.required},null,8,["name","value","disabled","required"])):R("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),ro=lo,io=ue({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const{CollectionSlot:l}=Ct(),e=Rt(),n=Xa(!1,10);return(s,u)=>(r(),U(t(l),null,{default:B(()=>[p(t(He),{role:"listbox",as:s.as,"as-child":s.asChild,tabindex:t(e).focusable.value?t(e).highlightedElement.value?"-1":"0":"-1","aria-orientation":t(e).orientation.value,"aria-multiselectable":!!t(e).multiple.value,"data-orientation":t(e).orientation.value,onMousedown:u[0]||(u[0]=Oe(o=>n.value=!0,["left"])),onFocus:u[1]||(u[1]=o=>{t(n)||t(e).onEnter(o)}),onKeydown:[u[2]||(u[2]=Ge(o=>{t(e).orientation.value==="vertical"&&(o.key==="ArrowLeft"||o.key==="ArrowRight")||t(e).orientation.value==="horizontal"&&(o.key==="ArrowUp"||o.key==="ArrowDown")||(o.preventDefault(),t(e).focusable.value&&t(e).onKeydownNavigation(o))},["down","up","left","right","home","end"])),Ge(t(e).onKeydownEnter,["enter"]),t(e).onKeydownTypeAhead]},{default:B(()=>[ye(s.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),uo=io,co=ue({__name:"ListboxFilter",props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,s=wt(e,"modelValue",l,{defaultValue:"",passive:e.modelValue===void 0}),u=Rt(),{primitiveElement:o,currentElement:c}=Et(),g=M(()=>e.disabled||u.disabled.value||!1),h=z();Ks(()=>h.value=u.highlightedElement.value?.id),Re(()=>{u.focusable.value=!1,setTimeout(()=>{e.autoFocus&&c.value?.focus()},1)}),tt(()=>{u.focusable.value=!0});const{isComposing:f,handleCompositionStart:b,handleCompositionEnd:y}=ba($=>{s.value=$.target.value,u.onCompositionEnd(),u.highlightFirstItem()});function k(){u.onCompositionStart(),b()}function x($){f.value||(s.value=$.target.value,u.highlightFirstItem())}function _($){f.value||($.preventDefault(),u.onKeydownNavigation($))}function C($){f.value||u.onKeydownEnter($)}return($,S)=>(r(),U(t(He),{ref_key:"primitiveElement",ref:o,as:$.as,"as-child":$.asChild,value:t(s),disabled:g.value?"":void 0,"data-disabled":g.value?"":void 0,"aria-disabled":g.value??void 0,"aria-activedescendant":h.value,type:"text",onKeydown:[Ge(_,["down","up","home","end"]),Ge(C,["enter"])],onInput:x,onCompositionstart:k,onCompositionend:t(y)},{default:B(()=>[ye($.$slots,"default",{modelValue:t(s)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onCompositionend"]))}}),mo=co;const[Pw,go]=ct("ListboxGroup");var po=ue({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,e=xt(void 0,"reka-listbox-group");return go({id:e}),(n,s)=>(r(),U(t(He),ze({role:"group"},l,{"aria-labelledby":t(e)}),{default:B(()=>[ye(n.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),ho=po;const fo="listbox.select",[vo,yo]=ct("ListboxItem");var xo=ue({__name:"ListboxItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},emits:["select"],setup(i,{emit:l}){const e=i,n=l,s=xt(void 0,"reka-listbox-item"),{CollectionItem:u}=Ct(),{forwardRef:o,currentElement:c}=Je(),g=Rt(),h=M(()=>c.value!=null&&c.value===g.highlightedElement.value),f=M(()=>no(g.modelValue.value,e.value,g.by)),b=M(()=>g.disabled.value||e.disabled);async function y(x){n("select",x),!x?.defaultPrevented&&!b.value&&x&&(g.onValueChange(e.value),g.changeHighlight(c.value))}function k(x){const _={originalEvent:x,value:e.value};Gs(fo,y,_)}return yo({isSelected:f}),(x,_)=>(r(),U(t(u),{value:x.value},{default:B(()=>[Ys([h.value,f.value,b.value,t(g).focusable.value],()=>p(t(He),ze({id:t(s)},x.$attrs,{ref:t(o),role:"option",tabindex:t(g).focusable.value?h.value?"0":"-1":-1,"aria-selected":f.value,as:x.as,"as-child":x.asChild,disabled:b.value?"":void 0,"data-disabled":b.value?"":void 0,"data-highlighted":h.value?"":void 0,"data-state":f.value?"checked":"unchecked",onClick:k,onKeydown:Ge(Oe(k,["prevent"]),["space"]),onPointermove:_[0]||(_[0]=()=>{t(g).highlightedElement.value!==t(c)&&t(g).highlightOnHover.value&&t(g).changeHighlight(t(c),!1,!1)})}),{default:B(()=>[ye(x.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),_,1)]),_:3},8,["value"]))}}),bo=xo,ko=ue({__name:"ListboxItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const l=i;Je();const e=vo();return(n,s)=>t(e).isSelected.value?(r(),U(t(He),ze({key:0,"aria-hidden":"true"},l),{default:B(()=>[ye(n.$slots,"default")]),_:3},16)):R("v-if",!0)}}),_o=ko;function wo(i,l,e){const n=new Array(i);return new Proxy(n,{get(s,u,o){if(typeof u=="string"){const c=u.charCodeAt(0);if(c>=48&&c<=57){const g=+u;if(Number.isInteger(g)&&g>=0&&g<i){let h=s[g];if(!h){const f=l[g*2];h=s[g]={index:g,key:e(g),start:f,size:l[g*2+1],end:f+l[g*2+1],lane:0}}return h}}if(u==="length")return i}return Reflect.get(s,u,o)}})}function _t(i,l,e){let n=e.initialDeps??[],s,u=!0;function o(){const c=i();return(c.length!==n.length||c.some((h,f)=>n[f]!==h))&&(n=c,s=l(...c),e?.onChange&&!(u&&e.skipInitialOnChange)&&e.onChange(s),u=!1),s}return o.updateDeps=c=>{n=c},o}function Ua(i,l){if(i===void 0)throw new Error("Unexpected undefined");return i}const $o=(i,l)=>Math.abs(i-l)<1.01,Co=(i,l,e)=>{let n;return function(...s){i.clearTimeout(n),n=i.setTimeout(()=>l.apply(this,s),e)}};let Mt;const la=()=>{if(Mt!==void 0)return Mt;if(typeof navigator>"u")return Mt=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Mt=!0;const i=navigator.maxTouchPoints;return Mt=navigator.platform==="MacIntel"&&i!==void 0&&i>0},Wa=i=>{const{offsetWidth:l,offsetHeight:e}=i;return{width:l,height:e}},So=i=>i,Io=i=>{const l=Math.max(i.startIndex-i.overscan,0),n=Math.min(i.endIndex+i.overscan,i.count-1)-l+1,s=new Array(n);for(let u=0;u<n;u++)s[u]=l+u;return s},To=(i,l)=>{const e=i.scrollElement;if(!e)return;const n=i.targetWindow;if(!n)return;const s=o=>{const{width:c,height:g}=o;l({width:Math.round(c),height:Math.round(g)})};if(s(Wa(e)),!n.ResizeObserver)return()=>{};const u=new n.ResizeObserver(o=>{const c=()=>{const g=o[0];if(g?.borderBoxSize){const h=g.borderBoxSize[0];if(h){s({width:h.inlineSize,height:h.blockSize});return}}s(Wa(e))};i.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(c):c()});return u.observe(e,{box:"border-box"}),()=>{u.unobserve(e)}},Yt={passive:!0},Mo=typeof window>"u"?!0:"onscrollend"in window,Ao=(i,l,e)=>{const n=i.scrollElement;if(!n)return;const s=i.targetWindow;if(!s)return;const u=i.options.useScrollendEvent&&Mo;let o=0;const c=u?null:Co(s,()=>l(o,!1),i.options.isScrollingResetDelay),g=b=>()=>{o=e(n),c?.(),l(o,b)},h=g(!0),f=g(!1);return n.addEventListener("scroll",h,Yt),u&&n.addEventListener("scrollend",f,Yt),()=>{n.removeEventListener("scroll",h),u&&n.removeEventListener("scrollend",f)}},zo=(i,l)=>Ao(i,l,e=>{const{horizontal:n,isRtl:s}=i.options;return n?e.scrollLeft*(s&&-1||1):e.scrollTop}),qo=(i,l,e)=>{if(e.options.useCachedMeasurements){const n=e.indexFromElement(i),s=e.options.getItemKey(n);return e.itemSizeCache.get(s)??e.options.estimateSize(n)}if(l?.borderBoxSize){const n=l.borderBoxSize[0];if(n)return Math.round(n[e.options.horizontal?"inlineSize":"blockSize"])}if(!l){const n=e.indexFromElement(i),s=e.options.getItemKey(n),u=e.itemSizeCache.get(s);if(u!==void 0)return u}return i[e.options.horizontal?"offsetWidth":"offsetHeight"]},Lo=(i,{adjustments:l=0,behavior:e},n)=>{var s,u;(u=(s=n.scrollElement)==null?void 0:s.scrollTo)==null||u.call(s,{[n.options.horizontal?"left":"top"]:i+l,behavior:e})},Do=Lo;class Eo{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e,n,s;return((s=(n=(e=this.targetWindow)==null?void 0:e.performance)==null?void 0:n.now)==null?void 0:s.call(n))??Date.now()},this.observer=(()=>{let e=null;const n=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(s=>{s.forEach(u=>{const o=()=>{const c=u.target,g=this.indexFromElement(c);if(!c.isConnected){this.observer.unobserve(c);for(const[h,f]of this.elementsCache)if(f===c){this.elementsCache.delete(h);break}return}this.shouldMeasureDuringScroll(g)&&this.resizeItem(g,this.options.measureElement(c,u,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=n())==null||s.disconnect(),e=null},observe:s=>{var u;return(u=n())==null?void 0:u.observe(s,{box:"border-box"})},unobserve:s=>{var u;return(u=n())==null?void 0:u.unobserve(s)}}})(),this.range=null,this.setOptions=e=>{var n,s;const u={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:So,rangeExtractor:Io,onChange:()=>{},measureElement:qo,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const y in e){const k=e[y];k!==void 0&&(u[y]=k)}const o=this.options;let c=null,g=null,h=!1;if(o!==void 0&&o.enabled&&u.enabled&&u.anchorTo==="end"&&this.scrollElement!==null){const y=o.count,k=u.count,x=this.getMeasurements(),_=y>0?((n=x[0])==null?void 0:n.key)??o.getItemKey(0):null,C=y>0?((s=x[y-1])==null?void 0:s.key)??o.getItemKey(y-1):null;if(k!==y||y>0&&k>0&&(u.getItemKey(0)!==_||u.getItemKey(k-1)!==C)){h=!0;const T=y>0?this.getVirtualItemForOffset(this.getScrollOffset())??x[0]:null;T&&(c=[T.key,this.getScrollOffset()-T.start]);const v=u.followOnAppend===!0?"auto":u.followOnAppend||null;v&&k>y&&this.isAtEnd(o.scrollEndThreshold)&&(y===0||u.getItemKey(k-1)!==C)&&(g=v)}}this.options=u,h&&(this.pendingMin=0,this.itemSizeCacheVersion++);let f=!1,b=0;if(c&&this.scrollOffset!==null){const[y,k]=c,x=this.getMeasurements(),{count:_,getItemKey:C}=this.options;let $=0;for(;$<_&&C($)!==y;)$++;if($<_){const S=x[$];if(S){const T=S.start+k;T!==this.scrollOffset&&(b=T-this.scrollOffset,this.scrollOffset=T,f=!0)}}}(f||g)&&(this.pendingScrollAnchor=[f?c[0]:null,f?c[1]:0,g,b])},this.notify=e=>{var n,s;(s=(n=this.options).onChange)==null||s.call(n,this,e)},this.maybeNotify=_t(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const n=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==n){if(this.cleanup(),!n){this.maybeNotify();return}if(this.scrollElement=n,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(u=>{this.observer.observe(u)}),this.unsubs.push(this.options.observeElementRect(this,u=>{this.scrollRect=u,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(u,o)=>{if(o&&this._intendedScrollOffset===null&&u===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(u-this._intendedScrollOffset)<1.5&&(u=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const c=this.getScrollOffset();this.scrollDirection=o?c===u?this.scrollDirection:c<u?"forward":"backward":null,this.scrollOffset=u,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const u=this.scrollElement,o=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},c=()=>{this._iosTouching=!1,!(!la()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};u.addEventListener("touchstart",o,Yt),u.addEventListener("touchend",c,Yt),this.unsubs.push(()=>{u.removeEventListener("touchstart",o),u.removeEventListener("touchend",c),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[u,o,c,g]=s;u!==null&&!c&&(la()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?g!==0&&(this._iosDeferredAdjustment+=g):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),c&&this.scrollToEnd({behavior:c})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const e=this.getScrollOffset(),n=this.getMaxScrollOffset();if(e<0||e>n)return;const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=_t(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,n,s,u,o,c,g,h)=>(this.prevLanes!==void 0&&this.prevLanes!==c&&(this.lanesChangedFlag=!0),this.prevLanes=c,this.pendingMin=null,{count:e,paddingStart:n,scrollMargin:s,getItemKey:u,enabled:o,lanes:c,laneAssignmentMode:g,gap:h}),{key:!1}),this.getMeasurements=_t(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:n,scrollMargin:s,getItemKey:u,enabled:o,lanes:c,laneAssignmentMode:g,gap:h},f)=>{const b=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const $ of this.laneAssignments.keys())$>=e&&this.laneAssignments.delete($);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach($=>{this.itemSizeCache.set($.key,$.size)}));const y=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),c===1){const $=e*2;let S=this._flatMeasurements;if(!S||S.length<$){const w=new Float64Array($);S&&y>0&&w.set(S.subarray(0,y*2)),S=w,this._flatMeasurements=S}let T;if(y===0)T=n+s;else{const w=y-1;T=S[w*2]+S[w*2+1]+h}for(let w=y;w<e;w++){const E=u(w),F=b.get(E),D=typeof F=="number"?F:this.options.estimateSize(w);S[w*2]=T,S[w*2+1]=D,T+=D+h}const v=wo(e,S,u);return this.measurementsCache=v,v}const k=this.measurementsCache.slice(0,y),x=new Array(c).fill(void 0),_=new Float64Array(c);let C=0;for(let $=0;$<y;$++){const S=k[$];S&&(x[S.lane]===void 0&&C++,x[S.lane]=$,_[S.lane]=S.end)}for(let $=y;$<e;$++){const S=u($),T=this.laneAssignments.get($);let v,w;const E=g==="estimate"||b.has(S);if(T!==void 0&&this.options.lanes>1){v=T;const I=x[v],q=I!==void 0?k[I]:void 0;w=q?q.end+h:n+s}else if(C===c){let I=0,q=_[0],Y=x[0];for(let G=1;G<c;G++){const Z=_[G];(Z<q||Z===q&&x[G]<Y)&&(I=G,q=Z,Y=x[G])}v=I,w=q+h,E&&this.laneAssignments.set($,v)}else v=$%this.options.lanes,w=n+s,E&&this.laneAssignments.set($,v);const F=b.get(S),D=typeof F=="number"?F:this.options.estimateSize($),A=w+D;k[$]={index:$,start:w,size:D,end:A,key:S,lane:v},x[v]===void 0&&C++,x[v]=$,_[v]=A}return this.measurementsCache=k,k},{key:!1,debug:()=>this.options.debug}),this.calculateRange=_t(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,n,s,u)=>e.length===0||n===0?(this.range=null,null):(this.range=Fo(e,n,s,u,u===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=_t(()=>{let e=null,n=null;const s=this.calculateRange();return s&&(e=s.startIndex,n=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,n]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,n]},(e,n,s,u,o)=>u===null||o===null?[]:e({startIndex:u,endIndex:o,overscan:n,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const n=this.options.indexAttribute,s=e.getAttribute(n);return s?parseInt(s,10):(console.warn(`Missing attribute name '${n}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var n;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((n=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:n.index);if(s!==void 0&&this.range){const u=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-u),c=Math.min(this.options.count-1,s+u);return e>=o&&e<=c}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((o,c)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(c))});return}const n=this.indexFromElement(e),s=this.options.getItemKey(n),u=this.elementsCache.get(s);u!==e&&(u&&this.observer.unobserve(u),this.observer.observe(e),this.elementsCache.set(s,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,n)=>{var s,u;if(e<0||e>=this.options.count)return;let o,c,g;const h=this._flatMeasurements;if(this.options.lanes===1&&h!==null)g=this.options.getItemKey(e),c=h[e*2],o=h[e*2+1];else{const y=this.measurementsCache[e];if(!y)return;g=y.key,c=y.start,o=y.size}const f=this.itemSizeCache.get(g)??o,b=n-f;if(b!==0){const y=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,k=y?this.getTotalSize():0,x=((u=this.scrollState)==null?void 0:u.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:g,start:c,size:o,end:c+o,lane:0},b,this):c<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(g)||this.scrollDirection!=="backward"));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(g,n),this.itemSizeCacheVersion++,y?this.applyScrollAdjustment(this.getTotalSize()-k):x&&this.applyScrollAdjustment(b),this.notify(!1)}},this.getVirtualItems=_t(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,n)=>{const s=[];for(let u=0,o=e.length;u<o;u++){const c=e[u],g=n[c];s.push(g)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const n=this.getMeasurements();if(n.length===0)return;const s=this._flatMeasurements,u=this.options.lanes===1&&s!=null,o=xs(0,n.length-1,u?c=>s[c*2]:c=>Ua(n[c]).start,e);return Ua(n[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,n,s=0)=>{if(!this.scrollElement)return 0;const u=this.getSize(),o=this.getScrollOffset();n==="auto"&&(n=e>=o+u?"end":"start"),n==="center"?e+=(s-u)/2:n==="end"&&(e-=u);const c=this.getMaxScrollOffset();return Math.max(Math.min(c,e),0)},this.getOffsetForIndex=(e,n="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.getSize(),u=this.getScrollOffset(),o=this.measurementsCache[e];if(!o)return;if(n==="auto")if(o.end>=u+s-this.options.scrollPaddingEnd)n="end";else if(o.start<=u+this.options.scrollPaddingStart)n="start";else return[u,n];if(n==="end"&&e===this.options.count-1)return[this.getMaxScrollOffset(),n];const c=n==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(c,n,o.size),n]},this.scrollToOffset=(e,{align:n="start",behavior:s="auto"}={})=>{const u=this.getOffsetForAlignment(e,n),o=this.now();this.scrollState={index:null,align:n,behavior:s,startedAt:o,lastTargetOffset:u,stableFrames:0},this._scrollToOffset(u,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:n="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));const u=this.getOffsetForIndex(e,n);if(!u)return;const[o,c]=u,g=this.now();this.scrollState={index:e,align:c,behavior:s,startedAt:g,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:n="auto"}={})=>{const s=this.getScrollOffset()+e,u=this.now();this.scrollState={index:null,align:"start",behavior:n,startedAt:u,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{var e;const n=this.getMeasurements();let s;if(n.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const u=n.length-1,o=this._flatMeasurements;o!=null?s=o[u*2]+o[u*2+1]:s=((e=n[u])==null?void 0:e.end)??0}else{const u=Array(this.options.lanes).fill(null);let o=n.length-1;for(;o>=0&&u.some(c=>c===null);){const c=n[o];u[c.lane]===null&&(u[c.lane]=c.end),o--}s=Math.max(...u.filter(c=>c!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const e=[];if(this.itemSizeCache.size===0)return e;const n=this.getMeasurements();for(const s of n)s&&this.itemSizeCache.has(s.key)&&e.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return e},this._scrollToOffset=(e,{adjustments:n,behavior:s})=>{this._intendedScrollOffset=e+(n??0),this.options.scrollToFn(e,{behavior:s,adjustments:n},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(l)}applyScrollAdjustment(l,e){l!==0&&(la()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=l:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=l,behavior:e}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const n=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=n?n[0]:this.scrollState.lastTargetOffset,u=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&$o(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=u){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const c=this.getSize()||600,g=Math.abs(s-this.getScrollOffset()),h=this.scrollState.behavior==="smooth"&&g>c;this.scrollState.lastTargetOffset=s,h||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:h?"smooth":"auto"})}this.scheduleScrollReconcile()}}const xs=(i,l,e,n)=>{for(;i<=l;){const s=(i+l)/2|0,u=e(s);if(u<n)i=s+1;else if(u>n)l=s-1;else return s}return i>0?i-1:0};function Bo(i,l,e){let n=0;for(;n<=l;){const s=(n+l)/2|0,u=i[s*2];if(u<e)n=s+1;else if(u>e)l=s-1;else return s}return n>0?n-1:0}function Fo(i,l,e,n,s){const u=i.length-1;if(i.length<=n)return{startIndex:0,endIndex:u};if(n===1&&s!==null){const h=Bo(s,u,e);let f=h;const b=e+l;for(;f<u&&s[f*2]+s[f*2+1]<b;)f++;return{startIndex:h,endIndex:f}}let c=xs(0,u,h=>i[h].start,e),g=c;if(n===1)for(;g<u&&i[g].end<e+l;)g++;else if(n>1){const h=Array(n).fill(0);for(;g<u&&h.some(b=>b<e+l);){const b=i[g];h[b.lane]=b.end,g++}const f=Array(n).fill(e+l);for(;c>=0&&f.some(b=>b>=e);){const b=i[c];f[b.lane]=b.start,c--}c=Math.max(0,c-c%n),g=Math.min(u,g+(n-1-g%n))}return{startIndex:c,endIndex:g}}function Ro(i){const l=new Eo(t(i)),e=Js(l),n=l._didMount();return fe(()=>t(i).getScrollElement(),s=>{s&&l._willUpdate()},{immediate:!0}),fe(()=>t(i),s=>{l.setOptions({...s,onChange:(u,o)=>{var c;Fa(e),(c=s.onChange)==null||c.call(s,u,o)}}),l._willUpdate(),Fa(e)},{immediate:!0}),Qs(n),e}function Vo(i){return Ro(M(()=>({observeElementRect:To,observeElementOffset:zo,scrollToFn:Do,...t(i)})))}var Oo=ue({__name:"ListboxVirtualizer",props:{options:{type:Array,required:!0},overscan:{type:Number,required:!1},estimateSize:{type:[Number,Function],required:!1},textContent:{type:Function,required:!1}},setup(i){const l=i,e=Qt(),n=Rt(),s=Xs(),{getItems:u}=Ct();n.isVirtual.value=!0;const o=M(()=>{const y=s.value;if(y){const k=window.getComputedStyle(y);return{start:Number.parseFloat(k.paddingBlockStart||k.paddingTop),end:Number.parseFloat(k.paddingBlockEnd||k.paddingBottom)}}else return{start:0,end:0}}),c=Vo({get scrollPaddingStart(){return o.value.start},get scrollPaddingEnd(){return o.value.end},get count(){return l.options.length},get horizontal(){return n.orientation.value==="horizontal"},estimateSize(y){return typeof l.estimateSize=="function"?l.estimateSize(y):l.estimateSize??28},getScrollElement(){return s.value},overscan:l.overscan??12}),g=M(()=>c.value.getVirtualItems().map(y=>{const k=e.default({option:l.options[y.index],virtualizer:c.value,virtualItem:y})[0],x=k.type===ie&&Array.isArray(k.children)?k.children.find(_=>typeof _.type!="symbol"):k;return{item:y,is:tn(x,{key:`${y.key}`,"data-index":y.index,"aria-setsize":l.options.length,"aria-posinset":y.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${y.start}px)`,overflowAnchor:"none"}})}}));n.virtualFocusHook.on(({event:y,scroll:k})=>{const x=l.options.findIndex(_=>Array.isArray(n.modelValue.value)?it(_,n.modelValue.value[0],n.by):it(_,n.modelValue.value,n.by));x!==-1?(y?.preventDefault(),c.value.scrollToIndex(x,{align:"start"}),requestAnimationFrame(()=>{const _=Na(s.value);_&&(n.changeHighlight(_,k,k?void 0:!1),y&&_?.focus())})):k?n.highlightFirstItem():requestAnimationFrame(()=>{const _=u().find(C=>C.ref.dataset.disabled!=="")?.ref;_&&n.changeHighlight(_,!1,!1)})}),n.virtualHighlightHook.on(y=>{const k=l.options.findIndex(x=>it(x,y,n.by));c.value.scrollToIndex(k,{align:"start"}),requestAnimationFrame(()=>{const x=Na(s.value);x&&n.changeHighlight(x)})});const h=Xa("",1e3),f=M(()=>{const y=k=>l.textContent?l.textContent(k):k?.toString().toLowerCase();return l.options.map((k,x)=>({index:x,textContent:y(k)}))});function b(y,k){if(!n.firstValue?.value||!n.multiple.value||!Array.isArray(n.modelValue.value))return;const _=u().filter($=>$.ref.dataset.disabled!=="").find($=>$.ref===n.highlightedElement.value)?.value;if(!_)return;let C=null;switch(k){case"prev":case"next":{C=Nt(l.options,n.firstValue.value,_);break}case"first":{C=Nt(l.options,n.firstValue.value,l.options?.[0]);break}case"last":{C=Nt(l.options,n.firstValue.value,l.options.at(-1));break}}n.modelValue.value=C}return n.virtualKeydownHook.on(y=>{const k=y.altKey||y.ctrlKey||y.metaKey;if(y.key==="Tab"&&!k)return;let _=Zs[y.key];if(k&&y.key==="a"&&n.multiple.value?(y.preventDefault(),n.modelValue.value=[...l.options],_="last"):y.shiftKey&&_&&b(y,_),["first","last"].includes(_)){y.preventDefault();const C=_==="first"?0:l.options.length-1;c.value.scrollToIndex(C),requestAnimationFrame(()=>{const $=u(),S=_==="first"?$[0]:$.at(-1);S&&n.changeHighlight(S.ref)})}else if(!_&&!k){h.value+=y.key;const C=Number(Za()?.getAttribute("data-index")),$=f.value[C].textContent,S=f.value.map(w=>w.textContent??""),T=en(S,h.value,$),v=f.value.find(w=>w.textContent===T);v&&(c.value.scrollToIndex(v.index,{align:"start"}),requestAnimationFrame(()=>{const w=s.value.querySelector(`[data-index="${v.index}"]`);w instanceof HTMLElement&&n.changeHighlight(w)}))}}),(y,k)=>(r(),m("div",{"data-reka-virtualizer":"",style:et({position:"relative",width:"100%",height:`${t(c).getTotalSize()}px`})},[(r(!0),m(ie,null,pe(g.value,({is:x,item:_})=>(r(),U(es(x),{key:_.index}))),128))],4))}}),Po=Oo;const[at,jo]=ct("ComboboxRoot");var No=ue({__name:"ComboboxRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!0},resetSearchTermOnSelect:{type:Boolean,required:!1,default:!0},openOnFocus:{type:Boolean,required:!1,default:!1},openOnClick:{type:Boolean,required:!1,default:!1},ignoreFilter:{type:Boolean,required:!1},resetModelValueOnClear:{type:Boolean,required:!1,default:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","update:open"],setup(i,{expose:l,emit:e}){const n=i,s=e,{primitiveElement:u,currentElement:o}=Et(),{multiple:c,disabled:g,ignoreFilter:h,resetSearchTermOnSelect:f,openOnFocus:b,openOnClick:y,dir:k,resetModelValueOnClear:x,highlightOnHover:_}=Dt(n),C=xa(k),$=wt(n,"modelValue",s,{defaultValue:n.defaultValue??(c.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),S=wt(n,"open",s,{defaultValue:n.defaultOpen,passive:n.open===void 0});async function T(ne){S.value=ne,G.value="",ne?(await De(),u.value?.highlightSelected(),w.value=!0,F.value?.focus()):(w.value=!1,setTimeout(()=>{!ne&&n.resetSearchTermOnBlur&&v.trigger()},1))}const v=jt(),w=z(!1),E=z(!1),F=z(),D=z(),A=M(()=>u.value?.highlightedElement??void 0),I=z(new Map),q=z(new Map),{contains:Y}=ys({sensitivity:"base"}),G=z(""),Z=M(ne=>{if(!G.value||n.ignoreFilter||E.value)return{count:I.value.size,items:ne?.items??new Map,groups:ne?.groups??new Set(q.value.keys())};let H=0;const W=new Map,re=new Set;for(const[ve,he]of I.value){const ee=Y(he,G.value);W.set(ve,ee?1:0),ee&&H++}for(const[ve,he]of q.value)for(const ee of he)if(W.get(ee)>0){re.add(ve);break}return{count:H,items:W,groups:re}}),ce=sn();return Re(()=>{ce?.exposed&&(ce.exposed.highlightItem=u.value?.highlightItem,ce.exposed.highlightFirstItem=u.value?.highlightFirstItem,ce.exposed.highlightSelected=u.value?.highlightSelected)}),l({filtered:Z,highlightedElement:A,highlightItem:u.value?.highlightItem,highlightFirstItem:u.value?.highlightFirstItem,highlightSelected:u.value?.highlightSelected}),jo({modelValue:$,multiple:c,disabled:g,open:S,onOpenChange:T,contentId:"",isUserInputted:w,isVirtual:E,inputElement:F,highlightedElement:A,onInputElementChange:ne=>F.value=ne,triggerElement:D,onTriggerElementChange:ne=>D.value=ne,parentElement:o,resetSearchTermOnSelect:f,onResetSearchTerm:v.on,allItems:I,allGroups:q,filterSearch:G,filterState:Z,ignoreFilter:h,openOnFocus:b,openOnClick:y,resetModelValueOnClear:x}),(ne,H)=>(r(),U(t(an),null,{default:B(()=>[p(t(ro),ze({ref_key:"primitiveElement",ref:u},ne.$attrs,{modelValue:t($),"onUpdate:modelValue":H[0]||(H[0]=W=>ts($)?$.value=W:null),style:{pointerEvents:t(S)?"auto":void 0},as:ne.as,"as-child":ne.asChild,dir:t(C),multiple:t(c),name:ne.name,required:ne.required,disabled:t(g),"highlight-on-hover":t(_),by:n.by,onHighlight:H[1]||(H[1]=W=>s("highlight",W))}),{default:B(()=>[ye(ne.$slots,"default",{open:t(S),modelValue:t($)})]),_:3},16,["modelValue","style","as","as-child","dir","multiple","name","required","disabled","highlight-on-hover","by"])]),_:3}))}}),Uo=No,Wo=ue({__name:"ComboboxAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const{forwardRef:l}=Je();return(e,n)=>(r(),U(t(nn),{"as-child":"",reference:e.reference},{default:B(()=>[p(t(He),ze({ref:t(l),"as-child":e.asChild,as:e.as},e.$attrs),{default:B(()=>[ye(e.$slots,"default")]),_:3},16,["as-child","as"])]),_:3},8,["reference"]))}}),Ho=Wo;const[Ko,Yo]=ct("ComboboxContent");var Go=ue({__name:"ComboboxContentImpl",props:{position:{type:String,required:!1,default:"inline"},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(i,{emit:l}){const e=i,n=l,{position:s}=Dt(e),u=at(),o=M(()=>u.ignoreFilter.value?u.allItems.value.size===0:u.filterState.value.count===0),{forwardRef:c,currentElement:g}=Je();on(e.bodyLock),ln(),rn(u.parentElement);const h=M(()=>e.position==="popper"?e:{}),f=un(h.value),b={boxSizing:"border-box","--reka-combobox-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-combobox-content-available-width":"var(--reka-popper-available-width)","--reka-combobox-content-available-height":"var(--reka-popper-available-height)","--reka-combobox-trigger-width":"var(--reka-popper-anchor-width)","--reka-combobox-trigger-height":"var(--reka-popper-anchor-height)"};Yo({position:s});const y=z(!1);Re(()=>{u.inputElement.value&&(y.value=g.value.contains(u.inputElement.value),y.value&&u.inputElement.value.focus())}),tt(()=>{const x=Za();y.value&&(!x||x===document.body)&&u.triggerElement.value?.focus()});function k(x){if(u.parentElement.value?.contains(x))return!0;const C=(x instanceof Element?x.closest("label"):null)?.control;return!!C&&!!u.parentElement.value?.contains(C)}return(x,_)=>(r(),U(t(uo),{"as-child":""},{default:B(()=>[p(t(as),{"as-child":"",onMountAutoFocus:_[5]||(_[5]=Oe(()=>{},["prevent"])),onUnmountAutoFocus:_[6]||(_[6]=Oe(()=>{},["prevent"]))},{default:B(()=>[p(t(cn),{"as-child":"","disable-outside-pointer-events":x.disableOutsidePointerEvents,onDismiss:_[0]||(_[0]=C=>t(u).onOpenChange(!1)),onFocusOutside:_[1]||(_[1]=C=>{k(C.target)&&C.preventDefault(),n("focusOutside",C)}),onInteractOutside:_[2]||(_[2]=C=>n("interactOutside",C)),onEscapeKeyDown:_[3]||(_[3]=C=>n("escapeKeyDown",C)),onPointerDownOutside:_[4]||(_[4]=C=>{k(C.target)&&C.preventDefault(),n("pointerDownOutside",C)})},{default:B(()=>[(r(),U(es(t(s)==="popper"?t(dn):t(He)),ze({...x.$attrs,...t(f)},{id:t(u).contentId,ref:t(c),"data-state":t(u).open.value?"open":"closed","data-empty":o.value?"":void 0,style:{display:e.hideWhenEmpty&&o.value?"none":"flex",flexDirection:"column",outline:"none",...t(s)==="popper"?b:{}}}),{default:B(()=>[ye(x.$slots,"default")]),_:3},16,["id","data-state","data-empty","style"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Qo=Go,Jo=ue({__name:"ComboboxArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(i){const l=i,e=at(),n=Ko();return Je(),(s,u)=>t(e).open.value&&t(n).position.value==="popper"?(r(),U(t(mn),ht(ze({key:0},l)),{default:B(()=>[ye(s.$slots,"default")]),_:3},16)):R("v-if",!0)}}),Xo=Jo,Zo=ue({__name:"ComboboxCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i;Je();const e=at();function n(){e.filterSearch.value="",e.inputElement.value&&(e.inputElement.value.value="",e.inputElement.value.focus()),e.resetModelValueOnClear?.value&&(e.modelValue.value=e.multiple.value?[]:null)}return(s,u)=>(r(),U(t(He),ze({type:s.as==="button"?"button":void 0},l,{tabindex:"-1",onClick:n}),{default:B(()=>[ye(s.$slots,"default")]),_:3},16,["type"]))}}),el=Zo,tl=ue({__name:"ComboboxContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(i,{emit:l}){const s=gn(i,l),{forwardRef:u}=Je(),o=at();return o.contentId||=xt(void 0,"reka-combobox-content"),(c,g)=>(r(),U(t(pn),{present:c.forceMount||t(o).open.value},{default:B(()=>[p(Qo,ze({...t(s),...c.$attrs},{ref:t(u)}),{default:B(()=>[ye(c.$slots,"default")]),_:3},16)]),_:3},8,["present"]))}}),al=tl,sl=ue({__name:"ComboboxEmpty",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,e=at(),n=M(()=>e.ignoreFilter.value?e.allItems.value.size===0:e.filterState.value.count===0);return(s,u)=>n.value?(r(),U(t(He),ht(ze({key:0},l)),{default:B(()=>[ye(s.$slots,"default",{},()=>[u[0]||(u[0]=le("No options"))])]),_:3},16)):R("v-if",!0)}}),nl=sl;const[bs,ol]=ct("ComboboxGroup");var ll=ue({__name:"ComboboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,e=xt(void 0,"reka-combobox-group"),n=at(),s=M(()=>n.ignoreFilter.value?!0:n.filterSearch.value?n.filterState.value.groups.has(e):!0),u=ol({id:e,labelId:""});return Re(()=>{n.allGroups.value.has(e)||n.allGroups.value.set(e,new Set)}),tt(()=>{n.allGroups.value.delete(e)}),(o,c)=>(r(),U(t(ho),ze({id:t(e),"aria-labelledby":t(u).labelId},l,{hidden:s.value?void 0:!0}),{default:B(()=>[ye(o.$slots,"default")]),_:3},16,["id","aria-labelledby","hidden"]))}}),ra=ll,rl=ue({__name:"ComboboxInput",props:{displayValue:{type:Function,required:!1},modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,n=l,s=at(),u=Rt(),{primitiveElement:o,currentElement:c}=Et(),g=wt(e,"modelValue",n,{passive:e.modelValue===void 0});Re(()=>{c.value&&s.onInputElementChange(c.value)});const{isComposing:h,handleCompositionStart:f,handleCompositionEnd:b}=ba(T=>{const v=T.target;v&&k(v.value)});function y(T){h.value||(T.preventDefault(),s.open.value||s.onOpenChange(!0))}function k(T){s.open.value?s.filterSearch.value=T:(s.onOpenChange(!0),De(()=>{T&&(s.filterSearch.value=T,u.highlightFirstItem())}))}function x(T){h.value||k(T.target.value)}function _(){s.openOnFocus.value&&!s.open.value&&s.onOpenChange(!0)}function C(T){if(!s.open.value)return;const v=T.relatedTarget;if(!v)return;const w=s.parentElement.value?.contains(v),E=document.getElementById(s.contentId)?.contains(v);!w&&!E&&requestAnimationFrame(()=>{if(!s.open.value)return;const F=document.activeElement;!s.parentElement.value?.contains(F)&&!document.getElementById(s.contentId)?.contains(F)&&s.onOpenChange(!1)})}function $(){s.openOnClick.value&&!s.open.value&&s.onOpenChange(!0)}function S(){const T=s.modelValue.value;e.displayValue?g.value=e.displayValue(T):!s.multiple.value&&T&&!Array.isArray(T)&&typeof T!="object"?g.value=T.toString():g.value="",De(()=>{g.value=g.value})}return s.onResetSearchTerm(()=>{S()}),fe(s.modelValue,async()=>{!s.isUserInputted.value&&s.resetSearchTermOnSelect.value&&S()},{immediate:!0,deep:!0}),fe(s.filterState,(T,v)=>{!s.isVirtual.value&&v.count===0&&u.highlightFirstItem()}),(T,v)=>(r(),U(t(mo),{ref_key:"primitiveElement",ref:o,modelValue:t(g),"onUpdate:modelValue":v[0]||(v[0]=w=>ts(g)?g.value=w:null),as:T.as,"as-child":T.asChild,"auto-focus":T.autoFocus,disabled:T.disabled,"aria-expanded":t(s).open.value,"aria-controls":t(s).contentId,"aria-autocomplete":"list",role:"combobox",autocomplete:"off",onClick:$,onInput:x,onKeydown:Ge(y,["down","up"]),onFocus:_,onBlur:C,onCompositionstart:t(f),onCompositionend:t(b)},{default:B(()=>[ye(T.$slots,"default")]),_:3},8,["modelValue","as","as-child","auto-focus","disabled","aria-expanded","aria-controls","onCompositionstart","onCompositionend"]))}}),il=rl,ul=ue({__name:"ComboboxItem",props:{textValue:{type:String,required:!1},value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(i,{emit:l}){const e=i,n=l,s=xt(void 0,"reka-combobox-item"),u=at(),o=bs(null),{primitiveElement:c,currentElement:g}=Et();if(e.value==="")throw new Error("A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.");const h=M(()=>{if(u.isVirtual.value||u.ignoreFilter.value||!u.filterSearch.value)return!0;{const f=u.filterState.value.items.get(s);return f===void 0?!0:f>0}});return Re(()=>{u.allItems.value.set(s,e.textValue||g.value.textContent||g.value.innerText);const f=o?.id;f&&(u.allGroups.value.has(f)?u.allGroups.value.get(f)?.add(s):u.allGroups.value.set(f,new Set([s])))}),tt(()=>{u.allItems.value.delete(s)}),(f,b)=>h.value?(r(),U(t(bo),ze({key:0},e,{id:t(s),ref_key:"primitiveElement",ref:c,disabled:t(u).disabled.value||f.disabled,onSelect:b[0]||(b[0]=y=>{n("select",y),!y.defaultPrevented&&(!t(u).multiple.value&&!f.disabled&&!t(u).disabled.value?(y.preventDefault(),t(u).onOpenChange(!1),t(u).modelValue.value=e.value):t(u).multiple.value&&t(u).inputElement.value?.focus())})}),{default:B(()=>[ye(f.$slots,"default",{},()=>[le(d(f.value),1)])]),_:3},16,["id","disabled"])):R("v-if",!0)}}),Ha=ul,cl=ue({__name:"ComboboxItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const l=i;return(e,n)=>(r(),U(t(_o),ht(zt(l)),{default:B(()=>[ye(e.$slots,"default")]),_:3},16))}}),dl=cl,ml=ue({__name:"ComboboxLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(i){const l=i;Je();const e=bs({id:"",labelId:""});return e.labelId||=xt(void 0,"reka-combobox-group-label"),(n,s)=>(r(),U(t(He),ze(l,{id:t(e).labelId}),{default:B(()=>[ye(n.$slots,"default")]),_:3},16,["id"]))}}),gl=ml,pl=ue({__name:"ComboboxPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(i){const l=i;return(e,n)=>(r(),U(t(hn),ht(zt(l)),{default:B(()=>[ye(e.$slots,"default")]),_:3},16))}}),hl=pl,fl=ue({__name:"ComboboxSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i;return Je(),(e,n)=>(r(),U(t(He),ze(l,{"aria-hidden":"true"}),{default:B(()=>[ye(e.$slots,"default")]),_:3},16))}}),vl=fl,yl=ue({__name:"ComboboxTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i,{forwardRef:e,currentElement:n}=Je(),s=at(),u=M(()=>l.disabled||s.disabled.value||!1);return Re(()=>{n.value&&s.onTriggerElementChange(n.value)}),(o,c)=>(r(),U(t(He),ze(l,{ref:t(e),type:o.as==="button"?"button":void 0,tabindex:"-1","aria-label":"Show popup","aria-haspopup":"listbox","aria-expanded":t(s).open.value,"aria-controls":t(s).contentId,"data-state":t(s).open.value?"open":"closed",disabled:u.value,"data-disabled":u.value?"":void 0,"aria-disabled":u.value??void 0,onClick:c[0]||(c[0]=g=>t(s).onOpenChange(!t(s).open.value))}),{default:B(()=>[ye(o.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","disabled","data-disabled","aria-disabled"]))}}),xl=yl,bl=ue({__name:"ComboboxVirtualizer",props:{options:{type:Array,required:!0},overscan:{type:Number,required:!1},estimateSize:{type:[Number,Function],required:!1},textContent:{type:Function,required:!1}},setup(i){const l=i,e=at();return e.isVirtual.value=!0,(n,s)=>(r(),U(Po,ht(zt(l)),{default:B(u=>[ye(n.$slots,"default",ht(zt(u)))]),_:3},16))}}),kl=bl;const[qa,_l]=ct("TagsInputRoot");var wl=ue({__name:"TagsInputRoot",props:{modelValue:{type:[Array,null],required:!1},defaultValue:{type:Array,required:!1,default:()=>[]},addOnPaste:{type:Boolean,required:!1},addOnTab:{type:Boolean,required:!1},addOnBlur:{type:Boolean,required:!1},duplicate:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},delimiter:{type:null,required:!1,default:","},dir:{type:String,required:!1},max:{type:Number,required:!1,default:0},id:{type:String,required:!1},convertValue:{type:Function,required:!1},displayValue:{type:Function,required:!1,default:i=>i.toString()},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","invalid","addTag","removeTag"],setup(i,{emit:l}){const e=i,n=l,{addOnPaste:s,disabled:u,delimiter:o,max:c,id:g,dir:h,addOnBlur:f,addOnTab:b}=Dt(e),y=xa(h),k=wt(e,"modelValue",n,{defaultValue:e.defaultValue,passive:!0,deep:!0}),{forwardRef:x,currentElement:_}=Je(),{focused:C}=fn(_),$=Ja(_),{getItems:S,CollectionSlot:T}=Ct({isProvider:!0}),v=z(),w=z(!1),E=M(()=>Array.isArray(k.value)?[...k.value]:[]);function F(D){if(D!==-1){const A=S().filter(I=>I.ref.dataset.disabled!=="");k.value=k.value.filter((I,q)=>q!==D),n("removeTag",A[D].value)}}return _l({modelValue:k,onAddValue:D=>{const A=[...E.value],I=A.length>0&&typeof A[0]=="object",q=A.length>0&&typeof e.defaultValue[0]=="object";if((I||q)&&typeof e.convertValue!="function")throw new Error("You must provide a `convertValue` function when using objects as values.");const Y=e.convertValue?e.convertValue(D):D;if(A.length>=c.value&&c.value)return n("invalid",Y),!1;if(e.duplicate)return k.value=[...A,Y],n("addTag",Y),!0;if(A.includes(Y))w.value=!0;else return k.value=[...A,Y],n("addTag",Y),!0;return n("invalid",Y),!1},onRemoveValue:F,onInputKeydown:D=>{if(D.isComposing)return;const A=D.target,I=S().map(Y=>Y.ref).filter(Y=>Y.dataset.disabled!=="");if(!I.length)return;const q=I.at(-1);switch(D.key){case"Delete":case"Backspace":{if(A.selectionStart!==0||A.selectionEnd!==0)break;if(v.value){const Y=I.findIndex(G=>G===v.value);F(Y),v.value=v.value===q?I.at(Y-1):I.at(Y+1),D.preventDefault()}else D.key==="Backspace"&&(v.value=q,D.preventDefault());break}case"Home":case"End":case"ArrowRight":case"ArrowLeft":{const Y=D.key==="ArrowRight"&&y.value==="ltr"||D.key==="ArrowLeft"&&y.value==="rtl",G=!Y;if(A.selectionStart!==0||A.selectionEnd!==0)break;if(G&&!v.value)v.value=q,D.preventDefault();else if(Y&&q&&v.value===q)v.value=void 0,D.preventDefault();else if(v.value){const Z=vn(D,v.value,void 0,{itemsArray:I,loop:!1,dir:y.value});Z&&(v.value=Z),D.preventDefault()}break}case"ArrowUp":case"ArrowDown":{v.value&&D.preventDefault();break}default:v.value=void 0}},selectedElement:v,isInvalidInput:w,addOnPaste:s,addOnBlur:f,addOnTab:b,dir:y,disabled:u,delimiter:o,max:c,id:g,displayValue:e.displayValue}),(D,A)=>(r(),U(t(T),null,{default:B(()=>[p(t(He),{ref:t(x),dir:t(y),as:D.as,"as-child":D.asChild,"data-invalid":w.value?"":void 0,"data-disabled":t(u)?"":void 0,"data-focused":t(C)?"":void 0},{default:B(()=>[ye(D.$slots,"default",{modelValue:t(k)}),t($)&&D.name?(r(),U(t(Qa),{key:0,name:D.name,value:t(k),required:D.required,disabled:t(u)},null,8,["name","value","required","disabled"])):R("v-if",!0)]),_:3},8,["dir","as","as-child","data-invalid","data-disabled","data-focused"])]),_:3}))}}),$l=wl,Cl=ue({__name:"TagsInputInput",props:{placeholder:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},maxLength:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},setup(i){const l=i,e=qa(),{forwardRef:n,currentElement:s}=Je();function u(x){if(e.selectedElement.value=void 0,!e.addOnBlur.value)return;const _=x.target,C=x.relatedTarget,$=_.getAttribute("aria-controls");if($&&C?.closest(`#${CSS.escape($)}`)||!_.value)return;e.onAddValue(_.value)&&(_.value="")}function o(x){e.addOnTab.value&&f(x)}const{isComposing:c,handleCompositionStart:g,handleCompositionEnd:h}=ba();async function f(x){if(c.value||(await De(),x.defaultPrevented))return;const _=x.target;if(!_.value)return;e.onAddValue(_.value)&&(_.value=""),x.preventDefault()}function b(x){if(c.value||(e.isInvalidInput.value=!1,x.data===null))return;const _=e.delimiter.value;if(_===x.data||_ instanceof RegExp&&_.test(x.data)){const $=x.target;if($.value=$.value.replace(_,""),$.value.trim()===""){$.value="";return}e.onAddValue($.value)&&($.value="")}}function y(x){c.value||e.onInputKeydown(x)}function k(x){if(e.addOnPaste.value){x.preventDefault();const _=x.clipboardData;if(!_)return;const C=_.getData("text");e.delimiter.value?C.split(e.delimiter.value).forEach(S=>{e.onAddValue(S)}):e.onAddValue(C)}}return Re(()=>{const x=s.value.nodeName==="INPUT"?s.value:s.value.querySelector("input");x&&setTimeout(()=>{l.autoFocus&&x?.focus()},1)}),(x,_)=>(r(),U(t(He),{id:t(e).id?.value,ref:t(n),type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",as:x.as,"as-child":x.asChild,maxlength:x.maxLength,placeholder:x.placeholder,disabled:t(e).disabled.value,"data-invalid":t(e).isInvalidInput.value?"":void 0,onInput:b,onKeydown:[Ge(f,["enter"]),Ge(o,["tab"]),y],onBlur:u,onCompositionstart:t(g),onCompositionend:t(h),onPaste:k},{default:B(()=>[ye(x.$slots,"default")]),_:3},8,["id","as","as-child","maxlength","placeholder","disabled","data-invalid","onCompositionstart","onCompositionend"]))}}),Sl=Cl;const[ks,Il]=ct("TagsInputItem");var Tl=ue({__name:"TagsInputItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=i,{value:e}=Dt(l),n=qa(),{forwardRef:s,currentElement:u}=Je(),{CollectionItem:o}=Ct(),c=M(()=>n.selectedElement.value===u.value),g=M(()=>l.disabled||n.disabled.value),h=Il({value:e,isSelected:c,disabled:g,textId:"",displayValue:M(()=>n.displayValue(e.value))});return(f,b)=>(r(),U(t(o),{value:t(e)},{default:B(()=>[p(t(He),{ref:t(s),as:f.as,"as-child":f.asChild,"aria-labelledby":t(h).textId,"aria-current":c.value,"data-disabled":g.value?"":void 0,"data-state":c.value?"active":"inactive"},{default:B(()=>[ye(f.$slots,"default")]),_:3},8,["as","as-child","aria-labelledby","aria-current","data-disabled","data-state"])]),_:3},8,["value"]))}}),Ml=Tl,Al=ue({__name:"TagsInputItemDelete",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i;Je();const e=qa(),n=ks(),s=M(()=>n.disabled?.value||e.disabled.value);function u(){if(s.value)return;const o=e.modelValue.value.findIndex(c=>Ut(c,n.value.value));e.onRemoveValue(o)}return(o,c)=>(r(),U(t(He),ze({tabindex:"-1"},l,{"aria-labelledby":t(n).textId,"aria-current":t(n).isSelected.value,"data-state":t(n).isSelected.value?"active":"inactive","data-disabled":s.value?"":void 0,type:o.as==="button"?"button":void 0,onClick:u}),{default:B(()=>[ye(o.$slots,"default")]),_:3},16,["aria-labelledby","aria-current","data-state","data-disabled","type"]))}}),zl=Al,ql=ue({__name:"TagsInputItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const l=i,e=ks();return Je(),e.textId||=xt(void 0,"reka-tags-input-item-text"),(n,s)=>(r(),U(t(He),ze(l,{id:t(e).textId}),{default:B(()=>[ye(n.$slots,"default",{},()=>[le(d(t(e).displayValue.value),1)])]),_:3},16,["id"]))}}),Ll=ql;const Dl={none:[],qwen:["default","off","high"],deepseek_v4:["default","off","high","xhigh"],deepseek_hybrid:["default","off","auto"],o_series:["default","low","medium","high"],gpt5:["default","minimal","low","medium","high"],gpt5_1:["default","off","low","medium","high"],gpt5_2plus:["default","off","minimal","low","medium","high","xhigh"],grok:["default","low","high"],kimi:["default","off","auto","low","medium","high"],doubao:["default","off","auto","high"],hunyuan:["default","off","high"],gemini:["default","off","low","medium","high"],default:["default","off","low","medium","high"]},Ka=/^(?!.*-non-reasoning\b)(o\d+(?:-[\w-]+)?|.*\b(?:reasoning|reasoner|thinking|think)\b.*|.*-[rR]\d+.*|.*\bqwq(?:-[\w-]+)?\b.*|.*\bhunyuan-t1(?:-[\w-]+)?\b.*|.*\bgrok-(?:3-mini|4|4-fast|build)(?:-[\w-]+)?\b.*)$/i;function El(i,l){const e=l.toLowerCase(),n=i.toLowerCase();if(e.includes("-non-reasoning")||n==="anthropic")return"none";if(n==="gemini")return/gemini-(?:2\.5|3(?:\.\d+)?-(?:flash|pro)|flash-latest|pro-latest)/i.test(e)?"gemini":"none";if(n==="qwen"||/\bqwen|qwq/i.test(e))return"qwen";if(/deepseek[_-]v([4-9]|\d{2,})/i.test(e)||/deepseek-ai\/deepseek-r1/i.test(e))return"deepseek_v4";if(/deepseek[_-]chat|deepseek[_-]v3/i.test(e))return"deepseek_hybrid";if(n==="openai"||n==="openai-compatible"){if(/gpt-5\.[2-9]|gpt-5\.[1-9]\d/.test(e))return"gpt5_2plus";if(/gpt-5\.1/.test(e))return"gpt5_1";if(/gpt-5/.test(e))return"gpt5";if(/^o\d/.test(e))return"o_series"}return/^o\d/.test(e)?"o_series":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(e)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(e)||n==="kimi"&&/thinking/i.test(e)?"kimi":/\bdoubao-.*seed/i.test(e)||n==="doubao"&&/seed/i.test(e)?"doubao":/\bhunyuan-(?:t1|a13b)/i.test(e)?"hunyuan":n==="glm"||/\bglm-?(?:5|4\.[5-7]|z1|zero)/i.test(e)?"qwen":n==="siliconflow"&&/r[1-9]/i.test(e)?"deepseek_v4":n==="openrouter"?/deepseek.*(v[4-9]|r\d)/i.test(e)?"deepseek_v4":/deepseek[_-]?(chat|v3)/i.test(e)?"deepseek_hybrid":/\bgrok-(?:3-mini|4|4-fast|build)\b/i.test(e)?"grok":/\bkimi-k(?:2-thinking|2\.[5-9]|[3-9])/i.test(e)?"kimi":Ka.test(e)?"default":"none":/\bmimo-v2/i.test(e)||/\bminimax-m[123]/i.test(e)||/\bseed-oss/i.test(e)?"deepseek_hybrid":/\bbaichuan-m[23]/i.test(e)||/\bmagistral/i.test(e)||/\bmistral-small-2603/i.test(e)||/\bstep-(?:3|r1-v-mini)/i.test(e)||/\bgemma-?4/i.test(e)||/\bpangu-pro-moe/i.test(e)||/\bsonar-deep-research/i.test(e)||/\bring-(?:1t|mini|flash)/i.test(e)?"default":/\bqwen|qwq/i.test(e)?"qwen":/deepseek[_-]?r\d|deepseek[_-]?v[4-9]/i.test(e)?"deepseek_v4":/^o\d/i.test(e)?"o_series":Ka.test(e)?"default":"none"}function Bl(i,l){const e=El(i,l);return Dl[e]}function Fl(){const{contains:i,startsWith:l}=ys({sensitivity:"base"});function e(o,c){return i(o,c)?i(c,o)?0:l(o,c)?1:2:null}function n(o,c,g){if(typeof o!="object"||o===null)return e(String(o),c);let h=null;for(const f of g){const b=lt(o,f);if(b==null)continue;const y=Array.isArray(b)?b.map(String):[String(b)];for(const k of y){const x=e(k,c);if(x!==null&&(h===null||x<h)&&(h=x),h===0)return 0}}return h}function s(o,c,g){if(!c)return o;const h=[];for(const f of o){const b=n(f,c,g);b!==null&&h.push({item:f,score:b})}return h.sort((f,b)=>f.score-b.score),h.map(({item:f})=>f)}function u(o,c,g){return c?o.map(h=>{const f=[];for(const b of h){if(b==null)continue;if(g.isStructural?.(b)){f.push({item:b,score:-1});continue}const y=n(b,c,g.fields);y!==null&&f.push({item:b,score:y})}return f.sort((b,y)=>b.score-y.score),f.map(({item:b})=>b)}).filter(h=>h.some(f=>!g.isStructural?.(f))):o}return{score:e,scoreItem:n,filter:s,filterGroups:u}}function Rl(i,l,e,n="group",s="zh-CN"){const u=yn(),{chatKey:o,state:c}=u.ensureSessionState({sessionId:i,sessionName:l,timeFilter:e,chatType:n,locale:s});return u.resetToSelectorOnEnter(o),u.applySessionAssistantSelection(o),{messages:We(c,"messages"),sourceMessages:We(c,"sourceMessages"),currentKeywords:We(c,"currentKeywords"),isLoadingSource:We(c,"isLoadingSource"),isAIThinking:We(c,"isAIThinking"),currentAIChatId:We(c,"currentAIChatId"),currentToolStatus:We(c,"currentToolStatus"),toolsUsedInCurrentRound:We(c,"toolsUsedInCurrentRound"),sessionTokenUsage:We(c,"sessionTokenUsage"),agentStatus:We(c,"agentStatus"),selectedAssistantId:We(c,"selectedAssistantId"),sendMessage:(g,h)=>u.sendMessage(o,g,h),editMessageAndRegenerate:(g,h,f)=>u.editMessageAndRegenerate(o,g,h,f),loadAIChat:g=>u.loadAIChat(o,g),startNewAIChat:g=>u.startNewAIChat(o,g),loadMoreSourceMessages:()=>u.loadMoreSourceMessages(),updateMaxMessages:()=>u.updateMaxMessages(),stopGeneration:()=>u.stopGeneration(o),selectAssistantForSession:g=>u.selectAssistantForSession(o,g)}}const ia=new Map;function Vl(i,l,e){const{activeTab:n,isInitialLoad:s,currentSessionId:u,onTimeRangeChange:o}=e,c=z(null),g=z(null),h=z([]),f=M(()=>{const x=c.value;if(x)return{startTs:x.startTs,endTs:x.endTs}}),b=M(()=>{const x=c.value;return x?`${x.startTs}-${x.endTs}`:"init"}),y=M(()=>{const x=i.query,_=x.timeMode;return _?{mode:_,recentDays:x.timeDays?Number(x.timeDays):void 0,year:x.timeYear?Number(x.timeYear):void 0,quarterYear:x.timeYear?Number(x.timeYear):void 0,quarter:x.timeQuarter?Number(x.timeQuarter):void 0,customStart:x.timeStart||void 0,customEnd:x.timeEnd||void 0}:u.value&&ia.has(u.value)?ia.get(u.value):{mode:"recent",recentDays:365}});fe([n,c],([x,_])=>{if(s.value||!_)return;const C=_.state,$={tab:x,timeMode:C.mode,timeDays:void 0,timeYear:void 0,timeQuarter:void 0,timeStart:void 0,timeEnd:void 0};C.mode==="recent"&&($.timeDays=C.recentDays),C.mode==="year"&&($.timeYear=C.year),C.mode==="quarter"&&($.timeYear=C.quarterYear,$.timeQuarter=C.quarter),C.mode==="custom"&&($.timeStart=C.customStart,$.timeEnd=C.customEnd),l.replace({query:{...i.query,...$}})}),fe(c,x=>{!x||!u.value||(ss(),ia.set(u.value,x.state),o?.())},{immediate:!0});function k(){c.value=null,g.value=null,h.value=[]}return{timeRangeValue:c,fullTimeRange:g,availableYears:h,timeFilter:f,timeFilterKey:b,initialTimeState:y,resetTimeRange:k}}function Ol(i){return i.content.trim()?i.content:i.contentBlocks?.filter(e=>e.type==="text"&&!!e.text).map(e=>e.text).join("")??""}function ga(i){return i.flatMap(l=>{if(l.role!=="user"&&l.role!=="assistant")return[];const e=Ol(l);return e.trim()?[{role:l.role,content:e,timestamp:l.timestamp}]:[]})}function Pl(i){return ga(i).length>0}function jl(i,l,e,n){const s=[];s.push(`# ${i}`),s.push(""),s.push(`> ${n.createdAt}: ${Ee(e).format("YYYY-MM-DD HH:mm:ss")}`),s.push(""),s.push("---"),s.push("");for(const u of l){const o=Ee(u.timestamp).format("YYYY-MM-DD HH:mm:ss"),c=u.role==="user"?n.user:n.assistant;s.push(`### ${c}`),s.push(`*${o}*`),s.push(""),s.push(u.content),s.push(""),s.push("---"),s.push("")}return s.join(`
|
|
3
3
|
`)}function Nl(i,l,e,n){const s=[];s.push(`${i}`),s.push(`${n.createdAt}: ${Ee(e).format("YYYY-MM-DD HH:mm:ss")}`),s.push(""),s.push("=".repeat(50)),s.push("");for(const u of l){const o=Ee(u.timestamp).format("YYYY-MM-DD HH:mm:ss"),c=u.role==="user"?n.user:n.assistant;s.push(`[${c}] ${o}`),s.push(""),s.push(u.content),s.push(""),s.push("-".repeat(50)),s.push("")}return s.join(`
|
|
4
|
-
`)}function Ul(i){return i.replace(/[/\\?%*:|"<>]/g,"_")}async function Wl(i,l,e,n,s){if(l.length===0)return{success:!1,error:"No messages to export"};let u,o;const c=Ee(e).format("YYYYMMDD_HHmmss"),g=Ul(i);n==="markdown"?(u=jl(i,l,e,s),o=`${g}_${c}.md`):(u=Nl(i,l,e,s),o=`${g}_${c}.txt`);const h=`data:text/plain;charset=utf-8,${encodeURIComponent(u)}`,{useCacheService:f}=await Jt(async()=>{const{useCacheService:y}=await import("./index-
|
|
5
|
-
`)}function Kl(i){const l=i.rows.map(e=>{const n={};return i.columns.forEach((s,u)=>{n[s]=e[u]}),n});return JSON.stringify(l,null,2)}async function Yl(i,l){if(i.rows.length===0)return{success:!1,error:"No data to export"};const n=`sql_result_${Ee().format("YYYYMMDD_HHmmss")}.${l}`;let s,u;l==="json"?(s=Kl(i),u="application/json"):(s=Hl(i),u="text/csv");const o=`data:${u};charset=utf-8,${encodeURIComponent(s)}`,{useCacheService:c}=await Jt(async()=>{const{useCacheService:h}=await import("./index-7jm3YI9u.js").then(f=>f.co);return{useCacheService:h}},__vite__mapDeps([0,1,2]));return await c().saveToDownloads(n,o)}function jw(i){const{route:l,router:e,currentSessionId:n,selectSession:s,defaultTab:u,validTabIds:o}=i,c=z(!0),g=z(!0),h=z(null),f=z([]),b=z([]),y=z([]),k=z([]);let x=0;function _(){const I=l.query.tab;return I&&o.includes(I)?I:u}const C=z(_()),{timeRangeValue:$,fullTimeRange:S,availableYears:T,timeFilter:v,initialTimeState:w}=Vl(l,e,{activeTab:C,isInitialLoad:g,currentSessionId:n,onTimeRangeChange:()=>D()});function E(){const I=l.params.id;I&&(s(I),n.value!==I&&e.replace("/"))}async function F(){if(n.value)try{const I=await Ke().getSession(n.value);h.value=I}catch(I){console.error("加载基础数据失败:",I)}}async function D(){const I=n.value;if(!I)return;const q=++x;c.value=!0;try{const Y=v.value,G=Ke(),[Z,ce,ne,H]=await Promise.all([G.getMemberActivity(I,Y),G.getHourlyActivity(I,Y),G.getDailyActivity(I,Y),G.getMessageTypeDistribution(I,Y)]);if(q!==x)return;f.value=Z,b.value=ce,y.value=ne,k.value=H}catch(Y){q===x&&console.error("加载分析数据失败:",Y)}finally{q===x&&(c.value=!1)}}async function A(){n.value&&(g.value=!0,await F(),g.value=!1)}return fe(()=>l.params.id,()=>{C.value=_(),E()}),fe(()=>l.query.tab,()=>{C.value=_()}),fe(n,()=>{x++,ss(),A()},{immediate:!0}),Re(()=>{E()}),{activeTab:C,isLoading:c,isInitialLoad:g,session:h,memberActivity:f,hourlyActivity:b,dailyActivity:y,messageTypes:k,timeRangeValue:$,fullTimeRange:S,availableYears:T,timeFilter:v,initialTimeState:w,syncSession:E,loadData:A,loadAnalysisData:D}}const Gl={class:"pointer-events-none absolute right-3 top-3 z-50 opacity-0 transition-opacity duration-200 group-hover/card:pointer-events-auto group-hover/card:opacity-100"},Ql=ue({__name:"CardCaptureOverlay",setup(i){return(l,e)=>(r(),m("div",Gl,[p(Lt,{type:"element","target-selector":"[data-capturable-card]",size:"xs"})]))}}),na=ue({__name:"ReportCard",props:{capturable:{type:Boolean,default:!0}},setup(i){return(l,e)=>(r(),U(mt,{"data-capturable-card":"",class:"group/card relative isolate flex flex-col"},{default:B(()=>[p(Qn),i.capturable?(r(),U(Ql,{key:0})):R("",!0),ye(l.$slots,"default")]),_:3}))}}),Jl={class:"flex items-center justify-between"},Xl={class:"font-semibold text-gray-900 dark:text-white whitespace-nowrap"},Zl={key:0,class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},er={class:"flex items-center gap-2"},tr={key:0,class:"pointer-events-none opacity-0 transition-opacity duration-200 group-hover/card:pointer-events-auto group-hover/card:opacity-100"},Ze=ue({__name:"SectionCard",props:{title:{},description:{},capturable:{type:Boolean,default:!0},showDivider:{type:Boolean,default:!0},scrollable:{type:Boolean,default:!1},maxHeightVh:{default:60}},setup(i){const l=i,e=M(()=>{if(l.scrollable)return{maxHeight:`${l.maxHeightVh}vh`,overflowY:"auto"}});return(n,s)=>(r(),U(mt,{class:"group/card","data-section-card":""},{default:B(()=>[a("div",{class:X(["px-5 py-3",{"border-b border-gray-200 dark:border-white/5":i.showDivider&&n.$slots.default}])},[a("div",Jl,[a("div",null,[a("p",Xl,d(i.title),1),i.description?(r(),m("p",Zl,d(i.description),1)):R("",!0)]),a("div",er,[ye(n.$slots,"headerRight"),i.capturable?(r(),m("div",tr,[p(Lt,{type:"element","target-selector":"[data-section-card]",size:"xs"})])):R("",!0)])])],2),i.scrollable?(r(),m("div",{key:0,style:et(e.value)},[ye(n.$slots,"default")],4)):ye(n.$slots,"default",{key:1}),ye(n.$slots,"footer")]),_:3}))}}),ar={class:"flex items-start justify-between"},sr={class:"min-w-0 flex-1"},nr={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},or={key:1,class:"text-xl"},lr={key:0,class:"mt-4 flex items-center text-sm"},rr={class:"text-gray-500 dark:text-gray-400"},ot=ue({__name:"StatCard",props:{label:{},value:{},valueColor:{},subtext:{},icon:{},iconBg:{}},setup(i){const l={pink:"text-pink-600 dark:text-pink-400",amber:"text-amber-600 dark:text-amber-400",blue:"text-blue-600 dark:text-blue-400",green:"text-green-600 dark:text-green-400",red:"text-red-600 dark:text-red-400",gray:"text-gray-900 dark:text-white"},e={pink:"bg-pink-100 dark:bg-pink-500/10",amber:"bg-amber-100 dark:bg-amber-500/10",blue:"bg-blue-100 dark:bg-blue-500/10",green:"bg-green-100 dark:bg-green-500/10",red:"bg-red-100 dark:bg-red-500/10",gray:"bg-gray-100 dark:bg-white/5"};return(n,s)=>{const u=_e;return r(),U(mt,{class:"p-5"},{default:B(()=>[a("div",ar,[a("div",sr,[a("p",nr,d(i.label),1),a("p",{class:X(["mt-2 truncate text-2xl font-bold tracking-tight",i.valueColor?l[i.valueColor]:"text-gray-900 dark:text-white"])},d(i.value),3)]),i.icon?(r(),m("div",{key:0,class:X(["ml-4 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",e[i.iconBg||"gray"]])},[i.icon.startsWith("i-")?(r(),U(u,{key:0,name:i.icon,class:"h-5 w-5"},null,8,["name"])):(r(),m("span",or,d(i.icon),1))],2)):R("",!0)]),i.subtext||n.$slots.subtext?(r(),m("div",lr,[ye(n.$slots,"subtext",{},()=>[a("span",rr,d(i.subtext),1)])])):R("",!0)]),_:3})}}}),ir={key:0,class:"mb-2 block text-2xl"},Nw=ue({__name:"EmptyState",props:{text:{},icon:{},padding:{}},setup(i){const l={sm:"px-4 py-4",md:"px-5 py-8",lg:"px-6 py-12"};return(e,n)=>(r(),m("div",{class:X(["text-center text-sm text-gray-400",l[i.padding||"md"]])},[i.icon?(r(),m("span",ir,d(i.icon),1)):R("",!0),le(" "+d(i.text||"暂无数据"),1)],2))}}),ur={"zh-CN":{message:"消息记录",member:"成员",meta:"群信息",member_name_history:"昵称历史"},"en-US":{message:"Messages",member:"Members",meta:"Chat Info",member_name_history:"Nickname History"}},pa={"zh-CN":{message:{id:"消息ID",sender_id:"发送者ID",sender_account_name:"发送时账号名",sender_group_nickname:"发送时群昵称",ts:"时间戳(秒)",type:"消息类型",content:"消息内容"},member:{id:"成员ID",platform_id:"平台ID",account_name:"账号名称",group_nickname:"群昵称",aliases:"自定义别名"},meta:{name:"群名称",platform:"平台",type:"聊天类型",imported_at:"导入时间"},member_name_history:{id:"记录ID",member_id:"成员ID",name_type:"名称类型",name:"昵称值",start_ts:"开始时间",end_ts:"结束时间"}},"en-US":{message:{id:"Message ID",sender_id:"Sender ID",sender_account_name:"Sender Account",sender_group_nickname:"Sender Nickname",ts:"Timestamp (sec)",type:"Message Type",content:"Content"},member:{id:"Member ID",platform_id:"Platform ID",account_name:"Account Name",group_nickname:"Group Nickname",aliases:"Custom Aliases"},meta:{name:"Chat Name",platform:"Platform",type:"Chat Type",imported_at:"Imported At"},member_name_history:{id:"Record ID",member_id:"Member ID",name_type:"Name Type",name:"Nickname",start_ts:"Start Time",end_ts:"End Time"}}};function ha(i,l="zh-CN"){return ur[_s(l)]?.[i]||i}function La(i,l,e="zh-CN"){return pa[_s(e)]?.[i]?.[l]||l}function _s(i){return i.startsWith("zh")?"zh-CN":"en-US"}const cr={key:0,class:"text-xs font-medium text-gray-500 dark:text-gray-400"},dr={key:0,class:"flex-1 overflow-y-auto p-2"},mr=["onClick"],gr={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},pr={class:"flex-1 truncate text-right text-xs text-gray-400"},hr={key:0,class:"ml-4 mt-1 space-y-0.5"},fr=["title","onDblclick"],vr={class:"font-mono text-gray-700 dark:text-gray-300"},yr={class:"flex-1 truncate text-right text-[10px] text-gray-400"},xr={key:1,class:"flex flex-1 flex-col items-center gap-1 overflow-y-auto px-2 pb-2"},br=["title","onClick"],kr=ue({__name:"SchemaPanel",props:{sessionId:{}},emits:["insertColumn"],setup(i,{expose:l,emit:e}){const{t:n,locale:s}=we(),u=i,o=e,c=z(!1),g=z([]),h=z(new Set);async function f(){try{g.value=await Ke().getSchema(u.sessionId),g.value.forEach(x=>h.value.add(x.name))}catch(x){console.error("加载 Schema 失败:",x)}}function b(x){h.value.has(x)?h.value.delete(x):h.value.add(x)}function y(x){c.value=!1,h.value.add(x)}function k(x,_){o("insertColumn",x,_)}return l({loadSchema:f,schema:g}),Re(()=>{f()}),(x,_)=>{const C=_e,$=Ue;return r(),m("div",{class:X(["m-3 flex h-[calc(100%-1.5rem)] shrink-0 flex-col overflow-hidden rounded-lg bg-white transition-all duration-300 ease-in-out dark:bg-sidebar-dark",c.value?"w-14":"w-56"])},[a("div",{class:X(["flex items-center",c.value?"justify-center px-2 pb-2 pt-5":"justify-between border-b border-gray-200 py-2 pl-3 pr-2 dark:border-gray-800"])},[c.value?R("",!0):(r(),m("span",cr,d(t(n)("ai.sqlLab.schema.tables")),1)),c.value?(r(),m("button",{key:2,type:"button",class:"group relative flex h-9 w-9 cursor-pointer items-center justify-center rounded-full hover:bg-gray-200/60 dark:hover:bg-white/[0.06]",onClick:_[1]||(_[1]=S=>c.value=!c.value)},[p(C,{name:"i-lucide-panel-right-open",class:"size-4 scale-x-[-1]"})])):(r(),U($,{key:1,color:"neutral",variant:"ghost",size:"sm",class:"group flex h-9 w-9 cursor-pointer items-center justify-center rounded-full hover:bg-gray-200/60 dark:hover:bg-white/[0.06]",onClick:_[0]||(_[0]=S=>c.value=!c.value)},{default:B(()=>[p(C,{name:"i-lucide-panel-right",class:"size-4 scale-x-[-1] group-hover:hidden"}),p(C,{name:"i-lucide-panel-right-close",class:"size-4 hidden scale-x-[-1] group-hover:block"})]),_:1}))],2),c.value?(r(),m("div",xr,[(r(!0),m(ie,null,pe(g.value,S=>(r(),m("button",{key:S.name,class:"flex h-10 w-10 items-center justify-center rounded-lg text-gray-600 transition-colors hover:bg-gray-200/40 hover:text-primary-600 dark:text-gray-300 dark:hover:bg-white/[0.06] dark:hover:text-primary-400",title:`${t(ha)(S.name,t(s))} (${S.name})`,onClick:T=>y(S.name)},[p(C,{name:"i-heroicons-table-cells",class:"h-5 w-5"})],8,br))),128))])):(r(),m("div",dr,[(r(!0),m(ie,null,pe(g.value,S=>(r(),m("div",{key:S.name,class:"mb-2"},[a("button",{class:"flex w-full items-center gap-1 rounded px-2 py-1.5 text-left transition-colors hover:bg-gray-100 dark:hover:bg-gray-800",onClick:T=>b(S.name)},[p(C,{name:h.value.has(S.name)?"i-heroicons-chevron-down":"i-heroicons-chevron-right",class:"h-3 w-3 shrink-0 text-gray-400"},null,8,["name"]),p(C,{name:"i-heroicons-table-cells",class:"h-4 w-4 shrink-0 text-pink-500"}),a("span",gr,d(S.name),1),a("span",pr,d(t(ha)(S.name,t(s))),1)],8,mr),h.value.has(S.name)?(r(),m("div",hr,[(r(!0),m(ie,null,pe(S.columns,T=>(r(),m("button",{key:T.name,class:"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-xs transition-colors hover:bg-gray-100 dark:hover:bg-gray-800",title:t(n)("ai.sqlLab.schema.doubleClickToInsert"),onDblclick:v=>k(S.name,T.name)},[T.pk?(r(),U(C,{key:0,name:"i-heroicons-key",class:"h-3 w-3 shrink-0 text-yellow-500",title:t(n)("ai.sqlLab.schema.primaryKey")},null,8,["title"])):R("",!0),a("span",vr,d(T.name),1),a("span",yr,d(t(La)(S.name,T.name,t(s))),1)],40,fr))),128))])):R("",!0)]))),128))]))],2)}}}),_r={class:"max-h-[70vh] overflow-hidden p-6"},wr={class:"mb-4 flex items-center gap-2"},$r={class:"text-lg font-semibold text-gray-900 dark:text-white"},Cr={key:0,class:"max-h-[50vh] space-y-3 overflow-y-auto pr-2"},Sr={class:"mb-2 flex items-start justify-between gap-2"},Ir={class:"flex-1 text-sm font-medium text-gray-700 dark:text-gray-300"},Tr={class:"shrink-0 text-xs text-gray-400"},Mr={class:"mb-2 rounded bg-white p-2 dark:bg-gray-800"},Ar={class:"whitespace-pre-wrap break-all font-mono text-xs text-gray-600 dark:text-gray-400"},zr={key:0,class:"mb-2 text-xs text-gray-500 dark:text-gray-400"},qr={class:"flex justify-end gap-2"},Lr={key:1,class:"py-8 text-center text-gray-500 dark:text-gray-400"},Dr={class:"text-sm"},Er={class:"mt-4 flex justify-end"},Br=ue({__name:"AIHistoryModal",props:{open:{type:Boolean},history:{}},emits:["update:open","execute","delete"],setup(i,{emit:l}){const{t:e}=we(),n=l;function s(u){const o=new Date(u),c=new Date,g=c.getTime()-u;return g<6e4?e("ai.sqlLab.history.justNow"):g<36e5?e("ai.sqlLab.history.minutesAgo",{count:Math.floor(g/6e4)}):g<864e5?e("ai.sqlLab.history.hoursAgo",{count:Math.floor(g/36e5)}):o.toDateString()===c.toDateString()?e("ai.sqlLab.history.today"):`${o.getMonth()+1}/${o.getDate()}`}return(u,o)=>{const c=_e,g=Ue,h=Xe;return r(),U(h,{open:i.open,ui:{content:"max-w-5xl"},"onUpdate:open":o[1]||(o[1]=f=>n("update:open",f))},{content:B(()=>[a("div",_r,[a("div",wr,[p(c,{name:"i-heroicons-clock",class:"h-5 w-5 text-pink-500"}),a("h3",$r,d(t(e)("ai.sqlLab.history.title")),1)]),i.history.length>0?(r(),m("div",Cr,[(r(!0),m(ie,null,pe(i.history,f=>(r(),m("div",{key:f.id,class:"rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-page-dark"},[a("div",Sr,[a("p",Ir,d(f.prompt),1),a("span",Tr,d(s(f.timestamp)),1)]),a("div",Mr,[a("pre",Ar,d(f.sql),1)]),f.explanation?(r(),m("p",zr,d(f.explanation),1)):R("",!0),a("div",qr,[p(g,{variant:"ghost",size:"xs",color:"error",onClick:b=>n("delete",f.id)},{default:B(()=>[p(c,{name:"i-heroicons-trash",class:"h-3.5 w-3.5"})]),_:1},8,["onClick"]),p(g,{size:"xs",onClick:b=>n("execute",f)},{default:B(()=>[p(c,{name:"i-heroicons-play",class:"mr-1 h-3.5 w-3.5"}),le(" "+d(t(e)("ai.sqlLab.history.execute")),1)]),_:1},8,["onClick"])])]))),128))])):(r(),m("div",Lr,[p(c,{name:"i-heroicons-clock",class:"mx-auto mb-2 h-8 w-8 text-gray-300 dark:text-gray-600"}),a("p",Dr,d(t(e)("ai.sqlLab.history.empty")),1)])),a("div",Er,[p(g,{variant:"ghost",onClick:o[0]||(o[0]=f=>n("update:open",!1))},{default:B(()=>[le(d(t(e)("common.close")),1)]),_:1})])])]),_:1},8,["open"])}}}),Fr={class:"flex flex-1 flex-col overflow-hidden"},Rr={key:0,class:"border-b border-red-200 bg-red-50 p-4 dark:border-red-900 dark:bg-red-950"},Vr={class:"flex items-start gap-2"},Or={class:"min-w-0 flex-1"},Pr={class:"text-sm font-medium text-red-800 dark:text-red-200"},jr={class:"mt-1 break-all font-mono text-xs text-red-600 dark:text-red-400"},Nr={key:1,class:"flex items-center justify-between border-b border-gray-200 bg-gray-50 px-4 py-2 dark:border-gray-800 dark:bg-page-dark"},Ur={class:"flex items-center gap-4 text-sm text-gray-600 dark:text-gray-400"},Wr={class:"flex cursor-pointer items-center gap-1.5"},Hr={class:"text-xs"},Kr={class:"flex items-center gap-2"},Yr={key:2,class:"flex-1 overflow-auto"},Gr={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},Qr={class:"sticky top-0 bg-gray-100 dark:bg-page-dark"},Jr=["onClick"],Xr={class:"flex items-center gap-1"},Zr={class:"flex flex-col"},ei={class:"text-gray-700 dark:text-gray-300"},ti={key:0,class:"font-mono text-[10px] text-gray-400"},ai={key:0,class:"sticky right-0 w-12 bg-gray-100 px-2 py-2 dark:bg-page-dark"},si={class:"divide-y divide-gray-200 bg-white dark:divide-gray-700 dark:bg-page-dark"},ni=["title"],oi={key:0,class:"sticky right-0 w-12 bg-white px-2 py-2 dark:bg-page-dark"},li={key:3,class:"flex shrink-0 items-center gap-4 border-t border-gray-200 bg-gray-50 px-4 py-2 dark:border-gray-800 dark:bg-page-dark"},ri={class:"flex items-center gap-1"},ii={class:"mx-2 text-xs text-gray-600 dark:text-gray-400"},ui={class:"flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"},ci={key:4,class:"flex flex-1 items-center justify-center text-gray-500 dark:text-gray-400"},di={class:"text-center"},mi={class:"mt-2 text-sm"},gi={key:5,class:"flex flex-1 items-center justify-center text-gray-500 dark:text-gray-400"},pi={class:"text-center"},hi={class:"mt-2 text-sm"},fi={class:"mt-1 text-xs text-gray-400"},vi={class:"max-h-[70vh] overflow-hidden p-6"},yi={class:"mb-4 flex items-center gap-2"},xi={class:"text-lg font-semibold text-gray-900 dark:text-white"},bi={key:0,class:"flex items-center justify-center py-8"},ki={class:"ml-2 text-sm text-gray-500"},_i={key:1,class:"max-h-[50vh] overflow-y-auto"},wi=["innerHTML"],$i={key:0,class:"mt-2 flex items-center text-xs text-gray-400"},Ci={key:2,class:"rounded-lg bg-red-50 p-4 dark:bg-red-950"},Si={class:"text-sm text-red-600 dark:text-red-400"},Ii={class:"mt-4 flex justify-end gap-2"},Ti=ue({__name:"ResultTable",props:{result:{},error:{},sql:{},prompt:{}},setup(i,{expose:l}){const{t:e,locale:n}=we(),s=nt(),u=ka(),o=bt(),{aiGlobalSettings:c}=ut(u),g=[/^ts$/i,/^timestamp$/i,/^time$/i,/_at$/i,/_ts$/i,/_time$/i,/^date$/i];function h(Q){return g.some(J=>J.test(Q))}function f(Q){if(typeof Q!="number"||!Number.isFinite(Q))return!1;const J=946684800,ge=4102444800,ke=J*1e3,$e=ge*1e3;return Q>=J&&Q<=ge||Q>=ke&&Q<=$e}function b(Q){const ge=Q>1e10?Q:Q*1e3;return Ee(ge).format("YYYY-MM-DD HH:mm:ss")}const y=[/^id$/i,/^message_id$/i,/^msg_id$/i,/^msgid$/i];function k(Q){return Q.findIndex(J=>y.some(ge=>ge.test(J)))}function x(Q){o.openChatRecordDrawer({scrollToMessageId:Q})}const _=new Aa({html:!1,breaks:!0,linkify:!0,typographer:!0}),C=i,$=z(null),S=z("asc"),T=z(1),v=z(100),w=[50,100,200,500],E=z(localStorage.getItem("sql-lab-readable-time")!=="false");function F(){E.value=!E.value,localStorage.setItem("sql-lab-readable-time",String(E.value))}const D=z(!1),A=z(!1),I=z(""),q=z(null),Y=z(""),G=z(!1);function Z(Q){const J=Q.split("."),ge=J.length>1?J[J.length-1]:Q,ke=pa[n.value]||pa["zh-CN"];for(const $e of Object.values(ke))if($e[ge])return $e[ge];return null}const ce=M(()=>{if(!C.result||!$.value)return C.result?.rows||[];const Q=C.result.columns.indexOf($.value);return Q===-1?C.result.rows:[...C.result.rows].sort((J,ge)=>{const ke=J[Q],$e=ge[Q];if(ke===null)return 1;if($e===null)return-1;if(typeof ke=="number"&&typeof $e=="number")return S.value==="asc"?ke-$e:$e-ke;const Le=String(ke).localeCompare(String($e));return S.value==="asc"?Le:-Le})}),ne=M(()=>C.result?Math.ceil(ce.value.length/v.value):0),H=M(()=>{const Q=(T.value-1)*v.value,J=Q+v.value;return ce.value.slice(Q,J)}),W=M(()=>C.result?k(C.result.columns):-1),re=M(()=>W.value!==-1);function ve(Q){$.value===Q?S.value=S.value==="asc"?"desc":"asc":($.value=Q,S.value="asc"),T.value=1}function he(Q){v.value=Q,T.value=1}function ee(Q,J){return Q===null?"NULL":typeof Q=="object"?JSON.stringify(Q):E.value&&J&&h(J)&&f(Q)?b(Q):String(Q)}async function te(){if(!(!C.result||G.value)){G.value=!0;try{const Q=c.value.sqlExportFormat??"csv",J=await Yl({columns:C.result.columns,rows:C.result.rows},Q);if(J.success&&J.filePath){const ge=J.filePath.split("/").pop()||J.filePath;s.add({title:e("common.exportSuccess"),description:ge,color:"primary",actions:[{label:e("common.openFolder"),onClick:()=>{ns().showInFolder(J.filePath)}}]})}else s.fail(e("common.exportFailed"),{description:J.error})}catch(Q){console.error("导出失败:",Q),s.fail(e("common.exportFailed"),{description:String(Q)})}finally{G.value=!1}}}function j(){$.value=null,S.value="asc",T.value=1}function de(){if(!C.result)return"";const Q=50,J=C.result.rows.slice(0,Q),ge=C.result.columns.join(" | "),ke=C.result.columns.map(()=>"---").join(" | "),$e=J.map(Be=>Be.map(Te=>Te===null?"NULL":String(Te).slice(0,50)).join(" | "));let Le=`| ${ge} |
|
|
4
|
+
`)}function Ul(i){return i.replace(/[/\\?%*:|"<>]/g,"_")}async function Wl(i,l,e,n,s){if(l.length===0)return{success:!1,error:"No messages to export"};let u,o;const c=Ee(e).format("YYYYMMDD_HHmmss"),g=Ul(i);n==="markdown"?(u=jl(i,l,e,s),o=`${g}_${c}.md`):(u=Nl(i,l,e,s),o=`${g}_${c}.txt`);const h=`data:text/plain;charset=utf-8,${encodeURIComponent(u)}`,{useCacheService:f}=await Jt(async()=>{const{useCacheService:y}=await import("./index-CW9H_fBd.js").then(k=>k.co);return{useCacheService:y}},__vite__mapDeps([0,1,2]));return await f().saveToDownloads(o,h)}function Hl(i){const l=i.columns.join(","),e=i.rows.map(n=>n.map(s=>s===null?"":`"${String(s).replace(/"/g,'""')}"`).join(","));return[l,...e].join(`
|
|
5
|
+
`)}function Kl(i){const l=i.rows.map(e=>{const n={};return i.columns.forEach((s,u)=>{n[s]=e[u]}),n});return JSON.stringify(l,null,2)}async function Yl(i,l){if(i.rows.length===0)return{success:!1,error:"No data to export"};const n=`sql_result_${Ee().format("YYYYMMDD_HHmmss")}.${l}`;let s,u;l==="json"?(s=Kl(i),u="application/json"):(s=Hl(i),u="text/csv");const o=`data:${u};charset=utf-8,${encodeURIComponent(s)}`,{useCacheService:c}=await Jt(async()=>{const{useCacheService:h}=await import("./index-CW9H_fBd.js").then(f=>f.co);return{useCacheService:h}},__vite__mapDeps([0,1,2]));return await c().saveToDownloads(n,o)}function jw(i){const{route:l,router:e,currentSessionId:n,selectSession:s,defaultTab:u,validTabIds:o}=i,c=z(!0),g=z(!0),h=z(null),f=z([]),b=z([]),y=z([]),k=z([]);let x=0;function _(){const I=l.query.tab;return I&&o.includes(I)?I:u}const C=z(_()),{timeRangeValue:$,fullTimeRange:S,availableYears:T,timeFilter:v,initialTimeState:w}=Vl(l,e,{activeTab:C,isInitialLoad:g,currentSessionId:n,onTimeRangeChange:()=>D()});function E(){const I=l.params.id;I&&(s(I),n.value!==I&&e.replace("/"))}async function F(){if(n.value)try{const I=await Ke().getSession(n.value);h.value=I}catch(I){console.error("加载基础数据失败:",I)}}async function D(){const I=n.value;if(!I)return;const q=++x;c.value=!0;try{const Y=v.value,G=Ke(),[Z,ce,ne,H]=await Promise.all([G.getMemberActivity(I,Y),G.getHourlyActivity(I,Y),G.getDailyActivity(I,Y),G.getMessageTypeDistribution(I,Y)]);if(q!==x)return;f.value=Z,b.value=ce,y.value=ne,k.value=H}catch(Y){q===x&&console.error("加载分析数据失败:",Y)}finally{q===x&&(c.value=!1)}}async function A(){n.value&&(g.value=!0,await F(),g.value=!1)}return fe(()=>l.params.id,()=>{C.value=_(),E()}),fe(()=>l.query.tab,()=>{C.value=_()}),fe(n,()=>{x++,ss(),A()},{immediate:!0}),Re(()=>{E()}),{activeTab:C,isLoading:c,isInitialLoad:g,session:h,memberActivity:f,hourlyActivity:b,dailyActivity:y,messageTypes:k,timeRangeValue:$,fullTimeRange:S,availableYears:T,timeFilter:v,initialTimeState:w,syncSession:E,loadData:A,loadAnalysisData:D}}const Gl={class:"pointer-events-none absolute right-3 top-3 z-50 opacity-0 transition-opacity duration-200 group-hover/card:pointer-events-auto group-hover/card:opacity-100"},Ql=ue({__name:"CardCaptureOverlay",setup(i){return(l,e)=>(r(),m("div",Gl,[p(Lt,{type:"element","target-selector":"[data-capturable-card]",size:"xs"})]))}}),na=ue({__name:"ReportCard",props:{capturable:{type:Boolean,default:!0}},setup(i){return(l,e)=>(r(),U(mt,{"data-capturable-card":"",class:"group/card relative isolate flex flex-col"},{default:B(()=>[p(Qn),i.capturable?(r(),U(Ql,{key:0})):R("",!0),ye(l.$slots,"default")]),_:3}))}}),Jl={class:"flex items-center justify-between"},Xl={class:"font-semibold text-gray-900 dark:text-white whitespace-nowrap"},Zl={key:0,class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},er={class:"flex items-center gap-2"},tr={key:0,class:"pointer-events-none opacity-0 transition-opacity duration-200 group-hover/card:pointer-events-auto group-hover/card:opacity-100"},Ze=ue({__name:"SectionCard",props:{title:{},description:{},capturable:{type:Boolean,default:!0},showDivider:{type:Boolean,default:!0},scrollable:{type:Boolean,default:!1},maxHeightVh:{default:60}},setup(i){const l=i,e=M(()=>{if(l.scrollable)return{maxHeight:`${l.maxHeightVh}vh`,overflowY:"auto"}});return(n,s)=>(r(),U(mt,{class:"group/card","data-section-card":""},{default:B(()=>[a("div",{class:X(["px-5 py-3",{"border-b border-gray-200 dark:border-white/5":i.showDivider&&n.$slots.default}])},[a("div",Jl,[a("div",null,[a("p",Xl,d(i.title),1),i.description?(r(),m("p",Zl,d(i.description),1)):R("",!0)]),a("div",er,[ye(n.$slots,"headerRight"),i.capturable?(r(),m("div",tr,[p(Lt,{type:"element","target-selector":"[data-section-card]",size:"xs"})])):R("",!0)])])],2),i.scrollable?(r(),m("div",{key:0,style:et(e.value)},[ye(n.$slots,"default")],4)):ye(n.$slots,"default",{key:1}),ye(n.$slots,"footer")]),_:3}))}}),ar={class:"flex items-start justify-between"},sr={class:"min-w-0 flex-1"},nr={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},or={key:1,class:"text-xl"},lr={key:0,class:"mt-4 flex items-center text-sm"},rr={class:"text-gray-500 dark:text-gray-400"},ot=ue({__name:"StatCard",props:{label:{},value:{},valueColor:{},subtext:{},icon:{},iconBg:{}},setup(i){const l={pink:"text-pink-600 dark:text-pink-400",amber:"text-amber-600 dark:text-amber-400",blue:"text-blue-600 dark:text-blue-400",green:"text-green-600 dark:text-green-400",red:"text-red-600 dark:text-red-400",gray:"text-gray-900 dark:text-white"},e={pink:"bg-pink-100 dark:bg-pink-500/10",amber:"bg-amber-100 dark:bg-amber-500/10",blue:"bg-blue-100 dark:bg-blue-500/10",green:"bg-green-100 dark:bg-green-500/10",red:"bg-red-100 dark:bg-red-500/10",gray:"bg-gray-100 dark:bg-white/5"};return(n,s)=>{const u=_e;return r(),U(mt,{class:"p-5"},{default:B(()=>[a("div",ar,[a("div",sr,[a("p",nr,d(i.label),1),a("p",{class:X(["mt-2 truncate text-2xl font-bold tracking-tight",i.valueColor?l[i.valueColor]:"text-gray-900 dark:text-white"])},d(i.value),3)]),i.icon?(r(),m("div",{key:0,class:X(["ml-4 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",e[i.iconBg||"gray"]])},[i.icon.startsWith("i-")?(r(),U(u,{key:0,name:i.icon,class:"h-5 w-5"},null,8,["name"])):(r(),m("span",or,d(i.icon),1))],2)):R("",!0)]),i.subtext||n.$slots.subtext?(r(),m("div",lr,[ye(n.$slots,"subtext",{},()=>[a("span",rr,d(i.subtext),1)])])):R("",!0)]),_:3})}}}),ir={key:0,class:"mb-2 block text-2xl"},Nw=ue({__name:"EmptyState",props:{text:{},icon:{},padding:{}},setup(i){const l={sm:"px-4 py-4",md:"px-5 py-8",lg:"px-6 py-12"};return(e,n)=>(r(),m("div",{class:X(["text-center text-sm text-gray-400",l[i.padding||"md"]])},[i.icon?(r(),m("span",ir,d(i.icon),1)):R("",!0),le(" "+d(i.text||"暂无数据"),1)],2))}}),ur={"zh-CN":{message:"消息记录",member:"成员",meta:"群信息",member_name_history:"昵称历史"},"en-US":{message:"Messages",member:"Members",meta:"Chat Info",member_name_history:"Nickname History"}},pa={"zh-CN":{message:{id:"消息ID",sender_id:"发送者ID",sender_account_name:"发送时账号名",sender_group_nickname:"发送时群昵称",ts:"时间戳(秒)",type:"消息类型",content:"消息内容"},member:{id:"成员ID",platform_id:"平台ID",account_name:"账号名称",group_nickname:"群昵称",aliases:"自定义别名"},meta:{name:"群名称",platform:"平台",type:"聊天类型",imported_at:"导入时间"},member_name_history:{id:"记录ID",member_id:"成员ID",name_type:"名称类型",name:"昵称值",start_ts:"开始时间",end_ts:"结束时间"}},"en-US":{message:{id:"Message ID",sender_id:"Sender ID",sender_account_name:"Sender Account",sender_group_nickname:"Sender Nickname",ts:"Timestamp (sec)",type:"Message Type",content:"Content"},member:{id:"Member ID",platform_id:"Platform ID",account_name:"Account Name",group_nickname:"Group Nickname",aliases:"Custom Aliases"},meta:{name:"Chat Name",platform:"Platform",type:"Chat Type",imported_at:"Imported At"},member_name_history:{id:"Record ID",member_id:"Member ID",name_type:"Name Type",name:"Nickname",start_ts:"Start Time",end_ts:"End Time"}}};function ha(i,l="zh-CN"){return ur[_s(l)]?.[i]||i}function La(i,l,e="zh-CN"){return pa[_s(e)]?.[i]?.[l]||l}function _s(i){return i.startsWith("zh")?"zh-CN":"en-US"}const cr={key:0,class:"text-xs font-medium text-gray-500 dark:text-gray-400"},dr={key:0,class:"flex-1 overflow-y-auto p-2"},mr=["onClick"],gr={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},pr={class:"flex-1 truncate text-right text-xs text-gray-400"},hr={key:0,class:"ml-4 mt-1 space-y-0.5"},fr=["title","onDblclick"],vr={class:"font-mono text-gray-700 dark:text-gray-300"},yr={class:"flex-1 truncate text-right text-[10px] text-gray-400"},xr={key:1,class:"flex flex-1 flex-col items-center gap-1 overflow-y-auto px-2 pb-2"},br=["title","onClick"],kr=ue({__name:"SchemaPanel",props:{sessionId:{}},emits:["insertColumn"],setup(i,{expose:l,emit:e}){const{t:n,locale:s}=we(),u=i,o=e,c=z(!1),g=z([]),h=z(new Set);async function f(){try{g.value=await Ke().getSchema(u.sessionId),g.value.forEach(x=>h.value.add(x.name))}catch(x){console.error("加载 Schema 失败:",x)}}function b(x){h.value.has(x)?h.value.delete(x):h.value.add(x)}function y(x){c.value=!1,h.value.add(x)}function k(x,_){o("insertColumn",x,_)}return l({loadSchema:f,schema:g}),Re(()=>{f()}),(x,_)=>{const C=_e,$=Ue;return r(),m("div",{class:X(["m-3 flex h-[calc(100%-1.5rem)] shrink-0 flex-col overflow-hidden rounded-lg bg-white transition-all duration-300 ease-in-out dark:bg-sidebar-dark",c.value?"w-14":"w-56"])},[a("div",{class:X(["flex items-center",c.value?"justify-center px-2 pb-2 pt-5":"justify-between border-b border-gray-200 py-2 pl-3 pr-2 dark:border-gray-800"])},[c.value?R("",!0):(r(),m("span",cr,d(t(n)("ai.sqlLab.schema.tables")),1)),c.value?(r(),m("button",{key:2,type:"button",class:"group relative flex h-9 w-9 cursor-pointer items-center justify-center rounded-full hover:bg-gray-200/60 dark:hover:bg-white/[0.06]",onClick:_[1]||(_[1]=S=>c.value=!c.value)},[p(C,{name:"i-lucide-panel-right-open",class:"size-4 scale-x-[-1]"})])):(r(),U($,{key:1,color:"neutral",variant:"ghost",size:"sm",class:"group flex h-9 w-9 cursor-pointer items-center justify-center rounded-full hover:bg-gray-200/60 dark:hover:bg-white/[0.06]",onClick:_[0]||(_[0]=S=>c.value=!c.value)},{default:B(()=>[p(C,{name:"i-lucide-panel-right",class:"size-4 scale-x-[-1] group-hover:hidden"}),p(C,{name:"i-lucide-panel-right-close",class:"size-4 hidden scale-x-[-1] group-hover:block"})]),_:1}))],2),c.value?(r(),m("div",xr,[(r(!0),m(ie,null,pe(g.value,S=>(r(),m("button",{key:S.name,class:"flex h-10 w-10 items-center justify-center rounded-lg text-gray-600 transition-colors hover:bg-gray-200/40 hover:text-primary-600 dark:text-gray-300 dark:hover:bg-white/[0.06] dark:hover:text-primary-400",title:`${t(ha)(S.name,t(s))} (${S.name})`,onClick:T=>y(S.name)},[p(C,{name:"i-heroicons-table-cells",class:"h-5 w-5"})],8,br))),128))])):(r(),m("div",dr,[(r(!0),m(ie,null,pe(g.value,S=>(r(),m("div",{key:S.name,class:"mb-2"},[a("button",{class:"flex w-full items-center gap-1 rounded px-2 py-1.5 text-left transition-colors hover:bg-gray-100 dark:hover:bg-gray-800",onClick:T=>b(S.name)},[p(C,{name:h.value.has(S.name)?"i-heroicons-chevron-down":"i-heroicons-chevron-right",class:"h-3 w-3 shrink-0 text-gray-400"},null,8,["name"]),p(C,{name:"i-heroicons-table-cells",class:"h-4 w-4 shrink-0 text-pink-500"}),a("span",gr,d(S.name),1),a("span",pr,d(t(ha)(S.name,t(s))),1)],8,mr),h.value.has(S.name)?(r(),m("div",hr,[(r(!0),m(ie,null,pe(S.columns,T=>(r(),m("button",{key:T.name,class:"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-xs transition-colors hover:bg-gray-100 dark:hover:bg-gray-800",title:t(n)("ai.sqlLab.schema.doubleClickToInsert"),onDblclick:v=>k(S.name,T.name)},[T.pk?(r(),U(C,{key:0,name:"i-heroicons-key",class:"h-3 w-3 shrink-0 text-yellow-500",title:t(n)("ai.sqlLab.schema.primaryKey")},null,8,["title"])):R("",!0),a("span",vr,d(T.name),1),a("span",yr,d(t(La)(S.name,T.name,t(s))),1)],40,fr))),128))])):R("",!0)]))),128))]))],2)}}}),_r={class:"max-h-[70vh] overflow-hidden p-6"},wr={class:"mb-4 flex items-center gap-2"},$r={class:"text-lg font-semibold text-gray-900 dark:text-white"},Cr={key:0,class:"max-h-[50vh] space-y-3 overflow-y-auto pr-2"},Sr={class:"mb-2 flex items-start justify-between gap-2"},Ir={class:"flex-1 text-sm font-medium text-gray-700 dark:text-gray-300"},Tr={class:"shrink-0 text-xs text-gray-400"},Mr={class:"mb-2 rounded bg-white p-2 dark:bg-gray-800"},Ar={class:"whitespace-pre-wrap break-all font-mono text-xs text-gray-600 dark:text-gray-400"},zr={key:0,class:"mb-2 text-xs text-gray-500 dark:text-gray-400"},qr={class:"flex justify-end gap-2"},Lr={key:1,class:"py-8 text-center text-gray-500 dark:text-gray-400"},Dr={class:"text-sm"},Er={class:"mt-4 flex justify-end"},Br=ue({__name:"AIHistoryModal",props:{open:{type:Boolean},history:{}},emits:["update:open","execute","delete"],setup(i,{emit:l}){const{t:e}=we(),n=l;function s(u){const o=new Date(u),c=new Date,g=c.getTime()-u;return g<6e4?e("ai.sqlLab.history.justNow"):g<36e5?e("ai.sqlLab.history.minutesAgo",{count:Math.floor(g/6e4)}):g<864e5?e("ai.sqlLab.history.hoursAgo",{count:Math.floor(g/36e5)}):o.toDateString()===c.toDateString()?e("ai.sqlLab.history.today"):`${o.getMonth()+1}/${o.getDate()}`}return(u,o)=>{const c=_e,g=Ue,h=Xe;return r(),U(h,{open:i.open,ui:{content:"max-w-5xl"},"onUpdate:open":o[1]||(o[1]=f=>n("update:open",f))},{content:B(()=>[a("div",_r,[a("div",wr,[p(c,{name:"i-heroicons-clock",class:"h-5 w-5 text-pink-500"}),a("h3",$r,d(t(e)("ai.sqlLab.history.title")),1)]),i.history.length>0?(r(),m("div",Cr,[(r(!0),m(ie,null,pe(i.history,f=>(r(),m("div",{key:f.id,class:"rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-page-dark"},[a("div",Sr,[a("p",Ir,d(f.prompt),1),a("span",Tr,d(s(f.timestamp)),1)]),a("div",Mr,[a("pre",Ar,d(f.sql),1)]),f.explanation?(r(),m("p",zr,d(f.explanation),1)):R("",!0),a("div",qr,[p(g,{variant:"ghost",size:"xs",color:"error",onClick:b=>n("delete",f.id)},{default:B(()=>[p(c,{name:"i-heroicons-trash",class:"h-3.5 w-3.5"})]),_:1},8,["onClick"]),p(g,{size:"xs",onClick:b=>n("execute",f)},{default:B(()=>[p(c,{name:"i-heroicons-play",class:"mr-1 h-3.5 w-3.5"}),le(" "+d(t(e)("ai.sqlLab.history.execute")),1)]),_:1},8,["onClick"])])]))),128))])):(r(),m("div",Lr,[p(c,{name:"i-heroicons-clock",class:"mx-auto mb-2 h-8 w-8 text-gray-300 dark:text-gray-600"}),a("p",Dr,d(t(e)("ai.sqlLab.history.empty")),1)])),a("div",Er,[p(g,{variant:"ghost",onClick:o[0]||(o[0]=f=>n("update:open",!1))},{default:B(()=>[le(d(t(e)("common.close")),1)]),_:1})])])]),_:1},8,["open"])}}}),Fr={class:"flex flex-1 flex-col overflow-hidden"},Rr={key:0,class:"border-b border-red-200 bg-red-50 p-4 dark:border-red-900 dark:bg-red-950"},Vr={class:"flex items-start gap-2"},Or={class:"min-w-0 flex-1"},Pr={class:"text-sm font-medium text-red-800 dark:text-red-200"},jr={class:"mt-1 break-all font-mono text-xs text-red-600 dark:text-red-400"},Nr={key:1,class:"flex items-center justify-between border-b border-gray-200 bg-gray-50 px-4 py-2 dark:border-gray-800 dark:bg-page-dark"},Ur={class:"flex items-center gap-4 text-sm text-gray-600 dark:text-gray-400"},Wr={class:"flex cursor-pointer items-center gap-1.5"},Hr={class:"text-xs"},Kr={class:"flex items-center gap-2"},Yr={key:2,class:"flex-1 overflow-auto"},Gr={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},Qr={class:"sticky top-0 bg-gray-100 dark:bg-page-dark"},Jr=["onClick"],Xr={class:"flex items-center gap-1"},Zr={class:"flex flex-col"},ei={class:"text-gray-700 dark:text-gray-300"},ti={key:0,class:"font-mono text-[10px] text-gray-400"},ai={key:0,class:"sticky right-0 w-12 bg-gray-100 px-2 py-2 dark:bg-page-dark"},si={class:"divide-y divide-gray-200 bg-white dark:divide-gray-700 dark:bg-page-dark"},ni=["title"],oi={key:0,class:"sticky right-0 w-12 bg-white px-2 py-2 dark:bg-page-dark"},li={key:3,class:"flex shrink-0 items-center gap-4 border-t border-gray-200 bg-gray-50 px-4 py-2 dark:border-gray-800 dark:bg-page-dark"},ri={class:"flex items-center gap-1"},ii={class:"mx-2 text-xs text-gray-600 dark:text-gray-400"},ui={class:"flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"},ci={key:4,class:"flex flex-1 items-center justify-center text-gray-500 dark:text-gray-400"},di={class:"text-center"},mi={class:"mt-2 text-sm"},gi={key:5,class:"flex flex-1 items-center justify-center text-gray-500 dark:text-gray-400"},pi={class:"text-center"},hi={class:"mt-2 text-sm"},fi={class:"mt-1 text-xs text-gray-400"},vi={class:"max-h-[70vh] overflow-hidden p-6"},yi={class:"mb-4 flex items-center gap-2"},xi={class:"text-lg font-semibold text-gray-900 dark:text-white"},bi={key:0,class:"flex items-center justify-center py-8"},ki={class:"ml-2 text-sm text-gray-500"},_i={key:1,class:"max-h-[50vh] overflow-y-auto"},wi=["innerHTML"],$i={key:0,class:"mt-2 flex items-center text-xs text-gray-400"},Ci={key:2,class:"rounded-lg bg-red-50 p-4 dark:bg-red-950"},Si={class:"text-sm text-red-600 dark:text-red-400"},Ii={class:"mt-4 flex justify-end gap-2"},Ti=ue({__name:"ResultTable",props:{result:{},error:{},sql:{},prompt:{}},setup(i,{expose:l}){const{t:e,locale:n}=we(),s=nt(),u=ka(),o=bt(),{aiGlobalSettings:c}=ut(u),g=[/^ts$/i,/^timestamp$/i,/^time$/i,/_at$/i,/_ts$/i,/_time$/i,/^date$/i];function h(Q){return g.some(J=>J.test(Q))}function f(Q){if(typeof Q!="number"||!Number.isFinite(Q))return!1;const J=946684800,ge=4102444800,ke=J*1e3,$e=ge*1e3;return Q>=J&&Q<=ge||Q>=ke&&Q<=$e}function b(Q){const ge=Q>1e10?Q:Q*1e3;return Ee(ge).format("YYYY-MM-DD HH:mm:ss")}const y=[/^id$/i,/^message_id$/i,/^msg_id$/i,/^msgid$/i];function k(Q){return Q.findIndex(J=>y.some(ge=>ge.test(J)))}function x(Q){o.openChatRecordDrawer({scrollToMessageId:Q})}const _=new Aa({html:!1,breaks:!0,linkify:!0,typographer:!0}),C=i,$=z(null),S=z("asc"),T=z(1),v=z(100),w=[50,100,200,500],E=z(localStorage.getItem("sql-lab-readable-time")!=="false");function F(){E.value=!E.value,localStorage.setItem("sql-lab-readable-time",String(E.value))}const D=z(!1),A=z(!1),I=z(""),q=z(null),Y=z(""),G=z(!1);function Z(Q){const J=Q.split("."),ge=J.length>1?J[J.length-1]:Q,ke=pa[n.value]||pa["zh-CN"];for(const $e of Object.values(ke))if($e[ge])return $e[ge];return null}const ce=M(()=>{if(!C.result||!$.value)return C.result?.rows||[];const Q=C.result.columns.indexOf($.value);return Q===-1?C.result.rows:[...C.result.rows].sort((J,ge)=>{const ke=J[Q],$e=ge[Q];if(ke===null)return 1;if($e===null)return-1;if(typeof ke=="number"&&typeof $e=="number")return S.value==="asc"?ke-$e:$e-ke;const Le=String(ke).localeCompare(String($e));return S.value==="asc"?Le:-Le})}),ne=M(()=>C.result?Math.ceil(ce.value.length/v.value):0),H=M(()=>{const Q=(T.value-1)*v.value,J=Q+v.value;return ce.value.slice(Q,J)}),W=M(()=>C.result?k(C.result.columns):-1),re=M(()=>W.value!==-1);function ve(Q){$.value===Q?S.value=S.value==="asc"?"desc":"asc":($.value=Q,S.value="asc"),T.value=1}function he(Q){v.value=Q,T.value=1}function ee(Q,J){return Q===null?"NULL":typeof Q=="object"?JSON.stringify(Q):E.value&&J&&h(J)&&f(Q)?b(Q):String(Q)}async function te(){if(!(!C.result||G.value)){G.value=!0;try{const Q=c.value.sqlExportFormat??"csv",J=await Yl({columns:C.result.columns,rows:C.result.rows},Q);if(J.success&&J.filePath){const ge=J.filePath.split("/").pop()||J.filePath;s.add({title:e("common.exportSuccess"),description:ge,color:"primary",actions:[{label:e("common.openFolder"),onClick:()=>{ns().showInFolder(J.filePath)}}]})}else s.fail(e("common.exportFailed"),{description:J.error})}catch(Q){console.error("导出失败:",Q),s.fail(e("common.exportFailed"),{description:String(Q)})}finally{G.value=!1}}}function j(){$.value=null,S.value="asc",T.value=1}function de(){if(!C.result)return"";const Q=50,J=C.result.rows.slice(0,Q),ge=C.result.columns.join(" | "),ke=C.result.columns.map(()=>"---").join(" | "),$e=J.map(Be=>Be.map(Te=>Te===null?"NULL":String(Te).slice(0,50)).join(" | "));let Le=`| ${ge} |
|
|
6
6
|
| ${ke} |
|
|
7
7
|
`;return Le+=$e.map(Be=>`| ${Be} |`).join(`
|
|
8
8
|
`),C.result.rows.length>Q&&(Le+=`
|
|
@@ -107,4 +107,4 @@ tools: []
|
|
|
107
107
|
---
|
|
108
108
|
|
|
109
109
|
`,Jf=ue({__name:"SkillConfigModal",props:{open:{type:Boolean},skillId:{}},emits:["update:open","saved","created"],setup(i,{emit:l}){const{t:e}=we(),n=i,s=l,u=It(),o=z(""),c=z(!1),g=z(!1),h=z(!1);fe(()=>[n.open,n.skillId],async([b,y])=>{if(b){if(!y){h.value=!0,o.value=Qf;return}h.value=!1,c.value=!0;try{const k=await u.getSkillConfig(y);if(k){const x=["---",`name: "${k.name}"`,`description: "${k.description}"`,`tags: [${k.tags.map(_=>`"${_}"`).join(", ")}]`,`chatScope: ${k.chatScope}`,k.tools.length?`tools: [${k.tools.map(_=>`"${_}"`).join(", ")}]`:"tools: []",k.builtinId?`builtinId: ${k.builtinId}`:"","---","",k.prompt].filter(Boolean).join(`
|
|
110
|
-
`);o.value=x}}finally{c.value=!1}}},{immediate:!0});async function f(){if(o.value.trim()){g.value=!0;try{if(h.value){const b=await u.createSkill(o.value);b.success&&b.id&&(s("created",b.id),s("update:open",!1))}else n.skillId&&(await u.updateSkill(n.skillId,o.value)).success&&(s("saved"),s("update:open",!1))}finally{g.value=!1}}}return(b,y)=>{const k=_e,x=Xe;return r(),U(x,{open:i.open,ui:{content:"sm:max-w-2xl z-50"},"onUpdate:open":y[3]||(y[3]=_=>s("update:open",_))},{content:B(()=>[a("div",Nf,[a("div",Uf,[a("h2",Wf,d(h.value?t(e)("ai.skill.config.createTitle"):t(e)("ai.skill.config.editTitle")),1),a("button",{class:"rounded-lg p-1.5 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",onClick:y[0]||(y[0]=_=>s("update:open",!1))},[p(k,{name:"i-heroicons-x-mark",class:"h-5 w-5"})])]),a("p",Hf,d(t(e)("ai.skill.config.rawEditorHint")),1),c.value?(r(),m("div",Kf,[p(k,{name:"i-heroicons-arrow-path",class:"mr-2 h-5 w-5 animate-spin"})])):Qe((r(),m("textarea",{key:1,"onUpdate:modelValue":y[1]||(y[1]=_=>o.value=_),class:"h-[400px] w-full resize-none rounded-lg border border-gray-300 bg-gray-50 p-3 font-mono text-xs text-gray-900 focus:border-primary-500 focus:ring-1 focus:ring-primary-500 dark:border-gray-600 dark:bg-page-dark dark:text-gray-100",spellcheck:"false"},null,512)),[[ft,o.value]]),a("div",Yf,[a("button",{class:"rounded-lg px-4 py-2 text-sm text-gray-500 transition-colors hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800",onClick:y[2]||(y[2]=_=>s("update:open",!1))},d(t(e)("common.cancel")),1),a("button",{class:"rounded-lg bg-primary-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-primary-600 disabled:opacity-50",disabled:g.value||!o.value.trim(),onClick:f},d(h.value?t(e)("ai.skill.config.create"):t(e)("ai.skill.config.save")),9,Gf)])])]),_:1},8,["open"])}}}),Xf={key:0,class:"relative"},Zf={class:"relative flex flex-nowrap gap-2"},ev=["disabled"],tv=["disabled"],av={class:"inline-flex items-center gap-1"},sv={key:0,class:"absolute left-0 bottom-full z-20 mb-2 w-[320px] max-w-[calc(100vw-3rem)]"},nv={class:"mb-1.5 flex justify-start"},ov={class:"flex flex-wrap gap-2"},lv=["disabled","onClick"],ca="rounded-full ring-1 ring-inset ring-gray-200/80 bg-white/60 shadow-[0_2px_8px_-2px_rgba(0,0,0,0.05)] backdrop-blur-md px-3 py-1.5 text-xs text-gray-600 transition-all duration-300 hover:-translate-y-[1px] hover:ring-primary-300 hover:bg-white/90 hover:text-primary-600 hover:shadow-[0_4px_12px_-2px_rgba(0,0,0,0.08)] disabled:cursor-not-allowed disabled:opacity-50 dark:ring-gray-700/60 dark:bg-gray-800/60 dark:text-gray-300 dark:hover:ring-primary-500/50 dark:hover:bg-gray-800/90 dark:hover:text-primary-400",rv=ue({__name:"PresetQuestions",props:{questions:{},disabled:{type:Boolean},leadingActionLabel:{}},emits:["select","leadingAction","editQuestions"],setup(i,{emit:l}){const{t:e}=we(),n=i,s=l,u=z(!1);let o=null;function c(b){u.value=!1,s("select",b)}function g(){n.disabled||n.questions.length===0||(o&&(clearTimeout(o),o=null),u.value=!0)}function h(){o=setTimeout(()=>{u.value=!1},150)}function f(){u.value=!1,s("editQuestions")}return Xt(()=>{o&&clearTimeout(o)}),(b,y)=>{const k=_e;return i.leadingActionLabel||i.questions.length>0?(r(),m("div",Xf,[a("div",Zf,[i.leadingActionLabel?(r(),m("button",{key:0,class:X(ca),disabled:n.disabled,onClick:y[0]||(y[0]=x=>s("leadingAction"))},d(i.leadingActionLabel),9,ev)):R("",!0),i.questions.length>0?(r(),m("div",{key:1,class:"relative shrink-0",onMouseenter:g,onMouseleave:h},[a("button",{class:X([ca,u.value?"ring-primary-300 bg-white/90 text-primary-600 dark:ring-primary-500/50 dark:bg-gray-800/90 dark:text-primary-400":""]),disabled:n.disabled},[a("span",av,[p(k,{name:"i-heroicons-chat-bubble-left-ellipsis",class:"h-3.5 w-3.5"}),le(" "+d(t(e)("ai.chat.input.quickAsk")),1)])],10,tv),p(vt,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"opacity-0 translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 translate-y-2"},{default:B(()=>[u.value?(r(),m("div",sv,[a("div",nv,[a("button",{class:"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] text-gray-400 transition-colors hover:text-primary-500 dark:text-gray-500 dark:hover:text-primary-400",onClick:f},[p(k,{name:"i-heroicons-pencil-square",class:"h-3 w-3"}),le(" "+d(t(e)("ai.chat.input.editQuickAsk")),1)])]),a("div",ov,[(r(!0),m(ie,null,pe(i.questions,(x,_)=>(r(),m("button",{key:_,class:X(ca),disabled:n.disabled,onClick:C=>c(x)},d(x),9,lv))),128))])])):R("",!0)]),_:1})],32)):R("",!0)])])):R("",!0)}}}),iv=30;function uv(i,l){const e=z(null),n=z(!0),s=z(!1);function u(h=!1){setTimeout(()=>{e.value&&(h||n.value)&&(e.value.scrollTop=e.value.scrollHeight,n.value=!0,s.value=!1)},100)}function o(h){h.deltaY<0&&l.value&&(n.value=!1,s.value=!0)}function c(){if(!e.value)return;const{scrollTop:h,scrollHeight:f,clientHeight:b}=e.value;f-h-b<iv&&(n.value=!0,s.value=!1)}function g(){u(!0)}return fe(()=>{const h=i.value[i.value.length-1];return[i.value.length,h?.content,h?.contentBlocks?.length]},()=>u()),Re(()=>{e.value&&(e.value.addEventListener("scroll",c),e.value.addEventListener("wheel",o,{passive:!0})),i.value.length>0&&u(!0)}),Xt(()=>{e.value&&(e.value.removeEventListener("scroll",c),e.value.removeEventListener("wheel",o))}),{messagesContainer:e,showScrollToBottom:s,scrollToBottom:u,handleScrollToBottom:g}}function cv(){const i=Ft(),l=It(),e=z(!1),n=z(null),s=z(!1),u=z(!1),o=z(!1),c=z(!1),g=z(null);function h(w){n.value=w,s.value=!1,e.value=!0}function f(){u.value=!0}function b(w){n.value=w,s.value=!1,e.value=!0}function y(w){n.value=w,s.value=!0,e.value=!0}function k(){n.value=null,s.value=!1,e.value=!0}async function x(w){await i.loadAssistants(),await i.loadBuiltinCatalog()}async function _(){await i.loadAssistants()}function C(){o.value=!0}function $(w){g.value=w,c.value=!0}function S(){g.value=null,c.value=!0}async function T(){await l.loadSkills()}async function v(w){await l.loadSkills(),await l.loadBuiltinCatalog()}return{configModalVisible:e,configModalAssistantId:n,configModalReadonly:s,marketModalVisible:u,handleConfigureAssistant:h,handleOpenMarket:f,handleMarketConfigure:b,handleMarketViewConfig:y,handleCreateAssistant:k,handleAssistantCreated:x,handleAssistantConfigSaved:_,skillMarketModalVisible:o,skillConfigModalVisible:c,skillConfigModalSkillId:g,handleOpenSkillMarket:C,handleSkillMarketConfigure:$,handleCreateSkill:S,handleSkillConfigSaved:T,handleSkillCreated:v}}function dv(i){const l=[];let e=null;for(const n of i)n.role==="user"?(e&&l.push({user:e,assistant:null,standalone:null,id:e.id}),e=n):n.role==="assistant"?(l.push({user:e,assistant:n,standalone:null,id:e?.id||n.id}),e=null):(e&&(l.push({user:e,assistant:null,standalone:null,id:e.id}),e=null),l.push({user:null,assistant:null,standalone:n,id:n.id}));return e&&l.push({user:e,assistant:null,standalone:null,id:e.id}),l}const mv={class:"main-content flex h-full overflow-hidden"},gv={class:"flex h-full flex-1 overflow-hidden"},pv={class:"flex h-full flex-1"},hv={class:"relative flex min-w-[480px] flex-1 flex-col overflow-hidden"},fv={key:0,class:"flex items-center gap-1.5 px-3 py-1.5"},vv=["disabled"],yv={key:0,class:"flex w-full flex-col items-center justify-center animate-fade-in"},xv={key:0,class:"mb-3 text-center text-2xl font-semibold tracking-tight text-gray-800 dark:text-gray-100"},bv={class:"text-primary-600 dark:text-primary-400"},kv={key:1,class:"relative mb-8 w-full max-w-lg"},_v={class:"flex w-full justify-center"},wv={key:1,class:"qa-pair space-y-6 pb-4"},$v={key:1,class:"px-4 pb-2"},Cv={class:"mx-auto max-w-[740px]"},Sv={class:"px-4 pb-2"},Iv={class:"mx-auto max-w-[740px]"},Tv={key:0,class:"w-80 shrink-0 border-l border-gray-200 bg-gray-50/50 p-4 dark:border-gray-800 dark:bg-page-dark/50"},Mv=ue({__name:"ChatExplorer",props:{sessionId:{},sessionName:{},timeFilter:{},chatType:{}},setup(i,{expose:l}){const{t:e}=we(),n=nt(),s=Ma(),u=Ft(),o=It(),c=i,{messages:g,sourceMessages:h,currentKeywords:f,isLoadingSource:b,isAIThinking:y,currentAIChatId:k,currentToolStatus:x,toolsUsedInCurrentRound:_,sessionTokenUsage:C,agentStatus:$,selectedAssistantId:S,sendMessage:T,editMessageAndRegenerate:v,loadAIChat:w,startNewAIChat:E,loadMoreSourceMessages:F,updateMaxMessages:D,stopGeneration:A,selectAssistantForSession:I}=Rl(c.sessionId,c.sessionName,c.timeFilter,c.chatType??"group",s.locale),q=uv(g,y),{showScrollToBottom:Y,scrollToBottom:G,handleScrollToBottom:Z}=q,{configModalVisible:ce,configModalAssistantId:ne,configModalReadonly:H,marketModalVisible:W,skillMarketModalVisible:re,skillConfigModalVisible:ve,skillConfigModalSkillId:he,handleConfigureAssistant:ee,handleOpenMarket:te,handleMarketConfigure:j,handleMarketViewConfig:de,handleCreateAssistant:be,handleAssistantCreated:xe,handleAssistantConfigSaved:oe,handleOpenSkillMarket:Q,handleSkillMarketConfigure:J,handleCreateSkill:ge,handleSkillConfigSaved:ke,handleSkillCreated:$e}=cv(),Le=ka(),Be=z(0);fe(()=>k.value,async Ce=>{if(!Ce){Be.value=0;return}try{const Ie=await Ye().estimateContextTokens(Ce);Ie.success&&(Be.value=Ie.tokens)}catch{Be.value=0}},{immediate:!0});const Te=M(()=>u.selectedAssistant?.presetQuestions??[]),Pe=M(()=>c.chatType??"group"),je=z(!1),Se=z(!1),me=z(!0),O=z(void 0),V=z(null),K=z(null),L=z(null),P=z(!1),N=z(!1),ae=z(!1),se=M(()=>{const Ce=L.value?.name||e("ai.assistant.fallbackName");return e("ai.assistant.upgrade.backupName",{name:Ce})}),Ve=M(()=>dv(g.value));async function qe(){me.value=!0;try{Se.value=await $a().hasConfig()}catch(Ce){console.error("检查 LLM 配置失败:",Ce),Se.value=!1}finally{me.value=!1}}async function Me(){await qe(),Se.value&&await D()}l({refreshConfig:Me});const Fe=M(()=>{const Ce=u.selectedAssistant;if(!Ce)return{name:"",preview:""};const Ie=Ce.systemPrompt.replace(/#{1,6}\s+[^\n]*/g,"").replace(/\n+/g," ").replace(/\s+/g," ").trim();return{name:Ce.name,preview:Ie}}),st=M(()=>!!S.value&&g.value.length===0&&!y.value);function oa(){n.warn(e("ai.chat.backgroundTask.runningTitle"),{description:e("ai.chat.backgroundTask.runningDescription")})}function Ea(){n.warn(e("ai.chat.backgroundTask.blockedAction"))}function Cs(Ce){if(Ce!==S.value){if(!I(Ce)){Ea();return}o.activateSkill(null),E()}}async function Ss(Ce){const Ie=await T(Ce);!Ie.success&&Ie.reason==="busy"&&oa()}function Is(){const Ce=u.selectedAssistant?.id;Ce&&(O.value="presetQuestions",ee(Ce))}function Ts(Ce){ce.value=Ce,Ce||(O.value=void 0)}function Ms(){K.value?.openSkillSelector()}function As(){G(!0)}async function Ba(){const Ce=await u.checkDefaultAssistantUpgrade(s.locale);Ce&&(L.value=Ce,P.value=!0)}async function zs(){const Ce=L.value;if(!(!Ce||N.value||ae.value)){ae.value=!0;try{const Ie=await u.skipAssistantUpgrade(Ce);if(!Ie.success){n.fail(e("ai.assistant.upgrade.skipFailed"),{description:Ie.error||e("ai.assistant.toast.unknownError")});return}P.value=!1,L.value=null}finally{ae.value=!1}}}async function qs(){const Ce=L.value;if(!(!Ce||N.value||ae.value)){N.value=!0;try{const Ie=se.value,kt=await u.upgradeAssistantWithBackup(Ce,Ie);if(!kt.success){n.fail(e("ai.assistant.upgrade.failed"),{description:kt.error||e("ai.assistant.toast.unknownError")});return}P.value=!1,L.value=null,n.success(e("ai.assistant.upgrade.success"),{description:e("ai.assistant.upgrade.successDescription",{name:Ie})})}finally{N.value=!1}}}async function Ls(Ce){const Ie=await T(Ce.content,{mentionedMembers:Ce.mentionedMembers});if(!Ie.success){Ie.reason==="busy"&&oa();return}G(!0),V.value?.refresh()}async function Ds(Ce){const Ie=await v(Ce.messageId,Ce.content,{overwriteSubsequent:Ce.overwriteSubsequent});if(!Ie.success){Ie.reason==="busy"&&oa();return}G(!0),V.value?.refresh()}async function Es(Ce){if(k.value)try{const Ie=await Ye().forkAIChat(k.value,Ce);await w(Ie.id),V.value?.refresh(),G(!0),n.success(e("ai.chat.fork.success"))}catch(Ie){n.fail(e("ai.chat.fork.failed"),{description:String(Ie)})}}function Bs(){je.value=!je.value}async function Fs(){await F()}async function Rs(Ce){await w(Ce),G(!0)}function Vs(){if(y.value){Ea();return}E()}function Os(Ce){k.value===Ce&&E()}function Ps(){A()}return qe(),D(),Re(()=>{Ba()}),fe(()=>s.locale,()=>{Ba()}),fe(()=>Le.aiConfigVersion,async()=>{await Me()}),(Ce,Ie)=>{const kt=_e,js=St;return r(),m("div",mv,[p(zc,{ref_key:"conversationListRef",ref:V,"session-id":i.sessionId,"active-id":t(k),disabled:t(y),onSelect:Rs,onCreate:Vs,onDelete:Os},null,8,["session-id","active-id","disabled"]),a("div",gv,[a("div",pv,[a("div",hv,[t(g).length>0||t(y)?(r(),m("div",fv,[a("button",{class:X(["flex items-center gap-1 rounded-md px-1.5 py-1 text-xs text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",{"cursor-not-allowed opacity-50":t(y)||!t(u).selectedAssistant?.id}]),disabled:t(y)||!t(u).selectedAssistant?.id,onClick:Ie[0]||(Ie[0]=Ae=>t(ee)(t(u).selectedAssistant.id))},[p(kt,{name:"i-heroicons-sparkles",class:"h-3.5 w-3.5"}),a("span",null,d(t(u).selectedAssistant?.name||t(e)("ai.assistant.fallbackName")),1)],10,vv)])):R("",!0),a("div",{ref:t(q).messagesContainer,class:X(["relative min-h-0 flex-1 overflow-x-hidden overflow-y-auto p-4",{"p-0!":t(g).length===0&&!t(y)}])},[a("div",{class:X(["mx-auto max-w-3xl space-y-6",{"flex min-h-full flex-col justify-center px-4 pb-32 pt-4 space-y-0!":t(g).length===0&&!t(y),"px-4":t(g).length>0||t(y)}])},[t(g).length===0&&!t(y)?(r(),m("div",yv,[Fe.value.name?(r(),m("h2",xv,[le(d(t(e)("ai.assistant.selector.heroTitlePrefix","使用"))+" ",1),a("span",bv,d(Fe.value.name),1),le(" "+d(t(e)("ai.assistant.selector.heroTitleSuffix","开始对话")),1)])):R("",!0),st.value&&Fe.value.name?(r(),m("div",kv,[a("p",{class:"cursor-pointer pr-7 text-center text-sm leading-relaxed text-gray-500 transition-colors hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300 line-clamp-2",onClick:Ie[1]||(Ie[1]=Ae=>t(ee)(t(u).selectedAssistant.id))},[p(js,{text:t(e)("ai.assistant.config.systemPrompt","系统设定"),popper:{placement:"top"}},{default:B(()=>[le(d(Fe.value.preview),1)]),_:1},8,["text"])]),a("button",{type:"button",class:"absolute bottom-0 right-0 rounded-md p-0.5 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-200",onClick:Ie[2]||(Ie[2]=Oe(Ae=>t(ee)(t(u).selectedAssistant.id),["stop"]))},[p(kt,{name:"i-heroicons-pencil-square",class:"h-4 w-4"})])])):R("",!0),a("div",_v,[p(w0,{"chat-type":Pe.value,locale:t(s).locale,"selected-id":t(S),onSelect:Cs,onMarket:t(te)},null,8,["chat-type","locale","selected-id","onMarket"])])])):R("",!0),(r(!0),m(ie,null,pe(Ve.value,Ae=>(r(),m(ie,{key:Ae.id},[Ae.standalone?(r(),U(ua,{key:0,role:Ae.standalone.role,content:Ae.standalone.content,timestamp:Ae.standalone.timestamp},null,8,["role","content","timestamp"])):(r(),m("div",wv,[Ae.user&&(Ae.user.role==="user"||Ae.user.content)?(r(),U(ua,{key:0,role:Ae.user.role,"message-id":Ae.user.id,content:Ae.user.content,timestamp:Ae.user.timestamp,"is-streaming":Ae.user.isStreaming,"content-blocks":Ae.user.contentBlocks,editable:!t(y),onEdit:Ds},null,8,["role","message-id","content","timestamp","is-streaming","content-blocks","editable"])):R("",!0),Ae.assistant&&(Ae.assistant.content||Ae.assistant.contentBlocks&&Ae.assistant.contentBlocks.length>0)?(r(),U(ua,{key:1,role:Ae.assistant.role,"message-id":Ae.assistant.id,content:Ae.assistant.content,timestamp:Ae.assistant.timestamp,"is-streaming":Ae.assistant.isStreaming,"content-blocks":Ae.assistant.contentBlocks,"show-capture-button":!Ae.assistant.isStreaming,onFork:Es},null,8,["role","message-id","content","timestamp","is-streaming","content-blocks","show-capture-button"])):R("",!0)]))],64))),128)),t(y)&&!t(g)[t(g).length-1]?.content&&!(t(g)[t(g).length-1]?.contentBlocks?.length??0)?(r(),U(Gp,{key:1,"current-tool-status":t(x),"tools-used":t(_),"agent-status":t($)},null,8,["current-tool-status","tools-used","agent-status"])):R("",!0)],2)],2),p(vt,{name:"fade-up"},{default:B(()=>[t(Y)?(r(),m("button",{key:0,class:"absolute bottom-20 left-1/2 z-10 flex -translate-x-1/2 items-center gap-1.5 rounded-full bg-gray-800/90 px-3 py-1.5 text-xs text-white shadow-lg backdrop-blur-sm transition-all hover:bg-gray-700 dark:bg-gray-700/90 dark:hover:bg-gray-600",onClick:Ie[3]||(Ie[3]=(...Ae)=>t(Z)&&t(Z)(...Ae))},[p(kt,{name:"i-heroicons-arrow-down",class:"h-3.5 w-3.5"}),a("span",null,d(t(e)("ai.chat.scrollToBottom")),1)])):R("",!0)]),_:1}),t(g).length===0&&!t(y)?(r(),m("div",$v,[a("div",Cv,[p(rv,{questions:Te.value,"leading-action-label":t(e)("ai.chat.input.useSkill"),onSelect:Ss,onLeadingAction:Ms,onEditQuestions:Is},null,8,["questions","leading-action-label"])])])):R("",!0),a("div",Sv,[a("div",Iv,[p(Ep,{ref_key:"chatInputRef",ref:K,"session-id":i.sessionId,disabled:t(y),status:t(y)?"streaming":"ready","chat-type":Pe.value,onSend:Ls,onStop:Ps,onManageSkills:t(Q),onSkillActivated:As},null,8,["session-id","disabled","status","chat-type","onManageSkills"]),p(h0,{"session-token-usage":t(C),"agent-status":t($),"current-ai-chat-id":t(k),"current-messages":t(g),"fallback-title":i.sessionName,"estimated-context-tokens":Be.value},null,8,["session-token-usage","agent-status","current-ai-chat-id","current-messages","fallback-title","estimated-context-tokens"])])])])]),p(vt,{name:"slide-fade"},{default:B(()=>[t(h).length>0&&!je.value?(r(),m("div",Tv,[p(ed,{messages:t(h),keywords:t(f),"is-loading":t(b),"is-collapsed":je.value,class:"h-full",onToggle:Bs,onLoadMore:Fs},null,8,["messages","keywords","is-loading","is-collapsed"])])):R("",!0)]),_:1})]),p(gh,{open:t(ce),"assistant-id":t(ne),readonly:t(H),"scroll-to-section":O.value,"onUpdate:open":Ts,onSaved:t(oe),onCreated:t(xe)},null,8,["open","assistant-id","readonly","scroll-to-section","onSaved","onCreated"]),p(rf,{open:P.value,"backup-name":se.value,upgrading:N.value,skipping:ae.value,onSkip:zs,onConfirm:qs},null,8,["open","backup-name","upgrading","skipping"]),p(Gh,{open:t(W),"onUpdate:open":Ie[4]||(Ie[4]=Ae=>W.value=Ae),onConfigure:t(j),onViewConfig:t(de),onCreate:t(be)},null,8,["open","onConfigure","onViewConfig","onCreate"]),p(jf,{open:t(re),"onUpdate:open":Ie[5]||(Ie[5]=Ae=>re.value=Ae),onConfigure:t(J),onCreate:t(ge)},null,8,["open","onConfigure","onCreate"]),p(Jf,{open:t(ve),"skill-id":t(he),"onUpdate:open":Ie[6]||(Ie[6]=Ae=>ve.value=Ae),onSaved:t(ke),onCreated:t($e)},null,8,["open","skill-id","onSaved","onCreated"])])}}}),Kw=dt(Mv,[["__scopeId","data-v-3b042ff8"]]),Av=ue({__name:"EChartCalendar",props:{data:{},height:{default:180},year:{}},setup(i){ta([hs,fs,za,vs,aa]);const l=i,{t:e,locale:n}=we(),s=Zt(),u=z(null);let o=null;const c=M(()=>{if(l.year)return l.year;if(l.data.length===0)return new Date().getFullYear();const _=l.data.map(C=>parseInt(C.date.split("-")[0]));return Math.max(..._)}),g=M(()=>l.data.length===0?10:Math.max(...l.data.map(_=>_.value),1)),h=M(()=>l.data.map(_=>[_.date,_.value])),f={light:["#fee5e8","#fbb5c2","#f7758c","#ee4567"],dark:["#3d1f24","#6b2f3a","#a34557","#ee4567"]},b=M(()=>({tooltip:{trigger:"item",formatter:_=>{const C=_.data[0],$=_.data[1];return`${C}<br/>${e("views.message.calendarTooltipMessages")}: ${$}`}},visualMap:{min:0,max:g.value,calculable:!1,orient:"horizontal",left:"center",bottom:0,itemWidth:10,itemHeight:100,text:[`${g.value}`,"0"],inRange:{color:s.value?f.dark:f.light},textStyle:{color:s.value?"#9ca3af":"#6b7280",fontSize:10},show:!0},calendar:{top:30,left:40,cellSize:[13,13],range:String(c.value),itemStyle:{borderWidth:2,borderColor:s.value?"#1f2937":"#ffffff"},yearLabel:{show:!0,position:"top",color:s.value?"#9ca3af":"#6b7280",fontSize:12},monthLabel:{show:!0,color:s.value?"#9ca3af":"#6b7280",fontSize:10,nameMap:[e("common.month.jan"),e("common.month.feb"),e("common.month.mar"),e("common.month.apr"),e("common.month.may"),e("common.month.jun"),e("common.month.jul"),e("common.month.aug"),e("common.month.sep"),e("common.month.oct"),e("common.month.nov"),e("common.month.dec")]},dayLabel:{show:!0,firstDay:1,color:s.value?"#6b7280":"#9ca3af",fontSize:10,nameMap:[e("common.weekday.sun"),e("common.weekday.mon"),e("common.weekday.tue"),e("common.weekday.wed"),e("common.weekday.thu"),e("common.weekday.fri"),e("common.weekday.sat")]},splitLine:{show:!1}},series:[{type:"heatmap",coordinateSystem:"calendar",data:h.value}]}));function y(){u.value&&(o=sa(u.value,s.value?"dark":void 0,{renderer:"canvas"}),o.setOption({backgroundColor:"transparent",...b.value}))}function k(){o&&o.setOption({backgroundColor:"transparent",...b.value},{notMerge:!0})}function x(){o?.resize()}return fe([()=>l.data,s,n],()=>{k()}),fe(()=>l.year,()=>{k()}),Re(()=>{y(),window.addEventListener("resize",x)}),tt(()=>{window.removeEventListener("resize",x),o?.dispose()}),(_,C)=>(r(),m("div",{ref_key:"chartRef",ref:u,style:et({height:`${i.height}px`,width:"100%"})},null,4))}});function Yw(i){const l=M(()=>zn(i)),e=M(()=>{const s=l.value;return s.length<2?!1:new Set(s.map(o=>Ee(o.date).year())).size>1}),n=M(()=>{const s=l.value,u=50;if(s.length<=u){const h=e.value?"YYYY/MM/DD":"MM/DD";return{labels:s.map(f=>Ee(f.date).format(h)),values:s.map(f=>f.messageCount)}}const o=Math.ceil(s.length/u),c=[],g=[];for(let h=0;h<s.length;h+=o){const f=s.slice(h,h+o);if(f.length===0)continue;const b=Math.floor(f.length/2),y=f[b].date,k=e.value?"YYYY/MM/DD":"MM/DD";c.push(Ee(y).format(k));const x=f.reduce((C,$)=>C+$.messageCount,0),_=Math.round(x/f.length);g.push(_)}return{labels:c,values:g}});return{isMultiYear:e,dailyChartData:n}}const zv=86400;function Gt(i){return typeof i=="number"&&Number.isFinite(i)}function qv(i){return Gt(i?.startTs)&&Gt(i?.endTs)}function ws(i,l){const e=l?.startTs??i?.start,n=l?.endTs??i?.end;return!Gt(e)||!Gt(n)||n<e?null:{start:e,end:n}}function Lv(i,l=0){return!i||i.end<i.start?0:Math.max(Math.ceil((i.end-i.start)/zv),l,1)}function Dv(i){return i?[Ee.unix(i.start).format("YYYY-MM-DD"),Ee.unix(i.end).format("YYYY-MM-DD")]:null}function Ev(i,l){const{t:e}=we(),n=M(()=>ws(i.timeRange,i.timeFilter)),s=M(()=>qv(i.timeFilter)),u=M(()=>i.dailyActivity.filter(E=>E.messageCount>0).length),o=M(()=>Lv(n.value,u.value)),c=M(()=>s.value?i.filteredMessageCount:i.session.messageCount),g=M(()=>s.value?i.filteredMemberCount??i.session.memberCount:i.session.memberCount),h=M(()=>o.value),f=M(()=>h.value===0?0:Math.round(c.value/h.value)),b=M(()=>o.value===0?0:Math.round(c.value/o.value)),y=M(()=>i.messageTypes.find(F=>F.type===1)?.count||0),k=M(()=>i.hourlyActivity.length?i.hourlyActivity.reduce((E,F)=>F.messageCount>E.messageCount?F:E,i.hourlyActivity[0]):null),x=M(()=>l.value.length?l.value.reduce((E,F)=>F.messageCount>E.messageCount?F:E,l.value[0]):null),_=M(()=>[e("common.weekday.mon"),e("common.weekday.tue"),e("common.weekday.wed"),e("common.weekday.thu"),e("common.weekday.fri"),e("common.weekday.sat"),e("common.weekday.sun")]),C=M(()=>{if(!l.value.length)return{weekday:0,weekend:0};const E=l.value.filter(A=>A.weekday>=1&&A.weekday<=5).reduce((A,I)=>A+I.messageCount,0),F=l.value.filter(A=>A.weekday>=6&&A.weekday<=7).reduce((A,I)=>A+I.messageCount,0),D=E+F;return{weekday:D>0?Math.round(E/D*100):0,weekend:D>0?Math.round(F/D*100):0}}),$=M(()=>i.dailyActivity.length?i.dailyActivity.reduce((E,F)=>F.messageCount>E.messageCount?F:E,i.dailyActivity[0]):null),S=M(()=>o.value),T=M(()=>S.value>0?Math.round(u.value/S.value*100):0),v=M(()=>{if(!i.hourlyActivity.length)return{count:0,ratio:0};const E=i.hourlyActivity.reduce((D,A)=>D+A.messageCount,0),F=i.hourlyActivity.filter(D=>D.hour>=0&&D.hour<=4).reduce((D,A)=>D+A.messageCount,0);return{count:F,ratio:E>0?Math.round(F/E*100):0}}),w=M(()=>{if(!i.dailyActivity.length)return 0;const E=[...i.dailyActivity].filter(A=>A.messageCount>0).sort((A,I)=>Ee(A.date).valueOf()-Ee(I.date).valueOf());if(E.length===0)return 0;let F=1,D=1;for(let A=1;A<E.length;A++){const I=Ee(E[A-1].date);Ee(E[A].date).diff(I,"day")===1?D++:(D>F&&(F=D),D=1)}return D>F&&(F=D),F});return{durationDays:o,displayMessageCount:c,displayMemberCount:g,dailyAvgMessages:b,totalDurationDays:h,totalDailyAvgMessages:f,imageCount:y,peakHour:k,peakWeekday:x,weekdayNames:_,weekdayVsWeekend:C,peakDay:$,activeDays:u,totalDays:S,activeRate:T,lateNightChat:v,maxConsecutiveDays:w}}function Bv(i){const l=z([]);let e=0;async function n(){const s=++e,u=i.sessionId();if(!u){l.value=[];return}try{const o=await Ke().getWeekdayActivity(u,i.timeFilter());s===e&&(l.value=o)}catch(o){s===e&&console.error("Failed to load weekday activity:",o)}}return fe([i.sessionId,i.timeFilter],()=>n(),{immediate:!0,deep:!0}),{weekdayActivity:l}}const Fv={key:0,class:"relative z-10 px-5 pb-5 pt-2 sm:px-8 sm:pb-6"},Rv={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},Vv={class:"min-w-0"},Ov={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},Pv={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},jv={key:1,class:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4"},Nv={class:"text-sm text-gray-500"},Uv={class:"text-sm text-gray-500"},Wv={class:"ml-1 font-semibold text-pink-500"},Hv={class:"text-sm text-gray-500"},Kv={class:"text-sm text-gray-500"},Yv={class:"text-sm text-gray-500"},Gv={class:"text-sm text-gray-500"},Qv={class:"text-sm text-gray-500"},Jv={class:"text-sm text-gray-500"},Xv=ue({__name:"OverviewStatCards",props:{dailyAvgMessages:{},durationDays:{},imageCount:{},peakHour:{},peakWeekday:{},weekdayNames:{},weekdayVsWeekend:{},peakDay:{},activeDays:{},totalDays:{},activeRate:{},lateNightCount:{},lateNightRatio:{},maxConsecutiveDays:{},flat:{type:Boolean,default:!1}},setup(i){const{t:l}=we(),e=i,n=M(()=>[{icon:"i-heroicons-chat-bubble-left-right",label:l("analysis.overview.statCards.dailyAvgMessages"),value:l("analysis.overview.statCards.messagesCount",{count:e.dailyAvgMessages}),subtext:l("analysis.overview.statCards.daysCount",{count:e.durationDays}),colorClass:"text-blue-600 dark:text-blue-400"},{icon:"i-heroicons-photo",label:l("analysis.overview.statCards.imageMessages"),value:l("analysis.overview.statCards.imagesCount",{count:e.imageCount}),subtext:`${l("analysis.overview.statCards.peakHour")} ${e.peakHour?.hour||0}:00`,colorClass:"text-pink-600 dark:text-pink-400"},{icon:"i-heroicons-calendar-days",label:l("analysis.overview.statCards.mostActiveWeekday"),value:e.peakWeekday?e.weekdayNames[e.peakWeekday.weekday-1]:"-",subtext:l("analysis.overview.statCards.messagesOnDay",{count:e.peakWeekday?.messageCount??0}),colorClass:"text-amber-600 dark:text-amber-400"},{icon:"i-heroicons-sun",label:l("analysis.overview.statCards.weekendActivity"),value:`${e.weekdayVsWeekend.weekend}%`,subtext:l("analysis.overview.statCards.weekendRatio"),colorClass:"text-green-600 dark:text-green-400"},{icon:"i-heroicons-fire",label:l("analysis.overview.statCards.mostActiveDate"),value:e.peakDay?Ee(e.peakDay.date).format("MM/DD"):"-",subtext:l("analysis.overview.statCards.messagesOnDay",{count:e.peakDay?.messageCount??0}),colorClass:"text-red-600 dark:text-red-400"},{icon:"i-heroicons-moon",label:l("analysis.overview.statCards.lateNightChat"),value:l("analysis.overview.statCards.messagesCount",{count:e.lateNightCount}),subtext:l("analysis.overview.statCards.lateNightRatio",{ratio:e.lateNightRatio}),colorClass:"text-indigo-600 dark:text-indigo-400"},{icon:"i-heroicons-bolt",label:l("analysis.overview.statCards.consecutiveStreak"),value:l("analysis.overview.statCards.daysStreak",{count:e.maxConsecutiveDays}),subtext:l("analysis.overview.statCards.longestStreak"),colorClass:"text-amber-600 dark:text-amber-400"},{icon:"i-heroicons-chart-bar",label:l("analysis.overview.statCards.activityRate"),value:`${e.activeRate}%`,subtext:l("analysis.overview.statCards.activeDaysRatio"),colorClass:"text-gray-900 dark:text-white"}]);return(s,u)=>{const o=_e;return i.flat?(r(),m("div",Fv,[u[0]||(u[0]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},"Key Metrics")],-1)),a("div",Rv,[(r(!0),m(ie,null,pe(n.value,c=>(r(),m("div",{key:c.icon+c.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(o,{name:c.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",c.colorClass])},null,8,["name","class"]),a("div",Vv,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",c.colorClass])},d(c.value),3),a("div",Ov,d(c.label),1),a("div",Pv,d(c.subtext),1)])]))),128))])])):(r(),m("div",jv,[p(t(ot),{label:t(l)("analysis.overview.statCards.dailyAvgMessages"),value:t(l)("analysis.overview.statCards.messagesCount",{count:i.dailyAvgMessages}),icon:"i-heroicons-chat-bubble-left-right","icon-bg":"blue"},{subtext:B(()=>[a("span",Nv,d(t(l)("analysis.overview.statCards.daysCount",{count:i.durationDays})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.imageMessages"),value:t(l)("analysis.overview.statCards.imagesCount",{count:i.imageCount}),icon:"i-heroicons-photo","icon-bg":"pink"},{subtext:B(()=>[a("span",Uv,d(t(l)("analysis.overview.statCards.peakHour")),1),a("span",Wv,d(i.peakHour?.hour||0)+":00",1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.mostActiveWeekday"),value:i.peakWeekday?i.weekdayNames[i.peakWeekday.weekday-1]:"-",icon:"i-heroicons-calendar-days","icon-bg":"amber"},{subtext:B(()=>[a("span",Hv,d(t(l)("analysis.overview.statCards.messagesOnDay",{count:i.peakWeekday?.messageCount??0})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.weekendActivity"),value:`${i.weekdayVsWeekend.weekend}%`,icon:"i-heroicons-sun","icon-bg":"green"},{subtext:B(()=>[a("span",Kv,d(t(l)("analysis.overview.statCards.weekendRatio")),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.mostActiveDate"),value:i.peakDay?t(Ee)(i.peakDay.date).format("MM/DD"):"-",icon:"i-heroicons-fire","icon-bg":"red"},{subtext:B(()=>[a("span",Yv,d(t(l)("analysis.overview.statCards.messagesOnDay",{count:i.peakDay?.messageCount??0})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.lateNightChat"),value:t(l)("analysis.overview.statCards.messagesCount",{count:i.lateNightCount}),icon:"i-heroicons-moon","icon-bg":"blue"},{subtext:B(()=>[a("span",Gv,d(t(l)("analysis.overview.statCards.lateNightRatio",{ratio:i.lateNightRatio})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.consecutiveStreak"),value:t(l)("analysis.overview.statCards.daysStreak",{count:i.maxConsecutiveDays}),icon:"i-heroicons-bolt","icon-bg":"amber"},{subtext:B(()=>[a("span",Qv,d(t(l)("analysis.overview.statCards.longestStreak")),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.activityRate"),value:`${i.activeRate}%`,icon:"i-heroicons-chart-bar","icon-bg":"gray"},{subtext:B(()=>[a("span",Jv,d(t(l)("analysis.overview.statCards.activeDaysRatio")),1)]),_:1},8,["label","value"])]))}}}),Zv={class:"relative z-10 px-5 pt-6 pb-4 sm:px-8 sm:pt-8"},ey={class:"text-2xl font-bold tracking-tight text-gray-900 sm:text-3xl dark:text-gray-100"},ty={class:"mt-4 flex flex-col gap-5 sm:flex-row sm:items-start sm:gap-24"},ay={class:"min-w-0 flex flex-col gap-2 text-sm font-medium text-gray-500 dark:text-gray-400"},sy={class:"flex items-center gap-2"},ny={class:"flex h-6 w-6 shrink-0 items-center justify-center"},oy={class:"whitespace-nowrap"},ly={key:0,class:"flex items-center gap-2"},ry={class:"flex h-6 w-6 shrink-0 items-center justify-center"},iy={class:"font-mono text-xs opacity-90 whitespace-nowrap"},uy={class:"grid grid-cols-2 gap-x-8 gap-y-4 sm:flex sm:shrink-0 sm:gap-6"},cy={class:"flex flex-col gap-1 text-center"},dy={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},my={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},gy={class:"flex flex-col gap-1 text-center"},py={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},hy={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},fy={class:"flex flex-col gap-1 text-center"},vy={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},yy={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},xy={class:"flex flex-col gap-1 text-center"},by={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},ky={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},_y={class:"relative z-10 px-5 pb-2 sm:px-8"},wy={class:"overflow-x-auto overflow-y-hidden scrollbar-hide py-1"},Gw=ue({__name:"OverviewIdentityCard",props:{session:{},dailyActivity:{},messageTypes:{},hourlyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{},capturable:{type:Boolean,default:!0}},setup(i){ta([hs,Xn,fs,za,vs,aa]);const{t:l,locale:e}=we(),n=Zt(),s=i,{weekdayActivity:u}=Bv({sessionId:()=>s.session.id,timeFilter:()=>s.timeFilter}),{durationDays:o,displayMessageCount:c,dailyAvgMessages:g,imageCount:h,peakHour:f,peakWeekday:b,weekdayNames:y,weekdayVsWeekend:k,peakDay:x,activeDays:_,totalDays:C,activeRate:$,lateNightChat:S,maxConsecutiveDays:T}=Ev(s,u),v=z(null);let w=null;const E=M(()=>ws(s.timeRange,s.timeFilter)),F=M(()=>E.value?Jn(E.value.start,E.value.end,"YYYY/MM/DD"):""),D=M(()=>{const H=Dv(E.value);if(H)return H;const ve=(he=>he.toISOString().slice(0,10))(new Date);return[ve,ve]}),A=M(()=>{const[H,W]=D.value,re=new Date(H+"T00:00:00Z"),ve=new Date(W+"T00:00:00Z"),he=new Map;s.dailyActivity.filter(j=>j.date>=H&&j.date<=W).forEach(j=>he.set(j.date,j.messageCount));const ee=[],te=new Date(re);for(;te<=ve;){const j=te.toISOString().slice(0,10),de=he.get(j)||0;ee.push({value:[j,de],itemStyle:de===0?{color:Y.value}:void 0}),te.setUTCDate(te.getUTCDate()+1)}return ee}),I=M(()=>s.dailyActivity.length===0?10:Math.max(...s.dailyActivity.map(H=>H.messageCount),1)),q={light:["#fce4ec","#f8a4b8","#f06292","#e91e63"],dark:["rgba(238, 69, 103, 0.15)","rgba(238, 69, 103, 0.45)","rgba(238, 69, 103, 0.75)","rgba(238, 69, 103, 1)"]},Y=M(()=>n.value?"rgba(255, 255, 255, 0.04)":"#ebedf0"),G=M(()=>({tooltip:{trigger:"item",formatter:H=>{const W=H.value[0],re=H.value[1];return`${W}<br/>${l("views.message.calendarTooltipMessages")}: ${re}`}},visualMap:{min:1,max:I.value,calculable:!1,orient:"horizontal",left:"center",bottom:0,itemWidth:10,itemHeight:80,text:[`${I.value}`,"1"],inRange:{color:n.value?q.dark:q.light},textStyle:{color:n.value?"#8b949e":"#6b7280",fontSize:10},show:!0},calendar:{top:20,left:30,cellSize:[13,13],range:D.value,itemStyle:{borderWidth:0,color:"transparent"},yearLabel:{show:!1},monthLabel:{show:!0,color:n.value?"#8b949e":"#6b7280",fontSize:10,nameMap:[l("common.month.jan"),l("common.month.feb"),l("common.month.mar"),l("common.month.apr"),l("common.month.may"),l("common.month.jun"),l("common.month.jul"),l("common.month.aug"),l("common.month.sep"),l("common.month.oct"),l("common.month.nov"),l("common.month.dec")]},dayLabel:{show:!0,firstDay:1,color:n.value?"#8b949e":"#9ca3af",fontSize:10,nameMap:[l("common.weekday.sun"),l("common.weekday.mon"),l("common.weekday.tue"),l("common.weekday.wed"),l("common.weekday.thu"),l("common.weekday.fri"),l("common.weekday.sat")]},splitLine:{show:!1}},series:[{type:"custom",coordinateSystem:"calendar",data:A.value,renderItem:(H,W)=>{const re=W.coord(W.value(0)),ve=H.coordSys.cellWidth,he=H.coordSys.cellHeight,ee=Math.min(ve,he)-3;return{type:"rect",shape:{x:re[0]-ee/2,y:re[1]-ee/2,width:ee,height:ee,r:3},style:{fill:W.visual("color")}}},itemStyle:{borderColor:n.value?"transparent":"rgba(0,0,0,0.02)",borderWidth:1}}]}));function Z(){v.value&&(w=sa(v.value,void 0,{renderer:"canvas"}),w.setOption({backgroundColor:"transparent",...G.value}))}function ce(){w&&w.setOption({backgroundColor:"transparent",...G.value},{notMerge:!0})}function ne(){w?.resize()}return fe([()=>s.dailyActivity,e,D],()=>ce()),fe(n,()=>{w?.dispose(),Z()}),Re(()=>{Z(),window.addEventListener("resize",ne)}),tt(()=>{window.removeEventListener("resize",ne),w?.dispose()}),(H,W)=>{const re=_e;return r(),U(t(na),{capturable:i.capturable},{default:B(()=>[a("div",Zv,[a("h2",ey,d(i.session.name),1),a("div",ty,[a("div",ay,[a("div",sy,[a("div",ny,[i.session.type==="group"?(r(),U(re,{key:0,name:"i-heroicons-user-group",class:"h-4 w-4 opacity-70"})):(r(),U(re,{key:1,name:"i-heroicons-user",class:"h-4 w-4 opacity-70"}))]),a("span",oy,d(i.session.platform.toUpperCase())+" · "+d(i.session.type==="private"?t(l)("analysis.overview.identity.privateChat"):t(l)("analysis.overview.identity.groupChat")),1)]),F.value?(r(),m("div",ly,[a("div",ry,[p(re,{name:"i-heroicons-calendar",class:"h-4 w-4 opacity-70"})]),a("span",iy,d(F.value),1)])):R("",!0)]),a("div",uy,[a("div",cy,[a("span",dy,d(t(c).toLocaleString()),1),a("span",my,d(t(l)("analysis.overview.identity.totalMessages")),1)]),a("div",gy,[a("span",py,d(t(o).toLocaleString()),1),a("span",hy,d(t(l)("analysis.overview.identity.durationDays")),1)]),a("div",fy,[a("span",vy,d(t(_).toLocaleString()),1),a("span",yy,d(t(l)("analysis.overview.identity.activeDays")),1)]),a("div",xy,[a("span",by,d(t(g).toLocaleString()),1),a("span",ky,d(t(l)("analysis.overview.identity.dailyAvgMessages")),1)])])])]),a("div",_y,[W[0]||(W[0]=a("div",{class:"mb-2 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Activity Heatmap ")],-1)),a("div",wy,[a("div",{ref_key:"chartRef",ref:v,class:"h-[140px] min-w-[700px] lg:w-full"},null,512)])]),p(Xv,{flat:"","daily-avg-messages":t(g),"duration-days":t(o),"image-count":t(h),"peak-hour":t(f),"peak-weekday":t(b),"weekday-names":t(y),"weekday-vs-weekend":t(k),"peak-day":t(x),"active-days":t(_),"total-days":t(C),"active-rate":t($),"late-night-count":t(S).count,"late-night-ratio":t(S).ratio,"max-consecutive-days":t(T)},null,8,["daily-avg-messages","duration-days","image-count","peak-hour","peak-weekday","weekday-names","weekday-vs-weekend","peak-day","active-days","total-days","active-rate","late-night-count","late-night-ratio","max-consecutive-days"])]),_:1},8,["capturable"])}}}),$y={class:"p-3 sm:p-5"},Qw=ue({__name:"DailyTrendCard",props:{dailyActivity:{},dailyChartData:{},capturable:{type:Boolean,default:!0}},setup(i){const{t:l}=we();return(e,n)=>i.dailyActivity.length>0?(r(),U(t(Ze),{key:0,title:t(l)("analysis.overview.dailyTrend.title"),capturable:i.capturable,"show-divider":!1},{default:B(()=>[a("div",$y,[p(t(va),{data:i.dailyChartData,height:288},null,8,["data"])])]),_:1},8,["title","capturable"])):R("",!0)}}),da="__ALL__",Cy=ue({__name:"UserSelect",props:{sessionId:{},modelValue:{}},emits:["update:modelValue"],setup(i,{emit:l}){const{t:e}=we(),n=i,s=l,u=z([]),o=z(!1),c=M({get:()=>n.modelValue===null?da:String(n.modelValue),set:f=>{s("update:modelValue",f===da?null:parseInt(f))}}),g=M(()=>{const f=[{value:da,label:e("common.userSelect.allMembers")}];return u.value.forEach(b=>{const y=b.groupNickname||b.accountName||b.platformId;f.push({value:String(b.id),label:`${y} (${b.messageCount})`})}),f});async function h(){if(n.sessionId){o.value=!0;try{const f=await Ke().getMembers(n.sessionId);u.value=f.sort((b,y)=>y.messageCount-b.messageCount)}catch(f){console.error("加载成员列表失败:",f)}finally{o.value=!1}}}return fe(()=>n.sessionId,()=>{s("update:modelValue",null),h()},{immediate:!0}),(f,b)=>{const y=Da;return r(),U(y,{modelValue:c.value,"onUpdate:modelValue":b[0]||(b[0]=k=>c.value=k),items:g.value,loading:o.value,virtualize:{estimateSize:32,overscan:10},"value-key":"value",class:"w-48"},null,8,["modelValue","items","loading"])}}}),Sy={class:"relative z-10 px-6 pt-8 pb-4 sm:px-8"},Iy={class:"flex items-center gap-6 sm:gap-10"},Ty={class:"min-w-0 flex-1"},My={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},Ay={key:0,class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},zy={class:"mb-4 flex min-w-0 flex-wrap items-baseline gap-2"},qy={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Ly={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},Dy={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Ey={key:1,class:"flex min-w-0 max-w-full flex-wrap items-center gap-x-1.5 gap-y-1.5"},By={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Fy={class:"font-bold tabular-nums text-pink-500 dark:text-pink-400"},Ry={class:"flex shrink-0 flex-col items-center"},Vy={class:"mb-1 text-[10px] font-bold text-gray-500 dark:text-gray-400"},Oy={class:"relative z-10 px-6 pb-6 pt-4 sm:px-8"},Py={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},jy={class:"min-w-0 flex-1"},Ny={class:"flex items-center justify-between gap-1"},Uy={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},Wy={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},Hy={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},Ky={class:"flex items-center gap-1.5"},Yy={class:"text-[9px] font-medium uppercase tracking-widest"},Gy=ue({__name:"TypeProfileCard",props:{sessionId:{},messageTypes:{},textStats:{},timeFilter:{}},setup(i){ta([Zn,za,aa]);const{t:l}=we(),e=Zt(),n=i,s=M(()=>n.messageTypes.reduce((I,q)=>I+q.count,0)),u=M(()=>n.messageTypes.find(I=>I.type===gt.TEXT)?.count??0),o=M(()=>{if(s.value===0)return 0;const I=s.value-u.value;return Math.round(I/s.value*100)}),c=M(()=>n.textStats.textCount===0?0:Math.round(n.textStats.shortCount/n.textStats.textCount*100)),g=z({first:"",last:""});async function h(){if(n.sessionId)try{const I=await Ke().getDailyActivity(n.sessionId,n.timeFilter);if(I.length>0){const q=[...I].sort((Y,G)=>Y.date.localeCompare(G.date));g.value={first:Ee(q[0].date).format("YYYY/MM/DD"),last:Ee(q[q.length-1].date).format("YYYY/MM/DD")}}}catch{}}function f(I){return n.messageTypes.find(q=>q.type===I)?.count??0}const b=M(()=>[{label:l("views.message.typeCard.nonTextImage"),count:f(gt.IMAGE),unit:l("views.message.typeCard.unitImage")},{label:l("views.message.typeCard.nonTextEmoji"),count:f(gt.EMOJI),unit:l("views.message.typeCard.unitEmoji")},{label:l("views.message.typeCard.nonTextVoice"),count:f(gt.VOICE),unit:l("views.message.typeCard.unitVoice")},{label:l("views.message.typeCard.nonTextVideo"),count:f(gt.VIDEO),unit:l("views.message.typeCard.unitVideo")},{label:l("views.message.typeCard.nonTextFile"),count:f(gt.FILE),unit:l("views.message.typeCard.unitFile")},{label:l("views.message.typeCard.nonTextLink"),count:f(gt.LINK),unit:l("views.message.typeCard.unitLink")}].filter(I=>I.count>0)),y=z(30),k=z(0),x=z(!1),_=[{label:"20",value:20},{label:"30",value:30},{label:"50",value:50},{label:"80",value:80},{label:"100",value:100}],C=M({get:()=>y.value,set:I=>{y.value!==I&&(y.value=I,$())}});async function $(){if(n.sessionId){x.value=!0;try{k.value=await Ke().getLongMessageCount(n.sessionId,n.timeFilter,y.value)}catch(I){console.error("[chart-message] Failed to load essay count:",I)}finally{x.value=!1}}}fe(()=>[n.sessionId,n.timeFilter],()=>{$(),h()},{immediate:!0,deep:!0});const S=M(()=>[{icon:"i-heroicons-pencil-square",label:l("views.message.profile.textExpression"),value:l("views.message.profile.avgLengthUnit",{count:n.textStats.avgLength||0}),subtext:n.textStats.maxLength>0?l("views.message.profile.textExpressionDesc",{count:n.textStats.maxLength}):"",colorClass:"text-violet-600 dark:text-violet-400"},{icon:"i-heroicons-chat-bubble-bottom-center-text",label:l("views.message.profile.shortMaster"),value:`${c.value}%`,subtext:l("views.message.profile.shortMasterDesc",{count:n.textStats.shortCount}),colorClass:"text-emerald-600 dark:text-emerald-400"},{icon:"i-heroicons-document-text",label:l("views.message.profile.essayLover"),value:k.value.toLocaleString(),subtext:l("views.message.profile.essayLoverDesc",{threshold:y.value}),colorClass:"text-indigo-600 dark:text-indigo-400",slot:"essay-threshold"},{icon:"i-heroicons-photo",label:l("views.message.profile.mediaRichness"),value:`${o.value}%`,subtext:b.value.slice(0,3).map(I=>`${I.label} ${I.count}`).join(" · ")||"-",colorClass:"text-pink-600 dark:text-pink-400"}]),T=z(null);let v=null;const w=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6","#f43f5e","#eab308","#14b8a6","#3b82f6"],E=M(()=>[...n.messageTypes].sort((q,Y)=>Y.count-q.count).slice(0,8).map((q,Y)=>({name:ma(q.type,l),value:q.count,itemStyle:{color:w[Y%w.length]}})));function F(){T.value&&(v=sa(T.value,void 0,{renderer:"canvas"}),D())}function D(){v&&v.setOption({backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},series:[{type:"pie",radius:["50%","78%"],center:["50%","50%"],avoidLabelOverlap:!1,padAngle:2,itemStyle:{borderRadius:4},label:{show:!1},emphasis:{label:{show:!1},scaleSize:4},data:E.value}]},{notMerge:!0})}function A(){v?.resize()}return fe(()=>n.messageTypes,()=>D()),fe(e,()=>{v?.dispose(),F()}),Re(()=>{F(),window.addEventListener("resize",A)}),tt(()=>{window.removeEventListener("resize",A),v?.dispose()}),(I,q)=>{const Y=_e,G=wa;return r(),U(t(na),null,{default:B(()=>[a("div",Sy,[a("div",Iy,[a("div",Ty,[a("div",My,[g.value.first?(r(),m("p",Ay,d(g.value.first)+" – "+d(g.value.last),1)):R("",!0),a("div",zy,[a("span",qy,d(t(l)("views.message.profile.heroLine1Prefix")),1),a("span",Ly,d(s.value.toLocaleString()),1),a("span",Dy,d(t(l)("views.message.profile.heroLine1Suffix")),1)]),b.value.length>0?(r(),m("div",Ey,[a("span",By,d(t(l)("views.message.typeCard.nonTextPrefix")),1),(r(!0),m(ie,null,pe(b.value,Z=>(r(),m("span",{key:Z.label,class:"inline-flex items-center gap-1 rounded-full bg-gray-100 px-2.5 py-0.5 text-xs font-semibold text-gray-700 dark:bg-white/10 dark:text-gray-200"},[a("span",Fy,d(Z.count.toLocaleString()),1),a("span",null,d(Z.unit),1)]))),128))])):R("",!0)])]),a("div",Ry,[a("div",Vy,d(t(l)("views.message.profile.typeDistribution")),1),a("div",{ref_key:"donutRef",ref:T,style:{width:"130px",height:"130px"}},null,512)])])]),a("div",Oy,[q[1]||(q[1]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Type Profile ")],-1)),a("div",Py,[(r(!0),m(ie,null,pe(S.value,Z=>(r(),m("div",{key:Z.icon+Z.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(Y,{name:Z.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",Z.colorClass])},null,8,["name","class"]),a("div",jy,[a("div",Ny,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",Z.colorClass])},d(Z.value),3),Z.slot==="essay-threshold"?(r(),U(G,{key:0,modelValue:C.value,"onUpdate:modelValue":q[0]||(q[0]=ce=>C.value=ce),items:_,"value-key":"value",size:"xs",class:"relative z-120 w-16 shrink-0",ui:{content:"z-[121]"},disabled:x.value},null,8,["modelValue","disabled"])):R("",!0)]),a("div",Uy,d(Z.label),1),a("div",Wy,d(Z.subtext),1)])]))),128))])]),a("div",Hy,[a("div",Ky,[p(Y,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),q[2]||(q[2]=a("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),a("span",Yy,d(t(l)("views.message.typeCard.watermark")),1)])]),_:1})}}}),Qy={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Jy={class:"p-5"},Xy={key:0,class:"grid grid-cols-1 gap-6 lg:grid-cols-2 lg:items-center"},Zy={class:"space-y-3"},ex={class:"min-w-20 shrink-0 text-sm text-gray-700 dark:text-gray-300"},tx={class:"flex-1"},ax={class:"h-2 overflow-hidden rounded-full bg-gray-100 dark:bg-gray-800"},sx={class:"shrink-0 text-right"},nx={class:"text-sm font-medium text-gray-900 dark:text-white"},ox={class:"ml-1 text-xs text-gray-400"},lx={key:1,class:"flex h-48 items-center justify-center text-gray-400"},rx={class:"p-5"},ix={class:"mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4"},ux={class:"p-3"},cx={class:"font-mono text-xl font-bold text-gray-900 dark:text-white"},dx={class:"mt-1 text-xs text-gray-500"},mx={class:"p-3"},gx={class:"font-mono text-xl font-bold text-indigo-600 dark:text-indigo-400"},px={class:"mt-1 text-xs text-gray-500"},hx={class:"p-3"},fx={class:"font-mono text-xl font-bold text-pink-600 dark:text-pink-400"},vx={class:"mt-1 text-xs text-gray-500"},yx={class:"p-3"},xx={class:"font-mono text-xl font-bold text-emerald-600 dark:text-emerald-400"},bx={class:"mt-1 text-xs text-gray-500"},kx={class:"mb-5 rounded-lg border border-gray-200 p-4 dark:border-gray-700"},_x={class:"mb-2 text-xs font-medium text-gray-500 dark:text-gray-400"},wx={class:"flex items-center gap-4 text-sm"},$x={class:"flex items-center gap-1.5"},Cx={class:"font-mono font-medium text-gray-900 dark:text-white"},Sx={class:"flex items-center gap-1.5"},Ix={class:"font-mono font-medium text-gray-900 dark:text-white"},Tx={class:"flex items-center gap-1.5"},Mx={class:"font-mono font-medium text-gray-900 dark:text-white"},Ax={class:"flex items-center gap-1.5"},zx={class:"font-mono font-medium text-gray-900 dark:text-white"},qx={class:"mt-3 grid grid-cols-3 gap-3 text-xs"},Lx={class:"text-gray-500"},Dx={class:"ml-1 font-medium text-emerald-600 dark:text-emerald-400"},Ex={class:"text-gray-400"},Bx={class:"text-gray-500"},Fx={class:"ml-1 font-medium text-indigo-600 dark:text-indigo-400"},Rx={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},Vx={class:"text-xs text-gray-400"},Ox={class:"p-5"},Px={key:1,class:"flex h-48 items-center justify-center text-gray-400"},jx={class:"text-xs text-gray-400"},Nx={class:"p-5"},Ux={key:1,class:"flex h-48 items-center justify-center text-gray-400"},Jw=ue({__name:"TypeAnalysisView",props:{sessionId:{},sessionName:{},timeFilter:{}},setup(i){const l=i,{t:e}=we(),n=z(!0),s=z([]),u=z([]),o=z([]),c=z({textCount:0,avgLength:0,maxLength:0,shortCount:0}),g=z({p25:0,p50:0,p75:0,p90:0}),h=z(0),f=M(()=>{const S=[...s.value].sort((T,v)=>v.count-T.count);return{labels:S.map(T=>ma(T.type,e)),values:S.map(T=>T.count)}}),b=M(()=>{const S=s.value.reduce((v,w)=>v+w.count,0);return[...s.value].sort((v,w)=>w.count-v.count).map(v=>({name:ma(v.type,e),count:v.count,percentage:S>0?Math.round(v.count/S*100):0}))}),y=["#6366f1","#8b5cf6","#ec4899","#f43f5e","#f97316","#eab308","#22c55e","#14b8a6","#06b6d4","#3b82f6"];function k(S){return y[S%y.length]}const x=M(()=>({labels:u.value.map(S=>String(S.len)),values:u.value.map(S=>S.count)})),_=M(()=>({labels:o.value.map(S=>S.range),values:o.value.map(S=>S.count)})),C=M(()=>c.value.textCount===0?0:Math.round(c.value.shortCount/c.value.textCount*100));async function $(){if(l.sessionId){n.value=!0;try{const S=Ke(),[T,v,w,E,F]=await Promise.all([S.getMessageTypeDistribution(l.sessionId,l.timeFilter),S.getMessageLengthDistribution(l.sessionId,l.timeFilter),S.getTextStats(l.sessionId,l.timeFilter),S.getTextLengthPercentiles(l.sessionId,l.timeFilter),S.getLongMessageCount(l.sessionId,l.timeFilter,30)]);s.value=T,u.value=v.detail,o.value=v.grouped,c.value=w,g.value=E,h.value=F}catch(S){console.error("[chart-message] Failed to load type analysis data:",S)}finally{n.value=!1}}}return fe(()=>[l.sessionId,l.timeFilter],()=>$(),{immediate:!0,deep:!0}),(S,T)=>(r(),m("div",{class:X(n.value?"h-full":"")},[n.value?(r(),U(t(Kt),{key:0,variant:"page",text:t(e)("common.loading")},null,8,["text"])):(r(),m("div",Qy,[s.value.length>0?(r(),U(Gy,{key:0,"session-id":i.sessionId,"message-types":s.value,"text-stats":c.value,"time-filter":i.timeFilter},null,8,["session-id","message-types","text-stats","time-filter"])):R("",!0),p(t(Ze),{title:t(e)("views.message.typeDistribution"),"show-divider":!1},{default:B(()=>[a("div",Jy,[f.value.values.length>0?(r(),m("div",Xy,[a("div",null,[p(t(ya),{data:f.value,height:280,"show-legend":!1},null,8,["data"])]),a("div",null,[a("div",Zy,[(r(!0),m(ie,null,pe(b.value,(v,w)=>(r(),m("div",{key:w,class:"flex items-center gap-3"},[a("div",{class:"h-3 w-3 shrink-0 rounded-full",style:et({backgroundColor:k(w)})},null,4),a("div",ex,d(v.name),1),a("div",tx,[a("div",ax,[a("div",{class:"h-full rounded-full transition-all",style:et({width:`${v.percentage}%`,backgroundColor:k(w)})},null,4)])]),a("div",sx,[a("span",nx,d(v.count.toLocaleString()),1),a("span",ox,"("+d(v.percentage)+"%)",1)])]))),128))])])])):(r(),m("div",lx,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.typeAnalysis.textDepthTitle"),"show-divider":!1},{default:B(()=>[a("div",rx,[a("div",ix,[a("div",ux,[a("div",cx,d(c.value.textCount.toLocaleString()),1),a("div",dx,d(t(e)("views.message.typeAnalysis.textTotal")),1)]),a("div",mx,[a("div",gx,d(c.value.avgLength||0),1),a("div",px,d(t(e)("views.message.typeAnalysis.avgLength")),1)]),a("div",hx,[a("div",fx,d(g.value.p50),1),a("div",vx,d(t(e)("views.message.typeAnalysis.medianLength")),1)]),a("div",yx,[a("div",xx,d(c.value.maxLength),1),a("div",bx,d(t(e)("views.message.typeAnalysis.maxLength")),1)])]),a("div",kx,[a("div",_x,d(t(e)("views.message.typeAnalysis.percentiles")),1),a("div",wx,[a("div",$x,[T[0]||(T[0]=a("span",{class:"text-gray-500"},"P25",-1)),a("span",Cx,d(g.value.p25),1)]),a("div",Sx,[T[1]||(T[1]=a("span",{class:"text-gray-500"},"P50",-1)),a("span",Ix,d(g.value.p50),1)]),a("div",Tx,[T[2]||(T[2]=a("span",{class:"text-gray-500"},"P75",-1)),a("span",Mx,d(g.value.p75),1)]),a("div",Ax,[T[3]||(T[3]=a("span",{class:"text-gray-500"},"P90",-1)),a("span",zx,d(g.value.p90),1)])]),a("div",qx,[a("div",null,[a("span",Lx,d(t(e)("views.message.typeAnalysis.shortMessages")),1),a("span",Dx,d(C.value)+"%",1),a("span",Ex,"("+d(c.value.shortCount)+")",1)]),a("div",null,[a("span",Bx,d(t(e)("views.message.typeAnalysis.essayMessages")),1),a("span",Fx,d(h.value),1)])])])])]),_:1},8,["title"]),a("div",Rx,[p(t(Ze),{title:t(e)("views.message.lengthDetailTitle"),"show-divider":!1},{headerRight:B(()=>[a("span",Vx,d(t(e)("views.message.lengthDetailHint")),1)]),default:B(()=>[a("div",Ox,[x.value.values.some(v=>v>0)?(r(),U(t(rt),{key:0,data:x.value,height:200},null,8,["data"])):(r(),m("div",Px,d(t(e)("views.message.noTextMessages")),1))])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.lengthGroupedTitle"),"show-divider":!1},{headerRight:B(()=>[a("span",jx,d(t(e)("views.message.lengthGroupedHint")),1)]),default:B(()=>[a("div",Nx,[_.value.values.some(v=>v>0)?(r(),U(t(rt),{key:0,data:_.value,height:200},null,8,["data"])):(r(),m("div",Ux,d(t(e)("views.message.noTextMessages")),1))])]),_:1},8,["title"])])]))],2))}}),Wx={class:"relative z-10 px-6 pt-8 pb-4 sm:px-8"},Hx={class:"flex items-start gap-6 sm:gap-10"},Kx={class:"min-w-0 flex-1"},Yx={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},Gx={key:0,class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},Qx={class:"mb-3 flex items-baseline gap-2"},Jx={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},Xx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Zx={class:"font-bold text-3xl text-indigo-500 dark:text-indigo-400"},eb={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},tb={class:"flex items-baseline flex-wrap gap-x-1.5 gap-y-1"},ab={class:"text-base font-medium text-gray-600 dark:text-gray-300"},sb={class:"font-bold text-xl text-pink-500 dark:text-pink-400"},nb={class:"text-base font-medium text-gray-600 dark:text-gray-300"},ob={class:"text-base font-medium text-amber-600 dark:text-amber-400"},lb={class:"flex shrink-0 flex-col items-center"},rb={class:"mb-1 text-[10px] font-bold text-gray-500 dark:text-gray-400"},ib={class:"relative z-10 px-6 pb-6 pt-4 sm:px-8"},ub={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},cb={class:"min-w-0 flex-1"},db={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},mb={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},gb={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},pb={class:"flex items-center gap-1.5"},hb={class:"text-[9px] font-medium uppercase tracking-widest"},fb=ue({__name:"TimeProfileCard",props:{hourlyActivity:{},weekdayActivity:{},dailyActivity:{}},setup(i){ta([eo,to,aa]);const{t:l}=we(),e=Zt(),n=i,s=M(()=>n.dailyActivity.filter(v=>v.messageCount>0).length),u=M(()=>n.dailyActivity.reduce((v,w)=>v+w.messageCount,0)),o=M(()=>{if(n.dailyActivity.length===0)return{first:"",last:"",days:0};const v=[...n.dailyActivity].sort((F,D)=>F.date.localeCompare(D.date)),w=Ee(v[0].date),E=Ee(v[v.length-1].date);return{first:w.format("YYYY/MM/DD"),last:E.format("YYYY/MM/DD"),days:E.diff(w,"day")+1}}),c=M(()=>s.value===0?0:Math.round(u.value/s.value)),g=M(()=>n.dailyActivity.length===0?null:n.dailyActivity.reduce((v,w)=>w.messageCount>v.messageCount?w:v,n.dailyActivity[0])),h=M(()=>n.hourlyActivity.length===0?[]:[...n.hourlyActivity].sort((v,w)=>w.messageCount-v.messageCount).slice(0,3)),f=M(()=>{if(n.hourlyActivity.length===0&&n.weekdayActivity.length===0)return null;const v=o.value.days>0?s.value/o.value.days:0,w=n.weekdayActivity.filter(H=>H.weekday===6||H.weekday===7),E=n.weekdayActivity.filter(H=>H.weekday>=1&&H.weekday<=5),F=w.reduce((H,W)=>H+W.messageCount,0),D=E.reduce((H,W)=>H+W.messageCount,0),A=F+D,I=A>0?F/A:0,q=n.hourlyActivity.reduce((H,W)=>H+W.messageCount,0),Y=n.hourlyActivity.filter(H=>H.hour>=22||H.hour<5).reduce((H,W)=>H+W.messageCount,0),G=n.hourlyActivity.filter(H=>H.hour>=18&&H.hour<22).reduce((H,W)=>H+W.messageCount,0),Z=q>0?Y/q:0,ce=q>0?G/q:0;if(v>=.9)return{label:l("views.message.timeCard.personalityEveryday"),icon:"i-heroicons-fire"};if(I>=.55)return{label:l("views.message.timeCard.personalityWeekend"),icon:"i-heroicons-calendar"};if(I<=.2&&A>0)return{label:l("views.message.timeCard.personalityWeekday"),icon:"i-heroicons-briefcase"};if(Z>=.3)return{label:l("views.message.timeCard.personalityNightOwl"),icon:"i-heroicons-moon"};if(ce>=.4)return{label:l("views.message.timeCard.personalityEveningChat"),icon:"i-heroicons-sparkles"};const ne=[...n.hourlyActivity].sort((H,W)=>W.messageCount-H.messageCount)[0];return ne?ne.hour>=5&&ne.hour<9?{label:l("views.message.timeCard.personalityEarlyBird"),icon:"i-heroicons-sun"}:ne.hour>=12&&ne.hour<14?{label:l("views.message.timeCard.personalityLunchChat"),icon:"i-heroicons-clock"}:{label:l("views.message.timeCard.personalityDaytime"),icon:"i-heroicons-sun"}:null}),b=M(()=>{const v=n.weekdayActivity.filter(A=>A.weekday===6||A.weekday===7),w=n.weekdayActivity.filter(A=>A.weekday>=1&&A.weekday<=5),E=v.reduce((A,I)=>A+I.messageCount,0),F=w.reduce((A,I)=>A+I.messageCount,0),D=E+F;return D===0?0:Math.round(E/D*100)}),y=M(()=>[l("common.weekday.mon"),l("common.weekday.tue"),l("common.weekday.wed"),l("common.weekday.thu"),l("common.weekday.fri"),l("common.weekday.sat"),l("common.weekday.sun")]),k=M(()=>{if(n.weekdayActivity.length===0)return null;const v=[...n.weekdayActivity].sort((w,E)=>E.messageCount-w.messageCount)[0];return{name:y.value[v.weekday-1],count:v.messageCount}}),x=M(()=>[{icon:"i-heroicons-fire",label:l("views.message.timeCard.peakRecord"),value:g.value?Ee(g.value.date).format("MM/DD"):"-",subtext:g.value?l("views.message.timeCard.peakRecordDesc",{count:g.value.messageCount}):"",colorClass:"text-red-600 dark:text-red-400"},{icon:"i-heroicons-clock",label:l("views.message.timeCard.topHoursLabel"),value:h.value.length>0?`${h.value[0].hour}:00`:"-",subtext:h.value.length>=2?h.value.map(v=>`${v.hour}:00`).join(" > "):"",colorClass:"text-cyan-600 dark:text-cyan-400"},{icon:"i-heroicons-calendar-days",label:l("views.message.timeCard.peakWeekdayLabel"),value:k.value?.name||"-",subtext:k.value?`${k.value.count.toLocaleString()}`:"",colorClass:"text-violet-600 dark:text-violet-400"},{icon:"i-heroicons-building-office",label:l("views.message.timeCard.weekendRatio"),value:`${b.value}%`,subtext:l("views.message.timeCard.weekendRatioDesc"),colorClass:"text-amber-600 dark:text-amber-400"}]),_=z(null);let C=null;function $(){_.value&&(C=sa(_.value,void 0,{renderer:"canvas"}),S())}function S(){if(!C)return;const v=new Map(n.hourlyActivity.map(D=>[D.hour,D.messageCount])),w=[];for(let D=0;D<24;D++)w.push(v.get(D)||0);const E=Math.max(...w,1),F=w.map(D=>{const A=D/E;return A>.8?e.value?"#f472b6":"#ec4899":A>.5?e.value?"#a78bfa":"#8b5cf6":e.value?"rgba(255,255,255,0.15)":"rgba(0,0,0,0.08)"});C.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",formatter:D=>`${D[0].axisValue}:00 — ${D[0].value}`},grid:{left:0,right:0,top:4,bottom:16},xAxis:{type:"category",data:Array.from({length:24},(D,A)=>`${A}`),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:9,color:e.value?"#6b7280":"#9ca3af",interval:D=>D%6===0}},yAxis:{type:"value",show:!1},series:[{type:"bar",data:w.map((D,A)=>({value:D,itemStyle:{color:F[A]}})),barWidth:"60%",itemStyle:{borderRadius:[2,2,0,0]}}]},{notMerge:!0})}function T(){C?.resize()}return fe(()=>n.hourlyActivity,()=>S()),fe(e,()=>{C?.dispose(),$()}),Re(()=>{$(),window.addEventListener("resize",T)}),tt(()=>{window.removeEventListener("resize",T),C?.dispose()}),(v,w)=>{const E=_e;return r(),U(t(na),null,{default:B(()=>[a("div",Wx,[a("div",Hx,[a("div",Kx,[a("div",Yx,[o.value.first?(r(),m("p",Gx,d(o.value.first)+" – "+d(o.value.last),1)):R("",!0),a("div",Qx,[a("span",Jx,d(o.value.days),1),a("span",Xx,d(t(l)("views.message.timeCard.heroDaysIn")),1),a("span",Zx,d(s.value),1),a("span",eb,d(t(l)("views.message.timeCard.heroDaysActive")),1)]),a("div",tb,[a("span",ab,d(t(l)("views.message.timeCard.heroAvgPrefix")),1),a("span",sb,d(c.value),1),a("span",nb,d(t(l)("views.message.timeCard.heroAvgSuffix")),1),f.value?(r(),m(ie,{key:0},[p(E,{name:f.value.icon,class:"ml-2 h-4 w-4 text-amber-500"},null,8,["name"]),a("span",ob,d(f.value.label),1)],64)):R("",!0)])])]),a("div",lb,[a("div",rb,d(t(l)("views.message.timeCard.hourlyDistribution")),1),a("div",{ref_key:"barRef",ref:_,style:{width:"180px",height:"110px"}},null,512)])])]),a("div",ib,[w[0]||(w[0]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Time Profile ")],-1)),a("div",ub,[(r(!0),m(ie,null,pe(x.value,F=>(r(),m("div",{key:F.icon+F.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(E,{name:F.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",F.colorClass])},null,8,["name","class"]),a("div",cb,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",F.colorClass])},d(F.value),3),a("div",db,d(F.label),1),a("div",mb,d(F.subtext),1)])]))),128))])]),a("div",gb,[a("div",pb,[p(E,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),w[1]||(w[1]=a("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),a("span",hb,d(t(l)("views.message.timeCard.watermark")),1)])]),_:1})}}}),vb={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},yb={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},xb={class:"p-5"},bb={class:"p-5"},kb={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},_b={class:"p-5"},wb={class:"p-5"},$b={key:1,class:"flex h-48 items-center justify-center text-gray-400"},Cb={class:"text-xs text-gray-400"},Sb={class:"p-5"},Ib={key:1,class:"flex h-48 items-center justify-center text-gray-400"},Tb={class:"text-xs text-gray-400"},Mb={class:"p-5"},Ab={class:"flex items-center gap-2"},zb={class:"text-xs text-gray-400"},qb={class:"p-5"},Lb={key:1,class:"flex h-32 items-center justify-center text-gray-400"},Xw=ue({__name:"TimeAnalysisView",props:{sessionId:{},sessionName:{},timeFilter:{}},setup(i){const l=i,{t:e}=we(),n=z(!0),s=z([]),u=z([]),o=z([]),c=z([]),g=z([]),h=z([]),f=z([]),b=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6","#f43f5e","#eab308","#14b8a6","#3b82f6"],y=M(()=>[e("common.weekday.mon"),e("common.weekday.tue"),e("common.weekday.wed"),e("common.weekday.thu"),e("common.weekday.fri"),e("common.weekday.sat"),e("common.weekday.sun")]),k=M(()=>[e("common.month.jan"),e("common.month.feb"),e("common.month.mar"),e("common.month.apr"),e("common.month.may"),e("common.month.jun"),e("common.month.jul"),e("common.month.aug"),e("common.month.sep"),e("common.month.oct"),e("common.month.nov"),e("common.month.dec")]),x=M(()=>{const A=new Map(u.value.map(Y=>[Y.hour,Y.messageCount])),I=[],q=[];for(let Y=0;Y<24;Y++)I.push(`${Y}`),q.push(A.get(Y)||0);return{labels:I,values:q}}),_=M(()=>{const A=new Map(o.value.map(q=>[q.weekday,q.messageCount])),I=[];for(let q=1;q<=7;q++)I.push(A.get(q)||0);return{labels:y.value,values:I}}),C=M(()=>{const A=new Map(c.value.map(q=>[q.month,q.messageCount])),I=[];for(let q=1;q<=12;q++)I.push(A.get(q)||0);return{labels:k.value,values:I}}),$=M(()=>{const A=[...g.value].sort((I,q)=>I.year-q.year);return{labels:A.map(I=>String(I.year)),values:A.map(I=>I.messageCount)}}),S=M(()=>{const A=Array.from({length:24},(G,Z)=>`${Z}:00`),I=y.value,q=s.value.reduce((G,Z)=>G+Z.count,0)||1,Y=[];for(let G=1;G<=7;G++)for(let Z=0;Z<24;Z++){const ce=o.value.find(W=>W.weekday===G)?.messageCount||0,ne=u.value.find(W=>W.hour===Z)?.messageCount||0,H=Math.round(ce*ne/q);Y.push([Z,G-1,H])}return{xLabels:A,yLabels:I,data:Y}}),T=M(()=>h.value.map(A=>({date:A.date,value:A.messageCount}))),v=M(()=>{const A=new Set;return h.value.forEach(I=>{const q=parseInt(I.date.split("-")[0]);isNaN(q)||A.add(q)}),Array.from(A).sort((I,q)=>q-I)}),w=z(new Date().getFullYear()),E=M(()=>{const A=w.value;return T.value.filter(I=>I.date.startsWith(`${A}-`))}),F=M(()=>{if(f.value.length===0)return{};const A=[...new Set(f.value.map(Z=>Z.month))].sort(),I=new Map;if(f.value.forEach(Z=>{const ce=I.get(Z.memberId);ce?ce.total+=Z.count:I.set(Z.memberId,{name:Z.memberName,total:Z.count})}),I.size<=2){const Z=new Map;return f.value.forEach(ce=>{Z.set(ce.month,(Z.get(ce.month)||0)+ce.count)}),{tooltip:{trigger:"axis",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},grid:{left:50,right:20,top:10,bottom:30},xAxis:{type:"category",data:A,boundaryGap:!1,axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.3}}},series:[{type:"line",smooth:!0,symbol:"none",areaStyle:{opacity:.2},itemStyle:{color:"#6366f1"},data:A.map(ce=>Z.get(ce)||0)}]}}const G=[...I.entries()].sort((Z,ce)=>ce[1].total-Z[1].total).slice(0,10).map(([Z,ce],ne)=>{const H=new Map(f.value.filter(W=>W.memberId===Z).map(W=>[W.month,W.count]));return{name:ce.name,type:"line",stack:"total",areaStyle:{opacity:.3},smooth:!0,symbol:"none",itemStyle:{color:b[ne%b.length]},data:A.map(W=>H.get(W)||0)}});return{tooltip:{trigger:"axis",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},legend:{bottom:0,textStyle:{fontSize:11}},grid:{left:50,right:20,top:10,bottom:40},xAxis:{type:"category",data:A,boundaryGap:!1,axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.3}}},series:G}});async function D(){if(l.sessionId){n.value=!0;try{const A=Ke(),[I,q,Y,G,Z,ce,ne]=await Promise.all([A.getMessageTypeDistribution(l.sessionId,l.timeFilter),A.getHourlyActivity(l.sessionId,l.timeFilter),A.getWeekdayActivity(l.sessionId,l.timeFilter),A.getMonthlyActivity(l.sessionId,l.timeFilter),A.getYearlyActivity(l.sessionId,l.timeFilter),A.getDailyActivity(l.sessionId,l.timeFilter),A.getMemberMonthlyTrend(l.sessionId,l.timeFilter)]);s.value=I,u.value=q,o.value=Y,c.value=G,g.value=Z,h.value=ce,f.value=ne,v.value.length>0&&(w.value=v.value[0])}catch(A){console.error("[chart-message] Failed to load time analysis data:",A)}finally{n.value=!1}}}return fe(()=>[l.sessionId,l.timeFilter],()=>D(),{immediate:!0,deep:!0}),(A,I)=>{const q=wa;return r(),m("div",{class:X(n.value?"h-full":"")},[n.value?(r(),U(t(Kt),{key:0,variant:"page",text:t(e)("common.loading")},null,8,["text"])):(r(),m("div",vb,[h.value.length>0?(r(),U(fb,{key:0,"hourly-activity":u.value,"weekday-activity":o.value,"daily-activity":h.value},null,8,["hourly-activity","weekday-activity","daily-activity"])):R("",!0),a("div",yb,[p(t(Ze),{title:t(e)("views.message.hourlyDistribution"),"show-divider":!1},{default:B(()=>[a("div",xb,[p(t(rt),{data:x.value,height:200},null,8,["data"])])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.weekdayDistribution"),"show-divider":!1},{default:B(()=>[a("div",bb,[p(t(rt),{data:_.value,height:200},null,8,["data"])])]),_:1},8,["title"])]),a("div",kb,[p(t(Ze),{title:t(e)("views.message.monthlyDistribution"),"show-divider":!1},{default:B(()=>[a("div",_b,[p(t(rt),{data:C.value,height:200},null,8,["data"])])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.yearlyDistribution"),"show-divider":!1},{default:B(()=>[a("div",wb,[$.value.values.length>0?(r(),U(t(rt),{key:0,data:$.value,height:200},null,8,["data"])):(r(),m("div",$b,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"])]),p(t(Ze),{title:t(e)("views.message.timeAnalysis.memberTrendTitle"),"show-divider":!1},{headerRight:B(()=>[a("span",Cb,d(t(e)("views.message.timeAnalysis.memberTrendHint")),1)]),default:B(()=>[a("div",Sb,[f.value.length>0?(r(),U(t(ea),{key:0,option:F.value,height:280},null,8,["option"])):(r(),m("div",Ib,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.timeHeatmap"),"show-divider":!1},{headerRight:B(()=>[a("span",Tb,d(t(e)("views.message.heatmapHint")),1)]),default:B(()=>[a("div",Mb,[p(t(fa),{data:S.value,height:320},null,8,["data"])])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.calendarHeatmap"),"show-divider":!1},{headerRight:B(()=>[a("div",Ab,[a("span",zb,d(t(e)("views.message.calendarHint")),1),v.value.length>1?(r(),U(q,{key:0,modelValue:w.value,"onUpdate:modelValue":I[0]||(I[0]=Y=>w.value=Y),items:v.value.map(Y=>({value:Y,label:String(Y)})),size:"xs",class:"w-20"},null,8,["modelValue","items"])):R("",!0)])]),default:B(()=>[a("div",qb,[E.value.length>0?(r(),U(t(Av),{key:0,data:E.value,year:w.value,height:180},null,8,["data","year"])):(r(),m("div",Lb,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"])]))],2)}}}),Db={class:"relative z-10 px-6 pt-8 pb-4 sm:px-8"},Eb={class:"flex items-center gap-6 sm:gap-10"},Bb={class:"min-w-0 flex-1"},Fb={class:"flex flex-col gap-2 text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},Rb={key:0,class:"mb-0 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},Vb={class:"flex items-baseline gap-x-1.5"},Ob={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Pb={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},jb={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Nb={class:"flex items-baseline gap-x-1.5"},Ub={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Wb={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},Hb={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Kb={key:1,class:"mt-1 flex items-baseline flex-wrap gap-x-1.5 gap-y-1"},Yb={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Gb=["onClick"],Qb={key:0,class:"text-gray-400"},Jb={key:0,class:"hidden shrink-0 overflow-hidden rounded-lg sm:block"},Xb={class:"relative",style:{width:"360px",height:"220px"}},Zb={class:"relative z-10 px-6 pb-6 pt-4 sm:px-8"},e1={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},t1={class:"min-w-0 flex-1"},a1={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},s1={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},n1={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},o1={class:"flex items-center gap-1.5"},l1={class:"text-[9px] font-medium uppercase tracking-widest"},r1=ue({__name:"TopicProfileCard",props:{totalMessages:{},totalWords:{},uniqueWords:{},topWords:{},topicWords:{},posTagStats:{},timeFilter:{}},emits:["wordClick"],setup(i,{emit:l}){const e=gs(()=>Jt(()=>import("./EChartWordcloud-BaMgUl0Y.js"),__vite__mapDeps([3,4,5,6,0,1,2]))),{t:n}=we(),s=i,u=l,o=M(()=>{const{startTs:x,endTs:_}=s.timeFilter??{};return x&&_?`${Ee(x*1e3).format("YYYY/MM/DD")} – ${Ee(_*1e3).format("YYYY/MM/DD")}`:""}),c=M(()=>(s.topicWords?.length?s.topicWords:s.topWords).slice(0,5)),g=M(()=>({words:(s.topicWords?.length?s.topicWords:s.topWords).slice(0,50).map(_=>({word:_.word,count:_.count,percentage:_.percentage}))})),h=M(()=>s.totalWords===0?0:Math.round(s.uniqueWords/s.totalWords*100)),f=M(()=>{if(!s.posTagStats?.length)return{key:"Balanced",label:n("quotes.topicProfile.styleBalanced"),desc:n("quotes.topicProfile.styleBalancedDesc"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const x=new Map(s.posTagStats.map(E=>[E.tag,E.count])),_=(x.get("n")||0)+(x.get("ns")||0)+(x.get("nt")||0)+(x.get("nz")||0),C=(x.get("v")||0)+(x.get("vn")||0)+(x.get("vd")||0),$=(x.get("a")||0)+(x.get("ad")||0)+(x.get("an")||0),S=_+C+$;if(S===0)return{key:"Balanced",label:n("quotes.topicProfile.styleBalanced"),desc:n("quotes.topicProfile.styleBalancedDesc"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const T=_/S,v=C/S,w=$/S;return T>.5?{key:"Encyclopedia",label:n("quotes.topicProfile.styleEncyclopedia"),desc:n("quotes.topicProfile.styleEncyclopediaDesc"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:v>.45?{key:"Action",label:n("quotes.topicProfile.styleAction"),desc:n("quotes.topicProfile.styleActionDesc"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:w>.3?{key:"Expressive",label:n("quotes.topicProfile.styleExpressive"),desc:n("quotes.topicProfile.styleExpressiveDesc"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{key:"Balanced",label:n("quotes.topicProfile.styleBalanced"),desc:n("quotes.topicProfile.styleBalancedDesc"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}),b=M(()=>{if(s.topWords.length===0)return{label:n("quotes.topicProfile.expressionMixed"),desc:n("quotes.topicProfile.expressionMixedDesc"),icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-emerald-600 dark:text-emerald-400"};const x=s.topWords.reduce(($,S)=>$+S.word.length*S.count,0),_=s.topWords.reduce(($,S)=>$+S.count,0),C=x/_;return C<2.5?{label:n("quotes.topicProfile.expressionCasual"),desc:n("quotes.topicProfile.expressionCasualDesc"),icon:"i-heroicons-face-smile-solid",colorClass:"text-amber-600 dark:text-amber-400"}:C>3.5?{label:n("quotes.topicProfile.expressionFormal"),desc:n("quotes.topicProfile.expressionFormalDesc"),icon:"i-heroicons-academic-cap-solid",colorClass:"text-violet-600 dark:text-violet-400"}:{label:n("quotes.topicProfile.expressionMixed"),desc:n("quotes.topicProfile.expressionMixedDesc"),icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-emerald-600 dark:text-emerald-400"}}),y=M(()=>[{icon:"i-heroicons-fire-solid",label:n("quotes.topicProfile.hotTopic"),value:c.value[0]?.word??"-",subtext:c.value[0]?n("quotes.topicProfile.hotTopicDesc",{count:c.value[0].count}):"",colorClass:"text-red-600 dark:text-red-400"},{icon:"i-heroicons-sparkles-solid",label:n("quotes.topicProfile.richness"),value:n("quotes.topicProfile.richnessValue",{value:h.value}),subtext:n("quotes.topicProfile.richnessDesc",{unique:s.uniqueWords.toLocaleString(),total:s.totalWords.toLocaleString()}),colorClass:"text-blue-600 dark:text-blue-400"},{icon:f.value.icon,label:n("quotes.topicProfile.chatStyle"),value:f.value.label,subtext:f.value.desc,colorClass:f.value.colorClass},{icon:b.value.icon,label:n("quotes.topicProfile.expressionStyle"),value:b.value.label,subtext:b.value.desc,colorClass:b.value.colorClass}]),k=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e"];return(x,_)=>{const C=_e;return r(),U(t(na),null,{default:B(()=>[a("div",Db,[a("div",Eb,[a("div",Bb,[a("div",Fb,[o.value?(r(),m("p",Rb,d(o.value),1)):R("",!0),a("div",Vb,[a("span",Ob,d(t(n)("quotes.topicProfile.heroPrefix")),1),a("span",Pb,d(i.totalMessages.toLocaleString()),1),a("span",jb,d(t(n)("quotes.topicProfile.heroMiddle")),1)]),a("div",Nb,[a("span",Ub,d(t(n)("quotes.topicProfile.heroMiddleSecond")),1),a("span",Wb,d(i.uniqueWords.toLocaleString()),1),a("span",Hb,d(t(n)("quotes.topicProfile.heroSuffix")),1)]),c.value.length>0?(r(),m("div",Kb,[a("span",Yb,d(t(n)("quotes.topicProfile.topTopicsPrefix")),1),(r(!0),m(ie,null,pe(c.value,($,S)=>(r(),m(ie,{key:$.word},[a("span",{class:"cursor-pointer font-bold text-xl transition-opacity hover:opacity-70",style:et({color:k[S%k.length]}),onClick:T=>u("wordClick",$.word)},d($.word),13,Gb),S<c.value.length-1?(r(),m("span",Qb,"·")):R("",!0)],64))),128))])):R("",!0)])]),g.value.words.length>0?(r(),m("div",Jb,[a("div",Xb,[p(t(e),{data:g.value,height:"100%","max-words":50,"size-scale":.8,"draw-out-of-bound":!0,shape:"rectangle","color-scheme":"default",onWordClick:_[0]||(_[0]=$=>u("wordClick",$))},null,8,["data"])])])):R("",!0)])]),a("div",Zb,[_[1]||(_[1]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Topic Profile ")],-1)),a("div",e1,[(r(!0),m(ie,null,pe(y.value,$=>(r(),m("div",{key:$.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(C,{name:$.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",$.colorClass])},null,8,["name","class"]),a("div",t1,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",$.colorClass])},d($.value),3),a("div",a1,d($.label),1),a("div",s1,d($.subtext),1)])]))),128))])]),a("div",n1,[a("div",o1,[p(C,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),_[2]||(_[2]=a("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),a("span",l1,d(t(n)("quotes.topicProfile.watermark")),1)])]),_:1})}}}),i1={class:"px-5 py-4 sm:px-6"},u1={class:"mb-4 flex items-center gap-2"},c1={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},d1={class:"flex flex-wrap justify-center gap-2"},m1=["onClick"],g1=ue({__name:"SharedTopicsCard",props:{sessionId:{},timeFilter:{},dictType:{},excludeWords:{}},emits:["wordClick"],setup(i,{emit:l}){const{t:e}=we(),n=Ma(),s=i,u=l,o=M(()=>n.locale),c=z([]),g=z([]),h=M(()=>c.value.slice(0,20)),f=["bg-indigo-50 text-indigo-600 ring-1 ring-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-400 dark:ring-indigo-500/30","bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30","bg-orange-50 text-orange-600 ring-1 ring-orange-500/20 dark:bg-orange-500/10 dark:text-orange-400 dark:ring-orange-500/30","bg-green-50 text-green-600 ring-1 ring-green-500/20 dark:bg-green-500/10 dark:text-green-400 dark:ring-green-500/30","bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30","bg-violet-50 text-violet-600 ring-1 ring-violet-500/20 dark:bg-violet-500/10 dark:text-violet-400 dark:ring-violet-500/30","bg-teal-50 text-teal-600 ring-1 ring-teal-500/20 dark:bg-teal-500/10 dark:text-teal-400 dark:ring-teal-500/30","bg-rose-50 text-rose-600 ring-1 ring-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400 dark:ring-rose-500/30","bg-yellow-50 text-yellow-600 ring-1 ring-yellow-500/20 dark:bg-yellow-500/10 dark:text-yellow-400 dark:ring-yellow-500/30","bg-cyan-50 text-cyan-600 ring-1 ring-cyan-500/20 dark:bg-cyan-500/10 dark:text-cyan-400 dark:ring-cyan-500/30"];async function b(){if(s.sessionId)try{g.value.length===0&&(g.value=await Ke().getMembers(s.sessionId));const y=[...g.value].sort((T,v)=>v.messageCount-T.messageCount).slice(0,2);if(y.length<2){c.value=[];return}const k={locale:o.value,timeFilter:s.timeFilter?{startTs:s.timeFilter.startTs,endTs:s.timeFilter.endTs}:void 0,topN:100,minCount:2,posFilterMode:"meaningful",enableStopwords:!0,dictType:s.dictType??"default",excludeWords:s.excludeWords?.length?[...s.excludeWords]:void 0},x=Ke(),[_,C]=await Promise.all([x.getWordFrequency(s.sessionId,{...k,memberId:y[0].id}),x.getWordFrequency(s.sessionId,{...k,memberId:y[1].id})]),$=new Map(C.words.map(T=>[T.word,T.count])),S=[];for(const T of _.words){const v=$.get(T.word);v&&S.push({word:T.word,countA:T.count,countB:v})}S.sort((T,v)=>v.countA+v.countB-(T.countA+T.countB)),c.value=S.slice(0,30)}catch(y){console.error("加载共同话题数据失败:",y),c.value=[]}}return fe(()=>s.sessionId,()=>{g.value=[]}),fe(()=>[s.sessionId,s.timeFilter,s.dictType,s.excludeWords],()=>{b()},{immediate:!0,deep:!0}),(y,k)=>{const x=_e;return h.value.length>0?(r(),U(t(mt),{key:0},{default:B(()=>[a("div",i1,[a("div",u1,[p(x,{name:"i-heroicons-link",class:"h-4 w-4 text-emerald-500"}),a("span",c1,d(t(e)("quotes.topicProfile.sharedTopics")),1)]),a("div",d1,[(r(!0),m(ie,null,pe(h.value,(_,C)=>(r(),m("span",{key:_.word,class:X(["cursor-pointer rounded-full px-3 py-1 text-xs font-bold transition-opacity hover:opacity-80",f[C%f.length]]),onClick:$=>u("wordClick",_.word)},d(_.word),11,m1))),128))])])]),_:1})):R("",!0)}}}),$s=qn("wordFilter",()=>{const i=z([]),l=z(null),e=z({}),n=z(!1);function s(){return`wf_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function u($,S=[]){const T={id:s(),name:$,words:[...S],createdAt:Date.now()};return i.value.push(T),T}function o($,S){const T=i.value.find(v=>v.id===$);T&&(S.name!==void 0&&(T.name=S.name),S.words!==void 0&&(T.words=[...S.words]))}function c($){i.value=i.value.filter(S=>S.id!==$),l.value===$&&(l.value=null);for(const[S,T]of Object.entries(e.value))T===$&&delete e.value[S]}function g($){l.value=$}function h($,S){e.value[$]=S}function f($){delete e.value[$]}function b($){return $ in e.value?e.value[$]:l.value}function y($){const S=b($);return S?i.value.find(v=>v.id===S)?.words??[]:[]}function k($){return i.value.find(S=>S.id===$)}const x=M(()=>i.value.map($=>({label:$.name,value:$.id,isDefault:$.id===l.value,wordCount:$.words.length})));function _(){n.value=!0}function C(){n.value=!1}return{schemes:i,defaultSchemeId:l,sessionSchemeOverrides:e,showWordFilterModal:n,schemeOptions:x,createScheme:u,updateScheme:o,deleteScheme:c,setDefaultScheme:g,setSessionScheme:h,clearSessionScheme:f,getActiveSchemeId:b,getExcludeWords:y,getSchemeById:k,openModal:_,closeModal:C}},{persist:!1,backendPersist:{pick:["schemes","defaultSchemeId","sessionSchemeOverrides"],key:"wordFilter"}}),p1={class:"flex flex-col",style:{height:"520px"}},h1={class:"flex items-center justify-between border-b border-gray-200 px-6 py-4 dark:border-white/5"},f1={class:"flex items-center gap-3"},v1={class:"flex h-9 w-9 items-center justify-center rounded-xl bg-linear-to-br from-pink-400 to-pink-600"},y1={class:"text-lg font-semibold text-gray-900 dark:text-white"},x1={class:"flex flex-1 overflow-hidden"},b1={class:"flex w-[200px] shrink-0 flex-col border-r border-gray-200 dark:border-white/5"},k1={class:"flex items-center justify-between px-3 py-2"},_1={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},w1={class:"flex-1 overflow-y-auto px-2 pb-2"},$1=["onClick"],C1={class:"truncate text-sm"},S1={class:"ml-auto text-xs text-gray-400 dark:text-gray-500"},I1={key:0,class:"px-3 py-8 text-center text-xs text-gray-400 dark:text-gray-500"},T1={class:"flex flex-1 flex-col overflow-hidden"},M1={class:"flex-1 space-y-4 overflow-y-auto p-5"},A1={class:"mb-1.5 block text-xs font-medium text-gray-600 dark:text-gray-400"},z1={class:"flex items-center gap-2"},q1={class:"mb-1.5 block text-xs font-medium text-gray-600 dark:text-gray-400"},L1={class:"flex gap-2"},D1={class:"mb-1.5 flex items-center justify-between"},E1={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},B1={class:"ml-1 text-gray-400 dark:text-gray-500"},F1={key:0,class:"flex max-h-[220px] flex-wrap gap-1.5 overflow-y-auto rounded-lg border border-gray-200 p-3 dark:border-white/5"},R1={key:1,class:"rounded-lg border border-dashed border-gray-300 px-4 py-6 text-center text-xs text-gray-400 dark:border-gray-600 dark:text-gray-500"},V1={class:"flex shrink-0 justify-end border-t border-gray-200 px-5 py-3 dark:border-white/5"},O1={key:1,class:"flex flex-1 flex-col items-center justify-center gap-3 text-gray-400 dark:text-gray-500"},P1={class:"text-sm"},j1=ue({__name:"WordFilterModal",setup(i){const{t:l}=we(),e=$s(),n=M({get:()=>e.showWordFilterModal,set:S=>S?e.openModal():e.closeModal()}),s=z(null),u=z(""),o=z(""),c=z(null),g=M(()=>s.value?e.getSchemeById(s.value)??null:null),h=M(()=>s.value===e.defaultSchemeId);fe(n,S=>{S&&(e.schemes.length>0&&!s.value&&(s.value=e.schemes[0].id),f())}),fe(s,()=>{f(),o.value=""});function f(){u.value=g.value?.name??""}function b(){const S=e.createScheme(l("wordFilter.defaultSchemeName"));s.value=S.id,De(()=>{c.value?.focus(),c.value?.select()})}function y(){if(!s.value)return;const S=e.schemes.findIndex(T=>T.id===s.value);if(e.deleteScheme(s.value),e.schemes.length>0){const T=Math.min(S,e.schemes.length-1);s.value=e.schemes[T].id}else s.value=null}function k(){!s.value||!u.value.trim()||e.updateScheme(s.value,{name:u.value.trim()})}function x(){s.value&&(h.value?e.setDefaultScheme(null):e.setDefaultScheme(s.value))}function _(){if(!s.value||!o.value.trim())return;const T=o.value.trim().split(/[,,\n\r\t;;|、\s]+/).map(F=>F.trim()).filter(F=>F.length>0);if(T.length===0)return;const v=g.value;if(!v)return;const w=new Set(v.words.map(F=>F.toLowerCase())),E=T.filter(F=>!w.has(F.toLowerCase()));E.length>0&&e.updateScheme(s.value,{words:[...v.words,...E]}),o.value=""}function C(S){if(!s.value)return;const T=g.value;T&&e.updateScheme(s.value,{words:T.words.filter(v=>v!==S)})}function $(){s.value&&e.updateScheme(s.value,{words:[]})}return(S,T)=>{const v=_e,w=Ue,E=Bt,F=ps,D=Xe;return r(),U(D,{open:n.value,"onUpdate:open":T[4]||(T[4]=A=>n.value=A),ui:{content:"max-w-3xl z-50"}},{content:B(()=>[a("div",p1,[a("div",h1,[a("div",f1,[a("div",v1,[p(v,{name:"i-heroicons-funnel",class:"h-4.5 w-4.5 text-white"})]),a("h2",y1,d(t(l)("wordFilter.title")),1)]),p(w,{icon:"i-heroicons-x-mark",variant:"ghost",color:"neutral",size:"sm",onClick:T[0]||(T[0]=A=>n.value=!1)})]),a("div",x1,[a("div",b1,[a("div",k1,[a("span",_1,d(t(l)("wordFilter.schemeList")),1),p(w,{icon:"i-heroicons-plus",size:"xs",variant:"ghost",color:"primary",onClick:b})]),a("div",w1,[(r(!0),m(ie,null,pe(t(e).schemes,A=>(r(),m("div",{key:A.id,class:X(["group mb-1 flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 transition-colors",s.value===A.id?"bg-primary-50 text-primary-700 dark:bg-primary-900/20 dark:text-primary-300":"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5"]),onClick:I=>s.value=A.id},[A.id===t(e).defaultSchemeId?(r(),U(v,{key:0,name:"i-heroicons-star-solid",class:"h-3.5 w-3.5 shrink-0 text-amber-500"})):R("",!0),a("span",C1,d(A.name),1),a("span",S1,d(A.words.length),1)],10,$1))),128)),t(e).schemes.length===0?(r(),m("div",I1,d(t(l)("wordFilter.emptyScheme")),1)):R("",!0)])]),a("div",T1,[g.value?(r(),m(ie,{key:0},[a("div",M1,[a("div",null,[a("label",A1,d(t(l)("wordFilter.schemeName")),1),p(E,{ref_key:"nameInputRef",ref:c,modelValue:u.value,"onUpdate:modelValue":T[1]||(T[1]=A=>u.value=A),size:"sm",placeholder:t(l)("wordFilter.schemeNamePlaceholder"),onBlur:k,onKeydown:Ge(k,["enter"])},null,8,["modelValue","placeholder"])]),a("div",z1,[p(w,{size:"xs",variant:h.value?"solid":"soft",color:h.value?"warning":"neutral",icon:h.value?"i-heroicons-star-solid":"i-heroicons-star",onClick:x},{default:B(()=>[le(d(h.value?t(l)("wordFilter.isDefault"):t(l)("wordFilter.setDefault")),1)]),_:1},8,["variant","color","icon"]),p(w,{size:"xs",variant:"soft",color:"error",icon:"i-heroicons-trash",onClick:y},{default:B(()=>[le(d(t(l)("wordFilter.deleteScheme")),1)]),_:1})]),a("div",null,[a("label",q1,d(t(l)("wordFilter.addWords")),1),a("div",L1,[p(E,{modelValue:o.value,"onUpdate:modelValue":T[2]||(T[2]=A=>o.value=A),size:"sm",class:"flex-1",placeholder:t(l)("wordFilter.addWordsPlaceholder"),onKeydown:Ge(_,["enter"])},null,8,["modelValue","placeholder"]),p(w,{size:"sm",color:"primary",icon:"i-heroicons-plus",onClick:_},{default:B(()=>[le(d(t(l)("wordFilter.add")),1)]),_:1})])]),a("div",null,[a("div",D1,[a("label",E1,[le(d(t(l)("wordFilter.wordList"))+" ",1),a("span",B1,"("+d(g.value.words.length)+")",1)]),g.value.words.length>0?(r(),U(w,{key:0,size:"xs",variant:"ghost",color:"error",onClick:$},{default:B(()=>[le(d(t(l)("wordFilter.clearAll")),1)]),_:1})):R("",!0)]),g.value.words.length>0?(r(),m("div",F1,[(r(!0),m(ie,null,pe(g.value.words,A=>(r(),U(F,{key:A,color:"neutral",variant:"subtle",class:"group/badge cursor-default gap-1 pr-1"},{default:B(()=>[le(d(A)+" ",1),p(v,{name:"i-heroicons-x-mark",class:"h-3.5 w-3.5 cursor-pointer text-gray-400 transition-colors hover:text-red-500",onClick:I=>C(A)},null,8,["onClick"])]),_:2},1024))),128))])):(r(),m("div",R1,d(t(l)("wordFilter.emptyWords")),1))])]),a("div",V1,[p(w,{color:"primary",variant:"soft",onClick:T[3]||(T[3]=A=>n.value=!1)},{default:B(()=>[le(d(t(l)("wordFilter.close")),1)]),_:1})])],64)):(r(),m("div",O1,[p(v,{name:"i-heroicons-funnel",class:"h-10 w-10"}),a("p",P1,d(t(l)("wordFilter.selectOrCreate")),1),p(w,{size:"sm",color:"primary",variant:"soft",icon:"i-heroicons-plus",onClick:b},{default:B(()=>[le(d(t(l)("wordFilter.createScheme")),1)]),_:1})]))])])])]),_:1},8,["open"])}}}),N1={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},U1={key:0,class:"flex flex-col gap-3 rounded-lg border border-primary-200 bg-primary-50/70 p-4 dark:border-primary-800 dark:bg-primary-950/30 sm:flex-row sm:items-center sm:justify-between"},W1={class:"flex min-w-0 items-start gap-3"},H1={class:"min-w-0 text-sm text-primary-700 dark:text-primary-300"},K1={class:"flex shrink-0 flex-wrap gap-2"},Y1={key:1,class:"space-y-6"},G1={class:"flex flex-col gap-6 p-4 sm:p-6 lg:flex-row"},Q1={class:"flex min-w-0 flex-1 flex-col"},J1={class:"relative w-full",style:{"aspect-ratio":"16 / 9"}},X1={key:1,class:"absolute inset-0 flex flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-gray-200 bg-gray-50/40 text-gray-500 dark:border-gray-700 dark:bg-gray-800/30 dark:text-gray-400"},Z1={class:"text-xs font-medium"},ek={class:"px-4 text-center text-[11px]"},tk={key:0,class:"mt-2 text-center text-xs text-gray-500 dark:text-gray-400"},ak={class:"w-full shrink-0 space-y-4 lg:w-[280px]"},sk={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},nk={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},ok={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},lk={key:0},rk={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},ik={class:"space-y-2"},uk={class:"text-xs text-gray-400 dark:text-gray-500"},ck={key:1},dk={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},mk={class:"flex items-center"},gk={key:2,class:"space-y-2"},pk={class:"flex items-center justify-between"},hk={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},fk={class:"flex gap-1"},vk={class:"flex max-h-[360px] flex-wrap gap-1.5 overflow-y-auto"},yk={key:0,class:"ml-1 opacity-60"},xk={class:"mb-2 flex items-center justify-between"},bk={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},kk={key:0,class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},_k={class:"space-y-4"},wk={class:"text-sm text-gray-600 dark:text-gray-300"},$k={class:"flex justify-end gap-2"},Ck="default",Ga="chatlab_zhTW_dict_prompt_dismissed",Zw=ue({__name:"WordcloudTab",props:{sessionId:{},timeFilter:{},memberId:{},showSharedTopics:{type:Boolean},enableNodeNlpFeatures:{type:Boolean,default:!0},enableRecordNavigation:{type:Boolean,default:!0}},setup(i){const l=gs(()=>Jt(()=>import("./EChartWordcloud-BaMgUl0Y.js"),__vite__mapDeps([3,4,5,6,0,1,2]))),{t:e}=we(),n=Ma(),s=bt(),u=$s(),o=nt(),c=i,g=z(!1),h=z([]),f=z({totalMessages:0,totalWords:0,uniqueWords:0}),b=z(1.25),y=z(150),k=M(()=>{const me=h.value.slice(0,y.value),O=me.reduce((V,K)=>V+K.count,0);return{words:me.map(V=>({word:V.word,count:V.count,percentage:O>0?Math.round(V.count/O*1e4)/100:0}))}}),x=z(c.enableNodeNlpFeatures?"meaningful":"all"),_=z(!0),C=z([]),$=z([]),S=z(new Map),T=["n","nr","ns","nt","nz","nw","vn","a","an"],v=z([]),w=M(()=>k.value.words.map(me=>({word:me.word,count:me.count,percentage:me.percentage??0}))),E=M(()=>[...S.value.entries()].map(([me,O])=>({tag:me,count:O}))),F=z(null),D=M({get:()=>u.getActiveSchemeId(c.sessionId),set:me=>u.setSessionScheme(c.sessionId,me)}),A=M(()=>[{label:e("wordFilter.noFilter"),value:"__none__"},...u.schemeOptions.map(me=>({label:me.isDefault?`${me.label} ★`:me.label,value:me.value}))]),I=M({get:()=>D.value??"__none__",set:me=>{D.value=me==="__none__"?null:me}}),q=M(()=>u.getExcludeWords(c.sessionId)),Y=z("default"),G=z([]),Z=z(!1),ce=z(null),ne=z(!1),H=z(!c.enableNodeNlpFeatures),W=M(()=>n.locale),re=M(()=>n.locale==="zh-TW"),ve=M(()=>W.value.startsWith("zh")),he=M(()=>G.value.filter(me=>me.downloaded).map(me=>({label:e(`quotes.wordcloud.dict.${me.id==="zh-CN"?"zhCN":me.id==="zh-TW"?"zhTW":me.id}`),value:me.id}))),ee=M(()=>G.value.some(me=>me.downloaded)),te=M(()=>!c.enableNodeNlpFeatures||!ve.value||H.value),j=M(()=>G.value.filter(me=>!me.downloaded));async function de(){if(c.enableNodeNlpFeatures)try{G.value=await Oa("/nlp/dicts"),re.value&&Y.value==="default"&&G.value.find(V=>V.id==="zh-TW")?.downloaded&&(Y.value="zh-TW"),G.value.find(O=>O.id==="zh-CN")?.downloaded&&Y.value==="default"&&(Y.value="zh-CN")}catch(me){console.error("Failed to get dict list:",me)}finally{H.value=!0}}async function be(me){Z.value=!0,ce.value=me;try{const O=await Ln(`/nlp/dicts/${me}/download`);O.success?(await de(),Y.value=me,o.success(e("quotes.wordcloud.dict.downloadSuccess"))):o.fail(e("quotes.wordcloud.dict.downloadFailed"),{description:O.error})}catch{o.fail(e("quotes.wordcloud.dict.downloadFailed"))}finally{Z.value=!1,ce.value=null,ne.value=!1}}function xe(){ne.value=!1,localStorage.setItem(Ga,"true")}function oe(){const me=G.value.find(O=>O.id==="zh-TW");re.value&&me&&!me.downloaded&&!localStorage.getItem(Ga)&&(ne.value=!0)}const Q=M(()=>[{label:e("quotes.wordcloud.posFilter.all"),value:"all"},{label:e("quotes.wordcloud.posFilter.meaningful"),value:"meaningful"},{label:e("quotes.wordcloud.posFilter.custom"),value:"custom"}]),J=[{label:"80",value:80},{label:"100",value:100},{label:"150",value:150},{label:"200",value:200},{label:"300",value:300}],ge=Math.max(...J.map(me=>me.value)),ke=M(()=>[{label:e("quotes.wordcloud.size.small"),value:.75},{label:e("quotes.wordcloud.size.medium"),value:1},{label:e("quotes.wordcloud.size.large"),value:1.25},{label:e("quotes.wordcloud.size.xlarge"),value:1.5}]),$e=M(()=>$.value.map(me=>({label:me.name,tag:me.tag,value:me.tag,count:S.value.get(me.tag)||0,meaningful:me.meaningful})));async function Le(){if(c.enableNodeNlpFeatures)try{const me=await Oa("/nlp/pos-tags");$.value=me,C.value=me.filter(O=>O.meaningful).map(O=>O.tag)}catch(me){console.error("加载词性标签失败:",me)}}let Be=0;async function Te(){if(!c.sessionId||!te.value)return;const me=++Be;try{const O=await Ke().getWordFrequency(c.sessionId,{locale:W.value,timeFilter:c.timeFilter?{startTs:c.timeFilter.startTs,endTs:c.timeFilter.endTs}:void 0,memberId:F.value??void 0,topN:50,minCount:2,posFilterMode:c.enableNodeNlpFeatures?"custom":"all",customPosTags:c.enableNodeNlpFeatures?[...T]:void 0,enableStopwords:!0,dictType:Y.value,excludeWords:q.value.length>0?[...q.value]:void 0});if(me!==Be)return;v.value=O.words.map(V=>({word:V.word,count:V.count,percentage:V.percentage}))}catch(O){if(console.error("加载话题迷你词云数据失败:",O),me!==Be)return;v.value=[]}}let Pe=0;async function je(){if(!c.sessionId||!te.value)return;const me=++Pe;h.value.length===0&&(g.value=!0);try{const O=await Ke().getWordFrequency(c.sessionId,{locale:W.value,timeFilter:c.timeFilter?{startTs:c.timeFilter.startTs,endTs:c.timeFilter.endTs}:void 0,memberId:F.value??void 0,topN:ge,minCount:2,posFilterMode:c.enableNodeNlpFeatures?x.value:"all",customPosTags:c.enableNodeNlpFeatures&&x.value==="custom"?[...C.value]:void 0,enableStopwords:_.value,dictType:Y.value,excludeWords:q.value.length>0?[...q.value]:void 0});if(me!==Pe)return;if(h.value=O.words.map(V=>({word:V.word,count:V.count,percentage:V.percentage})),f.value={totalMessages:O.totalMessages,totalWords:O.totalWords,uniqueWords:O.uniqueWords},O.posTagStats){const V=new Map;for(const K of O.posTagStats)V.set(K.tag,K.count);S.value=V}}catch(O){if(console.error("加载词频数据失败:",O),me!==Pe)return;h.value=[]}finally{me===Pe&&(g.value=!1)}}fe(()=>c.sessionId,()=>{F.value=null,h.value=[],v.value=[],f.value={totalMessages:0,totalWords:0,uniqueWords:0},S.value=new Map}),fe(()=>[c.sessionId,c.timeFilter,F.value,x.value,_.value,Y.value,q.value,te.value],()=>{je()},{immediate:!0,deep:!0}),fe(()=>[c.sessionId,c.timeFilter,F.value,Y.value,q.value,te.value],()=>{Te()},{immediate:!0,deep:!0}),fe(C,()=>{x.value==="custom"&&je()},{deep:!0}),fe(W,()=>{je()});function Se(me){c.enableRecordNavigation&&s.openChatRecordDrawer({keywords:[me]})}return Re(async()=>{c.enableNodeNlpFeatures&&(Le(),await de(),oe())}),(me,O)=>{const V=_e,K=Ue,L=_a,P=ps,N=Xe;return r(),m("div",N1,[c.enableNodeNlpFeatures&&ve.value&&!ee.value?(r(),m("div",U1,[a("div",W1,[p(V,{name:"i-heroicons-information-circle",class:"mt-0.5 shrink-0 text-xl text-primary-500"}),a("p",H1,d(t(e)("quotes.wordcloud.dict.needDownload")),1)]),a("div",K1,[(r(!0),m(ie,null,pe(G.value,ae=>(r(),U(K,{key:ae.id,size:"sm",color:"primary",loading:Z.value&&ce.value===ae.id,disabled:Z.value&&ce.value!==ae.id,icon:"i-heroicons-arrow-down-tray",onClick:se=>be(ae.id)},{default:B(()=>[le(d(t(e)(`quotes.wordcloud.dict.download_${ae.id}`,ae.label)),1)]),_:2},1032,["loading","disabled","onClick"]))),128))])])):R("",!0),te.value?(r(),m("div",Y1,[g.value&&w.value.length===0?(r(),U(t(Kt),{key:0,text:t(e)("quotes.wordcloud.loading"),class:"py-8"},null,8,["text"])):R("",!0),p(r1,{"total-messages":f.value.totalMessages,"total-words":f.value.totalWords,"unique-words":f.value.uniqueWords,"top-words":w.value,"topic-words":v.value,"pos-tag-stats":E.value,"time-filter":c.timeFilter,onWordClick:Se},null,8,["total-messages","total-words","unique-words","top-words","topic-words","pos-tag-stats","time-filter"]),c.showSharedTopics?(r(),U(g1,{key:1,"session-id":c.sessionId,"time-filter":c.timeFilter,"dict-type":Y.value,"exclude-words":q.value,onWordClick:Se},null,8,["session-id","time-filter","dict-type","exclude-words"])):R("",!0),p(t(Ze),{title:t(e)("quotes.wordcloud.stats.wordsLabel"),"show-divider":!1},{default:B(()=>[a("div",G1,[a("div",Q1,[a("div",J1,[g.value?(r(),U(t(Kt),{key:0,text:t(e)("quotes.wordcloud.loading"),class:"absolute inset-0 z-10 rounded-lg bg-white/80 dark:bg-page-dark/80"},null,8,["text"])):w.value.length===0?(r(),m("div",X1,[p(V,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"text-2xl"}),a("p",Z1,d(t(e)("quotes.wordcloud.empty.title")),1),a("p",ek,d(t(e)("quotes.wordcloud.empty.description")),1)])):(r(),U(t(l),{key:2,data:k.value,height:"100%","max-words":y.value,"color-scheme":Ck,"size-scale":b.value,loading:g.value,onWordClick:Se},null,8,["data","max-words","size-scale","loading"]))]),c.enableRecordNavigation?(r(),m("p",tk,d(t(e)("quotes.wordcloud.stats.clickHint")),1)):R("",!0)]),a("div",ak,[a("div",null,[a("h4",sk,d(t(e)("quotes.wordcloud.config.maxWords")),1),p(t(pt),{modelValue:y.value,"onUpdate:modelValue":O[0]||(O[0]=ae=>y.value=ae),size:"xs",items:J},null,8,["modelValue"])]),a("div",null,[a("h4",nk,d(t(e)("quotes.wordcloud.config.sizeScale")),1),p(t(pt),{modelValue:b.value,"onUpdate:modelValue":O[1]||(O[1]=ae=>b.value=ae),size:"xs",items:ke.value},null,8,["modelValue","items"])]),a("div",null,[a("h4",ok,d(t(e)("quotes.wordcloud.config.userFilter")),1),p(Cy,{modelValue:F.value,"onUpdate:modelValue":O[2]||(O[2]=ae=>F.value=ae),"session-id":c.sessionId,class:"w-full"},null,8,["modelValue","session-id"])]),c.enableNodeNlpFeatures?(r(),m("div",lk,[a("h4",rk,d(t(e)("quotes.wordcloud.config.dict")),1),a("div",ik,[he.value.length>1?(r(),U(t(pt),{key:0,modelValue:Y.value,"onUpdate:modelValue":O[3]||(O[3]=ae=>Y.value=ae),size:"xs",items:he.value},null,8,["modelValue","items"])):R("",!0),(r(!0),m(ie,null,pe(j.value,ae=>(r(),m("div",{key:ae.id,class:"flex items-center gap-2"},[p(K,{size:"xs",variant:"soft",color:"primary",loading:Z.value&&ce.value===ae.id,disabled:Z.value&&ce.value!==ae.id,icon:"i-heroicons-arrow-down-tray",onClick:se=>be(ae.id)},{default:B(()=>[le(d(t(e)(`quotes.wordcloud.dict.download_${ae.id}`,t(e)("quotes.wordcloud.dict.download"))),1)]),_:2},1032,["loading","disabled","onClick"]),a("span",uk,d(t(e)("quotes.wordcloud.dict.downloadHint")),1)]))),128))])])):R("",!0),c.enableNodeNlpFeatures?(r(),m("div",ck,[a("h4",dk,d(t(e)("quotes.wordcloud.config.posFilter")),1),p(t(pt),{modelValue:x.value,"onUpdate:modelValue":O[4]||(O[4]=ae=>x.value=ae),size:"xs",items:Q.value},null,8,["modelValue","items"])])):R("",!0),a("div",mk,[p(L,{modelValue:_.value,"onUpdate:modelValue":O[5]||(O[5]=ae=>_.value=ae),label:t(e)("quotes.wordcloud.config.enableStopwords")},null,8,["modelValue","label"])]),c.enableNodeNlpFeatures&&x.value==="custom"?(r(),m("div",gk,[a("div",pk,[a("h4",hk,d(t(e)("quotes.wordcloud.posFilter.customHint")),1),a("div",fk,[p(K,{size:"xs",variant:"ghost",color:"neutral",onClick:O[6]||(O[6]=ae=>C.value=$.value.filter(se=>se.meaningful).map(se=>se.tag))},{default:B(()=>[le(d(t(e)("quotes.wordcloud.posFilter.selectMeaningful")),1)]),_:1}),p(K,{size:"xs",variant:"ghost",color:"neutral",onClick:O[7]||(O[7]=ae=>C.value=$.value.map(se=>se.tag))},{default:B(()=>[le(d(t(e)("quotes.wordcloud.posFilter.selectAll")),1)]),_:1}),p(K,{size:"xs",variant:"ghost",color:"neutral",onClick:O[8]||(O[8]=ae=>C.value=[])},{default:B(()=>[le(d(t(e)("quotes.wordcloud.posFilter.clearAll")),1)]),_:1})])]),a("div",vk,[(r(!0),m(ie,null,pe($e.value,ae=>(r(),U(P,{key:ae.value,color:C.value.includes(ae.value)?"primary":"neutral",variant:C.value.includes(ae.value)?"solid":"outline",class:"cursor-pointer select-none transition-colors",onClick:()=>{C.value.includes(ae.value)?C.value=C.value.filter(se=>se!==ae.value):C.value=[...C.value,ae.value]}},{default:B(()=>[le(d(ae.label)+" ",1),ae.count>0?(r(),m("span",yk,"("+d(ae.count)+")",1)):R("",!0)]),_:2},1032,["color","variant","onClick"]))),128))])])):R("",!0),a("div",null,[a("div",xk,[a("h4",bk,d(t(e)("wordFilter.filterScheme")),1),p(K,{size:"xs",variant:"ghost",color:"neutral",icon:"i-heroicons-cog-6-tooth","aria-label":t(e)("wordFilter.manage"),onClick:O[9]||(O[9]=ae=>t(u).openModal())},null,8,["aria-label"])]),p(t(pt),{modelValue:I.value,"onUpdate:modelValue":O[10]||(O[10]=ae=>I.value=ae),size:"xs",items:A.value},null,8,["modelValue","items"]),q.value.length>0?(r(),m("p",kk,d(t(e)("wordFilter.activeCount",{count:q.value.length})),1)):R("",!0)])])])]),_:1},8,["title"])])):R("",!0),c.enableNodeNlpFeatures?(r(),U(N,{key:2,open:ne.value,"onUpdate:open":O[12]||(O[12]=ae=>ne.value=ae),title:t(e)("quotes.wordcloud.dict.promptTitle")},{body:B(()=>[a("div",_k,[a("p",wk,d(t(e)("quotes.wordcloud.dict.promptDescription")),1),a("div",$k,[p(K,{variant:"ghost",color:"neutral",onClick:xe},{default:B(()=>[le(d(t(e)("quotes.wordcloud.dict.promptLater")),1)]),_:1}),p(K,{color:"primary",loading:Z.value,onClick:O[11]||(O[11]=ae=>be("zh-TW"))},{default:B(()=>[le(d(t(e)("quotes.wordcloud.dict.promptDownload")),1)]),_:1},8,["loading"])])])]),_:1},8,["open","title"])):R("",!0),p(j1)])}}}),Sk={slots:{root:["relative inline-flex items-center","flex-wrap"],base:["rounded-md","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",item:'px-1.5 py-0.5 rounded-sm font-medium inline-flex items-center gap-0.5 ring ring-inset ring-accented bg-elevated text-default data-disabled:cursor-not-allowed data-disabled:opacity-75 wrap-anywhere data-[state="active"]:bg-accented',itemText:"",itemDelete:["inline-flex items-center rounded-xs text-dimmed hover:text-default hover:bg-accented/75 disabled:pointer-events-none","transition-colors"],itemDeleteIcon:"shrink-0",input:"flex-1 border-0 bg-transparent placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:"px-2 py-1 text-sm/4 gap-1",leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",item:"text-[10px]/3",itemDeleteIcon:"size-3"},sm:{base:"px-2.5 py-1.5 text-sm/4 gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",item:"text-[10px]/3",itemDeleteIcon:"size-3"},md:{base:"px-2.5 py-1.5 text-base/5 gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",item:"text-xs",itemDeleteIcon:"size-3.5"},lg:{base:"px-3 py-2 text-base/5 gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",item:"text-xs",itemDeleteIcon:"size-3.5"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",item:"text-sm",itemDeleteIcon:"size-4"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated has-focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated has-focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent has-focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 has-focus-visible:outline-3 has-focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 has-focus-visible:outline-3 has-focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 has-focus-visible:outline-3 has-focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 has-focus-visible:outline-3 has-focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 has-focus-visible:outline-3 has-focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 has-focus-visible:outline-3 has-focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 has-focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 has-focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 has-focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 has-focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 has-focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 has-focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 has-focus-visible:outline-3 has-focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 has-focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},Ik=Object.assign({inheritAttrs:!1},{__name:"InputTags",props:{as:{type:null,required:!1},placeholder:{type:String,required:!1},maxLength:{type:Number,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},deleteIcon:{type:null,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},modelValue:{type:[Array,null],required:!1},defaultValue:{type:Array,required:!1},addOnPaste:{type:Boolean,required:!1},addOnTab:{type:Boolean,required:!1},addOnBlur:{type:Boolean,required:!1},duplicate:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},delimiter:{type:null,required:!1},max:{type:Number,required:!1},id:{type:String,required:!1},convertValue:{type:Function,required:!1},displayValue:{type:Function,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:["change","blur","focus","update:modelValue","invalid","addTag","removeTag"],setup(i,{expose:l,emit:e}){const n=i,s=e,u=Qt(),o=Ca("inputTags",n),c=Ia(),g=rs(is(o,"as","addOnPaste","addOnTab","addOnBlur","duplicate","delimiter","max","convertValue","displayValue","required"),s),{emitFormBlur:h,emitFormFocus:f,emitFormChange:b,emitFormInput:y,size:k,color:x,id:_,name:C,highlight:$,disabled:S,ariaAttrs:T}=Sa(n),{orientation:v,size:w}=us(n),{isLeading:E,isTrailing:F,leadingIconName:D,trailingIconName:A}=Ta(o),I=M(()=>w.value||k.value),q=M(()=>$t({extend:$t(Sk),...c.ui?.inputTags||{}})({color:x.value??o.color,variant:o.variant,size:I?.value??o.size,loading:o.loading,highlight:$.value??o.highlight,fixed:o.fixed,leading:E.value||!!o.avatar||!!u.leading,trailing:F.value||!!u.trailing,fieldGroup:v.value})),Y=At("inputRef");function G(){o.autofocus&&Y.value?.$el?.focus()}Re(()=>{setTimeout(()=>{G()},o.autofocusDelay)});function Z(H){if(cs(o.modelValue)===H)return;const W=new Event("change",{target:{value:H}});s("change",W),b(),y()}function ce(H){s("blur",H),h()}function ne(H){s("focus",H),f()}return l({inputRef:We(()=>Y.value?.$el)}),(H,W)=>(r(),U(t($l),ze({id:t(_),"model-value":t(o).modelValue,"default-value":t(o).defaultValue,"data-slot":"root",class:q.value.root({class:[q.value.base({class:t(o).ui?.base}),t(o).ui?.root,t(o).class]})},t(g),{name:t(C),disabled:t(S),"onUpdate:modelValue":Z}),{default:B(({modelValue:re})=>[(r(!0),m(ie,null,pe(re,(ve,he)=>(r(),U(t(Ml),{key:he,value:ve,"data-slot":"item",class:X(q.value.item({class:[t(o).ui?.item]}))},{default:B(()=>[p(t(Ll),{"data-slot":"itemText",class:X(q.value.itemText({class:[t(o).ui?.itemText]}))},{default:B(()=>[u["item-text"]?ye(H.$slots,"item-text",{key:0,item:ve,index:he,ui:q.value}):R("",!0)]),_:2},1032,["class"]),p(t(zl),{"data-slot":"itemDelete",class:X(q.value.itemDelete({class:[t(o).ui?.itemDelete]})),disabled:t(S)},{default:B(()=>[ye(H.$slots,"item-delete",{item:ve,index:he,ui:q.value},()=>[p(_e,{name:t(o).deleteIcon||t(c).ui.icons.close,"data-slot":"itemDeleteIcon",class:X(q.value.itemDeleteIcon({class:[t(o).ui?.itemDeleteIcon]}))},null,8,["name","class"])])]),_:2},1032,["class","disabled"])]),_:2},1032,["value","class"]))),128)),p(t(Sl),ze({ref_key:"inputRef",ref:Y},{...H.$attrs,...t(T)},{placeholder:t(o).placeholder,"max-length":t(o).maxLength,"data-slot":"input",class:q.value.input({class:t(o).ui?.input}),onBlur:ce,onFocus:ne}),null,16,["placeholder","max-length","class"]),ye(H.$slots,"default",{ui:q.value}),t(E)||t(o).avatar||u.leading?(r(),m("span",{key:0,"data-slot":"leading",class:X(q.value.leading({class:t(o).ui?.leading}))},[ye(H.$slots,"leading",{ui:q.value},()=>[t(E)&&t(D)?(r(),U(_e,{key:0,name:t(D),"data-slot":"leadingIcon",class:X(q.value.leadingIcon({class:t(o).ui?.leadingIcon}))},null,8,["name","class"])):t(o).avatar?(r(),U(Ht,ze({key:1,size:t(o).ui?.leadingAvatarSize||q.value.leadingAvatarSize()},t(o).avatar,{"data-slot":"leadingAvatar",class:q.value.leadingAvatar({class:t(o).ui?.leadingAvatar})}),null,16,["size","class"])):R("",!0)])],2)):R("",!0),t(F)||u.trailing?(r(),m("span",{key:1,"data-slot":"trailing",class:X(q.value.trailing({class:t(o).ui?.trailing}))},[ye(H.$slots,"trailing",{ui:q.value},()=>[t(A)?(r(),U(_e,{key:0,name:t(A),"data-slot":"trailingIcon",class:X(q.value.trailingIcon({class:t(o).ui?.trailingIcon}))},null,8,["name","class"])):R("",!0)])],2)):R("",!0)]),_:3},16,["id","model-value","default-value","class","name","disabled"]))}}),Tk={class:"flex items-center justify-between gap-3"},Mk={class:"flex items-center gap-2"},Ak={class:"text-sm font-medium text-gray-900 dark:text-white"},zk={class:"text-xs text-gray-500 dark:text-gray-400"},qk=ue({__name:"OwnerEntryCard",props:{sessionId:{},members:{},chatType:{}},setup(i){const{t:l}=we(),e=Dn(),n=i,s=z(!1);function u(g){return g.groupNickname||g.accountName||g.platformId}const o=M(()=>{const g=e.currentSession?.ownerId;return g&&n.members.find(h=>h.platformId===g)||null}),c=M(()=>o.value?u(o.value):e.currentSession?.ownerId??"");return(g,h)=>{const f=_e,b=Ue;return r(),U(t(mt),{class:"w-150 p-3"},{default:B(()=>[a("div",Tk,[a("div",Mk,[a("div",{class:X(["flex h-8 w-8 items-center justify-center rounded-full bg-linear-to-br",i.chatType==="group"?"from-pink-400 to-pink-600":"from-purple-400 to-purple-600"])},[p(f,{name:"i-heroicons-user",class:"h-4 w-4 text-white"})],2),a("div",null,[a("h3",Ak,d(c.value?t(l)("members.ownerPrompt.currentOwner",{name:c.value}):t(l)("members.ownerPrompt.choose")),1),a("p",zk,d(t(l)("members.ownerPrompt.helper")),1)])]),p(b,{size:"sm",variant:c.value?"outline":"solid",color:"primary",onClick:h[0]||(h[0]=y=>s.value=!0)},{default:B(()=>[le(d(c.value?t(l)("members.ownerPrompt.change"):t(l)("members.ownerPrompt.choose")),1)]),_:1},8,["variant"])]),p(En,{modelValue:s.value,"onUpdate:modelValue":h[1]||(h[1]=y=>s.value=y),"session-id":i.sessionId,"chat-type":i.chatType},null,8,["modelValue","session-id","chat-type"])]),_:1})}}}),Lk={key:0,class:"mb-6"},Dk={class:"flex items-center gap-3"},Ek={class:"text-xl font-bold text-gray-900 dark:text-white"},Bk={class:"text-sm text-gray-500 dark:text-gray-400"},Fk={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Rk={key:0,class:"flex items-center gap-2"},Vk={class:"text-xs text-gray-500 dark:text-gray-400"},Ok={key:0,class:"flex flex-1 items-center justify-center"},Pk={key:1,class:"flex flex-1 flex-col items-center justify-center gap-3"},jk={class:"text-sm text-gray-500 dark:text-gray-400"},Nk={key:2,class:"flex flex-1 flex-col items-center justify-center"},Uk={class:"text-gray-500 dark:text-gray-400"},Wk={key:3,class:"min-h-0 flex-1 overflow-x-auto overflow-y-hidden"},Hk={key:0,"aria-hidden":"true"},Kk={class:"flex shrink-0 flex-col leading-none"},Yk={class:"flex shrink-0 flex-col leading-none"},Gk={class:"flex shrink-0 flex-col leading-none"},Qk={class:"inline-flex items-center gap-1.5"},Jk={class:"text-right"},Xk=["data-index","onClick"],Zk={key:0,class:"flex justify-center"},e_={class:"flex min-w-0 items-center gap-2.5"},t_={class:"min-w-0"},a_=["title"],s_=["title"],n_=["title"],o_={class:"text-right font-mono text-sm font-semibold tabular-nums text-gray-900 dark:text-white"},l_=["title"],r_={class:"flex justify-end gap-1"},i_={class:"p-6 text-center"},u_={class:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/30"},c_={class:"mb-2 text-lg font-semibold text-gray-900 dark:text-white"},d_={class:"mb-6 text-sm text-gray-500 dark:text-gray-400"},m_={class:"flex justify-center gap-3"},g_={class:"p-6 text-center"},p_={class:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/30"},h_={class:"mb-2 text-lg font-semibold text-gray-900 dark:text-white"},f_={class:"mb-6 text-sm text-gray-500 dark:text-gray-400"},v_={class:"flex justify-center gap-3"},y_={class:"p-6"},x_={class:"mb-4 flex items-center gap-3"},b_={class:"flex h-10 w-10 items-center justify-center rounded-full bg-amber-100 dark:bg-amber-900/30"},k_={class:"text-lg font-semibold text-gray-900 dark:text-white"},__={class:"mb-2 text-sm text-gray-600 dark:text-gray-400"},w_={class:"mb-6 text-xs text-amber-700 dark:text-amber-300"},$_={class:"flex justify-end gap-2"},C_=64,S_=ue({__name:"MemberList",props:{sessionId:{},showHeader:{type:Boolean,default:!0},chatType:{default:"group"}},emits:["data-changed"],setup(i,{emit:l}){const{t:e}=we(),n=Ke(),s=bt(),u=i,o=l,c=z([]),g=z(!1),h=z(!1),f=z(""),b=M(()=>jn(u.chatType,c.value.length)),y=M(()=>u.chatType==="group"?"":b.value?"member-table-grid--private":"member-table-grid--private-without-selection"),k=z(null),x=z(!1),_=z(!1),C=z(!1),$=z(!1),S=z(!1),{sortState:T,toggleSort:v,resetSort:w,isSortActive:E}=Bn({initialState:{field:"messageCount",direction:"desc"}}),F=z(new Set);let D=0;function A(V,K){const L=K instanceof Error?K:new Error(String(K));console.error(V,L),Pn(`${V} ${L.message}`,L.stack)}function I(V){return V.groupNickname||V.accountName||V.platformId}function q(V){return I(V).slice(0,1)}function Y(V){s.openChatRecordDrawer({sessionId:u.sessionId,memberId:V.id,memberName:I(V)})}const G=M(()=>Nn(c.value,f.value,T.value)),{selectedIds:Z,setSelection:ce,clearSelection:ne,handleRowClick:H,handleRowMouseDown:W}=Fn({rows:G,getRowId:V=>V.id}),re=M(()=>c.value.filter(V=>Z.value.has(V.id))),ve=M(()=>re.value.length===2),he=M(()=>re.value.reduce((V,K)=>V+K.messageCount,0));function ee(V,K,L){b.value&&H(V,K,L)}function te(V){b.value&&W(V)}const j=M(()=>{if(re.value.length!==2)return null;const[V,K]=re.value;return K.messageCount>V.messageCount||K.messageCount===V.messageCount&&K.id<V.id?{primary:K,secondary:V}:{primary:V,secondary:K}});function de(V,K){return E(V,K)?"text-primary-500 dark:text-primary-400":"text-gray-300 dark:text-gray-600"}const be=z(null),xe=Rn(M(()=>({count:G.value.length,getScrollElement:()=>be.value,estimateSize:()=>C_,overscan:8,getItemKey:V=>G.value[V]?.id??V}))),oe=M(()=>xe.value.getVirtualItems().map(V=>({virtualItem:V,member:G.value[V.index]}))),Q=M(()=>xe.value.getTotalSize());function J(V){V instanceof HTMLElement&&xe.value.measureElement(V)}async function ge(){await De(),be.value?.scrollTo({top:0}),xe.value.measure()}async function ke(){const V=u.sessionId;if(!V)return;const K=++D;g.value=!0,h.value=!1;try{const L=await n.getMembers(V);if(K!==D||V!==u.sessionId)return;c.value=L,await De(),xe.value.measure()}catch(L){K===D&&(h.value=!0),A("Failed to load member list:",L)}finally{K===D&&(g.value=!1)}}function $e(V,K){const L=new Set(F.value);K?L.add(V):L.delete(V),F.value=L}async function Le(V,K){const L=u.sessionId,P=JSON.parse(JSON.stringify(K)),N=JSON.stringify(V.aliases),ae=JSON.stringify(P);if(N!==ae){$e(V.id,!0);try{if(await n.updateMemberAliases(L,V.id,P)&&L===u.sessionId){const Ve=c.value.findIndex(qe=>qe.id===V.id);Ve!==-1&&(c.value[Ve]={...c.value[Ve],aliases:P},await De(),xe.value.measure())}}catch(se){A("Failed to save member aliases:",se)}finally{$e(V.id,!1)}}}function Be(V){k.value=V}function Te(){k.value=null}async function Pe(){if(k.value){x.value=!0;try{const V=k.value.id;if(await n.deleteMember(u.sessionId,V)){const L=new Set(Z.value);L.delete(V),ce(L),await ke(),o("data-changed")}}catch(V){A("Failed to delete member:",V)}finally{x.value=!1,k.value=null}}}function je(){Z.value.size!==0&&(_.value=!0)}async function Se(){const V=u.sessionId,K=Array.from(Z.value);if(K.length!==0){C.value=!0;try{await n.deleteMembers(V,K)&&V===u.sessionId&&(_.value=!1,ne(),await ke(),o("data-changed"))}catch(L){A("Failed to delete selected members:",L)}finally{C.value=!1}}}function me(){ve.value&&($.value=!0)}async function O(){if(j.value){S.value=!0;try{await n.mergeMembers(u.sessionId,j.value.primary.id,j.value.secondary.id)&&($.value=!1,ne(),await ke(),o("data-changed"))}catch(V){A("Failed to merge members:",V)}finally{S.value=!1}}}return fe([f,T],ge),fe(b,V=>{V||ne()}),fe(()=>u.sessionId,()=>{D+=1,c.value=[],h.value=!1,F.value=new Set,f.value="",w(),ne(),ge(),ke()},{immediate:!0}),tt(()=>{D+=1}),(V,K)=>{const L=Ue,P=Bt,N=_e,ae=St,se=_a,Ve=Ik,qe=Xe;return r(),m("div",{class:X(["main-content",u.showHeader?"max-w-5xl p-6":"flex h-full max-w-none flex-col overflow-hidden p-4"])},[u.showHeader?(r(),m("div",Lk,[a("div",Dk,[a("div",null,[a("h2",Ek,d(t(e)(u.chatType==="private"?"members.private.title":"members.list.title")),1),a("p",Bk,d(t(e)(u.chatType==="private"?"members.private.description":"members.list.description",{count:c.value.length})),1)])])])):R("",!0),p(qk,{class:"mb-6","session-id":i.sessionId,members:c.value,"chat-type":u.chatType},null,8,["session-id","members","chat-type"]),a("div",Fk,[p(P,{modelValue:f.value,"onUpdate:modelValue":K[1]||(K[1]=Me=>f.value=Me),placeholder:t(e)("members.list.searchPlaceholder"),icon:"i-heroicons-magnifying-glass",class:"w-full md:w-100"},Vn({_:2},[f.value?{name:"trailing",fn:B(()=>[p(L,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs",onClick:K[0]||(K[0]=Me=>f.value="")})]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),b.value?(r(),m("div",Rk,[g.value&&c.value.length>0?(r(),U(N,{key:0,name:"i-heroicons-arrow-path",class:"h-4 w-4 animate-spin text-primary-500"})):R("",!0),a("span",Vk,d(t(e)("members.list.selectedCount",{count:t(Z).size})),1),p(L,{icon:"i-heroicons-link",size:"sm",color:"primary",disabled:!ve.value,onClick:me},{default:B(()=>[le(d(t(e)("members.list.mergeSelected")),1)]),_:1},8,["disabled"]),p(L,{icon:"i-heroicons-trash",size:"sm",color:"error",variant:"outline",disabled:t(Z).size===0,onClick:je},{default:B(()=>[le(d(t(e)("members.list.deleteSelected")),1)]),_:1},8,["disabled"])])):R("",!0)]),a("div",{class:X(["flex min-h-[240px] flex-col overflow-hidden rounded-lg border border-gray-200/60 bg-card-bg dark:border-white/5 dark:bg-card-dark",u.showHeader?"h-[500px]":"min-h-0 flex-1"])},[g.value&&c.value.length===0?(r(),m("div",Ok,[p(N,{name:"i-heroicons-arrow-path",class:"h-8 w-8 animate-spin text-primary-500"})])):h.value&&c.value.length===0?(r(),m("div",Pk,[p(N,{name:"i-heroicons-exclamation-circle",class:"h-10 w-10 text-red-400"}),a("p",jk,d(t(e)("members.list.loadError")),1),p(L,{size:"sm",variant:"outline",icon:"i-heroicons-arrow-path",onClick:ke},{default:B(()=>[le(d(t(e)("common.retry")),1)]),_:1})])):G.value.length===0?(r(),m("div",Nk,[p(N,{name:"i-heroicons-user-group",class:"mb-3 h-12 w-12 text-gray-300 dark:text-gray-600"}),a("p",Uk,d(f.value?t(e)("members.list.noMatch"):t(e)("members.list.empty")),1)])):(r(),m("div",Wk,[a("div",{class:X(["flex h-full flex-col",u.chatType==="private"?"min-w-[920px]":"min-w-[1120px]"])},[a("div",{class:X(["member-table-grid shrink-0 border-b border-gray-200 bg-gray-50 px-3 py-2 text-xs font-medium text-gray-500 dark:border-white/5 dark:bg-page-dark/80 dark:text-gray-400",y.value])},[b.value?(r(),m("span",Hk)):R("",!0),a("span",null,d(t(e)("members.list.table.accountName")),1),u.chatType==="group"?(r(),m("button",{key:1,type:"button",class:"flex items-center justify-start gap-1.5 text-left transition-colors hover:text-gray-700 dark:hover:text-gray-200",onClick:K[2]||(K[2]=Me=>t(v)("groupNickname"))},[le(d(t(e)("members.list.table.groupNickname"))+" ",1),a("span",Kk,[p(N,{name:"i-heroicons-chevron-up",class:X(["h-2.5 w-2.5",de("groupNickname","asc")])},null,8,["class"]),p(N,{name:"i-heroicons-chevron-down",class:X(["-mt-0.5 h-2.5 w-2.5",de("groupNickname","desc")])},null,8,["class"])])])):R("",!0),a("button",{type:"button",class:"flex items-center justify-end gap-1.5 text-right transition-colors hover:text-gray-700 dark:hover:text-gray-200",onClick:K[3]||(K[3]=Me=>t(v)("messageCount"))},[le(d(t(e)("members.list.table.messageCount"))+" ",1),a("span",Yk,[p(N,{name:"i-heroicons-chevron-up",class:X(["h-2.5 w-2.5",de("messageCount","asc")])},null,8,["class"]),p(N,{name:"i-heroicons-chevron-down",class:X(["-mt-0.5 h-2.5 w-2.5",de("messageCount","desc")])},null,8,["class"])])]),a("button",{type:"button",class:"flex items-center justify-end gap-1.5 text-right transition-colors hover:text-gray-700 dark:hover:text-gray-200",onClick:K[4]||(K[4]=Me=>t(v)("lastMessageTs"))},[le(d(t(e)("members.list.table.lastMessageTime"))+" ",1),a("span",Gk,[p(N,{name:"i-heroicons-chevron-up",class:X(["h-2.5 w-2.5",de("lastMessageTs","asc")])},null,8,["class"]),p(N,{name:"i-heroicons-chevron-down",class:X(["-mt-0.5 h-2.5 w-2.5",de("lastMessageTs","desc")])},null,8,["class"])])]),a("span",Qk,[a("span",null,d(t(e)("members.list.table.customAlias")),1),p(ae,{text:t(e)("members.list.tip"),popper:{placement:"top"}},{default:B(()=>[p(N,{name:"i-heroicons-question-mark-circle",class:"h-4 w-4 text-gray-400 dark:text-gray-500"})]),_:1},8,["text"])]),a("span",Jk,d(t(e)("members.list.table.actions")),1)],2),a("div",{ref_key:"listScrollRef",ref:be,class:"min-h-0 flex-1 overflow-y-auto"},[a("div",{class:"relative",style:et({height:`${Q.value}px`})},[(r(!0),m(ie,null,pe(oe.value,({virtualItem:Me,member:Fe})=>(r(),m("div",{key:String(Me.key),ref_for:!0,ref:J,"data-index":Me.index,class:X(["member-table-grid absolute left-0 top-0 w-full min-h-16 border-b border-gray-100/80 px-3 py-2 transition-colors hover:bg-gray-50 dark:border-white/5 dark:hover:bg-gray-800/30",[y.value,b.value?"cursor-pointer":"",b.value&&t(Z).has(Fe.id)?"bg-primary-50/70 dark:bg-primary-950/20":""]]),style:et({transform:`translateY(${Me.start}px)`}),onMousedown:te,onClick:st=>ee(Me.index,Fe.id,st)},[b.value?(r(),m("div",Zk,[p(se,{"model-value":t(Z).has(Fe.id),onClick:Oe(st=>ee(Me.index,Fe.id,st),["stop"])},null,8,["model-value","onClick"])])):R("",!0),a("div",e_,[p(On,{src:Fe.avatar,alt:I(Fe),text:q(Fe),"fallback-class":["flex h-8 w-8 items-center justify-center rounded-full text-[10px] font-bold","bg-primary-500 text-white"]},null,8,["src","alt","text"]),a("div",t_,[a("p",{class:"truncate text-sm font-medium text-gray-900 dark:text-white",title:Fe.accountName||"-"},d(Fe.accountName||"-"),9,a_),a("p",{class:"truncate text-xs text-gray-400 dark:text-gray-500",title:Fe.platformId},d(Fe.platformId),9,s_)])]),u.chatType==="group"?(r(),m("p",{key:1,class:X(["truncate text-sm text-gray-700 dark:text-gray-300",Fe.groupNickname?"font-medium":"text-gray-400 dark:text-gray-500"]),title:Fe.groupNickname||"-"},d(Fe.groupNickname||"-"),11,n_)):R("",!0),a("span",o_,d(Fe.messageCount.toLocaleString()),1),a("span",{class:"text-right font-mono text-xs tabular-nums text-gray-600 dark:text-gray-400",title:Fe.lastMessageTs===null?"-":t(ja)(Fe.lastMessageTs)},d(Fe.lastMessageTs===null?"-":t(ja)(Fe.lastMessageTs)),9,l_),p(Ve,{"model-value":Fe.aliases,placeholder:t(e)("members.list.aliasPlaceholder"),loading:F.value.has(Fe.id),size:"xs",class:"w-full",onClick:K[5]||(K[5]=Oe(()=>{},["stop"])),"onUpdate:modelValue":st=>Le(Fe,st)},null,8,["model-value","placeholder","loading","onUpdate:modelValue"]),a("div",r_,[p(L,{icon:"i-heroicons-chat-bubble-left-ellipsis",size:"xs",color:"neutral",variant:"ghost",title:t(e)("common.viewChatRecords"),onClick:Oe(st=>Y(Fe),["stop"])},null,8,["title","onClick"]),p(L,{icon:"i-heroicons-trash",size:"xs",color:"error",variant:"ghost",title:t(e)("members.list.delete"),onClick:Oe(st=>Be(Fe),["stop"])},null,8,["title","onClick"])])],46,Xk))),128))],4)],512)],2)]))],2),p(qe,{open:!!k.value,ui:{content:"max-w-sm"},"onUpdate:open":K[6]||(K[6]=Me=>k.value=null)},{content:B(()=>[a("div",i_,[a("div",u_,[p(N,{name:"i-heroicons-exclamation-triangle",class:"h-7 w-7 text-red-500"})]),a("h3",c_,d(t(e)("members.list.modal.title")),1),a("p",d_,d(t(e)("members.list.modal.content",{name:k.value?I(k.value):"",count:k.value?.messageCount.toLocaleString()})),1),a("div",m_,[p(L,{variant:"outline",onClick:Te},{default:B(()=>[le(d(t(e)("members.list.modal.cancel")),1)]),_:1}),p(L,{color:"error",loading:x.value,onClick:Pe},{default:B(()=>[le(d(t(e)("members.list.modal.confirm")),1)]),_:1},8,["loading"])])])]),_:1},8,["open"]),p(qe,{open:_.value,ui:{content:"max-w-sm"},"onUpdate:open":K[8]||(K[8]=Me=>_.value=Me)},{content:B(()=>[a("div",g_,[a("div",p_,[p(N,{name:"i-heroicons-exclamation-triangle",class:"h-7 w-7 text-red-500"})]),a("h3",h_,d(t(e)("members.list.batchDeleteModal.title")),1),a("p",f_,d(t(e)("members.list.batchDeleteModal.content",{count:re.value.length,messageCount:he.value.toLocaleString()})),1),a("div",v_,[p(L,{variant:"outline",disabled:C.value,onClick:K[7]||(K[7]=Me=>_.value=!1)},{default:B(()=>[le(d(t(e)("members.list.modal.cancel")),1)]),_:1},8,["disabled"]),p(L,{color:"error",loading:C.value,onClick:Se},{default:B(()=>[le(d(t(e)("members.list.modal.confirm")),1)]),_:1},8,["loading"])])])]),_:1},8,["open"]),p(qe,{open:$.value,ui:{content:"max-w-md"},"onUpdate:open":K[10]||(K[10]=Me=>$.value=Me)},{content:B(()=>[a("div",y_,[a("div",x_,[a("div",b_,[p(N,{name:"i-heroicons-link",class:"h-5 w-5 text-amber-600 dark:text-amber-400"})]),a("h3",k_,d(t(e)("members.list.mergeModal.title")),1)]),a("p",__,d(t(e)("members.list.mergeModal.content",{source:j.value?I(j.value.secondary):"",sourceCount:j.value?j.value.secondary.messageCount.toLocaleString():"0",target:j.value?I(j.value.primary):"",targetCount:j.value?j.value.primary.messageCount.toLocaleString():"0"})),1),a("p",w_,d(t(e)("members.list.mergeModal.hint")),1),a("div",$_,[p(L,{variant:"outline",disabled:S.value,onClick:K[9]||(K[9]=Me=>$.value=!1)},{default:B(()=>[le(d(t(e)("members.list.mergeModal.cancel")),1)]),_:1},8,["disabled"]),p(L,{color:"primary",loading:S.value,onClick:O},{default:B(()=>[le(d(t(e)("members.list.mergeModal.confirm")),1)]),_:1},8,["loading"])])])]),_:1},8,["open"])],2)}}}),e2=dt(S_,[["__scopeId","data-v-0754d30f"]]),I_={class:"mt-3 flex flex-col items-stretch gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-3"},T_={class:"max-w-full overflow-x-auto scrollbar-hide"},t2=ue({__name:"SessionAnalysisHeader",props:qt({title:{},avatar:{},icon:{},iconClass:{},tabs:{},currentSessionId:{},initialTimeState:{},showSessionActions:{type:Boolean,default:!0}},{activeTab:{required:!0},activeTabModifiers:{},timeRangeValue:{required:!0},timeRangeValueModifiers:{}}),emits:qt(["openIncrementalImport","openMemberManagement","openChatRecord","update:fullRange","update:availableYears"],["update:activeTab","update:timeRangeValue"]),setup(i,{emit:l}){const e=Wt(i,"activeTab"),n=Wt(i,"timeRangeValue"),s=i,u=l,{t:o}=we(),c=bt(),g=M(()=>!["ai-chat","memory","lab","debug"].includes(e.value)),h=M(()=>s.tabs.map(f=>({id:f.id,label:o(f.labelKey),icon:f.icon})));return(f,b)=>{const y=Ue,k=St;return r(),U(so,{title:i.title,avatar:i.avatar,size:"compact",icon:i.icon,"icon-class":i.iconClass},{actions:B(()=>[i.showSessionActions&&t(c).toolsPanelPosition==="header"?(r(),m(ie,{key:0},[p(k,{text:t(o)("analysis.tooltip.viewChatRecord")},{default:B(()=>[p(y,{icon:"i-heroicons-chat-bubble-bottom-center-text",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[0]||(b[0]=x=>u("openChatRecord"))})]),_:1},8,["text"]),p(k,{text:t(o)("analysis.tooltip.incrementalImport")},{default:B(()=>[p(y,{icon:"i-heroicons-plus-circle",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[1]||(b[1]=x=>u("openIncrementalImport"))})]),_:1},8,["text"]),p(k,{text:t(o)("analysis.tooltip.memberManagement")},{default:B(()=>[p(y,{icon:"i-heroicons-user-group",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[2]||(b[2]=x=>u("openMemberManagement"))})]),_:1},8,["text"]),p(Lt,{color:"gray"}),p(k,{text:t(o)("analysis.tooltip.more")},{default:B(()=>[p(y,{"data-tools-panel-trigger":"",icon:"i-heroicons-ellipsis-horizontal",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[3]||(b[3]=x=>t(c).toggleToolsPanelOpen())})]),_:1},8,["text"])],64)):i.showSessionActions?(r(),U(Lt,{key:1,color:"gray"})):R("",!0)]),default:B(()=>[a("div",I_,[p(t(Un),{modelValue:e.value,"onUpdate:modelValue":b[4]||(b[4]=x=>e.value=x),class:"min-w-0 shrink",items:h.value},null,8,["modelValue","items"]),a("div",T_,[p(ao,{modelValue:n.value,"onUpdate:modelValue":b[5]||(b[5]=x=>n.value=x),"session-id":i.currentSessionId??void 0,visible:g.value,"initial-state":i.initialTimeState,size:"sm","onUpdate:fullRange":b[6]||(b[6]=x=>u("update:fullRange",x)),"onUpdate:availableYears":b[7]||(b[7]=x=>u("update:availableYears",x))},null,8,["modelValue","session-id","visible","initial-state"])])])]),_:1},8,["title","avatar","icon","icon-class"])}}}),M_={class:"space-y-4 p-5"},A_={class:"flex items-center gap-2"},z_={class:"text-base font-semibold text-gray-900 dark:text-white"},q_={key:0,class:"flex items-center gap-2 text-sm text-gray-400"},L_={class:"rounded-lg border border-gray-200 bg-gray-50 p-3 text-sm dark:border-gray-700 dark:bg-gray-800/50"},D_={class:"flex items-center justify-between"},E_={class:"text-gray-500"},B_={class:"font-medium text-gray-800 dark:text-gray-200"},F_={key:0,class:"mt-1 flex items-center justify-between"},R_={class:"text-gray-500"},V_={class:"text-gray-700 dark:text-gray-300"},O_={key:1,class:"mt-2"},P_={class:"flex items-center justify-between text-xs text-gray-500"},j_={class:"mt-1 h-1.5 w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},N_={key:2,class:"mt-1 text-xs text-red-500"},U_={class:"text-sm text-gray-600 dark:text-gray-400"},W_={key:0,class:"rounded border border-amber-200 bg-amber-50 px-2 py-1.5 text-xs text-amber-700 dark:border-amber-800/50 dark:bg-amber-900/20 dark:text-amber-400"},H_={class:"flex justify-end gap-2"},K_={class:"text-xs text-gray-400"},Y_={class:"flex flex-wrap justify-end gap-2"},Ne="settings.ai.semanticIndex",a2=ue({__name:"SemanticIndexSessionModal",props:{modelValue:{type:Boolean},sessionId:{},messageCount:{}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,n=l,{t:s}=we(),u=Wn(),o=M({get:()=>e.modelValue,set:T=>n("update:modelValue",T)}),c=z(null),g=z(!1),h=z(!1),f=z(!1),b=M(()=>{const T=c.value;return!T||!T.enabled?s(`${Ne}.session.notEnabled`):T.needsRebuild?s(`${Ne}.state.needsRebuild`):T.running||T.queued||T.indexStatus==="running"?s(`${Ne}.state.building`):T.indexStatus==="completed"?s(`${Ne}.state.completed`):T.indexStatus==="failed"?s(`${Ne}.state.failed`):T.indexStatus==="paused"?s(`${Ne}.state.paused`):s(`${Ne}.state.pending`)}),y=M(()=>{const T=c.value;return!!T&&(T.running||T.queued||T.indexStatus==="running")}),k=M(()=>c.value&&c.value.totalMessages>0?Math.round(c.value.indexedMessages/c.value.totalMessages*100):0);let x=null;function _(){x&&(clearTimeout(x),x=null)}function C(){_(),x=setTimeout(async()=>{try{c.value=await u.status(e.sessionId)}catch(T){console.error("[semantic-index] poll status failed:",T)}y.value&&e.modelValue?C():_()},1500)}async function $(){h.value=!0;try{const[T,v]=await Promise.all([u.getConfig(),u.status(e.sessionId)]);g.value=T.config.enabled&&T.configured&&(T.config.mode==="local"?!!T.config.local.modelId:!!T.config.api?.baseUrl&&!!T.config.api?.model&&(!Hn(T.config.api?.baseUrl)||T.apiKeySet)),c.value=v}catch(T){console.error("[semantic-index] load session status failed:",T)}finally{h.value=!1}y.value&&C()}async function S(T){f.value=!0;try{c.value=await u[T](e.sessionId)}catch(v){console.error(`[semantic-index] ${T} failed:`,v)}finally{f.value=!1}y.value?C():_()}return fe(()=>e.modelValue,T=>{T?$():_()}),tt(_),(T,v)=>{const w=_e,E=Ue,F=Xe;return r(),U(F,{open:o.value,"onUpdate:open":v[10]||(v[10]=D=>o.value=D),ui:{content:"z-[101]",overlay:"z-[100]"}},{content:B(()=>[a("div",M_,[a("div",A_,[p(w,{name:"i-heroicons-circle-stack",class:"h-5 w-5 text-blue-500"}),a("h3",z_,d(t(s)(`${Ne}.title`)),1)]),h.value?(r(),m("div",q_,[p(w,{name:"i-heroicons-arrow-path",class:"h-4 w-4 animate-spin"}),le(" "+d(t(s)("common.loading")),1)])):(r(),m(ie,{key:1},[a("div",L_,[a("div",D_,[a("span",E_,d(t(s)(`${Ne}.session.statusLabel`)),1),a("span",B_,d(b.value),1)]),c.value?.enabled&&c.value.indexStatus==="completed"?(r(),m("div",F_,[a("span",R_,d(t(s)(`${Ne}.session.coverageLabel`)),1),a("span",V_,d(k.value)+"%",1)])):R("",!0),y.value?(r(),m("div",O_,[a("div",P_,[a("span",null,d(t(s)(`${Ne}.session.progressLabel`)),1),a("span",null,d(c.value?.indexedMessages??0)+" / "+d(c.value?.totalMessages??0)+" ("+d(k.value)+"%) ",1)]),a("div",j_,[a("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-500",style:et({width:`${k.value}%`})},null,4)])])):R("",!0),c.value?.error?(r(),m("p",N_,d(c.value.error),1)):R("",!0)]),c.value?.enabled?(r(),m(ie,{key:1},[a("p",K_,d(t(s)(`${Ne}.session.buildVsEnable`)),1),a("div",Y_,[y.value?(r(),m(ie,{key:0},[p(E,{variant:"soft",loading:f.value,onClick:v[2]||(v[2]=D=>S("pause"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.pause`)),1)]),_:1},8,["loading"]),p(E,{color:"error",variant:"soft",disabled:f.value,onClick:v[3]||(v[3]=D=>S("cancel"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.cancel`)),1)]),_:1},8,["disabled"])],64)):c.value?.indexStatus==="completed"&&!c.value?.needsRebuild?(r(),U(E,{key:1,variant:"soft",loading:f.value,onClick:v[4]||(v[4]=D=>S("rebuild"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.rebuild`)),1)]),_:1},8,["loading"])):c.value?.needsRebuild?(r(),U(E,{key:2,color:"primary",loading:f.value,onClick:v[5]||(v[5]=D=>S("rebuild"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.rebuild`)),1)]),_:1},8,["loading"])):c.value?.indexStatus==="failed"?(r(),U(E,{key:3,color:"primary",loading:f.value,onClick:v[6]||(v[6]=D=>S("build"))},{default:B(()=>[le(d(t(s)(`${Ne}.session.retry`)),1)]),_:1},8,["loading"])):c.value?.indexStatus==="paused"?(r(),U(E,{key:4,color:"primary",loading:f.value,onClick:v[7]||(v[7]=D=>S("build"))},{default:B(()=>[le(d(t(s)(`${Ne}.session.continue`)),1)]),_:1},8,["loading"])):(r(),U(E,{key:5,color:"primary",loading:f.value,onClick:v[8]||(v[8]=D=>S("build"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.build`)),1)]),_:1},8,["loading"])),p(E,{variant:"ghost",color:"neutral",disabled:f.value,onClick:v[9]||(v[9]=D=>S("remove"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.remove`)),1)]),_:1},8,["disabled"])])],64)):(r(),m(ie,{key:0},[a("p",U_,d(t(s)(`${Ne}.session.enableHint`)),1),g.value?R("",!0):(r(),m("p",W_,d(t(s)(`${Ne}.session.configFirst`)),1)),a("div",H_,[p(E,{variant:"ghost",onClick:v[0]||(v[0]=D=>o.value=!1)},{default:B(()=>[le(d(t(s)("common.close")),1)]),_:1}),p(E,{color:"primary",loading:f.value,disabled:!g.value,onClick:v[1]||(v[1]=D=>S("enable"))},{default:B(()=>[le(d(t(s)(`${Ne}.session.enable`)),1)]),_:1},8,["loading","disabled"])])],64))],64))])]),_:1},8,["open"])}}}),G_={class:"min-h-[200px]"},Q_={key:0,class:"space-y-4"},J_={class:"text-sm text-gray-600 dark:text-gray-400"},X_={class:"text-sm text-gray-600 dark:text-gray-400"},Z_={key:1,class:"flex flex-col items-center justify-center py-10"},ew={class:"text-gray-600 dark:text-gray-400"},tw={class:"mt-2 text-sm text-gray-500"},aw={key:2,class:"space-y-6"},sw={class:"rounded-lg bg-gray-50 p-4 dark:bg-gray-800"},nw={class:"mb-2 text-sm font-medium text-gray-700 dark:text-gray-300"},ow={class:"grid grid-cols-3 gap-4 text-center"},lw={class:"text-2xl font-bold text-gray-900 dark:text-white"},rw={class:"text-xs text-gray-500"},iw={class:"text-2xl font-bold text-green-600 dark:text-green-400"},uw={class:"text-xs text-gray-500"},cw={class:"text-2xl font-bold text-gray-400"},dw={class:"text-xs text-gray-500"},mw={key:0,class:"text-center text-sm text-amber-600 dark:text-amber-400"},gw={key:3,class:"flex flex-col items-center justify-center py-10"},pw={class:"text-gray-600 dark:text-gray-400"},hw={key:0,class:"mt-4 w-full max-w-xs"},fw={key:4,class:"flex flex-col items-center justify-center py-10"},vw={class:"text-lg font-medium text-gray-900 dark:text-white"},yw={class:"mt-2 text-sm text-gray-600 dark:text-gray-400"},xw={key:5,class:"flex flex-col items-center justify-center py-10"},bw={class:"text-lg font-medium text-gray-900 dark:text-white"},kw={class:"mt-2 text-sm text-red-600 dark:text-red-400"},_w={class:"flex w-full justify-end gap-2"},s2=ue({__name:"IncrementalImportModal",props:{modelValue:{type:Boolean},sessionId:{},sessionName:{}},emits:["update:modelValue","imported"],setup(i,{emit:l}){const e=i,n=l,{t:s}=we(),u=z("select"),o=z(null),c=z(null),g=z(null),h=z(null),f=z(null),b=z(null),y=M({get:()=>e.modelValue,set:w=>n("update:modelValue",w)});fe(y,w=>{w||k()});function k(){u.value="select",o.value=null,g.value=null,h.value=null,f.value=null,b.value=null}async function x({files:w,paths:E}){if(w.length>0)o.value={source:w[0],name:w[0].name};else{f.value=s("home.import.cannotReadPath");return}await C()}function _(){c.value?.openFileDialog()}async function C(){if(o.value){u.value="analyzing",f.value=null;try{const w=await Pa().analyzeIncrementalImport(e.sessionId,o.value.source);if(w.error){u.value="error",f.value=v(w.error);return}g.value={newMessageCount:w.newMessageCount,duplicateCount:w.duplicateCount,totalInFile:w.totalInFile},u.value="preview"}catch(w){u.value="error",f.value=String(w)}}}async function $(){if(o.value){u.value="importing",h.value={stage:"saving",progress:0,message:""};try{const w=await Pa().incrementalImport(e.sessionId,o.value.source,E=>{h.value=E});w.success?(b.value={newMessageCount:w.newMessageCount},u.value="done"):(u.value="error",f.value=v(w.error||"error.import_failed"))}catch(w){u.value="error",f.value=String(w)}}}function S(){b.value&&n("imported",b.value.newMessageCount),y.value=!1}function T(){u.value="select",o.value=null,g.value=null,f.value=null}function v(w){if(w.startsWith("error.")){const E=`home.import.errors.${w.slice(6)}`,F=s(E);return F!==E?F:w}return w}return(w,E)=>{const F=Kn,D=_e,A=Yn,I=Ue,q=Xe;return r(),U(q,{open:y.value,"onUpdate:open":E[1]||(E[1]=Y=>y.value=Y),title:t(s)("analysis.incremental.title")},{body:B(()=>[a("div",G_,[u.value==="select"?(r(),m("div",Q_,[a("p",J_,d(t(s)("analysis.incremental.description",{name:i.sessionName})),1),p(F,{color:"info",variant:"soft",icon:"i-heroicons-information-circle",description:t(s)("analysis.incremental.homeAutoImportHint")},null,8,["description"]),p(t(Gn),{ref_key:"dropZoneRef",ref:c,accept:[".json",".jsonl",".txt"],class:"w-full",onFiles:x},{default:B(({isDragOver:Y})=>[a("div",{class:X(["flex cursor-pointer flex-col items-center justify-center rounded-xl border-2 border-dashed px-6 py-10 transition-colors",Y?"border-pink-500 bg-pink-50/50 dark:border-pink-400 dark:bg-pink-500/10":"border-gray-300 hover:border-pink-400 dark:border-gray-600 dark:hover:border-pink-500"]),onClick:Oe(_,["stop"])},[p(D,{name:"i-heroicons-arrow-up-tray",class:"mb-3 h-10 w-10 text-gray-400"}),a("p",X_,d(Y?t(s)("home.import.dropHint"):t(s)("analysis.incremental.dropHint")),1)],2)]),_:1},512)])):u.value==="analyzing"?(r(),m("div",Z_,[p(D,{name:"i-heroicons-arrow-path",class:"mb-4 h-10 w-10 animate-spin text-pink-500"}),a("p",ew,d(t(s)("analysis.incremental.analyzing")),1),a("p",tw,d(o.value?.name),1)])):u.value==="preview"&&g.value?(r(),m("div",aw,[a("div",sw,[a("p",nw,d(o.value?.name),1),a("div",ow,[a("div",null,[a("p",lw,d(g.value.totalInFile.toLocaleString()),1),a("p",rw,d(t(s)("analysis.incremental.totalInFile")),1)]),a("div",null,[a("p",iw,d(g.value.newMessageCount.toLocaleString()),1),a("p",uw,d(t(s)("analysis.incremental.newMessages")),1)]),a("div",null,[a("p",cw,d(g.value.duplicateCount.toLocaleString()),1),a("p",dw,d(t(s)("analysis.incremental.duplicates")),1)])])]),g.value.newMessageCount===0?(r(),m("p",mw,[p(D,{name:"i-heroicons-exclamation-triangle",class:"mr-1 inline-block h-4 w-4"}),le(" "+d(t(s)("analysis.incremental.noNewMessages")),1)])):R("",!0)])):u.value==="importing"?(r(),m("div",gw,[p(D,{name:"i-heroicons-arrow-path",class:"mb-4 h-10 w-10 animate-spin text-pink-500"}),a("p",pw,d(t(s)("analysis.incremental.importing")),1),h.value?(r(),m("div",hw,[p(A,{value:h.value.progress,size:"sm"},null,8,["value"])])):R("",!0)])):u.value==="done"&&b.value?(r(),m("div",fw,[p(D,{name:"i-heroicons-check-circle",class:"mb-4 h-12 w-12 text-green-500"}),a("p",vw,d(t(s)("analysis.incremental.success")),1),a("p",yw,d(t(s)("analysis.incremental.successDetail",{count:b.value.newMessageCount})),1)])):u.value==="error"?(r(),m("div",xw,[p(D,{name:"i-heroicons-x-circle",class:"mb-4 h-12 w-12 text-red-500"}),a("p",bw,d(t(s)("analysis.incremental.failed")),1),a("p",kw,d(f.value),1)])):R("",!0)])]),footer:B(()=>[a("div",_w,[u.value==="select"?(r(),U(I,{key:0,color:"neutral",variant:"ghost",onClick:E[0]||(E[0]=Y=>y.value=!1)},{default:B(()=>[le(d(t(s)("common.cancel")),1)]),_:1})):u.value==="preview"?(r(),m(ie,{key:1},[p(I,{color:"neutral",variant:"ghost",onClick:T},{default:B(()=>[le(d(t(s)("common.back")),1)]),_:1}),p(I,{color:"primary",disabled:!g.value||g.value.newMessageCount===0,onClick:$},{default:B(()=>[le(d(t(s)("analysis.incremental.import",{count:g.value?.newMessageCount||0})),1)]),_:1},8,["disabled"])],64)):u.value==="done"||u.value==="error"?(r(),m(ie,{key:2},[u.value==="error"?(r(),U(I,{key:0,color:"neutral",variant:"ghost",onClick:T},{default:B(()=>[le(d(t(s)("common.retry")),1)]),_:1})):R("",!0),p(I,{color:"primary",onClick:S},{default:B(()=>[le(d(t(s)("common.done")),1)]),_:1})],64)):R("",!0)])]),_:1},8,["open","title"])}}}),ww={key:0,class:"fixed right-0 top-1/3"},$w={class:"no-capture flex flex-col items-center gap-0.5 rounded-l-lg border border-r-0 border-gray-200/60 bg-white py-1.5 shadow-sm dark:border-white/5 dark:bg-page-dark"},Cw=["onClick"],Sw={class:"mb-2 flex items-center justify-between"},Iw={class:"px-0.5 text-[9px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Tw={class:"flex flex-col gap-1.5"},Mw=["onClick"],Aw={class:"whitespace-nowrap"},n2=ue({__name:"ActionToolsPanel",emits:["openIncrementalImport","openSemanticIndex","openMemberManagement","openChatRecord","openMessageExport"],setup(i,{emit:l}){const{t:e}=we(),n=bt(),{isToolsPanelMini:s,toolsPanelPosition:u,isToolsPanelOpen:o}=ut(n),c=M(()=>u.value==="header"),g=M(()=>!c.value||o.value),h=z(null),f=l;function b(C){f(C),c.value&&(o.value=!1)}function y(C){if(!c.value||!o.value)return;const $=C.target;$ instanceof Element&&(h.value?.contains($)||$.closest("[data-tools-panel-trigger]")||(o.value=!1))}const k=[{event:"openIncrementalImport",icon:"i-heroicons-plus-circle",hoverColor:"group-hover:text-pink-500",miniHoverBg:"hover:text-pink-500",labelKey:"analysis.tooltip.incrementalImport"},{event:"openSemanticIndex",icon:"i-heroicons-circle-stack",hoverColor:"group-hover:text-indigo-500",miniHoverBg:"hover:text-indigo-500",labelKey:"analysis.tooltip.semanticIndex"},{event:"openMemberManagement",icon:"i-heroicons-user-group",hoverColor:"group-hover:text-purple-500",miniHoverBg:"hover:text-purple-500",labelKey:"analysis.tooltip.memberManagement"},{event:"openChatRecord",icon:"i-heroicons-chat-bubble-bottom-center-text",hoverColor:"group-hover:text-cyan-500",miniHoverBg:"hover:text-cyan-500",labelKey:"analysis.tooltip.viewChatRecord"},{event:"openMessageExport",icon:"i-heroicons-document-arrow-down",hoverColor:"group-hover:text-green-500",miniHoverBg:"hover:text-green-500",labelKey:"analysis.messageExport.title"}],x=[{event:"openSemanticIndex",icon:"i-heroicons-circle-stack",hoverColor:"group-hover:text-indigo-500",miniHoverBg:"hover:text-indigo-500",labelKey:"analysis.tooltip.semanticIndex"},{event:"openMessageExport",icon:"i-heroicons-document-arrow-down",hoverColor:"group-hover:text-green-500",miniHoverBg:"hover:text-green-500",labelKey:"analysis.messageExport.title"}],_=M(()=>c.value?x:k);return fe(u,()=>{o.value=!1}),Re(()=>{document.addEventListener("mousedown",y)}),Xt(()=>{document.removeEventListener("mousedown",y)}),(C,$)=>{const S=_e,T=St;return!c.value&&t(s)?(r(),m("div",ww,[a("div",$w,[(r(),m(ie,null,pe(k,v=>p(T,{key:v.event,text:t(e)(v.labelKey),popper:{placement:"left"}},{default:B(()=>[a("button",{class:X(["flex h-7 w-7 items-center justify-center rounded-md text-gray-400 transition-colors hover:bg-gray-100 dark:text-gray-500 dark:hover:bg-white/5",v.miniHoverBg]),onClick:w=>b(v.event)},[p(S,{name:v.icon,class:"h-3.5 w-3.5"},null,8,["name"])],10,Cw)]),_:2},1032,["text"])),64)),$[2]||($[2]=a("div",{class:"my-0.5 h-px w-4 bg-gray-200 dark:bg-gray-700"},null,-1)),p(T,{text:t(e)("analysis.toolsPanel.exitMini"),popper:{placement:"left"}},{default:B(()=>[a("button",{class:"flex h-7 w-7 items-center justify-center rounded-md text-gray-300 transition-colors hover:bg-gray-100 hover:text-gray-500 dark:text-gray-600 dark:hover:bg-white/5 dark:hover:text-gray-400",onClick:$[0]||($[0]=v=>t(n).toggleToolsPanelMini())},[p(S,{name:"i-heroicons-arrows-pointing-out",class:"h-3 w-3"})])]),_:1},8,["text"])])])):(r(),m("div",{key:1,class:X(["fixed right-0 z-40",c.value?"top-14":"top-1/3"])},[a("div",{class:X(["absolute right-0 top-0 transition-all duration-250 ease-in-out",g.value?"translate-x-0 opacity-100":"pointer-events-none translate-x-full opacity-0"])},[a("div",{ref_key:"panelRef",ref:h,class:"no-capture flex w-40 flex-col rounded-l-xl border border-r-0 border-gray-200/60 bg-white p-3 shadow-overlay dark:border-white/5 dark:bg-page-dark"},[a("div",Sw,[a("span",Iw,d(t(e)("analysis.overview.tools")),1),c.value?R("",!0):(r(),U(T,{key:0,text:t(e)("analysis.toolsPanel.miniMode"),popper:{placement:"left"}},{default:B(()=>[a("button",{class:"flex h-5 w-5 items-center justify-center rounded text-gray-300 transition-colors hover:text-gray-500 dark:text-gray-600 dark:hover:text-gray-400",onClick:$[1]||($[1]=v=>t(n).toggleToolsPanelMini())},[p(S,{name:"i-heroicons-arrows-pointing-in",class:"h-3 w-3"})])]),_:1},8,["text"]))]),a("div",Tw,[(r(!0),m(ie,null,pe(_.value,v=>(r(),m("button",{key:v.event,class:"group flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs font-medium text-gray-600 transition-all hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-white/5 dark:hover:text-white",onClick:w=>b(v.event)},[p(S,{name:v.icon,class:X(["h-3.5 w-3.5 text-gray-400 transition-colors dark:text-gray-500",v.hoverColor])},null,8,["name","class"]),a("span",Aw,d(t(e)(v.labelKey)),1)],8,Mw))),128))])],512)],2)],2))}}});export{Kw as C,Hw as D,Uw as L,e2 as M,na as _,Nw as a,Gw as b,Ze as c,ya as d,Qw as e,Cy as f,Jw as g,Xw as h,Zw as i,jw as j,t2 as k,n2 as l,a2 as m,s2 as n,Ww as o,Yw as u};
|
|
110
|
+
`);o.value=x}}finally{c.value=!1}}},{immediate:!0});async function f(){if(o.value.trim()){g.value=!0;try{if(h.value){const b=await u.createSkill(o.value);b.success&&b.id&&(s("created",b.id),s("update:open",!1))}else n.skillId&&(await u.updateSkill(n.skillId,o.value)).success&&(s("saved"),s("update:open",!1))}finally{g.value=!1}}}return(b,y)=>{const k=_e,x=Xe;return r(),U(x,{open:i.open,ui:{content:"sm:max-w-2xl z-50"},"onUpdate:open":y[3]||(y[3]=_=>s("update:open",_))},{content:B(()=>[a("div",Nf,[a("div",Uf,[a("h2",Wf,d(h.value?t(e)("ai.skill.config.createTitle"):t(e)("ai.skill.config.editTitle")),1),a("button",{class:"rounded-lg p-1.5 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300",onClick:y[0]||(y[0]=_=>s("update:open",!1))},[p(k,{name:"i-heroicons-x-mark",class:"h-5 w-5"})])]),a("p",Hf,d(t(e)("ai.skill.config.rawEditorHint")),1),c.value?(r(),m("div",Kf,[p(k,{name:"i-heroicons-arrow-path",class:"mr-2 h-5 w-5 animate-spin"})])):Qe((r(),m("textarea",{key:1,"onUpdate:modelValue":y[1]||(y[1]=_=>o.value=_),class:"h-[400px] w-full resize-none rounded-lg border border-gray-300 bg-gray-50 p-3 font-mono text-xs text-gray-900 focus:border-primary-500 focus:ring-1 focus:ring-primary-500 dark:border-gray-600 dark:bg-page-dark dark:text-gray-100",spellcheck:"false"},null,512)),[[ft,o.value]]),a("div",Yf,[a("button",{class:"rounded-lg px-4 py-2 text-sm text-gray-500 transition-colors hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800",onClick:y[2]||(y[2]=_=>s("update:open",!1))},d(t(e)("common.cancel")),1),a("button",{class:"rounded-lg bg-primary-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-primary-600 disabled:opacity-50",disabled:g.value||!o.value.trim(),onClick:f},d(h.value?t(e)("ai.skill.config.create"):t(e)("ai.skill.config.save")),9,Gf)])])]),_:1},8,["open"])}}}),Xf={key:0,class:"relative"},Zf={class:"relative flex flex-nowrap gap-2"},ev=["disabled"],tv=["disabled"],av={class:"inline-flex items-center gap-1"},sv={key:0,class:"absolute left-0 bottom-full z-20 mb-2 w-[320px] max-w-[calc(100vw-3rem)]"},nv={class:"mb-1.5 flex justify-start"},ov={class:"flex flex-wrap gap-2"},lv=["disabled","onClick"],ca="rounded-full ring-1 ring-inset ring-gray-200/80 bg-white/60 shadow-[0_2px_8px_-2px_rgba(0,0,0,0.05)] backdrop-blur-md px-3 py-1.5 text-xs text-gray-600 transition-all duration-300 hover:-translate-y-[1px] hover:ring-primary-300 hover:bg-white/90 hover:text-primary-600 hover:shadow-[0_4px_12px_-2px_rgba(0,0,0,0.08)] disabled:cursor-not-allowed disabled:opacity-50 dark:ring-gray-700/60 dark:bg-gray-800/60 dark:text-gray-300 dark:hover:ring-primary-500/50 dark:hover:bg-gray-800/90 dark:hover:text-primary-400",rv=ue({__name:"PresetQuestions",props:{questions:{},disabled:{type:Boolean},leadingActionLabel:{}},emits:["select","leadingAction","editQuestions"],setup(i,{emit:l}){const{t:e}=we(),n=i,s=l,u=z(!1);let o=null;function c(b){u.value=!1,s("select",b)}function g(){n.disabled||n.questions.length===0||(o&&(clearTimeout(o),o=null),u.value=!0)}function h(){o=setTimeout(()=>{u.value=!1},150)}function f(){u.value=!1,s("editQuestions")}return Xt(()=>{o&&clearTimeout(o)}),(b,y)=>{const k=_e;return i.leadingActionLabel||i.questions.length>0?(r(),m("div",Xf,[a("div",Zf,[i.leadingActionLabel?(r(),m("button",{key:0,class:X(ca),disabled:n.disabled,onClick:y[0]||(y[0]=x=>s("leadingAction"))},d(i.leadingActionLabel),9,ev)):R("",!0),i.questions.length>0?(r(),m("div",{key:1,class:"relative shrink-0",onMouseenter:g,onMouseleave:h},[a("button",{class:X([ca,u.value?"ring-primary-300 bg-white/90 text-primary-600 dark:ring-primary-500/50 dark:bg-gray-800/90 dark:text-primary-400":""]),disabled:n.disabled},[a("span",av,[p(k,{name:"i-heroicons-chat-bubble-left-ellipsis",class:"h-3.5 w-3.5"}),le(" "+d(t(e)("ai.chat.input.quickAsk")),1)])],10,tv),p(vt,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"opacity-0 translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 translate-y-2"},{default:B(()=>[u.value?(r(),m("div",sv,[a("div",nv,[a("button",{class:"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] text-gray-400 transition-colors hover:text-primary-500 dark:text-gray-500 dark:hover:text-primary-400",onClick:f},[p(k,{name:"i-heroicons-pencil-square",class:"h-3 w-3"}),le(" "+d(t(e)("ai.chat.input.editQuickAsk")),1)])]),a("div",ov,[(r(!0),m(ie,null,pe(i.questions,(x,_)=>(r(),m("button",{key:_,class:X(ca),disabled:n.disabled,onClick:C=>c(x)},d(x),9,lv))),128))])])):R("",!0)]),_:1})],32)):R("",!0)])])):R("",!0)}}}),iv=30;function uv(i,l){const e=z(null),n=z(!0),s=z(!1);function u(h=!1){setTimeout(()=>{e.value&&(h||n.value)&&(e.value.scrollTop=e.value.scrollHeight,n.value=!0,s.value=!1)},100)}function o(h){h.deltaY<0&&l.value&&(n.value=!1,s.value=!0)}function c(){if(!e.value)return;const{scrollTop:h,scrollHeight:f,clientHeight:b}=e.value;f-h-b<iv&&(n.value=!0,s.value=!1)}function g(){u(!0)}return fe(()=>{const h=i.value[i.value.length-1];return[i.value.length,h?.content,h?.contentBlocks?.length]},()=>u()),Re(()=>{e.value&&(e.value.addEventListener("scroll",c),e.value.addEventListener("wheel",o,{passive:!0})),i.value.length>0&&u(!0)}),Xt(()=>{e.value&&(e.value.removeEventListener("scroll",c),e.value.removeEventListener("wheel",o))}),{messagesContainer:e,showScrollToBottom:s,scrollToBottom:u,handleScrollToBottom:g}}function cv(){const i=Ft(),l=It(),e=z(!1),n=z(null),s=z(!1),u=z(!1),o=z(!1),c=z(!1),g=z(null);function h(w){n.value=w,s.value=!1,e.value=!0}function f(){u.value=!0}function b(w){n.value=w,s.value=!1,e.value=!0}function y(w){n.value=w,s.value=!0,e.value=!0}function k(){n.value=null,s.value=!1,e.value=!0}async function x(w){await i.loadAssistants(),await i.loadBuiltinCatalog()}async function _(){await i.loadAssistants()}function C(){o.value=!0}function $(w){g.value=w,c.value=!0}function S(){g.value=null,c.value=!0}async function T(){await l.loadSkills()}async function v(w){await l.loadSkills(),await l.loadBuiltinCatalog()}return{configModalVisible:e,configModalAssistantId:n,configModalReadonly:s,marketModalVisible:u,handleConfigureAssistant:h,handleOpenMarket:f,handleMarketConfigure:b,handleMarketViewConfig:y,handleCreateAssistant:k,handleAssistantCreated:x,handleAssistantConfigSaved:_,skillMarketModalVisible:o,skillConfigModalVisible:c,skillConfigModalSkillId:g,handleOpenSkillMarket:C,handleSkillMarketConfigure:$,handleCreateSkill:S,handleSkillConfigSaved:T,handleSkillCreated:v}}function dv(i){const l=[];let e=null;for(const n of i)n.role==="user"?(e&&l.push({user:e,assistant:null,standalone:null,id:e.id}),e=n):n.role==="assistant"?(l.push({user:e,assistant:n,standalone:null,id:e?.id||n.id}),e=null):(e&&(l.push({user:e,assistant:null,standalone:null,id:e.id}),e=null),l.push({user:null,assistant:null,standalone:n,id:n.id}));return e&&l.push({user:e,assistant:null,standalone:null,id:e.id}),l}const mv={class:"main-content flex h-full overflow-hidden"},gv={class:"flex h-full flex-1 overflow-hidden"},pv={class:"flex h-full flex-1"},hv={class:"relative flex min-w-[480px] flex-1 flex-col overflow-hidden"},fv={key:0,class:"flex items-center gap-1.5 px-3 py-1.5"},vv=["disabled"],yv={key:0,class:"flex w-full flex-col items-center justify-center animate-fade-in"},xv={key:0,class:"mb-3 text-center text-2xl font-semibold tracking-tight text-gray-800 dark:text-gray-100"},bv={class:"text-primary-600 dark:text-primary-400"},kv={key:1,class:"relative mb-8 w-full max-w-lg"},_v={class:"flex w-full justify-center"},wv={key:1,class:"qa-pair space-y-6 pb-4"},$v={key:1,class:"px-4 pb-2"},Cv={class:"mx-auto max-w-[740px]"},Sv={class:"px-4 pb-2"},Iv={class:"mx-auto max-w-[740px]"},Tv={key:0,class:"w-80 shrink-0 border-l border-gray-200 bg-gray-50/50 p-4 dark:border-gray-800 dark:bg-page-dark/50"},Mv=ue({__name:"ChatExplorer",props:{sessionId:{},sessionName:{},timeFilter:{},chatType:{}},setup(i,{expose:l}){const{t:e}=we(),n=nt(),s=Ma(),u=Ft(),o=It(),c=i,{messages:g,sourceMessages:h,currentKeywords:f,isLoadingSource:b,isAIThinking:y,currentAIChatId:k,currentToolStatus:x,toolsUsedInCurrentRound:_,sessionTokenUsage:C,agentStatus:$,selectedAssistantId:S,sendMessage:T,editMessageAndRegenerate:v,loadAIChat:w,startNewAIChat:E,loadMoreSourceMessages:F,updateMaxMessages:D,stopGeneration:A,selectAssistantForSession:I}=Rl(c.sessionId,c.sessionName,c.timeFilter,c.chatType??"group",s.locale),q=uv(g,y),{showScrollToBottom:Y,scrollToBottom:G,handleScrollToBottom:Z}=q,{configModalVisible:ce,configModalAssistantId:ne,configModalReadonly:H,marketModalVisible:W,skillMarketModalVisible:re,skillConfigModalVisible:ve,skillConfigModalSkillId:he,handleConfigureAssistant:ee,handleOpenMarket:te,handleMarketConfigure:j,handleMarketViewConfig:de,handleCreateAssistant:be,handleAssistantCreated:xe,handleAssistantConfigSaved:oe,handleOpenSkillMarket:Q,handleSkillMarketConfigure:J,handleCreateSkill:ge,handleSkillConfigSaved:ke,handleSkillCreated:$e}=cv(),Le=ka(),Be=z(0);fe(()=>k.value,async Ce=>{if(!Ce){Be.value=0;return}try{const Ie=await Ye().estimateContextTokens(Ce);Ie.success&&(Be.value=Ie.tokens)}catch{Be.value=0}},{immediate:!0});const Te=M(()=>u.selectedAssistant?.presetQuestions??[]),Pe=M(()=>c.chatType??"group"),je=z(!1),Se=z(!1),me=z(!0),O=z(void 0),V=z(null),K=z(null),L=z(null),P=z(!1),N=z(!1),ae=z(!1),se=M(()=>{const Ce=L.value?.name||e("ai.assistant.fallbackName");return e("ai.assistant.upgrade.backupName",{name:Ce})}),Ve=M(()=>dv(g.value));async function qe(){me.value=!0;try{Se.value=await $a().hasConfig()}catch(Ce){console.error("检查 LLM 配置失败:",Ce),Se.value=!1}finally{me.value=!1}}async function Me(){await qe(),Se.value&&await D()}l({refreshConfig:Me});const Fe=M(()=>{const Ce=u.selectedAssistant;if(!Ce)return{name:"",preview:""};const Ie=Ce.systemPrompt.replace(/#{1,6}\s+[^\n]*/g,"").replace(/\n+/g," ").replace(/\s+/g," ").trim();return{name:Ce.name,preview:Ie}}),st=M(()=>!!S.value&&g.value.length===0&&!y.value);function oa(){n.warn(e("ai.chat.backgroundTask.runningTitle"),{description:e("ai.chat.backgroundTask.runningDescription")})}function Ea(){n.warn(e("ai.chat.backgroundTask.blockedAction"))}function Cs(Ce){if(Ce!==S.value){if(!I(Ce)){Ea();return}o.activateSkill(null),E()}}async function Ss(Ce){const Ie=await T(Ce);!Ie.success&&Ie.reason==="busy"&&oa()}function Is(){const Ce=u.selectedAssistant?.id;Ce&&(O.value="presetQuestions",ee(Ce))}function Ts(Ce){ce.value=Ce,Ce||(O.value=void 0)}function Ms(){K.value?.openSkillSelector()}function As(){G(!0)}async function Ba(){const Ce=await u.checkDefaultAssistantUpgrade(s.locale);Ce&&(L.value=Ce,P.value=!0)}async function zs(){const Ce=L.value;if(!(!Ce||N.value||ae.value)){ae.value=!0;try{const Ie=await u.skipAssistantUpgrade(Ce);if(!Ie.success){n.fail(e("ai.assistant.upgrade.skipFailed"),{description:Ie.error||e("ai.assistant.toast.unknownError")});return}P.value=!1,L.value=null}finally{ae.value=!1}}}async function qs(){const Ce=L.value;if(!(!Ce||N.value||ae.value)){N.value=!0;try{const Ie=se.value,kt=await u.upgradeAssistantWithBackup(Ce,Ie);if(!kt.success){n.fail(e("ai.assistant.upgrade.failed"),{description:kt.error||e("ai.assistant.toast.unknownError")});return}P.value=!1,L.value=null,n.success(e("ai.assistant.upgrade.success"),{description:e("ai.assistant.upgrade.successDescription",{name:Ie})})}finally{N.value=!1}}}async function Ls(Ce){const Ie=await T(Ce.content,{mentionedMembers:Ce.mentionedMembers});if(!Ie.success){Ie.reason==="busy"&&oa();return}G(!0),V.value?.refresh()}async function Ds(Ce){const Ie=await v(Ce.messageId,Ce.content,{overwriteSubsequent:Ce.overwriteSubsequent});if(!Ie.success){Ie.reason==="busy"&&oa();return}G(!0),V.value?.refresh()}async function Es(Ce){if(k.value)try{const Ie=await Ye().forkAIChat(k.value,Ce);await w(Ie.id),V.value?.refresh(),G(!0),n.success(e("ai.chat.fork.success"))}catch(Ie){n.fail(e("ai.chat.fork.failed"),{description:String(Ie)})}}function Bs(){je.value=!je.value}async function Fs(){await F()}async function Rs(Ce){await w(Ce),G(!0)}function Vs(){if(y.value){Ea();return}E()}function Os(Ce){k.value===Ce&&E()}function Ps(){A()}return qe(),D(),Re(()=>{Ba()}),fe(()=>s.locale,()=>{Ba()}),fe(()=>Le.aiConfigVersion,async()=>{await Me()}),(Ce,Ie)=>{const kt=_e,js=St;return r(),m("div",mv,[p(zc,{ref_key:"conversationListRef",ref:V,"session-id":i.sessionId,"active-id":t(k),disabled:t(y),onSelect:Rs,onCreate:Vs,onDelete:Os},null,8,["session-id","active-id","disabled"]),a("div",gv,[a("div",pv,[a("div",hv,[t(g).length>0||t(y)?(r(),m("div",fv,[a("button",{class:X(["flex items-center gap-1 rounded-md px-1.5 py-1 text-xs text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",{"cursor-not-allowed opacity-50":t(y)||!t(u).selectedAssistant?.id}]),disabled:t(y)||!t(u).selectedAssistant?.id,onClick:Ie[0]||(Ie[0]=Ae=>t(ee)(t(u).selectedAssistant.id))},[p(kt,{name:"i-heroicons-sparkles",class:"h-3.5 w-3.5"}),a("span",null,d(t(u).selectedAssistant?.name||t(e)("ai.assistant.fallbackName")),1)],10,vv)])):R("",!0),a("div",{ref:t(q).messagesContainer,class:X(["relative min-h-0 flex-1 overflow-x-hidden overflow-y-auto p-4",{"p-0!":t(g).length===0&&!t(y)}])},[a("div",{class:X(["mx-auto max-w-3xl space-y-6",{"flex min-h-full flex-col justify-center px-4 pb-32 pt-4 space-y-0!":t(g).length===0&&!t(y),"px-4":t(g).length>0||t(y)}])},[t(g).length===0&&!t(y)?(r(),m("div",yv,[Fe.value.name?(r(),m("h2",xv,[le(d(t(e)("ai.assistant.selector.heroTitlePrefix","使用"))+" ",1),a("span",bv,d(Fe.value.name),1),le(" "+d(t(e)("ai.assistant.selector.heroTitleSuffix","开始对话")),1)])):R("",!0),st.value&&Fe.value.name?(r(),m("div",kv,[a("p",{class:"cursor-pointer pr-7 text-center text-sm leading-relaxed text-gray-500 transition-colors hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300 line-clamp-2",onClick:Ie[1]||(Ie[1]=Ae=>t(ee)(t(u).selectedAssistant.id))},[p(js,{text:t(e)("ai.assistant.config.systemPrompt","系统设定"),popper:{placement:"top"}},{default:B(()=>[le(d(Fe.value.preview),1)]),_:1},8,["text"])]),a("button",{type:"button",class:"absolute bottom-0 right-0 rounded-md p-0.5 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-200",onClick:Ie[2]||(Ie[2]=Oe(Ae=>t(ee)(t(u).selectedAssistant.id),["stop"]))},[p(kt,{name:"i-heroicons-pencil-square",class:"h-4 w-4"})])])):R("",!0),a("div",_v,[p(w0,{"chat-type":Pe.value,locale:t(s).locale,"selected-id":t(S),onSelect:Cs,onMarket:t(te)},null,8,["chat-type","locale","selected-id","onMarket"])])])):R("",!0),(r(!0),m(ie,null,pe(Ve.value,Ae=>(r(),m(ie,{key:Ae.id},[Ae.standalone?(r(),U(ua,{key:0,role:Ae.standalone.role,content:Ae.standalone.content,timestamp:Ae.standalone.timestamp},null,8,["role","content","timestamp"])):(r(),m("div",wv,[Ae.user&&(Ae.user.role==="user"||Ae.user.content)?(r(),U(ua,{key:0,role:Ae.user.role,"message-id":Ae.user.id,content:Ae.user.content,timestamp:Ae.user.timestamp,"is-streaming":Ae.user.isStreaming,"content-blocks":Ae.user.contentBlocks,editable:!t(y),onEdit:Ds},null,8,["role","message-id","content","timestamp","is-streaming","content-blocks","editable"])):R("",!0),Ae.assistant&&(Ae.assistant.content||Ae.assistant.contentBlocks&&Ae.assistant.contentBlocks.length>0)?(r(),U(ua,{key:1,role:Ae.assistant.role,"message-id":Ae.assistant.id,content:Ae.assistant.content,timestamp:Ae.assistant.timestamp,"is-streaming":Ae.assistant.isStreaming,"content-blocks":Ae.assistant.contentBlocks,"show-capture-button":!Ae.assistant.isStreaming,onFork:Es},null,8,["role","message-id","content","timestamp","is-streaming","content-blocks","show-capture-button"])):R("",!0)]))],64))),128)),t(y)&&!t(g)[t(g).length-1]?.content&&!(t(g)[t(g).length-1]?.contentBlocks?.length??0)?(r(),U(Gp,{key:1,"current-tool-status":t(x),"tools-used":t(_),"agent-status":t($)},null,8,["current-tool-status","tools-used","agent-status"])):R("",!0)],2)],2),p(vt,{name:"fade-up"},{default:B(()=>[t(Y)?(r(),m("button",{key:0,class:"absolute bottom-20 left-1/2 z-10 flex -translate-x-1/2 items-center gap-1.5 rounded-full bg-gray-800/90 px-3 py-1.5 text-xs text-white shadow-lg backdrop-blur-sm transition-all hover:bg-gray-700 dark:bg-gray-700/90 dark:hover:bg-gray-600",onClick:Ie[3]||(Ie[3]=(...Ae)=>t(Z)&&t(Z)(...Ae))},[p(kt,{name:"i-heroicons-arrow-down",class:"h-3.5 w-3.5"}),a("span",null,d(t(e)("ai.chat.scrollToBottom")),1)])):R("",!0)]),_:1}),t(g).length===0&&!t(y)?(r(),m("div",$v,[a("div",Cv,[p(rv,{questions:Te.value,"leading-action-label":t(e)("ai.chat.input.useSkill"),onSelect:Ss,onLeadingAction:Ms,onEditQuestions:Is},null,8,["questions","leading-action-label"])])])):R("",!0),a("div",Sv,[a("div",Iv,[p(Ep,{ref_key:"chatInputRef",ref:K,"session-id":i.sessionId,disabled:t(y),status:t(y)?"streaming":"ready","chat-type":Pe.value,onSend:Ls,onStop:Ps,onManageSkills:t(Q),onSkillActivated:As},null,8,["session-id","disabled","status","chat-type","onManageSkills"]),p(h0,{"session-token-usage":t(C),"agent-status":t($),"current-ai-chat-id":t(k),"current-messages":t(g),"fallback-title":i.sessionName,"estimated-context-tokens":Be.value},null,8,["session-token-usage","agent-status","current-ai-chat-id","current-messages","fallback-title","estimated-context-tokens"])])])])]),p(vt,{name:"slide-fade"},{default:B(()=>[t(h).length>0&&!je.value?(r(),m("div",Tv,[p(ed,{messages:t(h),keywords:t(f),"is-loading":t(b),"is-collapsed":je.value,class:"h-full",onToggle:Bs,onLoadMore:Fs},null,8,["messages","keywords","is-loading","is-collapsed"])])):R("",!0)]),_:1})]),p(gh,{open:t(ce),"assistant-id":t(ne),readonly:t(H),"scroll-to-section":O.value,"onUpdate:open":Ts,onSaved:t(oe),onCreated:t(xe)},null,8,["open","assistant-id","readonly","scroll-to-section","onSaved","onCreated"]),p(rf,{open:P.value,"backup-name":se.value,upgrading:N.value,skipping:ae.value,onSkip:zs,onConfirm:qs},null,8,["open","backup-name","upgrading","skipping"]),p(Gh,{open:t(W),"onUpdate:open":Ie[4]||(Ie[4]=Ae=>W.value=Ae),onConfigure:t(j),onViewConfig:t(de),onCreate:t(be)},null,8,["open","onConfigure","onViewConfig","onCreate"]),p(jf,{open:t(re),"onUpdate:open":Ie[5]||(Ie[5]=Ae=>re.value=Ae),onConfigure:t(J),onCreate:t(ge)},null,8,["open","onConfigure","onCreate"]),p(Jf,{open:t(ve),"skill-id":t(he),"onUpdate:open":Ie[6]||(Ie[6]=Ae=>ve.value=Ae),onSaved:t(ke),onCreated:t($e)},null,8,["open","skill-id","onSaved","onCreated"])])}}}),Kw=dt(Mv,[["__scopeId","data-v-3b042ff8"]]),da="__ALL__",Av=ue({__name:"UserSelect",props:{sessionId:{},modelValue:{}},emits:["update:modelValue"],setup(i,{emit:l}){const{t:e}=we(),n=i,s=l,u=z([]),o=z(!1),c=M({get:()=>n.modelValue===null?da:String(n.modelValue),set:f=>{s("update:modelValue",f===da?null:parseInt(f))}}),g=M(()=>{const f=[{value:da,label:e("common.userSelect.allMembers")}];return u.value.forEach(b=>{const y=b.groupNickname||b.accountName||b.platformId;f.push({value:String(b.id),label:`${y} (${b.messageCount})`})}),f});async function h(){if(n.sessionId){o.value=!0;try{const f=await Ke().getMembers(n.sessionId);u.value=f.sort((b,y)=>y.messageCount-b.messageCount)}catch(f){console.error("加载成员列表失败:",f)}finally{o.value=!1}}}return fe(()=>n.sessionId,()=>{s("update:modelValue",null),h()},{immediate:!0}),(f,b)=>{const y=Da;return r(),U(y,{modelValue:c.value,"onUpdate:modelValue":b[0]||(b[0]=k=>c.value=k),items:g.value,loading:o.value,virtualize:{estimateSize:32,overscan:10},"value-key":"value",class:"w-48"},null,8,["modelValue","items","loading"])}}}),zv=ue({__name:"EChartCalendar",props:{data:{},height:{default:180},year:{}},setup(i){ta([hs,fs,za,vs,aa]);const l=i,{t:e,locale:n}=we(),s=Zt(),u=z(null);let o=null;const c=M(()=>{if(l.year)return l.year;if(l.data.length===0)return new Date().getFullYear();const _=l.data.map(C=>parseInt(C.date.split("-")[0]));return Math.max(..._)}),g=M(()=>l.data.length===0?10:Math.max(...l.data.map(_=>_.value),1)),h=M(()=>l.data.map(_=>[_.date,_.value])),f={light:["#fee5e8","#fbb5c2","#f7758c","#ee4567"],dark:["#3d1f24","#6b2f3a","#a34557","#ee4567"]},b=M(()=>({tooltip:{trigger:"item",formatter:_=>{const C=_.data[0],$=_.data[1];return`${C}<br/>${e("views.message.calendarTooltipMessages")}: ${$}`}},visualMap:{min:0,max:g.value,calculable:!1,orient:"horizontal",left:"center",bottom:0,itemWidth:10,itemHeight:100,text:[`${g.value}`,"0"],inRange:{color:s.value?f.dark:f.light},textStyle:{color:s.value?"#9ca3af":"#6b7280",fontSize:10},show:!0},calendar:{top:30,left:40,cellSize:[13,13],range:String(c.value),itemStyle:{borderWidth:2,borderColor:s.value?"#1f2937":"#ffffff"},yearLabel:{show:!0,position:"top",color:s.value?"#9ca3af":"#6b7280",fontSize:12},monthLabel:{show:!0,color:s.value?"#9ca3af":"#6b7280",fontSize:10,nameMap:[e("common.month.jan"),e("common.month.feb"),e("common.month.mar"),e("common.month.apr"),e("common.month.may"),e("common.month.jun"),e("common.month.jul"),e("common.month.aug"),e("common.month.sep"),e("common.month.oct"),e("common.month.nov"),e("common.month.dec")]},dayLabel:{show:!0,firstDay:1,color:s.value?"#6b7280":"#9ca3af",fontSize:10,nameMap:[e("common.weekday.sun"),e("common.weekday.mon"),e("common.weekday.tue"),e("common.weekday.wed"),e("common.weekday.thu"),e("common.weekday.fri"),e("common.weekday.sat")]},splitLine:{show:!1}},series:[{type:"heatmap",coordinateSystem:"calendar",data:h.value}]}));function y(){u.value&&(o=sa(u.value,s.value?"dark":void 0,{renderer:"canvas"}),o.setOption({backgroundColor:"transparent",...b.value}))}function k(){o&&o.setOption({backgroundColor:"transparent",...b.value},{notMerge:!0})}function x(){o?.resize()}return fe([()=>l.data,s,n],()=>{k()}),fe(()=>l.year,()=>{k()}),Re(()=>{y(),window.addEventListener("resize",x)}),tt(()=>{window.removeEventListener("resize",x),o?.dispose()}),(_,C)=>(r(),m("div",{ref_key:"chartRef",ref:u,style:et({height:`${i.height}px`,width:"100%"})},null,4))}}),qv={class:"relative z-10 px-6 pt-8 pb-4 sm:px-8"},Lv={class:"flex items-center gap-6 sm:gap-10"},Dv={class:"min-w-0 flex-1"},Ev={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},Bv={key:0,class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},Fv={class:"mb-4 flex min-w-0 flex-wrap items-baseline gap-2"},Rv={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Vv={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},Ov={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Pv={key:1,class:"flex min-w-0 max-w-full flex-wrap items-center gap-x-1.5 gap-y-1.5"},jv={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Nv={class:"font-bold tabular-nums text-pink-500 dark:text-pink-400"},Uv={class:"flex shrink-0 flex-col items-center"},Wv={class:"mb-1 text-[10px] font-bold text-gray-500 dark:text-gray-400"},Hv={class:"relative z-10 px-6 pb-6 pt-4 sm:px-8"},Kv={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},Yv={class:"min-w-0 flex-1"},Gv={class:"flex items-center justify-between gap-1"},Qv={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},Jv={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},Xv={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},Zv={class:"flex items-center gap-1.5"},ey={class:"text-[9px] font-medium uppercase tracking-widest"},ty=ue({__name:"TypeProfileCard",props:{sessionId:{},messageTypes:{},textStats:{},timeFilter:{}},setup(i){ta([Jn,za,aa]);const{t:l}=we(),e=Zt(),n=i,s=M(()=>n.messageTypes.reduce((I,q)=>I+q.count,0)),u=M(()=>n.messageTypes.find(I=>I.type===gt.TEXT)?.count??0),o=M(()=>{if(s.value===0)return 0;const I=s.value-u.value;return Math.round(I/s.value*100)}),c=M(()=>n.textStats.textCount===0?0:Math.round(n.textStats.shortCount/n.textStats.textCount*100)),g=z({first:"",last:""});async function h(){if(n.sessionId)try{const I=await Ke().getDailyActivity(n.sessionId,n.timeFilter);if(I.length>0){const q=[...I].sort((Y,G)=>Y.date.localeCompare(G.date));g.value={first:Ee(q[0].date).format("YYYY/MM/DD"),last:Ee(q[q.length-1].date).format("YYYY/MM/DD")}}}catch{}}function f(I){return n.messageTypes.find(q=>q.type===I)?.count??0}const b=M(()=>[{label:l("views.message.typeCard.nonTextImage"),count:f(gt.IMAGE),unit:l("views.message.typeCard.unitImage")},{label:l("views.message.typeCard.nonTextEmoji"),count:f(gt.EMOJI),unit:l("views.message.typeCard.unitEmoji")},{label:l("views.message.typeCard.nonTextVoice"),count:f(gt.VOICE),unit:l("views.message.typeCard.unitVoice")},{label:l("views.message.typeCard.nonTextVideo"),count:f(gt.VIDEO),unit:l("views.message.typeCard.unitVideo")},{label:l("views.message.typeCard.nonTextFile"),count:f(gt.FILE),unit:l("views.message.typeCard.unitFile")},{label:l("views.message.typeCard.nonTextLink"),count:f(gt.LINK),unit:l("views.message.typeCard.unitLink")}].filter(I=>I.count>0)),y=z(30),k=z(0),x=z(!1),_=[{label:"20",value:20},{label:"30",value:30},{label:"50",value:50},{label:"80",value:80},{label:"100",value:100}],C=M({get:()=>y.value,set:I=>{y.value!==I&&(y.value=I,$())}});async function $(){if(n.sessionId){x.value=!0;try{k.value=await Ke().getLongMessageCount(n.sessionId,n.timeFilter,y.value)}catch(I){console.error("[chart-message] Failed to load essay count:",I)}finally{x.value=!1}}}fe(()=>[n.sessionId,n.timeFilter],()=>{$(),h()},{immediate:!0,deep:!0});const S=M(()=>[{icon:"i-heroicons-pencil-square",label:l("views.message.profile.textExpression"),value:l("views.message.profile.avgLengthUnit",{count:n.textStats.avgLength||0}),subtext:n.textStats.maxLength>0?l("views.message.profile.textExpressionDesc",{count:n.textStats.maxLength}):"",colorClass:"text-violet-600 dark:text-violet-400"},{icon:"i-heroicons-chat-bubble-bottom-center-text",label:l("views.message.profile.shortMaster"),value:`${c.value}%`,subtext:l("views.message.profile.shortMasterDesc",{count:n.textStats.shortCount}),colorClass:"text-emerald-600 dark:text-emerald-400"},{icon:"i-heroicons-document-text",label:l("views.message.profile.essayLover"),value:k.value.toLocaleString(),subtext:l("views.message.profile.essayLoverDesc",{threshold:y.value}),colorClass:"text-indigo-600 dark:text-indigo-400",slot:"essay-threshold"},{icon:"i-heroicons-photo",label:l("views.message.profile.mediaRichness"),value:`${o.value}%`,subtext:b.value.slice(0,3).map(I=>`${I.label} ${I.count}`).join(" · ")||"-",colorClass:"text-pink-600 dark:text-pink-400"}]),T=z(null);let v=null;const w=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6","#f43f5e","#eab308","#14b8a6","#3b82f6"],E=M(()=>[...n.messageTypes].sort((q,Y)=>Y.count-q.count).slice(0,8).map((q,Y)=>({name:ma(q.type,l),value:q.count,itemStyle:{color:w[Y%w.length]}})));function F(){T.value&&(v=sa(T.value,void 0,{renderer:"canvas"}),D())}function D(){v&&v.setOption({backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},series:[{type:"pie",radius:["50%","78%"],center:["50%","50%"],avoidLabelOverlap:!1,padAngle:2,itemStyle:{borderRadius:4},label:{show:!1},emphasis:{label:{show:!1},scaleSize:4},data:E.value}]},{notMerge:!0})}function A(){v?.resize()}return fe(()=>n.messageTypes,()=>D()),fe(e,()=>{v?.dispose(),F()}),Re(()=>{F(),window.addEventListener("resize",A)}),tt(()=>{window.removeEventListener("resize",A),v?.dispose()}),(I,q)=>{const Y=_e,G=wa;return r(),U(t(na),null,{default:B(()=>[a("div",qv,[a("div",Lv,[a("div",Dv,[a("div",Ev,[g.value.first?(r(),m("p",Bv,d(g.value.first)+" – "+d(g.value.last),1)):R("",!0),a("div",Fv,[a("span",Rv,d(t(l)("views.message.profile.heroLine1Prefix")),1),a("span",Vv,d(s.value.toLocaleString()),1),a("span",Ov,d(t(l)("views.message.profile.heroLine1Suffix")),1)]),b.value.length>0?(r(),m("div",Pv,[a("span",jv,d(t(l)("views.message.typeCard.nonTextPrefix")),1),(r(!0),m(ie,null,pe(b.value,Z=>(r(),m("span",{key:Z.label,class:"inline-flex items-center gap-1 rounded-full bg-gray-100 px-2.5 py-0.5 text-xs font-semibold text-gray-700 dark:bg-white/10 dark:text-gray-200"},[a("span",Nv,d(Z.count.toLocaleString()),1),a("span",null,d(Z.unit),1)]))),128))])):R("",!0)])]),a("div",Uv,[a("div",Wv,d(t(l)("views.message.profile.typeDistribution")),1),a("div",{ref_key:"donutRef",ref:T,style:{width:"130px",height:"130px"}},null,512)])])]),a("div",Hv,[q[1]||(q[1]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Type Profile ")],-1)),a("div",Kv,[(r(!0),m(ie,null,pe(S.value,Z=>(r(),m("div",{key:Z.icon+Z.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(Y,{name:Z.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",Z.colorClass])},null,8,["name","class"]),a("div",Yv,[a("div",Gv,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",Z.colorClass])},d(Z.value),3),Z.slot==="essay-threshold"?(r(),U(G,{key:0,modelValue:C.value,"onUpdate:modelValue":q[0]||(q[0]=ce=>C.value=ce),items:_,"value-key":"value",size:"xs",class:"relative z-120 w-16 shrink-0",ui:{content:"z-[121]"},disabled:x.value},null,8,["modelValue","disabled"])):R("",!0)]),a("div",Qv,d(Z.label),1),a("div",Jv,d(Z.subtext),1)])]))),128))])]),a("div",Xv,[a("div",Zv,[p(Y,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),q[2]||(q[2]=a("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),a("span",ey,d(t(l)("views.message.typeCard.watermark")),1)])]),_:1})}}}),ay={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},sy={class:"p-5"},ny={key:0,class:"grid grid-cols-1 gap-6 lg:grid-cols-2 lg:items-center"},oy={class:"space-y-3"},ly={class:"min-w-20 shrink-0 text-sm text-gray-700 dark:text-gray-300"},ry={class:"flex-1"},iy={class:"h-2 overflow-hidden rounded-full bg-gray-100 dark:bg-gray-800"},uy={class:"shrink-0 text-right"},cy={class:"text-sm font-medium text-gray-900 dark:text-white"},dy={class:"ml-1 text-xs text-gray-400"},my={key:1,class:"flex h-48 items-center justify-center text-gray-400"},gy={class:"p-5"},py={class:"mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4"},hy={class:"p-3"},fy={class:"font-mono text-xl font-bold text-gray-900 dark:text-white"},vy={class:"mt-1 text-xs text-gray-500"},yy={class:"p-3"},xy={class:"font-mono text-xl font-bold text-indigo-600 dark:text-indigo-400"},by={class:"mt-1 text-xs text-gray-500"},ky={class:"p-3"},_y={class:"font-mono text-xl font-bold text-pink-600 dark:text-pink-400"},wy={class:"mt-1 text-xs text-gray-500"},$y={class:"p-3"},Cy={class:"font-mono text-xl font-bold text-emerald-600 dark:text-emerald-400"},Sy={class:"mt-1 text-xs text-gray-500"},Iy={class:"mb-5 rounded-lg border border-gray-200 p-4 dark:border-gray-700"},Ty={class:"mb-2 text-xs font-medium text-gray-500 dark:text-gray-400"},My={class:"flex items-center gap-4 text-sm"},Ay={class:"flex items-center gap-1.5"},zy={class:"font-mono font-medium text-gray-900 dark:text-white"},qy={class:"flex items-center gap-1.5"},Ly={class:"font-mono font-medium text-gray-900 dark:text-white"},Dy={class:"flex items-center gap-1.5"},Ey={class:"font-mono font-medium text-gray-900 dark:text-white"},By={class:"flex items-center gap-1.5"},Fy={class:"font-mono font-medium text-gray-900 dark:text-white"},Ry={class:"mt-3 grid grid-cols-3 gap-3 text-xs"},Vy={class:"text-gray-500"},Oy={class:"ml-1 font-medium text-emerald-600 dark:text-emerald-400"},Py={class:"text-gray-400"},jy={class:"text-gray-500"},Ny={class:"ml-1 font-medium text-indigo-600 dark:text-indigo-400"},Uy={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},Wy={class:"text-xs text-gray-400"},Hy={class:"p-5"},Ky={key:1,class:"flex h-48 items-center justify-center text-gray-400"},Yy={class:"text-xs text-gray-400"},Gy={class:"p-5"},Qy={key:1,class:"flex h-48 items-center justify-center text-gray-400"},Yw=ue({__name:"TypeAnalysisView",props:{sessionId:{},sessionName:{},timeFilter:{}},setup(i){const l=i,{t:e}=we(),n=z(!0),s=z([]),u=z([]),o=z([]),c=z({textCount:0,avgLength:0,maxLength:0,shortCount:0}),g=z({p25:0,p50:0,p75:0,p90:0}),h=z(0),f=M(()=>{const S=[...s.value].sort((T,v)=>v.count-T.count);return{labels:S.map(T=>ma(T.type,e)),values:S.map(T=>T.count)}}),b=M(()=>{const S=s.value.reduce((v,w)=>v+w.count,0);return[...s.value].sort((v,w)=>w.count-v.count).map(v=>({name:ma(v.type,e),count:v.count,percentage:S>0?Math.round(v.count/S*100):0}))}),y=["#6366f1","#8b5cf6","#ec4899","#f43f5e","#f97316","#eab308","#22c55e","#14b8a6","#06b6d4","#3b82f6"];function k(S){return y[S%y.length]}const x=M(()=>({labels:u.value.map(S=>String(S.len)),values:u.value.map(S=>S.count)})),_=M(()=>({labels:o.value.map(S=>S.range),values:o.value.map(S=>S.count)})),C=M(()=>c.value.textCount===0?0:Math.round(c.value.shortCount/c.value.textCount*100));async function $(){if(l.sessionId){n.value=!0;try{const S=Ke(),[T,v,w,E,F]=await Promise.all([S.getMessageTypeDistribution(l.sessionId,l.timeFilter),S.getMessageLengthDistribution(l.sessionId,l.timeFilter),S.getTextStats(l.sessionId,l.timeFilter),S.getTextLengthPercentiles(l.sessionId,l.timeFilter),S.getLongMessageCount(l.sessionId,l.timeFilter,30)]);s.value=T,u.value=v.detail,o.value=v.grouped,c.value=w,g.value=E,h.value=F}catch(S){console.error("[chart-message] Failed to load type analysis data:",S)}finally{n.value=!1}}}return fe(()=>[l.sessionId,l.timeFilter],()=>$(),{immediate:!0,deep:!0}),(S,T)=>(r(),m("div",{class:X(n.value?"h-full":"")},[n.value?(r(),U(t(Kt),{key:0,variant:"page",text:t(e)("common.loading")},null,8,["text"])):(r(),m("div",ay,[s.value.length>0?(r(),U(ty,{key:0,"session-id":i.sessionId,"message-types":s.value,"text-stats":c.value,"time-filter":i.timeFilter},null,8,["session-id","message-types","text-stats","time-filter"])):R("",!0),p(t(Ze),{title:t(e)("views.message.typeDistribution"),"show-divider":!1},{default:B(()=>[a("div",sy,[f.value.values.length>0?(r(),m("div",ny,[a("div",null,[p(t(ya),{data:f.value,height:280,"show-legend":!1},null,8,["data"])]),a("div",null,[a("div",oy,[(r(!0),m(ie,null,pe(b.value,(v,w)=>(r(),m("div",{key:w,class:"flex items-center gap-3"},[a("div",{class:"h-3 w-3 shrink-0 rounded-full",style:et({backgroundColor:k(w)})},null,4),a("div",ly,d(v.name),1),a("div",ry,[a("div",iy,[a("div",{class:"h-full rounded-full transition-all",style:et({width:`${v.percentage}%`,backgroundColor:k(w)})},null,4)])]),a("div",uy,[a("span",cy,d(v.count.toLocaleString()),1),a("span",dy,"("+d(v.percentage)+"%)",1)])]))),128))])])])):(r(),m("div",my,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.typeAnalysis.textDepthTitle"),"show-divider":!1},{default:B(()=>[a("div",gy,[a("div",py,[a("div",hy,[a("div",fy,d(c.value.textCount.toLocaleString()),1),a("div",vy,d(t(e)("views.message.typeAnalysis.textTotal")),1)]),a("div",yy,[a("div",xy,d(c.value.avgLength||0),1),a("div",by,d(t(e)("views.message.typeAnalysis.avgLength")),1)]),a("div",ky,[a("div",_y,d(g.value.p50),1),a("div",wy,d(t(e)("views.message.typeAnalysis.medianLength")),1)]),a("div",$y,[a("div",Cy,d(c.value.maxLength),1),a("div",Sy,d(t(e)("views.message.typeAnalysis.maxLength")),1)])]),a("div",Iy,[a("div",Ty,d(t(e)("views.message.typeAnalysis.percentiles")),1),a("div",My,[a("div",Ay,[T[0]||(T[0]=a("span",{class:"text-gray-500"},"P25",-1)),a("span",zy,d(g.value.p25),1)]),a("div",qy,[T[1]||(T[1]=a("span",{class:"text-gray-500"},"P50",-1)),a("span",Ly,d(g.value.p50),1)]),a("div",Dy,[T[2]||(T[2]=a("span",{class:"text-gray-500"},"P75",-1)),a("span",Ey,d(g.value.p75),1)]),a("div",By,[T[3]||(T[3]=a("span",{class:"text-gray-500"},"P90",-1)),a("span",Fy,d(g.value.p90),1)])]),a("div",Ry,[a("div",null,[a("span",Vy,d(t(e)("views.message.typeAnalysis.shortMessages")),1),a("span",Oy,d(C.value)+"%",1),a("span",Py,"("+d(c.value.shortCount)+")",1)]),a("div",null,[a("span",jy,d(t(e)("views.message.typeAnalysis.essayMessages")),1),a("span",Ny,d(h.value),1)])])])])]),_:1},8,["title"]),a("div",Uy,[p(t(Ze),{title:t(e)("views.message.lengthDetailTitle"),"show-divider":!1},{headerRight:B(()=>[a("span",Wy,d(t(e)("views.message.lengthDetailHint")),1)]),default:B(()=>[a("div",Hy,[x.value.values.some(v=>v>0)?(r(),U(t(rt),{key:0,data:x.value,height:200},null,8,["data"])):(r(),m("div",Ky,d(t(e)("views.message.noTextMessages")),1))])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.lengthGroupedTitle"),"show-divider":!1},{headerRight:B(()=>[a("span",Yy,d(t(e)("views.message.lengthGroupedHint")),1)]),default:B(()=>[a("div",Gy,[_.value.values.some(v=>v>0)?(r(),U(t(rt),{key:0,data:_.value,height:200},null,8,["data"])):(r(),m("div",Qy,d(t(e)("views.message.noTextMessages")),1))])]),_:1},8,["title"])])]))],2))}}),Jy={class:"relative z-10 px-6 pt-8 pb-4 sm:px-8"},Xy={class:"flex items-start gap-6 sm:gap-10"},Zy={class:"min-w-0 flex-1"},ex={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},tx={key:0,class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},ax={class:"mb-3 flex items-baseline gap-2"},sx={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},nx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},ox={class:"font-bold text-3xl text-indigo-500 dark:text-indigo-400"},lx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},rx={class:"flex items-baseline flex-wrap gap-x-1.5 gap-y-1"},ix={class:"text-base font-medium text-gray-600 dark:text-gray-300"},ux={class:"font-bold text-xl text-pink-500 dark:text-pink-400"},cx={class:"text-base font-medium text-gray-600 dark:text-gray-300"},dx={class:"text-base font-medium text-amber-600 dark:text-amber-400"},mx={class:"flex shrink-0 flex-col items-center"},gx={class:"mb-1 text-[10px] font-bold text-gray-500 dark:text-gray-400"},px={class:"relative z-10 px-6 pb-6 pt-4 sm:px-8"},hx={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},fx={class:"min-w-0 flex-1"},vx={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},yx={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},xx={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},bx={class:"flex items-center gap-1.5"},kx={class:"text-[9px] font-medium uppercase tracking-widest"},_x=ue({__name:"TimeProfileCard",props:{hourlyActivity:{},weekdayActivity:{},dailyActivity:{}},setup(i){ta([Xn,Zn,aa]);const{t:l}=we(),e=Zt(),n=i,s=M(()=>n.dailyActivity.filter(v=>v.messageCount>0).length),u=M(()=>n.dailyActivity.reduce((v,w)=>v+w.messageCount,0)),o=M(()=>{if(n.dailyActivity.length===0)return{first:"",last:"",days:0};const v=[...n.dailyActivity].sort((F,D)=>F.date.localeCompare(D.date)),w=Ee(v[0].date),E=Ee(v[v.length-1].date);return{first:w.format("YYYY/MM/DD"),last:E.format("YYYY/MM/DD"),days:E.diff(w,"day")+1}}),c=M(()=>s.value===0?0:Math.round(u.value/s.value)),g=M(()=>n.dailyActivity.length===0?null:n.dailyActivity.reduce((v,w)=>w.messageCount>v.messageCount?w:v,n.dailyActivity[0])),h=M(()=>n.hourlyActivity.length===0?[]:[...n.hourlyActivity].sort((v,w)=>w.messageCount-v.messageCount).slice(0,3)),f=M(()=>{if(n.hourlyActivity.length===0&&n.weekdayActivity.length===0)return null;const v=o.value.days>0?s.value/o.value.days:0,w=n.weekdayActivity.filter(H=>H.weekday===6||H.weekday===7),E=n.weekdayActivity.filter(H=>H.weekday>=1&&H.weekday<=5),F=w.reduce((H,W)=>H+W.messageCount,0),D=E.reduce((H,W)=>H+W.messageCount,0),A=F+D,I=A>0?F/A:0,q=n.hourlyActivity.reduce((H,W)=>H+W.messageCount,0),Y=n.hourlyActivity.filter(H=>H.hour>=22||H.hour<5).reduce((H,W)=>H+W.messageCount,0),G=n.hourlyActivity.filter(H=>H.hour>=18&&H.hour<22).reduce((H,W)=>H+W.messageCount,0),Z=q>0?Y/q:0,ce=q>0?G/q:0;if(v>=.9)return{label:l("views.message.timeCard.personalityEveryday"),icon:"i-heroicons-fire"};if(I>=.55)return{label:l("views.message.timeCard.personalityWeekend"),icon:"i-heroicons-calendar"};if(I<=.2&&A>0)return{label:l("views.message.timeCard.personalityWeekday"),icon:"i-heroicons-briefcase"};if(Z>=.3)return{label:l("views.message.timeCard.personalityNightOwl"),icon:"i-heroicons-moon"};if(ce>=.4)return{label:l("views.message.timeCard.personalityEveningChat"),icon:"i-heroicons-sparkles"};const ne=[...n.hourlyActivity].sort((H,W)=>W.messageCount-H.messageCount)[0];return ne?ne.hour>=5&&ne.hour<9?{label:l("views.message.timeCard.personalityEarlyBird"),icon:"i-heroicons-sun"}:ne.hour>=12&&ne.hour<14?{label:l("views.message.timeCard.personalityLunchChat"),icon:"i-heroicons-clock"}:{label:l("views.message.timeCard.personalityDaytime"),icon:"i-heroicons-sun"}:null}),b=M(()=>{const v=n.weekdayActivity.filter(A=>A.weekday===6||A.weekday===7),w=n.weekdayActivity.filter(A=>A.weekday>=1&&A.weekday<=5),E=v.reduce((A,I)=>A+I.messageCount,0),F=w.reduce((A,I)=>A+I.messageCount,0),D=E+F;return D===0?0:Math.round(E/D*100)}),y=M(()=>[l("common.weekday.mon"),l("common.weekday.tue"),l("common.weekday.wed"),l("common.weekday.thu"),l("common.weekday.fri"),l("common.weekday.sat"),l("common.weekday.sun")]),k=M(()=>{if(n.weekdayActivity.length===0)return null;const v=[...n.weekdayActivity].sort((w,E)=>E.messageCount-w.messageCount)[0];return{name:y.value[v.weekday-1],count:v.messageCount}}),x=M(()=>[{icon:"i-heroicons-fire",label:l("views.message.timeCard.peakRecord"),value:g.value?Ee(g.value.date).format("MM/DD"):"-",subtext:g.value?l("views.message.timeCard.peakRecordDesc",{count:g.value.messageCount}):"",colorClass:"text-red-600 dark:text-red-400"},{icon:"i-heroicons-clock",label:l("views.message.timeCard.topHoursLabel"),value:h.value.length>0?`${h.value[0].hour}:00`:"-",subtext:h.value.length>=2?h.value.map(v=>`${v.hour}:00`).join(" > "):"",colorClass:"text-cyan-600 dark:text-cyan-400"},{icon:"i-heroicons-calendar-days",label:l("views.message.timeCard.peakWeekdayLabel"),value:k.value?.name||"-",subtext:k.value?`${k.value.count.toLocaleString()}`:"",colorClass:"text-violet-600 dark:text-violet-400"},{icon:"i-heroicons-building-office",label:l("views.message.timeCard.weekendRatio"),value:`${b.value}%`,subtext:l("views.message.timeCard.weekendRatioDesc"),colorClass:"text-amber-600 dark:text-amber-400"}]),_=z(null);let C=null;function $(){_.value&&(C=sa(_.value,void 0,{renderer:"canvas"}),S())}function S(){if(!C)return;const v=new Map(n.hourlyActivity.map(D=>[D.hour,D.messageCount])),w=[];for(let D=0;D<24;D++)w.push(v.get(D)||0);const E=Math.max(...w,1),F=w.map(D=>{const A=D/E;return A>.8?e.value?"#f472b6":"#ec4899":A>.5?e.value?"#a78bfa":"#8b5cf6":e.value?"rgba(255,255,255,0.15)":"rgba(0,0,0,0.08)"});C.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",formatter:D=>`${D[0].axisValue}:00 — ${D[0].value}`},grid:{left:0,right:0,top:4,bottom:16},xAxis:{type:"category",data:Array.from({length:24},(D,A)=>`${A}`),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:9,color:e.value?"#6b7280":"#9ca3af",interval:D=>D%6===0}},yAxis:{type:"value",show:!1},series:[{type:"bar",data:w.map((D,A)=>({value:D,itemStyle:{color:F[A]}})),barWidth:"60%",itemStyle:{borderRadius:[2,2,0,0]}}]},{notMerge:!0})}function T(){C?.resize()}return fe(()=>n.hourlyActivity,()=>S()),fe(e,()=>{C?.dispose(),$()}),Re(()=>{$(),window.addEventListener("resize",T)}),tt(()=>{window.removeEventListener("resize",T),C?.dispose()}),(v,w)=>{const E=_e;return r(),U(t(na),null,{default:B(()=>[a("div",Jy,[a("div",Xy,[a("div",Zy,[a("div",ex,[o.value.first?(r(),m("p",tx,d(o.value.first)+" – "+d(o.value.last),1)):R("",!0),a("div",ax,[a("span",sx,d(o.value.days),1),a("span",nx,d(t(l)("views.message.timeCard.heroDaysIn")),1),a("span",ox,d(s.value),1),a("span",lx,d(t(l)("views.message.timeCard.heroDaysActive")),1)]),a("div",rx,[a("span",ix,d(t(l)("views.message.timeCard.heroAvgPrefix")),1),a("span",ux,d(c.value),1),a("span",cx,d(t(l)("views.message.timeCard.heroAvgSuffix")),1),f.value?(r(),m(ie,{key:0},[p(E,{name:f.value.icon,class:"ml-2 h-4 w-4 text-amber-500"},null,8,["name"]),a("span",dx,d(f.value.label),1)],64)):R("",!0)])])]),a("div",mx,[a("div",gx,d(t(l)("views.message.timeCard.hourlyDistribution")),1),a("div",{ref_key:"barRef",ref:_,style:{width:"180px",height:"110px"}},null,512)])])]),a("div",px,[w[0]||(w[0]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Time Profile ")],-1)),a("div",hx,[(r(!0),m(ie,null,pe(x.value,F=>(r(),m("div",{key:F.icon+F.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(E,{name:F.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",F.colorClass])},null,8,["name","class"]),a("div",fx,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",F.colorClass])},d(F.value),3),a("div",vx,d(F.label),1),a("div",yx,d(F.subtext),1)])]))),128))])]),a("div",xx,[a("div",bx,[p(E,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),w[1]||(w[1]=a("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),a("span",kx,d(t(l)("views.message.timeCard.watermark")),1)])]),_:1})}}}),wx={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},$x={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},Cx={class:"p-5"},Sx={class:"p-5"},Ix={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},Tx={class:"p-5"},Mx={class:"p-5"},Ax={key:1,class:"flex h-48 items-center justify-center text-gray-400"},zx={class:"text-xs text-gray-400"},qx={class:"p-5"},Lx={key:1,class:"flex h-48 items-center justify-center text-gray-400"},Dx={class:"text-xs text-gray-400"},Ex={class:"p-5"},Bx={class:"flex items-center gap-2"},Fx={class:"text-xs text-gray-400"},Rx={class:"p-5"},Vx={key:1,class:"flex h-32 items-center justify-center text-gray-400"},Gw=ue({__name:"TimeAnalysisView",props:{sessionId:{},sessionName:{},timeFilter:{}},setup(i){const l=i,{t:e}=we(),n=z(!0),s=z([]),u=z([]),o=z([]),c=z([]),g=z([]),h=z([]),f=z([]),b=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6","#f43f5e","#eab308","#14b8a6","#3b82f6"],y=M(()=>[e("common.weekday.mon"),e("common.weekday.tue"),e("common.weekday.wed"),e("common.weekday.thu"),e("common.weekday.fri"),e("common.weekday.sat"),e("common.weekday.sun")]),k=M(()=>[e("common.month.jan"),e("common.month.feb"),e("common.month.mar"),e("common.month.apr"),e("common.month.may"),e("common.month.jun"),e("common.month.jul"),e("common.month.aug"),e("common.month.sep"),e("common.month.oct"),e("common.month.nov"),e("common.month.dec")]),x=M(()=>{const A=new Map(u.value.map(Y=>[Y.hour,Y.messageCount])),I=[],q=[];for(let Y=0;Y<24;Y++)I.push(`${Y}`),q.push(A.get(Y)||0);return{labels:I,values:q}}),_=M(()=>{const A=new Map(o.value.map(q=>[q.weekday,q.messageCount])),I=[];for(let q=1;q<=7;q++)I.push(A.get(q)||0);return{labels:y.value,values:I}}),C=M(()=>{const A=new Map(c.value.map(q=>[q.month,q.messageCount])),I=[];for(let q=1;q<=12;q++)I.push(A.get(q)||0);return{labels:k.value,values:I}}),$=M(()=>{const A=[...g.value].sort((I,q)=>I.year-q.year);return{labels:A.map(I=>String(I.year)),values:A.map(I=>I.messageCount)}}),S=M(()=>{const A=Array.from({length:24},(G,Z)=>`${Z}:00`),I=y.value,q=s.value.reduce((G,Z)=>G+Z.count,0)||1,Y=[];for(let G=1;G<=7;G++)for(let Z=0;Z<24;Z++){const ce=o.value.find(W=>W.weekday===G)?.messageCount||0,ne=u.value.find(W=>W.hour===Z)?.messageCount||0,H=Math.round(ce*ne/q);Y.push([Z,G-1,H])}return{xLabels:A,yLabels:I,data:Y}}),T=M(()=>h.value.map(A=>({date:A.date,value:A.messageCount}))),v=M(()=>{const A=new Set;return h.value.forEach(I=>{const q=parseInt(I.date.split("-")[0]);isNaN(q)||A.add(q)}),Array.from(A).sort((I,q)=>q-I)}),w=z(new Date().getFullYear()),E=M(()=>{const A=w.value;return T.value.filter(I=>I.date.startsWith(`${A}-`))}),F=M(()=>{if(f.value.length===0)return{};const A=[...new Set(f.value.map(Z=>Z.month))].sort(),I=new Map;if(f.value.forEach(Z=>{const ce=I.get(Z.memberId);ce?ce.total+=Z.count:I.set(Z.memberId,{name:Z.memberName,total:Z.count})}),I.size<=2){const Z=new Map;return f.value.forEach(ce=>{Z.set(ce.month,(Z.get(ce.month)||0)+ce.count)}),{tooltip:{trigger:"axis",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},grid:{left:50,right:20,top:10,bottom:30},xAxis:{type:"category",data:A,boundaryGap:!1,axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.3}}},series:[{type:"line",smooth:!0,symbol:"none",areaStyle:{opacity:.2},itemStyle:{color:"#6366f1"},data:A.map(ce=>Z.get(ce)||0)}]}}const G=[...I.entries()].sort((Z,ce)=>ce[1].total-Z[1].total).slice(0,10).map(([Z,ce],ne)=>{const H=new Map(f.value.filter(W=>W.memberId===Z).map(W=>[W.month,W.count]));return{name:ce.name,type:"line",stack:"total",areaStyle:{opacity:.3},smooth:!0,symbol:"none",itemStyle:{color:b[ne%b.length]},data:A.map(W=>H.get(W)||0)}});return{tooltip:{trigger:"axis",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"transparent",textStyle:{color:"#fff"}},legend:{bottom:0,textStyle:{fontSize:11}},grid:{left:50,right:20,top:10,bottom:40},xAxis:{type:"category",data:A,boundaryGap:!1,axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.3}}},series:G}});async function D(){if(l.sessionId){n.value=!0;try{const A=Ke(),[I,q,Y,G,Z,ce,ne]=await Promise.all([A.getMessageTypeDistribution(l.sessionId,l.timeFilter),A.getHourlyActivity(l.sessionId,l.timeFilter),A.getWeekdayActivity(l.sessionId,l.timeFilter),A.getMonthlyActivity(l.sessionId,l.timeFilter),A.getYearlyActivity(l.sessionId,l.timeFilter),A.getDailyActivity(l.sessionId,l.timeFilter),A.getMemberMonthlyTrend(l.sessionId,l.timeFilter)]);s.value=I,u.value=q,o.value=Y,c.value=G,g.value=Z,h.value=ce,f.value=ne,v.value.length>0&&(w.value=v.value[0])}catch(A){console.error("[chart-message] Failed to load time analysis data:",A)}finally{n.value=!1}}}return fe(()=>[l.sessionId,l.timeFilter],()=>D(),{immediate:!0,deep:!0}),(A,I)=>{const q=wa;return r(),m("div",{class:X(n.value?"h-full":"")},[n.value?(r(),U(t(Kt),{key:0,variant:"page",text:t(e)("common.loading")},null,8,["text"])):(r(),m("div",wx,[h.value.length>0?(r(),U(_x,{key:0,"hourly-activity":u.value,"weekday-activity":o.value,"daily-activity":h.value},null,8,["hourly-activity","weekday-activity","daily-activity"])):R("",!0),a("div",$x,[p(t(Ze),{title:t(e)("views.message.hourlyDistribution"),"show-divider":!1},{default:B(()=>[a("div",Cx,[p(t(rt),{data:x.value,height:200},null,8,["data"])])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.weekdayDistribution"),"show-divider":!1},{default:B(()=>[a("div",Sx,[p(t(rt),{data:_.value,height:200},null,8,["data"])])]),_:1},8,["title"])]),a("div",Ix,[p(t(Ze),{title:t(e)("views.message.monthlyDistribution"),"show-divider":!1},{default:B(()=>[a("div",Tx,[p(t(rt),{data:C.value,height:200},null,8,["data"])])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.yearlyDistribution"),"show-divider":!1},{default:B(()=>[a("div",Mx,[$.value.values.length>0?(r(),U(t(rt),{key:0,data:$.value,height:200},null,8,["data"])):(r(),m("div",Ax,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"])]),p(t(Ze),{title:t(e)("views.message.timeAnalysis.memberTrendTitle"),"show-divider":!1},{headerRight:B(()=>[a("span",zx,d(t(e)("views.message.timeAnalysis.memberTrendHint")),1)]),default:B(()=>[a("div",qx,[f.value.length>0?(r(),U(t(ea),{key:0,option:F.value,height:280},null,8,["option"])):(r(),m("div",Lx,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.timeHeatmap"),"show-divider":!1},{headerRight:B(()=>[a("span",Dx,d(t(e)("views.message.heatmapHint")),1)]),default:B(()=>[a("div",Ex,[p(t(fa),{data:S.value,height:320},null,8,["data"])])]),_:1},8,["title"]),p(t(Ze),{title:t(e)("views.message.calendarHeatmap"),"show-divider":!1},{headerRight:B(()=>[a("div",Bx,[a("span",Fx,d(t(e)("views.message.calendarHint")),1),v.value.length>1?(r(),U(q,{key:0,modelValue:w.value,"onUpdate:modelValue":I[0]||(I[0]=Y=>w.value=Y),items:v.value.map(Y=>({value:Y,label:String(Y)})),size:"xs",class:"w-20"},null,8,["modelValue","items"])):R("",!0)])]),default:B(()=>[a("div",Rx,[E.value.length>0?(r(),U(t(zv),{key:0,data:E.value,year:w.value,height:180},null,8,["data","year"])):(r(),m("div",Vx,d(t(e)("views.message.noData")),1))])]),_:1},8,["title"])]))],2)}}}),Ox={class:"relative z-10 px-6 pt-8 pb-4 sm:px-8"},Px={class:"flex items-center gap-6 sm:gap-10"},jx={class:"min-w-0 flex-1"},Nx={class:"flex flex-col gap-2 text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},Ux={key:0,class:"mb-0 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},Wx={class:"flex items-baseline gap-x-1.5"},Hx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Kx={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},Yx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Gx={class:"flex items-baseline gap-x-1.5"},Qx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Jx={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},Xx={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},Zx={key:1,class:"mt-1 flex items-baseline flex-wrap gap-x-1.5 gap-y-1"},eb={class:"text-base font-medium text-gray-600 dark:text-gray-300"},tb=["onClick"],ab={key:0,class:"text-gray-400"},sb={key:0,class:"hidden shrink-0 overflow-hidden rounded-lg sm:block"},nb={class:"relative",style:{width:"360px",height:"220px"}},ob={class:"relative z-10 px-6 pb-6 pt-4 sm:px-8"},lb={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},rb={class:"min-w-0 flex-1"},ib={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},ub={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},cb={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},db={class:"flex items-center gap-1.5"},mb={class:"text-[9px] font-medium uppercase tracking-widest"},gb=ue({__name:"TopicProfileCard",props:{totalMessages:{},totalWords:{},uniqueWords:{},topWords:{},topicWords:{},posTagStats:{},timeFilter:{}},emits:["wordClick"],setup(i,{emit:l}){const e=gs(()=>Jt(()=>import("./EChartWordcloud-CwMVJLBO.js"),__vite__mapDeps([3,4,5,6,0,1,2]))),{t:n}=we(),s=i,u=l,o=M(()=>{const{startTs:x,endTs:_}=s.timeFilter??{};return x&&_?`${Ee(x*1e3).format("YYYY/MM/DD")} – ${Ee(_*1e3).format("YYYY/MM/DD")}`:""}),c=M(()=>(s.topicWords?.length?s.topicWords:s.topWords).slice(0,5)),g=M(()=>({words:(s.topicWords?.length?s.topicWords:s.topWords).slice(0,50).map(_=>({word:_.word,count:_.count,percentage:_.percentage}))})),h=M(()=>s.totalWords===0?0:Math.round(s.uniqueWords/s.totalWords*100)),f=M(()=>{if(!s.posTagStats?.length)return{key:"Balanced",label:n("quotes.topicProfile.styleBalanced"),desc:n("quotes.topicProfile.styleBalancedDesc"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const x=new Map(s.posTagStats.map(E=>[E.tag,E.count])),_=(x.get("n")||0)+(x.get("ns")||0)+(x.get("nt")||0)+(x.get("nz")||0),C=(x.get("v")||0)+(x.get("vn")||0)+(x.get("vd")||0),$=(x.get("a")||0)+(x.get("ad")||0)+(x.get("an")||0),S=_+C+$;if(S===0)return{key:"Balanced",label:n("quotes.topicProfile.styleBalanced"),desc:n("quotes.topicProfile.styleBalancedDesc"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const T=_/S,v=C/S,w=$/S;return T>.5?{key:"Encyclopedia",label:n("quotes.topicProfile.styleEncyclopedia"),desc:n("quotes.topicProfile.styleEncyclopediaDesc"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:v>.45?{key:"Action",label:n("quotes.topicProfile.styleAction"),desc:n("quotes.topicProfile.styleActionDesc"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:w>.3?{key:"Expressive",label:n("quotes.topicProfile.styleExpressive"),desc:n("quotes.topicProfile.styleExpressiveDesc"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{key:"Balanced",label:n("quotes.topicProfile.styleBalanced"),desc:n("quotes.topicProfile.styleBalancedDesc"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}),b=M(()=>{if(s.topWords.length===0)return{label:n("quotes.topicProfile.expressionMixed"),desc:n("quotes.topicProfile.expressionMixedDesc"),icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-emerald-600 dark:text-emerald-400"};const x=s.topWords.reduce(($,S)=>$+S.word.length*S.count,0),_=s.topWords.reduce(($,S)=>$+S.count,0),C=x/_;return C<2.5?{label:n("quotes.topicProfile.expressionCasual"),desc:n("quotes.topicProfile.expressionCasualDesc"),icon:"i-heroicons-face-smile-solid",colorClass:"text-amber-600 dark:text-amber-400"}:C>3.5?{label:n("quotes.topicProfile.expressionFormal"),desc:n("quotes.topicProfile.expressionFormalDesc"),icon:"i-heroicons-academic-cap-solid",colorClass:"text-violet-600 dark:text-violet-400"}:{label:n("quotes.topicProfile.expressionMixed"),desc:n("quotes.topicProfile.expressionMixedDesc"),icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-emerald-600 dark:text-emerald-400"}}),y=M(()=>[{icon:"i-heroicons-fire-solid",label:n("quotes.topicProfile.hotTopic"),value:c.value[0]?.word??"-",subtext:c.value[0]?n("quotes.topicProfile.hotTopicDesc",{count:c.value[0].count}):"",colorClass:"text-red-600 dark:text-red-400"},{icon:"i-heroicons-sparkles-solid",label:n("quotes.topicProfile.richness"),value:n("quotes.topicProfile.richnessValue",{value:h.value}),subtext:n("quotes.topicProfile.richnessDesc",{unique:s.uniqueWords.toLocaleString(),total:s.totalWords.toLocaleString()}),colorClass:"text-blue-600 dark:text-blue-400"},{icon:f.value.icon,label:n("quotes.topicProfile.chatStyle"),value:f.value.label,subtext:f.value.desc,colorClass:f.value.colorClass},{icon:b.value.icon,label:n("quotes.topicProfile.expressionStyle"),value:b.value.label,subtext:b.value.desc,colorClass:b.value.colorClass}]),k=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e"];return(x,_)=>{const C=_e;return r(),U(t(na),null,{default:B(()=>[a("div",Ox,[a("div",Px,[a("div",jx,[a("div",Nx,[o.value?(r(),m("p",Ux,d(o.value),1)):R("",!0),a("div",Wx,[a("span",Hx,d(t(n)("quotes.topicProfile.heroPrefix")),1),a("span",Kx,d(i.totalMessages.toLocaleString()),1),a("span",Yx,d(t(n)("quotes.topicProfile.heroMiddle")),1)]),a("div",Gx,[a("span",Qx,d(t(n)("quotes.topicProfile.heroMiddleSecond")),1),a("span",Jx,d(i.uniqueWords.toLocaleString()),1),a("span",Xx,d(t(n)("quotes.topicProfile.heroSuffix")),1)]),c.value.length>0?(r(),m("div",Zx,[a("span",eb,d(t(n)("quotes.topicProfile.topTopicsPrefix")),1),(r(!0),m(ie,null,pe(c.value,($,S)=>(r(),m(ie,{key:$.word},[a("span",{class:"cursor-pointer font-bold text-xl transition-opacity hover:opacity-70",style:et({color:k[S%k.length]}),onClick:T=>u("wordClick",$.word)},d($.word),13,tb),S<c.value.length-1?(r(),m("span",ab,"·")):R("",!0)],64))),128))])):R("",!0)])]),g.value.words.length>0?(r(),m("div",sb,[a("div",nb,[p(t(e),{data:g.value,height:"100%","max-words":50,"size-scale":.8,"draw-out-of-bound":!0,shape:"rectangle","color-scheme":"default",onWordClick:_[0]||(_[0]=$=>u("wordClick",$))},null,8,["data"])])])):R("",!0)])]),a("div",ob,[_[1]||(_[1]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Topic Profile ")],-1)),a("div",lb,[(r(!0),m(ie,null,pe(y.value,$=>(r(),m("div",{key:$.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(C,{name:$.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",$.colorClass])},null,8,["name","class"]),a("div",rb,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",$.colorClass])},d($.value),3),a("div",ib,d($.label),1),a("div",ub,d($.subtext),1)])]))),128))])]),a("div",cb,[a("div",db,[p(C,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),_[2]||(_[2]=a("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),a("span",mb,d(t(n)("quotes.topicProfile.watermark")),1)])]),_:1})}}}),pb={class:"px-5 py-4 sm:px-6"},hb={class:"mb-4 flex items-center gap-2"},fb={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},vb={class:"flex flex-wrap justify-center gap-2"},yb=["onClick"],xb=ue({__name:"SharedTopicsCard",props:{sessionId:{},timeFilter:{},dictType:{},excludeWords:{}},emits:["wordClick"],setup(i,{emit:l}){const{t:e}=we(),n=Ma(),s=i,u=l,o=M(()=>n.locale),c=z([]),g=z([]),h=M(()=>c.value.slice(0,20)),f=["bg-indigo-50 text-indigo-600 ring-1 ring-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-400 dark:ring-indigo-500/30","bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30","bg-orange-50 text-orange-600 ring-1 ring-orange-500/20 dark:bg-orange-500/10 dark:text-orange-400 dark:ring-orange-500/30","bg-green-50 text-green-600 ring-1 ring-green-500/20 dark:bg-green-500/10 dark:text-green-400 dark:ring-green-500/30","bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30","bg-violet-50 text-violet-600 ring-1 ring-violet-500/20 dark:bg-violet-500/10 dark:text-violet-400 dark:ring-violet-500/30","bg-teal-50 text-teal-600 ring-1 ring-teal-500/20 dark:bg-teal-500/10 dark:text-teal-400 dark:ring-teal-500/30","bg-rose-50 text-rose-600 ring-1 ring-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400 dark:ring-rose-500/30","bg-yellow-50 text-yellow-600 ring-1 ring-yellow-500/20 dark:bg-yellow-500/10 dark:text-yellow-400 dark:ring-yellow-500/30","bg-cyan-50 text-cyan-600 ring-1 ring-cyan-500/20 dark:bg-cyan-500/10 dark:text-cyan-400 dark:ring-cyan-500/30"];async function b(){if(s.sessionId)try{g.value.length===0&&(g.value=await Ke().getMembers(s.sessionId));const y=[...g.value].sort((T,v)=>v.messageCount-T.messageCount).slice(0,2);if(y.length<2){c.value=[];return}const k={locale:o.value,timeFilter:s.timeFilter?{startTs:s.timeFilter.startTs,endTs:s.timeFilter.endTs}:void 0,topN:100,minCount:2,posFilterMode:"meaningful",enableStopwords:!0,dictType:s.dictType??"default",excludeWords:s.excludeWords?.length?[...s.excludeWords]:void 0},x=Ke(),[_,C]=await Promise.all([x.getWordFrequency(s.sessionId,{...k,memberId:y[0].id}),x.getWordFrequency(s.sessionId,{...k,memberId:y[1].id})]),$=new Map(C.words.map(T=>[T.word,T.count])),S=[];for(const T of _.words){const v=$.get(T.word);v&&S.push({word:T.word,countA:T.count,countB:v})}S.sort((T,v)=>v.countA+v.countB-(T.countA+T.countB)),c.value=S.slice(0,30)}catch(y){console.error("加载共同话题数据失败:",y),c.value=[]}}return fe(()=>s.sessionId,()=>{g.value=[]}),fe(()=>[s.sessionId,s.timeFilter,s.dictType,s.excludeWords],()=>{b()},{immediate:!0,deep:!0}),(y,k)=>{const x=_e;return h.value.length>0?(r(),U(t(mt),{key:0},{default:B(()=>[a("div",pb,[a("div",hb,[p(x,{name:"i-heroicons-link",class:"h-4 w-4 text-emerald-500"}),a("span",fb,d(t(e)("quotes.topicProfile.sharedTopics")),1)]),a("div",vb,[(r(!0),m(ie,null,pe(h.value,(_,C)=>(r(),m("span",{key:_.word,class:X(["cursor-pointer rounded-full px-3 py-1 text-xs font-bold transition-opacity hover:opacity-80",f[C%f.length]]),onClick:$=>u("wordClick",_.word)},d(_.word),11,yb))),128))])])]),_:1})):R("",!0)}}}),ws=zn("wordFilter",()=>{const i=z([]),l=z(null),e=z({}),n=z(!1);function s(){return`wf_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function u($,S=[]){const T={id:s(),name:$,words:[...S],createdAt:Date.now()};return i.value.push(T),T}function o($,S){const T=i.value.find(v=>v.id===$);T&&(S.name!==void 0&&(T.name=S.name),S.words!==void 0&&(T.words=[...S.words]))}function c($){i.value=i.value.filter(S=>S.id!==$),l.value===$&&(l.value=null);for(const[S,T]of Object.entries(e.value))T===$&&delete e.value[S]}function g($){l.value=$}function h($,S){e.value[$]=S}function f($){delete e.value[$]}function b($){return $ in e.value?e.value[$]:l.value}function y($){const S=b($);return S?i.value.find(v=>v.id===S)?.words??[]:[]}function k($){return i.value.find(S=>S.id===$)}const x=M(()=>i.value.map($=>({label:$.name,value:$.id,isDefault:$.id===l.value,wordCount:$.words.length})));function _(){n.value=!0}function C(){n.value=!1}return{schemes:i,defaultSchemeId:l,sessionSchemeOverrides:e,showWordFilterModal:n,schemeOptions:x,createScheme:u,updateScheme:o,deleteScheme:c,setDefaultScheme:g,setSessionScheme:h,clearSessionScheme:f,getActiveSchemeId:b,getExcludeWords:y,getSchemeById:k,openModal:_,closeModal:C}},{persist:!1,backendPersist:{pick:["schemes","defaultSchemeId","sessionSchemeOverrides"],key:"wordFilter"}}),bb={class:"flex flex-col",style:{height:"520px"}},kb={class:"flex items-center justify-between border-b border-gray-200 px-6 py-4 dark:border-white/5"},_b={class:"flex items-center gap-3"},wb={class:"flex h-9 w-9 items-center justify-center rounded-xl bg-linear-to-br from-pink-400 to-pink-600"},$b={class:"text-lg font-semibold text-gray-900 dark:text-white"},Cb={class:"flex flex-1 overflow-hidden"},Sb={class:"flex w-[200px] shrink-0 flex-col border-r border-gray-200 dark:border-white/5"},Ib={class:"flex items-center justify-between px-3 py-2"},Tb={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Mb={class:"flex-1 overflow-y-auto px-2 pb-2"},Ab=["onClick"],zb={class:"truncate text-sm"},qb={class:"ml-auto text-xs text-gray-400 dark:text-gray-500"},Lb={key:0,class:"px-3 py-8 text-center text-xs text-gray-400 dark:text-gray-500"},Db={class:"flex flex-1 flex-col overflow-hidden"},Eb={class:"flex-1 space-y-4 overflow-y-auto p-5"},Bb={class:"mb-1.5 block text-xs font-medium text-gray-600 dark:text-gray-400"},Fb={class:"flex items-center gap-2"},Rb={class:"mb-1.5 block text-xs font-medium text-gray-600 dark:text-gray-400"},Vb={class:"flex gap-2"},Ob={class:"mb-1.5 flex items-center justify-between"},Pb={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},jb={class:"ml-1 text-gray-400 dark:text-gray-500"},Nb={key:0,class:"flex max-h-[220px] flex-wrap gap-1.5 overflow-y-auto rounded-lg border border-gray-200 p-3 dark:border-white/5"},Ub={key:1,class:"rounded-lg border border-dashed border-gray-300 px-4 py-6 text-center text-xs text-gray-400 dark:border-gray-600 dark:text-gray-500"},Wb={class:"flex shrink-0 justify-end border-t border-gray-200 px-5 py-3 dark:border-white/5"},Hb={key:1,class:"flex flex-1 flex-col items-center justify-center gap-3 text-gray-400 dark:text-gray-500"},Kb={class:"text-sm"},Yb=ue({__name:"WordFilterModal",setup(i){const{t:l}=we(),e=ws(),n=M({get:()=>e.showWordFilterModal,set:S=>S?e.openModal():e.closeModal()}),s=z(null),u=z(""),o=z(""),c=z(null),g=M(()=>s.value?e.getSchemeById(s.value)??null:null),h=M(()=>s.value===e.defaultSchemeId);fe(n,S=>{S&&(e.schemes.length>0&&!s.value&&(s.value=e.schemes[0].id),f())}),fe(s,()=>{f(),o.value=""});function f(){u.value=g.value?.name??""}function b(){const S=e.createScheme(l("wordFilter.defaultSchemeName"));s.value=S.id,De(()=>{c.value?.focus(),c.value?.select()})}function y(){if(!s.value)return;const S=e.schemes.findIndex(T=>T.id===s.value);if(e.deleteScheme(s.value),e.schemes.length>0){const T=Math.min(S,e.schemes.length-1);s.value=e.schemes[T].id}else s.value=null}function k(){!s.value||!u.value.trim()||e.updateScheme(s.value,{name:u.value.trim()})}function x(){s.value&&(h.value?e.setDefaultScheme(null):e.setDefaultScheme(s.value))}function _(){if(!s.value||!o.value.trim())return;const T=o.value.trim().split(/[,,\n\r\t;;|、\s]+/).map(F=>F.trim()).filter(F=>F.length>0);if(T.length===0)return;const v=g.value;if(!v)return;const w=new Set(v.words.map(F=>F.toLowerCase())),E=T.filter(F=>!w.has(F.toLowerCase()));E.length>0&&e.updateScheme(s.value,{words:[...v.words,...E]}),o.value=""}function C(S){if(!s.value)return;const T=g.value;T&&e.updateScheme(s.value,{words:T.words.filter(v=>v!==S)})}function $(){s.value&&e.updateScheme(s.value,{words:[]})}return(S,T)=>{const v=_e,w=Ue,E=Bt,F=ps,D=Xe;return r(),U(D,{open:n.value,"onUpdate:open":T[4]||(T[4]=A=>n.value=A),ui:{content:"max-w-3xl z-50"}},{content:B(()=>[a("div",bb,[a("div",kb,[a("div",_b,[a("div",wb,[p(v,{name:"i-heroicons-funnel",class:"h-4.5 w-4.5 text-white"})]),a("h2",$b,d(t(l)("wordFilter.title")),1)]),p(w,{icon:"i-heroicons-x-mark",variant:"ghost",color:"neutral",size:"sm",onClick:T[0]||(T[0]=A=>n.value=!1)})]),a("div",Cb,[a("div",Sb,[a("div",Ib,[a("span",Tb,d(t(l)("wordFilter.schemeList")),1),p(w,{icon:"i-heroicons-plus",size:"xs",variant:"ghost",color:"primary",onClick:b})]),a("div",Mb,[(r(!0),m(ie,null,pe(t(e).schemes,A=>(r(),m("div",{key:A.id,class:X(["group mb-1 flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 transition-colors",s.value===A.id?"bg-primary-50 text-primary-700 dark:bg-primary-900/20 dark:text-primary-300":"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5"]),onClick:I=>s.value=A.id},[A.id===t(e).defaultSchemeId?(r(),U(v,{key:0,name:"i-heroicons-star-solid",class:"h-3.5 w-3.5 shrink-0 text-amber-500"})):R("",!0),a("span",zb,d(A.name),1),a("span",qb,d(A.words.length),1)],10,Ab))),128)),t(e).schemes.length===0?(r(),m("div",Lb,d(t(l)("wordFilter.emptyScheme")),1)):R("",!0)])]),a("div",Db,[g.value?(r(),m(ie,{key:0},[a("div",Eb,[a("div",null,[a("label",Bb,d(t(l)("wordFilter.schemeName")),1),p(E,{ref_key:"nameInputRef",ref:c,modelValue:u.value,"onUpdate:modelValue":T[1]||(T[1]=A=>u.value=A),size:"sm",placeholder:t(l)("wordFilter.schemeNamePlaceholder"),onBlur:k,onKeydown:Ge(k,["enter"])},null,8,["modelValue","placeholder"])]),a("div",Fb,[p(w,{size:"xs",variant:h.value?"solid":"soft",color:h.value?"warning":"neutral",icon:h.value?"i-heroicons-star-solid":"i-heroicons-star",onClick:x},{default:B(()=>[le(d(h.value?t(l)("wordFilter.isDefault"):t(l)("wordFilter.setDefault")),1)]),_:1},8,["variant","color","icon"]),p(w,{size:"xs",variant:"soft",color:"error",icon:"i-heroicons-trash",onClick:y},{default:B(()=>[le(d(t(l)("wordFilter.deleteScheme")),1)]),_:1})]),a("div",null,[a("label",Rb,d(t(l)("wordFilter.addWords")),1),a("div",Vb,[p(E,{modelValue:o.value,"onUpdate:modelValue":T[2]||(T[2]=A=>o.value=A),size:"sm",class:"flex-1",placeholder:t(l)("wordFilter.addWordsPlaceholder"),onKeydown:Ge(_,["enter"])},null,8,["modelValue","placeholder"]),p(w,{size:"sm",color:"primary",icon:"i-heroicons-plus",onClick:_},{default:B(()=>[le(d(t(l)("wordFilter.add")),1)]),_:1})])]),a("div",null,[a("div",Ob,[a("label",Pb,[le(d(t(l)("wordFilter.wordList"))+" ",1),a("span",jb,"("+d(g.value.words.length)+")",1)]),g.value.words.length>0?(r(),U(w,{key:0,size:"xs",variant:"ghost",color:"error",onClick:$},{default:B(()=>[le(d(t(l)("wordFilter.clearAll")),1)]),_:1})):R("",!0)]),g.value.words.length>0?(r(),m("div",Nb,[(r(!0),m(ie,null,pe(g.value.words,A=>(r(),U(F,{key:A,color:"neutral",variant:"subtle",class:"group/badge cursor-default gap-1 pr-1"},{default:B(()=>[le(d(A)+" ",1),p(v,{name:"i-heroicons-x-mark",class:"h-3.5 w-3.5 cursor-pointer text-gray-400 transition-colors hover:text-red-500",onClick:I=>C(A)},null,8,["onClick"])]),_:2},1024))),128))])):(r(),m("div",Ub,d(t(l)("wordFilter.emptyWords")),1))])]),a("div",Wb,[p(w,{color:"primary",variant:"soft",onClick:T[3]||(T[3]=A=>n.value=!1)},{default:B(()=>[le(d(t(l)("wordFilter.close")),1)]),_:1})])],64)):(r(),m("div",Hb,[p(v,{name:"i-heroicons-funnel",class:"h-10 w-10"}),a("p",Kb,d(t(l)("wordFilter.selectOrCreate")),1),p(w,{size:"sm",color:"primary",variant:"soft",icon:"i-heroicons-plus",onClick:b},{default:B(()=>[le(d(t(l)("wordFilter.createScheme")),1)]),_:1})]))])])])]),_:1},8,["open"])}}}),Gb={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Qb={key:0,class:"flex flex-col gap-3 rounded-lg border border-primary-200 bg-primary-50/70 p-4 dark:border-primary-800 dark:bg-primary-950/30 sm:flex-row sm:items-center sm:justify-between"},Jb={class:"flex min-w-0 items-start gap-3"},Xb={class:"min-w-0 text-sm text-primary-700 dark:text-primary-300"},Zb={class:"flex shrink-0 flex-wrap gap-2"},e1={key:1,class:"space-y-6"},t1={class:"flex flex-col gap-6 p-4 sm:p-6 lg:flex-row"},a1={class:"flex min-w-0 flex-1 flex-col"},s1={class:"relative w-full",style:{"aspect-ratio":"16 / 9"}},n1={key:1,class:"absolute inset-0 flex flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-gray-200 bg-gray-50/40 text-gray-500 dark:border-gray-700 dark:bg-gray-800/30 dark:text-gray-400"},o1={class:"text-xs font-medium"},l1={class:"px-4 text-center text-[11px]"},r1={key:0,class:"mt-2 text-center text-xs text-gray-500 dark:text-gray-400"},i1={class:"w-full shrink-0 space-y-4 lg:w-[280px]"},u1={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},c1={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},d1={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},m1={key:0},g1={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},p1={class:"space-y-2"},h1={class:"text-xs text-gray-400 dark:text-gray-500"},f1={key:1},v1={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},y1={class:"flex items-center"},x1={key:2,class:"space-y-2"},b1={class:"flex items-center justify-between"},k1={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},_1={class:"flex gap-1"},w1={class:"flex max-h-[360px] flex-wrap gap-1.5 overflow-y-auto"},$1={key:0,class:"ml-1 opacity-60"},C1={class:"mb-2 flex items-center justify-between"},S1={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},I1={key:0,class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},T1={class:"space-y-4"},M1={class:"text-sm text-gray-600 dark:text-gray-300"},A1={class:"flex justify-end gap-2"},z1="default",Ga="chatlab_zhTW_dict_prompt_dismissed",Qw=ue({__name:"WordcloudTab",props:{sessionId:{},timeFilter:{},memberId:{},showSharedTopics:{type:Boolean},enableNodeNlpFeatures:{type:Boolean,default:!0},enableRecordNavigation:{type:Boolean,default:!0}},setup(i){const l=gs(()=>Jt(()=>import("./EChartWordcloud-CwMVJLBO.js"),__vite__mapDeps([3,4,5,6,0,1,2]))),{t:e}=we(),n=Ma(),s=bt(),u=ws(),o=nt(),c=i,g=z(!1),h=z([]),f=z({totalMessages:0,totalWords:0,uniqueWords:0}),b=z(1.25),y=z(150),k=M(()=>{const me=h.value.slice(0,y.value),O=me.reduce((V,K)=>V+K.count,0);return{words:me.map(V=>({word:V.word,count:V.count,percentage:O>0?Math.round(V.count/O*1e4)/100:0}))}}),x=z(c.enableNodeNlpFeatures?"meaningful":"all"),_=z(!0),C=z([]),$=z([]),S=z(new Map),T=["n","nr","ns","nt","nz","nw","vn","a","an"],v=z([]),w=M(()=>k.value.words.map(me=>({word:me.word,count:me.count,percentage:me.percentage??0}))),E=M(()=>[...S.value.entries()].map(([me,O])=>({tag:me,count:O}))),F=z(null),D=M({get:()=>u.getActiveSchemeId(c.sessionId),set:me=>u.setSessionScheme(c.sessionId,me)}),A=M(()=>[{label:e("wordFilter.noFilter"),value:"__none__"},...u.schemeOptions.map(me=>({label:me.isDefault?`${me.label} ★`:me.label,value:me.value}))]),I=M({get:()=>D.value??"__none__",set:me=>{D.value=me==="__none__"?null:me}}),q=M(()=>u.getExcludeWords(c.sessionId)),Y=z("default"),G=z([]),Z=z(!1),ce=z(null),ne=z(!1),H=z(!c.enableNodeNlpFeatures),W=M(()=>n.locale),re=M(()=>n.locale==="zh-TW"),ve=M(()=>W.value.startsWith("zh")),he=M(()=>G.value.filter(me=>me.downloaded).map(me=>({label:e(`quotes.wordcloud.dict.${me.id==="zh-CN"?"zhCN":me.id==="zh-TW"?"zhTW":me.id}`),value:me.id}))),ee=M(()=>G.value.some(me=>me.downloaded)),te=M(()=>!c.enableNodeNlpFeatures||!ve.value||H.value),j=M(()=>G.value.filter(me=>!me.downloaded));async function de(){if(c.enableNodeNlpFeatures)try{G.value=await Oa("/nlp/dicts"),re.value&&Y.value==="default"&&G.value.find(V=>V.id==="zh-TW")?.downloaded&&(Y.value="zh-TW"),G.value.find(O=>O.id==="zh-CN")?.downloaded&&Y.value==="default"&&(Y.value="zh-CN")}catch(me){console.error("Failed to get dict list:",me)}finally{H.value=!0}}async function be(me){Z.value=!0,ce.value=me;try{const O=await qn(`/nlp/dicts/${me}/download`);O.success?(await de(),Y.value=me,o.success(e("quotes.wordcloud.dict.downloadSuccess"))):o.fail(e("quotes.wordcloud.dict.downloadFailed"),{description:O.error})}catch{o.fail(e("quotes.wordcloud.dict.downloadFailed"))}finally{Z.value=!1,ce.value=null,ne.value=!1}}function xe(){ne.value=!1,localStorage.setItem(Ga,"true")}function oe(){const me=G.value.find(O=>O.id==="zh-TW");re.value&&me&&!me.downloaded&&!localStorage.getItem(Ga)&&(ne.value=!0)}const Q=M(()=>[{label:e("quotes.wordcloud.posFilter.all"),value:"all"},{label:e("quotes.wordcloud.posFilter.meaningful"),value:"meaningful"},{label:e("quotes.wordcloud.posFilter.custom"),value:"custom"}]),J=[{label:"80",value:80},{label:"100",value:100},{label:"150",value:150},{label:"200",value:200},{label:"300",value:300}],ge=Math.max(...J.map(me=>me.value)),ke=M(()=>[{label:e("quotes.wordcloud.size.small"),value:.75},{label:e("quotes.wordcloud.size.medium"),value:1},{label:e("quotes.wordcloud.size.large"),value:1.25},{label:e("quotes.wordcloud.size.xlarge"),value:1.5}]),$e=M(()=>$.value.map(me=>({label:me.name,tag:me.tag,value:me.tag,count:S.value.get(me.tag)||0,meaningful:me.meaningful})));async function Le(){if(c.enableNodeNlpFeatures)try{const me=await Oa("/nlp/pos-tags");$.value=me,C.value=me.filter(O=>O.meaningful).map(O=>O.tag)}catch(me){console.error("加载词性标签失败:",me)}}let Be=0;async function Te(){if(!c.sessionId||!te.value)return;const me=++Be;try{const O=await Ke().getWordFrequency(c.sessionId,{locale:W.value,timeFilter:c.timeFilter?{startTs:c.timeFilter.startTs,endTs:c.timeFilter.endTs}:void 0,memberId:F.value??void 0,topN:50,minCount:2,posFilterMode:c.enableNodeNlpFeatures?"custom":"all",customPosTags:c.enableNodeNlpFeatures?[...T]:void 0,enableStopwords:!0,dictType:Y.value,excludeWords:q.value.length>0?[...q.value]:void 0});if(me!==Be)return;v.value=O.words.map(V=>({word:V.word,count:V.count,percentage:V.percentage}))}catch(O){if(console.error("加载话题迷你词云数据失败:",O),me!==Be)return;v.value=[]}}let Pe=0;async function je(){if(!c.sessionId||!te.value)return;const me=++Pe;h.value.length===0&&(g.value=!0);try{const O=await Ke().getWordFrequency(c.sessionId,{locale:W.value,timeFilter:c.timeFilter?{startTs:c.timeFilter.startTs,endTs:c.timeFilter.endTs}:void 0,memberId:F.value??void 0,topN:ge,minCount:2,posFilterMode:c.enableNodeNlpFeatures?x.value:"all",customPosTags:c.enableNodeNlpFeatures&&x.value==="custom"?[...C.value]:void 0,enableStopwords:_.value,dictType:Y.value,excludeWords:q.value.length>0?[...q.value]:void 0});if(me!==Pe)return;if(h.value=O.words.map(V=>({word:V.word,count:V.count,percentage:V.percentage})),f.value={totalMessages:O.totalMessages,totalWords:O.totalWords,uniqueWords:O.uniqueWords},O.posTagStats){const V=new Map;for(const K of O.posTagStats)V.set(K.tag,K.count);S.value=V}}catch(O){if(console.error("加载词频数据失败:",O),me!==Pe)return;h.value=[]}finally{me===Pe&&(g.value=!1)}}fe(()=>c.sessionId,()=>{F.value=null,h.value=[],v.value=[],f.value={totalMessages:0,totalWords:0,uniqueWords:0},S.value=new Map}),fe(()=>[c.sessionId,c.timeFilter,F.value,x.value,_.value,Y.value,q.value,te.value],()=>{je()},{immediate:!0,deep:!0}),fe(()=>[c.sessionId,c.timeFilter,F.value,Y.value,q.value,te.value],()=>{Te()},{immediate:!0,deep:!0}),fe(C,()=>{x.value==="custom"&&je()},{deep:!0}),fe(W,()=>{je()});function Se(me){c.enableRecordNavigation&&s.openChatRecordDrawer({keywords:[me]})}return Re(async()=>{c.enableNodeNlpFeatures&&(Le(),await de(),oe())}),(me,O)=>{const V=_e,K=Ue,L=_a,P=ps,N=Xe;return r(),m("div",Gb,[c.enableNodeNlpFeatures&&ve.value&&!ee.value?(r(),m("div",Qb,[a("div",Jb,[p(V,{name:"i-heroicons-information-circle",class:"mt-0.5 shrink-0 text-xl text-primary-500"}),a("p",Xb,d(t(e)("quotes.wordcloud.dict.needDownload")),1)]),a("div",Zb,[(r(!0),m(ie,null,pe(G.value,ae=>(r(),U(K,{key:ae.id,size:"sm",color:"primary",loading:Z.value&&ce.value===ae.id,disabled:Z.value&&ce.value!==ae.id,icon:"i-heroicons-arrow-down-tray",onClick:se=>be(ae.id)},{default:B(()=>[le(d(t(e)(`quotes.wordcloud.dict.download_${ae.id}`,ae.label)),1)]),_:2},1032,["loading","disabled","onClick"]))),128))])])):R("",!0),te.value?(r(),m("div",e1,[g.value&&w.value.length===0?(r(),U(t(Kt),{key:0,text:t(e)("quotes.wordcloud.loading"),class:"py-8"},null,8,["text"])):R("",!0),p(gb,{"total-messages":f.value.totalMessages,"total-words":f.value.totalWords,"unique-words":f.value.uniqueWords,"top-words":w.value,"topic-words":v.value,"pos-tag-stats":E.value,"time-filter":c.timeFilter,onWordClick:Se},null,8,["total-messages","total-words","unique-words","top-words","topic-words","pos-tag-stats","time-filter"]),c.showSharedTopics?(r(),U(xb,{key:1,"session-id":c.sessionId,"time-filter":c.timeFilter,"dict-type":Y.value,"exclude-words":q.value,onWordClick:Se},null,8,["session-id","time-filter","dict-type","exclude-words"])):R("",!0),p(t(Ze),{title:t(e)("quotes.wordcloud.stats.wordsLabel"),"show-divider":!1},{default:B(()=>[a("div",t1,[a("div",a1,[a("div",s1,[g.value?(r(),U(t(Kt),{key:0,text:t(e)("quotes.wordcloud.loading"),class:"absolute inset-0 z-10 rounded-lg bg-white/80 dark:bg-page-dark/80"},null,8,["text"])):w.value.length===0?(r(),m("div",n1,[p(V,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"text-2xl"}),a("p",o1,d(t(e)("quotes.wordcloud.empty.title")),1),a("p",l1,d(t(e)("quotes.wordcloud.empty.description")),1)])):(r(),U(t(l),{key:2,data:k.value,height:"100%","max-words":y.value,"color-scheme":z1,"size-scale":b.value,loading:g.value,onWordClick:Se},null,8,["data","max-words","size-scale","loading"]))]),c.enableRecordNavigation?(r(),m("p",r1,d(t(e)("quotes.wordcloud.stats.clickHint")),1)):R("",!0)]),a("div",i1,[a("div",null,[a("h4",u1,d(t(e)("quotes.wordcloud.config.maxWords")),1),p(t(pt),{modelValue:y.value,"onUpdate:modelValue":O[0]||(O[0]=ae=>y.value=ae),size:"xs",items:J},null,8,["modelValue"])]),a("div",null,[a("h4",c1,d(t(e)("quotes.wordcloud.config.sizeScale")),1),p(t(pt),{modelValue:b.value,"onUpdate:modelValue":O[1]||(O[1]=ae=>b.value=ae),size:"xs",items:ke.value},null,8,["modelValue","items"])]),a("div",null,[a("h4",d1,d(t(e)("quotes.wordcloud.config.userFilter")),1),p(Av,{modelValue:F.value,"onUpdate:modelValue":O[2]||(O[2]=ae=>F.value=ae),"session-id":c.sessionId,class:"w-full"},null,8,["modelValue","session-id"])]),c.enableNodeNlpFeatures?(r(),m("div",m1,[a("h4",g1,d(t(e)("quotes.wordcloud.config.dict")),1),a("div",p1,[he.value.length>1?(r(),U(t(pt),{key:0,modelValue:Y.value,"onUpdate:modelValue":O[3]||(O[3]=ae=>Y.value=ae),size:"xs",items:he.value},null,8,["modelValue","items"])):R("",!0),(r(!0),m(ie,null,pe(j.value,ae=>(r(),m("div",{key:ae.id,class:"flex items-center gap-2"},[p(K,{size:"xs",variant:"soft",color:"primary",loading:Z.value&&ce.value===ae.id,disabled:Z.value&&ce.value!==ae.id,icon:"i-heroicons-arrow-down-tray",onClick:se=>be(ae.id)},{default:B(()=>[le(d(t(e)(`quotes.wordcloud.dict.download_${ae.id}`,t(e)("quotes.wordcloud.dict.download"))),1)]),_:2},1032,["loading","disabled","onClick"]),a("span",h1,d(t(e)("quotes.wordcloud.dict.downloadHint")),1)]))),128))])])):R("",!0),c.enableNodeNlpFeatures?(r(),m("div",f1,[a("h4",v1,d(t(e)("quotes.wordcloud.config.posFilter")),1),p(t(pt),{modelValue:x.value,"onUpdate:modelValue":O[4]||(O[4]=ae=>x.value=ae),size:"xs",items:Q.value},null,8,["modelValue","items"])])):R("",!0),a("div",y1,[p(L,{modelValue:_.value,"onUpdate:modelValue":O[5]||(O[5]=ae=>_.value=ae),label:t(e)("quotes.wordcloud.config.enableStopwords")},null,8,["modelValue","label"])]),c.enableNodeNlpFeatures&&x.value==="custom"?(r(),m("div",x1,[a("div",b1,[a("h4",k1,d(t(e)("quotes.wordcloud.posFilter.customHint")),1),a("div",_1,[p(K,{size:"xs",variant:"ghost",color:"neutral",onClick:O[6]||(O[6]=ae=>C.value=$.value.filter(se=>se.meaningful).map(se=>se.tag))},{default:B(()=>[le(d(t(e)("quotes.wordcloud.posFilter.selectMeaningful")),1)]),_:1}),p(K,{size:"xs",variant:"ghost",color:"neutral",onClick:O[7]||(O[7]=ae=>C.value=$.value.map(se=>se.tag))},{default:B(()=>[le(d(t(e)("quotes.wordcloud.posFilter.selectAll")),1)]),_:1}),p(K,{size:"xs",variant:"ghost",color:"neutral",onClick:O[8]||(O[8]=ae=>C.value=[])},{default:B(()=>[le(d(t(e)("quotes.wordcloud.posFilter.clearAll")),1)]),_:1})])]),a("div",w1,[(r(!0),m(ie,null,pe($e.value,ae=>(r(),U(P,{key:ae.value,color:C.value.includes(ae.value)?"primary":"neutral",variant:C.value.includes(ae.value)?"solid":"outline",class:"cursor-pointer select-none transition-colors",onClick:()=>{C.value.includes(ae.value)?C.value=C.value.filter(se=>se!==ae.value):C.value=[...C.value,ae.value]}},{default:B(()=>[le(d(ae.label)+" ",1),ae.count>0?(r(),m("span",$1,"("+d(ae.count)+")",1)):R("",!0)]),_:2},1032,["color","variant","onClick"]))),128))])])):R("",!0),a("div",null,[a("div",C1,[a("h4",S1,d(t(e)("wordFilter.filterScheme")),1),p(K,{size:"xs",variant:"ghost",color:"neutral",icon:"i-heroicons-cog-6-tooth","aria-label":t(e)("wordFilter.manage"),onClick:O[9]||(O[9]=ae=>t(u).openModal())},null,8,["aria-label"])]),p(t(pt),{modelValue:I.value,"onUpdate:modelValue":O[10]||(O[10]=ae=>I.value=ae),size:"xs",items:A.value},null,8,["modelValue","items"]),q.value.length>0?(r(),m("p",I1,d(t(e)("wordFilter.activeCount",{count:q.value.length})),1)):R("",!0)])])])]),_:1},8,["title"])])):R("",!0),c.enableNodeNlpFeatures?(r(),U(N,{key:2,open:ne.value,"onUpdate:open":O[12]||(O[12]=ae=>ne.value=ae),title:t(e)("quotes.wordcloud.dict.promptTitle")},{body:B(()=>[a("div",T1,[a("p",M1,d(t(e)("quotes.wordcloud.dict.promptDescription")),1),a("div",A1,[p(K,{variant:"ghost",color:"neutral",onClick:xe},{default:B(()=>[le(d(t(e)("quotes.wordcloud.dict.promptLater")),1)]),_:1}),p(K,{color:"primary",loading:Z.value,onClick:O[11]||(O[11]=ae=>be("zh-TW"))},{default:B(()=>[le(d(t(e)("quotes.wordcloud.dict.promptDownload")),1)]),_:1},8,["loading"])])])]),_:1},8,["open","title"])):R("",!0),p(Yb)])}}});function Jw(i){const l=M(()=>Ln(i)),e=M(()=>{const s=l.value;return s.length<2?!1:new Set(s.map(o=>Ee(o.date).year())).size>1}),n=M(()=>{const s=l.value,u=50;if(s.length<=u){const h=e.value?"YYYY/MM/DD":"MM/DD";return{labels:s.map(f=>Ee(f.date).format(h)),values:s.map(f=>f.messageCount)}}const o=Math.ceil(s.length/u),c=[],g=[];for(let h=0;h<s.length;h+=o){const f=s.slice(h,h+o);if(f.length===0)continue;const b=Math.floor(f.length/2),y=f[b].date,k=e.value?"YYYY/MM/DD":"MM/DD";c.push(Ee(y).format(k));const x=f.reduce((C,$)=>C+$.messageCount,0),_=Math.round(x/f.length);g.push(_)}return{labels:c,values:g}});return{isMultiYear:e,dailyChartData:n}}const q1=86400;function Gt(i){return typeof i=="number"&&Number.isFinite(i)}function L1(i){return Gt(i?.startTs)&&Gt(i?.endTs)}function $s(i,l){const e=l?.startTs??i?.start,n=l?.endTs??i?.end;return!Gt(e)||!Gt(n)||n<e?null:{start:e,end:n}}function D1(i,l=0){return!i||i.end<i.start?0:Math.max(Math.ceil((i.end-i.start)/q1),l,1)}function E1(i){return i?[Ee.unix(i.start).format("YYYY-MM-DD"),Ee.unix(i.end).format("YYYY-MM-DD")]:null}function B1(i,l){const{t:e}=we(),n=M(()=>$s(i.timeRange,i.timeFilter)),s=M(()=>L1(i.timeFilter)),u=M(()=>i.dailyActivity.filter(E=>E.messageCount>0).length),o=M(()=>D1(n.value,u.value)),c=M(()=>s.value?i.filteredMessageCount:i.session.messageCount),g=M(()=>s.value?i.filteredMemberCount??i.session.memberCount:i.session.memberCount),h=M(()=>o.value),f=M(()=>h.value===0?0:Math.round(c.value/h.value)),b=M(()=>o.value===0?0:Math.round(c.value/o.value)),y=M(()=>i.messageTypes.find(F=>F.type===1)?.count||0),k=M(()=>i.hourlyActivity.length?i.hourlyActivity.reduce((E,F)=>F.messageCount>E.messageCount?F:E,i.hourlyActivity[0]):null),x=M(()=>l.value.length?l.value.reduce((E,F)=>F.messageCount>E.messageCount?F:E,l.value[0]):null),_=M(()=>[e("common.weekday.mon"),e("common.weekday.tue"),e("common.weekday.wed"),e("common.weekday.thu"),e("common.weekday.fri"),e("common.weekday.sat"),e("common.weekday.sun")]),C=M(()=>{if(!l.value.length)return{weekday:0,weekend:0};const E=l.value.filter(A=>A.weekday>=1&&A.weekday<=5).reduce((A,I)=>A+I.messageCount,0),F=l.value.filter(A=>A.weekday>=6&&A.weekday<=7).reduce((A,I)=>A+I.messageCount,0),D=E+F;return{weekday:D>0?Math.round(E/D*100):0,weekend:D>0?Math.round(F/D*100):0}}),$=M(()=>i.dailyActivity.length?i.dailyActivity.reduce((E,F)=>F.messageCount>E.messageCount?F:E,i.dailyActivity[0]):null),S=M(()=>o.value),T=M(()=>S.value>0?Math.round(u.value/S.value*100):0),v=M(()=>{if(!i.hourlyActivity.length)return{count:0,ratio:0};const E=i.hourlyActivity.reduce((D,A)=>D+A.messageCount,0),F=i.hourlyActivity.filter(D=>D.hour>=0&&D.hour<=4).reduce((D,A)=>D+A.messageCount,0);return{count:F,ratio:E>0?Math.round(F/E*100):0}}),w=M(()=>{if(!i.dailyActivity.length)return 0;const E=[...i.dailyActivity].filter(A=>A.messageCount>0).sort((A,I)=>Ee(A.date).valueOf()-Ee(I.date).valueOf());if(E.length===0)return 0;let F=1,D=1;for(let A=1;A<E.length;A++){const I=Ee(E[A-1].date);Ee(E[A].date).diff(I,"day")===1?D++:(D>F&&(F=D),D=1)}return D>F&&(F=D),F});return{durationDays:o,displayMessageCount:c,displayMemberCount:g,dailyAvgMessages:b,totalDurationDays:h,totalDailyAvgMessages:f,imageCount:y,peakHour:k,peakWeekday:x,weekdayNames:_,weekdayVsWeekend:C,peakDay:$,activeDays:u,totalDays:S,activeRate:T,lateNightChat:v,maxConsecutiveDays:w}}function F1(i){const l=z([]);let e=0;async function n(){const s=++e,u=i.sessionId();if(!u){l.value=[];return}try{const o=await Ke().getWeekdayActivity(u,i.timeFilter());s===e&&(l.value=o)}catch(o){s===e&&console.error("Failed to load weekday activity:",o)}}return fe([i.sessionId,i.timeFilter],()=>n(),{immediate:!0,deep:!0}),{weekdayActivity:l}}const R1={key:0,class:"relative z-10 px-5 pb-5 pt-2 sm:px-8 sm:pb-6"},V1={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},O1={class:"min-w-0"},P1={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-gray-400"},j1={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-gray-500"},N1={key:1,class:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4"},U1={class:"text-sm text-gray-500"},W1={class:"text-sm text-gray-500"},H1={class:"ml-1 font-semibold text-pink-500"},K1={class:"text-sm text-gray-500"},Y1={class:"text-sm text-gray-500"},G1={class:"text-sm text-gray-500"},Q1={class:"text-sm text-gray-500"},J1={class:"text-sm text-gray-500"},X1={class:"text-sm text-gray-500"},Z1=ue({__name:"OverviewStatCards",props:{dailyAvgMessages:{},durationDays:{},imageCount:{},peakHour:{},peakWeekday:{},weekdayNames:{},weekdayVsWeekend:{},peakDay:{},activeDays:{},totalDays:{},activeRate:{},lateNightCount:{},lateNightRatio:{},maxConsecutiveDays:{},flat:{type:Boolean,default:!1}},setup(i){const{t:l}=we(),e=i,n=M(()=>[{icon:"i-heroicons-chat-bubble-left-right",label:l("analysis.overview.statCards.dailyAvgMessages"),value:l("analysis.overview.statCards.messagesCount",{count:e.dailyAvgMessages}),subtext:l("analysis.overview.statCards.daysCount",{count:e.durationDays}),colorClass:"text-blue-600 dark:text-blue-400"},{icon:"i-heroicons-photo",label:l("analysis.overview.statCards.imageMessages"),value:l("analysis.overview.statCards.imagesCount",{count:e.imageCount}),subtext:`${l("analysis.overview.statCards.peakHour")} ${e.peakHour?.hour||0}:00`,colorClass:"text-pink-600 dark:text-pink-400"},{icon:"i-heroicons-calendar-days",label:l("analysis.overview.statCards.mostActiveWeekday"),value:e.peakWeekday?e.weekdayNames[e.peakWeekday.weekday-1]:"-",subtext:l("analysis.overview.statCards.messagesOnDay",{count:e.peakWeekday?.messageCount??0}),colorClass:"text-amber-600 dark:text-amber-400"},{icon:"i-heroicons-sun",label:l("analysis.overview.statCards.weekendActivity"),value:`${e.weekdayVsWeekend.weekend}%`,subtext:l("analysis.overview.statCards.weekendRatio"),colorClass:"text-green-600 dark:text-green-400"},{icon:"i-heroicons-fire",label:l("analysis.overview.statCards.mostActiveDate"),value:e.peakDay?Ee(e.peakDay.date).format("MM/DD"):"-",subtext:l("analysis.overview.statCards.messagesOnDay",{count:e.peakDay?.messageCount??0}),colorClass:"text-red-600 dark:text-red-400"},{icon:"i-heroicons-moon",label:l("analysis.overview.statCards.lateNightChat"),value:l("analysis.overview.statCards.messagesCount",{count:e.lateNightCount}),subtext:l("analysis.overview.statCards.lateNightRatio",{ratio:e.lateNightRatio}),colorClass:"text-indigo-600 dark:text-indigo-400"},{icon:"i-heroicons-bolt",label:l("analysis.overview.statCards.consecutiveStreak"),value:l("analysis.overview.statCards.daysStreak",{count:e.maxConsecutiveDays}),subtext:l("analysis.overview.statCards.longestStreak"),colorClass:"text-amber-600 dark:text-amber-400"},{icon:"i-heroicons-chart-bar",label:l("analysis.overview.statCards.activityRate"),value:`${e.activeRate}%`,subtext:l("analysis.overview.statCards.activeDaysRatio"),colorClass:"text-gray-900 dark:text-white"}]);return(s,u)=>{const o=_e;return i.flat?(r(),m("div",R1,[u[0]||(u[0]=a("div",{class:"mb-3 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},"Key Metrics")],-1)),a("div",V1,[(r(!0),m(ie,null,pe(n.value,c=>(r(),m("div",{key:c.icon+c.label,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[p(o,{name:c.icon,class:X(["mt-0.5 h-3.5 w-3.5 shrink-0",c.colorClass])},null,8,["name","class"]),a("div",O1,[a("div",{class:X(["truncate font-mono text-sm font-black leading-tight tabular-nums",c.colorClass])},d(c.value),3),a("div",P1,d(c.label),1),a("div",j1,d(c.subtext),1)])]))),128))])])):(r(),m("div",N1,[p(t(ot),{label:t(l)("analysis.overview.statCards.dailyAvgMessages"),value:t(l)("analysis.overview.statCards.messagesCount",{count:i.dailyAvgMessages}),icon:"i-heroicons-chat-bubble-left-right","icon-bg":"blue"},{subtext:B(()=>[a("span",U1,d(t(l)("analysis.overview.statCards.daysCount",{count:i.durationDays})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.imageMessages"),value:t(l)("analysis.overview.statCards.imagesCount",{count:i.imageCount}),icon:"i-heroicons-photo","icon-bg":"pink"},{subtext:B(()=>[a("span",W1,d(t(l)("analysis.overview.statCards.peakHour")),1),a("span",H1,d(i.peakHour?.hour||0)+":00",1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.mostActiveWeekday"),value:i.peakWeekday?i.weekdayNames[i.peakWeekday.weekday-1]:"-",icon:"i-heroicons-calendar-days","icon-bg":"amber"},{subtext:B(()=>[a("span",K1,d(t(l)("analysis.overview.statCards.messagesOnDay",{count:i.peakWeekday?.messageCount??0})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.weekendActivity"),value:`${i.weekdayVsWeekend.weekend}%`,icon:"i-heroicons-sun","icon-bg":"green"},{subtext:B(()=>[a("span",Y1,d(t(l)("analysis.overview.statCards.weekendRatio")),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.mostActiveDate"),value:i.peakDay?t(Ee)(i.peakDay.date).format("MM/DD"):"-",icon:"i-heroicons-fire","icon-bg":"red"},{subtext:B(()=>[a("span",G1,d(t(l)("analysis.overview.statCards.messagesOnDay",{count:i.peakDay?.messageCount??0})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.lateNightChat"),value:t(l)("analysis.overview.statCards.messagesCount",{count:i.lateNightCount}),icon:"i-heroicons-moon","icon-bg":"blue"},{subtext:B(()=>[a("span",Q1,d(t(l)("analysis.overview.statCards.lateNightRatio",{ratio:i.lateNightRatio})),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.consecutiveStreak"),value:t(l)("analysis.overview.statCards.daysStreak",{count:i.maxConsecutiveDays}),icon:"i-heroicons-bolt","icon-bg":"amber"},{subtext:B(()=>[a("span",J1,d(t(l)("analysis.overview.statCards.longestStreak")),1)]),_:1},8,["label","value"]),p(t(ot),{label:t(l)("analysis.overview.statCards.activityRate"),value:`${i.activeRate}%`,icon:"i-heroicons-chart-bar","icon-bg":"gray"},{subtext:B(()=>[a("span",X1,d(t(l)("analysis.overview.statCards.activeDaysRatio")),1)]),_:1},8,["label","value"])]))}}}),ek={class:"relative z-10 px-5 pt-6 pb-4 sm:px-8 sm:pt-8"},tk={class:"text-2xl font-bold tracking-tight text-gray-900 sm:text-3xl dark:text-gray-100"},ak={class:"mt-4 flex flex-col gap-5 sm:flex-row sm:items-start sm:gap-24"},sk={class:"min-w-0 flex flex-col gap-2 text-sm font-medium text-gray-500 dark:text-gray-400"},nk={class:"flex items-center gap-2"},ok={class:"flex h-6 w-6 shrink-0 items-center justify-center"},lk={class:"whitespace-nowrap"},rk={key:0,class:"flex items-center gap-2"},ik={class:"flex h-6 w-6 shrink-0 items-center justify-center"},uk={class:"font-mono text-xs opacity-90 whitespace-nowrap"},ck={class:"grid grid-cols-2 gap-x-8 gap-y-4 sm:flex sm:shrink-0 sm:gap-6"},dk={class:"flex flex-col gap-1 text-center"},mk={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},gk={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},pk={class:"flex flex-col gap-1 text-center"},hk={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},fk={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},vk={class:"flex flex-col gap-1 text-center"},yk={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},xk={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},bk={class:"flex flex-col gap-1 text-center"},kk={class:"text-2xl font-black font-mono tracking-tight text-gray-900 dark:text-white"},_k={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},wk={class:"relative z-10 px-5 pb-2 sm:px-8"},$k={class:"overflow-x-auto overflow-y-hidden scrollbar-hide py-1"},Xw=ue({__name:"OverviewIdentityCard",props:{session:{},dailyActivity:{},messageTypes:{},hourlyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{},capturable:{type:Boolean,default:!0}},setup(i){ta([hs,eo,fs,za,vs,aa]);const{t:l,locale:e}=we(),n=Zt(),s=i,{weekdayActivity:u}=F1({sessionId:()=>s.session.id,timeFilter:()=>s.timeFilter}),{durationDays:o,displayMessageCount:c,dailyAvgMessages:g,imageCount:h,peakHour:f,peakWeekday:b,weekdayNames:y,weekdayVsWeekend:k,peakDay:x,activeDays:_,totalDays:C,activeRate:$,lateNightChat:S,maxConsecutiveDays:T}=B1(s,u),v=z(null);let w=null;const E=M(()=>$s(s.timeRange,s.timeFilter)),F=M(()=>E.value?to(E.value.start,E.value.end,"YYYY/MM/DD"):""),D=M(()=>{const H=E1(E.value);if(H)return H;const ve=(he=>he.toISOString().slice(0,10))(new Date);return[ve,ve]}),A=M(()=>{const[H,W]=D.value,re=new Date(H+"T00:00:00Z"),ve=new Date(W+"T00:00:00Z"),he=new Map;s.dailyActivity.filter(j=>j.date>=H&&j.date<=W).forEach(j=>he.set(j.date,j.messageCount));const ee=[],te=new Date(re);for(;te<=ve;){const j=te.toISOString().slice(0,10),de=he.get(j)||0;ee.push({value:[j,de],itemStyle:de===0?{color:Y.value}:void 0}),te.setUTCDate(te.getUTCDate()+1)}return ee}),I=M(()=>s.dailyActivity.length===0?10:Math.max(...s.dailyActivity.map(H=>H.messageCount),1)),q={light:["#fce4ec","#f8a4b8","#f06292","#e91e63"],dark:["rgba(238, 69, 103, 0.15)","rgba(238, 69, 103, 0.45)","rgba(238, 69, 103, 0.75)","rgba(238, 69, 103, 1)"]},Y=M(()=>n.value?"rgba(255, 255, 255, 0.04)":"#ebedf0"),G=M(()=>({tooltip:{trigger:"item",formatter:H=>{const W=H.value[0],re=H.value[1];return`${W}<br/>${l("views.message.calendarTooltipMessages")}: ${re}`}},visualMap:{min:1,max:I.value,calculable:!1,orient:"horizontal",left:"center",bottom:0,itemWidth:10,itemHeight:80,text:[`${I.value}`,"1"],inRange:{color:n.value?q.dark:q.light},textStyle:{color:n.value?"#8b949e":"#6b7280",fontSize:10},show:!0},calendar:{top:20,left:30,cellSize:[13,13],range:D.value,itemStyle:{borderWidth:0,color:"transparent"},yearLabel:{show:!1},monthLabel:{show:!0,color:n.value?"#8b949e":"#6b7280",fontSize:10,nameMap:[l("common.month.jan"),l("common.month.feb"),l("common.month.mar"),l("common.month.apr"),l("common.month.may"),l("common.month.jun"),l("common.month.jul"),l("common.month.aug"),l("common.month.sep"),l("common.month.oct"),l("common.month.nov"),l("common.month.dec")]},dayLabel:{show:!0,firstDay:1,color:n.value?"#8b949e":"#9ca3af",fontSize:10,nameMap:[l("common.weekday.sun"),l("common.weekday.mon"),l("common.weekday.tue"),l("common.weekday.wed"),l("common.weekday.thu"),l("common.weekday.fri"),l("common.weekday.sat")]},splitLine:{show:!1}},series:[{type:"custom",coordinateSystem:"calendar",data:A.value,renderItem:(H,W)=>{const re=W.coord(W.value(0)),ve=H.coordSys.cellWidth,he=H.coordSys.cellHeight,ee=Math.min(ve,he)-3;return{type:"rect",shape:{x:re[0]-ee/2,y:re[1]-ee/2,width:ee,height:ee,r:3},style:{fill:W.visual("color")}}},itemStyle:{borderColor:n.value?"transparent":"rgba(0,0,0,0.02)",borderWidth:1}}]}));function Z(){v.value&&(w=sa(v.value,void 0,{renderer:"canvas"}),w.setOption({backgroundColor:"transparent",...G.value}))}function ce(){w&&w.setOption({backgroundColor:"transparent",...G.value},{notMerge:!0})}function ne(){w?.resize()}return fe([()=>s.dailyActivity,e,D],()=>ce()),fe(n,()=>{w?.dispose(),Z()}),Re(()=>{Z(),window.addEventListener("resize",ne)}),tt(()=>{window.removeEventListener("resize",ne),w?.dispose()}),(H,W)=>{const re=_e;return r(),U(t(na),{capturable:i.capturable},{default:B(()=>[a("div",ek,[a("h2",tk,d(i.session.name),1),a("div",ak,[a("div",sk,[a("div",nk,[a("div",ok,[i.session.type==="group"?(r(),U(re,{key:0,name:"i-heroicons-user-group",class:"h-4 w-4 opacity-70"})):(r(),U(re,{key:1,name:"i-heroicons-user",class:"h-4 w-4 opacity-70"}))]),a("span",lk,d(i.session.platform.toUpperCase())+" · "+d(i.session.type==="private"?t(l)("analysis.overview.identity.privateChat"):t(l)("analysis.overview.identity.groupChat")),1)]),F.value?(r(),m("div",rk,[a("div",ik,[p(re,{name:"i-heroicons-calendar",class:"h-4 w-4 opacity-70"})]),a("span",uk,d(F.value),1)])):R("",!0)]),a("div",ck,[a("div",dk,[a("span",mk,d(t(c).toLocaleString()),1),a("span",gk,d(t(l)("analysis.overview.identity.totalMessages")),1)]),a("div",pk,[a("span",hk,d(t(o).toLocaleString()),1),a("span",fk,d(t(l)("analysis.overview.identity.durationDays")),1)]),a("div",vk,[a("span",yk,d(t(_).toLocaleString()),1),a("span",xk,d(t(l)("analysis.overview.identity.activeDays")),1)]),a("div",bk,[a("span",kk,d(t(g).toLocaleString()),1),a("span",_k,d(t(l)("analysis.overview.identity.dailyAvgMessages")),1)])])])]),a("div",wk,[W[0]||(W[0]=a("div",{class:"mb-2 flex items-center justify-between"},[a("span",{class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"}," Activity Heatmap ")],-1)),a("div",$k,[a("div",{ref_key:"chartRef",ref:v,class:"h-[140px] min-w-[700px] lg:w-full"},null,512)])]),p(Z1,{flat:"","daily-avg-messages":t(g),"duration-days":t(o),"image-count":t(h),"peak-hour":t(f),"peak-weekday":t(b),"weekday-names":t(y),"weekday-vs-weekend":t(k),"peak-day":t(x),"active-days":t(_),"total-days":t(C),"active-rate":t($),"late-night-count":t(S).count,"late-night-ratio":t(S).ratio,"max-consecutive-days":t(T)},null,8,["daily-avg-messages","duration-days","image-count","peak-hour","peak-weekday","weekday-names","weekday-vs-weekend","peak-day","active-days","total-days","active-rate","late-night-count","late-night-ratio","max-consecutive-days"])]),_:1},8,["capturable"])}}}),Ck={class:"p-3 sm:p-5"},Zw=ue({__name:"DailyTrendCard",props:{dailyActivity:{},dailyChartData:{},capturable:{type:Boolean,default:!0}},setup(i){const{t:l}=we();return(e,n)=>i.dailyActivity.length>0?(r(),U(t(Ze),{key:0,title:t(l)("analysis.overview.dailyTrend.title"),capturable:i.capturable,"show-divider":!1},{default:B(()=>[a("div",Ck,[p(t(va),{data:i.dailyChartData,height:288},null,8,["data"])])]),_:1},8,["title","capturable"])):R("",!0)}}),Sk={slots:{root:["relative inline-flex items-center","flex-wrap"],base:["rounded-md","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",item:'px-1.5 py-0.5 rounded-sm font-medium inline-flex items-center gap-0.5 ring ring-inset ring-accented bg-elevated text-default data-disabled:cursor-not-allowed data-disabled:opacity-75 wrap-anywhere data-[state="active"]:bg-accented',itemText:"",itemDelete:["inline-flex items-center rounded-xs text-dimmed hover:text-default hover:bg-accented/75 disabled:pointer-events-none","transition-colors"],itemDeleteIcon:"shrink-0",input:"flex-1 border-0 bg-transparent placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:"px-2 py-1 text-sm/4 gap-1",leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",item:"text-[10px]/3",itemDeleteIcon:"size-3"},sm:{base:"px-2.5 py-1.5 text-sm/4 gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",item:"text-[10px]/3",itemDeleteIcon:"size-3"},md:{base:"px-2.5 py-1.5 text-base/5 gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",item:"text-xs",itemDeleteIcon:"size-3.5"},lg:{base:"px-3 py-2 text-base/5 gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",item:"text-xs",itemDeleteIcon:"size-3.5"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",item:"text-sm",itemDeleteIcon:"size-4"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated has-focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated has-focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent has-focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 has-focus-visible:outline-3 has-focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 has-focus-visible:outline-3 has-focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 has-focus-visible:outline-3 has-focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 has-focus-visible:outline-3 has-focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 has-focus-visible:outline-3 has-focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 has-focus-visible:outline-3 has-focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 has-focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 has-focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 has-focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 has-focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 has-focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 has-focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 has-focus-visible:outline-3 has-focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 has-focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},Ik=Object.assign({inheritAttrs:!1},{__name:"InputTags",props:{as:{type:null,required:!1},placeholder:{type:String,required:!1},maxLength:{type:Number,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},deleteIcon:{type:null,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},modelValue:{type:[Array,null],required:!1},defaultValue:{type:Array,required:!1},addOnPaste:{type:Boolean,required:!1},addOnTab:{type:Boolean,required:!1},addOnBlur:{type:Boolean,required:!1},duplicate:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},delimiter:{type:null,required:!1},max:{type:Number,required:!1},id:{type:String,required:!1},convertValue:{type:Function,required:!1},displayValue:{type:Function,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:["change","blur","focus","update:modelValue","invalid","addTag","removeTag"],setup(i,{expose:l,emit:e}){const n=i,s=e,u=Qt(),o=Ca("inputTags",n),c=Ia(),g=rs(is(o,"as","addOnPaste","addOnTab","addOnBlur","duplicate","delimiter","max","convertValue","displayValue","required"),s),{emitFormBlur:h,emitFormFocus:f,emitFormChange:b,emitFormInput:y,size:k,color:x,id:_,name:C,highlight:$,disabled:S,ariaAttrs:T}=Sa(n),{orientation:v,size:w}=us(n),{isLeading:E,isTrailing:F,leadingIconName:D,trailingIconName:A}=Ta(o),I=M(()=>w.value||k.value),q=M(()=>$t({extend:$t(Sk),...c.ui?.inputTags||{}})({color:x.value??o.color,variant:o.variant,size:I?.value??o.size,loading:o.loading,highlight:$.value??o.highlight,fixed:o.fixed,leading:E.value||!!o.avatar||!!u.leading,trailing:F.value||!!u.trailing,fieldGroup:v.value})),Y=At("inputRef");function G(){o.autofocus&&Y.value?.$el?.focus()}Re(()=>{setTimeout(()=>{G()},o.autofocusDelay)});function Z(H){if(cs(o.modelValue)===H)return;const W=new Event("change",{target:{value:H}});s("change",W),b(),y()}function ce(H){s("blur",H),h()}function ne(H){s("focus",H),f()}return l({inputRef:We(()=>Y.value?.$el)}),(H,W)=>(r(),U(t($l),ze({id:t(_),"model-value":t(o).modelValue,"default-value":t(o).defaultValue,"data-slot":"root",class:q.value.root({class:[q.value.base({class:t(o).ui?.base}),t(o).ui?.root,t(o).class]})},t(g),{name:t(C),disabled:t(S),"onUpdate:modelValue":Z}),{default:B(({modelValue:re})=>[(r(!0),m(ie,null,pe(re,(ve,he)=>(r(),U(t(Ml),{key:he,value:ve,"data-slot":"item",class:X(q.value.item({class:[t(o).ui?.item]}))},{default:B(()=>[p(t(Ll),{"data-slot":"itemText",class:X(q.value.itemText({class:[t(o).ui?.itemText]}))},{default:B(()=>[u["item-text"]?ye(H.$slots,"item-text",{key:0,item:ve,index:he,ui:q.value}):R("",!0)]),_:2},1032,["class"]),p(t(zl),{"data-slot":"itemDelete",class:X(q.value.itemDelete({class:[t(o).ui?.itemDelete]})),disabled:t(S)},{default:B(()=>[ye(H.$slots,"item-delete",{item:ve,index:he,ui:q.value},()=>[p(_e,{name:t(o).deleteIcon||t(c).ui.icons.close,"data-slot":"itemDeleteIcon",class:X(q.value.itemDeleteIcon({class:[t(o).ui?.itemDeleteIcon]}))},null,8,["name","class"])])]),_:2},1032,["class","disabled"])]),_:2},1032,["value","class"]))),128)),p(t(Sl),ze({ref_key:"inputRef",ref:Y},{...H.$attrs,...t(T)},{placeholder:t(o).placeholder,"max-length":t(o).maxLength,"data-slot":"input",class:q.value.input({class:t(o).ui?.input}),onBlur:ce,onFocus:ne}),null,16,["placeholder","max-length","class"]),ye(H.$slots,"default",{ui:q.value}),t(E)||t(o).avatar||u.leading?(r(),m("span",{key:0,"data-slot":"leading",class:X(q.value.leading({class:t(o).ui?.leading}))},[ye(H.$slots,"leading",{ui:q.value},()=>[t(E)&&t(D)?(r(),U(_e,{key:0,name:t(D),"data-slot":"leadingIcon",class:X(q.value.leadingIcon({class:t(o).ui?.leadingIcon}))},null,8,["name","class"])):t(o).avatar?(r(),U(Ht,ze({key:1,size:t(o).ui?.leadingAvatarSize||q.value.leadingAvatarSize()},t(o).avatar,{"data-slot":"leadingAvatar",class:q.value.leadingAvatar({class:t(o).ui?.leadingAvatar})}),null,16,["size","class"])):R("",!0)])],2)):R("",!0),t(F)||u.trailing?(r(),m("span",{key:1,"data-slot":"trailing",class:X(q.value.trailing({class:t(o).ui?.trailing}))},[ye(H.$slots,"trailing",{ui:q.value},()=>[t(A)?(r(),U(_e,{key:0,name:t(A),"data-slot":"trailingIcon",class:X(q.value.trailingIcon({class:t(o).ui?.trailingIcon}))},null,8,["name","class"])):R("",!0)])],2)):R("",!0)]),_:3},16,["id","model-value","default-value","class","name","disabled"]))}}),Tk={class:"flex items-center justify-between gap-3"},Mk={class:"flex items-center gap-2"},Ak={class:"text-sm font-medium text-gray-900 dark:text-white"},zk={class:"text-xs text-gray-500 dark:text-gray-400"},qk=ue({__name:"OwnerEntryCard",props:{sessionId:{},members:{},chatType:{}},setup(i){const{t:l}=we(),e=Dn(),n=i,s=z(!1);function u(g){return g.groupNickname||g.accountName||g.platformId}const o=M(()=>{const g=e.currentSession?.ownerId;return g&&n.members.find(h=>h.platformId===g)||null}),c=M(()=>o.value?u(o.value):e.currentSession?.ownerId??"");return(g,h)=>{const f=_e,b=Ue;return r(),U(t(mt),{class:"w-150 p-3"},{default:B(()=>[a("div",Tk,[a("div",Mk,[a("div",{class:X(["flex h-8 w-8 items-center justify-center rounded-full bg-linear-to-br",i.chatType==="group"?"from-pink-400 to-pink-600":"from-purple-400 to-purple-600"])},[p(f,{name:"i-heroicons-user",class:"h-4 w-4 text-white"})],2),a("div",null,[a("h3",Ak,d(c.value?t(l)("members.ownerPrompt.currentOwner",{name:c.value}):t(l)("members.ownerPrompt.choose")),1),a("p",zk,d(t(l)("members.ownerPrompt.helper")),1)])]),p(b,{size:"sm",variant:c.value?"outline":"solid",color:"primary",onClick:h[0]||(h[0]=y=>s.value=!0)},{default:B(()=>[le(d(c.value?t(l)("members.ownerPrompt.change"):t(l)("members.ownerPrompt.choose")),1)]),_:1},8,["variant"])]),p(En,{modelValue:s.value,"onUpdate:modelValue":h[1]||(h[1]=y=>s.value=y),"session-id":i.sessionId,"chat-type":i.chatType},null,8,["modelValue","session-id","chat-type"])]),_:1})}}}),Lk={key:0,class:"mb-6"},Dk={class:"flex items-center gap-3"},Ek={class:"text-xl font-bold text-gray-900 dark:text-white"},Bk={class:"text-sm text-gray-500 dark:text-gray-400"},Fk={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Rk={key:0,class:"flex items-center gap-2"},Vk={class:"text-xs text-gray-500 dark:text-gray-400"},Ok={key:0,class:"flex flex-1 items-center justify-center"},Pk={key:1,class:"flex flex-1 flex-col items-center justify-center gap-3"},jk={class:"text-sm text-gray-500 dark:text-gray-400"},Nk={key:2,class:"flex flex-1 flex-col items-center justify-center"},Uk={class:"text-gray-500 dark:text-gray-400"},Wk={key:3,class:"min-h-0 flex-1 overflow-x-auto overflow-y-hidden"},Hk={key:0,"aria-hidden":"true"},Kk={class:"flex shrink-0 flex-col leading-none"},Yk={class:"flex shrink-0 flex-col leading-none"},Gk={class:"flex shrink-0 flex-col leading-none"},Qk={class:"inline-flex items-center gap-1.5"},Jk={class:"text-right"},Xk=["data-index","onClick"],Zk={key:0,class:"flex justify-center"},e_={class:"flex min-w-0 items-center gap-2.5"},t_={class:"min-w-0"},a_=["title"],s_=["title"],n_=["title"],o_={class:"text-right font-mono text-sm font-semibold tabular-nums text-gray-900 dark:text-white"},l_=["title"],r_={class:"flex justify-end gap-1"},i_={class:"p-6 text-center"},u_={class:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/30"},c_={class:"mb-2 text-lg font-semibold text-gray-900 dark:text-white"},d_={class:"mb-6 text-sm text-gray-500 dark:text-gray-400"},m_={class:"flex justify-center gap-3"},g_={class:"p-6 text-center"},p_={class:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/30"},h_={class:"mb-2 text-lg font-semibold text-gray-900 dark:text-white"},f_={class:"mb-6 text-sm text-gray-500 dark:text-gray-400"},v_={class:"flex justify-center gap-3"},y_={class:"p-6"},x_={class:"mb-4 flex items-center gap-3"},b_={class:"flex h-10 w-10 items-center justify-center rounded-full bg-amber-100 dark:bg-amber-900/30"},k_={class:"text-lg font-semibold text-gray-900 dark:text-white"},__={class:"mb-2 text-sm text-gray-600 dark:text-gray-400"},w_={class:"mb-6 text-xs text-amber-700 dark:text-amber-300"},$_={class:"flex justify-end gap-2"},C_=64,S_=ue({__name:"MemberList",props:{sessionId:{},showHeader:{type:Boolean,default:!0},chatType:{default:"group"}},emits:["data-changed"],setup(i,{emit:l}){const{t:e}=we(),n=Ke(),s=bt(),u=i,o=l,c=z([]),g=z(!1),h=z(!1),f=z(""),b=M(()=>jn(u.chatType,c.value.length)),y=M(()=>u.chatType==="group"?"":b.value?"member-table-grid--private":"member-table-grid--private-without-selection"),k=z(null),x=z(!1),_=z(!1),C=z(!1),$=z(!1),S=z(!1),{sortState:T,toggleSort:v,resetSort:w,isSortActive:E}=Bn({initialState:{field:"messageCount",direction:"desc"}}),F=z(new Set);let D=0;function A(V,K){const L=K instanceof Error?K:new Error(String(K));console.error(V,L),Pn(`${V} ${L.message}`,L.stack)}function I(V){return V.groupNickname||V.accountName||V.platformId}function q(V){return I(V).slice(0,1)}function Y(V){s.openChatRecordDrawer({sessionId:u.sessionId,memberId:V.id,memberName:I(V)})}const G=M(()=>Nn(c.value,f.value,T.value)),{selectedIds:Z,setSelection:ce,clearSelection:ne,handleRowClick:H,handleRowMouseDown:W}=Fn({rows:G,getRowId:V=>V.id}),re=M(()=>c.value.filter(V=>Z.value.has(V.id))),ve=M(()=>re.value.length===2),he=M(()=>re.value.reduce((V,K)=>V+K.messageCount,0));function ee(V,K,L){b.value&&H(V,K,L)}function te(V){b.value&&W(V)}const j=M(()=>{if(re.value.length!==2)return null;const[V,K]=re.value;return K.messageCount>V.messageCount||K.messageCount===V.messageCount&&K.id<V.id?{primary:K,secondary:V}:{primary:V,secondary:K}});function de(V,K){return E(V,K)?"text-primary-500 dark:text-primary-400":"text-gray-300 dark:text-gray-600"}const be=z(null),xe=Rn(M(()=>({count:G.value.length,getScrollElement:()=>be.value,estimateSize:()=>C_,overscan:8,getItemKey:V=>G.value[V]?.id??V}))),oe=M(()=>xe.value.getVirtualItems().map(V=>({virtualItem:V,member:G.value[V.index]}))),Q=M(()=>xe.value.getTotalSize());function J(V){V instanceof HTMLElement&&xe.value.measureElement(V)}async function ge(){await De(),be.value?.scrollTo({top:0}),xe.value.measure()}async function ke(){const V=u.sessionId;if(!V)return;const K=++D;g.value=!0,h.value=!1;try{const L=await n.getMembers(V);if(K!==D||V!==u.sessionId)return;c.value=L,await De(),xe.value.measure()}catch(L){K===D&&(h.value=!0),A("Failed to load member list:",L)}finally{K===D&&(g.value=!1)}}function $e(V,K){const L=new Set(F.value);K?L.add(V):L.delete(V),F.value=L}async function Le(V,K){const L=u.sessionId,P=JSON.parse(JSON.stringify(K)),N=JSON.stringify(V.aliases),ae=JSON.stringify(P);if(N!==ae){$e(V.id,!0);try{if(await n.updateMemberAliases(L,V.id,P)&&L===u.sessionId){const Ve=c.value.findIndex(qe=>qe.id===V.id);Ve!==-1&&(c.value[Ve]={...c.value[Ve],aliases:P},await De(),xe.value.measure())}}catch(se){A("Failed to save member aliases:",se)}finally{$e(V.id,!1)}}}function Be(V){k.value=V}function Te(){k.value=null}async function Pe(){if(k.value){x.value=!0;try{const V=k.value.id;if(await n.deleteMember(u.sessionId,V)){const L=new Set(Z.value);L.delete(V),ce(L),await ke(),o("data-changed")}}catch(V){A("Failed to delete member:",V)}finally{x.value=!1,k.value=null}}}function je(){Z.value.size!==0&&(_.value=!0)}async function Se(){const V=u.sessionId,K=Array.from(Z.value);if(K.length!==0){C.value=!0;try{await n.deleteMembers(V,K)&&V===u.sessionId&&(_.value=!1,ne(),await ke(),o("data-changed"))}catch(L){A("Failed to delete selected members:",L)}finally{C.value=!1}}}function me(){ve.value&&($.value=!0)}async function O(){if(j.value){S.value=!0;try{await n.mergeMembers(u.sessionId,j.value.primary.id,j.value.secondary.id)&&($.value=!1,ne(),await ke(),o("data-changed"))}catch(V){A("Failed to merge members:",V)}finally{S.value=!1}}}return fe([f,T],ge),fe(b,V=>{V||ne()}),fe(()=>u.sessionId,()=>{D+=1,c.value=[],h.value=!1,F.value=new Set,f.value="",w(),ne(),ge(),ke()},{immediate:!0}),tt(()=>{D+=1}),(V,K)=>{const L=Ue,P=Bt,N=_e,ae=St,se=_a,Ve=Ik,qe=Xe;return r(),m("div",{class:X(["main-content",u.showHeader?"max-w-5xl p-6":"flex h-full max-w-none flex-col overflow-hidden p-4"])},[u.showHeader?(r(),m("div",Lk,[a("div",Dk,[a("div",null,[a("h2",Ek,d(t(e)(u.chatType==="private"?"members.private.title":"members.list.title")),1),a("p",Bk,d(t(e)(u.chatType==="private"?"members.private.description":"members.list.description",{count:c.value.length})),1)])])])):R("",!0),p(qk,{class:"mb-6","session-id":i.sessionId,members:c.value,"chat-type":u.chatType},null,8,["session-id","members","chat-type"]),a("div",Fk,[p(P,{modelValue:f.value,"onUpdate:modelValue":K[1]||(K[1]=Me=>f.value=Me),placeholder:t(e)("members.list.searchPlaceholder"),icon:"i-heroicons-magnifying-glass",class:"w-full md:w-100"},Vn({_:2},[f.value?{name:"trailing",fn:B(()=>[p(L,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs",onClick:K[0]||(K[0]=Me=>f.value="")})]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),b.value?(r(),m("div",Rk,[g.value&&c.value.length>0?(r(),U(N,{key:0,name:"i-heroicons-arrow-path",class:"h-4 w-4 animate-spin text-primary-500"})):R("",!0),a("span",Vk,d(t(e)("members.list.selectedCount",{count:t(Z).size})),1),p(L,{icon:"i-heroicons-link",size:"sm",color:"primary",disabled:!ve.value,onClick:me},{default:B(()=>[le(d(t(e)("members.list.mergeSelected")),1)]),_:1},8,["disabled"]),p(L,{icon:"i-heroicons-trash",size:"sm",color:"error",variant:"outline",disabled:t(Z).size===0,onClick:je},{default:B(()=>[le(d(t(e)("members.list.deleteSelected")),1)]),_:1},8,["disabled"])])):R("",!0)]),a("div",{class:X(["flex min-h-[240px] flex-col overflow-hidden rounded-lg border border-gray-200/60 bg-card-bg dark:border-white/5 dark:bg-card-dark",u.showHeader?"h-[500px]":"min-h-0 flex-1"])},[g.value&&c.value.length===0?(r(),m("div",Ok,[p(N,{name:"i-heroicons-arrow-path",class:"h-8 w-8 animate-spin text-primary-500"})])):h.value&&c.value.length===0?(r(),m("div",Pk,[p(N,{name:"i-heroicons-exclamation-circle",class:"h-10 w-10 text-red-400"}),a("p",jk,d(t(e)("members.list.loadError")),1),p(L,{size:"sm",variant:"outline",icon:"i-heroicons-arrow-path",onClick:ke},{default:B(()=>[le(d(t(e)("common.retry")),1)]),_:1})])):G.value.length===0?(r(),m("div",Nk,[p(N,{name:"i-heroicons-user-group",class:"mb-3 h-12 w-12 text-gray-300 dark:text-gray-600"}),a("p",Uk,d(f.value?t(e)("members.list.noMatch"):t(e)("members.list.empty")),1)])):(r(),m("div",Wk,[a("div",{class:X(["flex h-full flex-col",u.chatType==="private"?"min-w-[920px]":"min-w-[1120px]"])},[a("div",{class:X(["member-table-grid shrink-0 border-b border-gray-200 bg-gray-50 px-3 py-2 text-xs font-medium text-gray-500 dark:border-white/5 dark:bg-page-dark/80 dark:text-gray-400",y.value])},[b.value?(r(),m("span",Hk)):R("",!0),a("span",null,d(t(e)("members.list.table.accountName")),1),u.chatType==="group"?(r(),m("button",{key:1,type:"button",class:"flex items-center justify-start gap-1.5 text-left transition-colors hover:text-gray-700 dark:hover:text-gray-200",onClick:K[2]||(K[2]=Me=>t(v)("groupNickname"))},[le(d(t(e)("members.list.table.groupNickname"))+" ",1),a("span",Kk,[p(N,{name:"i-heroicons-chevron-up",class:X(["h-2.5 w-2.5",de("groupNickname","asc")])},null,8,["class"]),p(N,{name:"i-heroicons-chevron-down",class:X(["-mt-0.5 h-2.5 w-2.5",de("groupNickname","desc")])},null,8,["class"])])])):R("",!0),a("button",{type:"button",class:"flex items-center justify-end gap-1.5 text-right transition-colors hover:text-gray-700 dark:hover:text-gray-200",onClick:K[3]||(K[3]=Me=>t(v)("messageCount"))},[le(d(t(e)("members.list.table.messageCount"))+" ",1),a("span",Yk,[p(N,{name:"i-heroicons-chevron-up",class:X(["h-2.5 w-2.5",de("messageCount","asc")])},null,8,["class"]),p(N,{name:"i-heroicons-chevron-down",class:X(["-mt-0.5 h-2.5 w-2.5",de("messageCount","desc")])},null,8,["class"])])]),a("button",{type:"button",class:"flex items-center justify-end gap-1.5 text-right transition-colors hover:text-gray-700 dark:hover:text-gray-200",onClick:K[4]||(K[4]=Me=>t(v)("lastMessageTs"))},[le(d(t(e)("members.list.table.lastMessageTime"))+" ",1),a("span",Gk,[p(N,{name:"i-heroicons-chevron-up",class:X(["h-2.5 w-2.5",de("lastMessageTs","asc")])},null,8,["class"]),p(N,{name:"i-heroicons-chevron-down",class:X(["-mt-0.5 h-2.5 w-2.5",de("lastMessageTs","desc")])},null,8,["class"])])]),a("span",Qk,[a("span",null,d(t(e)("members.list.table.customAlias")),1),p(ae,{text:t(e)("members.list.tip"),popper:{placement:"top"}},{default:B(()=>[p(N,{name:"i-heroicons-question-mark-circle",class:"h-4 w-4 text-gray-400 dark:text-gray-500"})]),_:1},8,["text"])]),a("span",Jk,d(t(e)("members.list.table.actions")),1)],2),a("div",{ref_key:"listScrollRef",ref:be,class:"min-h-0 flex-1 overflow-y-auto"},[a("div",{class:"relative",style:et({height:`${Q.value}px`})},[(r(!0),m(ie,null,pe(oe.value,({virtualItem:Me,member:Fe})=>(r(),m("div",{key:String(Me.key),ref_for:!0,ref:J,"data-index":Me.index,class:X(["member-table-grid absolute left-0 top-0 w-full min-h-16 border-b border-gray-100/80 px-3 py-2 transition-colors hover:bg-gray-50 dark:border-white/5 dark:hover:bg-gray-800/30",[y.value,b.value?"cursor-pointer":"",b.value&&t(Z).has(Fe.id)?"bg-primary-50/70 dark:bg-primary-950/20":""]]),style:et({transform:`translateY(${Me.start}px)`}),onMousedown:te,onClick:st=>ee(Me.index,Fe.id,st)},[b.value?(r(),m("div",Zk,[p(se,{"model-value":t(Z).has(Fe.id),onClick:Oe(st=>ee(Me.index,Fe.id,st),["stop"])},null,8,["model-value","onClick"])])):R("",!0),a("div",e_,[p(On,{src:Fe.avatar,alt:I(Fe),text:q(Fe),"fallback-class":["flex h-8 w-8 items-center justify-center rounded-full text-[10px] font-bold","bg-primary-500 text-white"]},null,8,["src","alt","text"]),a("div",t_,[a("p",{class:"truncate text-sm font-medium text-gray-900 dark:text-white",title:Fe.accountName||"-"},d(Fe.accountName||"-"),9,a_),a("p",{class:"truncate text-xs text-gray-400 dark:text-gray-500",title:Fe.platformId},d(Fe.platformId),9,s_)])]),u.chatType==="group"?(r(),m("p",{key:1,class:X(["truncate text-sm text-gray-700 dark:text-gray-300",Fe.groupNickname?"font-medium":"text-gray-400 dark:text-gray-500"]),title:Fe.groupNickname||"-"},d(Fe.groupNickname||"-"),11,n_)):R("",!0),a("span",o_,d(Fe.messageCount.toLocaleString()),1),a("span",{class:"text-right font-mono text-xs tabular-nums text-gray-600 dark:text-gray-400",title:Fe.lastMessageTs===null?"-":t(ja)(Fe.lastMessageTs)},d(Fe.lastMessageTs===null?"-":t(ja)(Fe.lastMessageTs)),9,l_),p(Ve,{"model-value":Fe.aliases,placeholder:t(e)("members.list.aliasPlaceholder"),loading:F.value.has(Fe.id),size:"xs",class:"w-full",onClick:K[5]||(K[5]=Oe(()=>{},["stop"])),"onUpdate:modelValue":st=>Le(Fe,st)},null,8,["model-value","placeholder","loading","onUpdate:modelValue"]),a("div",r_,[p(L,{icon:"i-heroicons-chat-bubble-left-ellipsis",size:"xs",color:"neutral",variant:"ghost",title:t(e)("common.viewChatRecords"),onClick:Oe(st=>Y(Fe),["stop"])},null,8,["title","onClick"]),p(L,{icon:"i-heroicons-trash",size:"xs",color:"error",variant:"ghost",title:t(e)("members.list.delete"),onClick:Oe(st=>Be(Fe),["stop"])},null,8,["title","onClick"])])],46,Xk))),128))],4)],512)],2)]))],2),p(qe,{open:!!k.value,ui:{content:"max-w-sm"},"onUpdate:open":K[6]||(K[6]=Me=>k.value=null)},{content:B(()=>[a("div",i_,[a("div",u_,[p(N,{name:"i-heroicons-exclamation-triangle",class:"h-7 w-7 text-red-500"})]),a("h3",c_,d(t(e)("members.list.modal.title")),1),a("p",d_,d(t(e)("members.list.modal.content",{name:k.value?I(k.value):"",count:k.value?.messageCount.toLocaleString()})),1),a("div",m_,[p(L,{variant:"outline",onClick:Te},{default:B(()=>[le(d(t(e)("members.list.modal.cancel")),1)]),_:1}),p(L,{color:"error",loading:x.value,onClick:Pe},{default:B(()=>[le(d(t(e)("members.list.modal.confirm")),1)]),_:1},8,["loading"])])])]),_:1},8,["open"]),p(qe,{open:_.value,ui:{content:"max-w-sm"},"onUpdate:open":K[8]||(K[8]=Me=>_.value=Me)},{content:B(()=>[a("div",g_,[a("div",p_,[p(N,{name:"i-heroicons-exclamation-triangle",class:"h-7 w-7 text-red-500"})]),a("h3",h_,d(t(e)("members.list.batchDeleteModal.title")),1),a("p",f_,d(t(e)("members.list.batchDeleteModal.content",{count:re.value.length,messageCount:he.value.toLocaleString()})),1),a("div",v_,[p(L,{variant:"outline",disabled:C.value,onClick:K[7]||(K[7]=Me=>_.value=!1)},{default:B(()=>[le(d(t(e)("members.list.modal.cancel")),1)]),_:1},8,["disabled"]),p(L,{color:"error",loading:C.value,onClick:Se},{default:B(()=>[le(d(t(e)("members.list.modal.confirm")),1)]),_:1},8,["loading"])])])]),_:1},8,["open"]),p(qe,{open:$.value,ui:{content:"max-w-md"},"onUpdate:open":K[10]||(K[10]=Me=>$.value=Me)},{content:B(()=>[a("div",y_,[a("div",x_,[a("div",b_,[p(N,{name:"i-heroicons-link",class:"h-5 w-5 text-amber-600 dark:text-amber-400"})]),a("h3",k_,d(t(e)("members.list.mergeModal.title")),1)]),a("p",__,d(t(e)("members.list.mergeModal.content",{source:j.value?I(j.value.secondary):"",sourceCount:j.value?j.value.secondary.messageCount.toLocaleString():"0",target:j.value?I(j.value.primary):"",targetCount:j.value?j.value.primary.messageCount.toLocaleString():"0"})),1),a("p",w_,d(t(e)("members.list.mergeModal.hint")),1),a("div",$_,[p(L,{variant:"outline",disabled:S.value,onClick:K[9]||(K[9]=Me=>$.value=!1)},{default:B(()=>[le(d(t(e)("members.list.mergeModal.cancel")),1)]),_:1},8,["disabled"]),p(L,{color:"primary",loading:S.value,onClick:O},{default:B(()=>[le(d(t(e)("members.list.mergeModal.confirm")),1)]),_:1},8,["loading"])])])]),_:1},8,["open"])],2)}}}),e2=dt(S_,[["__scopeId","data-v-0754d30f"]]),I_={class:"mt-3 flex flex-col items-stretch gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-3"},T_={class:"max-w-full overflow-x-auto scrollbar-hide"},t2=ue({__name:"SessionAnalysisHeader",props:qt({title:{},avatar:{},icon:{},iconClass:{},tabs:{},currentSessionId:{},initialTimeState:{},showSessionActions:{type:Boolean,default:!0}},{activeTab:{required:!0},activeTabModifiers:{},timeRangeValue:{required:!0},timeRangeValueModifiers:{}}),emits:qt(["openIncrementalImport","openMemberManagement","openChatRecord","update:fullRange","update:availableYears"],["update:activeTab","update:timeRangeValue"]),setup(i,{emit:l}){const e=Wt(i,"activeTab"),n=Wt(i,"timeRangeValue"),s=i,u=l,{t:o}=we(),c=bt(),g=M(()=>!["ai-chat","memory","lab","debug"].includes(e.value)),h=M(()=>s.tabs.map(f=>({id:f.id,label:o(f.labelKey),icon:f.icon})));return(f,b)=>{const y=Ue,k=St;return r(),U(so,{title:i.title,avatar:i.avatar,size:"compact",icon:i.icon,"icon-class":i.iconClass},{actions:B(()=>[i.showSessionActions&&t(c).toolsPanelPosition==="header"?(r(),m(ie,{key:0},[p(k,{text:t(o)("analysis.tooltip.viewChatRecord")},{default:B(()=>[p(y,{icon:"i-heroicons-chat-bubble-bottom-center-text",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[0]||(b[0]=x=>u("openChatRecord"))})]),_:1},8,["text"]),p(k,{text:t(o)("analysis.tooltip.incrementalImport")},{default:B(()=>[p(y,{icon:"i-heroicons-plus-circle",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[1]||(b[1]=x=>u("openIncrementalImport"))})]),_:1},8,["text"]),p(k,{text:t(o)("analysis.tooltip.memberManagement")},{default:B(()=>[p(y,{icon:"i-heroicons-user-group",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[2]||(b[2]=x=>u("openMemberManagement"))})]),_:1},8,["text"]),p(Lt,{color:"gray"}),p(k,{text:t(o)("analysis.tooltip.more")},{default:B(()=>[p(y,{"data-tools-panel-trigger":"",icon:"i-heroicons-ellipsis-horizontal",variant:"ghost",color:"gray",size:"sm",class:"hover:bg-gray-100 dark:hover:bg-gray-800",onClick:b[3]||(b[3]=x=>t(c).toggleToolsPanelOpen())})]),_:1},8,["text"])],64)):i.showSessionActions?(r(),U(Lt,{key:1,color:"gray"})):R("",!0)]),default:B(()=>[a("div",I_,[p(t(Un),{modelValue:e.value,"onUpdate:modelValue":b[4]||(b[4]=x=>e.value=x),class:"min-w-0 shrink",items:h.value},null,8,["modelValue","items"]),a("div",T_,[p(ao,{modelValue:n.value,"onUpdate:modelValue":b[5]||(b[5]=x=>n.value=x),"session-id":i.currentSessionId??void 0,visible:g.value,"initial-state":i.initialTimeState,size:"sm","onUpdate:fullRange":b[6]||(b[6]=x=>u("update:fullRange",x)),"onUpdate:availableYears":b[7]||(b[7]=x=>u("update:availableYears",x))},null,8,["modelValue","session-id","visible","initial-state"])])])]),_:1},8,["title","avatar","icon","icon-class"])}}}),M_={class:"space-y-4 p-5"},A_={class:"flex items-center gap-2"},z_={class:"text-base font-semibold text-gray-900 dark:text-white"},q_={key:0,class:"flex items-center gap-2 text-sm text-gray-400"},L_={class:"rounded-lg border border-gray-200 bg-gray-50 p-3 text-sm dark:border-gray-700 dark:bg-gray-800/50"},D_={class:"flex items-center justify-between"},E_={class:"text-gray-500"},B_={class:"font-medium text-gray-800 dark:text-gray-200"},F_={key:0,class:"mt-1 flex items-center justify-between"},R_={class:"text-gray-500"},V_={class:"text-gray-700 dark:text-gray-300"},O_={key:1,class:"mt-2"},P_={class:"flex items-center justify-between text-xs text-gray-500"},j_={class:"mt-1 h-1.5 w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},N_={key:2,class:"mt-1 text-xs text-red-500"},U_={class:"text-sm text-gray-600 dark:text-gray-400"},W_={key:0,class:"rounded border border-amber-200 bg-amber-50 px-2 py-1.5 text-xs text-amber-700 dark:border-amber-800/50 dark:bg-amber-900/20 dark:text-amber-400"},H_={class:"flex justify-end gap-2"},K_={class:"text-xs text-gray-400"},Y_={class:"flex flex-wrap justify-end gap-2"},Ne="settings.ai.semanticIndex",a2=ue({__name:"SemanticIndexSessionModal",props:{modelValue:{type:Boolean},sessionId:{},messageCount:{}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,n=l,{t:s}=we(),u=Wn(),o=M({get:()=>e.modelValue,set:T=>n("update:modelValue",T)}),c=z(null),g=z(!1),h=z(!1),f=z(!1),b=M(()=>{const T=c.value;return!T||!T.enabled?s(`${Ne}.session.notEnabled`):T.needsRebuild?s(`${Ne}.state.needsRebuild`):T.running||T.queued||T.indexStatus==="running"?s(`${Ne}.state.building`):T.indexStatus==="completed"?s(`${Ne}.state.completed`):T.indexStatus==="failed"?s(`${Ne}.state.failed`):T.indexStatus==="paused"?s(`${Ne}.state.paused`):s(`${Ne}.state.pending`)}),y=M(()=>{const T=c.value;return!!T&&(T.running||T.queued||T.indexStatus==="running")}),k=M(()=>c.value&&c.value.totalMessages>0?Math.round(c.value.indexedMessages/c.value.totalMessages*100):0);let x=null;function _(){x&&(clearTimeout(x),x=null)}function C(){_(),x=setTimeout(async()=>{try{c.value=await u.status(e.sessionId)}catch(T){console.error("[semantic-index] poll status failed:",T)}y.value&&e.modelValue?C():_()},1500)}async function $(){h.value=!0;try{const[T,v]=await Promise.all([u.getConfig(),u.status(e.sessionId)]);g.value=T.config.enabled&&T.configured&&(T.config.mode==="local"?!!T.config.local.modelId:!!T.config.api?.baseUrl&&!!T.config.api?.model&&(!Hn(T.config.api?.baseUrl)||T.apiKeySet)),c.value=v}catch(T){console.error("[semantic-index] load session status failed:",T)}finally{h.value=!1}y.value&&C()}async function S(T){f.value=!0;try{c.value=await u[T](e.sessionId)}catch(v){console.error(`[semantic-index] ${T} failed:`,v)}finally{f.value=!1}y.value?C():_()}return fe(()=>e.modelValue,T=>{T?$():_()}),tt(_),(T,v)=>{const w=_e,E=Ue,F=Xe;return r(),U(F,{open:o.value,"onUpdate:open":v[10]||(v[10]=D=>o.value=D),ui:{content:"z-[101]",overlay:"z-[100]"}},{content:B(()=>[a("div",M_,[a("div",A_,[p(w,{name:"i-heroicons-circle-stack",class:"h-5 w-5 text-blue-500"}),a("h3",z_,d(t(s)(`${Ne}.title`)),1)]),h.value?(r(),m("div",q_,[p(w,{name:"i-heroicons-arrow-path",class:"h-4 w-4 animate-spin"}),le(" "+d(t(s)("common.loading")),1)])):(r(),m(ie,{key:1},[a("div",L_,[a("div",D_,[a("span",E_,d(t(s)(`${Ne}.session.statusLabel`)),1),a("span",B_,d(b.value),1)]),c.value?.enabled&&c.value.indexStatus==="completed"?(r(),m("div",F_,[a("span",R_,d(t(s)(`${Ne}.session.coverageLabel`)),1),a("span",V_,d(k.value)+"%",1)])):R("",!0),y.value?(r(),m("div",O_,[a("div",P_,[a("span",null,d(t(s)(`${Ne}.session.progressLabel`)),1),a("span",null,d(c.value?.indexedMessages??0)+" / "+d(c.value?.totalMessages??0)+" ("+d(k.value)+"%) ",1)]),a("div",j_,[a("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-500",style:et({width:`${k.value}%`})},null,4)])])):R("",!0),c.value?.error?(r(),m("p",N_,d(c.value.error),1)):R("",!0)]),c.value?.enabled?(r(),m(ie,{key:1},[a("p",K_,d(t(s)(`${Ne}.session.buildVsEnable`)),1),a("div",Y_,[y.value?(r(),m(ie,{key:0},[p(E,{variant:"soft",loading:f.value,onClick:v[2]||(v[2]=D=>S("pause"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.pause`)),1)]),_:1},8,["loading"]),p(E,{color:"error",variant:"soft",disabled:f.value,onClick:v[3]||(v[3]=D=>S("cancel"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.cancel`)),1)]),_:1},8,["disabled"])],64)):c.value?.indexStatus==="completed"&&!c.value?.needsRebuild?(r(),U(E,{key:1,variant:"soft",loading:f.value,onClick:v[4]||(v[4]=D=>S("rebuild"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.rebuild`)),1)]),_:1},8,["loading"])):c.value?.needsRebuild?(r(),U(E,{key:2,color:"primary",loading:f.value,onClick:v[5]||(v[5]=D=>S("rebuild"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.rebuild`)),1)]),_:1},8,["loading"])):c.value?.indexStatus==="failed"?(r(),U(E,{key:3,color:"primary",loading:f.value,onClick:v[6]||(v[6]=D=>S("build"))},{default:B(()=>[le(d(t(s)(`${Ne}.session.retry`)),1)]),_:1},8,["loading"])):c.value?.indexStatus==="paused"?(r(),U(E,{key:4,color:"primary",loading:f.value,onClick:v[7]||(v[7]=D=>S("build"))},{default:B(()=>[le(d(t(s)(`${Ne}.session.continue`)),1)]),_:1},8,["loading"])):(r(),U(E,{key:5,color:"primary",loading:f.value,onClick:v[8]||(v[8]=D=>S("build"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.build`)),1)]),_:1},8,["loading"])),p(E,{variant:"ghost",color:"neutral",disabled:f.value,onClick:v[9]||(v[9]=D=>S("remove"))},{default:B(()=>[le(d(t(s)(`${Ne}.action.remove`)),1)]),_:1},8,["disabled"])])],64)):(r(),m(ie,{key:0},[a("p",U_,d(t(s)(`${Ne}.session.enableHint`)),1),g.value?R("",!0):(r(),m("p",W_,d(t(s)(`${Ne}.session.configFirst`)),1)),a("div",H_,[p(E,{variant:"ghost",onClick:v[0]||(v[0]=D=>o.value=!1)},{default:B(()=>[le(d(t(s)("common.close")),1)]),_:1}),p(E,{color:"primary",loading:f.value,disabled:!g.value,onClick:v[1]||(v[1]=D=>S("enable"))},{default:B(()=>[le(d(t(s)(`${Ne}.session.enable`)),1)]),_:1},8,["loading","disabled"])])],64))],64))])]),_:1},8,["open"])}}}),G_={class:"min-h-[200px]"},Q_={key:0,class:"space-y-4"},J_={class:"text-sm text-gray-600 dark:text-gray-400"},X_={class:"text-sm text-gray-600 dark:text-gray-400"},Z_={key:1,class:"flex flex-col items-center justify-center py-10"},ew={class:"text-gray-600 dark:text-gray-400"},tw={class:"mt-2 text-sm text-gray-500"},aw={key:2,class:"space-y-6"},sw={class:"rounded-lg bg-gray-50 p-4 dark:bg-gray-800"},nw={class:"mb-2 text-sm font-medium text-gray-700 dark:text-gray-300"},ow={class:"grid grid-cols-3 gap-4 text-center"},lw={class:"text-2xl font-bold text-gray-900 dark:text-white"},rw={class:"text-xs text-gray-500"},iw={class:"text-2xl font-bold text-green-600 dark:text-green-400"},uw={class:"text-xs text-gray-500"},cw={class:"text-2xl font-bold text-gray-400"},dw={class:"text-xs text-gray-500"},mw={key:0,class:"text-center text-sm text-amber-600 dark:text-amber-400"},gw={key:3,class:"flex flex-col items-center justify-center py-10"},pw={class:"text-gray-600 dark:text-gray-400"},hw={key:0,class:"mt-4 w-full max-w-xs"},fw={key:4,class:"flex flex-col items-center justify-center py-10"},vw={class:"text-lg font-medium text-gray-900 dark:text-white"},yw={class:"mt-2 text-sm text-gray-600 dark:text-gray-400"},xw={key:5,class:"flex flex-col items-center justify-center py-10"},bw={class:"text-lg font-medium text-gray-900 dark:text-white"},kw={class:"mt-2 text-sm text-red-600 dark:text-red-400"},_w={class:"flex w-full justify-end gap-2"},s2=ue({__name:"IncrementalImportModal",props:{modelValue:{type:Boolean},sessionId:{},sessionName:{}},emits:["update:modelValue","imported"],setup(i,{emit:l}){const e=i,n=l,{t:s}=we(),u=z("select"),o=z(null),c=z(null),g=z(null),h=z(null),f=z(null),b=z(null),y=M({get:()=>e.modelValue,set:w=>n("update:modelValue",w)});fe(y,w=>{w||k()});function k(){u.value="select",o.value=null,g.value=null,h.value=null,f.value=null,b.value=null}async function x({files:w,paths:E}){if(w.length>0)o.value={source:w[0],name:w[0].name};else{f.value=s("home.import.cannotReadPath");return}await C()}function _(){c.value?.openFileDialog()}async function C(){if(o.value){u.value="analyzing",f.value=null;try{const w=await Pa().analyzeIncrementalImport(e.sessionId,o.value.source);if(w.error){u.value="error",f.value=v(w.error);return}g.value={newMessageCount:w.newMessageCount,duplicateCount:w.duplicateCount,totalInFile:w.totalInFile},u.value="preview"}catch(w){u.value="error",f.value=String(w)}}}async function $(){if(o.value){u.value="importing",h.value={stage:"saving",progress:0,message:""};try{const w=await Pa().incrementalImport(e.sessionId,o.value.source,E=>{h.value=E});w.success?(b.value={newMessageCount:w.newMessageCount},u.value="done"):(u.value="error",f.value=v(w.error||"error.import_failed"))}catch(w){u.value="error",f.value=String(w)}}}function S(){b.value&&n("imported",b.value.newMessageCount),y.value=!1}function T(){u.value="select",o.value=null,g.value=null,f.value=null}function v(w){if(w.startsWith("error.")){const E=`home.import.errors.${w.slice(6)}`,F=s(E);return F!==E?F:w}return w}return(w,E)=>{const F=Kn,D=_e,A=Yn,I=Ue,q=Xe;return r(),U(q,{open:y.value,"onUpdate:open":E[1]||(E[1]=Y=>y.value=Y),title:t(s)("analysis.incremental.title")},{body:B(()=>[a("div",G_,[u.value==="select"?(r(),m("div",Q_,[a("p",J_,d(t(s)("analysis.incremental.description",{name:i.sessionName})),1),p(F,{color:"info",variant:"soft",icon:"i-heroicons-information-circle",description:t(s)("analysis.incremental.homeAutoImportHint")},null,8,["description"]),p(t(Gn),{ref_key:"dropZoneRef",ref:c,accept:[".json",".jsonl",".txt"],class:"w-full",onFiles:x},{default:B(({isDragOver:Y})=>[a("div",{class:X(["flex cursor-pointer flex-col items-center justify-center rounded-xl border-2 border-dashed px-6 py-10 transition-colors",Y?"border-pink-500 bg-pink-50/50 dark:border-pink-400 dark:bg-pink-500/10":"border-gray-300 hover:border-pink-400 dark:border-gray-600 dark:hover:border-pink-500"]),onClick:Oe(_,["stop"])},[p(D,{name:"i-heroicons-arrow-up-tray",class:"mb-3 h-10 w-10 text-gray-400"}),a("p",X_,d(Y?t(s)("home.import.dropHint"):t(s)("analysis.incremental.dropHint")),1)],2)]),_:1},512)])):u.value==="analyzing"?(r(),m("div",Z_,[p(D,{name:"i-heroicons-arrow-path",class:"mb-4 h-10 w-10 animate-spin text-pink-500"}),a("p",ew,d(t(s)("analysis.incremental.analyzing")),1),a("p",tw,d(o.value?.name),1)])):u.value==="preview"&&g.value?(r(),m("div",aw,[a("div",sw,[a("p",nw,d(o.value?.name),1),a("div",ow,[a("div",null,[a("p",lw,d(g.value.totalInFile.toLocaleString()),1),a("p",rw,d(t(s)("analysis.incremental.totalInFile")),1)]),a("div",null,[a("p",iw,d(g.value.newMessageCount.toLocaleString()),1),a("p",uw,d(t(s)("analysis.incremental.newMessages")),1)]),a("div",null,[a("p",cw,d(g.value.duplicateCount.toLocaleString()),1),a("p",dw,d(t(s)("analysis.incremental.duplicates")),1)])])]),g.value.newMessageCount===0?(r(),m("p",mw,[p(D,{name:"i-heroicons-exclamation-triangle",class:"mr-1 inline-block h-4 w-4"}),le(" "+d(t(s)("analysis.incremental.noNewMessages")),1)])):R("",!0)])):u.value==="importing"?(r(),m("div",gw,[p(D,{name:"i-heroicons-arrow-path",class:"mb-4 h-10 w-10 animate-spin text-pink-500"}),a("p",pw,d(t(s)("analysis.incremental.importing")),1),h.value?(r(),m("div",hw,[p(A,{value:h.value.progress,size:"sm"},null,8,["value"])])):R("",!0)])):u.value==="done"&&b.value?(r(),m("div",fw,[p(D,{name:"i-heroicons-check-circle",class:"mb-4 h-12 w-12 text-green-500"}),a("p",vw,d(t(s)("analysis.incremental.success")),1),a("p",yw,d(t(s)("analysis.incremental.successDetail",{count:b.value.newMessageCount})),1)])):u.value==="error"?(r(),m("div",xw,[p(D,{name:"i-heroicons-x-circle",class:"mb-4 h-12 w-12 text-red-500"}),a("p",bw,d(t(s)("analysis.incremental.failed")),1),a("p",kw,d(f.value),1)])):R("",!0)])]),footer:B(()=>[a("div",_w,[u.value==="select"?(r(),U(I,{key:0,color:"neutral",variant:"ghost",onClick:E[0]||(E[0]=Y=>y.value=!1)},{default:B(()=>[le(d(t(s)("common.cancel")),1)]),_:1})):u.value==="preview"?(r(),m(ie,{key:1},[p(I,{color:"neutral",variant:"ghost",onClick:T},{default:B(()=>[le(d(t(s)("common.back")),1)]),_:1}),p(I,{color:"primary",disabled:!g.value||g.value.newMessageCount===0,onClick:$},{default:B(()=>[le(d(t(s)("analysis.incremental.import",{count:g.value?.newMessageCount||0})),1)]),_:1},8,["disabled"])],64)):u.value==="done"||u.value==="error"?(r(),m(ie,{key:2},[u.value==="error"?(r(),U(I,{key:0,color:"neutral",variant:"ghost",onClick:T},{default:B(()=>[le(d(t(s)("common.retry")),1)]),_:1})):R("",!0),p(I,{color:"primary",onClick:S},{default:B(()=>[le(d(t(s)("common.done")),1)]),_:1})],64)):R("",!0)])]),_:1},8,["open","title"])}}}),ww={key:0,class:"fixed right-0 top-1/3"},$w={class:"no-capture flex flex-col items-center gap-0.5 rounded-l-lg border border-r-0 border-gray-200/60 bg-white py-1.5 shadow-sm dark:border-white/5 dark:bg-page-dark"},Cw=["onClick"],Sw={class:"mb-2 flex items-center justify-between"},Iw={class:"px-0.5 text-[9px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Tw={class:"flex flex-col gap-1.5"},Mw=["onClick"],Aw={class:"whitespace-nowrap"},n2=ue({__name:"ActionToolsPanel",emits:["openIncrementalImport","openSemanticIndex","openMemberManagement","openChatRecord","openMessageExport"],setup(i,{emit:l}){const{t:e}=we(),n=bt(),{isToolsPanelMini:s,toolsPanelPosition:u,isToolsPanelOpen:o}=ut(n),c=M(()=>u.value==="header"),g=M(()=>!c.value||o.value),h=z(null),f=l;function b(C){f(C),c.value&&(o.value=!1)}function y(C){if(!c.value||!o.value)return;const $=C.target;$ instanceof Element&&(h.value?.contains($)||$.closest("[data-tools-panel-trigger]")||(o.value=!1))}const k=[{event:"openIncrementalImport",icon:"i-heroicons-plus-circle",hoverColor:"group-hover:text-pink-500",miniHoverBg:"hover:text-pink-500",labelKey:"analysis.tooltip.incrementalImport"},{event:"openSemanticIndex",icon:"i-heroicons-circle-stack",hoverColor:"group-hover:text-indigo-500",miniHoverBg:"hover:text-indigo-500",labelKey:"analysis.tooltip.semanticIndex"},{event:"openMemberManagement",icon:"i-heroicons-user-group",hoverColor:"group-hover:text-purple-500",miniHoverBg:"hover:text-purple-500",labelKey:"analysis.tooltip.memberManagement"},{event:"openChatRecord",icon:"i-heroicons-chat-bubble-bottom-center-text",hoverColor:"group-hover:text-cyan-500",miniHoverBg:"hover:text-cyan-500",labelKey:"analysis.tooltip.viewChatRecord"},{event:"openMessageExport",icon:"i-heroicons-document-arrow-down",hoverColor:"group-hover:text-green-500",miniHoverBg:"hover:text-green-500",labelKey:"analysis.messageExport.title"}],x=[{event:"openSemanticIndex",icon:"i-heroicons-circle-stack",hoverColor:"group-hover:text-indigo-500",miniHoverBg:"hover:text-indigo-500",labelKey:"analysis.tooltip.semanticIndex"},{event:"openMessageExport",icon:"i-heroicons-document-arrow-down",hoverColor:"group-hover:text-green-500",miniHoverBg:"hover:text-green-500",labelKey:"analysis.messageExport.title"}],_=M(()=>c.value?x:k);return fe(u,()=>{o.value=!1}),Re(()=>{document.addEventListener("mousedown",y)}),Xt(()=>{document.removeEventListener("mousedown",y)}),(C,$)=>{const S=_e,T=St;return!c.value&&t(s)?(r(),m("div",ww,[a("div",$w,[(r(),m(ie,null,pe(k,v=>p(T,{key:v.event,text:t(e)(v.labelKey),popper:{placement:"left"}},{default:B(()=>[a("button",{class:X(["flex h-7 w-7 items-center justify-center rounded-md text-gray-400 transition-colors hover:bg-gray-100 dark:text-gray-500 dark:hover:bg-white/5",v.miniHoverBg]),onClick:w=>b(v.event)},[p(S,{name:v.icon,class:"h-3.5 w-3.5"},null,8,["name"])],10,Cw)]),_:2},1032,["text"])),64)),$[2]||($[2]=a("div",{class:"my-0.5 h-px w-4 bg-gray-200 dark:bg-gray-700"},null,-1)),p(T,{text:t(e)("analysis.toolsPanel.exitMini"),popper:{placement:"left"}},{default:B(()=>[a("button",{class:"flex h-7 w-7 items-center justify-center rounded-md text-gray-300 transition-colors hover:bg-gray-100 hover:text-gray-500 dark:text-gray-600 dark:hover:bg-white/5 dark:hover:text-gray-400",onClick:$[0]||($[0]=v=>t(n).toggleToolsPanelMini())},[p(S,{name:"i-heroicons-arrows-pointing-out",class:"h-3 w-3"})])]),_:1},8,["text"])])])):(r(),m("div",{key:1,class:X(["fixed right-0 z-40",c.value?"top-14":"top-1/3"])},[a("div",{class:X(["absolute right-0 top-0 transition-all duration-250 ease-in-out",g.value?"translate-x-0 opacity-100":"pointer-events-none translate-x-full opacity-0"])},[a("div",{ref_key:"panelRef",ref:h,class:"no-capture flex w-40 flex-col rounded-l-xl border border-r-0 border-gray-200/60 bg-white p-3 shadow-overlay dark:border-white/5 dark:bg-page-dark"},[a("div",Sw,[a("span",Iw,d(t(e)("analysis.overview.tools")),1),c.value?R("",!0):(r(),U(T,{key:0,text:t(e)("analysis.toolsPanel.miniMode"),popper:{placement:"left"}},{default:B(()=>[a("button",{class:"flex h-5 w-5 items-center justify-center rounded text-gray-300 transition-colors hover:text-gray-500 dark:text-gray-600 dark:hover:text-gray-400",onClick:$[1]||($[1]=v=>t(n).toggleToolsPanelMini())},[p(S,{name:"i-heroicons-arrows-pointing-in",class:"h-3 w-3"})])]),_:1},8,["text"]))]),a("div",Tw,[(r(!0),m(ie,null,pe(_.value,v=>(r(),m("button",{key:v.event,class:"group flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs font-medium text-gray-600 transition-all hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-white/5 dark:hover:text-white",onClick:w=>b(v.event)},[p(S,{name:v.icon,class:X(["h-3.5 w-3.5 text-gray-400 transition-colors dark:text-gray-500",v.hoverColor])},null,8,["name","class"]),a("span",Aw,d(t(e)(v.labelKey)),1)],8,Mw))),128))])],512)],2)],2))}}});export{Kw as C,Hw as D,Uw as L,e2 as M,na as _,Nw as a,Ze as b,Xw as c,ya as d,Zw as e,Av as f,Yw as g,Gw as h,Qw as i,jw as j,t2 as k,n2 as l,a2 as m,s2 as n,Ww as o,Jw as u};
|