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.
Files changed (111) hide show
  1. package/dist/{chat-command-IHRNO7J4.mjs → chat-command-XPY3WURC.mjs} +9 -9
  2. package/dist/{chunk-KWJ5FZ74.mjs → chunk-AQPDZAWB.mjs} +385 -248
  3. package/dist/chunk-AQPDZAWB.mjs.map +1 -0
  4. package/dist/{chunk-RHA534GU.mjs → chunk-BQ3QN4QT.mjs} +3 -3
  5. package/dist/{chunk-NHTOSDYI.mjs → chunk-DGF3S3TZ.mjs} +2 -2
  6. package/dist/{chunk-4V6UP7EW.mjs → chunk-IGEHMLHM.mjs} +2 -2
  7. package/dist/{chunk-NSWFHMBZ.mjs → chunk-IGK6UMN2.mjs} +11 -11
  8. package/dist/{chunk-U4F6BNGZ.mjs → chunk-ISRLGLUL.mjs} +2 -2
  9. package/dist/{chunk-HGV4MUIW.mjs → chunk-JCSPDTZL.mjs} +15 -62
  10. package/dist/chunk-JCSPDTZL.mjs.map +1 -0
  11. package/dist/{chunk-S7YPBKQ3.mjs → chunk-JTOHAMIW.mjs} +2 -2
  12. package/dist/{chunk-C3B7RXES.mjs → chunk-OLE2USEN.mjs} +626 -318
  13. package/dist/chunk-OLE2USEN.mjs.map +1 -0
  14. package/dist/{chunk-YAQLYL52.mjs → chunk-QZCNVAH6.mjs} +2 -2
  15. package/dist/{chunk-YAQLYL52.mjs.map → chunk-QZCNVAH6.mjs.map} +1 -1
  16. package/dist/{chunk-ZERQIKI4.mjs → chunk-S5NCEESV.mjs} +3 -3
  17. package/dist/{chunk-ZTMZ7S7T.mjs → chunk-UO2XVFY6.mjs} +31 -20
  18. package/dist/chunk-UO2XVFY6.mjs.map +1 -0
  19. package/dist/cli.mjs +9 -9
  20. package/dist/contacts-worker.mjs +2 -2
  21. package/dist/global-insight-worker.mjs +2 -2
  22. package/dist/{http-Y2WC2UK4.mjs → http-HV6XWU6X.mjs} +12 -12
  23. package/dist/{import-4HF2UNQI.mjs → import-DP2XLZ2H.mjs} +8 -8
  24. package/dist/index.mjs +12 -12
  25. package/dist/{mcp-DJPDRFTW.mjs → mcp-QDPFBPGW.mjs} +9 -9
  26. package/dist/people-relationships-worker.mjs +2 -2
  27. package/dist/semantic-index-worker.mjs +1 -1
  28. package/dist/{src-R7MZLKXQ.mjs → src-B3A2QHP5.mjs} +9 -7
  29. package/dist/{stream-import-DX57ANUL.mjs → stream-import-KEGNP3QK.mjs} +8 -8
  30. package/dist/{worker-runtime-QMN7OKOZ.mjs → worker-runtime-MDYKX3BW.mjs} +6 -6
  31. 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
  32. package/dist-cli-web/assets/{BufferResource-DwfMBlAa.js → BufferResource--dSbJb0k.js} +1 -1
  33. package/dist-cli-web/assets/{CanvasRenderer-q312LRsp.js → CanvasRenderer-Cm_dmJXZ.js} +1 -1
  34. package/dist-cli-web/assets/{DataDirCleanupNotice--ee1dY0d.js → DataDirCleanupNotice-B0s5txX3.js} +1 -1
  35. package/dist-cli-web/assets/{EChartWordcloud-BaMgUl0Y.js → EChartWordcloud-CwMVJLBO.js} +1 -1
  36. package/dist-cli-web/assets/{Filter-BOb5cLBx.js → Filter-BjYScRpK.js} +1 -1
  37. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-BshQybD_.js +1 -0
  38. package/dist-cli-web/assets/{MessageExportModal-CFbovWh1.js → MessageExportModal-DAJW2mFj.js} +1 -1
  39. package/dist-cli-web/assets/{PageHeader-B3-W9mvh.js → PageHeader-BKAjCuqs.js} +1 -1
  40. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-GEpsKHxV.js → RelationshipGalaxyCanvas-mlZs7k4L.js} +14 -14
  41. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-BluPHjCR.css → RelationshipGalaxyThreeCanvas-CeYJABxI.css} +1 -1
  42. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-DHOU66Gj.js → RelationshipGalaxyThreeCanvas-DgMG3jdU.js} +14 -14
  43. package/dist-cli-web/assets/{RenderTargetSystem-PEnnW2yb.js → RenderTargetSystem-D00Ex44y.js} +1 -1
  44. 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
  45. 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
  46. package/dist-cli-web/assets/{WebGLRenderer-BjP_1do7.js → WebGLRenderer-CTTusm2n.js} +1 -1
  47. package/dist-cli-web/assets/{WebGPURenderer-ldVv92u7.js → WebGPURenderer-pyv3EXor.js} +1 -1
  48. package/dist-cli-web/assets/{annual-summary-time-range-BHClzNvd.js → annual-summary-time-range-C_d1oZrj.js} +1 -1
  49. package/dist-cli-web/assets/{base-DBJ95yXf.js → base-D91aVUwM.js} +1 -1
  50. package/dist-cli-web/assets/{browserAll-CPoMOLKh.js → browserAll-C9fW936Y.js} +1 -1
  51. package/dist-cli-web/assets/{cli-web-B5VYO-Dh.js → cli-web-C7uGKz_E.js} +1 -1
  52. package/dist-cli-web/assets/{dateFormat-Cf2xuaE-.js → dateFormat-rY43adcv.js} +1 -1
  53. package/dist-cli-web/assets/{fetch-CtyVktRW.js → fetch-C6po4XYB.js} +1 -1
  54. package/dist-cli-web/assets/{fetch-J67jyI2k.js → fetch-CNy9OQ2g.js} +1 -1
  55. package/dist-cli-web/assets/{fetch-BuWxo6oK.js → fetch-CS3T-v-1.js} +1 -1
  56. package/dist-cli-web/assets/{fetch-C0HHT1Yn.js → fetch-CbnX5VoM.js} +1 -1
  57. package/dist-cli-web/assets/fetch-CrSz5KJy.js +1 -0
  58. package/dist-cli-web/assets/{fetch-CXIdj2-_.js → fetch-DG3AeEjW.js} +1 -1
  59. package/dist-cli-web/assets/{fetch-B1km2u3N.js → fetch-DYNgtIcU.js} +1 -1
  60. package/dist-cli-web/assets/{fetch-DGi_9my2.js → fetch-DZPC3D8R.js} +1 -1
  61. package/dist-cli-web/assets/{fetch-BFDKzf1P.js → fetch-Kk2knkEo.js} +1 -1
  62. package/dist-cli-web/assets/{fetch-Dr41uuXL.js → fetch-PLrI3V67.js} +1 -1
  63. package/dist-cli-web/assets/{index-BGiTw98l.js → index-2-OaYdzt.js} +1 -1
  64. package/dist-cli-web/assets/index-2S80bo1s.js +2 -0
  65. package/dist-cli-web/assets/index-3YO6RI5e.js +2 -0
  66. package/dist-cli-web/assets/index-BKo68Iu5.js +1 -0
  67. package/dist-cli-web/assets/{index-Bf3gFaid.js → index-BrkDgcJ6.js} +1 -1
  68. package/dist-cli-web/assets/{index-5UdyJtVU.js → index-CGI3Y8pq.js} +1 -1
  69. package/dist-cli-web/assets/index-CW9H_fBd.js +53 -0
  70. package/dist-cli-web/assets/{index-Ba21yU86.js → index-DA3Q0TGT.js} +1 -1
  71. package/dist-cli-web/assets/{index-B7R74Yp7.js → index-DFHYr_-u.js} +1 -1
  72. package/dist-cli-web/assets/index-DmwA85vG.js +173 -0
  73. package/dist-cli-web/assets/index-DrjoMv9s.css +1 -0
  74. package/dist-cli-web/assets/{index-DzQT-qXF.js → index-DsdMsKYT.js} +1 -1
  75. package/dist-cli-web/assets/{index-DtlTo3nt.js → index-JYfjMRb-.js} +1 -1
  76. package/dist-cli-web/assets/index-Jhwca9kg.css +1 -0
  77. package/dist-cli-web/assets/index-ZTgfCZvY.js +64 -0
  78. package/dist-cli-web/assets/index-vtF05fh7.css +1 -0
  79. package/dist-cli-web/assets/{people-page-header-BvQy1GQj.js → people-page-header-D-LWaEqn.js} +1 -1
  80. package/dist-cli-web/assets/{webworkerAll-DgKQKbNn.js → webworkerAll-CPOVECup.js} +1 -1
  81. package/dist-cli-web/index.html +2 -2
  82. package/package.json +1 -1
  83. package/dist/chunk-C3B7RXES.mjs.map +0 -1
  84. package/dist/chunk-HGV4MUIW.mjs.map +0 -1
  85. package/dist/chunk-KWJ5FZ74.mjs.map +0 -1
  86. package/dist/chunk-ZTMZ7S7T.mjs.map +0 -1
  87. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-DK2z0Jrh.js +0 -1
  88. package/dist-cli-web/assets/fetch-80O3EH4a.js +0 -1
  89. package/dist-cli-web/assets/index-7jm3YI9u.js +0 -53
  90. package/dist-cli-web/assets/index-ByQSR8Bj.js +0 -2
  91. package/dist-cli-web/assets/index-CPZYydbc.js +0 -2
  92. package/dist-cli-web/assets/index-D8Q3U-6e.js +0 -1
  93. package/dist-cli-web/assets/index-DGtDxRCd.js +0 -173
  94. package/dist-cli-web/assets/index-DTxnpQiv.css +0 -1
  95. package/dist-cli-web/assets/index-gpTDI3sq.js +0 -64
  96. package/dist-cli-web/assets/index-lwhCMqhd.css +0 -1
  97. package/dist-cli-web/assets/index-qsbWn8VP.css +0 -1
  98. /package/dist/{chat-command-IHRNO7J4.mjs.map → chat-command-XPY3WURC.mjs.map} +0 -0
  99. /package/dist/{chunk-RHA534GU.mjs.map → chunk-BQ3QN4QT.mjs.map} +0 -0
  100. /package/dist/{chunk-NHTOSDYI.mjs.map → chunk-DGF3S3TZ.mjs.map} +0 -0
  101. /package/dist/{chunk-4V6UP7EW.mjs.map → chunk-IGEHMLHM.mjs.map} +0 -0
  102. /package/dist/{chunk-NSWFHMBZ.mjs.map → chunk-IGK6UMN2.mjs.map} +0 -0
  103. /package/dist/{chunk-U4F6BNGZ.mjs.map → chunk-ISRLGLUL.mjs.map} +0 -0
  104. /package/dist/{chunk-S7YPBKQ3.mjs.map → chunk-JTOHAMIW.mjs.map} +0 -0
  105. /package/dist/{chunk-ZERQIKI4.mjs.map → chunk-S5NCEESV.mjs.map} +0 -0
  106. /package/dist/{http-Y2WC2UK4.mjs.map → http-HV6XWU6X.mjs.map} +0 -0
  107. /package/dist/{import-4HF2UNQI.mjs.map → import-DP2XLZ2H.mjs.map} +0 -0
  108. /package/dist/{mcp-DJPDRFTW.mjs.map → mcp-QDPFBPGW.mjs.map} +0 -0
  109. /package/dist/{src-R7MZLKXQ.mjs.map → src-B3A2QHP5.mjs.map} +0 -0
  110. /package/dist/{stream-import-DX57ANUL.mjs.map → stream-import-KEGNP3QK.mjs.map} +0 -0
  111. /package/dist/{worker-runtime-QMN7OKOZ.mjs.map → worker-runtime-MDYKX3BW.mjs.map} +0 -0
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MessageExportModal-DAJW2mFj.js","assets/index-CW9H_fBd.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-DrjoMv9s.css"])))=>i.map(i=>d[i]);
2
+ import{d as Y,A as X,aA as pe,w as Z,C as ve,O as xe,o as i,E as L,G as t,F as H,c as u,f as e,t as o,Z as O,$ as J,n as F,h as N,g as j,_ as Q,P as ge,a as k,b as E,T as Te,B as Ie,M as we,a7 as Ne,r as Ve,K as Fe,H as Re,I as _e,z as Oe,ay as Ue,U as De,Y as Ae,a4 as Ee,aB as We,ap as He,S as Me,aC as Ke,J as Je,au as Ge,X as Ye,am as Xe,av as Ze}from"./index-CW9H_fBd.js";import{_ as Ce,a as $e,b as oe,c as Qe,d as je,e as et,u as tt,f as st,g as at,h as nt,i as it,j as ot,k as lt,l as rt,m as ct,n as ut,C as dt,o as mt,L as gt,D as pt,M as vt}from"./ActionToolsPanel.vue_vue_type_script_setup_true_lang-JxPR2O6b.js";import{_ as le}from"./LoadingState.vue_vue_type_script_setup_true_lang-BshQybD_.js";import{a as Pe,g as xt}from"./base-D91aVUwM.js";import"./vendor-echarts-wordcloud-Ca8n6qS6.js";import{u as he,x as ht,j as fe,i as ye,k as se,n as qe,t as ze,s as ft,m as yt}from"./vendor-echarts-B-i_56Av.js";import{_ as be}from"./ThemeCard.vue_vue_type_script_setup_true_lang-Dsb6lzs-.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-BrkDgcJ6.js";import"./dateFormat-rY43adcv.js";import"./TimeSelect.vue_vue_type_script_setup_true_lang-BfR3tlkz.js";import"./PageHeader-BKAjCuqs.js";import"./vendor-zrender-5DcYjSZk.js";const bt={key:0,class:"relative z-10 flex flex-col h-full"},kt={class:"flex flex-col sm:flex-row items-center sm:items-start gap-6 px-6 pt-8 pb-4 sm:px-8"},_t={class:"w-full flex-1 min-w-0"},wt={class:"flex items-center gap-x-2 sm:gap-x-3 mb-6 sm:mb-8"},Ct={class:"text-2xl sm:text-4xl font-black tracking-tight text-blue-600 dark:text-blue-400 truncate"},$t={class:"text-2xl sm:text-4xl font-black tracking-tight text-pink-600 dark:text-pink-400 truncate"},St={class:"grid grid-cols-2 gap-4 sm:gap-10"},Mt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},jt={class:"flex flex-col gap-2.5"},Pt=["title","onClick"],Tt={class:"shrink-0 text-[10px] sm:text-xs font-semibold tabular-nums text-gray-400/80"},It={key:0,class:"text-xs sm:text-sm font-medium text-gray-400"},Rt={class:"hidden shrink-0 sm:block"},Dt={class:"px-6 pb-6 pt-2 sm:px-8 mt-auto"},At={class:"mb-3 flex items-center justify-between"},qt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},zt={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Bt={class:"mb-4 flex items-center gap-2.5"},Lt={class:"text-sm font-bold tracking-wide text-gray-900 dark:text-white"},Nt={class:"flex items-center justify-between mb-4 w-full"},Vt={class:"flex flex-col flex-1 min-w-0"},Ft={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Ot={class:"flex flex-col flex-1 min-w-0 items-end text-right"},Ut={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Et={class:"mt-auto pt-3 border-t border-gray-100 dark:border-white/5 flex flex-col"},Wt={key:0,class:"flex items-start justify-between gap-2 mb-2 min-h-[24px]"},Ht={class:"flex flex-1 flex-nowrap overflow-hidden gap-1"},Kt={key:0,class:"text-[11px] text-gray-400"},Jt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1 justify-end"},Gt={key:0,class:"text-[11px] text-gray-400"},Yt={key:1,class:"flex flex-nowrap overflow-hidden items-center gap-x-1.5 mb-2 min-h-[24px]"},Xt=["onClick"],Zt={key:0,class:"shrink-0 text-gray-300 dark:text-gray-600 font-normal"},Qt={key:0,class:"text-[11px] text-gray-400"},es={class:"text-[10px] leading-relaxed text-gray-500 dark:text-gray-400"},ts={class:"flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},ss={class:"flex items-center gap-1.5"},as={class:"text-[9px] font-medium uppercase tracking-widest"},ns=Y({__name:"LanguagePreferenceCard",props:{data:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(_,{emit:a}){he([ht,fe,ye]);const{t:s}=X(),C=pe(),n=_,v=a,I=k(()=>n.data.members[0]),f=k(()=>n.data.members[1]);function g(r,l){return r.length<=l?r:r.slice(0,l)+"…"}function D(r){const l=r.posDistribution,c=l.noun+l.verb+l.adjective+l.adverb+l.modalParticle+l.interjection+l.other;return c===0?s("quotes.languagePreference.pos.styleBalanced"):l.noun/c>.5?s("quotes.languagePreference.pos.styleEncyclopedia"):l.verb/c>.45?s("quotes.languagePreference.pos.styleAction"):l.adjective/c>.3?s("quotes.languagePreference.pos.styleExpressive"):s("quotes.languagePreference.pos.styleBalanced")}function V(r){const c=[["ellipsis",r.ellipsis],["exclamation",r.exclamation],["question",r.question],["tilde",r.tilde],["noPunct",r.noPunct],["period",r.period]].reduce((b,M)=>b[1]>=M[1]?b:M);return{ellipsis:s("quotes.languagePreference.punctuation.personalityDeep"),exclamation:s("quotes.languagePreference.punctuation.personalityPassionate"),question:s("quotes.languagePreference.punctuation.personalityCurious"),tilde:s("quotes.languagePreference.punctuation.personalityCheerful"),noPunct:s("quotes.languagePreference.punctuation.personalityFreeflow"),period:s("quotes.languagePreference.punctuation.personalityPrecise")}[c[0]]||"-"}function q(r,l=5){return[["...",r.ellipsis],["!",r.exclamation],["?",r.question],["~",r.tilde],["。",r.period]].filter(([,m])=>m>0).sort((m,b)=>b[1]-m[1]).slice(0,l).map(([m])=>m)}const S=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e","#eab308","#06b6d4"],y=k(()=>{const r=I.value,l=f.value;if(!r||!l)return[];const c=n.data.sharedWords.slice(0,6).map((m,b)=>({word:m.word,color:S[b%S.length]}));return[{icon:"i-heroicons-book-open",iconBgClass:"bg-blue-100 dark:bg-blue-500/20",iconColorClass:"text-blue-600 dark:text-blue-400",title:s("quotes.languagePreference.card.diversityTitle"),leftName:r.name,leftValue:`${r.lexicalDiversity}%`,rightName:l.name,rightValue:`${l.lexicalDiversity}%`,valueClass:"text-lg text-blue-600 dark:text-blue-400",detail:{kind:"tags-single",tags:c},desc:s("quotes.languagePreference.card.diversityDesc")},{icon:"i-heroicons-sparkles",iconBgClass:"bg-violet-100 dark:bg-violet-500/20",iconColorClass:"text-violet-600 dark:text-violet-400",title:s("quotes.languagePreference.card.styleTitle"),leftName:r.name,leftValue:D(r),rightName:l.name,rightValue:D(l),valueClass:"text-xs text-violet-600 dark:text-violet-400",detail:{kind:"tags-vs",leftTags:r.modalParticles.slice(0,4).map(m=>m.word),rightTags:l.modalParticles.slice(0,4).map(m=>m.word)},desc:s("quotes.languagePreference.card.styleDesc")},{icon:"i-heroicons-finger-print",iconBgClass:"bg-orange-100 dark:bg-orange-500/20",iconColorClass:"text-orange-600 dark:text-orange-400",title:s("quotes.languagePreference.card.punctTitle"),leftName:r.name,leftValue:V(r.punctuation),rightName:l.name,rightValue:V(l.punctuation),valueClass:"text-xs text-orange-600 dark:text-orange-400",detail:{kind:"tags-vs",leftTags:q(r.punctuation,4),rightTags:q(l.punctuation,4)},desc:s("quotes.languagePreference.card.punctDesc")}]}),A=E(null);let w=null;function $(){A.value&&(w=se(A.value,void 0,{renderer:"canvas"}),h())}function h(){if(!w||!I.value||!f.value)return;const r=I.value.posDistribution,l=f.value.posDistribution,c=[{name:s("quotes.languagePreference.card.radarFactual"),max:0},{name:s("quotes.languagePreference.card.radarActive"),max:0},{name:s("quotes.languagePreference.card.radarDescriptive"),max:0},{name:s("quotes.languagePreference.card.radarAffable"),max:0},{name:s("quotes.languagePreference.card.radarIntense"),max:0}],m=[r.noun,r.verb,r.adjective,r.modalParticle+r.interjection,r.adverb],b=[l.noun,l.verb,l.adjective,l.modalParticle+l.interjection,l.adverb];for(let W=0;W<c.length;W++)c[W].max=Math.max(m[W],b[W],1)*1.3;const M=C.value?"#9ca3af":"#6b7280";w.setOption({backgroundColor:"transparent",tooltip:{trigger:"item"},legend:{bottom:0,itemWidth:10,itemHeight:10,textStyle:{fontSize:10,color:M},data:[I.value.name,f.value.name]},radar:{indicator:c,radius:"60%",center:["50%","50%"],splitArea:{areaStyle:{color:C.value?["rgba(255,255,255,0.02)","rgba(255,255,255,0.04)"]:["rgba(0,0,0,0.01)","rgba(0,0,0,0.03)"]}},axisName:{color:M,fontSize:10},splitLine:{lineStyle:{color:C.value?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.06)"}},axisLine:{lineStyle:{color:C.value?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)"}}},series:[{type:"radar",data:[{value:m,name:I.value.name,lineStyle:{color:"#3b82f6",width:2},areaStyle:{color:"rgba(59,130,246,0.15)"},itemStyle:{color:"#3b82f6"},symbol:"circle",symbolSize:4},{value:b,name:f.value.name,lineStyle:{color:"#ec4899",width:2},areaStyle:{color:"rgba(236,72,153,0.15)"},itemStyle:{color:"#ec4899"},symbol:"circle",symbolSize:4}]}]},{notMerge:!0})}function d(){w?.resize()}return Z(()=>n.data,()=>h(),{deep:!0}),Z(C,()=>{w?.dispose(),$()}),ve(()=>{$(),window.addEventListener("resize",d)}),xe(()=>{window.removeEventListener("resize",d),w?.dispose()}),(r,l)=>{const c=Q;return i(),L(t(Ce),null,{default:H(()=>[I.value&&f.value?(i(),u("div",bt,[e("div",kt,[e("div",_t,[e("div",wt,[e("span",Ct,o(I.value.name),1),l[0]||(l[0]=e("span",{class:"text-sm sm:text-lg font-black text-gray-300 dark:text-gray-600 italic px-1 sm:px-2 shrink-0"}," VS ",-1)),e("span",$t,o(f.value.name),1)]),e("div",St,[(i(!0),u(O,null,J([I.value,f.value],(m,b)=>(i(),u("div",{key:m.memberId,class:"flex flex-col gap-3"},[e("div",Mt,o(t(s)("quotes.languagePreference.card.topCatchphrases")),1),e("div",jt,[(i(!0),u(O,null,J(m.catchphrases.slice(0,3),(M,W)=>(i(),u("div",{key:W,class:"flex items-center gap-2 group"},[e("span",{class:F(["text-xs sm:text-sm font-black font-mono opacity-40 transition-opacity group-hover:opacity-100",b===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])}," #"+o(W+1),3),e("span",{class:F(["truncate text-sm font-bold text-gray-700 transition-opacity dark:text-gray-200 sm:text-base",n.enableRecordNavigation?"cursor-pointer hover:opacity-70":""]),title:M.content,onClick:K=>n.enableRecordNavigation&&v("wordClick",M.content)}," 「"+o(g(M.content,12))+"」 ",11,Pt),e("span",Tt," ×"+o(M.count),1)]))),128)),m.catchphrases.length===0?(i(),u("div",It,"-")):N("",!0)])]))),128))])]),e("div",Rt,[e("div",{ref_key:"radarRef",ref:A,style:{width:"250px",height:"230px"},class:"-mt-4 sm:-mr-4"},null,512)])]),e("div",Dt,[e("div",At,[e("span",qt,o(t(s)("quotes.languagePreference.card.languageProfiles")),1)]),e("div",zt,[(i(!0),u(O,null,J(y.value,m=>(i(),u("div",{key:m.title,class:"flex min-w-0 flex-col p-4"},[e("div",Bt,[e("div",{class:F(["flex h-8 w-8 shrink-0 items-center justify-center rounded-lg",m.iconBgClass])},[j(c,{name:m.icon,class:F(["h-4 w-4",m.iconColorClass])},null,8,["name","class"])],2),e("span",Lt,o(m.title),1)]),e("div",Nt,[e("div",Vt,[e("span",Ft,o(m.leftName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",m.valueClass])},o(m.leftValue),3)]),l[1]||(l[1]=e("div",{class:"px-2 shrink-0"},[e("span",{class:"text-[10px] font-black text-gray-300 dark:text-gray-600 italic"},"VS")],-1)),e("div",Ot,[e("span",Ut,o(m.rightName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",m.valueClass])},o(m.rightValue),3)])]),e("div",Et,[m.detail.kind==="tags-vs"?(i(),u("div",Wt,[e("div",Ht,[(i(!0),u(O,null,J(m.detail.leftTags,b=>(i(),u("span",{key:b,class:"shrink-0 px-1.5 py-0.5 rounded-md text-[10px] font-semibold font-mono bg-blue-50 text-blue-600 dark:bg-blue-500/10 dark:text-blue-400"},o(b),1))),128)),m.detail.leftTags.length===0?(i(),u("span",Kt,"-")):N("",!0)]),e("div",Jt,[(i(!0),u(O,null,J(m.detail.rightTags,b=>(i(),u("span",{key:b,class:"shrink-0 px-1.5 py-0.5 rounded-md text-[10px] font-semibold font-mono bg-pink-50 text-pink-600 dark:bg-pink-500/10 dark:text-pink-400"},o(b),1))),128)),m.detail.rightTags.length===0?(i(),u("span",Gt,"-")):N("",!0)])])):m.detail.kind==="tags-single"?(i(),u("div",Yt,[(i(!0),u(O,null,J(m.detail.tags.slice(0,6),(b,M)=>(i(),u(O,{key:b.word},[e("span",{class:F(["shrink-0 text-[11px] font-bold transition-opacity",n.enableRecordNavigation?"cursor-pointer hover:opacity-80":""]),style:ge({color:b.color}),onClick:W=>n.enableRecordNavigation&&v("wordClick",b.word)},o(b.word),15,Xt),M<m.detail.tags.slice(0,6).length-1?(i(),u("span",Zt," · ")):N("",!0)],64))),128)),m.detail.tags.length===0?(i(),u("span",Qt,"-")):N("",!0)])):N("",!0),e("p",es,o(m.desc),1)])]))),128))])]),e("div",ts,[e("div",ss,[j(c,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),l[2]||(l[2]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",as,o(t(s)("quotes.languagePreference.card.watermark")),1)])])):N("",!0)]),_:1})}}}),is={class:"px-5 py-4 sm:px-6"},os={class:"mb-4 flex items-center justify-between"},ls={class:"flex items-center gap-2"},rs={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},cs={key:0,class:"rounded-full bg-pink-100 px-2 py-0.5 text-[10px] font-bold text-pink-600 dark:bg-pink-900/30 dark:text-pink-400"},us={key:0,class:"grid grid-cols-2 gap-6"},ds={class:"mb-3 text-center"},ms={class:"text-sm font-semibold text-blue-600 dark:text-blue-400"},gs={class:"flex flex-wrap gap-2"},ps=["title","onClick"],vs={class:"text-[10px] font-semibold opacity-60"},xs={class:"mb-3 text-center"},hs={class:"text-sm font-semibold text-pink-600 dark:text-pink-400"},fs={class:"flex flex-wrap gap-2"},ys=["title","onClick"],bs={class:"text-[10px] font-semibold opacity-60"},ks={key:1,class:"mt-4 text-center text-xs text-gray-500 dark:text-gray-400"},_s=Y({__name:"CatchphrasePKSection",props:{members:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(_,{emit:a}){const{t:s}=X(),C=_,n=a,v=E(20),I=[{label:"10",value:10},{label:"20",value:20},{label:"30",value:30}],f=k(()=>C.members[0]),g=k(()=>C.members[1]),D=k(()=>f.value?.catchphrases.slice(0,v.value)??[]),V=k(()=>g.value?.catchphrases.slice(0,v.value)??[]),q=k(()=>{if(!f.value||!g.value)return new Set;const w=new Set(f.value.catchphrases.map(h=>h.content)),$=new Set(g.value.catchphrases.map(h=>h.content));return new Set([...w].filter(h=>$.has(h)))}),S=[{bg:"bg-amber-50 text-amber-600 ring-1 ring-amber-500/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30",text:"text-amber-700 dark:text-amber-400 font-bold",badge:"bg-amber-500 text-white dark:bg-amber-600"},{bg:"bg-slate-50 text-slate-600 ring-1 ring-slate-500/20 dark:bg-slate-500/10 dark:text-slate-400 dark:ring-slate-500/30",text:"text-slate-700 dark:text-slate-300 font-bold",badge:"bg-slate-400 text-white dark:bg-slate-500"},{bg:"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",text:"text-orange-700 dark:text-orange-400 font-bold",badge:"bg-orange-400 text-white dark:bg-orange-500"}];function y(w){return w<S.length?S[w]:{bg:"bg-gray-50/50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/30 dark:text-gray-400 dark:ring-white/10",text:"text-gray-600 dark:text-gray-400",badge:"bg-transparent text-gray-400"}}function A(w,$=20){return w.length<=$?w:w.slice(0,$)+"..."}return(w,$)=>{const h=Q;return i(),L(t(be),null,{default:H(()=>[e("div",is,[e("div",os,[e("div",ls,[j(h,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"h-4 w-4 text-indigo-500"}),e("span",rs,o(t(s)("quotes.languagePreference.catchphrasePK.title")),1),q.value.size>0?(i(),u("span",cs,o(t(s)("quotes.languagePreference.catchphrasePK.sharedCount",{count:q.value.size})),1)):N("",!0)]),j(t(Te),{modelValue:v.value,"onUpdate:modelValue":$[0]||($[0]=d=>v.value=d),size:"xs",items:I},null,8,["modelValue"])]),f.value&&g.value?(i(),u("div",us,[e("div",null,[e("div",ds,[e("span",ms,o(f.value.name),1)]),e("div",gs,[(i(!0),u(O,null,J(D.value,(d,r)=>(i(),u("div",{key:d.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[C.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",q.value.has(d.content)?"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 shadow-sm":y(r).bg]]),title:d.content,onClick:l=>C.enableRecordNavigation&&n("wordClick",d.content)},[r<3?(i(),u("span",{key:0,class:F(["flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[10px] font-bold",y(r).badge])},o(r+1),3)):N("",!0),e("span",{class:F(["text-[13px] font-medium",q.value.has(d.content)?"font-bold":y(r).text])},o(A(d.content)),3),e("span",vs,"×"+o(d.count),1)],10,ps))),128))])]),e("div",null,[e("div",xs,[e("span",hs,o(g.value.name),1)]),e("div",fs,[(i(!0),u(O,null,J(V.value,(d,r)=>(i(),u("div",{key:d.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[C.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",q.value.has(d.content)?"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 shadow-sm":y(r).bg]]),title:d.content,onClick:l=>C.enableRecordNavigation&&n("wordClick",d.content)},[r<3?(i(),u("span",{key:0,class:F(["flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[10px] font-bold",y(r).badge])},o(r+1),3)):N("",!0),e("span",{class:F(["text-[13px] font-medium",q.value.has(d.content)?"font-bold":y(r).text])},o(A(d.content)),3),e("span",bs,"×"+o(d.count),1)],10,ys))),128))])])])):N("",!0),C.enableRecordNavigation?(i(),u("p",ks,o(t(s)("quotes.languagePreference.catchphrasePK.hint")),1)):N("",!0)])]),_:1})}}}),ws={class:"px-5 py-4 sm:px-6"},Cs={class:"mb-4 flex items-center gap-2"},$s={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Ss={class:"flex flex-col gap-4 lg:flex-row lg:gap-6"},Ms={class:"flex-1"},js={key:0,class:"flex shrink-0 flex-col gap-3 lg:w-48"},Ps={class:"min-w-0"},Ts={class:"truncate text-xs font-semibold text-gray-500 dark:text-gray-400"},Is=Y({__name:"PosPortraitSection",props:{members:{}},setup(_){he([qe,ze,fe,ft,ye]);const{t:a}=X(),s=pe(),C=_,n=k(()=>C.members[0]),v=k(()=>C.members[1]);function I(S){const y=S.posDistribution,A=y.noun+y.verb+y.adjective+y.adverb+y.modalParticle+y.interjection+y.other;if(A===0)return{label:a("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const w=y.noun/A,$=y.verb/A,h=y.adjective/A;return w>.5?{label:a("quotes.languagePreference.pos.styleEncyclopedia"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:$>.45?{label:a("quotes.languagePreference.pos.styleAction"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:h>.3?{label:a("quotes.languagePreference.pos.styleExpressive"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{label:a("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}const f=E(null);let g=null;function D(){f.value&&(g=se(f.value,void 0,{renderer:"canvas"}),V())}function V(){if(!g||!n.value||!v.value)return;const S=n.value.posDistribution,y=v.value.posDistribution,A=[a("quotes.languagePreference.card.radarNoun"),a("quotes.languagePreference.card.radarVerb"),a("quotes.languagePreference.card.radarAdj"),a("quotes.languagePreference.card.radarModal"),a("quotes.languagePreference.card.radarAdv")],w=[S.noun,S.verb,S.adjective,S.modalParticle+S.interjection,S.adverb],$=[y.noun,y.verb,y.adjective,y.modalParticle+y.interjection,y.adverb],h=s.value?"#9ca3af":"#6b7280";g.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{data:[n.value.name,v.value.name],top:0,textStyle:{fontSize:11,color:h}},grid:{left:80,right:20,top:36,bottom:10},xAxis:{type:"value",show:!1},yAxis:{type:"category",data:A,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:h}},series:[{name:n.value.name,type:"bar",data:w,itemStyle:{color:"#3b82f6",borderRadius:[0,4,4,0]},barGap:"20%",barCategoryGap:"40%"},{name:v.value.name,type:"bar",data:$,itemStyle:{color:"#ec4899",borderRadius:[0,4,4,0]}}]},{notMerge:!0})}function q(){g?.resize()}return Z(()=>C.members,()=>V(),{deep:!0}),Z(s,()=>{g?.dispose(),D()}),ve(()=>{D(),window.addEventListener("resize",q)}),xe(()=>{window.removeEventListener("resize",q),g?.dispose()}),(S,y)=>{const A=Q;return i(),L(t(be),null,{default:H(()=>[e("div",ws,[e("div",Cs,[j(A,{name:"i-heroicons-chart-bar",class:"h-4 w-4 text-violet-500"}),e("span",$s,o(t(a)("quotes.languagePreference.pos.title")),1)]),e("div",Ss,[e("div",Ms,[e("div",{ref_key:"chartRef",ref:f,style:{width:"100%",height:"220px"}},null,512)]),n.value&&v.value?(i(),u("div",js,[(i(!0),u(O,null,J([n.value,v.value],w=>(i(),u("div",{key:w.memberId,class:"flex min-w-0 items-center gap-3 px-1 py-3"},[j(A,{name:I(w).icon,class:F(["h-5 w-5 shrink-0",I(w).colorClass])},null,8,["name","class"]),e("div",Ps,[e("div",Ts,o(w.name),1),e("div",{class:F(["truncate text-sm font-bold",I(w).colorClass])},o(I(w).label),3)])]))),128))])):N("",!0)])])]),_:1})}}}),Rs={class:"px-5 py-4 sm:px-6"},Ds={class:"mb-4 flex items-center gap-2"},As={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},qs={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},zs={class:"mb-2 flex items-center justify-between"},Bs={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Ls=Y({__name:"ModalParticleSection",props:{members:{}},setup(_){he([qe,ze,fe,ye]);const{t:a}=X(),s=pe(),C=_,n=k(()=>C.members[0]),v=k(()=>C.members[1]),I=new Set(["呀","哒","滴","啦","哇","耶"]),f=new Set(["呢","吗","嘛"]),g=new Set(["吧","喔","噢","嘛"]),D=new Set(["嗯","哦","额","呃"]);function V(d){const r={label:a("quotes.languagePreference.modal.toneMixed"),colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"};if(d.modalParticles.length===0)return r;let l=0,c=0,m=0,b=0,M=0;for(const K of d.modalParticles)M+=K.count,I.has(K.word)&&(l+=K.count),f.has(K.word)&&(c+=K.count),g.has(K.word)&&(m+=K.count),D.has(K.word)&&(b+=K.count);if(M===0)return r;const W=Math.max(l,c,m,b);return W===l&&l/M>.3?{label:a("quotes.languagePreference.modal.toneSoft"),colorClass:"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"}:W===c&&c/M>.3?{label:a("quotes.languagePreference.modal.toneCurious"),colorClass:"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"}:W===m&&m/M>.3?{label:a("quotes.languagePreference.modal.toneCasual"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"}:W===b&&b/M>.3?{label:a("quotes.languagePreference.modal.toneCalm"),colorClass:"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"}:r}const q=E(null),S=E(null);let y=null,A=null;function w(d,r){const l=d.modalParticles.slice(0,8),c=s.value?"#9ca3af":"#6b7280";return{backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},grid:{left:40,right:20,top:4,bottom:4},xAxis:{type:"value",show:!1},yAxis:{type:"category",data:l.map(m=>m.word).reverse(),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:12,color:c},inverse:!1},series:[{type:"bar",data:l.map(m=>m.count).reverse(),itemStyle:{color:r,borderRadius:[0,4,4,0]},barWidth:"50%",label:{show:!0,position:"right",fontSize:10,color:c,formatter:"{c}"}}]}}function $(){q.value&&n.value&&(y=se(q.value,void 0,{renderer:"canvas"}),y.setOption(w(n.value,"#3b82f6"),{notMerge:!0})),S.value&&v.value&&(A=se(S.value,void 0,{renderer:"canvas"}),A.setOption(w(v.value,"#ec4899"),{notMerge:!0}))}function h(){y?.resize(),A?.resize()}return Z(()=>C.members,()=>{y&&n.value&&y.setOption(w(n.value,"#3b82f6"),{notMerge:!0}),A&&v.value&&A.setOption(w(v.value,"#ec4899"),{notMerge:!0})},{deep:!0}),Z(s,()=>{y?.dispose(),A?.dispose(),$()}),ve(()=>{$(),window.addEventListener("resize",h)}),xe(()=>{window.removeEventListener("resize",h),y?.dispose(),A?.dispose()}),(d,r)=>{const l=Q;return i(),L(t(be),null,{default:H(()=>[e("div",Rs,[e("div",Ds,[j(l,{name:"i-heroicons-chat-bubble-oval-left-ellipsis",class:"h-4 w-4 text-pink-500"}),e("span",As,o(t(a)("quotes.languagePreference.modal.title")),1)]),n.value&&v.value?(i(),u("div",qs,[(i(!0),u(O,null,J([n.value,v.value],(c,m)=>(i(),u("div",{key:c.memberId},[e("div",zs,[e("span",{class:F(["text-sm font-semibold",m===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(c.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",V(c).colorClass])},o(V(c).label),3)]),c.modalParticles.length>0?(i(),u("div",{key:0,ref_for:!0,ref:b=>{m===0?q.value=b:S.value=b},style:{width:"100%",height:"200px"}},null,512)):(i(),u("div",Bs,o(t(a)("quotes.languagePreference.modal.empty")),1))]))),128))])):N("",!0)])]),_:1})}}}),Ns={class:"px-5 py-4 sm:px-6"},Vs={class:"mb-4 flex items-center gap-2"},Fs={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Os={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Us={class:"mb-2 flex items-center gap-2"},Es={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Ws=Y({__name:"PunctuationSection",props:{members:{}},setup(_){he([yt,fe,ye]);const{t:a}=X(),s=pe(),C=_,n=k(()=>C.members[0]),v=k(()=>C.members[1]),I=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6"];function f($){const d=[["ellipsis",$.ellipsis],["exclamation",$.exclamation],["question",$.question],["tilde",$.tilde],["noPunct",$.noPunct],["period",$.period]].reduce((l,c)=>l[1]>=c[1]?l:c);return{ellipsis:{label:a("quotes.languagePreference.punctuation.personalityDeep"),colorClass:"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"},exclamation:{label:a("quotes.languagePreference.punctuation.personalityPassionate"),colorClass:"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"},question:{label:a("quotes.languagePreference.punctuation.personalityCurious"),colorClass:"bg-amber-50 text-amber-600 ring-1 ring-amber-500/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30"},tilde:{label:a("quotes.languagePreference.punctuation.personalityCheerful"),colorClass:"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"},noPunct:{label:a("quotes.languagePreference.punctuation.personalityFreeflow"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"},period:{label:a("quotes.languagePreference.punctuation.personalityPrecise"),colorClass:"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"}}[d[0]]||{label:"-",colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"}}function g($){return[{name:"...",value:$.ellipsis},{name:"!",value:$.exclamation},{name:"?",value:$.question},{name:"~",value:$.tilde},{name:"。",value:$.period},{name:a("quotes.languagePreference.punctuation.none"),value:$.noPunct}].filter(h=>h.value>0)}const D=E(null),V=E(null);let q=null,S=null;function y($){return{backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},series:[{type:"pie",radius:["45%","75%"],center:["50%","50%"],avoidLabelOverlap:!1,padAngle:2,itemStyle:{borderRadius:4},label:{show:!0,fontSize:10,color:s.value?"#9ca3af":"#6b7280",formatter:"{b}"},emphasis:{label:{show:!0,fontWeight:"bold"},scaleSize:4},data:$.map((h,d)=>({...h,itemStyle:{color:I[d%I.length]}}))}]}}function A(){D.value&&n.value&&(q=se(D.value,void 0,{renderer:"canvas"}),q.setOption(y(g(n.value.punctuation)),{notMerge:!0})),V.value&&v.value&&(S=se(V.value,void 0,{renderer:"canvas"}),S.setOption(y(g(v.value.punctuation)),{notMerge:!0}))}function w(){q?.resize(),S?.resize()}return Z(()=>C.members,()=>{q&&n.value&&q.setOption(y(g(n.value.punctuation)),{notMerge:!0}),S&&v.value&&S.setOption(y(g(v.value.punctuation)),{notMerge:!0})},{deep:!0}),Z(s,()=>{q?.dispose(),S?.dispose(),A()}),ve(()=>{A(),window.addEventListener("resize",w)}),xe(()=>{window.removeEventListener("resize",w),q?.dispose(),S?.dispose()}),($,h)=>{const d=Q;return i(),L(t(be),null,{default:H(()=>[e("div",Ns,[e("div",Vs,[j(d,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4 text-orange-500"}),e("span",Fs,o(t(a)("quotes.languagePreference.punctuation.title")),1)]),n.value&&v.value?(i(),u("div",Os,[(i(!0),u(O,null,J([n.value,v.value],(r,l)=>(i(),u("div",{key:r.memberId,class:"flex flex-col items-center"},[e("div",Us,[e("span",{class:F(["text-sm font-semibold",l===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(r.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",f(r.punctuation).colorClass])},o(f(r.punctuation).label),3)]),r.punctuation.total>0?(i(),u("div",{key:0,ref_for:!0,ref:c=>{l===0?D.value=c:V.value=c},style:{width:"100%",height:"200px"}},null,512)):(i(),u("div",Es,o(t(a)("quotes.languagePreference.punctuation.empty")),1))]))),128))])):N("",!0)])]),_:1})}}}),Hs={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Ks=Y({__name:"LanguagePreferenceTab",props:{sessionId:{},timeFilter:{},enableRecordNavigation:{type:Boolean,default:!0}},setup(_){const{t:a,locale:s}=X(),C=Ie(),n=_,v=E(null),I=E(!1),f=k(()=>v.value&&v.value.members.length>=2);async function g(){if(n.sessionId){I.value=!0;try{v.value=await we().getLanguagePreferenceAnalysis(n.sessionId,s.value,n.timeFilter)}catch(V){console.error("[LanguagePreferenceTab] Failed to load:",V)}finally{I.value=!1}}}function D(V){n.enableRecordNavigation&&C.openChatRecordDrawer({keywords:[V]})}return Z(()=>[n.sessionId,n.timeFilter],()=>g(),{immediate:!0,deep:!0}),(V,q)=>(i(),u("div",Hs,[I.value?(i(),L(t(le),{key:0,text:t(a)("quotes.languagePreference.loading")},null,8,["text"])):f.value?v.value?(i(),u(O,{key:2},[j(ns,{data:v.value,"enable-record-navigation":n.enableRecordNavigation,onWordClick:D},null,8,["data","enable-record-navigation"]),j(_s,{members:v.value.members,"enable-record-navigation":n.enableRecordNavigation,onWordClick:D},null,8,["members","enable-record-navigation"]),j(Is,{members:v.value.members},null,8,["members"]),j(Ls,{members:v.value.members},null,8,["members"]),j(Ws,{members:v.value.members},null,8,["members"])],64)):N("",!0):(i(),L(t($e),{key:1,text:t(a)("quotes.languagePreference.empty")},null,8,["text"]))]))}}),Js={class:"flex min-w-0 flex-col p-4"},Gs={class:"mb-2 min-h-8"},Ys={class:"flex items-center justify-between gap-2"},Xs={class:"flex min-w-0 items-center gap-2"},Zs={class:"truncate text-xs font-bold tracking-wide text-gray-900 dark:text-white"},Qs={key:0,class:"shrink-0"},ea={class:"flex h-full flex-col"},ta={class:"grid grid-cols-2 gap-2"},sa={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},aa=["title"],na={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},ia=["title"],oa={class:"mt-auto pt-3 min-h-8 text-[10px] leading-relaxed text-gray-500 dark:text-gray-400 sm:min-h-6"},me=Y({__name:"RelationshipMetricCard",props:{title:{},iconName:{},iconBgClass:{},iconColorClass:{},leftName:{default:"—"},leftValue:{default:"--"},rightName:{default:"—"},rightValue:{default:"--"},valueClass:{default:"text-gray-700 dark:text-gray-200"},description:{default:""}},setup(_){const a=Ne(),s=k(()=>!!a["header-extra"]);return(C,n)=>{const v=Q;return i(),u("div",Js,[e("div",Gs,[e("div",Ys,[e("div",Xs,[e("div",{class:F(["flex h-6 w-6 shrink-0 items-center justify-center rounded-full",_.iconBgClass])},[j(v,{name:_.iconName,class:F(["h-3.5 w-3.5",_.iconColorClass])},null,8,["name","class"])],2),e("span",Zs,o(_.title),1)]),s.value?(i(),u("div",Qs,[Ve(C.$slots,"header-extra")])):N("",!0)])]),e("div",ea,[e("div",ta,[e("div",sa,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:_.leftName},o(_.leftName),9,aa),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",_.valueClass])},o(_.leftValue),3)]),e("div",na,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:_.rightName},o(_.rightName),9,ia),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",_.valueClass])},o(_.rightValue),3)])]),e("p",oa,o(_.description),1)])])}}}),la={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},ra={class:"space-y-6"},ca={class:"relative z-10 flex flex-col items-center justify-center gap-10 px-6 pt-10 pb-6 sm:px-8 lg:flex-row lg:items-start lg:justify-between lg:gap-8 xl:gap-12"},ua={class:"flex min-w-0 max-w-full flex-1 flex-col items-center justify-center lg:items-start"},da={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},ma={class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},ga={class:"mb-4 flex min-w-0 flex-wrap items-baseline gap-2"},pa={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},va={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},xa={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},ha={class:"flex min-w-0 max-w-full flex-wrap items-baseline gap-x-1.5 gap-y-1"},fa={class:"text-base font-medium text-gray-600 dark:text-gray-300"},ya={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},ba={class:"text-base font-medium text-gray-600 dark:text-gray-300"},ka={class:"max-w-full break-all text-xl font-bold leading-snug text-gray-900 dark:text-white"},_a={class:"text-base font-medium text-gray-600 dark:text-gray-300"},wa={class:"mt-8 flex w-full max-w-[320px] items-center justify-between gap-4"},Ca={class:"flex flex-1 flex-col items-center overflow-hidden"},$a=["title"],Sa={class:"mt-1 text-2xl font-black text-blue-500 dark:text-blue-400"},Ma={class:"mt-0.5 text-[10px] font-medium text-gray-400"},ja={class:"flex flex-1 flex-col items-center overflow-hidden"},Pa=["title"],Ta={class:"mt-1 text-2xl font-black text-pink-500 dark:text-pink-400"},Ia={class:"mt-0.5 text-[10px] font-medium text-gray-400"},Ra={key:0,class:"flex min-w-0 w-full max-w-[400px] flex-1 flex-col justify-center lg:max-w-[460px]"},Da={class:"mb-2 flex items-center justify-between px-1"},Aa={class:"text-sm font-bold text-gray-900 dark:text-white"},qa={class:"text-[10px] font-medium text-gray-500 dark:text-gray-400"},za={class:"w-full"},Ba={class:"h-[200px] w-full"},La={class:"relative z-10 grid grid-cols-2 gap-3 p-4 pt-2 sm:p-6 sm:pt-2 lg:grid-cols-4"},Na={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"},Va={class:"flex items-center gap-1.5"},Fa={class:"text-[9px] font-medium uppercase tracking-widest"},Oa={class:"px-4 pb-5 sm:px-6 sm:pb-6"},Ua={key:0,class:"mt-6"},Ea={class:"mb-3 text-xs font-semibold tracking-wide text-gray-400 uppercase dark:text-gray-500"},Wa={class:"grid gap-x-8 gap-y-4 sm:grid-cols-3"},Ha={class:"min-w-0"},Ka={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Ja=["title"],Ga={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Ya={class:"mt-5 flex justify-center"},Xa={key:1,class:"mt-3 overflow-x-auto rounded-lg border border-gray-200/80 dark:border-white/10"},Za={class:"min-w-full text-left text-sm"},Qa={class:"bg-gray-50/80 text-xs text-gray-500 dark:bg-white/[0.03] dark:text-gray-400"},en={scope:"col",class:"px-4 py-2.5 font-medium"},tn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},sn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},an={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},nn={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},on={class:"divide-y divide-gray-100 dark:divide-white/5"},ln={class:"whitespace-nowrap px-4 py-2.5 font-medium text-gray-700 dark:text-gray-300"},rn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},cn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},un={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},dn={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},mn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},gn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},pn=Y({__name:"PrivateRelationshipView",props:{sessionId:{},timeFilter:{}},setup(_){const{t:a,locale:s}=X(),C=_,n=E(null),v=E(!1),I=E(!1),f=E("activity"),g=E(!1),D=E(300);async function V(x){if(!C.sessionId)return;const p=x?.localOnly==="perseverance";p?I.value=!0:v.value=!0;try{n.value=await we().getRelationshipStats(C.sessionId,C.timeFilter,{perseveranceThreshold:D.value})}catch(z){console.error("Failed to load relationship stats:",z)}finally{p?I.value=!1:v.value=!1}}Z(()=>[C.sessionId,C.timeFilter],()=>V(),{immediate:!0,deep:!0});const q=[{label:"1m",value:60},{label:"3m",value:180},{label:"5m",value:300},{label:"10m",value:600},{label:"30m",value:1800}];function S(x){D.value!==x&&(D.value=x,V({localOnly:"perseverance"}))}const y=k({get:()=>D.value,set:x=>S(x)});function A(x){return a("views.relationship.perseverance.thresholdMinutes",{n:Math.round(x/60)})}const w=k(()=>a("views.relationship.perseverance.hintWithThreshold",{threshold:A(D.value)})),$=k(()=>n.value?.hasSessionIndex&&n.value.totalSessions>0),h=k(()=>n.value?.members[0]),d=k(()=>n.value?.members[1]),r=k(()=>{if(!h.value||!n.value)return 50;const x=(h.value.totalInitiateCount??0)+(d.value?.totalInitiateCount??0);return x===0?50:Math.round(h.value.totalInitiateCount/x*100)}),l=k(()=>{if(!n.value||n.value.months.length===0)return"";const x=[...n.value.months].sort((R,T)=>R.month.localeCompare(T.month)),p=x[0].month.replace("-","/"),z=x[x.length-1].month.replace("-","/");return p===z?p:`${p} – ${z}`}),c=k(()=>s.value.startsWith("en")?"max-w-[420px]":"max-w-[320px]"),m=k(()=>{if(!n.value||n.value.months.length===0||!h.value)return{};const x=[...n.value.months].sort((B,te)=>B.month.localeCompare(te.month)),p=x.map(B=>M(B.month)),z=h.value.name,R=d.value?.name??"—",T=x.map(B=>{const te=B.members.find(de=>de.memberId===h.value.memberId);return!te||B.totalSessions===0?50:Math.round(te.initiateCount/B.totalSessions*100)});return{tooltip:{trigger:"axis",formatter(B){const te=B[0],de=te.value;return`${te.axisValue}<br/>${z}: ${de}%<br/>${R}: ${100-de}%`}},grid:{left:40,right:20,top:20,bottom:30},xAxis:{type:"category",data:p,axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,max:100,axisLabel:{formatter:"{value}%",fontSize:11},splitLine:{lineStyle:{type:"dashed"}}},series:[{type:"line",data:T,smooth:!0,symbol:"circle",symbolSize:6,lineStyle:{width:2,color:"#3b82f6"},itemStyle:{color:"#3b82f6"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(59, 130, 246, 0.15)"},{offset:1,color:"rgba(59, 130, 246, 0)"}]}},markLine:{silent:!0,data:[{yAxis:50,lineStyle:{type:"dashed",color:"#9ca3af"}}],label:{show:!1},symbol:"none"}}]}});function b(x){const[p,z]=x.split("-");return a("views.relationship.monthFormat",{year:p,month:Number.parseInt(z,10)})}function M(x){const p=x.split("-");return a("views.relationship.monthShortFormat",{month:Number.parseInt(p[1],10)})}function W(x){return!x||!n.value?.iceBreakers?.length?0:n.value.iceBreakers.filter(p=>p.memberId===x).reduce((p,z)=>p+z.count,0)}function K(x){if(!x||!n.value?.responseLatency?.length)return null;const p=n.value.responseLatency.find(z=>z.memberId===x);return p?p.avgResponseTime:null}function re(x){return!x||!n.value?.perseverance?.length?0:n.value.perseverance.find(z=>z.memberId===x)?.totalDoubleTexts??0}function ce(x){const p=K(x);return p!=null?ee(p):"--"}function ae(x){return n.value?.monthlyResponseLatency?.find(p=>p.month===x)?.members??[]}function ke(x){return n.value?.monthlyPerseverance?.find(p=>p.month===x)?.members??[]}function ne(x,p){return p?ae(x).find(R=>R.memberId===p)?.avgResponseTime??null:null}function ue(x,p){const z=ne(x,p);return z==null?"—":ee(z)}function G(x,p){return p?ke(x).find(R=>R.memberId===p)?.doubleTextCount??0:0}function P(x){return n.value?.iceBreakers?.filter(p=>p.month===x).reduce((p,z)=>p+z.count,0)??0}function ie(x){const p=ae(x),z=p.reduce((R,T)=>R+T.responseCount,0);return z===0?null:p.reduce((R,T)=>R+T.avgResponseTime*T.responseCount,0)/z}function ee(x){const p=Math.max(0,Math.round(x));if(p<60)return a("views.relationship.responseLatency.seconds",{n:p});if(p<3600){const T=Math.floor(p/60),B=p%60;return a("views.relationship.responseLatency.minutesSeconds",{m:T,s:B})}const z=Math.floor(p/3600),R=Math.floor(p%3600/60);return R===0?a("views.relationship.responseLatency.hours",{n:z}):a("views.relationship.responseLatency.hoursMinutes",{h:z,m:R})}const U=k(()=>[...n.value?.months??[]].sort((x,p)=>x.month.localeCompare(p.month))),Be=k(()=>[{label:a("views.relationship.trajectory.metrics.activity"),value:"activity"},{label:a("views.relationship.trajectory.metrics.response"),value:"response"},{label:a("views.relationship.trajectory.metrics.perseverance"),value:"perseverance"}]),Le=k(()=>{const x=U.value,p=new Set(x.map(T=>T.month.slice(0,4))).size>1,z=x.map(T=>p?T.month.replace("-","/"):M(T.month)),R={color:["#3b82f6","#ec4899"],tooltip:{trigger:"axis"},legend:{top:4,textStyle:{fontSize:11}},grid:{left:52,right:24,top:44,bottom:34},xAxis:{type:"category",data:z,axisTick:{show:!1},axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,minInterval:1,axisLabel:{fontSize:11},splitLine:{lineStyle:{type:"dashed"}}}};return f.value==="activity"?{...R,series:[{name:a("views.relationship.trajectory.conversations"),type:"bar",data:x.map(T=>T.totalSessions),barMaxWidth:32,itemStyle:{borderRadius:[4,4,0,0]}},{name:a("views.relationship.trajectory.iceBreaks"),type:"line",data:x.map(T=>P(T.month)),smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:f.value==="response"?{...R,tooltip:{trigger:"axis",valueFormatter(T){return typeof T=="number"?ee(T):String(T??"—")}},yAxis:{type:"value",min:0,axisLabel:{fontSize:11,formatter(T){return ee(T)}},splitLine:{lineStyle:{type:"dashed"}}},series:[{name:h.value?.name??"—",type:"line",data:x.map(T=>ne(T.month,h.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}},{name:d.value?.name??"—",type:"line",data:x.map(T=>ne(T.month,d.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:{...R,series:[{name:h.value?.name??"—",type:"bar",data:x.map(T=>G(T.month,h.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}},{name:d.value?.name??"—",type:"bar",data:x.map(T=>G(T.month,d.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}}]}}),Se=k(()=>{const x=U.value.reduce((R,T)=>!R||T.totalSessions>R.totalSessions?T:R,null),p=U.value.map(R=>({month:R.month,count:P(R.month)})).filter(R=>R.count>0).sort((R,T)=>T.count-R.count)[0],z=U.value.map(R=>({month:R.month,value:ie(R.month)})).filter(R=>R.value!=null).sort((R,T)=>R.value-T.value)[0];return[x&&x.totalSessions>0?{icon:"i-heroicons-chart-bar-square-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.relationship.trajectory.activityPeak"),month:b(x.month),detail:a("views.relationship.trajectory.activityPeakDetail",{count:x.totalSessions})}:null,p?{icon:"i-heroicons-fire-solid",iconClass:"bg-pink-50 text-pink-500 dark:bg-pink-500/10 dark:text-pink-400",title:a("views.relationship.trajectory.iceBreakPeak"),month:b(p.month),detail:a("views.relationship.trajectory.iceBreakPeakDetail",{count:p.count})}:null,z?{icon:"i-heroicons-clock-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.relationship.trajectory.fastestResponse"),month:b(z.month),detail:a("views.relationship.trajectory.fastestResponseDetail",{duration:ee(z.value)})}:null].filter(R=>R!=null)});return(x,p)=>{const z=Fe,R=Q,T=Re;return i(),u("div",{class:F(v.value?"h-full":"")},[v.value?(i(),L(t(le),{key:0,variant:"page",text:t(a)("common.loading")},null,8,["text"])):(i(),u("div",la,[n.value&&!$.value?(i(),L(t($e),{key:0,icon:"i-heroicons-heart",title:t(a)("views.relationship.empty.title"),description:t(a)("views.relationship.empty.description")},null,8,["title","description"])):n.value&&$.value?(i(),u(O,{key:1},[e("div",ra,[j(t(Ce),{id:"shareable-poster"},{default:H(()=>[e("div",ca,[e("div",ua,[e("div",{class:F(["flex w-fit min-w-0 flex-col items-start text-left",c.value])},[e("div",da,[e("p",ma,o(l.value),1),e("div",ga,[e("span",pa,o(t(a)("views.relationship.hero.totalSessionsPrefix")),1),e("span",va,o(n.value.totalSessions),1),e("span",xa,o(t(a)("views.relationship.hero.totalSessionsSuffix")),1)]),e("div",ha,[e("span",fa,o(t(a)("views.relationship.hero.initiativePrefix")),1),e("span",ya,o(r.value>=50?r.value:100-r.value)+"% ",1),e("span",ba,o(t(a)("views.relationship.hero.initiativeByPrefix")),1),e("span",ka,o(r.value>=50?h.value?.name:d.value?.name),1),e("span",_a,o(t(a)("views.relationship.hero.initiativeBySuffix")),1)])]),e("div",wa,[e("div",Ca,[e("div",{class:"w-full truncate text-center text-xs font-bold text-gray-500 dark:text-gray-400",title:h.value?.name},o(h.value?.name),9,$a),e("div",Sa,o(h.value?.totalInitiateCount),1),e("div",Ma,o(t(a)("views.relationship.hero.initiateTimes")),1)]),p[3]||(p[3]=e("div",{class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-gray-100 font-black text-[10px] italic text-gray-400 shadow-inner dark:bg-page-dark/80 dark:text-gray-500"}," VS ",-1)),e("div",ja,[e("div",{class:"w-full truncate text-center text-xs font-bold text-gray-500 dark:text-gray-400",title:d.value?.name},o(d.value?.name),9,Pa),e("div",Ta,o(d.value?.totalInitiateCount),1),e("div",Ia,o(t(a)("views.relationship.hero.initiateTimes")),1)])])],2)]),n.value.months.length>=2?(i(),u("div",Ra,[e("div",Da,[e("span",Aa,o(t(a)("views.relationship.trend.title")),1),e("span",qa,o(t(a)("views.relationship.trend.hint",{name:h.value?.name??""})),1)]),e("div",za,[e("div",Ba,[j(t(Pe),{option:m.value,height:200},null,8,["option"])])])])):N("",!0)]),e("div",La,[j(me,{title:t(a)("views.relationship.closerTitle"),"icon-name":"i-heroicons-hand-raised-solid","icon-bg-class":"bg-blue-100 dark:bg-blue-500/20","icon-color-class":"text-blue-600 dark:text-blue-400","left-name":h.value?.name,"left-value":h.value?.totalCloseCount??0,"right-name":d.value?.name,"right-value":d.value?.totalCloseCount??0,"value-class":"text-lg text-blue-600 dark:text-blue-400",description:t(a)("views.relationship.closerHint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.iceBreaker.title"),"icon-name":"i-heroicons-fire-solid","icon-bg-class":"bg-pink-100 dark:bg-pink-500/20","icon-color-class":"text-pink-600 dark:text-pink-400","left-name":h.value?.name,"left-value":W(h.value?.memberId),"right-name":d.value?.name,"right-value":W(d.value?.memberId),"value-class":"text-lg text-pink-600 dark:text-pink-400",description:t(a)("views.relationship.iceBreaker.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.responseLatency.title"),"icon-name":"i-heroicons-clock-solid","icon-bg-class":"bg-amber-100 dark:bg-amber-500/20","icon-color-class":"text-amber-600 dark:text-amber-400","left-name":h.value?.name,"left-value":ce(h.value?.memberId),"right-name":d.value?.name,"right-value":ce(d.value?.memberId),"value-class":"text-base text-amber-600 dark:text-amber-400",description:t(a)("views.relationship.responseLatency.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.perseverance.title"),"icon-name":"i-heroicons-arrow-path-solid","icon-bg-class":"bg-purple-100 dark:bg-purple-500/20","icon-color-class":"text-purple-600 dark:text-purple-400","left-name":h.value?.name,"left-value":re(h.value?.memberId),"right-name":d.value?.name,"right-value":re(d.value?.memberId),"value-class":"text-lg text-purple-600 dark:text-purple-400",description:w.value},{"header-extra":H(()=>[j(z,{modelValue:y.value,"onUpdate:modelValue":p[0]||(p[0]=B=>y.value=B),items:q,"value-key":"value",size:"xs",class:"relative z-[120] w-16",ui:{content:"z-[121]"},disabled:I.value},null,8,["modelValue","disabled"])]),_:1},8,["title","left-name","left-value","right-name","right-value","description"])]),e("div",Na,[e("div",Va,[j(R,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),p[4]||(p[4]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Fa,o(t(a)("views.relationship.watermarkReport")),1)])]),_:1})]),j(t(oe),{title:t(a)("views.relationship.trajectory.title"),description:t(a)("views.relationship.trajectory.description"),"show-divider":!1},{headerRight:H(()=>[j(t(Te),{modelValue:f.value,"onUpdate:modelValue":p[1]||(p[1]=B=>f.value=B),items:Be.value,size:"sm",class:"max-w-[58vw] sm:max-w-none"},null,8,["modelValue","items"])]),default:H(()=>[e("div",Oa,[j(t(Pe),{option:Le.value,height:280},null,8,["option"]),Se.value.length>0?(i(),u("div",Ua,[e("p",Ea,o(t(a)("views.relationship.trajectory.keyMoments")),1),e("div",Wa,[(i(!0),u(O,null,J(Se.value,B=>(i(),u("div",{key:B.title,class:"flex min-w-0 items-start gap-3 py-1"},[e("div",{class:F(["flex h-8 w-8 shrink-0 items-center justify-center rounded-lg",B.iconClass])},[j(R,{name:B.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Ha,[e("p",Ka,o(B.title),1),e("p",{class:"mt-0.5 truncate text-sm font-semibold text-gray-900 dark:text-white",title:B.month},o(B.month),9,Ja),e("p",Ga,o(B.detail),1)])]))),128))])])):N("",!0),e("div",Ya,[j(T,{color:"neutral",variant:"ghost",size:"sm",icon:g.value?"i-heroicons-chevron-up":"i-heroicons-chevron-down",onClick:p[2]||(p[2]=B=>g.value=!g.value)},{default:H(()=>[_e(o(g.value?t(a)("views.relationship.trajectory.hideAll"):t(a)("views.relationship.trajectory.showAll")),1)]),_:1},8,["icon"])]),g.value?(i(),u("div",Xa,[e("table",Za,[e("thead",Qa,[e("tr",null,[e("th",en,o(t(a)("views.relationship.trajectory.month")),1),f.value==="activity"?(i(),u(O,{key:0},[e("th",tn,o(t(a)("views.relationship.trajectory.conversations")),1),e("th",sn,o(t(a)("views.relationship.trajectory.iceBreaks")),1)],64)):(i(),u(O,{key:1},[e("th",an,o(h.value?.name),1),e("th",nn,o(d.value?.name),1)],64))])]),e("tbody",on,[(i(!0),u(O,null,J([...U.value].reverse(),B=>(i(),u("tr",{key:B.month},[e("td",ln,o(b(B.month)),1),f.value==="activity"?(i(),u(O,{key:0},[e("td",rn,o(B.totalSessions),1),e("td",cn,o(P(B.month)),1)],64)):f.value==="response"?(i(),u(O,{key:1},[e("td",un,o(ue(B.month,h.value?.memberId)),1),e("td",dn,o(ue(B.month,d.value?.memberId)),1)],64)):(i(),u(O,{key:2},[e("td",mn,o(G(B.month,h.value?.memberId)),1),e("td",gn,o(G(B.month,d.value?.memberId)),1)],64))]))),128))])])])):N("",!0)])]),_:1},8,["title","description"])],64)):N("",!0)]))],2)}}}),vn={class:"relative z-10 px-6 pt-8 pb-5 sm:px-8 sm:pt-10"},xn={class:"flex flex-col gap-8 lg:flex-row lg:items-center lg:justify-between lg:gap-12"},hn={class:"min-w-0 flex-1"},fn={class:"text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},yn={class:"mt-3 flex flex-wrap items-baseline gap-x-2 gap-y-1"},bn={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},kn={class:"text-4xl font-black tracking-tight text-gray-900 dark:text-white sm:text-5xl"},_n={class:"mt-3 max-w-xl text-sm leading-6 text-gray-500 dark:text-gray-400"},wn={class:"w-full min-w-0 lg:max-w-[380px]"},Cn={class:"mb-3 flex items-center justify-between gap-4"},$n={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-gray-300"},Sn={class:"text-[10px] font-medium text-gray-400 dark:text-gray-500"},Mn=["title"],jn={class:"mt-2 flex justify-between text-[10px] font-medium text-gray-400 dark:text-gray-500"},Pn={class:"relative z-10 grid grid-cols-2 gap-x-3 gap-y-4 px-4 pt-2 pb-6 sm:px-6 lg:grid-cols-4"},Tn={class:"min-w-0"},In={class:"mt-1 truncate text-[10px] font-semibold text-gray-600 dark:text-gray-300"},Rn={class:"mt-0.5 line-clamp-2 text-[9px] leading-4 text-gray-400 dark:text-gray-500"},Dn={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"},An={class:"flex items-center gap-1.5"},qn={class:"text-[9px] font-medium uppercase tracking-widest"},zn=Y({__name:"JourneyReportCard",props:{stats:{},filtered:{type:Boolean}},setup(_){const a=_,{t:s,locale:C}=X(),n=k(()=>new Intl.NumberFormat(C.value)),v=k(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short",day:"numeric"})),I=k(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short"})),f=k(()=>a.stats.range),g=k(()=>Math.max(...a.stats.months.map(d=>d.messageCount),1)),D=k(()=>({gridTemplateColumns:`repeat(${a.stats.months.length}, minmax(2px, 1fr))`,gap:a.stats.months.length>96?"1px":"2px"})),V=k(()=>{const d=f.value.spanDays;if(d<30)return s("views.journey.duration.days",{count:d});const r=Math.floor(d/365),l=Math.floor(d%365/30);return r>0?l>0?s("views.journey.duration.yearsMonths",{years:r,months:l}):s("views.journey.duration.years",{count:r}):s("views.journey.duration.months",{count:Math.max(1,l)})}),q=k(()=>[{icon:"i-heroicons-sparkles-solid",colorClass:"text-pink-500 dark:text-pink-400",label:s("views.journey.metrics.peakMonth"),value:a.stats.peakMonth?A(a.stats.peakMonth.month):"—",subtext:a.stats.peakMonth?s("views.journey.metrics.messagesAndDays",{messages:S(a.stats.peakMonth.messageCount),days:S(a.stats.peakMonth.activeDays)}):"—"},{icon:"i-heroicons-calendar-days-solid",colorClass:"text-indigo-500 dark:text-indigo-400",label:s("views.journey.metrics.activeMonths"),value:s("views.journey.metrics.monthsRatio",{active:S(f.value.activeMonths),total:S(f.value.spanMonths)}),subtext:s("views.journey.metrics.activeDays",{count:S(f.value.activeDays)})},{icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-blue-500 dark:text-blue-400",label:s("views.journey.metrics.longestConversation"),value:a.stats.longestSegment?w(a.stats.longestSegment.durationSeconds):"—",subtext:a.stats.longestSegment?s("views.journey.metrics.conversationDetail",{date:y(a.stats.longestSegment.startTs),count:S(a.stats.longestSegment.messageCount)}):s("views.journey.metrics.noIndex")},{icon:"i-heroicons-moon-solid",colorClass:"text-violet-500 dark:text-violet-400",label:s("views.journey.metrics.longestSilence"),value:a.stats.longestSilence?w(a.stats.longestSilence.durationSeconds):"—",subtext:a.stats.longestSilence?a.stats.longestSilence.reopenedBy?s("views.journey.metrics.reopenedBy",{name:a.stats.longestSilence.reopenedBy.name}):s("views.journey.metrics.reopened"):a.stats.hasSessionIndex?s("views.journey.metrics.noSilence"):s("views.journey.metrics.noIndex")}]);function S(d){return n.value.format(d)}function y(d){return v.value.format(d*1e3)}function A(d){const[r,l]=d.split("-").map(Number);return I.value.format(new Date(r,l-1,1))}function w(d){const r=Math.max(0,Math.round(d/60));if(r<1)return s("views.journey.duration.lessThanMinute");if(r<60)return s("views.journey.duration.minutes",{count:r});const l=Math.floor(r/60);if(l<24){const b=r%60;return b>0?s("views.journey.duration.hoursMinutes",{hours:l,minutes:b}):s("views.journey.duration.hours",{count:l})}const c=Math.floor(l/24),m=l%24;return m>0?s("views.journey.duration.daysHours",{days:c,hours:m}):s("views.journey.duration.days",{count:c})}function $(d){if(d===0)return"4px";const r=Math.sqrt(d/g.value);return`${Math.round(10+r*50)}px`}function h(d,r){return s("views.journey.hero.monthTooltip",{month:A(d),count:S(r)})}return(d,r)=>{const l=Q;return i(),L(t(Ce),null,{default:H(()=>[e("div",vn,[e("div",xn,[e("div",hn,[e("p",fn,o(y(f.value.firstMessageTs))+" – "+o(y(f.value.lastMessageTs)),1),e("div",yn,[e("span",bn,o(t(s)("views.journey.hero.prefix")),1),e("span",kn,o(V.value),1)]),e("p",_n,o(t(s)(_.filtered?"views.journey.hero.filteredSummary":"views.journey.hero.summary",{activeMonths:S(f.value.activeMonths),activeDays:S(f.value.activeDays)})),1)]),e("div",wn,[e("div",Cn,[e("p",$n,o(t(s)("views.journey.hero.footprint")),1),e("p",Sn,o(t(s)("views.journey.hero.monthCount",{count:S(f.value.spanMonths)})),1)]),e("div",{class:"grid h-16 items-end overflow-hidden rounded-xl bg-gray-50/80 px-3 py-2 dark:bg-white/[0.035]",style:ge(D.value)},[(i(!0),u(O,null,J(_.stats.months,c=>(i(),u("div",{key:c.month,class:F(["min-w-0 rounded-t-sm",c.messageCount>0?"bg-pink-400/80 dark:bg-pink-400/75":"bg-gray-200 dark:bg-white/10"]),style:ge({height:$(c.messageCount)}),title:h(c.month,c.messageCount)},null,14,Mn))),128))],4),e("div",jn,[e("span",null,o(A(_.stats.months[0].month)),1),e("span",null,o(A(_.stats.months[_.stats.months.length-1].month)),1)])])])]),e("div",Pn,[(i(!0),u(O,null,J(q.value,c=>(i(),u("div",{key:c.label,class:"flex min-w-0 items-start gap-2.5 px-2 py-1"},[j(l,{name:c.icon,class:F(["mt-0.5 h-4 w-4 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Tn,[e("p",{class:F(["truncate text-sm font-black leading-tight tabular-nums",c.colorClass])},o(c.value),3),e("p",In,o(c.label),1),e("p",Rn,o(c.subtext),1)])]))),128))]),e("div",Dn,[e("div",An,[j(l,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),r[0]||(r[0]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",qn,o(t(s)("views.journey.watermark")),1)])]),_:1})}}}),Bn={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Ln={class:"grid gap-4 px-5 pb-6 sm:grid-cols-2 sm:px-6 lg:grid-cols-3"},Nn={class:"min-w-0"},Vn={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Fn={class:"mt-0.5 text-sm font-semibold text-gray-900 dark:text-white"},On={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Un={class:"space-y-3 px-5 pb-5 sm:px-6 sm:pb-6"},En={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Wn={class:"min-w-0"},Hn={class:"h-1.5 overflow-hidden rounded-full bg-gray-200/80 dark:bg-white/10"},Kn={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Jn={key:0,class:"text-left sm:min-w-28 sm:text-right"},Gn={class:"text-xs font-semibold text-gray-700 dark:text-gray-300"},Yn={class:"mt-0.5 text-[10px] text-gray-400 dark:text-gray-500"},Xn=Y({__name:"JourneyView",props:{sessionId:{},timeFilter:{},timeRange:{}},setup(_){const a=_,{t:s,locale:C}=X(),n=E(null),v=E(!1),I=E(!1),f=k(()=>new Intl.NumberFormat(C.value)),g=k(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short",day:"numeric"})),D=k(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short"})),V=k(()=>a.timeRange?a.timeFilter?.startTs!=null&&a.timeFilter.startTs>a.timeRange.start||a.timeFilter?.endTs!=null&&a.timeFilter.endTs<a.timeRange.end:!1),q=k(()=>n.value?.range!=null),S=k(()=>Math.max(...n.value?.years.map(c=>c.messageCount)??[],1)),y=k(()=>{if(!n.value?.range)return[];const c=[{id:"start",order:0,timestamp:n.value.range.firstMessageTs,icon:"i-heroicons-play-solid",iconClass:"bg-emerald-50 text-emerald-600 dark:bg-emerald-500/10 dark:text-emerald-400",title:s("views.journey.milestones.start"),date:$(n.value.range.firstMessageTs),detail:s("views.journey.milestones.startDetail")}];return n.value.peakMonth&&c.push({id:"peak",order:1,timestamp:d(n.value.peakMonth.month),icon:"i-heroicons-sparkles-solid",iconClass:"bg-pink-50 text-pink-600 dark:bg-pink-500/10 dark:text-pink-400",title:s("views.journey.milestones.peak"),date:h(n.value.peakMonth.month),detail:s("views.journey.milestones.peakDetail",{count:w(n.value.peakMonth.messageCount)})}),n.value.longestSegment&&c.push({id:"conversation",order:2,timestamp:n.value.longestSegment.startTs,icon:"i-heroicons-chat-bubble-left-right-solid",iconClass:"bg-blue-50 text-blue-600 dark:bg-blue-500/10 dark:text-blue-400",title:s("views.journey.milestones.longestConversation"),date:$(n.value.longestSegment.startTs),detail:s("views.journey.milestones.conversationDetail",{duration:r(n.value.longestSegment.durationSeconds),count:w(n.value.longestSegment.messageCount)})}),n.value.longestSilence&&c.push({id:"silence",order:3,timestamp:n.value.longestSilence.endTs,icon:"i-heroicons-moon-solid",iconClass:"bg-violet-50 text-violet-600 dark:bg-violet-500/10 dark:text-violet-400",title:s("views.journey.milestones.longestSilence"),date:s("views.journey.milestones.silenceRange",{start:$(n.value.longestSilence.startTs),end:$(n.value.longestSilence.endTs)}),detail:n.value.longestSilence.reopenedBy?s("views.journey.milestones.silenceDetailWithMember",{duration:r(n.value.longestSilence.durationSeconds),name:n.value.longestSilence.reopenedBy.name}):s("views.journey.milestones.silenceDetail",{duration:r(n.value.longestSilence.durationSeconds)})}),c.push({id:"end",order:4,timestamp:n.value.range.lastMessageTs,icon:"i-heroicons-flag-solid",iconClass:"bg-amber-50 text-amber-600 dark:bg-amber-500/10 dark:text-amber-400",title:s("views.journey.milestones.end"),date:$(n.value.range.lastMessageTs),detail:s(V.value?"views.journey.milestones.filteredEndDetail":"views.journey.milestones.endDetail")}),c.sort((m,b)=>m.timestamp-b.timestamp||m.order-b.order)});Z(()=>[a.sessionId,a.timeFilter],()=>A(),{immediate:!0,deep:!0});async function A(){if(a.sessionId){v.value=!0,I.value=!1;try{n.value=await we().getJourneyStats(a.sessionId,a.timeFilter)}catch(c){n.value=null,I.value=!0;const m=c instanceof Error?c.message:String(c);console.error("Failed to load journey stats:",c),Oe(`Journey stats load failed: ${m}`,c instanceof Error?c.stack:void 0)}finally{v.value=!1}}}function w(c){return f.value.format(c)}function $(c){return g.value.format(c*1e3)}function h(c){const[m,b]=c.split("-").map(Number);return D.value.format(new Date(m,b-1,1))}function d(c){const[m,b]=c.split("-").map(Number);return Math.floor(new Date(m,b-1,1).getTime()/1e3)}function r(c){const m=Math.max(0,Math.round(c/60));if(m<1)return s("views.journey.duration.lessThanMinute");if(m<60)return s("views.journey.duration.minutes",{count:m});const b=Math.floor(m/60);if(b<24){const K=m%60;return K>0?s("views.journey.duration.hoursMinutes",{hours:b,minutes:K}):s("views.journey.duration.hours",{count:b})}const M=Math.floor(b/24),W=b%24;return W>0?s("views.journey.duration.daysHours",{days:M,hours:W}):s("views.journey.duration.days",{count:M})}function l(c){return c===0?"0%":`${Math.max(4,Math.round(c/S.value*100))}%`}return(c,m)=>{const b=Q;return i(),u("div",{class:F(v.value?"h-full":"")},[v.value?(i(),L(t(le),{key:0,variant:"page",text:t(s)("common.loading")},null,8,["text"])):(i(),u("div",Bn,[q.value?n.value?(i(),u(O,{key:1},[j(zn,{stats:n.value,filtered:V.value},null,8,["stats","filtered"]),j(t(oe),{title:t(s)("views.journey.milestones.title"),description:t(s)("views.journey.milestones.description"),"show-divider":!1},{default:H(()=>[e("div",Ln,[(i(!0),u(O,null,J(y.value,M=>(i(),u("div",{key:M.id,class:"flex min-w-0 items-start gap-3 py-1"},[e("div",{class:F(["flex h-9 w-9 shrink-0 items-center justify-center rounded-xl",M.iconClass])},[j(b,{name:M.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Nn,[e("p",Vn,o(M.title),1),e("p",Fn,o(M.date),1),e("p",On,o(M.detail),1)])]))),128))])]),_:1},8,["title","description"]),j(t(oe),{title:t(s)("views.journey.years.title"),description:t(s)("views.journey.years.description"),"show-divider":!1},{default:H(()=>[e("div",Un,[(i(!0),u(O,null,J(n.value.years,M=>(i(),u("div",{key:M.year,class:"grid gap-3 rounded-xl bg-gray-50/70 px-4 py-3 dark:bg-white/[0.025] sm:grid-cols-[72px_minmax(0,1fr)_auto] sm:items-center"},[e("div",En,o(M.year),1),e("div",Wn,[e("div",Hn,[e("div",{class:"h-full rounded-full bg-pink-400 dark:bg-pink-400/80",style:ge({width:l(M.messageCount)})},null,4)]),e("p",Kn,[M.messageCount>0?(i(),u(O,{key:0},[_e(o(t(s)("views.journey.years.summary",{messages:w(M.messageCount),days:w(M.activeDays),months:w(M.activeMonths)})),1)],64)):(i(),u(O,{key:1},[_e(o(t(s)("views.journey.years.quiet")),1)],64))])]),M.messageCount>0?(i(),u("div",Jn,[e("p",Gn,o(h(M.peakMonth)),1),e("p",Yn,o(t(s)("views.journey.years.peak",{count:w(M.peakMonthMessageCount)})),1)])):N("",!0)]))),128))])]),_:1},8,["title","description"])],64)):N("",!0):(i(),L(t($e),{key:0,icon:"🗓️",text:t(s)(I.value?"views.journey.loadError":"views.journey.empty"),padding:"lg"},null,8,["text"]))]))],2)}}}),Zn={class:"main-content mx-auto max-w-[920px] space-y-4 p-4 sm:space-y-6 sm:p-6"},Qn={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},ei={class:"p-3 sm:p-5"},ti={class:"p-3 sm:p-5"},si=Y({__name:"PrivateChatOverview",props:{session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(_){const{t:a}=X(),s=_,{dailyChartData:C}=tt(()=>s.dailyActivity),n=k(()=>({labels:s.messageTypes.map(f=>xt(f.type,a)),values:s.messageTypes.map(f=>f.count)})),v=k(()=>{if(s.memberActivity.length<2)return null;const g=[...s.memberActivity].sort((V,q)=>q.messageCount-V.messageCount).slice(0,2),D=g[0].messageCount+g[1].messageCount;return{member1:{name:g[0].name,avatar:g[0].avatar,count:g[0].messageCount,percentage:D>0?Math.round(g[0].messageCount/D*100):0},member2:{name:g[1].name,avatar:g[1].avatar,count:g[1].messageCount,percentage:D>0?Math.round(g[1].messageCount/D*100):0},total:D}}),I=k(()=>v.value?{labels:[v.value.member1.name,v.value.member2.name],values:[v.value.member1.count,v.value.member2.count]}:{labels:[],values:[]});return(f,g)=>(i(),u("div",Zn,[j(Qe,{session:_.session,"daily-activity":_.dailyActivity,"message-types":_.messageTypes,"hourly-activity":_.hourlyActivity,"time-range":_.timeRange,"filtered-message-count":_.filteredMessageCount,"filtered-member-count":_.filteredMemberCount,"time-filter":_.timeFilter},null,8,["session","daily-activity","message-types","hourly-activity","time-range","filtered-message-count","filtered-member-count","time-filter"]),e("div",Qn,[j(t(oe),{title:t(a)("analysis.overview.messageTypeDistribution"),"show-divider":!1},{default:H(()=>[e("div",ei,[j(t(je),{data:n.value,height:280},null,8,["data"])])]),_:1},8,["title"]),v.value?(i(),L(t(oe),{key:0,title:t(a)("analysis.overview.memberComparison"),"show-divider":!1},{default:H(()=>[e("div",ti,[j(t(je),{data:I.value,height:280},null,8,["data"])])]),_:1},8,["title"])):N("",!0)]),j(et,{"daily-activity":_.dailyActivity,"daily-chart-data":t(C)},null,8,["daily-activity","daily-chart-data"])]))}}),ai={class:"flex h-full flex-col"},ni={class:"flex-1 min-h-0 overflow-auto"},ii=Y({__name:"PrivateChatInsights",props:{sessionId:{},session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(_){const{t:a}=X(),s=_,C=k(()=>[{id:"overview",label:a("analysis.tabs.overview"),icon:"i-heroicons-squares-2x2"},{id:"relationship",label:a("analysis.subTabs.insights.relationship"),icon:"i-heroicons-heart"},{id:"journey",label:a("analysis.subTabs.insights.journey"),icon:"i-heroicons-map"},{id:"type-analysis",label:a("analysis.subTabs.insights.typeAnalysis"),icon:"i-heroicons-chart-pie"},{id:"time-analysis",label:a("analysis.subTabs.insights.timeAnalysis"),icon:"i-heroicons-clock"},{id:"topic",label:a("analysis.subTabs.insights.topic"),icon:"i-heroicons-cloud"},{id:"language-preference",label:a("analysis.subTabs.insights.languagePreference"),icon:"i-heroicons-language"}]),n=E("overview"),v=E(null),I=k(()=>({...s.timeFilter,memberId:v.value}));return(f,g)=>(i(),u("div",ai,[j(t(Ue),{modelValue:n.value,"onUpdate:modelValue":g[1]||(g[1]=D=>n.value=D),items:C.value,"persist-key":"privateInsightsTab"},{right:H(()=>[n.value==="type-analysis"||n.value==="time-analysis"?(i(),L(st,{key:0,modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=D=>v.value=D),"session-id":s.sessionId},null,8,["modelValue","session-id"])):N("",!0)]),_:1},8,["modelValue","items"]),e("div",ni,[j(De,{name:"fade",mode:"out-in"},{default:H(()=>[n.value==="overview"?(i(),L(si,{key:0,session:s.session,"member-activity":s.memberActivity,"message-types":s.messageTypes,"hourly-activity":s.hourlyActivity,"daily-activity":s.dailyActivity,"time-range":s.timeRange,"filtered-message-count":s.filteredMessageCount,"filtered-member-count":s.filteredMemberCount,"time-filter":s.timeFilter},null,8,["session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):n.value==="type-analysis"?(i(),L(at,{key:1,"session-id":s.sessionId,"session-name":s.session.name,"time-filter":I.value},null,8,["session-id","session-name","time-filter"])):n.value==="time-analysis"?(i(),L(nt,{key:2,"session-id":s.sessionId,"session-name":s.session.name,"time-filter":I.value},null,8,["session-id","session-name","time-filter"])):n.value==="relationship"?(i(),L(pn,{key:3,"session-id":s.sessionId,"time-filter":s.timeFilter},null,8,["session-id","time-filter"])):n.value==="journey"?(i(),L(Xn,{key:4,"session-id":s.sessionId,"time-filter":s.timeFilter,"time-range":s.timeRange},null,8,["session-id","time-filter","time-range"])):n.value==="topic"?(i(),L(t(it),{key:5,"session-id":s.sessionId,"time-filter":s.timeFilter,"show-shared-topics":!0},null,8,["session-id","time-filter"])):n.value==="language-preference"?(i(),L(t(Ks),{key:6,"session-id":s.sessionId,"time-filter":s.timeFilter},null,8,["session-id","time-filter"])):N("",!0)]),_:1})])]))}}),oi=Ae(ii,[["__scopeId","data-v-bde49511"]]),li={class:"flex h-full flex-col dark:bg-page-dark",style:{"padding-top":"var(--titlebar-area-height)"}},ri={class:"relative flex-1 overflow-y-auto"},ci={class:"h-full"},ui={key:2,class:"flex h-full items-center justify-center"},di={class:"text-gray-500"},mi={class:"flex h-full flex-col overflow-hidden bg-white dark:bg-page-dark"},gi={class:"flex flex-none items-center justify-between border-b border-gray-200 px-5 py-3 dark:border-gray-700"},pi={class:"text-lg font-semibold text-gray-900 dark:text-white"},vi={class:"text-sm text-gray-500 dark:text-gray-400"},xi={class:"flex-1 overflow-hidden"},hi=Y({__name:"index",setup(_){const a=Ge(()=>Ze(()=>import("./MessageExportModal-DAJW2mFj.js"),__vite__mapDeps([0,1,2,3]))),{t:s}=X(),C=Ye(),n=Xe(),v=Ee(),I=Ie(),f=We(),{currentSessionId:g}=He(v),D=E(!1),V=E(!1),q=E(!1),S=E(!1),y=E(!1);function A(){I.openChatRecordDrawer({})}const w=[{id:"insights",labelKey:"analysis.tabs.insights",icon:"i-heroicons-presentation-chart-bar"},{id:"ai-chat",labelKey:"analysis.tabs.aiChat",icon:"i-heroicons-chat-bubble-left-ellipsis"},{id:"lab",labelKey:"analysis.tabs.lab",icon:"i-heroicons-beaker"}],$=k(()=>f.debugMode?[...w,{id:"debug",labelKey:"analysis.tabs.debug",icon:"i-heroicons-bug-ant"}]:w),{activeTab:h,isLoading:d,isInitialLoad:r,session:l,memberActivity:c,hourlyActivity:m,dailyActivity:b,messageTypes:M,timeRangeValue:W,fullTimeRange:K,timeFilter:re,initialTimeState:ce,loadAnalysisData:ae}=ot({route:C,router:n,currentSessionId:g,selectSession:v.selectSession,defaultTab:f.defaultSessionTab,validTabIds:$.value.map(G=>G.id)}),ke=k(()=>c.value.reduce((G,P)=>G+P.messageCount,0)),ne=k(()=>c.value.filter(G=>G.messageCount>0).length),ue=k(()=>{if(!l.value||c.value.length===0)return null;if(l.value.ownerId){const P=c.value.find(ie=>ie.platformId!==l.value?.ownerId);if(P?.avatar)return P.avatar}const G=c.value.find(P=>P.name===l.value?.name);return G?.avatar?G.avatar:(c.value.length,null)});return(G,P)=>{const ie=Re,ee=Je;return i(),u("div",li,[t(r)?(i(),L(le,{key:0,variant:"page",text:t(s)("analysis.privateChat.loading")},null,8,["text"])):t(l)?(i(),u(O,{key:1},[j(lt,{"active-tab":t(h),"onUpdate:activeTab":P[0]||(P[0]=U=>Me(h)?h.value=U:null),"time-range-value":t(W),"onUpdate:timeRangeValue":P[1]||(P[1]=U=>Me(W)?W.value=U:null),title:t(l).name,avatar:ue.value,icon:"i-heroicons-user","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",tabs:$.value,"current-session-id":t(g),"initial-time-state":t(ce),onOpenIncrementalImport:P[2]||(P[2]=U=>q.value=!0),onOpenMemberManagement:P[3]||(P[3]=U=>y.value=!0),onOpenChatRecord:A,"onUpdate:fullRange":P[4]||(P[4]=U=>K.value=U)},null,8,["active-tab","time-range-value","title","avatar","tabs","current-session-id","initial-time-state"]),e("div",ri,[t(d)?(i(),L(le,{key:0,variant:"overlay",text:t(s)("common.loading")},null,8,["text"])):N("",!0),e("div",ci,[j(De,{name:"tab-slide",mode:"out-in"},{default:H(()=>[t(h)==="insights"?(i(),L(oi,{key:"insights-"+t(g),"session-id":t(g),session:t(l),"member-activity":t(c),"message-types":t(M),"hourly-activity":t(m),"daily-activity":t(b),"time-range":t(K),"filtered-message-count":ke.value,"filtered-member-count":ne.value,"time-filter":t(re)},null,8,["session-id","session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):t(h)==="ai-chat"?(i(),L(t(dt),{key:"ai-chat-"+t(g),"session-id":t(g),"session-name":t(l).name,"chat-type":"private"},null,8,["session-id","session-name"])):t(h)==="memory"?(i(),L(mt,{key:"memory-"+t(g),"session-id":t(g),"session-name":t(l).name},null,8,["session-id","session-name"])):t(h)==="lab"?(i(),L(gt,{key:"lab-"+t(g),"session-id":t(g),"chat-type":"private"},null,8,["session-id"])):t(h)==="debug"?(i(),L(t(pt),{key:"debug-"+t(g),"session-id":t(g)},null,8,["session-id"])):N("",!0)]),_:1})])]),j(rt,{onOpenIncrementalImport:P[5]||(P[5]=U=>q.value=!0),onOpenSemanticIndex:P[6]||(P[6]=U=>D.value=!0),onOpenMemberManagement:P[7]||(P[7]=U=>y.value=!0),onOpenChatRecord:A,onOpenMessageExport:P[8]||(P[8]=U=>S.value=!0)})],64)):(i(),u("div",ui,[e("p",di,o(t(s)("analysis.privateChat.loadError")),1)])),t(g)&&t(l)?(i(),L(ct,{key:3,modelValue:D.value,"onUpdate:modelValue":P[9]||(P[9]=U=>D.value=U),"session-id":t(g),"message-count":t(l).messageCount},null,8,["modelValue","session-id","message-count"])):N("",!0),t(g)&&t(l)?(i(),L(Ke,{key:4,modelValue:V.value,"onUpdate:modelValue":P[10]||(P[10]=U=>V.value=U),"session-id":t(g),"chat-type":"private","auto-check":""},null,8,["modelValue","session-id"])):N("",!0),t(g)&&t(l)?(i(),L(ut,{key:5,modelValue:q.value,"onUpdate:modelValue":P[11]||(P[11]=U=>q.value=U),"session-id":t(g),"session-name":t(l).name,onImported:P[12]||(P[12]=()=>{t(ae)(),t(v).loadSessions()})},null,8,["modelValue","session-id","session-name"])):N("",!0),t(g)?(i(),L(t(a),{key:6,modelValue:S.value,"onUpdate:modelValue":P[13]||(P[13]=U=>S.value=U)},null,8,["modelValue"])):N("",!0),t(g)?(i(),L(ee,{key:7,open:y.value,"onUpdate:open":P[15]||(P[15]=U=>y.value=U),ui:{content:"max-w-6xl h-[85vh]"}},{content:H(()=>[e("div",mi,[e("div",gi,[e("div",null,[e("h2",pi,o(t(s)("analysis.tooltip.memberManagement")),1),e("p",vi,o(t(s)("members.private.description",{count:t(l)?.memberCount??0})),1)]),j(ie,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:P[14]||(P[14]=U=>y.value=!1)})]),e("div",xi,[j(vt,{"session-id":t(g),"show-header":!1,"chat-type":"private",onDataChanged:t(ae)},null,8,["session-id","onDataChanged"])])])]),_:1},8,["open"])):N("",!0)])}}}),Ii=Ae(hi,[["__scopeId","data-v-8d40e308"]]);export{Ii as default};
@@ -0,0 +1 @@
1
+ import{d as V,A as E,o as l,c as u,Z as M,$ as z,f as e,t as o,G as r,n as q,a as d,E as O,g as _,F,_ as H,P as G,b as K,ao as J,B as X,ap as Q,w as ee,aq as te,h as U,I as P,M as Z,z as se,H as ae}from"./index-CW9H_fBd.js";import{_ as ne}from"./LoadingState.vue_vue_type_script_setup_true_lang-BshQybD_.js";import{u as oe,w as ie}from"./annual-summary-time-range-C_d1oZrj.js";import{_ as re,C as le,g as ce}from"./base-D91aVUwM.js";import{f as ue}from"./dateFormat-rY43adcv.js";import{_ as j}from"./ThemeCard.vue_vue_type_script_setup_true_lang-Dsb6lzs-.js";import"./vendor-echarts-wordcloud-Ca8n6qS6.js";import"./vendor-snapdom--nZvo8Sg.js";import"./vendor-echarts-B-i_56Av.js";import"./vendor-zrender-5DcYjSZk.js";const de=1440*60*1e3;function ge(y){const t=new Map;for(const g of y){if(g.messageCount<=0)continue;const m=me(g.date);m!==null&&t.set(m,(t.get(m)??0)+g.messageCount)}const a=[...t.keys()].sort((g,m)=>g-m);if(a.length===0)return{longestActiveStreak:0,topWeekday:null,weekdayMessageRate:null,weekendMessageRate:null};const x=Array.from({length:7},()=>0);let p=1,k=1;a.forEach((g,m)=>{const v=(new Date(g).getUTCDay()+6)%7;x[v]+=t.get(g)??0,m!==0&&(g-a[m-1]===de?(k++,p=Math.max(p,k)):k=1)});const n=x.reduce((g,m)=>g+m,0),C=x[5]+x[6],f=Math.round(C/n*100),h=x.reduce((g,m,v)=>m>x[g]?v:g,0);return{longestActiveStreak:p,topWeekday:h+1,weekdayMessageRate:100-f,weekendMessageRate:f}}function me(y){const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(y);if(!t)return null;const a=Number(t[1]),x=Number(t[2]),p=Number(t[3]),k=Date.UTC(a,x-1,p),n=new Date(k);return n.getUTCFullYear()!==a||n.getUTCMonth()!==x-1||n.getUTCDate()!==p?null:k}const he={class:"grid grid-cols-2 gap-x-3 gap-y-4 sm:grid-cols-3 lg:grid-cols-4"},ve={class:"mb-1.5 text-[10px] font-semibold text-gray-500 dark:text-zinc-400"},ye={class:"grid grid-cols-7 gap-0.5","aria-hidden":"true"},xe=["title"],pe=V({__name:"AnnualCalendarGrid",props:{range:{},data:{}},setup(y){const t=y,{t:a}=E(),x=d(()=>Math.max(...t.data.map(h=>h.messageCount),1)),p=d(()=>new Map(t.data.map(h=>[h.date,h.messageCount]))),k=d(()=>new Date(t.range.startTs*1e3)),n=d(()=>new Date(t.range.endTs*1e3)),C=d(()=>{const h=k.value,g=n.value,m=[],v=t.range.year??h.getFullYear(),T=t.range.mode==="year"?new Date(v,0,1):new Date(h.getFullYear(),h.getMonth(),1),Y=t.range.mode==="year"?new Date(v,11,1):new Date(g.getFullYear(),g.getMonth(),1);for(;T<=Y;){const w=T.getFullYear(),S=T.getMonth(),L=`${w}-${String(S+1).padStart(2,"0")}`,A=new Date(w,S+1,0).getDate(),R=Array.from({length:A},(W,b)=>{const N=b+1,$=`${L}-${String(N).padStart(2,"0")}`,s=new Date(w,S,N),c=p.value.get($)??0,D=s>=f(h)&&s<=f(g);return{key:$,day:N,count:c,inRange:D,level:D&&c>0?Math.max(1,Math.ceil(c/x.value*4)):0}});m.push({key:L,label:t.range.mode==="year"?a("insight.monthLabel",{month:S+1}):L.replace("-","/"),leadingDays:(new Date(w,S,1).getDay()+6)%7,days:R}),T.setMonth(T.getMonth()+1)}return m});function f(h){return new Date(h.getFullYear(),h.getMonth(),h.getDate())}return(h,g)=>(l(),u("div",he,[(l(!0),u(M,null,z(C.value,m=>(l(),u("div",{key:m.key,class:"min-w-0"},[e("div",ve,o(m.label),1),e("div",ye,[(l(!0),u(M,null,z(m.leadingDays,v=>(l(),u("span",{key:`blank-${v}`,class:"aspect-square"}))),128)),(l(!0),u(M,null,z(m.days,v=>(l(),u("span",{key:v.key,class:q(["aspect-square min-h-[5px] rounded-[2px] bg-gray-100 dark:bg-zinc-800",{"opacity-30":!v.inRange,"bg-pink-200 dark:bg-pink-950":v.level===1,"bg-pink-300 dark:bg-pink-800":v.level===2,"bg-pink-500 dark:bg-pink-600":v.level===3,"bg-pink-700 dark:bg-pink-400":v.level===4}]),title:`${v.key}: ${v.count} ${r(a)("insight.messages")}`},null,10,xe))),128))])]))),128))]))}}),ke=V({__name:"AnnualMonthlyTrend",props:{range:{},data:{},height:{}},setup(y){const t=y,{t:a}=E(),x=d(()=>({labels:t.data.map(p=>t.range.mode==="year"?a("insight.monthLabel",{month:Number(p.month.slice(5))}):p.month.replace("-","/")),values:t.data.map(p=>p.value)}));return(p,k)=>(l(),O(r(re),{data:x.value,height:y.height??260,"border-radius":3},null,8,["data","height"]))}}),_e={class:"grid gap-4 lg:grid-cols-12"},fe={class:"relative z-10 min-w-0 p-5 sm:p-6"},we={class:"flex flex-col gap-5 xl:flex-row xl:items-start xl:justify-between"},be={class:"min-w-0"},De={class:"text-2xl font-bold text-gray-900 dark:text-white sm:text-3xl"},Ce={class:"mt-3 space-y-1.5 text-xs font-medium text-gray-500 dark:text-zinc-400"},Me={class:"flex items-center gap-2"},Te={class:"font-mono"},Se={class:"flex flex-wrap items-center gap-x-2 gap-y-1"},$e={class:"grid grid-cols-2 gap-x-6 gap-y-4 sm:grid-cols-4 xl:shrink-0"},ze={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Ae={class:"mt-1 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},Re={class:"mt-7 flex flex-wrap items-center justify-between gap-3"},Ye={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},Le={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-zinc-800"},Ne=["aria-pressed","onClick"],Be={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Fe={class:"mt-2"},Ue={class:"min-w-0 p-5 sm:p-6"},je={class:"flex items-start justify-between gap-4"},We={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},Ie={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ve={class:"shrink-0 text-right"},Ee={class:"font-mono text-lg font-black tabular-nums text-gray-900 dark:text-white"},Pe={class:"text-[9px] text-gray-400 dark:text-zinc-500"},qe={class:"mt-5"},Oe={class:"min-w-0 p-5 sm:p-6"},Ke={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},Ge={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ze={key:0,class:"mt-5 grid grid-cols-2 gap-x-5 gap-y-4 sm:grid-cols-3"},He={class:"flex items-end justify-between gap-2"},Je={class:"truncate text-xs font-medium text-gray-600 dark:text-zinc-300"},Xe={class:"font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},Qe={class:"mt-2 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},et={class:"mt-1.5 font-mono text-[9px] text-gray-400 dark:text-zinc-500"},tt={key:1,class:"flex h-28 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},st={class:"min-w-0 p-5 sm:p-6"},at={class:"flex items-start justify-between gap-3"},nt={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},ot={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},it={class:"flex shrink-0 gap-3 text-right"},rt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},lt={class:"text-[9px] text-gray-400 dark:text-zinc-500"},ct={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},ut={key:0,class:"mt-5 flex h-24 items-end gap-2"},dt={class:"flex h-16 w-full items-end rounded-sm bg-gray-100 dark:bg-zinc-800"},gt=["title"],mt={class:"w-full truncate text-center font-mono text-[8px] text-gray-400 dark:text-zinc-500"},ht={key:1,class:"flex h-24 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},vt={class:"min-w-0 p-5 sm:p-6"},yt={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},xt={class:"mt-4 space-y-4"},pt={class:"truncate font-mono text-sm font-black tabular-nums text-gray-900 dark:text-white"},kt={class:"mt-1 text-[9px] leading-tight font-medium text-gray-500 dark:text-zinc-400"},_t={class:"mt-0.5 truncate text-[8px] text-gray-400 dark:text-zinc-500"},ft=V({__name:"AnnualInsightBoard",props:{range:{},metrics:{},coverage:{},monthlyActivity:{},monthlyDirectContacts:{},dailyActivity:{},messageTypes:{},textLength:{}},setup(y){const t=y,{t:a}=E(),x=K("messages"),p=d(()=>t.range.mode==="year"?a("insight.overviewCard.yearTitle",{year:t.range.year}):a("insight.overviewCard.recentTitle")),k=d(()=>ue(t.range.startTs,t.range.endTs,"YYYY/MM/DD")),n=d(()=>[{key:"messages",value:t.metrics.sentMessageCount},{key:"activeDays",value:t.metrics.activeDayCount},{key:"contacts",value:t.metrics.directContactCount},{key:"dailyMessages",value:t.metrics.averageMessagesPerDay}]),C=d(()=>t.monthlyActivity.reduce((s,c)=>!s||c.messageCount>s.messageCount?c:s,null)),f=d(()=>t.dailyActivity.reduce((s,c)=>!s||c.messageCount>s.messageCount?c:s,null)),h=d(()=>[...t.messageTypes].sort((s,c)=>c.count-s.count).slice(0,6)),g=d(()=>t.messageTypes.reduce((s,c)=>s+c.count,0)),m=d(()=>t.messageTypes.find(s=>s.type===J.TEXT)?.count??0),v=d(()=>$(m.value,g.value)),T=d(()=>Math.max(...t.textLength.buckets.map(s=>s.count),1)),Y=d(()=>{const s=Math.max(1,Math.round((t.range.endTs-t.range.startTs)/86400)+1);return $(t.metrics.activeDayCount,s)}),w=d(()=>ge(t.dailyActivity)),S=d(()=>x.value==="messages"?t.monthlyActivity.map(s=>({month:s.month,value:s.messageCount})):t.monthlyDirectContacts.map(s=>({month:s.month,value:s.contactCount}))),L=d(()=>a(x.value==="messages"?"insight.sections.overviewDescription":"insight.sections.directContactsDescription")),A=["mon","tue","wed","thu","fri","sat","sun"],R=d(()=>[[{key:"dailyContacts",value:b(t.metrics.averageDirectContactsPerDay),detail:a("insight.overviewCard.perDay")},{key:"peakMonth",value:N(C.value?.month),detail:a("insight.overviewCard.messagesCount",{count:b(C.value?.messageCount??0)})},{key:"peakDay",value:f.value?.date.slice(5).replace("-","/")??"-",detail:a("insight.overviewCard.messagesCount",{count:b(f.value?.messageCount??0)})}],[{key:"longestActiveStreak",value:b(w.value.longestActiveStreak),detail:a("insight.overviewCard.consecutiveActiveDays")},{key:"topWeekday",value:W(w.value.topWeekday),detail:a("insight.overviewCard.mostMessagesSent")},{key:"weekendMessageRate",value:w.value.weekendMessageRate===null?"-":`${w.value.weekendMessageRate}%`,detail:w.value.weekdayMessageRate===null?a("insight.noData"):a("insight.overviewCard.weekdayMessageRate",{rate:w.value.weekdayMessageRate})}]]);function W(s){return s===null?"-":a(`common.weekday.${A[s-1]}`)}function b(s){return Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:1})}function N(s){return s?t.range.mode==="year"?a("insight.monthLabel",{month:Number(s.slice(5))}):s.replace("-","/"):"-"}function $(s,c){return c>0?Math.round(s/c*100):0}return(s,c)=>{const D=H;return l(),u("div",_e,[_(r(j),{class:"relative isolate lg:col-span-8"},{default:F(()=>[_(r(le)),e("section",fe,[e("div",we,[e("div",be,[e("h2",De,o(p.value),1),e("div",Ce,[e("div",Me,[_(D,{name:"i-heroicons-calendar",class:"h-4 w-4 opacity-70"}),e("span",Te,o(k.value),1)]),e("div",Se,[_(D,{name:"i-heroicons-circle-stack",class:"h-4 w-4 opacity-70"}),e("span",null,o(r(a)("insight.status.coverage",{analyzed:y.coverage.analyzedSessions,total:y.coverage.totalSessions})),1)])])]),e("div",$e,[(l(!0),u(M,null,z(n.value,i=>(l(),u("div",{key:i.key,class:"min-w-0"},[e("div",ze,o(b(i.value)),1),e("div",Ae,o(r(a)(`insight.kpis.${i.key}`)),1)]))),128))])]),e("div",Re,[e("h3",Ye,o(r(a)("insight.sections.overview")),1),e("div",Le,[(l(),u(M,null,z(["messages","contacts"],i=>e("button",{key:i,type:"button",class:q(["rounded-md px-2.5 py-1 text-[10px] font-medium transition-colors",x.value===i?"bg-white text-gray-900 shadow-sm dark:bg-zinc-700 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-zinc-400 dark:hover:text-zinc-200"]),"aria-pressed":x.value===i,onClick:B=>x.value=i},o(r(a)(`insight.overviewCard.monthlyTrend.${i}`)),11,Ne)),64))])]),e("p",Be,o(L.value),1),e("div",Fe,[_(ke,{range:y.range,data:S.value,height:210},null,8,["range","data"])])])]),_:1}),_(r(j),{class:"lg:col-span-4"},{default:F(()=>[e("section",Ue,[e("div",je,[e("div",null,[e("h3",We,o(r(a)("insight.overviewCard.activity")),1),e("p",Ie,o(r(a)("insight.sections.activityDescription")),1)]),e("div",Ve,[e("div",Ee,o(y.metrics.activeDayCount),1),e("div",Pe,o(r(a)("insight.overviewCard.activeRate",{rate:Y.value})),1)])]),e("div",qe,[_(pe,{range:y.range,data:y.dailyActivity},null,8,["range","data"])])])]),_:1}),_(r(j),{class:"lg:col-span-5"},{default:F(()=>[e("section",Oe,[e("h3",Ke,o(r(a)("insight.sections.messageTypes")),1),e("p",Ge,o(r(a)("insight.sections.messageTypesDescription")),1),h.value.length?(l(),u("div",Ze,[(l(!0),u(M,null,z(h.value,i=>(l(),u("div",{key:i.type,class:"min-w-0"},[e("div",He,[e("span",Je,o(r(ce)(i.type,r(a))),1),e("span",Xe,o($(i.count,g.value))+"% ",1)]),e("div",Qe,[e("div",{class:"h-full rounded-full bg-pink-500",style:G({width:`${$(i.count,g.value)}%`})},null,4)]),e("div",et,o(b(i.count)),1)]))),128))])):(l(),u("div",tt,o(r(a)("insight.noData")),1))])]),_:1}),_(r(j),{class:"lg:col-span-3"},{default:F(()=>[e("section",st,[e("div",at,[e("div",null,[e("h3",nt,o(r(a)("insight.sections.textLength")),1),e("p",ot,o(r(a)("insight.overviewCard.textRatio"))+" "+o(v.value)+"% ",1)]),e("div",it,[e("div",null,[e("div",rt,o(y.textLength.median??"-"),1),e("div",lt,o(r(a)("insight.length.median")),1)]),e("div",null,[e("div",ct,o(y.textLength.p90??"-"),1),c[0]||(c[0]=e("div",{class:"text-[9px] text-gray-400 dark:text-zinc-500"},"P90",-1))])])]),y.textLength.textMessageCount?(l(),u("div",ut,[(l(!0),u(M,null,z(y.textLength.buckets,i=>(l(),u("div",{key:i.key,class:"flex min-w-0 flex-1 flex-col items-center gap-2"},[e("div",dt,[e("div",{class:"w-full rounded-sm bg-blue-500/80 dark:bg-blue-400/80",style:G({height:`${Math.max(4,i.count/T.value*100)}%`}),title:`${i.key}: ${i.count}`},null,12,gt)]),e("span",mt,o(i.key),1)]))),128))])):(l(),u("div",ht,o(r(a)("insight.noTextData")),1))])]),_:1}),_(r(j),{class:"lg:col-span-4"},{default:F(()=>[e("section",vt,[e("h3",yt,o(r(a)("insight.overviewCard.keyMetrics")),1),e("div",xt,[(l(!0),u(M,null,z(R.value,(i,B)=>(l(),u("div",{key:B,class:q(["grid grid-cols-3 divide-x divide-gray-200 dark:divide-white/10",{"border-t border-gray-200 pt-4 dark:border-white/10":B>0}])},[(l(!0),u(M,null,z(i,I=>(l(),u("div",{key:I.key,class:"min-w-0 px-3 first:pl-0 last:pr-0"},[e("div",pt,o(I.value),1),e("div",kt,o(r(a)(`insight.overviewCard.${I.key}`)),1),e("div",_t,o(I.detail),1)]))),128))],2))),128))])])]),_:1})])}}}),wt={class:"min-h-0 flex-1 overflow-y-auto"},bt={class:"mx-auto w-full max-w-[1120px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},Dt={class:"min-w-0"},Ct={key:1,class:"flex items-center gap-2 rounded-xl border border-amber-100 bg-amber-50/50 px-4 py-2.5 text-xs text-amber-800 backdrop-blur-sm dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Mt={key:2,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-red-200 bg-red-50/50 px-4 py-2.5 text-xs text-red-800 backdrop-blur-sm dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Tt={key:0,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-gray-200 bg-white p-4 text-xs text-gray-600 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-300"},St={key:0},$t={key:1},Wt=V({__name:"index",setup(y){const{t}=E(),a=X(),{showSettings:x}=Q(a),p=new Date().getFullYear(),k=oe(),n=K(null),C=K("");let f=null,h=0;const g=d(()=>{const s=k.modelValue.value?.state;return s?s.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:{mode:"year",year:s.year??p,acceptStale:!0}:null}),m=d(()=>JSON.stringify(g.value)),v=d(()=>(n.value?.coverage.missingOwnerSessions??0)+(n.value?.coverage.unresolvedOwnerSessions??0)),T=d(()=>n.value?.task.status==="running"),Y=d(()=>n.value?.metrics!==null&&n.value?.metrics!==void 0),w=d(()=>Y.value&&n.value?.metrics?.sentMessageCount===0),S=d(()=>(n.value?.coverage.totalSessions??0)>0&&n.value?.coverage.analyzedSessions===0&&v.value>0),L=d(()=>k.modelValue.value?.state.mode==="year"?k.modelValue.value.state.year:void 0),A=d(()=>{const s=L.value,c=n.value?.latestDataYear;return s===void 0||c===null||c===void 0||s===c?null:{year:s,latestYear:c}});ee(m,()=>{b(),g.value&&(n.value=null,R(!1))},{immediate:!0}),ie(x,()=>{R(!1)}),te(b);async function R(s){const c=g.value;if(!c)return;const D=++h;C.value="";try{const i=s?await Z().recomputeAnnualSummary(c):await Z().getAnnualSummary(c);if(D!==h)return;n.value=i,i.metrics&&k.setAvailableYears(i.availableDataYears),i.task.status==="running"&&W()}catch(i){if(D!==h)return;const B=i instanceof Error?i.message:String(i);C.value=B,se(`Global insight annual summary failed: ${B}`,i instanceof Error?i.stack:void 0)}}function W(){b(),f=setTimeout(()=>{R(!1)},900)}function b(){f&&(clearTimeout(f),f=null)}function N(){const s=n.value?.latestDataYear;s&&k.switchToYear(s)}function $(){a.openSettings("data","missing-owner")}return(s,c)=>{const D=H,i=ae;return l(),u("main",wt,[e("div",bt,[v.value>0?(l(),u("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:$},[_(D,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",Dt,o(r(t)("insight.status.ownerIssues",{count:v.value})),1),_(D,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):U("",!0),n.value?.cache.status==="stale"||T.value&&Y.value?(l(),u("div",Ct,[_(D,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}),P(" "+o(r(t)("insight.status.updating")),1)])):U("",!0),C.value||n.value?.task.status==="failed"?(l(),u("div",Mt,[e("span",null,o(r(t)("insight.status.failed")),1),_(i,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:c[0]||(c[0]=B=>R(!0))},{default:F(()=>[P(o(r(t)("insight.actions.retry")),1)]),_:1})])):U("",!0),!Y.value&&!C.value&&n.value?.task.status!=="failed"?(l(),O(ne,{key:3,height:"min(52vh, 420px)",text:n.value?.task.status==="running"?r(t)("insight.status.computingProgress",{processed:n.value.task.processedSessions,total:n.value.task.totalSessions}):r(t)("insight.status.loading")},null,8,["text"])):n.value?.metrics&&n.value.textLength?(l(),u(M,{key:4},[w.value&&!S.value?(l(),u("div",Tt,[A.value?(l(),u("span",St,o(r(t)("insight.status.noDataWithLatest",A.value)),1)):(l(),u("span",$t,o(r(t)("insight.noData")),1)),A.value?(l(),O(i,{key:2,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:N},{default:F(()=>[P(o(r(t)("insight.actions.switchYear",{year:A.value.latestYear})),1)]),_:1})):U("",!0)])):U("",!0),_(ft,{range:n.value.range,metrics:n.value.metrics,coverage:n.value.coverage,"monthly-activity":n.value.monthlyActivity,"monthly-direct-contacts":n.value.monthlyDirectContacts,"daily-activity":n.value.dailyActivity,"message-types":n.value.messageTypes,"text-length":n.value.textLength},null,8,["range","metrics","coverage","monthly-activity","monthly-direct-contacts","daily-activity","message-types","text-length"])],64)):U("",!0)])])}}});export{Wt as default};
@@ -1,4 +1,4 @@
1
- import{B as U0,a3 as Z0,a$ as W0,aN as V0,b as ru,D as Zu,d as b0,A as G0,C as J0,o as Tu,E as Q0,az as Y0,G as Wu,F as Vu,g as X0,H as K0,n as ue,c as p0,Z as ee,I as te,t as re,h as ne,f as ce,b0 as ie,r as oe,a as ae}from"./index-7jm3YI9u.js";const se=525,le=.3;function fe(u,e){return{paddingTop:u.paddingTop,paddingRight:u.paddingRight,paddingBottom:u.paddingBottom,paddingLeft:u.paddingLeft,restoreAll:e}}function de(u,e){e.restoreAll&&(u.paddingTop=e.paddingTop,u.paddingRight=e.paddingRight,u.paddingLeft=e.paddingLeft),u.paddingBottom=e.paddingBottom}function he(u){const{currentWidth:e,progressiveNarrowing:t}=u;let r=e;if(t){const c=typeof t=="number"?t:se;e>c&&(r=Math.round(c+(e-c)*le))}const n=Math.max(0,u.frameHorizontalPadding??0);return{contentWidth:r,outerWidth:r+n*2,didChangeContentWidth:r!==e}}function be(){return new Promise(u=>{requestAnimationFrame(()=>u())})}function pe(){window.dispatchEvent(new Event("resize"))}async function Gu(u){const e=u?.waitFrame??be,t=u?.dispatchResize??pe;await e(),u?.resizeCharts&&t(),await e()}const Ju=40,xe=16;function _e(){const u=U0(),e=Z0(),t=ru(!1),r=ru(null);let n=null;async function c(l){const b=`chatlab-screenshot-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.png`;try{const h=await Zu().saveToDownloads(b,l);if(h.success)e.add({title:"截图已保存",description:`已保存到下载目录:${b}`,color:"primary",actions:[{label:"打开目录",onClick:()=>{Zu().openDir("downloads")}}]});else throw new Error(h.error)}catch(h){console.error("保存图片失败:",h),e.fail("保存失败",{description:String(h)})}}function o(l){n=l,e.add({title:"截图已复制到剪贴板",color:"primary",actions:[{label:"预览截图",icon:"i-heroicons-eye",onClick:()=>{n&&u.openScreenCaptureModal(n)}},{label:"保存",icon:"i-heroicons-arrow-down-tray",onClick:()=>{n&&c(n)}}]})}async function i(l,f){const b=document.querySelector(l);return b?a(b,f):(r.value=`未找到元素: ${l}`,!1)}async function a(l,f){if(t.value)return!1;t.value=!0,r.value=null;const b=fe(l.style,f?.captureFrame===!0),h=l.style.boxSizing,d=l.style.position,y=l.style.width,E=l.style.minWidth,g=l.style.maxWidth,p=l.getBoundingClientRect().width,_=he({currentWidth:p,progressiveNarrowing:f?.progressiveNarrowing,frameHorizontalPadding:f?.captureFrame?Ju:0});f?.captureFrame&&(l.style.padding=`${xe}px ${Ju}px`),l.style.paddingBottom="48px",window.getComputedStyle(l).position==="static"&&(l.style.position="relative"),(f?.captureFrame||_.didChangeContentWidth)&&(l.style.boxSizing="border-box",l.style.width=`${_.outerWidth}px`,l.style.minWidth=`${_.outerWidth}px`,l.style.maxWidth=`${_.outerWidth}px`);const m=document.createElement("div");m.className="__capture-watermark__",m.style.cssText=`
1
+ import{B as U0,a3 as Z0,a$ as W0,aN as V0,b as ru,D as Zu,d as b0,A as G0,C as J0,o as Tu,E as Q0,az as Y0,G as Wu,F as Vu,g as X0,H as K0,n as ue,c as p0,Z as ee,I as te,t as re,h as ne,f as ce,b0 as ie,r as oe,a as ae}from"./index-CW9H_fBd.js";const se=525,le=.3;function fe(u,e){return{paddingTop:u.paddingTop,paddingRight:u.paddingRight,paddingBottom:u.paddingBottom,paddingLeft:u.paddingLeft,restoreAll:e}}function de(u,e){e.restoreAll&&(u.paddingTop=e.paddingTop,u.paddingRight=e.paddingRight,u.paddingLeft=e.paddingLeft),u.paddingBottom=e.paddingBottom}function he(u){const{currentWidth:e,progressiveNarrowing:t}=u;let r=e;if(t){const c=typeof t=="number"?t:se;e>c&&(r=Math.round(c+(e-c)*le))}const n=Math.max(0,u.frameHorizontalPadding??0);return{contentWidth:r,outerWidth:r+n*2,didChangeContentWidth:r!==e}}function be(){return new Promise(u=>{requestAnimationFrame(()=>u())})}function pe(){window.dispatchEvent(new Event("resize"))}async function Gu(u){const e=u?.waitFrame??be,t=u?.dispatchResize??pe;await e(),u?.resizeCharts&&t(),await e()}const Ju=40,xe=16;function _e(){const u=U0(),e=Z0(),t=ru(!1),r=ru(null);let n=null;async function c(l){const b=`chatlab-screenshot-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.png`;try{const h=await Zu().saveToDownloads(b,l);if(h.success)e.add({title:"截图已保存",description:`已保存到下载目录:${b}`,color:"primary",actions:[{label:"打开目录",onClick:()=>{Zu().openDir("downloads")}}]});else throw new Error(h.error)}catch(h){console.error("保存图片失败:",h),e.fail("保存失败",{description:String(h)})}}function o(l){n=l,e.add({title:"截图已复制到剪贴板",color:"primary",actions:[{label:"预览截图",icon:"i-heroicons-eye",onClick:()=>{n&&u.openScreenCaptureModal(n)}},{label:"保存",icon:"i-heroicons-arrow-down-tray",onClick:()=>{n&&c(n)}}]})}async function i(l,f){const b=document.querySelector(l);return b?a(b,f):(r.value=`未找到元素: ${l}`,!1)}async function a(l,f){if(t.value)return!1;t.value=!0,r.value=null;const b=fe(l.style,f?.captureFrame===!0),h=l.style.boxSizing,d=l.style.position,y=l.style.width,E=l.style.minWidth,g=l.style.maxWidth,p=l.getBoundingClientRect().width,_=he({currentWidth:p,progressiveNarrowing:f?.progressiveNarrowing,frameHorizontalPadding:f?.captureFrame?Ju:0});f?.captureFrame&&(l.style.padding=`${xe}px ${Ju}px`),l.style.paddingBottom="48px",window.getComputedStyle(l).position==="static"&&(l.style.position="relative"),(f?.captureFrame||_.didChangeContentWidth)&&(l.style.boxSizing="border-box",l.style.width=`${_.outerWidth}px`,l.style.minWidth=`${_.outerWidth}px`,l.style.maxWidth=`${_.outerWidth}px`);const m=document.createElement("div");m.className="__capture-watermark__",m.style.cssText=`
2
2
  position: absolute;
3
3
  left: 0;
4
4
  right: 0;
@@ -1 +1 @@
1
- import{d as n,A as a,c,f as e,g as o,t as r,G as i,o as _,_ as m}from"./index-7jm3YI9u.js";import"./vendor-snapdom--nZvo8Sg.js";const l={class:"flex min-h-0 flex-1 items-center justify-center px-6 py-12"},p={class:"text-center text-sm text-gray-500 dark:text-gray-400"},g=n({__name:"index",setup(d){const{t}=a();return(x,f)=>{const s=m;return _(),c("main",l,[e("div",p,[o(s,{name:"i-lucide-clock-3",class:"mx-auto mb-3 h-8 w-8 text-pink-500"}),e("p",null,r(i(t)("insight.reserved")),1)])])}}});export{g as default};
1
+ import{d as n,A as a,c,f as e,g as o,t as r,G as i,o as _,_ as m}from"./index-CW9H_fBd.js";import"./vendor-snapdom--nZvo8Sg.js";const l={class:"flex min-h-0 flex-1 items-center justify-center px-6 py-12"},p={class:"text-center text-sm text-gray-500 dark:text-gray-400"},g=n({__name:"index",setup(d){const{t}=a();return(x,f)=>{const s=m;return _(),c("main",l,[e("div",p,[o(s,{name:"i-lucide-clock-3",class:"mx-auto mb-3 h-8 w-8 text-pink-500"}),e("p",null,r(i(t)("insight.reserved")),1)])])}}});export{g as default};