chatlab-cli 0.30.1 → 0.30.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist-web/assets/{BufferResource-CYSOCeE0.js → BufferResource-q3rzaWWd.js} +1 -1
  2. package/dist-web/assets/{CanvasRenderer-j7Z_ij_m.js → CanvasRenderer-BRk1y8tp.js} +1 -1
  3. package/dist-web/assets/{DebugToolsPanel.vue_vue_type_script_setup_true_lang-Bk9RvIsW.js → DebugToolsPanel.vue_vue_type_script_setup_true_lang-F4n0zNX2.js} +4 -4
  4. package/dist-web/assets/{Filter-BgGyBeXz.js → Filter-BJwode73.js} +1 -1
  5. package/dist-web/assets/{MessageExportModal-BkEhC8s3.js → MessageExportModal-CGcdMOyw.js} +1 -1
  6. package/dist-web/assets/{PageHeader-CUwv2AFR.js → PageHeader-CZaqOdBQ.js} +1 -1
  7. package/dist-web/assets/{RelationshipGalaxyCanvas-D2owKyDp.js → RelationshipGalaxyCanvas-CORMD7vL.js} +3 -3
  8. package/dist-web/assets/{RelationshipGalaxyThreeCanvas-DfJ2x8y9.js → RelationshipGalaxyThreeCanvas-B_w_P4ob.js} +1 -1
  9. package/dist-web/assets/{RenderTargetSystem-BQ__RbzR.js → RenderTargetSystem-CGhV9R9E.js} +1 -1
  10. package/dist-web/assets/{WebGLRenderer-DuThUm1R.js → WebGLRenderer-CAokTE5X.js} +1 -1
  11. package/dist-web/assets/{WebGPURenderer-d8BwTpxP.js → WebGPURenderer-DzP4ggSy.js} +1 -1
  12. package/dist-web/assets/{browserAll-t_tpJM2L.js → browserAll-CAZCK6dd.js} +1 -1
  13. package/dist-web/assets/{electron-6T3FvCfK.js → electron-CkPDbAaS.js} +1 -1
  14. package/dist-web/assets/{fetch-BgIWhYDV.js → fetch--UbRoBT7.js} +1 -1
  15. package/dist-web/assets/{fetch-HpiZrx8C.js → fetch-1pB-HbYw.js} +1 -1
  16. package/dist-web/assets/{fetch-BgeRLaoA.js → fetch-Apd5OLJw.js} +1 -1
  17. package/dist-web/assets/{fetch-Y-LYZmiT.js → fetch-B8rik0TM.js} +1 -1
  18. package/dist-web/assets/{fetch-BLTlXcRA.js → fetch-BIEXkvDq.js} +1 -1
  19. package/dist-web/assets/{fetch-D0ccqGk_.js → fetch-CF_3ZqRa.js} +1 -1
  20. package/dist-web/assets/{fetch-BVM5kQ6-.js → fetch-DQ9UNNAy.js} +1 -1
  21. package/dist-web/assets/{fetch-DdoIAbX4.js → fetch-FSNxSnAp.js} +1 -1
  22. package/dist-web/assets/{fetch-DFifsv8L.js → fetch-LX9jrJCC.js} +1 -1
  23. package/dist-web/assets/{fetch-C7rlHKE7.js → fetch-wqMSiaK3.js} +1 -1
  24. package/dist-web/assets/{index-cyh3gOBe.js → index-B01uUoHE.js} +1 -1
  25. package/dist-web/assets/{index-Tgk7RCvc.js → index-BSIyyt0z.js} +1 -1
  26. package/dist-web/assets/{index-B5YKZflT.js → index-Bh8z441f.js} +2 -2
  27. package/dist-web/assets/{index-g8yqhgfj.js → index-C0rya8v4.js} +1 -1
  28. package/dist-web/assets/{index-CQsrsY5d.js → index-CZbZv2fh.js} +3 -3
  29. package/dist-web/assets/{index-CdsKtFEJ.js → index-CqUuHQBQ.js} +3 -3
  30. package/dist-web/assets/{index-DraLHiEK.js → index-CzeTP5MJ.js} +2 -2
  31. package/dist-web/assets/{index-IL5tkxhM.js → index-DgNxTM_8.js} +2 -2
  32. package/dist-web/assets/{index-BA87rT8F.js → index-S-YQRH1E.js} +1 -1
  33. package/dist-web/assets/web-DbKs6-1b.js +1 -0
  34. package/dist-web/assets/{webworkerAll-CoXPTsvw.js → webworkerAll-Bhv-hBqR.js} +1 -1
  35. package/dist-web/index.html +1 -1
  36. package/package.json +1 -1
  37. package/dist-web/assets/web-DAgXT8gQ.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RelationshipGalaxyThreeCanvas-DfJ2x8y9.js","assets/vendor-reka-ui-CzM4kDQ7.js","assets/relationship-galaxy-viewport-Cwfa51ER.js","assets/index-CdsKtFEJ.js","assets/vendor-nuxt-ui-DaLxYaC4.js","assets/vendor-snapdom-XnBoh1gd.js","assets/index-B4l3rHie.css","assets/LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js","assets/people-page-header-Mupn-U_b.js","assets/RelationshipGalaxyThreeCanvas-BluPHjCR.css","assets/RelationshipGalaxyCanvas-D2owKyDp.js"])))=>i.map(i=>d[i]);
