coding-tool-x 3.8.8 → 3.8.9
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/README.md +2 -2
- package/dist/web/assets/{AgentsDrawer-DRQuwi0m.js → AgentsDrawer-Cj5CJ4d9.js} +1 -1
- package/dist/web/assets/{Analytics-Cf5KwEdj.js → Analytics-1doS-8uC.js} +1 -1
- package/dist/web/assets/{AssetPathField-DyniM0pF.js → AssetPathField-C9TOPl7o.js} +1 -1
- package/dist/web/assets/{ChatHistoryDrawer-CrfS0KYV.js → ChatHistoryDrawer-BTmQ1aQr.js} +1 -1
- package/dist/web/assets/{CollapseItem-ClMsJuUu.js → CollapseItem-CwqJk3bE.js} +1 -1
- package/dist/web/assets/{CommandsDrawer-CzHelf56.js → CommandsDrawer-CaZWDI_G.js} +1 -1
- package/dist/web/assets/{ConfigExportDrawer-BEZ8wTby.js → ConfigExportDrawer-C3vSZEsS.js} +1 -1
- package/dist/web/assets/ConfigTemplates-gyERg9iC.js +1 -0
- package/dist/web/assets/{ConfigTemplatesDrawer-BqM32Im7.js → ConfigTemplatesDrawer-B17RqFi4.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesPanel-lTdutC8H.js → ConfigTemplatesPanel-DKIC_FqG.js} +1 -1
- package/dist/web/assets/{FavoritesDrawer-DDyWUBJR.js → FavoritesDrawer-DaziQmBp.js} +1 -1
- package/dist/web/assets/{GatewayConvertDrawer-Rigtt_5J.js → GatewayConvertDrawer-OMgWUUSc.js} +1 -1
- package/dist/web/assets/{Home-tCSKmSHV.js → Home-DOSUTfrE.js} +1 -1
- package/dist/web/assets/{MarkdownEditor-BMMUufSc.js → MarkdownEditor-9TTwTS-U.js} +1 -1
- package/dist/web/assets/{McpDrawer-CmE-d7VW.js → McpDrawer-I8rl8lGH.js} +1 -1
- package/dist/web/assets/{McpFormDrawer-ByvS18od.js → McpFormDrawer-DEP3C7ut.js} +1 -1
- package/dist/web/assets/{PluginManager-C4kJlpVX.js → PluginManager-BuRcWuBj.js} +1 -1
- package/dist/web/assets/{PluginsDrawer-05R4k15x.js → PluginsDrawer-_zZENaQn.js} +1 -1
- package/dist/web/assets/{PluginsPanel-BCoEs7Og.js → PluginsPanel-Bs5qZ-TK.js} +1 -1
- package/dist/web/assets/ProjectList-BSxuL2td.js +1 -0
- package/dist/web/assets/ProjectList-VbIYSHbH.css +1 -0
- package/dist/web/assets/{PromptsDrawer-DnwBf_oW.js → PromptsDrawer-CoZ-ZtsY.js} +1 -1
- package/dist/web/assets/{RecentSessionsDrawer-B7d-38wH.js → RecentSessionsDrawer-B_17aJBG.js} +1 -1
- package/dist/web/assets/{SessionCard-BUgjHQwX.js → SessionCard-BL_x0d3t.js} +1 -1
- package/dist/web/assets/SessionList-DhRYZ6vl.js +1 -0
- package/dist/web/assets/{SettingsDrawer-BITzjQLl.js → SettingsDrawer-fYb0DU7X.js} +1 -1
- package/dist/web/assets/{SkillManager-D9jkNuRM.js → SkillManager-S698Hns8.js} +1 -1
- package/dist/web/assets/{SkillsDrawer-0Z4IefxC.js → SkillsDrawer-Ms4lPCow.js} +1 -1
- package/dist/web/assets/{SkillsPanel-BKIVOj7n.js → SkillsPanel-rqnqAOGL.js} +1 -1
- package/dist/web/assets/{SpeedTestDrawer-Bx1bYf5i.js → SpeedTestDrawer-Bbn38SfV.js} +1 -1
- package/dist/web/assets/{Upload-CzC4rGI4.js → Upload-CdyVHxCI.js} +1 -1
- package/dist/web/assets/{WorkspaceDrawer-eujtWpoq.js → WorkspaceDrawer-L7HJRc6u.js} +1 -1
- package/dist/web/assets/{WorkspaceManager-CQ-8Ej68.js → WorkspaceManager-DsoNg2z8.js} +1 -1
- package/dist/web/assets/{WorkspacePanel-Cql5qE2R.js → WorkspacePanel-Be8PVZah.js} +1 -1
- package/dist/web/assets/headers-B5JWGn3v.js +1 -0
- package/dist/web/assets/{index-Cnbe696C.css → index-3Lp6z8TQ.css} +1 -1
- package/dist/web/assets/index-BKlAWTH-.js +2 -0
- package/dist/web/assets/{sessions-DqlbocLJ.js → sessions-CC0j-KH_.js} +1 -1
- package/dist/web/assets/{useResponsiveDrawer-DZd5rNk5.js → useResponsiveDrawer-V_onl9NV.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/src/commands/daemon.js +27 -4
- package/src/platforms/channel-auth-registry.js +36 -6
- package/src/platforms/channel-auth-service.js +12 -2
- package/src/platforms/drivers/omp/prompts.js +58 -2
- package/src/platforms/drivers/omp/proxy-implementation.js +25 -1
- package/src/platforms/drivers/opencode/channels-implementation.js +25 -22
- package/src/platforms/drivers/opencode/channels.js +6 -1
- package/src/platforms/manifests/omp.json +2 -1
- package/src/platforms/manifests/opencode.json +28 -0
- package/src/platforms/native-oauth-adapters.js +318 -18
- package/src/platforms/oauth-credentials-service.js +344 -13
- package/src/server/index.js +35 -1
- package/dist/web/assets/ConfigTemplates-Crg3xWe5.js +0 -1
- package/dist/web/assets/ProjectList-BJt1OIaI.js +0 -1
- package/dist/web/assets/ProjectList-DG3yu8xZ.css +0 -1
- package/dist/web/assets/SessionList-B-bXZRFk.js +0 -1
- package/dist/web/assets/headers-BqDmkMjy.js +0 -1
- package/dist/web/assets/index-Cmmwj3Fx.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,s as a,t as s}from"./_plugin-vue_export-helper-BeLZJZij.js";import{C as t,D as l,H as i,I as n,K as o,O as r,S as u,V as c,W as d,Z as v,_t as p,b as f,et as m,f as h,g as y,ht as g,i as k,m as _,mt as w,p as j,r as b,st as C,tt as P,w as I,x}from"./vue-vendor-BqZbbXHA.js";import{r as z}from"./platforms-DWXgmy2w.js";import{W as S,_ as M,a as N,et as $,jt as F,l as U,r as L,rt as T,u as A,wt as B}from"./icons-DmFe4b5j.js";import{t as D}from"./use-message-DqCwefG6.js";import{S as E,l as K}from"./light-0eavxNvt.js";import{c as O,s as q}from"./AssetPathField-DyniM0pF.js";import{n as W,t as H}from"./headers-BqDmkMjy.js";import{t as R}from"./McpFormDrawer-ByvS18od.js";import{n as G,t as Z}from"./useResponsiveDrawer-DZd5rNk5.js";import{t as V}from"./DrawerContent-ChXgZ1Xm.js";import{t as J}from"./SkillsPanel-BKIVOj7n.js";import{$ as Q,I as X,K as Y,M as ee,N as ae,P as se,_ as te,dt as le,ft as ie,gt as ne,mt as oe,rt as re,st as ue}from"./index-Cmmwj3Fx.js";import{c as ce,f as de,t as ve}from"./sessions-D4yQtfKb.js";import pe from"./ChatHistoryDrawer-CrfS0KYV.js";import{t as fe}from"./sessions-DqlbocLJ.js";import{i as me,l as he,n as ye,o as ge,r as ke,t as _e}from"./project-config-B2baPzYL.js";var we={class:"project-instruction-panel"},je={key:0,class:"unsupported-state"},be={class:"resource-path"},Ce={__name:"ProjectInstructionPanel",props:{projectPath:{type:String,required:!0},platform:{type:String,required:!0},instruction:{type:Object,default:()=>({supported:!1,path:null,exists:!1,content:""})}},emits:["updated"],setup(e,{emit:s}){const i=e,n=s,o=D(),c=E(),f=C(i.instruction.content||""),h=C(!1),g=C(!1);async function k(){h.value=!0;try{const e=await ge(i.projectPath,i.platform,f.value);f.value=e.content??f.value,n("updated",e),o.success("项目指令已保存")}catch(e){o.error(`保存项目指令失败:${e.message}`)}finally{h.value=!1}}function _(){c.warning({title:"删除项目指令",content:`确定删除 ${i.instruction.path} 吗?`,positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{g.value=!0;try{const e=await _e(i.projectPath,i.platform);f.value="",n("updated",e),o.success("项目指令已删除")}catch(e){o.error(`删除项目指令失败:${e.message}`)}finally{g.value=!1}}})}return v(()=>i.instruction,e=>{f.value=e?.content||""},{deep:!0}),(s,i)=>(d(),I("div",we,[e.instruction?.supported?(d(),I(y,{key:1},[x("div",be,"目标文件:"+p(e.instruction.path),1),r(w(le),{value:f.value,"onUpdate:value":i[0]||(i[0]=e=>f.value=e),type:"textarea",rows:16,placeholder:"输入项目指令",disabled:h.value},null,8,["value","disabled"]),r(w(Y),{justify:"end",class:"actions"},{default:m(()=>[e.instruction.exists?(d(),u(w(a),{key:0,"data-action":"delete-instruction",type:"error",secondary:"",loading:g.value,onClick:_},{default:m(()=>[...i[1]||(i[1]=[l(" 删除文件 ",-1)])]),_:1},8,["loading"])):t("",!0),r(w(a),{"data-action":"save-instruction",type:"primary",loading:h.value,onClick:k},{default:m(()=>[...i[2]||(i[2]=[l(" 保存 ",-1)])]),_:1},8,["loading"])]),_:1}),r(w(se),{depth:"3",class:"hint"},{default:m(()=>[...i[3]||(i[3]=[l(" 写入项目原生文件;修改后通常需要重新启动对应 CLI。 ",-1)])]),_:1})],64)):(d(),I("div",je," 当前平台不提供项目指令文件 "))]))}},Pe=s(Ce,[["__scopeId","data-v-f2f46409"]]),Ie={class:"project-mcp-panel"},xe={class:"panel-toolbar"},ze={class:"resource-path"},Se={key:2,class:"server-list"},Me={class:"server-info"},Ne={class:"server-title"},$e={class:"server-spec"},Fe={__name:"ProjectMcpPanel",props:{projectPath:{type:String,required:!0},platform:{type:String,required:!0},mcp:{type:Object,default:()=>({supported:!0,servers:[]})}},emits:["updated"],setup(e,{emit:s}){const i=e,n=s,c=D(),h=E(),g=C(!1),k=C(null),_=C(""),j=C(i.mcp),b=f(()=>j.value||i.mcp||{servers:[]}),P=f(()=>Array.isArray(b.value?.servers)?b.value.servers:[]),z=f(()=>P.value.some(e=>{const a=e.server||{};return Object.keys(a.env||{}).length>0||Object.keys(a.headers||{}).length>0}));function S(e){const a=e.server||{};return"stdio"===a.type?`${a.command||""} ${(a.args||[]).join(" ")}`.trim():a.url||a.type||"MCP"}function M(){k.value=null,g.value=!0}async function N(){g.value=!1,k.value=null,await $(),n("updated")}async function $(){const e=await me(i.projectPath,i.platform);j.value=e}return v(()=>i.mcp,e=>{j.value=e},{deep:!0}),v([()=>i.projectPath,()=>i.platform],()=>{i.projectPath&&i.platform&&$().catch(e=>c.error(`加载项目 MCP 失败:${e.message}`))}),(s,v)=>(d(),I("div",Ie,[x("div",xe,[x("span",ze,"目标文件:"+p(b.value?.path||"当前平台未声明"),1),r(w(a),{size:"small",type:"primary",onClick:M},{default:m(()=>[...v[1]||(v[1]=[l(" 添加 MCP ",-1)])]),_:1})]),z.value?(d(),u(w(ie),{key:0,type:"warning",bordered:!1,style:{"margin-bottom":"12px"}},{default:m(()=>[...v[2]||(v[2]=[l(" 项目 MCP 配置中的静态密钥可能随项目进入 Git,请优先使用环境变量引用。 ",-1)])]),_:1})):t("",!0),0===P.value.length?(d(),u(w(ne),{key:1,description:"暂无项目 MCP 服务器"})):(d(),I("div",Se,[(d(!0),I(y,null,o(P.value,e=>(d(),I("div",{key:e.id,class:"server-row"},[x("div",Me,[x("div",Ne,p(e.id),1),x("div",$e,p(S(e)),1)]),r(w(Y),{size:"small"},{default:m(()=>[r(w(a),{size:"tiny",loading:_.value===e.id,onClick:a=>async function(e){_.value=e.id;try{const a=await he(i.projectPath,i.platform,e.id);a.success?c.success(`${e.id} 连接成功`):c.error(a.message||`${e.id} 连接失败`)}catch(a){c.error(`测试失败:${a.message}`)}finally{_.value=""}}(e)},{default:m(()=>[...v[3]||(v[3]=[l("测试",-1)])]),_:1},8,["loading","onClick"]),r(w(a),{size:"tiny",disabled:e.external,onClick:a=>function(e){k.value={id:e.id,...e},g.value=!0}(e)},{default:m(()=>[...v[4]||(v[4]=[l("编辑",-1)])]),_:1},8,["disabled","onClick"]),r(w(a),{size:"tiny",type:"error",secondary:"",disabled:e.external,onClick:a=>function(e){h.warning({title:"移除项目 MCP",content:`确定从当前项目移除 ${e.id} 吗?用户级配置不会被删除。`,positiveText:"移除",negativeText:"取消",onPositiveClick:async()=>{try{await ye(i.projectPath,i.platform,e.id),await $(),n("updated"),c.success("项目 MCP 已移除")}catch(a){c.error(`移除失败:${a.message}`)}}})}(e)},{default:m(()=>[...v[5]||(v[5]=[l("移除",-1)])]),_:1},8,["disabled","onClick"])]),_:2},1024)]))),128))])),r(R,{visible:g.value,"onUpdate:visible":v[0]||(v[0]=e=>g.value=e),"editing-server":k.value,"existing-ids":P.value.map(e=>e.id),scope:"project","project-path":e.projectPath,platform:e.platform,onSaved:N},null,8,["visible","editing-server","existing-ids","project-path","platform"])]))}},Ue=s(Fe,[["__scopeId","data-v-1ebbb765"]]),Le={class:"project-config-content"},Te={class:"project-config-header"},Ae={key:0,class:"unsupported-state"},Be={key:0,class:"unsupported-state"},De=s({__name:"ProjectConfigDrawer",props:{show:{type:Boolean,default:!1},projectPath:{type:String,default:""},platform:{type:String,default:"claude"}},emits:["update:show"],setup(e,{emit:a}){const s=e,t=a,{drawerWidth:i}=Z(760),n=f({get:()=>s.show,set:e=>t("update:show",e)}),o=[{label:"Claude",value:"claude"},{label:"Codex",value:"codex"},{label:"Gemini",value:"gemini"},{label:"OpenCode",value:"opencode"},{label:"OMP",value:"omp"}],h=C(s.platform||"claude"),y=C("instruction"),g=C(null),k=C(!1),_=C(0);async function j(){if(!s.projectPath||!h.value)return;const e=++_.value;k.value=!0;try{const a=await ke(s.projectPath,h.value);if(e!==_.value)return;g.value=a}finally{e===_.value&&(k.value=!1)}}return v(n,e=>{e?(h.value=s.platform||"claude",y.value="instruction",j()):_.value+=1}),v([()=>s.projectPath,()=>s.platform,h],([e,a],s)=>{n.value&&e&&a&&(a===s?.[1]&&e===s?.[0]||j())}),c(()=>{n.value&&j()}),(a,s)=>(d(),u(w(G),{show:n.value,"onUpdate:show":s[2]||(s[2]=e=>n.value=e),width:w(i),placement:"right","show-mask":!0},{default:m(()=>[r(w(V),{title:"项目配置",closable:"","native-scrollbar":!1},{default:m(()=>[x("div",Le,[x("div",Te,[x("div",null,[s[3]||(s[3]=x("div",{class:"project-config-title"},"当前项目",-1)),r(w(se),{depth:"3",class:"project-path"},{default:m(()=>[l(p(e.projectPath),1)]),_:1})]),r(w(re),{value:h.value,"onUpdate:value":s[0]||(s[0]=e=>h.value=e),size:"small",options:o,disabled:k.value,style:{width:"130px"}},null,8,["value","disabled"])]),r(w(X),{show:k.value},{default:m(()=>[r(w(q),{value:y.value,"onUpdate:value":s[1]||(s[1]=e=>y.value=e),type:"line",animated:""},{default:m(()=>[r(w(O),{name:"instruction",tab:"项目指令"},{default:m(()=>[r(Pe,{"project-path":e.projectPath,platform:h.value,instruction:g.value?.instruction,onUpdated:j},null,8,["project-path","platform","instruction"])]),_:1}),r(w(O),{name:"skills",tab:"Skills"},{default:m(()=>[!1===g.value?.capabilities?.skills?(d(),I("div",Ae," 当前平台不提供项目 Skills ")):(d(),u(J,{key:1,platform:h.value,"project-path":e.projectPath,scope:"project","in-drawer":"","drawer-visible":n.value},null,8,["platform","project-path","drawer-visible"]))]),_:1}),r(w(O),{name:"mcp",tab:"MCP"},{default:m(()=>[!1===g.value?.capabilities?.mcp?(d(),I("div",Be," 当前平台不提供项目 MCP ")):(d(),u(Ue,{key:1,"project-path":e.projectPath,platform:h.value,mcp:g.value?.mcp,onUpdated:j},null,8,["project-path","platform","mcp"]))]),_:1})]),_:1},8,["value"])]),_:1},8,["show"])])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-e9a405fe"]]),Ee={class:"session-list-container"},Ke={class:"header"},Oe={class:"title-bar"},qe={class:"title-section"},We={class:"title-with-count"},He={class:"header-actions"},Re={key:0,class:"loading-container"},Ge={key:1,class:"loading-container compact"},Ze={key:3,class:"sessions-list"},Ve=["onMouseenter","onClick"],Je={class:"session-left"},Qe={class:"session-icon"},Xe={class:"session-info"},Ye={class:"session-header"},ea={class:"session-title-row"},aa={class:"session-title"},sa={class:"session-meta"},ta={class:"session-right"},la={class:"session-tags-area"},ia={key:0,class:"session-actions"},na={key:0,style:{"max-height":"70vh","overflow-y":"auto"}},oa={class:"search-result-header"},ra={class:"search-result-title"},ua="__full__",ca=s({__name:"SessionList",props:{projectName:{type:String,required:!0}},setup(s){const D=s,E=k(),O=b(),q=fe(),{addFavorite:R,removeFavorite:G,isFavorite:Z}=te(),V=f(()=>z(O)),J=C(D.projectName),me=f(()=>J.value||D.projectName),he=C(""),ye=C(null),ge=C(!1),ke=C(null),_e=C(""),we=C(null),je=C([]),be=C(1),Ce=C(null),Pe=C(!1),Ie=C(!1),xe=C(null),ze=C(!1),Se=C(!1),Me=C([]),Ne=C(!1),$e=C(!1),Fe=C(null),Ue=C(""),Le=C(ua),Te=C(!1),Ae=C(!1),Be=C([]),ca=C(!1),da=C(""),va=C(""),pa=C(null);function fa(e){return"string"==typeof e&&(e.startsWith("/")||/^[A-Za-z]:[\\/]/.test(e)||e.startsWith("\\\\"))}const ma=f(()=>{const e=me.value;return q.projects.find(a=>a.name===e)||q.projects.find(e=>e.displayName===D.projectName||e.fullPath===D.projectName||e.path===D.projectName)||null}),ha=f(()=>[q.currentProjectInfo?.fullPath,q.currentProjectInfo?.path,ma.value?.fullPath,ma.value?.path].find(fa)||""),ya=f(()=>q.currentProjectInfo?.displayName||ma.value?.displayName||D.projectName),ga=f(()=>ha.value||q.currentProjectInfo?.fullPath||ma.value?.fullPath||ma.value?.path||me.value),ka=f(()=>new Set(Me.value)),_a=f(()=>Me.value.length),wa=f(()=>je.value.length>0&&je.value.every(e=>ka.value.has(e.sessionId))),ja=f(()=>_a.value>0&&!wa.value);async function ba(){q.projects.length||await q.fetchProjects();const e=q.projects.find(e=>e.name===D.projectName);if(e)return J.value=e.name,e.name;const a=q.projects.find(e=>e.displayName===D.projectName||e.fullPath===D.projectName||e.path===D.projectName);return a?(J.value=a.name,a.name!==D.projectName&&await E.replace({name:"cli-sessions",params:{platform:V.value,projectName:a.name}}),a.name):(J.value=D.projectName,D.projectName)}async function Ca(e={}){const a=await ba(),s=e.page??be.value,t=e.limit??q.sessionsPagination.limit;await q.fetchSessions(a,{page:s,limit:t,...e})}async function Pa(e){be.value=e,await Ca({page:e})}function Ia(){E.push({name:"cli-projects",params:{platform:V.value}})}async function xa(){if(he.value){ze.value=!0;try{const e=await de(me.value,he.value,35,V.value);Ce.value=e,Pe.value=!0}catch(e){ae.error("搜索失败: "+e.message)}finally{ze.value=!1}}}function za(){Se.value=!0,we.value=null}function Sa(){Se.value=!1,Me.value=[],we.value=null}function Ma(e){return ka.value.has(e)}function Na(e,a=!Ma(e)){const s=new Set(Me.value);a?s.add(e):s.delete(e),Me.value=Array.from(s)}function $a(e){Me.value=e?je.value.map(e=>e.sessionId):[]}function Fa(e){Se.value?Na(e.sessionId):function(e){da.value=e.sessionId,va.value=e.alias||"",ca.value=!0,n(()=>{pa.value?.open()})}(e)}async function Ua(){if(ke.value)try{const e=ke.value.sessionId;_e.value?(await q.setAlias(e,_e.value),ae.success("别名设置成功")):(await q.deleteAlias(e),ae.success("别名已删除")),ge.value=!1,ke.value=null,_e.value=""}catch(e){ae.error("操作失败: "+e.message)}}function La(){$e.value=!1,Fe.value=null,Ue.value="",Le.value=ua,Be.value=[],Te.value=!1,Ae.value=!1}async function Ta(){if(Fe.value)try{Ae.value=!0,await q.forkSession(Fe.value.sessionId,{afterUserMessageNumber:Le.value===ua?null:Le.value,alias:Ue.value?.trim()||void 0}),ae.success("Fork 成功!"),La()}catch(e){ae.error("Fork 失败: "+e.message)}finally{Ae.value=!1}}function Aa(e){ae.error(e)}function Ba(e){const a=new Set((e||[]).filter(Boolean));0!==a.size&&(Me.value=Me.value.filter(e=>!a.has(e)),da.value&&a.has(da.value)&&(ca.value=!1,da.value="",va.value=""))}async function Da(e){try{const{copyResult:a}=await ve(me.value,e,V.value);if("manual"===a?.method)return void ae.warning("自动复制失败,已弹出手动复制框");ae.success("启动命令已复制到剪贴板")}catch(a){ae.error("复制失败: "+a.message)}}function Ea(){if(0===_a.value)return void ae.warning("请先选择要删除的会话");const e=[...Me.value];ee.warning({title:"批量删除会话",content:`确定要删除选中的 ${e.length} 个会话吗?此操作不可恢复!`,positiveText:"确定删除",negativeText:"取消",onPositiveClick:async()=>{Ne.value=!0;try{const a=await q.deleteSessions(e);if(Ba(a.deletedSessionIds),0===a.failed.length)return ae.success(`已删除 ${a.deletedSessionIds.length} 个会话`),void Sa();Me.value=a.failed.map(e=>e.sessionId),a.deletedSessionIds.length>0?ae.warning(`已删除 ${a.deletedSessionIds.length} 个会话,${a.failed.length} 个删除失败`):ae.error(`删除失败: ${a.failed[0].error.message}`)}finally{Ne.value=!1}}})}function Ka(e){if(!e)return"0 B";const a=1024;return e<a?e+" B":e<a*a?(e/a).toFixed(1)+" KB":(e/a/a).toFixed(1)+" MB"}function Oa(e,a){if(!a||!e)return e;const s=new RegExp(`(${a})`,"gi");return e.replace(s,'<mark style="background-color: #ffd700; padding: 2px 4px; border-radius: 2px; font-weight: 600;">$1</mark>')}function qa(e,a=80){return e?e.length>a?e.substring(0,a)+"...":e:""}v(()=>q.sessionsWithAlias,e=>{je.value=[...e];const a=new Set(e.map(e=>e.sessionId));Me.value=Me.value.filter(e=>a.has(e)),Se.value&&0===e.length&&Sa()},{immediate:!0});let Wa=0,Ha=!1;async function Ra(){if("visible"!==document.visibilityState||Ha)return;const e=Date.now();if(!(e-Wa<3e4)){Ha=!0,Wa=e;try{const e=xe.value?.scrollTop||0,a=await ba();await q.fetchSessions(a,{page:be.value,limit:q.sessionsPagination.limit,force:!0,silent:!0,fresh:!0}),await n(),xe.value&&(xe.value.scrollTop=e)}finally{Ha=!1}}}function Ga(){"visible"===document.visibilityState&&Ra().catch(()=>{})}function Za(){Ra().catch(()=>{})}function Va(e){(e.metaKey||e.ctrlKey)&&"k"===String(e.key).toLowerCase()&&(e.preventDefault(),ye.value?.querySelector?.("input")?.focus?.())}return v([V,()=>D.projectName],([e])=>{Ie.value=!1,Sa(),q.setChannel(e),be.value=1,Ca()},{immediate:!0}),c(()=>{document.addEventListener("visibilitychange",Ga),window.addEventListener("focus",Za),document.addEventListener("keydown",Va)}),i(()=>{document.removeEventListener("visibilitychange",Ga),window.removeEventListener("focus",Za),document.removeEventListener("keydown",Va)}),(s,i)=>(d(),I("div",Ee,[x("div",Ke,[x("div",Oe,[r(w(a),{size:"small",onClick:Ia,class:"back-button"},{icon:m(()=>[r(w(e),{size:"18"},{default:m(()=>[r(w(F))]),_:1})]),_:1}),x("div",qe,[x("div",We,[r(w(H),null,{default:m(()=>[l(p(ya.value),1)]),_:1}),r(w(se),{depth:"3",class:"session-count"},{default:m(()=>[l("("+p(w(q).sessionsPagination.total)+" 个对话)",1)]),_:1}),r(w(oe),{size:"small",bordered:!1,type:"info",class:"total-size-tag"},{default:m(()=>[l(p(Ka(w(q).totalSize)),1)]),_:1}),x("div",He,[Se.value?(d(),I(y,{key:0},[r(w(ue),{checked:wa.value,indeterminate:ja.value,disabled:0===je.value.length||Ne.value,"onUpdate:checked":$a},{default:m(()=>[...i[14]||(i[14]=[l(" 全选 ",-1)])]),_:1},8,["checked","indeterminate","disabled"]),r(w(se),{depth:"3"},{default:m(()=>[l("已选 "+p(_a.value)+" 个",1)]),_:1}),r(w(a),{size:"small",type:"error",disabled:0===_a.value,loading:Ne.value,onClick:Ea},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(L))]),_:1})]),default:m(()=>[i[15]||(i[15]=l(" 删除 ",-1))]),_:1},8,["disabled","loading"]),r(w(a),{size:"small",disabled:Ne.value,onClick:Sa},{default:m(()=>[...i[16]||(i[16]=[l(" 完成 ",-1)])]),_:1},8,["disabled"])],64)):(d(),I(y,{key:1},[r(w(a),{size:"small",type:"error",secondary:"",onClick:za},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(L))]),_:1})]),default:m(()=>[i[17]||(i[17]=l(" 管理 ",-1))]),_:1}),r(w(a),{size:"small",type:"primary",secondary:"",disabled:!ha.value,onClick:i[0]||(i[0]=e=>Ie.value=!0)},{default:m(()=>[...i[18]||(i[18]=[l(" 项目配置 ",-1)])]),_:1},8,["disabled"])],64))])]),r(w(se),{depth:"3",class:"project-path"},{default:m(()=>[l(p(ga.value),1)]),_:1})]),x("div",{ref_key:"searchInputContainer",ref:ye,class:"search-input-container"},[r(w(le),{value:he.value,"onUpdate:value":i[1]||(i[1]=e=>he.value=e),placeholder:"搜索会话...(Cmd/Ctrl+K)",clearable:"",class:"search-input",onKeyup:j(xa,["enter"]),disabled:ze.value},{prefix:m(()=>[r(w(e),null,{default:m(()=>[r(w(M))]),_:1})]),suffix:m(()=>[r(w(a),{text:"",onClick:xa,disabled:!he.value||ze.value,loading:ze.value},{default:m(()=>[...i[19]||(i[19]=[l(" 搜索 ",-1)])]),_:1},8,["disabled","loading"])]),_:1},8,["value","disabled"])],512)])]),x("div",{class:"content",ref_key:"contentEl",ref:xe},[w(q).loading&&0===w(q).sessions.length&&!w(q).sessionsPending?(d(),I("div",Re,[r(w(X),{size:"large"},{description:m(()=>[...i[20]||(i[20]=[l(" 加载会话列表... ",-1)])]),_:1})])):w(q).sessionsPending?(d(),I("div",Ge,[r(w(X),{size:"small"},{description:m(()=>[...i[21]||(i[21]=[l(" 正在生成会话列表... ",-1)])]),_:1})])):w(q).error&&0===w(q).sessions.length?(d(),u(w(ie),{key:2,type:"error",title:"加载失败",style:{"margin-bottom":"16px"}},{default:m(()=>[l(p(w(q).error),1)]),_:1})):je.value.length>0?(d(),I("div",Ze,[(d(!0),I(y,null,o(je.value,s=>(d(),I("div",{key:s.sessionId},[x("div",{class:g(["session-item",{"session-item-selected":Ma(s.sessionId),"session-item-selection-mode":Se.value}]),onMouseenter:e=>we.value=s.sessionId,onMouseleave:i[3]||(i[3]=e=>we.value=null),onClick:e=>Fa(s)},[Se.value?(d(),I("div",{key:0,class:"selection-checkbox",onClick:i[2]||(i[2]=_(()=>{},["stop"]))},[r(w(ue),{checked:Ma(s.sessionId),"onUpdate:checked":e=>Na(s.sessionId,e)},null,8,["checked","onUpdate:checked"])])):t("",!0),x("div",Je,[x("div",Qe,[r(w(e),{size:"24",color:"#18a058"},{default:m(()=>[r(w(B))]),_:1})]),x("div",Xe,[x("div",Ye,[x("div",ea,[x("span",aa,p(s.alias?`${s.alias} (${s.sessionId.substring(0,8)})`:s.sessionId),1),s.forkedFrom?(d(),u(w(Q),{key:0,placement:"top"},{trigger:m(()=>[r(w(oe),{size:"small",type:"warning",bordered:!1,style:{"margin-left":"8px",cursor:"help"}},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(S))]),_:1})]),default:m(()=>[i[22]||(i[22]=l(" Fork ",-1))]),_:1})]),default:m(()=>[l(" Fork 自: "+p(s.forkedFrom),1)]),_:2},1024)):t("",!0)])]),x("div",sa,[r(w(se),{depth:"3"},{default:m(()=>{return[l(p((e=s.mtime,e?new Date(e).toLocaleString("zh-CN"):"")),1)];var e}),_:2},1024),r(w(se),{depth:"3"},{default:m(()=>[...i[23]||(i[23]=[l("•",-1)])]),_:1}),r(w(oe),{size:"small",bordered:!1},{default:m(()=>[l(p(Ka(s.size)),1)]),_:2},1024)]),s.firstMessage?(d(),u(w(se),{key:0,depth:"3",class:"session-message"},{default:m(()=>[l(p(qa(s.firstMessage,80)),1)]),_:2},1024)):s.gitBranch||s.summary?t("",!0):(d(),u(w(se),{key:1,depth:"3",class:"session-message session-message-empty"},{default:m(()=>[...i[24]||(i[24]=[l(" 暂未读取到对话内容 ",-1)])]),_:1}))])]),x("div",ta,[x("div",la,[s.gitBranch?(d(),u(w(oe),{key:0,size:"small",type:"info",bordered:!1},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(S))]),_:1})]),default:m(()=>[l(" "+p(s.gitBranch),1)]),_:2},1024)):t("",!0)]),Se.value?t("",!0):(d(),I("div",ia,[r(w(Y),null,{default:m(()=>[P(r(w(a),{size:"small",type:"error",onClick:_(e=>{return a=s.sessionId,void ee.warning({title:"删除会话",content:"确定要删除这个会话吗?此操作不可恢复!",positiveText:"确定删除",negativeText:"取消",onPositiveClick:async()=>{try{await q.deleteSession(a),Ba([a]),ae.success("会话已删除")}catch(e){ae.error("删除失败: "+e.message)}}});var a},["stop"])},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(L))]),_:1})]),default:m(()=>[i[25]||(i[25]=l(" 删除 ",-1))]),_:1},8,["onClick"]),[[h,we.value===s.sessionId]]),r(w(a),{size:"small",onClick:_(e=>function(e){ke.value=e,_e.value=e.alias||"",ge.value=!0}(s),["stop"])},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(T))]),_:1})]),default:m(()=>[i[26]||(i[26]=l(" 别名 ",-1))]),_:1},8,["onClick"]),r(w(a),{size:"small",type:w(Z)(V.value,me.value,s.sessionId)?"warning":"default",onClick:_(e=>async function(e){const a=V.value,s=Z(a,me.value,e.sessionId);try{if(s)await G(a,me.value,e.sessionId),ae.success("已取消收藏");else{const s={sessionId:e.sessionId,projectName:me.value,projectDisplayName:ya.value,projectFullPath:ga.value,alias:e.alias||"",firstMessage:e.firstMessage||"",mtime:e.mtime,size:e.size,gitBranch:e.gitBranch||"",forkedFrom:e.forkedFrom||""};await R(a,s),ae.success("已添加到收藏")}}catch(t){ae.error("操作失败: "+t.message)}}(s),["stop"])},{icon:m(()=>[r(w(e),null,{default:m(()=>[w(Z)(V.value,me.value,s.sessionId)?(d(),u(w(A),{key:0})):(d(),u(w(U),{key:1}))]),_:2},1024)]),default:m(()=>[l(" "+p(w(Z)(V.value,me.value,s.sessionId)?"已收藏":"收藏"),1)]),_:2},1032,["type","onClick"]),"opencode"!==V.value?(d(),u(w(a),{key:0,size:"small",onClick:_(e=>async function(e){if("opencode"!==V.value)try{const a=je.value.find(a=>a.sessionId===e);Fe.value=a||{sessionId:e},Ue.value="",Le.value=ua,Be.value=[{label:"完整会话末尾(保留全部消息)",value:ua}],$e.value=!0,Te.value=!0;const s=await ce(me.value,e,V.value),t=Array.isArray(s?.items)?s.items:[];Be.value=[{label:"完整会话末尾(保留全部消息)",value:ua},...t.map(e=>({label:`保留到第 ${e.userMessageNumber} 条用户消息这一轮 · ${e.preview}`,value:e.userMessageNumber}))]}catch(a){ae.error("加载 Fork 位置失败: "+a.message),La()}finally{Te.value=!1}else ae.warning("OpenCode 当前不支持该 Fork 操作")}(s.sessionId),["stop"])},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(S))]),_:1})]),default:m(()=>[i[27]||(i[27]=l(" Fork ",-1))]),_:1},8,["onClick"])):t("",!0),r(w(a),{size:"small",type:"primary",onClick:_(e=>Da(s.sessionId),["stop"])},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(N))]),_:1})]),default:m(()=>[i[28]||(i[28]=l(" 使用对话 ",-1))]),_:1},8,["onClick"])]),_:2},1024)]))])],42,Ve)]))),128))])):t("",!0),w(q).sessionsPagination.total>w(q).sessionsPagination.limit?(d(),u(w(W),{key:4,page:be.value,"onUpdate:page":[i[4]||(i[4]=e=>be.value=e),Pa],"page-count":Math.ceil(w(q).sessionsPagination.total/w(q).sessionsPagination.limit),"page-size":w(q).sessionsPagination.limit,"show-quick-jumper":"",class:"list-pagination"},null,8,["page","page-count","page-size"])):t("",!0),w(q).loading||w(q).error||w(q).sessionsPending||0!==je.value.length?t("",!0):(d(),u(w(ne),{key:5,description:he.value?"当前页没有匹配的会话":"没有找到会话",style:{"margin-top":"60px"}},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w($))]),_:1})]),_:1},8,["description"]))],512),r(w(K),{show:ge.value,"onUpdate:show":i[7]||(i[7]=e=>ge.value=e),preset:"dialog",title:"设置别名"},{action:m(()=>[r(w(Y),null,{default:m(()=>[r(w(a),{onClick:i[6]||(i[6]=e=>ge.value=!1)},{default:m(()=>[...i[29]||(i[29]=[l("取消",-1)])]),_:1}),r(w(a),{type:"primary",onClick:Ua},{default:m(()=>[...i[30]||(i[30]=[l("确定",-1)])]),_:1})]),_:1})]),default:m(()=>[r(w(le),{value:_e.value,"onUpdate:value":i[5]||(i[5]=e=>_e.value=e),placeholder:"输入别名(留空删除)",onKeyup:j(Ua,["enter"])},null,8,["value"])]),_:1},8,["show"]),r(w(K),{show:$e.value,"onUpdate:show":i[10]||(i[10]=e=>$e.value=e),preset:"dialog",title:"Fork 对话"},{action:m(()=>[r(w(Y),null,{default:m(()=>[r(w(a),{disabled:Ae.value,onClick:La},{default:m(()=>[...i[32]||(i[32]=[l("取消",-1)])]),_:1},8,["disabled"]),r(w(a),{type:"primary",loading:Ae.value,onClick:Ta},{default:m(()=>[...i[33]||(i[33]=[l(" 确认 Fork ",-1)])]),_:1},8,["loading"])]),_:1})]),default:m(()=>[r(w(Y),{vertical:"",size:14},{default:m(()=>[r(w(se),{depth:"3"},{default:m(()=>[...i[31]||(i[31]=[l(" 可选择保留到第几条用户消息所在轮次;会包含这条消息后 AI 的完整输出。 ",-1)])]),_:1}),r(w(re),{value:Le.value,"onUpdate:value":i[8]||(i[8]=e=>Le.value=e),options:Be.value,loading:Te.value,clearable:"",placeholder:"选择保留到哪一轮(默认完整会话)"},null,8,["value","options","loading"]),r(w(le),{value:Ue.value,"onUpdate:value":i[9]||(i[9]=e=>Ue.value=e),placeholder:"输入新会话别名(可选)",maxlength:"120"},null,8,["value"])]),_:1})]),_:1},8,["show"]),r(w(K),{show:Pe.value,"onUpdate:show":i[11]||(i[11]=e=>Pe.value=e),preset:"card",title:"搜索结果",style:{width:"1200px"}},{default:m(()=>[Ce.value?(d(),I("div",na,[r(w(ie),{type:"info",style:{"margin-bottom":"16px"}},{default:m(()=>[l(' 关键词 "'+p(Ce.value.keyword)+'" 共找到 '+p(Ce.value.totalMatches)+" 处匹配 ",1)]),_:1}),(d(!0),I(y,null,o(Ce.value.sessions,s=>(d(),I("div",{key:s.sessionId,class:"search-result-item"},[x("div",oa,[x("div",ra,[r(w(se),{strong:""},{default:m(()=>[l(p(s.alias?`${s.alias} (${s.sessionId.substring(0,8)})`:s.sessionId.substring(0,8)),1)]),_:2},1024),r(w(oe),{size:"small",bordered:!1},{default:m(()=>[l(p(s.matchCount)+" 个匹配",1)]),_:2},1024)]),r(w(a),{size:"small",type:"primary",onClick:e=>Da(s.sessionId)},{icon:m(()=>[r(w(e),null,{default:m(()=>[r(w(N))]),_:1})]),default:m(()=>[i[34]||(i[34]=l(" 使用对话 ",-1))]),_:1},8,["onClick"])]),(d(!0),I(y,null,o(s.matches,(e,a)=>(d(),I("div",{key:a,class:"search-match"},[r(w(oe),{size:"tiny",type:"user"===e.role?"info":"success",bordered:!1},{default:m(()=>[l(p("user"===e.role?"用户":"助手"),1)]),_:2},1032,["type"]),r(w(se),{depth:"3",class:"search-match-text",innerHTML:Oa(e.context,Ce.value.keyword)},null,8,["innerHTML"])]))),128))]))),128)),0===Ce.value.sessions.length?(d(),u(w(ne),{key:0,description:"没有找到匹配的内容"})):t("",!0)])):t("",!0)]),_:1},8,["show"]),da.value?(d(),u(pe,{key:0,ref_key:"chatHistoryRef",ref:pa,show:ca.value,"onUpdate:show":i[12]||(i[12]=e=>ca.value=e),"project-name":me.value,"session-id":da.value,"session-alias":va.value,channel:V.value,onError:Aa},null,8,["show","project-name","session-id","session-alias","channel"])):t("",!0),r(De,{show:Ie.value,"onUpdate:show":i[13]||(i[13]=e=>Ie.value=e),"project-path":ha.value,platform:V.value},null,8,["show","project-path","platform"])]))}},[["__scopeId","data-v-66cfe9c9"]]);export{ca as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e,L as t,N as a,Qt as n,Tt as r,Yt as o,bn as i,gn as s,gt as l,hn as d,ht as u,j as c,xn as p,xt as m,yn as h}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as v,G as g,I as b,M as f,N as w,Q as x,Z as y,b as C,dt as F,g as k,st as B}from"./vue-vendor-BqZbbXHA.js";import{O as z,b as P,d as M,u as S}from"./use-message-DqCwefG6.js";import{F as I,n as $}from"./light-0eavxNvt.js";import{i as j,n as O,r as T,t as A}from"./Forward-DLCL7aMY.js";import{At as R,Ct as N,Et as U,_t as V,dt as D,ht as E,it as H,nt as J,rt as L,ut as Q,wt as q}from"./index-Cmmwj3Fx.js";var W={tiny:"mini",small:"tiny",medium:"small",large:"medium",huge:"large"};function _(e){const t=W[e];if(void 0===t)throw new Error(`${e} has no smaller size.`);return t}var Z=v({name:"More",render:()=>f("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},f("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},f("g",{fill:"currentColor","fill-rule":"nonzero"},f("path",{d:"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z"}))))}),G=o("n-popselect"),Y=s("popselect-menu","\n box-shadow: var(--n-menu-box-shadow);\n"),K={multiple:Boolean,value:{type:[String,Number,Array],default:null},cancelable:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:"medium"},scrollable:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onMouseenter:Function,onMouseleave:Function,renderLabel:Function,showCheckmark:{type:Boolean,default:void 0},nodeProps:Function,virtualScroll:Boolean,onChange:[Function,Array]},X=I(K),ee=v({name:"PopselectPanel",props:K,setup(e){const t=w(G),{mergedClsPrefixRef:n,inlineThemeDisabled:o}=l(e),i=a("Popselect","-pop-select",Y,H,t.props,n),s=C(()=>V(e.options,Q("value","children")));function d(t,a){const{onUpdateValue:n,"onUpdate:value":o,onChange:i}=e;n&&r(n,t,a),o&&r(o,t,a),i&&r(i,t,a)}y(F(e,"options"),()=>{b(()=>{t.syncPosition()})});const c=C(()=>{const{self:{menuBoxShadow:e}}=i.value;return{"--n-menu-box-shadow":e}}),p=o?u("select",void 0,c,t.props):void 0;return{mergedTheme:t.mergedThemeRef,mergedClsPrefix:n,treeMate:s,handleToggle:function(a){!function(a){const{value:{getNode:n}}=s;if(e.multiple)if(Array.isArray(e.value)){const t=[],r=[];let o=!0;e.value.forEach(e=>{if(e===a)return void(o=!1);const i=n(e);i&&(t.push(i.key),r.push(i.rawNode))}),o&&(t.push(a),r.push(n(a).rawNode)),d(t,r)}else{const e=n(a);e&&d([a],[e.rawNode])}else if(e.value===a&&e.cancelable)d(null,null);else{const e=n(a);e&&d(a,e.rawNode);const{"onUpdate:show":o,onUpdateShow:i}=t.props;o&&r(o,!1),i&&r(i,!1),t.setShow(!1)}b(()=>{t.syncPosition()})}(a.key)},handleMenuMousedown:function(e){R(e,"action")||R(e,"empty")||R(e,"header")||e.preventDefault()},cssVars:o?void 0:c,themeClass:null==p?void 0:p.themeClass,onRender:null==p?void 0:p.onRender}},render(){var e;return null===(e=this.onRender)||void 0===e||e.call(this),f(E,{clsPrefix:this.mergedClsPrefix,focusable:!0,nodeProps:this.nodeProps,class:[`${this.mergedClsPrefix}-popselect-menu`,this.themeClass],style:this.cssVars,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,multiple:this.multiple,treeMate:this.treeMate,size:this.size,value:this.value,virtualScroll:this.virtualScroll,scrollable:this.scrollable,renderLabel:this.renderLabel,onToggle:this.handleToggle,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseenter,onMousedown:this.handleMenuMousedown,showCheckmark:this.showCheckmark},{header:()=>{var e,t;return(null===(t=(e=this.$slots).header)||void 0===t?void 0:t.call(e))||[]},action:()=>{var e,t;return(null===(t=(e=this.$slots).action)||void 0===t?void 0:t.call(e))||[]},empty:()=>{var e,t;return(null===(t=(e=this.$slots).empty)||void 0===t?void 0:t.call(e))||[]}})}}),te=Object.assign(Object.assign(Object.assign(Object.assign({},a.props),N(M,["showArrow","arrow"])),{placement:Object.assign(Object.assign({},M.placement),{default:"bottom"}),trigger:{type:String,default:"hover"}}),K),ae=v({name:"Popselect",props:te,slots:Object,inheritAttrs:!1,__popover__:!0,setup(e){const{mergedClsPrefixRef:t}=l(e),n=a("Popselect","-popselect",void 0,H,e,t),r=B(null);function o(){var e;null===(e=r.value)||void 0===e||e.syncPosition()}function i(e){var t;null===(t=r.value)||void 0===t||t.setShow(e)}return g(G,{props:e,mergedThemeRef:n,syncPosition:o,setShow:i}),Object.assign(Object.assign({},{syncPosition:o,setShow:i}),{popoverInstRef:r,mergedTheme:n})},render(){const{mergedTheme:e}=this,t={theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:{padding:"0"},ref:"popoverInstRef",internalRenderBody:(e,t,a,n,r)=>{const{$attrs:o}=this;return f(ee,Object.assign({},o,{class:[o.class,e],style:[o.style,...a]},P(this.$props,X),{ref:U(t),onMouseenter:q([n,o.onMouseenter]),onMouseleave:q([r,o.onMouseleave])}),{header:()=>{var e,t;return null===(t=(e=this.$slots).header)||void 0===t?void 0:t.call(e)},action:()=>{var e,t;return null===(t=(e=this.$slots).action)||void 0===t?void 0:t.call(e)},empty:()=>{var e,t;return null===(t=(e=this.$slots).empty)||void 0===t?void 0:t.call(e)}})}};return f(S,Object.assign({},N(this.$props,X),t,{internalDeactivateImmediately:!0}),{trigger:()=>{var e,t;return null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)}})}}),ne="\n background: var(--n-item-color-hover);\n color: var(--n-item-text-color-hover);\n border: var(--n-item-border-hover);\n",re=[h("button","\n background: var(--n-button-color-hover);\n border: var(--n-button-border-hover);\n color: var(--n-button-icon-color-hover);\n ")],oe=s("pagination","\n display: flex;\n vertical-align: middle;\n font-size: var(--n-item-font-size);\n flex-wrap: nowrap;\n",[s("pagination-prefix","\n display: flex;\n align-items: center;\n margin: var(--n-prefix-margin);\n "),s("pagination-suffix","\n display: flex;\n align-items: center;\n margin: var(--n-suffix-margin);\n "),d("> *:not(:first-child)","\n margin: var(--n-item-margin);\n "),s("select","\n width: var(--n-select-width);\n "),d("&.transition-disabled",[s("pagination-item","transition: none!important;")]),s("pagination-quick-jumper","\n white-space: nowrap;\n display: flex;\n color: var(--n-jumper-text-color);\n transition: color .3s var(--n-bezier);\n align-items: center;\n font-size: var(--n-jumper-font-size);\n ",[s("input","\n margin: var(--n-input-margin);\n width: var(--n-input-width);\n ")]),s("pagination-item","\n position: relative;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: var(--n-item-size);\n height: var(--n-item-size);\n padding: var(--n-item-padding);\n background-color: var(--n-item-color);\n color: var(--n-item-text-color);\n border-radius: var(--n-item-border-radius);\n border: var(--n-item-border);\n fill: var(--n-button-icon-color);\n transition:\n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n fill .3s var(--n-bezier);\n ",[h("button","\n background: var(--n-button-color);\n color: var(--n-button-icon-color);\n border: var(--n-button-border);\n padding: 0;\n ",[s("base-icon","\n font-size: var(--n-button-icon-size);\n ")]),i("disabled",[h("hover",ne,re),d("&:hover",ne,re),d("&:active","\n background: var(--n-item-color-pressed);\n color: var(--n-item-text-color-pressed);\n border: var(--n-item-border-pressed);\n ",[h("button","\n background: var(--n-button-color-pressed);\n border: var(--n-button-border-pressed);\n color: var(--n-button-icon-color-pressed);\n ")]),h("active","\n background: var(--n-item-color-active);\n color: var(--n-item-text-color-active);\n border: var(--n-item-border-active);\n ",[d("&:hover","\n background: var(--n-item-color-active-hover);\n ")])]),h("disabled","\n cursor: not-allowed;\n color: var(--n-item-text-color-disabled);\n ",[h("active, button","\n background-color: var(--n-item-color-disabled);\n border: var(--n-item-border-disabled);\n ")])]),h("disabled","\n cursor: not-allowed;\n ",[s("pagination-quick-jumper","\n color: var(--n-jumper-text-color-disabled);\n ")]),h("simple","\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n ",[s("pagination-quick-jumper",[s("input","\n margin: 0;\n ")])])]);function ie(e,t){const a=[];for(let n=e;n<=t;++n)a.push({label:`${n}`,value:n});return a}var se=Object.assign(Object.assign({},a.props),{simple:Boolean,page:Number,defaultPage:{type:Number,default:1},itemCount:Number,pageCount:Number,defaultPageCount:{type:Number,default:1},showSizePicker:Boolean,pageSize:Number,defaultPageSize:Number,pageSizes:{type:Array,default:()=>[10]},showQuickJumper:Boolean,size:{type:String,default:"medium"},disabled:Boolean,pageSlot:{type:Number,default:9},selectProps:Object,prev:Function,next:Function,goto:Function,prefix:Function,suffix:Function,label:Function,displayOrder:{type:Array,default:["pages","size-picker","quick-jumper"]},to:z.propTo,showQuickJumpDropdown:{type:Boolean,default:!0},"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],onPageSizeChange:[Function,Array],onChange:[Function,Array]}),le=v({name:"Pagination",props:se,slots:Object,setup(o){const{mergedComponentPropsRef:i,mergedClsPrefixRef:s,inlineThemeDisabled:d,mergedRtlRef:c}=l(o),m=a("Pagination","-pagination",oe,J,o,s),{localeRef:h}=t("Pagination"),v=B(null),g=B(o.defaultPage),f=B(function(e){var t;if(!e)return 10;const{defaultPageSize:a}=e;if(void 0!==a)return a;const n=null===(t=e.pageSizes)||void 0===t?void 0:t[0];return"number"==typeof n?n:(null==n?void 0:n.value)||10}(o)),w=n(F(o,"page"),g),y=n(F(o,"pageSize"),f),k=C(()=>{const{itemCount:e}=o;if(void 0!==e)return Math.max(1,Math.ceil(e/y.value));const{pageCount:t}=o;return void 0!==t?Math.max(t,1):1}),z=B("");x(()=>{o.simple,z.value=String(w.value)});const P=B(!1),M=B(!1),S=B(!1),I=B(!1),$=C(()=>function(e,t,a,n){let r=!1,o=!1,i=1,s=t;if(1===t)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:s,fastBackwardTo:i,items:[{type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1}]};if(2===t)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:s,fastBackwardTo:i,items:[{type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1},{type:"page",label:2,active:2===e,mayBeFastBackward:!0,mayBeFastForward:!1}]};const l=t;let d=e,u=e;const c=(a-5)/2;u+=Math.ceil(c),u=Math.min(Math.max(u,1+a-3),l-2),d-=Math.floor(c),d=Math.max(Math.min(d,l-a+3),3);let p=!1,m=!1;d>3&&(p=!0),u<l-2&&(m=!0);const h=[];h.push({type:"page",label:1,active:1===e,mayBeFastBackward:!1,mayBeFastForward:!1}),p?(r=!0,i=d-1,h.push({type:"fast-backward",active:!1,label:void 0,options:n?ie(2,d-1):null})):l>=2&&h.push({type:"page",label:2,mayBeFastBackward:!0,mayBeFastForward:!1,active:2===e});for(let v=d;v<=u;++v)h.push({type:"page",label:v,mayBeFastBackward:!1,mayBeFastForward:!1,active:e===v});return m?(o=!0,s=u+1,h.push({type:"fast-forward",active:!1,label:void 0,options:n?ie(u+1,l-1):null})):u===l-2&&h[h.length-1].label!==l-1&&h.push({type:"page",mayBeFastForward:!0,mayBeFastBackward:!1,label:l-1,active:e===l-1}),h[h.length-1].label!==l&&h.push({type:"page",mayBeFastForward:!1,mayBeFastBackward:!1,label:l,active:e===l}),{hasFastBackward:r,hasFastForward:o,fastBackwardTo:i,fastForwardTo:s,items:h}}(w.value,k.value,o.pageSlot,o.showQuickJumpDropdown));x(()=>{$.value.hasFastBackward?$.value.hasFastForward||(P.value=!1,S.value=!1):(M.value=!1,I.value=!1)});const j=C(()=>{const e=h.value.selectionSuffix;return o.pageSizes.map(t=>"number"==typeof t?{label:`${t} / ${e}`,value:t}:t)}),O=C(()=>{var e,t;return(null===(t=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.Pagination)||void 0===t?void 0:t.inputSize)||_(o.size)}),T=C(()=>{var e,t;return(null===(t=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.Pagination)||void 0===t?void 0:t.selectSize)||_(o.size)}),A=C(()=>(w.value-1)*y.value),R=C(()=>{const e=w.value*y.value-1,{itemCount:t}=o;return void 0!==t&&e>t-1?t-1:e}),N=C(()=>{const{itemCount:e}=o;return void 0!==e?e:(o.pageCount||1)*y.value}),U=e("Pagination",c,s);function V(){b(()=>{var e;const{value:t}=v;t&&(t.classList.add("transition-disabled"),null===(e=v.value)||void 0===e||e.offsetWidth,t.classList.remove("transition-disabled"))})}function D(e){if(e===w.value)return;const{"onUpdate:page":t,onUpdatePage:a,onChange:n,simple:i}=o;t&&r(t,e),a&&r(a,e),n&&r(n,e),g.value=e,i&&(z.value=String(e))}x(()=>{w.value,y.value,V()});const E=C(()=>{const{size:e}=o,{self:{buttonBorder:t,buttonBorderHover:a,buttonBorderPressed:n,buttonIconColor:r,buttonIconColorHover:i,buttonIconColorPressed:s,itemTextColor:l,itemTextColorHover:d,itemTextColorPressed:u,itemTextColorActive:c,itemTextColorDisabled:h,itemColor:v,itemColorHover:g,itemColorPressed:b,itemColorActive:f,itemColorActiveHover:w,itemColorDisabled:x,itemBorder:y,itemBorderHover:C,itemBorderPressed:F,itemBorderActive:k,itemBorderDisabled:B,itemBorderRadius:z,jumperTextColor:P,jumperTextColorDisabled:M,buttonColor:S,buttonColorHover:I,buttonColorPressed:$,[p("itemPadding",e)]:j,[p("itemMargin",e)]:O,[p("inputWidth",e)]:T,[p("selectWidth",e)]:A,[p("inputMargin",e)]:R,[p("selectMargin",e)]:N,[p("jumperFontSize",e)]:U,[p("prefixMargin",e)]:V,[p("suffixMargin",e)]:D,[p("itemSize",e)]:E,[p("buttonIconSize",e)]:H,[p("itemFontSize",e)]:J,[`${p("itemMargin",e)}Rtl`]:L,[`${p("inputMargin",e)}Rtl`]:Q},common:{cubicBezierEaseInOut:q}}=m.value;return{"--n-prefix-margin":V,"--n-suffix-margin":D,"--n-item-font-size":J,"--n-select-width":A,"--n-select-margin":N,"--n-input-width":T,"--n-input-margin":R,"--n-input-margin-rtl":Q,"--n-item-size":E,"--n-item-text-color":l,"--n-item-text-color-disabled":h,"--n-item-text-color-hover":d,"--n-item-text-color-active":c,"--n-item-text-color-pressed":u,"--n-item-color":v,"--n-item-color-hover":g,"--n-item-color-disabled":x,"--n-item-color-active":f,"--n-item-color-active-hover":w,"--n-item-color-pressed":b,"--n-item-border":y,"--n-item-border-hover":C,"--n-item-border-disabled":B,"--n-item-border-active":k,"--n-item-border-pressed":F,"--n-item-padding":j,"--n-item-border-radius":z,"--n-bezier":q,"--n-jumper-font-size":U,"--n-jumper-text-color":P,"--n-jumper-text-color-disabled":M,"--n-item-margin":O,"--n-item-margin-rtl":L,"--n-button-icon-size":H,"--n-button-icon-color":r,"--n-button-icon-color-hover":i,"--n-button-icon-color-pressed":s,"--n-button-color-hover":I,"--n-button-color":S,"--n-button-color-pressed":$,"--n-button-border":t,"--n-button-border-hover":a,"--n-button-border-pressed":n}}),H=d?u("pagination",C(()=>{let e="";const{size:t}=o;return e+=t[0],e}),E,o):void 0;return{rtlEnabled:U,mergedClsPrefix:s,locale:h,selfRef:v,mergedPage:w,pageItems:C(()=>$.value.items),mergedItemCount:N,jumperValue:z,pageSizeOptions:j,mergedPageSize:y,inputSize:O,selectSize:T,mergedTheme:m,mergedPageCount:k,startIndex:A,endIndex:R,showFastForwardMenu:S,showFastBackwardMenu:I,fastForwardActive:P,fastBackwardActive:M,handleMenuSelect:e=>{D(e)},handleFastForwardMouseenter:()=>{o.disabled||(P.value=!0,V())},handleFastForwardMouseleave:()=>{o.disabled||(P.value=!1,V())},handleFastBackwardMouseenter:()=>{M.value=!0,V()},handleFastBackwardMouseleave:()=>{M.value=!1,V()},handleJumperInput:function(e){z.value=e.replace(/\D+/g,"")},handleBackwardClick:function(){o.disabled||D(Math.max(w.value-1,1))},handleForwardClick:function(){o.disabled||D(Math.min(w.value+1,k.value))},handlePageItemClick:function(e){if(!o.disabled)switch(e.type){case"page":D(e.label);break;case"fast-backward":o.disabled||D(Math.max($.value.fastBackwardTo,1));break;case"fast-forward":o.disabled||D(Math.min($.value.fastForwardTo,k.value))}},handleSizePickerChange:function(e){!function(e){if(e===y.value)return;const{"onUpdate:pageSize":t,onUpdatePageSize:a,onPageSizeChange:n}=o;t&&r(t,e),a&&r(a,e),n&&r(n,e),f.value=e,k.value<w.value&&D(k.value)}(e)},handleQuickJumperChange:function(){!function(){const e=Number.parseInt(z.value);Number.isNaN(e)||(D(Math.max(1,Math.min(e,k.value))),o.simple||(z.value=""))}()},cssVars:d?void 0:E,themeClass:null==H?void 0:H.themeClass,onRender:null==H?void 0:H.onRender}},render(){const{$slots:e,mergedClsPrefix:t,disabled:a,cssVars:n,mergedPage:r,mergedPageCount:o,pageItems:i,showSizePicker:s,showQuickJumper:l,mergedTheme:d,locale:u,inputSize:p,selectSize:h,mergedPageSize:v,pageSizeOptions:g,jumperValue:b,simple:w,prev:x,next:y,prefix:C,suffix:F,label:B,goto:z,handleJumperInput:P,handleSizePickerChange:M,handleBackwardClick:S,handlePageItemClick:I,handleForwardClick:$,handleQuickJumperChange:R,onRender:N}=this;null==N||N();const U=C||e.prefix,V=F||e.suffix,E=x||e.prev,H=y||e.next,J=B||e.label;return f("div",{ref:"selfRef",class:[`${t}-pagination`,this.themeClass,this.rtlEnabled&&`${t}-pagination--rtl`,a&&`${t}-pagination--disabled`,w&&`${t}-pagination--simple`],style:n},U?f("div",{class:`${t}-pagination-prefix`},U({page:r,pageSize:v,pageCount:o,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null,this.displayOrder.map(e=>{switch(e){case"pages":return f(k,null,f("div",{class:[`${t}-pagination-item`,!E&&`${t}-pagination-item--button`,(r<=1||r>o||a)&&`${t}-pagination-item--disabled`],onClick:S},E?E({page:r,pageSize:v,pageCount:o,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount}):f(c,{clsPrefix:t},{default:()=>this.rtlEnabled?f(A,null):f(j,null)})),w?f(k,null,f("div",{class:`${t}-pagination-quick-jumper`},f(D,{value:b,onUpdateValue:P,size:p,placeholder:"",disabled:a,theme:d.peers.Input,themeOverrides:d.peerOverrides.Input,onChange:R}))," /"," ",o):i.map((e,n)=>{let r,o,i;const{type:s}=e;switch(s){case"page":const a=e.label;r=J?J({type:"page",node:a,active:e.active}):a;break;case"fast-forward":const n=this.fastForwardActive?f(c,{clsPrefix:t},{default:()=>this.rtlEnabled?f(T,null):f(O,null)}):f(c,{clsPrefix:t},{default:()=>f(Z,null)});r=J?J({type:"fast-forward",node:n,active:this.fastForwardActive||this.showFastForwardMenu}):n,o=this.handleFastForwardMouseenter,i=this.handleFastForwardMouseleave;break;case"fast-backward":const s=this.fastBackwardActive?f(c,{clsPrefix:t},{default:()=>this.rtlEnabled?f(O,null):f(T,null)}):f(c,{clsPrefix:t},{default:()=>f(Z,null)});r=J?J({type:"fast-backward",node:s,active:this.fastBackwardActive||this.showFastBackwardMenu}):s,o=this.handleFastBackwardMouseenter,i=this.handleFastBackwardMouseleave}const l=f("div",{key:n,class:[`${t}-pagination-item`,e.active&&`${t}-pagination-item--active`,"page"!==s&&("fast-backward"===s&&this.showFastBackwardMenu||"fast-forward"===s&&this.showFastForwardMenu)&&`${t}-pagination-item--hover`,a&&`${t}-pagination-item--disabled`,"page"===s&&`${t}-pagination-item--clickable`],onClick:()=>{I(e)},onMouseenter:o,onMouseleave:i},r);if("page"!==s||e.mayBeFastBackward||e.mayBeFastForward){const t="page"===e.type?e.mayBeFastBackward?"fast-backward":"fast-forward":e.type;return"page"===e.type||e.options?f(ae,{to:this.to,key:t,disabled:a,trigger:"hover",virtualScroll:!0,style:{width:"60px"},theme:d.peers.Popselect,themeOverrides:d.peerOverrides.Popselect,builtinThemeOverrides:{peers:{InternalSelectMenu:{height:"calc(var(--n-option-height) * 4.6)"}}},nodeProps:()=>({style:{justifyContent:"center"}}),show:"page"!==s&&("fast-backward"===s?this.showFastBackwardMenu:this.showFastForwardMenu),onUpdateShow:e=>{"page"!==s&&(e?"fast-backward"===s?this.showFastBackwardMenu=e:this.showFastForwardMenu=e:(this.showFastBackwardMenu=!1,this.showFastForwardMenu=!1))},options:"page"!==e.type&&e.options?e.options:[],onUpdateValue:this.handleMenuSelect,scrollable:!0,showCheckmark:!1},{default:()=>l}):l}return l}),f("div",{class:[`${t}-pagination-item`,!H&&`${t}-pagination-item--button`,{[`${t}-pagination-item--disabled`]:r<1||r>=o||a}],onClick:$},H?H({page:r,pageSize:v,pageCount:o,itemCount:this.mergedItemCount,startIndex:this.startIndex,endIndex:this.endIndex}):f(c,{clsPrefix:t},{default:()=>this.rtlEnabled?f(j,null):f(A,null)})));case"size-picker":return!w&&s?f(L,Object.assign({consistentMenuWidth:!1,placeholder:"",showCheckmark:!1,to:this.to},this.selectProps,{size:h,options:g,value:v,disabled:a,theme:d.peers.Select,themeOverrides:d.peerOverrides.Select,onUpdateValue:M})):null;case"quick-jumper":return!w&&l?f("div",{class:`${t}-pagination-quick-jumper`},z?z():m(this.$slots.goto,()=>[u.goto]),f(D,{value:b,onUpdateValue:P,size:p,placeholder:"",disabled:a,theme:d.peers.Input,themeOverrides:d.peerOverrides.Input,onChange:R})):null;default:return null}}),V?f("div",{class:`${t}-pagination-suffix`},V({page:r,pageSize:v,pageCount:o,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null)}}),de=s("h","\n font-size: var(--n-font-size);\n font-weight: var(--n-font-weight);\n margin: var(--n-margin);\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n",[d("&:first-child",{marginTop:0}),h("prefix-bar",{position:"relative",paddingLeft:"var(--n-prefix-width)"},[h("align-text",{paddingLeft:0},[d("&::before",{left:"calc(-1 * var(--n-prefix-width))"})]),d("&::before",'\n content: "";\n width: var(--n-bar-width);\n border-radius: calc(var(--n-bar-width) / 2);\n transition: background-color .3s var(--n-bezier);\n left: 0;\n top: 0;\n bottom: 0;\n position: absolute;\n '),d("&::before",{backgroundColor:"var(--n-bar-color)"})])]),ue=Object.assign(Object.assign({},a.props),{type:{type:String,default:"default"},prefix:String,alignText:Boolean}),ce=e=>v({name:`H${e}`,props:ue,setup(t){const{mergedClsPrefixRef:n,inlineThemeDisabled:r}=l(t),o=a("Typography","-h",de,$,t,n),i=C(()=>{const{type:a}=t,{common:{cubicBezierEaseInOut:n},self:{headerFontWeight:r,headerTextColor:i,[p("headerPrefixWidth",e)]:s,[p("headerFontSize",e)]:l,[p("headerMargin",e)]:d,[p("headerBarWidth",e)]:u,[p("headerBarColor",a)]:c}}=o.value;return{"--n-bezier":n,"--n-font-size":l,"--n-margin":d,"--n-bar-color":c,"--n-bar-width":u,"--n-font-weight":r,"--n-text-color":i,"--n-prefix-width":s}}),s=r?u(`h${e}`,C(()=>t.type[0]),i,t):void 0;return{mergedClsPrefix:n,cssVars:r?void 0:i,themeClass:null==s?void 0:s.themeClass,onRender:null==s?void 0:s.onRender}},render(){var t;const{prefix:a,alignText:n,mergedClsPrefix:r,cssVars:o,$slots:i}=this;return null===(t=this.onRender)||void 0===t||t.call(this),f(`h${e}`,{class:[`${r}-h`,`${r}-h${e}`,this.themeClass,{[`${r}-h--prefix-bar`]:a,[`${r}-h--align-text`]:n}],style:o},i)}}),pe=(ce("1"),ce("2"));ce("3"),ce("4"),ce("5"),ce("6");export{le as n,pe as t};
|