chatlab-cli 0.36.1 → 0.36.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.
- package/dist/{chat-command-XPJ43KSW.mjs → chat-command-SEV6N3AR.mjs} +8 -8
- package/dist/{chunk-6QP47LID.mjs → chunk-6E46U4H2.mjs} +2 -2
- package/dist/{chunk-NQHZPSW2.mjs → chunk-6EZPD3XJ.mjs} +2 -2
- package/dist/{chunk-5MJO4AJB.mjs → chunk-CH5YAZ4Q.mjs} +2 -2
- package/dist/{chunk-X2QBH24F.mjs → chunk-HWIXK7SU.mjs} +2 -2
- package/dist/{chunk-NFTCEJBJ.mjs → chunk-TJ3NOBVI.mjs} +3 -3
- package/dist/{chunk-Q3NEL2KK.mjs → chunk-TRGR3KKJ.mjs} +3 -1
- package/dist/chunk-TRGR3KKJ.mjs.map +1 -0
- package/dist/{chunk-67HNPYZJ.mjs → chunk-TWH422HC.mjs} +3 -3
- package/dist/{chunk-FJOGBUXU.mjs → chunk-VREVDZ4Q.mjs} +4 -4
- package/dist/{chunk-JOVL7OTW.mjs → chunk-VUYWUHWW.mjs} +2 -2
- package/dist/{chunk-2JPFBIAG.mjs → chunk-WJQOXOMR.mjs} +14 -12
- package/dist/chunk-WJQOXOMR.mjs.map +1 -0
- package/dist/{chunk-L7TIIVAY.mjs → chunk-WRBFV2GX.mjs} +12 -12
- package/dist/{chunk-R73XMAB2.mjs → chunk-YUH3H3QW.mjs} +4 -4
- package/dist/cli.mjs +9 -9
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +1 -1
- package/dist/{http-5RVY5J5U.mjs → http-237XYNRT.mjs} +12 -12
- package/dist/{import-ILTWVHKU.mjs → import-R2E2TFAK.mjs} +7 -7
- package/dist/index.mjs +12 -12
- package/dist/{mcp-Y2YXOFB4.mjs → mcp-BED4AARV.mjs} +8 -8
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-OV5ZNE3Z.mjs → src-AYMALWU5.mjs} +6 -6
- package/dist/{stream-import-XOUM3Z5W.mjs → stream-import-RXNSOOYH.mjs} +7 -7
- package/dist/{worker-runtime-JNGURHDM.mjs → worker-runtime-JGAZU7MC.mjs} +5 -5
- package/dist-cli-web/assets/{AISettingsTab-vvjijrc5.js → AISettingsTab-VgI7PiJd.js} +1 -1
- package/dist-cli-web/assets/{AboutTab-CxI8zJNz.js → AboutTab-DCM1-glA.js} +1 -1
- package/dist-cli-web/assets/ActionToolsPanel-BTGgwXVD.css +1 -0
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-a7RMjjve.js +112 -0
- package/dist-cli-web/assets/{Alert-_MYcI_E2.js → Alert-D-egBWcb.js} +1 -1
- package/dist-cli-web/assets/{ApiSettingsTab-CK7U6dVA.js → ApiSettingsTab-Co3LWf1f.js} +1 -1
- package/dist-cli-web/assets/{BatchManageTab-1WnEqqpB.js → BatchManageTab-2LrckmQm.js} +1 -1
- package/dist-cli-web/assets/{BufferResource-i64DlwQT.js → BufferResource-BE2_2bZK.js} +1 -1
- package/dist-cli-web/assets/{CanvasRenderer-B76mEt9A.js → CanvasRenderer-DDKdvEYQ.js} +1 -1
- package/dist-cli-web/assets/{ChatRecordDrawer-Bp6OSCrz.js → ChatRecordDrawer-DRhztqLG.js} +1 -1
- package/dist-cli-web/assets/{ChatRecordWorkspace-CyfPIlIy.js → ChatRecordWorkspace-DqUI4QiU.js} +1 -1
- package/dist-cli-web/assets/{Checkbox-Ci7IeRw1.js → Checkbox-EfpQmv4A.js} +1 -1
- package/dist-cli-web/assets/{DataDirCleanupNotice-Dh63pOLt.js → DataDirCleanupNotice-BYIiR58J.js} +1 -1
- package/dist-cli-web/assets/{DatePicker.vue_vue_type_script_setup_true_lang-DqNBNa1D.js → DatePicker.vue_vue_type_script_setup_true_lang-sPDoPzZ9.js} +1 -1
- package/dist-cli-web/assets/{DebugToolsPanel-CbNsD9co.js → DebugToolsPanel-BIHA6jw4.js} +1 -1
- package/dist-cli-web/assets/{EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js → EChart.vue_vue_type_script_setup_true_lang-DryMSoCz.js} +1 -1
- package/dist-cli-web/assets/{EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js → EChartBar.vue_vue_type_script_setup_true_lang-BdFW-hvt.js} +1 -1
- package/dist-cli-web/assets/{EChartLine.vue_vue_type_script_setup_true_lang-Co6olfwv.js → EChartLine.vue_vue_type_script_setup_true_lang-C69Kdw9X.js} +1 -1
- package/dist-cli-web/assets/{EChartWordcloud-rDusZwSq.js → EChartWordcloud-DM7UEHdK.js} +1 -1
- package/dist-cli-web/assets/{Filter-yxkeHO78.js → Filter-kO4dIDJ2.js} +1 -1
- package/dist-cli-web/assets/{GlobalTaskBar-BlZ-fFiq.js → GlobalTaskBar-BZS_h0zC.js} +1 -1
- package/dist-cli-web/assets/{GroupRelationshipGalaxyView-BXQBX0zJ.js → GroupRelationshipGalaxyView--WIaHx_F.js} +1 -1
- package/dist-cli-web/assets/{Label-CFAZFBQX.js → Label-CIuDXyeM.js} +1 -1
- package/dist-cli-web/assets/{LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js → LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js} +1 -1
- package/dist-cli-web/assets/{MessageExportModal-DU71grc7.js → MessageExportModal-BQsIpyxv.js} +1 -1
- package/dist-cli-web/assets/{PageHeader-BDPf4NuI.js → PageHeader-DxhQHF_0.js} +1 -1
- package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js → PageTabs.vue_vue_type_script_setup_true_lang-Cgungbjl.js} +1 -1
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-BODk18aA.js → RelationshipGalaxyCanvas-Cod1JX9m.js} +3 -3
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-BJyuRiC-.js → RelationshipGalaxyThreeCanvas-CkefzeFJ.js} +1 -1
- package/dist-cli-web/assets/{RenderTargetSystem-CVMvAUSv.js → RenderTargetSystem-SuQ7cbze.js} +1 -1
- package/dist-cli-web/assets/{RovingFocusItem-DC_06OmN.js → RovingFocusItem-psoFYxrC.js} +1 -1
- package/dist-cli-web/assets/{ScreenCaptureModal-DrBFDOtC.js → ScreenCaptureModal-D4r9ixKh.js} +1 -1
- package/dist-cli-web/assets/{SectionTabs.vue_vue_type_script_setup_true_lang-C-Zj2biH.js → SectionTabs.vue_vue_type_script_setup_true_lang-v_7aRBgM.js} +1 -1
- package/dist-cli-web/assets/{Select-DLK2LYhO.js → Select-CxurgslB.js} +1 -1
- package/dist-cli-web/assets/{SettingsModal-DqaR4Dx5.js → SettingsModal-DBZucuf6.js} +2 -2
- package/dist-cli-web/assets/{StorageTab-B0ebN0f8.js → StorageTab-DhSJ-0Ir.js} +1 -1
- package/dist-cli-web/assets/{Switch-CokhQWxm.js → Switch-3D81G6uV.js} +1 -1
- package/dist-cli-web/assets/{Tabs-N3Q-Mpqi.js → Tabs-Bnm_Q7yW.js} +1 -1
- package/dist-cli-web/assets/{Tabs-D1UiZNaZ.js → Tabs-DB603EEu.js} +1 -1
- package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js → ThemeCard.vue_vue_type_script_setup_true_lang-BDTdkH5i.js} +1 -1
- package/dist-cli-web/assets/{TimeSelect.vue_vue_type_script_setup_true_lang-Ccunouyf.js → TimeSelect.vue_vue_type_script_setup_true_lang-Cjz8Wpg-.js} +1 -1
- package/dist-cli-web/assets/{VisuallyHiddenInput-OAJEt_Y5.js → VisuallyHiddenInput-Bo_XwaLu.js} +1 -1
- package/dist-cli-web/assets/{WebGLRenderer-DuUeftYD.js → WebGLRenderer-D1x9WZRj.js} +1 -1
- package/dist-cli-web/assets/{WebGPURenderer-DoWQxiWZ.js → WebGPURenderer-37Nw-tLm.js} +1 -1
- package/dist-cli-web/assets/aiChat-BCzYQeZq.js +8 -0
- package/dist-cli-web/assets/{browserAll-Cb-mtR2y.js → browserAll-CWrz_-4U.js} +1 -1
- package/dist-cli-web/assets/{cli-web-BHQCZLLg.js → cli-web-C-8N0CJh.js} +1 -1
- package/dist-cli-web/assets/{fetch-BzXuAaT3.js → fetch-6pcVxB9h.js} +1 -1
- package/dist-cli-web/assets/{fetch-DEub4tOo.js → fetch-B69OkB6B.js} +1 -1
- package/dist-cli-web/assets/{fetch-DLTlYnDB.js → fetch-BGmCCyzz.js} +1 -1
- package/dist-cli-web/assets/{fetch-BkA_so1e.js → fetch-CFpLXWTe.js} +1 -1
- package/dist-cli-web/assets/{fetch-AvsnJLWJ.js → fetch-CgA1peJD.js} +1 -1
- package/dist-cli-web/assets/{fetch-B4PYy5JS.js → fetch-CkXgOxcu.js} +1 -1
- package/dist-cli-web/assets/{fetch-B-6tyYWu.js → fetch-DPSWt6yX.js} +1 -1
- package/dist-cli-web/assets/{fetch-sYDJ-Zs8.js → fetch-DZ6OF-xW.js} +1 -1
- package/dist-cli-web/assets/{fetch-BbcFaCRB.js → fetch-Du-wU0OO.js} +1 -1
- package/dist-cli-web/assets/{fetch-CW2fKvGp.js → fetch-Gu4qQjUB.js} +1 -1
- package/dist-cli-web/assets/{fetch-Qs38Hx1V.js → fetch-qd2FgBWQ.js} +1 -1
- package/dist-cli-web/assets/{fetch-ul8-uQIb.js → fetch-z9M9FcIC.js} +1 -1
- package/dist-cli-web/assets/{host-DYIkQqvY.js → host-CWsAWKgy.js} +1 -1
- package/dist-cli-web/assets/{host-B6SQ6OGo.js → host-D8zlA62K.js} +1 -1
- package/dist-cli-web/assets/{index-C7omDgiJ.js → index-BGd4ZfhO.js} +2 -2
- package/dist-cli-web/assets/{index-a8Hw6eD8.js → index-BYZF1ngN.js} +1 -1
- package/dist-cli-web/assets/index-BcuwlCin.css +1 -0
- package/dist-cli-web/assets/{index-sWxuTsa7.js → index-Bq5q3kSU.js} +4 -4
- package/dist-cli-web/assets/index-CPR3jdC2.js +137 -0
- package/dist-cli-web/assets/{index-9iaY_EWG.js → index-D3AjvaOX.js} +1 -1
- package/dist-cli-web/assets/{index-pkxlF8Ee.js → index-DAitScUA.js} +1 -1
- package/dist-cli-web/assets/{index-UpTe1KzQ.js → index-DBSMWAJ0.js} +1 -1
- package/dist-cli-web/assets/index-DTn9htw-.js +64 -0
- package/dist-cli-web/assets/{index-jwjzZNKm.js → index-DV_rWxcH.js} +1 -1
- package/dist-cli-web/assets/index-DxhAGqYM.css +1 -0
- package/dist-cli-web/assets/{index-D64XYYts.js → index-Dy0fRMDf.js} +1 -1
- package/dist-cli-web/assets/index-I0mIcDpE.css +1 -0
- package/dist-cli-web/assets/{index-CShh95fU.js → index-a7CT8DQm.js} +1 -1
- package/dist-cli-web/assets/index-onwNShRw.js +2 -0
- package/dist-cli-web/assets/{index-C_OS8Y8W.js → index-v6DlL4ue.js} +1 -1
- package/dist-cli-web/assets/{people-page-header-0jvXFFnh.js → people-page-header-Czt9e1jv.js} +1 -1
- package/dist-cli-web/assets/{prompt-BPYj29Vq.js → prompt-DGazz143.js} +1 -1
- package/dist-cli-web/assets/{semantic-index-config-builder-vO37z355.js → semantic-index-config-builder-BkFHzIUy.js} +1 -1
- package/dist-cli-web/assets/service-BMqwB74f.js +1 -0
- package/dist-cli-web/assets/{service-D29Vftq9.js → service-CAp0YJoS.js} +1 -1
- package/dist-cli-web/assets/service-CUQ8iHdS.js +1 -0
- package/dist-cli-web/assets/{useFormControl-DVawP2DO.js → useFormControl-DcSMUc2d.js} +1 -1
- package/dist-cli-web/assets/{useTable-Bv3R_Hux.js → useTable-Clmq3sge.js} +1 -1
- package/dist-cli-web/assets/{useToast-BA0EwImD.js → useToast-YAHDkKDN.js} +1 -1
- package/dist-cli-web/assets/{webworkerAll-ZPE_yGnC.js → webworkerAll-CvSp2Y8j.js} +1 -1
- package/dist-cli-web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-2JPFBIAG.mjs.map +0 -1
- package/dist/chunk-Q3NEL2KK.mjs.map +0 -1
- package/dist-cli-web/assets/ActionToolsPanel-Dp-ojXjO.css +0 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-w0hHEodr.js +0 -110
- package/dist-cli-web/assets/aiChat-CdADfRnU.js +0 -8
- package/dist-cli-web/assets/index--IEkRjKe.js +0 -64
- package/dist-cli-web/assets/index-B4J99zv3.css +0 -1
- package/dist-cli-web/assets/index-BBeqtL8d.css +0 -1
- package/dist-cli-web/assets/index-CHsM84U1.js +0 -2
- package/dist-cli-web/assets/index-CL8u01Pf.js +0 -137
- package/dist-cli-web/assets/index-DrCc8p_I.css +0 -1
- package/dist-cli-web/assets/service-CVoA9yNf.js +0 -1
- package/dist-cli-web/assets/service-DMysyLCa.js +0 -1
- /package/dist/{chat-command-XPJ43KSW.mjs.map → chat-command-SEV6N3AR.mjs.map} +0 -0
- /package/dist/{chunk-6QP47LID.mjs.map → chunk-6E46U4H2.mjs.map} +0 -0
- /package/dist/{chunk-NQHZPSW2.mjs.map → chunk-6EZPD3XJ.mjs.map} +0 -0
- /package/dist/{chunk-5MJO4AJB.mjs.map → chunk-CH5YAZ4Q.mjs.map} +0 -0
- /package/dist/{chunk-X2QBH24F.mjs.map → chunk-HWIXK7SU.mjs.map} +0 -0
- /package/dist/{chunk-NFTCEJBJ.mjs.map → chunk-TJ3NOBVI.mjs.map} +0 -0
- /package/dist/{chunk-67HNPYZJ.mjs.map → chunk-TWH422HC.mjs.map} +0 -0
- /package/dist/{chunk-FJOGBUXU.mjs.map → chunk-VREVDZ4Q.mjs.map} +0 -0
- /package/dist/{chunk-JOVL7OTW.mjs.map → chunk-VUYWUHWW.mjs.map} +0 -0
- /package/dist/{chunk-L7TIIVAY.mjs.map → chunk-WRBFV2GX.mjs.map} +0 -0
- /package/dist/{chunk-R73XMAB2.mjs.map → chunk-YUH3H3QW.mjs.map} +0 -0
- /package/dist/{http-5RVY5J5U.mjs.map → http-237XYNRT.mjs.map} +0 -0
- /package/dist/{import-ILTWVHKU.mjs.map → import-R2E2TFAK.mjs.map} +0 -0
- /package/dist/{mcp-Y2YXOFB4.mjs.map → mcp-BED4AARV.mjs.map} +0 -0
- /package/dist/{src-OV5ZNE3Z.mjs.map → src-AYMALWU5.mjs.map} +0 -0
- /package/dist/{stream-import-XOUM3Z5W.mjs.map → stream-import-RXNSOOYH.mjs.map} +0 -0
- /package/dist/{worker-runtime-JNGURHDM.mjs.map → worker-runtime-JGAZU7MC.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as t,S as e}from"./index-
|
|
1
|
+
import{N as t,S as e}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";class o{async getInfo(){return t("/cache/info")}async clear(a){return e("/cache/clear",{cacheId:a})}async getDataDir(){return t("/cache/data-dir")}async setDataDir(a,r=!0){return e("/cache/data-dir",{path:a,migrate:r})}async openDataDirCleanup(a){return e("/cache/data-dir/cleanup/open",{cleanupId:a})}async dismissDataDirCleanupNotice(a){return e("/cache/data-dir/cleanup/dismiss",{cleanupId:a})}async deleteDataDirCleanup(a){return e("/cache/data-dir/cleanup/delete",{cleanupId:a})}async getLatestImportLog(){return t("/cache/latest-import-log")}async saveToDownloads(a,r){return e("/cache/save-to-downloads",{filename:a,dataUrl:r})}async openDir(a){return e("/cache/open-dir",{cacheId:a})}async showInFolder(a){return e("/cache/show-in-folder",{filePath:a})}}export{o as FetchCacheAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as c,O as o,Q as l,S as m,T as $,U as a,V as y}from"./index-
|
|
1
|
+
import{N as c,O as o,Q as l,S as m,T as $,U as a,V as y}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";function S(i,e){e&&(e.startTs&&i.set("startTs",String(e.startTs)),e.endTs&&i.set("endTs",String(e.endTs)),e.memberId&&i.set("memberId",String(e.memberId)))}function n(i){const e=new URLSearchParams;S(e,i);const s=e.toString();return s?`?${s}`:""}function u(i){const e=new URLSearchParams;i?.mode&&e.set("mode",i.mode),i?.year&&e.set("year",String(i.year)),i?.days&&e.set("days",String(i.days)),i?.acceptStale&&e.set("acceptStale","1");const s=e.toString();return s?`?${s}`:""}class h{getSessions(){return c("/sessions")}getSession(e){return c(`/sessions/${e}`)}async deleteSession(e){return(await o(`/sessions/${e}`)).success}async renameSession(e,s){return(await l(`/sessions/${e}/name`,{name:s})).success}async updateSessionOwnerId(e,s){return(await l(`/sessions/${e}/owner`,{ownerId:s})).success}tryApplyOwnerProfile(e){return m(`/sessions/${e}/owner/apply-profile`,{})}setOwnerAndApplyProfile(e,s){return m(`/sessions/${e}/owner/select`,{ownerPlatformId:s})}async excludeOwnerSession(e){return(await m(`/sessions/${e}/owner/exclude`,{})).success}getContacts(e){const s=new URLSearchParams;e?.acceptStale&&s.set("acceptStale","1"),e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.pool&&s.set("pool",e.pool),e?.page&&s.set("page",String(e.page)),e?.pageSize&&s.set("pageSize",String(e.pageSize)),e?.query&&s.set("q",e.query);const t=s.toString();return c(`/contacts${t?`?${t}`:""}`)}getContactDetail(e,s){const t=new URLSearchParams;s?.acceptStale&&t.set("acceptStale","1"),s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset);const r=t.toString();return c(`/contacts/${encodeURIComponent(e)}/detail${r?`?${r}`:""}`)}recomputeContacts(e){const s=new URLSearchParams;e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.pool&&s.set("pool",e.pool),e?.page&&s.set("page",String(e.page)),e?.pageSize&&s.set("pageSize",String(e.pageSize)),e?.query&&s.set("q",e.query);const t=s.toString();return m(`/contacts/recompute${t?`?${t}`:""}`,{})}async markContactAsFriend(e,s){const t=new URLSearchParams;s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset);const r=t.toString();return(await $(`/contacts/${encodeURIComponent(e)}/mark-friend${r?`?${r}`:""}`)).success}async unmarkContactAsFriend(e,s){const t=new URLSearchParams;s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset);const r=t.toString();return(await o(`/contacts/${encodeURIComponent(e)}/mark-friend${r?`?${r}`:""}`)).success}getPeopleRelationships(e){const s=new URLSearchParams;e?.acceptStale&&s.set("acceptStale","1"),e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.graphScope&&s.set("scope",e.graphScope),e?.query&&s.set("q",e.query);const t=s.toString();return c(`/people/relationships${t?`?${t}`:""}`)}recomputePeopleRelationships(e){const s=new URLSearchParams;e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.graphScope&&s.set("scope",e.graphScope),e?.query&&s.set("q",e.query);const t=s.toString();return m(`/people/relationships/recompute${t?`?${t}`:""}`,{})}getPeopleRelationshipNeighborhood(e,s){const t=new URLSearchParams;s?.acceptStale&&t.set("acceptStale","1"),s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset),s?.graphScope&&t.set("scope",s.graphScope);const r=t.toString();return c(`/people/relationships/${encodeURIComponent(e)}/neighborhood${r?`?${r}`:""}`)}getAnnualSummary(e){return c(`/global-insight/annual-summary${u(e)}`)}recomputeAnnualSummary(e){return m(`/global-insight/annual-summary/recompute${u(e)}`,{})}getTimeInvestment(e){return c(`/global-insight/time-investment${u(e)}`)}recomputeTimeInvestment(e){return m(`/global-insight/time-investment/recompute${u(e)}`,{})}getAvailableYears(e){return c(`/sessions/${e}/years`)}getTimeRange(e){return c(`/sessions/${e}/time-range`)}getMemberActivity(e,s){return a(`/sessions/${e}/stats/member-activity${n(s)}`)}getHourlyActivity(e,s){return a(`/sessions/${e}/stats/hourly${n(s)}`)}getDailyActivity(e,s){return a(`/sessions/${e}/stats/daily${n(s)}`)}getWeekdayActivity(e,s){return a(`/sessions/${e}/stats/weekday${n(s)}`)}getMonthlyActivity(e,s){return a(`/sessions/${e}/analytics/monthly-activity${n(s)}`)}getYearlyActivity(e,s){return a(`/sessions/${e}/analytics/yearly-activity${n(s)}`)}getMessageLengthDistribution(e,s){return a(`/sessions/${e}/analytics/message-length-distribution${n(s)}`)}getMessageTypeDistribution(e,s){return a(`/sessions/${e}/stats/message-types${n(s)}`)}getTextStats(e,s){return a(`/sessions/${e}/analytics/text-stats${n(s)}`)}getLongMessageCount(e,s,t){const r=new URLSearchParams;s?.startTs&&r.set("startTs",String(s.startTs)),s?.endTs&&r.set("endTs",String(s.endTs)),s?.memberId&&r.set("memberId",String(s.memberId)),t!=null&&r.set("minLength",String(t));const g=r.toString();return a(`/sessions/${e}/analytics/long-message-count${g?`?${g}`:""}`)}getMemberMonthlyTrend(e,s){return a(`/sessions/${e}/analytics/member-monthly-trend${n(s)}`)}getTextLengthPercentiles(e,s){return a(`/sessions/${e}/analytics/text-length-percentiles${n(s)}`)}getWordFrequency(e,s){return y("/nlp/word-frequency",{sessionId:e,...s})}getDragonKingAnalysis(e,s){return a(`/sessions/${e}/analytics/dragon-king${n(s)}`)}getDivingAnalysis(e,s){return a(`/sessions/${e}/analytics/diving${n(s)}`)}getCheckInAnalysis(e,s){return a(`/sessions/${e}/analytics/check-in${n(s)}`)}getMemeBattleAnalysis(e,s){return a(`/sessions/${e}/analytics/meme-battle${n(s)}`)}getNightOwlAnalysis(e,s){return a(`/sessions/${e}/analytics/night-owl${n(s)}`)}getRepeatAnalysis(e,s){return a(`/sessions/${e}/analytics/repeat${n(s)}`)}getMembers(e){return c(`/sessions/${e}/members`)}getMembersPaginated(e,s){const t=new URLSearchParams({page:String(s.page),pageSize:String(s.pageSize)});return s.search&&t.set("search",s.search),s.sortOrder&&t.set("sortOrder",s.sortOrder),c(`/sessions/${e}/members/paginated?${t}`)}getMemberNameHistory(e,s){return c(`/sessions/${e}/members/${s}/history`)}async updateMemberAliases(e,s,t){return(await l(`/sessions/${e}/members/${s}/aliases`,{aliases:t})).success}async mergeMembers(e,s,t){return(await m(`/sessions/${e}/members/merge`,{memberId1:s,memberId2:t})).success}async deleteMember(e,s){return(await o(`/sessions/${e}/members/${s}`)).success}async deleteMembers(e,s){return(await m(`/sessions/${e}/members/batch-delete`,{memberIds:s})).success}getCatchphraseAnalysis(e,s){return a(`/sessions/${e}/analytics/catchphrase${n(s)}`)}getLanguagePreferenceAnalysis(e,s,t,r){const g=new URLSearchParams;return g.set("locale",s),t?.startTs&&g.set("startTs",String(t.startTs)),t?.endTs&&g.set("endTs",String(t.endTs)),t?.memberId&&g.set("memberId",String(t.memberId)),a(`/sessions/${e}/analytics/language-preference?${g}`)}getMentionAnalysis(e,s){return a(`/sessions/${e}/analytics/mention${n(s)}`)}getGroupRelationshipGalaxy(e,s){return a(`/sessions/${e}/analytics/relationship-galaxy${n(s)}`)}getClusterGraph(e,s,t){const r=new URLSearchParams;s?.startTs&&r.set("startTs",String(s.startTs)),s?.endTs&&r.set("endTs",String(s.endTs)),s?.memberId&&r.set("memberId",String(s.memberId)),t?.topEdges&&r.set("topEdges",String(t.topEdges)),t?.lookAhead&&r.set("lookAhead",String(t.lookAhead)),t?.decaySeconds&&r.set("decaySeconds",String(t.decaySeconds));const g=r.toString();return a(`/sessions/${e}/analytics/cluster${g?`?${g}`:""}`)}getLaughAnalysis(e,s,t){return y(`/sessions/${e}/analytics/laugh${n(s)}`,{keywords:t??[]})}getRelationshipStats(e,s,t){return a(`/sessions/${e}/analytics/relationship${n(s)}`)}getJourneyStats(e,s){return a(`/sessions/${e}/analytics/journey${n(s)}`)}executeSQL(e,s){return m(`/sessions/${e}/sql`,{sql:s})}getSchema(e){return c(`/sessions/${e}/schema`)}pluginQuery(e,s,t){return m(`/sessions/${e}/query`,{sql:s,params:t??[]})}}export{h as FetchDataAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as s,T as l,S as o,O as i}from"./index-
|
|
1
|
+
import{N as s,T as l,S as o,O as i}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";class g{async hasConfig(){return s("/ai/llm/has-config")}async getConfigStore(){return s("/ai/llm/configs")}async getAllConfigs(){return(await this.getConfigStore()).configs}async getDefaultAssistantSlot(){return s("/ai/llm/default-assistant-slot")}async getFastModelSlot(){return s("/ai/llm/fast-model-slot")}async setDefaultAssistantModel(e,t){return l("/ai/llm/default-assistant-slot",{configId:e,modelId:t})}async setFastModel(e){return l("/ai/llm/fast-model-slot",e)}async getProviders(){return s("/ai/llm/providers")}async getProviderRegistry(){return s("/ai/llm/provider-registry")}async getModelCatalog(){return s("/ai/llm/model-catalog")}async addConfig(e){return o("/ai/llm/configs",e)}async updateConfig(e,t){return l(`/ai/llm/configs/${e}`,t)}async deleteConfig(e){return i(`/ai/llm/configs/${e}`)}async validateApiKey(e,t,a,r,n,m){return o("/ai/llm/validate-key",{provider:e,apiKey:t,baseUrl:a,model:r,apiFormat:n,configId:m})}async fetchRemoteModels(e,t,a,r,n){return o("/ai/llm/remote-models",{provider:e,apiKey:t,baseUrl:a,apiFormat:r,configId:n})}async addCustomProvider(e){return o("/ai/llm/custom-providers",e)}async updateCustomProvider(e,t){return l(`/ai/llm/custom-providers/${e}`,t)}async deleteCustomProvider(e){return i(`/ai/llm/custom-providers/${e}`)}async addCustomModel(e){return o("/ai/llm/custom-models",e)}async updateCustomModel(e,t,a){return l(`/ai/llm/custom-models/${e}/${encodeURIComponent(t)}`,a)}async deleteCustomModel(e,t){return i(`/ai/llm/custom-models/${e}/${encodeURIComponent(t)}`)}}export{g as FetchLLMAdapter};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{X as O}from"./index-
|
|
1
|
+
import{X as O}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";const N=`
|
|
2
2
|
msg.id,
|
|
3
3
|
m.id as senderId,
|
|
4
4
|
COALESCE(m.group_nickname, m.account_name, m.platform_id) as senderName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as i,S as r,T as s,O as l}from"./index-
|
|
1
|
+
import{N as i,S as r,T as s,O as l}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";class c{async getAll(){return i("/ai/skills")}async getConfig(t){try{return await i(`/ai/skills/${t}`)}catch{return null}}async create(t){return r("/ai/skills",{rawMd:t})}async update(t,a){return s(`/ai/skills/${t}`,{rawMd:a})}async delete(t){return l(`/ai/skills/${t}`)}async importFromMd(t){return r("/ai/skills/import",{rawMd:t})}async importBuiltin(t){return r("/ai/skills/import-builtin",{builtinId:t})}async reimport(t){return r(`/ai/skills/${t}/reimport`,{})}async getBuiltinCatalog(){try{return await i("/ai/skills/builtin-catalog")}catch{return[]}}}export{c as FetchSkillAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as r,Q as n}from"./index-
|
|
1
|
+
import{N as r,Q as n}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";class a{getPresentationPreferences(){return r("/preferences/bootstrap")}getPreferences(){return r("/preferences")}savePreferences(e){return n("/preferences",e)}getUiConfig(){return r("/preferences/ui-config")}saveUiConfig(e){return n("/preferences/ui-config",e)}async getLocale(){return(await r("/preferences/locale")).lang}saveLocale(e){return n("/preferences/locale",{lang:e})}}export{a as FetchPreferencesAdapter};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{W as d,aw as l,N as I}from"./index-
|
|
1
|
+
import{W as d,aw as l,N as I}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";function g(i){return{success:i.success,sessionId:i.sessionId,platform:i.platform,error:i.error,importMode:i.importMode,matchedBy:i.matchedBy,createReason:i.createReason,newMessageCount:i.newMessageCount,duplicateCount:i.duplicateCount,messageCount:i.messageCount,memberCount:i.memberCount,diagnostics:i.diagnostics}}async function S(i,e,t){const o=i.body?.getReader();if(!o)return e;const s=new TextDecoder;let r="",a=e;for(;;){const{done:n,value:y}=await o.read();if(n)break;r+=s.decode(y,{stream:!0});const w=r.split(`
|
|
2
2
|
`);r=w.pop()||"";let p="";for(const u of w)if(u.startsWith("event: "))p=u.slice(7).trim();else if(u.startsWith("data: ")){const f=JSON.parse(u.slice(6));p==="progress"?t?.(f):(p==="done"||p==="error")&&(a=f),p=""}}return a}class B{constructor(){this.activeBatch=null}async requestBatchCancellation(e){try{await d(`${l()}/import/batch/${encodeURIComponent(e)}/cancel`,{method:"POST"})}catch{}}async importFile(e,t,o){if(typeof e=="string")return{success:!1,error:"File path import is not supported in Web mode"};const s=new FormData;s.append("file",e),t?.formatId&&s.append("formatId",t.formatId),t?.chatIndex!==void 0&&s.append("chatIndex",String(t.chatIndex)),t?.sessionGapThreshold!==void 0&&s.append("sessionGapThreshold",String(t.sessionGapThreshold));const r=await d(`${l()}/import`,{method:"POST",body:s});if(!r.ok){const a=await r.text();return{success:!1,error:`HTTP ${r.status}: ${a}`}}return g(await S(r,{success:!1,error:"Unknown error"},o))}async importBatch(e,t,o){if(e.some(n=>typeof n.file=="string"))return e.map(n=>({id:n.id,status:"failed",error:"File path import is not supported in Web mode"}));const s=new FormData;for(const n of e)s.append("files",n.file);t?.sessionGapThreshold!==void 0&&s.append("sessionGapThreshold",String(t.sessionGapThreshold));const r={id:crypto.randomUUID(),cancelRequested:!1};this.activeBatch=r;const a=Array(e.length);try{const n=await d(`${l()}/import/batch`,{method:"POST",body:s,headers:{"X-ChatLab-Import-Batch-Id":r.id}});if(r.cancelRequested&&await this.requestBatchCancellation(r.id),!n.ok||!n.body){const m=await n.text();return e.map(T=>({id:T.id,status:"failed",error:`HTTP ${n.status}: ${m}`}))}const y=n.body.getReader(),w=new TextDecoder;let p="",u=null,f=null,c="";for(;;){const{done:m,value:T}=await y.read();if(m)break;p+=w.decode(T,{stream:!0});const v=p.split(`
|
|
3
3
|
`);p=v.pop()||"";for(const b of v){if(b.startsWith("event: ")){c=b.slice(7).trim();continue}if(!b.startsWith("data: "))continue;const h=JSON.parse(b.slice(6));if(c==="batch-start")o?.({index:h.index,event:"start"});else if(c==="batch-progress")o?.({index:h.index,event:"progress",progress:h.progress});else if(c==="batch-complete"){const $=x(e,h.index,h.result);a[h.index]=$,o?.({index:h.index,event:"complete",result:$})}else c==="done"?u=h.map(($,C)=>x(e,C,$)):c==="error"&&(f=typeof h?.error=="string"?h.error:"Batch import failed");c=""}}return u??e.map((m,T)=>a[T]??{id:m.id,status:"failed",error:f??"Batch response ended without results"})}catch(n){return e.map((y,w)=>a[w]??{id:y.id,status:"failed",error:n instanceof Error?n.message:String(n)})}finally{this.activeBatch===r&&(this.activeBatch=null)}}cancelActiveImport(){this.activeBatch&&(this.activeBatch.cancelRequested=!0,this.requestBatchCancellation(this.activeBatch.id))}async detectFormat(e){if(typeof e=="string")return null;const t=new FormData;t.append("file",e);const o=await d(`${l()}/detect-format`,{method:"POST",body:t});return o.ok?(await o.json()).format:null}async scanMultiChatFile(e){if(typeof e=="string")return[];const t=new FormData;t.append("file",e);const o=await d(`${l()}/scan-multi-chat`,{method:"POST",body:t});return o.ok?(await o.json()).chats:[]}async prepareImportSource(e){if(typeof e=="string")return{success:!1,error:"File path import is not supported in Web mode"};const t=new FormData;t.append("file",e);const o=await d(`${l()}/import-sources`,{method:"POST",body:t}),s=await o.json().catch(()=>null);return o.ok?s??{success:!1,error:"Invalid import source response"}:{success:!1,error:s?.error||`HTTP ${o.status}`}}async importPreparedChat(e,t,o,s){const r=await d(`${l()}/import-sources/${encodeURIComponent(e)}/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chatId:t,sessionGapThreshold:s?.sessionGapThreshold})});if(!r.ok){const a=await r.text();return{success:!1,error:`HTTP ${r.status}: ${a}`}}return g(await S(r,{success:!1,error:"Unknown error"},o))}async releaseImportSource(e){await d(`${l()}/import-sources/${encodeURIComponent(e)}`,{method:"DELETE"})}getSupportedFormats(){return I("/supported-formats")}async importDemo(e,t,o){return new Promise(s=>{d(`${l()}/demo/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:e,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,sessionGapThreshold:o?.sessionGapThreshold})}).then(async r=>{if(!r.ok||!r.body){s({success:!1,error:`HTTP ${r.status}`});return}const a=r.body.getReader(),n=new TextDecoder;let y="";for(;;){const{done:w,value:p}=await a.read();if(w)break;y+=n.decode(p,{stream:!0});const u=y.split(`
|
|
4
4
|
`);y=u.pop()||"";let f="";for(const c of u)if(c.startsWith("event: "))f=c.slice(7).trim();else if(c.startsWith("data: ")){const m=JSON.parse(c.slice(6));if(f==="progress")(m.stage==="downloading"||m.stage==="importing")&&t?.({stage:m.stage});else if(f==="result"){s(m);return}f=""}}s({success:!1,error:"Stream ended without result"})}).catch(r=>s({success:!1,error:String(r)}))})}async analyzeIncrementalImport(e,t){if(typeof t=="string")return{newMessageCount:0,duplicateCount:0,totalInFile:0,error:"File path not supported in Web mode"};const o=new FormData;o.append("file",t);const s=await d(`${l()}/sessions/${e}/import/incremental/analyze`,{method:"POST",body:o});if(!s.ok){const r=await s.text();return{newMessageCount:0,duplicateCount:0,totalInFile:0,error:`HTTP ${s.status}: ${r}`}}return await s.json()}async incrementalImport(e,t,o){if(typeof t=="string")return{success:!1,newMessageCount:0,error:"File path not supported in Web mode"};const s=new FormData;s.append("file",t);const r=await d(`${l()}/sessions/${e}/import/incremental`,{method:"POST",body:s});if(!r.ok){const a=await r.text();return{success:!1,newMessageCount:0,error:`HTTP ${r.status}: ${a}`}}return S(r,{success:!1,newMessageCount:0,error:"Unknown error"},o)}async importDirectory(e,t,o){if(typeof e=="string")return{success:!1,error:"Directory path import is not supported in Web mode"};if(e.length===0)return{success:!1,error:"No files in directory"};const s=new FormData;for(const a of e)s.append("files",a),s.append("relativePaths",a.webkitRelativePath||a.name);t?.sessionGapThreshold!==void 0&&s.append("sessionGapThreshold",String(t.sessionGapThreshold));const r=await d(`${l()}/import-directory`,{method:"POST",body:s});if(!r.ok){const a=await r.text();return{success:!1,error:`HTTP ${r.status}: ${a}`}}return g(await S(r,{success:!1,error:"Unknown error"},o))}}function x(i,e,t){const o=i[e]?.id??String(e);return t?.status==="cancelled"?{id:o,status:"cancelled"}:t?.status==="success"?{id:o,status:"success",result:g(t.result)}:{id:o,status:"failed",error:t?.error??t?.result?.error??"error.import_failed",result:t?.result?g(t.result):void 0}}export{B as FetchImportAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as t,T as o,O as r}from"./index-
|
|
1
|
+
import{N as t,T as o,O as r}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";class u{load(){return t("/navigation-layout")}save(a){return o("/navigation-layout",a)}reset(){return r("/navigation-layout")}}export{u as FetchNavigationLayoutAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as c}from"./index-
|
|
1
|
+
import{W as c}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";class p{preflight(e,n){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/preflight`,{method:"POST",body:JSON.stringify(n)})}start(e,n){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs`,{method:"POST",body:JSON.stringify(n)})}generateDay(e,n,o,t){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/days/${encodeURIComponent(n)}/generate`,{method:"POST",body:JSON.stringify({timezone:o,locale:t})})}getLatestRun(e){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs/latest`)}getRun(e,n){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs/${encodeURIComponent(n)}`)}pause(e,n){return this.runAction(e,n,"pause")}resume(e,n){return this.runAction(e,n,"resume")}cancel(e,n){return this.runAction(e,n,"cancel")}getDay(e,n,o){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/days/${encodeURIComponent(n)}?timezone=${encodeURIComponent(o)}`)}async deleteDay(e,n){return(await s(`/_web/sessions/${encodeURIComponent(e)}/topics/days/${encodeURIComponent(n)}`,{method:"DELETE"})).success}runAction(e,n,o){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs/${encodeURIComponent(n)}/${o}`,{method:"POST"})}}async function s(r,e={}){const n=new Headers(e.headers);e.body!==void 0&&n.set("Content-Type","application/json");const o=await c(r,{...e,headers:n});if(!o.ok){const t=await o.json().catch(()=>null);throw new Error(t?.error||t?.message||`HTTP ${o.status}`)}return o.json()}export{p as FetchChatTopicsAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as r,S as a,T as u,O as l,W as h}from"./index-
|
|
1
|
+
import{N as r,S as a,T as u,O as l,W as h}from"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";const g="This feature is not available in web mode";class ${async getAIChat(e){try{return await r(`/ai/chats/${e}`)}catch{return null}}async getAIChats(e){return r(`/ai/chats?sessionId=${encodeURIComponent(e)}`)}async createAIChat(e,t,s){return a("/ai/chats",{sessionId:e,title:t,assistantId:s})}async updateAIChatTitle(e,t){return u(`/ai/chats/${e}/title`,{title:t})}async deleteAIChat(e){return l(`/ai/chats/${e}`)}async getMessages(e){return r(`/ai/chats/${e}/messages`)}async addMessage(e,t,s,c,n,o,i){return a(`/ai/chats/${e}/messages`,{role:t,content:s,dataKeywords:c,dataMessageCount:n,contentBlocks:o,tokenUsage:i})}async deleteMessagesFrom(e,t){return a(`/ai/chats/${e}/messages/${t}/delete-from`,{})}async forkAIChat(e,t,s){return a(`/ai/chats/${e}/fork`,{upToMessageId:t,title:s})}async updateMessageContent(e,t){await u(`/ai/messages/${e}/content`,{content:t})}async deleteAndRelinkMessage(e,t){await a(`/ai/chats/${e}/messages/${t}/delete-relink`,{})}async insertMessageAfter(e,t,s,c,n,o){return a(`/ai/chats/${e}/messages/insert-after`,{afterMessageId:t,role:s,content:c,contentBlocks:n,tokenUsage:o})}async getAIChatTokenUsage(e){return r(`/ai/chats/${e}/token-usage`)}async estimateContextTokens(e){try{return await r(`/ai/chats/${e}/estimate-tokens`)}catch(t){return{success:!1,tokens:0,error:t instanceof Error?t.message:String(t)}}}async exportFilterResultToFile(e){try{const t=await h(`/_web/sessions/${e.sessionId}/export`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionName:e.sessionName,format:e.format||"txt",timeFilter:e.timeFilter})});if(!t.ok)return{success:!1,error:(await t.json().catch(()=>null))?.error||`HTTP ${t.status}`};const s=await t.blob(),c=t.headers.get("Content-Disposition")?.match(/filename="?(.+?)"?$/)?.[1]||`${e.sessionName}_export.txt`,n=URL.createObjectURL(s),o=document.createElement("a");return o.href=n,o.download=decodeURIComponent(c),o.click(),URL.revokeObjectURL(n),{success:!0}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}onExportProgress(e){return()=>{}}async executeAiSQL(e){return a("/ai/debug/execute-sql",{sql:e})}async getAiSchema(){return r("/ai/debug/schema")}async clearDebugContext(){return a("/ai/debug/clear-debug-context",{})}async getToolCatalog(){try{return await r("/ai/tools/full-catalog")}catch{return r("/ai/tools/catalog")}}async executeTool(e,t,s,c){try{return await a("/ai/tools/execute",{testId:e,toolName:t,params:s,sessionId:c})}catch(n){return{success:!1,error:String(n)}}}async cancelToolTest(e){try{return await a("/ai/tools/cancel",{testId:e})}catch{return{success:!1}}}async getDefaultDesensitizeRules(e){try{return await r(`/ai/desensitize-rules/defaults?locale=${encodeURIComponent(e)}`)}catch{return[]}}async mergeDesensitizeRules(e,t,s={}){try{return await a("/ai/desensitize-rules/merge",{existingRules:e,locale:t,overrides:s})}catch{return e}}async showAiLogFile(){try{return await a("/ai/logs/show")}catch(e){return{success:!1,error:e instanceof Error?e.message:g}}}}export{$ as FetchAIAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as t,J as o,K as r}from"./index-
|
|
1
|
+
import{I as t,J as o,K as r}from"./index-Bq5q3kSU.js";import{A as s}from"./service-BMqwB74f.js";import"./vendor-snapdom--nZvo8Sg.js";function u(){return{get:e=>r().getAnnualSummary(e),recompute:e=>r().recomputeAnnualSummary(e),openOwnerSettings:()=>t().openSettings("data","missing-owner"),subscribeOwnerSettingsClosed:e=>{const n=t();return o(()=>n.showSettings,(a,i)=>{i&&!a&&e()})}}}function g(e){e.register(s,u())}export{u as createAnnualSummaryUiService,g as registerAnnualSummaryUiService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as t,J as o,K as r,M as m}from"./index-
|
|
1
|
+
import{I as t,J as o,K as r,M as m}from"./index-Bq5q3kSU.js";import{T as a}from"./service-CUQ8iHdS.js";import"./vendor-snapdom--nZvo8Sg.js";function u(){return{canConfigureOwner:!m.usesBrowserRuntime,get:e=>r().getTimeInvestment(e),recompute:e=>r().recomputeTimeInvestment(e),openOwnerSettings:()=>t().openSettings("data","missing-owner"),subscribeOwnerSettingsClosed:e=>{const n=t();return o(()=>n.showSettings,(s,i)=>{i&&!s&&e()})}}}function g(e){e.register(a,u())}export{u as createTimeInvestmentUiService,g as registerTimeInvestmentUiService};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RelationshipGalaxyThreeCanvas-
|
|
2
|
-
import{a as Rt,a3 as Tt,K as Nt,J as de,x as Mt,ak as It,o as y,h as k,i as n,c as te,e as g,z as M,$ as Pt,w as he,a5 as Lt,aO as Et,ap as Gt,p as i,F as Ne,j as Me,n as Ie,aL as Pe,l as L,a6 as Le,am as Kt,br as Ue,r as m,f as h,C as ae,bs as qe,bu as Vt}from"./index-sWxuTsa7.js";import{_ as At}from"./Tabs-D1UiZNaZ.js";import{u as Ft}from"./useToast-BA0EwImD.js";import{_ as $t}from"./LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js";import{u as zt}from"./people-page-header-0jvXFFnh.js";import{b as Ot,a as Dt}from"./relationship-galaxy-connections-Cg4G5yYE.js";const jt=10,Ye=80,Bt=2880*60*60,Qe=.1;function Ht(e,l,r={}){if(!l)return{items:[],total:0,hasMore:!1};const b=new Map(e.nodes.map(v=>[v.key,v])),a=e.edges.flatMap(v=>{if(v.sourceKey!==l&&v.targetKey!==l)return[];const _=v.sourceKey===l?v.targetKey:v.sourceKey,K=b.get(_);return K?[{node:K,edge:v,connectionScore:0}]:[]}),u=a.reduce((v,_)=>Math.max(v,_.edge.lastInteractionTs??0),0),E=new Map(a.map(v=>[v,Ee(v.edge,u)]));for(const v of a)v.connectionScore=Ut(E.get(v)??0);a.sort((v,_)=>qt(v,_,u));const G=r.collapsedLimit??jt;return{items:r.expanded?a:a.slice(0,G),total:a.length,hasMore:!r.expanded&&a.length>G}}function Eo(e,l,r={}){return Dt(e,l,{limit:r.limit??Ye})}function Go(e,l,r={}){return Ot(e,l,r)}function Ut(e){return e<=0?0:Math.max(1,Math.round(e))}function qt(e,l,r){const b=Ee(l.edge,r),a=Ee(e.edge,r);if(b!==a)return b-a;if(l.edge.weight!==e.edge.weight)return l.edge.weight-e.edge.weight;const u=l.edge.lastInteractionTs??0,E=e.edge.lastInteractionTs??0;return u!==E?u-E:e.node.rank!==l.node.rank?e.node.rank-l.node.rank:e.node.key.localeCompare(l.node.key)}function Ee(e,l){if(!e.lastInteractionTs||l<=0)return e.weight;const r=Math.max(0,l-e.lastInteractionTs),b=Qe+(1-Qe)*Math.pow(.5,r/Bt);return e.weight*b}function We(e){return e.selectedKey&&e.selectedKey===e.loadingNeighborhoodKey?e.currentCanvasSelectedKey:e.selectedKey}function Qt(e){return e.selectedKey?e.isNeighborhoodMode?e.selectedKey!==e.neighborhoodContactKey:!0:!1}function Wt(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 Yt(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 Jt(e){return e.loadError?e.loadError:e.isTaskFailed&&e.statusText?e.statusText:e.emptyText}const Xt=new RegExp("\\p{Script=Han}","u");function Je(e){const l=e?.trim()??"";if(!l)return"*";const r=Array.from(l),b=[...r].reverse().find(a=>Xt.test(a));return b?`**${b}`:r.length===1?"*":r.length===2?`${r[0]}***`:`${r[0]}***${r.at(-1)}`}function Xe(e,l){if(e.kind==="owner")return l.ownerLabel;const r=e.displayName||e.platformId||e.key;return l.privacyMode?Je(r):r}function Zt(e,l){return e.kind==="owner"?l.ownerLabel:l.privacyMode?"*":(e.displayName||e.platformId||"?").slice(0,1)}function ea(e,l){return e.kind==="owner"?e.avatar:l?null:e.avatar}function ta(e,l){const r=e.platformId||e.key;return l?Je(r):r}const aa="3d";function oa(e){return e==="3d"?"2d":e}function na(e,l,r){return l||r?r:e?.captureView()??null}function sa(e,l){return l&&e?.restoreView(l)===!0?!0:(e?.fitView(),!1)}function la(e,l){return{nodes:e.nodes.map(r=>({...r,displayName:Xe(r,l),visualRole:r.kind==="owner"?"anchor":r.pool==="friend"?"close":"standard",importance:ca(r)})),edges:e.edges.map(r=>({...r})),communities:e.communities.map(r=>({...r}))}}function ra(e,l){const r=new Map(e.nodes.map(u=>[u.key,u])),b=new Map(e.edges.map(u=>[u.id,u])),a=new Map(e.communities.map(u=>[u.id,u]));for(const u of l.nodes)r.has(u.key)||r.set(u.key,u);for(const u of l.edges)b.set(u.id,u);for(const u of l.communities)a.has(u.id)||a.set(u.id,u);return{nodes:[...r.values()],edges:[...b.values()],communities:[...a.values()]}}function ia(e){const l=e.selectedKey;return!l||!e.neighborhood||!e.neighborhood.nodes.some(r=>r.key===l)?e.panorama:ra(e.panorama,e.neighborhood)}function ca(e){if(e.kind==="owner")return 1;const l=oe(e.score,0,1),r=oe(1-(e.rank-1)/120,0,1),b=oe(Math.log10(e.privateMessageCount+1)/4,0,1),a=oe(Math.log10(e.groupMessageCount+1)/4.5,0,1),u=e.pool==="friend"?.12:0;return oe(l*.36+r*.36+b*.18+a*.08+u,0,1)}function oe(e,l,r){return Math.min(r,Math.max(l,e))}const ua={class:"flex min-h-0 flex-1 overflow-hidden text-gray-900 dark:bg-page-dark dark:text-gray-100"},da={class:"dark relative min-h-0 min-w-0 flex-1 overflow-hidden bg-[#03050c] text-gray-100"},ha={class:"absolute left-4 top-4 z-20 flex max-w-[calc(100%-2rem)] flex-wrap items-center gap-1.5 rounded-2xl border border-white/8 bg-[#070a12]/78 p-1.5 shadow-overlay backdrop-blur-xl sm:left-6 sm:max-w-[calc(100%-3rem)]"},pa={class:"relative w-28 max-w-full sm:w-32 lg:w-36"},va={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"},fa={class:"px-2 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},ga={class:"space-y-1"},ma=["disabled","onClick"],ya={class:"min-w-0 flex-1"},xa={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"},ba={class:"block truncate text-[11px] text-gray-500 dark:text-gray-400"},ka={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"},wa={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"},_a={key:4,class:"absolute inset-0 flex items-center justify-center text-sm font-medium text-gray-400"},Sa={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/8 bg-[#070a12]/84 text-white shadow-overlay backdrop-blur-2xl md:inset-x-auto md:bottom-4 md:right-4 md:top-4 md:max-h-none md:w-[360px]"},Ca={key:0,class:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4 pt-5"},Ra={class:"shrink-0 space-y-2.5"},Ta={class:"flex items-center gap-3 pr-8"},Na={class:"min-w-0 flex-1"},Ma={class:"flex min-w-0 items-center gap-1.5"},Ia={class:"truncate text-base font-bold text-gray-900 dark:text-white"},Pa={class:"truncate text-xs text-gray-500 dark:text-gray-400"},La={class:"grid grid-cols-3 gap-y-1 rounded-xl border border-white/8 bg-white/3 p-1 text-xs"},Ea={class:"min-w-0 px-2 py-1.5"},Ga={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ka={class:"flex min-w-0 items-baseline gap-0.5"},Va={class:"font-mono text-sm font-bold leading-4 text-sky-600 dark:text-sky-400"},Aa={class:"min-w-0 border-l border-white/6 px-2 py-1.5"},Fa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},$a={class:"min-w-0 border-l border-white/6 px-2 py-1.5"},za={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Oa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Da={class:"min-w-0 border-t border-white/6 px-2 py-1.5"},ja={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ba={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ha={class:"min-w-0 border-l border-t border-white/6 px-2 py-1.5"},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 font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Qa={class:"min-w-0 border-l border-t border-white/6 px-2 py-1.5"},Wa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ya={class:"block truncate text-[11px] font-semibold leading-4 text-gray-900 dark:text-white"},Ja={class:"flex min-h-0 flex-1 flex-col gap-2"},Xa={class:"flex min-h-0 flex-1 flex-col overflow-hidden border-t border-white/7 pt-3"},Za={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},eo={class:"flex min-w-0 items-center gap-2"},to={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},ao={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},oo={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},no={key:0,class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},so=["onClick"],lo={class:"min-w-0 flex-1"},ro={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"},io={class:"flex w-14 shrink-0 justify-end"},co={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},uo={key:1,class:"py-4 text-center text-xs text-gray-400 dark:text-gray-500"},ho={key:0,class:"flex min-h-0 flex-1 flex-col overflow-hidden border-t border-white/7 pt-3"},po={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},vo={class:"flex min-w-0 items-center gap-2"},fo={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},go={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},mo={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},yo={class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},xo={class:"flex min-w-0 items-center gap-2"},bo={class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/45 shadow-sm dark:bg-white/5"},ko={class:"truncate font-semibold leading-4 text-gray-700 dark:text-gray-200"},wo={class:"flex w-14 shrink-0 justify-end"},_o={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},So=1400,Co=392,Ro=Rt({__name:"index",setup(e){const l={nodes:[],edges:[],communities:[]},r=Ue(()=>qe(()=>import("./RelationshipGalaxyThreeCanvas-BJyuRiC-.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),b=Ue(()=>qe(()=>import("./RelationshipGalaxyCanvas-BODk18aA.js").then(t=>t.as),__vite__mapDeps([7,1,2,3,5]))),{t:a,locale:u}=Tt(),E=Nt(),G=Ft(),A=m("1y"),v=m("panorama"),_=m(""),K=m(""),z=m(!1),ne=m(""),d=m(null),V=m(!1),O=m(null),C=m(null),pe=m(!1),ve=m(!1),q=m(!1),Ge=m(!1),F=m(null),R=m(null),I=m(!1),D=m(aa),Q=m(""),W=m(0),j=m(0),T=m(null),se=m(null);let le=null,fe=null,Y=null,J=null,re=null;const Ze=h(()=>new Intl.NumberFormat(u.value)),et=h(()=>Vt.map(t=>({label:a(`relationships.timeRange.${t}`),value:t}))),tt=h(()=>[{label:a("relationships.graphScope.panorama"),value:"panorama"},{label:a("relationships.graphScope.close"),value:"close"},{label:a("relationships.graphScope.friends"),value:"friends"}]),P=h(()=>O.value?.graph??l),$=h(()=>C.value?.graph??P.value),Ke=h(()=>ia({panorama:P.value,neighborhood:C.value?.graph??null,selectedKey:d.value})),at=h(()=>la(Ke.value,{privacyMode:I.value,ownerLabel:a("relationships.owner.me")})),ot=h(()=>{const t=d.value;return t&&Ke.value.nodes.some(s=>s.key===t)?t:null}),ge=h(()=>!!C.value),me=h(()=>P.value.nodes.length>0||$.value.nodes.length>0),X=h(()=>Wt({graphTask:O.value?.task??null,neighborhoodTask:C.value?.task??null,isNeighborhoodMode:ge.value})),Z=h(()=>X.value?.status==="running"),Ve=h(()=>X.value?.status==="failed"),nt=h(()=>O.value?.cache.status??C.value?.cache.status),Ae=h(()=>O.value?.searchResults??[]),Fe=h(()=>_.value.trim().length>0),st=h(()=>Fe.value&&_.value.trim()===ne.value&&z.value&&Ae.value.length>0),lt=h(()=>(pe.value||Z.value)&&!me.value),rt=h(()=>Z.value&&me.value),x=h(()=>d.value?$.value.nodes.find(t=>t.key===d.value)??P.value.nodes.find(t=>t.key===d.value)??C.value?.contact??null:null),$e=h(()=>V.value&&!!x.value),ze=h(()=>$e.value&&Ge.value?Co:0),it=h(()=>Qt({selectedKey:d.value,isNeighborhoodMode:ge.value,neighborhoodContactKey:C.value?.contact?.key??null})),ie=h(()=>Ht($.value,d.value,{collapsedLimit:Ye})),ye=h(()=>({nodes:P.value.nodes.length,edges:P.value.edges.length,communities:P.value.communities.length})),xe=h(()=>[...$.value.communities].sort((t,s)=>s.size-t.size).slice(0,8)),be=h(()=>nt.value==="stale"&&Z.value?a("relationships.task.updating"):Z.value?vt(X.value):Ve.value?X.value?.lastError||a("relationships.task.failed"):""),ct=h(()=>Jt({loadError:Q.value,isTaskFailed:Ve.value,statusText:be.value,emptyText:a("relationships.empty")}));function w(t){return Ze.value.format(t)}function ut(t){return Math.round(t*100).toString()}function dt(){const t=ie.value.items.length,s=ie.value.total;return s<=t?w(s):`${w(t)} / ${w(s)}`}function ht(t){return t?new Date(t*1e3).toLocaleDateString():a("relationships.detail.emptyValue")}function ke(t){return Zt(t,{privacyMode:I.value,ownerLabel:a("relationships.owner.avatarText")})}function we(t){return ea(t,I.value)}function B(t){return Xe(t,{privacyMode:I.value,ownerLabel:a("relationships.owner.me")})}function pt(t){return ta(t,I.value)}function Oe(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 vt(t){return a("relationships.task.running",{current:w(t?.processedSessions??0),total:w(t?.totalSessions??0)})}function De(t){const s=je(t,v.value);le&&le!==s&&ce();const f=O.value;O.value=f&&le===s?{...t,graph:f.graph}:t,le=s}function ft(t){const s=je(t,`neighborhood:${t.contact?.key??""}`),f=C.value;C.value=f&&fe===s?{...t,graph:f.graph}:t,fe=s}function H(){C.value=null,fe=null}function je(t,s){const f=t.graph;let o=2166136261;o=S(o,s),o=S(o,t.algorithmVersion),o=S(o,t.cache.signature??""),o=N(o,t.timeRange.startTs??0),o=S(o,t.timeRange.preset);for(const p of f.nodes)o=S(o,p.key),o=S(o,p.pool),o=S(o,p.friendSource??""),o=N(o,p.rank),o=N(o,Math.round(p.score*1e6)),o=N(o,p.labelVisibility),o=N(o,Math.round(p.x*100)),o=N(o,Math.round(p.y*100)),o=N(o,Math.round(p.size*100));for(const p of f.edges)o=S(o,p.id),o=S(o,p.sourceKey),o=S(o,p.targetKey),o=N(o,Math.round(p.weight*1e6)),o=N(o,p.visibility);for(const p of f.communities)o=S(o,p.id),o=N(o,p.size),o=S(o,p.color);return`${s}:${f.nodes.length}:${f.edges.length}:${f.communities.length}:${o>>>0}`}function S(t,s){for(let f=0;f<s.length;f+=1)t^=s.charCodeAt(f),t=Math.imul(t,16777619);return t}function N(t,s){return S(t,String(s))}function _e(){Y&&(clearInterval(Y),Y=null)}function U(){j.value+=1,q.value=!1,F.value=null}function Be(){se.value=na(T.value,d.value,se.value)}function ce(){se.value=null}function gt(){const t=se.value;ce(),ae(()=>{sa(T.value,t)})}function Se(t){if(t?.status==="running"){Y||(Y=setInterval(()=>{ee({silent:!0,preserveNeighborhood:!0})},So));return}_e()}async function ee(t={}){const s=W.value+1;W.value=s;const f=X.value?.status??null,o=t.preserveNeighborhood?C.value?.contact?.key??null:null;t.silent||(pe.value=!0),t.preserveNeighborhood||(U(),H()),Q.value="";try{const p=await E.getPeopleRelationships({acceptStale:!0,timeRangePreset:A.value,graphScope:v.value,query:K.value.trim()||void 0});if(s!==W.value)return;De(p),ne.value=K.value.trim(),d.value&&!$.value.nodes.some(Te=>Te.key===d.value)&&(d.value=null,R.value=null,V.value=!1);const c=Yt({previousTaskStatus:f,nextTaskStatus:p.task?.status??null,neighborhoodContactKey:o});Se(p.task),c.type==="refresh-neighborhood"&&ue(c.key)}catch(p){if(s!==W.value)return;Q.value=String(p),G.fail(a("relationships.toast.loadFailed"),{description:String(p)}),_e()}finally{s===W.value&&(pe.value=!1)}}async function mt(){ve.value=!0,Q.value="";try{const t=await E.recomputePeopleRelationships({timeRangePreset:A.value,graphScope:v.value,query:K.value.trim()||void 0});De(t),ne.value=K.value.trim(),U(),H(),d.value=null,R.value=null,V.value=!1,Se(t.task),G.success(a("relationships.toast.recomputeStarted"))}catch(t){G.fail(a("relationships.toast.recomputeFailed"),{description:String(t)})}finally{ve.value=!1}}const yt=h(()=>({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:ve.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:mt},stats:[{id:"nodes",label:a("relationships.stats.nodes"),value:w(ye.value.nodes)},{id:"edges",label:a("relationships.stats.edges"),value:w(ye.value.edges)},{id:"communities",label:a("relationships.stats.communities"),value:w(ye.value.communities),dividerBefore:!0}]}));zt(yt);async function ue(t){const s=j.value+1;j.value=s,q.value=!0,F.value=t,Q.value="";const f=!P.value.nodes.some(o=>o.key===t);try{const o=await E.getPeopleRelationshipNeighborhood(t,{acceptStale:!0,timeRangePreset:A.value,graphScope:v.value});if(s!==j.value)return;ft(o),d.value=o.contact?.key??t,R.value=d.value,Se(o.task),await ae(),D.value==="2d"?T.value?.fitView():f&&d.value&&T.value?.focusNode(d.value)}catch(o){if(s!==j.value)return;G.fail(a("relationships.toast.neighborhoodFailed"),{description:String(o)})}finally{s===j.value&&(q.value=!1,F.value=null)}}async function xt(){d.value&&await ue(d.value)}async function bt(t){if(Be(),z.value=!1,t.inCoreGraph||(F.value=t.key),d.value=t.key,V.value=!0,R.value=We({selectedKey:d.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:R.value}),!t.inCoreGraph){await ue(t.key);return}U(),H(),await ae(),T.value?.focusNode(t.key)}async function Ce(t){Be();const s=C.value?.contact?.key!==t.key;if(s&&(F.value=t.key),d.value=t.key,V.value=!0,R.value=We({selectedKey:d.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:R.value}),await ae(),T.value?.focusNode(t.key),s){await ue(t.key);return}R.value=d.value}async function kt(t){const s=P.value.nodes.find(f=>f.key===t.key)??$.value.nodes.find(f=>f.key===t.key);s&&await Ce(s)}function wt(){const t=oa(D.value);t!==D.value&&(D.value=t,G.warn(a("relationships.toast.threeUnavailable")))}function He(){U(),H(),d.value=null,R.value=null,V.value=!1,gt()}function _t(){He()}function St(){_.value="",ne.value="",z.value=!1}function Ct(){T.value?.fitView()}function Re(){Ge.value=re?.matches??!1}return de(A,()=>{ce(),d.value=null,R.value=null,V.value=!1,U(),H(),ee()}),de(v,()=>{ce(),d.value=null,R.value=null,V.value=!1,U(),H(),ee()}),de(_,t=>{J&&clearTimeout(J),z.value=t.trim().length>0,J=setTimeout(()=>{K.value=t,ee({silent:!0,preserveNeighborhood:!0})},260)}),de(D,async()=>{if(await ae(),d.value){T.value?.focusNode(d.value);return}T.value?.fitView()}),Mt(()=>{typeof window<"u"&&(re=window.matchMedia("(min-width: 768px)"),Re(),re.addEventListener("change",Re)),ee()}),It(()=>{re?.removeEventListener("change",Re),_e(),J&&clearTimeout(J)}),(t,s)=>{const f=At,o=Lt,p=Gt;return y(),k("div",ua,[n("main",da,[D.value==="3d"?(y(),te(g(r),{key:0,ref_key:"canvasRef",ref:T,graph:at.value,"selected-key":ot.value,"safe-inset-right":ze.value,label:g(a)("relationships.canvas.label3d"),onFallback:wt,onSelectNode:kt},null,8,["graph","selected-key","safe-inset-right","label"])):(y(),te(g(b),{key:1,ref_key:"canvasRef",ref:T,graph:$.value,"selected-key":R.value,"privacy-mode":I.value,"safe-inset-right":ze.value,label:g(a)("relationships.canvas.label"),"owner-label":g(a)("relationships.owner.me"),onSelectNode:Ce},null,8,["graph","selected-key","privacy-mode","safe-inset-right","label","owner-label"])),n("div",ha,[M(f,{modelValue:A.value,"onUpdate:modelValue":s[0]||(s[0]=c=>A.value=c),items:et.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),M(f,{modelValue:v.value,"onUpdate:modelValue":s[1]||(s[1]=c=>v.value=c),items:tt.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),n("div",pa,[M(p,{modelValue:_.value,"onUpdate:modelValue":s[2]||(s[2]=c=>_.value=c),icon:"i-lucide-search",placeholder:g(a)("relationships.search"),size:"sm",class:"w-full",onFocus:s[3]||(s[3]=c=>z.value=Fe.value),onKeydown:s[4]||(s[4]=Et(c=>z.value=!1,["esc"]))},Pt({_:2},[_.value?{name:"trailing",fn:he(()=>[M(o,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":g(a)("relationships.actions.clearSearch"),onClick:St},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),st.value?(y(),k("div",va,[n("div",fa,i(g(a)("relationships.searchResults.title")),1),n("div",ga,[(y(!0),k(Ne,null,Me(Ae.value,c=>(y(),k("button",{key:c.key,type:"button",class:Ie(["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",d.value===c.key?"bg-sky-50 dark:bg-sky-500/10":""]),disabled:q.value,onClick:Te=>bt(c)},[M(Pe,{src:we(c),alt:B(c),text:ke(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"]),n("span",ya,[n("span",xa,i(B(c)),1),n("span",ba,i(Oe(c))+" · #"+i(c.rank),1)]),c.inCoreGraph?L("",!0):(y(),k("span",ka,i(g(a)("relationships.searchResults.offCore")),1))],10,ma))),128))])])):L("",!0)]),M(o,{icon:"i-lucide-scan-line",color:"neutral",variant:"soft",size:"xs","aria-label":g(a)("relationships.actions.fitView"),onClick:Ct},null,8,["aria-label"]),M(o,{icon:I.value?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"soft",size:"xs",onClick:s[5]||(s[5]=c=>I.value=!I.value)},{default:he(()=>[Le(i(g(a)("relationships.privacy")),1)]),_:1},8,["icon"]),ge.value?(y(),te(o,{key:0,icon:"i-lucide-undo-2",color:"neutral",variant:"soft",size:"xs",onClick:He},{default:he(()=>[Le(i(g(a)("relationships.actions.backToPanorama")),1)]),_:1})):L("",!0)]),rt.value?(y(),k("div",wa,[s[6]||(s[6]=n("span",{class:"i-lucide-refresh-cw h-3.5 w-3.5 animate-spin text-sky-400"},null,-1)),n("span",null,i(be.value),1)])):L("",!0),lt.value?(y(),te(g($t),{key:3,variant:"overlay",class:"!bg-[#03050c] [&_p]:!text-gray-300",text:be.value||g(a)("relationships.task.updating")},null,8,["text"])):me.value?L("",!0):(y(),k("div",_a,i(ct.value),1)),$e.value?(y(),k("aside",Sa,[M(o,{icon:"i-lucide-x",color:"neutral",variant:"ghost",size:"xs",class:"absolute right-2.5 top-2.5 z-10 text-white/60 hover:bg-white/8 hover:text-white","aria-label":g(a)("relationships.actions.closeDetail"),onClick:_t},null,8,["aria-label"]),x.value?(y(),k("div",Ca,[n("div",Ra,[n("div",Ta,[M(Pe,{src:we(x.value),alt:B(x.value),text:ke(x.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"]),n("div",Na,[n("div",Ma,[n("p",Ia,i(B(x.value)),1),n("span",{class:Ie(["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",x.value.rank<=3?"text-amber-600 dark:text-amber-300":""])}," #"+i(x.value.rank),3)]),n("p",Pa,i(x.value.platform)+" · "+i(pt(x.value)),1)])]),it.value?(y(),te(o,{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:q.value,onClick:xt},{default:he(()=>[Le(i(g(a)("relationships.actions.focusConnections")),1)]),_:1},8,["loading"])):L("",!0),n("div",La,[n("div",Ea,[n("p",Ga,i(g(a)("relationships.detail.score")),1),n("div",Ka,[n("p",Va,i(ut(x.value.score)),1),s[7]||(s[7]=n("span",{class:"text-[9px] leading-3 text-gray-400"},"/100",-1))])]),n("div",Aa,[n("p",Fa,i(g(a)("relationships.detail.type")),1),n("span",{class:Ie(["inline-flex max-w-full items-center truncate text-[10px] font-semibold leading-4",x.value.pool==="friend"?"text-sky-700 dark:text-sky-300":"text-amber-700 dark:text-amber-300"])},i(Oe(x.value)),3)]),n("div",$a,[n("p",za,i(g(a)("relationships.detail.privateMessages")),1),n("span",Oa,i(w(x.value.privateMessageCount)),1)]),n("div",Da,[n("p",ja,i(g(a)("relationships.detail.groupMessages")),1),n("span",Ba,i(w(x.value.groupMessageCount)),1)]),n("div",Ha,[n("p",Ua,i(g(a)("relationships.detail.commonGroups")),1),n("span",qa,i(w(x.value.commonGroupCount)),1)]),n("div",Qa,[n("p",Wa,i(g(a)("relationships.detail.lastInteraction")),1),n("span",Ya,i(ht(x.value.lastInteractionTs)),1)])])]),n("div",Ja,[n("section",Xa,[n("div",Za,[n("div",eo,[n("h3",to,i(g(a)("relationships.connections.title")),1),n("span",ao,i(dt()),1)]),n("span",oo,i(g(a)("relationships.connections.connectionScore")),1)]),ie.value.items.length>0?(y(),k("div",no,[(y(!0),k(Ne,null,Me(ie.value.items,c=>(y(),k("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:Te=>Ce(c.node)},[M(Pe,{src:we(c.node),alt:B(c.node),text:ke(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"]),n("div",lo,[n("span",ro,i(B(c.node)),1)]),n("span",io,[n("span",co,i(w(c.connectionScore)),1)])],8,so))),128))])):(y(),k("p",uo,i(g(a)("relationships.connections.empty")),1))]),xe.value.length>0?(y(),k("section",ho,[n("div",po,[n("div",vo,[n("h2",fo,i(g(a)("relationships.stats.communities")),1),n("span",go,i(w(xe.value.length)),1)]),n("span",mo,i(g(a)("relationships.stats.members")),1)]),n("div",yo,[(y(!0),k(Ne,null,Me(xe.value,c=>(y(),k("div",{key:c.id,class:"flex h-9 items-center justify-between gap-2 rounded-lg px-2 py-0 text-[13px] leading-4"},[n("div",xo,[n("span",bo,[n("span",{class:"h-2 w-2 rounded-full shadow-sm",style:Kt({backgroundColor:c.color})},null,4)]),n("span",ko,i(c.label),1)]),n("span",wo,[n("span",_o,i(w(c.size)),1)])]))),128))])])):L("",!0)])])):L("",!0)])):L("",!0)])])}}}),Ko=Object.freeze(Object.defineProperty({__proto__:null,default:Ro},Symbol.toStringTag,{value:"Module"}));export{Eo as a,Go as b,Xe as g,Ko as i};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RelationshipGalaxyThreeCanvas-CkefzeFJ.js","assets/index-Bq5q3kSU.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-DxhAGqYM.css","assets/relationship-galaxy-connections-Cg4G5yYE.js","assets/relationship-galaxy-viewport-Cwfa51ER.js","assets/RelationshipGalaxyThreeCanvas-CCasBcBQ.css","assets/RelationshipGalaxyCanvas-Cod1JX9m.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as Rt,a3 as Tt,K as Nt,J as de,x as Mt,ak as It,o as y,h as k,i as n,c as te,e as g,z as M,$ as Pt,w as he,a5 as Lt,aO as Et,ap as Gt,p as i,F as Ne,j as Me,n as Ie,aL as Pe,l as L,a6 as Le,am as Kt,br as Ue,r as m,f as h,C as ae,bs as qe,bu as Vt}from"./index-Bq5q3kSU.js";import{_ as At}from"./Tabs-DB603EEu.js";import{u as Ft}from"./useToast-YAHDkKDN.js";import{_ as $t}from"./LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js";import{u as zt}from"./people-page-header-Czt9e1jv.js";import{b as Ot,a as Dt}from"./relationship-galaxy-connections-Cg4G5yYE.js";const jt=10,Ye=80,Bt=2880*60*60,Qe=.1;function Ht(e,l,r={}){if(!l)return{items:[],total:0,hasMore:!1};const b=new Map(e.nodes.map(v=>[v.key,v])),a=e.edges.flatMap(v=>{if(v.sourceKey!==l&&v.targetKey!==l)return[];const _=v.sourceKey===l?v.targetKey:v.sourceKey,K=b.get(_);return K?[{node:K,edge:v,connectionScore:0}]:[]}),u=a.reduce((v,_)=>Math.max(v,_.edge.lastInteractionTs??0),0),E=new Map(a.map(v=>[v,Ee(v.edge,u)]));for(const v of a)v.connectionScore=Ut(E.get(v)??0);a.sort((v,_)=>qt(v,_,u));const G=r.collapsedLimit??jt;return{items:r.expanded?a:a.slice(0,G),total:a.length,hasMore:!r.expanded&&a.length>G}}function Eo(e,l,r={}){return Dt(e,l,{limit:r.limit??Ye})}function Go(e,l,r={}){return Ot(e,l,r)}function Ut(e){return e<=0?0:Math.max(1,Math.round(e))}function qt(e,l,r){const b=Ee(l.edge,r),a=Ee(e.edge,r);if(b!==a)return b-a;if(l.edge.weight!==e.edge.weight)return l.edge.weight-e.edge.weight;const u=l.edge.lastInteractionTs??0,E=e.edge.lastInteractionTs??0;return u!==E?u-E:e.node.rank!==l.node.rank?e.node.rank-l.node.rank:e.node.key.localeCompare(l.node.key)}function Ee(e,l){if(!e.lastInteractionTs||l<=0)return e.weight;const r=Math.max(0,l-e.lastInteractionTs),b=Qe+(1-Qe)*Math.pow(.5,r/Bt);return e.weight*b}function We(e){return e.selectedKey&&e.selectedKey===e.loadingNeighborhoodKey?e.currentCanvasSelectedKey:e.selectedKey}function Qt(e){return e.selectedKey?e.isNeighborhoodMode?e.selectedKey!==e.neighborhoodContactKey:!0:!1}function Wt(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 Yt(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 Jt(e){return e.loadError?e.loadError:e.isTaskFailed&&e.statusText?e.statusText:e.emptyText}const Xt=new RegExp("\\p{Script=Han}","u");function Je(e){const l=e?.trim()??"";if(!l)return"*";const r=Array.from(l),b=[...r].reverse().find(a=>Xt.test(a));return b?`**${b}`:r.length===1?"*":r.length===2?`${r[0]}***`:`${r[0]}***${r.at(-1)}`}function Xe(e,l){if(e.kind==="owner")return l.ownerLabel;const r=e.displayName||e.platformId||e.key;return l.privacyMode?Je(r):r}function Zt(e,l){return e.kind==="owner"?l.ownerLabel:l.privacyMode?"*":(e.displayName||e.platformId||"?").slice(0,1)}function ea(e,l){return e.kind==="owner"?e.avatar:l?null:e.avatar}function ta(e,l){const r=e.platformId||e.key;return l?Je(r):r}const aa="3d";function oa(e){return e==="3d"?"2d":e}function na(e,l,r){return l||r?r:e?.captureView()??null}function sa(e,l){return l&&e?.restoreView(l)===!0?!0:(e?.fitView(),!1)}function la(e,l){return{nodes:e.nodes.map(r=>({...r,displayName:Xe(r,l),visualRole:r.kind==="owner"?"anchor":r.pool==="friend"?"close":"standard",importance:ca(r)})),edges:e.edges.map(r=>({...r})),communities:e.communities.map(r=>({...r}))}}function ra(e,l){const r=new Map(e.nodes.map(u=>[u.key,u])),b=new Map(e.edges.map(u=>[u.id,u])),a=new Map(e.communities.map(u=>[u.id,u]));for(const u of l.nodes)r.has(u.key)||r.set(u.key,u);for(const u of l.edges)b.set(u.id,u);for(const u of l.communities)a.has(u.id)||a.set(u.id,u);return{nodes:[...r.values()],edges:[...b.values()],communities:[...a.values()]}}function ia(e){const l=e.selectedKey;return!l||!e.neighborhood||!e.neighborhood.nodes.some(r=>r.key===l)?e.panorama:ra(e.panorama,e.neighborhood)}function ca(e){if(e.kind==="owner")return 1;const l=oe(e.score,0,1),r=oe(1-(e.rank-1)/120,0,1),b=oe(Math.log10(e.privateMessageCount+1)/4,0,1),a=oe(Math.log10(e.groupMessageCount+1)/4.5,0,1),u=e.pool==="friend"?.12:0;return oe(l*.36+r*.36+b*.18+a*.08+u,0,1)}function oe(e,l,r){return Math.min(r,Math.max(l,e))}const ua={class:"flex min-h-0 flex-1 overflow-hidden text-gray-900 dark:bg-page-dark dark:text-gray-100"},da={class:"dark relative min-h-0 min-w-0 flex-1 overflow-hidden bg-[#03050c] text-gray-100"},ha={class:"absolute left-4 top-4 z-20 flex max-w-[calc(100%-2rem)] flex-wrap items-center gap-1.5 rounded-2xl border border-white/8 bg-[#070a12]/78 p-1.5 shadow-overlay backdrop-blur-xl sm:left-6 sm:max-w-[calc(100%-3rem)]"},pa={class:"relative w-28 max-w-full sm:w-32 lg:w-36"},va={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"},fa={class:"px-2 pb-1.5 pt-0.5 text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},ga={class:"space-y-1"},ma=["disabled","onClick"],ya={class:"min-w-0 flex-1"},xa={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"},ba={class:"block truncate text-[11px] text-gray-500 dark:text-gray-400"},ka={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"},wa={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"},_a={key:4,class:"absolute inset-0 flex items-center justify-center text-sm font-medium text-gray-400"},Sa={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/8 bg-[#070a12]/84 text-white shadow-overlay backdrop-blur-2xl md:inset-x-auto md:bottom-4 md:right-4 md:top-4 md:max-h-none md:w-[360px]"},Ca={key:0,class:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4 pt-5"},Ra={class:"shrink-0 space-y-2.5"},Ta={class:"flex items-center gap-3 pr-8"},Na={class:"min-w-0 flex-1"},Ma={class:"flex min-w-0 items-center gap-1.5"},Ia={class:"truncate text-base font-bold text-gray-900 dark:text-white"},Pa={class:"truncate text-xs text-gray-500 dark:text-gray-400"},La={class:"grid grid-cols-3 gap-y-1 rounded-xl border border-white/8 bg-white/3 p-1 text-xs"},Ea={class:"min-w-0 px-2 py-1.5"},Ga={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ka={class:"flex min-w-0 items-baseline gap-0.5"},Va={class:"font-mono text-sm font-bold leading-4 text-sky-600 dark:text-sky-400"},Aa={class:"min-w-0 border-l border-white/6 px-2 py-1.5"},Fa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},$a={class:"min-w-0 border-l border-white/6 px-2 py-1.5"},za={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Oa={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Da={class:"min-w-0 border-t border-white/6 px-2 py-1.5"},ja={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ba={class:"block truncate font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Ha={class:"min-w-0 border-l border-t border-white/6 px-2 py-1.5"},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 font-mono text-sm font-bold leading-4 text-gray-900 dark:text-white"},Qa={class:"min-w-0 border-l border-t border-white/6 px-2 py-1.5"},Wa={class:"mb-0.5 truncate text-[9px] font-semibold uppercase leading-3 tracking-wide text-gray-400 dark:text-gray-500"},Ya={class:"block truncate text-[11px] font-semibold leading-4 text-gray-900 dark:text-white"},Ja={class:"flex min-h-0 flex-1 flex-col gap-2"},Xa={class:"flex min-h-0 flex-1 flex-col overflow-hidden border-t border-white/7 pt-3"},Za={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},eo={class:"flex min-w-0 items-center gap-2"},to={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},ao={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},oo={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},no={key:0,class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},so=["onClick"],lo={class:"min-w-0 flex-1"},ro={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"},io={class:"flex w-14 shrink-0 justify-end"},co={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},uo={key:1,class:"py-4 text-center text-xs text-gray-400 dark:text-gray-500"},ho={key:0,class:"flex min-h-0 flex-1 flex-col overflow-hidden border-t border-white/7 pt-3"},po={class:"mb-2 flex shrink-0 items-center justify-between gap-3 pl-1 pr-3"},vo={class:"flex min-w-0 items-center gap-2"},fo={class:"truncate text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400"},go={class:"shrink-0 font-mono text-[10px] font-bold text-gray-400 dark:text-gray-500"},mo={class:"w-14 shrink-0 text-right text-[10px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500"},yo={class:"min-h-0 flex-1 space-y-0.5 overflow-y-auto pr-1 scrollbar-thin"},xo={class:"flex min-w-0 items-center gap-2"},bo={class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/45 shadow-sm dark:bg-white/5"},ko={class:"truncate font-semibold leading-4 text-gray-700 dark:text-gray-200"},wo={class:"flex w-14 shrink-0 justify-end"},_o={class:"font-mono text-[10px] font-bold text-gray-500 dark:text-gray-400"},So=1400,Co=392,Ro=Rt({__name:"index",setup(e){const l={nodes:[],edges:[],communities:[]},r=Ue(()=>qe(()=>import("./RelationshipGalaxyThreeCanvas-CkefzeFJ.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),b=Ue(()=>qe(()=>import("./RelationshipGalaxyCanvas-Cod1JX9m.js").then(t=>t.as),__vite__mapDeps([7,1,2,3,5]))),{t:a,locale:u}=Tt(),E=Nt(),G=Ft(),A=m("1y"),v=m("panorama"),_=m(""),K=m(""),z=m(!1),ne=m(""),d=m(null),V=m(!1),O=m(null),C=m(null),pe=m(!1),ve=m(!1),q=m(!1),Ge=m(!1),F=m(null),R=m(null),I=m(!1),D=m(aa),Q=m(""),W=m(0),j=m(0),T=m(null),se=m(null);let le=null,fe=null,Y=null,J=null,re=null;const Ze=h(()=>new Intl.NumberFormat(u.value)),et=h(()=>Vt.map(t=>({label:a(`relationships.timeRange.${t}`),value:t}))),tt=h(()=>[{label:a("relationships.graphScope.panorama"),value:"panorama"},{label:a("relationships.graphScope.close"),value:"close"},{label:a("relationships.graphScope.friends"),value:"friends"}]),P=h(()=>O.value?.graph??l),$=h(()=>C.value?.graph??P.value),Ke=h(()=>ia({panorama:P.value,neighborhood:C.value?.graph??null,selectedKey:d.value})),at=h(()=>la(Ke.value,{privacyMode:I.value,ownerLabel:a("relationships.owner.me")})),ot=h(()=>{const t=d.value;return t&&Ke.value.nodes.some(s=>s.key===t)?t:null}),ge=h(()=>!!C.value),me=h(()=>P.value.nodes.length>0||$.value.nodes.length>0),X=h(()=>Wt({graphTask:O.value?.task??null,neighborhoodTask:C.value?.task??null,isNeighborhoodMode:ge.value})),Z=h(()=>X.value?.status==="running"),Ve=h(()=>X.value?.status==="failed"),nt=h(()=>O.value?.cache.status??C.value?.cache.status),Ae=h(()=>O.value?.searchResults??[]),Fe=h(()=>_.value.trim().length>0),st=h(()=>Fe.value&&_.value.trim()===ne.value&&z.value&&Ae.value.length>0),lt=h(()=>(pe.value||Z.value)&&!me.value),rt=h(()=>Z.value&&me.value),x=h(()=>d.value?$.value.nodes.find(t=>t.key===d.value)??P.value.nodes.find(t=>t.key===d.value)??C.value?.contact??null:null),$e=h(()=>V.value&&!!x.value),ze=h(()=>$e.value&&Ge.value?Co:0),it=h(()=>Qt({selectedKey:d.value,isNeighborhoodMode:ge.value,neighborhoodContactKey:C.value?.contact?.key??null})),ie=h(()=>Ht($.value,d.value,{collapsedLimit:Ye})),ye=h(()=>({nodes:P.value.nodes.length,edges:P.value.edges.length,communities:P.value.communities.length})),xe=h(()=>[...$.value.communities].sort((t,s)=>s.size-t.size).slice(0,8)),be=h(()=>nt.value==="stale"&&Z.value?a("relationships.task.updating"):Z.value?vt(X.value):Ve.value?X.value?.lastError||a("relationships.task.failed"):""),ct=h(()=>Jt({loadError:Q.value,isTaskFailed:Ve.value,statusText:be.value,emptyText:a("relationships.empty")}));function w(t){return Ze.value.format(t)}function ut(t){return Math.round(t*100).toString()}function dt(){const t=ie.value.items.length,s=ie.value.total;return s<=t?w(s):`${w(t)} / ${w(s)}`}function ht(t){return t?new Date(t*1e3).toLocaleDateString():a("relationships.detail.emptyValue")}function ke(t){return Zt(t,{privacyMode:I.value,ownerLabel:a("relationships.owner.avatarText")})}function we(t){return ea(t,I.value)}function B(t){return Xe(t,{privacyMode:I.value,ownerLabel:a("relationships.owner.me")})}function pt(t){return ta(t,I.value)}function Oe(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 vt(t){return a("relationships.task.running",{current:w(t?.processedSessions??0),total:w(t?.totalSessions??0)})}function De(t){const s=je(t,v.value);le&&le!==s&&ce();const f=O.value;O.value=f&&le===s?{...t,graph:f.graph}:t,le=s}function ft(t){const s=je(t,`neighborhood:${t.contact?.key??""}`),f=C.value;C.value=f&&fe===s?{...t,graph:f.graph}:t,fe=s}function H(){C.value=null,fe=null}function je(t,s){const f=t.graph;let o=2166136261;o=S(o,s),o=S(o,t.algorithmVersion),o=S(o,t.cache.signature??""),o=N(o,t.timeRange.startTs??0),o=S(o,t.timeRange.preset);for(const p of f.nodes)o=S(o,p.key),o=S(o,p.pool),o=S(o,p.friendSource??""),o=N(o,p.rank),o=N(o,Math.round(p.score*1e6)),o=N(o,p.labelVisibility),o=N(o,Math.round(p.x*100)),o=N(o,Math.round(p.y*100)),o=N(o,Math.round(p.size*100));for(const p of f.edges)o=S(o,p.id),o=S(o,p.sourceKey),o=S(o,p.targetKey),o=N(o,Math.round(p.weight*1e6)),o=N(o,p.visibility);for(const p of f.communities)o=S(o,p.id),o=N(o,p.size),o=S(o,p.color);return`${s}:${f.nodes.length}:${f.edges.length}:${f.communities.length}:${o>>>0}`}function S(t,s){for(let f=0;f<s.length;f+=1)t^=s.charCodeAt(f),t=Math.imul(t,16777619);return t}function N(t,s){return S(t,String(s))}function _e(){Y&&(clearInterval(Y),Y=null)}function U(){j.value+=1,q.value=!1,F.value=null}function Be(){se.value=na(T.value,d.value,se.value)}function ce(){se.value=null}function gt(){const t=se.value;ce(),ae(()=>{sa(T.value,t)})}function Se(t){if(t?.status==="running"){Y||(Y=setInterval(()=>{ee({silent:!0,preserveNeighborhood:!0})},So));return}_e()}async function ee(t={}){const s=W.value+1;W.value=s;const f=X.value?.status??null,o=t.preserveNeighborhood?C.value?.contact?.key??null:null;t.silent||(pe.value=!0),t.preserveNeighborhood||(U(),H()),Q.value="";try{const p=await E.getPeopleRelationships({acceptStale:!0,timeRangePreset:A.value,graphScope:v.value,query:K.value.trim()||void 0});if(s!==W.value)return;De(p),ne.value=K.value.trim(),d.value&&!$.value.nodes.some(Te=>Te.key===d.value)&&(d.value=null,R.value=null,V.value=!1);const c=Yt({previousTaskStatus:f,nextTaskStatus:p.task?.status??null,neighborhoodContactKey:o});Se(p.task),c.type==="refresh-neighborhood"&&ue(c.key)}catch(p){if(s!==W.value)return;Q.value=String(p),G.fail(a("relationships.toast.loadFailed"),{description:String(p)}),_e()}finally{s===W.value&&(pe.value=!1)}}async function mt(){ve.value=!0,Q.value="";try{const t=await E.recomputePeopleRelationships({timeRangePreset:A.value,graphScope:v.value,query:K.value.trim()||void 0});De(t),ne.value=K.value.trim(),U(),H(),d.value=null,R.value=null,V.value=!1,Se(t.task),G.success(a("relationships.toast.recomputeStarted"))}catch(t){G.fail(a("relationships.toast.recomputeFailed"),{description:String(t)})}finally{ve.value=!1}}const yt=h(()=>({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:ve.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:mt},stats:[{id:"nodes",label:a("relationships.stats.nodes"),value:w(ye.value.nodes)},{id:"edges",label:a("relationships.stats.edges"),value:w(ye.value.edges)},{id:"communities",label:a("relationships.stats.communities"),value:w(ye.value.communities),dividerBefore:!0}]}));zt(yt);async function ue(t){const s=j.value+1;j.value=s,q.value=!0,F.value=t,Q.value="";const f=!P.value.nodes.some(o=>o.key===t);try{const o=await E.getPeopleRelationshipNeighborhood(t,{acceptStale:!0,timeRangePreset:A.value,graphScope:v.value});if(s!==j.value)return;ft(o),d.value=o.contact?.key??t,R.value=d.value,Se(o.task),await ae(),D.value==="2d"?T.value?.fitView():f&&d.value&&T.value?.focusNode(d.value)}catch(o){if(s!==j.value)return;G.fail(a("relationships.toast.neighborhoodFailed"),{description:String(o)})}finally{s===j.value&&(q.value=!1,F.value=null)}}async function xt(){d.value&&await ue(d.value)}async function bt(t){if(Be(),z.value=!1,t.inCoreGraph||(F.value=t.key),d.value=t.key,V.value=!0,R.value=We({selectedKey:d.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:R.value}),!t.inCoreGraph){await ue(t.key);return}U(),H(),await ae(),T.value?.focusNode(t.key)}async function Ce(t){Be();const s=C.value?.contact?.key!==t.key;if(s&&(F.value=t.key),d.value=t.key,V.value=!0,R.value=We({selectedKey:d.value,loadingNeighborhoodKey:F.value,currentCanvasSelectedKey:R.value}),await ae(),T.value?.focusNode(t.key),s){await ue(t.key);return}R.value=d.value}async function kt(t){const s=P.value.nodes.find(f=>f.key===t.key)??$.value.nodes.find(f=>f.key===t.key);s&&await Ce(s)}function wt(){const t=oa(D.value);t!==D.value&&(D.value=t,G.warn(a("relationships.toast.threeUnavailable")))}function He(){U(),H(),d.value=null,R.value=null,V.value=!1,gt()}function _t(){He()}function St(){_.value="",ne.value="",z.value=!1}function Ct(){T.value?.fitView()}function Re(){Ge.value=re?.matches??!1}return de(A,()=>{ce(),d.value=null,R.value=null,V.value=!1,U(),H(),ee()}),de(v,()=>{ce(),d.value=null,R.value=null,V.value=!1,U(),H(),ee()}),de(_,t=>{J&&clearTimeout(J),z.value=t.trim().length>0,J=setTimeout(()=>{K.value=t,ee({silent:!0,preserveNeighborhood:!0})},260)}),de(D,async()=>{if(await ae(),d.value){T.value?.focusNode(d.value);return}T.value?.fitView()}),Mt(()=>{typeof window<"u"&&(re=window.matchMedia("(min-width: 768px)"),Re(),re.addEventListener("change",Re)),ee()}),It(()=>{re?.removeEventListener("change",Re),_e(),J&&clearTimeout(J)}),(t,s)=>{const f=At,o=Lt,p=Gt;return y(),k("div",ua,[n("main",da,[D.value==="3d"?(y(),te(g(r),{key:0,ref_key:"canvasRef",ref:T,graph:at.value,"selected-key":ot.value,"safe-inset-right":ze.value,label:g(a)("relationships.canvas.label3d"),onFallback:wt,onSelectNode:kt},null,8,["graph","selected-key","safe-inset-right","label"])):(y(),te(g(b),{key:1,ref_key:"canvasRef",ref:T,graph:$.value,"selected-key":R.value,"privacy-mode":I.value,"safe-inset-right":ze.value,label:g(a)("relationships.canvas.label"),"owner-label":g(a)("relationships.owner.me"),onSelectNode:Ce},null,8,["graph","selected-key","privacy-mode","safe-inset-right","label","owner-label"])),n("div",ha,[M(f,{modelValue:A.value,"onUpdate:modelValue":s[0]||(s[0]=c=>A.value=c),items:et.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),M(f,{modelValue:v.value,"onUpdate:modelValue":s[1]||(s[1]=c=>v.value=c),items:tt.value,content:!1,size:"xs",class:"min-w-max gap-0"},null,8,["modelValue","items"]),n("div",pa,[M(p,{modelValue:_.value,"onUpdate:modelValue":s[2]||(s[2]=c=>_.value=c),icon:"i-lucide-search",placeholder:g(a)("relationships.search"),size:"sm",class:"w-full",onFocus:s[3]||(s[3]=c=>z.value=Fe.value),onKeydown:s[4]||(s[4]=Et(c=>z.value=!1,["esc"]))},Pt({_:2},[_.value?{name:"trailing",fn:he(()=>[M(o,{icon:"i-heroicons-x-mark",variant:"link",color:"neutral",size:"xs","aria-label":g(a)("relationships.actions.clearSearch"),onClick:St},null,8,["aria-label"])]),key:"0"}:void 0]),1032,["modelValue","placeholder"]),st.value?(y(),k("div",va,[n("div",fa,i(g(a)("relationships.searchResults.title")),1),n("div",ga,[(y(!0),k(Ne,null,Me(Ae.value,c=>(y(),k("button",{key:c.key,type:"button",class:Ie(["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",d.value===c.key?"bg-sky-50 dark:bg-sky-500/10":""]),disabled:q.value,onClick:Te=>bt(c)},[M(Pe,{src:we(c),alt:B(c),text:ke(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"]),n("span",ya,[n("span",xa,i(B(c)),1),n("span",ba,i(Oe(c))+" · #"+i(c.rank),1)]),c.inCoreGraph?L("",!0):(y(),k("span",ka,i(g(a)("relationships.searchResults.offCore")),1))],10,ma))),128))])])):L("",!0)]),M(o,{icon:"i-lucide-scan-line",color:"neutral",variant:"soft",size:"xs","aria-label":g(a)("relationships.actions.fitView"),onClick:Ct},null,8,["aria-label"]),M(o,{icon:I.value?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"soft",size:"xs",onClick:s[5]||(s[5]=c=>I.value=!I.value)},{default:he(()=>[Le(i(g(a)("relationships.privacy")),1)]),_:1},8,["icon"]),ge.value?(y(),te(o,{key:0,icon:"i-lucide-undo-2",color:"neutral",variant:"soft",size:"xs",onClick:He},{default:he(()=>[Le(i(g(a)("relationships.actions.backToPanorama")),1)]),_:1})):L("",!0)]),rt.value?(y(),k("div",wa,[s[6]||(s[6]=n("span",{class:"i-lucide-refresh-cw h-3.5 w-3.5 animate-spin text-sky-400"},null,-1)),n("span",null,i(be.value),1)])):L("",!0),lt.value?(y(),te(g($t),{key:3,variant:"overlay",class:"!bg-[#03050c] [&_p]:!text-gray-300",text:be.value||g(a)("relationships.task.updating")},null,8,["text"])):me.value?L("",!0):(y(),k("div",_a,i(ct.value),1)),$e.value?(y(),k("aside",Sa,[M(o,{icon:"i-lucide-x",color:"neutral",variant:"ghost",size:"xs",class:"absolute right-2.5 top-2.5 z-10 text-white/60 hover:bg-white/8 hover:text-white","aria-label":g(a)("relationships.actions.closeDetail"),onClick:_t},null,8,["aria-label"]),x.value?(y(),k("div",Ca,[n("div",Ra,[n("div",Ta,[M(Pe,{src:we(x.value),alt:B(x.value),text:ke(x.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"]),n("div",Na,[n("div",Ma,[n("p",Ia,i(B(x.value)),1),n("span",{class:Ie(["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",x.value.rank<=3?"text-amber-600 dark:text-amber-300":""])}," #"+i(x.value.rank),3)]),n("p",Pa,i(x.value.platform)+" · "+i(pt(x.value)),1)])]),it.value?(y(),te(o,{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:q.value,onClick:xt},{default:he(()=>[Le(i(g(a)("relationships.actions.focusConnections")),1)]),_:1},8,["loading"])):L("",!0),n("div",La,[n("div",Ea,[n("p",Ga,i(g(a)("relationships.detail.score")),1),n("div",Ka,[n("p",Va,i(ut(x.value.score)),1),s[7]||(s[7]=n("span",{class:"text-[9px] leading-3 text-gray-400"},"/100",-1))])]),n("div",Aa,[n("p",Fa,i(g(a)("relationships.detail.type")),1),n("span",{class:Ie(["inline-flex max-w-full items-center truncate text-[10px] font-semibold leading-4",x.value.pool==="friend"?"text-sky-700 dark:text-sky-300":"text-amber-700 dark:text-amber-300"])},i(Oe(x.value)),3)]),n("div",$a,[n("p",za,i(g(a)("relationships.detail.privateMessages")),1),n("span",Oa,i(w(x.value.privateMessageCount)),1)]),n("div",Da,[n("p",ja,i(g(a)("relationships.detail.groupMessages")),1),n("span",Ba,i(w(x.value.groupMessageCount)),1)]),n("div",Ha,[n("p",Ua,i(g(a)("relationships.detail.commonGroups")),1),n("span",qa,i(w(x.value.commonGroupCount)),1)]),n("div",Qa,[n("p",Wa,i(g(a)("relationships.detail.lastInteraction")),1),n("span",Ya,i(ht(x.value.lastInteractionTs)),1)])])]),n("div",Ja,[n("section",Xa,[n("div",Za,[n("div",eo,[n("h3",to,i(g(a)("relationships.connections.title")),1),n("span",ao,i(dt()),1)]),n("span",oo,i(g(a)("relationships.connections.connectionScore")),1)]),ie.value.items.length>0?(y(),k("div",no,[(y(!0),k(Ne,null,Me(ie.value.items,c=>(y(),k("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:Te=>Ce(c.node)},[M(Pe,{src:we(c.node),alt:B(c.node),text:ke(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"]),n("div",lo,[n("span",ro,i(B(c.node)),1)]),n("span",io,[n("span",co,i(w(c.connectionScore)),1)])],8,so))),128))])):(y(),k("p",uo,i(g(a)("relationships.connections.empty")),1))]),xe.value.length>0?(y(),k("section",ho,[n("div",po,[n("div",vo,[n("h2",fo,i(g(a)("relationships.stats.communities")),1),n("span",go,i(w(xe.value.length)),1)]),n("span",mo,i(g(a)("relationships.stats.members")),1)]),n("div",yo,[(y(!0),k(Ne,null,Me(xe.value,c=>(y(),k("div",{key:c.id,class:"flex h-9 items-center justify-between gap-2 rounded-lg px-2 py-0 text-[13px] leading-4"},[n("div",xo,[n("span",bo,[n("span",{class:"h-2 w-2 rounded-full shadow-sm",style:Kt({backgroundColor:c.color})},null,4)]),n("span",ko,i(c.label),1)]),n("span",wo,[n("span",_o,i(w(c.size)),1)])]))),128))])])):L("",!0)])])):L("",!0)])):L("",!0)])])}}}),Ko=Object.freeze(Object.defineProperty({__proto__:null,default:Ro},Symbol.toStringTag,{value:"Module"}));export{Eo as a,Go as b,Xe as g,Ko as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as G,o as d,h as m,i as e,F as Y,j as U,p as s,e as r,f as u,n as W,ae as Q,c as K,z as C,w as B,a6 as E,a4 as Z,am as X,r as q,af as ee,ah as te,ai as ae,aj as se,J as ne,ak as re,Y as oe,l as I,a5 as ie,bt as le}from"./index-sWxuTsa7.js";import{_ as ce}from"./LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js";import{A as ue}from"./service-CVoA9yNf.js";import{_ as de,g as ge}from"./EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js";import{_ as V}from"./ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js";import{C as me}from"./EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js";import"./vendor-echarts-wordcloud-B8CF_NgP.js";import"./vendor-snapdom--nZvo8Sg.js";import"./vendor-echarts-hTLhTs52.js";import"./vendor-zrender-D8psf1AA.js";const xe=1440*60*1e3;function ve(v){const t=new Map;for(const o of v){if(o.messageCount<=0)continue;const l=pe(o.date);l!==null&&t.set(l,(t.get(l)??0)+o.messageCount)}const n=[...t.keys()].sort((o,l)=>o-l);if(n.length===0)return{longestActiveStreak:0,topWeekday:null,weekdayMessageRate:null,weekendMessageRate:null};const x=Array.from({length:7},()=>0);let _=1,y=1;n.forEach((o,l)=>{const p=(new Date(o).getUTCDay()+6)%7;x[p]+=t.get(o)??0,l!==0&&(o-n[l-1]===xe?(y++,_=Math.max(_,y)):y=1)});const k=x.reduce((o,l)=>o+l,0),A=x[5]+x[6],w=Math.round(A/k*100),i=x.reduce((o,l,p)=>l>x[o]?p:o,0);return{longestActiveStreak:_,topWeekday:i+1,weekdayMessageRate:100-w,weekendMessageRate:w}}function pe(v){const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(v);if(!t)return null;const n=Number(t[1]),x=Number(t[2]),_=Number(t[3]),y=Date.UTC(n,x-1,_),k=new Date(y);return k.getUTCFullYear()!==n||k.getUTCMonth()!==x-1||k.getUTCDate()!==_?null:y}const he={class:"annual-calendar"},ye={class:"annual-calendar-months grid grid-cols-2 gap-x-4 gap-y-5"},ke={class:"mb-1.5 text-[11px] font-bold text-gray-500 dark:text-zinc-400"},fe={class:"grid grid-cols-7 gap-[3px]","aria-hidden":"true"},be=["title"],_e={class:"mt-4 flex items-center justify-end gap-1.5 text-[10px] text-gray-400 dark:text-zinc-500"},we=G({__name:"InsightCalendarGrid",props:{t:{type:Function},range:{},data:{},formatValue:{type:Function}},setup(v){const t=v,n=t.t,x=u(()=>Math.max(...t.data.map(o=>o.value),1)),_=u(()=>new Map(t.data.map(o=>[o.date,o.value]))),y=u(()=>new Date(t.range.startTs*1e3)),k=u(()=>new Date(t.range.endTs*1e3)),A=u(()=>{const o=y.value,l=k.value,p=[],h=t.range.year??o.getFullYear(),$=t.range.mode==="year"?new Date(h,0,1):new Date(o.getFullYear(),o.getMonth(),1),F=t.range.mode==="year"?new Date(h,11,1):new Date(l.getFullYear(),l.getMonth(),1);for(;$<=F;){const N=$.getFullYear(),M=$.getMonth(),R=`${N}-${String(M+1).padStart(2,"0")}`,f=new Date(N,M+1,0).getDate(),P=Array.from({length:f},(O,L)=>{const T=L+1,a=`${R}-${String(T).padStart(2,"0")}`,g=new Date(N,M,T),S=_.value.get(a)??0,c=g>=w(o)&&g<=w(l);return{key:a,day:T,count:S,inRange:c,level:c&&S>0?Math.max(1,Math.ceil(S/x.value*4)):0}});p.push({key:R,label:t.range.mode==="year"?t.t("monthLabel",{month:M+1}):R.replace("-","/"),leadingDays:(new Date(N,M,1).getDay()+6)%7,days:P}),$.setMonth($.getMonth()+1)}return p});function w(o){return new Date(o.getFullYear(),o.getMonth(),o.getDate())}function i(o){return t.formatValue?.(o)??`${o} ${t.t("messages")}`}return(o,l)=>(d(),m("div",he,[e("div",ye,[(d(!0),m(Y,null,U(A.value,p=>(d(),m("div",{key:p.key,class:"min-w-0"},[e("div",ke,s(p.label),1),e("div",fe,[(d(!0),m(Y,null,U(p.leadingDays,h=>(d(),m("span",{key:`blank-${h}`,class:"aspect-square min-h-[7px] rounded-[3px] bg-gray-50 dark:bg-zinc-800/30"}))),128)),(d(!0),m(Y,null,U(p.days,h=>(d(),m("span",{key:h.key,class:W(["aspect-square min-h-[7px] rounded-[3px]",{"opacity-30":!h.inRange,"bg-gray-50 dark:bg-zinc-800/30":h.level===0,"bg-pink-100 dark:bg-pink-500/10":h.level===1,"bg-pink-200 dark:bg-pink-500/25":h.level===2,"bg-pink-400 dark:bg-pink-500/50":h.level===3,"bg-pink-600 dark:bg-pink-500/80":h.level===4}]),title:`${h.key}: ${i(h.count)}`},null,10,be))),128))])]))),128))]),e("div",_e,[e("span",null,s(r(n)("calendar.less")),1),l[0]||(l[0]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-100 dark:bg-pink-500/10"},null,-1)),l[1]||(l[1]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-200 dark:bg-pink-500/25"},null,-1)),l[2]||(l[2]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-400 dark:bg-pink-500/50"},null,-1)),l[3]||(l[3]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-600 dark:bg-pink-500/80"},null,-1)),e("span",null,s(r(n)("calendar.more")),1)])]))}}),De=Q(we,[["__scopeId","data-v-593a96f3"]]),Ce=G({__name:"AnnualMonthlyTrend",props:{t:{type:Function},range:{},data:{},height:{}},setup(v){const t=v,n=u(()=>({labels:t.data.map(x=>t.range.mode==="year"?t.t("monthLabel",{month:Number(x.month.slice(5))}):x.month.replace("-","/")),values:t.data.map(x=>x.value)}));return(x,_)=>(d(),K(r(de),{data:n.value,height:v.height??260,"border-radius":3},null,8,["data","height"]))}}),Me={class:"grid gap-4 xl:grid-cols-7"},Se={class:"relative z-10 min-w-0 px-5 pt-6 pb-5 sm:px-8 sm:pt-8 sm:pb-6"},ze={class:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-3xl"},Te={class:"mt-6"},$e={class:"max-w-3xl space-y-3 text-gray-600 dark:text-zinc-300"},Ae={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-lg leading-relaxed sm:text-xl"},Ne={class:"font-black text-2xl tracking-tight tabular-nums text-pink-600 sm:text-3xl dark:text-pink-400"},Le={class:"font-black text-2xl tabular-nums text-blue-600 sm:text-3xl dark:text-blue-400"},Ye={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-base leading-relaxed sm:text-lg"},Fe={class:"font-black text-2xl tabular-nums text-indigo-600 dark:text-indigo-400"},Re={class:"font-black text-2xl tabular-nums text-amber-600 dark:text-amber-400"},Ue={class:"mt-7"},je={class:"mb-2 text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-zinc-500"},Ie={class:"grid grid-cols-2 gap-2 lg:grid-cols-4"},Be={class:"min-w-0"},Ee={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},Pe={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-zinc-500"},Oe={class:"mt-6 w-full min-w-0"},Ve={class:"mb-1 flex flex-wrap items-center justify-between gap-3"},We={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-zinc-300"},qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ge={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-zinc-800"},He=["aria-pressed","onClick"],Ke={class:"mt-5 flex flex-wrap items-center justify-between gap-x-6 gap-y-1 border-t border-gray-200/60 pt-4 font-mono text-[10px] text-gray-400 dark:border-white/5 dark:text-zinc-500"},Je={class:"grid min-w-0 gap-4 xl:col-span-4"},Xe={class:"min-w-0 p-5 sm:p-6"},Ze={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},Qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},et={key:0,class:"mt-5 grid grid-cols-2 gap-x-5 gap-y-4 sm:grid-cols-3"},tt={class:"flex items-end justify-between gap-2"},at={class:"truncate text-xs font-medium text-gray-600 dark:text-zinc-300"},st={class:"font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},nt={class:"mt-2 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},rt={class:"mt-1.5 font-mono text-[10px] text-gray-400 dark:text-zinc-500"},ot={key:1,class:"flex h-28 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},it={class:"min-w-0 p-5 sm:p-6"},lt={class:"flex items-start justify-between gap-3"},ct={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},ut={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},dt={class:"flex shrink-0 gap-3 text-right"},gt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},mt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},xt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},vt={key:0,class:"mt-5 flex h-24 items-end gap-2"},pt={class:"flex h-16 w-full items-end rounded-sm bg-gray-100 dark:bg-zinc-800"},ht=["title"],yt={class:"w-full truncate text-center font-mono text-[9px] text-gray-400 dark:text-zinc-500"},kt={key:1,class:"flex h-24 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},ft={class:"h-full min-w-0 p-5 sm:p-6"},bt={class:"flex items-start justify-between gap-4"},_t={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},wt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Dt={class:"shrink-0 text-right"},Ct={class:"font-mono text-lg font-black tabular-nums text-gray-900 dark:text-white"},Mt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},St={class:"mt-5"},zt=G({__name:"AnnualInsightBoard",props:{t:{type:Function},formatDate:{type:Function},formatNumber:{type:Function},range:{},metrics:{},coverage:{},monthlyActivity:{},monthlyDirectContacts:{},dailyActivity:{},messageTypes:{},textLength:{}},setup(v){const t=v,n=t.t,x=q("messages"),_=u(()=>t.range.mode==="year"?t.t("overview.yearTitle",{year:t.range.year}):t.t("overview.recentTitle")),y=u(()=>{const a={day:"2-digit",month:"2-digit",year:"numeric"};return`${t.formatDate(t.range.startTs*1e3,a)} – ${t.formatDate(t.range.endTs*1e3,a)}`}),k=u(()=>t.monthlyActivity.reduce((a,g)=>!a||g.messageCount>a.messageCount?g:a,null)),A=u(()=>t.dailyActivity.reduce((a,g)=>!a||g.messageCount>a.messageCount?g:a,null)),w=u(()=>[...t.messageTypes].sort((a,g)=>g.count-a.count).slice(0,6)),i=u(()=>t.messageTypes.reduce((a,g)=>a+g.count,0)),o=u(()=>t.messageTypes.find(a=>a.type===ee.TEXT)?.count??0),l=u(()=>L(o.value,i.value)),p=u(()=>Math.max(...t.textLength.buckets.map(a=>a.count),1)),h=u(()=>{const a=Math.max(1,Math.round((t.range.endTs-t.range.startTs)/86400)+1);return L(t.metrics.activeDayCount,a)}),$=u(()=>ve(t.dailyActivity)),F=u(()=>[{key:"dailyContacts",value:f(t.metrics.averageDirectContactsPerDay),label:t.t("overview.dailyContacts"),subtext:t.t("overview.perDay"),icon:"i-heroicons-user-plus",colorClass:"text-blue-600 dark:text-blue-400"},{key:"peakMonth",value:P(k.value?.month),label:t.t("overview.peakMonth"),subtext:t.t("overview.messagesCount",{count:f(k.value?.messageCount??0)}),icon:"i-heroicons-calendar-days",colorClass:"text-pink-600 dark:text-pink-400"},{key:"peakDay",value:O(A.value?.date),label:t.t("overview.peakDay"),subtext:t.t("overview.messagesCount",{count:f(A.value?.messageCount??0)}),icon:"i-heroicons-fire",colorClass:"text-red-600 dark:text-red-400"},{key:"longestActiveStreak",value:f($.value.longestActiveStreak),label:t.t("overview.longestActiveStreak"),subtext:t.t("overview.consecutiveActiveDays"),icon:"i-heroicons-bolt",colorClass:"text-amber-600 dark:text-amber-400"}]),N=u(()=>x.value==="messages"?t.monthlyActivity.map(a=>({month:a.month,value:a.messageCount})):t.monthlyDirectContacts.map(a=>({month:a.month,value:a.contactCount}))),M=u(()=>t.dailyActivity.map(a=>({date:a.date,value:a.messageCount}))),R=u(()=>t.t(x.value==="messages"?"sections.overviewDescription":"sections.directContactsDescription"));function f(a){return t.formatNumber(a,Number.isInteger(a)?void 0:{maximumFractionDigits:1})}function P(a){return a?t.range.mode==="year"?t.t("monthLabel",{month:Number(a.slice(5))}):a.replace("-","/"):"-"}function O(a){if(!a)return"-";const[g,S,c]=a.split("-");return t.formatDate(new Date(Number(g),Number(S)-1,Number(c)),{day:"2-digit",month:"2-digit"})}function L(a,g){return g>0?Math.round(a/g*100):0}function T(a){return n(a)}return(a,g)=>{const S=Z;return d(),m("div",Me,[C(r(V),{class:"relative isolate overflow-hidden xl:col-span-7"},{default:B(()=>[C(r(me)),e("section",Se,[e("h2",ze,s(_.value),1),e("div",Te,[e("div",$e,[e("p",Ae,[e("span",null,s(r(n)("overview.narrative.messagesPrefix")),1),e("span",Ne,s(f(v.metrics.sentMessageCount)),1),e("span",null,s(r(n)("overview.narrative.messagesSuffix")),1),e("span",Le,s(f(v.metrics.averageMessagesPerDay)),1),e("span",null,s(r(n)("overview.narrative.dailySuffix")),1)]),e("p",Ye,[e("span",null,s(r(n)("overview.narrative.activePrefix")),1),e("span",Fe,s(f(v.metrics.activeDayCount)),1),e("span",null,s(r(n)("overview.narrative.activeMiddle")),1),e("span",Re,s(f(v.metrics.directContactCount)),1),e("span",null,s(r(n)("overview.narrative.contactsSuffix")),1)])]),e("div",Ue,[e("div",je,s(r(n)("overview.keyMetrics")),1),e("div",Ie,[(d(!0),m(Y,null,U(F.value,c=>(d(),m("div",{key:c.key,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[C(S,{name:c.icon,class:W(["mt-0.5 h-3.5 w-3.5 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Be,[e("div",{class:W(["truncate font-mono text-sm leading-tight font-black tabular-nums",c.colorClass])},s(c.value),3),e("div",Ee,s(c.label),1),e("div",Pe,s(c.subtext),1)])]))),128))])]),e("div",Oe,[e("div",Ve,[e("div",null,[e("h3",We,s(r(n)("sections.overview")),1),e("p",qe,s(R.value),1)]),e("div",Ge,[(d(),m(Y,null,U(["messages","contacts"],c=>e("button",{key:c,type:"button",class:W(["rounded-md px-2.5 py-1 text-[10px] font-medium transition-colors",x.value===c?"bg-white text-gray-900 shadow-sm dark:bg-zinc-700 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-zinc-400 dark:hover:text-zinc-200"]),"aria-pressed":x.value===c,onClick:J=>x.value=c},s(r(n)(`overview.monthlyTrend.${c}`)),11,He)),64))])]),C(Ce,{t:r(n),range:v.range,data:N.value,height:240},null,8,["t","range","data"])])]),e("div",Ke,[e("span",null,s(y.value),1),e("span",null,s(r(n)("status.coverage",{analyzed:v.coverage.analyzedSessions,total:v.coverage.totalSessions})),1)])])]),_:1}),e("div",Je,[C(r(V),null,{default:B(()=>[e("section",Xe,[e("h3",Ze,[g[0]||(g[0]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("sections.messageTypes")),1)]),e("p",Qe,s(r(n)("sections.messageTypesDescription")),1),w.value.length?(d(),m("div",et,[(d(!0),m(Y,null,U(w.value,c=>(d(),m("div",{key:c.type,class:"min-w-0"},[e("div",tt,[e("span",at,s(r(ge)(c.type,T)),1),e("span",st,s(L(c.count,i.value))+"% ",1)]),e("div",nt,[e("div",{class:"h-full rounded-full bg-pink-500 dark:bg-pink-400",style:X({width:`${L(c.count,i.value)}%`})},null,4)]),e("div",rt,s(f(c.count)),1)]))),128))])):(d(),m("div",ot,s(r(n)("noData")),1))])]),_:1}),C(r(V),null,{default:B(()=>[e("section",it,[e("div",lt,[e("div",null,[e("h3",ct,[g[1]||(g[1]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("sections.textLength")),1)]),e("p",ut,s(r(n)("overview.textRatio"))+" "+s(l.value)+"% ",1)]),e("div",dt,[e("div",null,[e("div",gt,s(v.textLength.median??"-"),1),e("div",mt,s(r(n)("length.median")),1)]),e("div",null,[e("div",xt,s(v.textLength.p90??"-"),1),g[2]||(g[2]=e("div",{class:"text-[10px] text-gray-400 dark:text-zinc-500"},"P90",-1))])])]),v.textLength.textMessageCount?(d(),m("div",vt,[(d(!0),m(Y,null,U(v.textLength.buckets,c=>(d(),m("div",{key:c.key,class:"flex min-w-0 flex-1 flex-col items-center gap-2"},[e("div",pt,[e("div",{class:"w-full rounded-sm bg-pink-500/80 dark:bg-pink-400/80",style:X({height:`${Math.max(4,c.count/p.value*100)}%`}),title:`${c.key}: ${c.count}`},null,12,ht)]),e("span",yt,s(c.key),1)]))),128))])):(d(),m("div",kt,s(r(n)("noTextData")),1))])]),_:1})]),C(r(V),{class:"xl:col-span-3"},{default:B(()=>[e("section",ft,[e("div",bt,[e("div",null,[e("h3",_t,[g[3]||(g[3]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("overview.activity")),1)]),e("p",wt,s(r(n)("sections.activityDescription")),1)]),e("div",Dt,[e("div",Ct,s(v.metrics.activeDayCount),1),e("div",Mt,s(r(n)("overview.activeRate",{rate:h.value})),1)])]),e("div",St,[C(De,{t:r(n),range:v.range,data:M.value},null,8,["t","range","data"])])])]),_:1})])}}}),Tt={class:"min-h-0 flex-1 overflow-y-auto"},$t={class:"mx-auto w-full max-w-[920px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},At={class:"min-w-0"},Nt={key:1,class:"flex items-center gap-2 rounded-xl border border-amber-100 bg-amber-50/50 px-4 py-2.5 text-xs text-amber-800 backdrop-blur-sm dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Lt={key:2,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-red-200 bg-red-50/50 px-4 py-2.5 text-xs text-red-800 backdrop-blur-sm dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Yt={key:0,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-gray-200 bg-white p-4 text-xs text-gray-600 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-300"},Ft={key:0},Rt={key:1},Gt=G({__name:"index",setup(v){const t=te(),n=ae(le),{formatDate:x,formatNumber:_}=se(),y=t.insightScope,k=t.services.get(ue),A=new Date().getFullYear(),w=q(y.getSnapshot()),i=q(null),o=q("");let l=null,p=0;const h=y.subscribe(()=>{w.value=y.getSnapshot()}),$=k.subscribeOwnerSettingsClosed(()=>{a(!1)}),F=u(()=>{const b=w.value.time;return b?b.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:b.mode==="year"?{mode:"year",year:b.year??A,acceptStale:!0}:null:null}),N=u(()=>JSON.stringify(F.value)),M=u(()=>(i.value?.coverage.missingOwnerSessions??0)+(i.value?.coverage.unresolvedOwnerSessions??0)),R=u(()=>i.value?.task.status==="running"),f=u(()=>i.value?.metrics!==null&&i.value?.metrics!==void 0),P=u(()=>f.value&&i.value?.metrics?.sentMessageCount===0),O=u(()=>(i.value?.coverage.totalSessions??0)>0&&i.value?.coverage.analyzedSessions===0&&M.value>0),L=u(()=>w.value.time?.mode==="year"?w.value.time.year:void 0),T=u(()=>{const b=L.value,z=i.value?.latestDataYear;return b===void 0||z===null||z===void 0||b===z?null:{year:b,latestYear:z}});ne(N,()=>{S(),F.value&&(i.value=null,a(!1))},{immediate:!0}),re(()=>{p++,S(),h(),$()});async function a(b){const z=F.value;if(!z)return;const j=++p;o.value="";try{const D=b?await k.recompute(z):await k.get(z);if(j!==p)return;i.value=D,D.metrics&&y.setAvailableTimeYears(D.availableDataYears),D.task.status==="running"&&g()}catch(D){if(j!==p)return;const H=D instanceof Error?D.message:String(D);o.value=H,oe(`Global insight annual summary failed: ${H}`,D instanceof Error?D.stack:void 0)}}function g(){S(),l=setTimeout(()=>{a(!1)},900)}function S(){l&&(clearTimeout(l),l=null)}function c(){const b=i.value?.latestDataYear;b&&y.switchTimeToYear(b)}function J(){k.openOwnerSettings()}return(b,z)=>{const j=Z,D=ie;return d(),m("main",Tt,[e("div",$t,[M.value>0?(d(),m("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:J},[C(j,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",At,s(r(n)("status.ownerIssues",{count:M.value})),1),C(j,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):I("",!0),i.value?.cache.status==="stale"||R.value&&f.value?(d(),m("div",Nt,[C(j,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}),E(" "+s(r(n)("status.updating")),1)])):I("",!0),o.value||i.value?.task.status==="failed"?(d(),m("div",Lt,[e("span",null,s(r(n)("status.failed")),1),C(D,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:z[0]||(z[0]=H=>a(!0))},{default:B(()=>[E(s(r(n)("actions.retry")),1)]),_:1})])):I("",!0),!f.value&&!o.value&&i.value?.task.status!=="failed"?(d(),K(ce,{key:3,height:"min(52vh, 420px)",text:i.value?.task.status==="running"?r(n)("status.computingProgress",{processed:i.value.task.processedSessions,total:i.value.task.totalSessions}):r(n)("status.loading")},null,8,["text"])):i.value?.metrics&&i.value.textLength?(d(),m(Y,{key:4},[P.value&&!O.value?(d(),m("div",Yt,[T.value?(d(),m("span",Ft,s(r(n)("status.noDataWithLatest",T.value)),1)):(d(),m("span",Rt,s(r(n)("noData")),1)),T.value?(d(),K(D,{key:2,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:c},{default:B(()=>[E(s(r(n)("actions.switchYear",{year:T.value.latestYear})),1)]),_:1})):I("",!0)])):I("",!0),C(zt,{t:r(n),"format-date":r(x),"format-number":r(_),range:i.value.range,metrics:i.value.metrics,coverage:i.value.coverage,"monthly-activity":i.value.monthlyActivity,"monthly-direct-contacts":i.value.monthlyDirectContacts,"daily-activity":i.value.dailyActivity,"message-types":i.value.messageTypes,"text-length":i.value.textLength},null,8,["t","format-date","format-number","range","metrics","coverage","monthly-activity","monthly-direct-contacts","daily-activity","message-types","text-length"])],64)):I("",!0)])])}}});export{Gt as default};
|
|
1
|
+
import{a as G,o as d,h as m,i as e,F as Y,j as U,p as s,e as r,f as u,n as W,ae as Q,c as K,z as C,w as B,a6 as E,a4 as Z,am as X,r as q,af as ee,ah as te,ai as ae,aj as se,J as ne,ak as re,Y as oe,l as I,a5 as ie,bt as le}from"./index-Bq5q3kSU.js";import{_ as ce}from"./LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js";import{A as ue}from"./service-BMqwB74f.js";import{_ as de,g as ge}from"./EChartBar.vue_vue_type_script_setup_true_lang-BdFW-hvt.js";import{_ as V}from"./ThemeCard.vue_vue_type_script_setup_true_lang-BDTdkH5i.js";import{C as me}from"./EChart.vue_vue_type_script_setup_true_lang-DryMSoCz.js";import"./vendor-echarts-wordcloud-B8CF_NgP.js";import"./vendor-snapdom--nZvo8Sg.js";import"./vendor-echarts-hTLhTs52.js";import"./vendor-zrender-D8psf1AA.js";const xe=1440*60*1e3;function ve(v){const t=new Map;for(const o of v){if(o.messageCount<=0)continue;const l=pe(o.date);l!==null&&t.set(l,(t.get(l)??0)+o.messageCount)}const n=[...t.keys()].sort((o,l)=>o-l);if(n.length===0)return{longestActiveStreak:0,topWeekday:null,weekdayMessageRate:null,weekendMessageRate:null};const x=Array.from({length:7},()=>0);let _=1,y=1;n.forEach((o,l)=>{const p=(new Date(o).getUTCDay()+6)%7;x[p]+=t.get(o)??0,l!==0&&(o-n[l-1]===xe?(y++,_=Math.max(_,y)):y=1)});const k=x.reduce((o,l)=>o+l,0),A=x[5]+x[6],w=Math.round(A/k*100),i=x.reduce((o,l,p)=>l>x[o]?p:o,0);return{longestActiveStreak:_,topWeekday:i+1,weekdayMessageRate:100-w,weekendMessageRate:w}}function pe(v){const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(v);if(!t)return null;const n=Number(t[1]),x=Number(t[2]),_=Number(t[3]),y=Date.UTC(n,x-1,_),k=new Date(y);return k.getUTCFullYear()!==n||k.getUTCMonth()!==x-1||k.getUTCDate()!==_?null:y}const he={class:"annual-calendar"},ye={class:"annual-calendar-months grid grid-cols-2 gap-x-4 gap-y-5"},ke={class:"mb-1.5 text-[11px] font-bold text-gray-500 dark:text-zinc-400"},fe={class:"grid grid-cols-7 gap-[3px]","aria-hidden":"true"},be=["title"],_e={class:"mt-4 flex items-center justify-end gap-1.5 text-[10px] text-gray-400 dark:text-zinc-500"},we=G({__name:"InsightCalendarGrid",props:{t:{type:Function},range:{},data:{},formatValue:{type:Function}},setup(v){const t=v,n=t.t,x=u(()=>Math.max(...t.data.map(o=>o.value),1)),_=u(()=>new Map(t.data.map(o=>[o.date,o.value]))),y=u(()=>new Date(t.range.startTs*1e3)),k=u(()=>new Date(t.range.endTs*1e3)),A=u(()=>{const o=y.value,l=k.value,p=[],h=t.range.year??o.getFullYear(),$=t.range.mode==="year"?new Date(h,0,1):new Date(o.getFullYear(),o.getMonth(),1),F=t.range.mode==="year"?new Date(h,11,1):new Date(l.getFullYear(),l.getMonth(),1);for(;$<=F;){const N=$.getFullYear(),M=$.getMonth(),R=`${N}-${String(M+1).padStart(2,"0")}`,f=new Date(N,M+1,0).getDate(),P=Array.from({length:f},(O,L)=>{const T=L+1,a=`${R}-${String(T).padStart(2,"0")}`,g=new Date(N,M,T),S=_.value.get(a)??0,c=g>=w(o)&&g<=w(l);return{key:a,day:T,count:S,inRange:c,level:c&&S>0?Math.max(1,Math.ceil(S/x.value*4)):0}});p.push({key:R,label:t.range.mode==="year"?t.t("monthLabel",{month:M+1}):R.replace("-","/"),leadingDays:(new Date(N,M,1).getDay()+6)%7,days:P}),$.setMonth($.getMonth()+1)}return p});function w(o){return new Date(o.getFullYear(),o.getMonth(),o.getDate())}function i(o){return t.formatValue?.(o)??`${o} ${t.t("messages")}`}return(o,l)=>(d(),m("div",he,[e("div",ye,[(d(!0),m(Y,null,U(A.value,p=>(d(),m("div",{key:p.key,class:"min-w-0"},[e("div",ke,s(p.label),1),e("div",fe,[(d(!0),m(Y,null,U(p.leadingDays,h=>(d(),m("span",{key:`blank-${h}`,class:"aspect-square min-h-[7px] rounded-[3px] bg-gray-50 dark:bg-zinc-800/30"}))),128)),(d(!0),m(Y,null,U(p.days,h=>(d(),m("span",{key:h.key,class:W(["aspect-square min-h-[7px] rounded-[3px]",{"opacity-30":!h.inRange,"bg-gray-50 dark:bg-zinc-800/30":h.level===0,"bg-pink-100 dark:bg-pink-500/10":h.level===1,"bg-pink-200 dark:bg-pink-500/25":h.level===2,"bg-pink-400 dark:bg-pink-500/50":h.level===3,"bg-pink-600 dark:bg-pink-500/80":h.level===4}]),title:`${h.key}: ${i(h.count)}`},null,10,be))),128))])]))),128))]),e("div",_e,[e("span",null,s(r(n)("calendar.less")),1),l[0]||(l[0]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-100 dark:bg-pink-500/10"},null,-1)),l[1]||(l[1]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-200 dark:bg-pink-500/25"},null,-1)),l[2]||(l[2]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-400 dark:bg-pink-500/50"},null,-1)),l[3]||(l[3]=e("span",{"aria-hidden":"true",class:"inline-block h-2.5 w-2.5 rounded-[2px] bg-pink-600 dark:bg-pink-500/80"},null,-1)),e("span",null,s(r(n)("calendar.more")),1)])]))}}),De=Q(we,[["__scopeId","data-v-593a96f3"]]),Ce=G({__name:"AnnualMonthlyTrend",props:{t:{type:Function},range:{},data:{},height:{}},setup(v){const t=v,n=u(()=>({labels:t.data.map(x=>t.range.mode==="year"?t.t("monthLabel",{month:Number(x.month.slice(5))}):x.month.replace("-","/")),values:t.data.map(x=>x.value)}));return(x,_)=>(d(),K(r(de),{data:n.value,height:v.height??260,"border-radius":3},null,8,["data","height"]))}}),Me={class:"grid gap-4 xl:grid-cols-7"},Se={class:"relative z-10 min-w-0 px-5 pt-6 pb-5 sm:px-8 sm:pt-8 sm:pb-6"},ze={class:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-3xl"},Te={class:"mt-6"},$e={class:"max-w-3xl space-y-3 text-gray-600 dark:text-zinc-300"},Ae={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-lg leading-relaxed sm:text-xl"},Ne={class:"font-black text-2xl tracking-tight tabular-nums text-pink-600 sm:text-3xl dark:text-pink-400"},Le={class:"font-black text-2xl tabular-nums text-blue-600 sm:text-3xl dark:text-blue-400"},Ye={class:"flex flex-wrap items-baseline gap-x-2 gap-y-1 text-base leading-relaxed sm:text-lg"},Fe={class:"font-black text-2xl tabular-nums text-indigo-600 dark:text-indigo-400"},Re={class:"font-black text-2xl tabular-nums text-amber-600 dark:text-amber-400"},Ue={class:"mt-7"},je={class:"mb-2 text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-zinc-500"},Ie={class:"grid grid-cols-2 gap-2 lg:grid-cols-4"},Be={class:"min-w-0"},Ee={class:"mt-0.5 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},Pe={class:"mt-0.5 truncate text-[9px] text-gray-400 dark:text-zinc-500"},Oe={class:"mt-6 w-full min-w-0"},Ve={class:"mb-1 flex flex-wrap items-center justify-between gap-3"},We={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-zinc-300"},qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ge={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-zinc-800"},He=["aria-pressed","onClick"],Ke={class:"mt-5 flex flex-wrap items-center justify-between gap-x-6 gap-y-1 border-t border-gray-200/60 pt-4 font-mono text-[10px] text-gray-400 dark:border-white/5 dark:text-zinc-500"},Je={class:"grid min-w-0 gap-4 xl:col-span-4"},Xe={class:"min-w-0 p-5 sm:p-6"},Ze={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},Qe={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},et={key:0,class:"mt-5 grid grid-cols-2 gap-x-5 gap-y-4 sm:grid-cols-3"},tt={class:"flex items-end justify-between gap-2"},at={class:"truncate text-xs font-medium text-gray-600 dark:text-zinc-300"},st={class:"font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},nt={class:"mt-2 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},rt={class:"mt-1.5 font-mono text-[10px] text-gray-400 dark:text-zinc-500"},ot={key:1,class:"flex h-28 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},it={class:"min-w-0 p-5 sm:p-6"},lt={class:"flex items-start justify-between gap-3"},ct={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},ut={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},dt={class:"flex shrink-0 gap-3 text-right"},gt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},mt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},xt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},vt={key:0,class:"mt-5 flex h-24 items-end gap-2"},pt={class:"flex h-16 w-full items-end rounded-sm bg-gray-100 dark:bg-zinc-800"},ht=["title"],yt={class:"w-full truncate text-center font-mono text-[9px] text-gray-400 dark:text-zinc-500"},kt={key:1,class:"flex h-24 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},ft={class:"h-full min-w-0 p-5 sm:p-6"},bt={class:"flex items-start justify-between gap-4"},_t={class:"flex items-center gap-2 text-xs font-bold uppercase tracking-wider text-gray-700 dark:text-zinc-300"},wt={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Dt={class:"shrink-0 text-right"},Ct={class:"font-mono text-lg font-black tabular-nums text-gray-900 dark:text-white"},Mt={class:"text-[10px] text-gray-400 dark:text-zinc-500"},St={class:"mt-5"},zt=G({__name:"AnnualInsightBoard",props:{t:{type:Function},formatDate:{type:Function},formatNumber:{type:Function},range:{},metrics:{},coverage:{},monthlyActivity:{},monthlyDirectContacts:{},dailyActivity:{},messageTypes:{},textLength:{}},setup(v){const t=v,n=t.t,x=q("messages"),_=u(()=>t.range.mode==="year"?t.t("overview.yearTitle",{year:t.range.year}):t.t("overview.recentTitle")),y=u(()=>{const a={day:"2-digit",month:"2-digit",year:"numeric"};return`${t.formatDate(t.range.startTs*1e3,a)} – ${t.formatDate(t.range.endTs*1e3,a)}`}),k=u(()=>t.monthlyActivity.reduce((a,g)=>!a||g.messageCount>a.messageCount?g:a,null)),A=u(()=>t.dailyActivity.reduce((a,g)=>!a||g.messageCount>a.messageCount?g:a,null)),w=u(()=>[...t.messageTypes].sort((a,g)=>g.count-a.count).slice(0,6)),i=u(()=>t.messageTypes.reduce((a,g)=>a+g.count,0)),o=u(()=>t.messageTypes.find(a=>a.type===ee.TEXT)?.count??0),l=u(()=>L(o.value,i.value)),p=u(()=>Math.max(...t.textLength.buckets.map(a=>a.count),1)),h=u(()=>{const a=Math.max(1,Math.round((t.range.endTs-t.range.startTs)/86400)+1);return L(t.metrics.activeDayCount,a)}),$=u(()=>ve(t.dailyActivity)),F=u(()=>[{key:"dailyContacts",value:f(t.metrics.averageDirectContactsPerDay),label:t.t("overview.dailyContacts"),subtext:t.t("overview.perDay"),icon:"i-heroicons-user-plus",colorClass:"text-blue-600 dark:text-blue-400"},{key:"peakMonth",value:P(k.value?.month),label:t.t("overview.peakMonth"),subtext:t.t("overview.messagesCount",{count:f(k.value?.messageCount??0)}),icon:"i-heroicons-calendar-days",colorClass:"text-pink-600 dark:text-pink-400"},{key:"peakDay",value:O(A.value?.date),label:t.t("overview.peakDay"),subtext:t.t("overview.messagesCount",{count:f(A.value?.messageCount??0)}),icon:"i-heroicons-fire",colorClass:"text-red-600 dark:text-red-400"},{key:"longestActiveStreak",value:f($.value.longestActiveStreak),label:t.t("overview.longestActiveStreak"),subtext:t.t("overview.consecutiveActiveDays"),icon:"i-heroicons-bolt",colorClass:"text-amber-600 dark:text-amber-400"}]),N=u(()=>x.value==="messages"?t.monthlyActivity.map(a=>({month:a.month,value:a.messageCount})):t.monthlyDirectContacts.map(a=>({month:a.month,value:a.contactCount}))),M=u(()=>t.dailyActivity.map(a=>({date:a.date,value:a.messageCount}))),R=u(()=>t.t(x.value==="messages"?"sections.overviewDescription":"sections.directContactsDescription"));function f(a){return t.formatNumber(a,Number.isInteger(a)?void 0:{maximumFractionDigits:1})}function P(a){return a?t.range.mode==="year"?t.t("monthLabel",{month:Number(a.slice(5))}):a.replace("-","/"):"-"}function O(a){if(!a)return"-";const[g,S,c]=a.split("-");return t.formatDate(new Date(Number(g),Number(S)-1,Number(c)),{day:"2-digit",month:"2-digit"})}function L(a,g){return g>0?Math.round(a/g*100):0}function T(a){return n(a)}return(a,g)=>{const S=Z;return d(),m("div",Me,[C(r(V),{class:"relative isolate overflow-hidden xl:col-span-7"},{default:B(()=>[C(r(me)),e("section",Se,[e("h2",ze,s(_.value),1),e("div",Te,[e("div",$e,[e("p",Ae,[e("span",null,s(r(n)("overview.narrative.messagesPrefix")),1),e("span",Ne,s(f(v.metrics.sentMessageCount)),1),e("span",null,s(r(n)("overview.narrative.messagesSuffix")),1),e("span",Le,s(f(v.metrics.averageMessagesPerDay)),1),e("span",null,s(r(n)("overview.narrative.dailySuffix")),1)]),e("p",Ye,[e("span",null,s(r(n)("overview.narrative.activePrefix")),1),e("span",Fe,s(f(v.metrics.activeDayCount)),1),e("span",null,s(r(n)("overview.narrative.activeMiddle")),1),e("span",Re,s(f(v.metrics.directContactCount)),1),e("span",null,s(r(n)("overview.narrative.contactsSuffix")),1)])]),e("div",Ue,[e("div",je,s(r(n)("overview.keyMetrics")),1),e("div",Ie,[(d(!0),m(Y,null,U(F.value,c=>(d(),m("div",{key:c.key,class:"flex min-w-0 items-start gap-2 px-2.5 py-2"},[C(S,{name:c.icon,class:W(["mt-0.5 h-3.5 w-3.5 shrink-0",c.colorClass])},null,8,["name","class"]),e("div",Be,[e("div",{class:W(["truncate font-mono text-sm leading-tight font-black tabular-nums",c.colorClass])},s(c.value),3),e("div",Ee,s(c.label),1),e("div",Pe,s(c.subtext),1)])]))),128))])]),e("div",Oe,[e("div",Ve,[e("div",null,[e("h3",We,s(r(n)("sections.overview")),1),e("p",qe,s(R.value),1)]),e("div",Ge,[(d(),m(Y,null,U(["messages","contacts"],c=>e("button",{key:c,type:"button",class:W(["rounded-md px-2.5 py-1 text-[10px] font-medium transition-colors",x.value===c?"bg-white text-gray-900 shadow-sm dark:bg-zinc-700 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-zinc-400 dark:hover:text-zinc-200"]),"aria-pressed":x.value===c,onClick:J=>x.value=c},s(r(n)(`overview.monthlyTrend.${c}`)),11,He)),64))])]),C(Ce,{t:r(n),range:v.range,data:N.value,height:240},null,8,["t","range","data"])])]),e("div",Ke,[e("span",null,s(y.value),1),e("span",null,s(r(n)("status.coverage",{analyzed:v.coverage.analyzedSessions,total:v.coverage.totalSessions})),1)])])]),_:1}),e("div",Je,[C(r(V),null,{default:B(()=>[e("section",Xe,[e("h3",Ze,[g[0]||(g[0]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("sections.messageTypes")),1)]),e("p",Qe,s(r(n)("sections.messageTypesDescription")),1),w.value.length?(d(),m("div",et,[(d(!0),m(Y,null,U(w.value,c=>(d(),m("div",{key:c.type,class:"min-w-0"},[e("div",tt,[e("span",at,s(r(ge)(c.type,T)),1),e("span",st,s(L(c.count,i.value))+"% ",1)]),e("div",nt,[e("div",{class:"h-full rounded-full bg-pink-500 dark:bg-pink-400",style:X({width:`${L(c.count,i.value)}%`})},null,4)]),e("div",rt,s(f(c.count)),1)]))),128))])):(d(),m("div",ot,s(r(n)("noData")),1))])]),_:1}),C(r(V),null,{default:B(()=>[e("section",it,[e("div",lt,[e("div",null,[e("h3",ct,[g[1]||(g[1]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("sections.textLength")),1)]),e("p",ut,s(r(n)("overview.textRatio"))+" "+s(l.value)+"% ",1)]),e("div",dt,[e("div",null,[e("div",gt,s(v.textLength.median??"-"),1),e("div",mt,s(r(n)("length.median")),1)]),e("div",null,[e("div",xt,s(v.textLength.p90??"-"),1),g[2]||(g[2]=e("div",{class:"text-[10px] text-gray-400 dark:text-zinc-500"},"P90",-1))])])]),v.textLength.textMessageCount?(d(),m("div",vt,[(d(!0),m(Y,null,U(v.textLength.buckets,c=>(d(),m("div",{key:c.key,class:"flex min-w-0 flex-1 flex-col items-center gap-2"},[e("div",pt,[e("div",{class:"w-full rounded-sm bg-pink-500/80 dark:bg-pink-400/80",style:X({height:`${Math.max(4,c.count/p.value*100)}%`}),title:`${c.key}: ${c.count}`},null,12,ht)]),e("span",yt,s(c.key),1)]))),128))])):(d(),m("div",kt,s(r(n)("noTextData")),1))])]),_:1})]),C(r(V),{class:"xl:col-span-3"},{default:B(()=>[e("section",ft,[e("div",bt,[e("div",null,[e("h3",_t,[g[3]||(g[3]=e("span",{class:"inline-block h-2 w-2 rounded-full bg-pink-500 dark:bg-pink-400"},null,-1)),E(" "+s(r(n)("overview.activity")),1)]),e("p",wt,s(r(n)("sections.activityDescription")),1)]),e("div",Dt,[e("div",Ct,s(v.metrics.activeDayCount),1),e("div",Mt,s(r(n)("overview.activeRate",{rate:h.value})),1)])]),e("div",St,[C(De,{t:r(n),range:v.range,data:M.value},null,8,["t","range","data"])])])]),_:1})])}}}),Tt={class:"min-h-0 flex-1 overflow-y-auto"},$t={class:"mx-auto w-full max-w-[920px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},At={class:"min-w-0"},Nt={key:1,class:"flex items-center gap-2 rounded-xl border border-amber-100 bg-amber-50/50 px-4 py-2.5 text-xs text-amber-800 backdrop-blur-sm dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Lt={key:2,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-red-200 bg-red-50/50 px-4 py-2.5 text-xs text-red-800 backdrop-blur-sm dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Yt={key:0,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-gray-200 bg-white p-4 text-xs text-gray-600 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-300"},Ft={key:0},Rt={key:1},Gt=G({__name:"index",setup(v){const t=te(),n=ae(le),{formatDate:x,formatNumber:_}=se(),y=t.insightScope,k=t.services.get(ue),A=new Date().getFullYear(),w=q(y.getSnapshot()),i=q(null),o=q("");let l=null,p=0;const h=y.subscribe(()=>{w.value=y.getSnapshot()}),$=k.subscribeOwnerSettingsClosed(()=>{a(!1)}),F=u(()=>{const b=w.value.time;return b?b.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:b.mode==="year"?{mode:"year",year:b.year??A,acceptStale:!0}:null:null}),N=u(()=>JSON.stringify(F.value)),M=u(()=>(i.value?.coverage.missingOwnerSessions??0)+(i.value?.coverage.unresolvedOwnerSessions??0)),R=u(()=>i.value?.task.status==="running"),f=u(()=>i.value?.metrics!==null&&i.value?.metrics!==void 0),P=u(()=>f.value&&i.value?.metrics?.sentMessageCount===0),O=u(()=>(i.value?.coverage.totalSessions??0)>0&&i.value?.coverage.analyzedSessions===0&&M.value>0),L=u(()=>w.value.time?.mode==="year"?w.value.time.year:void 0),T=u(()=>{const b=L.value,z=i.value?.latestDataYear;return b===void 0||z===null||z===void 0||b===z?null:{year:b,latestYear:z}});ne(N,()=>{S(),F.value&&(i.value=null,a(!1))},{immediate:!0}),re(()=>{p++,S(),h(),$()});async function a(b){const z=F.value;if(!z)return;const j=++p;o.value="";try{const D=b?await k.recompute(z):await k.get(z);if(j!==p)return;i.value=D,D.metrics&&y.setAvailableTimeYears(D.availableDataYears),D.task.status==="running"&&g()}catch(D){if(j!==p)return;const H=D instanceof Error?D.message:String(D);o.value=H,oe(`Global insight annual summary failed: ${H}`,D instanceof Error?D.stack:void 0)}}function g(){S(),l=setTimeout(()=>{a(!1)},900)}function S(){l&&(clearTimeout(l),l=null)}function c(){const b=i.value?.latestDataYear;b&&y.switchTimeToYear(b)}function J(){k.openOwnerSettings()}return(b,z)=>{const j=Z,D=ie;return d(),m("main",Tt,[e("div",$t,[M.value>0?(d(),m("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:J},[C(j,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",At,s(r(n)("status.ownerIssues",{count:M.value})),1),C(j,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):I("",!0),i.value?.cache.status==="stale"||R.value&&f.value?(d(),m("div",Nt,[C(j,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}),E(" "+s(r(n)("status.updating")),1)])):I("",!0),o.value||i.value?.task.status==="failed"?(d(),m("div",Lt,[e("span",null,s(r(n)("status.failed")),1),C(D,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:z[0]||(z[0]=H=>a(!0))},{default:B(()=>[E(s(r(n)("actions.retry")),1)]),_:1})])):I("",!0),!f.value&&!o.value&&i.value?.task.status!=="failed"?(d(),K(ce,{key:3,height:"min(52vh, 420px)",text:i.value?.task.status==="running"?r(n)("status.computingProgress",{processed:i.value.task.processedSessions,total:i.value.task.totalSessions}):r(n)("status.loading")},null,8,["text"])):i.value?.metrics&&i.value.textLength?(d(),m(Y,{key:4},[P.value&&!O.value?(d(),m("div",Yt,[T.value?(d(),m("span",Ft,s(r(n)("status.noDataWithLatest",T.value)),1)):(d(),m("span",Rt,s(r(n)("noData")),1)),T.value?(d(),K(D,{key:2,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:c},{default:B(()=>[E(s(r(n)("actions.switchYear",{year:T.value.latestYear})),1)]),_:1})):I("",!0)])):I("",!0),C(zt,{t:r(n),"format-date":r(x),"format-number":r(_),range:i.value.range,metrics:i.value.metrics,coverage:i.value.coverage,"monthly-activity":i.value.monthlyActivity,"monthly-direct-contacts":i.value.monthlyDirectContacts,"daily-activity":i.value.dailyActivity,"message-types":i.value.messageTypes,"text-length":i.value.textLength},null,8,["t","format-date","format-number","range","metrics","coverage","monthly-activity","monthly-direct-contacts","daily-activity","message-types","text-length"])],64)):I("",!0)])])}}});export{Gt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.fade-enter-active[data-v-8da082e6],.fade-leave-active[data-v-8da082e6]{transition:opacity .15s ease}.fade-enter-from[data-v-8da082e6],.fade-leave-to[data-v-8da082e6]{opacity:0}.tab-slide-enter-active[data-v-56b25fde],.tab-slide-leave-active[data-v-56b25fde]{transition:opacity .2s ease,transform .2s ease}.tab-slide-enter-from[data-v-56b25fde]{opacity:0;transform:translateY(10px)}.tab-slide-leave-to[data-v-56b25fde]{opacity:0;transform:translateY(-10px)}
|