2
- import{_ as Be}from"./vendor-snapdom-XnBoh1gd.js";import{h as xt,c as wt,d as _t}from"./vendor-nuxt-ui-DaLxYaC4.js";import{p as St,w as ee,d as Tt,z as Ct,P as k,a5 as o,H as te,u,L as P,au as Rt,K as ue,bz as Nt,T as r,Z as Ne,a3 as Ie,U as L,Q as Pe,b as g,h as v,n as F,G as m,R as Ee,a0 as It,bA as He}from"./vendor-reka-ui-CzM4kDQ7.js";import{u as Pt,m as Et,j as Lt,n as Le,C as Mt}from"./index-CdsKtFEJ.js";import{_ as Kt}from"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import{u as Vt}from"./people-page-header-Mupn-U_b.js";const At=10,We=80,Gt=2880*60*60,Ue=.1;function Ye(a,i,f={}){if(!i)return{items:[],total:0,hasMore:!1};const y=new Map(a.nodes.map(h=>[h.key,h])),t=a.edges.flatMap(h=>{if(h.sourceKey!==i&&h.targetKey!==i)return[];const w=h.sourceKey===i?h.targetKey:h.sourceKey,V=y.get(w);return V?[{node:V,edge:h,connectionScore:0}]:[]}),C=t.reduce((h,w)=>Math.max(h,w.edge.lastInteractionTs??0),0),M=new Map(t.map(h=>[h,Me(h.edge,C)]));for(const h of t)h.connectionScore=Ft(M.get(h)??0);t.sort((h,w)=>$t(h,w,C));const K=f.collapsedLimit??At;return{items:f.expanded?t:t.slice(0,K),total:t.length,hasMore:!f.expanded&&t.length>K}}function zt(a,i,f={}){const y=new Set;if(!i||!a.nodes.some(C=>C.key===i))return y;y.add(i);const t=Ye(a,i,{collapsedLimit:f.limit??We});for(const C of t.items)y.add(C.node.key);return y}function fo(a,i,f={}){if(!i||!a.nodes.some(t=>t.key===i))return a;const y=zt(a,i,f);return{nodes:a.nodes.filter(t=>y.has(t.key)),edges:a.edges.filter(t=>y.has(t.sourceKey)&&y.has(t.targetKey)),communities:a.communities}}function Ft(a){return a<=0?0:Math.max(1,Math.round(a))}function $t(a,i,f){const y=Me(i.edge,f),t=Me(a.edge,f);if(y!==t)return y-t;if(i.edge.weight!==a.edge.weight)return i.edge.weight-a.edge.weight;const C=i.edge.lastInteractionTs??0,M=a.edge.lastInteractionTs??0;return C!==M?C-M:a.node.rank!==i.node.rank?a.node.rank-i.node.rank:a.node.key.localeCompare(i.node.key)}function Me(a,i){if(!a.lastInteractionTs||i<=0)return a.weight;const f=Math.max(0,i-a.lastInteractionTs),y=Ue+(1-Ue)*Math.pow(.5,f/Gt);return a.weight*y}function qe(a){return a.selectedKey&&a.selectedKey===a.loadingNeighborhoodKey?a.currentCanvasSelectedKey:a.selectedKey}function Ot(a){return a.selectedKey?a.isNeighborhoodMode?a.selectedKey!==a.neighborhoodContactKey:!0:!1}function Dt(a){return a.neighborhoodTask?.status==="running"?a.neighborhoodTask:a.graphTask?.status==="running"?a.graphTask:a.isNeighborhoodMode&&a.neighborhoodTask?a.neighborhoodTask:a.graphTask??a.neighborhoodTask??null}function jt(a){return a.nextTaskStatus==="running"?{type:"continue-polling"}:a.previousTaskStatus==="running"&&a.nextTaskStatus==="succeeded"&&a.neighborhoodContactKey?{type:"refresh-neighborhood",key:a.neighborhoodContactKey}:{type:"stop-polling"}}function Bt(a){return a.loadError?a.loadError:a.isTaskFailed&&a.statusText?a.statusText:a.emptyText}const Ht=new RegExp("\\p{Script=Han}","u");function Qe(a){const i=a?.trim()??"";if(!i)return"*";const f=Array.from(i),y=[...f].reverse().find(t=>Ht.test(t));return y?`**${y}`:f.length===1?"*":f.length===2?`${f[0]}***`:`${f[0]}***${f.at(-1)}`}function Ut(){return"*"}const qt={class:"flex min-h-0 flex-1 overflow-hidden bg-white text-gray-900 dark:bg-page-dark dark:text-gray-100"},Qt={class:"relative min-h-0 min-w-0 flex-1 overflow-hidden bg-[#05070d] dark:bg-page-dark"},Wt={class:"absolute left-4 top-4 z-20 flex max-w-[calc(100%-2rem)] flex-wrap items-center gap-2"},Yt={class:"relative w-28 max-w-full sm:w-32 lg:w-36"},Zt={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-2xl shadow-black/25 backdrop-blur-xl scrollbar-thin dark:border-white/10 dark:bg-page-dark/95"},Jt={class:"px-2 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Xt={class:"space-y-1"},ea=["disabled","onClick"],ta={class:"min-w-0 flex-1"},aa={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"},oa={class:"block truncate text-[11px] text-gray-500 dark:text-gray-400"},na={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"},sa={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-2xl shadow-sky-950/30 backdrop-blur-md animate-fade-in"},ra={key:4,class:"absolute inset-0 flex items-center justify-center text-sm font-medium text-gray-400"},la={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-2xl shadow-black/20 backdrop-blur-md md:inset-x-auto md:bottom-4 md:right-4 md:top-4 md:max-h-none md:w-[360px]"},ia={key:0,class:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4 pt-5"},ca={class:"shrink-0 space-y-2.5"},ua={class:"flex items-center gap-3 pr-8"},da={class:"min-w-0 flex-1"},ha={class:"flex min-w-0 items-center gap-1.5"},pa={class:"truncate text-base font-bold text-gray-900 dark:text-white"},va={class:"truncate text-xs text-gray-500 dark:text-gray-400"},ga={class:"grid grid-cols-3 gap-1 text-xs"},fa={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"},ma={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},ya={class:"flex min-w-0 items-baseline gap-0.5"},ba={class:"font-mono text-sm font-bold leading-4 text-sky-600 dark:text-sky-400"},ka={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"},xa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},wa={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"},Sa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ta={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"},Ca={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ra={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Na={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"},Ia={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Pa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ea={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"},La={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ma={class:"block truncate text-[11px] font-semibold leading-4 text-gray-900 dark:text-white"},Ka={class:"flex min-h-0 flex-1 flex-col gap-2"},Va={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 shadow-sm dark:border-white/5 dark:bg-white/2"},Aa={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},Ga={class:"flex min-w-0 items-center gap-2"},za={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Fa={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},$a={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},Oa={key:0,class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},Da=["onClick"],ja={class:"min-w-0 flex-1"},Ba={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"},Ha={class:"flex w-14 shrink-0 justify-end"},Ua={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},qa={key:1,class:"py-4 text-center text-xs text-gray-400 dark:text-gray-500"},Qa={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 shadow-sm dark:border-white/5 dark:bg-white/2"},Wa={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},Ya={class:"flex min-w-0 items-center gap-2"},Za={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Ja={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},Xa={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},eo={class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},to={class:"flex min-w-0 items-center gap-2"},ao={class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/45 shadow-sm dark:bg-white/5"},oo={class:"truncate font-semibold leading-4 text-gray-700 dark:text-gray-200"},no={class:"flex w-14 shrink-0 justify-end"},so={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},ro=1400,lo=392,io=St({__name:"index",setup(a){const i={nodes:[],edges:[],communities:[]},f=He(()=>Be(()=>import("./RelationshipGalaxyThreeCanvas-DfJ2x8y9.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))),y=He(()=>Be(()=>import("./RelationshipGalaxyCanvas-D2owKyDp.js").then(e=>e.as),__vite__mapDeps([10,5,3,1,4,6,2]))),{t,locale:C}=Pt(),M=Et(),K=Lt(),G=g("1y"),h=g("panorama"),w=g(""),V=g(""),$=g(!1),ae=g(""),p=g(null),A=g(!1),O=g(null),R=g(null),de=g(!1),he=g(!1),U=g(!1),Ke=g(!1),z=g(null),_=g(null),E=g(!1),oe=g("3d"),q=g(""),Q=g(0),D=g(0),S=g(null),ne=g(null);let se=null,pe=null,W=null,Y=null,re=null,ve=!1;const Ze=v(()=>new Intl.NumberFormat(C.value)),Je=v(()=>Mt.map(e=>({label:t(`relationships.timeRange.${e}`),value:e}))),Xe=v(()=>[{label:t("relationships.graphScope.panorama"),value:"panorama"},{label:t("relationships.graphScope.close"),value:"close"},{label:t("relationships.graphScope.friends"),value:"friends"}]),N=v(()=>R.value?.graph??O.value?.graph??i),ge=v(()=>!!R.value),fe=v(()=>N.value.nodes.length>0),Z=v(()=>Dt({graphTask:O.value?.task??null,neighborhoodTask:R.value?.task??null,isNeighborhoodMode:ge.value})),J=v(()=>Z.value?.status==="running"),Ve=v(()=>Z.value?.status==="failed"),et=v(()=>O.value?.cache.status??R.value?.cache.status),Ae=v(()=>O.value?.searchResults??[]),Ge=v(()=>w.value.trim().length>0),tt=v(()=>Ge.value&&w.value.trim()===ae.value&&$.value&&Ae.value.length>0),at=v(()=>(de.value||J.value)&&!fe.value),ot=v(()=>J.value&&fe.value),b=v(()=>p.value?N.value.nodes.find(e=>e.key===p.value)??R.value?.contact??null:null),ze=v(()=>A.value&&!!b.value),me=v(()=>ze.value&&Ke.value?lo:0),nt=v(()=>Ot({selectedKey:p.value,isNeighborhoodMode:ge.value,neighborhoodContactKey:R.value?.contact?.key??null})),le=v(()=>Ye(N.value,p.value,{collapsedLimit:We})),ye=v(()=>({nodes:N.value.nodes.length,edges:N.value.edges.length,communities:N.value.communities.length})),be=v(()=>[...N.value.communities].sort((e,n)=>n.size-e.size).slice(0,8)),ke=v(()=>et.value==="stale"&&J.value?t("relationships.task.updating"):J.value?ut(Z.value):Ve.value?Z.value?.lastError||t("relationships.task.failed"):""),st=v(()=>Bt({loadError:q.value,isTaskFailed:Ve.value,statusText:ke.value,emptyText:t("relationships.empty")}));function x(e){return Ze.value.format(e)}function rt(e){return Math.round(e*100).toString()}function lt(){const e=le.value.items.length,n=le.value.total;return n<=e?x(n):`${x(e)} / ${x(n)}`}function it(e){return e?new Date(e*1e3).toLocaleDateString():t("relationships.detail.emptyValue")}function xe(e){return e.kind==="owner"?t("relationships.owner.avatarText"):E.value?Ut():(e.displayName||e.platformId||"?").slice(0,1)}function we(e){return e.kind==="owner"?e.avatar:E.value?null:e.avatar}function j(e){if(e.kind==="owner")return t("relationships.owner.me");const n=e.displayName||e.platformId||e.key;return E.value?Qe(n):n}function ct(e){const n=e.platformId||e.key;return E.value?Qe(n):n}function Fe(e){return e.kind==="owner"?t("relationships.owner.type"):e.friendSource==="manual"?t("relationships.pool.manualFriend"):e.pool==="friend"?t("relationships.pool.friend"):t("relationships.pool.nonFriend")}function ut(e){return t("relationships.task.running",{current:x(e?.processedSessions??0),total:x(e?.totalSessions??0)})}function $e(e){const n=Oe(e,h.value);se&&se!==n&&ie();const d=O.value;O.value=d&&se===n?{...e,graph:d.graph}:e,se=n}function dt(e){const n=Oe(e,`neighborhood:${e.contact?.key??""}`),d=R.value;R.value=d&&pe===n?{...e,graph:d.graph}:e,pe=n}function B(){R.value=null,pe=null}function Oe(e,n){const d=e.graph;let s=2166136261;s=T(s,n),s=T(s,e.algorithmVersion),s=T(s,e.cache.signature??""),s=I(s,e.timeRange.startTs??0),s=T(s,e.timeRange.preset);for(const c of d.nodes)s=T(s,c.key),s=T(s,c.pool),s=T(s,c.friendSource??""),s=I(s,c.rank),s=I(s,Math.round(c.score*1e6)),s=I(s,c.labelVisibility),s=I(s,Math.round(c.x*100)),s=I(s,Math.round(c.y*100)),s=I(s,Math.round(c.size*100));for(const c of d.edges)s=T(s,c.id),s=T(s,c.sourceKey),s=T(s,c.targetKey),s=I(s,Math.round(c.weight*1e6)),s=I(s,c.visibility);for(const c of d.communities)s=T(s,c.id),s=I(s,c.size),s=T(s,c.color);return`${n}:${d.nodes.length}:${d.edges.length}:${d.communities.length}:${s>>>0}`}function T(e,n){for(let d=0;d<n.length;d+=1)e^=n.charCodeAt(d),e=Math.imul(e,16777619);return e}function I(e,n){return T(e,String(n))}function _e(){W&&(clearInterval(W),W=null)}function H(){D.value+=1,U.value=!1,z.value=null}function De(){p.value||ne.value||(ne.value=S.value?.captureView()??null)}function ie(){ne.value=null}function ht(){const e=ne.value;ie(),F(()=>{e&&S.value?.restoreView(e)===!0||S.value?.fitView(),F(()=>{ve=!1})})}function Se(e){if(e?.status==="running"){W||(W=setInterval(()=>{X({silent:!0,preserveNeighborhood:!0})},ro));return}_e()}async function X(e={}){const n=Q.value+1;Q.value=n;const d=Z.value?.status??null,s=e.preserveNeighborhood?R.value?.contact?.key??null:null;e.silent||(de.value=!0),e.preserveNeighborhood||(H(),B()),q.value="";try{const c=await M.getPeopleRelationships({acceptStale:!0,timeRangePreset:G.value,graphScope:h.value,query:V.value.trim()||void 0});if(n!==Q.value)return;$e(c),ae.value=V.value.trim(),p.value&&!N.value.nodes.some(Re=>Re.key===p.value)&&(p.value=null,_.value=null,A.value=!1);const l=jt({previousTaskStatus:d,nextTaskStatus:c.task?.status??null,neighborhoodContactKey:s});Se(c.task),l.type==="refresh-neighborhood"&&ce(l.key)}catch(c){if(n!==Q.value)return;q.value=String(c),K.fail(t("relationships.toast.loadFailed"),{description:String(c)}),_e()}finally{n===Q.value&&(de.value=!1)}}async function pt(){he.value=!0,q.value="";try{const e=await M.recomputePeopleRelationships({timeRangePreset:G.value,graphScope:h.value,query:V.value.trim()||void 0});$e(e),ae.value=V.value.trim(),H(),B(),p.value=null,_.value=null,A.value=!1,Se(e.task),K.success(t("relationships.toast.recomputeStarted"))}catch(e){K.fail(t("relationships.toast.recomputeFailed"),{description:String(e)})}finally{he.value=!1}}const vt=v(()=>({title:t("layout.relationships"),description:t("relationships.subtitle"),icon:"i-lucide-git-fork",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm",action:{label:t("relationships.actions.recompute"),icon:"i-lucide-refresh-cw",loading:he.value,disabled:J.value,class:"border border-sky-100 hover:border-sky-200 dark:border-sky-950/30 dark:hover:border-sky-900/50",onClick:pt},stats:[{id:"nodes",label:t("relationships.stats.nodes"),value:x(ye.value.nodes)},{id:"edges",label:t("relationships.stats.edges"),value:x(ye.value.edges)},{id:"communities",label:t("relationships.stats.communities"),value:x(ye.value.communities),dividerBefore:!0}]}));Vt(vt);async function ce(e){const n=D.value+1;D.value=n,U.value=!0,z.value=e,q.value="";try{const d=await M.getPeopleRelationshipNeighborhood(e,{acceptStale:!0,timeRangePreset:G.value});if(n!==D.value)return;dt(d),p.value=d.contact?.key??e,_.value=p.value,Se(d.task),await F(),S.value?.fitView()}catch(d){if(n!==D.value)return;K.fail(t("relationships.toast.neighborhoodFailed"),{description:String(d)})}finally{n===D.value&&(U.value=!1,z.value=null)}}async function gt(){p.value&&await ce(p.value)}async function ft(e){if(De(),$.value=!1,e.inCoreGraph||(z.value=e.key),p.value=e.key,A.value=!0,_.value=qe({selectedKey:p.value,loadingNeighborhoodKey:z.value,currentCanvasSelectedKey:_.value}),!e.inCoreGraph){await ce(e.key);return}H(),B(),await F(),S.value?.focusNode(e.key)}async function Te(e){De();const n=R.value?.contact?.key!==e.key;if(n&&(z.value=e.key),p.value=e.key,A.value=!0,_.value=qe({selectedKey:p.value,loadingNeighborhoodKey:z.value,currentCanvasSelectedKey:_.value}),await F(),S.value?.focusNode(e.key),n){await ce(e.key);return}_.value=p.value}function mt(){oe.value==="3d"&&(oe.value="2d",K.warn(t("relationships.toast.threeUnavailable")))}function je(){ve=!0,H(),B(),p.value=null,_.value=null,A.value=!1,ht()}function yt(){je()}function bt(){w.value="",ae.value="",$.value=!1}function kt(){S.value?.fitView()}function Ce(){Ke.value=re?.matches??!1}return ee(G,()=>{ie(),p.value=null,_.value=null,A.value=!1,H(),B(),X()}),ee(h,()=>{ie(),p.value=null,_.value=null,A.value=!1,H(),B(),X()}),ee(w,e=>{Y&&clearTimeout(Y),$.value=e.trim().length>0,Y=setTimeout(()=>{V.value=e,X({silent:!0,preserveNeighborhood:!0})},260)}),ee(oe,async()=>{if(await F(),p.value){S.value?.focusNode(p.value);return}S.value?.fitView()}),ee(me,async()=>{if(await F(),!ve){if(p.value){S.value?.focusNode(p.value);return}S.value?.fitView()}}),Tt(()=>{typeof window<"u"&&(re=window.matchMedia("(min-width: 768px)"),Ce(),re.addEventListener("change",Ce)),X()}),Ct(()=>{re?.removeEventListener("change",Ce),_e(),Y&&clearTimeout(Y)}),(e,n)=>{const d=xt,s=wt,c=_t;return m(),k("div",qt,[o("main",Qt,[oe.value==="3d"?(m(),te(u(f),{key:0,ref_key:"canvasRef",ref:S,graph:N.value,"selected-key":_.value,"privacy-mode":E.value,"safe-inset-right":me.value,label:u(t)("relationships.canvas.label3d"),"owner-label":u(t)("relationships.owner.me"),onFallback:mt,onSelectNode:Te},null,8,["graph","selected-key","privacy-mode","safe-inset-right","label","owner-label"])):(m(),te(u(y),{key:1,ref_key:"canvasRef",ref:S,graph:N.value,"selected-key":_.value,"privacy-mode":E.value,"safe-inset-right":me.value,label:u(t)("relationships.canvas.label"),"owner-label":u(t)("relationships.owner.me"),onSelectNode:Te},null,8,["graph","selected-key","privacy-mode","safe-inset-right","label","owner-label"])),o("div",Wt,[P(d,{modelValue:G.value,"onUpdate:modelValue":n[0]||(n[0]=l=>G.value=l),items:Je.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),P(d,{modelValue:h.value,"onUpdate:modelValue":n[1]||(n[1]=l=>h.value=l),items:Xe.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),o("div",Yt,[P(c,{modelValue:w.value,"onUpdate:modelValue":n[2]||(n[2]=l=>w.value=l),icon:"i-lucide-search",placeholder:u(t)("relationships.search"),size:"sm",class:"w-full",onFocus:n[3]||(n[3]=l=>$.value=Ge.value),onKeydown:n[4]||(n[4]=Nt(l=>$.value=!1,["esc"]))},Rt({_:2},[w.value?{name:"trailing",fn:ue(()=>[P(s,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":u(t)("relationships.actions.clearSearch"),onClick:bt},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),tt.value?(m(),k("div",Zt,[o("div",Jt,r(u(t)("relationships.searchResults.title")),1),o("div",Xt,[(m(!0),k(Ne,null,Ie(Ae.value,l=>(m(),k("button",{key:l.key,type:"button",class:Pe(["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",p.value===l.key?"bg-sky-50 dark:bg-sky-500/10":""]),disabled:U.value,onClick:Re=>ft(l)},[P(Le,{src:we(l),alt:j(l),text:xe(l),"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",ta,[o("span",aa,r(j(l)),1),o("span",oa,r(Fe(l))+" · #"+r(l.rank),1)]),l.inCoreGraph?L("",!0):(m(),k("span",na,r(u(t)("relationships.searchResults.offCore")),1))],10,ea))),128))])])):L("",!0)]),P(s,{icon:"i-lucide-scan-line",color:"neutral",variant:"soft",size:"xs","aria-label":u(t)("relationships.actions.fitView"),onClick:kt},null,8,["aria-label"]),P(s,{icon:E.value?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"soft",size:"xs",onClick:n[5]||(n[5]=l=>E.value=!E.value)},{default:ue(()=>[Ee(r(u(t)("relationships.privacy")),1)]),_:1},8,["icon"]),ge.value?(m(),te(s,{key:0,icon:"i-lucide-undo-2",color:"neutral",variant:"soft",size:"xs",onClick:je},{default:ue(()=>[Ee(r(u(t)("relationships.actions.backToPanorama")),1)]),_:1})):L("",!0)]),ot.value?(m(),k("div",sa,[n[6]||(n[6]=o("span",{class:"i-lucide-refresh-cw h-3.5 w-3.5 animate-spin text-sky-400"},null,-1)),o("span",null,r(ke.value),1)])):L("",!0),at.value?(m(),te(u(Kt),{key:3,variant:"overlay",text:ke.value||u(t)("relationships.task.updating")},null,8,["text"])):fe.value?L("",!0):(m(),k("div",ra,r(st.value),1)),ze.value?(m(),k("aside",la,[P(s,{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":u(t)("relationships.actions.closeDetail"),onClick:yt},null,8,["aria-label"]),b.value?(m(),k("div",ia,[o("div",ca,[o("div",ua,[P(Le,{src:we(b.value),alt:j(b.value),text:xe(b.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",da,[o("div",ha,[o("p",pa,r(j(b.value)),1),o("span",{class:Pe(["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",b.value.rank<=3?"text-amber-600 dark:text-amber-300":""])}," #"+r(b.value.rank),3)]),o("p",va,r(b.value.platform)+" · "+r(ct(b.value)),1)])]),nt.value?(m(),te(s,{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:gt},{default:ue(()=>[Ee(r(u(t)("relationships.actions.focusConnections")),1)]),_:1},8,["loading"])):L("",!0),o("div",ga,[o("div",fa,[o("p",ma,r(u(t)("relationships.detail.score")),1),o("div",ya,[o("p",ba,r(rt(b.value.score)),1),n[7]||(n[7]=o("span",{class:"text-[9px] leading-3 text-gray-400"},"/100",-1))])]),o("div",ka,[o("p",xa,r(u(t)("relationships.detail.type")),1),o("span",{class:Pe(["inline-flex max-w-full items-center truncate text-[10px] font-semibold leading-4",b.value.pool==="friend"?"text-sky-700 dark:text-sky-300":"text-amber-700 dark:text-amber-300"])},r(Fe(b.value)),3)]),o("div",wa,[o("p",_a,r(u(t)("relationships.detail.privateMessages")),1),o("span",Sa,r(x(b.value.privateMessageCount)),1)]),o("div",Ta,[o("p",Ca,r(u(t)("relationships.detail.groupMessages")),1),o("span",Ra,r(x(b.value.groupMessageCount)),1)]),o("div",Na,[o("p",Ia,r(u(t)("relationships.detail.commonGroups")),1),o("span",Pa,r(x(b.value.commonGroupCount)),1)]),o("div",Ea,[o("p",La,r(u(t)("relationships.detail.lastInteraction")),1),o("span",Ma,r(it(b.value.lastInteractionTs)),1)])])]),o("div",Ka,[o("section",Va,[o("div",Aa,[o("div",Ga,[o("h3",za,r(u(t)("relationships.connections.title")),1),o("span",Fa,r(lt()),1)]),o("span",$a,r(u(t)("relationships.connections.connectionScore")),1)]),le.value.items.length>0?(m(),k("div",Oa,[(m(!0),k(Ne,null,Ie(le.value.items,l=>(m(),k("button",{key:l.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:Re=>Te(l.node)},[P(Le,{src:we(l.node),alt:j(l.node),text:xe(l.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",ja,[o("span",Ba,r(j(l.node)),1)]),o("span",Ha,[o("span",Ua,r(x(l.connectionScore)),1)])],8,Da))),128))])):(m(),k("p",qa,r(u(t)("relationships.connections.empty")),1))]),be.value.length>0?(m(),k("section",Qa,[o("div",Wa,[o("div",Ya,[o("h2",Za,r(u(t)("relationships.stats.communities")),1),o("span",Ja,r(x(be.value.length)),1)]),o("span",Xa,r(u(t)("relationships.stats.members")),1)]),o("div",eo,[(m(!0),k(Ne,null,Ie(be.value,l=>(m(),k("div",{key:l.id,class:"flex h-9 items-center justify-between gap-2 rounded-lg px-2 py-0 text-[13px] leading-4"},[o("div",to,[o("span",ao,[o("span",{class:"h-2 w-2 rounded-full shadow-sm",style:It({backgroundColor:l.color})},null,4)]),o("span",oo,r(l.label),1)]),o("span",no,[o("span",so,r(x(l.size)),1)])]))),128))])])):L("",!0)])])):L("",!0)])):L("",!0)])])}}}),mo=Object.freeze(Object.defineProperty({__proto__:null,default:io},Symbol.toStringTag,{value:"Module"}));export{zt as a,fo as b,mo as i,Qe as m};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RelationshipGalaxyThreeCanvas-B_w_P4ob.js","assets/vendor-reka-ui-CzM4kDQ7.js","assets/relationship-galaxy-viewport-Cwfa51ER.js","assets/index-CqUuHQBQ.js","assets/vendor-nuxt-ui-DaLxYaC4.js","assets/vendor-snapdom-XnBoh1gd.js","assets/index-B4l3rHie.css","assets/LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js","assets/people-page-header-Mupn-U_b.js","assets/RelationshipGalaxyThreeCanvas-BluPHjCR.css","assets/RelationshipGalaxyCanvas-CORMD7vL.js"])))=>i.map(i=>d[i]);
2
+ import{_ as Be}from"./vendor-snapdom-XnBoh1gd.js";import{h as xt,c as wt,d as _t}from"./vendor-nuxt-ui-DaLxYaC4.js";import{p as St,w as ee,d as Tt,z as Ct,P as k,a5 as o,H as te,u,L as P,au as Rt,K as ue,bz as Nt,T as r,Z as Ne,a3 as Ie,U as L,Q as Pe,b as g,h as v,n as F,G as m,R as Ee,a0 as It,bA as He}from"./vendor-reka-ui-CzM4kDQ7.js";import{u as Pt,m as Et,j as Lt,n as Le,C as Mt}from"./index-CqUuHQBQ.js";import{_ as Kt}from"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import{u as Vt}from"./people-page-header-Mupn-U_b.js";const At=10,We=80,Gt=2880*60*60,Ue=.1;function Ye(a,i,f={}){if(!i)return{items:[],total:0,hasMore:!1};const y=new Map(a.nodes.map(h=>[h.key,h])),t=a.edges.flatMap(h=>{if(h.sourceKey!==i&&h.targetKey!==i)return[];const w=h.sourceKey===i?h.targetKey:h.sourceKey,V=y.get(w);return V?[{node:V,edge:h,connectionScore:0}]:[]}),C=t.reduce((h,w)=>Math.max(h,w.edge.lastInteractionTs??0),0),M=new Map(t.map(h=>[h,Me(h.edge,C)]));for(const h of t)h.connectionScore=Ft(M.get(h)??0);t.sort((h,w)=>$t(h,w,C));const K=f.collapsedLimit??At;return{items:f.expanded?t:t.slice(0,K),total:t.length,hasMore:!f.expanded&&t.length>K}}function zt(a,i,f={}){const y=new Set;if(!i||!a.nodes.some(C=>C.key===i))return y;y.add(i);const t=Ye(a,i,{collapsedLimit:f.limit??We});for(const C of t.items)y.add(C.node.key);return y}function fo(a,i,f={}){if(!i||!a.nodes.some(t=>t.key===i))return a;const y=zt(a,i,f);return{nodes:a.nodes.filter(t=>y.has(t.key)),edges:a.edges.filter(t=>y.has(t.sourceKey)&&y.has(t.targetKey)),communities:a.communities}}function Ft(a){return a<=0?0:Math.max(1,Math.round(a))}function $t(a,i,f){const y=Me(i.edge,f),t=Me(a.edge,f);if(y!==t)return y-t;if(i.edge.weight!==a.edge.weight)return i.edge.weight-a.edge.weight;const C=i.edge.lastInteractionTs??0,M=a.edge.lastInteractionTs??0;return C!==M?C-M:a.node.rank!==i.node.rank?a.node.rank-i.node.rank:a.node.key.localeCompare(i.node.key)}function Me(a,i){if(!a.lastInteractionTs||i<=0)return a.weight;const f=Math.max(0,i-a.lastInteractionTs),y=Ue+(1-Ue)*Math.pow(.5,f/Gt);return a.weight*y}function qe(a){return a.selectedKey&&a.selectedKey===a.loadingNeighborhoodKey?a.currentCanvasSelectedKey:a.selectedKey}function Ot(a){return a.selectedKey?a.isNeighborhoodMode?a.selectedKey!==a.neighborhoodContactKey:!0:!1}function Dt(a){return a.neighborhoodTask?.status==="running"?a.neighborhoodTask:a.graphTask?.status==="running"?a.graphTask:a.isNeighborhoodMode&&a.neighborhoodTask?a.neighborhoodTask:a.graphTask??a.neighborhoodTask??null}function jt(a){return a.nextTaskStatus==="running"?{type:"continue-polling"}:a.previousTaskStatus==="running"&&a.nextTaskStatus==="succeeded"&&a.neighborhoodContactKey?{type:"refresh-neighborhood",key:a.neighborhoodContactKey}:{type:"stop-polling"}}function Bt(a){return a.loadError?a.loadError:a.isTaskFailed&&a.statusText?a.statusText:a.emptyText}const Ht=new RegExp("\\p{Script=Han}","u");function Qe(a){const i=a?.trim()??"";if(!i)return"*";const f=Array.from(i),y=[...f].reverse().find(t=>Ht.test(t));return y?`**${y}`:f.length===1?"*":f.length===2?`${f[0]}***`:`${f[0]}***${f.at(-1)}`}function Ut(){return"*"}const qt={class:"flex min-h-0 flex-1 overflow-hidden bg-white text-gray-900 dark:bg-page-dark dark:text-gray-100"},Qt={class:"relative min-h-0 min-w-0 flex-1 overflow-hidden bg-[#05070d] dark:bg-page-dark"},Wt={class:"absolute left-4 top-4 z-20 flex max-w-[calc(100%-2rem)] flex-wrap items-center gap-2"},Yt={class:"relative w-28 max-w-full sm:w-32 lg:w-36"},Zt={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-2xl shadow-black/25 backdrop-blur-xl scrollbar-thin dark:border-white/10 dark:bg-page-dark/95"},Jt={class:"px-2 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Xt={class:"space-y-1"},ea=["disabled","onClick"],ta={class:"min-w-0 flex-1"},aa={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"},oa={class:"block truncate text-[11px] text-gray-500 dark:text-gray-400"},na={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"},sa={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-2xl shadow-sky-950/30 backdrop-blur-md animate-fade-in"},ra={key:4,class:"absolute inset-0 flex items-center justify-center text-sm font-medium text-gray-400"},la={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-2xl shadow-black/20 backdrop-blur-md md:inset-x-auto md:bottom-4 md:right-4 md:top-4 md:max-h-none md:w-[360px]"},ia={key:0,class:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4 pt-5"},ca={class:"shrink-0 space-y-2.5"},ua={class:"flex items-center gap-3 pr-8"},da={class:"min-w-0 flex-1"},ha={class:"flex min-w-0 items-center gap-1.5"},pa={class:"truncate text-base font-bold text-gray-900 dark:text-white"},va={class:"truncate text-xs text-gray-500 dark:text-gray-400"},ga={class:"grid grid-cols-3 gap-1 text-xs"},fa={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"},ma={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},ya={class:"flex min-w-0 items-baseline gap-0.5"},ba={class:"font-mono text-sm font-bold leading-4 text-sky-600 dark:text-sky-400"},ka={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"},xa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},wa={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"},Sa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ta={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"},Ca={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ra={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Na={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"},Ia={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Pa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ea={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"},La={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ma={class:"block truncate text-[11px] font-semibold leading-4 text-gray-900 dark:text-white"},Ka={class:"flex min-h-0 flex-1 flex-col gap-2"},Va={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 shadow-sm dark:border-white/5 dark:bg-white/2"},Aa={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},Ga={class:"flex min-w-0 items-center gap-2"},za={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Fa={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},$a={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},Oa={key:0,class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},Da=["onClick"],ja={class:"min-w-0 flex-1"},Ba={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"},Ha={class:"flex w-14 shrink-0 justify-end"},Ua={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},qa={key:1,class:"py-4 text-center text-xs text-gray-400 dark:text-gray-500"},Qa={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 shadow-sm dark:border-white/5 dark:bg-white/2"},Wa={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},Ya={class:"flex min-w-0 items-center gap-2"},Za={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},Ja={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},Xa={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},eo={class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},to={class:"flex min-w-0 items-center gap-2"},ao={class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/45 shadow-sm dark:bg-white/5"},oo={class:"truncate font-semibold leading-4 text-gray-700 dark:text-gray-200"},no={class:"flex w-14 shrink-0 justify-end"},so={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},ro=1400,lo=392,io=St({__name:"index",setup(a){const i={nodes:[],edges:[],communities:[]},f=He(()=>Be(()=>import("./RelationshipGalaxyThreeCanvas-B_w_P4ob.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))),y=He(()=>Be(()=>import("./RelationshipGalaxyCanvas-CORMD7vL.js").then(e=>e.as),__vite__mapDeps([10,5,3,1,4,6,2]))),{t,locale:C}=Pt(),M=Et(),K=Lt(),G=g("1y"),h=g("panorama"),w=g(""),V=g(""),$=g(!1),ae=g(""),p=g(null),A=g(!1),O=g(null),R=g(null),de=g(!1),he=g(!1),U=g(!1),Ke=g(!1),z=g(null),_=g(null),E=g(!1),oe=g("3d"),q=g(""),Q=g(0),D=g(0),S=g(null),ne=g(null);let se=null,pe=null,W=null,Y=null,re=null,ve=!1;const Ze=v(()=>new Intl.NumberFormat(C.value)),Je=v(()=>Mt.map(e=>({label:t(`relationships.timeRange.${e}`),value:e}))),Xe=v(()=>[{label:t("relationships.graphScope.panorama"),value:"panorama"},{label:t("relationships.graphScope.close"),value:"close"},{label:t("relationships.graphScope.friends"),value:"friends"}]),N=v(()=>R.value?.graph??O.value?.graph??i),ge=v(()=>!!R.value),fe=v(()=>N.value.nodes.length>0),Z=v(()=>Dt({graphTask:O.value?.task??null,neighborhoodTask:R.value?.task??null,isNeighborhoodMode:ge.value})),J=v(()=>Z.value?.status==="running"),Ve=v(()=>Z.value?.status==="failed"),et=v(()=>O.value?.cache.status??R.value?.cache.status),Ae=v(()=>O.value?.searchResults??[]),Ge=v(()=>w.value.trim().length>0),tt=v(()=>Ge.value&&w.value.trim()===ae.value&&$.value&&Ae.value.length>0),at=v(()=>(de.value||J.value)&&!fe.value),ot=v(()=>J.value&&fe.value),b=v(()=>p.value?N.value.nodes.find(e=>e.key===p.value)??R.value?.contact??null:null),ze=v(()=>A.value&&!!b.value),me=v(()=>ze.value&&Ke.value?lo:0),nt=v(()=>Ot({selectedKey:p.value,isNeighborhoodMode:ge.value,neighborhoodContactKey:R.value?.contact?.key??null})),le=v(()=>Ye(N.value,p.value,{collapsedLimit:We})),ye=v(()=>({nodes:N.value.nodes.length,edges:N.value.edges.length,communities:N.value.communities.length})),be=v(()=>[...N.value.communities].sort((e,n)=>n.size-e.size).slice(0,8)),ke=v(()=>et.value==="stale"&&J.value?t("relationships.task.updating"):J.value?ut(Z.value):Ve.value?Z.value?.lastError||t("relationships.task.failed"):""),st=v(()=>Bt({loadError:q.value,isTaskFailed:Ve.value,statusText:ke.value,emptyText:t("relationships.empty")}));function x(e){return Ze.value.format(e)}function rt(e){return Math.round(e*100).toString()}function lt(){const e=le.value.items.length,n=le.value.total;return n<=e?x(n):`${x(e)} / ${x(n)}`}function it(e){return e?new Date(e*1e3).toLocaleDateString():t("relationships.detail.emptyValue")}function xe(e){return e.kind==="owner"?t("relationships.owner.avatarText"):E.value?Ut():(e.displayName||e.platformId||"?").slice(0,1)}function we(e){return e.kind==="owner"?e.avatar:E.value?null:e.avatar}function j(e){if(e.kind==="owner")return t("relationships.owner.me");const n=e.displayName||e.platformId||e.key;return E.value?Qe(n):n}function ct(e){const n=e.platformId||e.key;return E.value?Qe(n):n}function Fe(e){return e.kind==="owner"?t("relationships.owner.type"):e.friendSource==="manual"?t("relationships.pool.manualFriend"):e.pool==="friend"?t("relationships.pool.friend"):t("relationships.pool.nonFriend")}function ut(e){return t("relationships.task.running",{current:x(e?.processedSessions??0),total:x(e?.totalSessions??0)})}function $e(e){const n=Oe(e,h.value);se&&se!==n&&ie();const d=O.value;O.value=d&&se===n?{...e,graph:d.graph}:e,se=n}function dt(e){const n=Oe(e,`neighborhood:${e.contact?.key??""}`),d=R.value;R.value=d&&pe===n?{...e,graph:d.graph}:e,pe=n}function B(){R.value=null,pe=null}function Oe(e,n){const d=e.graph;let s=2166136261;s=T(s,n),s=T(s,e.algorithmVersion),s=T(s,e.cache.signature??""),s=I(s,e.timeRange.startTs??0),s=T(s,e.timeRange.preset);for(const c of d.nodes)s=T(s,c.key),s=T(s,c.pool),s=T(s,c.friendSource??""),s=I(s,c.rank),s=I(s,Math.round(c.score*1e6)),s=I(s,c.labelVisibility),s=I(s,Math.round(c.x*100)),s=I(s,Math.round(c.y*100)),s=I(s,Math.round(c.size*100));for(const c of d.edges)s=T(s,c.id),s=T(s,c.sourceKey),s=T(s,c.targetKey),s=I(s,Math.round(c.weight*1e6)),s=I(s,c.visibility);for(const c of d.communities)s=T(s,c.id),s=I(s,c.size),s=T(s,c.color);return`${n}:${d.nodes.length}:${d.edges.length}:${d.communities.length}:${s>>>0}`}function T(e,n){for(let d=0;d<n.length;d+=1)e^=n.charCodeAt(d),e=Math.imul(e,16777619);return e}function I(e,n){return T(e,String(n))}function _e(){W&&(clearInterval(W),W=null)}function H(){D.value+=1,U.value=!1,z.value=null}function De(){p.value||ne.value||(ne.value=S.value?.captureView()??null)}function ie(){ne.value=null}function ht(){const e=ne.value;ie(),F(()=>{e&&S.value?.restoreView(e)===!0||S.value?.fitView(),F(()=>{ve=!1})})}function Se(e){if(e?.status==="running"){W||(W=setInterval(()=>{X({silent:!0,preserveNeighborhood:!0})},ro));return}_e()}async function X(e={}){const n=Q.value+1;Q.value=n;const d=Z.value?.status??null,s=e.preserveNeighborhood?R.value?.contact?.key??null:null;e.silent||(de.value=!0),e.preserveNeighborhood||(H(),B()),q.value="";try{const c=await M.getPeopleRelationships({acceptStale:!0,timeRangePreset:G.value,graphScope:h.value,query:V.value.trim()||void 0});if(n!==Q.value)return;$e(c),ae.value=V.value.trim(),p.value&&!N.value.nodes.some(Re=>Re.key===p.value)&&(p.value=null,_.value=null,A.value=!1);const l=jt({previousTaskStatus:d,nextTaskStatus:c.task?.status??null,neighborhoodContactKey:s});Se(c.task),l.type==="refresh-neighborhood"&&ce(l.key)}catch(c){if(n!==Q.value)return;q.value=String(c),K.fail(t("relationships.toast.loadFailed"),{description:String(c)}),_e()}finally{n===Q.value&&(de.value=!1)}}async function pt(){he.value=!0,q.value="";try{const e=await M.recomputePeopleRelationships({timeRangePreset:G.value,graphScope:h.value,query:V.value.trim()||void 0});$e(e),ae.value=V.value.trim(),H(),B(),p.value=null,_.value=null,A.value=!1,Se(e.task),K.success(t("relationships.toast.recomputeStarted"))}catch(e){K.fail(t("relationships.toast.recomputeFailed"),{description:String(e)})}finally{he.value=!1}}const vt=v(()=>({title:t("layout.relationships"),description:t("relationships.subtitle"),icon:"i-lucide-git-fork",iconClass:"bg-primary-600 text-white dark:bg-primary-500 dark:text-white shadow-sm",action:{label:t("relationships.actions.recompute"),icon:"i-lucide-refresh-cw",loading:he.value,disabled:J.value,class:"border border-sky-100 hover:border-sky-200 dark:border-sky-950/30 dark:hover:border-sky-900/50",onClick:pt},stats:[{id:"nodes",label:t("relationships.stats.nodes"),value:x(ye.value.nodes)},{id:"edges",label:t("relationships.stats.edges"),value:x(ye.value.edges)},{id:"communities",label:t("relationships.stats.communities"),value:x(ye.value.communities),dividerBefore:!0}]}));Vt(vt);async function ce(e){const n=D.value+1;D.value=n,U.value=!0,z.value=e,q.value="";try{const d=await M.getPeopleRelationshipNeighborhood(e,{acceptStale:!0,timeRangePreset:G.value});if(n!==D.value)return;dt(d),p.value=d.contact?.key??e,_.value=p.value,Se(d.task),await F(),S.value?.fitView()}catch(d){if(n!==D.value)return;K.fail(t("relationships.toast.neighborhoodFailed"),{description:String(d)})}finally{n===D.value&&(U.value=!1,z.value=null)}}async function gt(){p.value&&await ce(p.value)}async function ft(e){if(De(),$.value=!1,e.inCoreGraph||(z.value=e.key),p.value=e.key,A.value=!0,_.value=qe({selectedKey:p.value,loadingNeighborhoodKey:z.value,currentCanvasSelectedKey:_.value}),!e.inCoreGraph){await ce(e.key);return}H(),B(),await F(),S.value?.focusNode(e.key)}async function Te(e){De();const n=R.value?.contact?.key!==e.key;if(n&&(z.value=e.key),p.value=e.key,A.value=!0,_.value=qe({selectedKey:p.value,loadingNeighborhoodKey:z.value,currentCanvasSelectedKey:_.value}),await F(),S.value?.focusNode(e.key),n){await ce(e.key);return}_.value=p.value}function mt(){oe.value==="3d"&&(oe.value="2d",K.warn(t("relationships.toast.threeUnavailable")))}function je(){ve=!0,H(),B(),p.value=null,_.value=null,A.value=!1,ht()}function yt(){je()}function bt(){w.value="",ae.value="",$.value=!1}function kt(){S.value?.fitView()}function Ce(){Ke.value=re?.matches??!1}return ee(G,()=>{ie(),p.value=null,_.value=null,A.value=!1,H(),B(),X()}),ee(h,()=>{ie(),p.value=null,_.value=null,A.value=!1,H(),B(),X()}),ee(w,e=>{Y&&clearTimeout(Y),$.value=e.trim().length>0,Y=setTimeout(()=>{V.value=e,X({silent:!0,preserveNeighborhood:!0})},260)}),ee(oe,async()=>{if(await F(),p.value){S.value?.focusNode(p.value);return}S.value?.fitView()}),ee(me,async()=>{if(await F(),!ve){if(p.value){S.value?.focusNode(p.value);return}S.value?.fitView()}}),Tt(()=>{typeof window<"u"&&(re=window.matchMedia("(min-width: 768px)"),Ce(),re.addEventListener("change",Ce)),X()}),Ct(()=>{re?.removeEventListener("change",Ce),_e(),Y&&clearTimeout(Y)}),(e,n)=>{const d=xt,s=wt,c=_t;return m(),k("div",qt,[o("main",Qt,[oe.value==="3d"?(m(),te(u(f),{key:0,ref_key:"canvasRef",ref:S,graph:N.value,"selected-key":_.value,"privacy-mode":E.value,"safe-inset-right":me.value,label:u(t)("relationships.canvas.label3d"),"owner-label":u(t)("relationships.owner.me"),onFallback:mt,onSelectNode:Te},null,8,["graph","selected-key","privacy-mode","safe-inset-right","label","owner-label"])):(m(),te(u(y),{key:1,ref_key:"canvasRef",ref:S,graph:N.value,"selected-key":_.value,"privacy-mode":E.value,"safe-inset-right":me.value,label:u(t)("relationships.canvas.label"),"owner-label":u(t)("relationships.owner.me"),onSelectNode:Te},null,8,["graph","selected-key","privacy-mode","safe-inset-right","label","owner-label"])),o("div",Wt,[P(d,{modelValue:G.value,"onUpdate:modelValue":n[0]||(n[0]=l=>G.value=l),items:Je.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),P(d,{modelValue:h.value,"onUpdate:modelValue":n[1]||(n[1]=l=>h.value=l),items:Xe.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),o("div",Yt,[P(c,{modelValue:w.value,"onUpdate:modelValue":n[2]||(n[2]=l=>w.value=l),icon:"i-lucide-search",placeholder:u(t)("relationships.search"),size:"sm",class:"w-full",onFocus:n[3]||(n[3]=l=>$.value=Ge.value),onKeydown:n[4]||(n[4]=Nt(l=>$.value=!1,["esc"]))},Rt({_:2},[w.value?{name:"trailing",fn:ue(()=>[P(s,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":u(t)("relationships.actions.clearSearch"),onClick:bt},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),tt.value?(m(),k("div",Zt,[o("div",Jt,r(u(t)("relationships.searchResults.title")),1),o("div",Xt,[(m(!0),k(Ne,null,Ie(Ae.value,l=>(m(),k("button",{key:l.key,type:"button",class:Pe(["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",p.value===l.key?"bg-sky-50 dark:bg-sky-500/10":""]),disabled:U.value,onClick:Re=>ft(l)},[P(Le,{src:we(l),alt:j(l),text:xe(l),"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",ta,[o("span",aa,r(j(l)),1),o("span",oa,r(Fe(l))+" · #"+r(l.rank),1)]),l.inCoreGraph?L("",!0):(m(),k("span",na,r(u(t)("relationships.searchResults.offCore")),1))],10,ea))),128))])])):L("",!0)]),P(s,{icon:"i-lucide-scan-line",color:"neutral",variant:"soft",size:"xs","aria-label":u(t)("relationships.actions.fitView"),onClick:kt},null,8,["aria-label"]),P(s,{icon:E.value?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"soft",size:"xs",onClick:n[5]||(n[5]=l=>E.value=!E.value)},{default:ue(()=>[Ee(r(u(t)("relationships.privacy")),1)]),_:1},8,["icon"]),ge.value?(m(),te(s,{key:0,icon:"i-lucide-undo-2",color:"neutral",variant:"soft",size:"xs",onClick:je},{default:ue(()=>[Ee(r(u(t)("relationships.actions.backToPanorama")),1)]),_:1})):L("",!0)]),ot.value?(m(),k("div",sa,[n[6]||(n[6]=o("span",{class:"i-lucide-refresh-cw h-3.5 w-3.5 animate-spin text-sky-400"},null,-1)),o("span",null,r(ke.value),1)])):L("",!0),at.value?(m(),te(u(Kt),{key:3,variant:"overlay",text:ke.value||u(t)("relationships.task.updating")},null,8,["text"])):fe.value?L("",!0):(m(),k("div",ra,r(st.value),1)),ze.value?(m(),k("aside",la,[P(s,{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":u(t)("relationships.actions.closeDetail"),onClick:yt},null,8,["aria-label"]),b.value?(m(),k("div",ia,[o("div",ca,[o("div",ua,[P(Le,{src:we(b.value),alt:j(b.value),text:xe(b.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",da,[o("div",ha,[o("p",pa,r(j(b.value)),1),o("span",{class:Pe(["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",b.value.rank<=3?"text-amber-600 dark:text-amber-300":""])}," #"+r(b.value.rank),3)]),o("p",va,r(b.value.platform)+" · "+r(ct(b.value)),1)])]),nt.value?(m(),te(s,{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:gt},{default:ue(()=>[Ee(r(u(t)("relationships.actions.focusConnections")),1)]),_:1},8,["loading"])):L("",!0),o("div",ga,[o("div",fa,[o("p",ma,r(u(t)("relationships.detail.score")),1),o("div",ya,[o("p",ba,r(rt(b.value.score)),1),n[7]||(n[7]=o("span",{class:"text-[9px] leading-3 text-gray-400"},"/100",-1))])]),o("div",ka,[o("p",xa,r(u(t)("relationships.detail.type")),1),o("span",{class:Pe(["inline-flex max-w-full items-center truncate text-[10px] font-semibold leading-4",b.value.pool==="friend"?"text-sky-700 dark:text-sky-300":"text-amber-700 dark:text-amber-300"])},r(Fe(b.value)),3)]),o("div",wa,[o("p",_a,r(u(t)("relationships.detail.privateMessages")),1),o("span",Sa,r(x(b.value.privateMessageCount)),1)]),o("div",Ta,[o("p",Ca,r(u(t)("relationships.detail.groupMessages")),1),o("span",Ra,r(x(b.value.groupMessageCount)),1)]),o("div",Na,[o("p",Ia,r(u(t)("relationships.detail.commonGroups")),1),o("span",Pa,r(x(b.value.commonGroupCount)),1)]),o("div",Ea,[o("p",La,r(u(t)("relationships.detail.lastInteraction")),1),o("span",Ma,r(it(b.value.lastInteractionTs)),1)])])]),o("div",Ka,[o("section",Va,[o("div",Aa,[o("div",Ga,[o("h3",za,r(u(t)("relationships.connections.title")),1),o("span",Fa,r(lt()),1)]),o("span",$a,r(u(t)("relationships.connections.connectionScore")),1)]),le.value.items.length>0?(m(),k("div",Oa,[(m(!0),k(Ne,null,Ie(le.value.items,l=>(m(),k("button",{key:l.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:Re=>Te(l.node)},[P(Le,{src:we(l.node),alt:j(l.node),text:xe(l.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",ja,[o("span",Ba,r(j(l.node)),1)]),o("span",Ha,[o("span",Ua,r(x(l.connectionScore)),1)])],8,Da))),128))])):(m(),k("p",qa,r(u(t)("relationships.connections.empty")),1))]),be.value.length>0?(m(),k("section",Qa,[o("div",Wa,[o("div",Ya,[o("h2",Za,r(u(t)("relationships.stats.communities")),1),o("span",Ja,r(x(be.value.length)),1)]),o("span",Xa,r(u(t)("relationships.stats.members")),1)]),o("div",eo,[(m(!0),k(Ne,null,Ie(be.value,l=>(m(),k("div",{key:l.id,class:"flex h-9 items-center justify-between gap-2 rounded-lg px-2 py-0 text-[13px] leading-4"},[o("div",to,[o("span",ao,[o("span",{class:"h-2 w-2 rounded-full shadow-sm",style:It({backgroundColor:l.color})},null,4)]),o("span",oo,r(l.label),1)]),o("span",no,[o("span",so,r(x(l.size)),1)])]))),128))])])):L("",!0)])])):L("",!0)])):L("",!0)])])}}}),mo=Object.freeze(Object.defineProperty({__proto__:null,default:io},Symbol.toStringTag,{value:"Module"}));export{zt as a,fo as b,mo as i,Qe as m};
@@ -1,4 +1,4 @@
1
- import{i as j0,c as H0}from"./vendor-nuxt-ui-DaLxYaC4.js";import{o as d0,j as U0,K as Z0,B as W0,y as Uu,u as V0,t as G0}from"./index-CdsKtFEJ.js";import{b as tu,p as h0,d as Q0,G as Tu,H as J0,u as Zu,K as Wu,L as X0,Q as Y0,P as b0,Z as K0,R as ue,T as ee,U as te,a5 as re,X as ne,O as ce,h as ie}from"./vendor-reka-ui-CzM4kDQ7.js";function oe(){return new Promise(u=>{requestAnimationFrame(()=>u())})}function ae(){window.dispatchEvent(new Event("resize"))}async function Vu(u){const e=oe,t=ae;await e(),t(),await e()}const se=525;function le(){const u=d0(),e=U0(),t=tu(!1),r=tu(null);let n=null;async function c(l){const b=`chatlab-screenshot-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.png`;try{const h=await Uu().saveToDownloads(b,l);if(h.success)e.add({title:"截图已保存",description:`已保存到下载目录:${b}`,color:"primary",actions:[{label:"打开目录",onClick:()=>{Uu().openDir("downloads")}}]});else throw new Error(h.error)}catch(h){console.error("保存图片失败:",h),e.fail("保存失败",{description:String(h)})}}function o(l){n=l,e.add({title:"截图已复制到剪贴板",color:"primary",actions:[{label:"预览截图",icon:"i-heroicons-eye",onClick:()=>{n&&u.openScreenCaptureModal(n)}},{label:"保存",icon:"i-heroicons-arrow-down-tray",onClick:()=>{n&&c(n)}}]})}async function i(l,f){const b=document.querySelector(l);return b?a(b,f):(r.value=`未找到元素: ${l}`,!1)}async function a(l,f){if(t.value)return!1;t.value=!0,r.value=null;const b=l.style.padding,h=l.style.paddingBottom,d=l.style.position,C=l.style.width,E=l.style.minWidth,m=l.style.maxWidth;if(l.style.padding="16px 40px",l.style.paddingBottom="48px",window.getComputedStyle(l).position==="static"&&(l.style.position="relative"),f?.mobileWidth){const k=typeof f.mobileWidth=="number"?f.mobileWidth:se,D=l.getBoundingClientRect().width;if(D>k){const S=Math.round(k+(D-k)*.3);l.style.width=`${S}px`,l.style.minWidth=`${S}px`,l.style.maxWidth=`${S}px`}}const _=document.createElement("div");_.className="__capture-watermark__",_.style.cssText=`
1
+ import{i as j0,c as H0}from"./vendor-nuxt-ui-DaLxYaC4.js";import{o as d0,j as U0,K as Z0,B as W0,y as Uu,u as V0,t as G0}from"./index-CqUuHQBQ.js";import{b as tu,p as h0,d as Q0,G as Tu,H as J0,u as Zu,K as Wu,L as X0,Q as Y0,P as b0,Z as K0,R as ue,T as ee,U as te,a5 as re,X as ne,O as ce,h as ie}from"./vendor-reka-ui-CzM4kDQ7.js";function oe(){return new Promise(u=>{requestAnimationFrame(()=>u())})}function ae(){window.dispatchEvent(new Event("resize"))}async function Vu(u){const e=oe,t=ae;await e(),t(),await e()}const se=525;function le(){const u=d0(),e=U0(),t=tu(!1),r=tu(null);let n=null;async function c(l){const b=`chatlab-screenshot-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.png`;try{const h=await Uu().saveToDownloads(b,l);if(h.success)e.add({title:"截图已保存",description:`已保存到下载目录:${b}`,color:"primary",actions:[{label:"打开目录",onClick:()=>{Uu().openDir("downloads")}}]});else throw new Error(h.error)}catch(h){console.error("保存图片失败:",h),e.fail("保存失败",{description:String(h)})}}function o(l){n=l,e.add({title:"截图已复制到剪贴板",color:"primary",actions:[{label:"预览截图",icon:"i-heroicons-eye",onClick:()=>{n&&u.openScreenCaptureModal(n)}},{label:"保存",icon:"i-heroicons-arrow-down-tray",onClick:()=>{n&&c(n)}}]})}async function i(l,f){const b=document.querySelector(l);return b?a(b,f):(r.value=`未找到元素: ${l}`,!1)}async function a(l,f){if(t.value)return!1;t.value=!0,r.value=null;const b=l.style.padding,h=l.style.paddingBottom,d=l.style.position,C=l.style.width,E=l.style.minWidth,m=l.style.maxWidth;if(l.style.padding="16px 40px",l.style.paddingBottom="48px",window.getComputedStyle(l).position==="static"&&(l.style.position="relative"),f?.mobileWidth){const k=typeof f.mobileWidth=="number"?f.mobileWidth:se,D=l.getBoundingClientRect().width;if(D>k){const S=Math.round(k+(D-k)*.3);l.style.width=`${S}px`,l.style.minWidth=`${S}px`,l.style.maxWidth=`${S}px`}}const _=document.createElement("div");_.className="__capture-watermark__",_.style.cssText=`
2
2
  position: absolute;
3
3
  left: 0;
4
4
  right: 0;
@@ -0,0 +1 @@
1
+ import{f as a}from"./index-CqUuHQBQ.js";import"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-nuxt-ui-DaLxYaC4.js";import"./vendor-snapdom-XnBoh1gd.js";class u{async getVersion(){return"0.30.2"}async fetchRemoteConfig(e){try{const t=await fetch(e);return t.ok?{success:!0,data:(t.headers.get("content-type")||"").includes("application/json")||e.split("?")[0].endsWith(".json")?await t.json():await t.text()}:{success:!1,error:`HTTP ${t.status}`}}catch(t){return{success:!1,error:String(t)}}}setThemeSource(e){}async getOpenAtLogin(){return!1}async setOpenAtLogin(e){return{success:!1,error:"Not available in web mode"}}async getAnalyticsEnabled(){try{return(await(await a("/_web/telemetry/enabled")).json()).enabled===!0}catch{return!1}}async setAnalyticsEnabled(e){try{return await(await a("/_web/telemetry/enabled",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})})).json()}catch{return{success:!1}}}async trackDailyActive(e){await a("/_web/telemetry/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:"app_active",properties:{platform:"cli-web",locale:e}})}).catch(()=>{})}async showOpenDialog(e){return{canceled:!0,filePaths:[]}}async copyImageToClipboard(e){return{success:!1,error:"Not available in web mode"}}async checkUpdate(){try{return await(await a("/_web/system/check-update")).json()}catch(e){return{hasUpdate:!1,currentVersion:"unknown",error:e instanceof Error?e.message:String(e)}}}async performUpdate(){return{success:!1,error:"Web update is unavailable. Run clb update in your terminal."}}async relaunch(){window.location.reload()}}export{u as WebPlatformAdapter};
@@ -1,4 +1,4 @@
1
- import{M as w,f as B,O,ar as A,a0 as k,j as _,G as M,b as U,N as E,I as z,a1 as T,T as b,ak as V,R as Y,w as X,r as P}from"./RelationshipGalaxyCanvas-D2owKyDp.js";import{F as q}from"./Filter-BgGyBeXz.js";import"./vendor-snapdom-XnBoh1gd.js";import"./index-CdsKtFEJ.js";import"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-nuxt-ui-DaLxYaC4.js";import"./index-IL5tkxhM.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import"./people-page-header-Mupn-U_b.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";const v=new w;function G(g,e){e.clear();const t=e.matrix;for(let r=0;r<g.length;r++){const i=g[r];if(i.globalDisplayStatus<7)continue;const s=i.renderGroup??i.parentRenderGroup;s?.isCachedAsTexture?e.matrix=v.copyFrom(s.textureOffsetInverseTransform).append(i.worldTransform):s?._parentCacheAsTextureRenderGroup?e.matrix=v.copyFrom(s._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(i.groupTransform):e.matrix=i.worldTransform,e.addBounds(i.bounds)}return e.matrix=t,e}function y(g){return typeof g.getCanvasFilterString=="function"}class L{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new k,this.cssFilterString=""}}class R{constructor(e){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=e}push(e){const t=this._pushFilterFrame(),r=e.filterEffect.filters;if(t.skip=!1,t.useClip=!1,t.filters=r,t.container=e.container,t.cssFilterString="",r.every(o=>!o.enabled)){t.skip=!0;return}const i=[],s=1;for(const o of r){if(!o.enabled)continue;if(!y(o)){this._warnUnsupportedFilter(o);continue}const l=o.getCanvasFilterString();if(l===null){this._warnUnsupportedFilter(o);continue}l&&i.push(l)}if(i.length===0&&s===1){t.skip=!0;return}t.cssFilterString=i.join(" "),this._calculateFilterArea(e,t.bounds),t.useClip=!!e.filterEffect.filterArea;const n=this.renderer.canvasContext.activeContext,a=n.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),t.useClip&&Number.isFinite(t.bounds.width)&&Number.isFinite(t.bounds.height)&&t.bounds.width>0&&t.bounds.height>0){const o=this.renderer.canvasContext.activeResolution||1;n.save(),n.setTransform(1,0,0,1,0,0),n.beginPath(),n.rect(t.bounds.x*o,t.bounds.y*o,t.bounds.width*o,t.bounds.height*o),n.clip()}else t.useClip=!1;t.cssFilterString&&(n.filter=a!=="none"?`${a} ${t.cssFilterString}`:t.cssFilterString)}pop(){const e=this._popFilterFrame();if(e.skip)return;const t=this._savedStates.pop();if(!t)return;const r=this.renderer.canvasContext.activeContext;e.useClip?r.restore():r.filter=t.filter,this._alphaMultiplier=t.alphaMultiplier}generateFilteredTexture({texture:e,filters:t}){if(!t?.length||t.every(d=>!d.enabled))return e;const r=[],i=1;for(const d of t){if(!d.enabled)continue;if(!y(d)){this._warnUnsupportedFilter(d);continue}const h=d.getCanvasFilterString();if(h===null){this._warnUnsupportedFilter(d);continue}h&&r.push(h)}if(r.length===0&&i===1)return e;const s=B.getCanvasSource(e);if(!s)return e;const n=e.frame,a=e.source._resolution??e.source.resolution??1,o=n.width,l=n.height,f=O.getOptimalCanvasAndContext(o,l,a),{canvas:c,context:u}=f;u.setTransform(1,0,0,1,0,0),u.clearRect(0,0,c.width,c.height),r.length&&(u.filter=r.join(" "));const p=n.x*a,m=n.y*a,x=o*a,F=l*a;return u.drawImage(s,p,m,x,F,0,0,x,F),u.filter="none",u.globalAlpha=1,A(c,o,l,a)}_calculateFilterArea(e,t){if(e.renderables?G(e.renderables,t):e.filterEffect.filterArea?(t.clear(),t.addRect(e.filterEffect.filterArea),t.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,t),e.container){const i=(e.container.renderGroup||e.container.parentRenderGroup)?.cacheToLocalTransform;i&&t.applyMatrix(i)}}_warnUnsupportedFilter(e){const t=e?.constructor?.name||"Filter";this._warnedFilterTypes.has(t)||(this._warnedFilterTypes.add(t),console.warn(`CanvasRenderer: filter "${t}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new L),this._filterStackIndex++,e}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}}R.extension={type:[_.CanvasSystem],name:"filter"};var W=`in vec2 aPosition;
1
+ import{M as w,f as B,O,ar as A,a0 as k,j as _,G as M,b as U,N as E,I as z,a1 as T,T as b,ak as V,R as Y,w as X,r as P}from"./RelationshipGalaxyCanvas-CORMD7vL.js";import{F as q}from"./Filter-BJwode73.js";import"./vendor-snapdom-XnBoh1gd.js";import"./index-CqUuHQBQ.js";import"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-nuxt-ui-DaLxYaC4.js";import"./index-DgNxTM_8.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js";import"./people-page-header-Mupn-U_b.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";const v=new w;function G(g,e){e.clear();const t=e.matrix;for(let r=0;r<g.length;r++){const i=g[r];if(i.globalDisplayStatus<7)continue;const s=i.renderGroup??i.parentRenderGroup;s?.isCachedAsTexture?e.matrix=v.copyFrom(s.textureOffsetInverseTransform).append(i.worldTransform):s?._parentCacheAsTextureRenderGroup?e.matrix=v.copyFrom(s._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(i.groupTransform):e.matrix=i.worldTransform,e.addBounds(i.bounds)}return e.matrix=t,e}function y(g){return typeof g.getCanvasFilterString=="function"}class L{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new k,this.cssFilterString=""}}class R{constructor(e){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=e}push(e){const t=this._pushFilterFrame(),r=e.filterEffect.filters;if(t.skip=!1,t.useClip=!1,t.filters=r,t.container=e.container,t.cssFilterString="",r.every(o=>!o.enabled)){t.skip=!0;return}const i=[],s=1;for(const o of r){if(!o.enabled)continue;if(!y(o)){this._warnUnsupportedFilter(o);continue}const l=o.getCanvasFilterString();if(l===null){this._warnUnsupportedFilter(o);continue}l&&i.push(l)}if(i.length===0&&s===1){t.skip=!0;return}t.cssFilterString=i.join(" "),this._calculateFilterArea(e,t.bounds),t.useClip=!!e.filterEffect.filterArea;const n=this.renderer.canvasContext.activeContext,a=n.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),t.useClip&&Number.isFinite(t.bounds.width)&&Number.isFinite(t.bounds.height)&&t.bounds.width>0&&t.bounds.height>0){const o=this.renderer.canvasContext.activeResolution||1;n.save(),n.setTransform(1,0,0,1,0,0),n.beginPath(),n.rect(t.bounds.x*o,t.bounds.y*o,t.bounds.width*o,t.bounds.height*o),n.clip()}else t.useClip=!1;t.cssFilterString&&(n.filter=a!=="none"?`${a} ${t.cssFilterString}`:t.cssFilterString)}pop(){const e=this._popFilterFrame();if(e.skip)return;const t=this._savedStates.pop();if(!t)return;const r=this.renderer.canvasContext.activeContext;e.useClip?r.restore():r.filter=t.filter,this._alphaMultiplier=t.alphaMultiplier}generateFilteredTexture({texture:e,filters:t}){if(!t?.length||t.every(d=>!d.enabled))return e;const r=[],i=1;for(const d of t){if(!d.enabled)continue;if(!y(d)){this._warnUnsupportedFilter(d);continue}const h=d.getCanvasFilterString();if(h===null){this._warnUnsupportedFilter(d);continue}h&&r.push(h)}if(r.length===0&&i===1)return e;const s=B.getCanvasSource(e);if(!s)return e;const n=e.frame,a=e.source._resolution??e.source.resolution??1,o=n.width,l=n.height,f=O.getOptimalCanvasAndContext(o,l,a),{canvas:c,context:u}=f;u.setTransform(1,0,0,1,0,0),u.clearRect(0,0,c.width,c.height),r.length&&(u.filter=r.join(" "));const p=n.x*a,m=n.y*a,x=o*a,F=l*a;return u.drawImage(s,p,m,x,F,0,0,x,F),u.filter="none",u.globalAlpha=1,A(c,o,l,a)}_calculateFilterArea(e,t){if(e.renderables?G(e.renderables,t):e.filterEffect.filterArea?(t.clear(),t.addRect(e.filterEffect.filterArea),t.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,t),e.container){const i=(e.container.renderGroup||e.container.parentRenderGroup)?.cacheToLocalTransform;i&&t.applyMatrix(i)}}_warnUnsupportedFilter(e){const t=e?.constructor?.name||"Filter";this._warnedFilterTypes.has(t)||(this._warnedFilterTypes.add(t),console.warn(`CanvasRenderer: filter "${t}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new L),this._filterStackIndex++,e}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}}R.extension={type:[_.CanvasSystem],name:"filter"};var W=`in vec2 aPosition;
2
2
  out vec2 vTextureCoord;
