From 8cd7d418dc55804005c7c69635d7ae7fa91d96b1 Mon Sep 17 00:00:00 2001 From: yangdx Date: Fri, 28 Mar 2025 12:03:30 +0800 Subject: [PATCH 1/2] Fix: tooltip flickering problem --- .../src/features/DocumentManager.tsx | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/lightrag_webui/src/features/DocumentManager.tsx b/lightrag_webui/src/features/DocumentManager.tsx index b5b1be26..b6086bca 100644 --- a/lightrag_webui/src/features/DocumentManager.tsx +++ b/lightrag_webui/src/features/DocumentManager.tsx @@ -64,6 +64,14 @@ const pulseStyle = ` color: white; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); pointer-events: none; /* Prevent tooltip from interfering with mouse events */ + opacity: 0; + visibility: hidden; + transition: opacity 0.15s, visibility 0.15s; +} + +.tooltip.visible { + opacity: 1; + visibility: visible; } .dark .tooltip { @@ -216,8 +224,8 @@ export default function DocumentManager() { const tooltip = container.querySelector('.tooltip'); if (!tooltip) return; - // Only position visible tooltips - if (getComputedStyle(tooltip).visibility === 'hidden') return; + // Skip tooltips that aren't visible + if (!tooltip.classList.contains('visible')) return; // Get container position const rect = container.getBoundingClientRect(); @@ -236,14 +244,32 @@ export default function DocumentManager() { const container = target.closest('.tooltip-container'); if (!container) return; - // Small delay to ensure tooltip is visible before positioning - setTimeout(positionTooltips, 10); + // Find tooltip and make it visible + const tooltip = container.querySelector('.tooltip'); + if (tooltip) { + tooltip.classList.add('visible'); + // Position immediately without delay + positionTooltips(); + } + }; + + const handleMouseOut = (e: MouseEvent) => { + const target = e.target as HTMLElement; + const container = target.closest('.tooltip-container'); + if (!container) return; + + const tooltip = container.querySelector('.tooltip'); + if (tooltip) { + tooltip.classList.remove('visible'); + } }; document.addEventListener('mouseover', handleMouseOver); + document.addEventListener('mouseout', handleMouseOut); return () => { document.removeEventListener('mouseover', handleMouseOver); + document.removeEventListener('mouseout', handleMouseOut); }; }, [docs]); From 783020aab59eed3f531b459a4e77984f74021266 Mon Sep 17 00:00:00 2001 From: yangdx Date: Fri, 28 Mar 2025 12:04:11 +0800 Subject: [PATCH 2/2] Update webui assets --- .../assets/{index-D6o11nRy.js => index-B4QL89Xd.js} | 10 +++++++++- lightrag/api/webui/index.html | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) rename lightrag/api/webui/assets/{index-D6o11nRy.js => index-B4QL89Xd.js} (98%) diff --git a/lightrag/api/webui/assets/index-D6o11nRy.js b/lightrag/api/webui/assets/index-B4QL89Xd.js similarity index 98% rename from lightrag/api/webui/assets/index-D6o11nRy.js rename to lightrag/api/webui/assets/index-B4QL89Xd.js index c90573ec..932d0025 100644 --- a/lightrag/api/webui/assets/index-D6o11nRy.js +++ b/lightrag/api/webui/assets/index-B4QL89Xd.js @@ -1115,6 +1115,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho color: white; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); pointer-events: none; /* Prevent tooltip from interfering with mouse events */ + opacity: 0; + visibility: hidden; + transition: opacity 0.15s, visibility 0.15s; +} + +.tooltip.visible { + opacity: 1; + visibility: visible; } .dark .tooltip { @@ -1171,7 +1179,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho animation: pulse 2s infinite; border: 1px solid; } -`;function Cie(){const[e,t]=w.useState(!1),{t:n}=At(),r=Sr.use.health(),a=Sr.use.pipelineBusy(),[o,s]=w.useState(null),u=Le.use.currentTab(),c=Le.use.showFileName(),d=Le.use.setShowFileName(),[p,g]=w.useState("updated_at"),[m,b]=w.useState("desc"),y=N=>{p===N?b(O=>O==="asc"?"desc":"asc"):(g(N),b("desc"))},v=N=>[...N].sort((O,_)=>{let C,M;p==="id"&&c?(C=fb(O),M=fb(_)):p==="id"?(C=O.id,M=_.id):(C=new Date(O[p]).getTime(),M=new Date(_[p]).getTime());const D=m==="asc"?1:-1;return typeof C=="string"&&typeof M=="string"?D*C.localeCompare(M):D*(C>M?1:C{const N=document.createElement("style");return N.textContent=_ie,document.head.appendChild(N),()=>{document.head.removeChild(N)}},[]);const A=w.useRef(null);w.useEffect(()=>{if(!o)return;const N=()=>{document.querySelectorAll(".tooltip-container").forEach(C=>{const M=C.querySelector(".tooltip");if(!M||getComputedStyle(M).visibility==="hidden")return;const D=C.getBoundingClientRect();M.style.left=`${D.left}px`,M.style.top=`${D.top-5}px`,M.style.transform="translateY(-100%)"})},O=_=>{_.target.closest(".tooltip-container")&&setTimeout(N,10)};return document.addEventListener("mouseover",O),()=>{document.removeEventListener("mouseover",O)}},[o]);const x=w.useCallback(async()=>{var N,O,_,C,M,D,I,H;try{const $=await EV(),U={processed:((O=(N=$==null?void 0:$.statuses)==null?void 0:N.processed)==null?void 0:O.length)||0,processing:((C=(_=$==null?void 0:$.statuses)==null?void 0:_.processing)==null?void 0:C.length)||0,pending:((D=(M=$==null?void 0:$.statuses)==null?void 0:M.pending)==null?void 0:D.length)||0,failed:((H=(I=$==null?void 0:$.statuses)==null?void 0:I.failed)==null?void 0:H.length)||0};Object.keys(U).some(Z=>U[Z]!==k.current[Z])&&Sr.getState().check(),k.current=U,$&&$.statuses&&Object.values($.statuses).reduce((G,j)=>G+j.length,0)>0?s($):s(null)}catch($){Wt.error(n("documentPanel.documentManager.errors.loadFailed",{error:tr($)}))}},[s,n]);w.useEffect(()=>{u==="documents"&&x()},[u,x]);const R=w.useCallback(async()=>{try{const{status:N}=await wV();Wt.message(N)}catch(N){Wt.error(n("documentPanel.documentManager.errors.scanFailed",{error:tr(N)}))}},[n]);return w.useEffect(()=>{if(u!=="documents"||!r)return;const N=setInterval(async()=>{try{await x()}catch(O){Wt.error(n("documentPanel.documentManager.errors.scanProgressFailed",{error:tr(O)}))}},5e3);return()=>clearInterval(N)},[r,x,n,u]),w.useEffect(()=>{},[p,m]),E.jsxs(Ps,{className:"!rounded-none !overflow-hidden flex flex-col h-full min-h-0",children:[E.jsx(Cu,{className:"py-2 px-6",children:E.jsx(Nu,{className:"text-lg",children:n("documentPanel.documentManager.title")})}),E.jsxs(Ou,{className:"flex-1 flex flex-col min-h-0 overflow-auto",children:[E.jsxs("div",{className:"flex gap-2 mb-2",children:[E.jsxs("div",{className:"flex gap-2",children:[E.jsxs(gt,{variant:"outline",onClick:R,side:"bottom",tooltip:n("documentPanel.documentManager.scanTooltip"),size:"sm",children:[E.jsx(R3,{})," ",n("documentPanel.documentManager.scanButton")]}),E.jsxs(gt,{variant:"outline",onClick:()=>t(!0),side:"bottom",tooltip:n("documentPanel.documentManager.pipelineStatusTooltip"),size:"sm",className:Me(a&&"pipeline-busy"),children:[E.jsx(AZ,{})," ",n("documentPanel.documentManager.pipelineStatusButton")]})]}),E.jsx("div",{className:"flex-1"}),E.jsx(Aie,{}),E.jsx(Tie,{}),E.jsx(Rie,{open:e,onOpenChange:t})]}),E.jsxs(Ps,{className:"flex-1 flex flex-col border rounded-md min-h-0 mb-0",children:[E.jsxs(Cu,{className:"flex-none py-2 px-4",children:[E.jsxs("div",{className:"flex justify-between items-center",children:[E.jsx(Nu,{children:n("documentPanel.documentManager.uploadedTitle")}),E.jsxs("div",{className:"flex items-center gap-2",children:[E.jsx("span",{className:"text-sm text-gray-500",children:n("documentPanel.documentManager.fileNameLabel")}),E.jsx(gt,{variant:"outline",size:"sm",onClick:()=>d(!c),className:"border-gray-200 dark:border-gray-700 hover:bg-gray-100 dark:hover:bg-gray-800",children:n(c?"documentPanel.documentManager.hideButton":"documentPanel.documentManager.showButton")})]})]}),E.jsx(Ap,{"aria-hidden":"true",className:"hidden",children:n("documentPanel.documentManager.uploadedDescription")})]}),E.jsxs(Ou,{className:"flex-1 relative p-0",ref:A,children:[!o&&E.jsx("div",{className:"absolute inset-0 p-0",children:E.jsx(loe,{title:n("documentPanel.documentManager.emptyTitle"),description:n("documentPanel.documentManager.emptyDescription")})}),o&&E.jsx("div",{className:"absolute inset-0 flex flex-col p-0",children:E.jsx("div",{className:"w-full h-full flex flex-col border border-gray-200 dark:border-gray-700 overflow-hidden",children:E.jsxs(D5,{className:"w-full",children:[E.jsx(I5,{className:"sticky top-0 bg-background z-10 shadow-sm",children:E.jsxs(a0,{className:"border-b bg-card/95 backdrop-blur supports-[backdrop-filter]:bg-card/75 shadow-[inset_0_-1px_0_rgba(0,0,0,0.1)]",children:[E.jsx(wo,{onClick:()=>y("id"),className:"cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-800 select-none",children:E.jsxs("div",{className:"flex items-center",children:[n("documentPanel.documentManager.columns.id"),p==="id"&&E.jsx("span",{className:"ml-1",children:m==="asc"?E.jsx(gm,{size:14}):E.jsx(pm,{size:14})})]})}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.summary")}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.status")}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.length")}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.chunks")}),E.jsx(wo,{onClick:()=>y("created_at"),className:"cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-800 select-none",children:E.jsxs("div",{className:"flex items-center",children:[n("documentPanel.documentManager.columns.created"),p==="created_at"&&E.jsx("span",{className:"ml-1",children:m==="asc"?E.jsx(gm,{size:14}):E.jsx(pm,{size:14})})]})}),E.jsx(wo,{onClick:()=>y("updated_at"),className:"cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-800 select-none",children:E.jsxs("div",{className:"flex items-center",children:[n("documentPanel.documentManager.columns.updated"),p==="updated_at"&&E.jsx("span",{className:"ml-1",children:m==="asc"?E.jsx(gm,{size:14}):E.jsx(pm,{size:14})})]})})]})}),E.jsx(L5,{className:"text-sm overflow-auto",children:Object.entries(o.statuses).flatMap(([N,O])=>v(O).map(C=>E.jsxs(a0,{children:[E.jsx(xo,{className:"truncate font-mono overflow-visible max-w-[250px]",children:c?E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"group relative overflow-visible tooltip-container",children:[E.jsx("div",{className:"truncate",children:fb(C,30)}),E.jsx("div",{className:"invisible group-hover:visible tooltip",children:C.file_path})]}),E.jsx("div",{className:"text-xs text-gray-500",children:C.id})]}):E.jsxs("div",{className:"group relative overflow-visible tooltip-container",children:[E.jsx("div",{className:"truncate",children:C.id}),E.jsx("div",{className:"invisible group-hover:visible tooltip",children:C.file_path})]})}),E.jsx(xo,{className:"max-w-xs min-w-45 truncate overflow-visible",children:E.jsxs("div",{className:"group relative overflow-visible tooltip-container",children:[E.jsx("div",{className:"truncate",children:C.content_summary}),E.jsx("div",{className:"invisible group-hover:visible tooltip",children:C.content_summary})]})}),E.jsxs(xo,{children:[N==="processed"&&E.jsx("span",{className:"text-green-600",children:n("documentPanel.documentManager.status.completed")}),N==="processing"&&E.jsx("span",{className:"text-blue-600",children:n("documentPanel.documentManager.status.processing")}),N==="pending"&&E.jsx("span",{className:"text-yellow-600",children:n("documentPanel.documentManager.status.pending")}),N==="failed"&&E.jsx("span",{className:"text-red-600",children:n("documentPanel.documentManager.status.failed")}),C.error&&E.jsx("span",{className:"ml-2 text-red-500",title:C.error,children:"⚠️"})]}),E.jsx(xo,{children:C.content_length??"-"}),E.jsx(xo,{children:C.chunks_count??"-"}),E.jsx(xo,{className:"truncate",children:new Date(C.created_at).toLocaleString()}),E.jsx(xo,{className:"truncate",children:new Date(C.updated_at).toLocaleString()})]},C.id)))})]})})})]})]})]})]})}function lG(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a=u?a=a+XO("0",s-u):a=(a.substring(0,s)||"0")+"."+a.substring(s),n+a}function ZO(e,t,n){if(["","-"].indexOf(e)!==-1)return e;var r=(e.indexOf(".")!==-1||n)&&t,a=GT(e),o=a.beforeDecimal,s=a.afterDecimal,u=a.hasNegation,c=parseFloat("0."+(s||"0")),d=s.length<=t?"0."+s:c.toFixed(t),p=d.split("."),g=o;o&&Number(p[0])&&(g=o.split("").reverse().reduce(function(v,k,A){return v.length>A?(Number(v[0])+Number(k)).toString()+v.substring(1,v.length):k+v},p[0]));var m=dG(p[1]||"",t,n),b=u?"-":"",y=r?".":"";return""+b+g+y+m}function di(e,t){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move("character",t),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}var pG=Nie(function(e,t){for(var n=0,r=0,a=e.length,o=t.length;e[n]===t[n]&&nn&&a-r>n;)r++;return{from:{start:n,end:a-r},to:{start:n,end:o-r}}}),Pie=function(e,t){var n=Math.min(e.selectionStart,t);return{from:{start:n,end:e.selectionEnd},to:{start:n,end:t}}};function Fie(e,t,n){return Math.min(Math.max(e,t),n)}function pb(e){return Math.max(e.selectionStart,e.selectionEnd)}function zie(){return typeof navigator<"u"&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Bie(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""}}function Uie(e){var t=e.currentValue,n=e.formattedValue,r=e.currentValueIndex,a=e.formattedValueIndex;return t[r]===n[a]}function jie(e,t,n,r,a,o,s){s===void 0&&(s=Uie);var u=a.findIndex(function(N){return N}),c=e.slice(0,u);!t&&!n.startsWith(c)&&(t=c,n=c+n,r=r+c.length);for(var d=n.length,p=e.length,g={},m=new Array(d),b=0;b0&&m[A]===-1;)A--;var R=A===-1||m[A]===-1?0:m[A]+1;return R>x?x:r-R=0&&!n[t];)t--;t===-1&&(t=n.indexOf(!0))}else{for(;t<=a&&!n[t];)t++;t>a&&(t=n.lastIndexOf(!0))}return t===-1&&(t=a),t}function Gie(e){for(var t=Array.from({length:e.length+1}).map(function(){return!0}),n=0,r=t.length;nC.length-s.length||_H||g>e.length-s.length)&&(I=g),e=e.substring(0,I),e=Vie(R?"-"+e:e,a),e=(e.match(Wie(y))||[]).join("");var $=e.indexOf(y);e=e.replace(new RegExp(cG(y),"g"),function(j,z){return z===$?".":""});var U=GT(e,a),W=U.beforeDecimal,Z=U.afterDecimal,G=U.addNegation;return d.end-d.start{p===N?b(O=>O==="asc"?"desc":"asc"):(g(N),b("desc"))},v=N=>[...N].sort((O,_)=>{let C,M;p==="id"&&c?(C=fb(O),M=fb(_)):p==="id"?(C=O.id,M=_.id):(C=new Date(O[p]).getTime(),M=new Date(_[p]).getTime());const D=m==="asc"?1:-1;return typeof C=="string"&&typeof M=="string"?D*C.localeCompare(M):D*(C>M?1:C{const N=document.createElement("style");return N.textContent=_ie,document.head.appendChild(N),()=>{document.head.removeChild(N)}},[]);const A=w.useRef(null);w.useEffect(()=>{if(!o)return;const N=()=>{document.querySelectorAll(".tooltip-container").forEach(M=>{const D=M.querySelector(".tooltip");if(!D||!D.classList.contains("visible"))return;const I=M.getBoundingClientRect();D.style.left=`${I.left}px`,D.style.top=`${I.top-5}px`,D.style.transform="translateY(-100%)"})},O=C=>{const D=C.target.closest(".tooltip-container");if(!D)return;const I=D.querySelector(".tooltip");I&&(I.classList.add("visible"),N())},_=C=>{const D=C.target.closest(".tooltip-container");if(!D)return;const I=D.querySelector(".tooltip");I&&I.classList.remove("visible")};return document.addEventListener("mouseover",O),document.addEventListener("mouseout",_),()=>{document.removeEventListener("mouseover",O),document.removeEventListener("mouseout",_)}},[o]);const x=w.useCallback(async()=>{var N,O,_,C,M,D,I,H;try{const $=await EV(),U={processed:((O=(N=$==null?void 0:$.statuses)==null?void 0:N.processed)==null?void 0:O.length)||0,processing:((C=(_=$==null?void 0:$.statuses)==null?void 0:_.processing)==null?void 0:C.length)||0,pending:((D=(M=$==null?void 0:$.statuses)==null?void 0:M.pending)==null?void 0:D.length)||0,failed:((H=(I=$==null?void 0:$.statuses)==null?void 0:I.failed)==null?void 0:H.length)||0};Object.keys(U).some(Z=>U[Z]!==k.current[Z])&&Sr.getState().check(),k.current=U,$&&$.statuses&&Object.values($.statuses).reduce((G,j)=>G+j.length,0)>0?s($):s(null)}catch($){Wt.error(n("documentPanel.documentManager.errors.loadFailed",{error:tr($)}))}},[s,n]);w.useEffect(()=>{u==="documents"&&x()},[u,x]);const R=w.useCallback(async()=>{try{const{status:N}=await wV();Wt.message(N)}catch(N){Wt.error(n("documentPanel.documentManager.errors.scanFailed",{error:tr(N)}))}},[n]);return w.useEffect(()=>{if(u!=="documents"||!r)return;const N=setInterval(async()=>{try{await x()}catch(O){Wt.error(n("documentPanel.documentManager.errors.scanProgressFailed",{error:tr(O)}))}},5e3);return()=>clearInterval(N)},[r,x,n,u]),w.useEffect(()=>{},[p,m]),E.jsxs(Ps,{className:"!rounded-none !overflow-hidden flex flex-col h-full min-h-0",children:[E.jsx(Cu,{className:"py-2 px-6",children:E.jsx(Nu,{className:"text-lg",children:n("documentPanel.documentManager.title")})}),E.jsxs(Ou,{className:"flex-1 flex flex-col min-h-0 overflow-auto",children:[E.jsxs("div",{className:"flex gap-2 mb-2",children:[E.jsxs("div",{className:"flex gap-2",children:[E.jsxs(gt,{variant:"outline",onClick:R,side:"bottom",tooltip:n("documentPanel.documentManager.scanTooltip"),size:"sm",children:[E.jsx(R3,{})," ",n("documentPanel.documentManager.scanButton")]}),E.jsxs(gt,{variant:"outline",onClick:()=>t(!0),side:"bottom",tooltip:n("documentPanel.documentManager.pipelineStatusTooltip"),size:"sm",className:Me(a&&"pipeline-busy"),children:[E.jsx(AZ,{})," ",n("documentPanel.documentManager.pipelineStatusButton")]})]}),E.jsx("div",{className:"flex-1"}),E.jsx(Aie,{}),E.jsx(Tie,{}),E.jsx(Rie,{open:e,onOpenChange:t})]}),E.jsxs(Ps,{className:"flex-1 flex flex-col border rounded-md min-h-0 mb-0",children:[E.jsxs(Cu,{className:"flex-none py-2 px-4",children:[E.jsxs("div",{className:"flex justify-between items-center",children:[E.jsx(Nu,{children:n("documentPanel.documentManager.uploadedTitle")}),E.jsxs("div",{className:"flex items-center gap-2",children:[E.jsx("span",{className:"text-sm text-gray-500",children:n("documentPanel.documentManager.fileNameLabel")}),E.jsx(gt,{variant:"outline",size:"sm",onClick:()=>d(!c),className:"border-gray-200 dark:border-gray-700 hover:bg-gray-100 dark:hover:bg-gray-800",children:n(c?"documentPanel.documentManager.hideButton":"documentPanel.documentManager.showButton")})]})]}),E.jsx(Ap,{"aria-hidden":"true",className:"hidden",children:n("documentPanel.documentManager.uploadedDescription")})]}),E.jsxs(Ou,{className:"flex-1 relative p-0",ref:A,children:[!o&&E.jsx("div",{className:"absolute inset-0 p-0",children:E.jsx(loe,{title:n("documentPanel.documentManager.emptyTitle"),description:n("documentPanel.documentManager.emptyDescription")})}),o&&E.jsx("div",{className:"absolute inset-0 flex flex-col p-0",children:E.jsx("div",{className:"w-full h-full flex flex-col border border-gray-200 dark:border-gray-700 overflow-hidden",children:E.jsxs(D5,{className:"w-full",children:[E.jsx(I5,{className:"sticky top-0 bg-background z-10 shadow-sm",children:E.jsxs(a0,{className:"border-b bg-card/95 backdrop-blur supports-[backdrop-filter]:bg-card/75 shadow-[inset_0_-1px_0_rgba(0,0,0,0.1)]",children:[E.jsx(wo,{onClick:()=>y("id"),className:"cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-800 select-none",children:E.jsxs("div",{className:"flex items-center",children:[n("documentPanel.documentManager.columns.id"),p==="id"&&E.jsx("span",{className:"ml-1",children:m==="asc"?E.jsx(gm,{size:14}):E.jsx(pm,{size:14})})]})}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.summary")}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.status")}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.length")}),E.jsx(wo,{children:n("documentPanel.documentManager.columns.chunks")}),E.jsx(wo,{onClick:()=>y("created_at"),className:"cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-800 select-none",children:E.jsxs("div",{className:"flex items-center",children:[n("documentPanel.documentManager.columns.created"),p==="created_at"&&E.jsx("span",{className:"ml-1",children:m==="asc"?E.jsx(gm,{size:14}):E.jsx(pm,{size:14})})]})}),E.jsx(wo,{onClick:()=>y("updated_at"),className:"cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-800 select-none",children:E.jsxs("div",{className:"flex items-center",children:[n("documentPanel.documentManager.columns.updated"),p==="updated_at"&&E.jsx("span",{className:"ml-1",children:m==="asc"?E.jsx(gm,{size:14}):E.jsx(pm,{size:14})})]})})]})}),E.jsx(L5,{className:"text-sm overflow-auto",children:Object.entries(o.statuses).flatMap(([N,O])=>v(O).map(C=>E.jsxs(a0,{children:[E.jsx(xo,{className:"truncate font-mono overflow-visible max-w-[250px]",children:c?E.jsxs(E.Fragment,{children:[E.jsxs("div",{className:"group relative overflow-visible tooltip-container",children:[E.jsx("div",{className:"truncate",children:fb(C,30)}),E.jsx("div",{className:"invisible group-hover:visible tooltip",children:C.file_path})]}),E.jsx("div",{className:"text-xs text-gray-500",children:C.id})]}):E.jsxs("div",{className:"group relative overflow-visible tooltip-container",children:[E.jsx("div",{className:"truncate",children:C.id}),E.jsx("div",{className:"invisible group-hover:visible tooltip",children:C.file_path})]})}),E.jsx(xo,{className:"max-w-xs min-w-45 truncate overflow-visible",children:E.jsxs("div",{className:"group relative overflow-visible tooltip-container",children:[E.jsx("div",{className:"truncate",children:C.content_summary}),E.jsx("div",{className:"invisible group-hover:visible tooltip",children:C.content_summary})]})}),E.jsxs(xo,{children:[N==="processed"&&E.jsx("span",{className:"text-green-600",children:n("documentPanel.documentManager.status.completed")}),N==="processing"&&E.jsx("span",{className:"text-blue-600",children:n("documentPanel.documentManager.status.processing")}),N==="pending"&&E.jsx("span",{className:"text-yellow-600",children:n("documentPanel.documentManager.status.pending")}),N==="failed"&&E.jsx("span",{className:"text-red-600",children:n("documentPanel.documentManager.status.failed")}),C.error&&E.jsx("span",{className:"ml-2 text-red-500",title:C.error,children:"⚠️"})]}),E.jsx(xo,{children:C.content_length??"-"}),E.jsx(xo,{children:C.chunks_count??"-"}),E.jsx(xo,{className:"truncate",children:new Date(C.created_at).toLocaleString()}),E.jsx(xo,{className:"truncate",children:new Date(C.updated_at).toLocaleString()})]},C.id)))})]})})})]})]})]})]})}function lG(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a=u?a=a+XO("0",s-u):a=(a.substring(0,s)||"0")+"."+a.substring(s),n+a}function ZO(e,t,n){if(["","-"].indexOf(e)!==-1)return e;var r=(e.indexOf(".")!==-1||n)&&t,a=GT(e),o=a.beforeDecimal,s=a.afterDecimal,u=a.hasNegation,c=parseFloat("0."+(s||"0")),d=s.length<=t?"0."+s:c.toFixed(t),p=d.split("."),g=o;o&&Number(p[0])&&(g=o.split("").reverse().reduce(function(v,k,A){return v.length>A?(Number(v[0])+Number(k)).toString()+v.substring(1,v.length):k+v},p[0]));var m=dG(p[1]||"",t,n),b=u?"-":"",y=r?".":"";return""+b+g+y+m}function di(e,t){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move("character",t),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}var pG=Nie(function(e,t){for(var n=0,r=0,a=e.length,o=t.length;e[n]===t[n]&&nn&&a-r>n;)r++;return{from:{start:n,end:a-r},to:{start:n,end:o-r}}}),Pie=function(e,t){var n=Math.min(e.selectionStart,t);return{from:{start:n,end:e.selectionEnd},to:{start:n,end:t}}};function Fie(e,t,n){return Math.min(Math.max(e,t),n)}function pb(e){return Math.max(e.selectionStart,e.selectionEnd)}function zie(){return typeof navigator<"u"&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Bie(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""}}function Uie(e){var t=e.currentValue,n=e.formattedValue,r=e.currentValueIndex,a=e.formattedValueIndex;return t[r]===n[a]}function jie(e,t,n,r,a,o,s){s===void 0&&(s=Uie);var u=a.findIndex(function(N){return N}),c=e.slice(0,u);!t&&!n.startsWith(c)&&(t=c,n=c+n,r=r+c.length);for(var d=n.length,p=e.length,g={},m=new Array(d),b=0;b0&&m[A]===-1;)A--;var R=A===-1||m[A]===-1?0:m[A]+1;return R>x?x:r-R=0&&!n[t];)t--;t===-1&&(t=n.indexOf(!0))}else{for(;t<=a&&!n[t];)t++;t>a&&(t=n.lastIndexOf(!0))}return t===-1&&(t=a),t}function Gie(e){for(var t=Array.from({length:e.length+1}).map(function(){return!0}),n=0,r=t.length;nC.length-s.length||_H||g>e.length-s.length)&&(I=g),e=e.substring(0,I),e=Vie(R?"-"+e:e,a),e=(e.match(Wie(y))||[]).join("");var $=e.indexOf(y);e=e.replace(new RegExp(cG(y),"g"),function(j,z){return z===$?".":""});var U=GT(e,a),W=U.beforeDecimal,Z=U.afterDecimal,G=U.addNegation;return d.end-d.start