chatlab-cli 0.37.2 → 0.37.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chat-command-G2EX7VHR.mjs → chat-command-RQC44FPF.mjs} +37 -9
- package/dist/chat-command-RQC44FPF.mjs.map +1 -0
- package/dist/{chunk-YI3EQYEG.mjs → chunk-4FAEB4C2.mjs} +12 -12
- package/dist/{chunk-HMVM7VCA.mjs → chunk-5OA4QI3Q.mjs} +3 -3
- package/dist/{chunk-EK5QIJLZ.mjs → chunk-E2ZFGNZQ.mjs} +11 -11
- package/dist/{chunk-F4HVCFZL.mjs → chunk-E6IRRNBQ.mjs} +3 -3
- package/dist/{chunk-FCUUAGGC.mjs → chunk-GDKQKHJT.mjs} +2 -2
- package/dist/{chunk-H46CLFWK.mjs → chunk-HJWBFHNR.mjs} +4 -4
- package/dist/{chunk-L6RJIVLS.mjs → chunk-IDDTW5JN.mjs} +313 -24
- package/dist/chunk-IDDTW5JN.mjs.map +1 -0
- package/dist/{chunk-E6LCCPIB.mjs → chunk-IMJVOODY.mjs} +2 -2
- package/dist/{chunk-T5H56AZV.mjs → chunk-LUENE6L7.mjs} +13 -11
- package/dist/chunk-LUENE6L7.mjs.map +1 -0
- package/dist/{chunk-XQ6Z2KNN.mjs → chunk-O57SQSCO.mjs} +2 -2
- package/dist/{chunk-EFX66A2O.mjs → chunk-ZGXXAPLX.mjs} +2 -2
- package/dist/{chunk-HBAQPF6X.mjs → chunk-ZOHSWBD2.mjs} +104 -55
- package/dist/chunk-ZOHSWBD2.mjs.map +1 -0
- package/dist/cli.mjs +9 -9
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +1 -1
- package/dist/{http-5BRVWAJR.mjs → http-QJDZKDNJ.mjs} +12 -12
- package/dist/{import-IAECQDKC.mjs → import-XK6YM26A.mjs} +7 -7
- package/dist/index.mjs +12 -12
- package/dist/{mcp-XXSQJBGU.mjs → mcp-DMGZFSYN.mjs} +24 -17
- package/dist/mcp-DMGZFSYN.mjs.map +1 -0
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-4HLKMQ7S.mjs → src-4AHJUFCW.mjs} +6 -6
- package/dist/{stream-import-PUG42I36.mjs → stream-import-7VQVT5ST.mjs} +7 -7
- package/dist/{worker-runtime-X5563TVT.mjs → worker-runtime-PQBAV75N.mjs} +5 -5
- package/dist-cli-web/assets/{AISettingsTab-m_r2fFEj.js → AISettingsTab-qS3XKnvh.js} +1 -1
- package/dist-cli-web/assets/{AboutTab-J65UqIuk.js → AboutTab-K-i40dPv.js} +1 -1
- package/dist-cli-web/assets/{Alert-qBIGn_CW.js → Alert-GSvA5B7J.js} +1 -1
- package/dist-cli-web/assets/{ApiSettingsTab-CxWRJI9j.js → ApiSettingsTab-DIVGTR3g.js} +1 -1
- package/dist-cli-web/assets/{BatchManageTab-BINNVwm1.js → BatchManageTab-CJhwvYWV.js} +1 -1
- package/dist-cli-web/assets/{BufferResource-C-jLPrHv.js → BufferResource-Cjm0m7sF.js} +1 -1
- package/dist-cli-web/assets/{CanvasRenderer-kDLW8GSt.js → CanvasRenderer-C-fmrahh.js} +1 -1
- package/dist-cli-web/assets/{CardDecoration-CnYxleQM.js → CardDecoration-Cz54ZPyh.js} +1 -1
- package/dist-cli-web/assets/{ChatRecordDrawer-CMg3FEWH.js → ChatRecordDrawer-Cst8zTUv.js} +1 -1
- package/dist-cli-web/assets/{ChatRecordWorkspace-AfFIMUbZ.js → ChatRecordWorkspace-DKVKaimw.js} +1 -1
- package/dist-cli-web/assets/{Checkbox-D-hAv15R.js → Checkbox-CrlY3jiJ.js} +1 -1
- package/dist-cli-web/assets/{DataDirCleanupNotice-P80h2p4l.js → DataDirCleanupNotice-Cjqiub4e.js} +1 -1
- package/dist-cli-web/assets/{DatePicker.vue_vue_type_script_setup_true_lang-CSp691Uv.js → DatePicker.vue_vue_type_script_setup_true_lang-BYY2UmPA.js} +1 -1
- package/dist-cli-web/assets/{DebugToolsPanel-BK2VbKB0.js → DebugToolsPanel-I00RV_Lr.js} +1 -1
- package/dist-cli-web/assets/{EChart.vue_vue_type_script_setup_true_lang-BcE0mE_N.js → EChart.vue_vue_type_script_setup_true_lang-CRTZh9kh.js} +1 -1
- package/dist-cli-web/assets/{EChartBar.vue_vue_type_script_setup_true_lang-BypaV5wc.js → EChartBar.vue_vue_type_script_setup_true_lang-DjDFhnN9.js} +1 -1
- package/dist-cli-web/assets/{EChartLine.vue_vue_type_script_setup_true_lang-D8SyOfWC.js → EChartLine.vue_vue_type_script_setup_true_lang-BLqlW9E4.js} +1 -1
- package/dist-cli-web/assets/{EChartWordcloud-0rihhg03.js → EChartWordcloud-ChKJM8bU.js} +1 -1
- package/dist-cli-web/assets/{FileDropZone.vue_vue_type_script_setup_true_lang-Dyuzh7Ex.js → FileDropZone.vue_vue_type_script_setup_true_lang-CsRmQhVQ.js} +1 -1
- package/dist-cli-web/assets/{Filter-rD_jWpbO.js → Filter-Duzxgudo.js} +1 -1
- package/dist-cli-web/assets/{GlobalTaskBar-sXQuGvF-.js → GlobalTaskBar-DL0IJxlt.js} +1 -1
- package/dist-cli-web/assets/{GroupRelationshipGalaxyView-BN1L9DFf.js → GroupRelationshipGalaxyView-BZrB2o2g.js} +1 -1
- package/dist-cli-web/assets/{Label-Ce4wl_Ph.js → Label-CaVKlQnJ.js} +1 -1
- package/dist-cli-web/assets/{LoadingState.vue_vue_type_script_setup_true_lang-DmVfwvnD.js → LoadingState.vue_vue_type_script_setup_true_lang-uF54r-dT.js} +1 -1
- package/dist-cli-web/assets/{MessageExportModal-C2IUNPhg.js → MessageExportModal-JpurBsUW.js} +1 -1
- package/dist-cli-web/assets/{PageHeader-D5BcYKBs.js → PageHeader-BciykZ_-.js} +1 -1
- package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-DHly2-fe.js → PageTabs.vue_vue_type_script_setup_true_lang-2Xe2iUFO.js} +1 -1
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-CHPqtqQz.js → RelationshipGalaxyCanvas-BO5-MowG.js} +3 -3
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-qR4S-9n7.js → RelationshipGalaxyThreeCanvas-Dp4CcWU5.js} +1 -1
- package/dist-cli-web/assets/{RenderTargetSystem-BaIFulUj.js → RenderTargetSystem-CfuoUG_y.js} +1 -1
- package/dist-cli-web/assets/{RovingFocusItem-Bqgmzo42.js → RovingFocusItem-FpYwYEP_.js} +1 -1
- package/dist-cli-web/assets/{ScreenCaptureModal-sJqB_hrK.js → ScreenCaptureModal-cElYPaSj.js} +1 -1
- package/dist-cli-web/assets/{SectionTabs.vue_vue_type_script_setup_true_lang-BPt98e6z.js → SectionTabs.vue_vue_type_script_setup_true_lang-pVQMbTsj.js} +1 -1
- package/dist-cli-web/assets/{Select-BAnN4HMs.js → Select-H8Fz6RkU.js} +1 -1
- package/dist-cli-web/assets/{SettingsModal-C4ANMlJJ.js → SettingsModal-52Fw4fVW.js} +2 -2
- package/dist-cli-web/assets/{StorageTab-BgNQliz4.js → StorageTab-BnugE5BO.js} +1 -1
- package/dist-cli-web/assets/{Switch-DddEvDJa.js → Switch-K4aqYC4Y.js} +1 -1
- package/dist-cli-web/assets/{Tabs-DwjL-ueH.js → Tabs-BXjD45rO.js} +1 -1
- package/dist-cli-web/assets/{Tabs-xVtuBuO0.js → Tabs-DJ5p8gb6.js} +1 -1
- package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-CNCVa86b.js → ThemeCard.vue_vue_type_script_setup_true_lang-BLmTpx4f.js} +1 -1
- package/dist-cli-web/assets/{TimeSelect.vue_vue_type_script_setup_true_lang-BehUIWki.js → TimeSelect.vue_vue_type_script_setup_true_lang-geQAlopO.js} +1 -1
- package/dist-cli-web/assets/{VisuallyHiddenInput-ST6JNfSG.js → VisuallyHiddenInput-J2KEIQBX.js} +1 -1
- package/dist-cli-web/assets/{WebGLRenderer-DRraqD4Y.js → WebGLRenderer-BDFzRniS.js} +1 -1
- package/dist-cli-web/assets/{WebGPURenderer-CnzaYARg.js → WebGPURenderer-BKYZyUCZ.js} +1 -1
- package/dist-cli-web/assets/{aiChat-CeJy-gG-.js → aiChat-CdJzpNYW.js} +3 -3
- package/dist-cli-web/assets/{base-BHbtUviQ.js → base-129JztT1.js} +1 -1
- package/dist-cli-web/assets/{browserAll-DYxkitnx.js → browserAll-CZNZDK1i.js} +1 -1
- package/dist-cli-web/assets/{chatMessages-Dj1u-tFB.js → chatMessages-zmzHCUCy.js} +3 -3
- package/dist-cli-web/assets/{cli-web-BtH8nfjA.js → cli-web-_WGCg-ZY.js} +1 -1
- package/dist-cli-web/assets/{fetch-DNmRaRxX.js → fetch-B7Tdp7Uo.js} +1 -1
- package/dist-cli-web/assets/{fetch-JEEBqR_7.js → fetch-BBdyPNj3.js} +1 -1
- package/dist-cli-web/assets/{fetch-DogRrvT6.js → fetch-Bafz8jLM.js} +1 -1
- package/dist-cli-web/assets/{fetch-T5Gi1TUZ.js → fetch-C4W6tD-D.js} +1 -1
- package/dist-cli-web/assets/{fetch-C1Tm66i9.js → fetch-DOsmgros.js} +1 -1
- package/dist-cli-web/assets/{fetch-emZXHmoE.js → fetch-DTPDtL38.js} +1 -1
- package/dist-cli-web/assets/{fetch-ejEMWPM2.js → fetch-DaeoNUip.js} +1 -1
- package/dist-cli-web/assets/{fetch-CGnWNSsG.js → fetch-DgHdAlO7.js} +1 -1
- package/dist-cli-web/assets/{fetch-D7hfFyoG.js → fetch-Di4QpfqL.js} +1 -1
- package/dist-cli-web/assets/{fetch-CAEyoWQA.js → fetch-Dw33HaVP.js} +11 -13
- package/dist-cli-web/assets/{fetch-BJ82mWvv.js → fetch-IP6i-mtr.js} +1 -1
- package/dist-cli-web/assets/{fetch-U9QyidNZ.js → fetch-sbr95ipd.js} +1 -1
- package/dist-cli-web/assets/{host-BUvwCvZR.js → host-CMnAiJSx.js} +1 -1
- package/dist-cli-web/assets/{host-VTWF81F5.js → host-CuuNLUWx.js} +1 -1
- package/dist-cli-web/assets/{index-B3MCGDwx.js → index-BBYtZa7g.js} +1 -1
- package/dist-cli-web/assets/{index-DZK9Njvy.js → index-BOXh7X5Y.js} +1 -1
- package/dist-cli-web/assets/{index-KpnLSzzX.js → index-BepItDCQ.js} +4 -4
- package/dist-cli-web/assets/{index-HjrJ3DXO.js → index-BmGA3geF.js} +1 -1
- package/dist-cli-web/assets/{index-CVRBBnQw.js → index-C-u3l4Uh.js} +1 -1
- package/dist-cli-web/assets/{index-iEQnKg2R.js → index-CN9WMxb3.js} +2 -2
- package/dist-cli-web/assets/{index-DUBl6aBF.js → index-Chh0gCp7.js} +1 -1
- package/dist-cli-web/assets/index-DRFMz0cs.css +1 -0
- package/dist-cli-web/assets/{index-C75W1B5J.css → index-DbP9vQhR.css} +1 -1
- package/dist-cli-web/assets/{index-BI2Rb_L3.js → index-DgCXdbsG.js} +2 -2
- package/dist-cli-web/assets/{index-DQFcmWSa.js → index-DhRaZS6z.js} +1 -1
- package/dist-cli-web/assets/{index-DDt7Tfda.js → index-Dz4yfeg6.js} +1 -1
- package/dist-cli-web/assets/{index-BLYSew5C.js → index-EtteazuD.js} +1 -1
- package/dist-cli-web/assets/index-GNMlsoVH.js +137 -0
- package/dist-cli-web/assets/{index-D9C3dyV8.js → index-bQ9oj54q.js} +3 -3
- package/dist-cli-web/assets/{index-e6fOnhNS.js → index-fsLAooCi.js} +1 -1
- package/dist-cli-web/assets/{people-page-header-DWXwFJ8M.js → people-page-header-CKXRSnpl.js} +1 -1
- package/dist-cli-web/assets/{prompt-Cepfb-5-.js → prompt-DNxAd1Bj.js} +1 -1
- package/dist-cli-web/assets/{semantic-index-config-builder-hTY6QyCe.js → semantic-index-config-builder-CQ27G4TK.js} +1 -1
- package/dist-cli-web/assets/{service-DwCmXFtI.js → service-BwbGKwDn.js} +1 -1
- package/dist-cli-web/assets/service-DQjyjQZx.js +1 -0
- package/dist-cli-web/assets/service-Dtve_40X.js +1 -0
- package/dist-cli-web/assets/useFormControl-CNmp_2bd.js +1 -0
- package/dist-cli-web/assets/{useInsightTabAnalytics-CplGbsbe.js → useInsightTabAnalytics-DaU_ADbQ.js} +4 -4
- package/dist-cli-web/assets/{useTable-Dmpbk7fZ.js → useTable-BYXxnZMd.js} +1 -1
- package/dist-cli-web/assets/{useToast-Bmgpd3sl.js → useToast-DPkgv34s.js} +1 -1
- package/dist-cli-web/assets/{webworkerAll-DkPWEyVL.js → webworkerAll-Um4PrCaA.js} +1 -1
- package/dist-cli-web/index.html +1 -1
- package/package.json +1 -1
- package/dist/chat-command-G2EX7VHR.mjs.map +0 -1
- package/dist/chunk-HBAQPF6X.mjs.map +0 -1
- package/dist/chunk-L6RJIVLS.mjs.map +0 -1
- package/dist/chunk-T5H56AZV.mjs.map +0 -1
- package/dist/mcp-XXSQJBGU.mjs.map +0 -1
- package/dist-cli-web/assets/index-Bs7gk1gf.css +0 -1
- package/dist-cli-web/assets/index-Cza8BzZE.js +0 -137
- package/dist-cli-web/assets/service-BjE0YJaM.js +0 -1
- package/dist-cli-web/assets/service-DQxttlJp.js +0 -1
- package/dist-cli-web/assets/useFormControl-CJyJY8AK.js +0 -1
- /package/dist/{chunk-YI3EQYEG.mjs.map → chunk-4FAEB4C2.mjs.map} +0 -0
- /package/dist/{chunk-HMVM7VCA.mjs.map → chunk-5OA4QI3Q.mjs.map} +0 -0
- /package/dist/{chunk-EK5QIJLZ.mjs.map → chunk-E2ZFGNZQ.mjs.map} +0 -0
- /package/dist/{chunk-F4HVCFZL.mjs.map → chunk-E6IRRNBQ.mjs.map} +0 -0
- /package/dist/{chunk-FCUUAGGC.mjs.map → chunk-GDKQKHJT.mjs.map} +0 -0
- /package/dist/{chunk-H46CLFWK.mjs.map → chunk-HJWBFHNR.mjs.map} +0 -0
- /package/dist/{chunk-E6LCCPIB.mjs.map → chunk-IMJVOODY.mjs.map} +0 -0
- /package/dist/{chunk-XQ6Z2KNN.mjs.map → chunk-O57SQSCO.mjs.map} +0 -0
- /package/dist/{chunk-EFX66A2O.mjs.map → chunk-ZGXXAPLX.mjs.map} +0 -0
- /package/dist/{http-5BRVWAJR.mjs.map → http-QJDZKDNJ.mjs.map} +0 -0
- /package/dist/{import-IAECQDKC.mjs.map → import-XK6YM26A.mjs.map} +0 -0
- /package/dist/{src-4HLKMQ7S.mjs.map → src-4AHJUFCW.mjs.map} +0 -0
- /package/dist/{stream-import-PUG42I36.mjs.map → stream-import-7VQVT5ST.mjs.map} +0 -0
- /package/dist/{worker-runtime-X5563TVT.mjs.map → worker-runtime-PQBAV75N.mjs.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MessageExportModal-
|
|
2
|
-
import{d as K,a6 as Y,ac as ge,K as X,x as ve,y as he,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 B,z as j,a7 as ee,O as pe,e as $,b as U,J as Re,L as Ce,ar as Le,r as Be,a8 as De,a9 as $e,a5 as Ne,aD as Ve,ay as Fe,ap as Oe,ab as Ue,aA as Ee,be as Pe,aE as We,bs as He,aa as Je,bt as Ge,H as Ke,ah as Ye}from"./index-D9C3dyV8.js";import{_ as Se,a as Me,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,k as rt,C as lt,l as ct,M as ut,m as dt,n as mt,o as pt,p as gt}from"./useInsightTabAnalytics-CplGbsbe.js";import{_ as vt}from"./SectionTabs.vue_vue_type_script_setup_true_lang-BPt98e6z.js";import{_ as ht}from"./Select-BAnN4HMs.js";import{_ as xe,L as xt}from"./LoadingState.vue_vue_type_script_setup_true_lang-DmVfwvnD.js";import{T as Ae}from"./Tabs-DwjL-ueH.js";import{_ as Te}from"./EChart.vue_vue_type_script_setup_true_lang-BcE0mE_N.js";import"./vendor-echarts-wordcloud-DNiU8Psq.js";import{u as fe,x as ft,q as ye,j as be,i as se,m as qe,t as ze,s as yt,k as bt}from"./vendor-echarts-C9ugTmum.js";import{_ as ke}from"./ThemeCard.vue_vue_type_script_setup_true_lang-CNCVa86b.js";import{g as kt}from"./base-BHbtUviQ.js";import{i as Ie}from"./chatMessages-Dj1u-tFB.js";import{_ as _t}from"./useTable-Dmpbk7fZ.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-HjrJ3DXO.js";import"./useToast-Bmgpd3sl.js";import"./service-DwCmXFtI.js";import"./Checkbox-D-hAv15R.js";import"./useFormControl-CJyJY8AK.js";import"./VisuallyHiddenInput-ST6JNfSG.js";import"./RovingFocusItem-Bqgmzo42.js";import"./Label-Ce4wl_Ph.js";import"./prompt-Cepfb-5-.js";import"./aiChat-CeJy-gG-.js";import"./chatlabSiteLocale-CrCNb8QP.js";import"./ChatRecordWorkspace-AfFIMUbZ.js";import"./DatePicker.vue_vue_type_script_setup_true_lang-CSp691Uv.js";import"./clamp-jFYhBC76.js";import"./EChartBar.vue_vue_type_script_setup_true_lang-BypaV5wc.js";import"./Tabs-xVtuBuO0.js";import"./semantic-index-config-builder-hTY6QyCe.js";import"./TimeSelect.vue_vue_type_script_setup_true_lang-BehUIWki.js";import"./CardDecoration-CnYxleQM.js";import"./EChartLine.vue_vue_type_script_setup_true_lang-D8SyOfWC.js";import"./PageHeader-D5BcYKBs.js";import"./PageTabs.vue_vue_type_script_setup_true_lang-DHly2-fe.js";import"./Alert-qBIGn_CW.js";import"./FileDropZone.vue_vue_type_script_setup_true_lang-Dyuzh7Ex.js";import"./vendor-zrender-D8psf1AA.js";const wt={key:0,class:"relative z-10 flex flex-col h-full"},$t={class:"flex flex-col sm:flex-row items-center sm:items-start gap-6 px-6 pt-8 pb-4 sm:px-8"},Ct={class:"w-full flex-1 min-w-0"},St={class:"flex items-center gap-x-2 sm:gap-x-3 mb-6 sm:mb-8"},Mt={class:"text-2xl sm:text-4xl font-black tracking-tight text-blue-600 dark:text-blue-400 truncate"},jt={class:"text-2xl sm:text-4xl font-black tracking-tight text-pink-600 dark:text-pink-400 truncate"},Pt={class:"grid grid-cols-2 gap-4 sm:gap-10"},Tt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},It={class:"flex flex-col gap-2.5"},Rt=["title","onClick"],Dt={class:"shrink-0 text-[10px] sm:text-xs font-semibold tabular-nums text-gray-400/80"},At={key:0,class:"text-xs sm:text-sm font-medium text-gray-400"},qt={class:"hidden shrink-0 sm:block"},zt={class:"px-6 pb-6 pt-2 sm:px-8 mt-auto"},Lt={class:"mb-3 flex items-center justify-between"},Bt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Nt={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Vt={class:"mb-4 flex items-center gap-2.5"},Ft={class:"text-sm font-bold tracking-wide text-gray-900 dark:text-white"},Ot={class:"flex items-center justify-between mb-4 w-full"},Ut={class:"flex flex-col flex-1 min-w-0"},Et={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Wt={class:"flex flex-col flex-1 min-w-0 items-end text-right"},Ht={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Jt={class:"mt-auto pt-3 border-t border-gray-100 dark:border-white/5 flex flex-col"},Gt={key:0,class:"flex items-start justify-between gap-2 mb-2 min-h-[24px]"},Kt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1"},Yt={key:0,class:"text-[11px] text-gray-400"},Qt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1 justify-end"},Xt={key:0,class:"text-[11px] text-gray-400"},Zt={key:1,class:"flex flex-nowrap overflow-hidden items-center gap-x-1.5 mb-2 min-h-[24px]"},ea=["onClick"],ta={key:0,class:"shrink-0 text-gray-300 dark:text-gray-600 font-normal"},aa={key:0,class:"text-[11px] text-gray-400"},sa={class:"text-[10px] leading-relaxed text-gray-500 dark:text-gray-400"},na={class:"flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},ia={class:"flex items-center gap-1.5"},oa={class:"text-[9px] font-medium uppercase tracking-widest"},ra=K({__name:"LanguagePreferenceCard",props:{data:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(C,{emit:a}){fe([ft,ye,be]);const{t:s}=Y(),p=ge(),i=C,g=a,D=$(()=>i.data.members[0]),y=$(()=>i.data.members[1]);function v(r,l){return r.length<=l?r:r.slice(0,l)+"…"}function z(r){const l=r.posDistribution,c=l.noun+l.verb+l.adjective+l.adverb+l.modalParticle+l.interjection+l.other;return c===0?s("quotes.languagePreference.pos.styleBalanced"):l.noun/c>.5?s("quotes.languagePreference.pos.styleEncyclopedia"):l.verb/c>.45?s("quotes.languagePreference.pos.styleAction"):l.adjective/c>.3?s("quotes.languagePreference.pos.styleExpressive"):s("quotes.languagePreference.pos.styleBalanced")}function A(r){const c=[["ellipsis",r.ellipsis],["exclamation",r.exclamation],["question",r.question],["tilde",r.tilde],["noPunct",r.noPunct],["period",r.period]].reduce((k,P)=>k[1]>=P[1]?k:P);return{ellipsis:s("quotes.languagePreference.punctuation.personalityDeep"),exclamation:s("quotes.languagePreference.punctuation.personalityPassionate"),question:s("quotes.languagePreference.punctuation.personalityCurious"),tilde:s("quotes.languagePreference.punctuation.personalityCheerful"),noPunct:s("quotes.languagePreference.punctuation.personalityFreeflow"),period:s("quotes.languagePreference.punctuation.personalityPrecise")}[c[0]]||"-"}function w(r,l=5){return[["...",r.ellipsis],["!",r.exclamation],["?",r.question],["~",r.tilde],["。",r.period]].filter(([,m])=>m>0).sort((m,k)=>k[1]-m[1]).slice(0,l).map(([m])=>m)}const M=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e","#eab308","#06b6d4"],b=$(()=>{const r=D.value,l=y.value;if(!r||!l)return[];const c=i.data.sharedWords.slice(0,6).map((m,k)=>({word:m.word,color:M[k%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:s("quotes.languagePreference.card.diversityTitle"),leftName:r.name,leftValue:`${r.lexicalDiversity}%`,rightName:l.name,rightValue:`${l.lexicalDiversity}%`,valueClass:"text-lg text-blue-600 dark:text-blue-400",detail:{kind:"tags-single",tags:c},desc:s("quotes.languagePreference.card.diversityDesc")},{icon:"i-heroicons-sparkles",iconBgClass:"bg-violet-100 dark:bg-violet-500/20",iconColorClass:"text-violet-600 dark:text-violet-400",title:s("quotes.languagePreference.card.styleTitle"),leftName:r.name,leftValue:z(r),rightName:l.name,rightValue:z(l),valueClass:"text-xs text-violet-600 dark:text-violet-400",detail:{kind:"tags-vs",leftTags:r.modalParticles.slice(0,4).map(m=>m.word),rightTags:l.modalParticles.slice(0,4).map(m=>m.word)},desc:s("quotes.languagePreference.card.styleDesc")},{icon:"i-heroicons-finger-print",iconBgClass:"bg-orange-100 dark:bg-orange-500/20",iconColorClass:"text-orange-600 dark:text-orange-400",title:s("quotes.languagePreference.card.punctTitle"),leftName:r.name,leftValue:A(r.punctuation),rightName:l.name,rightValue:A(l.punctuation),valueClass:"text-xs text-orange-600 dark:text-orange-400",detail:{kind:"tags-vs",leftTags:w(r.punctuation,4),rightTags:w(l.punctuation,4)},desc:s("quotes.languagePreference.card.punctDesc")}]}),q=U(null);let S=null;function _(){q.value&&(S=se(q.value,void 0,{renderer:"canvas"}),f())}function f(){if(!S||!D.value||!y.value)return;const r=D.value.posDistribution,l=y.value.posDistribution,c=[{name:s("quotes.languagePreference.card.radarFactual"),max:0},{name:s("quotes.languagePreference.card.radarActive"),max:0},{name:s("quotes.languagePreference.card.radarDescriptive"),max:0},{name:s("quotes.languagePreference.card.radarAffable"),max:0},{name:s("quotes.languagePreference.card.radarIntense"),max:0}],m=[r.noun,r.verb,r.adjective,r.modalParticle+r.interjection,r.adverb],k=[l.noun,l.verb,l.adjective,l.modalParticle+l.interjection,l.adverb];for(let E=0;E<c.length;E++)c[E].max=Math.max(m[E],k[E],1)*1.3;const P=p.value?"#9ca3af":"#6b7280";S.setOption({backgroundColor:"transparent",tooltip:{trigger:"item"},legend:{bottom:0,itemWidth:10,itemHeight:10,textStyle:{fontSize:10,color:P},data:[D.value.name,y.value.name]},radar:{indicator:c,radius:"60%",center:["50%","50%"],splitArea:{areaStyle:{color:p.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:p.value?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.06)"}},axisLine:{lineStyle:{color:p.value?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)"}}},series:[{type:"radar",data:[{value:m,name:D.value.name,lineStyle:{color:"#3b82f6",width:2},areaStyle:{color:"rgba(59,130,246,0.15)"},itemStyle:{color:"#3b82f6"},symbol:"circle",symbolSize:4},{value:k,name:y.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(){S?.resize()}return X(()=>i.data,()=>f(),{deep:!0}),X(p,()=>{S?.dispose(),_()}),ve(()=>{_(),window.addEventListener("resize",d)}),he(()=>{window.removeEventListener("resize",d),S?.dispose()}),(r,l)=>{const c=ee;return n(),V(t(Se),null,{default:H(()=>[D.value&&y.value?(n(),u("div",wt,[e("div",$t,[e("div",Ct,[e("div",St,[e("span",Mt,o(D.value.name),1),l[0]||(l[0]=e("span",{class:"text-sm sm:text-lg font-black text-gray-300 dark:text-gray-600 italic px-1 sm:px-2 shrink-0"}," VS ",-1)),e("span",jt,o(y.value.name),1)]),e("div",Pt,[(n(!0),u(O,null,G([D.value,y.value],(m,k)=>(n(),u("div",{key:m.memberId,class:"flex flex-col gap-3"},[e("div",Tt,o(t(s)("quotes.languagePreference.card.topCatchphrases")),1),e("div",It,[(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",k===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&&g("wordClick",P.content)}," 「"+o(v(P.content,12))+"」 ",11,Rt),e("span",Dt," ×"+o(P.count),1)]))),128)),m.catchphrases.length===0?(n(),u("div",At,"-")):B("",!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",zt,[e("div",Lt,[e("span",Bt,o(t(s)("quotes.languagePreference.card.languageProfiles")),1)]),e("div",Nt,[(n(!0),u(O,null,G(b.value,m=>(n(),u("div",{key:m.title,class:"flex min-w-0 flex-col p-4"},[e("div",Vt,[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",Ft,o(m.title),1)]),e("div",Ot,[e("div",Ut,[e("span",Et,o(m.leftName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",m.valueClass])},o(m.leftValue),3)]),l[1]||(l[1]=e("div",{class:"px-2 shrink-0"},[e("span",{class:"text-[10px] font-black text-gray-300 dark:text-gray-600 italic"},"VS")],-1)),e("div",Wt,[e("span",Ht,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",Jt,[m.detail.kind==="tags-vs"?(n(),u("div",Gt,[e("div",Kt,[(n(!0),u(O,null,G(m.detail.leftTags,k=>(n(),u("span",{key:k,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(k),1))),128)),m.detail.leftTags.length===0?(n(),u("span",Yt,"-")):B("",!0)]),e("div",Qt,[(n(!0),u(O,null,G(m.detail.rightTags,k=>(n(),u("span",{key:k,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(k),1))),128)),m.detail.rightTags.length===0?(n(),u("span",Xt,"-")):B("",!0)])])):m.detail.kind==="tags-single"?(n(),u("div",Zt,[(n(!0),u(O,null,G(m.detail.tags.slice(0,6),(k,P)=>(n(),u(O,{key:k.word},[e("span",{class:F(["shrink-0 text-[11px] font-bold transition-opacity",i.enableRecordNavigation?"cursor-pointer hover:opacity-80":""]),style:pe({color:k.color}),onClick:E=>i.enableRecordNavigation&&g("wordClick",k.word)},o(k.word),15,ea),P<m.detail.tags.slice(0,6).length-1?(n(),u("span",ta," · ")):B("",!0)],64))),128)),m.detail.tags.length===0?(n(),u("span",aa,"-")):B("",!0)])):B("",!0),e("p",sa,o(m.desc),1)])]))),128))])]),e("div",na,[e("div",ia,[j(c,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),l[2]||(l[2]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",oa,o(t(s)("quotes.languagePreference.card.watermark")),1)])])):B("",!0)]),_:1})}}}),la={class:"px-5 py-4 sm:px-6"},ca={class:"mb-4 flex items-center justify-between"},ua={class:"flex items-center gap-2"},da={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},ma={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"},pa={key:0,class:"grid grid-cols-2 gap-6"},ga={class:"mb-3 text-center"},va={class:"text-sm font-semibold text-blue-600 dark:text-blue-400"},ha={class:"flex flex-wrap gap-2"},xa=["title","onClick"],fa={class:"text-[10px] font-semibold opacity-60"},ya={class:"mb-3 text-center"},ba={class:"text-sm font-semibold text-pink-600 dark:text-pink-400"},ka={class:"flex flex-wrap gap-2"},_a=["title","onClick"],wa={class:"text-[10px] font-semibold opacity-60"},$a={key:1,class:"mt-4 text-center text-xs text-gray-500 dark:text-gray-400"},Ca=K({__name:"CatchphrasePKSection",props:{members:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(C,{emit:a}){const{t:s}=Y(),p=C,i=a,g=U(20),D=[{label:"10",value:10},{label:"20",value:20},{label:"30",value:30}],y=$(()=>p.members[0]),v=$(()=>p.members[1]),z=$(()=>y.value?.catchphrases.slice(0,g.value)??[]),A=$(()=>v.value?.catchphrases.slice(0,g.value)??[]),w=$(()=>{if(!y.value||!v.value)return new Set;const S=new Set(y.value.catchphrases.map(f=>f.content)),_=new Set(v.value.catchphrases.map(f=>f.content));return new Set([...S].filter(f=>_.has(f)))}),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 b(S){return S<M.length?M[S]:{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(S,_=20){return S.length<=_?S:S.slice(0,_)+"..."}return(S,_)=>{const f=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",la,[e("div",ca,[e("div",ua,[j(f,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"h-4 w-4 text-indigo-500"}),e("span",da,o(t(s)("quotes.languagePreference.catchphrasePK.title")),1),w.value.size>0?(n(),u("span",ma,o(t(s)("quotes.languagePreference.catchphrasePK.sharedCount",{count:w.value.size})),1)):B("",!0)]),j(t(Ae),{modelValue:g.value,"onUpdate:modelValue":_[0]||(_[0]=d=>g.value=d),size:"xs",items:D},null,8,["modelValue"])]),y.value&&v.value?(n(),u("div",pa,[e("div",null,[e("div",ga,[e("span",va,o(y.value.name),1)]),e("div",ha,[(n(!0),u(O,null,G(z.value,(d,r)=>(n(),u("div",{key:d.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[p.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",w.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":b(r).bg]]),title:d.content,onClick:l=>p.enableRecordNavigation&&i("wordClick",d.content)},[r<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",b(r).badge])},o(r+1),3)):B("",!0),e("span",{class:F(["text-[13px] font-medium",w.value.has(d.content)?"font-bold":b(r).text])},o(q(d.content)),3),e("span",fa,"×"+o(d.count),1)],10,xa))),128))])]),e("div",null,[e("div",ya,[e("span",ba,o(v.value.name),1)]),e("div",ka,[(n(!0),u(O,null,G(A.value,(d,r)=>(n(),u("div",{key:d.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[p.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",w.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":b(r).bg]]),title:d.content,onClick:l=>p.enableRecordNavigation&&i("wordClick",d.content)},[r<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",b(r).badge])},o(r+1),3)):B("",!0),e("span",{class:F(["text-[13px] font-medium",w.value.has(d.content)?"font-bold":b(r).text])},o(q(d.content)),3),e("span",wa,"×"+o(d.count),1)],10,_a))),128))])])])):B("",!0),p.enableRecordNavigation?(n(),u("p",$a,o(t(s)("quotes.languagePreference.catchphrasePK.hint")),1)):B("",!0)])]),_:1})}}}),Sa={class:"px-5 py-4 sm:px-6"},Ma={class:"mb-4 flex items-center gap-2"},ja={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Pa={class:"flex flex-col gap-4 lg:flex-row lg:gap-6"},Ta={class:"flex-1"},Ia={key:0,class:"flex shrink-0 flex-col gap-3 lg:w-48"},Ra={class:"min-w-0"},Da={class:"truncate text-xs font-semibold text-gray-500 dark:text-gray-400"},Aa=K({__name:"PosPortraitSection",props:{members:{}},setup(C){fe([qe,ze,ye,yt,be]);const{t:a}=Y(),s=ge(),p=C,i=$(()=>p.members[0]),g=$(()=>p.members[1]);function D(M){const b=M.posDistribution,q=b.noun+b.verb+b.adjective+b.adverb+b.modalParticle+b.interjection+b.other;if(q===0)return{label:a("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const S=b.noun/q,_=b.verb/q,f=b.adjective/q;return S>.5?{label:a("quotes.languagePreference.pos.styleEncyclopedia"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:_>.45?{label:a("quotes.languagePreference.pos.styleAction"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:f>.3?{label:a("quotes.languagePreference.pos.styleExpressive"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{label:a("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}const y=U(null);let v=null;function z(){y.value&&(v=se(y.value,void 0,{renderer:"canvas"}),A())}function A(){if(!v||!i.value||!g.value)return;const M=i.value.posDistribution,b=g.value.posDistribution,q=[a("quotes.languagePreference.card.radarNoun"),a("quotes.languagePreference.card.radarVerb"),a("quotes.languagePreference.card.radarAdj"),a("quotes.languagePreference.card.radarModal"),a("quotes.languagePreference.card.radarAdv")],S=[M.noun,M.verb,M.adjective,M.modalParticle+M.interjection,M.adverb],_=[b.noun,b.verb,b.adjective,b.modalParticle+b.interjection,b.adverb],f=s.value?"#9ca3af":"#6b7280";v.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{data:[i.value.name,g.value.name],top:0,textStyle:{fontSize:11,color:f}},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:f}},series:[{name:i.value.name,type:"bar",data:S,itemStyle:{color:"#3b82f6",borderRadius:[0,4,4,0]},barGap:"20%",barCategoryGap:"40%"},{name:g.value.name,type:"bar",data:_,itemStyle:{color:"#ec4899",borderRadius:[0,4,4,0]}}]},{notMerge:!0})}function w(){v?.resize()}return X(()=>p.members,()=>A(),{deep:!0}),X(s,()=>{v?.dispose(),z()}),ve(()=>{z(),window.addEventListener("resize",w)}),he(()=>{window.removeEventListener("resize",w),v?.dispose()}),(M,b)=>{const q=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",Sa,[e("div",Ma,[j(q,{name:"i-heroicons-chart-bar",class:"h-4 w-4 text-violet-500"}),e("span",ja,o(t(a)("quotes.languagePreference.pos.title")),1)]),e("div",Pa,[e("div",Ta,[e("div",{ref_key:"chartRef",ref:y,style:{width:"100%",height:"220px"}},null,512)]),i.value&&g.value?(n(),u("div",Ia,[(n(!0),u(O,null,G([i.value,g.value],S=>(n(),u("div",{key:S.memberId,class:"flex min-w-0 items-center gap-3 px-1 py-3"},[j(q,{name:D(S).icon,class:F(["h-5 w-5 shrink-0",D(S).colorClass])},null,8,["name","class"]),e("div",Ra,[e("div",Da,o(S.name),1),e("div",{class:F(["truncate text-sm font-bold",D(S).colorClass])},o(D(S).label),3)])]))),128))])):B("",!0)])])]),_:1})}}}),qa={class:"px-5 py-4 sm:px-6"},za={class:"mb-4 flex items-center gap-2"},La={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Ba={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Na={class:"mb-2 flex items-center justify-between"},Va={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Fa=K({__name:"ModalParticleSection",props:{members:{}},setup(C){fe([qe,ze,ye,be]);const{t:a}=Y(),s=ge(),p=C,i=$(()=>p.members[0]),g=$(()=>p.members[1]),D=new Set(["呀","哒","滴","啦","哇","耶"]),y=new Set(["呢","吗","嘛"]),v=new Set(["吧","喔","噢","嘛"]),z=new Set(["嗯","哦","额","呃"]);function A(d){const r={label:a("quotes.languagePreference.modal.toneMixed"),colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"};if(d.modalParticles.length===0)return r;let l=0,c=0,m=0,k=0,P=0;for(const J of d.modalParticles)P+=J.count,D.has(J.word)&&(l+=J.count),y.has(J.word)&&(c+=J.count),v.has(J.word)&&(m+=J.count),z.has(J.word)&&(k+=J.count);if(P===0)return r;const E=Math.max(l,c,m,k);return E===l&&l/P>.3?{label:a("quotes.languagePreference.modal.toneSoft"),colorClass:"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30"}:E===c&&c/P>.3?{label:a("quotes.languagePreference.modal.toneCurious"),colorClass:"bg-violet-50 text-violet-600 ring-1 ring-violet-500/20 dark:bg-violet-500/10 dark:text-violet-400 dark:ring-violet-500/30"}:E===m&&m/P>.3?{label:a("quotes.languagePreference.modal.toneCasual"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"}:E===k&&k/P>.3?{label:a("quotes.languagePreference.modal.toneCalm"),colorClass:"bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30"}:r}const w=U(null),M=U(null);let b=null,q=null;function S(d,r){const l=d.modalParticles.slice(0,8),c=s.value?"#9ca3af":"#6b7280";return{backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},grid:{left:40,right:20,top:4,bottom:4},xAxis:{type:"value",show:!1},yAxis:{type:"category",data:l.map(m=>m.word).reverse(),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:12,color:c},inverse:!1},series:[{type:"bar",data:l.map(m=>m.count).reverse(),itemStyle:{color:r,borderRadius:[0,4,4,0]},barWidth:"50%",label:{show:!0,position:"right",fontSize:10,color:c,formatter:"{c}"}}]}}function _(){w.value&&i.value&&(b=se(w.value,void 0,{renderer:"canvas"}),b.setOption(S(i.value,"#3b82f6"),{notMerge:!0})),M.value&&g.value&&(q=se(M.value,void 0,{renderer:"canvas"}),q.setOption(S(g.value,"#ec4899"),{notMerge:!0}))}function f(){b?.resize(),q?.resize()}return X(()=>p.members,()=>{b&&i.value&&b.setOption(S(i.value,"#3b82f6"),{notMerge:!0}),q&&g.value&&q.setOption(S(g.value,"#ec4899"),{notMerge:!0})},{deep:!0}),X(s,()=>{b?.dispose(),q?.dispose(),_()}),ve(()=>{_(),window.addEventListener("resize",f)}),he(()=>{window.removeEventListener("resize",f),b?.dispose(),q?.dispose()}),(d,r)=>{const l=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",qa,[e("div",za,[j(l,{name:"i-heroicons-chat-bubble-oval-left-ellipsis",class:"h-4 w-4 text-pink-500"}),e("span",La,o(t(a)("quotes.languagePreference.modal.title")),1)]),i.value&&g.value?(n(),u("div",Ba,[(n(!0),u(O,null,G([i.value,g.value],(c,m)=>(n(),u("div",{key:c.memberId},[e("div",Na,[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",A(c).colorClass])},o(A(c).label),3)]),c.modalParticles.length>0?(n(),u("div",{key:0,ref_for:!0,ref:k=>{m===0?w.value=k:M.value=k},style:{width:"100%",height:"200px"}},null,512)):(n(),u("div",Va,o(t(a)("quotes.languagePreference.modal.empty")),1))]))),128))])):B("",!0)])]),_:1})}}}),Oa={class:"px-5 py-4 sm:px-6"},Ua={class:"mb-4 flex items-center gap-2"},Ea={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Wa={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Ha={class:"mb-2 flex items-center gap-2"},Ja={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Ga=K({__name:"PunctuationSection",props:{members:{}},setup(C){fe([bt,ye,be]);const{t:a}=Y(),s=ge(),p=C,i=$(()=>p.members[0]),g=$(()=>p.members[1]),D=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6"];function y(_){const d=[["ellipsis",_.ellipsis],["exclamation",_.exclamation],["question",_.question],["tilde",_.tilde],["noPunct",_.noPunct],["period",_.period]].reduce((l,c)=>l[1]>=c[1]?l:c);return{ellipsis:{label:a("quotes.languagePreference.punctuation.personalityDeep"),colorClass:"bg-indigo-50 text-indigo-600 ring-1 ring-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-400 dark:ring-indigo-500/30"},exclamation:{label:a("quotes.languagePreference.punctuation.personalityPassionate"),colorClass:"bg-rose-50 text-rose-600 ring-1 ring-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400 dark:ring-rose-500/30"},question:{label:a("quotes.languagePreference.punctuation.personalityCurious"),colorClass:"bg-amber-50 text-amber-600 ring-1 ring-amber-500/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30"},tilde:{label:a("quotes.languagePreference.punctuation.personalityCheerful"),colorClass:"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30"},noPunct:{label:a("quotes.languagePreference.punctuation.personalityFreeflow"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"},period:{label:a("quotes.languagePreference.punctuation.personalityPrecise"),colorClass:"bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30"}}[d[0]]||{label:"-",colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"}}function v(_){return[{name:"...",value:_.ellipsis},{name:"!",value:_.exclamation},{name:"?",value:_.question},{name:"~",value:_.tilde},{name:"。",value:_.period},{name:a("quotes.languagePreference.punctuation.none"),value:_.noPunct}].filter(f=>f.value>0)}const z=U(null),A=U(null);let w=null,M=null;function b(_){return{backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},series:[{type:"pie",radius:["45%","75%"],center:["50%","50%"],avoidLabelOverlap:!1,padAngle:2,itemStyle:{borderRadius:4},label:{show:!0,fontSize:10,color:s.value?"#9ca3af":"#6b7280",formatter:"{b}"},emphasis:{label:{show:!0,fontWeight:"bold"},scaleSize:4},data:_.map((f,d)=>({...f,itemStyle:{color:D[d%D.length]}}))}]}}function q(){z.value&&i.value&&(w=se(z.value,void 0,{renderer:"canvas"}),w.setOption(b(v(i.value.punctuation)),{notMerge:!0})),A.value&&g.value&&(M=se(A.value,void 0,{renderer:"canvas"}),M.setOption(b(v(g.value.punctuation)),{notMerge:!0}))}function S(){w?.resize(),M?.resize()}return X(()=>p.members,()=>{w&&i.value&&w.setOption(b(v(i.value.punctuation)),{notMerge:!0}),M&&g.value&&M.setOption(b(v(g.value.punctuation)),{notMerge:!0})},{deep:!0}),X(s,()=>{w?.dispose(),M?.dispose(),q()}),ve(()=>{q(),window.addEventListener("resize",S)}),he(()=>{window.removeEventListener("resize",S),w?.dispose(),M?.dispose()}),(_,f)=>{const d=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",Oa,[e("div",Ua,[j(d,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4 text-orange-500"}),e("span",Ea,o(t(a)("quotes.languagePreference.punctuation.title")),1)]),i.value&&g.value?(n(),u("div",Wa,[(n(!0),u(O,null,G([i.value,g.value],(r,l)=>(n(),u("div",{key:r.memberId,class:"flex flex-col items-center"},[e("div",Ha,[e("span",{class:F(["text-sm font-semibold",l===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(r.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",y(r.punctuation).colorClass])},o(y(r.punctuation).label),3)]),r.punctuation.total>0?(n(),u("div",{key:0,ref_for:!0,ref:c=>{l===0?z.value=c:A.value=c},style:{width:"100%",height:"200px"}},null,512)):(n(),u("div",Ja,o(t(a)("quotes.languagePreference.punctuation.empty")),1))]))),128))])):B("",!0)])]),_:1})}}}),Ka={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Ya=K({__name:"LanguagePreferenceTab",props:{sessionId:{},timeFilter:{},enableRecordNavigation:{type:Boolean,default:!0}},setup(C){const{t:a,locale:s}=Y(),p=Re(),i=C,g=U(null),D=U(!1),y=$(()=>g.value&&g.value.members.length>=2);async function v(){if(i.sessionId){D.value=!0;try{g.value=await Ce().getLanguagePreferenceAnalysis(i.sessionId,s.value,i.timeFilter)}catch(A){console.error("[LanguagePreferenceTab] Failed to load:",A)}finally{D.value=!1}}}function z(A){i.enableRecordNavigation&&p.openChatRecordDrawer({keywords:[A]})}return X(()=>[i.sessionId,i.timeFilter],()=>v(),{immediate:!0,deep:!0}),(A,w)=>(n(),u("div",Ka,[D.value?(n(),V(t(xe),{key:0,text:t(a)("quotes.languagePreference.loading")},null,8,["text"])):y.value?g.value?(n(),u(O,{key:2},[j(ra,{data:g.value,"enable-record-navigation":i.enableRecordNavigation,onWordClick:z},null,8,["data","enable-record-navigation"]),j(Ca,{members:g.value.members,"enable-record-navigation":i.enableRecordNavigation,onWordClick:z},null,8,["members","enable-record-navigation"]),j(Aa,{members:g.value.members},null,8,["members"]),j(Fa,{members:g.value.members},null,8,["members"]),j(Ga,{members:g.value.members},null,8,["members"])],64)):B("",!0):(n(),V(t(Me),{key:1,text:t(a)("quotes.languagePreference.empty")},null,8,["text"]))]))}}),Qa={class:"flex min-w-0 flex-col p-4"},Xa={class:"mb-2 min-h-8"},Za={class:"flex items-center justify-between gap-2"},es={class:"flex min-w-0 items-center gap-2"},ts={class:"truncate text-xs font-bold tracking-wide text-gray-900 dark:text-white"},as={key:0,class:"shrink-0"},ss={class:"flex h-full flex-col"},ns={class:"grid grid-cols-2 gap-2"},is={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},os=["title"],rs={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},ls=["title"],cs={class:"mt-auto pt-3 min-h-8 text-[10px] leading-relaxed text-gray-500 dark:text-gray-400 sm:min-h-6"},me=K({__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(C){const a=Le(),s=$(()=>!!a["header-extra"]);return(p,i)=>{const g=ee;return n(),u("div",Qa,[e("div",Xa,[e("div",Za,[e("div",es,[e("div",{class:F(["flex h-6 w-6 shrink-0 items-center justify-center rounded-full",C.iconBgClass])},[j(g,{name:C.iconName,class:F(["h-3.5 w-3.5",C.iconColorClass])},null,8,["name","class"])],2),e("span",ts,o(C.title),1)]),s.value?(n(),u("div",as,[Be(p.$slots,"header-extra")])):B("",!0)])]),e("div",ss,[e("div",ns,[e("div",is,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:C.leftName},o(C.leftName),9,os),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",C.valueClass])},o(C.leftValue),3)]),e("div",rs,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:C.rightName},o(C.rightName),9,ls),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",C.valueClass])},o(C.rightValue),3)])]),e("p",cs,o(C.description),1)])])}}}),us={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},ds={class:"space-y-6"},ms={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"},ps={class:"flex min-w-0 max-w-full flex-1 flex-col items-center justify-center lg:items-start"},gs={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},vs={class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},hs={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"},fs={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},ys={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},bs={class:"flex min-w-0 max-w-full flex-wrap items-baseline gap-x-1.5 gap-y-1"},ks={class:"text-base font-medium text-gray-600 dark:text-gray-300"},_s={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},ws={class:"text-base font-medium text-gray-600 dark:text-gray-300"},$s={class:"max-w-full break-all text-xl font-bold leading-snug text-gray-900 dark:text-white"},Cs={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Ss={class:"mt-8 flex w-full max-w-[320px] items-center justify-between gap-4"},Ms={class:"flex flex-1 flex-col items-center overflow-hidden"},js=["title"],Ps={class:"mt-1 text-2xl font-black text-blue-500 dark:text-blue-400"},Ts={class:"mt-0.5 text-[10px] font-medium text-gray-400"},Is={class:"flex flex-1 flex-col items-center overflow-hidden"},Rs=["title"],Ds={class:"mt-1 text-2xl font-black text-pink-500 dark:text-pink-400"},As={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]"},zs={class:"mb-2 flex items-center justify-between px-1"},Ls={class:"text-sm font-bold text-gray-900 dark:text-white"},Bs={class:"text-[10px] font-medium text-gray-500 dark:text-gray-400"},Ns={class:"w-full"},Vs={class:"h-[200px] w-full"},Fs={class:"relative z-10 grid grid-cols-2 gap-3 p-4 pt-2 sm:p-6 sm:pt-2 lg:grid-cols-4"},Os={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"},Us={class:"flex items-center gap-1.5"},Es={class:"text-[9px] font-medium uppercase tracking-widest"},Ws={class:"px-4 pb-5 sm:px-6 sm:pb-6"},Hs={key:0,class:"mt-6"},Js={class:"mb-3 text-xs font-semibold tracking-wide text-gray-400 uppercase dark:text-gray-500"},Gs={class:"grid gap-x-8 gap-y-4 sm:grid-cols-3"},Ks={class:"min-w-0"},Ys={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Qs=["title"],Xs={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Zs={class:"mt-5 flex justify-center"},en={key:1,class:"mt-3 overflow-x-auto rounded-lg border border-gray-200/80 dark:border-white/10"},tn={class:"min-w-full text-left text-sm"},an={class:"bg-gray-50/80 text-xs text-gray-500 dark:bg-white/[0.03] dark:text-gray-400"},sn={scope:"col",class:"px-4 py-2.5 font-medium"},nn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},on={scope:"col",class:"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={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},cn={class:"divide-y divide-gray-100 dark:divide-white/5"},un={class:"whitespace-nowrap px-4 py-2.5 font-medium text-gray-700 dark:text-gray-300"},dn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},mn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},pn={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},gn={class:"whitespace-nowrap 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"},hn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},xn=K({__name:"PrivateRelationshipView",props:{sessionId:{},timeFilter:{}},setup(C){const{t:a,locale:s}=Y(),p=C,i=U(null),g=U(!1),D=U(!1),y=U("activity"),v=U(!1),z=U(300);async function A(x){if(!p.sessionId)return;const h=x?.localOnly==="perseverance";h?D.value=!0:g.value=!0;try{i.value=await Ce().getRelationshipStats(p.sessionId,p.timeFilter,{perseveranceThreshold:z.value})}catch(L){console.error("Failed to load relationship stats:",L)}finally{h?D.value=!1:g.value=!1}}X(()=>[p.sessionId,p.timeFilter],()=>A(),{immediate:!0,deep:!0});const w=[{label:"1m",value:60},{label:"3m",value:180},{label:"5m",value:300},{label:"10m",value:600},{label:"30m",value:1800}];function M(x){z.value!==x&&(z.value=x,A({localOnly:"perseverance"}))}const b=$({get:()=>z.value,set:x=>M(x)});function q(x){return a("views.relationship.perseverance.thresholdMinutes",{n:Math.round(x/60)})}const S=$(()=>a("views.relationship.perseverance.hintWithThreshold",{threshold:q(z.value)})),_=$(()=>i.value?.hasSessionIndex&&i.value.totalSessions>0),f=$(()=>i.value?.members[0]),d=$(()=>i.value?.members[1]),r=$(()=>{if(!f.value||!i.value)return 50;const x=(f.value.totalInitiateCount??0)+(d.value?.totalInitiateCount??0);return x===0?50:Math.round(f.value.totalInitiateCount/x*100)}),l=$(()=>{if(!i.value||i.value.months.length===0)return"";const x=[...i.value.months].sort((R,I)=>R.month.localeCompare(I.month)),h=x[0].month.replace("-","/"),L=x[x.length-1].month.replace("-","/");return h===L?h:`${h} – ${L}`}),c=$(()=>s.value.startsWith("en")?"max-w-[420px]":"max-w-[320px]"),m=$(()=>{if(!i.value||i.value.months.length===0||!f.value)return{};const x=[...i.value.months].sort((N,te)=>N.month.localeCompare(te.month)),h=x.map(N=>P(N.month)),L=f.value.name,R=d.value?.name??"—",I=x.map(N=>{const te=N.members.find(de=>de.memberId===f.value.memberId);return!te||N.totalSessions===0?50:Math.round(te.initiateCount/N.totalSessions*100)});return{tooltip:{trigger:"axis",formatter(N){const te=N[0],de=te.value;return`${te.axisValue}<br/>${L}: ${de}%<br/>${R}: ${100-de}%`}},grid:{left:40,right:20,top:20,bottom:30},xAxis:{type:"category",data:h,axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,max:100,axisLabel:{formatter:"{value}%",fontSize:11},splitLine:{lineStyle:{type:"dashed"}}},series:[{type:"line",data:I,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 k(x){const[h,L]=x.split("-");return a("views.relationship.monthFormat",{year:h,month:Number.parseInt(L,10)})}function P(x){const h=x.split("-");return a("views.relationship.monthShortFormat",{month:Number.parseInt(h[1],10)})}function E(x){return!x||!i.value?.iceBreakers?.length?0:i.value.iceBreakers.filter(h=>h.memberId===x).reduce((h,L)=>h+L.count,0)}function J(x){if(!x||!i.value?.responseLatency?.length)return null;const h=i.value.responseLatency.find(L=>L.memberId===x);return h?h.avgResponseTime:null}function le(x){return!x||!i.value?.perseverance?.length?0:i.value.perseverance.find(L=>L.memberId===x)?.totalDoubleTexts??0}function ce(x){const h=J(x);return h!=null?T(h):"--"}function ne(x){return i.value?.monthlyResponseLatency?.find(h=>h.month===x)?.members??[]}function _e(x){return i.value?.monthlyPerseverance?.find(h=>h.month===x)?.members??[]}function ie(x,h){return h?ne(x).find(R=>R.memberId===h)?.avgResponseTime??null:null}function ue(x,h){const L=ie(x,h);return L==null?"—":T(L)}function ae(x,h){return h?_e(x).find(R=>R.memberId===h)?.doubleTextCount??0:0}function oe(x){return i.value?.iceBreakers?.filter(h=>h.month===x).reduce((h,L)=>h+L.count,0)??0}function Q(x){const h=ne(x),L=h.reduce((R,I)=>R+I.responseCount,0);return L===0?null:h.reduce((R,I)=>R+I.avgResponseTime*I.responseCount,0)/L}function T(x){const h=Math.max(0,Math.round(x));if(h<60)return a("views.relationship.responseLatency.seconds",{n:h});if(h<3600){const I=Math.floor(h/60),N=h%60;return a("views.relationship.responseLatency.minutesSeconds",{m:I,s:N})}const L=Math.floor(h/3600),R=Math.floor(h%3600/60);return R===0?a("views.relationship.responseLatency.hours",{n:L}):a("views.relationship.responseLatency.hoursMinutes",{h:L,m:R})}const Z=$(()=>[...i.value?.months??[]].sort((x,h)=>x.month.localeCompare(h.month))),we=$(()=>[{label:a("views.relationship.trajectory.metrics.activity"),value:"activity"},{label:a("views.relationship.trajectory.metrics.response"),value:"response"},{label:a("views.relationship.trajectory.metrics.perseverance"),value:"perseverance"}]),W=$(()=>{const x=Z.value,h=new Set(x.map(I=>I.month.slice(0,4))).size>1,L=x.map(I=>h?I.month.replace("-","/"):P(I.month)),R={color:["#3b82f6","#ec4899"],tooltip:{trigger:"axis"},legend:{top:4,textStyle:{fontSize:11}},grid:{left:52,right:24,top:44,bottom:34},xAxis:{type:"category",data:L,axisTick:{show:!1},axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,minInterval:1,axisLabel:{fontSize:11},splitLine:{lineStyle:{type:"dashed"}}}};return y.value==="activity"?{...R,series:[{name:a("views.relationship.trajectory.conversations"),type:"bar",data:x.map(I=>I.totalSessions),barMaxWidth:32,itemStyle:{borderRadius:[4,4,0,0]}},{name:a("views.relationship.trajectory.iceBreaks"),type:"line",data:x.map(I=>oe(I.month)),smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:y.value==="response"?{...R,tooltip:{trigger:"axis",valueFormatter(I){return typeof I=="number"?T(I):String(I??"—")}},yAxis:{type:"value",min:0,axisLabel:{fontSize:11,formatter(I){return T(I)}},splitLine:{lineStyle:{type:"dashed"}}},series:[{name:f.value?.name??"—",type:"line",data:x.map(I=>ie(I.month,f.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}},{name:d.value?.name??"—",type:"line",data:x.map(I=>ie(I.month,d.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:{...R,series:[{name:f.value?.name??"—",type:"bar",data:x.map(I=>ae(I.month,f.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}},{name:d.value?.name??"—",type:"bar",data:x.map(I=>ae(I.month,d.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}}]}}),je=$(()=>{const x=Z.value.reduce((R,I)=>!R||I.totalSessions>R.totalSessions?I:R,null),h=Z.value.map(R=>({month:R.month,count:oe(R.month)})).filter(R=>R.count>0).sort((R,I)=>I.count-R.count)[0],L=Z.value.map(R=>({month:R.month,value:Q(R.month)})).filter(R=>R.value!=null).sort((R,I)=>R.value-I.value)[0];return[x&&x.totalSessions>0?{icon:"i-heroicons-chart-bar-square-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.relationship.trajectory.activityPeak"),month:k(x.month),detail:a("views.relationship.trajectory.activityPeakDetail",{count:x.totalSessions})}:null,h?{icon:"i-heroicons-fire-solid",iconClass:"bg-pink-50 text-pink-500 dark:bg-pink-500/10 dark:text-pink-400",title:a("views.relationship.trajectory.iceBreakPeak"),month:k(h.month),detail:a("views.relationship.trajectory.iceBreakPeakDetail",{count:h.count})}:null,L?{icon:"i-heroicons-clock-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.relationship.trajectory.fastestResponse"),month:k(L.month),detail:a("views.relationship.trajectory.fastestResponseDetail",{duration:T(L.value)})}:null].filter(R=>R!=null)});return(x,h)=>{const L=ht,R=ee,I=De;return n(),u("div",{class:F(g.value?"h-full":"")},[g.value?(n(),V(t(xe),{key:0,variant:"page",text:t(a)("common.loading")},null,8,["text"])):(n(),u("div",us,[i.value&&!_.value?(n(),V(t(Me),{key:0,icon:"i-heroicons-heart",title:t(a)("views.relationship.empty.title"),description:t(a)("views.relationship.empty.description")},null,8,["title","description"])):i.value&&_.value?(n(),u(O,{key:1},[e("div",ds,[j(t(Se),{id:"shareable-poster"},{default:H(()=>[e("div",ms,[e("div",ps,[e("div",{class:F(["flex w-fit min-w-0 flex-col items-start text-left",c.value])},[e("div",gs,[e("p",vs,o(l.value),1),e("div",hs,[e("span",xs,o(t(a)("views.relationship.hero.totalSessionsPrefix")),1),e("span",fs,o(i.value.totalSessions),1),e("span",ys,o(t(a)("views.relationship.hero.totalSessionsSuffix")),1)]),e("div",bs,[e("span",ks,o(t(a)("views.relationship.hero.initiativePrefix")),1),e("span",_s,o(r.value>=50?r.value:100-r.value)+"% ",1),e("span",ws,o(t(a)("views.relationship.hero.initiativeByPrefix")),1),e("span",$s,o(r.value>=50?f.value?.name:d.value?.name),1),e("span",Cs,o(t(a)("views.relationship.hero.initiativeBySuffix")),1)])]),e("div",Ss,[e("div",Ms,[e("div",{class:"w-full truncate text-center text-xs font-bold text-gray-500 dark:text-gray-400",title:f.value?.name},o(f.value?.name),9,js),e("div",Ps,o(f.value?.totalInitiateCount),1),e("div",Ts,o(t(a)("views.relationship.hero.initiateTimes")),1)]),h[3]||(h[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",Is,[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,Rs),e("div",Ds,o(d.value?.totalInitiateCount),1),e("div",As,o(t(a)("views.relationship.hero.initiateTimes")),1)])])],2)]),i.value.months.length>=2?(n(),u("div",qs,[e("div",zs,[e("span",Ls,o(t(a)("views.relationship.trend.title")),1),e("span",Bs,o(t(a)("views.relationship.trend.hint",{name:f.value?.name??""})),1)]),e("div",Ns,[e("div",Vs,[j(t(Te),{option:m.value,height:200},null,8,["option"])])])])):B("",!0)]),e("div",Fs,[j(me,{title:t(a)("views.relationship.closerTitle"),"icon-name":"i-heroicons-hand-raised-solid","icon-bg-class":"bg-blue-100 dark:bg-blue-500/20","icon-color-class":"text-blue-600 dark:text-blue-400","left-name":f.value?.name,"left-value":f.value?.totalCloseCount??0,"right-name":d.value?.name,"right-value":d.value?.totalCloseCount??0,"value-class":"text-lg text-blue-600 dark:text-blue-400",description:t(a)("views.relationship.closerHint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.iceBreaker.title"),"icon-name":"i-heroicons-fire-solid","icon-bg-class":"bg-pink-100 dark:bg-pink-500/20","icon-color-class":"text-pink-600 dark:text-pink-400","left-name":f.value?.name,"left-value":E(f.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(a)("views.relationship.iceBreaker.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.responseLatency.title"),"icon-name":"i-heroicons-clock-solid","icon-bg-class":"bg-amber-100 dark:bg-amber-500/20","icon-color-class":"text-amber-600 dark:text-amber-400","left-name":f.value?.name,"left-value":ce(f.value?.memberId),"right-name":d.value?.name,"right-value":ce(d.value?.memberId),"value-class":"text-base text-amber-600 dark:text-amber-400",description:t(a)("views.relationship.responseLatency.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.perseverance.title"),"icon-name":"i-heroicons-arrow-path-solid","icon-bg-class":"bg-purple-100 dark:bg-purple-500/20","icon-color-class":"text-purple-600 dark:text-purple-400","left-name":f.value?.name,"left-value":le(f.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:S.value},{"header-extra":H(()=>[j(L,{modelValue:b.value,"onUpdate:modelValue":h[0]||(h[0]=N=>b.value=N),items:w,"value-key":"value",size:"xs",class:"relative z-[120] w-16",ui:{content:"z-[121]"},disabled:D.value},null,8,["modelValue","disabled"])]),_:1},8,["title","left-name","left-value","right-name","right-value","description"])]),e("div",Os,[e("div",Us,[j(R,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),h[4]||(h[4]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Es,o(t(a)("views.relationship.watermarkReport")),1)])]),_:1})]),j(t(re),{title:t(a)("views.relationship.trajectory.title"),description:t(a)("views.relationship.trajectory.description"),"show-divider":!1},{headerRight:H(()=>[j(t(Ae),{modelValue:y.value,"onUpdate:modelValue":h[1]||(h[1]=N=>y.value=N),items:we.value,size:"sm",class:"max-w-[58vw] sm:max-w-none"},null,8,["modelValue","items"])]),default:H(()=>[e("div",Ws,[j(t(Te),{option:W.value,height:280},null,8,["option"]),je.value.length>0?(n(),u("div",Hs,[e("p",Js,o(t(a)("views.relationship.trajectory.keyMoments")),1),e("div",Gs,[(n(!0),u(O,null,G(je.value,N=>(n(),u("div",{key:N.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",N.iconClass])},[j(R,{name:N.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Ks,[e("p",Ys,o(N.title),1),e("p",{class:"mt-0.5 truncate text-sm font-semibold text-gray-900 dark:text-white",title:N.month},o(N.month),9,Qs),e("p",Xs,o(N.detail),1)])]))),128))])])):B("",!0),e("div",Zs,[j(I,{color:"neutral",variant:"ghost",size:"sm",icon:v.value?"i-heroicons-chevron-up":"i-heroicons-chevron-down",onClick:h[2]||(h[2]=N=>v.value=!v.value)},{default:H(()=>[$e(o(v.value?t(a)("views.relationship.trajectory.hideAll"):t(a)("views.relationship.trajectory.showAll")),1)]),_:1},8,["icon"])]),v.value?(n(),u("div",en,[e("table",tn,[e("thead",an,[e("tr",null,[e("th",sn,o(t(a)("views.relationship.trajectory.month")),1),y.value==="activity"?(n(),u(O,{key:0},[e("th",nn,o(t(a)("views.relationship.trajectory.conversations")),1),e("th",on,o(t(a)("views.relationship.trajectory.iceBreaks")),1)],64)):(n(),u(O,{key:1},[e("th",rn,o(f.value?.name),1),e("th",ln,o(d.value?.name),1)],64))])]),e("tbody",cn,[(n(!0),u(O,null,G([...Z.value].reverse(),N=>(n(),u("tr",{key:N.month},[e("td",un,o(k(N.month)),1),y.value==="activity"?(n(),u(O,{key:0},[e("td",dn,o(N.totalSessions),1),e("td",mn,o(oe(N.month)),1)],64)):y.value==="response"?(n(),u(O,{key:1},[e("td",pn,o(ue(N.month,f.value?.memberId)),1),e("td",gn,o(ue(N.month,d.value?.memberId)),1)],64)):(n(),u(O,{key:2},[e("td",vn,o(ae(N.month,f.value?.memberId)),1),e("td",hn,o(ae(N.month,d.value?.memberId)),1)],64))]))),128))])])])):B("",!0)])]),_:1},8,["title","description"])],64)):B("",!0)]))],2)}}}),fn={class:"relative z-10 px-6 pt-8 pb-5 sm:px-8 sm:pt-10"},yn={class:"flex flex-col gap-8 lg:flex-row lg:items-center lg:justify-between lg:gap-12"},bn={class:"min-w-0 flex-1"},kn={class:"text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},_n={class:"mt-3 flex flex-wrap items-baseline gap-x-2 gap-y-1"},wn={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},$n={class:"text-4xl font-black tracking-tight text-gray-900 dark:text-white sm:text-5xl"},Cn={class:"mt-3 max-w-xl text-sm leading-6 text-gray-500 dark:text-gray-400"},Sn={class:"w-full min-w-0 lg:max-w-[380px]"},Mn={class:"mb-3 flex items-center justify-between gap-4"},jn={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-gray-300"},Pn={class:"text-[10px] font-medium text-gray-400 dark:text-gray-500"},Tn=["title"],In={class:"mt-2 flex justify-between text-[10px] font-medium text-gray-400 dark:text-gray-500"},Rn={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"},Dn={class:"min-w-0"},An={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"},zn={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"},Ln={class:"flex items-center gap-1.5"},Bn={class:"text-[9px] font-medium uppercase tracking-widest"},Nn=K({__name:"JourneyReportCard",props:{stats:{},filtered:{type:Boolean}},setup(C){const a=C,{t:s,locale:p}=Y(),i=$(()=>new Intl.NumberFormat(p.value)),g=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short",day:"numeric"})),D=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short"})),y=$(()=>a.stats.range),v=$(()=>Math.max(...a.stats.months.map(d=>d.messageCount),1)),z=$(()=>({gridTemplateColumns:`repeat(${a.stats.months.length}, minmax(2px, 1fr))`,gap:a.stats.months.length>96?"1px":"2px"})),A=$(()=>{const d=y.value.spanDays;if(d<30)return s("views.journey.duration.days",{count:d});const r=Math.floor(d/365),l=Math.floor(d%365/30);return r>0?l>0?s("views.journey.duration.yearsMonths",{years:r,months:l}):s("views.journey.duration.years",{count:r}):s("views.journey.duration.months",{count:Math.max(1,l)})}),w=$(()=>[{icon:"i-heroicons-sparkles-solid",colorClass:"text-pink-500 dark:text-pink-400",label:s("views.journey.metrics.peakMonth"),value:a.stats.peakMonth?q(a.stats.peakMonth.month):"—",subtext:a.stats.peakMonth?s("views.journey.metrics.messagesAndDays",{messages:M(a.stats.peakMonth.messageCount),days:M(a.stats.peakMonth.activeDays)}):"—"},{icon:"i-heroicons-calendar-days-solid",colorClass:"text-indigo-500 dark:text-indigo-400",label:s("views.journey.metrics.activeMonths"),value:s("views.journey.metrics.monthsRatio",{active:M(y.value.activeMonths),total:M(y.value.spanMonths)}),subtext:s("views.journey.metrics.activeDays",{count:M(y.value.activeDays)})},{icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-blue-500 dark:text-blue-400",label:s("views.journey.metrics.longestConversation"),value:a.stats.longestSegment?S(a.stats.longestSegment.durationSeconds):"—",subtext:a.stats.longestSegment?s("views.journey.metrics.conversationDetail",{date:b(a.stats.longestSegment.startTs),count:M(a.stats.longestSegment.messageCount)}):s("views.journey.metrics.noIndex")},{icon:"i-heroicons-moon-solid",colorClass:"text-violet-500 dark:text-violet-400",label:s("views.journey.metrics.longestSilence"),value:a.stats.longestSilence?S(a.stats.longestSilence.durationSeconds):"—",subtext:a.stats.longestSilence?a.stats.longestSilence.reopenedBy?s("views.journey.metrics.reopenedBy",{name:a.stats.longestSilence.reopenedBy.name}):s("views.journey.metrics.reopened"):a.stats.hasSessionIndex?s("views.journey.metrics.noSilence"):s("views.journey.metrics.noIndex")}]);function M(d){return i.value.format(d)}function b(d){return g.value.format(d*1e3)}function q(d){const[r,l]=d.split("-").map(Number);return D.value.format(new Date(r,l-1,1))}function S(d){const r=Math.max(0,Math.round(d/60));if(r<1)return s("views.journey.duration.lessThanMinute");if(r<60)return s("views.journey.duration.minutes",{count:r});const l=Math.floor(r/60);if(l<24){const k=r%60;return k>0?s("views.journey.duration.hoursMinutes",{hours:l,minutes:k}):s("views.journey.duration.hours",{count:l})}const c=Math.floor(l/24),m=l%24;return m>0?s("views.journey.duration.daysHours",{days:c,hours:m}):s("views.journey.duration.days",{count:c})}function _(d){if(d===0)return"4px";const r=Math.sqrt(d/v.value);return`${Math.round(10+r*50)}px`}function f(d,r){return s("views.journey.hero.monthTooltip",{month:q(d),count:M(r)})}return(d,r)=>{const l=ee;return n(),V(t(Se),null,{default:H(()=>[e("div",fn,[e("div",yn,[e("div",bn,[e("p",kn,o(b(y.value.firstMessageTs))+" – "+o(b(y.value.lastMessageTs)),1),e("div",_n,[e("span",wn,o(t(s)("views.journey.hero.prefix")),1),e("span",$n,o(A.value),1)]),e("p",Cn,o(t(s)(C.filtered?"views.journey.hero.filteredSummary":"views.journey.hero.summary",{activeMonths:M(y.value.activeMonths),activeDays:M(y.value.activeDays)})),1)]),e("div",Sn,[e("div",Mn,[e("p",jn,o(t(s)("views.journey.hero.footprint")),1),e("p",Pn,o(t(s)("views.journey.hero.monthCount",{count:M(y.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(z.value)},[(n(!0),u(O,null,G(C.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:_(c.messageCount)}),title:f(c.month,c.messageCount)},null,14,Tn))),128))],4),e("div",In,[e("span",null,o(q(C.stats.months[0].month)),1),e("span",null,o(q(C.stats.months[C.stats.months.length-1].month)),1)])])])]),e("div",Rn,[(n(!0),u(O,null,G(w.value,c=>(n(),u("div",{key:c.label,class:"flex min-w-0 items-start gap-2.5 px-2 py-1"},[j(l,{name:c.icon,class:F(["mt-0.5 h-4 w-4 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Dn,[e("p",{class:F(["truncate text-sm font-black leading-tight tabular-nums",c.colorClass])},o(c.value),3),e("p",An,o(c.label),1),e("p",qn,o(c.subtext),1)])]))),128))]),e("div",zn,[e("div",Ln,[j(l,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),r[0]||(r[0]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Bn,o(t(s)("views.journey.watermark")),1)])]),_:1})}}}),Vn={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Fn={class:"grid gap-4 px-5 pb-6 sm:grid-cols-2 sm:px-6 lg:grid-cols-3"},On={class:"min-w-0"},Un={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},En={class:"mt-0.5 text-sm font-semibold text-gray-900 dark:text-white"},Wn={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Hn={class:"space-y-3 px-5 pb-5 sm:px-6 sm:pb-6"},Jn={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Gn={class:"min-w-0"},Kn={class:"h-1.5 overflow-hidden rounded-full bg-gray-200/80 dark:bg-white/10"},Yn={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Qn={key:0,class:"text-left sm:min-w-28 sm:text-right"},Xn={class:"text-xs font-semibold text-gray-700 dark:text-gray-300"},Zn={class:"mt-0.5 text-[10px] text-gray-400 dark:text-gray-500"},ei=K({__name:"JourneyView",props:{sessionId:{},timeFilter:{},timeRange:{}},setup(C){const a=C,{t:s,locale:p}=Y(),i=U(null),g=U(!1),D=U(!1),y=$(()=>new Intl.NumberFormat(p.value)),v=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short",day:"numeric"})),z=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short"})),A=$(()=>a.timeRange?a.timeFilter?.startTs!=null&&a.timeFilter.startTs>a.timeRange.start||a.timeFilter?.endTs!=null&&a.timeFilter.endTs<a.timeRange.end:!1),w=$(()=>i.value?.range!=null),M=$(()=>Math.max(...i.value?.years.map(c=>c.messageCount)??[],1)),b=$(()=>{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:s("views.journey.milestones.start"),date:_(i.value.range.firstMessageTs),detail:s("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:s("views.journey.milestones.peak"),date:f(i.value.peakMonth.month),detail:s("views.journey.milestones.peakDetail",{count:S(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:s("views.journey.milestones.longestConversation"),date:_(i.value.longestSegment.startTs),detail:s("views.journey.milestones.conversationDetail",{duration:r(i.value.longestSegment.durationSeconds),count:S(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:s("views.journey.milestones.longestSilence"),date:s("views.journey.milestones.silenceRange",{start:_(i.value.longestSilence.startTs),end:_(i.value.longestSilence.endTs)}),detail:i.value.longestSilence.reopenedBy?s("views.journey.milestones.silenceDetailWithMember",{duration:r(i.value.longestSilence.durationSeconds),name:i.value.longestSilence.reopenedBy.name}):s("views.journey.milestones.silenceDetail",{duration:r(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:s("views.journey.milestones.end"),date:_(i.value.range.lastMessageTs),detail:s(A.value?"views.journey.milestones.filteredEndDetail":"views.journey.milestones.endDetail")}),c.sort((m,k)=>m.timestamp-k.timestamp||m.order-k.order)});X(()=>[a.sessionId,a.timeFilter],()=>q(),{immediate:!0,deep:!0});async function q(){if(a.sessionId){g.value=!0,D.value=!1;try{i.value=await Ce().getJourneyStats(a.sessionId,a.timeFilter)}catch(c){i.value=null,D.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{g.value=!1}}}function S(c){return y.value.format(c)}function _(c){return v.value.format(c*1e3)}function f(c){const[m,k]=c.split("-").map(Number);return z.value.format(new Date(m,k-1,1))}function d(c){const[m,k]=c.split("-").map(Number);return Math.floor(new Date(m,k-1,1).getTime()/1e3)}function r(c){const m=Math.max(0,Math.round(c/60));if(m<1)return s("views.journey.duration.lessThanMinute");if(m<60)return s("views.journey.duration.minutes",{count:m});const k=Math.floor(m/60);if(k<24){const J=m%60;return J>0?s("views.journey.duration.hoursMinutes",{hours:k,minutes:J}):s("views.journey.duration.hours",{count:k})}const P=Math.floor(k/24),E=k%24;return E>0?s("views.journey.duration.daysHours",{days:P,hours:E}):s("views.journey.duration.days",{count:P})}function l(c){return c===0?"0%":`${Math.max(4,Math.round(c/M.value*100))}%`}return(c,m)=>{const k=ee;return n(),u("div",{class:F(g.value?"h-full":"")},[g.value?(n(),V(t(xe),{key:0,variant:"page",text:t(s)("common.loading")},null,8,["text"])):(n(),u("div",Vn,[w.value?i.value?(n(),u(O,{key:1},[j(Nn,{stats:i.value,filtered:A.value},null,8,["stats","filtered"]),j(t(re),{title:t(s)("views.journey.milestones.title"),description:t(s)("views.journey.milestones.description"),"show-divider":!1},{default:H(()=>[e("div",Fn,[(n(!0),u(O,null,G(b.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(k,{name:P.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",On,[e("p",Un,o(P.title),1),e("p",En,o(P.date),1),e("p",Wn,o(P.detail),1)])]))),128))])]),_:1},8,["title","description"]),j(t(re),{title:t(s)("views.journey.years.title"),description:t(s)("views.journey.years.description"),"show-divider":!1},{default:H(()=>[e("div",Hn,[(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",Jn,o(P.year),1),e("div",Gn,[e("div",Kn,[e("div",{class:"h-full rounded-full bg-pink-400 dark:bg-pink-400/80",style:pe({width:l(P.messageCount)})},null,4)]),e("p",Yn,[P.messageCount>0?(n(),u(O,{key:0},[$e(o(t(s)("views.journey.years.summary",{messages:S(P.messageCount),days:S(P.activeDays),months:S(P.activeMonths)})),1)],64)):(n(),u(O,{key:1},[$e(o(t(s)("views.journey.years.quiet")),1)],64))])]),P.messageCount>0?(n(),u("div",Qn,[e("p",Xn,o(f(P.peakMonth)),1),e("p",Zn,o(t(s)("views.journey.years.peak",{count:S(P.peakMonthMessageCount)})),1)])):B("",!0)]))),128))])]),_:1},8,["title","description"])],64)):B("",!0):(n(),V(t(Me),{key:0,icon:"🗓️",text:t(s)(D.value?"views.journey.loadError":"views.journey.empty"),padding:"lg"},null,8,["text"]))]))],2)}}}),ti={class:"main-content mx-auto max-w-[920px] space-y-4 p-4 sm:space-y-6 sm:p-6"},ai={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},si={class:"p-3 sm:p-5"},ni={class:"p-3 sm:p-5"},ii=K({__name:"PrivateChatOverview",props:{session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(C){const{t:a}=Y(),s=C,{dailyChartData:p}=Ze(()=>s.dailyActivity),i=$(()=>({labels:s.messageTypes.map(y=>kt(y.type,a)),values:s.messageTypes.map(y=>y.count)})),g=$(()=>{if(s.memberActivity.length<2)return null;const v=[...s.memberActivity].sort((A,w)=>w.messageCount-A.messageCount).slice(0,2),z=v[0].messageCount+v[1].messageCount;return{member1:{name:v[0].name,avatar:v[0].avatar,count:v[0].messageCount,percentage:z>0?Math.round(v[0].messageCount/z*100):0},member2:{name:v[1].name,avatar:v[1].avatar,count:v[1].messageCount,percentage:z>0?Math.round(v[1].messageCount/z*100):0},total:z}}),D=$(()=>g.value?{labels:[g.value.member1.name,g.value.member2.name],values:[g.value.member1.count,g.value.member2.count]}:{labels:[],values:[]});return(y,v)=>(n(),u("div",ti,[j(Qe,{session:C.session,"daily-activity":C.dailyActivity,"message-types":C.messageTypes,"hourly-activity":C.hourlyActivity,"time-range":C.timeRange,"filtered-message-count":C.filteredMessageCount,"filtered-member-count":C.filteredMemberCount,"time-filter":C.timeFilter},null,8,["session","daily-activity","message-types","hourly-activity","time-range","filtered-message-count","filtered-member-count","time-filter"]),e("div",ai,[j(t(re),{title:t(a)("analysis.overview.messageTypeDistribution"),"show-divider":!1},{default:H(()=>[e("div",si,[j(t(Ie),{data:i.value,height:280},null,8,["data"])])]),_:1},8,["title"]),g.value?(n(),V(t(re),{key:0,title:t(a)("analysis.overview.memberComparison"),"show-divider":!1},{default:H(()=>[e("div",ni,[j(t(Ie),{data:D.value,height:280},null,8,["data"])])]),_:1},8,["title"])):B("",!0)]),j(Xe,{"daily-activity":C.dailyActivity,"daily-chart-data":t(p)},null,8,["daily-activity","daily-chart-data"])]))}}),oi={class:"flex h-full flex-col"},ri={class:"min-h-0 flex-1 overflow-auto"},li=K({__name:"PrivateChatInsights",props:{sessionId:{},session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},emits:["selectTab"],setup(C,{emit:a}){const{t:s}=Y(),p=C,i=$(()=>[{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"}]),g=U("overview"),D=a,y=U(null),v=$(()=>({...p.timeFilter,memberId:y.value}));return(z,A)=>(n(),u("div",oi,[j(t(vt),{modelValue:g.value,"onUpdate:modelValue":A[1]||(A[1]=w=>g.value=w),items:i.value,"persist-key":"privateInsightsTab",onSelect:A[2]||(A[2]=w=>D("selectTab",w))},{right:H(()=>[g.value==="type-analysis"||g.value==="time-analysis"?(n(),V(et,{key:0,modelValue:y.value,"onUpdate:modelValue":A[0]||(A[0]=w=>y.value=w),"session-id":p.sessionId},null,8,["modelValue","session-id"])):B("",!0)]),_:1},8,["modelValue","items"]),e("div",ri,[j(t(tt),{"active-key":g.value},{default:H(({viewKey:w})=>[w==="overview"?(n(),V(ii,{key:0,session:p.session,"member-activity":p.memberActivity,"message-types":p.messageTypes,"hourly-activity":p.hourlyActivity,"daily-activity":p.dailyActivity,"time-range":p.timeRange,"filtered-message-count":p.filteredMessageCount,"filtered-member-count":p.filteredMemberCount,"time-filter":p.timeFilter},null,8,["session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):w==="type-analysis"?(n(),V(at,{key:1,"session-id":p.sessionId,"session-name":p.session.name,"time-filter":v.value},null,8,["session-id","session-name","time-filter"])):w==="time-analysis"?(n(),V(st,{key:2,"session-id":p.sessionId,"session-name":p.session.name,"time-filter":v.value},null,8,["session-id","session-name","time-filter"])):w==="relationship"?(n(),V(xn,{key:3,"session-id":p.sessionId,"time-filter":p.timeFilter},null,8,["session-id","time-filter"])):w==="journey"?(n(),V(ei,{key:4,"session-id":p.sessionId,"time-filter":p.timeFilter,"time-range":p.timeRange},null,8,["session-id","time-filter","time-range"])):w==="topic"?(n(),V(t(nt),{key:5,"session-id":p.sessionId,"time-filter":p.timeFilter,"show-shared-topics":!0},null,8,["session-id","time-filter"])):w==="language-preference"?(n(),V(t(Ya),{key:6,"session-id":p.sessionId,"time-filter":p.timeFilter},null,8,["session-id","time-filter"])):B("",!0)]),_:1},8,["active-key"])])]))}}),ci={class:"relative flex h-full flex-col dark:bg-page-dark",style:{"padding-top":"var(--titlebar-area-height)"}},ui=["aria-label"],di={class:"relative flex-1 overflow-y-auto"},mi={class:"h-full"},pi={key:2,class:"flex h-full items-center justify-center"},gi={class:"text-gray-500"},vi={class:"flex h-full flex-col overflow-hidden bg-white dark:bg-page-dark"},hi={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"},fi={class:"text-sm text-gray-500 dark:text-gray-400"},yi={class:"flex-1 overflow-hidden"},bi=K({__name:"index",setup(C){const a=He(()=>Ge(()=>import("./MessageExportModal-C2IUNPhg.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),{t:s}=Y(),p=Ve(),i=Fe(),g=Oe(),D=Re(),y=Ue(),{currentSessionId:v}=Ee(g),z=U(!1),A=U(!1),w=U(!1),M=U(!1),b=U(!1);function q(){D.openChatRecordDrawer({})}const S=[{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:_,isLoading:f,isInitialLoad:d,isSessionSwitching:r,session:l,memberActivity:c,hourlyActivity:m,dailyActivity:k,messageTypes:P,timeRangeValue:E,fullTimeRange:J,timeFilter:le,initialTimeState:ce,invalidateAnalysisData:ne,handleTimeRangeInitialized:_e}=it({route:p,router:i,currentSessionId:v,selectSession:g.selectSession,defaultTab:y.defaultSessionTab,validTabIds:S.map(Q=>Q.id)});Ke("session-switch-loading",r);const ie=ot({chatType:"private",isActive:()=>_.value==="insights"&&!r.value,sessionId:v,routePath:()=>p.path}),ue=$(()=>c.value.reduce((Q,T)=>Q+T.messageCount,0)),ae=$(()=>c.value.filter(Q=>Q.messageCount>0).length),oe=$(()=>{if(!l.value)return null;if(l.value.memberAvatar)return l.value.memberAvatar;if(c.value.length===0)return null;if(l.value.ownerId){const T=c.value.find(Z=>Z.platformId!==l.value?.ownerId);if(T?.avatar)return T.avatar}const Q=c.value.find(T=>T.name===l.value?.name);return Q?.avatar?Q.avatar:(c.value.length,null)});return(Q,T)=>{const Z=De,we=Je;return n(),u("div",ci,[t(r)?(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(s)("common.loading")},[j(t(xt))],8,ui)):B("",!0),t(l)?(n(),u(O,{key:1},[j(rt,{"active-tab":t(_),"onUpdate:activeTab":T[0]||(T[0]=W=>Pe(_)?_.value=W:null),"time-range-value":t(E),"onUpdate:timeRangeValue":T[1]||(T[1]=W=>Pe(E)?E.value=W:null),title:t(l).name,avatar:oe.value,icon:"i-heroicons-user","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",tabs:S,"current-session-id":t(v),"initial-time-state":t(ce),onOpenIncrementalImport:T[2]||(T[2]=W=>w.value=!0),onOpenMemberManagement:T[3]||(T[3]=W=>b.value=!0),onOpenChatRecord:q,"onUpdate:fullRange":T[4]||(T[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",di,[t(f)&&!t(r)?(n(),V(t(xe),{key:0,variant:"overlay",text:t(s)("common.loading")},null,8,["text"])):B("",!0),e("div",mi,[j(We,{name:"tab-slide",mode:"out-in"},{default:H(()=>[t(_)==="insights"?(n(),V(li,{key:"insights-"+t(v),"session-id":t(v),session:t(l),"member-activity":t(c),"message-types":t(P),"hourly-activity":t(m),"daily-activity":t(k),"time-range":t(J),"filtered-message-count":ue.value,"filtered-member-count":ae.value,"time-filter":t(le),onSelectTab:t(ie)},null,8,["session-id","session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter","onSelectTab"])):t(_)==="ai-chat"?(n(),V(t(lt),{key:"ai-chat-"+t(v),"session-id":t(v),"session-name":t(l).name,"chat-type":"private"},null,8,["session-id","session-name"])):t(_)==="memory"?(n(),V(ct,{key:"memory-"+t(v),"session-id":t(v),"session-name":t(l).name},null,8,["session-id","session-name"])):t(_)==="more"?(n(),V(ut,{key:"more-"+t(v),"session-id":t(v),"chat-type":"private"},null,8,["session-id"])):B("",!0)]),_:1})])]),j(dt,{onOpenIncrementalImport:T[5]||(T[5]=W=>w.value=!0),onOpenSemanticIndex:T[6]||(T[6]=W=>z.value=!0),onOpenMemberManagement:T[7]||(T[7]=W=>b.value=!0),onOpenChatRecord:q,onOpenMessageExport:T[8]||(T[8]=W=>M.value=!0)})],64)):t(d)?B("",!0):(n(),u("div",pi,[e("p",gi,o(t(s)("analysis.privateChat.loadError")),1)])),t(v)&&t(l)?(n(),V(mt,{key:3,modelValue:z.value,"onUpdate:modelValue":T[9]||(T[9]=W=>z.value=W),"session-id":t(v),"message-count":t(l).messageCount},null,8,["modelValue","session-id","message-count"])):B("",!0),t(v)&&t(l)?(n(),V(_t,{key:4,modelValue:A.value,"onUpdate:modelValue":T[10]||(T[10]=W=>A.value=W),"session-id":t(v),"chat-type":"private","auto-check":""},null,8,["modelValue","session-id"])):B("",!0),t(v)&&t(l)?(n(),V(pt,{key:5,modelValue:w.value,"onUpdate:modelValue":T[11]||(T[11]=W=>w.value=W),"session-id":t(v),"session-name":t(l).name,onImported:T[12]||(T[12]=()=>{t(ne)(),t(g).loadSessions()})},null,8,["modelValue","session-id","session-name"])):B("",!0),t(v)?(n(),V(t(a),{key:6,modelValue:M.value,"onUpdate:modelValue":T[13]||(T[13]=W=>M.value=W)},null,8,["modelValue"])):B("",!0),t(v)?(n(),V(we,{key:7,open:b.value,"onUpdate:open":T[15]||(T[15]=W=>b.value=W),ui:{content:"max-w-6xl h-[85vh]"}},{content:H(()=>[e("div",vi,[e("div",hi,[e("div",null,[e("h2",xi,o(t(s)("analysis.tooltip.memberManagement")),1),e("p",fi,o(t(s)("members.private.description",{count:t(l)?.memberCount??0})),1)]),j(Z,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:T[14]||(T[14]=W=>b.value=!1)})]),e("div",yi,[j(gt,{"session-id":t(v),"show-header":!1,"chat-type":"private",onDataChanged:t(ne)},null,8,["session-id","onDataChanged"])])])]),_:1},8,["open"])):B("",!0)])}}}),oo=Ye(bi,[["__scopeId","data-v-223aca33"]]);export{oo as default};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MessageExportModal-JpurBsUW.js","assets/index-bQ9oj54q.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-BZpR015e.css","assets/useToast-DPkgv34s.js","assets/Tabs-BXjD45rO.js","assets/Tabs-DJ5p8gb6.js","assets/RovingFocusItem-FpYwYEP_.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as K,a6 as Y,ac as ge,K as X,x as ve,y as he,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 B,z as j,a7 as ee,O as pe,e as $,b as U,J as Re,L as Ce,ar as Le,r as Be,a8 as De,a9 as $e,a5 as Ne,aD as Ve,ay as Fe,ap as Oe,ab as Ue,aA as Ee,be as Pe,aE as We,bs as He,aa as Je,bt as Ge,H as Ke,ah as Ye}from"./index-bQ9oj54q.js";import{_ as Se,a as Me,b as le,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,k as rt,C as lt,l as ct,M as ut,m as dt,n as mt,o as pt,p as gt}from"./useInsightTabAnalytics-DaU_ADbQ.js";import{_ as vt}from"./SectionTabs.vue_vue_type_script_setup_true_lang-pVQMbTsj.js";import{_ as ht}from"./Select-H8Fz6RkU.js";import{_ as xe,L as xt}from"./LoadingState.vue_vue_type_script_setup_true_lang-uF54r-dT.js";import{T as Ae}from"./Tabs-BXjD45rO.js";import{_ as Te}from"./EChart.vue_vue_type_script_setup_true_lang-CRTZh9kh.js";import"./vendor-echarts-wordcloud-DNiU8Psq.js";import{u as fe,x as ft,q as ye,j as be,i as se,m as qe,t as ze,s as yt,k as bt}from"./vendor-echarts-C9ugTmum.js";import{_ as ke}from"./ThemeCard.vue_vue_type_script_setup_true_lang-BLmTpx4f.js";import{g as kt}from"./base-129JztT1.js";import{i as Ie}from"./chatMessages-zmzHCUCy.js";import{_ as _t}from"./useTable-BYXxnZMd.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-BmGA3geF.js";import"./useToast-DPkgv34s.js";import"./service-BwbGKwDn.js";import"./Checkbox-CrlY3jiJ.js";import"./useFormControl-CNmp_2bd.js";import"./VisuallyHiddenInput-J2KEIQBX.js";import"./RovingFocusItem-FpYwYEP_.js";import"./Label-CaVKlQnJ.js";import"./prompt-DNxAd1Bj.js";import"./aiChat-CdJzpNYW.js";import"./chatlabSiteLocale-CrCNb8QP.js";import"./ChatRecordWorkspace-DKVKaimw.js";import"./DatePicker.vue_vue_type_script_setup_true_lang-BYY2UmPA.js";import"./clamp-jFYhBC76.js";import"./EChartBar.vue_vue_type_script_setup_true_lang-DjDFhnN9.js";import"./Tabs-DJ5p8gb6.js";import"./semantic-index-config-builder-CQ27G4TK.js";import"./TimeSelect.vue_vue_type_script_setup_true_lang-geQAlopO.js";import"./CardDecoration-Cz54ZPyh.js";import"./EChartLine.vue_vue_type_script_setup_true_lang-BLqlW9E4.js";import"./PageHeader-BciykZ_-.js";import"./PageTabs.vue_vue_type_script_setup_true_lang-2Xe2iUFO.js";import"./Alert-GSvA5B7J.js";import"./FileDropZone.vue_vue_type_script_setup_true_lang-CsRmQhVQ.js";import"./vendor-zrender-D8psf1AA.js";const wt={key:0,class:"relative z-10 flex flex-col h-full"},$t={class:"flex flex-col sm:flex-row items-center sm:items-start gap-6 px-6 pt-8 pb-4 sm:px-8"},Ct={class:"w-full flex-1 min-w-0"},St={class:"flex items-center gap-x-2 sm:gap-x-3 mb-6 sm:mb-8"},Mt={class:"text-2xl sm:text-4xl font-black tracking-tight text-blue-600 dark:text-blue-400 truncate"},jt={class:"text-2xl sm:text-4xl font-black tracking-tight text-pink-600 dark:text-pink-400 truncate"},Pt={class:"grid grid-cols-2 gap-4 sm:gap-10"},Tt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},It={class:"flex flex-col gap-2.5"},Rt=["title","onClick"],Dt={class:"shrink-0 text-[10px] sm:text-xs font-semibold tabular-nums text-gray-400/80"},At={key:0,class:"text-xs sm:text-sm font-medium text-gray-400"},qt={class:"hidden shrink-0 sm:block"},zt={class:"px-6 pb-6 pt-2 sm:px-8 mt-auto"},Lt={class:"mb-3 flex items-center justify-between"},Bt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Nt={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Vt={class:"mb-4 flex items-center gap-2.5"},Ft={class:"text-sm font-bold tracking-wide text-gray-900 dark:text-white"},Ot={class:"flex items-center justify-between mb-4 w-full"},Ut={class:"flex flex-col flex-1 min-w-0"},Et={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Wt={class:"flex flex-col flex-1 min-w-0 items-end text-right"},Ht={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Jt={class:"mt-auto pt-3 border-t border-gray-100 dark:border-white/5 flex flex-col"},Gt={key:0,class:"flex items-start justify-between gap-2 mb-2 min-h-[24px]"},Kt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1"},Yt={key:0,class:"text-[11px] text-gray-400"},Qt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1 justify-end"},Xt={key:0,class:"text-[11px] text-gray-400"},Zt={key:1,class:"flex flex-nowrap overflow-hidden items-center gap-x-1.5 mb-2 min-h-[24px]"},ea=["onClick"],ta={key:0,class:"shrink-0 text-gray-300 dark:text-gray-600 font-normal"},aa={key:0,class:"text-[11px] text-gray-400"},sa={class:"text-[10px] leading-relaxed text-gray-500 dark:text-gray-400"},na={class:"flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},ia={class:"flex items-center gap-1.5"},oa={class:"text-[9px] font-medium uppercase tracking-widest"},ra=K({__name:"LanguagePreferenceCard",props:{data:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(C,{emit:a}){fe([ft,ye,be]);const{t:s}=Y(),p=ge(),i=C,g=a,D=$(()=>i.data.members[0]),y=$(()=>i.data.members[1]);function v(r,l){return r.length<=l?r:r.slice(0,l)+"…"}function z(r){const l=r.posDistribution,c=l.noun+l.verb+l.adjective+l.adverb+l.modalParticle+l.interjection+l.other;return c===0?s("quotes.languagePreference.pos.styleBalanced"):l.noun/c>.5?s("quotes.languagePreference.pos.styleEncyclopedia"):l.verb/c>.45?s("quotes.languagePreference.pos.styleAction"):l.adjective/c>.3?s("quotes.languagePreference.pos.styleExpressive"):s("quotes.languagePreference.pos.styleBalanced")}function A(r){const c=[["ellipsis",r.ellipsis],["exclamation",r.exclamation],["question",r.question],["tilde",r.tilde],["noPunct",r.noPunct],["period",r.period]].reduce((k,P)=>k[1]>=P[1]?k:P);return{ellipsis:s("quotes.languagePreference.punctuation.personalityDeep"),exclamation:s("quotes.languagePreference.punctuation.personalityPassionate"),question:s("quotes.languagePreference.punctuation.personalityCurious"),tilde:s("quotes.languagePreference.punctuation.personalityCheerful"),noPunct:s("quotes.languagePreference.punctuation.personalityFreeflow"),period:s("quotes.languagePreference.punctuation.personalityPrecise")}[c[0]]||"-"}function w(r,l=5){return[["...",r.ellipsis],["!",r.exclamation],["?",r.question],["~",r.tilde],["。",r.period]].filter(([,m])=>m>0).sort((m,k)=>k[1]-m[1]).slice(0,l).map(([m])=>m)}const M=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e","#eab308","#06b6d4"],b=$(()=>{const r=D.value,l=y.value;if(!r||!l)return[];const c=i.data.sharedWords.slice(0,6).map((m,k)=>({word:m.word,color:M[k%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:s("quotes.languagePreference.card.diversityTitle"),leftName:r.name,leftValue:`${r.lexicalDiversity}%`,rightName:l.name,rightValue:`${l.lexicalDiversity}%`,valueClass:"text-lg text-blue-600 dark:text-blue-400",detail:{kind:"tags-single",tags:c},desc:s("quotes.languagePreference.card.diversityDesc")},{icon:"i-heroicons-sparkles",iconBgClass:"bg-violet-100 dark:bg-violet-500/20",iconColorClass:"text-violet-600 dark:text-violet-400",title:s("quotes.languagePreference.card.styleTitle"),leftName:r.name,leftValue:z(r),rightName:l.name,rightValue:z(l),valueClass:"text-xs text-violet-600 dark:text-violet-400",detail:{kind:"tags-vs",leftTags:r.modalParticles.slice(0,4).map(m=>m.word),rightTags:l.modalParticles.slice(0,4).map(m=>m.word)},desc:s("quotes.languagePreference.card.styleDesc")},{icon:"i-heroicons-finger-print",iconBgClass:"bg-orange-100 dark:bg-orange-500/20",iconColorClass:"text-orange-600 dark:text-orange-400",title:s("quotes.languagePreference.card.punctTitle"),leftName:r.name,leftValue:A(r.punctuation),rightName:l.name,rightValue:A(l.punctuation),valueClass:"text-xs text-orange-600 dark:text-orange-400",detail:{kind:"tags-vs",leftTags:w(r.punctuation,4),rightTags:w(l.punctuation,4)},desc:s("quotes.languagePreference.card.punctDesc")}]}),q=U(null);let S=null;function _(){q.value&&(S=se(q.value,void 0,{renderer:"canvas"}),f())}function f(){if(!S||!D.value||!y.value)return;const r=D.value.posDistribution,l=y.value.posDistribution,c=[{name:s("quotes.languagePreference.card.radarFactual"),max:0},{name:s("quotes.languagePreference.card.radarActive"),max:0},{name:s("quotes.languagePreference.card.radarDescriptive"),max:0},{name:s("quotes.languagePreference.card.radarAffable"),max:0},{name:s("quotes.languagePreference.card.radarIntense"),max:0}],m=[r.noun,r.verb,r.adjective,r.modalParticle+r.interjection,r.adverb],k=[l.noun,l.verb,l.adjective,l.modalParticle+l.interjection,l.adverb];for(let E=0;E<c.length;E++)c[E].max=Math.max(m[E],k[E],1)*1.3;const P=p.value?"#9ca3af":"#6b7280";S.setOption({backgroundColor:"transparent",tooltip:{trigger:"item"},legend:{bottom:0,itemWidth:10,itemHeight:10,textStyle:{fontSize:10,color:P},data:[D.value.name,y.value.name]},radar:{indicator:c,radius:"60%",center:["50%","50%"],splitArea:{areaStyle:{color:p.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:p.value?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.06)"}},axisLine:{lineStyle:{color:p.value?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)"}}},series:[{type:"radar",data:[{value:m,name:D.value.name,lineStyle:{color:"#3b82f6",width:2},areaStyle:{color:"rgba(59,130,246,0.15)"},itemStyle:{color:"#3b82f6"},symbol:"circle",symbolSize:4},{value:k,name:y.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(){S?.resize()}return X(()=>i.data,()=>f(),{deep:!0}),X(p,()=>{S?.dispose(),_()}),ve(()=>{_(),window.addEventListener("resize",d)}),he(()=>{window.removeEventListener("resize",d),S?.dispose()}),(r,l)=>{const c=ee;return n(),V(t(Se),null,{default:H(()=>[D.value&&y.value?(n(),u("div",wt,[e("div",$t,[e("div",Ct,[e("div",St,[e("span",Mt,o(D.value.name),1),l[0]||(l[0]=e("span",{class:"text-sm sm:text-lg font-black text-gray-300 dark:text-gray-600 italic px-1 sm:px-2 shrink-0"}," VS ",-1)),e("span",jt,o(y.value.name),1)]),e("div",Pt,[(n(!0),u(O,null,G([D.value,y.value],(m,k)=>(n(),u("div",{key:m.memberId,class:"flex flex-col gap-3"},[e("div",Tt,o(t(s)("quotes.languagePreference.card.topCatchphrases")),1),e("div",It,[(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",k===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&&g("wordClick",P.content)}," 「"+o(v(P.content,12))+"」 ",11,Rt),e("span",Dt," ×"+o(P.count),1)]))),128)),m.catchphrases.length===0?(n(),u("div",At,"-")):B("",!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",zt,[e("div",Lt,[e("span",Bt,o(t(s)("quotes.languagePreference.card.languageProfiles")),1)]),e("div",Nt,[(n(!0),u(O,null,G(b.value,m=>(n(),u("div",{key:m.title,class:"flex min-w-0 flex-col p-4"},[e("div",Vt,[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",Ft,o(m.title),1)]),e("div",Ot,[e("div",Ut,[e("span",Et,o(m.leftName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",m.valueClass])},o(m.leftValue),3)]),l[1]||(l[1]=e("div",{class:"px-2 shrink-0"},[e("span",{class:"text-[10px] font-black text-gray-300 dark:text-gray-600 italic"},"VS")],-1)),e("div",Wt,[e("span",Ht,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",Jt,[m.detail.kind==="tags-vs"?(n(),u("div",Gt,[e("div",Kt,[(n(!0),u(O,null,G(m.detail.leftTags,k=>(n(),u("span",{key:k,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(k),1))),128)),m.detail.leftTags.length===0?(n(),u("span",Yt,"-")):B("",!0)]),e("div",Qt,[(n(!0),u(O,null,G(m.detail.rightTags,k=>(n(),u("span",{key:k,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(k),1))),128)),m.detail.rightTags.length===0?(n(),u("span",Xt,"-")):B("",!0)])])):m.detail.kind==="tags-single"?(n(),u("div",Zt,[(n(!0),u(O,null,G(m.detail.tags.slice(0,6),(k,P)=>(n(),u(O,{key:k.word},[e("span",{class:F(["shrink-0 text-[11px] font-bold transition-opacity",i.enableRecordNavigation?"cursor-pointer hover:opacity-80":""]),style:pe({color:k.color}),onClick:E=>i.enableRecordNavigation&&g("wordClick",k.word)},o(k.word),15,ea),P<m.detail.tags.slice(0,6).length-1?(n(),u("span",ta," · ")):B("",!0)],64))),128)),m.detail.tags.length===0?(n(),u("span",aa,"-")):B("",!0)])):B("",!0),e("p",sa,o(m.desc),1)])]))),128))])]),e("div",na,[e("div",ia,[j(c,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),l[2]||(l[2]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",oa,o(t(s)("quotes.languagePreference.card.watermark")),1)])])):B("",!0)]),_:1})}}}),la={class:"px-5 py-4 sm:px-6"},ca={class:"mb-4 flex items-center justify-between"},ua={class:"flex items-center gap-2"},da={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},ma={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"},pa={key:0,class:"grid grid-cols-2 gap-6"},ga={class:"mb-3 text-center"},va={class:"text-sm font-semibold text-blue-600 dark:text-blue-400"},ha={class:"flex flex-wrap gap-2"},xa=["title","onClick"],fa={class:"text-[10px] font-semibold opacity-60"},ya={class:"mb-3 text-center"},ba={class:"text-sm font-semibold text-pink-600 dark:text-pink-400"},ka={class:"flex flex-wrap gap-2"},_a=["title","onClick"],wa={class:"text-[10px] font-semibold opacity-60"},$a={key:1,class:"mt-4 text-center text-xs text-gray-500 dark:text-gray-400"},Ca=K({__name:"CatchphrasePKSection",props:{members:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(C,{emit:a}){const{t:s}=Y(),p=C,i=a,g=U(20),D=[{label:"10",value:10},{label:"20",value:20},{label:"30",value:30}],y=$(()=>p.members[0]),v=$(()=>p.members[1]),z=$(()=>y.value?.catchphrases.slice(0,g.value)??[]),A=$(()=>v.value?.catchphrases.slice(0,g.value)??[]),w=$(()=>{if(!y.value||!v.value)return new Set;const S=new Set(y.value.catchphrases.map(f=>f.content)),_=new Set(v.value.catchphrases.map(f=>f.content));return new Set([...S].filter(f=>_.has(f)))}),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 b(S){return S<M.length?M[S]:{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(S,_=20){return S.length<=_?S:S.slice(0,_)+"..."}return(S,_)=>{const f=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",la,[e("div",ca,[e("div",ua,[j(f,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"h-4 w-4 text-indigo-500"}),e("span",da,o(t(s)("quotes.languagePreference.catchphrasePK.title")),1),w.value.size>0?(n(),u("span",ma,o(t(s)("quotes.languagePreference.catchphrasePK.sharedCount",{count:w.value.size})),1)):B("",!0)]),j(t(Ae),{modelValue:g.value,"onUpdate:modelValue":_[0]||(_[0]=d=>g.value=d),size:"xs",items:D},null,8,["modelValue"])]),y.value&&v.value?(n(),u("div",pa,[e("div",null,[e("div",ga,[e("span",va,o(y.value.name),1)]),e("div",ha,[(n(!0),u(O,null,G(z.value,(d,r)=>(n(),u("div",{key:d.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[p.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",w.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":b(r).bg]]),title:d.content,onClick:l=>p.enableRecordNavigation&&i("wordClick",d.content)},[r<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",b(r).badge])},o(r+1),3)):B("",!0),e("span",{class:F(["text-[13px] font-medium",w.value.has(d.content)?"font-bold":b(r).text])},o(q(d.content)),3),e("span",fa,"×"+o(d.count),1)],10,xa))),128))])]),e("div",null,[e("div",ya,[e("span",ba,o(v.value.name),1)]),e("div",ka,[(n(!0),u(O,null,G(A.value,(d,r)=>(n(),u("div",{key:d.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[p.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",w.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":b(r).bg]]),title:d.content,onClick:l=>p.enableRecordNavigation&&i("wordClick",d.content)},[r<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",b(r).badge])},o(r+1),3)):B("",!0),e("span",{class:F(["text-[13px] font-medium",w.value.has(d.content)?"font-bold":b(r).text])},o(q(d.content)),3),e("span",wa,"×"+o(d.count),1)],10,_a))),128))])])])):B("",!0),p.enableRecordNavigation?(n(),u("p",$a,o(t(s)("quotes.languagePreference.catchphrasePK.hint")),1)):B("",!0)])]),_:1})}}}),Sa={class:"px-5 py-4 sm:px-6"},Ma={class:"mb-4 flex items-center gap-2"},ja={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Pa={class:"flex flex-col gap-4 lg:flex-row lg:gap-6"},Ta={class:"flex-1"},Ia={key:0,class:"flex shrink-0 flex-col gap-3 lg:w-48"},Ra={class:"min-w-0"},Da={class:"truncate text-xs font-semibold text-gray-500 dark:text-gray-400"},Aa=K({__name:"PosPortraitSection",props:{members:{}},setup(C){fe([qe,ze,ye,yt,be]);const{t:a}=Y(),s=ge(),p=C,i=$(()=>p.members[0]),g=$(()=>p.members[1]);function D(M){const b=M.posDistribution,q=b.noun+b.verb+b.adjective+b.adverb+b.modalParticle+b.interjection+b.other;if(q===0)return{label:a("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const S=b.noun/q,_=b.verb/q,f=b.adjective/q;return S>.5?{label:a("quotes.languagePreference.pos.styleEncyclopedia"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:_>.45?{label:a("quotes.languagePreference.pos.styleAction"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:f>.3?{label:a("quotes.languagePreference.pos.styleExpressive"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{label:a("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}const y=U(null);let v=null;function z(){y.value&&(v=se(y.value,void 0,{renderer:"canvas"}),A())}function A(){if(!v||!i.value||!g.value)return;const M=i.value.posDistribution,b=g.value.posDistribution,q=[a("quotes.languagePreference.card.radarNoun"),a("quotes.languagePreference.card.radarVerb"),a("quotes.languagePreference.card.radarAdj"),a("quotes.languagePreference.card.radarModal"),a("quotes.languagePreference.card.radarAdv")],S=[M.noun,M.verb,M.adjective,M.modalParticle+M.interjection,M.adverb],_=[b.noun,b.verb,b.adjective,b.modalParticle+b.interjection,b.adverb],f=s.value?"#9ca3af":"#6b7280";v.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{data:[i.value.name,g.value.name],top:0,textStyle:{fontSize:11,color:f}},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:f}},series:[{name:i.value.name,type:"bar",data:S,itemStyle:{color:"#3b82f6",borderRadius:[0,4,4,0]},barGap:"20%",barCategoryGap:"40%"},{name:g.value.name,type:"bar",data:_,itemStyle:{color:"#ec4899",borderRadius:[0,4,4,0]}}]},{notMerge:!0})}function w(){v?.resize()}return X(()=>p.members,()=>A(),{deep:!0}),X(s,()=>{v?.dispose(),z()}),ve(()=>{z(),window.addEventListener("resize",w)}),he(()=>{window.removeEventListener("resize",w),v?.dispose()}),(M,b)=>{const q=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",Sa,[e("div",Ma,[j(q,{name:"i-heroicons-chart-bar",class:"h-4 w-4 text-violet-500"}),e("span",ja,o(t(a)("quotes.languagePreference.pos.title")),1)]),e("div",Pa,[e("div",Ta,[e("div",{ref_key:"chartRef",ref:y,style:{width:"100%",height:"220px"}},null,512)]),i.value&&g.value?(n(),u("div",Ia,[(n(!0),u(O,null,G([i.value,g.value],S=>(n(),u("div",{key:S.memberId,class:"flex min-w-0 items-center gap-3 px-1 py-3"},[j(q,{name:D(S).icon,class:F(["h-5 w-5 shrink-0",D(S).colorClass])},null,8,["name","class"]),e("div",Ra,[e("div",Da,o(S.name),1),e("div",{class:F(["truncate text-sm font-bold",D(S).colorClass])},o(D(S).label),3)])]))),128))])):B("",!0)])])]),_:1})}}}),qa={class:"px-5 py-4 sm:px-6"},za={class:"mb-4 flex items-center gap-2"},La={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Ba={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Na={class:"mb-2 flex items-center justify-between"},Va={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Fa=K({__name:"ModalParticleSection",props:{members:{}},setup(C){fe([qe,ze,ye,be]);const{t:a}=Y(),s=ge(),p=C,i=$(()=>p.members[0]),g=$(()=>p.members[1]),D=new Set(["呀","哒","滴","啦","哇","耶"]),y=new Set(["呢","吗","嘛"]),v=new Set(["吧","喔","噢","嘛"]),z=new Set(["嗯","哦","额","呃"]);function A(d){const r={label:a("quotes.languagePreference.modal.toneMixed"),colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"};if(d.modalParticles.length===0)return r;let l=0,c=0,m=0,k=0,P=0;for(const J of d.modalParticles)P+=J.count,D.has(J.word)&&(l+=J.count),y.has(J.word)&&(c+=J.count),v.has(J.word)&&(m+=J.count),z.has(J.word)&&(k+=J.count);if(P===0)return r;const E=Math.max(l,c,m,k);return E===l&&l/P>.3?{label:a("quotes.languagePreference.modal.toneSoft"),colorClass:"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30"}:E===c&&c/P>.3?{label:a("quotes.languagePreference.modal.toneCurious"),colorClass:"bg-violet-50 text-violet-600 ring-1 ring-violet-500/20 dark:bg-violet-500/10 dark:text-violet-400 dark:ring-violet-500/30"}:E===m&&m/P>.3?{label:a("quotes.languagePreference.modal.toneCasual"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"}:E===k&&k/P>.3?{label:a("quotes.languagePreference.modal.toneCalm"),colorClass:"bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30"}:r}const w=U(null),M=U(null);let b=null,q=null;function S(d,r){const l=d.modalParticles.slice(0,8),c=s.value?"#9ca3af":"#6b7280";return{backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},grid:{left:40,right:20,top:4,bottom:4},xAxis:{type:"value",show:!1},yAxis:{type:"category",data:l.map(m=>m.word).reverse(),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:12,color:c},inverse:!1},series:[{type:"bar",data:l.map(m=>m.count).reverse(),itemStyle:{color:r,borderRadius:[0,4,4,0]},barWidth:"50%",label:{show:!0,position:"right",fontSize:10,color:c,formatter:"{c}"}}]}}function _(){w.value&&i.value&&(b=se(w.value,void 0,{renderer:"canvas"}),b.setOption(S(i.value,"#3b82f6"),{notMerge:!0})),M.value&&g.value&&(q=se(M.value,void 0,{renderer:"canvas"}),q.setOption(S(g.value,"#ec4899"),{notMerge:!0}))}function f(){b?.resize(),q?.resize()}return X(()=>p.members,()=>{b&&i.value&&b.setOption(S(i.value,"#3b82f6"),{notMerge:!0}),q&&g.value&&q.setOption(S(g.value,"#ec4899"),{notMerge:!0})},{deep:!0}),X(s,()=>{b?.dispose(),q?.dispose(),_()}),ve(()=>{_(),window.addEventListener("resize",f)}),he(()=>{window.removeEventListener("resize",f),b?.dispose(),q?.dispose()}),(d,r)=>{const l=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",qa,[e("div",za,[j(l,{name:"i-heroicons-chat-bubble-oval-left-ellipsis",class:"h-4 w-4 text-pink-500"}),e("span",La,o(t(a)("quotes.languagePreference.modal.title")),1)]),i.value&&g.value?(n(),u("div",Ba,[(n(!0),u(O,null,G([i.value,g.value],(c,m)=>(n(),u("div",{key:c.memberId},[e("div",Na,[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",A(c).colorClass])},o(A(c).label),3)]),c.modalParticles.length>0?(n(),u("div",{key:0,ref_for:!0,ref:k=>{m===0?w.value=k:M.value=k},style:{width:"100%",height:"200px"}},null,512)):(n(),u("div",Va,o(t(a)("quotes.languagePreference.modal.empty")),1))]))),128))])):B("",!0)])]),_:1})}}}),Oa={class:"px-5 py-4 sm:px-6"},Ua={class:"mb-4 flex items-center gap-2"},Ea={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Wa={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Ha={class:"mb-2 flex items-center gap-2"},Ja={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Ga=K({__name:"PunctuationSection",props:{members:{}},setup(C){fe([bt,ye,be]);const{t:a}=Y(),s=ge(),p=C,i=$(()=>p.members[0]),g=$(()=>p.members[1]),D=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6"];function y(_){const d=[["ellipsis",_.ellipsis],["exclamation",_.exclamation],["question",_.question],["tilde",_.tilde],["noPunct",_.noPunct],["period",_.period]].reduce((l,c)=>l[1]>=c[1]?l:c);return{ellipsis:{label:a("quotes.languagePreference.punctuation.personalityDeep"),colorClass:"bg-indigo-50 text-indigo-600 ring-1 ring-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-400 dark:ring-indigo-500/30"},exclamation:{label:a("quotes.languagePreference.punctuation.personalityPassionate"),colorClass:"bg-rose-50 text-rose-600 ring-1 ring-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400 dark:ring-rose-500/30"},question:{label:a("quotes.languagePreference.punctuation.personalityCurious"),colorClass:"bg-amber-50 text-amber-600 ring-1 ring-amber-500/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30"},tilde:{label:a("quotes.languagePreference.punctuation.personalityCheerful"),colorClass:"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30"},noPunct:{label:a("quotes.languagePreference.punctuation.personalityFreeflow"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"},period:{label:a("quotes.languagePreference.punctuation.personalityPrecise"),colorClass:"bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30"}}[d[0]]||{label:"-",colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"}}function v(_){return[{name:"...",value:_.ellipsis},{name:"!",value:_.exclamation},{name:"?",value:_.question},{name:"~",value:_.tilde},{name:"。",value:_.period},{name:a("quotes.languagePreference.punctuation.none"),value:_.noPunct}].filter(f=>f.value>0)}const z=U(null),A=U(null);let w=null,M=null;function b(_){return{backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},series:[{type:"pie",radius:["45%","75%"],center:["50%","50%"],avoidLabelOverlap:!1,padAngle:2,itemStyle:{borderRadius:4},label:{show:!0,fontSize:10,color:s.value?"#9ca3af":"#6b7280",formatter:"{b}"},emphasis:{label:{show:!0,fontWeight:"bold"},scaleSize:4},data:_.map((f,d)=>({...f,itemStyle:{color:D[d%D.length]}}))}]}}function q(){z.value&&i.value&&(w=se(z.value,void 0,{renderer:"canvas"}),w.setOption(b(v(i.value.punctuation)),{notMerge:!0})),A.value&&g.value&&(M=se(A.value,void 0,{renderer:"canvas"}),M.setOption(b(v(g.value.punctuation)),{notMerge:!0}))}function S(){w?.resize(),M?.resize()}return X(()=>p.members,()=>{w&&i.value&&w.setOption(b(v(i.value.punctuation)),{notMerge:!0}),M&&g.value&&M.setOption(b(v(g.value.punctuation)),{notMerge:!0})},{deep:!0}),X(s,()=>{w?.dispose(),M?.dispose(),q()}),ve(()=>{q(),window.addEventListener("resize",S)}),he(()=>{window.removeEventListener("resize",S),w?.dispose(),M?.dispose()}),(_,f)=>{const d=ee;return n(),V(t(ke),null,{default:H(()=>[e("div",Oa,[e("div",Ua,[j(d,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4 text-orange-500"}),e("span",Ea,o(t(a)("quotes.languagePreference.punctuation.title")),1)]),i.value&&g.value?(n(),u("div",Wa,[(n(!0),u(O,null,G([i.value,g.value],(r,l)=>(n(),u("div",{key:r.memberId,class:"flex flex-col items-center"},[e("div",Ha,[e("span",{class:F(["text-sm font-semibold",l===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(r.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",y(r.punctuation).colorClass])},o(y(r.punctuation).label),3)]),r.punctuation.total>0?(n(),u("div",{key:0,ref_for:!0,ref:c=>{l===0?z.value=c:A.value=c},style:{width:"100%",height:"200px"}},null,512)):(n(),u("div",Ja,o(t(a)("quotes.languagePreference.punctuation.empty")),1))]))),128))])):B("",!0)])]),_:1})}}}),Ka={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Ya=K({__name:"LanguagePreferenceTab",props:{sessionId:{},timeFilter:{},enableRecordNavigation:{type:Boolean,default:!0}},setup(C){const{t:a,locale:s}=Y(),p=Re(),i=C,g=U(null),D=U(!1),y=$(()=>g.value&&g.value.members.length>=2);async function v(){if(i.sessionId){D.value=!0;try{g.value=await Ce().getLanguagePreferenceAnalysis(i.sessionId,s.value,i.timeFilter)}catch(A){console.error("[LanguagePreferenceTab] Failed to load:",A)}finally{D.value=!1}}}function z(A){i.enableRecordNavigation&&p.openChatRecordDrawer({keywords:[A]})}return X(()=>[i.sessionId,i.timeFilter],()=>v(),{immediate:!0,deep:!0}),(A,w)=>(n(),u("div",Ka,[D.value?(n(),V(t(xe),{key:0,text:t(a)("quotes.languagePreference.loading")},null,8,["text"])):y.value?g.value?(n(),u(O,{key:2},[j(ra,{data:g.value,"enable-record-navigation":i.enableRecordNavigation,onWordClick:z},null,8,["data","enable-record-navigation"]),j(Ca,{members:g.value.members,"enable-record-navigation":i.enableRecordNavigation,onWordClick:z},null,8,["members","enable-record-navigation"]),j(Aa,{members:g.value.members},null,8,["members"]),j(Fa,{members:g.value.members},null,8,["members"]),j(Ga,{members:g.value.members},null,8,["members"])],64)):B("",!0):(n(),V(t(Me),{key:1,text:t(a)("quotes.languagePreference.empty")},null,8,["text"]))]))}}),Qa={class:"flex min-w-0 flex-col p-4"},Xa={class:"mb-2 min-h-8"},Za={class:"flex items-center justify-between gap-2"},es={class:"flex min-w-0 items-center gap-2"},ts={class:"truncate text-xs font-bold tracking-wide text-gray-900 dark:text-white"},as={key:0,class:"shrink-0"},ss={class:"flex h-full flex-col"},ns={class:"grid grid-cols-2 gap-2"},is={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},os=["title"],rs={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},ls=["title"],cs={class:"mt-auto pt-3 min-h-8 text-[10px] leading-relaxed text-gray-500 dark:text-gray-400 sm:min-h-6"},me=K({__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(C){const a=Le(),s=$(()=>!!a["header-extra"]);return(p,i)=>{const g=ee;return n(),u("div",Qa,[e("div",Xa,[e("div",Za,[e("div",es,[e("div",{class:F(["flex h-6 w-6 shrink-0 items-center justify-center rounded-full",C.iconBgClass])},[j(g,{name:C.iconName,class:F(["h-3.5 w-3.5",C.iconColorClass])},null,8,["name","class"])],2),e("span",ts,o(C.title),1)]),s.value?(n(),u("div",as,[Be(p.$slots,"header-extra")])):B("",!0)])]),e("div",ss,[e("div",ns,[e("div",is,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:C.leftName},o(C.leftName),9,os),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",C.valueClass])},o(C.leftValue),3)]),e("div",rs,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:C.rightName},o(C.rightName),9,ls),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",C.valueClass])},o(C.rightValue),3)])]),e("p",cs,o(C.description),1)])])}}}),us={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},ds={class:"space-y-6"},ms={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"},ps={class:"flex min-w-0 max-w-full flex-1 flex-col items-center justify-center lg:items-start"},gs={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},vs={class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},hs={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"},fs={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},ys={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},bs={class:"flex min-w-0 max-w-full flex-wrap items-baseline gap-x-1.5 gap-y-1"},ks={class:"text-base font-medium text-gray-600 dark:text-gray-300"},_s={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},ws={class:"text-base font-medium text-gray-600 dark:text-gray-300"},$s={class:"max-w-full break-all text-xl font-bold leading-snug text-gray-900 dark:text-white"},Cs={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Ss={class:"mt-8 flex w-full max-w-[320px] items-center justify-between gap-4"},Ms={class:"flex flex-1 flex-col items-center overflow-hidden"},js=["title"],Ps={class:"mt-1 text-2xl font-black text-blue-500 dark:text-blue-400"},Ts={class:"mt-0.5 text-[10px] font-medium text-gray-400"},Is={class:"flex flex-1 flex-col items-center overflow-hidden"},Rs=["title"],Ds={class:"mt-1 text-2xl font-black text-pink-500 dark:text-pink-400"},As={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]"},zs={class:"mb-2 flex items-center justify-between px-1"},Ls={class:"text-sm font-bold text-gray-900 dark:text-white"},Bs={class:"text-[10px] font-medium text-gray-500 dark:text-gray-400"},Ns={class:"w-full"},Vs={class:"h-[200px] w-full"},Fs={class:"relative z-10 grid grid-cols-2 gap-3 p-4 pt-2 sm:p-6 sm:pt-2 lg:grid-cols-4"},Os={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"},Us={class:"flex items-center gap-1.5"},Es={class:"text-[9px] font-medium uppercase tracking-widest"},Ws={class:"px-4 pb-5 sm:px-6 sm:pb-6"},Hs={key:0,class:"mt-6"},Js={class:"mb-3 text-xs font-semibold tracking-wide text-gray-400 uppercase dark:text-gray-500"},Gs={class:"grid gap-x-8 gap-y-4 sm:grid-cols-3"},Ks={class:"min-w-0"},Ys={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Qs=["title"],Xs={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Zs={class:"mt-5 flex justify-center"},en={key:1,class:"mt-3 overflow-x-auto rounded-lg border border-gray-200/80 dark:border-white/10"},tn={class:"min-w-full text-left text-sm"},an={class:"bg-gray-50/80 text-xs text-gray-500 dark:bg-white/[0.03] dark:text-gray-400"},sn={scope:"col",class:"px-4 py-2.5 font-medium"},nn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},on={scope:"col",class:"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={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},cn={class:"divide-y divide-gray-100 dark:divide-white/5"},un={class:"whitespace-nowrap px-4 py-2.5 font-medium text-gray-700 dark:text-gray-300"},dn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},mn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},pn={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},gn={class:"whitespace-nowrap 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"},hn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},xn=K({__name:"PrivateRelationshipView",props:{sessionId:{},timeFilter:{}},setup(C){const{t:a,locale:s}=Y(),p=C,i=U(null),g=U(!1),D=U(!1),y=U("activity"),v=U(!1),z=U(300);async function A(x){if(!p.sessionId)return;const h=x?.localOnly==="perseverance";h?D.value=!0:g.value=!0;try{i.value=await Ce().getRelationshipStats(p.sessionId,p.timeFilter,{perseveranceThreshold:z.value})}catch(L){console.error("Failed to load relationship stats:",L)}finally{h?D.value=!1:g.value=!1}}X(()=>[p.sessionId,p.timeFilter],()=>A(),{immediate:!0,deep:!0});const w=[{label:"1m",value:60},{label:"3m",value:180},{label:"5m",value:300},{label:"10m",value:600},{label:"30m",value:1800}];function M(x){z.value!==x&&(z.value=x,A({localOnly:"perseverance"}))}const b=$({get:()=>z.value,set:x=>M(x)});function q(x){return a("views.relationship.perseverance.thresholdMinutes",{n:Math.round(x/60)})}const S=$(()=>a("views.relationship.perseverance.hintWithThreshold",{threshold:q(z.value)})),_=$(()=>i.value?.hasSessionIndex&&i.value.totalSessions>0),f=$(()=>i.value?.members[0]),d=$(()=>i.value?.members[1]),r=$(()=>{if(!f.value||!i.value)return 50;const x=(f.value.totalInitiateCount??0)+(d.value?.totalInitiateCount??0);return x===0?50:Math.round(f.value.totalInitiateCount/x*100)}),l=$(()=>{if(!i.value||i.value.months.length===0)return"";const x=[...i.value.months].sort((R,I)=>R.month.localeCompare(I.month)),h=x[0].month.replace("-","/"),L=x[x.length-1].month.replace("-","/");return h===L?h:`${h} – ${L}`}),c=$(()=>s.value.startsWith("en")?"max-w-[420px]":"max-w-[320px]"),m=$(()=>{if(!i.value||i.value.months.length===0||!f.value)return{};const x=[...i.value.months].sort((N,te)=>N.month.localeCompare(te.month)),h=x.map(N=>P(N.month)),L=f.value.name,R=d.value?.name??"—",I=x.map(N=>{const te=N.members.find(de=>de.memberId===f.value.memberId);return!te||N.totalSessions===0?50:Math.round(te.initiateCount/N.totalSessions*100)});return{tooltip:{trigger:"axis",formatter(N){const te=N[0],de=te.value;return`${te.axisValue}<br/>${L}: ${de}%<br/>${R}: ${100-de}%`}},grid:{left:40,right:20,top:20,bottom:30},xAxis:{type:"category",data:h,axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,max:100,axisLabel:{formatter:"{value}%",fontSize:11},splitLine:{lineStyle:{type:"dashed"}}},series:[{type:"line",data:I,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 k(x){const[h,L]=x.split("-");return a("views.relationship.monthFormat",{year:h,month:Number.parseInt(L,10)})}function P(x){const h=x.split("-");return a("views.relationship.monthShortFormat",{month:Number.parseInt(h[1],10)})}function E(x){return!x||!i.value?.iceBreakers?.length?0:i.value.iceBreakers.filter(h=>h.memberId===x).reduce((h,L)=>h+L.count,0)}function J(x){if(!x||!i.value?.responseLatency?.length)return null;const h=i.value.responseLatency.find(L=>L.memberId===x);return h?h.avgResponseTime:null}function ne(x){return!x||!i.value?.perseverance?.length?0:i.value.perseverance.find(L=>L.memberId===x)?.totalDoubleTexts??0}function ce(x){const h=J(x);return h!=null?T(h):"--"}function ie(x){return i.value?.monthlyResponseLatency?.find(h=>h.month===x)?.members??[]}function _e(x){return i.value?.monthlyPerseverance?.find(h=>h.month===x)?.members??[]}function oe(x,h){return h?ie(x).find(R=>R.memberId===h)?.avgResponseTime??null:null}function ue(x,h){const L=oe(x,h);return L==null?"—":T(L)}function ae(x,h){return h?_e(x).find(R=>R.memberId===h)?.doubleTextCount??0:0}function re(x){return i.value?.iceBreakers?.filter(h=>h.month===x).reduce((h,L)=>h+L.count,0)??0}function Q(x){const h=ie(x),L=h.reduce((R,I)=>R+I.responseCount,0);return L===0?null:h.reduce((R,I)=>R+I.avgResponseTime*I.responseCount,0)/L}function T(x){const h=Math.max(0,Math.round(x));if(h<60)return a("views.relationship.responseLatency.seconds",{n:h});if(h<3600){const I=Math.floor(h/60),N=h%60;return a("views.relationship.responseLatency.minutesSeconds",{m:I,s:N})}const L=Math.floor(h/3600),R=Math.floor(h%3600/60);return R===0?a("views.relationship.responseLatency.hours",{n:L}):a("views.relationship.responseLatency.hoursMinutes",{h:L,m:R})}const Z=$(()=>[...i.value?.months??[]].sort((x,h)=>x.month.localeCompare(h.month))),we=$(()=>[{label:a("views.relationship.trajectory.metrics.activity"),value:"activity"},{label:a("views.relationship.trajectory.metrics.response"),value:"response"},{label:a("views.relationship.trajectory.metrics.perseverance"),value:"perseverance"}]),W=$(()=>{const x=Z.value,h=new Set(x.map(I=>I.month.slice(0,4))).size>1,L=x.map(I=>h?I.month.replace("-","/"):P(I.month)),R={color:["#3b82f6","#ec4899"],tooltip:{trigger:"axis"},legend:{top:4,textStyle:{fontSize:11}},grid:{left:52,right:24,top:44,bottom:34},xAxis:{type:"category",data:L,axisTick:{show:!1},axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,minInterval:1,axisLabel:{fontSize:11},splitLine:{lineStyle:{type:"dashed"}}}};return y.value==="activity"?{...R,series:[{name:a("views.relationship.trajectory.conversations"),type:"bar",data:x.map(I=>I.totalSessions),barMaxWidth:32,itemStyle:{borderRadius:[4,4,0,0]}},{name:a("views.relationship.trajectory.iceBreaks"),type:"line",data:x.map(I=>re(I.month)),smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:y.value==="response"?{...R,tooltip:{trigger:"axis",valueFormatter(I){return typeof I=="number"?T(I):String(I??"—")}},yAxis:{type:"value",min:0,axisLabel:{fontSize:11,formatter(I){return T(I)}},splitLine:{lineStyle:{type:"dashed"}}},series:[{name:f.value?.name??"—",type:"line",data:x.map(I=>oe(I.month,f.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}},{name:d.value?.name??"—",type:"line",data:x.map(I=>oe(I.month,d.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:{...R,series:[{name:f.value?.name??"—",type:"bar",data:x.map(I=>ae(I.month,f.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}},{name:d.value?.name??"—",type:"bar",data:x.map(I=>ae(I.month,d.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}}]}}),je=$(()=>{const x=Z.value.reduce((R,I)=>!R||I.totalSessions>R.totalSessions?I:R,null),h=Z.value.map(R=>({month:R.month,count:re(R.month)})).filter(R=>R.count>0).sort((R,I)=>I.count-R.count)[0],L=Z.value.map(R=>({month:R.month,value:Q(R.month)})).filter(R=>R.value!=null).sort((R,I)=>R.value-I.value)[0];return[x&&x.totalSessions>0?{icon:"i-heroicons-chart-bar-square-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.relationship.trajectory.activityPeak"),month:k(x.month),detail:a("views.relationship.trajectory.activityPeakDetail",{count:x.totalSessions})}:null,h?{icon:"i-heroicons-fire-solid",iconClass:"bg-pink-50 text-pink-500 dark:bg-pink-500/10 dark:text-pink-400",title:a("views.relationship.trajectory.iceBreakPeak"),month:k(h.month),detail:a("views.relationship.trajectory.iceBreakPeakDetail",{count:h.count})}:null,L?{icon:"i-heroicons-clock-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.relationship.trajectory.fastestResponse"),month:k(L.month),detail:a("views.relationship.trajectory.fastestResponseDetail",{duration:T(L.value)})}:null].filter(R=>R!=null)});return(x,h)=>{const L=ht,R=ee,I=De;return n(),u("div",{class:F(g.value?"h-full":"")},[g.value?(n(),V(t(xe),{key:0,variant:"page",text:t(a)("common.loading")},null,8,["text"])):(n(),u("div",us,[i.value&&!_.value?(n(),V(t(Me),{key:0,icon:"i-heroicons-heart",title:t(a)("views.relationship.empty.title"),description:t(a)("views.relationship.empty.description")},null,8,["title","description"])):i.value&&_.value?(n(),u(O,{key:1},[e("div",ds,[j(t(Se),{id:"shareable-poster"},{default:H(()=>[e("div",ms,[e("div",ps,[e("div",{class:F(["flex w-fit min-w-0 flex-col items-start text-left",c.value])},[e("div",gs,[e("p",vs,o(l.value),1),e("div",hs,[e("span",xs,o(t(a)("views.relationship.hero.totalSessionsPrefix")),1),e("span",fs,o(i.value.totalSessions),1),e("span",ys,o(t(a)("views.relationship.hero.totalSessionsSuffix")),1)]),e("div",bs,[e("span",ks,o(t(a)("views.relationship.hero.initiativePrefix")),1),e("span",_s,o(r.value>=50?r.value:100-r.value)+"% ",1),e("span",ws,o(t(a)("views.relationship.hero.initiativeByPrefix")),1),e("span",$s,o(r.value>=50?f.value?.name:d.value?.name),1),e("span",Cs,o(t(a)("views.relationship.hero.initiativeBySuffix")),1)])]),e("div",Ss,[e("div",Ms,[e("div",{class:"w-full truncate text-center text-xs font-bold text-gray-500 dark:text-gray-400",title:f.value?.name},o(f.value?.name),9,js),e("div",Ps,o(f.value?.totalInitiateCount),1),e("div",Ts,o(t(a)("views.relationship.hero.initiateTimes")),1)]),h[3]||(h[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",Is,[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,Rs),e("div",Ds,o(d.value?.totalInitiateCount),1),e("div",As,o(t(a)("views.relationship.hero.initiateTimes")),1)])])],2)]),i.value.months.length>=2?(n(),u("div",qs,[e("div",zs,[e("span",Ls,o(t(a)("views.relationship.trend.title")),1),e("span",Bs,o(t(a)("views.relationship.trend.hint",{name:f.value?.name??""})),1)]),e("div",Ns,[e("div",Vs,[j(t(Te),{option:m.value,height:200},null,8,["option"])])])])):B("",!0)]),e("div",Fs,[j(me,{title:t(a)("views.relationship.closerTitle"),"icon-name":"i-heroicons-hand-raised-solid","icon-bg-class":"bg-blue-100 dark:bg-blue-500/20","icon-color-class":"text-blue-600 dark:text-blue-400","left-name":f.value?.name,"left-value":f.value?.totalCloseCount??0,"right-name":d.value?.name,"right-value":d.value?.totalCloseCount??0,"value-class":"text-lg text-blue-600 dark:text-blue-400",description:t(a)("views.relationship.closerHint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.iceBreaker.title"),"icon-name":"i-heroicons-fire-solid","icon-bg-class":"bg-pink-100 dark:bg-pink-500/20","icon-color-class":"text-pink-600 dark:text-pink-400","left-name":f.value?.name,"left-value":E(f.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(a)("views.relationship.iceBreaker.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.responseLatency.title"),"icon-name":"i-heroicons-clock-solid","icon-bg-class":"bg-amber-100 dark:bg-amber-500/20","icon-color-class":"text-amber-600 dark:text-amber-400","left-name":f.value?.name,"left-value":ce(f.value?.memberId),"right-name":d.value?.name,"right-value":ce(d.value?.memberId),"value-class":"text-base text-amber-600 dark:text-amber-400",description:t(a)("views.relationship.responseLatency.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(me,{title:t(a)("views.relationship.perseverance.title"),"icon-name":"i-heroicons-arrow-path-solid","icon-bg-class":"bg-purple-100 dark:bg-purple-500/20","icon-color-class":"text-purple-600 dark:text-purple-400","left-name":f.value?.name,"left-value":ne(f.value?.memberId),"right-name":d.value?.name,"right-value":ne(d.value?.memberId),"value-class":"text-lg text-purple-600 dark:text-purple-400",description:S.value},{"header-extra":H(()=>[j(L,{modelValue:b.value,"onUpdate:modelValue":h[0]||(h[0]=N=>b.value=N),items:w,"value-key":"value",size:"xs",class:"relative z-[120] w-16",ui:{content:"z-[121]"},disabled:D.value},null,8,["modelValue","disabled"])]),_:1},8,["title","left-name","left-value","right-name","right-value","description"])]),e("div",Os,[e("div",Us,[j(R,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),h[4]||(h[4]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Es,o(t(a)("views.relationship.watermarkReport")),1)])]),_:1})]),j(t(le),{title:t(a)("views.relationship.trajectory.title"),description:t(a)("views.relationship.trajectory.description"),"show-divider":!1},{headerRight:H(()=>[j(t(Ae),{modelValue:y.value,"onUpdate:modelValue":h[1]||(h[1]=N=>y.value=N),items:we.value,size:"sm",class:"max-w-[58vw] sm:max-w-none"},null,8,["modelValue","items"])]),default:H(()=>[e("div",Ws,[j(t(Te),{option:W.value,height:280},null,8,["option"]),je.value.length>0?(n(),u("div",Hs,[e("p",Js,o(t(a)("views.relationship.trajectory.keyMoments")),1),e("div",Gs,[(n(!0),u(O,null,G(je.value,N=>(n(),u("div",{key:N.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",N.iconClass])},[j(R,{name:N.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Ks,[e("p",Ys,o(N.title),1),e("p",{class:"mt-0.5 truncate text-sm font-semibold text-gray-900 dark:text-white",title:N.month},o(N.month),9,Qs),e("p",Xs,o(N.detail),1)])]))),128))])])):B("",!0),e("div",Zs,[j(I,{color:"neutral",variant:"ghost",size:"sm",icon:v.value?"i-heroicons-chevron-up":"i-heroicons-chevron-down",onClick:h[2]||(h[2]=N=>v.value=!v.value)},{default:H(()=>[$e(o(v.value?t(a)("views.relationship.trajectory.hideAll"):t(a)("views.relationship.trajectory.showAll")),1)]),_:1},8,["icon"])]),v.value?(n(),u("div",en,[e("table",tn,[e("thead",an,[e("tr",null,[e("th",sn,o(t(a)("views.relationship.trajectory.month")),1),y.value==="activity"?(n(),u(O,{key:0},[e("th",nn,o(t(a)("views.relationship.trajectory.conversations")),1),e("th",on,o(t(a)("views.relationship.trajectory.iceBreaks")),1)],64)):(n(),u(O,{key:1},[e("th",rn,o(f.value?.name),1),e("th",ln,o(d.value?.name),1)],64))])]),e("tbody",cn,[(n(!0),u(O,null,G([...Z.value].reverse(),N=>(n(),u("tr",{key:N.month},[e("td",un,o(k(N.month)),1),y.value==="activity"?(n(),u(O,{key:0},[e("td",dn,o(N.totalSessions),1),e("td",mn,o(re(N.month)),1)],64)):y.value==="response"?(n(),u(O,{key:1},[e("td",pn,o(ue(N.month,f.value?.memberId)),1),e("td",gn,o(ue(N.month,d.value?.memberId)),1)],64)):(n(),u(O,{key:2},[e("td",vn,o(ae(N.month,f.value?.memberId)),1),e("td",hn,o(ae(N.month,d.value?.memberId)),1)],64))]))),128))])])])):B("",!0)])]),_:1},8,["title","description"])],64)):B("",!0)]))],2)}}}),fn={class:"relative z-10 px-6 pt-8 pb-5 sm:px-8 sm:pt-10"},yn={class:"flex flex-col gap-8 lg:flex-row lg:items-center lg:justify-between lg:gap-12"},bn={class:"min-w-0 flex-1"},kn={class:"text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},_n={class:"mt-3 flex flex-wrap items-baseline gap-x-2 gap-y-1"},wn={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},$n={class:"text-4xl font-black tracking-tight text-gray-900 dark:text-white sm:text-5xl"},Cn={class:"mt-3 max-w-xl text-sm leading-6 text-gray-500 dark:text-gray-400"},Sn={class:"w-full min-w-0 lg:max-w-[380px]"},Mn={class:"mb-3 flex items-center justify-between gap-4"},jn={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-gray-300"},Pn={class:"text-[10px] font-medium text-gray-400 dark:text-gray-500"},Tn=["title"],In={class:"mt-2 flex justify-between text-[10px] font-medium text-gray-400 dark:text-gray-500"},Rn={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"},Dn={class:"min-w-0"},An={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"},zn={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"},Ln={class:"flex items-center gap-1.5"},Bn={class:"text-[9px] font-medium uppercase tracking-widest"},Nn=K({__name:"JourneyReportCard",props:{stats:{},filtered:{type:Boolean}},setup(C){const a=C,{t:s,locale:p}=Y(),i=$(()=>new Intl.NumberFormat(p.value)),g=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short",day:"numeric"})),D=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short"})),y=$(()=>a.stats.range),v=$(()=>Math.max(...a.stats.months.map(d=>d.messageCount),1)),z=$(()=>({gridTemplateColumns:`repeat(${a.stats.months.length}, minmax(2px, 1fr))`,gap:a.stats.months.length>96?"1px":"2px"})),A=$(()=>{const d=y.value.spanDays;if(d<30)return s("views.journey.duration.days",{count:d});const r=Math.floor(d/365),l=Math.floor(d%365/30);return r>0?l>0?s("views.journey.duration.yearsMonths",{years:r,months:l}):s("views.journey.duration.years",{count:r}):s("views.journey.duration.months",{count:Math.max(1,l)})}),w=$(()=>[{icon:"i-heroicons-sparkles-solid",colorClass:"text-pink-500 dark:text-pink-400",label:s("views.journey.metrics.peakMonth"),value:a.stats.peakMonth?q(a.stats.peakMonth.month):"—",subtext:a.stats.peakMonth?s("views.journey.metrics.messagesAndDays",{messages:M(a.stats.peakMonth.messageCount),days:M(a.stats.peakMonth.activeDays)}):"—"},{icon:"i-heroicons-calendar-days-solid",colorClass:"text-indigo-500 dark:text-indigo-400",label:s("views.journey.metrics.activeMonths"),value:s("views.journey.metrics.monthsRatio",{active:M(y.value.activeMonths),total:M(y.value.spanMonths)}),subtext:s("views.journey.metrics.activeDays",{count:M(y.value.activeDays)})},{icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-blue-500 dark:text-blue-400",label:s("views.journey.metrics.longestConversation"),value:a.stats.longestSegment?S(a.stats.longestSegment.durationSeconds):"—",subtext:a.stats.longestSegment?s("views.journey.metrics.conversationDetail",{date:b(a.stats.longestSegment.startTs),count:M(a.stats.longestSegment.messageCount)}):s("views.journey.metrics.noIndex")},{icon:"i-heroicons-moon-solid",colorClass:"text-violet-500 dark:text-violet-400",label:s("views.journey.metrics.longestSilence"),value:a.stats.longestSilence?S(a.stats.longestSilence.durationSeconds):"—",subtext:a.stats.longestSilence?a.stats.longestSilence.reopenedBy?s("views.journey.metrics.reopenedBy",{name:a.stats.longestSilence.reopenedBy.name}):s("views.journey.metrics.reopened"):a.stats.hasSessionIndex?s("views.journey.metrics.noSilence"):s("views.journey.metrics.noIndex")}]);function M(d){return i.value.format(d)}function b(d){return g.value.format(d*1e3)}function q(d){const[r,l]=d.split("-").map(Number);return D.value.format(new Date(r,l-1,1))}function S(d){const r=Math.max(0,Math.round(d/60));if(r<1)return s("views.journey.duration.lessThanMinute");if(r<60)return s("views.journey.duration.minutes",{count:r});const l=Math.floor(r/60);if(l<24){const k=r%60;return k>0?s("views.journey.duration.hoursMinutes",{hours:l,minutes:k}):s("views.journey.duration.hours",{count:l})}const c=Math.floor(l/24),m=l%24;return m>0?s("views.journey.duration.daysHours",{days:c,hours:m}):s("views.journey.duration.days",{count:c})}function _(d){if(d===0)return"4px";const r=Math.sqrt(d/v.value);return`${Math.round(10+r*50)}px`}function f(d,r){return s("views.journey.hero.monthTooltip",{month:q(d),count:M(r)})}return(d,r)=>{const l=ee;return n(),V(t(Se),null,{default:H(()=>[e("div",fn,[e("div",yn,[e("div",bn,[e("p",kn,o(b(y.value.firstMessageTs))+" – "+o(b(y.value.lastMessageTs)),1),e("div",_n,[e("span",wn,o(t(s)("views.journey.hero.prefix")),1),e("span",$n,o(A.value),1)]),e("p",Cn,o(t(s)(C.filtered?"views.journey.hero.filteredSummary":"views.journey.hero.summary",{activeMonths:M(y.value.activeMonths),activeDays:M(y.value.activeDays)})),1)]),e("div",Sn,[e("div",Mn,[e("p",jn,o(t(s)("views.journey.hero.footprint")),1),e("p",Pn,o(t(s)("views.journey.hero.monthCount",{count:M(y.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(z.value)},[(n(!0),u(O,null,G(C.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:_(c.messageCount)}),title:f(c.month,c.messageCount)},null,14,Tn))),128))],4),e("div",In,[e("span",null,o(q(C.stats.months[0].month)),1),e("span",null,o(q(C.stats.months[C.stats.months.length-1].month)),1)])])])]),e("div",Rn,[(n(!0),u(O,null,G(w.value,c=>(n(),u("div",{key:c.label,class:"flex min-w-0 items-start gap-2.5 px-2 py-1"},[j(l,{name:c.icon,class:F(["mt-0.5 h-4 w-4 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Dn,[e("p",{class:F(["truncate text-sm font-black leading-tight tabular-nums",c.colorClass])},o(c.value),3),e("p",An,o(c.label),1),e("p",qn,o(c.subtext),1)])]))),128))]),e("div",zn,[e("div",Ln,[j(l,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),r[0]||(r[0]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Bn,o(t(s)("views.journey.watermark")),1)])]),_:1})}}}),Vn={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Fn={class:"grid gap-4 px-5 pb-6 sm:grid-cols-2 sm:px-6 lg:grid-cols-3"},On={class:"min-w-0"},Un={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},En={class:"mt-0.5 text-sm font-semibold text-gray-900 dark:text-white"},Wn={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Hn={class:"space-y-3 px-5 pb-5 sm:px-6 sm:pb-6"},Jn={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Gn={class:"min-w-0"},Kn={class:"h-1.5 overflow-hidden rounded-full bg-gray-200/80 dark:bg-white/10"},Yn={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Qn={key:0,class:"text-left sm:min-w-28 sm:text-right"},Xn={class:"text-xs font-semibold text-gray-700 dark:text-gray-300"},Zn={class:"mt-0.5 text-[10px] text-gray-400 dark:text-gray-500"},ei=K({__name:"JourneyView",props:{sessionId:{},timeFilter:{},timeRange:{}},setup(C){const a=C,{t:s,locale:p}=Y(),i=U(null),g=U(!1),D=U(!1),y=$(()=>new Intl.NumberFormat(p.value)),v=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short",day:"numeric"})),z=$(()=>new Intl.DateTimeFormat(p.value,{year:"numeric",month:"short"})),A=$(()=>a.timeRange?a.timeFilter?.startTs!=null&&a.timeFilter.startTs>a.timeRange.start||a.timeFilter?.endTs!=null&&a.timeFilter.endTs<a.timeRange.end:!1),w=$(()=>i.value?.range!=null),M=$(()=>Math.max(...i.value?.years.map(c=>c.messageCount)??[],1)),b=$(()=>{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:s("views.journey.milestones.start"),date:_(i.value.range.firstMessageTs),detail:s("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:s("views.journey.milestones.peak"),date:f(i.value.peakMonth.month),detail:s("views.journey.milestones.peakDetail",{count:S(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:s("views.journey.milestones.longestConversation"),date:_(i.value.longestSegment.startTs),detail:s("views.journey.milestones.conversationDetail",{duration:r(i.value.longestSegment.durationSeconds),count:S(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:s("views.journey.milestones.longestSilence"),date:s("views.journey.milestones.silenceRange",{start:_(i.value.longestSilence.startTs),end:_(i.value.longestSilence.endTs)}),detail:i.value.longestSilence.reopenedBy?s("views.journey.milestones.silenceDetailWithMember",{duration:r(i.value.longestSilence.durationSeconds),name:i.value.longestSilence.reopenedBy.name}):s("views.journey.milestones.silenceDetail",{duration:r(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:s("views.journey.milestones.end"),date:_(i.value.range.lastMessageTs),detail:s(A.value?"views.journey.milestones.filteredEndDetail":"views.journey.milestones.endDetail")}),c.sort((m,k)=>m.timestamp-k.timestamp||m.order-k.order)});X(()=>[a.sessionId,a.timeFilter],()=>q(),{immediate:!0,deep:!0});async function q(){if(a.sessionId){g.value=!0,D.value=!1;try{i.value=await Ce().getJourneyStats(a.sessionId,a.timeFilter)}catch(c){i.value=null,D.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{g.value=!1}}}function S(c){return y.value.format(c)}function _(c){return v.value.format(c*1e3)}function f(c){const[m,k]=c.split("-").map(Number);return z.value.format(new Date(m,k-1,1))}function d(c){const[m,k]=c.split("-").map(Number);return Math.floor(new Date(m,k-1,1).getTime()/1e3)}function r(c){const m=Math.max(0,Math.round(c/60));if(m<1)return s("views.journey.duration.lessThanMinute");if(m<60)return s("views.journey.duration.minutes",{count:m});const k=Math.floor(m/60);if(k<24){const J=m%60;return J>0?s("views.journey.duration.hoursMinutes",{hours:k,minutes:J}):s("views.journey.duration.hours",{count:k})}const P=Math.floor(k/24),E=k%24;return E>0?s("views.journey.duration.daysHours",{days:P,hours:E}):s("views.journey.duration.days",{count:P})}function l(c){return c===0?"0%":`${Math.max(4,Math.round(c/M.value*100))}%`}return(c,m)=>{const k=ee;return n(),u("div",{class:F(g.value?"h-full":"")},[g.value?(n(),V(t(xe),{key:0,variant:"page",text:t(s)("common.loading")},null,8,["text"])):(n(),u("div",Vn,[w.value?i.value?(n(),u(O,{key:1},[j(Nn,{stats:i.value,filtered:A.value},null,8,["stats","filtered"]),j(t(le),{title:t(s)("views.journey.milestones.title"),description:t(s)("views.journey.milestones.description"),"show-divider":!1},{default:H(()=>[e("div",Fn,[(n(!0),u(O,null,G(b.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(k,{name:P.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",On,[e("p",Un,o(P.title),1),e("p",En,o(P.date),1),e("p",Wn,o(P.detail),1)])]))),128))])]),_:1},8,["title","description"]),j(t(le),{title:t(s)("views.journey.years.title"),description:t(s)("views.journey.years.description"),"show-divider":!1},{default:H(()=>[e("div",Hn,[(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",Jn,o(P.year),1),e("div",Gn,[e("div",Kn,[e("div",{class:"h-full rounded-full bg-pink-400 dark:bg-pink-400/80",style:pe({width:l(P.messageCount)})},null,4)]),e("p",Yn,[P.messageCount>0?(n(),u(O,{key:0},[$e(o(t(s)("views.journey.years.summary",{messages:S(P.messageCount),days:S(P.activeDays),months:S(P.activeMonths)})),1)],64)):(n(),u(O,{key:1},[$e(o(t(s)("views.journey.years.quiet")),1)],64))])]),P.messageCount>0?(n(),u("div",Qn,[e("p",Xn,o(f(P.peakMonth)),1),e("p",Zn,o(t(s)("views.journey.years.peak",{count:S(P.peakMonthMessageCount)})),1)])):B("",!0)]))),128))])]),_:1},8,["title","description"])],64)):B("",!0):(n(),V(t(Me),{key:0,icon:"🗓️",text:t(s)(D.value?"views.journey.loadError":"views.journey.empty"),padding:"lg"},null,8,["text"]))]))],2)}}}),ti={class:"main-content mx-auto max-w-[920px] space-y-4 p-4 sm:space-y-6 sm:p-6"},ai={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},si={class:"p-3 sm:p-5"},ni={class:"p-3 sm:p-5"},ii=K({__name:"PrivateChatOverview",props:{session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(C){const{t:a}=Y(),s=C,{dailyChartData:p}=Ze(()=>s.dailyActivity),i=$(()=>({labels:s.messageTypes.map(y=>kt(y.type,a)),values:s.messageTypes.map(y=>y.count)})),g=$(()=>{if(s.memberActivity.length<2)return null;const v=[...s.memberActivity].sort((A,w)=>w.messageCount-A.messageCount).slice(0,2),z=v[0].messageCount+v[1].messageCount;return{member1:{name:v[0].name,avatar:v[0].avatar,count:v[0].messageCount,percentage:z>0?Math.round(v[0].messageCount/z*100):0},member2:{name:v[1].name,avatar:v[1].avatar,count:v[1].messageCount,percentage:z>0?Math.round(v[1].messageCount/z*100):0},total:z}}),D=$(()=>g.value?{labels:[g.value.member1.name,g.value.member2.name],values:[g.value.member1.count,g.value.member2.count]}:{labels:[],values:[]});return(y,v)=>(n(),u("div",ti,[j(Qe,{session:C.session,"daily-activity":C.dailyActivity,"message-types":C.messageTypes,"hourly-activity":C.hourlyActivity,"time-range":C.timeRange,"filtered-message-count":C.filteredMessageCount,"filtered-member-count":C.filteredMemberCount,"time-filter":C.timeFilter},null,8,["session","daily-activity","message-types","hourly-activity","time-range","filtered-message-count","filtered-member-count","time-filter"]),e("div",ai,[j(t(le),{title:t(a)("analysis.overview.messageTypeDistribution"),"show-divider":!1},{default:H(()=>[e("div",si,[j(t(Ie),{data:i.value,height:280},null,8,["data"])])]),_:1},8,["title"]),g.value?(n(),V(t(le),{key:0,title:t(a)("analysis.overview.memberComparison"),"show-divider":!1},{default:H(()=>[e("div",ni,[j(t(Ie),{data:D.value,height:280},null,8,["data"])])]),_:1},8,["title"])):B("",!0)]),j(Xe,{"daily-activity":C.dailyActivity,"daily-chart-data":t(p)},null,8,["daily-activity","daily-chart-data"])]))}}),oi={class:"flex h-full flex-col"},ri={class:"min-h-0 flex-1 overflow-auto"},li=K({__name:"PrivateChatInsights",props:{sessionId:{},session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},emits:["selectTab"],setup(C,{emit:a}){const{t:s}=Y(),p=C,i=$(()=>[{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"}]),g=U("overview"),D=a,y=U(null),v=$(()=>({...p.timeFilter,memberId:y.value}));return(z,A)=>(n(),u("div",oi,[j(t(vt),{modelValue:g.value,"onUpdate:modelValue":A[1]||(A[1]=w=>g.value=w),items:i.value,"persist-key":"privateInsightsTab",onSelect:A[2]||(A[2]=w=>D("selectTab",w))},{right:H(()=>[g.value==="type-analysis"||g.value==="time-analysis"?(n(),V(et,{key:0,modelValue:y.value,"onUpdate:modelValue":A[0]||(A[0]=w=>y.value=w),"session-id":p.sessionId},null,8,["modelValue","session-id"])):B("",!0)]),_:1},8,["modelValue","items"]),e("div",ri,[j(t(tt),{"active-key":g.value},{default:H(({viewKey:w})=>[w==="overview"?(n(),V(ii,{key:0,session:p.session,"member-activity":p.memberActivity,"message-types":p.messageTypes,"hourly-activity":p.hourlyActivity,"daily-activity":p.dailyActivity,"time-range":p.timeRange,"filtered-message-count":p.filteredMessageCount,"filtered-member-count":p.filteredMemberCount,"time-filter":p.timeFilter},null,8,["session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):w==="type-analysis"?(n(),V(at,{key:1,"session-id":p.sessionId,"session-name":p.session.name,"time-filter":v.value},null,8,["session-id","session-name","time-filter"])):w==="time-analysis"?(n(),V(st,{key:2,"session-id":p.sessionId,"session-name":p.session.name,"time-filter":v.value},null,8,["session-id","session-name","time-filter"])):w==="relationship"?(n(),V(xn,{key:3,"session-id":p.sessionId,"time-filter":p.timeFilter},null,8,["session-id","time-filter"])):w==="journey"?(n(),V(ei,{key:4,"session-id":p.sessionId,"time-filter":p.timeFilter,"time-range":p.timeRange},null,8,["session-id","time-filter","time-range"])):w==="topic"?(n(),V(t(nt),{key:5,"session-id":p.sessionId,"time-filter":p.timeFilter,"show-shared-topics":!0},null,8,["session-id","time-filter"])):w==="language-preference"?(n(),V(t(Ya),{key:6,"session-id":p.sessionId,"time-filter":p.timeFilter},null,8,["session-id","time-filter"])):B("",!0)]),_:1},8,["active-key"])])]))}}),ci={class:"relative flex h-full flex-col dark:bg-page-dark",style:{"padding-top":"var(--titlebar-area-height)"}},ui=["aria-label"],di={class:"relative flex-1 overflow-y-auto"},mi={class:"h-full"},pi={key:2,class:"flex h-full items-center justify-center"},gi={class:"text-gray-500"},vi={class:"flex h-full flex-col overflow-hidden bg-white dark:bg-page-dark"},hi={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"},fi={class:"text-sm text-gray-500 dark:text-gray-400"},yi={class:"flex-1 overflow-hidden"},bi=K({__name:"index",setup(C){const a=He(()=>Ge(()=>import("./MessageExportModal-JpurBsUW.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),{t:s}=Y(),p=Ve(),i=Fe(),g=Oe(),D=Re(),y=Ue(),{currentSessionId:v}=Ee(g),z=U(!1),A=U(!1),w=U(!1),M=U(!1),b=U(!1);function q(){D.openChatRecordDrawer({})}const S=[{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:_,isLoading:f,isInitialLoad:d,isSessionSwitching:r,session:l,memberActivity:c,hourlyActivity:m,dailyActivity:k,messageTypes:P,timeRangeValue:E,fullTimeRange:J,timeFilter:ne,initialTimeState:ce,invalidateAnalysisData:ie,handleTimeRangeInitialized:_e}=it({route:p,router:i,currentSessionId:v,selectSession:g.selectSession,defaultTab:y.defaultSessionTab,validTabIds:S.map(Q=>Q.id)});Ke("session-switch-loading",r);const oe=ot({chatType:"private",isActive:()=>_.value==="insights"&&!r.value,sessionId:v,routePath:()=>p.path}),ue=$(()=>c.value.reduce((Q,T)=>Q+T.messageCount,0)),ae=$(()=>c.value.filter(Q=>Q.messageCount>0).length),re=$(()=>{if(!l.value)return null;if(l.value.memberAvatar)return l.value.memberAvatar;if(c.value.length===0)return null;if(l.value.ownerId){const T=c.value.find(Z=>Z.platformId!==l.value?.ownerId);if(T?.avatar)return T.avatar}const Q=c.value.find(T=>T.name===l.value?.name);return Q?.avatar?Q.avatar:(c.value.length,null)});return(Q,T)=>{const Z=De,we=Je;return n(),u("div",ci,[t(r)?(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(s)("common.loading")},[j(t(xt))],8,ui)):B("",!0),t(l)?(n(),u(O,{key:1},[j(rt,{"active-tab":t(_),"onUpdate:activeTab":T[0]||(T[0]=W=>Pe(_)?_.value=W:null),"time-range-value":t(E),"onUpdate:timeRangeValue":T[1]||(T[1]=W=>Pe(E)?E.value=W:null),title:t(l).name,avatar:re.value,icon:"i-heroicons-user","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",tabs:S,"current-session-id":t(v),"initial-time-state":t(ce),onOpenIncrementalImport:T[2]||(T[2]=W=>w.value=!0),onOpenMemberManagement:T[3]||(T[3]=W=>b.value=!0),onOpenChatRecord:q,"onUpdate:fullRange":T[4]||(T[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",di,[t(f)&&!t(r)?(n(),V(t(xe),{key:0,variant:"overlay",text:t(s)("common.loading")},null,8,["text"])):B("",!0),e("div",mi,[j(We,{name:"tab-slide",mode:"out-in"},{default:H(()=>[t(_)==="insights"?(n(),V(li,{key:"insights-"+t(v),"session-id":t(v),session:t(l),"member-activity":t(c),"message-types":t(P),"hourly-activity":t(m),"daily-activity":t(k),"time-range":t(J),"filtered-message-count":ue.value,"filtered-member-count":ae.value,"time-filter":t(ne),onSelectTab:t(oe)},null,8,["session-id","session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter","onSelectTab"])):t(_)==="ai-chat"?(n(),V(t(lt),{key:"ai-chat-"+t(v),"session-id":t(v),"session-name":t(l).name,"chat-type":"private","time-filter":t(ne)},null,8,["session-id","session-name","time-filter"])):t(_)==="memory"?(n(),V(ct,{key:"memory-"+t(v),"session-id":t(v),"session-name":t(l).name},null,8,["session-id","session-name"])):t(_)==="more"?(n(),V(ut,{key:"more-"+t(v),"session-id":t(v),"chat-type":"private"},null,8,["session-id"])):B("",!0)]),_:1})])]),j(dt,{onOpenIncrementalImport:T[5]||(T[5]=W=>w.value=!0),onOpenSemanticIndex:T[6]||(T[6]=W=>z.value=!0),onOpenMemberManagement:T[7]||(T[7]=W=>b.value=!0),onOpenChatRecord:q,onOpenMessageExport:T[8]||(T[8]=W=>M.value=!0)})],64)):t(d)?B("",!0):(n(),u("div",pi,[e("p",gi,o(t(s)("analysis.privateChat.loadError")),1)])),t(v)&&t(l)?(n(),V(mt,{key:3,modelValue:z.value,"onUpdate:modelValue":T[9]||(T[9]=W=>z.value=W),"session-id":t(v),"message-count":t(l).messageCount},null,8,["modelValue","session-id","message-count"])):B("",!0),t(v)&&t(l)?(n(),V(_t,{key:4,modelValue:A.value,"onUpdate:modelValue":T[10]||(T[10]=W=>A.value=W),"session-id":t(v),"chat-type":"private","auto-check":""},null,8,["modelValue","session-id"])):B("",!0),t(v)&&t(l)?(n(),V(pt,{key:5,modelValue:w.value,"onUpdate:modelValue":T[11]||(T[11]=W=>w.value=W),"session-id":t(v),"session-name":t(l).name,onImported:T[12]||(T[12]=()=>{t(ie)(),t(g).loadSessions()})},null,8,["modelValue","session-id","session-name"])):B("",!0),t(v)?(n(),V(t(a),{key:6,modelValue:M.value,"onUpdate:modelValue":T[13]||(T[13]=W=>M.value=W)},null,8,["modelValue"])):B("",!0),t(v)?(n(),V(we,{key:7,open:b.value,"onUpdate:open":T[15]||(T[15]=W=>b.value=W),ui:{content:"max-w-6xl h-[85vh]"}},{content:H(()=>[e("div",vi,[e("div",hi,[e("div",null,[e("h2",xi,o(t(s)("analysis.tooltip.memberManagement")),1),e("p",fi,o(t(s)("members.private.description",{count:t(l)?.memberCount??0})),1)]),j(Z,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:T[14]||(T[14]=W=>b.value=!1)})]),e("div",yi,[j(gt,{"session-id":t(v),"show-header":!1,"chat-type":"private",onDataChanged:t(ie)},null,8,["session-id","onDataChanged"])])])]),_:1},8,["open"])):B("",!0)])}}}),oo=Ye(bi,[["__scopeId","data-v-d011099e"]]);export{oo as default};
|
|
@@ -1 +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-
|
|
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-bQ9oj54q.js";import{P as D}from"./PageHeader-BciykZ_-.js";import{_ as H}from"./PageTabs.vue_vue_type_script_setup_true_lang-2Xe2iUFO.js";import{p as I}from"./people-page-header-CKXRSnpl.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as ve,ai as ke,aj as _e,ak as fe,b as $,K as be,al as we,a5 as Se,c as u,a as e,g as r,z as g,p as s,l as v,a9 as P,w as S,f as H,F as k,e as p,a8 as Te,am as ze,o as d,j as T,a7 as De,n as z,O as q,an as h}from"./index-D9C3dyV8.js";import{_ as Ce}from"./LoadingState.vue_vue_type_script_setup_true_lang-DmVfwvnD.js";import{_ as j}from"./ThemeCard.vue_vue_type_script_setup_true_lang-CNCVa86b.js";import{C as Ie}from"./CardDecoration-CnYxleQM.js";import{_ as Ee}from"./EChartLine.vue_vue_type_script_setup_true_lang-D8SyOfWC.js";import"./vendor-echarts-wordcloud-DNiU8Psq.js";import{T as Me}from"./service-DQxttlJp.js";import"./vendor-snapdom--nZvo8Sg.js";import"./EChart.vue_vue_type_script_setup_true_lang-BcE0mE_N.js";import"./vendor-echarts-C9ugTmum.js";import"./vendor-zrender-D8psf1AA.js";const Ae={class:"min-h-0 flex-1 overflow-y-auto"},Pe={class:"mx-auto w-full max-w-[920px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},Le={class:"min-w-0"},Oe={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 dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Ne={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 dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Re={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"},Ye={key:0},Ve={key:1},$e={key:2},je={class:"space-y-4"},Ue={class:"relative z-10 min-w-0 px-5 pt-6 pb-5 sm:px-8 sm:pt-8 sm:pb-6"},Be={class:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-3xl"},Fe={class:"mt-6 max-w-3xl space-y-3 text-gray-600 dark:text-zinc-300"},We={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-lg leading-relaxed sm:text-xl"},Ge={class:"font-black text-2xl tracking-tight tabular-nums text-pink-600 sm:text-3xl dark:text-pink-400"},He={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-base leading-relaxed sm:text-lg"},qe={class:"font-black text-2xl tabular-nums text-indigo-600 dark:text-indigo-400"},Ke={class:"font-black text-2xl tabular-nums text-blue-600 dark:text-blue-400"},Je={class:"mt-7"},Ze={class:"mb-2 text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-zinc-500"},Qe={class:"grid grid-cols-2 gap-2 lg:grid-cols-4"},Xe={class:"min-w-0"},et={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},tt={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-zinc-500"},st={class:"mt-6"},at={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-zinc-300"},nt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},ot={class:"mt-2"},rt={class:"mt-2 text-[10px] leading-5 text-gray-400 dark:text-zinc-500"},it={class:"mt-4 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"},lt={class:"min-w-0 p-5 sm:p-6"},ct={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},dt={class:"mt-1 text-[11px] text-gray-400 dark:text-zinc-500"},ut={class:"mt-5 grid gap-6 lg:grid-cols-7 lg:gap-0"},pt={class:"min-w-0 lg:col-span-4 lg:pr-8"},mt={key:0,class:"space-y-3.5"},xt={class:"text-xs font-medium text-gray-500 dark:text-zinc-400"},gt={class:"h-1.5 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},ht={class:"min-w-[4.75rem] whitespace-nowrap text-right font-mono text-[10px] font-semibold tabular-nums text-gray-600 dark:text-zinc-300"},yt={key:1,class:"text-xs text-gray-400"},vt={class:"min-w-0 border-t border-gray-200/60 pt-5 lg:col-span-3 lg:border-t-0 lg:border-l lg:pt-0 lg:pl-8 dark:border-white/5"},kt={class:"text-xs font-semibold text-gray-700 dark:text-zinc-300"},_t={key:0,class:"mt-3 divide-y divide-gray-200/60 dark:divide-white/5"},ft={class:"flex h-5 w-5 items-center justify-center rounded-full bg-pink-50 font-mono text-[9px] font-bold text-pink-600 dark:bg-pink-950/30 dark:text-pink-400"},bt={class:"flex min-w-0 items-baseline gap-2"},wt={class:"font-mono text-xs font-semibold tabular-nums text-gray-700 dark:text-zinc-200"},St={class:"truncate text-[10px] text-gray-400 dark:text-zinc-500"},Tt={class:"whitespace-nowrap font-mono text-[10px] font-semibold tabular-nums text-gray-600 dark:text-zinc-300"},zt={key:1,class:"mt-3 text-xs text-gray-400"},Dt={class:"min-w-0 p-5 sm:p-6"},Ct={class:"flex flex-wrap items-end justify-between gap-x-6 gap-y-2"},It={class:"text-base font-semibold text-gray-800 dark:text-zinc-200"},Et={class:"mt-1 text-[11px] text-gray-400 dark:text-zinc-500"},Mt={key:0,class:"mt-5 grid gap-8 lg:grid-cols-2 lg:gap-0 lg:divide-x lg:divide-gray-200/60 dark:lg:divide-white/5"},At={class:"flex items-center justify-between gap-4 border-b border-gray-200/60 pb-3 dark:border-white/5"},Pt={class:"flex min-w-0 items-center gap-2"},Lt={class:"truncate text-sm font-semibold text-gray-700 dark:text-zinc-200"},Ot={class:"shrink-0 text-[10px] text-gray-400 dark:text-zinc-500"},Nt={key:0,class:"divide-y divide-gray-200/60 dark:divide-white/5"},Rt={class:"grid grid-cols-[28px_minmax(0,1fr)_auto] items-center gap-3"},Yt={class:"min-w-0"},Vt={class:"block truncate text-sm font-semibold text-gray-700 dark:text-zinc-200"},$t={class:"mt-1 block truncate text-[10px] text-gray-400 dark:text-zinc-500"},jt={class:"shrink-0 text-right"},Ut={class:"whitespace-nowrap font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},Bt={class:"mt-1 font-mono text-[10px] tabular-nums text-gray-400 dark:text-zinc-500"},Ft={class:"mt-2 ml-10 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},Wt={key:1,class:"pt-4 text-xs text-gray-400"},Gt={key:1,class:"mt-5 text-xs text-gray-400"},os=ve({__name:"index",setup(Ht){const U=ke(),n=_e(ze),{formatDate:_,formatNumber:K}=fe(),f=U.insightScope,b=U.services.get(Me),J=new Date().getFullYear(),D=$(f.getSnapshot()),l=$(null),C=$("");let I=null,E=0;const L=p(()=>{const t=D.value.time;return t?t.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:{mode:"year",year:t.year??J,acceptStale:!0}:null}),Z=p(()=>JSON.stringify(L.value)),O=p(()=>(l.value?.coverage.missingOwnerSessions??0)+(l.value?.coverage.unresolvedOwnerSessions??0)),N=p(()=>l.value?.metrics!==null&&l.value?.metrics!==void 0),Q=p(()=>l.value?.task.status==="running"),X=p(()=>N.value&&l.value?.metrics?.estimatedSeconds===0),ee=p(()=>(l.value?.coverage.totalSessions??0)>0&&l.value?.coverage.analyzedSessions===0&&O.value>0),te=p(()=>D.value.time?.mode==="year"?D.value.time.year:void 0),M=p(()=>{const t=te.value,a=l.value?.latestDataYear;return t===void 0||a===null||a===void 0||t===a?null:{year:t,latestYear:a}}),se=p(()=>l.value?.range.mode==="year"?n("yearTitle",{year:l.value.range.year}):n("recentTitle")),ae=p(()=>{const t=l.value?.range;if(!t)return"";const a={day:"2-digit",month:"2-digit",year:"numeric"},i=_(t.startTs*1e3,a),c=_(t.endTs*1e3,a);return i===c?i:`${i} – ${c}`}),ne=p(()=>{const t=l.value?.range,a=l.value?.monthlyActivity??[];return{labels:a.map(i=>t?.mode==="year"?n("monthLabel",{month:Number(i.key.slice(5))}):i.key.replace("-","/")),values:a.map(i=>me(i.estimatedSeconds))}}),R=p(()=>{const t=l.value?.range;if(!t)return[];const a=Array(7).fill(0),i=Array(7).fill(0),c=new Map((l.value?.dailyActivity??[]).map(x=>[x.key,x.estimatedSeconds])),o=W(new Date(t.startTs*1e3)),m=W(new Date(t.endTs*1e3));for(;o<=m;){const x=(o.getDay()+6)%7;a[x]+=c.get(xe(o))??0,i[x]++,o.setDate(o.getDate()+1)}const G=a.map((x,w)=>i[w]?Math.round(x/i[w]):0),ye=Math.max(...G,1);return G.map((x,w)=>({key:w,label:_(new Date(2024,0,1+w),{weekday:"short"}),seconds:x,width:x>0?Math.max(x/ye*100,3):0}))}),oe=p(()=>R.value.some(t=>t.seconds>0)),Y=p(()=>[...l.value?.dailyActivity??[]].filter(t=>t.estimatedSeconds>0).sort((t,a)=>a.estimatedSeconds-t.estimatedSeconds||t.key.localeCompare(a.key)).slice(0,3).map(t=>{const a=ge(t.key);return{...t,dateLabel:_(a,{month:"2-digit",day:"2-digit"}),weekdayLabel:_(a,{weekday:"short"})}})),B=p(()=>[h.GROUP,h.PRIVATE].map(t=>l.value?.chatTypes.find(a=>a.type===t)).filter(t=>t!==void 0)),re=p(()=>{const t=B.value.find(o=>o.type===h.PRIVATE),a=B.value.find(o=>o.type===h.GROUP),i=Y.value[0],c=[...R.value].sort((o,m)=>m.seconds-o.seconds)[0];return[{key:"private",icon:"i-heroicons-user",colorClass:"text-pink-600 dark:text-pink-400",label:n("privateChat"),value:t?y(t.seconds):"—",subtext:n("shareOfTotal",{share:t?.share??0})},{key:"group",icon:"i-heroicons-user-group",colorClass:"text-blue-600 dark:text-blue-400",label:n("groupChat"),value:a?y(a.seconds):"—",subtext:n("shareOfTotal",{share:a?.share??0})},{key:"peakDay",icon:"i-heroicons-fire",colorClass:"text-red-600 dark:text-red-400",label:n("peakDay"),value:i?.dateLabel??"—",subtext:i?y(i.estimatedSeconds):"—"},{key:"peakWeekday",icon:"i-heroicons-calendar-days",colorClass:"text-amber-600 dark:text-amber-400",label:n("peakWeekday"),value:c?.seconds?c.label:"—",subtext:c?.seconds?y(c.seconds):"—"}]}),F=p(()=>[h.PRIVATE,h.GROUP].map(t=>{const a=(l.value?.sessionRanking??[]).filter(i=>i.type===t).slice(0,10).map((i,c)=>({...i,rank:c+1}));return{type:t,items:a,maxSeconds:Math.max(...a.map(i=>i.seconds),1)}})),ie=p(()=>F.value.some(t=>t.items.length>0)),le=f.subscribe(()=>{D.value=f.getSnapshot()}),ce=b.subscribeOwnerSettingsClosed(()=>{A(!1)});be(Z,()=>{V(),L.value&&(l.value=null,A(!1))},{immediate:!0}),we(()=>{E++,V(),le(),ce()});async function A(t){const a=L.value;if(!a)return;const i=++E;C.value="";try{const c=t?await b.recompute(a):await b.get(a);if(i!==E)return;l.value=c,c.metrics&&f.setAvailableTimeYears(c.availableDataYears),c.task.status==="running"&&de()}catch(c){if(i!==E)return;const o=c instanceof Error?c.message:String(c);C.value=o,Se(`Global insight time investment failed: ${o}`,c instanceof Error?c.stack:void 0)}}function de(){V(),I=setTimeout(()=>{A(!1)},900)}function V(){I&&(clearTimeout(I),I=null)}function ue(){const t=l.value?.latestDataYear;t&&f.switchTimeToYear(t)}function pe(){b.openOwnerSettings()}function y(t){const a=Math.round(t/60);if(t>0&&a<1)return n("duration.lessThanMinute");if(a<60)return n("duration.minutes",{count:a});const i=Math.floor(a/60),c=a%60;return c?n("duration.hoursMinutes",{hours:i,minutes:c}):n("duration.hours",{count:i})}function me(t){return Math.round(t/3600*10)/10}function W(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function xe(t){return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function ge(t){const[a,i,c]=t.split("-").map(Number);return new Date(a,i-1,c)}function he(t){return n(t===h.PRIVATE?"privateChat":"groupChat")}return(t,a)=>{const i=De,c=Te;return d(),u("main",Ae,[e("div",Pe,[O.value>0&&r(b).canConfigureOwner?(d(),u("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:pe},[g(i,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",Le,s(r(n)("status.ownerIssues",{count:O.value})),1),g(i,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):v("",!0),l.value?.cache.status==="stale"||Q.value&&N.value?(d(),u("div",Oe,[g(i,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin"}),P(" "+s(r(n)("status.updating")),1)])):v("",!0),C.value||l.value?.task.status==="failed"?(d(),u("div",Ne,[e("span",null,s(r(n)("failed")),1),g(c,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:a[0]||(a[0]=o=>A(!0))},{default:S(()=>[P(s(r(n)("actions.retry")),1)]),_:1})])):v("",!0),!N.value&&!C.value&&l.value?.task.status!=="failed"?(d(),H(Ce,{key:3,height:"min(52vh, 420px)",text:l.value?.task.status==="running"?r(n)("status.computingProgress",{processed:l.value.task.processedSessions,total:l.value.task.totalSessions}):r(n)("loading")},null,8,["text"])):l.value?.metrics?(d(),u(k,{key:4},[X.value?(d(),u("div",Re,[ee.value?(d(),u("span",Ye,s(r(n)("status.noAnalyzableOwner")),1)):M.value?(d(),u("span",Ve,s(r(n)("status.noDataWithLatest",M.value)),1)):(d(),u("span",$e,s(r(n)("noData")),1)),M.value?(d(),H(c,{key:3,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:ue},{default:S(()=>[P(s(r(n)("actions.switchYear",{year:M.value.latestYear})),1)]),_:1})):v("",!0)])):v("",!0),e("div",je,[g(r(j),{class:"relative isolate overflow-hidden"},{default:S(()=>[g(r(Ie)),e("section",Ue,[e("h2",Be,s(se.value),1),e("div",Fe,[e("p",We,[e("span",null,s(r(n)("narrative.totalPrefix")),1),e("span",Ge,s(y(l.value.metrics.estimatedSeconds)),1),e("span",null,s(r(n)("narrative.totalSuffix")),1)]),e("p",He,[e("span",null,s(r(n)("narrative.daysPrefix")),1),e("span",qe,s(r(K)(l.value.metrics.activeDayCount)),1),e("span",null,s(r(n)("narrative.daysMiddle")),1),e("span",Ke,s(y(l.value.metrics.averagePerActiveDaySeconds)),1),e("span",null,s(r(n)("narrative.daysSuffix")),1)])]),e("div",Je,[e("div",Ze,s(r(n)("keyMetrics")),1),e("div",Qe,[(d(!0),u(k,null,T(re.value,o=>(d(),u("div",{key:o.key,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[g(i,{name:o.icon,class:z(["mt-0.5 h-3.5 w-3.5 shrink-0",o.colorClass])},null,8,["name","class"]),e("div",Xe,[e("div",{class:z(["truncate font-mono text-sm leading-tight font-black tabular-nums",o.colorClass])},s(o.value),3),e("div",et,s(o.label),1),e("div",tt,s(o.subtext),1)])]))),128))])]),e("div",st,[e("div",null,[e("h3",at,s(r(n)("monthlyTitle")),1),e("p",nt,s(r(n)("monthlyDescription")),1)]),e("div",ot,[g(r(Ee),{data:ne.value,height:240,mode:"compact",smooth:!1,"show-area":!1},null,8,["data"])]),e("p",rt,s(r(n)("estimateNote")),1)]),e("div",it,[e("span",null,s(ae.value),1),e("span",null,s(r(n)("status.coverage",{analyzed:l.value.coverage.analyzedSessions,total:l.value.coverage.totalSessions})),1)])])]),_:1}),g(r(j),null,{default:S(()=>[e("section",lt,[e("h3",ct,[a[1]||(a[1]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),P(" "+s(r(n)("rhythmTitle")),1)]),e("p",dt,s(r(n)("rhythmDescription")),1),e("div",ut,[e("div",pt,[oe.value?(d(),u("div",mt,[(d(!0),u(k,null,T(R.value,o=>(d(),u("div",{key:o.key,class:"grid grid-cols-[2.25rem_minmax(0,1fr)_auto] items-center gap-3"},[e("span",xt,s(o.label),1),e("div",gt,[e("div",{class:"h-full rounded-full bg-pink-500 transition-[width] duration-500 dark:bg-pink-400",style:q({width:`${o.width}%`})},null,4)]),e("span",ht,s(y(o.seconds)),1)]))),128))])):(d(),u("p",yt,s(r(n)("noData")),1))]),e("div",vt,[e("h4",kt,s(r(n)("topDaysTitle")),1),Y.value.length?(d(),u("div",_t,[(d(!0),u(k,null,T(Y.value,(o,m)=>(d(),u("div",{key:o.key,class:"grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-center gap-3 py-2.5 first:pt-0 last:pb-0"},[e("span",ft,s(m+1),1),e("div",bt,[e("span",wt,s(o.dateLabel),1),e("span",St,s(o.weekdayLabel),1)]),e("span",Tt,s(y(o.estimatedSeconds)),1)]))),128))])):(d(),u("p",zt,s(r(n)("noData")),1))])])])]),_:1}),g(r(j),null,{default:S(()=>[e("section",Dt,[e("div",Ct,[e("div",null,[e("h3",It,s(r(n)("rankingTitle")),1),e("p",Et,s(r(n)("rankingDescription")),1)])]),ie.value?(d(),u("div",Mt,[(d(!0),u(k,null,T(F.value,o=>(d(),u("div",{key:o.type,class:"min-w-0 lg:px-10 lg:first:pl-0 lg:last:pr-0"},[e("div",At,[e("div",Pt,[e("span",{class:z(["h-2.5 w-2.5 shrink-0 rounded-full",o.type===r(h).PRIVATE?"bg-pink-500 dark:bg-pink-400":"bg-blue-500 dark:bg-blue-400"])},null,2),e("h4",Lt,s(he(o.type)),1)]),e("span",Ot,s(r(n)("rankingCount",{count:o.items.length})),1)]),o.items.length?(d(),u("div",Nt,[(d(!0),u(k,null,T(o.items,m=>(d(),u("div",{key:m.sessionId,class:"min-w-0 py-3 last:pb-0"},[e("div",Rt,[e("span",{class:z(["flex h-6 w-6 items-center justify-center rounded-full font-mono text-[10px] font-bold",m.rank<=3?o.type===r(h).PRIVATE?"bg-pink-50 text-pink-600 dark:bg-pink-950/30 dark:text-pink-400":"bg-blue-50 text-blue-600 dark:bg-blue-950/30 dark:text-blue-400":"bg-gray-100 text-gray-500 dark:bg-zinc-800 dark:text-zinc-400"])},s(m.rank),3),e("div",Yt,[e("span",Vt,s(m.name),1),e("span",$t,s(m.platform),1)]),e("div",jt,[e("div",Ut,s(y(m.seconds)),1),e("div",Bt,s(m.share)+"% ",1)])]),e("div",Ft,[e("div",{class:z(["h-full rounded-full",o.type===r(h).PRIVATE?"bg-pink-500 dark:bg-pink-400":"bg-blue-500 dark:bg-blue-400"]),style:q({width:`${m.seconds/o.maxSeconds*100}%`})},null,6)])]))),128))])):(d(),u("p",Wt,s(r(n)("noData")),1))]))),128))])):(d(),u("p",Gt,s(r(n)("noData")),1))])]),_:1})])],64)):v("",!0)])])}}});export{os as default};
|
|
1
|
+
import{d as ve,ai as ke,aj as _e,ak as fe,b as $,K as be,al as we,a5 as Se,c as u,a as e,g as r,z as g,p as s,l as v,a9 as P,w as S,f as H,F as k,e as p,a8 as Te,am as ze,o as d,j as T,a7 as De,n as z,O as q,an as h}from"./index-bQ9oj54q.js";import{_ as Ce}from"./LoadingState.vue_vue_type_script_setup_true_lang-uF54r-dT.js";import{_ as j}from"./ThemeCard.vue_vue_type_script_setup_true_lang-BLmTpx4f.js";import{C as Ie}from"./CardDecoration-Cz54ZPyh.js";import{_ as Ee}from"./EChartLine.vue_vue_type_script_setup_true_lang-BLqlW9E4.js";import"./vendor-echarts-wordcloud-DNiU8Psq.js";import{T as Me}from"./service-Dtve_40X.js";import"./vendor-snapdom--nZvo8Sg.js";import"./EChart.vue_vue_type_script_setup_true_lang-CRTZh9kh.js";import"./vendor-echarts-C9ugTmum.js";import"./vendor-zrender-D8psf1AA.js";const Ae={class:"min-h-0 flex-1 overflow-y-auto"},Pe={class:"mx-auto w-full max-w-[920px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},Le={class:"min-w-0"},Oe={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 dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Ne={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 dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Re={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"},Ye={key:0},Ve={key:1},$e={key:2},je={class:"space-y-4"},Ue={class:"relative z-10 min-w-0 px-5 pt-6 pb-5 sm:px-8 sm:pt-8 sm:pb-6"},Be={class:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-3xl"},Fe={class:"mt-6 max-w-3xl space-y-3 text-gray-600 dark:text-zinc-300"},We={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-lg leading-relaxed sm:text-xl"},Ge={class:"font-black text-2xl tracking-tight tabular-nums text-pink-600 sm:text-3xl dark:text-pink-400"},He={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-base leading-relaxed sm:text-lg"},qe={class:"font-black text-2xl tabular-nums text-indigo-600 dark:text-indigo-400"},Ke={class:"font-black text-2xl tabular-nums text-blue-600 dark:text-blue-400"},Je={class:"mt-7"},Ze={class:"mb-2 text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-zinc-500"},Qe={class:"grid grid-cols-2 gap-2 lg:grid-cols-4"},Xe={class:"min-w-0"},et={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},tt={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-zinc-500"},st={class:"mt-6"},at={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-zinc-300"},nt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},ot={class:"mt-2"},rt={class:"mt-2 text-[10px] leading-5 text-gray-400 dark:text-zinc-500"},it={class:"mt-4 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"},lt={class:"min-w-0 p-5 sm:p-6"},ct={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},dt={class:"mt-1 text-[11px] text-gray-400 dark:text-zinc-500"},ut={class:"mt-5 grid gap-6 lg:grid-cols-7 lg:gap-0"},pt={class:"min-w-0 lg:col-span-4 lg:pr-8"},mt={key:0,class:"space-y-3.5"},xt={class:"text-xs font-medium text-gray-500 dark:text-zinc-400"},gt={class:"h-1.5 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},ht={class:"min-w-[4.75rem] whitespace-nowrap text-right font-mono text-[10px] font-semibold tabular-nums text-gray-600 dark:text-zinc-300"},yt={key:1,class:"text-xs text-gray-400"},vt={class:"min-w-0 border-t border-gray-200/60 pt-5 lg:col-span-3 lg:border-t-0 lg:border-l lg:pt-0 lg:pl-8 dark:border-white/5"},kt={class:"text-xs font-semibold text-gray-700 dark:text-zinc-300"},_t={key:0,class:"mt-3 divide-y divide-gray-200/60 dark:divide-white/5"},ft={class:"flex h-5 w-5 items-center justify-center rounded-full bg-pink-50 font-mono text-[9px] font-bold text-pink-600 dark:bg-pink-950/30 dark:text-pink-400"},bt={class:"flex min-w-0 items-baseline gap-2"},wt={class:"font-mono text-xs font-semibold tabular-nums text-gray-700 dark:text-zinc-200"},St={class:"truncate text-[10px] text-gray-400 dark:text-zinc-500"},Tt={class:"whitespace-nowrap font-mono text-[10px] font-semibold tabular-nums text-gray-600 dark:text-zinc-300"},zt={key:1,class:"mt-3 text-xs text-gray-400"},Dt={class:"min-w-0 p-5 sm:p-6"},Ct={class:"flex flex-wrap items-end justify-between gap-x-6 gap-y-2"},It={class:"text-base font-semibold text-gray-800 dark:text-zinc-200"},Et={class:"mt-1 text-[11px] text-gray-400 dark:text-zinc-500"},Mt={key:0,class:"mt-5 grid gap-8 lg:grid-cols-2 lg:gap-0 lg:divide-x lg:divide-gray-200/60 dark:lg:divide-white/5"},At={class:"flex items-center justify-between gap-4 border-b border-gray-200/60 pb-3 dark:border-white/5"},Pt={class:"flex min-w-0 items-center gap-2"},Lt={class:"truncate text-sm font-semibold text-gray-700 dark:text-zinc-200"},Ot={class:"shrink-0 text-[10px] text-gray-400 dark:text-zinc-500"},Nt={key:0,class:"divide-y divide-gray-200/60 dark:divide-white/5"},Rt={class:"grid grid-cols-[28px_minmax(0,1fr)_auto] items-center gap-3"},Yt={class:"min-w-0"},Vt={class:"block truncate text-sm font-semibold text-gray-700 dark:text-zinc-200"},$t={class:"mt-1 block truncate text-[10px] text-gray-400 dark:text-zinc-500"},jt={class:"shrink-0 text-right"},Ut={class:"whitespace-nowrap font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},Bt={class:"mt-1 font-mono text-[10px] tabular-nums text-gray-400 dark:text-zinc-500"},Ft={class:"mt-2 ml-10 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},Wt={key:1,class:"pt-4 text-xs text-gray-400"},Gt={key:1,class:"mt-5 text-xs text-gray-400"},os=ve({__name:"index",setup(Ht){const U=ke(),n=_e(ze),{formatDate:_,formatNumber:K}=fe(),f=U.insightScope,b=U.services.get(Me),J=new Date().getFullYear(),D=$(f.getSnapshot()),l=$(null),C=$("");let I=null,E=0;const L=p(()=>{const t=D.value.time;return t?t.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:{mode:"year",year:t.year??J,acceptStale:!0}:null}),Z=p(()=>JSON.stringify(L.value)),O=p(()=>(l.value?.coverage.missingOwnerSessions??0)+(l.value?.coverage.unresolvedOwnerSessions??0)),N=p(()=>l.value?.metrics!==null&&l.value?.metrics!==void 0),Q=p(()=>l.value?.task.status==="running"),X=p(()=>N.value&&l.value?.metrics?.estimatedSeconds===0),ee=p(()=>(l.value?.coverage.totalSessions??0)>0&&l.value?.coverage.analyzedSessions===0&&O.value>0),te=p(()=>D.value.time?.mode==="year"?D.value.time.year:void 0),M=p(()=>{const t=te.value,a=l.value?.latestDataYear;return t===void 0||a===null||a===void 0||t===a?null:{year:t,latestYear:a}}),se=p(()=>l.value?.range.mode==="year"?n("yearTitle",{year:l.value.range.year}):n("recentTitle")),ae=p(()=>{const t=l.value?.range;if(!t)return"";const a={day:"2-digit",month:"2-digit",year:"numeric"},i=_(t.startTs*1e3,a),c=_(t.endTs*1e3,a);return i===c?i:`${i} – ${c}`}),ne=p(()=>{const t=l.value?.range,a=l.value?.monthlyActivity??[];return{labels:a.map(i=>t?.mode==="year"?n("monthLabel",{month:Number(i.key.slice(5))}):i.key.replace("-","/")),values:a.map(i=>me(i.estimatedSeconds))}}),R=p(()=>{const t=l.value?.range;if(!t)return[];const a=Array(7).fill(0),i=Array(7).fill(0),c=new Map((l.value?.dailyActivity??[]).map(x=>[x.key,x.estimatedSeconds])),o=W(new Date(t.startTs*1e3)),m=W(new Date(t.endTs*1e3));for(;o<=m;){const x=(o.getDay()+6)%7;a[x]+=c.get(xe(o))??0,i[x]++,o.setDate(o.getDate()+1)}const G=a.map((x,w)=>i[w]?Math.round(x/i[w]):0),ye=Math.max(...G,1);return G.map((x,w)=>({key:w,label:_(new Date(2024,0,1+w),{weekday:"short"}),seconds:x,width:x>0?Math.max(x/ye*100,3):0}))}),oe=p(()=>R.value.some(t=>t.seconds>0)),Y=p(()=>[...l.value?.dailyActivity??[]].filter(t=>t.estimatedSeconds>0).sort((t,a)=>a.estimatedSeconds-t.estimatedSeconds||t.key.localeCompare(a.key)).slice(0,3).map(t=>{const a=ge(t.key);return{...t,dateLabel:_(a,{month:"2-digit",day:"2-digit"}),weekdayLabel:_(a,{weekday:"short"})}})),B=p(()=>[h.GROUP,h.PRIVATE].map(t=>l.value?.chatTypes.find(a=>a.type===t)).filter(t=>t!==void 0)),re=p(()=>{const t=B.value.find(o=>o.type===h.PRIVATE),a=B.value.find(o=>o.type===h.GROUP),i=Y.value[0],c=[...R.value].sort((o,m)=>m.seconds-o.seconds)[0];return[{key:"private",icon:"i-heroicons-user",colorClass:"text-pink-600 dark:text-pink-400",label:n("privateChat"),value:t?y(t.seconds):"—",subtext:n("shareOfTotal",{share:t?.share??0})},{key:"group",icon:"i-heroicons-user-group",colorClass:"text-blue-600 dark:text-blue-400",label:n("groupChat"),value:a?y(a.seconds):"—",subtext:n("shareOfTotal",{share:a?.share??0})},{key:"peakDay",icon:"i-heroicons-fire",colorClass:"text-red-600 dark:text-red-400",label:n("peakDay"),value:i?.dateLabel??"—",subtext:i?y(i.estimatedSeconds):"—"},{key:"peakWeekday",icon:"i-heroicons-calendar-days",colorClass:"text-amber-600 dark:text-amber-400",label:n("peakWeekday"),value:c?.seconds?c.label:"—",subtext:c?.seconds?y(c.seconds):"—"}]}),F=p(()=>[h.PRIVATE,h.GROUP].map(t=>{const a=(l.value?.sessionRanking??[]).filter(i=>i.type===t).slice(0,10).map((i,c)=>({...i,rank:c+1}));return{type:t,items:a,maxSeconds:Math.max(...a.map(i=>i.seconds),1)}})),ie=p(()=>F.value.some(t=>t.items.length>0)),le=f.subscribe(()=>{D.value=f.getSnapshot()}),ce=b.subscribeOwnerSettingsClosed(()=>{A(!1)});be(Z,()=>{V(),L.value&&(l.value=null,A(!1))},{immediate:!0}),we(()=>{E++,V(),le(),ce()});async function A(t){const a=L.value;if(!a)return;const i=++E;C.value="";try{const c=t?await b.recompute(a):await b.get(a);if(i!==E)return;l.value=c,c.metrics&&f.setAvailableTimeYears(c.availableDataYears),c.task.status==="running"&&de()}catch(c){if(i!==E)return;const o=c instanceof Error?c.message:String(c);C.value=o,Se(`Global insight time investment failed: ${o}`,c instanceof Error?c.stack:void 0)}}function de(){V(),I=setTimeout(()=>{A(!1)},900)}function V(){I&&(clearTimeout(I),I=null)}function ue(){const t=l.value?.latestDataYear;t&&f.switchTimeToYear(t)}function pe(){b.openOwnerSettings()}function y(t){const a=Math.round(t/60);if(t>0&&a<1)return n("duration.lessThanMinute");if(a<60)return n("duration.minutes",{count:a});const i=Math.floor(a/60),c=a%60;return c?n("duration.hoursMinutes",{hours:i,minutes:c}):n("duration.hours",{count:i})}function me(t){return Math.round(t/3600*10)/10}function W(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function xe(t){return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function ge(t){const[a,i,c]=t.split("-").map(Number);return new Date(a,i-1,c)}function he(t){return n(t===h.PRIVATE?"privateChat":"groupChat")}return(t,a)=>{const i=De,c=Te;return d(),u("main",Ae,[e("div",Pe,[O.value>0&&r(b).canConfigureOwner?(d(),u("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:pe},[g(i,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",Le,s(r(n)("status.ownerIssues",{count:O.value})),1),g(i,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):v("",!0),l.value?.cache.status==="stale"||Q.value&&N.value?(d(),u("div",Oe,[g(i,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin"}),P(" "+s(r(n)("status.updating")),1)])):v("",!0),C.value||l.value?.task.status==="failed"?(d(),u("div",Ne,[e("span",null,s(r(n)("failed")),1),g(c,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:a[0]||(a[0]=o=>A(!0))},{default:S(()=>[P(s(r(n)("actions.retry")),1)]),_:1})])):v("",!0),!N.value&&!C.value&&l.value?.task.status!=="failed"?(d(),H(Ce,{key:3,height:"min(52vh, 420px)",text:l.value?.task.status==="running"?r(n)("status.computingProgress",{processed:l.value.task.processedSessions,total:l.value.task.totalSessions}):r(n)("loading")},null,8,["text"])):l.value?.metrics?(d(),u(k,{key:4},[X.value?(d(),u("div",Re,[ee.value?(d(),u("span",Ye,s(r(n)("status.noAnalyzableOwner")),1)):M.value?(d(),u("span",Ve,s(r(n)("status.noDataWithLatest",M.value)),1)):(d(),u("span",$e,s(r(n)("noData")),1)),M.value?(d(),H(c,{key:3,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:ue},{default:S(()=>[P(s(r(n)("actions.switchYear",{year:M.value.latestYear})),1)]),_:1})):v("",!0)])):v("",!0),e("div",je,[g(r(j),{class:"relative isolate overflow-hidden"},{default:S(()=>[g(r(Ie)),e("section",Ue,[e("h2",Be,s(se.value),1),e("div",Fe,[e("p",We,[e("span",null,s(r(n)("narrative.totalPrefix")),1),e("span",Ge,s(y(l.value.metrics.estimatedSeconds)),1),e("span",null,s(r(n)("narrative.totalSuffix")),1)]),e("p",He,[e("span",null,s(r(n)("narrative.daysPrefix")),1),e("span",qe,s(r(K)(l.value.metrics.activeDayCount)),1),e("span",null,s(r(n)("narrative.daysMiddle")),1),e("span",Ke,s(y(l.value.metrics.averagePerActiveDaySeconds)),1),e("span",null,s(r(n)("narrative.daysSuffix")),1)])]),e("div",Je,[e("div",Ze,s(r(n)("keyMetrics")),1),e("div",Qe,[(d(!0),u(k,null,T(re.value,o=>(d(),u("div",{key:o.key,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[g(i,{name:o.icon,class:z(["mt-0.5 h-3.5 w-3.5 shrink-0",o.colorClass])},null,8,["name","class"]),e("div",Xe,[e("div",{class:z(["truncate font-mono text-sm leading-tight font-black tabular-nums",o.colorClass])},s(o.value),3),e("div",et,s(o.label),1),e("div",tt,s(o.subtext),1)])]))),128))])]),e("div",st,[e("div",null,[e("h3",at,s(r(n)("monthlyTitle")),1),e("p",nt,s(r(n)("monthlyDescription")),1)]),e("div",ot,[g(r(Ee),{data:ne.value,height:240,mode:"compact",smooth:!1,"show-area":!1},null,8,["data"])]),e("p",rt,s(r(n)("estimateNote")),1)]),e("div",it,[e("span",null,s(ae.value),1),e("span",null,s(r(n)("status.coverage",{analyzed:l.value.coverage.analyzedSessions,total:l.value.coverage.totalSessions})),1)])])]),_:1}),g(r(j),null,{default:S(()=>[e("section",lt,[e("h3",ct,[a[1]||(a[1]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),P(" "+s(r(n)("rhythmTitle")),1)]),e("p",dt,s(r(n)("rhythmDescription")),1),e("div",ut,[e("div",pt,[oe.value?(d(),u("div",mt,[(d(!0),u(k,null,T(R.value,o=>(d(),u("div",{key:o.key,class:"grid grid-cols-[2.25rem_minmax(0,1fr)_auto] items-center gap-3"},[e("span",xt,s(o.label),1),e("div",gt,[e("div",{class:"h-full rounded-full bg-pink-500 transition-[width] duration-500 dark:bg-pink-400",style:q({width:`${o.width}%`})},null,4)]),e("span",ht,s(y(o.seconds)),1)]))),128))])):(d(),u("p",yt,s(r(n)("noData")),1))]),e("div",vt,[e("h4",kt,s(r(n)("topDaysTitle")),1),Y.value.length?(d(),u("div",_t,[(d(!0),u(k,null,T(Y.value,(o,m)=>(d(),u("div",{key:o.key,class:"grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-center gap-3 py-2.5 first:pt-0 last:pb-0"},[e("span",ft,s(m+1),1),e("div",bt,[e("span",wt,s(o.dateLabel),1),e("span",St,s(o.weekdayLabel),1)]),e("span",Tt,s(y(o.estimatedSeconds)),1)]))),128))])):(d(),u("p",zt,s(r(n)("noData")),1))])])])]),_:1}),g(r(j),null,{default:S(()=>[e("section",Dt,[e("div",Ct,[e("div",null,[e("h3",It,s(r(n)("rankingTitle")),1),e("p",Et,s(r(n)("rankingDescription")),1)])]),ie.value?(d(),u("div",Mt,[(d(!0),u(k,null,T(F.value,o=>(d(),u("div",{key:o.type,class:"min-w-0 lg:px-10 lg:first:pl-0 lg:last:pr-0"},[e("div",At,[e("div",Pt,[e("span",{class:z(["h-2.5 w-2.5 shrink-0 rounded-full",o.type===r(h).PRIVATE?"bg-pink-500 dark:bg-pink-400":"bg-blue-500 dark:bg-blue-400"])},null,2),e("h4",Lt,s(he(o.type)),1)]),e("span",Ot,s(r(n)("rankingCount",{count:o.items.length})),1)]),o.items.length?(d(),u("div",Nt,[(d(!0),u(k,null,T(o.items,m=>(d(),u("div",{key:m.sessionId,class:"min-w-0 py-3 last:pb-0"},[e("div",Rt,[e("span",{class:z(["flex h-6 w-6 items-center justify-center rounded-full font-mono text-[10px] font-bold",m.rank<=3?o.type===r(h).PRIVATE?"bg-pink-50 text-pink-600 dark:bg-pink-950/30 dark:text-pink-400":"bg-blue-50 text-blue-600 dark:bg-blue-950/30 dark:text-blue-400":"bg-gray-100 text-gray-500 dark:bg-zinc-800 dark:text-zinc-400"])},s(m.rank),3),e("div",Yt,[e("span",Vt,s(m.name),1),e("span",$t,s(m.platform),1)]),e("div",jt,[e("div",Ut,s(y(m.seconds)),1),e("div",Bt,s(m.share)+"% ",1)])]),e("div",Ft,[e("div",{class:z(["h-full rounded-full",o.type===r(h).PRIVATE?"bg-pink-500 dark:bg-pink-400":"bg-blue-500 dark:bg-blue-400"]),style:q({width:`${m.seconds/o.maxSeconds*100}%`})},null,6)])]))),128))])):(d(),u("p",Wt,s(r(n)("noData")),1))]))),128))])):(d(),u("p",Gt,s(r(n)("noData")),1))])]),_:1})])],64)):v("",!0)])])}}});export{os as default};
|