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
@@ -1 +0,0 @@
1
- import{f as o,r as S,a as L,a3 as q,aj as B,aC as A,b9 as U,ba as z,bb as H,bc as K,J as G,ak as J,o as p,h as j,z as x,w as _,c as k,e as t,$ as O,bd as F,l as Q,aD as W,k as X,aF as Z,ae as ee}from"./index-sWxuTsa7.js";import{P as ae}from"./PageHeader-BDPf4NuI.js";import{_ as $}from"./TimeSelect.vue_vue_type_script_setup_true_lang-Ccunouyf.js";import{_ as te}from"./PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js";import"./vendor-snapdom--nZvo8Sg.js";import"./Select-DLK2LYhO.js";import"./useFormControl-DVawP2DO.js";import"./clamp-jFYhBC76.js";import"./Tabs-N3Q-Mpqi.js";import"./Tabs-D1UiZNaZ.js";import"./RovingFocusItem-DC_06OmN.js";import"./DatePicker.vue_vue_type_script_setup_true_lang-DqNBNa1D.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 R(i){h.value=i,s.value=null,y.value++}return{modelValue:s,componentKey:y,initialState:v,rangeSource:T,setAvailableYears:n,switchToYear:R}}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=U(),{controller:h,snapshot:y}=z(),d=H(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),R=o(()=>n.value?.defaultMode??"year"),i=o(()=>n.value?[...n.value.allowedModes]:void 0),g=se(R,i),{modelValue:r,componentKey:w,initialState:Y,rangeSource:I}=g,b=s.ui.insightScope;if(!(b instanceof K))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}),E=o(()=>(y.value.revision,h.getResolvedLayout())),D=o(()=>E.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,[x(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 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($,{key:`${t(w)}:${M.value}`,modelValue:t(r),"onUpdate:modelValue":c[0]||(c[0]=a=>F(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($,{key:`${t(w)}:${M.value}`,modelValue:t(r),"onUpdate:modelValue":c[1]||(c[1]=a=>F(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"]),x(t(Z),null,{default:_(({Component:a})=>[x(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-74269df3"]]);export{Se as default};
@@ -1 +0,0 @@
1
- import{a as G,o as d,h as m,i as e,F as Y,j as U,p as s,e as r,f as u,n as W,ae as Q,c as K,z as C,w as B,a6 as E,a4 as Z,am as X,r as q,af as ee,ah as te,ai as ae,aj as se,J as ne,ak as re,Y as oe,l as I,a5 as ie,bt as le}from"./index-sWxuTsa7.js";import{_ as ce}from"./LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js";import{A as ue}from"./service-CVoA9yNf.js";import{_ as de,g as ge}from"./EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js";import{_ as V}from"./ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js";import{C as me}from"./EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js";import"./vendor-echarts-wordcloud-B8CF_NgP.js";import"./vendor-snapdom--nZvo8Sg.js";import"./vendor-echarts-hTLhTs52.js";import"./vendor-zrender-D8psf1AA.js";const xe=1440*60*1e3;function ve(v){const t=new Map;for(const o of v){if(o.messageCount<=0)continue;const l=pe(o.date);l!==null&&t.set(l,(t.get(l)??0)+o.messageCount)}const n=[...t.keys()].sort((o,l)=>o-l);if(n.length===0)return{longestActiveStreak:0,topWeekday:null,weekdayMessageRate:null,weekendMessageRate:null};const x=Array.from({length:7},()=>0);let _=1,y=1;n.forEach((o,l)=>{const p=(new Date(o).getUTCDay()+6)%7;x[p]+=t.get(o)??0,l!==0&&(o-n[l-1]===xe?(y++,_=Math.max(_,y)):y=1)});const k=x.reduce((o,l)=>o+l,0),A=x[5]+x[6],w=Math.round(A/k*100),i=x.reduce((o,l,p)=>l>x[o]?p:o,0);return{longestActiveStreak:_,topWeekday:i+1,weekdayMessageRate:100-w,weekendMessageRate:w}}function pe(v){const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(v);if(!t)return null;const n=Number(t[1]),x=Number(t[2]),_=Number(t[3]),y=Date.UTC(n,x-1,_),k=new Date(y);return k.getUTCFullYear()!==n||k.getUTCMonth()!==x-1||k.getUTCDate()!==_?null:y}const he={class:"annual-calendar"},ye={class:"annual-calendar-months grid grid-cols-2 gap-x-4 gap-y-5"},ke={class:"mb-1.5 text-[11px] font-bold text-gray-500 dark:text-zinc-400"},fe={class:"grid grid-cols-7 gap-[3px]","aria-hidden":"true"},be=["title"],_e={class:"mt-4 flex items-center justify-end gap-1.5 text-[10px] text-gray-400 dark:text-zinc-500"},we=G({__name:"InsightCalendarGrid",props:{t:{type:Function},range:{},data:{},formatValue:{type:Function}},setup(v){const t=v,n=t.t,x=u(()=>Math.max(...t.data.map(o=>o.value),1)),_=u(()=>new Map(t.data.map(o=>[o.date,o.value]))),y=u(()=>new Date(t.range.startTs*1e3)),k=u(()=>new Date(t.range.endTs*1e3)),A=u(()=>{const o=y.value,l=k.value,p=[],h=t.range.year??o.getFullYear(),$=t.range.mode==="year"?new Date(h,0,1):new Date(o.getFullYear(),o.getMonth(),1),F=t.range.mode==="year"?new Date(h,11,1):new Date(l.getFullYear(),l.getMonth(),1);for(;$<=F;){const N=$.getFullYear(),M=$.getMonth(),R=`${N}-${String(M+1).padStart(2,"0")}`,f=new Date(N,M+1,0).getDate(),P=Array.from({length:f},(O,L)=>{const T=L+1,a=`${R}-${String(T).padStart(2,"0")}`,g=new Date(N,M,T),S=_.value.get(a)??0,c=g>=w(o)&&g<=w(l);return{key:a,day:T,count:S,inRange:c,level:c&&S>0?Math.max(1,Math.ceil(S/x.value*4)):0}});p.push({key:R,label:t.range.mode==="year"?t.t("monthLabel",{month:M+1}):R.replace("-","/"),leadingDays:(new Date(N,M,1).getDay()+6)%7,days:P}),$.setMonth($.getMonth()+1)}return p});function w(o){return new Date(o.getFullYear(),o.getMonth(),o.getDate())}function i(o){return t.formatValue?.(o)??`${o} ${t.t("messages")}`}return(o,l)=>(d(),m("div",he,[e("div",ye,[(d(!0),m(Y,null,U(A.value,p=>(d(),m("div",{key:p.key,class:"min-w-0"},[e("div",ke,s(p.label),1),e("div",fe,[(d(!0),m(Y,null,U(p.leadingDays,h=>(d(),m("span",{key:`blank-${h}`,class:"aspect-square min-h-[7px] rounded-[3px] bg-gray-50 dark:bg-zinc-800/30"}))),128)),(d(!0),m(Y,null,U(p.days,h=>(d(),m("span",{key:h.key,class:W(["aspect-square min-h-[7px] rounded-[3px]",{"opacity-30":!h.inRange,"bg-gray-50 dark:bg-zinc-800/30":h.level===0,"bg-pink-100 dark:bg-pink-500/10":h.level===1,"bg-pink-200 dark:bg-pink-500/25":h.level===2,"bg-pink-400 dark:bg-pink-500/50":h.level===3,"bg-pink-600 dark:bg-pink-500/80":h.level===4}]),title:`${h.key}: ${i(h.count)}`},null,10,be))),128))])]))),128))]),e("div",_e,[e("span",null,s(r(n)("calendar.less")),1),l[0]||(l[0]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-100 dark:bg-pink-500/10"},null,-1)),l[1]||(l[1]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-200 dark:bg-pink-500/25"},null,-1)),l[2]||(l[2]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-400 dark:bg-pink-500/50"},null,-1)),l[3]||(l[3]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-600 dark:bg-pink-500/80"},null,-1)),e("span",null,s(r(n)("calendar.more")),1)])]))}}),De=Q(we,[["__scopeId","data-v-593a96f3"]]),Ce=G({__name:"AnnualMonthlyTrend",props:{t:{type:Function},range:{},data:{},height:{}},setup(v){const t=v,n=u(()=>({labels:t.data.map(x=>t.range.mode==="year"?t.t("monthLabel",{month:Number(x.month.slice(5))}):x.month.replace("-","/")),values:t.data.map(x=>x.value)}));return(x,_)=>(d(),K(r(de),{data:n.value,height:v.height??260,"border-radius":3},null,8,["data","height"]))}}),Me={class:"grid gap-4 xl:grid-cols-7"},Se={class:"relative z-10 min-w-0 px-5 pt-6 pb-5 sm:px-8 sm:pt-8 sm:pb-6"},ze={class:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-3xl"},Te={class:"mt-6"},$e={class:"max-w-3xl space-y-3 text-gray-600 dark:text-zinc-300"},Ae={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-lg leading-relaxed sm:text-xl"},Ne={class:"font-black text-2xl tracking-tight tabular-nums text-pink-600 sm:text-3xl dark:text-pink-400"},Le={class:"font-black text-2xl tabular-nums text-blue-600 sm:text-3xl dark:text-blue-400"},Ye={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-base leading-relaxed sm:text-lg"},Fe={class:"font-black text-2xl tabular-nums text-indigo-600 dark:text-indigo-400"},Re={class:"font-black text-2xl tabular-nums text-amber-600 dark:text-amber-400"},Ue={class:"mt-7"},je={class:"mb-2 text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-zinc-500"},Ie={class:"grid grid-cols-2 gap-2 lg:grid-cols-4"},Be={class:"min-w-0"},Ee={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},Pe={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-zinc-500"},Oe={class:"mt-6 w-full min-w-0"},Ve={class:"mb-1 flex flex-wrap items-center justify-between gap-3"},We={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-zinc-300"},qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ge={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-zinc-800"},He=["aria-pressed","onClick"],Ke={class:"mt-5 flex flex-wrap items-center justify-between gap-x-6 gap-y-1 border-t border-gray-200/60 pt-4 font-mono text-[10px] text-gray-400 dark:border-white/5 dark:text-zinc-500"},Je={class:"grid min-w-0 gap-4 xl:col-span-4"},Xe={class:"min-w-0 p-5 sm:p-6"},Ze={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},Qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},et={key:0,class:"mt-5 grid grid-cols-2 gap-x-5 gap-y-4 sm:grid-cols-3"},tt={class:"flex items-end justify-between gap-2"},at={class:"truncate text-xs font-medium text-gray-600 dark:text-zinc-300"},st={class:"font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},nt={class:"mt-2 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},rt={class:"mt-1.5 font-mono text-[10px] text-gray-400 dark:text-zinc-500"},ot={key:1,class:"flex h-28 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},it={class:"min-w-0 p-5 sm:p-6"},lt={class:"flex items-start justify-between gap-3"},ct={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},ut={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},dt={class:"flex shrink-0 gap-3 text-right"},gt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},mt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},xt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},vt={key:0,class:"mt-5 flex h-24 items-end gap-2"},pt={class:"flex h-16 w-full items-end rounded-sm bg-gray-100 dark:bg-zinc-800"},ht=["title"],yt={class:"w-full truncate text-center font-mono text-[9px] text-gray-400 dark:text-zinc-500"},kt={key:1,class:"flex h-24 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},ft={class:"h-full min-w-0 p-5 sm:p-6"},bt={class:"flex items-start justify-between gap-4"},_t={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},wt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Dt={class:"shrink-0 text-right"},Ct={class:"font-mono text-lg font-black tabular-nums text-gray-900 dark:text-white"},Mt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},St={class:"mt-5"},zt=G({__name:"AnnualInsightBoard",props:{t:{type:Function},formatDate:{type:Function},formatNumber:{type:Function},range:{},metrics:{},coverage:{},monthlyActivity:{},monthlyDirectContacts:{},dailyActivity:{},messageTypes:{},textLength:{}},setup(v){const t=v,n=t.t,x=q("messages"),_=u(()=>t.range.mode==="year"?t.t("overview.yearTitle",{year:t.range.year}):t.t("overview.recentTitle")),y=u(()=>{const a={day:"2-digit",month:"2-digit",year:"numeric"};return`${t.formatDate(t.range.startTs*1e3,a)} – ${t.formatDate(t.range.endTs*1e3,a)}`}),k=u(()=>t.monthlyActivity.reduce((a,g)=>!a||g.messageCount>a.messageCount?g:a,null)),A=u(()=>t.dailyActivity.reduce((a,g)=>!a||g.messageCount>a.messageCount?g:a,null)),w=u(()=>[...t.messageTypes].sort((a,g)=>g.count-a.count).slice(0,6)),i=u(()=>t.messageTypes.reduce((a,g)=>a+g.count,0)),o=u(()=>t.messageTypes.find(a=>a.type===ee.TEXT)?.count??0),l=u(()=>L(o.value,i.value)),p=u(()=>Math.max(...t.textLength.buckets.map(a=>a.count),1)),h=u(()=>{const a=Math.max(1,Math.round((t.range.endTs-t.range.startTs)/86400)+1);return L(t.metrics.activeDayCount,a)}),$=u(()=>ve(t.dailyActivity)),F=u(()=>[{key:"dailyContacts",value:f(t.metrics.averageDirectContactsPerDay),label:t.t("overview.dailyContacts"),subtext:t.t("overview.perDay"),icon:"i-heroicons-user-plus",colorClass:"text-blue-600 dark:text-blue-400"},{key:"peakMonth",value:P(k.value?.month),label:t.t("overview.peakMonth"),subtext:t.t("overview.messagesCount",{count:f(k.value?.messageCount??0)}),icon:"i-heroicons-calendar-days",colorClass:"text-pink-600 dark:text-pink-400"},{key:"peakDay",value:O(A.value?.date),label:t.t("overview.peakDay"),subtext:t.t("overview.messagesCount",{count:f(A.value?.messageCount??0)}),icon:"i-heroicons-fire",colorClass:"text-red-600 dark:text-red-400"},{key:"longestActiveStreak",value:f($.value.longestActiveStreak),label:t.t("overview.longestActiveStreak"),subtext:t.t("overview.consecutiveActiveDays"),icon:"i-heroicons-bolt",colorClass:"text-amber-600 dark:text-amber-400"}]),N=u(()=>x.value==="messages"?t.monthlyActivity.map(a=>({month:a.month,value:a.messageCount})):t.monthlyDirectContacts.map(a=>({month:a.month,value:a.contactCount}))),M=u(()=>t.dailyActivity.map(a=>({date:a.date,value:a.messageCount}))),R=u(()=>t.t(x.value==="messages"?"sections.overviewDescription":"sections.directContactsDescription"));function f(a){return t.formatNumber(a,Number.isInteger(a)?void 0:{maximumFractionDigits:1})}function P(a){return a?t.range.mode==="year"?t.t("monthLabel",{month:Number(a.slice(5))}):a.replace("-","/"):"-"}function O(a){if(!a)return"-";const[g,S,c]=a.split("-");return t.formatDate(new Date(Number(g),Number(S)-1,Number(c)),{day:"2-digit",month:"2-digit"})}function L(a,g){return g>0?Math.round(a/g*100):0}function T(a){return n(a)}return(a,g)=>{const S=Z;return d(),m("div",Me,[C(r(V),{class:"relative isolate overflow-hidden xl:col-span-7"},{default:B(()=>[C(r(me)),e("section",Se,[e("h2",ze,s(_.value),1),e("div",Te,[e("div",$e,[e("p",Ae,[e("span",null,s(r(n)("overview.narrative.messagesPrefix")),1),e("span",Ne,s(f(v.metrics.sentMessageCount)),1),e("span",null,s(r(n)("overview.narrative.messagesSuffix")),1),e("span",Le,s(f(v.metrics.averageMessagesPerDay)),1),e("span",null,s(r(n)("overview.narrative.dailySuffix")),1)]),e("p",Ye,[e("span",null,s(r(n)("overview.narrative.activePrefix")),1),e("span",Fe,s(f(v.metrics.activeDayCount)),1),e("span",null,s(r(n)("overview.narrative.activeMiddle")),1),e("span",Re,s(f(v.metrics.directContactCount)),1),e("span",null,s(r(n)("overview.narrative.contactsSuffix")),1)])]),e("div",Ue,[e("div",je,s(r(n)("overview.keyMetrics")),1),e("div",Ie,[(d(!0),m(Y,null,U(F.value,c=>(d(),m("div",{key:c.key,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[C(S,{name:c.icon,class:W(["mt-0.5 h-3.5 w-3.5 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Be,[e("div",{class:W(["truncate font-mono text-sm leading-tight font-black tabular-nums",c.colorClass])},s(c.value),3),e("div",Ee,s(c.label),1),e("div",Pe,s(c.subtext),1)])]))),128))])]),e("div",Oe,[e("div",Ve,[e("div",null,[e("h3",We,s(r(n)("sections.overview")),1),e("p",qe,s(R.value),1)]),e("div",Ge,[(d(),m(Y,null,U(["messages","contacts"],c=>e("button",{key:c,type:"button",class:W(["rounded-md px-2.5 py-1 text-[10px] font-medium transition-colors",x.value===c?"bg-white text-gray-900 shadow-sm dark:bg-zinc-700 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-zinc-400 dark:hover:text-zinc-200"]),"aria-pressed":x.value===c,onClick:J=>x.value=c},s(r(n)(`overview.monthlyTrend.${c}`)),11,He)),64))])]),C(Ce,{t:r(n),range:v.range,data:N.value,height:240},null,8,["t","range","data"])])]),e("div",Ke,[e("span",null,s(y.value),1),e("span",null,s(r(n)("status.coverage",{analyzed:v.coverage.analyzedSessions,total:v.coverage.totalSessions})),1)])])]),_:1}),e("div",Je,[C(r(V),null,{default:B(()=>[e("section",Xe,[e("h3",Ze,[g[0]||(g[0]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("sections.messageTypes")),1)]),e("p",Qe,s(r(n)("sections.messageTypesDescription")),1),w.value.length?(d(),m("div",et,[(d(!0),m(Y,null,U(w.value,c=>(d(),m("div",{key:c.type,class:"min-w-0"},[e("div",tt,[e("span",at,s(r(ge)(c.type,T)),1),e("span",st,s(L(c.count,i.value))+"% ",1)]),e("div",nt,[e("div",{class:"h-full rounded-full bg-pink-500 dark:bg-pink-400",style:X({width:`${L(c.count,i.value)}%`})},null,4)]),e("div",rt,s(f(c.count)),1)]))),128))])):(d(),m("div",ot,s(r(n)("noData")),1))])]),_:1}),C(r(V),null,{default:B(()=>[e("section",it,[e("div",lt,[e("div",null,[e("h3",ct,[g[1]||(g[1]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("sections.textLength")),1)]),e("p",ut,s(r(n)("overview.textRatio"))+" "+s(l.value)+"% ",1)]),e("div",dt,[e("div",null,[e("div",gt,s(v.textLength.median??"-"),1),e("div",mt,s(r(n)("length.median")),1)]),e("div",null,[e("div",xt,s(v.textLength.p90??"-"),1),g[2]||(g[2]=e("div",{class:"text-[10px] text-gray-400 dark:text-zinc-500"},"P90",-1))])])]),v.textLength.textMessageCount?(d(),m("div",vt,[(d(!0),m(Y,null,U(v.textLength.buckets,c=>(d(),m("div",{key:c.key,class:"flex min-w-0 flex-1 flex-col items-center gap-2"},[e("div",pt,[e("div",{class:"w-full rounded-sm bg-pink-500/80 dark:bg-pink-400/80",style:X({height:`${Math.max(4,c.count/p.value*100)}%`}),title:`${c.key}: ${c.count}`},null,12,ht)]),e("span",yt,s(c.key),1)]))),128))])):(d(),m("div",kt,s(r(n)("noTextData")),1))])]),_:1})]),C(r(V),{class:"xl:col-span-3"},{default:B(()=>[e("section",ft,[e("div",bt,[e("div",null,[e("h3",_t,[g[3]||(g[3]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("overview.activity")),1)]),e("p",wt,s(r(n)("sections.activityDescription")),1)]),e("div",Dt,[e("div",Ct,s(v.metrics.activeDayCount),1),e("div",Mt,s(r(n)("overview.activeRate",{rate:h.value})),1)])]),e("div",St,[C(De,{t:r(n),range:v.range,data:M.value},null,8,["t","range","data"])])])]),_:1})])}}}),Tt={class:"min-h-0 flex-1 overflow-y-auto"},$t={class:"mx-auto w-full max-w-[920px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},At={class:"min-w-0"},Nt={key:1,class:"flex items-center gap-2 rounded-xl border border-amber-100 bg-amber-50/50 px-4 py-2.5 text-xs text-amber-800 backdrop-blur-sm dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Lt={key:2,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-red-200 bg-red-50/50 px-4 py-2.5 text-xs text-red-800 backdrop-blur-sm dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Yt={key:0,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-gray-200 bg-white p-4 text-xs text-gray-600 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-300"},Ft={key:0},Rt={key:1},Gt=G({__name:"index",setup(v){const t=te(),n=ae(le),{formatDate:x,formatNumber:_}=se(),y=t.insightScope,k=t.services.get(ue),A=new Date().getFullYear(),w=q(y.getSnapshot()),i=q(null),o=q("");let l=null,p=0;const h=y.subscribe(()=>{w.value=y.getSnapshot()}),$=k.subscribeOwnerSettingsClosed(()=>{a(!1)}),F=u(()=>{const b=w.value.time;return b?b.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:b.mode==="year"?{mode:"year",year:b.year??A,acceptStale:!0}:null:null}),N=u(()=>JSON.stringify(F.value)),M=u(()=>(i.value?.coverage.missingOwnerSessions??0)+(i.value?.coverage.unresolvedOwnerSessions??0)),R=u(()=>i.value?.task.status==="running"),f=u(()=>i.value?.metrics!==null&&i.value?.metrics!==void 0),P=u(()=>f.value&&i.value?.metrics?.sentMessageCount===0),O=u(()=>(i.value?.coverage.totalSessions??0)>0&&i.value?.coverage.analyzedSessions===0&&M.value>0),L=u(()=>w.value.time?.mode==="year"?w.value.time.year:void 0),T=u(()=>{const b=L.value,z=i.value?.latestDataYear;return b===void 0||z===null||z===void 0||b===z?null:{year:b,latestYear:z}});ne(N,()=>{S(),F.value&&(i.value=null,a(!1))},{immediate:!0}),re(()=>{p++,S(),h(),$()});async function a(b){const z=F.value;if(!z)return;const j=++p;o.value="";try{const D=b?await k.recompute(z):await k.get(z);if(j!==p)return;i.value=D,D.metrics&&y.setAvailableTimeYears(D.availableDataYears),D.task.status==="running"&&g()}catch(D){if(j!==p)return;const H=D instanceof Error?D.message:String(D);o.value=H,oe(`Global insight annual summary failed: ${H}`,D instanceof Error?D.stack:void 0)}}function g(){S(),l=setTimeout(()=>{a(!1)},900)}function S(){l&&(clearTimeout(l),l=null)}function c(){const b=i.value?.latestDataYear;b&&y.switchTimeToYear(b)}function J(){k.openOwnerSettings()}return(b,z)=>{const j=Z,D=ie;return d(),m("main",Tt,[e("div",$t,[M.value>0?(d(),m("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:J},[C(j,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",At,s(r(n)("status.ownerIssues",{count:M.value})),1),C(j,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):I("",!0),i.value?.cache.status==="stale"||R.value&&f.value?(d(),m("div",Nt,[C(j,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}),E(" "+s(r(n)("status.updating")),1)])):I("",!0),o.value||i.value?.task.status==="failed"?(d(),m("div",Lt,[e("span",null,s(r(n)("status.failed")),1),C(D,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:z[0]||(z[0]=H=>a(!0))},{default:B(()=>[E(s(r(n)("actions.retry")),1)]),_:1})])):I("",!0),!f.value&&!o.value&&i.value?.task.status!=="failed"?(d(),K(ce,{key:3,height:"min(52vh, 420px)",text:i.value?.task.status==="running"?r(n)("status.computingProgress",{processed:i.value.task.processedSessions,total:i.value.task.totalSessions}):r(n)("status.loading")},null,8,["text"])):i.value?.metrics&&i.value.textLength?(d(),m(Y,{key:4},[P.value&&!O.value?(d(),m("div",Yt,[T.value?(d(),m("span",Ft,s(r(n)("status.noDataWithLatest",T.value)),1)):(d(),m("span",Rt,s(r(n)("noData")),1)),T.value?(d(),K(D,{key:2,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:c},{default:B(()=>[E(s(r(n)("actions.switchYear",{year:T.value.latestYear})),1)]),_:1})):I("",!0)])):I("",!0),C(zt,{t:r(n),"format-date":r(x),"format-number":r(_),range:i.value.range,metrics:i.value.metrics,coverage:i.value.coverage,"monthly-activity":i.value.monthlyActivity,"monthly-direct-contacts":i.value.monthlyDirectContacts,"daily-activity":i.value.dailyActivity,"message-types":i.value.messageTypes,"text-length":i.value.textLength},null,8,["t","format-date","format-number","range","metrics","coverage","monthly-activity","monthly-direct-contacts","daily-activity","message-types","text-length"])],64)):I("",!0)])])}}});export{Gt as default};
@@ -1 +0,0 @@
1
- import{a as k,a3 as b,aC as y,o as s,h as n,z as l,w as o,e,F as u,j as v,l as r,i as d,p,c as _,a5 as w,n as C,a6 as B,aD as V,k as z,aF as N,f as m,ae as P}from"./index-sWxuTsa7.js";import{P as D}from"./PageHeader-BDPf4NuI.js";import{_ as F}from"./PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js";import{p as H}from"./people-page-header-0jvXFFnh.js";import"./vendor-snapdom--nZvo8Sg.js";const I={class:"flex h-full flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100",style:{"padding-top":"var(--titlebar-area-height)"}},R={key:0,class:"hidden items-center gap-5 text-[11px] sm:flex"},S={key:0,class:"h-3 w-px bg-gray-250 dark:bg-white/10"},T={class:"flex items-center gap-1.5"},$={class:"text-gray-400 dark:text-gray-500"},j={class:"font-mono font-bold text-gray-900 dark:text-white"},E=k({__name:"index",setup(L){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}=H(f);return(U,q)=>{const x=w;return s(),n("div",I,[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(F),{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",R,[(s(!0),n(u,null,v(e(t).stats,i=>(s(),n(u,{key:i.id},[i.dividerBefore?(s(),n("div",S)):r("",!0),d("div",T,[d("span",$,p(i.label),1),d("span",j,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(E,[["__scopeId","data-v-06450f37"]]);export{O as default};
@@ -1 +0,0 @@
1
- import{a as ke,a3 as be,o as c,c as re,w as T,h as f,i as a,p as o,e as r,z as y,a5 as _e,a4 as Se,F as q,j as he,l as E,a6 as Z,aD as Tt,f as u,ae as De,K as Lt,I as $t,ax as It,bf as Ft,J as O,x as Pt,y as Mt,ap as zt,$ as At,am as X,n as U,bg as Nt,r as b,C as Be,bu as Et}from"./index-sWxuTsa7.js";import{_ as Bt}from"./Tabs-D1UiZNaZ.js";import{u as jt}from"./useToast-BA0EwImD.js";import{_ as Vt}from"./ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js";import{_ as Dt}from"./LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js";import{_ as Gt}from"./SectionTabs.vue_vue_type_script_setup_true_lang-C-Zj2biH.js";import{u as Ot}from"./people-page-header-0jvXFFnh.js";import"./vendor-snapdom--nZvo8Sg.js";import"./RovingFocusItem-DC_06OmN.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))])):E("",!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"])):E("",!0)])):E("",!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))])])])):E("",!0)])):E("",!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)])):E("",!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"])])])):E("",!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})])])):E("",!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 Na(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 Ea={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})),N=u(()=>Na({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(()=>Et.map(e=>({label:s(`contacts.timeRange.${e}`),value:e}))),de=Ft(u(()=>({count:N.value.length,getScrollElement:()=>Y.value,estimateSize:e=>Ze(N.value[e]),overscan:10,getItemKey:e=>N.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(()=>N.value.length,()=>{de.value.measure()}),O(xe,()=>{Xe()},{flush:"post"}),O(N,()=>{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<N.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 N.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=N.value.findIndex(d=>d.type==="section"&&d.pool===t);if(i>=0){const d=t==="non_friend"?Math.min(i+1,N.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 Ee(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 Ee(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>=Ne()?"non_friend":"friend"}function Ne(){return 1+k.value.items.length*Ve+(k.value.isLoadingMore?44:0)}async function Ee(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?Ne():null}return(e,t)=>{const i=Bt,d=_e,_=zt,L=Se,$=Nt;return c(),f("div",Ea,[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};