filecat 7.13.0 → 7.14.4

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 (39) hide show
  1. package/build/dist/1142.97da60368424992aa345.js +1 -0
  2. package/build/dist/{2572.8fdddfebb4da2f29dbd8.js → 2572.7e7a9c31be5b678fae9f.js} +1 -1
  3. package/build/dist/{2674.2713dbaf7b4dbb6baa4c.js → 2674.57dca88c03c75c01a508.js} +1 -1
  4. package/build/dist/{3299.b85fad5623f990484bd9.js → 3299.937b009da6be833febd9.js} +1 -1
  5. package/build/dist/394.c8dd8740abe9c8e966be.js +1 -0
  6. package/build/dist/5308.7b9f32f5b110b7b30f98.js +1 -0
  7. package/build/dist/5516.30abe1f0cae2352028c1.js +1 -0
  8. package/build/dist/5744.236bce5b3b9188b4927f.js +1 -0
  9. package/build/dist/621.9b9a5312624393359a06.js +1 -0
  10. package/build/dist/6404.a2bcc23b592dbd6d719b.js +1 -0
  11. package/build/dist/7181.91fe39c64601170928c9.js +1 -0
  12. package/build/dist/735.80eacc3ca29a27059b14.js +1 -0
  13. package/build/dist/{7873.e3098bc6f510e5bea55f.js → 7873.f206780aa5e1d97ee481.js} +1 -1
  14. package/build/dist/8302.dacd7272ac7837764b5f.js +1 -0
  15. package/build/dist/8365.e876e79b3f2031b20183.js +1 -0
  16. package/build/dist/892.7c2341cc1d38845fceb9.js +1 -0
  17. package/build/dist/{9299.4c39ae6b03d41c516b1f.js → 9299.d5615865bd9ebd376923.js} +1 -1
  18. package/build/dist/dark.css +21 -28
  19. package/build/dist/google-dark.css +21 -28
  20. package/build/dist/google.css +4 -13
  21. package/build/dist/index.html +1 -1
  22. package/build/dist/main.393fb0005ec80a2b4828.js +2 -0
  23. package/build/main.js +1 -1
  24. package/package.json +1 -1
  25. package/build/dist/1142.bc43fae2e5e38d9359df.js +0 -1
  26. package/build/dist/394.a8337677ef993b923783.js +0 -1
  27. package/build/dist/4004.ca7e777145c700c5b186.js +0 -1
  28. package/build/dist/5308.d1e5ccb49396fc1b026d.js +0 -1
  29. package/build/dist/5516.88521f3a3c7101c46df3.js +0 -1
  30. package/build/dist/5744.0f8a0432b73b2eb0a7ff.js +0 -1
  31. package/build/dist/621.28f07b5c059e80331746.js +0 -1
  32. package/build/dist/6404.bcf224539211a7979990.js +0 -1
  33. package/build/dist/7181.640be82b27656082091e.js +0 -1
  34. package/build/dist/735.38718e61fe313f131a3e.js +0 -1
  35. package/build/dist/8302.c72a3767319d87419737.js +0 -1
  36. package/build/dist/892.a62727e6df6e80655ca7.js +0 -1
  37. package/build/dist/main.e03c0b1342da0ac83715.js +0 -2
  38. package/build/ripgrep/rg.exe +0 -0
  39. /package/build/dist/{main.e03c0b1342da0ac83715.js.LICENSE.txt → main.393fb0005ec80a2b4828.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkfilecat=self.webpackChunkfilecat||[]).push([[9299],{47374(e,t,i){i.d(t,{e:()=>p});var n=i(96540),s=i(61973),o=i(64694),a=i(34289),l=i(61443),r=i(75725),c=i(22022),d=i(85997),_=i(74848);function p(e){let t=(0,s.zy)();const[i,p]=(0,n.useState)([]),[f,h]=(0,n.useState)("/"),[u,m]=(0,n.useState)(void 0),{t:w,i18n:v}=(0,c.Bd)();n.useEffect(()=>{let t="",i=(0,a.vX)().split("/");i=i.filter(e=>e);const n=i.indexOf(e.baseRoute),s=[];if(-1!=n){t=(0,o.IO)(i.slice(0,n),e.baseRoute);const a=i.slice(n+1);for(let e=0;e<a.length;e++){const i=a[e];s.push({value:i,href:0===e?`${t}${i}/`:(0,o.IO)(s[e-1].href,i)})}h(t),p(s)}},[t]);const g=t=>{t.stopPropagation(),e.clickFun(t)};return(0,_.jsx)("div",{className:"breadcrumbs",onClick:e=>{m(void 0!==u?void 0:"")},children:(0,_.jsx)(n.Fragment,{children:void 0===u?(0,_.jsxs)(n.Fragment,{children:[(0,_.jsx)("span",{className:"chevron",children:(0,_.jsx)(s.N_,{to:f,onClick:g,children:(0,_.jsx)(d.In,{icon:"home"})})}),i.map((e,t)=>(0,_.jsxs)("span",{className:"chevron",children:[(0,_.jsx)(d.In,{icon:"keyboard_arrow_right"}),(0,_.jsx)(s.N_,{to:e.href,onClick:g,children:decodeURIComponent(e.value)})]},t))]}):(0,_.jsx)(r.QM,{click:()=>{m(void 0)},children:(0,_.jsx)(l.Sm,{width:"100%",placeholder:w("输入跳转的目录"),handlerEnter:t=>{e.input_path_enter&&e.input_path_enter(t),m(void 0)}})})})})}},77481(e,t,i){i.d(t,{S:()=>l,X:()=>a});var n=i(96540),s=i(61443),o=i(74848);function a(e){const[t,i]=n.useState([]),a=(0,n.useRef)(-1),[l,r]=(0,n.useState)(-1),[c,d]=(0,n.useState)(-1);(0,n.useEffect)(()=>{e.children?i(Array.isArray(e.children)?e.children:[e.children]):i(e.rows)},[e.rows,e.children]);const _=()=>{a.current=-1,r(-1),d(-1)};return(0,o.jsxs)("table",{children:[(0,o.jsx)("thead",{children:(0,o.jsx)("tr",{children:e.headers?.map((t,i)=>{const n=!!e.filter&&(e.filter.column??0)===i;let a=t;if(n){const i=e.filter,n=i.options.find(e=>e.value===i.value);null!=i.value&&n&&(a=`${t} (${n.label})`)}return(0,o.jsx)("th",{className:n?"table-filter-col":"",children:n?(0,o.jsx)(s.l6,{value:e.filter.value,options:e.filter.options,onChange:e.filter.onChange,bare:!0,trigger_label:a}):t},i)})})}),(0,o.jsx)("tbody",{children:t.map((t,i)=>{const n=!!e.onRowDrag;return(0,o.jsx)("tr",{className:n?(l===i?"row-dragging":"")+(c===i?" row-drop-target":""):"",draggable:n,onContextMenu:()=>{e.handleContextMenu&&e.handleContextMenu(t)},onDragStart:e=>{n&&(a.current=i,r(i),e.dataTransfer.effectAllowed="move")},onDragOver:e=>{!n||a.current<0||(e.preventDefault(),e.dataTransfer.dropEffect="move",d(i))},onDrop:t=>{n&&(t.preventDefault(),(()=>{const t=a.current,i=c;_(),t<0||i<0||t===i||e.onRowDrag?.(t,i)})())},onDragEnd:_,children:t.map((i,n)=>{const s=n===t.length-1?"small":"";return(0,o.jsx)("td",{className:s,style:{width:e.width??"auto"},children:i},n)})},i)})})]})}function l(e){return(0,o.jsx)("div",{style:{display:e.isFlex?"flex":"block"},children:e.columns.map((e,t)=>(0,o.jsx)("div",{children:e},t))})}},19299(e,t,i){i.r(t),i.d(t,{default:()=>q});var n=i(96540),s=i(47374),o=i(34843),a=i(82893),l=i(14284),r=i(61973),c=i(4412),d=i(89824),_=i(34289),p=i(53459),f=i(99214),h=i(61443),u=i(47022),m=i(62042),w=i(22022),v=i(7523),g=i(78247),x=i(88815),y=i(6960),j=i(47071),k=i(14944),G=i(92275),A=i(23430);var b=i(34251),C=i(60096),S=i(87361),M=i(76559),$=i(85997),z=i(77481),D=i(70447),N=i(74848);const P=500;function E(e){const{t}=(0,w.Bd)(),i=(0,r.Zp)(),[,s]=(0,o.fp)(a.AG.prompt_card),[l,c]=(0,n.useState)(""),[d,_]=(0,n.useState)(!1),[p,f]=(0,n.useState)([]),[u,m]=(0,n.useState)(0),[v,g]=(0,n.useState)(!1),x=(0,n.useMemo)(()=>new M.I(window.location.host,"file_deep_search"),[]),y=(0,n.useRef)(!1),j=decodeURIComponent(e.base_path);(0,n.useEffect)(()=>{let e=[],t=null;const i=()=>{if(t=null,y.current||!e.length)return;const i=e;e=[],m(e=>e+i.length),f(e=>e.length>=P?e:[...e,...i].slice(0,P))},n=()=>{y.current||_(!1)};return x.addMsg(G.HK.file_deep_search_data,n=>{y.current||(e.push(...n.context??[]),null===t&&(t=setTimeout(i,100)))}),x.addMsg(G.HK.file_deep_search_end,()=>{y.current||(i(),_(!1))}),x.on_message("close",n),()=>{y.current=!0,clearTimeout(t),x.sendData(G.HK.file_deep_search_cancel,{}).catch(()=>{}),x.off_message("close",n),x.close()}},[]);const k=()=>{const t=l.trim();if(!t||d)return;f([]),m(0),g(!0),_(!0);const i={param_path:e.base_path,keyword:t};x.sendData(G.HK.file_deep_search,i).catch(()=>{})},A=e=>{let t=e.is_dir?e.path:e.path.slice(0,e.path.lastIndexOf("/")+1);t.endsWith("/")||(t+="/"),s({open:!1}),i(S.o.file+t.split("/").map(encodeURIComponent).join("/"))};return(0,N.jsxs)("div",{className:"file-deep-search",children:[(0,N.jsxs)("div",{className:"file-deep-search__bar",children:[(0,N.jsx)(h.$Z,{icon:"search",value:l,placeholder:t("搜文件名"),handleInputChange:e=>c(e),handleEnterPress:k}),(0,N.jsx)("button",{className:"button button--flat",onClick:d?()=>{x.sendData(G.HK.file_deep_search_cancel,{}).catch(()=>{}),_(!1)}:k,children:t(d?"取消":"搜索")})]}),(0,N.jsxs)("div",{className:"file-deep-search__hint",children:[(0,N.jsxs)("span",{children:[t("范围"),":",j]}),u>0&&(0,N.jsx)("span",{className:"file-deep-search__count",children:u>P?`${t("已显示")} 500 / ${u}`:`${u}`})]}),(0,N.jsxs)("div",{className:"file-deep-search__body",children:[p.length>0&&(0,N.jsx)(z.X,{headers:[t("名称"),t("路径"),""],rows:p.map(e=>{const i=e.path.slice(0,e.path.lastIndexOf("/")+1);return[e.is_dir?(0,N.jsx)("span",{className:"file-deep-search__dir",children:e.name}):e.name,(0,N.jsx)(D.xP,{context:i}),(0,N.jsx)($.rA,{icon:"folder_open",title:t("打开所在目录"),onClick:()=>A(e)})]})}),d&&(0,N.jsxs)("div",{className:"file-deep-search__empty",children:[(0,N.jsx)("span",{className:"chat-session-running",title:t("搜索中")}),t("搜索中")]}),!d&&u>P&&(0,N.jsx)("div",{className:"file-deep-search__more",children:t("结果过多")}),!d&&0===p.length&&(0,N.jsx)("div",{className:"file-deep-search__empty",children:t(v?"无匹配":"输入后搜")})]})]})}var F=i(23496),I=i(12730),X=i(75725),R=i(40505);let K={};function H(){const{t:e}=(0,w.Bd)();let t=(0,r.zy)();const i=(0,r.Zp)(),{check_user_auth:s}=(0,g.MH)(),[c,p]=(0,o.fp)(a.AG.nowFileList),[h,x]=(0,o.fp)(a.AG.uploadFiles),[y,j]=(0,o.fp)(a.AG.showPrompt),[C,M]=(0,o.fp)(a.AG.selectedFileList),[z,P]=(0,o.fp)(a.AG.copyedFileList),[E,F]=(0,o.fp)(a.AG.cutedFileList),[R,H]=(0,o.fp)(a.AG.selectedFileList),[L,U]=(0,o.fp)(a.AG.clickFileList),[Y,B]=(0,o.fp)(a.AG.fileShellShow),[O]=(0,o.fp)(a.AG.current_mount),[Z,W]=(0,o.fp)(a.AG.file_root_list),[T,V]=(0,o.fp)(a.AG.file_root_index),[q,J]=(0,n.useState)(void 0),[Q,ee]=(0,n.useState)(""),[te,ie]=(0,o.fp)(a.AG.workflow_show),[ne,se]=(0,o.fp)(a.AG.workflow_realtime_show),[oe,ae]=(0,o.fp)(a.AG.work_flow_show),{initUserInfo:le}=(0,n.useContext)(v.F),[re,ce]=(0,o.fp)(a.AG.user_base_info),{click_file:de}=(0,f.kZ)(),[_e,pe]=(0,o.fp)(a.AG.prompt_card),fe=(0,n.useMemo)(()=>c.files.reduce((e,t)=>e+(t.type!==u.Iw.folder?1:0),0),[c]),he=(0,n.useMemo)(()=>c.files.reduce((e,t)=>e+(t.type===u.Iw.folder?1:0),0)+(c.folders?.length??0),[c]);function ue(e){(0,m.SK)(e)}(0,n.useEffect)(()=>{K={}},[t]),(0,n.useEffect)(()=>()=>{B({show:!1,path:""})},[]);const me=(0,f.Vs)(),we=t=>{pe({open:!0,title:e("信息"),context_div:(0,N.jsxs)("div",{style:{maxWidth:"25rem"},children:[(0,N.jsx)(X.Yh,{left:e("挂载位置磁盘"),right:t?.total_size}),(0,N.jsx)(X.Yh,{left:`${e("磁盘剩余")}`,right:t?.left_size}),(0,N.jsx)(X.Yh,{left:`${e("文件系统")}`,right:t?.fs_type}),(0,N.jsx)(X.Yh,{left:`${e("文件夹数")}`,right:he}),(0,N.jsx)(X.Yh,{left:`${e("文件数")}`,right:fe}),(0,N.jsx)(X.Yh,{left:`${e("当前位置")}`,right:(0,N.jsx)(D.xP,{context:t?.now_absolute_path})})]}),cancel:()=>{k.ws.removeMsg(G.HK.file_info)}})};return(0,N.jsxs)(n.Fragment,{children:[C.length>0&&(0,N.jsx)($.rA,{icon:"delete",title:e("删除"),onClick:()=>{j({show:!0,type:d.PromptEnum.FilesDelete,overlay:!0,data:{}})}}),C.length>0&&(0,N.jsx)($.rA,{icon:"content_copy",title:e("复制"),onClick:function(){const e=(0,f.ib)(c,C);P(e.map(e=>(0,f.Ok)(e.name))),F([]),ue("已复制")}}),C.length>0&&(0,N.jsx)($.rA,{icon:"content_cut",title:e("剪切"),onClick:function(){const e=(0,f.ib)(c,C);F(e.map(e=>(0,f.Ok)(e.name))),P([]),ue("已剪切")}}),(z.length>0||E.length>0)&&(0,N.jsx)($.rA,{onClick:function(){j({show:!0,type:d.PromptEnum.Confirm,overlay:!0,data:{}})},icon:"content_paste",title:e("粘贴到此处"),tip:z.length+E.length}),C.length>0&&(0,N.jsx)($.rA,{icon:"download",title:e("下载"),onClick:function(){const e=(0,f.ib)(c,C);for(let t=0;t<e.length;t++){const i=e[t];e[t]=encodeURIComponent((0,f.Ok)(i.name))}const t=l.$M.getDownloadUrl(e);window.open(t)}}),C.length>0&&(0,N.jsx)($.rA,{icon:"compress",title:e("压缩"),onClick:function(){const e=(0,f.ib)(c,C);for(let t=0;t<e.length;t++){const i=e[t];e[t]=(0,f.Ok)(i.name)}e&&0!==e.length?j({show:!0,type:d.PromptEnum.Compress,overlay:!0,data:{files:e}}):(0,m.zN)("没有选中")}}),1===C.length&&(0,N.jsx)($.rA,{icon:"edit_attributes",title:e("重命名"),onClick:function(){j({show:!0,type:d.PromptEnum.FileRename,overlay:!0,data:{}})}}),oe&&(0,N.jsx)($.rA,{icon:"api",title:"workflow",onClick:()=>{ie(!te)}}),!O&&(0,N.jsx)($.rA,{icon:"terminal",title:"shell",onClick:function(){Y.show?B({show:!1,path:""}):B({show:!0,path:(0,_.GG)("file",(0,_.vX)())})}}),s(A.oV.share_file)&&(0,N.jsx)($.rA,{icon:"share",title:e("文件分享"),onClick:()=>{i(`${S.o.share_list_setting_page}`)}}),(0,N.jsx)($.rA,{icon:"grid_view",title:e("切换样式"),onClick:me}),(0,N.jsx)($.rA,{icon:"create_new_folder",title:e("创建文件夹"),onClick:function(){j({show:!0,type:d.PromptEnum.DirNew,overlay:!0,data:{dir:(0,_.GG)("file",(0,_.vX)())}})}}),(0,N.jsx)($.rA,{icon:"note_add",title:e("创建文本文件"),onClick:function(){j({show:!0,type:d.PromptEnum.FileNew,overlay:!0,data:{dir:(0,_.GG)("file",(0,_.vX)())}})}}),(0,N.jsx)($.rA,{icon:"upload_file",title:e("上传"),onClick:()=>{j({show:!0,type:d.PromptEnum.UploadFile,overlay:!0,data:{call:e=>{let t=e.currentTarget?.files;if(!t)return;let i=!!t[0].webkitRelativePath;const n=[],s=new Set;for(let e=0;e<t.length;e++){const o=t[e],a=i?o.webkitRelativePath:`${o.webkitRelativePath}${o.name}`;o.fullPath=a,i&&s.add((0,I.S)(a)),n.push(o)}const o=[];if(i)for(const e of s)o.push({isDir:!0,fullPath:e,name:e});o.push(...n),x(o),j({show:!0,type:d.PromptEnum.FilesUpload,overlay:!1,data:{}})}}})}}),(0,N.jsx)($.rA,{icon:"info",title:e("信息"),onClick:async()=>{let e;if(!K.now_absolute_path){k.ws.addMsg(G.HK.file_info,t=>{const i=t.context;e&&(K={...K,...i},k.ws.removeMsg(G.HK.file_info),we(K))});const t=await k.ws.sendData(G.HK.file_info,{type:u.Iw.folder,path:(0,_.GG)("file",(0,_.vX)())});e=t.context,K=e,we(K)}we(K)}}),(0,N.jsx)($.rA,{icon:"more_vert",title:e("切换目录"),onClick:t=>{const n=new b.ik;n.x=t.clientX,n.y=t.clientY,n.type=u.Iw.directory,n.items=Z,n.item_pre_value=T,n.textClick=async t=>{if(-1===t)return i(`${S.o.setting_private_env_setting}`),j({data:void 0,overlay:!1,type:"",show:!1}),void(0,m.N9)(e("请配置 文件夹路径"));(async e=>{V(e),await l.$M.post("base_switch",{root_index:e}),await le(),i("/file/"),H([]),U([])})(t),j({data:void 0,overlay:!1,type:"",show:!1})},j({show:!0,type:d.PromptEnum.FileMenu,overlay:!1,data:n})}})]})}var L=i(2543),U=i(21499),Y=i(64694),B=i(17903);const O=n.lazy(()=>Promise.all([i.e(7856),i.e(6349),i.e(3659)]).then(i.bind(i,63659))),Z=n.lazy(()=>Promise.all([i.e(7856),i.e(1636)]).then(i.bind(i,81636))),W=n.lazy(()=>Promise.all([i.e(4946),i.e(2626),i.e(892),i.e(9334),i.e(4004)]).then(i.bind(i,95733)));let T,V="";function q(){const[e,t]=(0,o.fp)(a.AG.editorSetting),[,i]=(0,o.fp)(a.AG.md_editor),[,m]=(0,o.fp)(a.AG.log_viewer),[,M]=(0,o.fp)(a.AG.image_editor),[,z]=(0,o.fp)(a.AG.markdown),[,D]=(0,o.fp)(a.AG.excalidraw_editor),[,P]=(0,o.fp)(a.AG.mind_editor),[,I]=(0,o.fp)(a.AG.timeline_editor),[,X]=(0,o.fp)(a.AG.excel_editor),[K,q]=(0,o.fp)(a.AG.file_preview),{t:J}=(0,w.Bd)();let Q=(0,r.zy)();const ee=(0,r.Zp)(),[te,ie]=(0,o.fp)(a.AG.nowFileList),[ne]=(0,o.fp)(a.AG.file_list_refresh),[se]=(0,o.fp)(a.AG.mount_enabled),[oe,ae]=(0,o.fp)(a.AG.current_mount),[le,re]=(0,o.fp)(a.AG.showPrompt),[ce,de]=(0,o.fp)(a.AG.selectedFileList),[_e,pe]=(0,o.fp)(a.AG.clickFileList),[fe,he]=(0,o.fp)(a.AG.fileShellShow),[ue,me]=(0,n.useState)(""),[we,ve]=(0,o.fp)(a.AG.workflow_show),[ge,xe]=(0,o.fp)(a.AG.workflow_realtime_show),[ye,je]=(0,o.fp)(a.AG.work_flow_show),{initUserInfo:ke}=(0,n.useContext)(v.F),[Ge,Ae]=(0,o.fp)(a.AG.user_base_info),{check_user_auth:be}=(0,g.MH)(),{click_file:Ce}=(0,f.kZ)(),[Se]=(0,r.ok)(),Me=(0,f._A)(),$e=n.useRef(null),[ze,De]=(0,o.fp)(a.AG.to_running_files),[Ne,Pe]=(0,o.fp)(a.AG.file_page),[Ee]=(0,o.fp)(a.AG.blank_search_mode),[,Fe]=(0,o.fp)(a.AG.prompt_card),[Ie,Xe]=(0,o.fp)(a.AG.blank_search_mode_for_temp),Re=(0,f.oT)(),Ke="1"===Se.get("chat_open"),He=be(A.oV.ai_agent_page);(0,n.useEffect)(()=>{Ge?.user_data&&Ke&&!He&&Re("chat_open",null)},[Ke,He,Ge]);const[Le,Ue]=(0,o.fp)(a.AG.studio_chat_width),Ye=n.useRef(null),[Be,Oe]=(0,n.useState)(!1),[Ze,We]=(0,n.useState)(void 0),Te=(0,f.dN)(),[Ve,qe]=(0,o.fp)(a.AG.ai_chat_session_by_cwd),Je=function(){const[e,t]=(0,o.fp)(a.AG.user_base_info),{t:i}=(0,w.Bd)(),{check_user_auth:s}=(0,g.MH)(),[c,p]=(0,o.fp)(a.AG.router_jump),h=(0,r.Zp)(),{initUserInfo:m}=(0,n.useContext)(v.F),[x,y]=(0,o.fp)(a.AG.nowFileList),[j,C]=(0,o.fp)(a.AG.showPrompt),[M,$]=(0,o.fp)(a.AG.fileShellShow),[z,D]=(0,o.fp)(a.AG.blank_search_mode);return t=>{t.preventDefault(),t.stopPropagation();const n=new b.ik;n.x=t.clientX,n.y=t.clientY,n.type=u.Iw.directory;const o=[{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.time_minx_max),children:i("时间逆序")}),v:A.t8.time_minx_max},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.time_max_min),children:i("时间顺序")}),v:A.t8.time_max_min}],a=[{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.size_min_max),children:i("大小顺序")}),v:A.t8.size_min_max},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.size_max_min),children:i("大小逆序")}),v:A.t8.size_max_min}],r=[{r:(0,N.jsx)("span",{style:(0,R.ok)(!e.user_data.file_list_pagination_mode||e.user_data.file_list_pagination_mode===A.yM.all),children:i("全部加载文件")}),v:A.yM.all},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.file_list_pagination_mode===A.yM.pagination),children:i("scrll_l")}),v:A.yM.pagination}],c=[{r:(0,N.jsx)("span",{style:(0,R.ok)(!e.user_data.file_time_show_type||e.user_data.file_time_show_type===A.KD.current),children:i("最近时间")}),v:A.KD.current},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.file_time_show_type===A.KD.time),children:i("准确时间")}),v:A.KD.time}],w=[{r:i("文件列表展示"),items:[{r:i("文件排序"),v:"",items:[{r:(0,N.jsx)("span",{style:(0,R.ok)(!e.user_data.dir_show_type),children:i("系统默认")}),v:A.t8.defualt},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.name),children:i("名字")}),v:A.t8.name},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.time_minx_max||e.user_data.dir_show_type===A.t8.time_max_min),children:i("修改时间")}),v:!1,items:o},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.size_min_max||e.user_data.dir_show_type===A.t8.size_max_min),children:i("文件大小")}),v:!1,items:a}]},{r:i("文件加载方式"),v:"",items:r},{r:i("时间展示"),v:"",items:c},{r:i("缩放调整"),v:"zoom_adjust"},{r:(0,N.jsx)("span",{style:(0,R.ok)(z),children:i("srchbln")}),v:"blank_search_mode"}]}];x?.folders?.find(e=>".git"===e.name)&&w.push({r:i("查看Git提交"),v:"git_page"}),s(A.oV.code_resource)&&w.push({r:i("add_rot"),v:"code_resource"}),s(A.oV.http_proxy)&&w.push({r:i("dl_here"),v:"http_resource"}),e?.user_data?.quick_cmd&&(0,f.LL)([...e.user_data.quick_cmd],w),n.items=w,n.textClick=async e=>{if(console.log(e),!1===e)return;const t={};if("gcfg_dir_config"===e){const e=(0,_.GG)("file",(0,_.vX)());return C({data:void 0,overlay:!1,type:"",show:!1}),void h(`${S.o.gcfg_page}/${encodeURIComponent(e)}`)}if("git_page"===e){const e=(0,_.GG)("file",(0,_.vX)());return C({data:void 0,overlay:!1,type:"",show:!1}),void h(`${S.o.git_page}/${encodeURIComponent(e)}`)}if("code_resource"===e){const e=await k.ws.sendData(G.HK.file_info,{path:(0,_.GG)("file",(0,_.vX)())});return p({page_self_router_api_data:[`/api/${Date.now()}`,e.context.now_absolute_path]}),C({data:void 0,overlay:!1,type:"",show:!1}),void h("/setting/customer_router/")}if("http_resource"===e){const e=await k.ws.sendData(G.HK.file_info,{path:(0,_.GG)("file",(0,_.vX)())});return p({http_download_map_path:e.context.now_absolute_path}),C({data:void 0,overlay:!1,type:"",show:!1}),void h("/proxy/http/")}if("zoom_adjust"===e)return C({data:void 0,overlay:!1,type:"",show:!1}),void setTimeout(()=>{C({show:!0,type:d.PromptEnum.ZoomAdjust,overlay:!1,data:{}})},0);if("object"==typeof e&&"quick_cmd"===e.tag){let t=e.cmd;t&&(t.endsWith("\r")||(t+="\r",$({show:!0,path:(0,_.GG)("file",(0,_.vX)()),cmd:t})))}else{if("blank_search_mode"===e)return D(!z),void C({data:void 0,overlay:!1,type:"",show:!1});if(e===A.yM.all||e===A.yM.pagination)t.is_pagination_mode=!0;else if(e===A.KD.current||e===A.KD.time)t.is_file_show_type=!0;else{if(e!==A.t8.defualt&&e!==A.t8.name&&e!==A.t8.size_max_min&&e!==A.t8.size_min_max&&e!==A.t8.time_max_min&&e!==A.t8.time_minx_max)return;t.is_dir_list_type=!0}}await l.wm.post(F.s.user_save_private_attr,{type:e,...t}),await m(),C({data:void 0,overlay:!1,type:"",show:!1}),h((0,_.vX)())},C({show:!0,type:d.PromptEnum.FileMenu,overlay:!1,data:n})}}(),Qe=async()=>{const e=new j.Nd;e.dir_path=`${(0,_.GG)("file",(0,_.vX)())}`,k.ws.addMsg(G.HK.workflow_realtime,e=>{const t=e.context;if(e.context){for(const e of t.sucess_file_list)(0,f.Ys)(e);for(const e of t.failed_file_list)(0,f.V$)(e);De(new Set(t.running_file_list))}}),await k.ws.sendData(G.HK.workflow_realtime,e)},et=async e=>{let t=!1;for(const i of e.files??[])i.origin_size=i.size,i.size=(0,x.v7)(i.size),Ge.user_data.file_time_show_type===A.KD.time?i.show_mtime=i.mtime?(0,U.Yq)(i.mtime):"":i.show_mtime=i.mtime?(0,y.s)(i.mtime):"",t||!i.name.endsWith(".workflow.yml")&&!i.name.endsWith(".act")||(t=!0,Promise.resolve().then(()=>{Qe()})),i.name===j.SB&&(t=!0);for(const i of e.folders??[])Ge.user_data.file_time_show_type===A.KD.time?i.show_mtime=i.mtime?(0,U.Yq)(i.mtime):"":i.show_mtime=i.mtime?(0,y.s)(i.mtime):"",i.name===j.SB&&(t=!0);je(t)},tt=n.useRef(null),it=async e=>{if(!0===se){if(tt.current!==e){tt.current=e;try{const t=await l.$M.post("file/mount_info",{param_path:e});ae(t?.data??null)}catch(e){ae(null)}}}else ae(null)},nt=async()=>{const e=(0,_.GG)("file",(0,_.vX)());if(Ee||Ie)return;let t;if(it(e),Ge.user_data.file_list_pagination_mode===A.yM.pagination){if(V!==e){if(V=e,1!==Ne.page_num)return void Pe({page_size:Ne.page_size,page_num:1})}else if(Ne.page_num<0)return;if(t=await l.$M.post("file_get_page",{param_path:e,page_num:Ne.page_num,page_size:Ne.page_size}),t.code!==p.m.Success)return;const i=t.data;return et(i),i.files?.length?(ie(e=>{const t=(0,L.cloneDeep)(1===Ne.page_num?i.files:[...e?.files??[],...i.files]),n={...e,files:t};return(0,f.yC)(n,Ge.user_data.dir_show_type),n}),void(T=t.data)):void Pe({page_size:Ne.page_size,page_num:-1})}if(t=await l.$M.get(e),t.code!==p.m.Success)return;const i=t.data;(0,f.yC)(i,Ge.user_data.dir_show_type),et(t.data),ie(t.data),T=t.data};(0,n.useEffect)(()=>async()=>{De(new Set)},[]);const st=()=>{je(!1),(()=>{const e=Se.get("preview_file_name"),t=Se.get("preview_mode");if(!e||!t)return!1;const n=(0,_.GG)("file",(0,_.vX)());if($e.current===n+e)return!0;$e.current=n+e;const s=()=>Me(null);return"md"===t?(i({url:l.$M.getDownloadUrl(`${encodeURIComponent(n)}${e}`),path:`${n}${e}`,name:e,close:s}),!0):"log"===t?(m({show:!0,fileName:e,encoding:Se.get("preview_log_enc")??"utf8",wrap:Se.get("preview_log_wrap")??"wrap",close:s}),!0):"image_edit"===t?(M({path:(0,Y.IO)((0,_.vX)(),e),name:e,close:s}),!0):(Ce({name:e,opt_shell:!0,..."text"===t?{model:"text"}:{},close:s}),!0)})()||(t({open:!1}),q({open:!1}),i({}),m({show:!1}),M({}),z({}),D({}),P({}),I({}),X({}),nt())};(0,n.useEffect)(()=>{st()},[Q,Ne]),(0,n.useEffect)(()=>{ne>0&&nt()},[ne]);const ot=n.useRef(!1);(0,n.useEffect)(()=>{if(null!==se)return ot.current?void(!0===se?it((0,_.GG)("file",(0,_.vX)())):ae(null)):(ot.current=!0,void(!0===se&&null===oe&&it((0,_.GG)("file",(0,_.vX)()))))},[se]);const at=e=>{e.target===e.currentTarget&&(de([]),pe([]))},lt=n.useCallback((0,L.throttle)(e=>{const t=Ye.current;if(!t||!t.parentElement)return;const i=parseFloat(getComputedStyle(t).fontSize),n=t.parentElement.getBoundingClientRect(),s=n.right-e.clientX,o=Math.min(Math.max(s,320),.7*n.width);Ue(parseFloat((o/i).toFixed(2)))},32),[]),rt=()=>{Oe(!1),document.removeEventListener("pointermove",lt)},ct=(0,N.jsxs)("div",{className:"file-list-main",children:[(0,N.jsx)(s.e,{baseRoute:"file",clickFun:function(){if(de([]),pe([]),Ge.user_data.file_list_pagination_mode===A.yM.pagination){const e=document.getElementById("listing");e&&(e.scrollTop=0),Pe({page_size:Ne.page_size,page_num:1})}},input_path_enter:e=>{var t;de([]),pe([]),ie({files:[],folders:[]}),!function(e){return"string"==typeof e&&0!==e.length&&(/^[a-zA-Z]:[\\\/]/.test(e)||/^\\\\[^\\/]+[\\/]/.test(e)||/^\//.test(e))}(e)?ee(function(e,t){let i=function(e){let t="\\";for(const i of e)if("/"===i||"\\"===i){t=i;break}return t}(e);if("."===t)return e;if(".."===t){if(e.length>1){let t=e[e.length-1]===i?1:0;for(let n=e.length-1-t;n>=0;n--)if(e[n]===i)return e.substring(0,n+1)}return e}return e.endsWith(i)&&t.startsWith(i)?e.slice(0,-1)+t:e.endsWith(i)||t.startsWith(i)?e+t:e+i+t}((0,_.vX)(),e)):(e=e.replace(0===(t=Ge.user_data).folder_item_now||void 0===t.folder_item_now?t.cwd:t.folder_items[t.folder_item_now-1].path,""),ee(e))}}),oe&&(0,N.jsxs)("div",{className:"mount-tip-bar",style:{borderLeftColor:oe.color},children:[(0,N.jsx)("span",{className:"material-icons",style:{color:oe.color},children:"cloud"}),(0,N.jsx)("span",{children:[oe.credential_note,oe.account_note||(B.C1.find(e=>e.value===oe.driver)?.title??oe.driver),oe.name].filter(Boolean).join(" - ")}),oe.readonly&&(0,N.jsx)("span",{className:"mount-readonly-tag",children:J("只读")})]}),Ge.user_data.file_list_pagination_mode===A.yM.pagination?(0,N.jsx)(C.$J,{handleContextMenu:Je,clickBlank:at,list:te.files}):(0,N.jsx)(C.t$,{handleContextMenu:Je,file_list:te.files,folder_list:te.folders,clickBlank:at})]});return(0,N.jsxs)(n.Fragment,{children:[(0,N.jsx)(c.aZ,{children:(0,N.jsx)(h.$Z,{handleEnterPress:async()=>{if(Ee||Ie){if(de([]),pe([]),!ue||!ue.trim())return void ie({files:[],folders:[]});const e=(0,_.GG)("file",(0,_.vX)()),t=await l.$M.post("file_get_page",{param_path:e,page_num:1,page_size:1e4,search:ue.trim()});if(t.code!==p.m.Success)return;const i=t.data;return(0,f.yC)(i,Ge.user_data.dir_show_type),et(i),ie(i),void(T=i)}if(!T)return;de([]),pe([]);const e=[],t=[];for(const t of T.files??[])t.name.includes(ue)&&e.push(t);for(const e of T.folders??[])e.name.includes(ue)&&t.push(e);ie({files:e,folders:t})},placeholder:J("搜索当前目录"),icon:"search",value:"",mobile_hidden:!0,handleIconClick:()=>{const e=(0,_.GG)("file",(0,_.vX)());Fe({open:!0,title:J("深搜"),context_div:(0,N.jsx)(E,{base_path:e})})},handleInputChange:e=>{me(e)},max_width:"25em"})}),(0,N.jsxs)(c.aZ,{position:"right",children:[be(A.oV.ai_agent_page)&&(0,N.jsx)($.rA,{icon:"smart_toy",title:J("AI 聊天"),selected:Ke,onClick:()=>Re("chat_open",!Ke?"1":null)}),(0,N.jsx)("div",{className:"mobile-context-btn",children:(0,N.jsx)($.rA,{icon:"more_horiz",title:J("右键"),onClick:()=>{const e=ce[ce.length-1];if(void 0!==e){const t=[...te.folders??[],...te.files??[]][e];if(t){const i=document.querySelectorAll(".item")[e],n=i?i.getBoundingClientRect():{left:window.innerWidth/2,bottom:100},s={preventDefault:()=>{},stopPropagation:()=>{},clientX:n.left+10,clientY:n.bottom??100},o=new b.ik;o.path=(0,Y.IO)((0,_.vX)(),t.name),o.filename=t.name,o.x=s.clientX,o.y=s.clientY,o.type=t.type===u.Iw.folder?u.Iw.folder:(0,b.uL)(t.name),o.size=t.origin_size,re({show:!0,type:d.PromptEnum.FileMenu,overlay:!1,data:o})}}else{const e={preventDefault:()=>{},stopPropagation:()=>{},clientX:window.innerWidth/2,clientY:window.innerHeight/2};Je(e)}}})}),(0,N.jsx)(H,{})]}),(0,N.jsxs)("div",{className:"file-list-split"+(Ke?" file-list-split--chat":""),children:[ct,Ke&&(0,N.jsxs)(n.Fragment,{children:[(0,N.jsx)("div",{className:"studio__divider studio__divider--chat",ref:Ye,onPointerDown:e=>{e.preventDefault(),Oe(!0),document.addEventListener("pointermove",lt),document.addEventListener("pointerup",rt,{once:!0})}}),(0,N.jsx)("div",{className:"studio-chat-panel",style:{width:`${Le}em`},children:(0,N.jsx)(n.Suspense,{fallback:null,children:(0,N.jsx)(W,{inline_header:!0,sync_url:!1,file_cwd_path:Te(),session_id:Ze??(dt=Te(),a.AG.get_ai_chat_session(Ve,dt)),on_session_change:e=>{We(e),((e,t)=>{qe({...Ve,[e]:t})})(Te(),e)}})})})]})]}),Be&&(0,N.jsx)("div",{className:"shell__overlay",onPointerUp:rt}),we&&(0,N.jsx)(O,{}),ge.open&&(0,N.jsx)(Z,{})]});var dt}}}]);
1
+ "use strict";(self.webpackChunkfilecat=self.webpackChunkfilecat||[]).push([[9299],{47374(e,t,i){i.d(t,{e:()=>p});var n=i(96540),s=i(61973),o=i(64694),a=i(34289),l=i(61443),r=i(75725),c=i(22022),d=i(85997),_=i(74848);function p(e){let t=(0,s.zy)();const[i,p]=(0,n.useState)([]),[f,h]=(0,n.useState)("/"),[u,m]=(0,n.useState)(void 0),{t:w,i18n:v}=(0,c.Bd)();n.useEffect(()=>{let t="",i=(0,a.vX)().split("/");i=i.filter(e=>e);const n=i.indexOf(e.baseRoute),s=[];if(-1!=n){t=(0,o.IO)(i.slice(0,n),e.baseRoute);const a=i.slice(n+1);for(let e=0;e<a.length;e++){const i=a[e];s.push({value:i,href:0===e?`${t}${i}/`:(0,o.IO)(s[e-1].href,i)})}h(t),p(s)}},[t]);const g=t=>{t.stopPropagation(),e.clickFun(t)};return(0,_.jsx)("div",{className:"breadcrumbs",onClick:e=>{m(void 0!==u?void 0:"")},children:(0,_.jsx)(n.Fragment,{children:void 0===u?(0,_.jsxs)(n.Fragment,{children:[(0,_.jsx)("span",{className:"chevron",children:(0,_.jsx)(s.N_,{to:f,onClick:g,children:(0,_.jsx)(d.In,{icon:"home"})})}),i.map((e,t)=>(0,_.jsxs)("span",{className:"chevron",children:[(0,_.jsx)(d.In,{icon:"keyboard_arrow_right"}),(0,_.jsx)(s.N_,{to:e.href,onClick:g,children:decodeURIComponent(e.value)})]},t))]}):(0,_.jsx)(r.QM,{click:()=>{m(void 0)},children:(0,_.jsx)(l.Sm,{width:"100%",placeholder:w("输入跳转的目录"),handlerEnter:t=>{e.input_path_enter&&e.input_path_enter(t),m(void 0)}})})})})}},77481(e,t,i){i.d(t,{S:()=>l,X:()=>a});var n=i(96540),s=i(61443),o=i(74848);function a(e){const[t,i]=n.useState([]),a=(0,n.useRef)(-1),[l,r]=(0,n.useState)(-1),[c,d]=(0,n.useState)(-1);(0,n.useEffect)(()=>{e.children?i(Array.isArray(e.children)?e.children:[e.children]):i(e.rows)},[e.rows,e.children]);const _=()=>{a.current=-1,r(-1),d(-1)};return(0,o.jsxs)("table",{children:[(0,o.jsx)("thead",{children:(0,o.jsx)("tr",{children:e.headers?.map((t,i)=>{const n=!!e.filter&&(e.filter.column??0)===i;let a=t;if(n){const i=e.filter,n=i.options.find(e=>e.value===i.value);null!=i.value&&n&&(a=`${t} (${n.label})`)}return(0,o.jsx)("th",{className:n?"table-filter-col":"",children:n?(0,o.jsx)(s.l6,{value:e.filter.value,options:e.filter.options,onChange:e.filter.onChange,bare:!0,trigger_label:a}):t},i)})})}),(0,o.jsx)("tbody",{children:t.map((t,i)=>{const n=!!e.onRowDrag;return(0,o.jsx)("tr",{className:n?(l===i?"row-dragging":"")+(c===i?" row-drop-target":""):"",draggable:n,onContextMenu:()=>{e.handleContextMenu&&e.handleContextMenu(t)},onDragStart:e=>{n&&(a.current=i,r(i),e.dataTransfer.effectAllowed="move")},onDragOver:e=>{!n||a.current<0||(e.preventDefault(),e.dataTransfer.dropEffect="move",d(i))},onDrop:t=>{n&&(t.preventDefault(),(()=>{const t=a.current,i=c;_(),t<0||i<0||t===i||e.onRowDrag?.(t,i)})())},onDragEnd:_,children:t.map((i,n)=>{const s=n===t.length-1?"small":"";return(0,o.jsx)("td",{className:s,style:{width:e.width??"auto"},children:i},n)})},i)})})]})}function l(e){return(0,o.jsx)("div",{style:{display:e.isFlex?"flex":"block"},children:e.columns.map((e,t)=>(0,o.jsx)("div",{children:e},t))})}},19299(e,t,i){i.r(t),i.d(t,{default:()=>q});var n=i(96540),s=i(47374),o=i(34843),a=i(82893),l=i(14284),r=i(61973),c=i(4412),d=i(89824),_=i(34289),p=i(53459),f=i(99214),h=i(61443),u=i(47022),m=i(62042),w=i(22022),v=i(7523),g=i(78247),x=i(88815),y=i(6960),j=i(47071),k=i(14944),G=i(92275),A=i(23430);var b=i(34251),C=i(60096),S=i(87361),M=i(76559),$=i(85997),z=i(77481),D=i(70447),N=i(74848);const P=500;function E(e){const{t}=(0,w.Bd)(),i=(0,r.Zp)(),[,s]=(0,o.fp)(a.AG.prompt_card),[l,c]=(0,n.useState)(""),[d,_]=(0,n.useState)(!1),[p,f]=(0,n.useState)([]),[u,m]=(0,n.useState)(0),[v,g]=(0,n.useState)(!1),x=(0,n.useMemo)(()=>new M.I(window.location.host,"file_deep_search"),[]),y=(0,n.useRef)(!1),j=decodeURIComponent(e.base_path);(0,n.useEffect)(()=>{let e=[],t=null;const i=()=>{if(t=null,y.current||!e.length)return;const i=e;e=[],m(e=>e+i.length),f(e=>e.length>=P?e:[...e,...i].slice(0,P))},n=()=>{y.current||_(!1)};return x.addMsg(G.HK.file_deep_search_data,n=>{y.current||(e.push(...n.context??[]),null===t&&(t=setTimeout(i,100)))}),x.addMsg(G.HK.file_deep_search_end,()=>{y.current||(i(),_(!1))}),x.on_message("close",n),()=>{y.current=!0,clearTimeout(t),x.sendData(G.HK.file_deep_search_cancel,{}).catch(()=>{}),x.off_message("close",n),x.close()}},[]);const k=()=>{const t=l.trim();if(!t||d)return;f([]),m(0),g(!0),_(!0);const i={param_path:e.base_path,keyword:t};x.sendData(G.HK.file_deep_search,i).catch(()=>{})},A=e=>{let t=e.is_dir?e.path:e.path.slice(0,e.path.lastIndexOf("/")+1);t.endsWith("/")||(t+="/"),s({open:!1}),i(S.o.file+t.split("/").map(encodeURIComponent).join("/"))};return(0,N.jsxs)("div",{className:"file-deep-search",children:[(0,N.jsxs)("div",{className:"file-deep-search__bar",children:[(0,N.jsx)(h.$Z,{icon:"search",value:l,placeholder:t("搜文件名"),handleInputChange:e=>c(e),handleEnterPress:k}),(0,N.jsx)("button",{className:"button button--flat",onClick:d?()=>{x.sendData(G.HK.file_deep_search_cancel,{}).catch(()=>{}),_(!1)}:k,children:t(d?"取消":"搜索")})]}),(0,N.jsxs)("div",{className:"file-deep-search__hint",children:[(0,N.jsxs)("span",{children:[t("范围"),":",j]}),u>0&&(0,N.jsx)("span",{className:"file-deep-search__count",children:u>P?`${t("已显示")} 500 / ${u}`:`${u}`})]}),(0,N.jsxs)("div",{className:"file-deep-search__body",children:[p.length>0&&(0,N.jsx)(z.X,{headers:[t("名称"),t("路径"),""],rows:p.map(e=>{const i=e.path.slice(0,e.path.lastIndexOf("/")+1);return[e.is_dir?(0,N.jsx)("span",{className:"file-deep-search__dir",children:e.name}):e.name,(0,N.jsx)(D.xP,{context:i}),(0,N.jsx)($.rA,{icon:"folder_open",title:t("打开所在目录"),onClick:()=>A(e)})]})}),d&&(0,N.jsxs)("div",{className:"file-deep-search__empty",children:[(0,N.jsx)("span",{className:"chat-session-running",title:t("搜索中")}),t("搜索中")]}),!d&&u>P&&(0,N.jsx)("div",{className:"file-deep-search__more",children:t("结果过多")}),!d&&0===p.length&&(0,N.jsx)("div",{className:"file-deep-search__empty",children:t(v?"无匹配":"输入后搜")})]})]})}var F=i(23496),I=i(12730),X=i(75725),R=i(40505);let K={};function H(){const{t:e}=(0,w.Bd)();let t=(0,r.zy)();const i=(0,r.Zp)(),{check_user_auth:s}=(0,g.MH)(),[c,p]=(0,o.fp)(a.AG.nowFileList),[h,x]=(0,o.fp)(a.AG.uploadFiles),[y,j]=(0,o.fp)(a.AG.showPrompt),[C,M]=(0,o.fp)(a.AG.selectedFileList),[z,P]=(0,o.fp)(a.AG.copyedFileList),[E,F]=(0,o.fp)(a.AG.cutedFileList),[R,H]=(0,o.fp)(a.AG.selectedFileList),[L,U]=(0,o.fp)(a.AG.clickFileList),[Y,B]=(0,o.fp)(a.AG.fileShellShow),[O]=(0,o.fp)(a.AG.current_mount),[Z,W]=(0,o.fp)(a.AG.file_root_list),[T,V]=(0,o.fp)(a.AG.file_root_index),[q,J]=(0,n.useState)(void 0),[Q,ee]=(0,n.useState)(""),[te,ie]=(0,o.fp)(a.AG.workflow_show),[ne,se]=(0,o.fp)(a.AG.workflow_realtime_show),[oe,ae]=(0,o.fp)(a.AG.work_flow_show),{initUserInfo:le}=(0,n.useContext)(v.F),[re,ce]=(0,o.fp)(a.AG.user_base_info),{click_file:de}=(0,f.kZ)(),[_e,pe]=(0,o.fp)(a.AG.prompt_card),fe=(0,n.useMemo)(()=>c.files.reduce((e,t)=>e+(t.type!==u.Iw.folder?1:0),0),[c]),he=(0,n.useMemo)(()=>c.files.reduce((e,t)=>e+(t.type===u.Iw.folder?1:0),0)+(c.folders?.length??0),[c]);function ue(e){(0,m.SK)(e)}(0,n.useEffect)(()=>{K={}},[t]),(0,n.useEffect)(()=>()=>{B({show:!1,path:""})},[]);const me=(0,f.Vs)(),we=t=>{pe({open:!0,title:e("信息"),context_div:(0,N.jsxs)("div",{style:{maxWidth:"25rem"},children:[(0,N.jsx)(X.Yh,{left:e("挂载位置磁盘"),right:t?.total_size}),(0,N.jsx)(X.Yh,{left:`${e("磁盘剩余")}`,right:t?.left_size}),(0,N.jsx)(X.Yh,{left:`${e("文件系统")}`,right:t?.fs_type}),(0,N.jsx)(X.Yh,{left:`${e("文件夹数")}`,right:he}),(0,N.jsx)(X.Yh,{left:`${e("文件数")}`,right:fe}),(0,N.jsx)(X.Yh,{left:`${e("当前位置")}`,right:(0,N.jsx)(D.xP,{context:t?.now_absolute_path})})]}),cancel:()=>{k.ws.removeMsg(G.HK.file_info)}})};return(0,N.jsxs)(n.Fragment,{children:[C.length>0&&(0,N.jsx)($.rA,{icon:"delete",title:e("删除"),onClick:()=>{j({show:!0,type:d.PromptEnum.FilesDelete,overlay:!0,data:{}})}}),C.length>0&&(0,N.jsx)($.rA,{icon:"content_copy",title:e("复制"),onClick:function(){const e=(0,f.ib)(c,C);P(e.map(e=>(0,f.Ok)(e.name))),F([]),ue("已复制")}}),C.length>0&&(0,N.jsx)($.rA,{icon:"content_cut",title:e("剪切"),onClick:function(){const e=(0,f.ib)(c,C);F(e.map(e=>(0,f.Ok)(e.name))),P([]),ue("已剪切")}}),(z.length>0||E.length>0)&&(0,N.jsx)($.rA,{onClick:function(){j({show:!0,type:d.PromptEnum.Confirm,overlay:!0,data:{}})},icon:"content_paste",title:e("粘贴到此处"),tip:z.length+E.length}),C.length>0&&(0,N.jsx)($.rA,{icon:"download",title:e("下载"),onClick:function(){const e=(0,f.ib)(c,C);for(let t=0;t<e.length;t++){const i=e[t];e[t]=encodeURIComponent((0,f.Ok)(i.name))}const t=l.$M.getDownloadUrl(e);window.open(t)}}),C.length>0&&(0,N.jsx)($.rA,{icon:"compress",title:e("压缩"),onClick:function(){const e=(0,f.ib)(c,C);for(let t=0;t<e.length;t++){const i=e[t];e[t]=(0,f.Ok)(i.name)}e&&0!==e.length?j({show:!0,type:d.PromptEnum.Compress,overlay:!0,data:{files:e}}):(0,m.zN)("没有选中")}}),1===C.length&&(0,N.jsx)($.rA,{icon:"edit_attributes",title:e("重命名"),onClick:function(){j({show:!0,type:d.PromptEnum.FileRename,overlay:!0,data:{}})}}),oe&&(0,N.jsx)($.rA,{icon:"api",title:"workflow",onClick:()=>{ie(!te)}}),!O&&(0,N.jsx)($.rA,{icon:"terminal",title:"shell",onClick:function(){Y.show?B({show:!1,path:""}):B({show:!0,path:(0,_.GG)("file",(0,_.vX)())})}}),s(A.oV.share_file)&&(0,N.jsx)($.rA,{icon:"share",title:e("文件分享"),onClick:()=>{i(`${S.o.share_list_setting_page}`)}}),(0,N.jsx)($.rA,{icon:"grid_view",title:e("切换样式"),onClick:me}),(0,N.jsx)($.rA,{icon:"create_new_folder",title:e("创建文件夹"),onClick:function(){j({show:!0,type:d.PromptEnum.DirNew,overlay:!0,data:{dir:(0,_.GG)("file",(0,_.vX)())}})}}),(0,N.jsx)($.rA,{icon:"note_add",title:e("创建文本文件"),onClick:function(){j({show:!0,type:d.PromptEnum.FileNew,overlay:!0,data:{dir:(0,_.GG)("file",(0,_.vX)())}})}}),(0,N.jsx)($.rA,{icon:"upload_file",title:e("上传"),onClick:()=>{j({show:!0,type:d.PromptEnum.UploadFile,overlay:!0,data:{call:e=>{let t=e.currentTarget?.files;if(!t)return;let i=!!t[0].webkitRelativePath;const n=[],s=new Set;for(let e=0;e<t.length;e++){const o=t[e],a=i?o.webkitRelativePath:`${o.webkitRelativePath}${o.name}`;o.fullPath=a,i&&s.add((0,I.S)(a)),n.push(o)}const o=[];if(i)for(const e of s)o.push({isDir:!0,fullPath:e,name:e});o.push(...n),x(o),j({show:!0,type:d.PromptEnum.FilesUpload,overlay:!1,data:{}})}}})}}),(0,N.jsx)($.rA,{icon:"info",title:e("信息"),onClick:async()=>{let e;if(!K.now_absolute_path){k.ws.addMsg(G.HK.file_info,t=>{const i=t.context;e&&(K={...K,...i},k.ws.removeMsg(G.HK.file_info),we(K))});const t=await k.ws.sendData(G.HK.file_info,{type:u.Iw.folder,path:(0,_.GG)("file",(0,_.vX)())});e=t.context,K=e,we(K)}we(K)}}),(0,N.jsx)($.rA,{icon:"more_vert",title:e("切换目录"),onClick:t=>{const n=new b.ik;n.x=t.clientX,n.y=t.clientY,n.type=u.Iw.directory,n.items=Z,n.item_pre_value=T,n.textClick=async t=>{if(-1===t)return i(`${S.o.setting_private_env_setting}`),j({data:void 0,overlay:!1,type:"",show:!1}),void(0,m.N9)(e("请配置 文件夹路径"));(async e=>{V(e),await l.$M.post("base_switch",{root_index:e}),await le(),i("/file/"),H([]),U([])})(t),j({data:void 0,overlay:!1,type:"",show:!1})},j({show:!0,type:d.PromptEnum.FileMenu,overlay:!1,data:n})}})]})}var L=i(2543),U=i(21499),Y=i(64694),B=i(17903);const O=n.lazy(()=>Promise.all([i.e(7856),i.e(6349),i.e(3659)]).then(i.bind(i,63659))),Z=n.lazy(()=>Promise.all([i.e(7856),i.e(1636)]).then(i.bind(i,81636))),W=n.lazy(()=>Promise.all([i.e(4946),i.e(2626),i.e(892),i.e(9334),i.e(8365)]).then(i.bind(i,16514)));let T,V="";function q(){const[e,t]=(0,o.fp)(a.AG.editorSetting),[,i]=(0,o.fp)(a.AG.md_editor),[,m]=(0,o.fp)(a.AG.log_viewer),[,M]=(0,o.fp)(a.AG.image_editor),[,z]=(0,o.fp)(a.AG.markdown),[,D]=(0,o.fp)(a.AG.excalidraw_editor),[,P]=(0,o.fp)(a.AG.mind_editor),[,I]=(0,o.fp)(a.AG.timeline_editor),[,X]=(0,o.fp)(a.AG.excel_editor),[K,q]=(0,o.fp)(a.AG.file_preview),{t:J}=(0,w.Bd)();let Q=(0,r.zy)();const ee=(0,r.Zp)(),[te,ie]=(0,o.fp)(a.AG.nowFileList),[ne]=(0,o.fp)(a.AG.file_list_refresh),[se]=(0,o.fp)(a.AG.mount_enabled),[oe,ae]=(0,o.fp)(a.AG.current_mount),[le,re]=(0,o.fp)(a.AG.showPrompt),[ce,de]=(0,o.fp)(a.AG.selectedFileList),[_e,pe]=(0,o.fp)(a.AG.clickFileList),[fe,he]=(0,o.fp)(a.AG.fileShellShow),[ue,me]=(0,n.useState)(""),[we,ve]=(0,o.fp)(a.AG.workflow_show),[ge,xe]=(0,o.fp)(a.AG.workflow_realtime_show),[ye,je]=(0,o.fp)(a.AG.work_flow_show),{initUserInfo:ke}=(0,n.useContext)(v.F),[Ge,Ae]=(0,o.fp)(a.AG.user_base_info),{check_user_auth:be}=(0,g.MH)(),{click_file:Ce}=(0,f.kZ)(),[Se]=(0,r.ok)(),Me=(0,f._A)(),$e=n.useRef(null),[ze,De]=(0,o.fp)(a.AG.to_running_files),[Ne,Pe]=(0,o.fp)(a.AG.file_page),[Ee]=(0,o.fp)(a.AG.blank_search_mode),[,Fe]=(0,o.fp)(a.AG.prompt_card),[Ie,Xe]=(0,o.fp)(a.AG.blank_search_mode_for_temp),Re=(0,f.oT)(),Ke="1"===Se.get("chat_open"),He=be(A.oV.ai_agent_page);(0,n.useEffect)(()=>{Ge?.user_data&&Ke&&!He&&Re("chat_open",null)},[Ke,He,Ge]);const[Le,Ue]=(0,o.fp)(a.AG.studio_chat_width),Ye=n.useRef(null),[Be,Oe]=(0,n.useState)(!1),[Ze,We]=(0,n.useState)(void 0),Te=(0,f.dN)(),[Ve,qe]=(0,o.fp)(a.AG.ai_chat_session_by_cwd),Je=function(){const[e,t]=(0,o.fp)(a.AG.user_base_info),{t:i}=(0,w.Bd)(),{check_user_auth:s}=(0,g.MH)(),[c,p]=(0,o.fp)(a.AG.router_jump),h=(0,r.Zp)(),{initUserInfo:m}=(0,n.useContext)(v.F),[x,y]=(0,o.fp)(a.AG.nowFileList),[j,C]=(0,o.fp)(a.AG.showPrompt),[M,$]=(0,o.fp)(a.AG.fileShellShow),[z,D]=(0,o.fp)(a.AG.blank_search_mode);return t=>{t.preventDefault(),t.stopPropagation();const n=new b.ik;n.x=t.clientX,n.y=t.clientY,n.type=u.Iw.directory;const o=[{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.time_minx_max),children:i("时间逆序")}),v:A.t8.time_minx_max},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.time_max_min),children:i("时间顺序")}),v:A.t8.time_max_min}],a=[{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.size_min_max),children:i("大小顺序")}),v:A.t8.size_min_max},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.size_max_min),children:i("大小逆序")}),v:A.t8.size_max_min}],r=[{r:(0,N.jsx)("span",{style:(0,R.ok)(!e.user_data.file_list_pagination_mode||e.user_data.file_list_pagination_mode===A.yM.all),children:i("全部加载文件")}),v:A.yM.all},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.file_list_pagination_mode===A.yM.pagination),children:i("scrll_l")}),v:A.yM.pagination}],c=[{r:(0,N.jsx)("span",{style:(0,R.ok)(!e.user_data.file_time_show_type||e.user_data.file_time_show_type===A.KD.current),children:i("最近时间")}),v:A.KD.current},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.file_time_show_type===A.KD.time),children:i("准确时间")}),v:A.KD.time}],w=[{r:i("文件列表展示"),items:[{r:i("文件排序"),v:"",items:[{r:(0,N.jsx)("span",{style:(0,R.ok)(!e.user_data.dir_show_type),children:i("系统默认")}),v:A.t8.defualt},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.name),children:i("名字")}),v:A.t8.name},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.time_minx_max||e.user_data.dir_show_type===A.t8.time_max_min),children:i("修改时间")}),v:!1,items:o},{r:(0,N.jsx)("span",{style:(0,R.ok)(e.user_data.dir_show_type===A.t8.size_min_max||e.user_data.dir_show_type===A.t8.size_max_min),children:i("文件大小")}),v:!1,items:a}]},{r:i("文件加载方式"),v:"",items:r},{r:i("时间展示"),v:"",items:c},{r:i("缩放调整"),v:"zoom_adjust"},{r:(0,N.jsx)("span",{style:(0,R.ok)(z),children:i("srchbln")}),v:"blank_search_mode"}]}];x?.folders?.find(e=>".git"===e.name)&&w.push({r:i("查看Git提交"),v:"git_page"}),s(A.oV.code_resource)&&w.push({r:i("add_rot"),v:"code_resource"}),s(A.oV.http_proxy)&&w.push({r:i("dl_here"),v:"http_resource"}),e?.user_data?.quick_cmd&&(0,f.LL)([...e.user_data.quick_cmd],w),n.items=w,n.textClick=async e=>{if(console.log(e),!1===e)return;const t={};if("gcfg_dir_config"===e){const e=(0,_.GG)("file",(0,_.vX)());return C({data:void 0,overlay:!1,type:"",show:!1}),void h(`${S.o.gcfg_page}/${encodeURIComponent(e)}`)}if("git_page"===e){const e=(0,_.GG)("file",(0,_.vX)());return C({data:void 0,overlay:!1,type:"",show:!1}),void h(`${S.o.git_page}/${encodeURIComponent(e)}`)}if("code_resource"===e){const e=await k.ws.sendData(G.HK.file_info,{path:(0,_.GG)("file",(0,_.vX)())});return p({page_self_router_api_data:[`/api/${Date.now()}`,e.context.now_absolute_path]}),C({data:void 0,overlay:!1,type:"",show:!1}),void h("/setting/customer_router/")}if("http_resource"===e){const e=await k.ws.sendData(G.HK.file_info,{path:(0,_.GG)("file",(0,_.vX)())});return p({http_download_map_path:e.context.now_absolute_path}),C({data:void 0,overlay:!1,type:"",show:!1}),void h("/proxy/http/")}if("zoom_adjust"===e)return C({data:void 0,overlay:!1,type:"",show:!1}),void setTimeout(()=>{C({show:!0,type:d.PromptEnum.ZoomAdjust,overlay:!1,data:{}})},0);if("object"==typeof e&&"quick_cmd"===e.tag){let t=e.cmd;t&&(t.endsWith("\r")||(t+="\r",$({show:!0,path:(0,_.GG)("file",(0,_.vX)()),cmd:t})))}else{if("blank_search_mode"===e)return D(!z),void C({data:void 0,overlay:!1,type:"",show:!1});if(e===A.yM.all||e===A.yM.pagination)t.is_pagination_mode=!0;else if(e===A.KD.current||e===A.KD.time)t.is_file_show_type=!0;else{if(e!==A.t8.defualt&&e!==A.t8.name&&e!==A.t8.size_max_min&&e!==A.t8.size_min_max&&e!==A.t8.time_max_min&&e!==A.t8.time_minx_max)return;t.is_dir_list_type=!0}}await l.wm.post(F.s.user_save_private_attr,{type:e,...t}),await m(),C({data:void 0,overlay:!1,type:"",show:!1}),h((0,_.vX)())},C({show:!0,type:d.PromptEnum.FileMenu,overlay:!1,data:n})}}(),Qe=async()=>{const e=new j.Nd;e.dir_path=`${(0,_.GG)("file",(0,_.vX)())}`,k.ws.addMsg(G.HK.workflow_realtime,e=>{const t=e.context;if(e.context){for(const e of t.sucess_file_list)(0,f.Ys)(e);for(const e of t.failed_file_list)(0,f.V$)(e);De(new Set(t.running_file_list))}}),await k.ws.sendData(G.HK.workflow_realtime,e)},et=async e=>{let t=!1;for(const i of e.files??[])i.origin_size=i.size,i.size=(0,x.v7)(i.size),Ge.user_data.file_time_show_type===A.KD.time?i.show_mtime=i.mtime?(0,U.Yq)(i.mtime):"":i.show_mtime=i.mtime?(0,y.s)(i.mtime):"",t||!i.name.endsWith(".workflow.yml")&&!i.name.endsWith(".act")||(t=!0,Promise.resolve().then(()=>{Qe()})),i.name===j.SB&&(t=!0);for(const i of e.folders??[])Ge.user_data.file_time_show_type===A.KD.time?i.show_mtime=i.mtime?(0,U.Yq)(i.mtime):"":i.show_mtime=i.mtime?(0,y.s)(i.mtime):"",i.name===j.SB&&(t=!0);je(t)},tt=n.useRef(null),it=async e=>{if(!0===se){if(tt.current!==e){tt.current=e;try{const t=await l.$M.post("file/mount_info",{param_path:e});ae(t?.data??null)}catch(e){ae(null)}}}else ae(null)},nt=async()=>{const e=(0,_.GG)("file",(0,_.vX)());if(Ee||Ie)return;let t;if(it(e),Ge.user_data.file_list_pagination_mode===A.yM.pagination){if(V!==e){if(V=e,1!==Ne.page_num)return void Pe({page_size:Ne.page_size,page_num:1})}else if(Ne.page_num<0)return;if(t=await l.$M.post("file_get_page",{param_path:e,page_num:Ne.page_num,page_size:Ne.page_size}),t.code!==p.m.Success)return;const i=t.data;return et(i),i.files?.length?(ie(e=>{const t=(0,L.cloneDeep)(1===Ne.page_num?i.files:[...e?.files??[],...i.files]),n={...e,files:t};return(0,f.yC)(n,Ge.user_data.dir_show_type),n}),void(T=t.data)):void Pe({page_size:Ne.page_size,page_num:-1})}if(t=await l.$M.get(e),t.code!==p.m.Success)return;const i=t.data;(0,f.yC)(i,Ge.user_data.dir_show_type),et(t.data),ie(t.data),T=t.data};(0,n.useEffect)(()=>async()=>{De(new Set)},[]);const st=()=>{je(!1),(()=>{const e=Se.get("preview_file_name"),t=Se.get("preview_mode");if(!e||!t)return!1;const n=(0,_.GG)("file",(0,_.vX)());if($e.current===n+e)return!0;$e.current=n+e;const s=()=>Me(null);return"md"===t?(i({url:l.$M.getDownloadUrl(`${encodeURIComponent(n)}${e}`),path:`${n}${e}`,name:e,close:s}),!0):"log"===t?(m({show:!0,fileName:e,encoding:Se.get("preview_log_enc")??"utf8",wrap:Se.get("preview_log_wrap")??"wrap",close:s}),!0):"image_edit"===t?(M({path:(0,Y.IO)((0,_.vX)(),e),name:e,close:s}),!0):(Ce({name:e,opt_shell:!0,..."text"===t?{model:"text"}:{},close:s}),!0)})()||(t({open:!1}),q({open:!1}),i({}),m({show:!1}),M({}),z({}),D({}),P({}),I({}),X({}),nt())};(0,n.useEffect)(()=>{st()},[Q,Ne]),(0,n.useEffect)(()=>{ne>0&&nt()},[ne]);const ot=n.useRef(!1);(0,n.useEffect)(()=>{if(null!==se)return ot.current?void(!0===se?it((0,_.GG)("file",(0,_.vX)())):ae(null)):(ot.current=!0,void(!0===se&&null===oe&&it((0,_.GG)("file",(0,_.vX)()))))},[se]);const at=e=>{e.target===e.currentTarget&&(de([]),pe([]))},lt=n.useCallback((0,L.throttle)(e=>{const t=Ye.current;if(!t||!t.parentElement)return;const i=parseFloat(getComputedStyle(t).fontSize),n=t.parentElement.getBoundingClientRect(),s=n.right-e.clientX,o=Math.min(Math.max(s,320),.7*n.width);Ue(parseFloat((o/i).toFixed(2)))},32),[]),rt=()=>{Oe(!1),document.removeEventListener("pointermove",lt)},ct=(0,N.jsxs)("div",{className:"file-list-main",children:[(0,N.jsx)(s.e,{baseRoute:"file",clickFun:function(){if(de([]),pe([]),Ge.user_data.file_list_pagination_mode===A.yM.pagination){const e=document.getElementById("listing");e&&(e.scrollTop=0),Pe({page_size:Ne.page_size,page_num:1})}},input_path_enter:e=>{var t;de([]),pe([]),ie({files:[],folders:[]}),!function(e){return"string"==typeof e&&0!==e.length&&(/^[a-zA-Z]:[\\\/]/.test(e)||/^\\\\[^\\/]+[\\/]/.test(e)||/^\//.test(e))}(e)?ee(function(e,t){let i=function(e){let t="\\";for(const i of e)if("/"===i||"\\"===i){t=i;break}return t}(e);if("."===t)return e;if(".."===t){if(e.length>1){let t=e[e.length-1]===i?1:0;for(let n=e.length-1-t;n>=0;n--)if(e[n]===i)return e.substring(0,n+1)}return e}return e.endsWith(i)&&t.startsWith(i)?e.slice(0,-1)+t:e.endsWith(i)||t.startsWith(i)?e+t:e+i+t}((0,_.vX)(),e)):(e=e.replace(0===(t=Ge.user_data).folder_item_now||void 0===t.folder_item_now?t.cwd:t.folder_items[t.folder_item_now-1].path,""),ee(e))}}),oe&&(0,N.jsxs)("div",{className:"mount-tip-bar",style:{borderLeftColor:oe.color},children:[(0,N.jsx)("span",{className:"material-icons",style:{color:oe.color},children:"cloud"}),(0,N.jsx)("span",{children:[oe.credential_note,oe.account_note||(B.C1.find(e=>e.value===oe.driver)?.title??oe.driver),oe.name].filter(Boolean).join(" - ")}),oe.readonly&&(0,N.jsx)("span",{className:"mount-readonly-tag",children:J("只读")})]}),Ge.user_data.file_list_pagination_mode===A.yM.pagination?(0,N.jsx)(C.$J,{handleContextMenu:Je,clickBlank:at,list:te.files}):(0,N.jsx)(C.t$,{handleContextMenu:Je,file_list:te.files,folder_list:te.folders,clickBlank:at})]});return(0,N.jsxs)(n.Fragment,{children:[(0,N.jsx)(c.aZ,{children:(0,N.jsx)(h.$Z,{handleEnterPress:async()=>{if(Ee||Ie){if(de([]),pe([]),!ue||!ue.trim())return void ie({files:[],folders:[]});const e=(0,_.GG)("file",(0,_.vX)()),t=await l.$M.post("file_get_page",{param_path:e,page_num:1,page_size:1e4,search:ue.trim()});if(t.code!==p.m.Success)return;const i=t.data;return(0,f.yC)(i,Ge.user_data.dir_show_type),et(i),ie(i),void(T=i)}if(!T)return;de([]),pe([]);const e=[],t=[];for(const t of T.files??[])t.name.includes(ue)&&e.push(t);for(const e of T.folders??[])e.name.includes(ue)&&t.push(e);ie({files:e,folders:t})},placeholder:J("搜索当前目录"),icon:"search",value:"",mobile_hidden:!0,handleIconClick:()=>{const e=(0,_.GG)("file",(0,_.vX)());Fe({open:!0,title:J("深搜"),context_div:(0,N.jsx)(E,{base_path:e})})},handleInputChange:e=>{me(e)},max_width:"25em"})}),(0,N.jsxs)(c.aZ,{position:"right",children:[be(A.oV.ai_agent_page)&&(0,N.jsx)($.rA,{icon:"smart_toy",title:J("AI 聊天"),selected:Ke,onClick:()=>Re("chat_open",!Ke?"1":null)}),(0,N.jsx)("div",{className:"mobile-context-btn",children:(0,N.jsx)($.rA,{icon:"more_horiz",title:J("右键"),onClick:()=>{const e=ce[ce.length-1];if(void 0!==e){const t=[...te.folders??[],...te.files??[]][e];if(t){const i=document.querySelectorAll(".item")[e],n=i?i.getBoundingClientRect():{left:window.innerWidth/2,bottom:100},s={preventDefault:()=>{},stopPropagation:()=>{},clientX:n.left+10,clientY:n.bottom??100},o=new b.ik;o.path=(0,Y.IO)((0,_.vX)(),t.name),o.filename=t.name,o.x=s.clientX,o.y=s.clientY,o.type=t.type===u.Iw.folder?u.Iw.folder:(0,b.uL)(t.name),o.size=t.origin_size,re({show:!0,type:d.PromptEnum.FileMenu,overlay:!1,data:o})}}else{const e={preventDefault:()=>{},stopPropagation:()=>{},clientX:window.innerWidth/2,clientY:window.innerHeight/2};Je(e)}}})}),(0,N.jsx)(H,{})]}),(0,N.jsxs)("div",{className:"file-list-split"+(Ke?" file-list-split--chat":""),children:[ct,Ke&&(0,N.jsxs)(n.Fragment,{children:[(0,N.jsx)("div",{className:"studio__divider studio__divider--chat",ref:Ye,onPointerDown:e=>{e.preventDefault(),Oe(!0),document.addEventListener("pointermove",lt),document.addEventListener("pointerup",rt,{once:!0})}}),(0,N.jsx)("div",{className:"studio-chat-panel",style:{width:`${Le}em`},children:(0,N.jsx)(n.Suspense,{fallback:null,children:(0,N.jsx)(W,{inline_header:!0,sync_url:!1,file_cwd_path:Te(),session_id:Ze??(dt=Te(),a.AG.get_ai_chat_session(Ve,dt)),on_session_change:e=>{We(e),((e,t)=>{qe({...Ve,[e]:t})})(Te(),e)}})})})]})]}),Be&&(0,N.jsx)("div",{className:"shell__overlay",onPointerUp:rt}),we&&(0,N.jsx)(O,{}),ge.open&&(0,N.jsx)(Z,{})]});var dt}}}]);
@@ -3,7 +3,14 @@
3
3
  --background: #121212;
4
4
  --surfacePrimary: #1e1e1e;
5
5
  --surfaceSecondary: #2d2d2d;
6
- --divider: rgba(255, 255, 255, 0.12);
6
+ --divider: rgba(255, 255, 255, 0.12);
7
+ /* 深色下边框和悬浮态必须用白色透明,否则沿用根部的黑色值,在深色背景上几乎不可见 */
8
+ --borderPrimary: rgba(255, 255, 255, 0.12);
9
+ --borderSecondary: rgba(255, 255, 255, 0.2);
10
+ --hover: rgba(255, 255, 255, 0.08);
11
+ /* 聊天气泡:用户气泡用中性实色,深色背景上有明确厚度 */
12
+ --chat-user-bg: #2f2f2f;
13
+ --chat-user-text: inherit;
7
14
  --icon: #ffffff;
8
15
  --textPrimary: rgba(255, 255, 255, 0.87);
9
16
  --textSecondary: rgba(255, 255, 255, 0.6);
@@ -187,11 +194,6 @@ td .input:focus {
187
194
  border: 1px solid var(--divider);
188
195
  border-radius: var(--border-radius-sm);
189
196
  }
190
- .input:hover,
191
- .input:focus {
192
- border-color: var(--primary);
193
- box-shadow: 0 0 0 2px var(--primary-light);
194
- }
195
197
  .input--red {
196
198
  background: var(--accent-light);
197
199
  color: var(--accent);
@@ -334,22 +336,13 @@ table th {
334
336
  color: var(--primary);
335
337
  }
336
338
 
337
- .chat-message.bot{
338
- background: var(--primary-light);
339
- border-radius: var(--border-radius);
340
- color: var(--textPrimary);
341
- border-bottom: 1px solid var(--divider);
342
- }
343
- .chat-message.user {
344
- background: #1a2a3a;
345
- color: var(--textPrimary);
346
- border-bottom: none;
347
- }
348
- .chat-message.bot::before {
349
- background: var(--primary);
350
- opacity: 0.6;
351
- transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
352
- }
339
+ /* 气泡配色与形状统一由 chat.css 控制,这里不再覆盖外层容器,
340
+ 否则会给 .chat-message 再铺一层背景,和内部气泡叠成双层 */
341
+ .chat-message.bot::before {
342
+ background: var(--primary);
343
+ opacity: 0.6;
344
+ transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
345
+ }
353
346
 
354
347
 
355
348
  /* 暗黑模式 - AI 执行中最后一个气泡头像呼吸 */
@@ -399,9 +392,9 @@ table th {
399
392
  }
400
393
  .chat-input-area textarea:focus,
401
394
  .chat-input-area .rich-textarea.chat-input:focus {
402
- border-color: var(--primary);
395
+ outline: none;
396
+ border-color: rgba(255, 255, 255, 0.32);
403
397
  background: var(--surfaceSecondary);
404
- box-shadow: 0 0 0 3px var(--primary-light);
405
398
  }
406
399
 
407
400
  .chat-input-area {
@@ -459,8 +452,8 @@ table th {
459
452
  }
460
453
 
461
454
  .chat-session-search-input:focus {
462
- border-color: var(--primary);
463
- box-shadow: 0 0 0 2px var(--primary-light);
455
+ outline: none;
456
+ border-color: rgba(255, 255, 255, 0.32);
464
457
  }
465
458
  .chat-session-item.active,
466
459
  .chat-session-item:hover {
@@ -555,8 +548,8 @@ table th {
555
548
  color: var(--textPrimary);
556
549
  }
557
550
  .model-selector-dropdown:focus {
558
- border-color: var(--primary);
559
- box-shadow: 0 0 0 2px var(--primary-light);
551
+ outline: none;
552
+ border-color: rgba(255, 255, 255, 0.32);
560
553
  }
561
554
 
562
555
  /* ===== 暗黑模式 - 用量统计弹框 ===== */
@@ -3,7 +3,14 @@
3
3
  --background: #121212;
4
4
  --surfacePrimary: #1e1e1e;
5
5
  --surfaceSecondary: #2d2d2d;
6
- --divider: rgba(255, 255, 255, 0.12);
6
+ --divider: rgba(255, 255, 255, 0.12);
7
+ /* 深色下边框和悬浮态必须用白色透明,否则沿用根部的黑色值,在深色背景上几乎不可见 */
8
+ --borderPrimary: rgba(255, 255, 255, 0.12);
9
+ --borderSecondary: rgba(255, 255, 255, 0.2);
10
+ --hover: rgba(255, 255, 255, 0.08);
11
+ /* 聊天气泡:用户气泡用中性实色,深色背景上有明确厚度 */
12
+ --chat-user-bg: #333537;
13
+ --chat-user-text: inherit;
7
14
  --icon: #ffffff;
8
15
  --textPrimary: rgba(255, 255, 255, 0.87);
9
16
  --textSecondary: rgba(255, 255, 255, 0.6);
@@ -183,11 +190,6 @@ td .input:focus {
183
190
  border: 1px solid var(--divider);
184
191
  border-radius: var(--border-radius-sm);
185
192
  }
186
- .input:hover,
187
- .input:focus {
188
- border-color: var(--primary);
189
- box-shadow: 0 0 0 2px var(--primary-light);
190
- }
191
193
  .input--red {
192
194
  background: var(--accent-light);
193
195
  color: var(--accent);
@@ -330,22 +332,13 @@ table th {
330
332
  color: var(--primary);
331
333
  }
332
334
 
333
- .chat-message.bot{
334
- background: var(--primary-light);
335
- border-radius: var(--border-radius);
336
- color: var(--textPrimary);
337
- border-bottom: 1px solid var(--divider);
338
- }
339
- .chat-message.user {
340
- background: #1a2a3a;
341
- color: var(--textPrimary);
342
- border-bottom: none;
343
- }
344
- .chat-message.bot::before {
345
- background: var(--primary);
346
- opacity: 0.6;
347
- transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
348
- }
335
+ /* 气泡配色与形状统一由 chat.css 控制,这里不再覆盖外层容器,
336
+ 否则会给 .chat-message 再铺一层背景,和内部气泡叠成双层 */
337
+ .chat-message.bot::before {
338
+ background: var(--primary);
339
+ opacity: 0.6;
340
+ transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
341
+ }
349
342
 
350
343
 
351
344
  /* Google 暗黑模式 - AI 执行中最后一个气泡头像呼吸 */
@@ -395,9 +388,9 @@ table th {
395
388
  }
396
389
  .chat-input-area textarea:focus,
397
390
  .chat-input-area .rich-textarea.chat-input:focus {
398
- border-color: var(--primary);
391
+ outline: none;
392
+ border-color: rgba(255, 255, 255, 0.32);
399
393
  background: var(--surfaceSecondary);
400
- box-shadow: 0 0 0 3px var(--primary-light);
401
394
  }
402
395
 
403
396
  .chat-input-area {
@@ -468,8 +461,8 @@ table th {
468
461
  }
469
462
 
470
463
  .chat-session-search-input:focus {
471
- border-color: var(--primary);
472
- box-shadow: 0 0 0 2px var(--primary-light);
464
+ outline: none;
465
+ border-color: rgba(255, 255, 255, 0.32);
473
466
  }
474
467
 
475
468
  /* ===== Google 暗黑模式 - AI 加载气泡 ===== */
@@ -560,8 +553,8 @@ table th {
560
553
  color: var(--textPrimary);
561
554
  }
562
555
  .model-selector-dropdown:focus {
563
- border-color: var(--primary);
564
- box-shadow: 0 0 0 2px var(--primary-light);
556
+ outline: none;
557
+ border-color: rgba(255, 255, 255, 0.32);
565
558
  }
566
559
 
567
560
  /* ===== Google 暗黑模式 - 用量统计弹框 ===== */
@@ -185,11 +185,6 @@ td .input:focus {
185
185
  border: 1px solid var(--divider);
186
186
  border-radius: var(--border-radius-sm);
187
187
  }
188
- .input:hover,
189
- .input:focus {
190
- border-color: var(--primary);
191
- box-shadow: 0 0 0 2px var(--primary-light);
192
- }
193
188
  .input--red {
194
189
  background: var(--accent-light);
195
190
  color: var(--accent);
@@ -333,12 +328,8 @@ table th {
333
328
  color: var(--primary);
334
329
  }
335
330
 
336
- .chat-message.bot{
337
- /*background: var(--primary-light);*/
338
- border-radius: var(--border-radius);
339
- }
340
-
341
- .chat-input-area textarea {
331
+ /* 气泡形状统一由 chat.css 控制 */
332
+ .chat-input-area textarea {
342
333
  background: var(--surfacePrimary);
343
334
  border-radius: var(--border-radius);
344
335
  }
@@ -388,8 +379,8 @@ table th {
388
379
  }
389
380
 
390
381
  .chat-session-search-input:focus {
391
- border-color: var(--primary);
392
- box-shadow: 0 0 0 2px var(--primary-light);
382
+ outline: none;
383
+ border-color: rgba(0, 0, 0, 0.28);
393
384
  }
394
385
 
395
386
  .menu-select-popup {
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><base href="/"><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>{{{web_site_title}}}</title><link rel="icon" href="{{{logo_favicon}}}"/><script defer="defer" src="main.e03c0b1342da0ac83715.js"></script></head><body><div id="root"></div></body><script id="pre_code" type="text/template">return {{{Windows_FileCat}}};</script><script>window.EXCALIDRAW_ASSET_PATH = "/";window.FileCat;</script></html>
1
+ <!doctype html><html lang="en"><head><base href="/"><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>{{{web_site_title}}}</title><link rel="icon" href="{{{logo_favicon}}}"/><script defer="defer" src="main.393fb0005ec80a2b4828.js"></script></head><body><div id="root"></div></body><script id="pre_code" type="text/template">return {{{Windows_FileCat}}};</script><script>window.EXCALIDRAW_ASSET_PATH = "/";window.FileCat;</script></html>