3
3
 
4
4
  uniform vec4 uInputSize;
@@ -5,7 +5,7 @@
5
5
  <title>ChatLab</title>
6
6
  <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
7
7
  <link rel="icon" href="/favicon.ico" />
8
- <script type="module" crossorigin src="/assets/index-CdsKtFEJ.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-CqUuHQBQ.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/vendor-reka-ui-CzM4kDQ7.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendor-nuxt-ui-DaLxYaC4.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/vendor-snapdom-XnBoh1gd.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chatlab-cli",
3
- "version": "0.30.1",
3
+ "version": "0.30.2",
4
4
  "description": "ChatLab CLI & Service - Chat history analysis tool",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +0,0 @@
1
- import{f as a}from"./index-CdsKtFEJ.js";import"./vendor-reka-ui-CzM4kDQ7.js";import"./vendor-nuxt-ui-DaLxYaC4.js";import"./vendor-snapdom-XnBoh1gd.js";class l{async getVersion(){return"0.30.1"}async fetchRemoteConfig(e){try{const t=await fetch(e);return t.ok?{success:!0,data:await t.json()}:{success:!1,error:`HTTP ${t.status}`}}catch(t){return{success:!1,error:String(t)}}}setThemeSource(e){}async getOpenAtLogin(){return!1}async setOpenAtLogin(e){return{success:!1,error:"Not available in web mode"}}async getAnalyticsEnabled(){try{return(await(await a("/_web/telemetry/enabled")).json()).enabled===!0}catch{return!1}}async setAnalyticsEnabled(e){try{return await(await a("/_web/telemetry/enabled",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})})).json()}catch{return{success:!1}}}async trackDailyActive(e){await a("/_web/telemetry/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:"app_active",properties:{platform:"cli-web",locale:e}})}).catch(()=>{})}async showOpenDialog(e){return{canceled:!0,filePaths:[]}}async copyImageToClipboard(e){return{success:!1,error:"Not available in web mode"}}async checkUpdate(){try{return await(await a("/_web/system/check-update")).json()}catch(e){return{hasUpdate:!1,currentVersion:"unknown",error:e instanceof Error?e.message:String(e)}}}async performUpdate(){return{success:!1,error:"Web update is unavailable. Run clb update in your terminal."}}async relaunch(){window.location.reload()}}export{l as WebPlatformAdapter};