zen-gitsync 2.15.9 → 2.15.11
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/package.json +3 -2
- package/src/ui/public/assets/AppVersionBadge-CEhrATQo.js +2 -0
- package/src/ui/public/assets/{BranchSelector-BCzSC273.js → BranchSelector-xLl3O-4I.js} +1 -1
- package/src/ui/public/assets/{CommitForm-BWZGs6s1.js → CommitForm--izGtr_x.js} +1 -1
- package/src/ui/public/assets/{ConsoleView-8fOLdsYa.js → ConsoleView-BLYfnXAy.js} +2 -2
- package/src/ui/public/assets/CustomCommandManager-D8Qd3b9m.js +1 -0
- package/src/ui/public/assets/{EditorView-Bo-zMCyw.js → EditorView-DG8tqp3L.js} +0 -0
- package/src/ui/public/assets/{FlowExecutionViewer-DdjRc5h9.js → FlowExecutionViewer-CJgoxffE.js} +1 -1
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-BNYqCbcP.js → FlowOrchestrationWorkspace-BAIqeASp.js} +1 -1
- package/src/ui/public/assets/{LogList-DAnUC46X.js → LogList-DjuL8nWB.js} +1 -1
- package/src/ui/public/assets/MindmapView-DPomtQsu.js +1 -0
- package/src/ui/public/assets/MindmapView-KFcJx-i-.css +1 -0
- package/src/ui/public/assets/{MonitorView-Bv8MMIji.js → MonitorView-gZhz528u.js} +1 -1
- package/src/ui/public/assets/{ProjectStartupButton-CP6Kiziu.js → ProjectStartupButton-C8nDEd8N.js} +1 -1
- package/src/ui/public/assets/{RemoteRepoCard-Dc3Mn7cM.js → RemoteRepoCard-CKQguRWi.js} +1 -1
- package/src/ui/public/assets/{SourceMapView-DFTEmXn-.js → SourceMapView-DfSRy6lc.js} +1 -1
- package/src/ui/public/assets/{SvgIcon-CyjVBYCr.js → SvgIcon-DOkE0Qie.js} +1 -1
- package/src/ui/public/assets/{TemplateManager-Bbk5I7Wb.js → TemplateManager-BJZloJIO.js} +1 -1
- package/src/ui/public/assets/{UserInputNode-Bxfe2Vej.js → UserInputNode-DpRNQzrz.js} +1 -1
- package/src/ui/public/assets/{WorkbenchView-CNdwvVNr.js → WorkbenchView-vaZsec5Z.js} +1 -1
- package/src/ui/public/assets/{_plugin-vue_export-helper-AKtm5TQX.js → _plugin-vue_export-helper-DvV-QrsM.js} +2 -2
- package/src/ui/public/assets/{configStore-CfU8l9be.js → configStore-BRR4SloR.js} +1 -1
- package/src/ui/public/assets/flow-mindmap-BMvnvRl8.js +90 -0
- package/src/ui/public/assets/flow-mindmap-C_aN-n3H.css +1 -0
- package/src/ui/public/assets/{index-DG6vgKD4.js → index-BAFCDhj2.js} +3 -3
- package/src/ui/public/assets/index-CytKCnOp.css +1 -0
- package/src/ui/public/index.html +5 -5
- package/src/ui/public/assets/AppVersionBadge-CTLV-gHU.js +0 -2
- package/src/ui/public/assets/CustomCommandManager-DJiLDDiH.js +0 -1
- package/src/ui/public/assets/MindmapView-B8rUSi-e.css +0 -1
- package/src/ui/public/assets/MindmapView-D1GpooOt.js +0 -1
- package/src/ui/public/assets/flow-mindmap-BmmuW0nH.js +0 -86
- package/src/ui/public/assets/flow-mindmap-CCMw7um8.css +0 -1
- package/src/ui/public/assets/index-CquDLWhf.css +0 -1
package/src/ui/public/index.html
CHANGED
|
@@ -10,22 +10,22 @@
|
|
|
10
10
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
11
11
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
12
12
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-BAFCDhj2.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-CMxvf4Kt.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/monaco-BFLoT2VD.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/element-plus-CL7fBdM_.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor--LaaJk9m.js">
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-DvV-QrsM.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/socket-io-C2w3MxRu.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/vue-flow-MtbKS8yD.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/configStore-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-DOkE0Qie.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/configStore-BRR4SloR.js">
|
|
23
23
|
<link rel="stylesheet" crossorigin href="/assets/monaco-B2lPvkrc.css">
|
|
24
24
|
<link rel="stylesheet" crossorigin href="/assets/element-plus-Cu9Y2raX.css">
|
|
25
25
|
<link rel="stylesheet" crossorigin href="/assets/vendor-CCbwTgrE.css">
|
|
26
26
|
<link rel="stylesheet" crossorigin href="/assets/vue-flow-CavUTEzp.css">
|
|
27
27
|
<link rel="stylesheet" crossorigin href="/assets/SvgIcon-BQ6bR7l0.css">
|
|
28
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
28
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CytKCnOp.css">
|
|
29
29
|
</head>
|
|
30
30
|
<body>
|
|
31
31
|
<div id="app"></div>
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-CMxvf4Kt.js";import{B as e,Cn as t,D as n,Et as r,Fn as i,G as a,Jn as o,Ln as s,Mn as c,Sn as l,Tn as u,Xn as d,Y as f,_n as p,_r as m,a as h,gn as g,hn as _,i as v,mn as y,mr as b,nt as x,pr as S,rt as C,sr as w,vn as T,zn as E}from"./element-plus-CL7fBdM_.js";import{n as D,t as O}from"./_plugin-vue_export-helper-AKtm5TQX.js";async function k(e,t){let n=e.body.getReader(),r=new TextDecoder(`utf-8`),i=``;for(;;){let{done:e,value:a}=await n.read();if(e)break;i+=r.decode(a,{stream:!0});let o=i.split(`
|
|
2
|
-
`);i=o.pop()??``;for(let e of o)e.trim()&&t(e)}i.trim()&&t(i)}async function A(){let e=await fetch(`/api/app-version`);return e.ok?e.json():{success:!1,current:``,latest:null,hasUpdate:!1,error:`HTTP ${e.status}`}}async function j(e){let t=await fetch(`/api/app-upgrade`,{method:`POST`});if(!t.ok){let n=`HTTP ${t.status}`;try{let e=await t.json();e?.error&&(n=e.error)}catch{}e({type:`error`,message:n}),e({type:`done`,code:t.status});return}if(!t.body){e({type:`error`,message:`响应无 body`}),e({type:`done`,code:-1});return}await k(t,t=>{try{e(JSON.parse(t))}catch{}})}async function M(){let e=await fetch(`/api/app-restart`,{method:`POST`});if(!e.ok){let t=`HTTP ${e.status}`;try{let n=await e.json();n?.error&&(t=n.error)}catch{}throw Error(t)}if(!e.body)throw Error(`响应无 body`);return new Promise((t,n)=>{let r=!1,i=e=>{r||(r=!0,e())};k(e,e=>{try{let r=JSON.parse(e);r.type===`ready`&&typeof r.port==`number`&&r.port>0?i(()=>t(r.port)):r.type===`timeout`?i(()=>n(Error(`restart.timeout`))):r.type===`error`&&i(()=>n(Error(r.message||`restart.failed`)))}catch{}}).then(()=>{i(()=>n(Error(`restart.stream-closed`)))}).catch(()=>{})})}var N={key:3},P={key:4},F={key:5},I={key:0,class:`upgrade-hint`},L={key:0,class:`upgrade-countdown`},R=O(u({__name:`UpgradeDialog`,props:{modelValue:{type:Boolean},logs:{},status:{},countdown:{default:0}},emits:[`update:modelValue`,`retry`,`restart`,`cancel`],setup(i,{emit:a}){let s=i,u=a,h=w(null);o(()=>s.logs,async()=>{await c(),h.value&&(h.value.scrollTop=h.value.scrollHeight)});function v(){s.status!==`running`&&(s.status===`success`&&s.countdown>0&&u(`cancel`),u(`update:modelValue`,!1))}function y(){u(`retry`)}function O(){u(`restart`)}function k(){u(`cancel`),u(`update:modelValue`,!1)}return(a,o)=>{let s=f,c=e,w=n;return E(),g(w,{"model-value":i.modelValue,"onUpdate:modelValue":o[0]||=e=>u(`update:modelValue`,e),title:S(D)(`@F13B4:升级`),width:`680px`,"close-on-click-modal":!1,"close-on-press-escape":!1,"show-close":i.status!==`running`,"append-to-body":``,onClose:v},{footer:d(()=>[i.status===`failed`?(E(),g(c,{key:0,type:`primary`,onClick:y},{default:d(()=>[l(m(S(D)(`@F13B4:重试`)),1)]),_:1})):p(``,!0),i.status===`success`?(E(),g(c,{key:1,type:`primary`,onClick:O},{default:d(()=>[l(m(S(D)(`@F13B4:立即重启并刷新`)),1)]),_:1})):p(``,!0),i.status===`success`?(E(),g(c,{key:2,onClick:k},{default:d(()=>[l(m(S(D)(`@F13B4:稍后手动重启`)),1)]),_:1})):p(``,!0),i.status===`running`?(E(),g(c,{key:3,disabled:``},{default:d(()=>[l(m(S(D)(`@F13B4:升级中`))+`... `,1)]),_:1})):p(``,!0)]),default:d(()=>[_(`div`,{class:b([`upgrade-status`,`is-${i.status}`])},[i.status===`running`?(E(),g(s,{key:0,class:`is-loading`},{default:d(()=>[t(S(r))]),_:1})):i.status===`success`?(E(),g(s,{key:1,color:`#67c23a`},{default:d(()=>[t(S(x))]),_:1})):(E(),g(s,{key:2,color:`#f56c6c`},{default:d(()=>[t(S(C))]),_:1})),i.status===`running`?(E(),T(`span`,N,m(S(D)(`@F13B4:升级中`)),1)):i.status===`success`?(E(),T(`span`,P,m(S(D)(`@F13B4:升级完成`)),1)):(E(),T(`span`,F,m(S(D)(`@F13B4:升级失败`)),1))],2),i.status===`success`?(E(),T(`p`,I,[l(m(S(D)(`@F13B4:新版本已全局安装,需要重启服务才能生效`))+` `,1),i.countdown>0?(E(),T(`span`,L,m(S(D)(`@F13B4:{seconds} 秒后自动刷新`,{seconds:i.countdown})),1)):p(``,!0)])):p(``,!0),_(`pre`,{ref_key:`logEl`,ref:h,class:`upgrade-log`},m(i.logs||S(D)(`@F13B4:等待日志输出`)),513)]),_:1},8,[`model-value`,`title`,`show-close`])}}}),[[`__scopeId`,`data-v-3de8edac`]]),z={class:`app-version-badge`},B=[`aria-label`],V=[`aria-label`],H=[`title`,`aria-label`],U={class:`upgrade-btn__label`},W={class:`upgrade-btn__version`},G=`https://github.com/xz333221/zen-gitsync/releases`,K=5,q=`app-version-check`,J=3600*1e3,Y=O(u({__name:`AppVersionBadge`,setup(e){let n=`2.15.9`,r=w(n),o=y(()=>r.value||n),c=w(null),l=w(!1),u=w(``),f=w(`running`),g=w(0),b=null,x=w(!1);function C(){try{let e=sessionStorage.getItem(q);if(!e)return null;let{at:t,data:n}=JSON.parse(e);return Date.now()-t>J?null:n}catch{return null}}function O(e){try{sessionStorage.setItem(q,JSON.stringify({at:Date.now(),data:e}))}catch{}}async function k(e=!1){let t=C();t&&(c.value=t);try{let t=await A();c.value=t,O(t),t.current&&(r.value=t.current),!e&&t.success&&t.hasUpdate&&h({type:`success`,message:D(`@F13B4:发现新版本 {version}`,{version:t.latest??``}),duration:4e3})}catch(t){e||h({type:`warning`,message:D(`@F13B4:检查更新失败 {error}`,{error:t?.message||``})})}}async function N(){if(c.value?.hasUpdate){try{await v.confirm(D(`@F13B4:确定要从 {current} 升级到 {latest} 吗?`,{current:c.value.current,latest:c.value.latest}),D(`@F13B4:升级`),{confirmButtonText:D(`@F13B4:确定升级`),cancelButtonText:D(`@F13B4:取消`),type:`info`})}catch{return}u.value=``,f.value=`running`,l.value=!0,await j(e=>{if(e.type===`done`){if(f.value=e.code===0?`success`:`failed`,e.code===0){try{sessionStorage.removeItem(q)}catch{}c.value?.latest&&(r.value=c.value.latest),P()}}else e.message&&(u.value+=e.message)})}}function P(){F(),g.value=K,b=setInterval(()=>{--g.value,g.value<=0&&(b&&=(clearInterval(b),null),L())},1e3)}function F(){b&&=(clearInterval(b),null),g.value=0}function I(){F()}async function L(){if(F(),!x.value){x.value=!0;try{let e=await M(),{pathname:t,search:n,hash:r}=window.location;window.location.href=`http://localhost:${e}${t}${n}${r}`}catch(e){let t=e?.message||``,n={"restart.timeout":`@F13B4:重启超时`,"restart.stream-closed":`@F13B4:重启失败,请刷新页面重试`,"restart.failed":`@F13B4:重启失败`}[t];h({type:`warning`,message:n?D(n):D(`@F13B4:重启失败 {error}`,{error:t})}),x.value=!1}}}return i(()=>{F()}),s(()=>{k(!0)}),(e,n)=>{let r=a;return E(),T(`div`,z,[t(r,{content:S(D)(`@F13B4:在 GitHub 上查看源码`),placement:`top`,effect:`dark`,"show-after":300},{default:d(()=>[_(`a`,{href:`https://github.com/xz333221/zen-gitsync`,target:`_blank`,rel:`noopener noreferrer`,class:`badge-icon-link`,"aria-label":S(D)(`@F13B4:在 GitHub 上查看源码`)},[...n[1]||=[_(`svg`,{viewBox:`0 0 24 24`,width:`15`,height:`15`,"aria-hidden":`true`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`},[_(`path`,{d:`M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844a9.59 9.59 0 0 1 2.504.337c1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.02 10.02 0 0 0 22 12.017C22 6.484 17.522 2 12 2z`})],-1)]],8,B)]),_:1},8,[`content`]),t(r,{content:S(D)(`@F13B4:在 npm 上查看包`),placement:`top`,effect:`dark`,"show-after":300},{default:d(()=>[_(`a`,{href:`https://www.npmjs.com/package/zen-gitsync`,target:`_blank`,rel:`noopener noreferrer`,class:`badge-icon-link badge-icon-link--npm`,"aria-label":S(D)(`@F13B4:在 npm 上查看包`)},[...n[2]||=[_(`svg`,{viewBox:`0 0 24 24`,width:`15`,height:`15`,"aria-hidden":`true`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`},[_(`path`,{d:`M2 2v20h20V2H2zm17.167 17.167H12.5v-10h-3.333v10H4.833V4.833h14.334v14.334z`})],-1)]],8,V)]),_:1},8,[`content`]),t(r,{content:S(D)(`@F13B4:查看更新`),placement:`top`,effect:`dark`,"show-after":300},{default:d(()=>[_(`a`,{href:G,target:`_blank`,rel:`noopener noreferrer`,class:`version-link`},`v`+m(o.value),1)]),_:1},8,[`content`]),c.value?.hasUpdate?(E(),T(`button`,{key:0,type:`button`,class:`upgrade-btn`,title:S(D)(`@F13B4:发现新版本 {version},点击升级`,{version:c.value.latest??``}),"aria-label":S(D)(`@F13B4:发现新版本 {version},点击升级`,{version:c.value.latest??``}),onClick:N},[n[3]||=_(`span`,{class:`upgrade-btn__dot`,"aria-hidden":`true`},null,-1),_(`span`,U,m(S(D)(`@F13B4:升级`)),1),_(`span`,W,`v`+m(c.value.latest),1)],8,H)):p(``,!0),t(R,{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,logs:u.value,status:f.value,countdown:g.value,onRetry:N,onRestart:L,onCancel:I},null,8,[`modelValue`,`logs`,`status`,`countdown`])])}}}),[[`__scopeId`,`data-v-bc7c0d5c`]]);export{Y as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./ConsoleView-8fOLdsYa.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mindmap-view[data-v-fde41ce9]{background:var(--bg-page);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.mm-toolbar[data-v-fde41ce9]{background:var(--bg-container);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}.mm-toolbar-left[data-v-fde41ce9],.mm-toolbar-right[data-v-fde41ce9]{align-items:center;gap:8px;min-width:0;display:flex}.mm-toolbar-right[data-v-fde41ce9]{flex-shrink:0}.mm-dir-path[data-v-fde41ce9]{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono,monospace);white-space:nowrap;text-overflow:ellipsis;background:var(--bg-subtle);border-radius:var(--radius-sm);max-width:320px;padding:2px 8px;overflow:hidden}.mm-dir-empty[data-v-fde41ce9]{color:var(--text-tertiary);font-size:12px;font-style:italic}.mm-status[data-v-fde41ce9]{color:var(--text-secondary);align-items:center;gap:4px;margin-left:4px;font-size:12px;display:flex}.mm-status-title[data-v-fde41ce9]{white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-weight:500;overflow:hidden}.mm-status-dirty[data-v-fde41ce9]{color:var(--color-warning);font-size:14px;line-height:1}.mm-body[data-v-fde41ce9]{flex:1;min-height:0;display:flex;overflow:hidden}.mm-sidebar[data-v-fde41ce9]{background:var(--bg-container);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:240px;display:flex}.mm-sidebar-header[data-v-fde41ce9]{border-bottom:1px solid var(--border-color);background:var(--bg-panel);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.mm-sidebar-title[data-v-fde41ce9]{color:var(--text-secondary);letter-spacing:.5px;text-transform:uppercase;font-size:12px;font-weight:600}.mm-sidebar-list[data-v-fde41ce9]{flex:1;min-height:0;padding:4px;overflow-y:auto}.mm-sidebar-empty[data-v-fde41ce9],.mm-sidebar-error[data-v-fde41ce9]{text-align:center;color:var(--text-tertiary);padding:24px 12px;font-size:12px}.mm-sidebar-error[data-v-fde41ce9]{color:var(--color-danger)}.mm-file-item[data-v-fde41ce9]{border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;transition:background .15s;display:flex;position:relative}.mm-file-item[data-v-fde41ce9]:hover{background:var(--bg-hover)}.mm-file-item.active[data-v-fde41ce9]{background:color-mix(in srgb, var(--color-primary) 12%, transparent)}.mm-file-item.active .mm-file-title[data-v-fde41ce9]{color:var(--color-primary);font-weight:600}.mm-file-icon[data-v-fde41ce9]{color:var(--text-tertiary);flex-shrink:0;align-items:center;display:flex}.mm-file-item.active .mm-file-icon[data-v-fde41ce9]{color:var(--color-primary)}.mm-file-info[data-v-fde41ce9]{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.mm-file-title[data-v-fde41ce9]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.mm-file-meta[data-v-fde41ce9]{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.mm-file-actions[data-v-fde41ce9]{opacity:0;align-items:center;gap:2px;transition:opacity .15s;display:flex}.mm-file-item:hover .mm-file-actions[data-v-fde41ce9]{opacity:1}.mm-editor[data-v-fde41ce9]{background:var(--bg-container);flex:1;min-width:0;min-height:0;position:relative}.mm-editor[data-v-fde41ce9] .zm-mindmap,.mm-editor[data-v-fde41ce9]>*{width:100%;height:100%}.mm-editor-empty[data-v-fde41ce9]{color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.mm-editor-empty svg[data-v-fde41ce9]{opacity:.4}.mm-editor-empty-title[data-v-fde41ce9]{color:var(--text-secondary);margin:8px 0 0;font-size:16px;font-weight:600}.mm-editor-empty-hint[data-v-fde41ce9]{color:var(--text-tertiary);margin:0;font-size:13px}@media (width<=900px){.mm-sidebar[data-v-fde41ce9]{width:180px}.mm-dir-path[data-v-fde41ce9]{max-width:160px}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-CMxvf4Kt.js";import{B as e,Cn as t,Fn as n,Jn as r,Ln as i,Lt as a,Pt as o,Sn as s,Tn as c,Vn as l,Xn as u,Zn as d,_n as f,_r as p,a as m,bt as h,gn as g,hn as _,ht as v,i as y,ln as ee,lt as te,mn as b,mr as x,o as ne,pr as S,pt as re,sr as C,un as ie,vn as w,vt as ae,xn as T,zn as E}from"./element-plus-CL7fBdM_.js";import{d as D,f as oe,s as se}from"./vendor--LaaJk9m.js";import{n as O,t as k}from"./_plugin-vue_export-helper-AKtm5TQX.js";import{n as ce,t as A}from"./configStore-CfU8l9be.js";import{n as j,r as M}from"./flow-mindmap-BmmuW0nH.js";var N=D(`mindmap`,()=>{let e=A(),t=C(e.ui.mindmapDir||``),n=C([]),r=C(null),i=C(!1),a=C(!1),o=C(null),s=C(``),c=b(()=>r.value!==null),l=b(()=>n.value.length);function u(t){e.saveUiSettings({mindmapDir:t})}async function d(e){let r=e??t.value;if(!r){o.value=null,n.value=[];return}a.value=!0,o.value=null;try{let e=await(await fetch(`/api/mindmap/list?dir=${encodeURIComponent(r)}`)).json();e.success?(t.value=e.dir,n.value=e.files||[],u(e.dir)):(o.value=e.error||`读取目录失败`,n.value=[])}catch(e){o.value=e?.message||String(e),n.value=[]}finally{a.value=!1}}async function f(e){await d(e)}async function p(e,t=!1){if(!t&&i.value&&r.value)throw Error(`UNSAVED_CHANGES`);a.value=!0,o.value=null;try{let t=await(await fetch(`/api/mindmap/read?path=${encodeURIComponent(e)}`)).json();t.success?(r.value={path:t.path,title:t.title,content:t.content,mtime:t.mtime},s.value=t.content,i.value=!1):o.value=t.error||`读取文件失败`}catch(e){o.value=e?.message||String(e)}finally{a.value=!1}}async function m(e,n=!1){if(!t.value)throw Error(`未选择目录`);if(!n&&i.value&&r.value)throw Error(`UNSAVED_CHANGES`);a.value=!0,o.value=null;try{let n=await(await fetch(`/api/mindmap/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({dir:t.value,name:e})})).json();if(n.success)r.value={path:n.path,title:n.title,content:n.content,mtime:n.mtime},s.value=n.content,i.value=!1,await d();else throw o.value=n.error||`新建失败`,Error(n.error||`新建失败`)}catch(e){throw e.message===`UNSAVED_CHANGES`||(o.value=e?.message||String(e)),e}finally{a.value=!1}}async function h(e){if(!r.value)throw Error(`没有打开的文件`);a.value=!0,o.value=null;try{let t=await(await fetch(`/api/mindmap/save`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:r.value.path,content:e})})).json();if(t.success)return r.value&&(r.value.content=e,r.value.mtime=t.mtime),s.value=e,i.value=!1,await d(),t;throw o.value=t.error||`保存失败`,Error(t.error||`保存失败`)}catch(e){throw o.value=e?.message||String(e),e}finally{a.value=!1}}async function g(e){let t=await(await fetch(`/api/mindmap/delete`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})})).json();if(!t.success)throw Error(t.error||`删除失败`);return r.value&&r.value.path===e&&(r.value=null,i.value=!1,s.value=``),await d(),t}async function _(e,t){let n=await(await fetch(`/api/mindmap/rename`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e,newName:t})})).json();if(!n.success)throw Error(n.error||`重命名失败`);return r.value&&e===r.value.path&&(r.value={...r.value,path:n.path,title:t}),await d(),n}function v(){r.value&&(i.value=!0)}function y(){r.value=null,i.value=!1,s.value=``}return{currentDir:t,files:n,current:r,dirty:i,loading:a,error:o,hasCurrent:c,filesCount:l,listFiles:d,setDir:f,openFile:p,createFile:m,saveCurrent:h,deleteFile:g,renameFile:_,markDirty:v,closeCurrent:y}}),P={class:`mindmap-view`},F={class:`mm-toolbar`},I={class:`mm-toolbar-left`},L=[`title`],R={key:1,class:`mm-dir-empty`},z={class:`mm-toolbar-right`},B={key:0,class:`mm-status`},V=[`title`],H={key:0,class:`mm-status-dirty`},U={class:`mm-body`},W={class:`mm-sidebar`},G={class:`mm-sidebar-header`},le={class:`mm-sidebar-title`},ue={class:`mm-sidebar-list`},de={key:0,class:`mm-sidebar-error`},fe={key:1,class:`mm-sidebar-empty`},pe={key:2,class:`mm-sidebar-empty`},me=[`onClick`],he={class:`mm-file-info`},ge=[`title`],_e={class:`mm-file-meta`},ve={class:`mm-editor`},ye={key:0,class:`mm-editor-empty`},be={class:`mm-editor-empty-title`},xe={class:`mm-editor-empty-hint`},K=k(c({__name:`MindmapView`,setup(c){let D=N(),k=A(),{currentLocale:K}=oe(ce()),Se=b(()=>{let e=k.theme;return e===`dark`?!0:e===`light`?!1:window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!1}),q=C(null),J=C(!1);function Ce(){J.value=!0}function we(e){J.value=!1,e&&e.length>0&&D.setDir(e[0])}async function Te(){if(!D.currentDir){m.warning(O(`@MINDMAP:请先选择目录`));return}if(!await X())return;let e=``;try{e=(await y.prompt(O(`@MINDMAP:输入文件名提示`),O(`@MINDMAP:新建思维导图`),{confirmButtonText:O(`@MINDMAP:新建`),cancelButtonText:O(`@MINDMAP:取消`),inputPlaceholder:O(`@MINDMAP:文件名占位`),inputValidator:e=>!e||!e.trim()?O(`@MINDMAP:名称不能为空`):/[\\/:*?"<>|]/.test(e)?O(`@MINDMAP:名称含非法字符`):!0})).value.trim()}catch{return}try{await D.createFile(e,!0),m.success(O(`@MINDMAP:已新建并打开`))}catch(e){m.error(e?.message||O(`@MINDMAP:新建失败`))}}async function Y(){if(D.current)try{let e=q.value?.exportData();if(!e){m.warning(O(`@MINDMAP:无法获取数据`));return}await D.saveCurrent(e),m.success(O(`@MINDMAP:已保存`))}catch(e){m.error(e?.message||O(`@MINDMAP:保存失败`))}}async function X(){if(!D.dirty||!D.current)return!0;try{await y.confirm(O(`@MINDMAP:未保存提示`).replace(`{title}`,D.current.title),O(`@MINDMAP:未保存的改动`),{confirmButtonText:O(`@MINDMAP:保存`),cancelButtonText:O(`@MINDMAP:丢弃`),distinguishCancelAndClose:!0,type:`warning`});let e=q.value?.exportData();return e&&(await D.saveCurrent(e),m.success(O(`@MINDMAP:已保存`))),!0}catch(e){return e===`cancel`}}async function Ee(e){if(!(D.current&&D.current.path===e)&&await X())try{await D.openFile(e,!0)}catch(e){m.error(e?.message||O(`@MINDMAP:打开失败`))}}async function De(e){try{await y.confirm(O(`@MINDMAP:确认删除提示`).replace(`{title}`,e.title),O(`@MINDMAP:删除`),{confirmButtonText:O(`@MINDMAP:删除`),cancelButtonText:O(`@MINDMAP:取消`),type:`warning`})}catch{return}try{await D.deleteFile(e.path),m.success(O(`@MINDMAP:已删除`))}catch(e){m.error(e?.message||O(`@MINDMAP:删除失败`))}}async function Oe(e){let t=``;try{t=(await y.prompt(O(`@MINDMAP:输入新名称提示`),O(`@MINDMAP:重命名`),{confirmButtonText:O(`@MINDMAP:确定`),cancelButtonText:O(`@MINDMAP:取消`),inputValue:e.title,inputValidator:e=>!e||!e.trim()?O(`@MINDMAP:名称不能为空`):/[\\/:*?"<>|]/.test(e)?O(`@MINDMAP:名称含非法字符`):!0})).value.trim()}catch{return}try{await D.renameFile(e.path,t),m.success(O(`@MINDMAP:已重命名`))}catch(e){m.error(e?.message||O(`@MINDMAP:重命名失败`))}}function ke(e){D.markDirty()}async function Z(){if(!D.currentDir){m.warning(O(`@MINDMAP:请先选择目录`));return}let e=``,t=``;try{e=(await y.prompt(O(`@MINDMAP:粘贴Markdown提示`),O(`@MINDMAP:从Markdown导入`),{confirmButtonText:O(`@MINDMAP:导入`),cancelButtonText:O(`@MINDMAP:取消`),inputType:`textarea`,inputPlaceholder:O(`@MINDMAP:Markdown占位`),inputValidator:e=>!e||!e.trim()?O(`@MINDMAP:内容不能为空`):!0})).value}catch{return}try{t=(await y.prompt(O(`@MINDMAP:输入文件名提示`),O(`@MINDMAP:文件名`),{confirmButtonText:O(`@MINDMAP:新建`),cancelButtonText:O(`@MINDMAP:取消`),inputValidator:e=>!e||!e.trim()?O(`@MINDMAP:名称不能为空`):/[\\/:*?"<>|]/.test(e)?O(`@MINDMAP:名称含非法字符`):!0})).value.trim()}catch{return}try{await D.createFile(t,!0);let n=j(e,t),r=JSON.stringify(n,null,2);await D.saveCurrent(r),m.success(O(`@MINDMAP:已导入`))}catch(e){m.error(e?.message||O(`@MINDMAP:导入失败`))}}async function Ae(){if(q.value)try{let e=q.value.getMarkdown();await navigator.clipboard.writeText(e),m.success(O(`@MINDMAP:已复制Markdown`))}catch(e){m.error(e?.message||O(`@MINDMAP:复制失败`))}}function Q(e){(e.ctrlKey||e.metaKey)&&e.key===`s`&&(e.preventDefault(),D.current&&D.dirty&&Y())}let $=C(0);r(()=>D.current?.path,()=>{$.value++});let je=b(()=>{let e=D.current?.content;if(!e)return null;try{return JSON.parse(e)}catch{return null}});i(async()=>{window.addEventListener(`keydown`,Q),D.currentDir&&await D.listFiles()}),n(()=>{window.removeEventListener(`keydown`,Q)});function Me(e){if(!e)return`-`;let t=new Date(e),n=Date.now()-e;return n<6e4?O(`@MINDMAP:刚刚`):n<36e5?`${Math.floor(n/6e4)}${O(`@MINDMAP:分钟前`)}`:n<864e5?`${Math.floor(n/36e5)}${O(`@MINDMAP:小时前`)}`:`${t.getMonth()+1}/${t.getDate()} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function Ne(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`:`0 B`}return(n,r)=>{let i=e,c=ne;return E(),w(`div`,P,[_(`div`,F,[_(`div`,I,[t(i,{size:`small`,icon:S(h),onClick:Ce},{default:u(()=>[s(p(S(O)(`@MINDMAP:选择目录`)),1)]),_:1},8,[`icon`]),S(D).currentDir?(E(),w(`span`,{key:0,class:`mm-dir-path`,title:S(D).currentDir},p(S(D).currentDir),9,L)):(E(),w(`span`,R,p(S(O)(`@MINDMAP:未选择目录`)),1))]),_(`div`,z,[t(i,{size:`small`,icon:S(o),disabled:!S(D).currentDir,onClick:Te},{default:u(()=>[s(p(S(O)(`@MINDMAP:新建`)),1)]),_:1},8,[`icon`,`disabled`]),t(i,{size:`small`,icon:S(re),disabled:!S(D).currentDir,onClick:Z},{default:u(()=>[s(p(S(O)(`@MINDMAP:从MD导入`)),1)]),_:1},8,[`icon`,`disabled`]),t(i,{size:`small`,icon:S(v),disabled:!S(D).current,onClick:Ae},{default:u(()=>[s(p(S(O)(`@MINDMAP:复制MD`)),1)]),_:1},8,[`icon`,`disabled`]),t(i,{size:`small`,type:`primary`,icon:S(ae),disabled:!S(D).current||!S(D).dirty,loading:S(D).loading,onClick:Y},{default:u(()=>[s(p(S(O)(`@MINDMAP:保存`)),1)]),_:1},8,[`icon`,`disabled`,`loading`]),S(D).current?(E(),w(`span`,B,[_(`span`,{class:`mm-status-title`,title:S(D).current.title},p(S(D).current.title),9,V),S(D).dirty?(E(),w(`span`,H,`●`)):f(``,!0)])):f(``,!0)])]),_(`div`,U,[_(`div`,W,[_(`div`,G,[_(`span`,le,p(S(O)(`@MINDMAP:文件列表`)),1),t(i,{size:`small`,text:``,icon:S(a),loading:S(D).loading,onClick:r[0]||=e=>S(D).listFiles(),disabled:!S(D).currentDir},null,8,[`icon`,`loading`,`disabled`])]),d((E(),w(`div`,ue,[S(D).error&&!S(D).loading?(E(),w(`div`,de,p(S(D).error),1)):S(D).currentDir?S(D).files.length===0?(E(),w(`div`,pe,p(S(O)(`@MINDMAP:暂无思维导图`)),1)):(E(!0),w(ie,{key:3},l(S(D).files,e=>(E(),w(`div`,{key:e.path,class:x([`mm-file-item`,{active:S(D).current?.path===e.path}]),onClick:t=>Ee(e.path)},[r[3]||=T(`<div class="mm-file-icon" data-v-fde41ce9><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-fde41ce9><circle cx="12" cy="12" r="2" data-v-fde41ce9></circle><circle cx="5" cy="5" r="2" data-v-fde41ce9></circle><circle cx="19" cy="5" r="2" data-v-fde41ce9></circle><circle cx="5" cy="19" r="2" data-v-fde41ce9></circle><circle cx="19" cy="19" r="2" data-v-fde41ce9></circle><line x1="10.5" y1="10.5" x2="6.5" y2="6.5" data-v-fde41ce9></line><line x1="13.5" y1="10.5" x2="17.5" y2="6.5" data-v-fde41ce9></line><line x1="10.5" y1="13.5" x2="6.5" y2="17.5" data-v-fde41ce9></line><line x1="13.5" y1="13.5" x2="17.5" y2="17.5" data-v-fde41ce9></line></svg></div>`,1),_(`div`,he,[_(`div`,{class:`mm-file-title`,title:e.title},p(e.title),9,ge),_(`div`,_e,p(Me(e.mtime))+` · `+p(Ne(e.size)),1)]),_(`div`,{class:`mm-file-actions`,onClick:r[1]||=ee(()=>{},[`stop`])},[t(i,{size:`small`,text:``,icon:S(v),onClick:t=>Oe(e),title:S(O)(`@MINDMAP:重命名`)},null,8,[`icon`,`onClick`,`title`]),t(i,{size:`small`,text:``,type:`danger`,icon:S(te),onClick:t=>De(e),title:S(O)(`@MINDMAP:删除`)},null,8,[`icon`,`onClick`,`title`])])],10,me))),128)):(E(),w(`div`,fe,p(S(O)(`@MINDMAP:请先选择目录`)),1))])),[[c,S(D).loading]])]),_(`div`,ve,[S(D).current?(E(),g(S(M),{key:$.value,ref_key:`mmRef`,ref:q,data:je.value,onChange:ke},null,8,[`data`])):(E(),w(`div`,ye,[r[4]||=T(`<svg viewBox="0 0 24 24" width="56" height="56" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" data-v-fde41ce9><circle cx="12" cy="12" r="2" data-v-fde41ce9></circle><circle cx="5" cy="5" r="2" data-v-fde41ce9></circle><circle cx="19" cy="5" r="2" data-v-fde41ce9></circle><circle cx="5" cy="19" r="2" data-v-fde41ce9></circle><circle cx="19" cy="19" r="2" data-v-fde41ce9></circle><line x1="10.5" y1="10.5" x2="6.5" y2="6.5" data-v-fde41ce9></line><line x1="13.5" y1="10.5" x2="17.5" y2="6.5" data-v-fde41ce9></line><line x1="10.5" y1="13.5" x2="6.5" y2="17.5" data-v-fde41ce9></line><line x1="13.5" y1="13.5" x2="17.5" y2="17.5" data-v-fde41ce9></line></svg>`,1),_(`p`,be,p(S(O)(`@MINDMAP:思维导图编辑器`)),1),_(`p`,xe,p(S(D).currentDir?S(O)(`@MINDMAP:从左侧选择或新建`):S(O)(`@MINDMAP:先选择目录提示`)),1)]))])]),t(S(se),{visible:J.value,mode:`directory`,theme:Se.value?`dark`:`light`,locale:S(K),onClose:r[2]||=e=>J.value=!1,onConfirm:we},null,8,[`visible`,`theme`,`locale`])])}}}),[[`__scopeId`,`data-v-fde41ce9`]]);export{K as default};
|