zen-gitsync 2.15.7 → 2.15.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/src/ui/public/assets/{AppVersionBadge-BIA5wbad.js → AppVersionBadge-BmGuEsu2.js} +1 -1
  4. package/src/ui/public/assets/{BranchSelector-CzxF1atn.js → BranchSelector-DoY43HVz.js} +1 -1
  5. package/src/ui/public/assets/{CommitForm-BNpSLTmo.js → CommitForm-BIwYhnl6.js} +3 -3
  6. package/src/ui/public/assets/{CommitForm-DIGVx-uM.css → CommitForm-Cn1Tvbic.css} +1 -1
  7. package/src/ui/public/assets/{ConsoleView-TOwRl0CE.js → ConsoleView-eoEYLkYu.js} +3 -3
  8. package/src/ui/public/assets/CustomCommandManager-BB5dROOG.js +1 -0
  9. package/src/ui/public/assets/{EditorView-BcZ8ToAk.css → EditorView-CRYGVw_r.css} +1 -1
  10. package/src/ui/public/assets/EditorView-Dvt1LUL7.js +0 -0
  11. package/src/ui/public/assets/{FlowOrchestrationWorkspace-aRGCXszc.js → FlowOrchestrationWorkspace-BKalhFsV.js} +1 -1
  12. package/src/ui/public/assets/LogList-D7M5qlo9.js +7 -0
  13. package/src/ui/public/assets/LogList-DJYpDUTZ.css +1 -0
  14. package/src/ui/public/assets/{ProjectStartupButton-MFxOB2-F.js → ProjectStartupButton-BON5_5pd.js} +1 -1
  15. package/src/ui/public/assets/{RemoteRepoCard-Bc4hTebM.js → RemoteRepoCard-DqVy9_jd.js} +1 -1
  16. package/src/ui/public/assets/{SourceMapView-Dl9a3yIK.js → SourceMapView-DyEW_0Bi.js} +1 -1
  17. package/src/ui/public/assets/{TemplateManager-BQRLJrZb.js → TemplateManager-DjnkD7_u.js} +1 -1
  18. package/src/ui/public/assets/{WorkbenchView--Nb1I8ru.js → WorkbenchView-CeE1Pog-.js} +1 -1
  19. package/src/ui/public/assets/index-BN1q_ie5.js +23 -0
  20. package/src/ui/public/assets/{index-DuKALA-W.css → index-CquDLWhf.css} +1 -1
  21. package/src/ui/public/index.html +2 -2
  22. package/src/ui/server/routes/fileOpen.js +31 -2
  23. package/src/ui/public/assets/CustomCommandManager-DOv-qxlZ.js +0 -1
  24. package/src/ui/public/assets/EditorView-BLY8Vs9G.js +0 -0
  25. package/src/ui/public/assets/LogList-Cn7V9bX-.css +0 -1
  26. package/src/ui/public/assets/LogList-MjC1nmsN.js +0 -7
  27. package/src/ui/public/assets/index-ge5fGkLk.js +0 -23
@@ -10,7 +10,7 @@
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-ge5fGkLk.js"></script>
13
+ <script type="module" crossorigin src="/assets/index-BN1q_ie5.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-DB-NeCl9.js">
@@ -25,7 +25,7 @@
25
25
  <link rel="stylesheet" crossorigin href="/assets/vendor-CT8e9rs3.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-DuKALA-W.css">
28
+ <link rel="stylesheet" crossorigin href="/assets/index-CquDLWhf.css">
29
29
  </head>
30
30
  <body>
31
31
  <div id="app"></div>
@@ -254,13 +254,13 @@ export function registerFileOpenRoutes({
254
254
  if (!dirPath) {
255
255
  throw new HttpError(400, '目录路径不能为空');
256
256
  }
257
-
257
+
258
258
  try {
259
259
  await fs.access(dirPath);
260
260
  } catch (error) {
261
261
  throw new HttpError(400, `目录不存在或不可访问: ${dirPath}`);
262
262
  }
263
-
263
+
264
264
  try {
265
265
  await launchClaudeCode(dirPath, { permissionMode });
266
266
  const message = permissionMode
@@ -277,4 +277,33 @@ export function registerFileOpenRoutes({
277
277
  res.status(500).json({ success: false, error: error.message });
278
278
  }
279
279
  }));
280
+
281
+ // 检测本地工具是否已安装(供前端根据结果决定是否显示对应按钮)
282
+ // 检测方式: spawn 'tool --version',exit 0 即视为已安装
283
+ // 超时 3s 避免某个工具卡在 PATH 解析上时整个接口挂起
284
+ app.get('/api/check-tools', asyncRoute(async (req, res) => {
285
+ const checkCmd = (cmd) => new Promise((resolve) => {
286
+ const child = spawn(cmd, ['--version'], {
287
+ stdio: 'ignore',
288
+ shell: process.platform === 'win32',
289
+ });
290
+ let done = false;
291
+ const finish = (ok) => {
292
+ if (done) return;
293
+ done = true;
294
+ try { child.kill('SIGKILL'); } catch {}
295
+ resolve(ok);
296
+ };
297
+ child.on('error', () => finish(false));
298
+ child.on('exit', (code) => finish(code === 0));
299
+ setTimeout(() => finish(false), 3000);
300
+ });
301
+
302
+ const [vscode, claude] = await Promise.all([
303
+ checkCmd('code'),
304
+ checkCmd('claude'),
305
+ ]);
306
+
307
+ res.json({ success: true, vscode, claude });
308
+ }));
280
309
  }
