chatlab-cli 0.34.2 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chat-command-6IOH2QRF.mjs → chat-command-24RYGJAS.mjs} +8 -8
- package/dist/{chunk-INBJ7SND.mjs → chunk-22YJOBA3.mjs} +589 -513
- package/dist/chunk-22YJOBA3.mjs.map +1 -0
- package/dist/{chunk-4LW6443F.mjs → chunk-4GWWKHWA.mjs} +833 -886
- package/dist/chunk-4GWWKHWA.mjs.map +1 -0
- package/dist/{chunk-MENKFEPC.mjs → chunk-7IGBPZMI.mjs} +56 -48
- package/dist/chunk-7IGBPZMI.mjs.map +1 -0
- package/dist/{chunk-72RWABYJ.mjs → chunk-BRZ6YIBR.mjs} +3 -3
- package/dist/chunk-BRZ6YIBR.mjs.map +1 -0
- package/dist/{chunk-2XCNTG4O.mjs → chunk-DC7IUDNV.mjs} +677 -69
- package/dist/chunk-DC7IUDNV.mjs.map +1 -0
- package/dist/{chunk-H6D4DZOC.mjs → chunk-DEFEU567.mjs} +12 -18
- package/dist/chunk-DEFEU567.mjs.map +1 -0
- package/dist/{chunk-4RLZFGO5.mjs → chunk-GQMCDWZQ.mjs} +2 -2
- package/dist/{chunk-52P5ZRBD.mjs → chunk-KIMJXKZO.mjs} +2 -2
- package/dist/{chunk-652KEAX3.mjs → chunk-KXDJ7N6N.mjs} +2 -2
- package/dist/{chunk-U6MVJSXX.mjs → chunk-QKEARRFH.mjs} +15 -9
- package/dist/chunk-QKEARRFH.mjs.map +1 -0
- package/dist/{chunk-UMBEHBIZ.mjs → chunk-U36TQMAF.mjs} +2 -2
- package/dist/{chunk-JX6MFS6F.mjs → chunk-ZBPPLXM4.mjs} +15 -15
- package/dist/cli.mjs +9 -9
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +1 -1
- package/dist/{http-HSK46XEU.mjs → http-3K4YMWDE.mjs} +12 -12
- package/dist/{import-DF2WD2HE.mjs → import-D4LV565A.mjs} +7 -7
- package/dist/index.mjs +12 -12
- package/dist/{mcp-A2RND7KN.mjs → mcp-KL22FKQ2.mjs} +8 -8
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-SHFHW2QB.mjs → src-COIB6Z4P.mjs} +24 -38
- package/dist/{stream-import-GZ2QDE3Z.mjs → stream-import-FSXCFG4M.mjs} +7 -7
- package/dist/{worker-runtime-OWN56GG5.mjs → worker-runtime-DPS2LURI.mjs} +5 -5
- package/dist-cli-web/assets/AISettingsTab-rQC2ocFH.js +1 -0
- package/dist-cli-web/assets/AboutTab-DMPziKjj.js +1 -0
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-CnRLt_1j.js +110 -0
- package/dist-cli-web/assets/Alert--bTQXRcZ.js +1 -0
- package/dist-cli-web/assets/ApiSettingsTab-CtXl4I28.js +2 -0
- package/dist-cli-web/assets/BatchManageTab-1KaCPweN.js +1 -0
- package/dist-cli-web/assets/{BufferResource-BdKXeRZS.js → BufferResource-BXSJADxx.js} +1 -1
- package/dist-cli-web/assets/CanvasRenderer-Cq--8UQ_.js +1 -0
- package/dist-cli-web/assets/ChatRecordDrawer-BC0F7ok1.js +11 -0
- package/dist-cli-web/assets/ChatRecordDrawer-Tt6UduRC.css +1 -0
- package/dist-cli-web/assets/Checkbox-CwajNPGF.js +1 -0
- package/dist-cli-web/assets/DataDirCleanupNotice-D0Oruka2.js +1 -0
- package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-C4CsoIlq.js +1 -0
- package/dist-cli-web/assets/DebugToolsPanel-DVDwS-wz.js +1 -0
- package/dist-cli-web/assets/EChartWordcloud-KV0MdsDE.js +1 -0
- package/dist-cli-web/assets/{Filter-B2eEAPxI.js → Filter-DVaqcFmI.js} +1 -1
- package/dist-cli-web/assets/GlobalTaskBar-COW_uBX6.css +1 -0
- package/dist-cli-web/assets/GlobalTaskBar-DpPMX0jx.js +1 -0
- package/dist-cli-web/assets/GroupRelationshipGalaxyView-CLnO3phW.js +1 -0
- package/dist-cli-web/assets/Label-Bt2U4lGy.js +1 -0
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js +1 -0
- package/dist-cli-web/assets/MessageExportModal-BozaR9UZ.js +1 -0
- package/dist-cli-web/assets/PageHeader-CEe0xTl3.js +1 -0
- package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-D2DZrrnv.js +1 -0
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-CwQ63TPi.js → RelationshipGalaxyCanvas-6EamagxG.js} +3 -3
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-BLqISQe5.js → RelationshipGalaxyThreeCanvas-B6GB4PWS.js} +166 -166
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-CMuibfiA.css → RelationshipGalaxyThreeCanvas-TYGOUDiv.css} +1 -1
- package/dist-cli-web/assets/{RenderTargetSystem-eC_VrDAr.js → RenderTargetSystem-mYuj4uBS.js} +1 -1
- package/dist-cli-web/assets/RovingFocusItem-B2y6BG1a.js +1 -0
- package/dist-cli-web/assets/ScreenCaptureModal-BvAtSNNR.js +1 -0
- package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-ueEF4zHE.js +1 -0
- package/dist-cli-web/assets/Select-Cm4I8u9n.js +1 -0
- package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +1 -0
- package/dist-cli-web/assets/SettingsModal-Cwshzj7i.js +2 -0
- package/dist-cli-web/assets/StorageTab-D7HzH16Y.js +1 -0
- package/dist-cli-web/assets/Switch-BVw4e_19.js +1 -0
- package/dist-cli-web/assets/Tabs-Dqwkh3Ea.js +1 -0
- package/dist-cli-web/assets/Tabs-OrJkANIA.js +1 -0
- package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-DPIvbq75.js +1 -0
- package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-dEdo6CqM.js +1 -0
- package/dist-cli-web/assets/VisuallyHiddenInput-BOdkR_GC.js +1 -0
- package/dist-cli-web/assets/{WebGLRenderer-CRp_HC84.js → WebGLRenderer-BB8ukBI_.js} +2 -2
- package/dist-cli-web/assets/{WebGPURenderer-WIUnEhpi.js → WebGPURenderer-DDOzF1Kc.js} +2 -2
- package/dist-cli-web/assets/aiChat-CzFSFuOJ.js +8 -0
- package/dist-cli-web/assets/annual-summary-time-range-CmrAqcuj.js +1 -0
- package/dist-cli-web/assets/base-CawUl6ET.js +1 -0
- package/dist-cli-web/assets/{browserAll-B29Ox2in.js → browserAll-BRqlnNxq.js} +2 -2
- package/dist-cli-web/assets/chatlabSiteLocale-CrCNb8QP.js +1 -0
- package/dist-cli-web/assets/clamp-jFYhBC76.js +1 -0
- package/dist-cli-web/assets/cli-web-ClAJ6Tao.js +1 -0
- package/dist-cli-web/assets/{dateFormat-T7kMS5IP.js → dateFormat-DXuDxIye.js} +1 -1
- package/dist-cli-web/assets/fetch-3_xX8Yi8.js +1 -0
- package/dist-cli-web/assets/{fetch-DsHf-61a.js → fetch-Bcy2T8Fe.js} +1 -1
- package/dist-cli-web/assets/{fetch-DvrVGAzR.js → fetch-CGu53cxT.js} +1 -1
- package/dist-cli-web/assets/{fetch-BBgZQob_.js → fetch-CP1afnT0.js} +1 -1
- package/dist-cli-web/assets/{fetch-D9sn99zX.js → fetch-DWAIk_6_.js} +1 -1
- package/dist-cli-web/assets/{fetch-BKBlpBl4.js → fetch-DijSOvop.js} +1 -1
- package/dist-cli-web/assets/{fetch-CYaGyohV.js → fetch-Dy38lkAa.js} +1 -1
- package/dist-cli-web/assets/{fetch-L6PKD8-N.js → fetch-DzKlTaLz.js} +1 -1
- package/dist-cli-web/assets/{fetch-D8hJZa8o.js → fetch-LY-yerw1.js} +1 -1
- package/dist-cli-web/assets/{fetch-BLi6Jsjg.js → fetch-q480XYZQ.js} +1 -1
- package/dist-cli-web/assets/index-0dp58uL4.css +1 -0
- package/dist-cli-web/assets/index-1X7zdLgJ.css +1 -0
- package/dist-cli-web/assets/index-4enwdBcq.css +1 -0
- package/dist-cli-web/assets/index-AudHHbMs.js +1 -0
- package/dist-cli-web/assets/{index-0qcENyvH.js → index-BRV_D8dv.js} +3 -3
- package/dist-cli-web/assets/index-CF4DTbvD.js +1 -0
- package/dist-cli-web/assets/index-CMLoht5R.js +1 -0
- package/dist-cli-web/assets/index-CMPHZH6B.css +1 -0
- package/dist-cli-web/assets/index-CNzv7aBW.js +1 -0
- package/dist-cli-web/assets/index-CXUTiy-V.js +1 -0
- package/dist-cli-web/assets/index-D5m0P4ss.js +36 -0
- package/dist-cli-web/assets/index-Di6FmCdk.js +64 -0
- package/dist-cli-web/assets/index-DkOrt7_X.js +2 -0
- package/dist-cli-web/assets/index-Dlb6fC68.js +1 -0
- package/dist-cli-web/assets/index-IA7YUjQX.js +2 -0
- package/dist-cli-web/assets/index-kzU381y1.js +1 -0
- package/dist-cli-web/assets/index-z8Vogc-b.js +137 -0
- package/dist-cli-web/assets/lazy-overlay-visibility-Bd9ZFOgR.js +1 -0
- package/dist-cli-web/assets/member-select-utils-BXZ3oHct.js +1 -0
- package/dist-cli-web/assets/people-page-header-Bh3KXD4g.js +1 -0
- package/dist-cli-web/assets/prompt-DcAcgQiB.js +1 -0
- package/dist-cli-web/assets/relationship-galaxy-connections-Cg4G5yYE.js +1 -0
- package/dist-cli-web/assets/semantic-index-config-builder-CK6v64Y1.js +1 -0
- package/dist-cli-web/assets/service-YZnJyEMq.js +1 -0
- package/dist-cli-web/assets/useFormControl-B-aXrJZN.js +1 -0
- package/dist-cli-web/assets/useTable-DPEMaGby.js +1 -0
- package/dist-cli-web/assets/useToast-B36MzFFy.js +1 -0
- package/dist-cli-web/assets/vendor-echarts-DfAMQxdr.js +11 -0
- package/dist-cli-web/assets/{vendor-echarts-wordcloud-Ca8n6qS6.js → vendor-echarts-wordcloud-BsaEJTPY.js} +1 -1
- package/dist-cli-web/assets/vendor-zrender-PFmZe1EY.js +8 -0
- package/dist-cli-web/assets/{webworkerAll-B2qvP2qR.js → webworkerAll-Dwqmy_YO.js} +1 -1
- package/dist-cli-web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-2XCNTG4O.mjs.map +0 -1
- package/dist/chunk-4LW6443F.mjs.map +0 -1
- package/dist/chunk-72RWABYJ.mjs.map +0 -1
- package/dist/chunk-H6D4DZOC.mjs.map +0 -1
- package/dist/chunk-INBJ7SND.mjs.map +0 -1
- package/dist/chunk-MENKFEPC.mjs.map +0 -1
- package/dist/chunk-U6MVJSXX.mjs.map +0 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-B06LYYS9.js +0 -110
- package/dist-cli-web/assets/CanvasRenderer-DDRdIyZ8.js +0 -1
- package/dist-cli-web/assets/DataDirCleanupNotice-CP8P1lsL.js +0 -1
- package/dist-cli-web/assets/EChartWordcloud-CqknPGui.js +0 -1
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-BFaXTz1c.js +0 -1
- package/dist-cli-web/assets/MessageExportModal-CZge6qub.js +0 -1
- package/dist-cli-web/assets/PageHeader-CxKbcLDc.js +0 -1
- package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-DVmpDz05.js +0 -1
- package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-CCH1UQGc.js +0 -1
- package/dist-cli-web/assets/annual-summary-time-range-R3pLPEuN.js +0 -1
- package/dist-cli-web/assets/base-CLwWn3Rs.js +0 -1
- package/dist-cli-web/assets/cli-web-CVLb5Pkq.js +0 -1
- package/dist-cli-web/assets/fetch-Cm2WR2Cv.js +0 -1
- package/dist-cli-web/assets/index-AkF_KqVI.js +0 -1
- package/dist-cli-web/assets/index-BVOFyB9E.js +0 -137
- package/dist-cli-web/assets/index-BkdOH41D.js +0 -1
- package/dist-cli-web/assets/index-C4TuoOLM.js +0 -2
- package/dist-cli-web/assets/index-C6Mk-Xqt.js +0 -1
- package/dist-cli-web/assets/index-CkgUsaeX.js +0 -1
- package/dist-cli-web/assets/index-CuAy1Xmt.js +0 -64
- package/dist-cli-web/assets/index-D_0qeKKc.js +0 -53
- package/dist-cli-web/assets/index-DeR0Vukh.js +0 -1
- package/dist-cli-web/assets/index-DrjoMv9s.css +0 -1
- package/dist-cli-web/assets/index-Dx-XvfIK.js +0 -2
- package/dist-cli-web/assets/index-Jhwca9kg.css +0 -1
- package/dist-cli-web/assets/index-_DrviTnP.js +0 -1
- package/dist-cli-web/assets/index-vtF05fh7.css +0 -1
- package/dist-cli-web/assets/index-xN0sjOLK.js +0 -1
- package/dist-cli-web/assets/people-page-header-CCNJOrmK.js +0 -1
- package/dist-cli-web/assets/vendor-echarts-B-i_56Av.js +0 -11
- package/dist-cli-web/assets/vendor-zrender-5DcYjSZk.js +0 -8
- /package/dist/{chat-command-6IOH2QRF.mjs.map → chat-command-24RYGJAS.mjs.map} +0 -0
- /package/dist/{chunk-4RLZFGO5.mjs.map → chunk-GQMCDWZQ.mjs.map} +0 -0
- /package/dist/{chunk-52P5ZRBD.mjs.map → chunk-KIMJXKZO.mjs.map} +0 -0
- /package/dist/{chunk-652KEAX3.mjs.map → chunk-KXDJ7N6N.mjs.map} +0 -0
- /package/dist/{chunk-UMBEHBIZ.mjs.map → chunk-U36TQMAF.mjs.map} +0 -0
- /package/dist/{chunk-JX6MFS6F.mjs.map → chunk-ZBPPLXM4.mjs.map} +0 -0
- /package/dist/{http-HSK46XEU.mjs.map → http-3K4YMWDE.mjs.map} +0 -0
- /package/dist/{import-DF2WD2HE.mjs.map → import-D4LV565A.mjs.map} +0 -0
- /package/dist/{mcp-A2RND7KN.mjs.map → mcp-KL22FKQ2.mjs.map} +0 -0
- /package/dist/{src-SHFHW2QB.mjs.map → src-COIB6Z4P.mjs.map} +0 -0
- /package/dist/{stream-import-GZ2QDE3Z.mjs.map → stream-import-FSXCFG4M.mjs.map} +0 -0
- /package/dist/{worker-runtime-OWN56GG5.mjs.map → worker-runtime-DPS2LURI.mjs.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RelationshipGalaxyThreeCanvas-B6GB4PWS.js","assets/index-D5m0P4ss.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-CMPHZH6B.css","assets/relationship-galaxy-connections-Cg4G5yYE.js","assets/relationship-galaxy-viewport-Cwfa51ER.js","assets/RelationshipGalaxyThreeCanvas-TYGOUDiv.css","assets/RelationshipGalaxyCanvas-6EamagxG.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as St,a0 as Rt,ac as Tt,w as te,B as Ct,ab as Nt,i as b,l as o,c as ae,f as p,D as I,Y as It,b as de,aR as Mt,v as i,F as Ie,q as Me,s as L,aO as Pe,n as Le,r as f,g,H as z,a2 as Pt,ag as Lt,o as m,a3 as Ee,an as Et,b8 as He,b9 as Ue,bf as Vt}from"./index-D5m0P4ss.js";import{_ as Kt}from"./Tabs-OrJkANIA.js";import{u as Gt}from"./useToast-B36MzFFy.js";import{_ as At}from"./LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js";import{u as Ft}from"./people-page-header-Bh3KXD4g.js";import{b as zt,a as $t}from"./relationship-galaxy-connections-Cg4G5yYE.js";const Dt=10,We=80,Ot=2880*60*60,qe=.1;function Bt(e,r,l={}){if(!r)return{items:[],total:0,hasMore:!1};const k=new Map(e.nodes.map(u=>[u.key,u])),a=e.edges.flatMap(u=>{if(u.sourceKey!==r&&u.targetKey!==r)return[];const w=u.sourceKey===r?u.targetKey:u.sourceKey,K=k.get(w);return K?[{node:K,edge:u,connectionScore:0}]:[]}),M=a.reduce((u,w)=>Math.max(u,w.edge.lastInteractionTs??0),0),E=new Map(a.map(u=>[u,Ve(u.edge,M)]));for(const u of a)u.connectionScore=jt(E.get(u)??0);a.sort((u,w)=>Ht(u,w,M));const V=l.collapsedLimit??Dt;return{items:l.expanded?a:a.slice(0,V),total:a.length,hasMore:!l.expanded&&a.length>V}}function Mo(e,r,l={}){return $t(e,r,{limit:l.limit??We})}function Po(e,r,l={}){return zt(e,r,l)}function jt(e){return e<=0?0:Math.max(1,Math.round(e))}function Ht(e,r,l){const k=Ve(r.edge,l),a=Ve(e.edge,l);if(k!==a)return k-a;if(r.edge.weight!==e.edge.weight)return r.edge.weight-e.edge.weight;const M=r.edge.lastInteractionTs??0,E=e.edge.lastInteractionTs??0;return M!==E?M-E:e.node.rank!==r.node.rank?e.node.rank-r.node.rank:e.node.key.localeCompare(r.node.key)}function Ve(e,r){if(!e.lastInteractionTs||r<=0)return e.weight;const l=Math.max(0,r-e.lastInteractionTs),k=qe+(1-qe)*Math.pow(.5,l/Ot);return e.weight*k}function Qe(e){return e.selectedKey&&e.selectedKey===e.loadingNeighborhoodKey?e.currentCanvasSelectedKey:e.selectedKey}function Ut(e){return e.selectedKey?e.isNeighborhoodMode?e.selectedKey!==e.neighborhoodContactKey:!0:!1}function qt(e){return e.neighborhoodTask?.status==="running"?e.neighborhoodTask:e.graphTask?.status==="running"?e.graphTask:e.isNeighborhoodMode&&e.neighborhoodTask?e.neighborhoodTask:e.graphTask??e.neighborhoodTask??null}function Qt(e){return e.nextTaskStatus==="running"?{type:"continue-polling"}:e.previousTaskStatus==="running"&&e.nextTaskStatus==="succeeded"&&e.neighborhoodContactKey?{type:"refresh-neighborhood",key:e.neighborhoodContactKey}:{type:"stop-polling"}}function Wt(e){return e.loadError?e.loadError:e.isTaskFailed&&e.statusText?e.statusText:e.emptyText}const Yt=new RegExp("\\p{Script=Han}","u");function Ye(e){const r=e?.trim()??"";if(!r)return"*";const l=Array.from(r),k=[...l].reverse().find(a=>Yt.test(a));return k?`**${k}`:l.length===1?"*":l.length===2?`${l[0]}***`:`${l[0]}***${l.at(-1)}`}function Xt(){return"*"}function Xe(e,r){if(e.kind==="owner")return r.ownerLabel;const l=e.displayName||e.platformId||e.key;return r.privacyMode?Ye(l):l}function Jt(e,r){return e.kind==="owner"?r.ownerLabel:r.privacyMode?Xt():(e.displayName||e.platformId||"?").slice(0,1)}function Zt(e,r){return e.kind==="owner"?e.avatar:r?null:e.avatar}function ea(e,r){const l=e.platformId||e.key;return r?Ye(l):l}const ta="3d";function aa(e){return e==="3d"?"2d":e}function oa(e,r,l){return r||l?l:e?.captureView()??null}function na(e,r){return r&&e?.restoreView(r)===!0?!0:(e?.fitView(),!1)}function sa(e,r){return{nodes:e.nodes.map(l=>({...l,displayName:Xe(l,r),visualRole:l.kind==="owner"?"anchor":l.pool==="friend"?"close":"standard",importance:ra(l)})),edges:e.edges.map(l=>({...l})),communities:e.communities.map(l=>({...l}))}}function ra(e){if(e.kind==="owner")return 1;const r=oe(e.score,0,1),l=oe(1-(e.rank-1)/120,0,1),k=oe(Math.log10(e.privateMessageCount+1)/4,0,1),a=oe(Math.log10(e.groupMessageCount+1)/4.5,0,1),M=e.pool==="friend"?.12:0;return oe(r*.36+l*.36+k*.18+a*.08+M,0,1)}function oe(e,r,l){return Math.min(l,Math.max(r,e))}const la={class:"flex min-h-0 flex-1 overflow-hidden text-gray-900 dark:bg-page-dark dark:text-gray-100"},ia={class:"relative min-h-0 min-w-0 flex-1 overflow-hidden bg-[#0b0f19] dark:bg-page-dark"},ca={class:"absolute left-6 top-4 z-20 flex max-w-[calc(100%-3rem)] flex-wrap items-center gap-2"},ua={class:"relative w-28 max-w-full sm:w-32 lg:w-36"},da={key:0,class:"absolute left-0 top-full z-30 mt-2 max-h-80 w-72 overflow-y-auto rounded-2xl border border-gray-200/80 bg-white/95 p-2 shadow-overlay backdrop-blur-xl scrollbar-thin dark:border-white/10 dark:bg-page-dark/95"},ha={class:"px-2 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},pa={class:"space-y-1"},va=["disabled","onClick"],ga={class:"min-w-0 flex-1"},fa={class:"block truncate text-sm font-semibold text-gray-900 transition-colors group-hover:text-sky-600 dark:text-white dark:group-hover:text-sky-400"},ma={class:"block truncate text-[11px] text-gray-500 dark:text-gray-400"},ya={key:0,class:"shrink-0 rounded-md bg-sky-100/60 px-1.5 py-0.5 text-[10px] font-semibold text-sky-600 dark:bg-sky-500/15 dark:text-sky-400"},ba={key:2,class:"absolute bottom-6 left-1/2 z-20 flex max-w-[min(560px,calc(100%-2rem))] -translate-x-1/2 items-center gap-2.5 rounded-2xl border border-sky-500/20 bg-[#090d16]/85 px-4 py-2.5 text-center text-xs font-semibold text-sky-200 shadow-overlay backdrop-blur-md animate-fade-in"},xa={key:4,class:"absolute inset-0 flex items-center justify-center text-sm font-medium text-gray-400"},ka={key:5,class:"dark absolute inset-x-3 bottom-3 z-20 flex max-h-[70vh] flex-col overflow-hidden rounded-2xl border border-white/5 bg-page-dark/10 text-white shadow-overlay backdrop-blur-md md:inset-x-auto md:bottom-4 md:right-4 md:top-4 md:max-h-none md:w-[360px]"},wa={key:0,class:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4 pt-5"},_a={class:"shrink-0 space-y-2.5"},Sa={class:"flex items-center gap-3 pr-8"},Ra={class:"min-w-0 flex-1"},Ta={class:"flex min-w-0 items-center gap-1.5"},Ca={class:"truncate text-base font-bold text-gray-900 dark:text-white"},Na={class:"truncate text-xs text-gray-500 dark:text-gray-400"},Ia={class:"grid grid-cols-3 gap-1 text-xs"},Ma={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Pa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},La={class:"flex min-w-0 items-baseline gap-0.5"},Ea={class:"font-mono text-sm font-bold leading-4 text-sky-600 dark:text-sky-400"},Va={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Ka={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ga={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Aa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Fa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},za={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},$a={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Da={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Oa={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Ba={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},ja={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ha={class:"min-w-0 rounded-md border border-gray-100/60 bg-gray-50/35 p-1.5 dark:border-white/5 dark:bg-white/3"},Ua={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},qa={class:"block truncate text-[11px] font-semibold leading-4 text-gray-900 dark:text-white"},Qa={class:"flex min-h-0 flex-1 flex-col gap-2"},Wa={class:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-gray-100/80 bg-gray-50/25 p-2.5 dark:border-white/5 dark:bg-white/2"},Ya={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},Xa={class:"flex min-w-0 items-center gap-2"},Ja={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Za={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},eo={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},to={key:0,class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},ao=["onClick"],oo={class:"min-w-0 flex-1"},no={class:"block truncate text-[13px] font-semibold leading-4 text-gray-900 transition-colors group-hover:text-sky-600 dark:text-white dark:group-hover:text-sky-400"},so={class:"flex w-14 shrink-0 justify-end"},ro={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},lo={key:1,class:"py-4 text-center text-xs text-gray-400 dark:text-gray-500"},io={key:0,class:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-gray-100/80 bg-gray-50/25 p-2.5 dark:border-white/5 dark:bg-white/2"},co={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},uo={class:"flex min-w-0 items-center gap-2"},ho={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},po={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},vo={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},go={class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},fo={class:"flex min-w-0 items-center gap-2"},mo={class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/45 shadow-sm dark:bg-white/5"},yo={class:"truncate font-semibold leading-4 text-gray-700 dark:text-gray-200"},bo={class:"flex w-14 shrink-0 justify-end"},xo={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},ko=1400,wo=392,_o=St({__name:"index",setup(e){const r={nodes:[],edges:[],communities:[]},l=He(()=>Ue(()=>import("./RelationshipGalaxyThreeCanvas-B6GB4PWS.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),k=He(()=>Ue(()=>import("./RelationshipGalaxyCanvas-6EamagxG.js").then(t=>t.as),__vite__mapDeps([7,1,2,3,5]))),{t:a,locale:M}=Rt(),E=Tt(),V=Gt(),A=f("1y"),u=f("panorama"),w=f(""),K=f(""),$=f(!1),ne=f(""),v=f(null),G=f(!1),D=f(null),T=f(null),he=f(!1),pe=f(!1),U=f(!1),Ke=f(!1),F=f(null),_=f(null),P=f(!1),q=f(ta),Q=f(""),W=f(0),O=f(0),R=f(null),se=f(null);let re=null,ve=null,Y=null,X=null,le=null,ge=!1;const Je=g(()=>new Intl.NumberFormat(M.value)),Ze=g(()=>Vt.map(t=>({label:a(`relationships.timeRange.${t}`),value:t}))),et=g(()=>[{label:a("relationships.graphScope.panorama"),value:"panorama"},{label:a("relationships.graphScope.close"),value:"close"},{label:a("relationships.graphScope.friends"),value:"friends"}]),C=g(()=>T.value?.graph??D.value?.graph??r),tt=g(()=>sa(C.value,{privacyMode:P.value,ownerLabel:a("relationships.owner.me")})),fe=g(()=>!!T.value),me=g(()=>C.value.nodes.length>0),J=g(()=>qt({graphTask:D.value?.task??null,neighborhoodTask:T.value?.task??null,isNeighborhoodMode:fe.value})),Z=g(()=>J.value?.status==="running"),Ge=g(()=>J.value?.status==="failed"),at=g(()=>D.value?.cache.status??T.value?.cache.status),Ae=g(()=>D.value?.searchResults??[]),Fe=g(()=>w.value.trim().length>0),ot=g(()=>Fe.value&&w.value.trim()===ne.value&&$.value&&Ae.value.length>0),nt=g(()=>(he.value||Z.value)&&!me.value),st=g(()=>Z.value&&me.value),y=g(()=>v.value?C.value.nodes.find(t=>t.key===v.value)??T.value?.contact??null:null),ze=g(()=>G.value&&!!y.value),ye=g(()=>ze.value&&Ke.value?wo:0),rt=g(()=>Ut({selectedKey:v.value,isNeighborhoodMode:fe.value,neighborhoodContactKey:T.value?.contact?.key??null})),ie=g(()=>Bt(C.value,v.value,{collapsedLimit:We})),be=g(()=>({nodes:C.value.nodes.length,edges:C.value.edges.length,communities:C.value.communities.length})),xe=g(()=>[...C.value.communities].sort((t,s)=>s.size-t.size).slice(0,8)),ke=g(()=>at.value==="stale"&&Z.value?a("relationships.task.updating"):Z.value?ht(J.value):Ge.value?J.value?.lastError||a("relationships.task.failed"):""),lt=g(()=>Wt({loadError:Q.value,isTaskFailed:Ge.value,statusText:ke.value,emptyText:a("relationships.empty")}));function x(t){return Je.value.format(t)}function it(t){return Math.round(t*100).toString()}function ct(){const t=ie.value.items.length,s=ie.value.total;return s<=t?x(s):`${x(t)} / ${x(s)}`}function ut(t){return t?new Date(t*1e3).toLocaleDateString():a("relationships.detail.emptyValue")}function we(t){return Jt(t,{privacyMode:P.value,ownerLabel:a("relationships.owner.avatarText")})}function _e(t){return Zt(t,P.value)}function B(t){return Xe(t,{privacyMode:P.value,ownerLabel:a("relationships.owner.me")})}function dt(t){return ea(t,P.value)}function $e(t){return t.kind==="owner"?a("relationships.owner.type"):t.friendSource==="manual"?a("relationships.pool.manualFriend"):t.pool==="friend"?a("relationships.pool.friend"):a("relationships.pool.nonFriend")}function ht(t){return a("relationships.task.running",{current:x(t?.processedSessions??0),total:x(t?.totalSessions??0)})}function De(t){const s=Oe(t,u.value);re&&re!==s&&ce();const d=D.value;D.value=d&&re===s?{...t,graph:d.graph}:t,re=s}function pt(t){const s=Oe(t,`neighborhood:${t.contact?.key??""}`),d=T.value;T.value=d&&ve===s?{...t,graph:d.graph}:t,ve=s}function j(){T.value=null,ve=null}function Oe(t,s){const d=t.graph;let n=2166136261;n=S(n,s),n=S(n,t.algorithmVersion),n=S(n,t.cache.signature??""),n=N(n,t.timeRange.startTs??0),n=S(n,t.timeRange.preset);for(const h of d.nodes)n=S(n,h.key),n=S(n,h.pool),n=S(n,h.friendSource??""),n=N(n,h.rank),n=N(n,Math.round(h.score*1e6)),n=N(n,h.labelVisibility),n=N(n,Math.round(h.x*100)),n=N(n,Math.round(h.y*100)),n=N(n,Math.round(h.size*100));for(const h of d.edges)n=S(n,h.id),n=S(n,h.sourceKey),n=S(n,h.targetKey),n=N(n,Math.round(h.weight*1e6)),n=N(n,h.visibility);for(const h of d.communities)n=S(n,h.id),n=N(n,h.size),n=S(n,h.color);return`${s}:${d.nodes.length}:${d.edges.length}:${d.communities.length}:${n>>>0}`}function S(t,s){for(let d=0;d<s.length;d+=1)t^=s.charCodeAt(d),t=Math.imul(t,16777619);return t}function N(t,s){return S(t,String(s))}function Se(){Y&&(clearInterval(Y),Y=null)}function H(){O.value+=1,U.value=!1,F.value=null}function Be(){se.value=oa(R.value,v.value,se.value)}function ce(){se.value=null}function vt(){const t=se.value;ce(),z(()=>{na(R.value,t),z(()=>{ge=!1})})}function Re(t){if(t?.status==="running"){Y||(Y=setInterval(()=>{ee({silent:!0,preserveNeighborhood:!0})},ko));return}Se()}async function ee(t={}){const s=W.value+1;W.value=s;const d=J.value?.status??null,n=t.preserveNeighborhood?T.value?.contact?.key??null:null;t.silent||(he.value=!0),t.preserveNeighborhood||(H(),j()),Q.value="";try{const h=await E.getPeopleRelationships({acceptStale:!0,timeRangePreset:A.value,graphScope:u.value,query:K.value.trim()||void 0});if(s!==W.value)return;De(h),ne.value=K.value.trim(),v.value&&!C.value.nodes.some(Ne=>Ne.key===v.value)&&(v.value=null,_.value=null,G.value=!1);const c=Qt({previousTaskStatus:d,nextTaskStatus:h.task?.status??null,neighborhoodContactKey:n});Re(h.task),c.type==="refresh-neighborhood"&&ue(c.key)}catch(h){if(s!==W.value)return;Q.value=String(h),V.fail(a("relationships.toast.loadFailed"),{description:String(h)}),Se()}finally{s===W.value&&(he.value=!1)}}async function gt(){pe.value=!0,Q.value="";try{const t=await E.recomputePeopleRelationships({timeRangePreset:A.value,graphScope:u.value,query:K.value.trim()||void 0});De(t),ne.value=K.value.trim(),H(),j(),v.value=null,_.value=null,G.value=!1,Re(t.task),V.success(a("relationships.toast.recomputeStarted"))}catch(t){V.fail(a("relationships.toast.recomputeFailed"),{description:String(t)})}finally{pe.value=!1}}const ft=g(()=>({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",action:{label:a("relationships.actions.recompute"),icon:"i-lucide-refresh-cw",loading:pe.value,disabled:Z.value,class:"border border-sky-100 hover:border-sky-200 dark:border-sky-950/30 dark:hover:border-sky-900/50",onClick:gt},stats:[{id:"nodes",label:a("relationships.stats.nodes"),value:x(be.value.nodes)},{id:"edges",label:a("relationships.stats.edges"),value:x(be.value.edges)},{id:"communities",label:a("relationships.stats.communities"),value:x(be.value.communities),dividerBefore:!0}]}));Ft(ft);async function ue(t){const s=O.value+1;O.value=s,U.value=!0,F.value=t,Q.value="";try{const d=await E.getPeopleRelationshipNeighborhood(t,{acceptStale:!0,timeRangePreset:A.value,graphScope:u.value});if(s!==O.value)return;pt(d),v.value=d.contact?.key??t,_.value=v.value,Re(d.task),await z(),R.value?.fitView()}catch(d){if(s!==O.value)return;V.fail(a("relationships.toast.neighborhoodFailed"),{description:String(d)})}finally{s===O.value&&(U.value=!1,F.value=null)}}async function mt(){v.value&&await ue(v.value)}async function yt(t){if(Be(),$.value=!1,t.inCoreGraph||(F.value=t.key),v.value=t.key,G.value=!0,_.value=Qe({selectedKey:v.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:_.value}),!t.inCoreGraph){await ue(t.key);return}H(),j(),await z(),R.value?.focusNode(t.key)}async function Te(t){Be();const s=T.value?.contact?.key!==t.key;if(s&&(F.value=t.key),v.value=t.key,G.value=!0,_.value=Qe({selectedKey:v.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:_.value}),await z(),R.value?.focusNode(t.key),s){await ue(t.key);return}_.value=v.value}async function bt(t){const s=C.value.nodes.find(d=>d.key===t.key);s&&await Te(s)}function xt(){const t=aa(q.value);t!==q.value&&(q.value=t,V.warn(a("relationships.toast.threeUnavailable")))}function je(){ge=!0,H(),j(),v.value=null,_.value=null,G.value=!1,vt()}function kt(){je()}function wt(){w.value="",ne.value="",$.value=!1}function _t(){R.value?.fitView()}function Ce(){Ke.value=le?.matches??!1}return te(A,()=>{ce(),v.value=null,_.value=null,G.value=!1,H(),j(),ee()}),te(u,()=>{ce(),v.value=null,_.value=null,G.value=!1,H(),j(),ee()}),te(w,t=>{X&&clearTimeout(X),$.value=t.trim().length>0,X=setTimeout(()=>{K.value=t,ee({silent:!0,preserveNeighborhood:!0})},260)}),te(q,async()=>{if(await z(),v.value){R.value?.focusNode(v.value);return}R.value?.fitView()}),te(ye,async()=>{if(await z(),!ge){if(v.value){R.value?.focusNode(v.value);return}R.value?.fitView()}}),Ct(()=>{typeof window<"u"&&(le=window.matchMedia("(min-width: 768px)"),Ce(),le.addEventListener("change",Ce)),ee()}),Nt(()=>{le?.removeEventListener("change",Ce),Se(),X&&clearTimeout(X)}),(t,s)=>{const d=Kt,n=Pt,h=Lt;return m(),b("div",la,[o("main",ia,[q.value==="3d"?(m(),ae(p(l),{key:0,ref_key:"canvasRef",ref:R,graph:tt.value,"selected-key":_.value,"safe-inset-right":ye.value,"emphasize-edges":u.value==="friends",label:p(a)("relationships.canvas.label3d"),onFallback:xt,onSelectNode:bt},null,8,["graph","selected-key","safe-inset-right","emphasize-edges","label"])):(m(),ae(p(k),{key:1,ref_key:"canvasRef",ref:R,graph:C.value,"selected-key":_.value,"privacy-mode":P.value,"safe-inset-right":ye.value,"emphasize-edges":u.value==="friends",label:p(a)("relationships.canvas.label"),"owner-label":p(a)("relationships.owner.me"),onSelectNode:Te},null,8,["graph","selected-key","privacy-mode","safe-inset-right","emphasize-edges","label","owner-label"])),o("div",ca,[I(d,{modelValue:A.value,"onUpdate:modelValue":s[0]||(s[0]=c=>A.value=c),items:Ze.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),I(d,{modelValue:u.value,"onUpdate:modelValue":s[1]||(s[1]=c=>u.value=c),items:et.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),o("div",ua,[I(h,{modelValue:w.value,"onUpdate:modelValue":s[2]||(s[2]=c=>w.value=c),icon:"i-lucide-search",placeholder:p(a)("relationships.search"),size:"sm",class:"w-full",onFocus:s[3]||(s[3]=c=>$.value=Fe.value),onKeydown:s[4]||(s[4]=Mt(c=>$.value=!1,["esc"]))},It({_:2},[w.value?{name:"trailing",fn:de(()=>[I(n,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":p(a)("relationships.actions.clearSearch"),onClick:wt},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),ot.value?(m(),b("div",da,[o("div",ha,i(p(a)("relationships.searchResults.title")),1),o("div",pa,[(m(!0),b(Ie,null,Me(Ae.value,c=>(m(),b("button",{key:c.key,type:"button",class:Le(["group flex w-full items-center gap-2.5 rounded-xl px-2.5 py-2 text-left transition hover:bg-gray-100/70 dark:hover:bg-white/5",v.value===c.key?"bg-sky-50 dark:bg-sky-500/10":""]),disabled:U.value,onClick:Ne=>yt(c)},[I(Pe,{src:_e(c),alt:B(c),text:we(c),"root-class":"h-8 w-8 shrink-0 shadow-sm border border-gray-250/20 dark:border-white/10","image-class":"h-8 w-8 rounded-full object-cover","fallback-class":"flex h-8 w-8 items-center justify-center rounded-full bg-sky-100 text-[10px] font-bold text-sky-700 dark:bg-sky-500/15 dark:text-sky-200"},null,8,["src","alt","text"]),o("span",ga,[o("span",fa,i(B(c)),1),o("span",ma,i($e(c))+" · #"+i(c.rank),1)]),c.inCoreGraph?L("",!0):(m(),b("span",ya,i(p(a)("relationships.searchResults.offCore")),1))],10,va))),128))])])):L("",!0)]),I(n,{icon:"i-lucide-scan-line",color:"neutral",variant:"soft",size:"xs","aria-label":p(a)("relationships.actions.fitView"),onClick:_t},null,8,["aria-label"]),I(n,{icon:P.value?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"soft",size:"xs",onClick:s[5]||(s[5]=c=>P.value=!P.value)},{default:de(()=>[Ee(i(p(a)("relationships.privacy")),1)]),_:1},8,["icon"]),fe.value?(m(),ae(n,{key:0,icon:"i-lucide-undo-2",color:"neutral",variant:"soft",size:"xs",onClick:je},{default:de(()=>[Ee(i(p(a)("relationships.actions.backToPanorama")),1)]),_:1})):L("",!0)]),st.value?(m(),b("div",ba,[s[6]||(s[6]=o("span",{class:"i-lucide-refresh-cw h-3.5 w-3.5 animate-spin text-sky-400"},null,-1)),o("span",null,i(ke.value),1)])):L("",!0),nt.value?(m(),ae(p(At),{key:3,variant:"overlay",class:"!bg-[#0b0f19] [&_p]:!text-gray-300",text:ke.value||p(a)("relationships.task.updating")},null,8,["text"])):me.value?L("",!0):(m(),b("div",xa,i(lt.value),1)),ze.value?(m(),b("aside",ka,[I(n,{icon:"i-lucide-x",color:"neutral",variant:"ghost",size:"xs",class:"absolute right-2.5 top-2.5 z-10 bg-white/35 backdrop-blur-sm hover:bg-white/55 dark:bg-white/5 dark:hover:bg-white/10","aria-label":p(a)("relationships.actions.closeDetail"),onClick:kt},null,8,["aria-label"]),y.value?(m(),b("div",wa,[o("div",_a,[o("div",Sa,[I(Pe,{src:_e(y.value),alt:B(y.value),text:we(y.value),"root-class":"h-11 w-11 shrink-0 overflow-hidden rounded-lg shadow-sm border border-gray-250/20 dark:border-white/10","image-class":"h-11 w-11 rounded-lg object-cover","fallback-class":"flex h-11 w-11 items-center justify-center rounded-lg bg-sky-100 text-sm font-bold text-sky-700 dark:bg-sky-500/15 dark:text-sky-200"},null,8,["src","alt","text"]),o("div",Ra,[o("div",Ta,[o("p",Ca,i(B(y.value)),1),o("span",{class:Le(["shrink-0 rounded-full bg-white/45 px-1.5 py-0.5 font-mono text-[10px] font-bold text-gray-600 dark:bg-white/8 dark:text-gray-300",y.value.rank<=3?"text-amber-600 dark:text-amber-300":""])}," #"+i(y.value.rank),3)]),o("p",Na,i(y.value.platform)+" · "+i(dt(y.value)),1)])]),rt.value?(m(),ae(n,{key:0,icon:"i-lucide-network",color:"primary",variant:"soft",size:"sm",block:"",class:"rounded-xl font-semibold shadow-sm border border-sky-100 hover:border-sky-200 dark:border-sky-950/30 dark:hover:border-sky-900/50",loading:U.value,onClick:mt},{default:de(()=>[Ee(i(p(a)("relationships.actions.focusConnections")),1)]),_:1},8,["loading"])):L("",!0),o("div",Ia,[o("div",Ma,[o("p",Pa,i(p(a)("relationships.detail.score")),1),o("div",La,[o("p",Ea,i(it(y.value.score)),1),s[7]||(s[7]=o("span",{class:"text-[9px] leading-3 text-gray-400"},"/100",-1))])]),o("div",Va,[o("p",Ka,i(p(a)("relationships.detail.type")),1),o("span",{class:Le(["inline-flex max-w-full items-center truncate text-[10px] font-semibold leading-4",y.value.pool==="friend"?"text-sky-700 dark:text-sky-300":"text-amber-700 dark:text-amber-300"])},i($e(y.value)),3)]),o("div",Ga,[o("p",Aa,i(p(a)("relationships.detail.privateMessages")),1),o("span",Fa,i(x(y.value.privateMessageCount)),1)]),o("div",za,[o("p",$a,i(p(a)("relationships.detail.groupMessages")),1),o("span",Da,i(x(y.value.groupMessageCount)),1)]),o("div",Oa,[o("p",Ba,i(p(a)("relationships.detail.commonGroups")),1),o("span",ja,i(x(y.value.commonGroupCount)),1)]),o("div",Ha,[o("p",Ua,i(p(a)("relationships.detail.lastInteraction")),1),o("span",qa,i(ut(y.value.lastInteractionTs)),1)])])]),o("div",Qa,[o("section",Wa,[o("div",Ya,[o("div",Xa,[o("h3",Ja,i(p(a)("relationships.connections.title")),1),o("span",Za,i(ct()),1)]),o("span",eo,i(p(a)("relationships.connections.connectionScore")),1)]),ie.value.items.length>0?(m(),b("div",to,[(m(!0),b(Ie,null,Me(ie.value.items,c=>(m(),b("button",{key:c.node.key,type:"button",class:"group flex h-9 w-full items-center gap-2 rounded-lg px-2 py-0 text-left transition-all duration-250 hover:bg-white dark:hover:bg-white/5",onClick:Ne=>Te(c.node)},[I(Pe,{src:_e(c.node),alt:B(c.node),text:we(c.node),"root-class":"h-6 w-6 shrink-0 overflow-hidden rounded-md shadow-sm border border-gray-250/20 dark:border-white/10","image-class":"h-6 w-6 rounded-md object-cover","fallback-class":"flex h-6 w-6 items-center justify-center rounded-md bg-sky-100 text-[9px] font-bold text-sky-700 dark:bg-sky-500/15 dark:text-sky-200"},null,8,["src","alt","text"]),o("div",oo,[o("span",no,i(B(c.node)),1)]),o("span",so,[o("span",ro,i(x(c.connectionScore)),1)])],8,ao))),128))])):(m(),b("p",lo,i(p(a)("relationships.connections.empty")),1))]),xe.value.length>0?(m(),b("section",io,[o("div",co,[o("div",uo,[o("h2",ho,i(p(a)("relationships.stats.communities")),1),o("span",po,i(x(xe.value.length)),1)]),o("span",vo,i(p(a)("relationships.stats.members")),1)]),o("div",go,[(m(!0),b(Ie,null,Me(xe.value,c=>(m(),b("div",{key:c.id,class:"flex h-9 items-center justify-between gap-2 rounded-lg px-2 py-0 text-[13px] leading-4"},[o("div",fo,[o("span",mo,[o("span",{class:"h-2 w-2 rounded-full shadow-sm",style:Et({backgroundColor:c.color})},null,4)]),o("span",yo,i(c.label),1)]),o("span",bo,[o("span",xo,i(x(c.size)),1)])]))),128))])])):L("",!0)])])):L("",!0)])):L("",!0)])])}}}),Lo=Object.freeze(Object.defineProperty({__proto__:null,default:_o},Symbol.toStringTag,{value:"Module"}));export{Mo as a,Po as b,Xe as g,Lo as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as E,a0 as O,o as c,i as d,l as e,F as z,q as $,v as n,f as o,n as K,g as u,ad as Q,c as G,D as b,b as F,_ as H,a3 as Y,an as X,r as J,b2 as ee,a1 as te,aq as ae,w as se,ab as ne,s as U,ac as Z,V as ie,a2 as re}from"./index-D5m0P4ss.js";import{_ as oe}from"./LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js";import{u as le,w as ce}from"./annual-summary-time-range-CmrAqcuj.js";import{_ as de,C as ue,g as ge}from"./base-CawUl6ET.js";import{f as me}from"./dateFormat-DXuDxIye.js";import{_ as V}from"./ThemeCard.vue_vue_type_script_setup_true_lang-DPIvbq75.js";import"./vendor-echarts-wordcloud-BsaEJTPY.js";import"./vendor-snapdom--nZvo8Sg.js";import"./vendor-echarts-DfAMQxdr.js";import"./vendor-zrender-PFmZe1EY.js";const he=1440*60*1e3;function ve(p){const t=new Map;for(const l of p){if(l.messageCount<=0)continue;const g=pe(l.date);g!==null&&t.set(g,(t.get(g)??0)+l.messageCount)}const s=[...t.keys()].sort((l,g)=>l-g);if(s.length===0)return{longestActiveStreak:0,topWeekday:null,weekdayMessageRate:null,weekendMessageRate:null};const y=Array.from({length:7},()=>0);let k=1,f=1;s.forEach((l,g)=>{const m=(new Date(l).getUTCDay()+6)%7;y[m]+=t.get(l)??0,g!==0&&(l-s[g-1]===he?(f++,k=Math.max(k,f)):f=1)});const r=y.reduce((l,g)=>l+g,0),M=y[5]+y[6],D=Math.round(M/r*100),v=y.reduce((l,g,m)=>g>y[l]?m:l,0);return{longestActiveStreak:k,topWeekday:v+1,weekdayMessageRate:100-D,weekendMessageRate:D}}function pe(p){const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(p);if(!t)return null;const s=Number(t[1]),y=Number(t[2]),k=Number(t[3]),f=Date.UTC(s,y-1,k),r=new Date(f);return r.getUTCFullYear()!==s||r.getUTCMonth()!==y-1||r.getUTCDate()!==k?null:f}const ye={class:"annual-calendar"},xe={class:"annual-calendar-months grid grid-cols-2 gap-x-4 gap-y-5"},ke={class:"mb-1.5 text-[11px] font-bold text-gray-500 dark:text-zinc-400"},fe={class:"grid grid-cols-7 gap-[3px]","aria-hidden":"true"},_e=["title"],be={class:"mt-4 flex items-center justify-end gap-1.5 text-[10px] text-gray-400 dark:text-zinc-500"},we=E({__name:"AnnualCalendarGrid",props:{range:{},data:{}},setup(p){const t=p,{t:s}=O(),y=u(()=>Math.max(...t.data.map(v=>v.messageCount),1)),k=u(()=>new Map(t.data.map(v=>[v.date,v.messageCount]))),f=u(()=>new Date(t.range.startTs*1e3)),r=u(()=>new Date(t.range.endTs*1e3)),M=u(()=>{const v=f.value,l=r.value,g=[],m=t.range.year??v.getFullYear(),T=t.range.mode==="year"?new Date(m,0,1):new Date(v.getFullYear(),v.getMonth(),1),L=t.range.mode==="year"?new Date(m,11,1):new Date(l.getFullYear(),l.getMonth(),1);for(;T<=L;){const S=T.getFullYear(),w=T.getMonth(),N=`${S}-${String(w+1).padStart(2,"0")}`,A=new Date(S,w+1,0).getDate(),R=Array.from({length:A},(W,B)=>{const C=B+1,I=`${N}-${String(C).padStart(2,"0")}`,x=new Date(S,w,C),_=k.value.get(I)??0,a=x>=D(v)&&x<=D(l);return{key:I,day:C,count:_,inRange:a,level:a&&_>0?Math.max(1,Math.ceil(_/y.value*4)):0}});g.push({key:N,label:t.range.mode==="year"?s("insight.monthLabel",{month:w+1}):N.replace("-","/"),leadingDays:(new Date(S,w,1).getDay()+6)%7,days:R}),T.setMonth(T.getMonth()+1)}return g});function D(v){return new Date(v.getFullYear(),v.getMonth(),v.getDate())}return(v,l)=>(c(),d("div",ye,[e("div",xe,[(c(!0),d(z,null,$(M.value,g=>(c(),d("div",{key:g.key,class:"min-w-0"},[e("div",ke,n(g.label),1),e("div",fe,[(c(!0),d(z,null,$(g.leadingDays,m=>(c(),d("span",{key:`blank-${m}`,class:"aspect-square min-h-[7px] rounded-[3px] bg-gray-50 dark:bg-zinc-800/30"}))),128)),(c(!0),d(z,null,$(g.days,m=>(c(),d("span",{key:m.key,class:K(["aspect-square min-h-[7px] rounded-[3px]",{"opacity-30":!m.inRange,"bg-gray-50 dark:bg-zinc-800/30":m.level===0,"bg-pink-100 dark:bg-pink-500/10":m.level===1,"bg-pink-200 dark:bg-pink-500/25":m.level===2,"bg-pink-400 dark:bg-pink-500/50":m.level===3,"bg-pink-600 dark:bg-pink-500/80":m.level===4}]),title:`${m.key}: ${m.count} ${o(s)("insight.messages")}`},null,10,_e))),128))])]))),128))]),e("div",be,[e("span",null,n(o(s)("insight.calendar.less")),1),l[0]||(l[0]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-100 dark:bg-pink-500/10"},null,-1)),l[1]||(l[1]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-200 dark:bg-pink-500/25"},null,-1)),l[2]||(l[2]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-400 dark:bg-pink-500/50"},null,-1)),l[3]||(l[3]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-600 dark:bg-pink-500/80"},null,-1)),e("span",null,n(o(s)("insight.calendar.more")),1)])]))}}),De=Q(we,[["__scopeId","data-v-59c87af3"]]),Ce=E({__name:"AnnualMonthlyTrend",props:{range:{},data:{},height:{}},setup(p){const t=p,{t:s}=O(),y=u(()=>({labels:t.data.map(k=>t.range.mode==="year"?s("insight.monthLabel",{month:Number(k.month.slice(5))}):k.month.replace("-","/")),values:t.data.map(k=>k.value)}));return(k,f)=>(c(),G(o(de),{data:y.value,height:p.height??260,"border-radius":3},null,8,["data","height"]))}}),Me={class:"grid gap-4 xl:grid-cols-12"},ze={class:"relative z-10 min-w-0 p-5 sm:p-6"},Te={class:"flex flex-col gap-5 2xl:flex-row 2xl:items-start 2xl:justify-between"},$e={class:"min-w-0"},Se={class:"text-2xl font-bold text-gray-900 dark:text-white sm:text-3xl"},Ae={class:"mt-3 space-y-1.5 text-xs font-medium text-gray-500 dark:text-zinc-400"},Re={class:"flex items-center gap-2"},Ye={class:"font-mono"},Le={class:"flex flex-wrap items-center gap-x-2 gap-y-1"},Ne={class:"grid grid-cols-2 gap-x-6 gap-y-4 sm:grid-cols-4 2xl:shrink-0"},Be={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},je={class:"text-[11px] leading-tight font-medium text-gray-500 dark:text-zinc-400"},Fe={class:"mt-5 border-t border-gray-200/60 pt-5 dark:border-white/5"},Ie={class:"flex flex-wrap items-center justify-between gap-3"},Ue={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},Ve={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-zinc-800"},We=["aria-pressed","onClick"],qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ee={class:"mt-2"},Oe={class:"min-w-0 p-5 sm:p-6"},Pe={class:"flex items-start justify-between gap-4"},Ke={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},Ge={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Je={class:"shrink-0 text-right"},Xe={class:"font-mono text-lg font-black tabular-nums text-gray-900 dark:text-white"},Ze={class:"text-[10px] text-gray-400 dark:text-zinc-500"},He={class:"mt-5"},Qe={class:"min-w-0 p-5 sm:p-6"},et={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},tt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},at={key:0,class:"mt-5 grid grid-cols-2 gap-x-5 gap-y-4 sm:grid-cols-3"},st={class:"flex items-end justify-between gap-2"},nt={class:"truncate text-xs font-medium text-gray-600 dark:text-zinc-300"},it={class:"font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},rt={class:"mt-2 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},ot={class:"mt-1.5 font-mono text-[10px] text-gray-400 dark:text-zinc-500"},lt={key:1,class:"flex h-28 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},ct={class:"min-w-0 p-5 sm:p-6"},dt={class:"flex items-start justify-between gap-3"},ut={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},gt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},mt={class:"flex shrink-0 gap-3 text-right"},ht={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},vt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},pt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},yt={key:0,class:"mt-5 flex h-24 items-end gap-2"},xt={class:"flex h-16 w-full items-end rounded-sm bg-gray-100 dark:bg-zinc-800"},kt=["title"],ft={class:"w-full truncate text-center font-mono text-[9px] text-gray-400 dark:text-zinc-500"},_t={key:1,class:"flex h-24 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},bt={class:"min-w-0 p-5 sm:p-6"},wt={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},Dt={class:"mt-5 space-y-4"},Ct={class:"truncate font-mono text-sm font-black tabular-nums text-gray-900 dark:text-white"},Mt={class:"mt-1 text-[10px] leading-tight font-medium text-gray-500 dark:text-zinc-400"},zt={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-zinc-500"},Tt=E({__name:"AnnualInsightBoard",props:{range:{},metrics:{},coverage:{},monthlyActivity:{},monthlyDirectContacts:{},dailyActivity:{},messageTypes:{},textLength:{}},setup(p){const t=p,{t:s}=O(),y=J("messages"),k={messages:"i-heroicons-chat-bubble-left-right",activeDays:"i-heroicons-calendar-days",contacts:"i-heroicons-user-group",dailyMessages:"i-heroicons-chart-bar"},f=u(()=>t.range.mode==="year"?s("insight.overviewCard.yearTitle",{year:t.range.year}):s("insight.overviewCard.recentTitle")),r=u(()=>me(t.range.startTs,t.range.endTs,"YYYY/MM/DD")),M=u(()=>[{key:"messages",value:t.metrics.sentMessageCount},{key:"activeDays",value:t.metrics.activeDayCount},{key:"contacts",value:t.metrics.directContactCount},{key:"dailyMessages",value:t.metrics.averageMessagesPerDay}]),D=u(()=>t.monthlyActivity.reduce((a,i)=>!a||i.messageCount>a.messageCount?i:a,null)),v=u(()=>t.dailyActivity.reduce((a,i)=>!a||i.messageCount>a.messageCount?i:a,null)),l=u(()=>[...t.messageTypes].sort((a,i)=>i.count-a.count).slice(0,6)),g=u(()=>t.messageTypes.reduce((a,i)=>a+i.count,0)),m=u(()=>t.messageTypes.find(a=>a.type===ee.TEXT)?.count??0),T=u(()=>x(m.value,g.value)),L=u(()=>Math.max(...t.textLength.buckets.map(a=>a.count),1)),S=u(()=>{const a=Math.max(1,Math.round((t.range.endTs-t.range.startTs)/86400)+1);return x(t.metrics.activeDayCount,a)}),w=u(()=>ve(t.dailyActivity)),N=u(()=>y.value==="messages"?t.monthlyActivity.map(a=>({month:a.month,value:a.messageCount})):t.monthlyDirectContacts.map(a=>({month:a.month,value:a.contactCount}))),A=u(()=>s(y.value==="messages"?"insight.sections.overviewDescription":"insight.sections.directContactsDescription")),R=["mon","tue","wed","thu","fri","sat","sun"],W=u(()=>[[{key:"dailyContacts",value:C(t.metrics.averageDirectContactsPerDay),detail:s("insight.overviewCard.perDay")},{key:"peakMonth",value:I(D.value?.month),detail:s("insight.overviewCard.messagesCount",{count:C(D.value?.messageCount??0)})},{key:"peakDay",value:v.value?.date.slice(5).replace("-","/")??"-",detail:s("insight.overviewCard.messagesCount",{count:C(v.value?.messageCount??0)})}],[{key:"longestActiveStreak",value:C(w.value.longestActiveStreak),detail:s("insight.overviewCard.consecutiveActiveDays")},{key:"topWeekday",value:B(w.value.topWeekday),detail:s("insight.overviewCard.mostMessagesSent")},{key:"weekendMessageRate",value:w.value.weekendMessageRate===null?"-":`${w.value.weekendMessageRate}%`,detail:w.value.weekdayMessageRate===null?s("insight.noData"):s("insight.overviewCard.weekdayMessageRate",{rate:w.value.weekdayMessageRate})}]]);function B(a){return a===null?"-":s(`common.weekday.${R[a-1]}`)}function C(a){return Number.isInteger(a)?a.toLocaleString():a.toLocaleString(void 0,{maximumFractionDigits:1})}function I(a){return a?t.range.mode==="year"?s("insight.monthLabel",{month:Number(a.slice(5))}):a.replace("-","/"):"-"}function x(a,i){return i>0?Math.round(a/i*100):0}function _(a){return k[a]??"i-heroicons-chart-bar"}return(a,i)=>{const j=H;return c(),d("div",Me,[b(o(V),{class:"relative isolate overflow-hidden xl:col-span-8"},{default:F(()=>[b(o(ue)),e("section",ze,[e("div",Te,[e("div",$e,[e("h2",Se,n(f.value),1),e("div",Ae,[e("div",Re,[b(j,{name:"i-heroicons-calendar",class:"h-4 w-4 opacity-70"}),e("span",Ye,n(r.value),1)]),e("div",Le,[b(j,{name:"i-heroicons-circle-stack",class:"h-4 w-4 opacity-70"}),e("span",null,n(o(s)("insight.status.coverage",{analyzed:p.coverage.analyzedSessions,total:p.coverage.totalSessions})),1)])])]),e("div",Ne,[(c(!0),d(z,null,$(M.value,h=>(c(),d("div",{key:h.key,class:"flex min-w-0 flex-col items-start gap-1.5"},[b(j,{name:_(h.key),class:"h-4 w-4 text-pink-500 dark:text-pink-400"},null,8,["name"]),e("div",Be,n(C(h.value)),1),e("div",je,n(o(s)(`insight.kpis.${h.key}`)),1)]))),128))])]),e("div",Fe,[e("div",Ie,[e("h3",Ue,[i[0]||(i[0]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),Y(" "+n(o(s)("insight.sections.overview")),1)]),e("div",Ve,[(c(),d(z,null,$(["messages","contacts"],h=>e("button",{key:h,type:"button",class:K(["rounded-md px-2.5 py-1 text-[10px] font-medium transition-colors",y.value===h?"bg-white text-gray-900 shadow-sm dark:bg-zinc-700 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-zinc-400 dark:hover:text-zinc-200"]),"aria-pressed":y.value===h,onClick:P=>y.value=h},n(o(s)(`insight.overviewCard.monthlyTrend.${h}`)),11,We)),64))])])]),e("p",qe,n(A.value),1),e("div",Ee,[b(Ce,{range:p.range,data:N.value,height:210},null,8,["range","data"])])])]),_:1}),b(o(V),{class:"xl:col-span-4"},{default:F(()=>[e("section",Oe,[e("div",Pe,[e("div",null,[e("h3",Ke,[i[1]||(i[1]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),Y(" "+n(o(s)("insight.overviewCard.activity")),1)]),e("p",Ge,n(o(s)("insight.sections.activityDescription")),1)]),e("div",Je,[e("div",Xe,n(p.metrics.activeDayCount),1),e("div",Ze,n(o(s)("insight.overviewCard.activeRate",{rate:S.value})),1)])]),e("div",He,[b(De,{range:p.range,data:p.dailyActivity},null,8,["range","data"])])])]),_:1}),b(o(V),{class:"xl:col-span-5"},{default:F(()=>[e("section",Qe,[e("h3",et,[i[2]||(i[2]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),Y(" "+n(o(s)("insight.sections.messageTypes")),1)]),e("p",tt,n(o(s)("insight.sections.messageTypesDescription")),1),l.value.length?(c(),d("div",at,[(c(!0),d(z,null,$(l.value,h=>(c(),d("div",{key:h.type,class:"min-w-0"},[e("div",st,[e("span",nt,n(o(ge)(h.type,o(s))),1),e("span",it,n(x(h.count,g.value))+"% ",1)]),e("div",rt,[e("div",{class:"h-full rounded-full bg-pink-500 dark:bg-pink-400",style:X({width:`${x(h.count,g.value)}%`})},null,4)]),e("div",ot,n(C(h.count)),1)]))),128))])):(c(),d("div",lt,n(o(s)("insight.noData")),1))])]),_:1}),b(o(V),{class:"xl:col-span-3"},{default:F(()=>[e("section",ct,[e("div",dt,[e("div",null,[e("h3",ut,[i[3]||(i[3]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),Y(" "+n(o(s)("insight.sections.textLength")),1)]),e("p",gt,n(o(s)("insight.overviewCard.textRatio"))+" "+n(T.value)+"% ",1)]),e("div",mt,[e("div",null,[e("div",ht,n(p.textLength.median??"-"),1),e("div",vt,n(o(s)("insight.length.median")),1)]),e("div",null,[e("div",pt,n(p.textLength.p90??"-"),1),i[4]||(i[4]=e("div",{class:"text-[10px] text-gray-400 dark:text-zinc-500"},"P90",-1))])])]),p.textLength.textMessageCount?(c(),d("div",yt,[(c(!0),d(z,null,$(p.textLength.buckets,h=>(c(),d("div",{key:h.key,class:"flex min-w-0 flex-1 flex-col items-center gap-2"},[e("div",xt,[e("div",{class:"w-full rounded-sm bg-pink-500/80 dark:bg-pink-400/80",style:X({height:`${Math.max(4,h.count/L.value*100)}%`}),title:`${h.key}: ${h.count}`},null,12,kt)]),e("span",ft,n(h.key),1)]))),128))])):(c(),d("div",_t,n(o(s)("insight.noTextData")),1))])]),_:1}),b(o(V),{class:"xl:col-span-4"},{default:F(()=>[e("section",bt,[e("h3",wt,[i[5]||(i[5]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),Y(" "+n(o(s)("insight.overviewCard.keyMetrics")),1)]),e("div",Dt,[(c(!0),d(z,null,$(W.value,(h,P)=>(c(),d("div",{key:P,class:K(["grid grid-cols-3 gap-2",{"border-t border-gray-200 pt-4 dark:border-white/10":P>0}])},[(c(!0),d(z,null,$(h,q=>(c(),d("div",{key:q.key,class:"min-w-0 border-l-2 border-pink-300 py-0.5 pr-2 pl-3 last:pr-0 dark:border-pink-700"},[e("div",Ct,n(q.value),1),e("div",Mt,n(o(s)(`insight.overviewCard.${q.key}`)),1),e("div",zt,n(q.detail),1)]))),128))],2))),128))])])]),_:1})])}}}),$t={class:"min-h-0 flex-1 overflow-y-auto"},St={class:"mx-auto w-full max-w-[1120px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},At={class:"min-w-0"},Rt={key:1,class:"flex items-center gap-2 rounded-xl border border-amber-100 bg-amber-50/50 px-4 py-2.5 text-xs text-amber-800 backdrop-blur-sm dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Yt={key:2,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-red-200 bg-red-50/50 px-4 py-2.5 text-xs text-red-800 backdrop-blur-sm dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Lt={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"},Nt={key:0},Bt={key:1},Kt=E({__name:"index",setup(p){const{t}=O(),s=te(),{showSettings:y}=ae(s),k=new Date().getFullYear(),f=le(),r=J(null),M=J("");let D=null,v=0;const l=u(()=>{const x=f.modelValue.value?.state;return x?x.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:{mode:"year",year:x.year??k,acceptStale:!0}:null}),g=u(()=>JSON.stringify(l.value)),m=u(()=>(r.value?.coverage.missingOwnerSessions??0)+(r.value?.coverage.unresolvedOwnerSessions??0)),T=u(()=>r.value?.task.status==="running"),L=u(()=>r.value?.metrics!==null&&r.value?.metrics!==void 0),S=u(()=>L.value&&r.value?.metrics?.sentMessageCount===0),w=u(()=>(r.value?.coverage.totalSessions??0)>0&&r.value?.coverage.analyzedSessions===0&&m.value>0),N=u(()=>f.modelValue.value?.state.mode==="year"?f.modelValue.value.state.year:void 0),A=u(()=>{const x=N.value,_=r.value?.latestDataYear;return x===void 0||_===null||_===void 0||x===_?null:{year:x,latestYear:_}});se(g,()=>{B(),l.value&&(r.value=null,R(!1))},{immediate:!0}),ce(y,()=>{R(!1)}),ne(B);async function R(x){const _=l.value;if(!_)return;const a=++v;M.value="";try{const i=x?await Z().recomputeAnnualSummary(_):await Z().getAnnualSummary(_);if(a!==v)return;r.value=i,i.metrics&&f.setAvailableYears(i.availableDataYears),i.task.status==="running"&&W()}catch(i){if(a!==v)return;const j=i instanceof Error?i.message:String(i);M.value=j,ie(`Global insight annual summary failed: ${j}`,i instanceof Error?i.stack:void 0)}}function W(){B(),D=setTimeout(()=>{R(!1)},900)}function B(){D&&(clearTimeout(D),D=null)}function C(){const x=r.value?.latestDataYear;x&&f.switchToYear(x)}function I(){s.openSettings("data","missing-owner")}return(x,_)=>{const a=H,i=re;return c(),d("main",$t,[e("div",St,[m.value>0?(c(),d("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:I},[b(a,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",At,n(o(t)("insight.status.ownerIssues",{count:m.value})),1),b(a,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):U("",!0),r.value?.cache.status==="stale"||T.value&&L.value?(c(),d("div",Rt,[b(a,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}),Y(" "+n(o(t)("insight.status.updating")),1)])):U("",!0),M.value||r.value?.task.status==="failed"?(c(),d("div",Yt,[e("span",null,n(o(t)("insight.status.failed")),1),b(i,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:_[0]||(_[0]=j=>R(!0))},{default:F(()=>[Y(n(o(t)("insight.actions.retry")),1)]),_:1})])):U("",!0),!L.value&&!M.value&&r.value?.task.status!=="failed"?(c(),G(oe,{key:3,height:"min(52vh, 420px)",text:r.value?.task.status==="running"?o(t)("insight.status.computingProgress",{processed:r.value.task.processedSessions,total:r.value.task.totalSessions}):o(t)("insight.status.loading")},null,8,["text"])):r.value?.metrics&&r.value.textLength?(c(),d(z,{key:4},[S.value&&!w.value?(c(),d("div",Lt,[A.value?(c(),d("span",Nt,n(o(t)("insight.status.noDataWithLatest",A.value)),1)):(c(),d("span",Bt,n(o(t)("insight.noData")),1)),A.value?(c(),G(i,{key:2,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:C},{default:F(()=>[Y(n(o(t)("insight.actions.switchYear",{year:A.value.latestYear})),1)]),_:1})):U("",!0)])):U("",!0),b(Tt,{range:r.value.range,metrics:r.value.metrics,coverage:r.value.coverage,"monthly-activity":r.value.monthlyActivity,"monthly-direct-contacts":r.value.monthlyDirectContacts,"daily-activity":r.value.dailyActivity,"message-types":r.value.messageTypes,"text-length":r.value.textLength},null,8,["range","metrics","coverage","monthly-activity","monthly-direct-contacts","daily-activity","message-types","text-length"])],64)):U("",!0)])])}}});export{Kt as default};
|