Merge branch 'fix/dark-mode-graph-text-colors'
This commit is contained in:
commit
dc512523d2
81 changed files with 2836 additions and 2877 deletions
|
|
@ -1,5 +1,5 @@
|
|||
from .lightrag import LightRAG as LightRAG, QueryParam as QueryParam
|
||||
|
||||
__version__ = "1.4.8.1"
|
||||
__version__ = "1.4.8.2"
|
||||
__author__ = "Zirui Guo"
|
||||
__url__ = "https://github.com/HKUDS/LightRAG"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
__api_version__ = "0222"
|
||||
__api_version__ = "0223"
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
import{e as v,c as b,g as m,k as O,h as P,j as p,l as w,m as c,n as x,t as A,o as N}from"./_baseUniq-CN7ubuxw.js";import{aU as g,aq as _,aV as $,aW as E,aX as F,aY as I,aZ as M,a_ as y,a$ as B,b0 as T}from"./mermaid-vendor-CuJcWrH0.js";var S=/\s/;function q(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var G=/^\s+/;function H(n){return n&&n.slice(0,q(n)+1).replace(G,"")}var o=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,W=/^0o[0-7]+$/i,X=parseInt;function Y(n){if(typeof n=="number")return n;if(v(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=H(n);var t=R.test(n);return t||W.test(n)?X(n.slice(2),t?2:8):L.test(n)?o:+n}var z=1/0,C=17976931348623157e292;function K(n){if(!n)return n===0?n:0;if(n=Y(n),n===z||n===-1/0){var r=n<0?-1:1;return r*C}return n===n?n:0}function U(n){var r=K(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,Z=l.hasOwnProperty,dn=_(function(n,r){n=Object(n);var t=-1,e=r.length,a=e>2?r[2]:void 0;for(a&&$(r[0],r[1],a)&&(e=1);++t<e;)for(var f=r[t],i=E(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||F(h,l[u])&&!Z.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function D(n){return function(r,t,e){var a=Object(r);if(!I(r)){var f=m(t);r=O(r),t=function(s){return f(a[s],s,a)}}var i=n(r,t,e);return i>-1?a[f?r[i]:i]:void 0}}var J=Math.max;function Q(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:U(t);return a<0&&(a=J(e+a,0)),P(n,m(r),a)}var hn=D(Q);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=M(n)?w:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var e=-1,a=n.length;++e<a;){var f=n[e],i=r(f);if(i!=null&&(s===void 0?i===i&&!v(i):t(i,s)))var s=i,d=f}return d}function on(n){return n&&n.length?tn(n,y,rn):void 0}function an(n,r,t,e){if(!g(n))return n;r=x(r,n);for(var a=-1,f=r.length,i=f-1,s=n;s!=null&&++a<f;){var d=A(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=i){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:B(r[a+1])?[]:{})}T(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var e=-1,a=r.length,f={};++e<a;){var i=r[e],s=N(n,i);t(s,i)&&an(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,U as j,un as l,gn as m,K as t};
|
||||
1
lightrag/api/webui/assets/_basePickBy-BZlRisJu.js
generated
Normal file
1
lightrag/api/webui/assets/_basePickBy-BZlRisJu.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{e as o,c as l,g as b,k as O,h as P,j as p,l as w,m as c,n as v,t as A,o as N}from"./_baseUniq-DkG1DiI3.js";import{a_ as g,aw as _,a$ as $,b0 as E,b1 as F,b2 as x,b3 as M,b4 as y,b5 as B,b6 as T}from"./mermaid-vendor-BOzHoVUU.js";var S=/\s/;function G(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var m=NaN,R=/^[-+]0x[0-9a-f]+$/i,q=/^0b[01]+$/i,z=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(o(n))return m;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=q.test(n);return t||z.test(n)?C(n.slice(2),t?2:8):R.test(n)?m:+n}var W=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=K(n),n===W||n===-1/0){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?l(n):[]}var I=Object.prototype,J=I.hasOwnProperty,dn=_(function(n,r){n=Object(n);var t=-1,e=r.length,i=e>2?r[2]:void 0;for(i&&$(r[0],r[1],i)&&(e=1);++t<e;)for(var f=r[t],a=E(f),s=-1,d=a.length;++s<d;){var u=a[s],h=n[u];(h===void 0||F(h,I[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,e){var i=Object(r);if(!x(r)){var f=b(t);r=O(r),t=function(s){return f(i[s],s,i)}}var a=n(r,t,e);return a>-1?i[f?r[a]:a]:void 0}}var U=Math.max;function Z(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var i=t==null?0:D(t);return i<0&&(i=U(e+i,0)),P(n,b(r),i)}var hn=Q(Z);function V(n,r){var t=-1,e=x(n)?Array(n.length):[];return p(n,function(i,f,a){e[++t]=r(i,f,a)}),e}function gn(n,r){var t=M(n)?w:V;return t(n,b(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function bn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var e=-1,i=n.length;++e<i;){var f=n[e],a=r(f);if(a!=null&&(s===void 0?a===a&&!o(a):t(a,s)))var s=a,d=f}return d}function mn(n){return n&&n.length?tn(n,y,rn):void 0}function an(n,r,t,e){if(!g(n))return n;r=v(r,n);for(var i=-1,f=r.length,a=f-1,s=n;s!=null&&++i<f;){var d=A(r[i]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(i!=a){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:B(r[i+1])?[]:{})}T(s,d,u),s=s[d]}return n}function on(n,r,t){for(var e=-1,i=r.length,f={};++e<i;){var a=r[e],s=N(n,a);t(s,a)&&an(f,v(a,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,bn as h,dn as i,D as j,un as l,gn as m,Y as t};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
36
lightrag/api/webui/assets/architectureDiagram-SUXI7LT5-DxGZ4Qwo.js
generated
Normal file
36
lightrag/api/webui/assets/architectureDiagram-SUXI7LT5-DxGZ4Qwo.js
generated
Normal file
File diff suppressed because one or more lines are too long
122
lightrag/api/webui/assets/blockDiagram-6J76NXCF-DcYErWhY.js
generated
Normal file
122
lightrag/api/webui/assets/blockDiagram-6J76NXCF-DcYErWhY.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{_ as l}from"./mermaid-vendor-CuJcWrH0.js";function m(e,c){var i,t,o;e.accDescr&&((i=c.setAccDescription)==null||i.call(c,e.accDescr)),e.accTitle&&((t=c.setAccTitle)==null||t.call(c,e.accTitle)),e.title&&((o=c.setDiagramTitle)==null||o.call(c,e.title))}l(m,"populateCommonDb");export{m as p};
|
||||
import{_ as l}from"./mermaid-vendor-BOzHoVUU.js";function m(e,c){var i,t,o;e.accDescr&&((i=c.setAccDescription)==null||i.call(c,e.accDescr)),e.accTitle&&((t=c.setAccTitle)==null||t.call(c,e.accTitle)),e.title&&((o=c.setDiagramTitle)==null||o.call(c,e.title))}l(m,"populateCommonDb");export{m as p};
|
||||
|
|
@ -1 +1 @@
|
|||
import{_ as n,a1 as x,j as l}from"./mermaid-vendor-CuJcWrH0.js";var c=n((a,t)=>{const e=a.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class&&e.attr("class",t.class),e},"drawRect"),d=n((a,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};c(a,e).lower()},"drawBackgroundRect"),g=n((a,t)=>{const e=t.text.replace(x," "),r=a.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);const s=r.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),r},"drawText"),h=n((a,t,e,r)=>{const s=a.append("image");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",i)},"drawImage"),m=n((a,t,e,r)=>{const s=a.append("use");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",`#${i}`)},"drawEmbeddedImage"),y=n(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=n(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{d as a,p as b,m as c,c as d,h as e,g as f,y as g};
|
||||
import{_ as n,a2 as x,j as l}from"./mermaid-vendor-BOzHoVUU.js";var c=n((a,t)=>{const e=a.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class&&e.attr("class",t.class),e},"drawRect"),d=n((a,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};c(a,e).lower()},"drawBackgroundRect"),g=n((a,t)=>{const e=t.text.replace(x," "),r=a.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);const s=r.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),r},"drawText"),h=n((a,t,e,r)=>{const s=a.append("image");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",i)},"drawImage"),m=n((a,t,e,r)=>{const s=a.append("use");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",`#${i}`)},"drawEmbeddedImage"),y=n(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=n(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{d as a,p as b,m as c,c as d,h as e,g as f,y as g};
|
||||
|
|
@ -1 +1 @@
|
|||
import{_ as s}from"./mermaid-vendor-CuJcWrH0.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as I};
|
||||
import{_ as s}from"./mermaid-vendor-BOzHoVUU.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as I};
|
||||
220
lightrag/api/webui/assets/chunk-AEK57VVT-6am85ODh.js
generated
220
lightrag/api/webui/assets/chunk-AEK57VVT-6am85ODh.js
generated
File diff suppressed because one or more lines are too long
1
lightrag/api/webui/assets/chunk-BFAMUDN2-CmfJj-4x.js
generated
Normal file
1
lightrag/api/webui/assets/chunk-BFAMUDN2-CmfJj-4x.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{_ as a,d as o}from"./mermaid-vendor-BOzHoVUU.js";var d=a((t,e)=>{let n;return e==="sandbox"&&(n=o("#i"+t)),(e==="sandbox"?o(n.nodes()[0].contentDocument.body):o("body")).select(`[id="${t}"]`)},"getDiagramElement");export{d as g};
|
||||
15
lightrag/api/webui/assets/chunk-E2GYISFI-Bj4t4I37.js
generated
Normal file
15
lightrag/api/webui/assets/chunk-E2GYISFI-Bj4t4I37.js
generated
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import{_ as e}from"./mermaid-vendor-BOzHoVUU.js";var l=e(()=>`
|
||||
/* Font Awesome icon styling - consolidated */
|
||||
.label-icon {
|
||||
display: inline-block;
|
||||
height: 1em;
|
||||
overflow: visible;
|
||||
vertical-align: -0.125em;
|
||||
}
|
||||
|
||||
.node .label-icon path {
|
||||
fill: currentColor;
|
||||
stroke: revert;
|
||||
stroke-width: revert;
|
||||
}
|
||||
`,"getIconStyles");export{l as g};
|
||||
220
lightrag/api/webui/assets/chunk-OW32GOEJ-Cv4eoNWH.js
generated
Normal file
220
lightrag/api/webui/assets/chunk-OW32GOEJ-Cv4eoNWH.js
generated
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
import{_ as n,d as r,e as d,l as g}from"./mermaid-vendor-CuJcWrH0.js";var u=n((e,t)=>{let o;return t==="sandbox"&&(o=r("#i"+e)),(t==="sandbox"?r(o.nodes()[0].contentDocument.body):r("body")).select(`[id="${e}"]`)},"getDiagramElement"),b=n((e,t,o,i)=>{e.attr("class",o);const{width:a,height:s,x:h,y:x}=l(e,t);d(e,s,a,i);const c=w(h,x,a,s,t);e.attr("viewBox",c),g.debug(`viewBox configured: ${c} with padding: ${t}`)},"setupViewPortForSVG"),l=n((e,t)=>{var i;const o=((i=e.node())==null?void 0:i.getBBox())||{width:0,height:0,x:0,y:0};return{width:o.width+t*2,height:o.height+t*2,x:o.x,y:o.y}},"calculateDimensionsWithPadding"),w=n((e,t,o,i,a)=>`${e-a} ${t-a} ${o} ${i}`,"createViewBox");export{u as g,b as s};
|
||||
1
lightrag/api/webui/assets/chunk-SKB7J2MH-Bl1qvyQL.js
generated
Normal file
1
lightrag/api/webui/assets/chunk-SKB7J2MH-Bl1qvyQL.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{_ as a,e as w,l as x}from"./mermaid-vendor-BOzHoVUU.js";var d=a((e,t,i,o)=>{e.attr("class",i);const{width:r,height:h,x:n,y:c}=u(e,t);w(e,h,r,o);const s=l(n,c,r,h,t);e.attr("viewBox",s),x.debug(`viewBox configured: ${s} with padding: ${t}`)},"setupViewPortForSVG"),u=a((e,t)=>{var o;const i=((o=e.node())==null?void 0:o.getBBox())||{width:0,height:0,x:0,y:0};return{width:i.width+t*2,height:i.height+t*2,x:i.x,y:i.y}},"calculateDimensionsWithPadding"),l=a((e,t,i,o,r)=>`${e-r} ${t-r} ${i} ${o}`,"createViewBox");export{d as s};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-DGt_KYJH.js";import{_ as i}from"./mermaid-vendor-CuJcWrH0.js";import"./chunk-RZ5BOZE2-D3gEMbCJ.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram};
|
||||
1
lightrag/api/webui/assets/classDiagram-M3E45YP4-CzL1fI5K.js
generated
Normal file
1
lightrag/api/webui/assets/classDiagram-M3E45YP4-CzL1fI5K.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{s as a,c as s,a as e,C as t}from"./chunk-SZ463SBG-CsKBHaWY.js";import{_ as i}from"./mermaid-vendor-BOzHoVUU.js";import"./chunk-E2GYISFI-Bj4t4I37.js";import"./chunk-BFAMUDN2-CmfJj-4x.js";import"./chunk-SKB7J2MH-Bl1qvyQL.js";import"./feature-graph-bahMe5Gt.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var c={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
||||
|
|
@ -1 +0,0 @@
|
|||
import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-DGt_KYJH.js";import{_ as i}from"./mermaid-vendor-CuJcWrH0.js";import"./chunk-RZ5BOZE2-D3gEMbCJ.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram};
|
||||
1
lightrag/api/webui/assets/classDiagram-v2-YAWTLIQI-CzL1fI5K.js
generated
Normal file
1
lightrag/api/webui/assets/classDiagram-v2-YAWTLIQI-CzL1fI5K.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{s as a,c as s,a as e,C as t}from"./chunk-SZ463SBG-CsKBHaWY.js";import{_ as i}from"./mermaid-vendor-BOzHoVUU.js";import"./chunk-E2GYISFI-Bj4t4I37.js";import"./chunk-BFAMUDN2-CmfJj-4x.js";import"./chunk-SKB7J2MH-Bl1qvyQL.js";import"./feature-graph-bahMe5Gt.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var c={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
||||
1
lightrag/api/webui/assets/clone-CXHLa2LR.js
generated
Normal file
1
lightrag/api/webui/assets/clone-CXHLa2LR.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{b as r}from"./_baseUniq-DkG1DiI3.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
||||
1
lightrag/api/webui/assets/clone-Du5yQfgG.js
generated
1
lightrag/api/webui/assets/clone-Du5yQfgG.js
generated
|
|
@ -1 +0,0 @@
|
|||
import{b as r}from"./_baseUniq-CN7ubuxw.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
||||
File diff suppressed because one or more lines are too long
24
lightrag/api/webui/assets/diagram-5UYTHUR4-B0w9c3ea.js
generated
Normal file
24
lightrag/api/webui/assets/diagram-5UYTHUR4-B0w9c3ea.js
generated
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import{p as y}from"./chunk-353BL4L5-DshwP1ma.js";import{_ as l,s as B,g as S,t as z,q as F,a as P,b as E,F as v,K as W,e as T,z as D,G as _,H as A,l as w}from"./mermaid-vendor-BOzHoVUU.js";import{p as N}from"./treemap-75Q7IDZK-BCGfM6IV.js";import"./feature-graph-bahMe5Gt.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-DkG1DiI3.js";import"./_basePickBy-BZlRisJu.js";import"./clone-CXHLa2LR.js";var x={packet:[]},m=structuredClone(x),L=A.packet,Y=l(()=>{const t=v({...L,..._().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),G=l(()=>m.packet,"getPacket"),H=l(t=>{t.length>0&&m.packet.push(t)},"pushWord"),I=l(()=>{D(),m=structuredClone(x)},"clear"),u={pushWord:H,getPacket:G,getConfig:Y,clear:I,setAccTitle:E,getAccTitle:P,setDiagramTitle:F,getDiagramTitle:z,getAccDescription:S,setAccDescription:B},K=1e4,M=l(t=>{y(t,u);let e=-1,o=[],n=1;const{bitsPerRow:i}=u.getConfig();for(let{start:a,end:r,bits:c,label:f}of t.blocks){if(a!==void 0&&r!==void 0&&r<a)throw new Error(`Packet block ${a} - ${r} is invalid. End must be greater than start.`);if(a??(a=e+1),a!==e+1)throw new Error(`Packet block ${a} - ${r??a} is not contiguous. It should start from ${e+1}.`);if(c===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(r??(r=a+(c??1)-1),c??(c=r-a+1),e=r,w.debug(`Packet block ${a} - ${e} with label ${f}`);o.length<=i+1&&u.getPacket().length<K;){const[d,p]=O({start:a,end:r,bits:c,label:f},n,i);if(o.push(d),d.end+1===n*i&&(u.pushWord(o),o=[],n++),!p)break;({start:a,end:r,bits:c,label:f}=p)}}u.pushWord(o)},"populate"),O=l((t,e,o)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*o)return[t,void 0];const n=e*o-1,i=e*o;return[{start:t.start,end:n,label:t.label,bits:n-t.start},{start:i,end:t.end,label:t.label,bits:t.end-i}]},"getNextFittingBlock"),q={parse:l(async t=>{const e=await N("packet",t);w.debug(e),M(e)},"parse")},R=l((t,e,o,n)=>{const i=n.db,a=i.getConfig(),{rowHeight:r,paddingY:c,bitWidth:f,bitsPerRow:d}=a,p=i.getPacket(),s=i.getDiagramTitle(),k=r+c,g=k*(p.length+1)-(s?0:r),b=f*d+2,h=W(e);h.attr("viewbox",`0 0 ${b} ${g}`),T(h,g,b,a.useMaxWidth);for(const[C,$]of p.entries())U(h,$,C,a);h.append("text").text(s).attr("x",b/2).attr("y",g-k/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),U=l((t,e,o,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:r,bitsPerRow:c,showBits:f})=>{const d=t.append("g"),p=o*(n+a)+a;for(const s of e){const k=s.start%c*r+1,g=(s.end-s.start+1)*r-i;if(d.append("rect").attr("x",k).attr("y",p).attr("width",g).attr("height",n).attr("class","packetBlock"),d.append("text").attr("x",k+g/2).attr("y",p+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!f)continue;const b=s.end===s.start,h=p-2;d.append("text").attr("x",k+(b?g/2:0)).attr("y",h).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",b?"middle":"start").text(s.start),b||d.append("text").attr("x",k+g).attr("y",h).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),X={draw:R},j={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=l(({packet:t}={})=>{const e=v(j,t);return`
|
||||
.packetByte {
|
||||
font-size: ${e.byteFontSize};
|
||||
}
|
||||
.packetByte.start {
|
||||
fill: ${e.startByteColor};
|
||||
}
|
||||
.packetByte.end {
|
||||
fill: ${e.endByteColor};
|
||||
}
|
||||
.packetLabel {
|
||||
fill: ${e.labelColor};
|
||||
font-size: ${e.labelFontSize};
|
||||
}
|
||||
.packetTitle {
|
||||
fill: ${e.titleColor};
|
||||
font-size: ${e.titleFontSize};
|
||||
}
|
||||
.packetBlock {
|
||||
stroke: ${e.blockStrokeColor};
|
||||
stroke-width: ${e.blockStrokeWidth};
|
||||
fill: ${e.blockFillColor};
|
||||
}
|
||||
`},"styles"),lt={parser:q,db:u,renderer:X,styles:J};export{lt as diagram};
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
import{p as k}from"./chunk-4BMEZGHF-lnpW8Ujf.js";import{_ as l,s as R,g as F,t as I,q as _,a as E,b as D,K as G,z,F as y,G as C,H as P,l as H,Q as V}from"./mermaid-vendor-CuJcWrH0.js";import{p as W}from"./radar-MK3ICKWK-bzElGvQt.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-CN7ubuxw.js";import"./_basePickBy-4-C6UZHi.js";import"./clone-Du5yQfgG.js";var h={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:h},g=structuredClone(w),B=P.radar,j=l(()=>y({...B,...C().radar}),"getConfig"),b=l(()=>g.axes,"getAxes"),q=l(()=>g.curves,"getCurves"),K=l(()=>g.options,"getOptions"),N=l(a=>{g.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Q=l(a=>{g.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:U(t.entries)}))},"setCurves"),U=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),X=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});g.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??h.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??h.ticks,max:((s=t.max)==null?void 0:s.value)??h.max,min:((o=t.min)==null?void 0:o.value)??h.min,graticule:((i=t.graticule)==null?void 0:i.value)??h.graticule}},"setOptions"),Y=l(()=>{z(),g=structuredClone(w)},"clear"),$={getAxes:b,getCurves:q,getOptions:K,setAxes:N,setCurves:Q,setOptions:X,getConfig:j,clear:Y,setAccTitle:D,getAccTitle:E,setDiagramTitle:_,getDiagramTitle:I,getAccDescription:F,setAccDescription:R},Z=l(a=>{k(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),J={parse:l(async a=>{const t=await W("radar",a);H.debug(t),Z(t)},"parse")},tt=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),u=G(t),p=et(u,c),m=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),x=n.min,v=Math.min(c.width,c.height)/2;at(p,o,v,n.ticks,n.graticule),rt(p,o,v,c),M(p,o,i,x,m,n.graticule,c),T(p,i,n.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),et=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return a.attr("viewbox",`0 0 ${e} ${r}`).attr("width",e).attr("height",r),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),at=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,u)=>{const p=2*u*Math.PI/o-Math.PI/2,m=n*Math.cos(p),x=n*Math.sin(p);return`${m},${x}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),rt=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,u)=>{if(d.entries.length!==n)return;const p=d.entries.map((m,x)=>{const v=2*Math.PI*x/n-Math.PI/2,f=A(m,r,s,c),O=f*Math.cos(v),S=f*Math.sin(v);return{x:O,y:S}});o==="circle"?a.append("path").attr("d",L(p,i.curveTension)).attr("class",`radarCurve-${u}`):o==="polygon"&&a.append("polygon").attr("points",p.map(m=>`${m.x},${m.y}`).join(" ")).attr("class",`radarCurve-${u}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},u={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${u.x},${u.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var st={draw:tt},nt=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
|
||||
.radarCurve-${r} {
|
||||
color: ${s};
|
||||
fill: ${s};
|
||||
fill-opacity: ${t.curveOpacity};
|
||||
stroke: ${s};
|
||||
stroke-width: ${t.curveStrokeWidth};
|
||||
}
|
||||
.radarLegendBox-${r} {
|
||||
fill: ${s};
|
||||
fill-opacity: ${t.curveOpacity};
|
||||
stroke: ${s};
|
||||
}
|
||||
`}return e},"genIndexStyles"),ot=l(a=>{const t=V(),e=C(),r=y(t,e.themeVariables),s=y(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),it=l(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=ot(a);return`
|
||||
.radarTitle {
|
||||
font-size: ${t.fontSize};
|
||||
color: ${t.titleColor};
|
||||
dominant-baseline: hanging;
|
||||
text-anchor: middle;
|
||||
}
|
||||
.radarAxisLine {
|
||||
stroke: ${e.axisColor};
|
||||
stroke-width: ${e.axisStrokeWidth};
|
||||
}
|
||||
.radarAxisLabel {
|
||||
dominant-baseline: middle;
|
||||
text-anchor: middle;
|
||||
font-size: ${e.axisLabelFontSize}px;
|
||||
color: ${e.axisColor};
|
||||
}
|
||||
.radarGraticule {
|
||||
fill: ${e.graticuleColor};
|
||||
fill-opacity: ${e.graticuleOpacity};
|
||||
stroke: ${e.graticuleColor};
|
||||
stroke-width: ${e.graticuleStrokeWidth};
|
||||
}
|
||||
.radarLegendText {
|
||||
text-anchor: start;
|
||||
font-size: ${e.legendFontSize}px;
|
||||
dominant-baseline: hanging;
|
||||
}
|
||||
${nt(t,e)}
|
||||
`},"styles"),ft={parser:J,db:$,renderer:st,styles:it};export{ft as diagram};
|
||||
24
lightrag/api/webui/assets/diagram-VMROVX33-55nCUjKZ.js
generated
Normal file
24
lightrag/api/webui/assets/diagram-VMROVX33-55nCUjKZ.js
generated
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1,24 +0,0 @@
|
|||
import{p as w}from"./chunk-4BMEZGHF-lnpW8Ujf.js";import{_ as n,s as B,g as S,t as F,q as z,a as P,b as W,F as x,K as T,e as D,z as _,G as A,H as E,l as v}from"./mermaid-vendor-CuJcWrH0.js";import{p as N}from"./radar-MK3ICKWK-bzElGvQt.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-CN7ubuxw.js";import"./_basePickBy-4-C6UZHi.js";import"./clone-Du5yQfgG.js";var C={packet:[]},h=structuredClone(C),L=E.packet,Y=n(()=>{const t=x({...L,...A().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),G=n(()=>h.packet,"getPacket"),H=n(t=>{t.length>0&&h.packet.push(t)},"pushWord"),I=n(()=>{_(),h=structuredClone(C)},"clear"),m={pushWord:H,getPacket:G,getConfig:Y,clear:I,setAccTitle:W,getAccTitle:P,setDiagramTitle:z,getDiagramTitle:F,getAccDescription:S,setAccDescription:B},K=1e4,M=n(t=>{w(t,m);let e=-1,o=[],s=1;const{bitsPerRow:i}=m.getConfig();for(let{start:a,end:r,label:p}of t.blocks){if(r&&r<a)throw new Error(`Packet block ${a} - ${r} is invalid. End must be greater than start.`);if(a!==e+1)throw new Error(`Packet block ${a} - ${r??a} is not contiguous. It should start from ${e+1}.`);for(e=r??a,v.debug(`Packet block ${a} - ${e} with label ${p}`);o.length<=i+1&&m.getPacket().length<K;){const[b,c]=O({start:a,end:r,label:p},s,i);if(o.push(b),b.end+1===s*i&&(m.pushWord(o),o=[],s++),!c)break;({start:a,end:r,label:p}=c)}}m.pushWord(o)},"populate"),O=n((t,e,o)=>{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*o?[t,void 0]:[{start:t.start,end:e*o-1,label:t.label},{start:e*o,end:t.end,label:t.label}]},"getNextFittingBlock"),q={parse:n(async t=>{const e=await N("packet",t);v.debug(e),M(e)},"parse")},R=n((t,e,o,s)=>{const i=s.db,a=i.getConfig(),{rowHeight:r,paddingY:p,bitWidth:b,bitsPerRow:c}=a,u=i.getPacket(),l=i.getDiagramTitle(),g=r+p,d=g*(u.length+1)-(l?0:r),k=b*c+2,f=T(e);f.attr("viewbox",`0 0 ${k} ${d}`),D(f,d,k,a.useMaxWidth);for(const[$,y]of u.entries())U(f,y,$,a);f.append("text").text(l).attr("x",k/2).attr("y",d-g/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),U=n((t,e,o,{rowHeight:s,paddingX:i,paddingY:a,bitWidth:r,bitsPerRow:p,showBits:b})=>{const c=t.append("g"),u=o*(s+a)+a;for(const l of e){const g=l.start%p*r+1,d=(l.end-l.start+1)*r-i;if(c.append("rect").attr("x",g).attr("y",u).attr("width",d).attr("height",s).attr("class","packetBlock"),c.append("text").attr("x",g+d/2).attr("y",u+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(l.label),!b)continue;const k=l.end===l.start,f=u-2;c.append("text").attr("x",g+(k?d/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(l.start),k||c.append("text").attr("x",g+d).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(l.end)}},"drawWord"),X={draw:R},j={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=n(({packet:t}={})=>{const e=x(j,t);return`
|
||||
.packetByte {
|
||||
font-size: ${e.byteFontSize};
|
||||
}
|
||||
.packetByte.start {
|
||||
fill: ${e.startByteColor};
|
||||
}
|
||||
.packetByte.end {
|
||||
fill: ${e.endByteColor};
|
||||
}
|
||||
.packetLabel {
|
||||
fill: ${e.labelColor};
|
||||
font-size: ${e.labelFontSize};
|
||||
}
|
||||
.packetTitle {
|
||||
fill: ${e.titleColor};
|
||||
font-size: ${e.titleFontSize};
|
||||
}
|
||||
.packetBlock {
|
||||
stroke: ${e.blockStrokeColor};
|
||||
stroke-width: ${e.blockStrokeWidth};
|
||||
fill: ${e.blockFillColor};
|
||||
}
|
||||
`},"styles"),it={parser:q,db:m,renderer:X,styles:J};export{it as diagram};
|
||||
43
lightrag/api/webui/assets/diagram-ZTM2IBQH-DU929E49.js
generated
Normal file
43
lightrag/api/webui/assets/diagram-ZTM2IBQH-DU929E49.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
88
lightrag/api/webui/assets/feature-documents-cF4-Vta6.js
generated
Normal file
88
lightrag/api/webui/assets/feature-documents-cF4-Vta6.js
generated
Normal file
File diff suppressed because one or more lines are too long
730
lightrag/api/webui/assets/feature-graph-CeEpF_Yb.js
generated
730
lightrag/api/webui/assets/feature-graph-CeEpF_Yb.js
generated
File diff suppressed because one or more lines are too long
729
lightrag/api/webui/assets/feature-graph-bahMe5Gt.js
generated
Normal file
729
lightrag/api/webui/assets/feature-graph-bahMe5Gt.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
162
lightrag/api/webui/assets/flowDiagram-KYDEHFYC-jEI5eok_.js
generated
Normal file
162
lightrag/api/webui/assets/flowDiagram-KYDEHFYC-jEI5eok_.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
267
lightrag/api/webui/assets/ganttDiagram-EK5VF46D-DVkuF32e.js
generated
Normal file
267
lightrag/api/webui/assets/ganttDiagram-EK5VF46D-DVkuF32e.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
65
lightrag/api/webui/assets/gitGraphDiagram-GW3U2K7C-DGr7TQha.js
generated
Normal file
65
lightrag/api/webui/assets/gitGraphDiagram-GW3U2K7C-DGr7TQha.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
import{j as o,Y as ld,O as fg,k as dg,u as ad,Z as mg,c as hg,l as gg,g as pg,S as yg,T as vg,n as bg,m as nd,o as Sg,p as Tg,$ as ud,a0 as id,a1 as cd,a2 as xg}from"./ui-vendor-CeCm8EER.js";import{d as Ag,h as Dg,r as E,u as sd,H as Ng,i as Eg,j as kf}from"./react-vendor-DEwriMA6.js";import{N as we,c as Ve,ai as od,u as Bt,M as st,aj as rd,ak as fd,I as us,B as Cn,D as Mg,l as zg,m as Cg,n as Og,o as jg,al as _g,am as Rg,an as Ug,ao as Hg,ap as qt,aq as dd,ar as ss,as as is,a1 as Lg,a2 as qg,a3 as Bg,a4 as Gg,at as Yg,au as Xg,av as md,aw as wg,ax as hd,ay as Vg,az as gd,d as Qg,R as Kg,V as Zg,g as En,aA as kg,aB as Jg,aC as Fg}from"./feature-graph-CeEpF_Yb.js";import{S as Jf,a as Ff,b as Pf,c as $f,e as rl,D as Pg}from"./feature-documents-DaeP3jJU.js";import{R as $g}from"./feature-retrieval-CTawnaAw.js";import{i as cs}from"./utils-vendor-BysuhMZA.js";import"./graph-vendor-B-X5JegA.js";import"./mermaid-vendor-CuJcWrH0.js";import"./markdown-vendor-BKOfNAUO.js";(function(){const y=document.createElement("link").relList;if(y&&y.supports&&y.supports("modulepreload"))return;for(const N of document.querySelectorAll('link[rel="modulepreload"]'))d(N);new MutationObserver(N=>{for(const j of N)if(j.type==="childList")for(const H of j.addedNodes)H.tagName==="LINK"&&H.rel==="modulepreload"&&d(H)}).observe(document,{childList:!0,subtree:!0});function x(N){const j={};return N.integrity&&(j.integrity=N.integrity),N.referrerPolicy&&(j.referrerPolicy=N.referrerPolicy),N.crossOrigin==="use-credentials"?j.credentials="include":N.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function d(N){if(N.ep)return;N.ep=!0;const j=x(N);fetch(N.href,j)}})();var ls={exports:{}},Mn={},as={exports:{}},ns={};/**
|
||||
import{j as o,Y as ld,O as fg,k as dg,u as ad,Z as mg,c as hg,l as gg,g as pg,S as yg,T as vg,n as bg,m as nd,o as Sg,p as Tg,$ as ud,a0 as id,a1 as cd,a2 as xg}from"./ui-vendor-CeCm8EER.js";import{d as Ag,h as Dg,r as E,u as sd,H as Ng,i as Eg,j as kf}from"./react-vendor-DEwriMA6.js";import{N as we,c as Ve,ae as od,u as Bt,M as st,af as rd,ag as fd,I as us,B as Cn,D as Mg,l as zg,m as Cg,n as Og,o as jg,ah as _g,ai as Rg,aj as Ug,ak as Hg,al as qt,am as dd,an as ss,ao as is,a1 as Lg,a2 as qg,a3 as Bg,a4 as Gg,ap as Yg,aq as Xg,ar as md,as as wg,at as hd,au as Vg,av as gd,d as Qg,R as Kg,V as Zg,g as En,aw as kg,ax as Jg,ay as Fg}from"./feature-graph-bahMe5Gt.js";import{S as Jf,a as Ff,b as Pf,c as $f,e as rl,D as Pg}from"./feature-documents-cF4-Vta6.js";import{R as $g}from"./feature-retrieval-CnKoygV2.js";import{i as cs}from"./utils-vendor-BysuhMZA.js";import"./graph-vendor-B-X5JegA.js";import"./mermaid-vendor-BOzHoVUU.js";import"./markdown-vendor-DmIvJdn7.js";(function(){const y=document.createElement("link").relList;if(y&&y.supports&&y.supports("modulepreload"))return;for(const N of document.querySelectorAll('link[rel="modulepreload"]'))d(N);new MutationObserver(N=>{for(const j of N)if(j.type==="childList")for(const H of j.addedNodes)H.tagName==="LINK"&&H.rel==="modulepreload"&&d(H)}).observe(document,{childList:!0,subtree:!0});function x(N){const j={};return N.integrity&&(j.integrity=N.integrity),N.referrerPolicy&&(j.referrerPolicy=N.referrerPolicy),N.crossOrigin==="use-credentials"?j.credentials="include":N.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function d(N){if(N.ep)return;N.ep=!0;const j=x(N);fetch(N.href,j)}})();var ls={exports:{}},Mn={},as={exports:{}},ns={};/**
|
||||
* @license React
|
||||
* scheduler.production.js
|
||||
*
|
||||
3
lightrag/api/webui/assets/index-VdaexpWA.js
generated
Normal file
3
lightrag/api/webui/assets/index-VdaexpWA.js
generated
Normal file
File diff suppressed because one or more lines are too long
263
lightrag/api/webui/assets/index-pJoUdgr0.js
generated
263
lightrag/api/webui/assets/index-pJoUdgr0.js
generated
File diff suppressed because one or more lines are too long
2
lightrag/api/webui/assets/infoDiagram-LHK5PUON-RAWFfZhB.js
generated
Normal file
2
lightrag/api/webui/assets/infoDiagram-LHK5PUON-RAWFfZhB.js
generated
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
import{_ as e,l as o,K as i,e as n,L as p}from"./mermaid-vendor-BOzHoVUU.js";import{p as m}from"./treemap-75Q7IDZK-BCGfM6IV.js";import"./feature-graph-bahMe5Gt.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-DkG1DiI3.js";import"./_basePickBy-BZlRisJu.js";import"./clone-CXHLa2LR.js";var g={parse:e(async r=>{const a=await m("info",r);o.debug(a)},"parse")},v={version:p.version+""},d=e(()=>v.version,"getVersion"),c={getVersion:d},l=e((r,a,s)=>{o.debug(`rendering info diagram
|
||||
`+r);const t=i(a);n(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${s}`)},"draw"),f={draw:l},L={parser:g,db:c,renderer:f};export{L as diagram};
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import{_ as e,l as o,K as i,e as n,L as p}from"./mermaid-vendor-CuJcWrH0.js";import{p as m}from"./radar-MK3ICKWK-bzElGvQt.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-CN7ubuxw.js";import"./_basePickBy-4-C6UZHi.js";import"./clone-Du5yQfgG.js";var g={parse:e(async r=>{const a=await m("info",r);o.debug(a)},"parse")},v={version:p.version},d=e(()=>v.version,"getVersion"),c={getVersion:d},l=e((r,a,s)=>{o.debug(`rendering info diagram
|
||||
`+r);const t=i(a);n(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${s}`)},"draw"),f={draw:l},L={parser:g,db:c,renderer:f};export{L as diagram};
|
||||
139
lightrag/api/webui/assets/journeyDiagram-EWQZEKCU-C8hrNfef.js
generated
Normal file
139
lightrag/api/webui/assets/journeyDiagram-EWQZEKCU-C8hrNfef.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
217
lightrag/api/webui/assets/mermaid-vendor-BOzHoVUU.js
generated
Normal file
217
lightrag/api/webui/assets/mermaid-vendor-BOzHoVUU.js
generated
Normal file
File diff suppressed because one or more lines are too long
213
lightrag/api/webui/assets/mermaid-vendor-CuJcWrH0.js
generated
213
lightrag/api/webui/assets/mermaid-vendor-CuJcWrH0.js
generated
File diff suppressed because one or more lines are too long
95
lightrag/api/webui/assets/mindmap-definition-6CBA2TL7-Kn6oZbpT.js
generated
Normal file
95
lightrag/api/webui/assets/mindmap-definition-6CBA2TL7-Kn6oZbpT.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
import{p as N}from"./chunk-4BMEZGHF-lnpW8Ujf.js";import{_ as i,g as B,s as U,a as q,b as H,t as K,q as V,l as C,c as Z,F as j,K as J,M as Q,N as z,O as X,e as Y,z as tt,P as et,H as at}from"./mermaid-vendor-CuJcWrH0.js";import{p as rt}from"./radar-MK3ICKWK-bzElGvQt.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-CN7ubuxw.js";import"./_basePickBy-4-C6UZHi.js";import"./clone-Du5yQfgG.js";var it=at.pie,D={sections:new Map,showData:!1},f=D.sections,w=D.showData,st=structuredClone(it),ot=i(()=>structuredClone(st),"getConfig"),nt=i(()=>{f=new Map,w=D.showData,tt()},"clear"),lt=i(({label:t,value:a})=>{f.has(t)||(f.set(t,a),C.debug(`added new section: ${t}, with value: ${a}`))},"addSection"),ct=i(()=>f,"getSections"),pt=i(t=>{w=t},"setShowData"),dt=i(()=>w,"getShowData"),F={getConfig:ot,clear:nt,setDiagramTitle:V,getDiagramTitle:K,setAccTitle:H,getAccTitle:q,setAccDescription:U,getAccDescription:B,addSection:lt,getSections:ct,setShowData:pt,getShowData:dt},gt=i((t,a)=>{N(t,a),a.setShowData(t.showData),t.sections.map(a.addSection)},"populateDb"),ut={parse:i(async t=>{const a=await rt("pie",t);C.debug(a),gt(a,F)},"parse")},mt=i(t=>`
|
||||
import{p as N}from"./chunk-353BL4L5-DshwP1ma.js";import{_ as i,g as B,s as U,a as q,b as H,t as K,q as V,l as C,c as Z,F as j,K as J,M as Q,N as z,O as X,e as Y,z as tt,P as et,H as at}from"./mermaid-vendor-BOzHoVUU.js";import{p as rt}from"./treemap-75Q7IDZK-BCGfM6IV.js";import"./feature-graph-bahMe5Gt.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-DkG1DiI3.js";import"./_basePickBy-BZlRisJu.js";import"./clone-CXHLa2LR.js";var it=at.pie,D={sections:new Map,showData:!1},f=D.sections,w=D.showData,st=structuredClone(it),ot=i(()=>structuredClone(st),"getConfig"),nt=i(()=>{f=new Map,w=D.showData,tt()},"clear"),lt=i(({label:t,value:a})=>{f.has(t)||(f.set(t,a),C.debug(`added new section: ${t}, with value: ${a}`))},"addSection"),ct=i(()=>f,"getSections"),pt=i(t=>{w=t},"setShowData"),dt=i(()=>w,"getShowData"),F={getConfig:ot,clear:nt,setDiagramTitle:V,getDiagramTitle:K,setAccTitle:H,getAccTitle:q,setAccDescription:U,getAccDescription:B,addSection:lt,getSections:ct,setShowData:pt,getShowData:dt},gt=i((t,a)=>{N(t,a),a.setShowData(t.showData),t.sections.map(a.addSection)},"populateDb"),ut={parse:i(async t=>{const a=await rt("pie",t);C.debug(a),gt(a,F)},"parse")},mt=i(t=>`
|
||||
.pieCircle{
|
||||
stroke: ${t.pieStrokeColor};
|
||||
stroke-width : ${t.pieStrokeWidth};
|
||||
File diff suppressed because one or more lines are too long
128
lightrag/api/webui/assets/radar-MK3ICKWK-bzElGvQt.js
generated
128
lightrag/api/webui/assets/radar-MK3ICKWK-bzElGvQt.js
generated
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
122
lightrag/api/webui/assets/sequenceDiagram-SKLFT4DO-Dfj6wn25.js
generated
Normal file
122
lightrag/api/webui/assets/sequenceDiagram-SKLFT4DO-Dfj6wn25.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
lightrag/api/webui/assets/stateDiagram-MI5ZYTHO-_bvO_A_v.js
generated
Normal file
1
lightrag/api/webui/assets/stateDiagram-MI5ZYTHO-_bvO_A_v.js
generated
Normal file
File diff suppressed because one or more lines are too long
1
lightrag/api/webui/assets/stateDiagram-v2-5AN5P6BG-BddHgqbi.js
generated
Normal file
1
lightrag/api/webui/assets/stateDiagram-v2-5AN5P6BG-BddHgqbi.js
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{s as r,b as e,a,S as i}from"./chunk-OW32GOEJ-Cv4eoNWH.js";import{_ as s}from"./mermaid-vendor-BOzHoVUU.js";import"./chunk-BFAMUDN2-CmfJj-4x.js";import"./chunk-SKB7J2MH-Bl1qvyQL.js";import"./feature-graph-bahMe5Gt.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:a,get db(){return new i(2)},renderer:e,styles:r,init:s(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{f as diagram};
|
||||
|
|
@ -1 +0,0 @@
|
|||
import{s as r,b as e,a,S as s}from"./chunk-AEK57VVT-6am85ODh.js";import{_ as i}from"./mermaid-vendor-CuJcWrH0.js";import"./chunk-RZ5BOZE2-D3gEMbCJ.js";import"./feature-graph-CeEpF_Yb.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var b={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{b as diagram};
|
||||
File diff suppressed because one or more lines are too long
61
lightrag/api/webui/assets/timeline-definition-MYPXXCX6-ChkNsZ2q.js
generated
Normal file
61
lightrag/api/webui/assets/timeline-definition-MYPXXCX6-ChkNsZ2q.js
generated
Normal file
File diff suppressed because one or more lines are too long
128
lightrag/api/webui/assets/treemap-75Q7IDZK-BCGfM6IV.js
generated
Normal file
128
lightrag/api/webui/assets/treemap-75Q7IDZK-BCGfM6IV.js
generated
Normal file
File diff suppressed because one or more lines are too long
7
lightrag/api/webui/assets/xychartDiagram-H2YORKM3-CMrwvRk5.js
generated
Normal file
7
lightrag/api/webui/assets/xychartDiagram-H2YORKM3-CMrwvRk5.js
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
12
lightrag/api/webui/index.html
generated
12
lightrag/api/webui/index.html
generated
|
|
@ -8,16 +8,16 @@
|
|||
<link rel="icon" type="image/png" href="favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Lightrag</title>
|
||||
<script type="module" crossorigin src="/webui/assets/index-KW-eZWPA.js"></script>
|
||||
<script type="module" crossorigin src="/webui/assets/index-Bjp1KQxU.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/react-vendor-DEwriMA6.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/ui-vendor-CeCm8EER.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/graph-vendor-B-X5JegA.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/utils-vendor-BysuhMZA.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/feature-graph-CeEpF_Yb.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/feature-documents-DaeP3jJU.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/mermaid-vendor-CuJcWrH0.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/markdown-vendor-BKOfNAUO.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/feature-retrieval-CTawnaAw.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/feature-graph-bahMe5Gt.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/feature-documents-cF4-Vta6.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/mermaid-vendor-BOzHoVUU.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/markdown-vendor-DmIvJdn7.js">
|
||||
<link rel="modulepreload" crossorigin href="/webui/assets/feature-retrieval-CnKoygV2.js">
|
||||
<link rel="stylesheet" crossorigin href="/webui/assets/feature-graph-BipNuM18.css">
|
||||
<link rel="stylesheet" crossorigin href="/webui/assets/index-BvrNHAMA.css">
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -2222,7 +2222,7 @@ async def extract_entities(
|
|||
await asyncio.wait(pending)
|
||||
|
||||
# Add progress prefix to the exception message
|
||||
progress_prefix = f"Chunks[{processed_chunks+1}/{total_chunks}]"
|
||||
progress_prefix = f"C[{processed_chunks+1}/{total_chunks}]"
|
||||
|
||||
# Re-raise the original exception with a prefix
|
||||
prefixed_exception = create_prefixed_exception(first_exception, progress_prefix)
|
||||
|
|
|
|||
|
|
@ -236,6 +236,26 @@ export default function DocumentManager() {
|
|||
const [selectedDocIds, setSelectedDocIds] = useState<string[]>([])
|
||||
const isSelectionMode = selectedDocIds.length > 0
|
||||
|
||||
// Add refs to track previous pipelineBusy state and current interval
|
||||
const prevPipelineBusyRef = useRef<boolean | undefined>(undefined);
|
||||
const pollingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);
|
||||
|
||||
// Add retry mechanism state
|
||||
const [retryState, setRetryState] = useState({
|
||||
count: 0,
|
||||
lastError: null as Error | null,
|
||||
isBackingOff: false
|
||||
});
|
||||
|
||||
// Add circuit breaker state
|
||||
const [circuitBreakerState, setCircuitBreakerState] = useState({
|
||||
isOpen: false,
|
||||
failureCount: 0,
|
||||
lastFailureTime: null as number | null,
|
||||
nextRetryTime: null as number | null
|
||||
});
|
||||
|
||||
|
||||
// Handle checkbox change for individual documents
|
||||
const handleDocumentSelect = useCallback((docId: string, checked: boolean) => {
|
||||
setSelectedDocIds(prev => {
|
||||
|
|
@ -519,6 +539,98 @@ export default function DocumentManager() {
|
|||
setDocs(response.pagination.total_count > 0 ? legacyDocs : null);
|
||||
}, []);
|
||||
|
||||
// Utility function to create timeout wrapper for API calls
|
||||
const withTimeout = useCallback((
|
||||
promise: Promise<any>,
|
||||
timeoutMs: number = 30000,
|
||||
errorMsg: string = 'Request timeout'
|
||||
): Promise<any> => {
|
||||
const timeoutPromise = new Promise((_, reject) => {
|
||||
setTimeout(() => reject(new Error(errorMsg)), timeoutMs)
|
||||
});
|
||||
return Promise.race([promise, timeoutPromise]);
|
||||
}, []);
|
||||
|
||||
|
||||
// Enhanced error classification
|
||||
const classifyError = useCallback((error: any) => {
|
||||
if (error.name === 'AbortError') {
|
||||
return { type: 'cancelled', shouldRetry: false, shouldShowToast: false };
|
||||
}
|
||||
|
||||
if (error.message === 'Request timeout') {
|
||||
return { type: 'timeout', shouldRetry: true, shouldShowToast: true };
|
||||
}
|
||||
|
||||
if (error.message?.includes('Network Error') || error.code === 'NETWORK_ERROR') {
|
||||
return { type: 'network', shouldRetry: true, shouldShowToast: true };
|
||||
}
|
||||
|
||||
if (error.status >= 500) {
|
||||
return { type: 'server', shouldRetry: true, shouldShowToast: true };
|
||||
}
|
||||
|
||||
if (error.status >= 400 && error.status < 500) {
|
||||
return { type: 'client', shouldRetry: false, shouldShowToast: true };
|
||||
}
|
||||
|
||||
return { type: 'unknown', shouldRetry: true, shouldShowToast: true };
|
||||
}, []);
|
||||
|
||||
// Circuit breaker utility functions
|
||||
const isCircuitBreakerOpen = useCallback(() => {
|
||||
if (!circuitBreakerState.isOpen) return false;
|
||||
|
||||
const now = Date.now();
|
||||
if (circuitBreakerState.nextRetryTime && now >= circuitBreakerState.nextRetryTime) {
|
||||
// Reset circuit breaker to half-open state
|
||||
setCircuitBreakerState(prev => ({
|
||||
...prev,
|
||||
isOpen: false,
|
||||
failureCount: Math.max(0, prev.failureCount - 1)
|
||||
}));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}, [circuitBreakerState]);
|
||||
|
||||
const recordFailure = useCallback((error: Error) => {
|
||||
const now = Date.now();
|
||||
setCircuitBreakerState(prev => {
|
||||
const newFailureCount = prev.failureCount + 1;
|
||||
const shouldOpen = newFailureCount >= 3; // Open after 3 failures
|
||||
|
||||
return {
|
||||
isOpen: shouldOpen,
|
||||
failureCount: newFailureCount,
|
||||
lastFailureTime: now,
|
||||
nextRetryTime: shouldOpen ? now + (Math.pow(2, newFailureCount) * 1000) : null
|
||||
};
|
||||
});
|
||||
|
||||
setRetryState(prev => ({
|
||||
count: prev.count + 1,
|
||||
lastError: error,
|
||||
isBackingOff: true
|
||||
}));
|
||||
}, []);
|
||||
|
||||
const recordSuccess = useCallback(() => {
|
||||
setCircuitBreakerState({
|
||||
isOpen: false,
|
||||
failureCount: 0,
|
||||
lastFailureTime: null,
|
||||
nextRetryTime: null
|
||||
});
|
||||
|
||||
setRetryState({
|
||||
count: 0,
|
||||
lastError: null,
|
||||
isBackingOff: false
|
||||
});
|
||||
}, []);
|
||||
|
||||
// Intelligent refresh function: handles all boundary cases
|
||||
const handleIntelligentRefresh = useCallback(async (
|
||||
targetPage?: number, // Optional target page, defaults to current page
|
||||
|
|
@ -540,7 +652,12 @@ export default function DocumentManager() {
|
|||
sort_direction: sortDirection
|
||||
};
|
||||
|
||||
const response = await getDocumentsPaginated(request);
|
||||
// Use timeout wrapper for the API call
|
||||
const response = await withTimeout(
|
||||
getDocumentsPaginated(request),
|
||||
30000, // 30 second timeout
|
||||
'Document fetch timeout'
|
||||
);
|
||||
|
||||
if (!isMountedRef.current) return;
|
||||
|
||||
|
|
@ -556,7 +673,11 @@ export default function DocumentManager() {
|
|||
page: lastPage
|
||||
};
|
||||
|
||||
const lastPageResponse = await getDocumentsPaginated(lastPageRequest);
|
||||
const lastPageResponse = await withTimeout(
|
||||
getDocumentsPaginated(lastPageRequest),
|
||||
30000,
|
||||
'Document fetch timeout'
|
||||
);
|
||||
|
||||
if (!isMountedRef.current) return;
|
||||
|
||||
|
|
@ -575,14 +696,22 @@ export default function DocumentManager() {
|
|||
|
||||
} catch (err) {
|
||||
if (isMountedRef.current) {
|
||||
toast.error(t('documentPanel.documentManager.errors.loadFailed', { error: errorMessage(err) }));
|
||||
const errorClassification = classifyError(err);
|
||||
|
||||
if (errorClassification.shouldShowToast) {
|
||||
toast.error(t('documentPanel.documentManager.errors.loadFailed', { error: errorMessage(err) }));
|
||||
}
|
||||
|
||||
if (errorClassification.shouldRetry) {
|
||||
recordFailure(err as Error);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (isMountedRef.current) {
|
||||
setIsRefreshing(false);
|
||||
}
|
||||
}
|
||||
}, [statusFilter, pagination.page, pagination.page_size, sortField, sortDirection, t, updateComponentState]);
|
||||
}, [statusFilter, pagination.page, pagination.page_size, sortField, sortDirection, t, updateComponentState, withTimeout, classifyError, recordFailure]);
|
||||
|
||||
// New paginated data fetching function
|
||||
const fetchPaginatedDocuments = useCallback(async (
|
||||
|
|
@ -602,10 +731,6 @@ export default function DocumentManager() {
|
|||
await fetchPaginatedDocuments(pagination.page, pagination.page_size, statusFilter);
|
||||
}, [fetchPaginatedDocuments, pagination.page, pagination.page_size, statusFilter]);
|
||||
|
||||
// Add refs to track previous pipelineBusy state and current interval
|
||||
const prevPipelineBusyRef = useRef<boolean | undefined>(undefined);
|
||||
const pollingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);
|
||||
|
||||
// Function to clear current polling interval
|
||||
const clearPollingInterval = useCallback(() => {
|
||||
if (pollingIntervalRef.current) {
|
||||
|
|
@ -620,18 +745,49 @@ export default function DocumentManager() {
|
|||
|
||||
pollingIntervalRef.current = setInterval(async () => {
|
||||
try {
|
||||
// Check circuit breaker before making request
|
||||
if (isCircuitBreakerOpen()) {
|
||||
return; // Skip this polling cycle
|
||||
}
|
||||
|
||||
// Only perform fetch if component is still mounted
|
||||
if (isMountedRef.current) {
|
||||
await fetchDocuments()
|
||||
await fetchDocuments();
|
||||
recordSuccess(); // Record successful operation
|
||||
}
|
||||
} catch (err) {
|
||||
// Only show error if component is still mounted
|
||||
// Only handle error if component is still mounted
|
||||
if (isMountedRef.current) {
|
||||
toast.error(t('documentPanel.documentManager.errors.scanProgressFailed', { error: errorMessage(err) }))
|
||||
const errorClassification = classifyError(err);
|
||||
|
||||
// Always reset isRefreshing state on error
|
||||
setIsRefreshing(false);
|
||||
|
||||
if (errorClassification.shouldShowToast) {
|
||||
toast.error(t('documentPanel.documentManager.errors.scanProgressFailed', { error: errorMessage(err) }));
|
||||
}
|
||||
|
||||
if (errorClassification.shouldRetry) {
|
||||
recordFailure(err as Error);
|
||||
|
||||
// Implement exponential backoff for retries
|
||||
const backoffDelay = Math.min(Math.pow(2, retryState.count) * 1000, 30000); // Max 30s
|
||||
|
||||
if (retryState.count < 3) { // Max 3 retries
|
||||
setTimeout(() => {
|
||||
if (isMountedRef.current) {
|
||||
setRetryState(prev => ({ ...prev, isBackingOff: false }));
|
||||
}
|
||||
}, backoffDelay);
|
||||
}
|
||||
} else {
|
||||
// For non-retryable errors, stop polling
|
||||
clearPollingInterval();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, intervalMs);
|
||||
}, [fetchDocuments, t, clearPollingInterval]);
|
||||
}, [fetchDocuments, t, clearPollingInterval, isCircuitBreakerOpen, recordSuccess, recordFailure, classifyError, retryState.count]);
|
||||
|
||||
const scanDocuments = useCallback(async () => {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -23,12 +23,13 @@ import LegendButton from '@/components/graph/LegendButton'
|
|||
|
||||
import { useSettingsStore } from '@/stores/settings'
|
||||
import { useGraphStore } from '@/stores/graph'
|
||||
import { labelColorDarkTheme, labelColorLightTheme } from '@/lib/constants'
|
||||
|
||||
import '@react-sigma/core/lib/style.css'
|
||||
import '@react-sigma/graph-search/lib/style.css'
|
||||
|
||||
// Sigma settings
|
||||
const defaultSigmaSettings: Partial<SigmaSettings> = {
|
||||
// Function to create sigma settings based on theme
|
||||
const createSigmaSettings = (isDarkTheme: boolean): Partial<SigmaSettings> => ({
|
||||
allowInvalidContainer: true,
|
||||
defaultNodeType: 'default',
|
||||
defaultEdgeType: 'curvedNoArrow',
|
||||
|
|
@ -47,18 +48,18 @@ const defaultSigmaSettings: Partial<SigmaSettings> = {
|
|||
labelRenderedSizeThreshold: 12,
|
||||
enableEdgeEvents: true,
|
||||
labelColor: {
|
||||
color: '#000',
|
||||
color: isDarkTheme ? labelColorDarkTheme : labelColorLightTheme,
|
||||
attribute: 'labelColor'
|
||||
},
|
||||
edgeLabelColor: {
|
||||
color: '#000',
|
||||
color: isDarkTheme ? labelColorDarkTheme : labelColorLightTheme,
|
||||
attribute: 'labelColor'
|
||||
},
|
||||
edgeLabelSize: 8,
|
||||
labelSize: 12
|
||||
// minEdgeThickness: 2
|
||||
// labelFont: 'Lato, sans-serif'
|
||||
}
|
||||
})
|
||||
|
||||
const GraphEvents = () => {
|
||||
const registerEvents = useRegisterEvents()
|
||||
|
|
@ -107,7 +108,7 @@ const GraphEvents = () => {
|
|||
}
|
||||
|
||||
const GraphViewer = () => {
|
||||
const [sigmaSettings, setSigmaSettings] = useState(defaultSigmaSettings)
|
||||
const [sigmaSettings, setSigmaSettings] = useState<Partial<SigmaSettings>>({})
|
||||
const sigmaRef = useRef<any>(null)
|
||||
|
||||
const selectedNode = useGraphStore.use.selectedNode()
|
||||
|
|
@ -119,13 +120,15 @@ const GraphViewer = () => {
|
|||
const showNodeSearchBar = useSettingsStore.use.showNodeSearchBar()
|
||||
const enableNodeDrag = useSettingsStore.use.enableNodeDrag()
|
||||
const showLegend = useSettingsStore.use.showLegend()
|
||||
const theme = useSettingsStore.use.theme()
|
||||
|
||||
// Initialize sigma settings once on component mount
|
||||
// All dynamic settings will be updated in GraphControl using useSetSettings
|
||||
// Initialize sigma settings based on theme
|
||||
useEffect(() => {
|
||||
setSigmaSettings(defaultSigmaSettings)
|
||||
console.log('Initialized sigma settings')
|
||||
}, [])
|
||||
const isDarkTheme = theme === 'dark'
|
||||
const settings = createSigmaSettings(isDarkTheme)
|
||||
setSigmaSettings(settings)
|
||||
console.log('Initialized sigma settings for theme:', theme)
|
||||
}, [theme])
|
||||
|
||||
// Clean up sigma instance when component unmounts
|
||||
useEffect(() => {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ export const webuiPrefix = '/webui/'
|
|||
export const controlButtonVariant: ButtonVariantType = 'ghost'
|
||||
|
||||
export const labelColorDarkTheme = '#B2EBF2'
|
||||
export const labelColorLightTheme = '#000'
|
||||
export const LabelColorHighlightedDarkTheme = '#000'
|
||||
|
||||
export const nodeColorDisabled = '#E2E2E2'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue