chatlab-cli 0.36.1 → 0.37.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 (201) hide show
  1. package/dist/{chat-command-XPJ43KSW.mjs → chat-command-WBAJBKIE.mjs} +15 -16
  2. package/dist/{chat-command-XPJ43KSW.mjs.map → chat-command-WBAJBKIE.mjs.map} +1 -1
  3. package/dist/chunk-2TV7M4CC.mjs +101 -0
  4. package/dist/chunk-2TV7M4CC.mjs.map +1 -0
  5. package/dist/{chunk-Q3NEL2KK.mjs → chunk-4J4MA3RC.mjs} +2606 -671
  6. package/dist/chunk-4J4MA3RC.mjs.map +1 -0
  7. package/dist/{chunk-NFTCEJBJ.mjs → chunk-5YOHLJFB.mjs} +98 -284
  8. package/dist/chunk-5YOHLJFB.mjs.map +1 -0
  9. package/dist/{chunk-L7TIIVAY.mjs → chunk-CR2MU7LN.mjs} +49 -55
  10. package/dist/chunk-CR2MU7LN.mjs.map +1 -0
  11. package/dist/{chunk-2JPFBIAG.mjs → chunk-DKIYHA3O.mjs} +284 -31
  12. package/dist/chunk-DKIYHA3O.mjs.map +1 -0
  13. package/dist/{chunk-FJOGBUXU.mjs → chunk-DQR2YS3I.mjs} +1930 -33
  14. package/dist/chunk-DQR2YS3I.mjs.map +1 -0
  15. package/dist/{chunk-JOVL7OTW.mjs → chunk-EJBBVLUN.mjs} +3 -3
  16. package/dist/chunk-EJBBVLUN.mjs.map +1 -0
  17. package/dist/{chunk-X2QBH24F.mjs → chunk-FM3GXNEO.mjs} +1643 -3
  18. package/dist/chunk-FM3GXNEO.mjs.map +1 -0
  19. package/dist/{chunk-R73XMAB2.mjs → chunk-MSMDLDPB.mjs} +96 -5
  20. package/dist/chunk-MSMDLDPB.mjs.map +1 -0
  21. package/dist/{chunk-NQHZPSW2.mjs → chunk-N2WGG3MS.mjs} +2 -2
  22. package/dist/{chunk-67HNPYZJ.mjs → chunk-RXMSZIYD.mjs} +3 -3
  23. package/dist/{chunk-5MJO4AJB.mjs → chunk-SQWN4GTQ.mjs} +2 -2
  24. package/dist/cli.mjs +9 -9
  25. package/dist/contacts-worker.mjs +2 -2
  26. package/dist/global-insight-worker.mjs +1 -1
  27. package/dist/{http-5RVY5J5U.mjs → http-X6OEOOSH.mjs} +12 -12
  28. package/dist/{import-ILTWVHKU.mjs → import-WBJ6YIQ7.mjs} +7 -7
  29. package/dist/index.mjs +12 -12
  30. package/dist/{mcp-Y2YXOFB4.mjs → mcp-FR6OKWKL.mjs} +8 -8
  31. package/dist/people-relationships-worker.mjs +2 -2
  32. package/dist/semantic-index-worker.mjs +1 -1
  33. package/dist/{src-OV5ZNE3Z.mjs → src-WE5HNN2O.mjs} +44 -14
  34. package/dist/{stream-import-XOUM3Z5W.mjs → stream-import-YYQVZDGQ.mjs} +7 -7
  35. package/dist/{worker-runtime-JNGURHDM.mjs → worker-runtime-YGB5ZDE4.mjs} +5 -5
  36. package/dist-cli-web/assets/AISettingsTab-Co2sM1iY.js +1 -0
  37. package/dist-cli-web/assets/{AboutTab-CxI8zJNz.js → AboutTab-DQ8r6mYE.js} +1 -1
  38. package/dist-cli-web/assets/ActionToolsPanel-CmYpw8Mt.css +1 -0
  39. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang--RPlmfIu.js +75 -0
  40. package/dist-cli-web/assets/{Alert-_MYcI_E2.js → Alert-DU1tLAAg.js} +1 -1
  41. package/dist-cli-web/assets/ApiSettingsTab-D5g5b79L.js +2 -0
  42. package/dist-cli-web/assets/BatchManageTab-BFUyVaGU.js +1 -0
  43. package/dist-cli-web/assets/{BufferResource-i64DlwQT.js → BufferResource-C-RfYwQW.js} +1 -1
  44. package/dist-cli-web/assets/{CanvasRenderer-B76mEt9A.js → CanvasRenderer-Dz7JAMrR.js} +1 -1
  45. package/dist-cli-web/assets/CardDecoration-D28DI1G9.js +1 -0
  46. package/dist-cli-web/assets/ChatRecordDrawer-Cph819yY.js +1 -0
  47. package/dist-cli-web/assets/{ChatRecordWorkspace-CyfPIlIy.js → ChatRecordWorkspace-BAfERdPc.js} +1 -1
  48. package/dist-cli-web/assets/Checkbox-B8uqt13j.js +1 -0
  49. package/dist-cli-web/assets/DataDirCleanupNotice-3sGBE5vU.js +1 -0
  50. package/dist-cli-web/assets/{DatePicker.vue_vue_type_script_setup_true_lang-DqNBNa1D.js → DatePicker.vue_vue_type_script_setup_true_lang-CQuub8-f.js} +1 -1
  51. package/dist-cli-web/assets/{DebugToolsPanel-CbNsD9co.js → DebugToolsPanel-Cwkr0BOY.js} +1 -1
  52. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-BuLujQCF.js +1 -0
  53. package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-DuA5xbcC.js +1 -0
  54. package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-CvmMEfYq.js +1 -0
  55. package/dist-cli-web/assets/EChartWordcloud-CHVtyPR7.js +1 -0
  56. package/dist-cli-web/assets/FileDropZone.vue_vue_type_script_setup_true_lang-BKPy9Qv-.js +1 -0
  57. package/dist-cli-web/assets/{Filter-yxkeHO78.js → Filter-CMfRHIoK.js} +1 -1
  58. package/dist-cli-web/assets/GlobalTaskBar-Jz6MASCu.js +1 -0
  59. package/dist-cli-web/assets/GlobalTaskBar-haLzezqY.css +1 -0
  60. package/dist-cli-web/assets/GroupRelationshipGalaxyView-Ch4obfEq.js +1 -0
  61. package/dist-cli-web/assets/Label-CuryuymO.js +1 -0
  62. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CoeQsaiL.js +1 -0
  63. package/dist-cli-web/assets/MessageExportModal-JqGZ-iLr.js +1 -0
  64. package/dist-cli-web/assets/PageHeader-CPLgiKT8.css +1 -0
  65. package/dist-cli-web/assets/PageHeader-D4up77TB.js +1 -0
  66. package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js → PageTabs.vue_vue_type_script_setup_true_lang-DYQRFk9s.js} +1 -1
  67. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-BODk18aA.js → RelationshipGalaxyCanvas-Cn7Eta5U.js} +3 -3
  68. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-BJyuRiC-.js → RelationshipGalaxyThreeCanvas-LlaX57z6.js} +1 -1
  69. package/dist-cli-web/assets/{RenderTargetSystem-CVMvAUSv.js → RenderTargetSystem-JhA2PUFi.js} +1 -1
  70. package/dist-cli-web/assets/{RovingFocusItem-DC_06OmN.js → RovingFocusItem-DHaiTb4j.js} +1 -1
  71. package/dist-cli-web/assets/{ScreenCaptureModal-DrBFDOtC.js → ScreenCaptureModal-Bxhyt5g1.js} +1 -1
  72. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-BlAje3Tf.js +1 -0
  73. package/dist-cli-web/assets/Select-Beeqv0wU.js +1 -0
  74. package/dist-cli-web/assets/SettingsModal-DV8yDBJs.js +2 -0
  75. package/dist-cli-web/assets/{StorageTab-B0ebN0f8.js → StorageTab-B7GHadia.js} +1 -1
  76. package/dist-cli-web/assets/Switch-u4zlvUMa.js +1 -0
  77. package/dist-cli-web/assets/{Tabs-N3Q-Mpqi.js → Tabs-B7-Koq3x.js} +1 -1
  78. package/dist-cli-web/assets/Tabs-RWKHwtfM.js +1 -0
  79. package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-ndsa3-aT.js +1 -0
  80. package/dist-cli-web/assets/{TimeSelect.vue_vue_type_script_setup_true_lang-Ccunouyf.js → TimeSelect.vue_vue_type_script_setup_true_lang-DKa1flT-.js} +1 -1
  81. package/dist-cli-web/assets/{VisuallyHiddenInput-OAJEt_Y5.js → VisuallyHiddenInput-DGDqcvUy.js} +1 -1
  82. package/dist-cli-web/assets/{WebGLRenderer-DuUeftYD.js → WebGLRenderer-ifvgA1fe.js} +1 -1
  83. package/dist-cli-web/assets/{WebGPURenderer-DoWQxiWZ.js → WebGPURenderer-DwzmuWF0.js} +1 -1
  84. package/dist-cli-web/assets/aiChat-BY4C3UQe.js +8 -0
  85. package/dist-cli-web/assets/base-BWDX-164.js +1 -0
  86. package/dist-cli-web/assets/{browserAll-Cb-mtR2y.js → browserAll-CSIIETeE.js} +1 -1
  87. package/dist-cli-web/assets/chatMessages--r0obAVw.css +1 -0
  88. package/dist-cli-web/assets/chatMessages-Zywjea1n.js +147 -0
  89. package/dist-cli-web/assets/cli-web-BRY49NWe.js +1 -0
  90. package/dist-cli-web/assets/{fetch-BbcFaCRB.js → fetch-Bf4cqeM3.js} +1 -1
  91. package/dist-cli-web/assets/{fetch-B-6tyYWu.js → fetch-BiXab0IF.js} +1 -1
  92. package/dist-cli-web/assets/{fetch-DEub4tOo.js → fetch-C8CcoTWY.js} +1 -1
  93. package/dist-cli-web/assets/{fetch-Qs38Hx1V.js → fetch-Co2vLmiE.js} +1 -1
  94. package/dist-cli-web/assets/{fetch-DLTlYnDB.js → fetch-D3nLtFBi.js} +1 -1
  95. package/dist-cli-web/assets/{fetch-BkA_so1e.js → fetch-DNSDHSqQ.js} +1 -1
  96. package/dist-cli-web/assets/{fetch-sYDJ-Zs8.js → fetch-DeHqF6yL.js} +1 -1
  97. package/dist-cli-web/assets/{fetch-B4PYy5JS.js → fetch-jx1VdM9j.js} +3 -3
  98. package/dist-cli-web/assets/{fetch-CW2fKvGp.js → fetch-mYSeL4Ki.js} +1 -1
  99. package/dist-cli-web/assets/fetch-qBaUXqFt.js +1 -0
  100. package/dist-cli-web/assets/{fetch-BzXuAaT3.js → fetch-r6mhEGrP.js} +1 -1
  101. package/dist-cli-web/assets/{fetch-AvsnJLWJ.js → fetch-wzv71PYy.js} +1 -1
  102. package/dist-cli-web/assets/{host-DYIkQqvY.js → host-1emQf9_4.js} +1 -1
  103. package/dist-cli-web/assets/{host-B6SQ6OGo.js → host-jXJHyyOX.js} +1 -1
  104. package/dist-cli-web/assets/index-2dJCozDq.js +64 -0
  105. package/dist-cli-web/assets/index-6ejRbH3h.js +2 -0
  106. package/dist-cli-web/assets/index-B4mJkX_d.js +1 -0
  107. package/dist-cli-web/assets/index-B7biznha.js +1 -0
  108. package/dist-cli-web/assets/index-BOcFyPCa.js +1 -0
  109. package/dist-cli-web/assets/index-BQ463TS7.js +1 -0
  110. package/dist-cli-web/assets/index-BZpR015e.css +1 -0
  111. package/dist-cli-web/assets/index-BgelKQTW.css +1 -0
  112. package/dist-cli-web/assets/index-C1A1FwpO.css +1 -0
  113. package/dist-cli-web/assets/index-CIIyg_o9.css +1 -0
  114. package/dist-cli-web/assets/{index-CShh95fU.js → index-CYc_VLgK.js} +1 -1
  115. package/dist-cli-web/assets/index-ClHMs0-a.js +2 -0
  116. package/dist-cli-web/assets/{index-D64XYYts.js → index-Cw0IhKZ6.js} +10 -10
  117. package/dist-cli-web/assets/{index-C_OS8Y8W.js → index-DOqbUvhA.js} +1 -1
  118. package/dist-cli-web/assets/index-DnpnIyle.js +135 -0
  119. package/dist-cli-web/assets/index-LV9LfFNu.js +1 -0
  120. package/dist-cli-web/assets/index-kePiJ3ca.js +137 -0
  121. package/dist-cli-web/assets/index-slDUxib2.js +1 -0
  122. package/dist-cli-web/assets/{people-page-header-0jvXFFnh.js → people-page-header-Cx5r9Bk2.js} +1 -1
  123. package/dist-cli-web/assets/{prompt-BPYj29Vq.js → prompt-BggEDxxi.js} +1 -1
  124. package/dist-cli-web/assets/{semantic-index-config-builder-vO37z355.js → semantic-index-config-builder-1sO0aEc1.js} +1 -1
  125. package/dist-cli-web/assets/{service-D29Vftq9.js → service-Bvq1fRkC.js} +1 -1
  126. package/dist-cli-web/assets/service-DkPheDt8.js +1 -0
  127. package/dist-cli-web/assets/service-DvI8O_7K.js +1 -0
  128. package/dist-cli-web/assets/useFormControl-B0aShtLp.js +1 -0
  129. package/dist-cli-web/assets/useTable-DC7oxmBl.js +1 -0
  130. package/dist-cli-web/assets/{useToast-BA0EwImD.js → useToast-CCPBE-Sy.js} +1 -1
  131. package/dist-cli-web/assets/{vendor-echarts-hTLhTs52.js → vendor-echarts-C9ugTmum.js} +1 -1
  132. package/dist-cli-web/assets/{vendor-echarts-wordcloud-B8CF_NgP.js → vendor-echarts-wordcloud-DNiU8Psq.js} +1 -1
  133. package/dist-cli-web/assets/{webworkerAll-ZPE_yGnC.js → webworkerAll-FCJk6reG.js} +1 -1
  134. package/dist-cli-web/index.html +2 -2
  135. package/package.json +1 -1
  136. package/dist/chunk-2JPFBIAG.mjs.map +0 -1
  137. package/dist/chunk-6QP47LID.mjs +0 -41
  138. package/dist/chunk-6QP47LID.mjs.map +0 -1
  139. package/dist/chunk-FJOGBUXU.mjs.map +0 -1
  140. package/dist/chunk-JOVL7OTW.mjs.map +0 -1
  141. package/dist/chunk-L7TIIVAY.mjs.map +0 -1
  142. package/dist/chunk-NFTCEJBJ.mjs.map +0 -1
  143. package/dist/chunk-Q3NEL2KK.mjs.map +0 -1
  144. package/dist/chunk-R73XMAB2.mjs.map +0 -1
  145. package/dist/chunk-X2QBH24F.mjs.map +0 -1
  146. package/dist-cli-web/assets/AISettingsTab-vvjijrc5.js +0 -1
  147. package/dist-cli-web/assets/ActionToolsPanel-Dp-ojXjO.css +0 -1
  148. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-w0hHEodr.js +0 -110
  149. package/dist-cli-web/assets/ApiSettingsTab-CK7U6dVA.js +0 -2
  150. package/dist-cli-web/assets/BatchManageTab-1WnEqqpB.js +0 -1
  151. package/dist-cli-web/assets/ChatRecordDrawer-Bp6OSCrz.js +0 -1
  152. package/dist-cli-web/assets/Checkbox-Ci7IeRw1.js +0 -1
  153. package/dist-cli-web/assets/DataDirCleanupNotice-Dh63pOLt.js +0 -1
  154. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js +0 -1
  155. package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js +0 -1
  156. package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-Co6olfwv.js +0 -1
  157. package/dist-cli-web/assets/EChartWordcloud-rDusZwSq.js +0 -1
  158. package/dist-cli-web/assets/GlobalTaskBar-BlZ-fFiq.js +0 -1
  159. package/dist-cli-web/assets/GlobalTaskBar-COW_uBX6.css +0 -1
  160. package/dist-cli-web/assets/GroupRelationshipGalaxyView-BXQBX0zJ.js +0 -1
  161. package/dist-cli-web/assets/Label-CFAZFBQX.js +0 -1
  162. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js +0 -1
  163. package/dist-cli-web/assets/MessageExportModal-DU71grc7.js +0 -1
  164. package/dist-cli-web/assets/PageHeader-BDPf4NuI.js +0 -1
  165. package/dist-cli-web/assets/PageHeader-XIXMTomn.css +0 -1
  166. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C-Zj2biH.js +0 -1
  167. package/dist-cli-web/assets/Select-DLK2LYhO.js +0 -1
  168. package/dist-cli-web/assets/SettingsModal-DqaR4Dx5.js +0 -2
  169. package/dist-cli-web/assets/Switch-CokhQWxm.js +0 -1
  170. package/dist-cli-web/assets/Tabs-D1UiZNaZ.js +0 -1
  171. package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js +0 -1
  172. package/dist-cli-web/assets/aiChat-CdADfRnU.js +0 -8
  173. package/dist-cli-web/assets/cli-web-BHQCZLLg.js +0 -1
  174. package/dist-cli-web/assets/fetch-ul8-uQIb.js +0 -1
  175. package/dist-cli-web/assets/index--IEkRjKe.js +0 -64
  176. package/dist-cli-web/assets/index-9iaY_EWG.js +0 -1
  177. package/dist-cli-web/assets/index-B4J99zv3.css +0 -1
  178. package/dist-cli-web/assets/index-BBeqtL8d.css +0 -1
  179. package/dist-cli-web/assets/index-BnaLj2dx.css +0 -1
  180. package/dist-cli-web/assets/index-C7omDgiJ.js +0 -2
  181. package/dist-cli-web/assets/index-CHsM84U1.js +0 -2
  182. package/dist-cli-web/assets/index-CL8u01Pf.js +0 -137
  183. package/dist-cli-web/assets/index-DrCc8p_I.css +0 -1
  184. package/dist-cli-web/assets/index-UpTe1KzQ.js +0 -1
  185. package/dist-cli-web/assets/index-a8Hw6eD8.js +0 -1
  186. package/dist-cli-web/assets/index-jwjzZNKm.js +0 -1
  187. package/dist-cli-web/assets/index-pkxlF8Ee.js +0 -1
  188. package/dist-cli-web/assets/index-sWxuTsa7.js +0 -36
  189. package/dist-cli-web/assets/service-CVoA9yNf.js +0 -1
  190. package/dist-cli-web/assets/service-DMysyLCa.js +0 -1
  191. package/dist-cli-web/assets/useFormControl-DVawP2DO.js +0 -1
  192. package/dist-cli-web/assets/useTable-Bv3R_Hux.js +0 -1
  193. /package/dist/{chunk-NQHZPSW2.mjs.map → chunk-N2WGG3MS.mjs.map} +0 -0
  194. /package/dist/{chunk-67HNPYZJ.mjs.map → chunk-RXMSZIYD.mjs.map} +0 -0
  195. /package/dist/{chunk-5MJO4AJB.mjs.map → chunk-SQWN4GTQ.mjs.map} +0 -0
  196. /package/dist/{http-5RVY5J5U.mjs.map → http-X6OEOOSH.mjs.map} +0 -0
  197. /package/dist/{import-ILTWVHKU.mjs.map → import-WBJ6YIQ7.mjs.map} +0 -0
  198. /package/dist/{mcp-Y2YXOFB4.mjs.map → mcp-FR6OKWKL.mjs.map} +0 -0
  199. /package/dist/{src-OV5ZNE3Z.mjs.map → src-WE5HNN2O.mjs.map} +0 -0
  200. /package/dist/{stream-import-XOUM3Z5W.mjs.map → stream-import-YYQVZDGQ.mjs.map} +0 -0
  201. /package/dist/{worker-runtime-JNGURHDM.mjs.map → worker-runtime-YGB5ZDE4.mjs.map} +0 -0
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MessageExportModal-JqGZ-iLr.js","assets/index-DnpnIyle.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-BZpR015e.css","assets/useToast-CCPBE-Sy.js","assets/Tabs-B7-Koq3x.js","assets/Tabs-RWKHwtfM.js","assets/RovingFocusItem-DHaiTb4j.js"])))=>i.map(i=>d[i]);
2
+ import{d as Y,a6 as Q,ac as ge,K as X,x as ve,y as xe,o as n,f as V,g as t,w as H,c as u,a as e,p as o,F as O,j as G,n as F,l as L,z as j,a7 as ee,O as pe,e as _,b as U,J as Ie,L as $e,ar as Le,r as Be,a8 as Re,a9 as we,a5 as Ne,aD as Ve,ay as Fe,ap as Oe,ab as Ue,aA as Ee,be as je,aE as We,bs as He,aa as Je,bt as Ge,H as Ke,ah as Ye}from"./index-DnpnIyle.js";import{_ as Ce,a as Se,b as re,c as Qe,d as Xe,u as Ze,e as et,I as tt,f as at,g as st,h as nt,i as it,j as ot,C as rt,k as lt,M as ct,l as ut,m as dt,n as mt,o as pt}from"./ActionToolsPanel.vue_vue_type_script_setup_true_lang--RPlmfIu.js";import{_ as gt}from"./SectionTabs.vue_vue_type_script_setup_true_lang-BlAje3Tf.js";import{_ as vt}from"./Select-Beeqv0wU.js";import{_ as he,L as xt}from"./LoadingState.vue_vue_type_script_setup_true_lang-CoeQsaiL.js";import{T as De}from"./Tabs-B7-Koq3x.js";import{_ as Pe}from"./EChart.vue_vue_type_script_setup_true_lang-BuLujQCF.js";import"./vendor-echarts-wordcloud-DNiU8Psq.js";import{u as fe,x as ht,q as ye,j as be,i as ne,m as qe,t as Ae,s as ft,k as yt}from"./vendor-echarts-C9ugTmum.js";import{_ as ke}from"./ThemeCard.vue_vue_type_script_setup_true_lang-ndsa3-aT.js";import{g as bt}from"./base-BWDX-164.js";import{i as Te}from"./chatMessages-Zywjea1n.js";import{_ as kt}from"./useTable-DC7oxmBl.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-Cw0IhKZ6.js";import"./useToast-CCPBE-Sy.js";import"./service-Bvq1fRkC.js";import"./Checkbox-B8uqt13j.js";import"./useFormControl-B0aShtLp.js";import"./VisuallyHiddenInput-DGDqcvUy.js";import"./RovingFocusItem-DHaiTb4j.js";import"./Label-CuryuymO.js";import"./prompt-BggEDxxi.js";import"./aiChat-BY4C3UQe.js";import"./chatlabSiteLocale-CrCNb8QP.js";import"./ChatRecordWorkspace-BAfERdPc.js";import"./DatePicker.vue_vue_type_script_setup_true_lang-CQuub8-f.js";import"./clamp-jFYhBC76.js";import"./EChartBar.vue_vue_type_script_setup_true_lang-DuA5xbcC.js";import"./Tabs-RWKHwtfM.js";import"./semantic-index-config-builder-1sO0aEc1.js";import"./TimeSelect.vue_vue_type_script_setup_true_lang-DKa1flT-.js";import"./CardDecoration-D28DI1G9.js";import"./EChartLine.vue_vue_type_script_setup_true_lang-CvmMEfYq.js";import"./PageHeader-D4up77TB.js";import"./PageTabs.vue_vue_type_script_setup_true_lang-DYQRFk9s.js";import"./Alert-DU1tLAAg.js";import"./FileDropZone.vue_vue_type_script_setup_true_lang-BKPy9Qv-.js";import"./vendor-zrender-D8psf1AA.js";const _t={key:0,class:"relative z-10 flex flex-col h-full"},wt={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"},Ct={class:"flex items-center gap-x-2 sm:gap-x-3 mb-6 sm:mb-8"},St={class:"text-2xl sm:text-4xl font-black tracking-tight text-blue-600 dark:text-blue-400 truncate"},Mt={class:"text-2xl sm:text-4xl font-black tracking-tight text-pink-600 dark:text-pink-400 truncate"},jt={class:"grid grid-cols-2 gap-4 sm:gap-10"},Pt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Tt={class:"flex flex-col gap-2.5"},It=["title","onClick"],Rt={class:"shrink-0 text-[10px] sm:text-xs font-semibold tabular-nums text-gray-400/80"},Dt={key:0,class:"text-xs sm:text-sm font-medium text-gray-400"},qt={class:"hidden shrink-0 sm:block"},At={class:"px-6 pb-6 pt-2 sm:px-8 mt-auto"},zt={class:"mb-3 flex items-center justify-between"},Lt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Bt={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Nt={class:"mb-4 flex items-center gap-2.5"},Vt={class:"text-sm font-bold tracking-wide text-gray-900 dark:text-white"},Ft={class:"flex items-center justify-between mb-4 w-full"},Ot={class:"flex flex-col flex-1 min-w-0"},Ut={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Et={class:"flex flex-col flex-1 min-w-0 items-end text-right"},Wt={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Ht={class:"mt-auto pt-3 border-t border-gray-100 dark:border-white/5 flex flex-col"},Jt={key:0,class:"flex items-start justify-between gap-2 mb-2 min-h-[24px]"},Gt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1"},Kt={key:0,class:"text-[11px] text-gray-400"},Yt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1 justify-end"},Qt={key:0,class:"text-[11px] text-gray-400"},Xt={key:1,class:"flex flex-nowrap overflow-hidden items-center gap-x-1.5 mb-2 min-h-[24px]"},Zt=["onClick"],ea={key:0,class:"shrink-0 text-gray-300 dark:text-gray-600 font-normal"},ta={key:0,class:"text-[11px] text-gray-400"},aa={class:"text-[10px] leading-relaxed text-gray-500 dark:text-gray-400"},sa={class:"flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},na={class:"flex items-center gap-1.5"},ia={class:"text-[9px] font-medium uppercase tracking-widest"},oa=Y({__name:"LanguagePreferenceCard",props:{data:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(w,{emit:s}){fe([ht,ye,be]);const{t:a}=Q(),C=ge(),i=w,v=s,I=_(()=>i.data.members[0]),b=_(()=>i.data.members[1]);function p(l,r){return l.length<=r?l:l.slice(0,r)+"…"}function S(l){const r=l.posDistribution,c=r.noun+r.verb+r.adjective+r.adverb+r.modalParticle+r.interjection+r.other;return c===0?a("quotes.languagePreference.pos.styleBalanced"):r.noun/c>.5?a("quotes.languagePreference.pos.styleEncyclopedia"):r.verb/c>.45?a("quotes.languagePreference.pos.styleAction"):r.adjective/c>.3?a("quotes.languagePreference.pos.styleExpressive"):a("quotes.languagePreference.pos.styleBalanced")}function N(l){const c=[["ellipsis",l.ellipsis],["exclamation",l.exclamation],["question",l.question],["tilde",l.tilde],["noPunct",l.noPunct],["period",l.period]].reduce((y,P)=>y[1]>=P[1]?y:P);return{ellipsis:a("quotes.languagePreference.punctuation.personalityDeep"),exclamation:a("quotes.languagePreference.punctuation.personalityPassionate"),question:a("quotes.languagePreference.punctuation.personalityCurious"),tilde:a("quotes.languagePreference.punctuation.personalityCheerful"),noPunct:a("quotes.languagePreference.punctuation.personalityFreeflow"),period:a("quotes.languagePreference.punctuation.personalityPrecise")}[c[0]]||"-"}function A(l,r=5){return[["...",l.ellipsis],["!",l.exclamation],["?",l.question],["~",l.tilde],["。",l.period]].filter(([,m])=>m>0).sort((m,y)=>y[1]-m[1]).slice(0,r).map(([m])=>m)}const M=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e","#eab308","#06b6d4"],f=_(()=>{const l=I.value,r=b.value;if(!l||!r)return[];const c=i.data.sharedWords.slice(0,6).map((m,y)=>({word:m.word,color:M[y%M.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:a("quotes.languagePreference.card.diversityTitle"),leftName:l.name,leftValue:`${l.lexicalDiversity}%`,rightName:r.name,rightValue:`${r.lexicalDiversity}%`,valueClass:"text-lg text-blue-600 dark:text-blue-400",detail:{kind:"tags-single",tags:c},desc:a("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:a("quotes.languagePreference.card.styleTitle"),leftName:l.name,leftValue:S(l),rightName:r.name,rightValue:S(r),valueClass:"text-xs text-violet-600 dark:text-violet-400",detail:{kind:"tags-vs",leftTags:l.modalParticles.slice(0,4).map(m=>m.word),rightTags:r.modalParticles.slice(0,4).map(m=>m.word)},desc:a("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:a("quotes.languagePreference.card.punctTitle"),leftName:l.name,leftValue:N(l.punctuation),rightName:r.name,rightValue:N(r.punctuation),valueClass:"text-xs text-orange-600 dark:text-orange-400",detail:{kind:"tags-vs",leftTags:A(l.punctuation,4),rightTags:A(r.punctuation,4)},desc:a("quotes.languagePreference.card.punctDesc")}]}),q=U(null);let $=null;function k(){q.value&&($=ne(q.value,void 0,{renderer:"canvas"}),h())}function h(){if(!$||!I.value||!b.value)return;const l=I.value.posDistribution,r=b.value.posDistribution,c=[{name:a("quotes.languagePreference.card.radarFactual"),max:0},{name:a("quotes.languagePreference.card.radarActive"),max:0},{name:a("quotes.languagePreference.card.radarDescriptive"),max:0},{name:a("quotes.languagePreference.card.radarAffable"),max:0},{name:a("quotes.languagePreference.card.radarIntense"),max:0}],m=[l.noun,l.verb,l.adjective,l.modalParticle+l.interjection,l.adverb],y=[r.noun,r.verb,r.adjective,r.modalParticle+r.interjection,r.adverb];for(let E=0;E<c.length;E++)c[E].max=Math.max(m[E],y[E],1)*1.3;const P=C.value?"#9ca3af":"#6b7280";$.setOption({backgroundColor:"transparent",tooltip:{trigger:"item"},legend:{bottom:0,itemWidth:10,itemHeight:10,textStyle:{fontSize:10,color:P},data:[I.value.name,b.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:P,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:y,name:b.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(){$?.resize()}return X(()=>i.data,()=>h(),{deep:!0}),X(C,()=>{$?.dispose(),k()}),ve(()=>{k(),window.addEventListener("resize",d)}),xe(()=>{window.removeEventListener("resize",d),$?.dispose()}),(l,r)=>{const c=ee;return n(),V(t(Ce),null,{default:H(()=>[I.value&&b.value?(n(),u("div",_t,[e("div",wt,[e("div",$t,[e("div",Ct,[e("span",St,o(I.value.name),1),r[0]||(r[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",Mt,o(b.value.name),1)]),e("div",jt,[(n(!0),u(O,null,G([I.value,b.value],(m,y)=>(n(),u("div",{key:m.memberId,class:"flex flex-col gap-3"},[e("div",Pt,o(t(a)("quotes.languagePreference.card.topCatchphrases")),1),e("div",Tt,[(n(!0),u(O,null,G(m.catchphrases.slice(0,3),(P,E)=>(n(),u("div",{key:E,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",y===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])}," #"+o(E+1),3),e("span",{class:F(["truncate text-sm font-bold text-gray-700 transition-opacity dark:text-gray-200 sm:text-base",i.enableRecordNavigation?"cursor-pointer hover:opacity-70":""]),title:P.content,onClick:J=>i.enableRecordNavigation&&v("wordClick",P.content)}," 「"+o(p(P.content,12))+"」 ",11,It),e("span",Rt," ×"+o(P.count),1)]))),128)),m.catchphrases.length===0?(n(),u("div",Dt,"-")):L("",!0)])]))),128))])]),e("div",qt,[e("div",{ref_key:"radarRef",ref:q,style:{width:"250px",height:"230px"},class:"-mt-4 sm:-mr-4"},null,512)])]),e("div",At,[e("div",zt,[e("span",Lt,o(t(a)("quotes.languagePreference.card.languageProfiles")),1)]),e("div",Bt,[(n(!0),u(O,null,G(f.value,m=>(n(),u("div",{key:m.title,class:"flex min-w-0 flex-col p-4"},[e("div",Nt,[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",Vt,o(m.title),1)]),e("div",Ft,[e("div",Ot,[e("span",Ut,o(m.leftName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",m.valueClass])},o(m.leftValue),3)]),r[1]||(r[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",Et,[e("span",Wt,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",Ht,[m.detail.kind==="tags-vs"?(n(),u("div",Jt,[e("div",Gt,[(n(!0),u(O,null,G(m.detail.leftTags,y=>(n(),u("span",{key:y,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(y),1))),128)),m.detail.leftTags.length===0?(n(),u("span",Kt,"-")):L("",!0)]),e("div",Yt,[(n(!0),u(O,null,G(m.detail.rightTags,y=>(n(),u("span",{key:y,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(y),1))),128)),m.detail.rightTags.length===0?(n(),u("span",Qt,"-")):L("",!0)])])):m.detail.kind==="tags-single"?(n(),u("div",Xt,[(n(!0),u(O,null,G(m.detail.tags.slice(0,6),(y,P)=>(n(),u(O,{key:y.word},[e("span",{class:F(["shrink-0 text-[11px] font-bold transition-opacity",i.enableRecordNavigation?"cursor-pointer hover:opacity-80":""]),style:pe({color:y.color}),onClick:E=>i.enableRecordNavigation&&v("wordClick",y.word)},o(y.word),15,Zt),P<m.detail.tags.slice(0,6).length-1?(n(),u("span",ea," · ")):L("",!0)],64))),128)),m.detail.tags.length===0?(n(),u("span",ta,"-")):L("",!0)])):L("",!0),e("p",aa,o(m.desc),1)])]))),128))])]),e("div",sa,[e("div",na,[j(c,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),r[2]||(r[2]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",ia,o(t(a)("quotes.languagePreference.card.watermark")),1)])])):L("",!0)]),_:1})}}}),ra={class:"px-5 py-4 sm:px-6"},la={class:"mb-4 flex items-center justify-between"},ca={class:"flex items-center gap-2"},ua={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},da={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"},ma={key:0,class:"grid grid-cols-2 gap-6"},pa={class:"mb-3 text-center"},ga={class:"text-sm font-semibold text-blue-600 dark:text-blue-400"},va={class:"flex flex-wrap gap-2"},xa=["title","onClick"],ha={class:"text-[10px] font-semibold opacity-60"},fa={class:"mb-3 text-center"},ya={class:"text-sm font-semibold text-pink-600 dark:text-pink-400"},ba={class:"flex flex-wrap gap-2"},ka=["title","onClick"],_a={class:"text-[10px] font-semibold opacity-60"},wa={key:1,class:"mt-4 text-center text-xs text-gray-500 dark:text-gray-400"},$a=Y({__name:"CatchphrasePKSection",props:{members:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(w,{emit:s}){const{t:a}=Q(),C=w,i=s,v=U(20),I=[{label:"10",value:10},{label:"20",value:20},{label:"30",value:30}],b=_(()=>C.members[0]),p=_(()=>C.members[1]),S=_(()=>b.value?.catchphrases.slice(0,v.value)??[]),N=_(()=>p.value?.catchphrases.slice(0,v.value)??[]),A=_(()=>{if(!b.value||!p.value)return new Set;const $=new Set(b.value.catchphrases.map(h=>h.content)),k=new Set(p.value.catchphrases.map(h=>h.content));return new Set([...$].filter(h=>k.has(h)))}),M=[{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 f($){return $<M.length?M[$]:{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 q($,k=20){return $.length<=k?$:$.slice(0,k)+"..."}return($,k)=>{const h=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",ra,[e("div",la,[e("div",ca,[j(h,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"h-4 w-4 text-indigo-500"}),e("span",ua,o(t(a)("quotes.languagePreference.catchphrasePK.title")),1),A.value.size>0?(n(),u("span",da,o(t(a)("quotes.languagePreference.catchphrasePK.sharedCount",{count:A.value.size})),1)):L("",!0)]),j(t(De),{modelValue:v.value,"onUpdate:modelValue":k[0]||(k[0]=d=>v.value=d),size:"xs",items:I},null,8,["modelValue"])]),b.value&&p.value?(n(),u("div",ma,[e("div",null,[e("div",pa,[e("span",ga,o(b.value.name),1)]),e("div",va,[(n(!0),u(O,null,G(S.value,(d,l)=>(n(),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":"",A.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":f(l).bg]]),title:d.content,onClick:r=>C.enableRecordNavigation&&i("wordClick",d.content)},[l<3?(n(),u("span",{key:0,class:F(["flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[10px] font-bold",f(l).badge])},o(l+1),3)):L("",!0),e("span",{class:F(["text-[13px] font-medium",A.value.has(d.content)?"font-bold":f(l).text])},o(q(d.content)),3),e("span",ha,"×"+o(d.count),1)],10,xa))),128))])]),e("div",null,[e("div",fa,[e("span",ya,o(p.value.name),1)]),e("div",ba,[(n(!0),u(O,null,G(N.value,(d,l)=>(n(),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":"",A.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":f(l).bg]]),title:d.content,onClick:r=>C.enableRecordNavigation&&i("wordClick",d.content)},[l<3?(n(),u("span",{key:0,class:F(["flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[10px] font-bold",f(l).badge])},o(l+1),3)):L("",!0),e("span",{class:F(["text-[13px] font-medium",A.value.has(d.content)?"font-bold":f(l).text])},o(q(d.content)),3),e("span",_a,"×"+o(d.count),1)],10,ka))),128))])])])):L("",!0),C.enableRecordNavigation?(n(),u("p",wa,o(t(a)("quotes.languagePreference.catchphrasePK.hint")),1)):L("",!0)])]),_:1})}}}),Ca={class:"px-5 py-4 sm:px-6"},Sa={class:"mb-4 flex items-center gap-2"},Ma={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},ja={class:"flex flex-col gap-4 lg:flex-row lg:gap-6"},Pa={class:"flex-1"},Ta={key:0,class:"flex shrink-0 flex-col gap-3 lg:w-48"},Ia={class:"min-w-0"},Ra={class:"truncate text-xs font-semibold text-gray-500 dark:text-gray-400"},Da=Y({__name:"PosPortraitSection",props:{members:{}},setup(w){fe([qe,Ae,ye,ft,be]);const{t:s}=Q(),a=ge(),C=w,i=_(()=>C.members[0]),v=_(()=>C.members[1]);function I(M){const f=M.posDistribution,q=f.noun+f.verb+f.adjective+f.adverb+f.modalParticle+f.interjection+f.other;if(q===0)return{label:s("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const $=f.noun/q,k=f.verb/q,h=f.adjective/q;return $>.5?{label:s("quotes.languagePreference.pos.styleEncyclopedia"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:k>.45?{label:s("quotes.languagePreference.pos.styleAction"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:h>.3?{label:s("quotes.languagePreference.pos.styleExpressive"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{label:s("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}const b=U(null);let p=null;function S(){b.value&&(p=ne(b.value,void 0,{renderer:"canvas"}),N())}function N(){if(!p||!i.value||!v.value)return;const M=i.value.posDistribution,f=v.value.posDistribution,q=[s("quotes.languagePreference.card.radarNoun"),s("quotes.languagePreference.card.radarVerb"),s("quotes.languagePreference.card.radarAdj"),s("quotes.languagePreference.card.radarModal"),s("quotes.languagePreference.card.radarAdv")],$=[M.noun,M.verb,M.adjective,M.modalParticle+M.interjection,M.adverb],k=[f.noun,f.verb,f.adjective,f.modalParticle+f.interjection,f.adverb],h=a.value?"#9ca3af":"#6b7280";p.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{data:[i.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:q,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:h}},series:[{name:i.value.name,type:"bar",data:$,itemStyle:{color:"#3b82f6",borderRadius:[0,4,4,0]},barGap:"20%",barCategoryGap:"40%"},{name:v.value.name,type:"bar",data:k,itemStyle:{color:"#ec4899",borderRadius:[0,4,4,0]}}]},{notMerge:!0})}function A(){p?.resize()}return X(()=>C.members,()=>N(),{deep:!0}),X(a,()=>{p?.dispose(),S()}),ve(()=>{S(),window.addEventListener("resize",A)}),xe(()=>{window.removeEventListener("resize",A),p?.dispose()}),(M,f)=>{const q=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",Ca,[e("div",Sa,[j(q,{name:"i-heroicons-chart-bar",class:"h-4 w-4 text-violet-500"}),e("span",Ma,o(t(s)("quotes.languagePreference.pos.title")),1)]),e("div",ja,[e("div",Pa,[e("div",{ref_key:"chartRef",ref:b,style:{width:"100%",height:"220px"}},null,512)]),i.value&&v.value?(n(),u("div",Ta,[(n(!0),u(O,null,G([i.value,v.value],$=>(n(),u("div",{key:$.memberId,class:"flex min-w-0 items-center gap-3 px-1 py-3"},[j(q,{name:I($).icon,class:F(["h-5 w-5 shrink-0",I($).colorClass])},null,8,["name","class"]),e("div",Ia,[e("div",Ra,o($.name),1),e("div",{class:F(["truncate text-sm font-bold",I($).colorClass])},o(I($).label),3)])]))),128))])):L("",!0)])])]),_:1})}}}),qa={class:"px-5 py-4 sm:px-6"},Aa={class:"mb-4 flex items-center gap-2"},za={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},La={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Ba={class:"mb-2 flex items-center justify-between"},Na={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Va=Y({__name:"ModalParticleSection",props:{members:{}},setup(w){fe([qe,Ae,ye,be]);const{t:s}=Q(),a=ge(),C=w,i=_(()=>C.members[0]),v=_(()=>C.members[1]),I=new Set(["呀","哒","滴","啦","哇","耶"]),b=new Set(["呢","吗","嘛"]),p=new Set(["吧","喔","噢","嘛"]),S=new Set(["嗯","哦","额","呃"]);function N(d){const l={label:s("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 l;let r=0,c=0,m=0,y=0,P=0;for(const J of d.modalParticles)P+=J.count,I.has(J.word)&&(r+=J.count),b.has(J.word)&&(c+=J.count),p.has(J.word)&&(m+=J.count),S.has(J.word)&&(y+=J.count);if(P===0)return l;const E=Math.max(r,c,m,y);return E===r&&r/P>.3?{label:s("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"}:E===c&&c/P>.3?{label:s("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"}:E===m&&m/P>.3?{label:s("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"}:E===y&&y/P>.3?{label:s("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"}:l}const A=U(null),M=U(null);let f=null,q=null;function $(d,l){const r=d.modalParticles.slice(0,8),c=a.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:r.map(m=>m.word).reverse(),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:12,color:c},inverse:!1},series:[{type:"bar",data:r.map(m=>m.count).reverse(),itemStyle:{color:l,borderRadius:[0,4,4,0]},barWidth:"50%",label:{show:!0,position:"right",fontSize:10,color:c,formatter:"{c}"}}]}}function k(){A.value&&i.value&&(f=ne(A.value,void 0,{renderer:"canvas"}),f.setOption($(i.value,"#3b82f6"),{notMerge:!0})),M.value&&v.value&&(q=ne(M.value,void 0,{renderer:"canvas"}),q.setOption($(v.value,"#ec4899"),{notMerge:!0}))}function h(){f?.resize(),q?.resize()}return X(()=>C.members,()=>{f&&i.value&&f.setOption($(i.value,"#3b82f6"),{notMerge:!0}),q&&v.value&&q.setOption($(v.value,"#ec4899"),{notMerge:!0})},{deep:!0}),X(a,()=>{f?.dispose(),q?.dispose(),k()}),ve(()=>{k(),window.addEventListener("resize",h)}),xe(()=>{window.removeEventListener("resize",h),f?.dispose(),q?.dispose()}),(d,l)=>{const r=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",qa,[e("div",Aa,[j(r,{name:"i-heroicons-chat-bubble-oval-left-ellipsis",class:"h-4 w-4 text-pink-500"}),e("span",za,o(t(s)("quotes.languagePreference.modal.title")),1)]),i.value&&v.value?(n(),u("div",La,[(n(!0),u(O,null,G([i.value,v.value],(c,m)=>(n(),u("div",{key:c.memberId},[e("div",Ba,[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",N(c).colorClass])},o(N(c).label),3)]),c.modalParticles.length>0?(n(),u("div",{key:0,ref_for:!0,ref:y=>{m===0?A.value=y:M.value=y},style:{width:"100%",height:"200px"}},null,512)):(n(),u("div",Na,o(t(s)("quotes.languagePreference.modal.empty")),1))]))),128))])):L("",!0)])]),_:1})}}}),Fa={class:"px-5 py-4 sm:px-6"},Oa={class:"mb-4 flex items-center gap-2"},Ua={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Ea={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Wa={class:"mb-2 flex items-center gap-2"},Ha={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Ja=Y({__name:"PunctuationSection",props:{members:{}},setup(w){fe([yt,ye,be]);const{t:s}=Q(),a=ge(),C=w,i=_(()=>C.members[0]),v=_(()=>C.members[1]),I=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6"];function b(k){const d=[["ellipsis",k.ellipsis],["exclamation",k.exclamation],["question",k.question],["tilde",k.tilde],["noPunct",k.noPunct],["period",k.period]].reduce((r,c)=>r[1]>=c[1]?r:c);return{ellipsis:{label:s("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:s("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:s("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:s("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:s("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:s("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 p(k){return[{name:"...",value:k.ellipsis},{name:"!",value:k.exclamation},{name:"?",value:k.question},{name:"~",value:k.tilde},{name:"。",value:k.period},{name:s("quotes.languagePreference.punctuation.none"),value:k.noPunct}].filter(h=>h.value>0)}const S=U(null),N=U(null);let A=null,M=null;function f(k){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:a.value?"#9ca3af":"#6b7280",formatter:"{b}"},emphasis:{label:{show:!0,fontWeight:"bold"},scaleSize:4},data:k.map((h,d)=>({...h,itemStyle:{color:I[d%I.length]}}))}]}}function q(){S.value&&i.value&&(A=ne(S.value,void 0,{renderer:"canvas"}),A.setOption(f(p(i.value.punctuation)),{notMerge:!0})),N.value&&v.value&&(M=ne(N.value,void 0,{renderer:"canvas"}),M.setOption(f(p(v.value.punctuation)),{notMerge:!0}))}function $(){A?.resize(),M?.resize()}return X(()=>C.members,()=>{A&&i.value&&A.setOption(f(p(i.value.punctuation)),{notMerge:!0}),M&&v.value&&M.setOption(f(p(v.value.punctuation)),{notMerge:!0})},{deep:!0}),X(a,()=>{A?.dispose(),M?.dispose(),q()}),ve(()=>{q(),window.addEventListener("resize",$)}),xe(()=>{window.removeEventListener("resize",$),A?.dispose(),M?.dispose()}),(k,h)=>{const d=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",Fa,[e("div",Oa,[j(d,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4 text-orange-500"}),e("span",Ua,o(t(s)("quotes.languagePreference.punctuation.title")),1)]),i.value&&v.value?(n(),u("div",Ea,[(n(!0),u(O,null,G([i.value,v.value],(l,r)=>(n(),u("div",{key:l.memberId,class:"flex flex-col items-center"},[e("div",Wa,[e("span",{class:F(["text-sm font-semibold",r===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(l.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",b(l.punctuation).colorClass])},o(b(l.punctuation).label),3)]),l.punctuation.total>0?(n(),u("div",{key:0,ref_for:!0,ref:c=>{r===0?S.value=c:N.value=c},style:{width:"100%",height:"200px"}},null,512)):(n(),u("div",Ha,o(t(s)("quotes.languagePreference.punctuation.empty")),1))]))),128))])):L("",!0)])]),_:1})}}}),Ga={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Ka=Y({__name:"LanguagePreferenceTab",props:{sessionId:{},timeFilter:{},enableRecordNavigation:{type:Boolean,default:!0}},setup(w){const{t:s,locale:a}=Q(),C=Ie(),i=w,v=U(null),I=U(!1),b=_(()=>v.value&&v.value.members.length>=2);async function p(){if(i.sessionId){I.value=!0;try{v.value=await $e().getLanguagePreferenceAnalysis(i.sessionId,a.value,i.timeFilter)}catch(N){console.error("[LanguagePreferenceTab] Failed to load:",N)}finally{I.value=!1}}}function S(N){i.enableRecordNavigation&&C.openChatRecordDrawer({keywords:[N]})}return X(()=>[i.sessionId,i.timeFilter],()=>p(),{immediate:!0,deep:!0}),(N,A)=>(n(),u("div",Ga,[I.value?(n(),V(t(he),{key:0,text:t(s)("quotes.languagePreference.loading")},null,8,["text"])):b.value?v.value?(n(),u(O,{key:2},[j(oa,{data:v.value,"enable-record-navigation":i.enableRecordNavigation,onWordClick:S},null,8,["data","enable-record-navigation"]),j($a,{members:v.value.members,"enable-record-navigation":i.enableRecordNavigation,onWordClick:S},null,8,["members","enable-record-navigation"]),j(Da,{members:v.value.members},null,8,["members"]),j(Va,{members:v.value.members},null,8,["members"]),j(Ja,{members:v.value.members},null,8,["members"])],64)):L("",!0):(n(),V(t(Se),{key:1,text:t(s)("quotes.languagePreference.empty")},null,8,["text"]))]))}}),Ya={class:"flex min-w-0 flex-col p-4"},Qa={class:"mb-2 min-h-8"},Xa={class:"flex items-center justify-between gap-2"},Za={class:"flex min-w-0 items-center gap-2"},es={class:"truncate text-xs font-bold tracking-wide text-gray-900 dark:text-white"},ts={key:0,class:"shrink-0"},as={class:"flex h-full flex-col"},ss={class:"grid grid-cols-2 gap-2"},ns={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},is=["title"],os={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},rs=["title"],ls={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(w){const s=Le(),a=_(()=>!!s["header-extra"]);return(C,i)=>{const v=ee;return n(),u("div",Ya,[e("div",Qa,[e("div",Xa,[e("div",Za,[e("div",{class:F(["flex h-6 w-6 shrink-0 items-center justify-center rounded-full",w.iconBgClass])},[j(v,{name:w.iconName,class:F(["h-3.5 w-3.5",w.iconColorClass])},null,8,["name","class"])],2),e("span",es,o(w.title),1)]),a.value?(n(),u("div",ts,[Be(C.$slots,"header-extra")])):L("",!0)])]),e("div",as,[e("div",ss,[e("div",ns,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:w.leftName},o(w.leftName),9,is),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",w.valueClass])},o(w.leftValue),3)]),e("div",os,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:w.rightName},o(w.rightName),9,rs),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",w.valueClass])},o(w.rightValue),3)])]),e("p",ls,o(w.description),1)])])}}}),cs={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},us={class:"space-y-6"},ds={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"},ms={class:"flex min-w-0 max-w-full flex-1 flex-col items-center justify-center lg:items-start"},ps={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},gs={class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},vs={class:"mb-4 flex min-w-0 flex-wrap items-baseline gap-2"},xs={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},hs={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},fs={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},ys={class:"flex min-w-0 max-w-full flex-wrap items-baseline gap-x-1.5 gap-y-1"},bs={class:"text-base font-medium text-gray-600 dark:text-gray-300"},ks={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},_s={class:"text-base font-medium text-gray-600 dark:text-gray-300"},ws={class:"max-w-full break-all text-xl font-bold leading-snug text-gray-900 dark:text-white"},$s={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Cs={class:"mt-8 flex w-full max-w-[320px] items-center justify-between gap-4"},Ss={class:"flex flex-1 flex-col items-center overflow-hidden"},Ms=["title"],js={class:"mt-1 text-2xl font-black text-blue-500 dark:text-blue-400"},Ps={class:"mt-0.5 text-[10px] font-medium text-gray-400"},Ts={class:"flex flex-1 flex-col items-center overflow-hidden"},Is=["title"],Rs={class:"mt-1 text-2xl font-black text-pink-500 dark:text-pink-400"},Ds={class:"mt-0.5 text-[10px] font-medium text-gray-400"},qs={key:0,class:"flex min-w-0 w-full max-w-[400px] flex-1 flex-col justify-center lg:max-w-[460px]"},As={class:"mb-2 flex items-center justify-between px-1"},zs={class:"text-sm font-bold text-gray-900 dark:text-white"},Ls={class:"text-[10px] font-medium text-gray-500 dark:text-gray-400"},Bs={class:"w-full"},Ns={class:"h-[200px] w-full"},Vs={class:"relative z-10 grid grid-cols-2 gap-3 p-4 pt-2 sm:p-6 sm:pt-2 lg:grid-cols-4"},Fs={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"},Os={class:"flex items-center gap-1.5"},Us={class:"text-[9px] font-medium uppercase tracking-widest"},Es={class:"px-4 pb-5 sm:px-6 sm:pb-6"},Ws={key:0,class:"mt-6"},Hs={class:"mb-3 text-xs font-semibold tracking-wide text-gray-400 uppercase dark:text-gray-500"},Js={class:"grid gap-x-8 gap-y-4 sm:grid-cols-3"},Gs={class:"min-w-0"},Ks={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Ys=["title"],Qs={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Xs={class:"mt-5 flex justify-center"},Zs={key:1,class:"mt-3 overflow-x-auto rounded-lg border border-gray-200/80 dark:border-white/10"},en={class:"min-w-full text-left text-sm"},tn={class:"bg-gray-50/80 text-xs text-gray-500 dark:bg-white/[0.03] dark:text-gray-400"},an={scope:"col",class:"px-4 py-2.5 font-medium"},sn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},nn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},on={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},rn={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},ln={class:"divide-y divide-gray-100 dark:divide-white/5"},cn={class:"whitespace-nowrap px-4 py-2.5 font-medium text-gray-700 dark:text-gray-300"},un={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},dn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},mn={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},pn={class:"whitespace-nowrap 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"},vn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},xn=Y({__name:"PrivateRelationshipView",props:{sessionId:{},timeFilter:{}},setup(w){const{t:s,locale:a}=Q(),C=w,i=U(null),v=U(!1),I=U(!1),b=U("activity"),p=U(!1),S=U(300);async function N(x){if(!C.sessionId)return;const g=x?.localOnly==="perseverance";g?I.value=!0:v.value=!0;try{i.value=await $e().getRelationshipStats(C.sessionId,C.timeFilter,{perseveranceThreshold:S.value})}catch(z){console.error("Failed to load relationship stats:",z)}finally{g?I.value=!1:v.value=!1}}X(()=>[C.sessionId,C.timeFilter],()=>N(),{immediate:!0,deep:!0});const A=[{label:"1m",value:60},{label:"3m",value:180},{label:"5m",value:300},{label:"10m",value:600},{label:"30m",value:1800}];function M(x){S.value!==x&&(S.value=x,N({localOnly:"perseverance"}))}const f=_({get:()=>S.value,set:x=>M(x)});function q(x){return s("views.relationship.perseverance.thresholdMinutes",{n:Math.round(x/60)})}const $=_(()=>s("views.relationship.perseverance.hintWithThreshold",{threshold:q(S.value)})),k=_(()=>i.value?.hasSessionIndex&&i.value.totalSessions>0),h=_(()=>i.value?.members[0]),d=_(()=>i.value?.members[1]),l=_(()=>{if(!h.value||!i.value)return 50;const x=(h.value.totalInitiateCount??0)+(d.value?.totalInitiateCount??0);return x===0?50:Math.round(h.value.totalInitiateCount/x*100)}),r=_(()=>{if(!i.value||i.value.months.length===0)return"";const x=[...i.value.months].sort((D,T)=>D.month.localeCompare(T.month)),g=x[0].month.replace("-","/"),z=x[x.length-1].month.replace("-","/");return g===z?g:`${g} – ${z}`}),c=_(()=>a.value.startsWith("en")?"max-w-[420px]":"max-w-[320px]"),m=_(()=>{if(!i.value||i.value.months.length===0||!h.value)return{};const x=[...i.value.months].sort((B,ae)=>B.month.localeCompare(ae.month)),g=x.map(B=>P(B.month)),z=h.value.name,D=d.value?.name??"—",T=x.map(B=>{const ae=B.members.find(de=>de.memberId===h.value.memberId);return!ae||B.totalSessions===0?50:Math.round(ae.initiateCount/B.totalSessions*100)});return{tooltip:{trigger:"axis",formatter(B){const ae=B[0],de=ae.value;return`${ae.axisValue}<br/>${z}: ${de}%<br/>${D}: ${100-de}%`}},grid:{left:40,right:20,top:20,bottom:30},xAxis:{type:"category",data:g,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 y(x){const[g,z]=x.split("-");return s("views.relationship.monthFormat",{year:g,month:Number.parseInt(z,10)})}function P(x){const g=x.split("-");return s("views.relationship.monthShortFormat",{month:Number.parseInt(g[1],10)})}function E(x){return!x||!i.value?.iceBreakers?.length?0:i.value.iceBreakers.filter(g=>g.memberId===x).reduce((g,z)=>g+z.count,0)}function J(x){if(!x||!i.value?.responseLatency?.length)return null;const g=i.value.responseLatency.find(z=>z.memberId===x);return g?g.avgResponseTime:null}function le(x){return!x||!i.value?.perseverance?.length?0:i.value.perseverance.find(z=>z.memberId===x)?.totalDoubleTexts??0}function ce(x){const g=J(x);return g!=null?Z(g):"--"}function ie(x){return i.value?.monthlyResponseLatency?.find(g=>g.month===x)?.members??[]}function _e(x){return i.value?.monthlyPerseverance?.find(g=>g.month===x)?.members??[]}function oe(x,g){return g?ie(x).find(D=>D.memberId===g)?.avgResponseTime??null:null}function ue(x,g){const z=oe(x,g);return z==null?"—":Z(z)}function se(x,g){return g?_e(x).find(D=>D.memberId===g)?.doubleTextCount??0:0}function K(x){return i.value?.iceBreakers?.filter(g=>g.month===x).reduce((g,z)=>g+z.count,0)??0}function R(x){const g=ie(x),z=g.reduce((D,T)=>D+T.responseCount,0);return z===0?null:g.reduce((D,T)=>D+T.avgResponseTime*T.responseCount,0)/z}function Z(x){const g=Math.max(0,Math.round(x));if(g<60)return s("views.relationship.responseLatency.seconds",{n:g});if(g<3600){const T=Math.floor(g/60),B=g%60;return s("views.relationship.responseLatency.minutesSeconds",{m:T,s:B})}const z=Math.floor(g/3600),D=Math.floor(g%3600/60);return D===0?s("views.relationship.responseLatency.hours",{n:z}):s("views.relationship.responseLatency.hoursMinutes",{h:z,m:D})}const te=_(()=>[...i.value?.months??[]].sort((x,g)=>x.month.localeCompare(g.month))),W=_(()=>[{label:s("views.relationship.trajectory.metrics.activity"),value:"activity"},{label:s("views.relationship.trajectory.metrics.response"),value:"response"},{label:s("views.relationship.trajectory.metrics.perseverance"),value:"perseverance"}]),ze=_(()=>{const x=te.value,g=new Set(x.map(T=>T.month.slice(0,4))).size>1,z=x.map(T=>g?T.month.replace("-","/"):P(T.month)),D={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 b.value==="activity"?{...D,series:[{name:s("views.relationship.trajectory.conversations"),type:"bar",data:x.map(T=>T.totalSessions),barMaxWidth:32,itemStyle:{borderRadius:[4,4,0,0]}},{name:s("views.relationship.trajectory.iceBreaks"),type:"line",data:x.map(T=>K(T.month)),smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:b.value==="response"?{...D,tooltip:{trigger:"axis",valueFormatter(T){return typeof T=="number"?Z(T):String(T??"—")}},yAxis:{type:"value",min:0,axisLabel:{fontSize:11,formatter(T){return Z(T)}},splitLine:{lineStyle:{type:"dashed"}}},series:[{name:h.value?.name??"—",type:"line",data:x.map(T=>oe(T.month,h.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}},{name:d.value?.name??"—",type:"line",data:x.map(T=>oe(T.month,d.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:{...D,series:[{name:h.value?.name??"—",type:"bar",data:x.map(T=>se(T.month,h.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}},{name:d.value?.name??"—",type:"bar",data:x.map(T=>se(T.month,d.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}}]}}),Me=_(()=>{const x=te.value.reduce((D,T)=>!D||T.totalSessions>D.totalSessions?T:D,null),g=te.value.map(D=>({month:D.month,count:K(D.month)})).filter(D=>D.count>0).sort((D,T)=>T.count-D.count)[0],z=te.value.map(D=>({month:D.month,value:R(D.month)})).filter(D=>D.value!=null).sort((D,T)=>D.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:s("views.relationship.trajectory.activityPeak"),month:y(x.month),detail:s("views.relationship.trajectory.activityPeakDetail",{count:x.totalSessions})}:null,g?{icon:"i-heroicons-fire-solid",iconClass:"bg-pink-50 text-pink-500 dark:bg-pink-500/10 dark:text-pink-400",title:s("views.relationship.trajectory.iceBreakPeak"),month:y(g.month),detail:s("views.relationship.trajectory.iceBreakPeakDetail",{count:g.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:s("views.relationship.trajectory.fastestResponse"),month:y(z.month),detail:s("views.relationship.trajectory.fastestResponseDetail",{duration:Z(z.value)})}:null].filter(D=>D!=null)});return(x,g)=>{const z=vt,D=ee,T=Re;return n(),u("div",{class:F(v.value?"h-full":"")},[v.value?(n(),V(t(he),{key:0,variant:"page",text:t(s)("common.loading")},null,8,["text"])):(n(),u("div",cs,[i.value&&!k.value?(n(),V(t(Se),{key:0,icon:"i-heroicons-heart",title:t(s)("views.relationship.empty.title"),description:t(s)("views.relationship.empty.description")},null,8,["title","description"])):i.value&&k.value?(n(),u(O,{key:1},[e("div",us,[j(t(Ce),{id:"shareable-poster"},{default:H(()=>[e("div",ds,[e("div",ms,[e("div",{class:F(["flex w-fit min-w-0 flex-col items-start text-left",c.value])},[e("div",ps,[e("p",gs,o(r.value),1),e("div",vs,[e("span",xs,o(t(s)("views.relationship.hero.totalSessionsPrefix")),1),e("span",hs,o(i.value.totalSessions),1),e("span",fs,o(t(s)("views.relationship.hero.totalSessionsSuffix")),1)]),e("div",ys,[e("span",bs,o(t(s)("views.relationship.hero.initiativePrefix")),1),e("span",ks,o(l.value>=50?l.value:100-l.value)+"% ",1),e("span",_s,o(t(s)("views.relationship.hero.initiativeByPrefix")),1),e("span",ws,o(l.value>=50?h.value?.name:d.value?.name),1),e("span",$s,o(t(s)("views.relationship.hero.initiativeBySuffix")),1)])]),e("div",Cs,[e("div",Ss,[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,Ms),e("div",js,o(h.value?.totalInitiateCount),1),e("div",Ps,o(t(s)("views.relationship.hero.initiateTimes")),1)]),g[3]||(g[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",Ts,[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,Is),e("div",Rs,o(d.value?.totalInitiateCount),1),e("div",Ds,o(t(s)("views.relationship.hero.initiateTimes")),1)])])],2)]),i.value.months.length>=2?(n(),u("div",qs,[e("div",As,[e("span",zs,o(t(s)("views.relationship.trend.title")),1),e("span",Ls,o(t(s)("views.relationship.trend.hint",{name:h.value?.name??""})),1)]),e("div",Bs,[e("div",Ns,[j(t(Pe),{option:m.value,height:200},null,8,["option"])])])])):L("",!0)]),e("div",Vs,[j(me,{title:t(s)("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(s)("views.relationship.closerHint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(s)("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":E(h.value?.memberId),"right-name":d.value?.name,"right-value":E(d.value?.memberId),"value-class":"text-lg text-pink-600 dark:text-pink-400",description:t(s)("views.relationship.iceBreaker.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(s)("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(s)("views.relationship.responseLatency.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(s)("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":le(h.value?.memberId),"right-name":d.value?.name,"right-value":le(d.value?.memberId),"value-class":"text-lg text-purple-600 dark:text-purple-400",description:$.value},{"header-extra":H(()=>[j(z,{modelValue:f.value,"onUpdate:modelValue":g[0]||(g[0]=B=>f.value=B),items:A,"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",Fs,[e("div",Os,[j(D,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),g[4]||(g[4]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Us,o(t(s)("views.relationship.watermarkReport")),1)])]),_:1})]),j(t(re),{title:t(s)("views.relationship.trajectory.title"),description:t(s)("views.relationship.trajectory.description"),"show-divider":!1},{headerRight:H(()=>[j(t(De),{modelValue:b.value,"onUpdate:modelValue":g[1]||(g[1]=B=>b.value=B),items:W.value,size:"sm",class:"max-w-[58vw] sm:max-w-none"},null,8,["modelValue","items"])]),default:H(()=>[e("div",Es,[j(t(Pe),{option:ze.value,height:280},null,8,["option"]),Me.value.length>0?(n(),u("div",Ws,[e("p",Hs,o(t(s)("views.relationship.trajectory.keyMoments")),1),e("div",Js,[(n(!0),u(O,null,G(Me.value,B=>(n(),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(D,{name:B.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Gs,[e("p",Ks,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,Ys),e("p",Qs,o(B.detail),1)])]))),128))])])):L("",!0),e("div",Xs,[j(T,{color:"neutral",variant:"ghost",size:"sm",icon:p.value?"i-heroicons-chevron-up":"i-heroicons-chevron-down",onClick:g[2]||(g[2]=B=>p.value=!p.value)},{default:H(()=>[we(o(p.value?t(s)("views.relationship.trajectory.hideAll"):t(s)("views.relationship.trajectory.showAll")),1)]),_:1},8,["icon"])]),p.value?(n(),u("div",Zs,[e("table",en,[e("thead",tn,[e("tr",null,[e("th",an,o(t(s)("views.relationship.trajectory.month")),1),b.value==="activity"?(n(),u(O,{key:0},[e("th",sn,o(t(s)("views.relationship.trajectory.conversations")),1),e("th",nn,o(t(s)("views.relationship.trajectory.iceBreaks")),1)],64)):(n(),u(O,{key:1},[e("th",on,o(h.value?.name),1),e("th",rn,o(d.value?.name),1)],64))])]),e("tbody",ln,[(n(!0),u(O,null,G([...te.value].reverse(),B=>(n(),u("tr",{key:B.month},[e("td",cn,o(y(B.month)),1),b.value==="activity"?(n(),u(O,{key:0},[e("td",un,o(B.totalSessions),1),e("td",dn,o(K(B.month)),1)],64)):b.value==="response"?(n(),u(O,{key:1},[e("td",mn,o(ue(B.month,h.value?.memberId)),1),e("td",pn,o(ue(B.month,d.value?.memberId)),1)],64)):(n(),u(O,{key:2},[e("td",gn,o(se(B.month,h.value?.memberId)),1),e("td",vn,o(se(B.month,d.value?.memberId)),1)],64))]))),128))])])])):L("",!0)])]),_:1},8,["title","description"])],64)):L("",!0)]))],2)}}}),hn={class:"relative z-10 px-6 pt-8 pb-5 sm:px-8 sm:pt-10"},fn={class:"flex flex-col gap-8 lg:flex-row lg:items-center lg:justify-between lg:gap-12"},yn={class:"min-w-0 flex-1"},bn={class:"text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},kn={class:"mt-3 flex flex-wrap items-baseline gap-x-2 gap-y-1"},_n={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},wn={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"},Cn={class:"w-full min-w-0 lg:max-w-[380px]"},Sn={class:"mb-3 flex items-center justify-between gap-4"},Mn={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-gray-300"},jn={class:"text-[10px] font-medium text-gray-400 dark:text-gray-500"},Pn=["title"],Tn={class:"mt-2 flex justify-between text-[10px] font-medium text-gray-400 dark:text-gray-500"},In={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"},Rn={class:"min-w-0"},Dn={class:"mt-1 truncate text-[10px] font-semibold text-gray-600 dark:text-gray-300"},qn={class:"mt-0.5 line-clamp-2 text-[9px] leading-4 text-gray-400 dark:text-gray-500"},An={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"},zn={class:"flex items-center gap-1.5"},Ln={class:"text-[9px] font-medium uppercase tracking-widest"},Bn=Y({__name:"JourneyReportCard",props:{stats:{},filtered:{type:Boolean}},setup(w){const s=w,{t:a,locale:C}=Q(),i=_(()=>new Intl.NumberFormat(C.value)),v=_(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short",day:"numeric"})),I=_(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short"})),b=_(()=>s.stats.range),p=_(()=>Math.max(...s.stats.months.map(d=>d.messageCount),1)),S=_(()=>({gridTemplateColumns:`repeat(${s.stats.months.length}, minmax(2px, 1fr))`,gap:s.stats.months.length>96?"1px":"2px"})),N=_(()=>{const d=b.value.spanDays;if(d<30)return a("views.journey.duration.days",{count:d});const l=Math.floor(d/365),r=Math.floor(d%365/30);return l>0?r>0?a("views.journey.duration.yearsMonths",{years:l,months:r}):a("views.journey.duration.years",{count:l}):a("views.journey.duration.months",{count:Math.max(1,r)})}),A=_(()=>[{icon:"i-heroicons-sparkles-solid",colorClass:"text-pink-500 dark:text-pink-400",label:a("views.journey.metrics.peakMonth"),value:s.stats.peakMonth?q(s.stats.peakMonth.month):"—",subtext:s.stats.peakMonth?a("views.journey.metrics.messagesAndDays",{messages:M(s.stats.peakMonth.messageCount),days:M(s.stats.peakMonth.activeDays)}):"—"},{icon:"i-heroicons-calendar-days-solid",colorClass:"text-indigo-500 dark:text-indigo-400",label:a("views.journey.metrics.activeMonths"),value:a("views.journey.metrics.monthsRatio",{active:M(b.value.activeMonths),total:M(b.value.spanMonths)}),subtext:a("views.journey.metrics.activeDays",{count:M(b.value.activeDays)})},{icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-blue-500 dark:text-blue-400",label:a("views.journey.metrics.longestConversation"),value:s.stats.longestSegment?$(s.stats.longestSegment.durationSeconds):"—",subtext:s.stats.longestSegment?a("views.journey.metrics.conversationDetail",{date:f(s.stats.longestSegment.startTs),count:M(s.stats.longestSegment.messageCount)}):a("views.journey.metrics.noIndex")},{icon:"i-heroicons-moon-solid",colorClass:"text-violet-500 dark:text-violet-400",label:a("views.journey.metrics.longestSilence"),value:s.stats.longestSilence?$(s.stats.longestSilence.durationSeconds):"—",subtext:s.stats.longestSilence?s.stats.longestSilence.reopenedBy?a("views.journey.metrics.reopenedBy",{name:s.stats.longestSilence.reopenedBy.name}):a("views.journey.metrics.reopened"):s.stats.hasSessionIndex?a("views.journey.metrics.noSilence"):a("views.journey.metrics.noIndex")}]);function M(d){return i.value.format(d)}function f(d){return v.value.format(d*1e3)}function q(d){const[l,r]=d.split("-").map(Number);return I.value.format(new Date(l,r-1,1))}function $(d){const l=Math.max(0,Math.round(d/60));if(l<1)return a("views.journey.duration.lessThanMinute");if(l<60)return a("views.journey.duration.minutes",{count:l});const r=Math.floor(l/60);if(r<24){const y=l%60;return y>0?a("views.journey.duration.hoursMinutes",{hours:r,minutes:y}):a("views.journey.duration.hours",{count:r})}const c=Math.floor(r/24),m=r%24;return m>0?a("views.journey.duration.daysHours",{days:c,hours:m}):a("views.journey.duration.days",{count:c})}function k(d){if(d===0)return"4px";const l=Math.sqrt(d/p.value);return`${Math.round(10+l*50)}px`}function h(d,l){return a("views.journey.hero.monthTooltip",{month:q(d),count:M(l)})}return(d,l)=>{const r=ee;return n(),V(t(Ce),null,{default:H(()=>[e("div",hn,[e("div",fn,[e("div",yn,[e("p",bn,o(f(b.value.firstMessageTs))+" – "+o(f(b.value.lastMessageTs)),1),e("div",kn,[e("span",_n,o(t(a)("views.journey.hero.prefix")),1),e("span",wn,o(N.value),1)]),e("p",$n,o(t(a)(w.filtered?"views.journey.hero.filteredSummary":"views.journey.hero.summary",{activeMonths:M(b.value.activeMonths),activeDays:M(b.value.activeDays)})),1)]),e("div",Cn,[e("div",Sn,[e("p",Mn,o(t(a)("views.journey.hero.footprint")),1),e("p",jn,o(t(a)("views.journey.hero.monthCount",{count:M(b.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:pe(S.value)},[(n(!0),u(O,null,G(w.stats.months,c=>(n(),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:pe({height:k(c.messageCount)}),title:h(c.month,c.messageCount)},null,14,Pn))),128))],4),e("div",Tn,[e("span",null,o(q(w.stats.months[0].month)),1),e("span",null,o(q(w.stats.months[w.stats.months.length-1].month)),1)])])])]),e("div",In,[(n(!0),u(O,null,G(A.value,c=>(n(),u("div",{key:c.label,class:"flex min-w-0 items-start gap-2.5 px-2 py-1"},[j(r,{name:c.icon,class:F(["mt-0.5 h-4 w-4 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Rn,[e("p",{class:F(["truncate text-sm font-black leading-tight tabular-nums",c.colorClass])},o(c.value),3),e("p",Dn,o(c.label),1),e("p",qn,o(c.subtext),1)])]))),128))]),e("div",An,[e("div",zn,[j(r,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),l[0]||(l[0]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Ln,o(t(a)("views.journey.watermark")),1)])]),_:1})}}}),Nn={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Vn={class:"grid gap-4 px-5 pb-6 sm:grid-cols-2 sm:px-6 lg:grid-cols-3"},Fn={class:"min-w-0"},On={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Un={class:"mt-0.5 text-sm font-semibold text-gray-900 dark:text-white"},En={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Wn={class:"space-y-3 px-5 pb-5 sm:px-6 sm:pb-6"},Hn={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Jn={class:"min-w-0"},Gn={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"},Yn={key:0,class:"text-left sm:min-w-28 sm:text-right"},Qn={class:"text-xs font-semibold text-gray-700 dark:text-gray-300"},Xn={class:"mt-0.5 text-[10px] text-gray-400 dark:text-gray-500"},Zn=Y({__name:"JourneyView",props:{sessionId:{},timeFilter:{},timeRange:{}},setup(w){const s=w,{t:a,locale:C}=Q(),i=U(null),v=U(!1),I=U(!1),b=_(()=>new Intl.NumberFormat(C.value)),p=_(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short",day:"numeric"})),S=_(()=>new Intl.DateTimeFormat(C.value,{year:"numeric",month:"short"})),N=_(()=>s.timeRange?s.timeFilter?.startTs!=null&&s.timeFilter.startTs>s.timeRange.start||s.timeFilter?.endTs!=null&&s.timeFilter.endTs<s.timeRange.end:!1),A=_(()=>i.value?.range!=null),M=_(()=>Math.max(...i.value?.years.map(c=>c.messageCount)??[],1)),f=_(()=>{if(!i.value?.range)return[];const c=[{id:"start",order:0,timestamp:i.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:a("views.journey.milestones.start"),date:k(i.value.range.firstMessageTs),detail:a("views.journey.milestones.startDetail")}];return i.value.peakMonth&&c.push({id:"peak",order:1,timestamp:d(i.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:a("views.journey.milestones.peak"),date:h(i.value.peakMonth.month),detail:a("views.journey.milestones.peakDetail",{count:$(i.value.peakMonth.messageCount)})}),i.value.longestSegment&&c.push({id:"conversation",order:2,timestamp:i.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:a("views.journey.milestones.longestConversation"),date:k(i.value.longestSegment.startTs),detail:a("views.journey.milestones.conversationDetail",{duration:l(i.value.longestSegment.durationSeconds),count:$(i.value.longestSegment.messageCount)})}),i.value.longestSilence&&c.push({id:"silence",order:3,timestamp:i.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:a("views.journey.milestones.longestSilence"),date:a("views.journey.milestones.silenceRange",{start:k(i.value.longestSilence.startTs),end:k(i.value.longestSilence.endTs)}),detail:i.value.longestSilence.reopenedBy?a("views.journey.milestones.silenceDetailWithMember",{duration:l(i.value.longestSilence.durationSeconds),name:i.value.longestSilence.reopenedBy.name}):a("views.journey.milestones.silenceDetail",{duration:l(i.value.longestSilence.durationSeconds)})}),c.push({id:"end",order:4,timestamp:i.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:a("views.journey.milestones.end"),date:k(i.value.range.lastMessageTs),detail:a(N.value?"views.journey.milestones.filteredEndDetail":"views.journey.milestones.endDetail")}),c.sort((m,y)=>m.timestamp-y.timestamp||m.order-y.order)});X(()=>[s.sessionId,s.timeFilter],()=>q(),{immediate:!0,deep:!0});async function q(){if(s.sessionId){v.value=!0,I.value=!1;try{i.value=await $e().getJourneyStats(s.sessionId,s.timeFilter)}catch(c){i.value=null,I.value=!0;const m=c instanceof Error?c.message:String(c);console.error("Failed to load journey stats:",c),Ne(`Journey stats load failed: ${m}`,c instanceof Error?c.stack:void 0)}finally{v.value=!1}}}function $(c){return b.value.format(c)}function k(c){return p.value.format(c*1e3)}function h(c){const[m,y]=c.split("-").map(Number);return S.value.format(new Date(m,y-1,1))}function d(c){const[m,y]=c.split("-").map(Number);return Math.floor(new Date(m,y-1,1).getTime()/1e3)}function l(c){const m=Math.max(0,Math.round(c/60));if(m<1)return a("views.journey.duration.lessThanMinute");if(m<60)return a("views.journey.duration.minutes",{count:m});const y=Math.floor(m/60);if(y<24){const J=m%60;return J>0?a("views.journey.duration.hoursMinutes",{hours:y,minutes:J}):a("views.journey.duration.hours",{count:y})}const P=Math.floor(y/24),E=y%24;return E>0?a("views.journey.duration.daysHours",{days:P,hours:E}):a("views.journey.duration.days",{count:P})}function r(c){return c===0?"0%":`${Math.max(4,Math.round(c/M.value*100))}%`}return(c,m)=>{const y=ee;return n(),u("div",{class:F(v.value?"h-full":"")},[v.value?(n(),V(t(he),{key:0,variant:"page",text:t(a)("common.loading")},null,8,["text"])):(n(),u("div",Nn,[A.value?i.value?(n(),u(O,{key:1},[j(Bn,{stats:i.value,filtered:N.value},null,8,["stats","filtered"]),j(t(re),{title:t(a)("views.journey.milestones.title"),description:t(a)("views.journey.milestones.description"),"show-divider":!1},{default:H(()=>[e("div",Vn,[(n(!0),u(O,null,G(f.value,P=>(n(),u("div",{key:P.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",P.iconClass])},[j(y,{name:P.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Fn,[e("p",On,o(P.title),1),e("p",Un,o(P.date),1),e("p",En,o(P.detail),1)])]))),128))])]),_:1},8,["title","description"]),j(t(re),{title:t(a)("views.journey.years.title"),description:t(a)("views.journey.years.description"),"show-divider":!1},{default:H(()=>[e("div",Wn,[(n(!0),u(O,null,G(i.value.years,P=>(n(),u("div",{key:P.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",Hn,o(P.year),1),e("div",Jn,[e("div",Gn,[e("div",{class:"h-full rounded-full bg-pink-400 dark:bg-pink-400/80",style:pe({width:r(P.messageCount)})},null,4)]),e("p",Kn,[P.messageCount>0?(n(),u(O,{key:0},[we(o(t(a)("views.journey.years.summary",{messages:$(P.messageCount),days:$(P.activeDays),months:$(P.activeMonths)})),1)],64)):(n(),u(O,{key:1},[we(o(t(a)("views.journey.years.quiet")),1)],64))])]),P.messageCount>0?(n(),u("div",Yn,[e("p",Qn,o(h(P.peakMonth)),1),e("p",Xn,o(t(a)("views.journey.years.peak",{count:$(P.peakMonthMessageCount)})),1)])):L("",!0)]))),128))])]),_:1},8,["title","description"])],64)):L("",!0):(n(),V(t(Se),{key:0,icon:"🗓️",text:t(a)(I.value?"views.journey.loadError":"views.journey.empty"),padding:"lg"},null,8,["text"]))]))],2)}}}),ei={class:"main-content mx-auto max-w-[920px] space-y-4 p-4 sm:space-y-6 sm:p-6"},ti={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},ai={class:"p-3 sm:p-5"},si={class:"p-3 sm:p-5"},ni=Y({__name:"PrivateChatOverview",props:{session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(w){const{t:s}=Q(),a=w,{dailyChartData:C}=Ze(()=>a.dailyActivity),i=_(()=>({labels:a.messageTypes.map(b=>bt(b.type,s)),values:a.messageTypes.map(b=>b.count)})),v=_(()=>{if(a.memberActivity.length<2)return null;const p=[...a.memberActivity].sort((N,A)=>A.messageCount-N.messageCount).slice(0,2),S=p[0].messageCount+p[1].messageCount;return{member1:{name:p[0].name,avatar:p[0].avatar,count:p[0].messageCount,percentage:S>0?Math.round(p[0].messageCount/S*100):0},member2:{name:p[1].name,avatar:p[1].avatar,count:p[1].messageCount,percentage:S>0?Math.round(p[1].messageCount/S*100):0},total:S}}),I=_(()=>v.value?{labels:[v.value.member1.name,v.value.member2.name],values:[v.value.member1.count,v.value.member2.count]}:{labels:[],values:[]});return(b,p)=>(n(),u("div",ei,[j(Qe,{session:w.session,"daily-activity":w.dailyActivity,"message-types":w.messageTypes,"hourly-activity":w.hourlyActivity,"time-range":w.timeRange,"filtered-message-count":w.filteredMessageCount,"filtered-member-count":w.filteredMemberCount,"time-filter":w.timeFilter},null,8,["session","daily-activity","message-types","hourly-activity","time-range","filtered-message-count","filtered-member-count","time-filter"]),e("div",ti,[j(t(re),{title:t(s)("analysis.overview.messageTypeDistribution"),"show-divider":!1},{default:H(()=>[e("div",ai,[j(t(Te),{data:i.value,height:280},null,8,["data"])])]),_:1},8,["title"]),v.value?(n(),V(t(re),{key:0,title:t(s)("analysis.overview.memberComparison"),"show-divider":!1},{default:H(()=>[e("div",si,[j(t(Te),{data:I.value,height:280},null,8,["data"])])]),_:1},8,["title"])):L("",!0)]),j(Xe,{"daily-activity":w.dailyActivity,"daily-chart-data":t(C)},null,8,["daily-activity","daily-chart-data"])]))}}),ii={class:"flex h-full flex-col"},oi={class:"min-h-0 flex-1 overflow-auto"},ri=Y({__name:"PrivateChatInsights",props:{sessionId:{},session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(w){const{t:s}=Q(),a=w,C=_(()=>[{id:"overview",label:s("analysis.tabs.overview"),icon:"i-heroicons-squares-2x2"},{id:"relationship",label:s("analysis.subTabs.insights.relationship"),icon:"i-heroicons-heart"},{id:"journey",label:s("analysis.subTabs.insights.journey"),icon:"i-heroicons-map"},{id:"type-analysis",label:s("analysis.subTabs.insights.typeAnalysis"),icon:"i-heroicons-chart-pie"},{id:"time-analysis",label:s("analysis.subTabs.insights.timeAnalysis"),icon:"i-heroicons-clock"},{id:"topic",label:s("analysis.subTabs.insights.topic"),icon:"i-heroicons-cloud"},{id:"language-preference",label:s("analysis.subTabs.insights.languagePreference"),icon:"i-heroicons-language"}]),i=U("overview"),v=U(null),I=_(()=>({...a.timeFilter,memberId:v.value}));return(b,p)=>(n(),u("div",ii,[j(t(gt),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=S=>i.value=S),items:C.value,"persist-key":"privateInsightsTab"},{right:H(()=>[i.value==="type-analysis"||i.value==="time-analysis"?(n(),V(et,{key:0,modelValue:v.value,"onUpdate:modelValue":p[0]||(p[0]=S=>v.value=S),"session-id":a.sessionId},null,8,["modelValue","session-id"])):L("",!0)]),_:1},8,["modelValue","items"]),e("div",oi,[j(t(tt),{"active-key":i.value},{default:H(({viewKey:S})=>[S==="overview"?(n(),V(ni,{key:0,session:a.session,"member-activity":a.memberActivity,"message-types":a.messageTypes,"hourly-activity":a.hourlyActivity,"daily-activity":a.dailyActivity,"time-range":a.timeRange,"filtered-message-count":a.filteredMessageCount,"filtered-member-count":a.filteredMemberCount,"time-filter":a.timeFilter},null,8,["session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):S==="type-analysis"?(n(),V(at,{key:1,"session-id":a.sessionId,"session-name":a.session.name,"time-filter":I.value},null,8,["session-id","session-name","time-filter"])):S==="time-analysis"?(n(),V(st,{key:2,"session-id":a.sessionId,"session-name":a.session.name,"time-filter":I.value},null,8,["session-id","session-name","time-filter"])):S==="relationship"?(n(),V(xn,{key:3,"session-id":a.sessionId,"time-filter":a.timeFilter},null,8,["session-id","time-filter"])):S==="journey"?(n(),V(Zn,{key:4,"session-id":a.sessionId,"time-filter":a.timeFilter,"time-range":a.timeRange},null,8,["session-id","time-filter","time-range"])):S==="topic"?(n(),V(t(nt),{key:5,"session-id":a.sessionId,"time-filter":a.timeFilter,"show-shared-topics":!0},null,8,["session-id","time-filter"])):S==="language-preference"?(n(),V(t(Ka),{key:6,"session-id":a.sessionId,"time-filter":a.timeFilter},null,8,["session-id","time-filter"])):L("",!0)]),_:1},8,["active-key"])])]))}}),li={class:"relative flex h-full flex-col dark:bg-page-dark",style:{"padding-top":"var(--titlebar-area-height)"}},ci=["aria-label"],ui={class:"relative flex-1 overflow-y-auto"},di={class:"h-full"},mi={key:2,class:"flex h-full items-center justify-center"},pi={class:"text-gray-500"},gi={class:"flex h-full flex-col overflow-hidden bg-white dark:bg-page-dark"},vi={class:"flex flex-none items-center justify-between border-b border-gray-200 px-5 py-3 dark:border-gray-700"},xi={class:"text-lg font-semibold text-gray-900 dark:text-white"},hi={class:"text-sm text-gray-500 dark:text-gray-400"},fi={class:"flex-1 overflow-hidden"},yi=Y({__name:"index",setup(w){const s=He(()=>Ge(()=>import("./MessageExportModal-JqGZ-iLr.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),{t:a}=Q(),C=Ve(),i=Fe(),v=Oe(),I=Ie(),b=Ue(),{currentSessionId:p}=Ee(v),S=U(!1),N=U(!1),A=U(!1),M=U(!1),f=U(!1);function q(){I.openChatRecordDrawer({})}const $=[{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:"memory",labelKey:"analysis.tabs.memory",icon:"i-heroicons-light-bulb"},{id:"more",labelKey:"analysis.tabs.more",icon:"i-heroicons-squares-2x2"}],{activeTab:k,isLoading:h,isInitialLoad:d,isSessionSwitching:l,session:r,memberActivity:c,hourlyActivity:m,dailyActivity:y,messageTypes:P,timeRangeValue:E,fullTimeRange:J,timeFilter:le,initialTimeState:ce,invalidateAnalysisData:ie,handleTimeRangeInitialized:_e}=it({route:C,router:i,currentSessionId:p,selectSession:v.selectSession,defaultTab:b.defaultSessionTab,validTabIds:$.map(K=>K.id)});Ke("session-switch-loading",l);const oe=_(()=>c.value.reduce((K,R)=>K+R.messageCount,0)),ue=_(()=>c.value.filter(K=>K.messageCount>0).length),se=_(()=>{if(!r.value)return null;if(r.value.memberAvatar)return r.value.memberAvatar;if(c.value.length===0)return null;if(r.value.ownerId){const R=c.value.find(Z=>Z.platformId!==r.value?.ownerId);if(R?.avatar)return R.avatar}const K=c.value.find(R=>R.name===r.value?.name);return K?.avatar?K.avatar:(c.value.length,null)});return(K,R)=>{const Z=Re,te=Je;return n(),u("div",li,[t(l)?(n(),u("div",{key:0,"data-testid":"private-chat-switch-loading",class:"absolute inset-0 z-20 flex cursor-wait items-center justify-center bg-page-bg dark:bg-page-dark",style:{paddingTop:"var(--titlebar-area-height)"},role:"status","aria-live":"polite","aria-label":t(a)("common.loading")},[j(t(xt))],8,ci)):L("",!0),t(r)?(n(),u(O,{key:1},[j(ot,{"active-tab":t(k),"onUpdate:activeTab":R[0]||(R[0]=W=>je(k)?k.value=W:null),"time-range-value":t(E),"onUpdate:timeRangeValue":R[1]||(R[1]=W=>je(E)?E.value=W:null),title:t(r).name,avatar:se.value,icon:"i-heroicons-user","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",tabs:$,"current-session-id":t(p),"initial-time-state":t(ce),onOpenIncrementalImport:R[2]||(R[2]=W=>A.value=!0),onOpenMemberManagement:R[3]||(R[3]=W=>f.value=!0),onOpenChatRecord:q,"onUpdate:fullRange":R[4]||(R[4]=W=>J.value=W),onTimeRangeInitialized:t(_e)},null,8,["active-tab","time-range-value","title","avatar","current-session-id","initial-time-state","onTimeRangeInitialized"]),e("div",ui,[t(h)&&!t(l)?(n(),V(t(he),{key:0,variant:"overlay",text:t(a)("common.loading")},null,8,["text"])):L("",!0),e("div",di,[j(We,{name:"tab-slide",mode:"out-in"},{default:H(()=>[t(k)==="insights"?(n(),V(ri,{key:"insights-"+t(p),"session-id":t(p),session:t(r),"member-activity":t(c),"message-types":t(P),"hourly-activity":t(m),"daily-activity":t(y),"time-range":t(J),"filtered-message-count":oe.value,"filtered-member-count":ue.value,"time-filter":t(le)},null,8,["session-id","session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):t(k)==="ai-chat"?(n(),V(t(rt),{key:"ai-chat-"+t(p),"session-id":t(p),"session-name":t(r).name,"chat-type":"private"},null,8,["session-id","session-name"])):t(k)==="memory"?(n(),V(lt,{key:"memory-"+t(p),"session-id":t(p),"session-name":t(r).name},null,8,["session-id","session-name"])):t(k)==="more"?(n(),V(ct,{key:"more-"+t(p),"session-id":t(p),"chat-type":"private"},null,8,["session-id"])):L("",!0)]),_:1})])]),j(ut,{onOpenIncrementalImport:R[5]||(R[5]=W=>A.value=!0),onOpenSemanticIndex:R[6]||(R[6]=W=>S.value=!0),onOpenMemberManagement:R[7]||(R[7]=W=>f.value=!0),onOpenChatRecord:q,onOpenMessageExport:R[8]||(R[8]=W=>M.value=!0)})],64)):t(d)?L("",!0):(n(),u("div",mi,[e("p",pi,o(t(a)("analysis.privateChat.loadError")),1)])),t(p)&&t(r)?(n(),V(dt,{key:3,modelValue:S.value,"onUpdate:modelValue":R[9]||(R[9]=W=>S.value=W),"session-id":t(p),"message-count":t(r).messageCount},null,8,["modelValue","session-id","message-count"])):L("",!0),t(p)&&t(r)?(n(),V(kt,{key:4,modelValue:N.value,"onUpdate:modelValue":R[10]||(R[10]=W=>N.value=W),"session-id":t(p),"chat-type":"private","auto-check":""},null,8,["modelValue","session-id"])):L("",!0),t(p)&&t(r)?(n(),V(mt,{key:5,modelValue:A.value,"onUpdate:modelValue":R[11]||(R[11]=W=>A.value=W),"session-id":t(p),"session-name":t(r).name,onImported:R[12]||(R[12]=()=>{t(ie)(),t(v).loadSessions()})},null,8,["modelValue","session-id","session-name"])):L("",!0),t(p)?(n(),V(t(s),{key:6,modelValue:M.value,"onUpdate:modelValue":R[13]||(R[13]=W=>M.value=W)},null,8,["modelValue"])):L("",!0),t(p)?(n(),V(te,{key:7,open:f.value,"onUpdate:open":R[15]||(R[15]=W=>f.value=W),ui:{content:"max-w-6xl h-[85vh]"}},{content:H(()=>[e("div",gi,[e("div",vi,[e("div",null,[e("h2",xi,o(t(a)("analysis.tooltip.memberManagement")),1),e("p",hi,o(t(a)("members.private.description",{count:t(r)?.memberCount??0})),1)]),j(Z,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:R[14]||(R[14]=W=>f.value=!1)})]),e("div",fi,[j(pt,{"session-id":t(p),"show-header":!1,"chat-type":"private",onDataChanged:t(ie)},null,8,["session-id","onDataChanged"])])])]),_:1},8,["open"])):L("",!0)])}}}),io=Ye(yi,[["__scopeId","data-v-6b7cb7f9"]]);export{io as default};
@@ -0,0 +1 @@
1
+ import{d as k,a6 as b,aD as y,o as s,c as n,z as l,w as o,g as e,F as u,j as v,l as r,a as d,p,f as _,a8 as w,n as C,a9 as B,aE as V,k as z,aJ as N,e as m,ah as P}from"./index-DnpnIyle.js";import{P as D}from"./PageHeader-D4up77TB.js";import{_ as H}from"./PageTabs.vue_vue_type_script_setup_true_lang-DYQRFk9s.js";import{p as I}from"./people-page-header-Cx5r9Bk2.js";import"./vendor-snapdom--nZvo8Sg.js";const E={class:"flex h-full flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100",style:{"padding-top":"var(--titlebar-area-height)"}},F={key:0,class:"hidden items-center gap-5 text-[11px] sm:flex"},R={key:0,class:"h-3 w-px bg-gray-250 dark:bg-white/10"},S={class:"flex items-center gap-1.5"},T={class:"text-gray-400 dark:text-gray-500"},$={class:"font-mono font-bold text-gray-900 dark:text-white"},j=k({__name:"index",setup(J){const{t:a}=b(),h=y(),c=m(()=>h.name==="people-relationships"?"relationships":"contacts"),g=m(()=>[{id:"contacts",label:a("contacts.title"),icon:"i-lucide-users",to:{name:"people-contacts"}},{id:"relationships",label:a("relationships.title"),icon:"i-lucide-git-fork",to:{name:"people-relationships"}}]),f=m(()=>c.value==="relationships"?{title:a("layout.relationships"),description:a("relationships.subtitle"),icon:"i-lucide-git-fork",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm"}:{title:a("layout.relationships"),description:a("contacts.subtitle",{count:0}),icon:"i-lucide-users",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm"}),{header:t}=I(f);return(L,U)=>{const x=w;return s(),n("div",E,[l(D,{title:e(t).title,description:e(t).description,size:"compact",icon:e(t).icon,"icon-class":e(t).iconClass},{actions:o(()=>[e(t).action?(s(),_(x,{key:0,icon:e(t).action.icon,color:"primary",variant:"soft",size:"sm",class:C(["rounded-xl",e(t).action.class]),loading:e(t).action.loading,disabled:e(t).action.disabled,onClick:e(t).action.onClick},{default:o(()=>[B(p(e(t).action.label),1)]),_:1},8,["icon","class","loading","disabled","onClick"])):r("",!0)]),default:o(()=>[l(e(H),{class:"mt-3 pb-1.5","model-value":c.value,items:g.value,"aria-label":e(a)("relationships.nav")},{right:o(()=>[e(t).stats?.length?(s(),n("div",F,[(s(!0),n(u,null,v(e(t).stats,i=>(s(),n(u,{key:i.id},[i.dividerBefore?(s(),n("div",R)):r("",!0),d("div",S,[d("span",T,p(i.label),1),d("span",$,p(i.value),1)])],64))),128))])):r("",!0)]),_:1},8,["model-value","items","aria-label"])]),_:1},8,["title","description","icon","icon-class"]),l(e(N),null,{default:o(({Component:i})=>[l(V,{name:"people-tab-slide",mode:"out-in"},{default:o(()=>[(s(),_(z(i),{key:c.value}))]),_:2},1024)]),_:1})])}}}),O=P(j,[["__scopeId","data-v-06450f37"]]);export{O as default};
@@ -0,0 +1 @@
1
+ import{d as ke,a6 as be,o as c,f as re,w as T,c as f,a,p as o,g as r,z as y,a8 as _e,a7 as Se,F as q,j as he,l as N,a9 as Z,aE as Tt,e as u,ah as De,L as Lt,J as $t,ay as It,bg as Ft,K as O,x as Pt,y as Mt,aq as zt,a1 as At,O as X,n as U,bh as Et,b,C as Be,bv as Nt}from"./index-DnpnIyle.js";import{_ as Bt}from"./Tabs-RWKHwtfM.js";import{u as jt}from"./useToast-CCPBE-Sy.js";import{_ as Vt}from"./ThemeCard.vue_vue_type_script_setup_true_lang-ndsa3-aT.js";import{_ as Dt}from"./LoadingState.vue_vue_type_script_setup_true_lang-CoeQsaiL.js";import{_ as Gt}from"./SectionTabs.vue_vue_type_script_setup_true_lang-BlAje3Tf.js";import{u as Ot}from"./people-page-header-Cx5r9Bk2.js";import"./vendor-snapdom--nZvo8Sg.js";import"./RovingFocusItem-DHaiTb4j.js";const Ut={key:0,class:"flex h-full w-[420px] max-w-[80vw] shrink-0 flex-col border-l border-gray-200 bg-white dark:border-gray-800 dark:bg-page-dark",style:{"-webkit-app-region":"no-drag"}},qt={class:"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-800"},Rt={class:"text-base font-semibold text-gray-900 dark:text-white"},Ht={key:0,class:"flex min-h-0 flex-1 items-center justify-center gap-2 text-sm text-gray-400 dark:text-gray-500"},Kt={key:1,class:"min-h-0 flex-1 overflow-y-auto"},Yt={class:"px-5 py-5"},Qt={class:"flex items-start gap-4"},Wt={class:"relative shrink-0"},Jt=["src","alt"],Xt={key:1,class:"flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-gray-155 to-gray-200 text-lg font-bold text-gray-700 dark:from-gray-800 dark:to-page-dark dark:text-gray-200"},Zt={class:"min-w-0 flex-1 pt-1"},ea={class:"truncate text-lg font-bold tracking-tight text-gray-900 dark:text-white"},ta={class:"mt-1 truncate font-mono text-xs text-gray-400 dark:text-gray-500"},aa={key:0,class:"mt-2 flex flex-wrap gap-1.5"},na={key:1,class:"mt-3 flex flex-wrap items-center gap-2"},sa={class:"border-t border-gray-100 px-5 py-4 dark:border-white/5"},oa={class:"mb-3 text-[10px] font-bold uppercase tracking-wider text-gray-400 dark:text-gray-500"},ra={class:"space-y-2.5"},ia={class:"flex items-center justify-between gap-2"},la={class:"truncate text-xs font-semibold text-gray-700 dark:text-gray-300"},ca={class:"flex items-center gap-1 text-[10px] font-bold text-gray-400 transition group-hover/item:text-pink-500 dark:text-gray-500"},da={class:"mt-1.5 truncate text-[11px] font-medium text-gray-400 dark:text-gray-500"},ua={class:"mt-2 flex flex-wrap gap-1.5"},fa=ke({__name:"ContactDetailPanel",props:{selectedKey:{},contact:{},isLoading:{type:Boolean},isFriendActionLoading:{type:Boolean}},emits:["clear","openSource","viewSourceRecords","markFriend","unmarkFriend"],setup(n,{emit:s}){const h=n,S=s,{t:C}=be(),A=u(()=>{const p=h.contact;if(!p)return[];const v=new Set([p.displayName.trim().toLowerCase(),p.platformId.trim().toLowerCase()]);return p.aliases.filter(w=>!v.has(w.trim().toLowerCase()))}),I=u(()=>h.contact?.pool==="non_friend"),F=u(()=>h.contact?.friendSource==="manual"),B=u(()=>I.value||F.value);function P(p){return p.displayName.trim().slice(0,1).toUpperCase()||"?"}return(p,v)=>{const w=_e,R=Se;return c(),re(Tt,{name:"contact-detail-panel"},{default:T(()=>[n.selectedKey?(c(),f("aside",Ut,[a("div",qt,[a("h3",Rt,o(r(C)("contacts.detail.title")),1),y(w,{"aria-label":r(C)("contacts.actions.clearSelection"),icon:"i-heroicons-x-mark",color:"neutral",variant:"ghost",size:"sm",onClick:v[0]||(v[0]=x=>S("clear"))},null,8,["aria-label"])]),n.isLoading?(c(),f("div",Ht,[y(R,{name:"i-lucide-loader-2",class:"h-4 w-4 animate-spin"}),a("span",null,o(r(C)("common.loading")),1)])):n.contact?(c(),f("div",Kt,[a("section",Yt,[a("div",Qt,[a("div",Wt,[n.contact.avatar?(c(),f("img",{key:0,src:n.contact.avatar,alt:n.contact.displayName,loading:"lazy",decoding:"async",class:"h-16 w-16 rounded-2xl object-cover shadow-sm ring-2 ring-white dark:ring-page-dark"},null,8,Jt)):(c(),f("div",Xt,o(P(n.contact)),1))]),a("div",Zt,[a("h2",ea,o(n.contact.displayName),1),a("p",ta,o(n.contact.platform)+" · "+o(n.contact.platformId),1),A.value.length>0?(c(),f("div",aa,[(c(!0),f(q,null,he(A.value.slice(0,4),x=>(c(),f("span",{key:x,class:"max-w-full truncate rounded-md bg-gray-100 px-2 py-0.5 text-[11px] font-medium text-gray-500 dark:bg-white/5 dark:text-gray-400"},o(x),1))),128))])):N("",!0),B.value?(c(),f("div",na,[I.value?(c(),re(w,{key:0,icon:"i-lucide-user-plus",color:"primary",variant:"soft",size:"xs",loading:n.isFriendActionLoading,onClick:v[1]||(v[1]=x=>S("markFriend"))},{default:T(()=>[Z(o(r(C)("contacts.actions.markFriend")),1)]),_:1},8,["loading"])):F.value?(c(),re(w,{key:1,icon:"i-lucide-user-minus",color:"neutral",variant:"soft",size:"xs",loading:n.isFriendActionLoading,onClick:v[2]||(v[2]=x=>S("unmarkFriend"))},{default:T(()=>[Z(o(r(C)("contacts.actions.unmarkFriend")),1)]),_:1},8,["loading"])):N("",!0)])):N("",!0)])])]),a("section",sa,[a("h3",oa,o(r(C)("contacts.detail.sources")),1),a("div",ra,[(c(!0),f(q,null,he(n.contact.sourceSessions,x=>(c(),f("div",{key:x.id,class:"w-full rounded-2xl border border-gray-100 bg-white/40 px-3.5 py-3 text-left transition duration-300 hover:border-gray-200 dark:border-white/5 dark:bg-page-dark/10 dark:hover:border-white/10"},[a("div",ia,[a("span",la,o(x.name),1),a("span",ca,o(x.type==="private"?r(C)("contacts.detail.sourceType.private"):r(C)("contacts.detail.sourceType.group")),1)]),a("div",da,o(x.privateMessageCount!=null?r(C)("contacts.metrics.privateMessages",{count:x.privateMessageCount}):r(C)("contacts.metrics.groupSignals",{count:x.coOccurrenceCount??0})),1),a("div",ua,[y(w,{icon:"i-lucide-arrow-up-right",color:"primary",variant:"soft",size:"xs",onClick:j=>S("openSource",x)},{default:T(()=>[Z(o(r(C)("contacts.actions.openSourceSession")),1)]),_:1},8,["onClick"]),y(w,{icon:"i-lucide-messages-square",color:"primary",variant:"soft",size:"xs",onClick:j=>S("viewSourceRecords",x)},{default:T(()=>[Z(o(r(C)("contacts.actions.viewSourceRecords")),1)]),_:1},8,["onClick"])])]))),128))])])])):N("",!0)])):N("",!0)]),_:1})}}}),ma=De(fa,[["__scopeId","data-v-4df1b50a"]]),pa={key:0,class:"flex items-center gap-3.5 rounded-2xl border border-amber-200/60 bg-amber-50/40 p-4 text-sm text-amber-800 backdrop-blur-sm dark:border-amber-900/40 dark:bg-amber-950/10 dark:text-amber-200"},ga={class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-amber-100/80 dark:bg-amber-950/50"},va={class:"font-medium"},xa={key:1,class:"flex flex-col gap-4 rounded-2xl border border-zinc-200/80 bg-zinc-50/60 p-4 text-sm text-zinc-700 backdrop-blur-sm dark:border-zinc-800/80 dark:bg-page-dark/40 dark:text-zinc-300 sm:flex-row sm:items-center sm:justify-between"},ya={class:"flex items-center gap-3.5"},ha={class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-zinc-100 dark:bg-zinc-800/80"},ka={class:"font-medium"},ba={class:"flex items-center shrink-0 self-end sm:self-center"},_a={key:2,class:"flex flex-col gap-4 rounded-2xl border border-red-200/60 bg-red-50/40 p-4 text-sm text-red-700 backdrop-blur-sm dark:border-red-900/40 dark:bg-red-950/10 dark:text-red-300 sm:flex-row sm:items-center sm:justify-between"},Sa={class:"flex min-w-0 items-center gap-3.5"},wa={class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-red-100/80 dark:bg-red-950/50"},Ca={class:"truncate font-medium"},Ta={class:"flex items-center shrink-0 self-end sm:self-center"},La=ke({__name:"ContactsStatusBlocks",props:{showDisabledNotice:{type:Boolean},activePrivateSessionCount:{},cacheStatus:{},taskFailed:{type:Boolean},taskLastError:{},isTaskRunning:{type:Boolean},isRecomputing:{type:Boolean}},emits:["recompute"],setup(n,{emit:s}){const h=s,{t:S}=be();return(C,A)=>{const I=Se,F=_e;return c(),f(q,null,[n.showDisabledNotice?(c(),f("div",pa,[a("div",ga,[y(I,{name:"i-lucide-alert-triangle",class:"h-5 w-5 text-amber-500"})]),a("span",va,o(r(S)("contacts.disabled",{count:n.activePrivateSessionCount})),1)])):N("",!0),n.cacheStatus==="stale"&&!n.isTaskRunning?(c(),f("div",xa,[a("div",ya,[a("div",ha,[y(I,{name:"i-lucide-history",class:"h-5 w-5 text-zinc-500 dark:text-zinc-400"})]),a("span",ka,o(r(S)("contacts.stale.inline")),1)]),a("div",ba,[y(F,{size:"sm",color:"primary",variant:"soft",class:"rounded-xl px-4 font-medium",loading:n.isRecomputing||n.isTaskRunning,disabled:n.isTaskRunning,onClick:A[0]||(A[0]=B=>h("recompute"))},{default:T(()=>[Z(o(r(S)("contacts.actions.recompute")),1)]),_:1},8,["loading","disabled"])])])):N("",!0),n.taskFailed?(c(),f("div",_a,[a("div",Sa,[a("div",wa,[y(I,{name:"i-lucide-alert-circle",class:"h-5 w-5 text-red-500"})]),a("span",Ca,o(n.taskLastError||r(S)("contacts.task.failed")),1)]),a("div",Ta,[y(F,{size:"sm",color:"error",variant:"soft",class:"rounded-xl px-4 font-medium",onClick:A[1]||(A[1]=B=>h("recompute"))},{default:T(()=>[Z(o(r(S)("contacts.task.retry")),1)]),_:1})])])):N("",!0)],64)}}});function $a(n){return!!n.diagnostics&&!n.showLoadingState&&!n.diagnostics.contactsEnabled}function Ia(n){return n.previousScrollTop}function je(n){return n!=="friend"}function Fa(n){return n.friendInitialLoading||n.groupmateInitialLoading}function Pa(n){return n.activeSection==="non_friend"||n.friendSectionReady}function Ma(n){return n.friendInitialLoading||n.groupmateInitialLoading||n.completionProgressVisible===!0||n.activeTaskStatus==="running"||n.friendTaskStatus==="running"||n.groupmateTaskStatus==="running"}function za(n){return n.previousStatus==="running"&&n.nextStatus==="succeeded"&&n.nextTotalSessions>0&&n.nextProcessedSessions>=n.nextTotalSessions&&n.previousProcessedSessions<n.nextTotalSessions}function Aa(n){return n.friendTaskStatus==="running"||n.groupmateTaskStatus==="running"?["friend","non_friend"]:[n.activePool]}function Ea(n){const s=[{type:"section",key:"section:friend",pool:"friend"}];return s.push(...n.friends.map(h=>({type:"contact",key:h.key,pool:"friend",contact:h}))),n.friendLoadingMore&&s.push({type:"loading",key:"loading:friend",pool:"friend"}),n.showGroupSection&&(s.push({type:"section",key:"section:non_friend",pool:"non_friend"}),s.push(...n.groupmates.map(h=>({type:"contact",key:h.key,pool:"non_friend",contact:h}))),n.groupmateLoadingMore&&s.push({type:"loading",key:"loading:non_friend",pool:"non_friend"})),s}const Na={class:"flex min-h-0 flex-1 flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100"},Ba={class:"flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2 py-1.5 xl:py-0"},ja={class:"flex min-h-0 flex-1 overflow-hidden"},Va={class:"min-h-0 min-w-0 flex-1 overflow-hidden"},Da={class:"flex h-full min-h-0 w-full flex-col gap-6 px-6 pb-3 pt-4"},Ga={class:"flex min-h-0 flex-1 flex-col gap-4"},Oa={key:1,class:"rounded-2xl border border-red-200 bg-red-50/50 p-4 text-sm text-red-700 dark:border-red-900/30 dark:bg-red-950/20 dark:text-red-300"},Ua={key:2,class:"min-h-0 flex-1"},qa={key:0,class:"flex flex-col items-center justify-center rounded-3xl border border-dashed border-gray-250 p-16 text-center dark:border-white/5"},Ra={class:"flex h-12 w-12 items-center justify-center rounded-2xl bg-gray-50 text-gray-400 dark:bg-white/5 dark:text-gray-500"},Ha={class:"mt-4 text-sm font-medium text-gray-400 dark:text-gray-500"},Ka={class:"shrink-0 overflow-hidden border-b border-gray-100 bg-white dark:border-white/5 dark:bg-[#202024]"},Ya={class:"flex min-w-0 items-center justify-end gap-1 text-right"},Qa={class:"truncate"},Wa={class:"max-w-[280px] whitespace-normal break-words text-left text-xs leading-5"},Ja={class:"flex min-w-0 items-center justify-end gap-1 text-right"},Xa={class:"truncate"},Za={class:"max-w-[280px] whitespace-normal break-words text-left text-xs leading-5"},en=["aria-label","onClick"],tn={class:"group flex min-w-0 w-full items-center gap-3"},an={class:"relative shrink-0 overflow-hidden rounded-lg"},nn=["src","alt"],sn={key:1,class:"flex h-10 w-10 items-center justify-center bg-gradient-to-br from-gray-50 to-gray-100 text-sm font-bold text-gray-500 transition-transform duration-300 group-hover:scale-105 dark:from-gray-800 dark:to-gray-800/60 dark:text-gray-400"},on={class:"min-w-0 flex-1"},rn={class:"flex min-w-0 items-center gap-1"},ln={class:"mt-1 inline-flex items-center rounded bg-gray-50 px-1.5 py-0.5 font-mono text-[9px] font-semibold uppercase tracking-wider text-gray-400 dark:bg-white/5 dark:text-gray-500"},cn={class:"contact-table-value"},dn={class:"contact-table-value"},un={class:"contact-table-value"},fn={class:"contact-table-value"},mn=100,Ve=69,pn=20,gn=ke({__name:"index",setup(n){const{t:s}=be(),h=jt(),S=Lt(),C=$t(),A=It(),I=b(!1),F=b(""),B=b(""),P=b("1y"),p=b("friend"),v=b(null),w=b(null),R=b(!1),x=b(!1),j=b(null),fe=b(!1),H=b(null),ee=b(null),te=b(null),M=b(null),ae={friend:null,non_friend:null},K=b(!1),Y=b(null),we=b(0),ne=b({});function me(){return{items:[],response:null,page:0,total:0,hasMore:!1,isLoadingInitial:!1,isLoadingMore:!1,error:"",requestId:0,scrollOffset:0}}const V=b({friend:me(),non_friend:me()}),ie=u(()=>V.value[p.value]),k=u(()=>V.value.friend),m=u(()=>V.value.non_friend),Ce=u(()=>!!k.value.response&&!k.value.hasMore&&!k.value.isLoadingInitial),pe=u(()=>Pa({activeSection:p.value,friendSectionReady:Ce.value,groupmateHasItems:m.value.items.length>0,groupmateLoading:m.value.isLoadingInitial||m.value.isLoadingMore})),E=u(()=>Ea({friends:k.value.items,groupmates:m.value.items,showGroupSection:pe.value,friendLoadingMore:k.value.isLoadingMore,groupmateLoadingMore:m.value.isLoadingInitial||m.value.isLoadingMore})),le=u(()=>ie.value.response??k.value.response??m.value.response),ge=u(()=>[ie.value.response,k.value.response,m.value.response].find(e=>e?.task?.status==="running")??le.value),Ge=u(()=>k.value.items.length+m.value.items.length>0),Oe=u(()=>!Ge.value&&!!k.value.response&&!!m.value.response&&!k.value.hasMore&&!m.value.hasMore&&!k.value.isLoadingInitial&&!m.value.isLoadingInitial),Te=u(()=>k.value.error||m.value.error),ve=u(()=>le.value?.diagnostics),z=u(()=>ge.value?.task),ce=u(()=>H.value??z.value),Q=u(()=>z.value?.status==="running"),Ue=u(()=>z.value?.status==="failed"),Le=u(()=>Ma({activeTaskStatus:ie.value.response?.task?.status,friendTaskStatus:k.value.response?.task?.status,groupmateTaskStatus:m.value.response?.task?.status,friendInitialLoading:k.value.isLoadingInitial,groupmateInitialLoading:m.value.isLoadingInitial,completionProgressVisible:H.value!==null})),qe=u(()=>H.value?s("contacts.task.running",{current:ce.value?.processedSessions??0,total:ce.value?.totalSessions??0}):ge.value?.cache.status==="stale"&&Q.value?s("contacts.task.updating"):ge.value?.cache.status==="missing"&&Q.value?s("contacts.task.running",{current:ce.value?.processedSessions??0,total:ce.value?.totalSessions??0}):s("common.loading")),Re=u(()=>$a({diagnostics:ve.value,showLoadingState:Le.value})),se=u(()=>{const e=le.value?.stats,t=e?.friendsTotal??0,i=e?.nonFriendsTotal??0;return{total:t+i,friends:t,nonFriends:i}}),He=u(()=>[{id:"friend",label:`${s("contacts.tabs.friends")} ${se.value.friends.toLocaleString()}`,icon:"i-heroicons-user"},{id:"non_friend",label:`${s("contacts.tabs.groupContacts")} ${se.value.nonFriends.toLocaleString()}`,icon:"i-heroicons-user-group"}]),Ke=u(()=>Nt.map(e=>({label:s(`contacts.timeRange.${e}`),value:e}))),de=Ft(u(()=>({count:E.value.length,getScrollElement:()=>Y.value,estimateSize:e=>Ze(E.value[e]),overscan:10,getItemKey:e=>E.value[e]?.key??e}))),xe=u(()=>de.value.getVirtualItems()),Ye=u(()=>de.value.getTotalSize());O(F,e=>{te.value&&clearTimeout(te.value),te.value=setTimeout(()=>{B.value=e.trim()},300)}),O(()=>z.value?.status,()=>Pe()),O(()=>({status:z.value?.status,processedSessions:z.value?.processedSessions??0,totalSessions:z.value?.totalSessions??0}),(e,t)=>{e.status==="running"&&ue(),z.value&&za({previousStatus:t?.status,nextStatus:e.status,previousProcessedSessions:t?.processedSessions??0,nextProcessedSessions:e.processedSessions,nextTotalSessions:e.totalSessions})&&rt(z.value)}),O([B,P],()=>{nt(),$e()}),O(()=>E.value.length,()=>{de.value.measure()}),O(xe,()=>{Xe()},{flush:"post"}),O(E,()=>{v.value&&(k.value.items.some(e=>e.key===v.value)||m.value.items.some(e=>e.key===v.value)||oe())}),Pt(()=>{$e()}),Mt(()=>{Me(),ue(),te.value&&clearTimeout(te.value),M.value&&clearTimeout(M.value)});async function D(e,t){const i=W(e,1,{...t,replace:!0});ae[e]=i;try{await i}finally{ae[e]===i&&(ae[e]=null)}}async function $e(){await Promise.all([D("friend"),D("non_friend")])}async function Ie(e){const t=V.value[e];!t.hasMore||t.isLoadingInitial||t.isLoadingMore||await W(e,t.page+1,{acceptStale:!0,replace:!1})}async function W(e,t,i){const d=V.value[e],_=i?.replace!==!1,L=d.requestId+1;d.requestId=L,d.error="",i?.silent||(_?d.isLoadingInitial=d.items.length===0:d.isLoadingMore=!0);try{const $={acceptStale:i?.acceptStale,timeRangePreset:P.value,pool:e,page:t,pageSize:mn,query:B.value||void 0},l=i?.force?await S.recomputeContacts($):await S.getContacts($);if(d.requestId!==L)return;We(d,l,_,{preserveExisting:i?.preserveExisting}),Pe()}catch($){if(d.requestId===L&&(d.error=String($)),i?.throwOnError)throw $}finally{d.requestId===L&&(d.isLoadingInitial=!1,d.isLoadingMore=!1)}}async function Fe(){I.value=!0;try{await W(p.value,1,{acceptStale:!0,force:!0,replace:!0,throwOnError:!0}),h.success(s("contacts.toast.recomputeStarted"))}catch(e){h.fail(s("contacts.toast.recomputeFailed"),{description:String(e)})}finally{I.value=!1}}const Qe=u(()=>({title:s("layout.relationships"),description:s("contacts.subtitle",{count:ve.value?.privateSessionCount??0}),icon:"i-lucide-users",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm",action:{label:s("contacts.actions.recompute"),icon:"i-lucide-refresh-cw",loading:I.value,disabled:Q.value,class:"border border-pink-100 hover:border-pink-200 dark:border-pink-950/30 dark:hover:border-pink-900/50",onClick:Fe},stats:[{id:"total",label:s("contacts.stats.total"),value:se.value.total.toLocaleString()},{id:"friends",label:s("contacts.stats.friends"),value:se.value.friends.toLocaleString()},{id:"nonFriends",label:s("contacts.stats.nonFriends"),value:se.value.nonFriends.toLocaleString(),dividerBefore:!0}]}));Ot(Qe);function We(e,t,i,d){const _=e.response?.cache.signature,L=t.cache.signature,$=!!_&&!!L&&_!==L;if(e.response=t,e.total=t.pagination.total,d?.preserveExisting&&!$&&e.items.length>0){e.hasMore=e.items.length<t.pagination.total;return}e.page=t.pagination.page,e.hasMore=t.pagination.hasMore,e.items=i||$?t.contacts:Je(e.items,t.contacts),$&&oe()}function Je(e,t){const i=new Set(e.map(_=>_.key)),d=[...e];for(const _ of t)i.has(_.key)||(i.add(_.key),d.push(_));return d}function Xe(){const t=xe.value.at(-1);if(!t||t.index<E.value.length-pn)return;if(G(t.index).pool==="friend"){if(k.value.hasMore){Ie("friend");return}Ce.value&&!m.value.response&&!m.value.isLoadingInitial&&D("non_friend");return}if(!m.value.response&&!m.value.isLoadingInitial){D("non_friend");return}m.value.hasMore&&Ie("non_friend")}function G(e){return E.value[e]}function g(e){return G(e)}function Ze(e){return e?.type==="section"?e.pool==="non_friend"?42:1:e?.type==="loading"?44:Ve}async function et(e){const t=e==="non_friend"?"non_friend":"friend";p.value=t,K.value=!0,M.value&&clearTimeout(M.value),t==="non_friend"&&await tt(),await Be();const i=E.value.findIndex(d=>d.type==="section"&&d.pool===t);if(i>=0){const d=t==="non_friend"?Math.min(i+1,E.value.length-1):i;de.value.scrollToIndex(d,{align:"start"})}M.value=setTimeout(()=>{K.value=!1,p.value=t},350)}async function tt(){!m.value.response&&!m.value.isLoadingInitial&&await D("non_friend",{acceptStale:!0}),await at()}async function at(e){if(!Fa({friendInitialLoading:k.value.isLoadingInitial,groupmateInitialLoading:m.value.isLoadingInitial}))return;const t=[ae.friend,ae.non_friend].filter(i=>!!i);t.length!==0&&await Promise.allSettled(t)}function nt(){K.value=!1,M.value&&clearTimeout(M.value),ue();for(const e of["friend","non_friend"])V.value[e].requestId++,V.value[e]=me();oe(),ne.value={},Y.value&&(Y.value.scrollTop=0)}function Pe(){Q.value?st():Me()}function st(){j.value||(j.value=setInterval(()=>{ot()},1500))}async function ot(){if(!fe.value){fe.value=!0;try{const e=Aa({activePool:p.value,friendTaskStatus:k.value.response?.task?.status,groupmateTaskStatus:m.value.response?.task?.status});await Promise.all(e.map(t=>W(t,1,{acceptStale:!0,replace:!0,preserveExisting:!0,silent:!0})))}finally{fe.value=!1}}}function Me(){j.value&&(clearInterval(j.value),j.value=null)}function rt(e){ue(),H.value={...e,processedSessions:e.totalSessions},ee.value=setTimeout(()=>{H.value=null,ee.value=null},450)}function ue(){ee.value&&(clearTimeout(ee.value),ee.value=null),H.value=null}async function it(e){v.value=e.key,await ze(e.key)}async function ze(e,t){const i=`${P.value}:${e}`,d=ne.value[i];if(d&&!t?.skipCache){w.value=d;return}w.value=null,R.value=!0;try{const _=await S.getContactDetail(e,{acceptStale:!0,timeRangePreset:P.value});if(v.value!==e)return;w.value=_.contact,_.contact&&(ne.value={...ne.value,[i]:_.contact})}catch(_){h.fail(s("contacts.toast.recomputeFailed"),{description:String(_)})}finally{v.value===e&&(R.value=!1)}}async function lt(){const e=w.value?.key;if(!(!e||x.value)){x.value=!0;try{await S.markContactAsFriend(e,{timeRangePreset:P.value}),h.success(s("contacts.toast.markFriendSucceeded")),await Ae(e)}catch(t){h.fail(s("contacts.toast.markFriendFailed"),{description:String(t)})}finally{x.value=!1}}}async function ct(){const e=w.value?.key;if(!(!e||x.value)){x.value=!0;try{await S.unmarkContactAsFriend(e,{timeRangePreset:P.value}),h.success(s("contacts.toast.unmarkFriendSucceeded")),await Ae(e)}catch(t){h.fail(s("contacts.toast.unmarkFriendFailed"),{description:String(t)})}finally{x.value=!1}}}async function Ae(e){const t=p.value,i=Y.value?.scrollTop??0,d=w.value?.pool??t;if(ne.value={},d==="non_friend"){dt(e),oe(),await Ne(t,i),await ut();return}await Promise.all([D("friend",{acceptStale:!0}),D("non_friend",{acceptStale:!0})]),v.value=e,await ze(e,{skipCache:!0}),await Ne(t,i)}function dt(e){const t=m.value,i=t.items.filter(d=>d.key!==e);i.length!==t.items.length&&(t.items=i,t.total=Math.max(0,t.total-1),t.hasMore=t.items.length<t.total)}async function ut(){await Promise.all([W("friend",1,{acceptStale:!0,replace:!0,preserveExisting:je("friend"),silent:!0}),W("non_friend",1,{acceptStale:!0,replace:!0,preserveExisting:je("non_friend"),silent:!0})])}function oe(){v.value=null,w.value=null,R.value=!1}function ft(e){return e.friendSource==="manual"?s("contacts.pool.manualFriend"):e.pool==="friend"?s("contacts.pool.friend"):s("contacts.pool.nonFriend")}function mt(e){return e.friendSource==="manual"?"bg-indigo-50 text-indigo-600 dark:bg-indigo-500/10 dark:text-indigo-400 border border-indigo-100/50 dark:border-indigo-500/20":e.pool==="friend"?"bg-sky-50 text-sky-600 dark:bg-sky-500/10 dark:text-sky-400 border border-sky-100/50 dark:border-sky-500/20":"bg-emerald-50 text-emerald-600 dark:bg-emerald-500/10 dark:text-emerald-400 border border-emerald-100/50 dark:border-emerald-500/20"}function ye(e){return e==="friend"?"contact-table-grid--friends":"contact-table-grid--group-contacts"}function pt(e,t){return J(e==="friend"?t.scoreBreakdown.privateMessageCount:t.scoreBreakdown.commonGroupCount)}function gt(e,t){return J(e==="friend"?t.scoreBreakdown.activePrivateMonths:t.scoreBreakdown.coOccurrenceCount)}function vt(e,t){return J(e==="friend"?t.scoreBreakdown.commonGroupCount:t.scoreBreakdown.replyInteractionCount)}function xt(e){return(e.displayName||e.platformId||"?").slice(0,1)}function yt(e){return Math.round(e*100).toString()}function ht(e){return e.friendSource==="manual"?"-":yt(e.score)}function J(e){return String(e??0)}function kt(e){return e?new Date(e*1e3).toLocaleDateString():s("contacts.emptyValue")}function bt(e){A.push({name:e.type==="private"?"private-chat":"group-chat",params:{id:e.id}})}function _t(e){C.openChatRecordDrawer({sessionId:e.id})}function St(e){const t=e.target;if(ie.value.scrollOffset=t.scrollTop,we.value=t.scrollLeft,K.value)return;const i=wt(t);p.value!==i&&(p.value=i)}function wt(e){return pe.value&&e.scrollTop>=Ee()?"non_friend":"friend"}function Ee(){return 1+k.value.items.length*Ve+(k.value.isLoadingMore?44:0)}async function Ne(e,t){p.value=e,await Be();const i=Y.value;i&&(K.value=!0,M.value&&clearTimeout(M.value),i.scrollTop=Ia({previousScrollTop:t,groupSectionScrollTop:Ct()}),M.value=setTimeout(()=>{K.value=!1,p.value=e},150))}function Ct(){return pe.value?Ee():null}return(e,t)=>{const i=Bt,d=_e,_=zt,L=Se,$=Et;return c(),f("div",Na,[y(r(Gt),{modelValue:p.value,"onUpdate:modelValue":t[3]||(t[3]=l=>p.value=l),items:He.value,"persist-key":"contactsTab",onChange:et},{right:T(()=>[a("div",Ba,[y(i,{modelValue:P.value,"onUpdate:modelValue":t[0]||(t[0]=l=>P.value=l),items:Ke.value,content:!1,size:"xs",class:"min-w-max gap-0 bg-transparent dark:bg-transparent shadow-none",disabled:Q.value},null,8,["modelValue","items","disabled"]),y(_,{modelValue:F.value,"onUpdate:modelValue":t[2]||(t[2]=l=>F.value=l),icon:"i-lucide-search",placeholder:r(s)("contacts.search"),size:"sm",class:"w-full sm:w-36"},At({_:2},[F.value?{name:"trailing",fn:T(()=>[y(d,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":r(s)("contacts.actions.clearSearch"),onClick:t[1]||(t[1]=l=>F.value="")},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"])])]),_:1},8,["modelValue","items"]),a("div",ja,[a("main",Va,[a("div",Da,[y(La,{"show-disabled-notice":Re.value,"active-private-session-count":ve.value?.activePrivateSessionCount??0,"cache-status":le.value?.cache.status,"task-failed":Ue.value,"task-last-error":z.value?.lastError,"is-task-running":Q.value,"is-recomputing":I.value,onRecompute:Fe},null,8,["show-disabled-notice","active-private-session-count","cache-status","task-failed","task-last-error","is-task-running","is-recomputing"]),a("section",Ga,[Le.value?(c(),re(r(Dt),{key:0,text:qe.value,height:"py-16"},null,8,["text"])):Te.value?(c(),f("div",Oa,o(Te.value),1)):(c(),f("div",Ua,[Oe.value?(c(),f("div",qa,[a("div",Ra,[y(L,{name:"i-lucide-users-2",class:"h-6 w-6"})]),a("p",Ha,o(r(s)("contacts.empty")),1)])):(c(),re(r(Vt),{key:1,shadow:!1,class:"flex h-full min-w-0 flex-col"},{default:T(()=>[a("div",Ka,[a("div",{class:U(["contact-table-grid min-w-[720px] px-4 py-3 text-[11px] font-bold uppercase tracking-wider text-gray-400 dark:text-gray-500",ye(p.value)]),style:X({transform:`translateX(-${we.value}px)`})},[a("span",null,o(r(s)("contacts.table.contact")),1),a("span",null,o(r(s)("contacts.table.status")),1),p.value==="friend"?(c(),f(q,{key:0},[a("span",null,o(r(s)("contacts.metrics.privateMessagesLabel")),1),a("span",null,o(r(s)("contacts.metrics.activeMonths")),1),a("span",null,o(r(s)("contacts.metrics.commonGroups")),1)],64)):(c(),f(q,{key:1},[a("span",null,o(r(s)("contacts.metrics.commonGroups")),1),a("span",null,o(r(s)("contacts.metrics.coOccurrence")),1),a("span",null,o(r(s)("contacts.metrics.replies")),1)],64)),a("span",null,o(r(s)("contacts.metrics.lastInteractionShort")),1),a("span",Ya,[a("span",Qa,o(r(s)("contacts.detail.score")),1),y($,{content:{side:"top"},ui:{content:"h-auto"}},{content:T(()=>[a("div",Wa,o(r(s)("contacts.detail.scoreHelp")),1)]),default:T(()=>[y(L,{name:"i-lucide-circle-help",class:"h-3.5 w-3.5 shrink-0 text-gray-350 transition-colors hover:text-primary-500 dark:text-gray-600 dark:hover:text-primary-400"})]),_:1})])],6)]),a("div",{ref_key:"scrollContainerRef",ref:Y,class:"min-h-0 flex-1 overflow-auto scrollbar-hide",onScroll:St},[a("div",{class:"relative min-w-[720px]",style:X({height:`${Ye.value}px`})},[(c(!0),f(q,null,he(xe.value,l=>(c(),f(q,{key:String(l.key)},[G(l.index).type==="section"&&G(l.index).pool==="friend"?(c(),f("div",{key:0,class:"absolute left-0 top-0 h-px w-full",style:X({transform:`translateY(${l.start}px)`}),"aria-hidden":"true"},null,4)):G(l.index).type==="section"?(c(),f("div",{key:1,class:U(["contact-table-grid absolute left-0 top-0 w-full border-b border-gray-100 bg-white px-4 py-3 text-[11px] font-bold uppercase tracking-wider text-gray-400 dark:border-white/5 dark:bg-[#202024] dark:text-gray-500",ye(G(l.index).pool)]),style:X({transform:`translateY(${l.start}px)`})},[a("span",null,o(r(s)("contacts.table.contact")),1),a("span",null,o(r(s)("contacts.table.status")),1),a("span",null,o(r(s)("contacts.metrics.commonGroups")),1),a("span",null,o(r(s)("contacts.metrics.coOccurrence")),1),a("span",null,o(r(s)("contacts.metrics.replies")),1),a("span",null,o(r(s)("contacts.metrics.lastInteractionShort")),1),a("span",Ja,[a("span",Xa,o(r(s)("contacts.detail.score")),1),y($,{content:{side:"top"},ui:{content:"h-auto"}},{content:T(()=>[a("div",Za,o(r(s)("contacts.detail.scoreHelp")),1)]),default:T(()=>[y(L,{name:"i-lucide-circle-help",class:"h-3.5 w-3.5 shrink-0 text-gray-350 transition-colors hover:text-primary-500 dark:text-gray-600 dark:hover:text-primary-400"})]),_:1})])],6)):G(l.index).type==="contact"?(c(),f("button",{key:2,type:"button",class:U(["contact-table-grid absolute left-0 top-0 w-full px-4 py-3.5 text-left outline-none transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",[ye(g(l.index).pool),v.value===g(l.index).contact.key?"border-b border-primary-500/20 bg-primary-500/[0.03] dark:bg-primary-500/[0.04]":"border-b border-gray-100/50 bg-transparent hover:bg-gray-50/50 dark:border-white/5 dark:hover:bg-gray-800/20"]]),style:X({transform:`translateY(${l.start}px)`}),"aria-label":r(s)("contacts.actions.viewDetail",{name:g(l.index).contact.displayName}),onClick:vn=>it(g(l.index).contact)},[a("div",{class:U(["absolute left-0 top-1/4 h-1/2 w-1 rounded-r-full bg-primary-500 transition-all duration-300",v.value===g(l.index).contact.key?"scale-100 opacity-100":"scale-75 opacity-0"])},null,2),a("div",tn,[a("div",an,[g(l.index).contact.avatar?(c(),f("img",{key:0,src:g(l.index).contact.avatar??"",alt:g(l.index).contact.displayName,loading:"lazy",decoding:"async",class:"h-10 w-10 object-cover transition-transform duration-300 group-hover:scale-105"},null,8,nn)):(c(),f("div",sn,o(xt(g(l.index).contact)),1))]),a("div",on,[a("div",rn,[a("span",{class:U(["truncate text-sm font-semibold leading-tight tracking-tight text-gray-800 transition-colors group-hover:text-primary-600 group-focus-visible:text-primary-600 dark:text-gray-200 dark:group-hover:text-primary-400 dark:group-focus-visible:text-primary-400",v.value===g(l.index).contact.key?"text-primary-600 dark:text-primary-400":""])},o(g(l.index).contact.displayName),3)]),a("span",ln,o(g(l.index).contact.platform),1)])]),a("span",{class:U(["inline-flex w-fit justify-self-start rounded-lg px-2.5 py-1 text-xs font-semibold",mt(g(l.index).contact)])},o(ft(g(l.index).contact)),3),a("span",cn,o(pt(g(l.index).pool,g(l.index).contact)),1),a("span",dn,o(gt(g(l.index).pool,g(l.index).contact)),1),a("span",un,o(vt(g(l.index).pool,g(l.index).contact)),1),a("span",fn,o(kt(g(l.index).contact.lastInteractionTs)),1),a("span",{class:U(["inline-flex h-7 w-12 items-center justify-center justify-self-end rounded-lg font-mono text-xs font-bold tabular-nums transition-colors duration-200",v.value===g(l.index).contact.key?"bg-primary-500 text-white":"bg-primary-50 text-primary-600 dark:bg-primary-500/10 dark:text-primary-400"])},o(ht(g(l.index).contact)),3)],14,en)):(c(),f("div",{key:3,class:"absolute left-0 top-0 flex h-11 w-full items-center justify-center gap-2 border-b border-gray-100/50 text-xs font-semibold text-gray-500 dark:border-white/5 dark:text-gray-400",style:X({transform:`translateY(${l.start}px)`})},[y(L,{name:"i-lucide-loader-2",class:"h-4 w-4 animate-spin"}),a("span",null,o(r(s)("common.loading")),1)],4))],64))),128))],4)],544)]),_:1}))]))])])]),y(ma,{"selected-key":v.value,contact:w.value,"is-loading":R.value,"is-friend-action-loading":x.value,onClear:oe,onOpenSource:bt,onViewSourceRecords:_t,onMarkFriend:lt,onUnmarkFriend:ct},null,8,["selected-key","contact","is-loading","is-friend-action-loading"])])])}}}),Tn=De(gn,[["__scopeId","data-v-30c675a1"]]);export{Tn as default};
@@ -0,0 +1 @@
1
+ import{d as _e,a6 as ke,aF as we,L as ze,ap as Pe,K,al as Ee,o as c,f as ee,w as E,a as i,p as d,g as n,z as u,a8 as Ue,a9 as B,c as m,aq as je,a7 as Ce,F as te,j as be,n as qe,l as U,b as g,e as H,aa as Re,aD as Fe,ay as Be,J as Le,x as Ne,aG as De,C as ge,y as Oe,aE as Ge,aH as ye}from"./index-DnpnIyle.js";import{_ as He,u as Ke,a as Je,b as Qe,c as We,d as he,e as Xe,f as Ye,g as Ze,h as et}from"./chatMessages-Zywjea1n.js";import{_ as tt}from"./Tabs-RWKHwtfM.js";import{u as Se}from"./useToast-CCPBE-Sy.js";import{P as at}from"./PageHeader-D4up77TB.js";import{u as st}from"./aiChat-BY4C3UQe.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-Cw0IhKZ6.js";import"./service-Bvq1fRkC.js";import"./EChartBar.vue_vue_type_script_setup_true_lang-DuA5xbcC.js";import"./EChart.vue_vue_type_script_setup_true_lang-BuLujQCF.js";import"./vendor-echarts-C9ugTmum.js";import"./vendor-zrender-D8psf1AA.js";import"./EChartLine.vue_vue_type_script_setup_true_lang-CvmMEfYq.js";import"./prompt-BggEDxxi.js";import"./RovingFocusItem-DHaiTb4j.js";import"./chatlabSiteLocale-CrCNb8QP.js";const lt={class:"flex max-h-[78vh] min-h-[520px] flex-col overflow-hidden"},ot={class:"flex items-start justify-between border-b border-gray-200 px-5 py-4 dark:border-gray-800"},nt={class:"text-base font-semibold text-gray-900 dark:text-white"},it={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},rt={class:"flex min-h-0 flex-1 flex-col px-5 py-4"},ct={class:"mb-3 flex items-center justify-between gap-3"},ut={class:"flex items-center gap-2"},dt={class:"text-xs text-gray-400"},mt={key:0,class:"mb-3 rounded-xl border border-primary-200 bg-primary-50/40 p-3 dark:border-primary-900/70 dark:bg-primary-950/20"},ft={class:"mb-2 flex items-center justify-between gap-3"},pt={class:"text-xs font-medium text-gray-700 dark:text-gray-200"},vt={class:"truncate text-[11px] text-gray-400"},gt={key:0,class:"mb-3 space-y-2"},yt={class:"max-h-36 space-y-1 overflow-y-auto rounded-lg border border-gray-200 p-1 dark:border-gray-800"},ht={key:0,class:"flex h-20 items-center justify-center"},bt=["onClick"],xt={class:"truncate"},_t={class:"shrink-0 text-[10px] text-gray-400"},kt={key:2,class:"flex h-20 items-center justify-center text-xs text-gray-400"},wt={class:"mt-2 flex items-center justify-between gap-3"},Ct={class:"text-[11px] text-gray-400"},St={class:"flex items-center gap-2"},It={class:"min-h-0 flex-1 overflow-y-auto pr-1"},Tt={key:0,class:"flex h-full min-h-56 items-center justify-center"},At={key:1,class:"flex min-h-56 flex-col items-center justify-center text-center"},$t={class:"text-sm text-gray-500 dark:text-gray-400"},Mt={key:2,class:"space-y-2"},Vt={key:0,class:"mb-2 flex items-center gap-1.5 text-xs text-gray-500"},zt={class:"truncate"},Pt={key:1},Et={class:"mt-2 flex justify-end gap-2"},Ut={class:"whitespace-pre-wrap break-words text-sm leading-6 text-gray-800 dark:text-gray-200"},jt={class:"mt-2 flex items-center justify-between gap-3"},qt={class:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-[11px] text-gray-400"},Rt={class:"flex shrink-0 items-center gap-0.5"},Ft={key:0,class:"mt-2 flex flex-wrap items-center justify-between gap-2 border-t border-gray-100 pt-2 text-[11px] dark:border-gray-800"},Bt={key:0,class:"text-amber-600 dark:text-amber-400"},Lt={key:1,class:"ml-auto text-gray-400 dark:text-gray-500"},Nt={class:"flex items-center justify-between border-t border-gray-200 px-5 py-3 dark:border-gray-800"},Dt={class:"flex items-center gap-2"},Ot=1500,Gt=_e({__name:"AIMemoryManagerModal",props:{open:{type:Boolean}},emits:["update:open","view-source"],setup(ue,{emit:_}){const ae=ue,z=_,{t:s,locale:D}=ke(),S=Se(),h=we(),O=ze(),A=Pe(),f=g("preferences"),k=g([]),j=g(new Map),v=g(!1),w=g(null),G=g(null),I=g(""),L=g(!1),q=g(""),C=g("contact"),b=g(null),$=g(""),M=g([]),R=g(!1);let T=null,P=null,F=0;const se=H(()=>[{label:s("ai.global.memory.preferences"),value:"preferences"},{label:s("ai.global.memory.self"),value:"self"},{label:s("ai.global.memory.entities"),value:"entities"}]),J=H(()=>k.value.filter(e=>f.value==="preferences"?e.scopeType==="global":f.value==="self"?e.scopeType==="self":e.scopeType==="contact"||e.scopeType==="group")),re=H(()=>[{label:s("ai.global.entityPicker.contacts"),value:"contact"},{label:s("ai.global.entityPicker.groups"),value:"group"}]),le=H(()=>{const e=$.value.trim().toLocaleLowerCase();return A.sessions.filter(a=>a.type==="group").filter(a=>!e||`${a.name} ${a.platform}`.toLocaleLowerCase().includes(e)).map(a=>({scopeType:"group",scopeId:a.id,label:a.name,detail:a.platform}))}),oe=H(()=>C.value==="contact"?M.value:le.value),ce=H(()=>f.value==="preferences"?s("ai.global.memory.preferences"):f.value==="self"?s("ai.global.memory.self"):b.value?.label??s("ai.global.memory.selectEntity")),Y=H(()=>q.value.trim().length>0&&q.value.trim().length<=2e3&&(f.value!=="entities"||b.value!==null));function Q(){z("update:open",!1)}function ne(e){G.value=e.id,I.value=e.content}function N(){G.value=null,I.value=""}function de(){N(),L.value=!0,q.value="",b.value=null,$.value="",f.value==="entities"&&C.value==="contact"&&t("")}function W(){L.value=!1,q.value="",b.value=null,$.value="",F++,R.value=!1,T&&(clearTimeout(T),T=null),o()}function ie(e){return new Intl.DateTimeFormat(D.value,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(e)}function me(e){!e.sourceAIChatId||e.sourceStatus!=="conversation"&&e.sourceStatus!=="message"||(z("update:open",!1),z("view-source",{aiChatId:e.sourceAIChatId,messageId:e.sourceStatus==="message"?e.sourceMessageId:null}))}function fe(e){return e.scopeId?e.scopeType==="contact"?j.value.get(e.scopeId)??e.scopeId:A.sessions.find(a=>a.id===e.scopeId)?.name??e.scopeId:""}async function pe(e){const a=[...new Set(e.filter(x=>x.scopeType==="contact").map(x=>x.scopeId))].filter(x=>!!x),p=new Map,X=await Promise.allSettled(a.map(async x=>({key:x,detail:await O.getContactDetail(x,{acceptStale:!0})})));for(const x of X)x.status==="fulfilled"&&x.value.detail.contact&&p.set(x.value.key,x.value.detail.contact.displayName);j.value=p}async function t(e){const a=++F;R.value=!0;try{const p={acceptStale:!0,timeRangePreset:"all",page:1,pageSize:100,query:e.trim()||void 0},X=await Promise.all([O.getContacts({...p,pool:"friend"}),O.getContacts({...p,pool:"non_friend"})]);if(a!==F)return;const x=new Map;X.flatMap(V=>V.contacts).forEach(V=>x.set(V.key,V)),M.value=[...x.values()].map(V=>({scopeType:"contact",scopeId:V.key,label:V.displayName,detail:V.platformId})),y(X,e)}catch(p){if(a!==F)return;o(),M.value=[],S.fail(s("ai.global.entityPicker.loadFailed"),{description:String(p)})}finally{a===F&&(R.value=!1)}}function o(){P&&(clearTimeout(P),P=null)}function y(e,a){o(),!(!L.value||f.value!=="entities"||C.value!=="contact")&&e.some(p=>p.task?.status==="running")&&(P=setTimeout(()=>{P=null,t(a)},Ot))}function l(e){T&&clearTimeout(T),o(),F++,T=setTimeout(()=>{T=null,t(e)},200)}async function ve(){v.value=!0;try{const e=await h.getAIMemories();k.value=e,await Promise.all([A.loadSessions(),pe(e)])}catch(e){S.fail(s("ai.global.memory.toast.loadFailed"),{description:String(e)})}finally{v.value=!1}}async function Ie(e){if(I.value.trim()){w.value=e.id;try{const a=await h.updateAIMemory(e.id,I.value);k.value=k.value.map(p=>p.id===a.id?a:p),N(),S.success(s("ai.global.memory.toast.saved"))}catch(a){S.fail(s("ai.global.memory.toast.saveFailed"),{description:String(a)})}finally{w.value=null}}}async function Te(){if(Y.value){w.value="new";try{const e=f.value==="preferences"?{scopeType:"global",scopeId:null}:f.value==="self"?{scopeType:"self",scopeId:null}:{scopeType:b.value.scopeType,scopeId:b.value.scopeId},a=await h.createAIMemory({...e,content:q.value});k.value=[a,...k.value],a.scopeType==="contact"&&a.scopeId&&b.value&&(j.value=new Map(j.value).set(a.scopeId,b.value.label)),W(),S.success(s("ai.global.memory.toast.created"))}catch(e){S.fail(s("ai.global.memory.toast.createFailed"),{description:String(e)})}finally{w.value=null}}}async function Ae(e){if(confirm(s("ai.global.memory.confirmDelete"))){w.value=e.id;try{await h.deleteAIMemory(e.id),k.value=k.value.filter(a=>a.id!==e.id),G.value===e.id&&N(),S.success(s("ai.global.memory.toast.deleted"))}catch(a){S.fail(s("ai.global.memory.toast.deleteFailed"),{description:String(a)})}finally{w.value=null}}}async function $e(){const e=J.value;if(!(e.length===0||!confirm(s("ai.global.memory.confirmClearView")))){v.value=!0;try{f.value==="entities"?await Promise.all(e.map(a=>h.deleteAIMemory(a.id))):await h.clearAIMemories({scopeType:f.value==="preferences"?"global":"self",scopeId:null}),await ve(),S.success(s("ai.global.memory.toast.cleared"))}catch(a){await ve(),S.fail(s("ai.global.memory.toast.clearFailed"),{description:String(a)})}finally{v.value=!1}}}async function Me(){if(!(k.value.length===0||!confirm(s("ai.global.memory.confirmClearAll")))){v.value=!0;try{await h.clearAIMemories({all:!0}),k.value=[],j.value=new Map,N(),S.success(s("ai.global.memory.toast.cleared"))}catch(e){S.fail(s("ai.global.memory.toast.clearFailed"),{description:String(e)})}finally{v.value=!1}}}return K(()=>ae.open,e=>{e?ve():(N(),W())},{immediate:!0}),K(f,()=>W()),K(C,e=>{o(),F++,R.value=!1,b.value=null,$.value="",L.value&&f.value==="entities"&&e==="contact"&&t("")}),K($,e=>{b.value=null,L.value&&f.value==="entities"&&C.value==="contact"&&l(e)}),Ee(()=>{F++,T&&clearTimeout(T),o()}),(e,a)=>{const p=Ue,X=tt,x=je,V=Ce,xe=He,Ve=Re;return c(),ee(Ve,{open:ue.open,ui:{content:"sm:max-w-2xl"},"onUpdate:open":a[6]||(a[6]=r=>z("update:open",r))},{content:E(()=>[i("div",lt,[i("header",ot,[i("div",null,[i("h2",nt,d(n(s)("ai.global.memory.title")),1),i("p",it,d(n(s)("ai.global.memory.description")),1)]),u(p,{icon:"i-lucide-x",color:"neutral",variant:"ghost",size:"sm","aria-label":n(s)("common.close"),onClick:Q},null,8,["aria-label"])]),i("div",rt,[i("div",ct,[u(X,{modelValue:f.value,"onUpdate:modelValue":a[0]||(a[0]=r=>f.value=r),items:se.value,content:!1,size:"sm",class:"min-w-max"},null,8,["modelValue","items"]),i("div",ut,[i("span",dt,d(n(s)("ai.global.memory.count",{count:J.value.length})),1),u(p,{icon:"i-lucide-plus",color:"primary",variant:"soft",size:"xs",disabled:v.value,onClick:a[1]||(a[1]=r=>L.value?W():de())},{default:E(()=>[B(d(n(s)("ai.global.memory.add")),1)]),_:1},8,["disabled"])])]),L.value?(c(),m("div",mt,[i("div",ft,[i("span",pt,d(n(s)("ai.global.memory.createTitle")),1),i("span",vt,d(n(s)("ai.global.memory.scopeLabel",{scope:ce.value})),1)]),f.value==="entities"?(c(),m("div",gt,[u(X,{modelValue:C.value,"onUpdate:modelValue":a[2]||(a[2]=r=>C.value=r),items:re.value,content:!1,size:"xs"},null,8,["modelValue","items"]),u(x,{modelValue:$.value,"onUpdate:modelValue":a[3]||(a[3]=r=>$.value=r),icon:"i-lucide-search",size:"sm",placeholder:n(s)("ai.global.entityPicker.search")},null,8,["modelValue","placeholder"]),i("div",yt,[R.value?(c(),m("div",ht,[u(V,{name:"i-lucide-loader-2",class:"h-4 w-4 animate-spin text-gray-400"})])):(c(!0),m(te,{key:1},be(oe.value,r=>(c(),m("button",{key:`${r.scopeType}:${r.scopeId}`,type:"button",class:qe(["flex w-full items-center justify-between gap-3 rounded-md px-2.5 py-2 text-left text-xs transition-colors",b.value?.scopeId===r.scopeId&&b.value.scopeType===r.scopeType?"bg-primary-100 text-primary-700 dark:bg-primary-900/50 dark:text-primary-200":"hover:bg-gray-100 dark:hover:bg-gray-800"]),onClick:Z=>b.value=r},[i("span",xt,d(r.label),1),i("span",_t,d(r.detail),1)],10,bt))),128)),!R.value&&oe.value.length===0?(c(),m("p",kt,d(n(s)("ai.global.entityPicker.empty")),1)):U("",!0)])])):U("",!0),u(xe,{modelValue:q.value,"onUpdate:modelValue":a[4]||(a[4]=r=>q.value=r),rows:3,maxlength:2e3,autoresize:"",class:"w-full",placeholder:n(s)("ai.global.memory.contentPlaceholder")},null,8,["modelValue","placeholder"]),i("div",wt,[i("span",Ct,d(q.value.trim().length)+" / 2000",1),i("div",St,[u(p,{color:"neutral",variant:"ghost",size:"xs",onClick:W},{default:E(()=>[B(d(n(s)("common.cancel")),1)]),_:1}),u(p,{size:"xs",loading:w.value==="new",disabled:!Y.value,onClick:Te},{default:E(()=>[B(d(n(s)("common.save")),1)]),_:1},8,["loading","disabled"])])])])):U("",!0),i("div",It,[v.value?(c(),m("div",Tt,[u(V,{name:"i-lucide-loader-2",class:"h-5 w-5 animate-spin text-gray-400"})])):J.value.length===0?(c(),m("div",At,[u(V,{name:"i-lucide-brain",class:"mb-3 h-8 w-8 text-gray-300 dark:text-gray-600"}),i("p",$t,d(n(s)("ai.global.memory.empty")),1)])):(c(),m("div",Mt,[(c(!0),m(te,null,be(J.value,r=>(c(),m("article",{key:r.id,class:"rounded-xl border border-gray-200 px-4 py-3 dark:border-gray-800"},[r.scopeType==="contact"||r.scopeType==="group"?(c(),m("div",Vt,[u(V,{name:r.scopeType==="contact"?"i-lucide-user-round":"i-lucide-users-round",class:"h-3.5 w-3.5"},null,8,["name"]),i("span",zt,d(fe(r)),1)])):U("",!0),G.value===r.id?(c(),m("div",Pt,[u(xe,{modelValue:I.value,"onUpdate:modelValue":a[5]||(a[5]=Z=>I.value=Z),rows:3,autoresize:"",class:"w-full"},null,8,["modelValue"]),i("div",Et,[u(p,{color:"neutral",variant:"ghost",size:"xs",onClick:N},{default:E(()=>[B(d(n(s)("common.cancel")),1)]),_:1}),u(p,{size:"xs",loading:w.value===r.id,disabled:!I.value.trim(),onClick:Z=>Ie(r)},{default:E(()=>[B(d(n(s)("common.save")),1)]),_:1},8,["loading","disabled","onClick"])])])):(c(),m(te,{key:2},[i("p",Ut,d(r.content),1),i("div",jt,[i("div",qt,[i("span",null,d(n(s)(`ai.global.memory.source.${r.sourceType}`)),1),a[8]||(a[8]=i("span",{"aria-hidden":"true"},"·",-1)),i("span",null,d(n(s)("ai.global.memory.createdAt",{time:ie(r.createdAt)})),1),r.updatedAt!==r.createdAt?(c(),m(te,{key:0},[a[7]||(a[7]=i("span",{"aria-hidden":"true"},"·",-1)),i("span",null,d(n(s)("ai.global.memory.updatedAt",{time:ie(r.updatedAt)})),1)],64)):U("",!0)]),i("div",Rt,[u(p,{icon:"i-lucide-pencil",color:"neutral",variant:"ghost",size:"xs","aria-label":n(s)("common.edit"),onClick:Z=>ne(r)},null,8,["aria-label","onClick"]),u(p,{icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"xs",loading:w.value===r.id,"aria-label":n(s)("common.delete"),onClick:Z=>Ae(r)},null,8,["loading","aria-label","onClick"])])]),r.sourceType==="ai"||r.sourceStatus!=="none"?(c(),m("div",Ft,[r.sourceType==="ai"?(c(),m("span",Bt,d(n(s)("ai.global.memory.aiSourceWarning")),1)):U("",!0),r.sourceStatus==="unavailable"?(c(),m("span",Lt,d(n(s)("ai.global.memory.sourceUnavailable")),1)):r.sourceStatus==="conversation"||r.sourceStatus==="message"?(c(),ee(p,{key:2,class:"ml-auto",icon:"i-lucide-external-link",color:"neutral",variant:"ghost",size:"xs",onClick:Z=>me(r)},{default:E(()=>[B(d(n(s)("ai.global.memory.viewSource")),1)]),_:1},8,["onClick"])):U("",!0)])):U("",!0)],64))]))),128))]))])]),i("footer",Nt,[u(p,{color:"error",variant:"ghost",size:"sm",disabled:J.value.length===0||v.value,onClick:$e},{default:E(()=>[B(d(n(s)("ai.global.memory.clearCurrent")),1)]),_:1},8,["disabled"]),i("div",Dt,[u(p,{color:"error",variant:"soft",size:"sm",disabled:k.value.length===0||v.value,onClick:Me},{default:E(()=>[B(d(n(s)("ai.global.memory.clearAll")),1)]),_:1},8,["disabled"]),u(p,{color:"neutral",variant:"outline",size:"sm",onClick:Q},{default:E(()=>[B(d(n(s)("common.close")),1)]),_:1})])])])]),_:1},8,["open"])}}}),Ht={class:"flex h-full min-w-0 flex-col dark:bg-page-dark",style:{"padding-top":"var(--titlebar-area-height)"}},Kt=["aria-expanded"],Jt={class:"main-content flex min-h-0 flex-1 overflow-hidden"},Qt={class:"flex h-full min-w-0 flex-1 flex-col overflow-hidden"},Wt={class:"relative min-h-0 flex-1"},Xt={key:0,class:"flex h-full items-center justify-center"},Yt={key:1,class:"mx-auto flex h-full max-w-lg flex-col items-center justify-center pb-16 text-center"},Zt={class:"mb-4 flex h-12 w-12 items-center justify-center rounded-2xl bg-primary-50 text-primary-500 dark:bg-primary-500/10 dark:text-primary-300"},ea={class:"text-base text-gray-800 dark:text-gray-100"},ta={class:"mt-2 text-sm leading-6 text-gray-500 dark:text-gray-400"},aa={key:2,class:"mx-auto max-w-3xl space-y-4"},sa={key:0,class:"flex justify-center pb-2"},la={key:1,class:"qa-pair space-y-6 pb-4"},oa={class:"shrink-0 px-4 pb-4"},na={class:"relative mx-auto max-w-3xl overflow-visible rounded-2xl bg-white shadow-[0_2px_14px_rgba(0,0,0,0.04)] ring-1 ring-gray-200/60 transition-all focus-within:ring-primary-500/40 focus-within:shadow-[0_4px_20px_rgba(0,0,0,0.08)] dark:bg-page-dark dark:ring-white/5"},Ca=_e({__name:"index",setup(ue){const{t:_,locale:ae}=ke(),z=Fe(),s=Be(),D=Se(),S=Le(),h=st(),O=we(),{chatKey:A,state:f}=h.ensureGlobalState(ae.value),k=ye(f,"messages"),j=ye(f,"isAIThinking"),v=ye(f,"currentAIChatId"),w=g([]),G=g(!1),I=g(!0),L=g(null);let q=!1,C=0,b=0,$=null;function M(){return!q&&z.name==="global-ai"}const R=g(0),T=g(!1),P=g(null),F=H(()=>et(k.value)),{messagesContainer:se,showScrollToBottom:J,handleScrollToBottom:re,scrollToBottom:le}=Ke(k,j),{visiblePairs:oe,hasOlderPairs:ce,loadOlderPairs:Y}=Je(F,v,se);async function Q(t){!M()||(typeof z.query.aiChatId=="string"?z.query.aiChatId:null)===t||await s.replace({query:{...z.query,aiChatId:t||void 0}})}async function ne(){G.value=!0;try{w.value=await O.getGlobalAIChats()}catch(t){D.fail(_("ai.global.toast.loadFailed"),{description:String(t)})}finally{G.value=!1}}async function N(t,o=null){const y=++C,l=await h.loadAIChat(A,t);if(!(y!==C||!M())){if(!l){D.fail(_("ai.global.toast.loadFailed"));return}I.value=!1,await Q(t),!(y!==C||!M())&&(await ge(),o?await de(o):(P.value=null,le(!0)))}}async function de(t){if(!F.value.some(l=>l.user?.id===t||l.assistant?.id===t||l.standalone?.id===t)){D.warn(_("ai.global.memory.sourceUnavailable"));return}for(;ce.value&&!oe.value.some(l=>l.user?.id===t||l.assistant?.id===t||l.standalone?.id===t);)await Y();P.value=t,await ge(),se.value?.querySelector(`[data-ai-message-id="${CSS.escape(t)}"]`)?.scrollIntoView({behavior:"smooth",block:"center"}),$&&clearTimeout($),$=setTimeout(()=>{P.value===t&&(P.value=null)},4e3)}async function W(t){await N(t.aiChatId,t.messageId)}function ie(){C++,h.startNewAIChat(A)&&(L.value?.clearDraft(),I.value=!1,Q(null))}async function me(t){try{await O.updateAIChatTitle(t.id,t.title);const o=w.value.find(y=>y.id===t.id);o&&(o.title=t.title)}catch(o){D.fail(_("ai.global.toast.renameFailed"),{description:String(o)})}}async function fe(t){try{await O.deleteAIChat(t),w.value=w.value.filter(o=>o.id!==t),v.value===t&&ie()}catch(o){D.fail(_("ai.global.toast.deleteFailed"),{description:String(o)})}}async function pe(t){const o=await h.sendMessage(A,t.content,{entityRefs:t.entityRefs,onAccepted:t.onAccepted});if(o.success){le(!0),await ne();return}if(o.reason!=="aborted"){if(o.reason==="no_config"){S.openSettings("ai","defaultModel");return}o.reason==="busy"&&D.warn(_("ai.global.toast.busy"))}}return K(ae,t=>{h.ensureGlobalState(t)}),K(v,(t,o)=>{t!==o&&(I.value||Q(t),t&&ne())}),K(v,async t=>{const o=++b;if(!t){R.value=0;return}try{const y=await O.estimateContextTokens(t);if(o!==b||v.value!==t)return;R.value=y.success?y.tokens:0}catch{if(o!==b||v.value!==t)return;R.value=0}},{immediate:!0}),K(()=>z.query.aiChatId,t=>{const o=typeof t=="string"?t:null;if(!(I.value||j.value)){if(!o){v.value&&h.startNewAIChat(A);return}o!==v.value&&N(o)}}),Ne(async()=>{if(h.selectAssistantForSession(A,De(ae.value)),await ne(),!M())return;const t=++C,o=typeof z.query.aiChatId=="string"?z.query.aiChatId:null;let y=o?await h.loadAIChat(A,o):!1;if(t!==C||!M())return;const l=w.value[0]?.id;!y&&l&&l!==o&&(y=await h.loadAIChat(A,l),t!==C||!M())||(y||h.startNewAIChat(A),M()&&(I.value=!1,await Q(v.value),M()&&(await ge(),M()&&le(!0))))}),Oe(()=>{q=!0,C++,b++,$&&clearTimeout($)}),(t,o)=>{const y=Ce;return c(),m("div",Ht,[u(at,{title:n(_)("ai.global.title"),description:n(_)("ai.global.subtitle"),icon:"i-heroicons-sparkles","icon-class":"bg-primary-600 text-white dark:bg-primary-500 dark:text-white",size:"compact"},{actions:E(()=>[i("button",{type:"button",class:"flex items-center gap-1 rounded-md px-1.5 py-1 text-xs text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200","aria-expanded":T.value,onClick:o[0]||(o[0]=l=>T.value=!0)},[u(y,{name:"i-lucide-brain",class:"h-3.5 w-3.5"}),i("span",null,d(n(_)("ai.global.memory.button")),1)],8,Kt),u(Qe,{"current-ai-chat-id":v.value,"current-messages":k.value,"fallback-title":n(_)("ai.global.title")},null,8,["current-ai-chat-id","current-messages","fallback-title"])]),_:1},8,["title","description"]),i("div",Jt,[u(We,{"session-id":"","active-id":v.value,conversations:w.value,loading:G.value,disabled:j.value,onSelect:N,onCreate:ie,onRename:me,onDelete:fe},null,8,["active-id","conversations","loading","disabled"]),i("section",Qt,[i("div",Wt,[i("div",{ref_key:"messagesContainer",ref:se,class:"absolute inset-0 overflow-y-auto px-5 py-6"},[I.value?(c(),m("div",Xt,[u(y,{name:"i-lucide-loader-2",class:"h-5 w-5 animate-spin text-gray-400"})])):k.value.length===0?(c(),m("div",Yt,[i("div",Zt,[u(y,{name:"i-heroicons-chat-bubble-left-right",class:"h-6 w-6"})]),i("h2",ea,d(n(_)("ai.global.empty.title")),1),i("p",ta,d(n(_)("ai.global.empty.description")),1)])):(c(),m("div",aa,[n(ce)?(c(),m("div",sa,[i("button",{type:"button",class:"flex h-8 items-center gap-1.5 rounded-full px-3 text-xs text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",onClick:o[1]||(o[1]=(...l)=>n(Y)&&n(Y)(...l))},[u(y,{name:"i-heroicons-arrow-up",class:"h-3.5 w-3.5"}),B(" "+d(n(_)("ai.chat.history.loadEarlier")),1)])])):U("",!0),(c(!0),m(te,null,be(n(oe),l=>(c(),m(te,{key:l.id},[l.standalone?(c(),ee(he,{key:0,role:l.standalone.role,content:l.standalone.content,timestamp:l.standalone.timestamp},null,8,["role","content","timestamp"])):(c(),m("div",la,[l.user?(c(),ee(he,{key:0,role:l.user.role,"message-id":l.user.id,content:l.user.content,timestamp:l.user.timestamp,"entity-refs":l.user.entityRefs,highlighted:P.value===l.user.id},null,8,["role","message-id","content","timestamp","entity-refs","highlighted"])):U("",!0),l.assistant&&(l.assistant.content||l.assistant.contentBlocks?.length||!l.assistant.isStreaming)?(c(),ee(he,{key:1,role:l.assistant.role,"message-id":l.assistant.id,content:l.assistant.content,timestamp:l.assistant.timestamp,"is-streaming":l.assistant.isStreaming,"process-duration-ms":l.assistant.processDurationMs,"content-blocks":l.assistant.contentBlocks,"show-capture-button":!l.assistant.isStreaming,"active-tool":l.assistant.isStreaming?n(f).currentToolStatus:null,highlighted:P.value===l.assistant.id},null,8,["role","message-id","content","timestamp","is-streaming","process-duration-ms","content-blocks","show-capture-button","active-tool","highlighted"])):l.assistant?.isStreaming?(c(),ee(Xe,{key:2,"current-tool-status":n(f).currentToolStatus,"agent-status":n(f).agentStatus},null,8,["current-tool-status","agent-status"])):U("",!0)]))],64))),128))]))],512),u(Ge,{name:"fade-up"},{default:E(()=>[n(J)?(c(),m("button",{key:0,type:"button",class:"absolute bottom-4 left-1/2 z-10 flex -translate-x-1/2 items-center gap-1.5 rounded-full bg-gray-800/90 px-3 py-1.5 text-xs text-white shadow-lg backdrop-blur-sm hover:bg-gray-700 dark:bg-gray-700/90",onClick:o[2]||(o[2]=(...l)=>n(re)&&n(re)(...l))},[u(y,{name:"i-heroicons-arrow-down",class:"h-3.5 w-3.5"}),B(" "+d(n(_)("ai.chat.scrollToBottom")),1)])):U("",!0)]),_:1})]),i("div",oa,[i("div",na,[u(Ye,{ref_key:"chatInputRef",ref:L,embedded:"",disabled:j.value,status:j.value?"streaming":"ready","mention-scope":"global","skills-enabled":!1,placeholder:n(_)("ai.global.input.placeholder"),onSend:pe,onStop:o[3]||(o[3]=l=>n(h).stopGeneration(n(A)))},null,8,["disabled","status","placeholder"]),u(Ze,{class:"pb-1.5 pl-2 pr-[52px] pt-0.5","session-token-usage":n(f).sessionTokenUsage,"agent-status":n(f).agentStatus,"estimated-context-tokens":R.value},null,8,["session-token-usage","agent-status","estimated-context-tokens"])])])])]),u(Gt,{open:T.value,"onUpdate:open":o[4]||(o[4]=l=>T.value=l),onViewSource:W},null,8,["open"])])}}});export{Ca as default};
@@ -0,0 +1 @@
1
+ import{e as o,b as S,d as L,a6 as q,ak as B,aD as A,ba as K,bb as U,bc as z,bd as H,K as G,al as J,o as p,c as j,z as R,w as _,f as k,g as t,a1 as O,be as E,l as Q,aE as W,k as X,aJ as Z,ah as ee}from"./index-DnpnIyle.js";import{P as ae}from"./PageHeader-D4up77TB.js";import{_ as F}from"./TimeSelect.vue_vue_type_script_setup_true_lang-DKa1flT-.js";import{_ as te}from"./PageTabs.vue_vue_type_script_setup_true_lang-DYQRFk9s.js";import"./vendor-snapdom--nZvo8Sg.js";import"./Select-Beeqv0wU.js";import"./useFormControl-B0aShtLp.js";import"./clamp-jFYhBC76.js";import"./Tabs-B7-Koq3x.js";import"./Tabs-RWKHwtfM.js";import"./RovingFocusItem-DHaiTb4j.js";import"./DatePicker.vue_vue_type_script_setup_true_lang-CQuub8-f.js";function oe(u,m,l,f){const s=u?.state;return s&&(!l||l.includes(s.mode))?{...s}:{mode:m,year:f}}function ne(u){return[u.defaultMode,u.allowedModes.join(","),u.allowedRecentDays?.join(",")].join(":")}function se(u,m){const l=new Date().getFullYear(),f=Math.floor(Date.now()/1e3),s=S(null),h=S(l),y=S(0),d=S([l]),v=o(()=>oe(s.value,u?.value??"year",m?.value,h.value)),T=o(()=>{const i=d.value.at(-1)??l;return{availableYears:d.value,fullRange:{start:Math.floor(new Date(i,0,1).getTime()/1e3),end:f}}});function n(i){const g=[...new Set([l,...i])].sort((r,w)=>w-r);g.join(",")!==d.value.join(",")&&(d.value=g)}function x(i){h.value=i,s.value=null,y.value++}return{modelValue:s,componentKey:y,initialState:v,rangeSource:T,setAvailableYears:n,switchToYear:x}}const le={class:"flex h-full flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100",style:{"padding-top":"var(--titlebar-area-height)"}},ie={key:1,class:"mt-3 flex justify-end pb-1.5"},re=L({__name:"index",setup(u){const{t:m}=q(),{translate:l}=B(),f=A(),s=K(),{controller:h,snapshot:y}=U(),d=z(s),v=o(()=>String(f.meta.insightPageId??d[0]?.id??"")),T=o(()=>d.find(e=>e.id===v.value)),n=o(()=>T.value?.filters?.time),x=o(()=>n.value?.defaultMode??"year"),i=o(()=>n.value?[...n.value.allowedModes]:void 0),g=se(x,i),{modelValue:r,componentKey:w,initialState:Y,rangeSource:I}=g,b=s.ui.insightScope;if(!(b instanceof H))throw new Error("Insight scope host controller is unavailable");const N=b.attachTimeCommands({setAvailableYears:g.setAvailableYears,switchToYear:g.switchToYear}),P=G([r,n],([e,c])=>{const a=e?.state;b.updateSnapshot({time:e&&a&&c?.allowedModes.includes(a.mode)?{mode:a.mode,startTs:e.startTs,endTs:e.endTs,isFullRange:e.isFullRange,recentDays:a.recentDays,year:a.year,quarterYear:a.quarterYear,quarter:a.quarter,customStart:a.customStart,customEnd:a.customEnd}:void 0})},{immediate:!0}),$=o(()=>(y.value.revision,h.getResolvedLayout())),D=o(()=>$.value.primary.find(e=>e.kind==="group"&&e.entries.some(({page:c})=>c.id===v.value))),V=o(()=>(D.value?.kind==="group"?D.value.entries:[]).map(({page:e})=>({id:e.id,label:l(e.title),icon:e.icon,to:{name:e.routeName}}))),C=o(()=>n.value?.allowedRecentDays?[...n.value.allowedRecentDays]:void 0),M=o(()=>{const e=n.value;return e?ne(e):"none"});return J(()=>{P(),N(),b.updateSnapshot({})}),(e,c)=>(p(),j("div",le,[R(ae,{title:t(m)("insight.title"),icon:"i-heroicons-presentation-chart-bar","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",size:"compact"},{default:_(()=>[V.value.length>0?(p(),k(t(te),{key:0,class:"mt-3 min-h-[38px] pb-1.5","model-value":v.value,items:V.value,"aria-label":t(m)("insight.tabs.nav")},O({_:2},[n.value?{name:"right",fn:_(()=>[(p(),k(F,{key:`${t(w)}:${M.value}`,modelValue:t(r),"onUpdate:modelValue":c[0]||(c[0]=a=>E(r)?r.value=a:null),"range-source":t(I),"allowed-modes":i.value,"allowed-recent-days":C.value,"initial-state":t(Y)},null,8,["modelValue","range-source","allowed-modes","allowed-recent-days","initial-state"]))]),key:"0"}:void 0]),1032,["model-value","items","aria-label"])):n.value?(p(),j("div",ie,[(p(),k(F,{key:`${t(w)}:${M.value}`,modelValue:t(r),"onUpdate:modelValue":c[1]||(c[1]=a=>E(r)?r.value=a:null),"range-source":t(I),"allowed-modes":i.value,"allowed-recent-days":C.value,"initial-state":t(Y)},null,8,["modelValue","range-source","allowed-modes","allowed-recent-days","initial-state"]))])):Q("",!0)]),_:1},8,["title"]),R(t(Z),null,{default:_(({Component:a})=>[R(W,{name:"insight-tab-slide",mode:"out-in"},{default:_(()=>[(p(),k(X(a),{key:v.value}))]),_:2},1024)]),_:1})]))}}),Se=ee(re,[["__scopeId","data-v-7e7305c7"]]);export{Se as default};