@@ -1 +0,0 @@
1
- import{t as e}from"./ConsoleView-TOwRl0CE.js";export{e as default};
@@ -1 +0,0 @@
1
- .fullscreen-mode .log-header[data-v-cfee736c]{box-shadow:var(--shadow-md);margin-bottom:10px}.header-left[data-v-cfee736c]{align-items:center;gap:var(--spacing-lg);display:flex}.log-actions[data-v-cfee736c]{align-items:center;gap:var(--spacing-base);display:flex}.action-button[data-v-cfee736c]{padding:var(--spacing-sm) var(--spacing-base)}.action-button[data-v-cfee736c]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.icon-only-button[data-v-cfee736c]{min-width:unset!important;padding:var(--spacing-sm)!important;border-radius:6px!important;width:28px!important;height:28px!important}.content-area[data-v-cfee736c]{flex-direction:column;flex:1;height:calc(100% - 52px);min-height:100px;display:flex;overflow:auto}.content-area-content[data-v-cfee736c]{flex-direction:column;height:100%;display:flex}.log-empty-state[data-v-cfee736c]{justify-content:center;align-items:center;gap:var(--spacing-base);color:var(--text-tertiary);flex-direction:column;flex:1;display:flex}.log-empty-icon[data-v-cfee736c]{opacity:.5;font-size:40px}.log-empty-text[data-v-cfee736c]{font-size:var(--font-size-sm);color:var(--text-secondary)}.content-area.with-filter[data-v-cfee736c]{height:calc(100% - 112px);padding-top:0}.content-area>div[data-v-cfee736c]{flex-direction:column;flex:1;display:flex}.el-table[data-v-cfee736c]{border-radius:var(--radius-lg);overflow:hidden}[data-v-cfee736c] .el-table__header th{height:36px;font-weight:600;font-size:var(--font-size-sm)}[data-v-cfee736c] .el-table__row{cursor:pointer;transition:all .2s}[data-v-cfee736c] .el-table__cell{font-size:var(--font-size-sm);padding:0}.branch-container[data-v-cfee736c]{gap:var(--spacing-sm);margin-right:var(--spacing-sm);flex-wrap:wrap;flex-shrink:0;display:flex}.branch-tag[data-v-cfee736c]{border-radius:var(--radius-sm);font-size:var(--font-size-xs);padding:0 var(--spacing-sm);height:14px;margin-right:0;line-height:14px;transition:all .2s}.branch-tag[data-v-cfee736c]:hover{box-shadow:var(--shadow-sm);transform:scale(1.02)}.branch-tag[data-v-cfee736c]:active{transform:scale(.98)}.branch-tag[data-v-cfee736c]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.commit-count[data-v-cfee736c]{margin-bottom:var(--spacing-md);color:var(--text-secondary);text-align:right}.scale-info[data-v-cfee736c]{color:var(--text-secondary);padding:var(--spacing-sm) 10px;border-radius:var(--radius-base);border:1px solid var(--border-card)}.author-name[data-v-cfee736c]{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:500;font-size:var(--font-size-sm);display:inline-block;overflow:hidden}.commit-hash[data-v-cfee736c]{cursor:pointer;color:var(--commit-hash-fg);border-radius:var(--radius-sm);background-color:var(--commit-hash-bg);font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-weight:500;font-size:inherit;line-height:inherit;letter-spacing:.2px;-webkit-user-select:none;user-select:none;border:none;padding:2px 5px;font-size:11px;line-height:1.4;transition:all .2s;display:inline-block}.commit-hash[data-v-cfee736c]:hover{background-color:color-mix(in srgb, var(--commit-hash-bg) 70%, var(--color-primary) 30%);box-shadow:var(--shadow-sm);text-decoration:none}.commit-hash[data-v-cfee736c]:active{background-color:color-mix(in srgb, var(--commit-hash-bg) 50%, var(--color-primary) 50%);transform:scale(.96)}.commit-detail-container[data-v-cfee736c]{gap:var(--spacing-md);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.commit-info[data-v-cfee736c]{background:var(--bg-panel);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:var(--transition-all);flex-shrink:0}.commit-info-row[data-v-cfee736c]{gap:var(--spacing-2xl);flex-flow:wrap;align-items:center;display:flex}.info-item[data-v-cfee736c]{gap:var(--spacing-base);align-items:center;display:flex}.date-item[data-v-cfee736c]{flex-shrink:0}.message-item[data-v-cfee736c]{align-items:flex-start;gap:var(--spacing-base);flex-flow:wrap;flex:1;min-width:0;display:flex}.info-label[data-v-cfee736c]{color:var(--color-warning);white-space:nowrap;flex-shrink:0;font-weight:600}.info-value[data-v-cfee736c]{color:var(--text-primary);white-space:nowrap;font-weight:500}.info-message[data-v-cfee736c]{color:var(--text-primary);word-break:break-word;flex:1;line-height:1.6}.info-message-wrapper[data-v-cfee736c]{gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex}.info-message-title[data-v-cfee736c]{color:var(--text-primary);word-break:break-word;font-weight:500;line-height:1.6}.info-message-body[data-v-cfee736c]{color:var(--text-primary);word-break:break-word;white-space:pre-wrap;padding-top:var(--spacing-sm);border-top:1px dashed var(--border-card);line-height:1.6}.info-message-toggle[data-v-cfee736c]{border:1px solid var(--border-card);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-primary);cursor:pointer;background:0 0;flex-shrink:0;align-self:center;align-items:center;gap:4px;padding:2px 8px;transition:all .2s;display:inline-flex}.info-message-toggle[data-v-cfee736c]:hover{background:var(--bg-panel);border-color:var(--color-primary)}.info-message-toggle-icon[data-v-cfee736c]{transition:transform .2s;display:inline-block}.info-message-toggle-icon.is-expanded[data-v-cfee736c]{transform:rotate(180deg)}[data-v-cfee736c] .commit-detail-dialog .el-dialog__body{background-color:var(--bg-container);flex-direction:column;display:flex;overflow:hidden}.diff-content[data-v-cfee736c]::-webkit-scrollbar{width:6px;height:6px}.files-list[data-v-cfee736c]::-webkit-scrollbar{width:6px;height:6px}.diff-content[data-v-cfee736c]::-webkit-scrollbar-thumb{border-radius:var(--radius-base);background-color:#9093994d}.files-list[data-v-cfee736c]::-webkit-scrollbar-thumb{border-radius:var(--radius-base);background-color:#9093994d}.diff-content[data-v-cfee736c]::-webkit-scrollbar-thumb:hover{background-color:#90939980}.files-list[data-v-cfee736c]::-webkit-scrollbar-thumb:hover{background-color:#90939980}.diff-content[data-v-cfee736c]::-webkit-scrollbar-track{background-color:#0000}.files-list[data-v-cfee736c]::-webkit-scrollbar-track{background-color:#0000}.diff-content[data-v-cfee736c],.files-list[data-v-cfee736c]{scrollbar-width:thin;scrollbar-color:#9093994d transparent}.filter-panel-header[data-v-cfee736c]{background-color:var(--bg-panel);padding:var(--spacing-sm);margin-bottom:var(--spacing-base);border-radius:var(--radius-lg);z-index:99;width:100%;transition:all .3s;position:sticky;top:36px;box-shadow:0 2px 12px #0000000d}.fullscreen-mode .filter-panel-header[data-v-cfee736c]{z-index:9;background-color:var(--bg-container);width:100%;box-shadow:var(--shadow-md);border-radius:0;position:sticky;top:60px}.filter-form[data-v-cfee736c]{gap:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.filter-item[data-v-cfee736c]{flex:1}.filter-actions[data-v-cfee736c]{white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;display:flex}.filter-input[data-v-cfee736c]{width:100%}.filter-input.date-range[data-v-cfee736c]{width:100%;max-width:230px}[data-v-cfee736c] .el-range-editor.el-range-editor--small{width:230px!important;min-width:230px!important}[data-v-cfee736c] .el-date-editor.date-range{width:230px!important}.compact-label[data-v-cfee736c]{color:var(--text-tertiary);font-size:var(--font-size-sm);white-space:nowrap;border-right:1px solid var(--border-card);padding-right:var(--spacing-sm);margin-right:4px;font-weight:700}.filter-action-button[data-v-cfee736c]{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);min-width:60px;font-weight:500;transition:all .3s}.filter-action-button[data-v-cfee736c]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.table-view-container[data-v-cfee736c]{flex-direction:column;flex:1;height:100%;display:flex}.log-table[data-v-cfee736c]{flex:1;width:100%}.commit-message-cell[data-v-cfee736c]{align-items:center;min-height:26px;display:flex}.message-content[data-v-cfee736c]{align-items:center;gap:var(--spacing-base);width:100%;display:flex}.message-text[data-v-cfee736c]{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:var(--line-height-tight);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums;cursor:default;flex:1;overflow:hidden}.message-text[data-v-cfee736c]:hover,[data-v-cfee736c] .el-table__cell{color:var(--text-primary)}.copy-message-btn[data-v-cfee736c]{opacity:0;padding:var(--spacing-sm);min-width:auto;height:auto;transition:opacity .2s}.commit-message-cell:hover .copy-message-btn[data-v-cfee736c]{opacity:1}.copy-message-btn[data-v-cfee736c]:hover{color:var(--color-primary)}.copy-hash-btn[data-v-cfee736c]{font-size:var(--font-size-sm);color:var(--text-secondary);transition:color .2s}.copy-hash-btn[data-v-cfee736c]:hover{color:var(--color-primary)}.fullscreen-mode .log-table[data-v-cfee736c]{height:100%}.load-more-container[data-v-cfee736c]{padding:var(--spacing-base) 0;border-top:1px dashed var(--border-card);align-items:center;gap:var(--spacing-base);flex-direction:column;display:flex}.pagination-info[data-v-cfee736c]{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-sm)}@keyframes fadeIn-cfee736c{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.context-menu-item[data-v-cfee736c]{padding:10px var(--spacing-lg);cursor:pointer;list-style:none;transition:background-color .12s}.context-menu-item[data-v-cfee736c]:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background-color:var(--bg-hover)}.context-menu-item[data-v-cfee736c]{color:var(--text-secondary);align-items:center;transition:all .2s;display:flex}.context-menu-item[data-v-cfee736c]:hover{background-color:var(--bg-panel);color:var(--color-primary)}.context-menu-item i[data-v-cfee736c]{margin-right:var(--spacing-sm);font-size:var(--font-size-md)}.fullscreen-mode[data-v-cfee736c]{z-index:9999;width:100vw;height:100vh;box-shadow:none;background-color:var(--bg-container);border:none;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;top:0;left:0;overflow:auto}.fullscreen-mode .log-header[data-v-cfee736c]{z-index:10;background-color:var(--bg-container);padding:var(--spacing-lg);width:100%;margin-bottom:10px;position:sticky;top:0}.fullscreen-mode .filter-panel-header[data-v-cfee736c]{z-index:9;background-color:var(--bg-container);width:100%;position:sticky;top:60px}.fullscreen-mode .content-area[data-v-cfee736c]{flex:1;height:100vh;max-height:none;overflow:auto}.fullscreen-mode .el-table[data-v-cfee736c]{height:calc(100vh - 60px)}.context-menu[data-v-cfee736c]{background:var(--bg-container);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:3000;min-width:200px;padding:6px 0;animation:.15s ease-out fadeIn-cfee736c;position:fixed}.fullscreen-context-menu[data-v-cfee736c]{z-index:999999}.icon-only-button[data-v-cfee736c]{min-width:unset;width:36px;height:36px;padding:var(--spacing-base);border-radius:var(--radius-lg);justify-content:center;align-items:center;display:flex}.icon-only-button .el-icon[data-v-cfee736c]{margin-right:0}.el-table .el-table__cell .cell{word-break:break-all}.el-popper.commit-message-tooltip{max-width:480px;line-height:1.5}.el-popper.commit-message-tooltip .el-tooltip__content{white-space:pre-wrap;word-break:break-word}
@@ -1,7 +0,0 @@
1
- import"./rolldown-runtime-CMxvf4Kt.js";import{B as e,Cn as t,Fn as n,G as r,Jn as i,L as a,Ln as o,Mn as s,O as ee,R as te,Sn as c,Tn as ne,Vn as re,W as ie,Xn as l,Y as ae,Zn as oe,_n as u,_r as d,a as f,cn as p,ct as se,gn as m,gr as ce,gt as le,h,hn as g,i as ue,ln as _,m as de,mn as v,mr as y,o as fe,pr as b,pt as pe,sn as me,sr as x,un as he,vn as S,xt as ge,z as _e,zn as C,zt as ve}from"./element-plus-DB-NeCl9.js";import{n as w,t as ye}from"./_plugin-vue_export-helper-CbbG2Bfw.js";import{b as be,d as xe,g as Se,u as Ce,v as we}from"./index-ge5fGkLk.js";var Te={class:`log-header`},Ee={class:`header-left`},De={class:`log-actions`},Oe={key:1,viewBox:`0 0 24 24`,width:`1em`,height:`1em`,fill:`currentColor`,style:{display:`block`}},ke={key:0,class:`filter-panel-header`},Ae={class:`filter-form`},je={class:`filter-item`},Me={class:`compact-label`},Ne={class:`filter-item`},Pe={class:`compact-label`},Fe={class:`filter-item`},Ie={class:`compact-label`},Le={class:`filter-item`},Re={class:`compact-label`},ze={class:`filter-actions`},Be={key:0,role:`alert`,class:`log-error`},Ve={key:1,class:`log-empty-state`},He={class:`log-empty-text`},Ue={key:2,class:`content-area-content`},We={class:`table-view-container`},Ge={class:`commit-message-cell`},Ke={class:`message-content`},qe={key:0,class:`branch-container`},Je={class:`message-text`},Ye={class:`author-name`},Xe=[`title`,`aria-label`,`onClick`],Ze={class:`commit-detail-container`},Qe={key:0,class:`commit-info`},$e={class:`commit-info-row`},et={class:`info-item date-item`},tt={class:`info-label`},nt={class:`info-value`},rt={class:`info-item message-item`},it={class:`info-label`},at={class:`info-message-wrapper`},ot={class:`info-message-title`},st=[`innerHTML`],ct=[`aria-label`,`onKeydown`],T=ye(ne({__name:`LogList`,setup(ne,{expose:ye}){let T=we(),E=x([]),D=x(``),lt=x(!1),O=v(()=>T.isLoadingLog||lt.value),k=x(!1),A=x(!1),ut=x(null),dt=x(!1),j=x(null),M=x([]),N=x(``),P=x(!1),F=x(``),I=x(`full-new`),L=x(``),R=x(``),z=x(!1),ft=v(()=>j.value?.message?j.value.message.split(`
2
- `)[0].trim():``),pt=v(()=>j.value?.message?j.value.message.split(`
3
- `).slice(1).join(`
4
- `).trim():``),mt=v(()=>pt.value.length>0),ht=v(()=>pt.value.replace(/\n/g,`<br>`)),B=x(!1),V=x([]),H=x(``),U=x(null),gt=x([]),W=x([]),_t=x([]),G=x(!1),vt=x(0),yt=x(0),K=x(null),q=x(null),bt=v(()=>E.value),xt=v(()=>M.value.map(e=>({path:e,name:e.split(`/`).pop()||e})));async function J(e=!1,t=1){let n=we();if(!n.isGitRepo){D.value=`当前目录不是Git仓库`;return}try{t>1?A.value=!0:lt.value=!0;let r=new URLSearchParams;r.append(`page`,t.toString()),r.append(`all`,e.toString()),r.append(`with_parents`,`true`),V.value.length>0&&r.append(`author`,V.value.join(`,`)),W.value.length>0&&r.append(`branch`,W.value.join(`,`)),H.value&&r.append(`message`,H.value),U.value&&Array.isArray(U.value)&&U.value.length===2&&(r.append(`dateFrom`,U.value[0]),r.append(`dateTo`,U.value[1])),r.append(`_t`,Date.now().toString());let i=await(await fetch(`/api/log?${r.toString()}`)).json();if(!i||!i.data||!Array.isArray(i.data)){D.value=`加载提交历史失败: 服务器返回数据格式不正确`;return}let a=t>1;a&&Array.isArray(i.data)?E.value=E.value.concat(i.data):Array.isArray(i.data)&&(E.value=i.data),n.currentPage=t,n.totalCommits=i.total??E.value.length,n.hasMoreData=i.hasMore===!0,!a&&!e&&s(()=>{Dt(),setTimeout(nn,200)}),D.value=``}catch(e){D.value=`加载提交历史失败: `+(e instanceof Error?e.message:String(e)),t>1&&(n.hasMoreData=!1)}finally{t>1?A.value=!1:lt.value=!1}}function St(e){return e.includes(`HEAD -> `)?e.replace(`HEAD -> `,``):e.includes(`origin/`)?e:e.trim()}function Ct(e){return e.includes(`HEAD`)?`success`:e.includes(`origin/`)?`warning`:`info`}function wt(e){return e?e.length>60?!0:e.includes(`
5
- `):!1}let Y=x(null),X=x(null),Z=null;function Tt(e){Z===null&&(Z=requestAnimationFrame(()=>{Z=null,Et(e)}))}function Et(e){if(!T.hasMoreData||A.value||O.value)return;let{scrollTop:t,scrollHeight:n,clientHeight:r}=e.target;n-t-r<=20&&Ut()}function Dt(){if(!Y.value)return;let e=Y.value.$el.querySelector(`.el-table__body-wrapper`);e&&(X.value=e,X.value&&(X.value.removeEventListener(`scroll`,Tt,!0),X.value.addEventListener(`scroll`,Tt,!0)))}function Ot(){X.value&&=(X.value.removeEventListener(`scroll`,Tt,!0),null),Z!==null&&(cancelAnimationFrame(Z),Z=null)}function kt(e){e.key===`Escape`&&$.value&&($.value=!1)}o(()=>{T.isGitRepo?(T.log.length>0?(E.value=T.log,T.totalCommits=T.log.length):J(),Kt()):D.value=`当前目录不是Git仓库`,s(()=>{setTimeout(()=>{Dt()},500)}),i(()=>Y.value,e=>{e&&!k.value&&s(()=>{Dt()})}),window.addEventListener(`keydown`,kt)}),i(()=>T.allBranches,e=>{e&&e.length>0?_t.value=[...e].sort():_t.value=[]},{immediate:!0}),n(()=>{Ot(),ut.value!==null&&(window.clearInterval(ut.value),ut.value=null),window.removeEventListener(`keydown`,kt)});async function Q(){T.currentPage=1,T.hasMoreData=!0,await J(k.value,1),s(()=>{if(Y.value){let e=Y.value.$el.querySelector(`.el-scrollbar__wrap`);e&&(e.scrollTop=0)}})}i(()=>T.log,e=>{try{Array.isArray(e)&&(E.value=e),T.totalCommits=E.value.length,T.currentPage=1,T.hasMoreData=!1}catch{}},{immediate:!0}),ye({refreshLog:Q});async function At(e){if(e){j.value=e,dt.value=!0,P.value=!0,M.value=[],N.value=``,F.value=``,I.value=`full-new`,L.value=``,R.value=``,z.value=!1;try{if(!e.hash||e.hash.length<7){N.value=`无效的提交哈希值`,P.value=!1;return}let t=await(await fetch(`/api/commit-files?hash=${e.hash}`)).json();t.success&&Array.isArray(t.files)?(M.value=t.files,M.value.length>0?await Pt(e.hash,M.value[0]):N.value=`该提交没有变更文件`):N.value=`${w(`@A1833:获取文件列表失败: `)}${t.error||`未知错误`}`}catch(e){N.value=`${w(`@A1833:获取提交详情失败: `)}${e.message}`}finally{P.value=!1}}}async function jt(e,t,n){P.value=!0,F.value=t;try{let r=await(await fetch(`/api/commit-file-content?hash=${e}&file=${encodeURIComponent(t)}&version=${n}`)).json();r.success?N.value=r.content||``:N.value=`${w(`@A1833:获取文件内容失败: `)}${r.error||`未知错误`}`}catch(e){N.value=`${w(`@A1833:获取文件内容失败: `)}${e.message}`}finally{P.value=!1}}async function Mt(e,t){P.value=!0,F.value=t;try{let[n,r]=await Promise.all([fetch(`/api/commit-file-content?hash=${e}&file=${encodeURIComponent(t)}&version=old`),fetch(`/api/commit-file-content?hash=${e}&file=${encodeURIComponent(t)}&version=new`)]),[i,a]=await Promise.all([n.json(),r.json()]);L.value=i?.success?i.content||``:`${w(`@A1833:获取文件内容失败: `)}${i?.error||`未知错误`}`,R.value=a?.success?a.content||``:`${w(`@A1833:获取文件内容失败: `)}${a?.error||`未知错误`}`,N.value=``}catch(e){let t=`${w(`@A1833:获取文件内容失败: `)}${e.message}`;L.value=t,R.value=t,N.value=``}finally{P.value=!1}}async function Nt(e,t,n){I.value=n,n===`diff`?(L.value=``,R.value=``,await Ft(e,t)):n===`full-old`?(L.value=``,R.value=``,await jt(e,t,`old`)):(L.value=``,R.value=``,await jt(e,t,`new`))}async function Pt(e,t){I.value=`full-new`,await Mt(e,t)}async function Ft(e,t){P.value=!0,F.value=t;try{let n=await(await fetch(`/api/commit-file-diff?hash=${e}&file=${encodeURIComponent(t)}`)).json();n.success?N.value=n.diff||`没有变更内容`:N.value=`${w(`@A1833:获取差异失败: `)}${n.error||`未知错误`}`}catch(e){N.value=`${w(`@A1833:获取差异失败: `)}${e.message}`}finally{P.value=!1}}function It(e){j.value&&(I.value===`diff`?Nt(j.value.hash,e,`diff`):Pt(j.value.hash,e))}function Lt(){if(!j.value||!F.value){I.value=`diff`;return}Nt(j.value.hash,F.value,`diff`)}function Rt(){if(!j.value||!F.value){I.value=`full-new`;return}Pt(j.value.hash,F.value)}async function zt(){if(!j.value||!F.value)return;let e=N.value;if(!e)try{e=(await(await fetch(`/api/commit-file-diff?hash=${j.value.hash}&file=${encodeURIComponent(F.value)}`)).json()).diff||``}catch{}e&&navigator.clipboard.writeText(e).then(()=>{f.success(w(`@A1833:差异已复制到剪贴板`))}).catch(()=>{f.error(w(`@A1833:复制失败`))})}async function Bt(e,t){try{let n=await(await fetch(`/api/open-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,context:t})})).json();n.success?f.success(n.message):f.error(n.error||w(`@A1833:打开文件失败`))}catch(e){f.error(`${w(`@A1833:打开文件失败: `)}${e.message}`)}}async function Vt(e,t){try{let n=await(await fetch(`/api/open-with-vscode`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,context:t})})).json();n.success?f.success(n.message):f.error(n.error||w(`@A1833:用VSCode打开文件失败`))}catch(e){f.error(`${w(`@A1833:用VSCode打开文件失败: `)}${e.message}`)}}async function Ht(e){try{let t=Se(e);await navigator.clipboard.writeText(t),f.success(w(`@A1833:提交信息已复制到剪贴板`))}catch{f.error(w(`@A1833:复制失败`))}}function Ut(){!T.hasMoreData||A.value||O.value||J(k.value,T.currentPage+1)}function Wt(){V.value=[],W.value=[],H.value=``,U.value=null,T.currentPage=1,J(k.value,1)}function Gt(){T.currentPage=1,J(k.value,1)}async function Kt(){try{let e=await(await fetch(`/api/authors`)).json();e.success&&Array.isArray(e.authors)?gt.value=e.authors.sort():qt()}catch{qt()}}function qt(){let e=new Set;E.value.forEach(t=>{t.author&&e.add(t.author)}),gt.value=Array.from(e).sort()}i(()=>E.value,()=>{},{deep:!0});function Jt(e,t,n){n.preventDefault(),vt.value=n.clientY,yt.value=n.clientX,K.value=e,G.value=!0,s(()=>{let e=q.value;if(e){let t=e.getBoundingClientRect(),r=window.innerWidth,i=window.innerHeight,a=n.clientX,o=n.clientY;a+t.width>r&&(a=Math.max(8,n.clientX-t.width)),o+t.height>i&&(o=Math.max(8,n.clientY-t.height)),yt.value=a,vt.value=o}});let r=()=>{G.value=!1,document.removeEventListener(`click`,r)};setTimeout(()=>{document.addEventListener(`click`,r)},0),s(()=>{let e=q.value?.querySelectorAll(`[role="menuitem"]`);e&&e.length>0&&e[0].focus()})}function Yt(){G.value=!1,document.removeEventListener(`click`,()=>{})}function Xt(e){let t=q.value?.querySelectorAll(`[role="menuitem"]`);if(!t||t.length===0)return;let n=document.activeElement;t[((n?Array.from(t).indexOf(n):-1)+e+t.length)%t.length].focus()}async function Zt(e){if(e)try{await ue.confirm(`${w(`@A1833:确定要撤销提交 `)}${e.hash.substring(0,7)}${w(`@A1833: 吗?这将创建一个新的提交来撤销这次提交的更改。`)}`,`撤销提交确认`,{confirmButtonText:`确认`,cancelButtonText:`取消`,type:`warning`});let t=await(await fetch(`/api/revert-commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:e.hash})})).json();t.success?(f.success(t.message||`已成功撤销提交`),Q(),T.fetchStatus(),T.getBranchStatus()):f.error(t.error||`撤销提交失败`)}catch(e){e!==`cancel`&&f.error(`撤销提交失败: `+(e.message||e))}}async function Qt(e){if(e)try{await ue.confirm(`${w(`@A1833:确定要将提交 `)}${e.hash.substring(0,7)}${w(`@A1833: Cherry-Pick 到当前分支吗?`)}`,`Cherry-Pick确认`,{confirmButtonText:`确认`,cancelButtonText:`取消`,type:`warning`});let t=await(await fetch(`/api/cherry-pick-commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:e.hash})})).json();t.success?(f.success(t.message||`已成功Cherry-Pick提交`),Q(),T.fetchStatus(),T.getBranchStatus()):f.error(t.error||`Cherry-Pick提交失败`)}catch(e){e!==`cancel`&&f.error(`Cherry-Pick提交失败: `+(e.message||e))}}async function $t(e){if(e)try{let t=await(await fetch(`/api/commit-diff-full?hash=${encodeURIComponent(e.hash)}`)).json();if(!t.success){f.error(`${w(`@A1833:复制提交内容失败: `)}${t.error}`);return}await navigator.clipboard.writeText(t.content),f.success(`${w(`@A1833:已复制提交内容: `)}${e.hash.substring(0,7)}`)}catch(e){f.error(`${w(`@A1833:复制提交内容失败: `)}${e.message}`)}}async function en(e){if(e)try{await navigator.clipboard.writeText(e.hash),f.success(`${w(`@A1833:已复制提交哈希: `)}${e.hash.substring(0,7)}`)}catch(e){f.error(`${w(`@A1833:复制提交哈希失败: `)}${e.message}`)}}async function tn(e){if(e)try{await ue.confirm(`${w(`@A1833:确定要将当前分支重置(hard)到提交 `)}${e.hash.substring(0,7)} 吗?
6
-
7
- 警告:这将丢失该提交之后的所有更改!`,`重置确认`,{confirmButtonText:`确认重置`,cancelButtonText:`取消`,type:`warning`,dangerouslyUseHTMLString:!0});let t=await(await fetch(`/api/reset-to-commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:e.hash})})).json();t.success?(f.success(t.message||`已成功重置到指定提交`),Q(),T.fetchStatus(),T.getBranchStatus()):f.error(t.error||`重置到指定提交失败`)}catch(e){e!==`cancel`&&f.error(`重置到指定提交失败: `+(e.message||e))}}function nn(){if(!T.hasMoreData||A.value||O.value||k.value)return;if(!X.value){Dt();return}let{scrollTop:e,scrollHeight:t,clientHeight:n}=X.value;t-e-n<=50&&Ut()}let $=x(!1);function rn(){$.value=!$.value}return(n,i)=>{let o=ae,s=r,ne=fe;return C(),S(he,null,[g(`div`,{class:y([`card`,{"fullscreen-mode":$.value}])},[g(`div`,Te,[g(`div`,Ee,[g(`h2`,null,d(b(w)(`@A1833:提交历史`)),1)]),g(`div`,De,[t(be,{tooltip:B.value?b(w)(`@A1833:隐藏筛选`):b(w)(`@A1833:显示筛选`),active:B.value,"custom-class":`filter-button`,onClick:i[0]||=e=>B.value=!B.value},{default:l(()=>[t(o,null,{default:l(()=>[t(b(le))]),_:1})]),_:1},8,[`tooltip`,`active`]),t(be,{tooltip:$.value?b(w)(`@A1833:退出全屏`):b(w)(`@A1833:全屏显示`),active:$.value,"custom-class":`fullscreen-button`,onClick:rn},{default:l(()=>[$.value?(C(),S(`svg`,Oe,[...i[17]||=[g(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])):(C(),m(o,{key:0},{default:l(()=>[t(b(ge))]),_:1}))]),_:1},8,[`tooltip`,`active`]),t(be,{tooltip:b(w)(`@A1833:刷新日志`),"custom-class":`refresh-button`,onClick:i[1]||=e=>Q()},{default:l(()=>[t(o,null,{default:l(()=>[t(b(ve))]),_:1})]),_:1},8,[`tooltip`])])]),B.value?(C(),S(`div`,ke,[g(`div`,Ae,[g(`div`,je,[t(b(te),{modelValue:V.value,"onUpdate:modelValue":i[2]||=e=>V.value=e,placeholder:b(w)(`@A1833:选择作者`),multiple:``,clearable:``,filterable:``,class:`filter-input`,size:`small`},{prefix:l(()=>[g(`span`,Me,d(b(w)(`@A1833:作者`)),1)]),default:l(()=>[(C(!0),S(he,null,re(gt.value,e=>(C(),m(b(a),{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),g(`div`,Ne,[t(b(te),{modelValue:W.value,"onUpdate:modelValue":i[3]||=e=>W.value=e,placeholder:b(w)(`@A1833:选择分支`),multiple:``,clearable:``,filterable:``,class:`filter-input`,size:`small`},{prefix:l(()=>[g(`span`,Pe,d(b(w)(`@A1833:分支`)),1)]),default:l(()=>[(C(!0),S(he,null,re(_t.value,e=>(C(),m(b(a),{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),g(`div`,Fe,[t(b(ie),{modelValue:H.value,"onUpdate:modelValue":i[4]||=e=>H.value=e,placeholder:b(w)(`@A1833:提交信息关键词`),clearable:``,class:`filter-input`,size:`small`,onKeyup:p(Gt,[`enter`])},{prefix:l(()=>[g(`span`,Ie,d(b(w)(`@A1833:信息`)),1)]),_:1},8,[`modelValue`,`placeholder`])]),g(`div`,Le,[t(b(ee),{modelValue:U.value,"onUpdate:modelValue":i[5]||=e=>U.value=e,type:`daterange`,"range-separator":b(w)(`@A1833:至`),"start-placeholder":b(w)(`@A1833:开始日期`),"end-placeholder":b(w)(`@A1833:结束日期`),format:`YYYY-MM-DD`,"value-format":`YYYY-MM-DD`,class:`filter-input date-range`,size:`small`},{prefix:l(()=>[g(`span`,Re,d(b(w)(`@A1833:日期`)),1)]),_:1},8,[`modelValue`,`range-separator`,`start-placeholder`,`end-placeholder`])]),g(`div`,ze,[t(b(e),{type:`primary`,size:`small`,onClick:Gt,class:`filter-action-button`},{default:l(()=>[c(d(b(w)(`@A1833:应用`)),1)]),_:1}),t(b(e),{type:`info`,size:`small`,onClick:Wt,class:`filter-action-button`},{default:l(()=>[c(d(b(w)(`@A1833:重置`)),1)]),_:1})])])])):u(``,!0),g(`div`,{class:y([`content-area`,{"with-filter":B.value}])},[D.value&&b(T).isGitRepo?(C(),S(`div`,Be,d(D.value),1)):b(T).isGitRepo?(C(),S(`div`,Ue,[g(`div`,We,[oe((C(),m(b(de),{ref_key:`tableRef`,ref:Y,data:bt.value,stripe:``,border:``,size:`small`,class:`log-table compact-table`,"empty-text":O.value?b(w)(`@A1833:加载中...`):b(w)(`@A1833:没有匹配的提交记录`),height:`450`,onRowContextmenu:Jt,onRowClick:i[6]||=e=>At(e)},{default:l(()=>[t(b(h),{label:b(w)(`@A1833:提交信息`),"min-width":`300`},{default:l(n=>[g(`div`,Ge,[g(`div`,Ke,[n.row.branch?(C(),S(`div`,qe,[(C(!0),S(he,null,re(n.row.branch.split(`,`),(e,t)=>(C(),m(b(_e),{key:t,size:`small`,type:Ct(e),class:`branch-tag`},{default:l(()=>[c(d(St(e)),1)]),_:2},1032,[`type`]))),128))])):u(``,!0),n.row.message?(C(),m(s,{key:1,content:n.row.message,placement:`top`,"show-after":350,disabled:!wt(n.row.message),"popper-class":`commit-message-tooltip`},{default:l(()=>[g(`span`,Je,d(n.row.message),1)]),_:2},1032,[`content`,`disabled`])):u(``,!0),t(b(e),{icon:b(se),size:`small`,onClick:_(e=>Ht(n.row.message),[`stop`]),class:`copy-message-btn`,title:b(w)(`@A1833:复制纯净提交信息(不含类型前缀)`),"aria-label":b(w)(`@A1833:复制纯净提交信息(不含类型前缀)`)},null,8,[`icon`,`onClick`,`title`,`aria-label`])])])]),_:1},8,[`label`]),t(b(h),{prop:`date`,label:b(w)(`@A1833:日期`),"min-width":`130`,width:`150`,resizable:``},null,8,[`label`]),t(b(h),{label:b(w)(`@A1833:作者`),"min-width":`90`,width:`120`,resizable:``},{default:l(e=>[t(s,{content:e.row.email,placement:`top`,"show-after":200},{default:l(()=>[g(`span`,Ye,d(e.row.author),1)]),_:2},1032,[`content`])]),_:1},8,[`label`]),t(b(h),{label:b(w)(`@A1833:哈希`),"min-width":`78`,width:`78`,align:`center`,resizable:``},{default:l(e=>[t(s,{content:e.row.hash,placement:`top`,"show-after":300},{default:l(()=>[g(`button`,{type:`button`,class:`commit-hash`,title:b(w)(`@A1833:点击复制完整哈希`),"aria-label":b(w)(`@A1833:复制提交哈希 {hash}`,{hash:e.row.hash.substring(0,7)}),onClick:_(t=>en(e.row),[`stop`])},d(e.row.hash.substring(0,7)),9,Xe)]),_:2},1032,[`content`])]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[ne,O.value]])])])):(C(),S(`div`,Ve,[t(o,{class:`log-empty-icon`},{default:l(()=>[t(b(pe))]),_:1}),g(`span`,He,d(b(w)(`@A1833:暂无提交记录`)),1)]))],2),t(Ce,{modelValue:dt.value,"onUpdate:modelValue":i[8]||=e=>dt.value=e,title:`${b(w)(`@A1833:提交详情: `)}${j.value?.hash?j.value.hash:b(w)(`@A1833:未知`)}`,size:`fullscreen`,type:`flex`,heightMode:`fixed`,"destroy-on-close":``,"custom-class":`commit-detail-dialog`},{default:l(()=>[oe((C(),S(`div`,Ze,[j.value?(C(),S(`div`,Qe,[g(`div`,$e,[g(`div`,et,[g(`span`,tt,d(b(w)(`@A1833:日期`)),1),g(`span`,nt,d(j.value.date),1)]),g(`div`,rt,[g(`span`,it,d(b(w)(`@A1833:提交信息`)),1),g(`div`,at,[g(`div`,ot,d(ft.value),1),z.value&&mt.value?(C(),S(`div`,{key:0,class:`info-message-body`,innerHTML:ht.value},null,8,st)):u(``,!0)]),mt.value?(C(),S(`button`,{key:0,class:`info-message-toggle`,onClick:i[7]||=e=>z.value=!z.value},[c(d(z.value?b(w)(`@A1833:收起`):b(w)(`@A1833:展开`))+` `,1),g(`span`,{class:y([`info-message-toggle-icon`,{"is-expanded":z.value}])},`▾`,2)])):u(``,!0)])])])):u(``,!0),t(xe,{files:xt.value,loading:P.value,diffContent:N.value,selectedFile:F.value,plainText:!1,compareMode:I.value!==`diff`,compareOriginal:L.value,compareModified:R.value,context:`commit-detail`,emptyText:b(w)(`@A1833:没有找到变更文件`),onFileSelect:It,onOpenFile:Bt,onOpenWithVscode:Vt},{"header-extra":l(()=>[t(b(e),{size:`small`,type:I.value===`diff`?`primary`:`default`,onClick:Lt},{default:l(()=>[c(d(b(w)(`@A1833:仅显示差异`)),1)]),_:1},8,[`type`]),t(b(e),{size:`small`,type:I.value===`diff`?`default`:`primary`,onClick:Rt},{default:l(()=>[c(d(b(w)(`@A1833:显示完整对比`)),1)]),_:1},8,[`type`]),t(b(e),{size:`small`,disabled:!F.value,onClick:zt},{default:l(()=>[c(d(b(w)(`@A1833:复制差异`)),1)]),_:1},8,[`disabled`])]),_:1},8,[`files`,`loading`,`diffContent`,`selectedFile`,`compareMode`,`compareOriginal`,`compareModified`,`emptyText`])])),[[ne,P.value]])]),_:1},8,[`modelValue`,`title`])],2),oe(g(`ul`,{class:y([`context-menu`,{"fullscreen-context-menu":$.value}]),style:ce({top:vt.value+`px`,left:yt.value+`px`}),ref_key:`contextMenuRef`,ref:q,role:`menu`,"aria-label":b(w)(`@A1833:提交操作菜单`),onKeydown:[p(_(Yt,[`prevent`]),[`esc`]),i[15]||=p(_(e=>Xt(1),[`prevent`]),[`down`]),i[16]||=p(_(e=>Xt(-1),[`prevent`]),[`up`])]},[g(`li`,{class:`context-menu-item`,role:`menuitem`,tabindex:`-1`,onClick:i[9]||=e=>At(K.value)},[i[18]||=g(`i`,{class:`el-icon-view`,"aria-hidden":`true`},null,-1),c(` `+d(b(w)(`@A1833:查看详情`)),1)]),g(`li`,{class:`context-menu-item`,role:`menuitem`,tabindex:`-1`,onClick:i[10]||=e=>en(K.value)},[i[19]||=g(`i`,{class:`el-icon-document-copy`,"aria-hidden":`true`},null,-1),c(` `+d(b(w)(`@A1833:复制提交哈希`)),1)]),g(`li`,{class:`context-menu-item`,role:`menuitem`,tabindex:`-1`,onClick:i[11]||=e=>$t(K.value)},[i[20]||=g(`i`,{class:`el-icon-document`,"aria-hidden":`true`},null,-1),c(` `+d(b(w)(`@A1833:复制提交内容`)),1)]),g(`li`,{class:`context-menu-item`,role:`menuitem`,tabindex:`-1`,onClick:i[12]||=e=>tn(K.value)},[i[21]||=g(`i`,{class:`el-icon-refresh-right`,"aria-hidden":`true`},null,-1),c(` `+d(b(w)(`@A1833:重置到该提交(hard)`)),1)]),g(`li`,{class:`context-menu-item`,role:`menuitem`,tabindex:`-1`,onClick:i[13]||=e=>Zt(K.value)},[i[22]||=g(`i`,{class:`el-icon-delete`,"aria-hidden":`true`},null,-1),c(` `+d(b(w)(`@A1833:撤销提交 (Revert)`)),1)]),g(`li`,{class:`context-menu-item`,role:`menuitem`,tabindex:`-1`,onClick:i[14]||=e=>Qt(K.value)},[i[23]||=g(`i`,{class:`el-icon-edit`,"aria-hidden":`true`},null,-1),c(` Cherry`+d(b(w)(`@A1833:-Pick 到当前分支`)),1)])],46,ct),[[me,G.value]])],64)}}}),[[`__scopeId`,`data-v-cfee736c`]]);export{T as default};