@fgbg/mdocs 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-skills/changelog/SKILL.md +12 -1
- package/agent-skills/index.json +1 -1
- package/dist/web/assets/{AgentChatPanel-KiTv5uCF.js → AgentChatPanel-Bt38gm3b.js} +1 -1
- package/dist/web/assets/{AgentSkillFormCard-CP-HN--U.js → AgentSkillFormCard-CtfWIf7Y.js} +1 -1
- package/dist/web/assets/{AiWriteWorkbench-0wEf6qur.js → AiWriteWorkbench-Boie5E_-.js} +1 -1
- package/dist/web/assets/{DiagramEditor-NtNY3sZL-XBBS6Mu4.js → DiagramEditor-NtNY3sZL-CZy-tmEe.js} +1 -1
- package/dist/web/assets/{DocumentEditor-CeaspJgX.js → DocumentEditor-1A6lpvV-.js} +1 -1
- package/dist/web/assets/{MergeView-y24LKycd.js → MergeView-Dip0aW7s.js} +1 -1
- package/dist/web/assets/{PlaygroundPage-CYx8X23_.js → PlaygroundPage-C4X6Lj-Q.js} +1 -1
- package/dist/web/assets/{SettingsPage-Bor0wh4z.js → SettingsPage-nlnmzNZK.js} +1 -1
- package/dist/web/assets/{Toolbar-uyj1sA_r.js → Toolbar-BHLX-ug4.js} +1 -1
- package/dist/web/assets/{VisitorPickerModal-DljB4USS.js → VisitorPickerModal-BPyEWlQo.js} +1 -1
- package/dist/web/assets/{copy-DZj0Bj86.js → copy-BE64wQqi.js} +1 -1
- package/dist/web/assets/{index-CqUWQ28V.js → index-BkKvQv2F.js} +2 -2
- package/dist/web/assets/index-DKshvHIN.css +1 -0
- package/dist/web/assets/{meta2dEngine-BD2XbzaV-D2yFsZ_P.js → meta2dEngine-BD2XbzaV-z-eR7E_V.js} +1 -1
- package/dist/web/assets/{plus-Bcg3ots1.js → plus-ECzYbQfA.js} +1 -1
- package/dist/web/assets/{react-kYvt_3tR.js → react-GP8hKHRA.js} +3 -3
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/index-C4ESYs7f.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DocumentEditor-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DocumentEditor-1A6lpvV-.js","assets/react-vendor-BuABiQkA.js","assets/ui-BQStT3dY.js","assets/motion-DX3HNq_4.js","assets/react-GP8hKHRA.js","assets/editor-CL03se2B.js","assets/diagram-CT58wBdU.js","assets/plus-ECzYbQfA.js","assets/copy-BE64wQqi.js","assets/Toolbar-BHLX-ug4.js","assets/VisitorPickerModal-BPyEWlQo.js","assets/SettingsPage-nlnmzNZK.js","assets/AgentChatPanel-Bt38gm3b.js","assets/AgentSkillFormCard-CtfWIf7Y.js","assets/AiWriteWorkbench-Boie5E_-.js","assets/MergeView-Dip0aW7s.js","assets/PlaygroundPage-C4X6Lj-Q.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var jt=(e,n,r)=>ua(e,typeof n!="symbol"?n+"":n,r);import{r as _,j as f,R as Ko,B as fa,_ as zt,a8 as ma,a9 as ha,aa as pa,ab as zn,c as ga,ac as ya}from"./react-vendor-BuABiQkA.js";import{a5 as va,a6 as ba}from"./ui-BQStT3dY.js";import{d as xa,s as tr,p as _a,t as wa,a as ka,q as Ca,o as Ia,b as Sa,c as Da,e as ot,f as Pa,g as Na,y as Ta,m as Hr,h as Vr}from"./diagram-CT58wBdU.js";import{f as Aa}from"./motion-DX3HNq_4.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))o(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&o(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();/**
|
|
3
3
|
* @license lucide-react v0.562.0 - ISC
|
|
4
4
|
*
|
|
@@ -245,4 +245,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
245
245
|
}
|
|
246
246
|
`;Td(Ad);function hr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function Md(e){if(Array.isArray(e))return e}function Ed(e){if(Array.isArray(e))return hr(e)}function Oo(e,n,r){if(Mi())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,n);var i=new(e.bind.apply(e,o));return i}function nn(e,n,r){return(n=zd(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function Mi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Mi=function(){return!!e})()}function jd(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Od(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function Rd(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
247
247
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fd(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
248
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ro(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,o)}return r}function Rt(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?Ro(Object(r),!0).forEach(function(o){nn(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ro(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function tn(e,n){return Md(e)||Od(e,n)||Ei(e,n)||Rd()}function $e(e){return Ed(e)||jd(e)||Ei(e)||Fd()}function Ld(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function zd(e){var n=Ld(e,"string");return typeof n=="symbol"?n:n+""}function pr(e){"@babel/helpers - typeof";return pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},pr(e)}function Ei(e,n){if(e){if(typeof e=="string")return hr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hr(e,n):void 0}}var $d=Ia(Sa);function Fo(e,n,r){!n||typeof r!="string"||e.filter(function(o){return!o[r]}).forEach(function(o){o[r]=$d(n(o))})}function Ud(e,n){var r=e.nodes,o=e.links,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.nodeFilter,s=a===void 0?function(){return!0}:a,l=i.onLoopError,d=l===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:l,c={};r.forEach(function(p){return c[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),o.forEach(function(p){var g=p.source,k=p.target,b=I(g),v=I(k);if(!c.hasOwnProperty(b))throw"Missing source node with id: ".concat(b);if(!c.hasOwnProperty(v))throw"Missing target node with id: ".concat(v);var w=c[b],D=c[v];w.out.push(D);function I(S){return pr(S)==="object"?n(S):S}});var h=[];m(Object.values(c));var u=Object.assign.apply(Object,[{}].concat($e(Object.entries(c).filter(function(p){var g=tn(p,2),k=g[1];return!k.skip}).map(function(p){var g=tn(p,2),k=g[0],b=g[1];return nn({},k,b.depth)}))));return u;function m(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,b=function(){var I=p[v];if(g.indexOf(I)!==-1){var S=[].concat($e(g.slice(g.indexOf(I))),[I]).map(function(N){return n(N.data)});return h.some(function(N){return N.length===S.length&&N.every(function(P,T){return P===S[T]})})||(h.push(S),d(S)),1}k>I.depth&&(I.depth=k,m(I.out,[].concat($e(g),[I]),k+(I.skip?0:1)))},v=0,w=p.length;v<w;v++)b()}}var Bd=2,we=function(n,r){return r.onNeedsRedraw&&r.onNeedsRedraw()},Lo=function(n,r){if(!r.isShadow){var o=ee(r.linkDirectionalParticles);r.graphData.links.forEach(function(i){var a=Math.round(Math.abs(o(i)));a?i.__photons=$e(Array(a)).map(function(){return{}}):delete i.__photons})}},Pn=xr({props:{graphData:{default:{nodes:[],links:[]},onChange:function(n,r){r.engineRunning=!1,Lo(n,r)}},dagMode:{onChange:function(n,r){!n&&(r.graphData.nodes||[]).forEach(function(o){return o.fx=o.fy=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(n){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:we},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:we},nodeColor:{default:"color",triggerUpdate:!1,onChange:we},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:we},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkColor:{default:"color",triggerUpdate:!1,onChange:we},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:we},linkWidth:{default:1,triggerUpdate:!1,onChange:we},linkCurvature:{default:0,triggerUpdate:!1,onChange:we},linkCanvasObject:{triggerUpdate:!1,onChange:we},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:we},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:we},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:we},linkDirectionalParticles:{default:0,triggerUpdate:!1,onChange:Lo},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},linkDirectionalParticleCanvasObject:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaDecay(n)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaTarget(n)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.velocityDecay(n)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(n,r,o){return o===void 0?n.forceLayout.force(r):(n.forceLayout.force(r,o),this)},d3ReheatSimulation:function(n){return n.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(n){return n.cntTicks=0,n.startTickTime=new Date,n.engineRunning=!0,this},isEngineRunning:function(n){return!!n.engineRunning},tickFrame:function(n){return!n.isShadow&&r(),i(),!n.isShadow&&a(),!n.isShadow&&s(),o(),this;function r(){n.engineRunning&&(++n.cntTicks>n.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin?(n.engineRunning=!1,n.onEngineStop()):(n.forceLayout.tick(),n.onEngineTick()))}function o(){var l=ee(n.nodeVisibility),d=ee(n.nodeVal),c=ee(n.nodeColor),h=ee(n.nodeCanvasObjectMode),u=n.ctx,m=n.isShadow/n.globalScale,p=n.graphData.nodes.filter(l);u.save(),p.forEach(function(g){var k=h(g);if(n.nodeCanvasObject&&(k==="before"||k==="replace")&&(n.nodeCanvasObject(g,u,n.globalScale),k==="replace")){u.restore();return}var b=Math.sqrt(Math.max(0,d(g)||1))*n.nodeRelSize+m;u.beginPath(),u.arc(g.x,g.y,b,0,2*Math.PI,!1),u.fillStyle=c(g)||"rgba(31, 120, 180, 0.92)",u.fill(),n.nodeCanvasObject&&k==="after"&&n.nodeCanvasObject(g,n.ctx,n.globalScale)}),u.restore()}function i(){var l=ee(n.linkVisibility),d=ee(n.linkColor),c=ee(n.linkWidth),h=ee(n.linkLineDash),u=ee(n.linkCurvature),m=ee(n.linkCanvasObjectMode),p=n.ctx,g=n.isShadow*2,k=n.graphData.links.filter(l);k.forEach(N);var b=[],v=[],w=k;if(n.linkCanvasObject){var D=[],I=[];k.forEach(function(P){return({before:b,after:v,replace:D}[m(P)]||I).push(P)}),w=[].concat($e(b),v,I),b=b.concat(D)}p.save(),b.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();var S=Nd(w,[d,c,h]);p.save(),Object.entries(S).forEach(function(P){var T=tn(P,2),U=T[0],E=T[1],$=!U||U==="undefined"?"rgba(0,0,0,0.15)":U;Object.entries(E).forEach(function(F){var B=tn(F,2),A=B[0],Y=B[1],te=(A||1)/n.globalScale+g;Object.entries(Y).forEach(function(ie){var ke=tn(ie,2);ke[0];var De=ke[1],Ae=h(De[0]);p.beginPath(),De.forEach(function(ye){var me=ye.source,ae=ye.target;if(!(!me||!ae||!me.hasOwnProperty("x")||!ae.hasOwnProperty("x"))){p.moveTo(me.x,me.y);var q=ye.__controlPoints;q?p[q.length===2?"quadraticCurveTo":"bezierCurveTo"].apply(p,$e(q).concat([ae.x,ae.y])):p.lineTo(ae.x,ae.y)}}),p.strokeStyle=$,p.lineWidth=te,p.setLineDash(Ae||[]),p.stroke()})})}),p.restore(),p.save(),v.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();function N(P){var T=u(P);if(!T){P.__controlPoints=null;return}var U=P.source,E=P.target;if(!(!U||!E||!U.hasOwnProperty("x")||!E.hasOwnProperty("x"))){var $=Math.sqrt(Math.pow(E.x-U.x,2)+Math.pow(E.y-U.y,2));if($>0){var F=Math.atan2(E.y-U.y,E.x-U.x),B=$*T,A={x:(U.x+E.x)/2+B*Math.cos(F-Math.PI/2),y:(U.y+E.y)/2+B*Math.sin(F-Math.PI/2)};P.__controlPoints=[A.x,A.y]}else{var Y=T*70;P.__controlPoints=[E.x,E.y-Y,E.x+Y,E.y]}}}}function a(){var l=1.6,d=.2,c=ee(n.linkDirectionalArrowLength),h=ee(n.linkDirectionalArrowRelPos),u=ee(n.linkVisibility),m=ee(n.linkDirectionalArrowColor||n.linkColor),p=ee(n.nodeVal),g=n.ctx;g.save(),n.graphData.links.filter(u).forEach(function(k){var b=c(k);if(!(!b||b<0)){var v=k.source,w=k.target;if(!(!v||!w||!v.hasOwnProperty("x")||!w.hasOwnProperty("x"))){var D=Math.sqrt(Math.max(0,p(v)||1))*n.nodeRelSize,I=Math.sqrt(Math.max(0,p(w)||1))*n.nodeRelSize,S=Math.min(1,Math.max(0,h(k))),N=m(k)||"rgba(0,0,0,0.28)",P=b/l/2,T=k.__controlPoints&&Oo(oe,[v.x,v.y].concat($e(k.__controlPoints),[w.x,w.y])),U=T?function(te){return T.get(te)}:function(te){return{x:v.x+(w.x-v.x)*te||0,y:v.y+(w.y-v.y)*te||0}},E=T?T.length():Math.sqrt(Math.pow(w.x-v.x,2)+Math.pow(w.y-v.y,2)),$=D+b+(E-D-I-b)*S,F=U($/E),B=U(($-b)/E),A=U(($-b*(1-d))/E),Y=Math.atan2(F.y-B.y,F.x-B.x)-Math.PI/2;g.beginPath(),g.moveTo(F.x,F.y),g.lineTo(B.x+P*Math.cos(Y),B.y+P*Math.sin(Y)),g.lineTo(A.x,A.y),g.lineTo(B.x-P*Math.cos(Y),B.y-P*Math.sin(Y)),g.fillStyle=N,g.fill()}}}),g.restore()}function s(){var l=ee(n.linkDirectionalParticles),d=ee(n.linkDirectionalParticleSpeed),c=ee(n.linkDirectionalParticleOffset),h=ee(n.linkDirectionalParticleWidth),u=ee(n.linkVisibility),m=ee(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(u).forEach(function(g){var k=l(g);if(!(!g.hasOwnProperty("__photons")||!g.__photons.length)){var b=g.source,v=g.target;if(!(!b||!v||!b.hasOwnProperty("x")||!v.hasOwnProperty("x"))){var w=d(g),D=Math.abs(c(g)),I=g.__photons||[],S=Math.max(0,h(g)/2)/Math.sqrt(n.globalScale),N=m(g)||"rgba(0,0,0,0.28)";p.fillStyle=N;var P=g.__controlPoints?Oo(oe,[b.x,b.y].concat($e(g.__controlPoints),[v.x,v.y])):null,T=0,U=!1;I.forEach(function(E){var $=!!E.__singleHop;if(E.hasOwnProperty("__progressRatio")||(E.__progressRatio=$?w<0?1:0:(T+D)/k),!$&&T++,E.__progressRatio+=w,E.__progressRatio>=1||E.__progressRatio<0)if(!$)E.__progressRatio=E.__progressRatio%1,E.__progressRatio<0&&E.__progressRatio++;else{U=!0;return}var F=E.__progressRatio,B=P?P.get(F):{x:b.x+(v.x-b.x)*F||0,y:b.y+(v.y-b.y)*F||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(B.x,B.y,g,p,n.globalScale):(p.beginPath(),p.arc(B.x,B.y,S,0,2*Math.PI,!1),p.fill())}),U&&(g.__photons=g.__photons.filter(function(E){return!E.__singleHop||E.__progressRatio<=1&&E.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:sd().force("link",Qc()).force("charge",ld()).force("center",yc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fo(n.graphData.nodes,ee(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fo(n.graphData.links,ee(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(m){m.source=m[n.linkSource],m.target=m[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var o=n.forceLayout.force("link");o&&o.id(function(m){return m[n.nodeId]}).links(n.graphData.links);var i=n.dagMode&&Ud(n.graphData,function(m){return m[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,$e(Object.values(i||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*Bd*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var l=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return delete m[l]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var d=["rl","bu"].includes(n.dagMode),c=function(p){return(i[p[n.nodeId]]-a/2)*s*(d?-1:1)},h=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return m[h]=c(m)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?cd(function(m){var p=i[m[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(m){return n.dagNodeFilter(m)?1:0}):null);for(var u=0;u<n.warmupTicks&&!(n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin);u++)n.forceLayout.tick();this.resetCountdown(),n.onFinishUpdate()}});function ji(e,n){var r=e instanceof Array?e:[e],o=new n;return o._destructor&&o._destructor(),{linkProp:function(a){return{default:o[a](),onChange:function(l,d){r.forEach(function(c){return d[c][a](l)})},triggerUpdate:!1}},linkMethod:function(a){return function(s){for(var l=arguments.length,d=new Array(l>1?l-1:0),c=1;c<l;c++)d[c-1]=arguments[c];var h=[];return r.forEach(function(u){var m=s[u],p=m[a].apply(m,d);p!==m&&h.push(p)}),h.length?h[0]:this}}}}var Hd=800,Vd=4,Gd=5,Oi=ji("forceGraph",Pn),Wd=ji(["forceGraph","shadowGraph"],Pn),qd=Object.assign.apply(Object,$e(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleCanvasObject","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(e){return nn({},e,Oi.linkProp(e))})).concat($e(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map(function(e){return nn({},e,Wd.linkProp(e))})))),Yd=Object.assign.apply(Object,$e(["d3Force","d3ReheatSimulation","emitParticle"].map(function(e){return nn({},e,Oi.linkMethod(e))})));function Wn(e){if(e.canvas){var n=e.canvas.width,r=e.canvas.height;n===300&&r===150&&(n=r=0);var o=window.devicePixelRatio;n/=o,r/=o,[e.canvas,e.shadowCanvas].forEach(function(a){a.style.width="".concat(e.width,"px"),a.style.height="".concat(e.height,"px"),a.width=e.width*o,a.height=e.height*o,!n&&!r&&a.getContext("2d").scale(o,o)});var i=ot(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-n)/2/i,(e.height-r)/2/i),e.needsRedraw=!0}}function Ri(e){var n=window.devicePixelRatio;e.setTransform(n,0,0,n,0,0)}function zo(e,n,r){e.save(),Ri(e),e.clearRect(0,0,n,r),e.restore()}var Kd=xr({props:Rt({width:{default:window.innerWidth,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(n,r){[n.nodes,n.links].every(function(i){return(i||[]).every(function(a){return!a.hasOwnProperty("__indexColor")})})&&r.colorTracker.reset(),[{type:"Node",objs:n.nodes},{type:"Link",objs:n.links}].forEach(o),r.forceGraph.graphData(n),r.shadowGraph.graphData(n);function o(i){var a=i.type,s=i.objs;s.filter(function(l){if(!l.hasOwnProperty("__indexColor"))return!0;var d=r.colorTracker.lookup(l.__indexColor);return!d||!d.hasOwnProperty("d")||d.d!==l}).forEach(function(l){l.__indexColor=r.colorTracker.register({type:a,d:l})})}},triggerUpdate:!1},backgroundColor:{onChange:function(n,r){r.canvas&&n&&(r.canvas.style.background=n)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(n,r){r.shadowGraph.nodeCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(n,r){r.shadowGraph.linkCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(n,r){r.zoom.scaleExtent([n,r.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(n,r){r.zoom.scaleExtent([r.zoom.scaleExtent()[0],n])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(n,r){r.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1},onZoom:{triggerUpdate:!1},onZoomEnd:{triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},qd),aliases:{stopAnimation:"pauseAnimation"},methods:Rt({graph2ScreenCoords:function(n,r,o){var i=ot(n.canvas);return{x:r*i.k+i.x,y:o*i.k+i.y}},screen2GraphCoords:function(n,r,o){var i=ot(n.canvas);return{x:(r-i.x)/i.k,y:(o-i.y)/i.k}},centerAt:function(n,r,o,i){if(!n.canvas)return null;if(r!==void 0||o!==void 0){var a=Object.assign({},r!==void 0?{x:r}:{},o!==void 0?{y:o}:{});return i?n.tweenGroup.add(new co(s()).to(a,i).easing(Dt.Quadratic.Out).onUpdate(l).onComplete(function(){n.tweenGroup.remove(this)}).start()):l(a),this}return s();function s(){var d=ot(n.canvas);return{x:(n.width/2-d.x)/d.k,y:(n.height/2-d.y)/d.k}}function l(d){var c=d.x,h=d.y;n.zoom.translateTo(n.zoom.__baseElem,c===void 0?s().x:c,h===void 0?s().y:h),n.needsRedraw=!0}},zoom:function(n,r,o){if(!n.canvas)return null;if(r!==void 0)return o?n.tweenGroup.add(new co({k:i()}).to({k:r},o).easing(Dt.Quadratic.Out).onUpdate(function(s){var l=s.k;return a(l)}).onComplete(function(){n.tweenGroup.remove(this)}).start()):a(r),this;return i();function i(){return ot(n.canvas).k}function a(s){n.zoom.scaleTo(n.zoom.__baseElem,s),n.needsRedraw=!0}},zoomToFit:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,i=arguments.length,a=new Array(i>3?i-3:0),s=3;s<i;s++)a[s-3]=arguments[s];var l=this.getGraphBbox.apply(this,a);if(l){var d={x:(l.x[0]+l.x[1])/2,y:(l.y[0]+l.y[1])/2},c=Math.max(1e-12,Math.min(1e12,(n.width-o*2)/(l.x[1]-l.x[0]),(n.height-o*2)/(l.y[1]-l.y[0])));this.centerAt(d.x,d.y,r),this.zoom(c,r)}return this},getGraphBbox:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},o=ee(n.nodeVal),i=function(l){return Math.sqrt(Math.max(0,o(l)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:i(s)}});return a.length?{x:[Hr(a,function(s){return s.x-s.r}),Vr(a,function(s){return s.x+s.r})],y:[Hr(a,function(s){return s.y-s.r}),Vr(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Yd),stateInit:function(){return{lastSetZoom:1,zoom:Ta(),forceGraph:new Pn,shadowGraph:new Pn().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Yl,tweenGroup:new si}},init:function(n,r){var o=this;n.innerHTML="";var i=document.createElement("div");i.classList.add("force-graph-container"),i.style.position="relative",n.appendChild(i),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),i.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),l={x:-1e12,y:-1e12},d=function(){var u=null,m=window.devicePixelRatio,p=l.x>0&&l.y>0?s.getImageData(l.x*m,l.y*m,1,1):null;return p&&(u=r.colorTracker.lookup(p.data)),u};tr(r.canvas).call(Da().subject(function(){if(!r.enableNodeDrag)return null;var h=d();return h&&h.type==="Node"?h.d:null}).on("start",function(h){var u=h.subject;u.__initialDragPos={x:u.x,y:u.y,fx:u.fx,fy:u.fy},h.active||(u.fx=u.x,u.fy=u.y),r.canvas.classList.add("grabbable")}).on("drag",function(h){var u=h.subject,m=u.__initialDragPos,p=h,g=ot(r.canvas).k,k={x:m.x+(p.x-m.x)/g-u.x,y:m.y+(p.y-m.y)/g-u.y};["x","y"].forEach(function(b){return u["f".concat(b)]=u[b]=m[b]+(p[b]-m[b])/g}),!(!u.__dragged&&Gd>=Math.sqrt(Pa(["x","y"].map(function(b){return Math.pow(h[b]-m[b],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,u.__dragged=!0,r.onNodeDrag(u,k))}).on("end",function(h){var u=h.subject,m=u.__initialDragPos,p={x:u.x-m.x,y:u.y-m.y};m.fx===void 0&&(u.fx=void 0),m.fy===void 0&&(u.fy=void 0),delete u.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,u.__dragged&&(delete u.__dragged,r.onNodeDragEnd(u,p))})),r.zoom(r.zoom.__baseElem=tr(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(h){return!h.button&&r.enableZoomPanInteraction&&(h.type!=="wheel"||ee(r.enableZoomInteraction)(h))&&(h.type==="wheel"||ee(r.enablePanInteraction)(h))}).on("zoom",function(h){var u=h.transform;[a,s].forEach(function(m){Ri(m),m.translate(u.x,u.y),m.scale(u.k,u.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Rt(Rt({},u),o.centerAt())),r.needsRedraw=!0}).on("end",function(h){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Rt(Rt({},h.transform),o.centerAt()))}),Wn(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){ot(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=Vd/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new gc(i),["pointermove","pointerdown"].forEach(function(h){return i.addEventListener(h,function(u){h==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=u),!r.isPointerDragging&&u.type==="pointermove"&&r.onBackgroundClick&&(u.pressure>0||r.isPointerPressed)&&(u.pointerType==="mouse"||u.movementX===void 0||[u.movementX,u.movementY].some(function(g){return Math.abs(g)>1}))&&(r.isPointerDragging=!0);var m=p(i);l.x=u.pageX-m.left,l.y=u.pageY-m.top;function p(g){var k=g.getBoundingClientRect(),b=window.pageXOffset||document.documentElement.scrollLeft,v=window.pageYOffset||document.documentElement.scrollTop;return{top:k.top+v,left:k.left+b}}},{passive:!0})}),i.addEventListener("pointerup",function(h){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var u=[h,r.pointerDownEvent];requestAnimationFrame(function(){if(h.button===0)if(r.hoverObj){var m=r["on".concat(r.hoverObj.type,"Click")];m&&m.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,u);if(h.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,u)})}},{passive:!0}),i.addEventListener("contextmenu",function(h){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(h.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var c=Na(function(){zo(s,r.width,r.height),r.shadowGraph.linkWidth(function(u){return ee(r.linkWidth)(u)+r.linkHoverPrecision});var h=ot(r.canvas);r.shadowGraph.globalScale(h.k).tickFrame()},Hd);r.flushShadowCanvas=c.flush,(this._animationCycle=function h(){var u=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(D){return D.__photons&&D.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var m=r.isPointerDragging?null:d();if(m!==r.hoverObj){var p=r.hoverObj,g=p?p.type:null,k=m?m.type:null;if(g&&g!==k){var b=r["on".concat(g,"Hover")];b&&b(null,p.d)}if(k){var v=r["on".concat(k,"Hover")];v&&v(m.d,g===k?p.d:null)}r.tooltip.content(m&&ee(r["".concat(m.type.toLowerCase(),"Label")])(m.d)||null),r.canvas.classList[(m&&r["on".concat(k,"Click")]||!m&&r.onBackgroundClick)&&ee(r.showPointerCursor)(m==null?void 0:m.d)?"add":"remove"]("clickable"),r.hoverObj=m}u&&c()}if(u){zo(a,r.width,r.height);var w=ot(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,w),r.forceGraph.globalScale(w).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,w)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(h)})()},update:function(n){}}),Fi={exports:{}},Jd="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Xd=Jd,Zd=Xd;function Li(){}function zi(){}zi.resetWarningCache=Li;var Qd=function(){function e(o,i,a,s,l,d){if(d!==Zd){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}e.isRequired=e;function n(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:zi,resetWarningCache:Li};return r.PropTypes=r,r};Fi.exports=Qd();var eu=Fi.exports;const x=fa(eu),En={width:x.number,height:x.number,graphData:x.shape({nodes:x.arrayOf(x.object).isRequired,links:x.arrayOf(x.object).isRequired}),backgroundColor:x.string,nodeRelSize:x.number,nodeId:x.string,nodeLabel:x.oneOfType([x.string,x.func]),nodeVal:x.oneOfType([x.number,x.string,x.func]),nodeVisibility:x.oneOfType([x.bool,x.string,x.func]),nodeColor:x.oneOfType([x.string,x.func]),nodeAutoColorBy:x.oneOfType([x.string,x.func]),onNodeHover:x.func,onNodeClick:x.func,linkSource:x.string,linkTarget:x.string,linkLabel:x.oneOfType([x.string,x.func]),linkVisibility:x.oneOfType([x.bool,x.string,x.func]),linkColor:x.oneOfType([x.string,x.func]),linkAutoColorBy:x.oneOfType([x.string,x.func]),linkWidth:x.oneOfType([x.number,x.string,x.func]),linkCurvature:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowLength:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowColor:x.oneOfType([x.string,x.func]),linkDirectionalArrowRelPos:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticles:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleSpeed:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleOffset:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleWidth:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleColor:x.oneOfType([x.string,x.func]),onLinkHover:x.func,onLinkClick:x.func,dagMode:x.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:x.number,dagNodeFilter:x.func,onDagError:x.func,d3AlphaMin:x.number,d3AlphaDecay:x.number,d3VelocityDecay:x.number,warmupTicks:x.number,cooldownTicks:x.number,cooldownTime:x.number,onEngineTick:x.func,onEngineStop:x.func,getGraphBbox:x.func},$i={zoomToFit:x.func,onNodeRightClick:x.func,onNodeDrag:x.func,onNodeDragEnd:x.func,onLinkRightClick:x.func,linkHoverPrecision:x.number,onBackgroundClick:x.func,onBackgroundRightClick:x.func,showPointerCursor:x.oneOfType([x.bool,x.func]),enablePointerInteraction:x.bool,enableNodeDrag:x.bool},Dr={showNavInfo:x.bool,nodeOpacity:x.number,nodeResolution:x.number,nodeThreeObject:x.oneOfType([x.object,x.string,x.func]),nodeThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),nodePositionUpdate:x.func,linkOpacity:x.number,linkResolution:x.number,linkCurveRotation:x.oneOfType([x.number,x.string,x.func]),linkMaterial:x.oneOfType([x.object,x.string,x.func]),linkThreeObject:x.oneOfType([x.object,x.string,x.func]),linkThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),linkPositionUpdate:x.func,linkDirectionalArrowResolution:x.number,linkDirectionalParticleResolution:x.number,linkDirectionalParticleThreeObject:x.oneOfType([x.object,x.string,x.func]),forceEngine:x.oneOf(["d3","ngraph"]),ngraphPhysics:x.object,numDimensions:x.oneOf([1,2,3])},tu=Object.assign({},En,$i,{linkLineDash:x.oneOfType([x.arrayOf(x.number),x.string,x.func]),nodeCanvasObjectMode:x.oneOfType([x.string,x.func]),nodeCanvasObject:x.func,nodePointerAreaPaint:x.func,linkCanvasObjectMode:x.oneOfType([x.string,x.func]),linkCanvasObject:x.func,linkPointerAreaPaint:x.func,linkDirectionalParticleCanvasObject:x.func,autoPauseRedraw:x.bool,minZoom:x.number,maxZoom:x.number,enableZoomInteraction:x.oneOfType([x.bool,x.func]),enablePanInteraction:x.oneOfType([x.bool,x.func]),onZoom:x.func,onZoomEnd:x.func,onRenderFramePre:x.func,onRenderFramePost:x.func});Object.assign({},En,$i,Dr,{enableNavigationControls:x.bool,controlType:x.oneOf(["trackball","orbit","fly"]),rendererConfig:x.object,extraRenderers:x.arrayOf(x.shape({render:x.func.isRequired}))});Object.assign({},En,Dr,{nodeDesc:x.oneOfType([x.string,x.func]),linkDesc:x.oneOfType([x.string,x.func])});Object.assign({},En,Dr,{markerAttrs:x.object,yOffset:x.number,glScale:x.number});const Pr=tl(Kd,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Pr.displayName="ForceGraph2D";Pr.propTypes=tu;function $o(e){return e==="contains"}function nu(e){return e==="related_to"||e==="part_of"||e==="depends_on"}function ru(e,n){var h,u;const r=new Set(e),o=new Map,i=new Map,a=new Map;for(const m of e)o.set(m,[]),i.set(m,[]),a.set(m,0);for(const m of n)!r.has(m.from)||!r.has(m.to)||m.from===m.to||(o.get(m.from).push(m.to),i.get(m.to).push(m.from),a.set(m.to,(a.get(m.to)??0)+1));let s=e.filter(m=>(a.get(m)??0)===0);if(s.length===0&&e.length>0){const m=new Map;for(const k of e)m.set(k,(((h=o.get(k))==null?void 0:h.length)??0)+(((u=i.get(k))==null?void 0:u.length)??0));const p=[...e].sort((k,b)=>(m.get(b)??0)-(m.get(k)??0)),g=m.get(p[0])??0;s=p.filter(k=>(m.get(k)??0)===g).slice(0,12)}const l=new Map,d=[];for(const m of s)l.set(m,0),d.push(m);let c=0;for(;c<d.length;){const m=d[c++],p=l.get(m)??0;for(const g of o.get(m)??[]){const k=p+1;(!l.has(g)||k<(l.get(g)??1/0))&&(l.set(g,k),d.push(g))}}for(const m of e)l.has(m)||l.set(m,0);return{childrenOf:o,parentsOf:i,roots:s,depthMap:l}}function qn(e,n,r,o,i){return i.has(e)?!1:(r.get(e)??0)<n?!0:o.has(e)}function ou(e,n,r){const o=new Set(e),i=[...e];let a=0;for(;a<i.length;){const s=i[a++];if(r(s))for(const l of n.get(s)??[])o.has(l)||(o.add(l),i.push(l))}return o}function iu(e,n){const r=[],o=new Set,i=[...n.get(e)??[]];for(;i.length>0;){const a=i.pop();if(!o.has(a)){o.add(a),r.push(a);for(const s of n.get(a)??[])i.push(s)}}return r}function au(e){const{event:n,data:r}=e;switch(n){case"task.started":return`🚀 开始生成,共 ${(r==null?void 0:r.totalDocs)??0} 篇文档`;case"doc.started":return`📄 处理中:${(r==null?void 0:r.docPath)??""}(${(r==null?void 0:r.index)??0}/${(r==null?void 0:r.total)??0})`;case"doc.completed":return`✅ ${(r==null?void 0:r.docPath)??""}(提取 ${(r==null?void 0:r.conceptsExtracted)??0} 个知识块)`;case"doc.failed":return`⚠️ ${(r==null?void 0:r.docPath)??""} 失败:${(r==null?void 0:r.error)??""}`;case"folder.started":return`📁 归纳目录:${(r==null?void 0:r.folderPath)??""}`;case"folder.completed":return`✅ 目录归纳完成:${(r==null?void 0:r.folderPath)??""}`;case"domain.started":return"🌐 开始 domain 级合成";case"domain.completed":return`✅ domain 合成完成(${(r==null?void 0:r.totalNodes)??0} 节点,${(r==null?void 0:r.totalEdges)??0} 边)`;case"task.yielded":return"⏸️ 让出资源,排队等待中...";case"task.progress":return`⏳ ${(r==null?void 0:r.phase)??"progress"} ${(r==null?void 0:r.current)??0}/${(r==null?void 0:r.total)??0}`;case"task.completed":return`🎉 生成完成!${(r==null?void 0:r.nodes)??0} 个节点,${(r==null?void 0:r.edges)??0} 条边`;case"task.failed":return`❌ 生成失败:${(r==null?void 0:r.error)??""}`;default:return`${n}${r?`: ${JSON.stringify(r)}`:""}`}}function Uo(e){return e<=1?"排队中,即将开始…":`排队中,前面还有 ${e-1} 个任务`}function Yn(e,n,r){const o=Math.max(e,.2);return Math.max(r??n*.75,n)/o}function su({scope:e,resourceId:n,name:r,onOpenDocument:o}){const[i,a]=_.useState(null),[s,l]=_.useState(!0),[d,c]=_.useState(null),[h,u]=_.useState(!1),[m,p]=_.useState(!1),[g,k]=_.useState(0),[b,v]=_.useState(()=>new Set),[w,D]=_.useState(()=>new Set),[I,S]=_.useState(null),[N,P]=_.useState(null),[T,U]=_.useState(null),E=_.useRef(null),$=_.useRef(new Map),[F,B]=_.useState("not_found"),[A,Y]=_.useState([]),[te,ie]=_.useState(null),[ke,De]=_.useState(0),Ae=`graph:${e==="domain"?"domain":"dir"}:${n}`,ye=_.useRef(Ae),me=_.useRef(null),ae=F==="running"||F==="pending";_.useEffect(()=>{let C=!1;return l(!0),c(null),S(null),k(0),v(new Set),D(new Set),p(!1),U(null),$.current=new Map,(e==="domain"?ao:io)(n).then(O=>{C||(a(O),l(!1))}).catch(O=>{C||(c(O.message||"加载失败"),l(!1))}),()=>{C=!0}},[n,e]),_.useEffect(()=>(ye.current=Ae,fe(),q(),()=>fe()),[Ae]);async function q(){try{const C=await Os(ye.current);B(C.status),Y(C.logs),ie(C.progress??null),De(C.position),C.status==="completed"?(fe(),ue()):C.status==="failed"||C.status==="stale"?(fe(),C.error&&c(C.error)):(C.status==="running"||C.status==="pending")&&J()}catch{}}function J(){me.current||(me.current=window.setInterval(()=>{q()},2e3))}function fe(){me.current&&(clearInterval(me.current),me.current=null)}async function ue(){try{const M=await(e==="domain"?ao:io)(n);a(M)}catch(C){c(C.message||"加载失败")}}const Me=async()=>{if(!ae){c(null);try{const M=await(e==="domain"?js:Es)(n);ye.current=M.taskId,B(M.status),De(M.position),Y([]),ie(null),J()}catch(C){c(C.message||"生成失败")}}},Ve=_.useMemo(()=>i?h?i.nodes:i.nodes.filter(C=>C.type==="concept"):[],[i,h]),Ue=_.useMemo(()=>{if(!i)return[];const C=new Set(Ve.map(M=>M.id));return i.edges.filter(M=>C.has(M.from)&&C.has(M.to))},[i,Ve]),ve=_.useMemo(()=>{const C=Ue.filter(M=>$o(String(M.type))).map(M=>({from:M.from,to:M.to}));return ru(Ve.map(M=>M.id),C)},[Ve,Ue]),Fe=_.useMemo(()=>ou(ve.roots,ve.childrenOf,C=>qn(C,g,ve.depthMap,b,w)),[ve,g,b,w]),{displayNodes:ct,displayEdges:Ze}=_.useMemo(()=>{const C=Ve.filter(O=>Fe.has(O.id)),M=Ue.filter(O=>{if(!Fe.has(O.from)||!Fe.has(O.to))return!1;const L=String(O.type);return!!($o(L)||m&&nu(L))});return{displayNodes:C,displayEdges:M}},[Ve,Ue,Fe,m]),an=_.useMemo(()=>{const C=new Map;for(const M of Ve)C.set(M.id,M);return C},[Ve]);function dt(C){k(C),v(new Set),D(new Set)}function ut(C){if((ve.childrenOf.get(C)??[]).length===0)return;qn(C,g,ve.depthMap,b,w)?(D(L=>new Set(L).add(C)),v(L=>{const G=new Set(L);return G.delete(C),G})):(D(L=>{const G=new Set(L);return G.delete(C),G}),v(L=>new Set(L).add(C)))}function Ut(C){const M=iu(C.id,ve.parentsOf);D(O=>{const L=new Set(O);for(const G of M)L.delete(G);return L}),v(O=>{const L=new Set(O);for(const G of M)L.add(G);return L}),S(C)}const _t=_.useMemo(()=>{const C=ct.map(L=>{var Ee;const G=((Ee=ve.childrenOf.get(L.id))==null?void 0:Ee.length)??0,X=qn(L.id,g,ve.depthMap,b,w),K=$.current.get(L.id);let Q=K==null?void 0:K.x,de=K==null?void 0:K.y;if(Q==null||de==null){const Ne=(ve.parentsOf.get(L.id)??[]).map(be=>$.current.get(be)).find(be=>be!=null);Ne?(Q=Ne.x+(Math.random()-.5)*60,de=Ne.y+50+Math.random()*40):(Q=(Math.random()-.5)*240,de=(Math.random()-.5)*180),$.current.set(L.id,{x:Q,y:de})}return{id:L.id,name:L.label,type:L.type,val:L.type==="concept"?4:2,x:Q,y:de,__raw:L,__childCount:G,__expanded:X}}),M=new Map,O=Ze.map(L=>{const G=`${L.from}->${L.to}`,X=M.get(G)??0;M.set(G,X+1);const K=X===0?.08:.08+X*.14;return{source:L.from,target:L.to,type:L.type,curvature:K,__raw:L}});return{nodes:C,links:O}},[ct,Ze,ve,g,b,w]),Qe=_.useMemo(()=>{const C=Math.max(1,ct.length);return{linkDistance:Math.min(140,70+Math.sqrt(C)*8),chargeStrength:Math.max(-420,-120-C*6)}},[ct.length]),ne=_.useRef(null),[wt,Pe]=_.useState({width:800,height:600});_.useEffect(()=>{if(!ne.current)return;const C=()=>{ne.current&&Pe({width:ne.current.clientWidth,height:ne.current.clientHeight})};C();const M=new ResizeObserver(C);return M.observe(ne.current),()=>M.disconnect()},[]),_.useEffect(()=>{if(!i||s)return;const C=window.setTimeout(()=>{var M,O;(O=(M=E.current)==null?void 0:M.zoomToFit)==null||O.call(M,400,80)},450);return()=>window.clearTimeout(C)},[i,h,m,s,wt.width,wt.height,g,Fe]),_.useEffect(()=>{var L,G,X,K;if(!i||s)return;const C=E.current;if(!C)return;const M=C.d3Force("charge");(L=M==null?void 0:M.strength)==null||L.call(M,Qe.chargeStrength);const O=C.d3Force("link");(G=O==null?void 0:O.distance)==null||G.call(O,Qe.linkDistance),(X=O==null?void 0:O.strength)==null||X.call(O,.35),(K=C.d3ReheatSimulation)==null||K.call(C)},[Qe,i,s,h,_t]);const pe=C=>(ve.childrenOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),ft=C=>(ve.parentsOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),mt=C=>{if(!i)return[];const M=new Set,O=[],L=[C];for(;L.length>0;){const G=L.shift();if(M.has(G))continue;M.add(G);const X=i.nodes.find(Q=>Q.id===G);(X==null?void 0:X.type)==="doc"&&O.push(X);const K=i.edges.filter(Q=>Q.from===G).map(Q=>Q.to);L.push(...K)}return O};return f.jsxs("div",{className:"graph-page",children:[f.jsxs("div",{className:"graph-toolbar",children:[f.jsxs("div",{className:"graph-title",children:[f.jsx("span",{className:"graph-icon",children:"🕸️"}),f.jsxs("span",{children:["知识图谱 — ",r]})]}),f.jsxs("div",{className:"graph-actions",children:[f.jsxs("div",{className:"graph-depth-btns",children:[f.jsx("button",{type:"button",className:`graph-btn ${g===1?"graph-btn-active":""}`,onClick:()=>dt(1),title:"展开到深度 1(顶层 + 直接子)",children:"展开一级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===2?"graph-btn-active":""}`,onClick:()=>dt(2),title:"展开到深度 2",children:"展开到二级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===0&&b.size===0?"graph-btn-active":""}`,onClick:()=>dt(0),title:"仅顶层",children:"全部收起"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:m,onChange:C=>p(C.target.checked)}),f.jsx("span",{children:"显示其它关系"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:h,onChange:C=>u(C.target.checked)}),f.jsx("span",{children:"显示 doc 节点"})]}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?f.jsxs(f.Fragment,{children:[f.jsx($n,{size:14,className:"spin"}),F==="pending"?Uo(ke):"生成中..."]}):f.jsxs(f.Fragment,{children:[f.jsx(Ja,{size:14}),i?"重新生成":"生成图谱"]})})]})]}),f.jsxs("div",{className:"graph-canvas-container",ref:ne,children:[s&&f.jsxs("div",{className:"graph-loading",children:[f.jsx($n,{size:32,className:"spin"}),f.jsx("p",{children:"加载图谱中..."})]}),d&&!s&&f.jsxs("div",{className:"graph-error",children:[f.jsxs("p",{children:["❌ ",d]}),f.jsx("button",{className:"graph-btn",onClick:Me,children:"重试生成"})]}),!s&&!d&&!i&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"🕸️"}),f.jsx("h3",{children:"还没有知识图谱"}),f.jsx("p",{className:"muted",children:"点击右上角「生成图谱」开始构建"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?"生成中...":"生成图谱"})]}),ae&&f.jsxs("div",{className:"graph-progress-panel",children:[f.jsxs("div",{className:"graph-progress-header",children:[f.jsx($n,{size:16,className:"spin"}),f.jsx("span",{children:F==="pending"?Uo(ke):te?`正在生成(${te.current}/${te.total})`:"正在生成..."})]}),te&&te.total>0&&f.jsx("div",{className:"graph-progress-bar",children:f.jsx("div",{className:"graph-progress-bar-fill",style:{width:`${te.current/te.total*100}%`}})}),f.jsx("div",{className:"graph-progress-logs",children:A.slice(-10).map((C,M)=>f.jsx("div",{className:`graph-log-item graph-log-${C.level}`,children:f.jsx("span",{className:"graph-log-event",children:au(C)})},M))})]}),!s&&!d&&i&&i.nodes.length===0&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"📄"}),f.jsx("h3",{children:"图谱已生成"}),f.jsx("p",{className:"muted",children:"当前内容暂未提取到可关联的知识概念"}),f.jsx("p",{className:"muted",style:{fontSize:13,marginTop:4},children:"内容较少或结构较简单时可能出现这种情况,补充更多内容后可以重新生成"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,style:{marginTop:12},children:"重新生成"})]}),!s&&!d&&i&&i.nodes.length>0&&f.jsx(Pr,{ref:E,width:wt.width,height:wt.height,graphData:_t,nodeId:"id",nodeVal:C=>C.type==="concept"?6:3,nodeColor:C=>C.type==="concept"?"#8b5cf6":"#06b6d4",nodeCanvasObjectMode:()=>"replace",nodeCanvasObject:(C,M,O)=>{const L=String(C.name??""),G=C.type==="concept",X=C.id===(I==null?void 0:I.id)||C.id===N,K=(G?9:5)/Math.max(O,.35);if(M.beginPath(),M.arc(C.x,C.y,K,0,2*Math.PI),M.fillStyle=G?"#8b5cf6":"#06b6d4",M.globalAlpha=X||!I?1:.35,M.fill(),M.strokeStyle="#ffffff",M.lineWidth=1.5/Math.max(O,.35),M.stroke(),M.globalAlpha=1,C.__childCount>0){const et=7/Math.max(O,.4),Ie=C.x+K+et*.9,Tt=C.y-K*.2;M.beginPath(),M.arc(Ie,Tt,et,0,2*Math.PI),M.fillStyle=C.__expanded?"#475569":"#6366f1",M.fill(),M.fillStyle="#ffffff";const ht=C.__expanded?"−":"+",kt=Math.max(10/O,9/O);M.font=`700 ${kt}px -apple-system, BlinkMacSystemFont, sans-serif`,M.textAlign="center",M.textBaseline="middle",M.fillText(ht,Ie,Tt+.5/O)}if(!(X||G&&O>=.55||!G&&O>=1.4))return;const de=Math.max(10/O,G?11/O:9/O),Ee=G?O<.9?8:16:10,Ne=L.length>Ee?L.slice(0,Ee)+"…":L;M.font=`${G?"600":"400"} ${de}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="top";const be=C.y+K+3/O,he=M.measureText(Ne).width,ge=4/O,Ce=2/O;M.fillStyle="rgba(255,255,255,0.88)",M.fillRect(C.x-he/2-ge,be-Ce,he+ge*2,de+Ce*2),M.fillStyle=G?"#1e1b4b":"#0c4a6e",M.fillText(Ne,C.x,be)},linkDirectionalArrowLength:C=>{var L,G,X,K,Q,de;const M=((G=(L=E.current)==null?void 0:L.zoom)==null?void 0:G.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?13:11,9)},linkDirectionalArrowRelPos:.86,linkDirectionalArrowColor:()=>"#475569",linkWidth:C=>{var L,G,X,K,Q,de;const M=((G=(L=E.current)==null?void 0:L.zoom)==null?void 0:G.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?3.5:3,2.25)},linkColor:C=>{var O,L,G,X;return((O=C.source)==null?void 0:O.id)===N||((L=C.target)==null?void 0:L.id)===N||((G=C.source)==null?void 0:G.id)===(I==null?void 0:I.id)||((X=C.target)==null?void 0:X.id)===(I==null?void 0:I.id)?"#334155":"#64748b"},linkCurvature:C=>C.curvature??.12,linkCanvasObjectMode:()=>"after",linkCanvasObject:(C,M,O)=>{if(O<.45)return;const L=C.source,G=C.target;if(L.x==null||L.y==null||G.x==null||G.y==null)return;const K={contains:"包含",related_to:"相关",part_of:"属于",depends_on:"依赖"}[C.type]||String(C.type??""),Q=typeof C.curvature=="number"?C.curvature:.12,de=(L.x+G.x)/2,Ee=(L.y+G.y)/2,Ne=de-(G.y-L.y)*Q,be=Ee+(G.x-L.x)*Q,he=.5,ge=1-he,Ce=ge*ge*L.x+2*ge*he*Ne+he*he*G.x,et=ge*ge*L.y+2*ge*he*be+he*he*G.y,Ie=2*ge*(Ne-L.x)+2*he*(G.x-Ne),Tt=2*ge*(be-L.y)+2*he*(G.y-be);let ht=Math.atan2(Tt,Ie);(ht>Math.PI/2||ht<-Math.PI/2)&&(ht+=Math.PI);const kt=Yn(O,11,9);M.save(),M.translate(Ce,et),M.rotate(ht),M.font=`500 ${kt}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="middle";const sn=M.measureText(K).width,ln=3/O,cn=1.5/O;M.fillStyle="rgba(255,255,255,0.92)",M.fillRect(-sn/2-ln,-kt/2-cn,sn+ln*2,kt+cn*2),M.fillStyle="#475569",M.fillText(K,0,0),M.restore()},onZoom:()=>{var C,M;(M=(C=E.current)==null?void 0:C.refresh)==null||M.call(C)},cooldownTicks:120,cooldownTime:4e3,d3AlphaDecay:.022,d3VelocityDecay:.3,onNodeClick:(C,M)=>{var L,G;const O=C.__childCount??0;if(O>0&&E.current&&ne.current){const X=ne.current.getBoundingClientRect(),K=E.current.screen2GraphCoords(M.clientX-X.left,M.clientY-X.top),Q=((G=(L=E.current).zoom)==null?void 0:G.call(L))??1,de=(C.type==="concept"?9:5)/Math.max(Q,.35),Ee=7/Math.max(Q,.4),Ne=C.x+de+Ee*.9,be=C.y-de*.2,he=K.x-Ne,ge=K.y-be;if(he*he+ge*ge<=(Ee+4/Q)**2){ut(String(C.id)),S(C.__raw);return}}S(C.__raw),O>0&&!C.__expanded&&ut(String(C.id))},onNodeHover:C=>{var O;if(!C){P(null),U(null);return}P(String(C.id));const M=String(C.name??((O=C.__raw)==null?void 0:O.label)??"");if(E.current&&M){const L=E.current.graph2ScreenCoords(C.x,C.y);U({text:M,x:L.x,y:L.y})}else U({text:M,x:0,y:0})},onBackgroundClick:()=>{S(null),P(null),U(null)},onEngineTick:()=>{var M,O;const C=(O=(M=E.current)==null?void 0:M.graphData)==null?void 0:O.call(M);if(C!=null&&C.nodes)for(const L of C.nodes)L.id!=null&&L.x!=null&&L.y!=null&&$.current.set(String(L.id),{x:L.x,y:L.y})},onEngineStop:()=>{var C,M;(M=(C=E.current)==null?void 0:C.zoomToFit)==null||M.call(C,300,72)},linkHoverPrecision:8,enableNodeDrag:!0,enableZoomInteraction:!0,enablePanInteraction:!0,nodePointerAreaPaint:(C,M,O,L)=>{const G=(C.type==="concept"?14:9)/Math.max(L,.35);if(O.fillStyle=M,O.beginPath(),O.arc(C.x,C.y,G,0,2*Math.PI),O.fill(),C.__childCount>0){const X=10/Math.max(L,.4),K=(C.type==="concept"?9:5)/Math.max(L,.35),Q=C.x+K+X*.7,de=C.y-K*.2;O.beginPath(),O.arc(Q,de,X,0,2*Math.PI),O.fill()}}}),T&&f.jsx("div",{className:"graph-node-tooltip",style:{left:T.x,top:T.y},children:T.text})]}),I&&f.jsxs("div",{className:"graph-detail-panel",children:[f.jsxs("div",{className:"graph-detail-header",children:[f.jsx("span",{className:`graph-node-type-badge ${I.type}`,children:I.type==="concept"?"概念":"知识要点"}),f.jsx("button",{type:"button",className:"graph-close-btn","aria-label":"关闭",onClick:()=>S(null),children:f.jsx(Ft,{size:18,strokeWidth:2.25})})]}),f.jsx("h3",{className:"graph-detail-title",children:I.label}),I.definition&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"定义"}),f.jsx("p",{children:I.definition})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"描述"}),f.jsx("p",{children:I.description})]}),f.jsx("div",{className:"graph-detail-meta",children:f.jsxs("span",{children:["置信度: ",(I.confidence*100).toFixed(0),"%"]})}),I.type==="concept"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["包含的子节点 (",pe(I.id).length,")"]}),f.jsxs("ul",{className:"graph-node-list",children:[pe(I.id).slice(0,20).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id)),pe(I.id).length>20&&f.jsxs("li",{className:"muted",children:["还有 ",pe(I.id).length-20," 个..."]})]})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["相关文章 (",mt(I.id).length,")"]}),f.jsx("ul",{className:"graph-doc-list",children:Array.from(new Set(mt(I.id).flatMap(C=>{var M;return((M=C.sources)==null?void 0:M.map(O=>({documentId:O.documentId,title:O.title||O.documentId,heading:O.heading})))||[]}))).slice(0,10).map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]})]}),I.type==="doc"&&I.sources&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"来源"}),f.jsx("ul",{className:"graph-doc-list",children:I.sources.map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title||C.documentId,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]}),ft(I.id).length>0&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["所属概念 (",ft(I.id).length,")"]}),f.jsx("ul",{className:"graph-node-list",children:ft(I.id).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id))})]})]})]})}function lu(e){var l;const{t:n}=lt(),r=_.useRef(null);_.useEffect(()=>{function d(h){r.current&&!r.current.contains(h.target)&&e.onClose()}function c(h){h.key==="Escape"&&e.onClose()}return window.addEventListener("mousedown",d),window.addEventListener("keydown",c),()=>{window.removeEventListener("mousedown",d),window.removeEventListener("keydown",c)}},[e.onClose]);const o=e.node.type==="folder";let i="";if(e.node.type==="folder"){const d=e.node;i=((l=d.folderDisplayName)==null?void 0:l.trim())||d.path||""}const a=o?i?n("newDocIn",{name:i}):n("newDocAtRoot"):n("newDocBeside"),s=o?i?n("newFolderIn",{name:i}):n("newFolderAtRoot"):n("newFolderBeside");return f.jsxs("div",{ref:r,className:"mdocs-context-menu card",style:{left:e.x,top:e.y},children:[f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateChild(d),e.onClose()},children:a}),f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateFolder(d),e.onClose()},children:s}),f.jsx("button",{type:"button",className:"mdocs-context-item danger",onClick:()=>{e.node.type==="document"?e.onDeleteDocument(e.node):e.onDeleteFolder(e.node),e.onClose()},children:e.node.type==="folder"?n("deleteFolder",{name:i||e.node.name}):n("deleteItem",{name:e.node.name})})]})}function cu({domains:e,value:n,onChange:r,ariaLabel:o,localizeName:i,onDomainsChange:a}){const[s,l]=_.useState(!1),[d,c]=_.useState(e),h=_.useRef(null),u=_.useRef(null);_.useEffect(()=>{c(e)},[e]);const m=d.find(b=>b.domainId===n),p=(m==null?void 0:m.permission)==="private";_.useEffect(()=>{if(!s)return;const b=v=>{var w,D;!((w=h.current)!=null&&w.contains(v.target))&&!((D=u.current)!=null&&D.contains(v.target))&&l(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s]),_.useEffect(()=>{if(!s)return;const b=v=>{var w;v.key==="Escape"&&(l(!1),(w=h.current)==null||w.focus())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[s]);function g(b){r(b),l(!1)}function k(){if(s){l(!1);return}l(!0),ni().then(b=>{c(b),a==null||a(b)})}return f.jsxs("div",{className:"mdocs-domain-select-wrapper",children:[f.jsxs("button",{ref:h,type:"button",className:"mdocs-domain-select-trigger","aria-label":o,"aria-expanded":s,"aria-haspopup":"listbox",onClick:k,children:[f.jsx("span",{className:"mdocs-domain-select-text",children:m?i(m.domainName):""}),p&&f.jsxs("svg",{className:"mdocs-domain-lock",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),f.jsx("svg",{className:"mdocs-domain-select-chevron"+(s?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"1.5",children:f.jsx("path",{d:"M1 1l4 4 4-4"})})]}),s&&f.jsx("div",{ref:u,className:"mdocs-domain-select-menu card",role:"listbox","aria-label":o,children:d.map(b=>f.jsxs("button",{type:"button",className:"mdocs-domain-select-option"+(b.domainId===n?" active":""),role:"option","aria-selected":b.domainId===n,onClick:()=>g(b.domainId),children:[f.jsx("span",{children:i(b.domainName)}),b.permission==="private"&&f.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})]},b.domainId))})]})}const Ui="data:image/svg+xml,%3csvg%20fill='%234D6BFE'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%3e%3c/path%3e%3c/svg%3e",Ke={left:12,bottom:64},Nr="mdocs.agentFabPosition",Nn=36,Bo=3;function Tr(e){const r=Math.max(8,window.innerWidth-Nn-8),o=Math.max(8,window.innerHeight-Nn-8);return{left:Math.min(r,Math.max(8,e.left)),bottom:Math.min(o,Math.max(8,e.bottom))}}function du(e,n,r,o){const i=e-r,a=n-o,s=window.innerHeight-a-Nn;return Tr({left:i,bottom:s})}function uu(){try{const e=localStorage.getItem(Nr);if(!e)return Ke;const n=JSON.parse(e);return typeof n.left!="number"||typeof n.bottom!="number"?Ke:Tr({left:n.left,bottom:n.bottom})}catch{return Ke}}function Ho(e){localStorage.setItem(Nr,JSON.stringify(e))}function fu(e){return e.left===Ke.left&&e.bottom===Ke.bottom}function mu(e){const r=Math.min(480,window.innerWidth-72);let o=e.left+Nn+8;o+r>window.innerWidth-8&&(o=e.left-8-r),o=Math.max(8,o);const i=Math.max(8,e.bottom-8);return{left:o,bottom:i}}function hu(e){const{t:n}=lt(),r=!!e.disableDrag,[o,i]=_.useState(!1),[a,s]=_.useState(e.position),l=_.useRef(null),d=_.useRef(null),c=_.useRef(a),h=_.useRef(e.onPositionChange),u=_.useRef(e.onToggle);c.current=a,h.current=e.onPositionChange,u.current=e.onToggle;const m=_.useRef(null),p=_.useRef(0),g=_.useRef(null);_.useEffect(()=>{m.current||(s(e.position),c.current=e.position)},[e.position]),_.useEffect(()=>{function D(){const I=Tr(c.current);I.left===c.current.left&&I.bottom===c.current.bottom||(c.current=I,s(I),h.current(I),Ho(I))}return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),_.useEffect(()=>{function D(){p.current=0;const N=g.current;if(!N)return;g.current=null,c.current=N,s(N);const P=d.current;P&&(P.style.left=`${N.left}px`,P.style.bottom=`${N.bottom}px`),h.current(N)}function I(N){const P=m.current;if(!P||N.pointerId!==P.pointerId)return;N.preventDefault();const T=N.clientX-P.startX,U=N.clientY-P.startY;!P.didMove&&T*T+U*U>=Bo*Bo&&(P.didMove=!0,i(!0)),P.didMove&&(g.current=du(N.clientX,N.clientY,P.offsetX,P.offsetY),p.current||(p.current=requestAnimationFrame(D)))}function S(N){var T;const P=m.current;if(!(!P||N.pointerId!==P.pointerId)){m.current=null,i(!1),p.current&&(cancelAnimationFrame(p.current),p.current=0),g.current&&(c.current=g.current,s(g.current),g.current=null);try{(T=l.current)==null||T.releasePointerCapture(N.pointerId)}catch{}if(P.didMove){const U=c.current;h.current(U),Ho(U);return}u.current()}}return window.addEventListener("pointermove",I,{passive:!1}),window.addEventListener("pointerup",S),window.addEventListener("pointercancel",S),()=>{window.removeEventListener("pointermove",I),window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),p.current&&cancelAnimationFrame(p.current)}},[]);function k(D){if(D.button!==0)return;if(r){D.preventDefault(),e.onToggle();return}D.preventDefault();const I=D.currentTarget.getBoundingClientRect();m.current={pointerId:D.pointerId,offsetX:D.clientX-I.left,offsetY:D.clientY-I.top,startX:D.clientX,startY:D.clientY,didMove:!1},D.currentTarget.setPointerCapture(D.pointerId)}function b(){c.current=Ke,s(Ke),e.onPositionChange(Ke),localStorage.removeItem(Nr)}const v=r?Ke:a,w=!r&&!fu(a);return f.jsxs("div",{ref:d,className:"mdocs-agent-fab-wrap"+(o?" dragging":""),style:{left:v.left,bottom:v.bottom},children:[f.jsx("button",{ref:l,type:"button",className:"mdocs-agent-fab"+(e.open?" open":"")+(o?" dragging":"")+(r?" mdocs-agent-fab--nodrag":""),"aria-label":n("agentFabOpen"),"aria-expanded":e.open,onPointerDown:k,children:f.jsx("img",{src:Ui,alt:"",draggable:!1})}),w&&f.jsx("button",{type:"button",className:"mdocs-agent-fab-reset",onClick:b,"aria-label":n("agentFabReset"),children:n("agentFabReset")})]})}function pu(){const[e,n]=_.useState(()=>typeof window>"u"?Ke:uu());return[e,n]}function gu({title:e,message:n,onClose:r}){const{t:o}=lt();return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:i=>{i.target===i.currentTarget&&r()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsx("div",{className:"mdocs-message-dialog-actions",children:f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("gotIt")})})]})})}function Bi({title:e,message:n,confirmLabel:r="确定",cancelLabel:o="取消",onConfirm:i,onCancel:a,busy:s=!1,danger:l=!1}){return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:d=>{d.target===d.currentTarget&&!s&&a()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsxs("div",{className:"mdocs-message-dialog-actions",style:{gap:8},children:[f.jsx("button",{type:"button",onClick:a,disabled:s,children:o}),f.jsx("button",{type:"button",className:l?"danger":"primary",onClick:i,disabled:s,children:s?"…":r})]})]})})}const Vo={"relative path is required":"pathRequired","path must be relative":"pathMustBeRelative","use forward slashes":"useForwardSlashes","path must not contain ..":"pathNoDotDot","document path must end with .md":"pathMustEndWithMd","path contains unsupported characters":"pathUnsupportedChars","path escapes docs root":"pathEscapesRoot"},Hi={"enter a folder name":"enterFolderName","use a single name, not a path":"singleNameNotPath","invalid folder name":"invalidFolderName","folder name is too long":"folderNameTooLong","enter a file name":"enterFileName","use a file name, not a path":"singleFileNameNotPath","invalid file name":"invalidFileName","file name is too long":"fileNameTooLong"};function bt(e,n){if(n instanceof Je)return n.message;if(n instanceof yt){const r=Vo[n.message];return r?e(r):n.message}if(n instanceof Error){const r=Vo[n.message]??Hi[n.message];return r?e(r):n.message}return String(n)}function yu(e,n,r){if(e==="Default")return r("defaultDomain");const o="个人域";return e.endsWith(o)?e.slice(0,-o.length)+r("personalDomainSuffix"):e}function Jf(e,n){return e==="public"?n("domainPublic"):e==="restricted"?n("domainRestricted"):e==="private"?n("domainPrivate"):e}function vn(e){const n=e.lastIndexOf("/");return n===-1?"":e.slice(0,n)}function vu(e){return JSON.stringify({root:{children:[{children:[{detail:0,format:0,mode:"normal",text:e,type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"heading",tag:"h1",version:1}],direction:"ltr",type:"root",version:1}})}function Go(e,n){const r=e.trim(),o=n.trim();return o?r?`${r}/${o}`:o:r}function Vi(e,n=new Set){for(const r of e)r.type==="document"?n.add(r.path):(r.descDocumentId&&n.add(ls(r.path)),Vi(r.children,n));return n}function gr(e,n){for(const r of e){if(r.type==="folder"&&r.path===n)return r.documentId;if(r.type==="folder"){const o=gr(r.children,n);if(o)return o}}return null}function Wo(e,n){const r=Hi[n];return r?e(r):n}function bu(e){const{tree:n,currentDomainId:r,selectedCreateParentPath:o,t:i,onDocCreated:a,refreshTree:s}=e,[l,d]=_.useState(null),[c,h]=_.useState(null),[u,m]=_.useState(!1),p=_.useRef(null);_.useEffect(()=>{if(!l)return;const v=window.setTimeout(()=>{var w;return(w=p.current)==null?void 0:w.focus()},0);return()=>window.clearTimeout(v)},[l]);function g(v){const w=v!==void 0;h(null),d({kind:"document",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:"untitled.md"})}function k(v){const w=v!==void 0;h(null),d({kind:"folder",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:""})}async function b(v){if(v.preventDefault(),!l)return;m(!0),h(null);const w=Vi(n),D=l.parentMode==="selection"?o:l.parentPath;try{if(l.kind==="document"){const T=fs(l.draft);if(!T.ok){h(Wo(i,T.message));return}const U=T.displayFile,E=U.replace(/\.md$/i,"");let $;try{$=ms(Go(D,U))}catch(A){h(bt(i,A));return}if(w.has($)){h(i("pathExists"));return}const F=D?gr(n,D)??void 0:void 0,B=await ti({fileName:U,displayName:E,content:vu(E),domainId:r,parentId:F});await s(),a(B),d(null);return}const I=us(l.draft);if(!I.ok){h(Wo(i,I.message));return}const S=nr(I.display);if(!S){h(i("invalidFolderName"));return}const N=Go(D,S);if(w.has(N)){h(i("folderExists"));return}const P=D?gr(n,D)??void 0:void 0;await Ss({name:S,parentId:P,domainId:r}),await s(),d(null)}catch(I){h(bt(i,I))}finally{m(!1)}}return{createModal:l,setCreateModal:d,createModalError:c,createModalBusy:u,createModalInputRef:p,openNewDocumentModal:g,openNewFolderModal:k,submitCreateModal:b}}const qo="(max-width: 768px)";function xu(){const[e,n]=_.useState(()=>typeof window<"u"?window.matchMedia(qo).matches:!1);return _.useEffect(()=>{const r=window.matchMedia(qo),o=()=>n(r.matches);return o(),r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),e}function _u({open:e,onClose:n,onResolve:r}){const{t:o}=lt();return e?f.jsx("div",{className:"mdocs-conflict-modal-root",role:"alertdialog","aria-modal":"true",children:f.jsxs("div",{className:"mdocs-conflict-modal-panel",children:[f.jsx("h2",{className:"mdocs-conflict-modal-title",children:o("conflictTitle")}),f.jsx("p",{className:"mdocs-conflict-modal-body",children:o("conflictBody")}),f.jsxs("div",{className:"mdocs-conflict-modal-actions",children:[f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("conflictResolve")}),f.jsx("button",{type:"button",className:"secondary",onClick:n,children:o("conflictClose")})]})]})}):null}function wu({documentId:e,visitorId:n,visitorName:r,documentOwnerId:o,onClose:i}){const[a,s]=_.useState([]),[l,d]=_.useState(""),[c,h]=_.useState(null),[u,m]=_.useState(!0),[p,g]=_.useState(!1),[k,b]=_.useState(null),[v,w]=_.useState(null),[D,I]=_.useState(360),[S,N]=_.useState(80),P=_.useRef(!1),T=_.useRef(!1),U=300,E=80,$=_.useRef(null);function F(){const q=$.current;if(!q)return;q.style.height="auto";const J=q.scrollHeight,fe=Math.min(Math.max(J,E),U);q.style.height=`${fe}px`,N(fe)}_.useEffect(()=>{setTimeout(()=>F(),0)},[c]);function B(q){return n?q.visitorId===n||o===n:!1}const{rootComments:A,repliesByParentId:Y,totalCount:te}=_.useMemo(()=>{const q=[],J=new Map;let fe=0;for(const ue of a)ue.isDeleted||(fe++,ue.parentId?(J.has(ue.parentId)||J.set(ue.parentId,[]),J.get(ue.parentId).push(ue)):q.push(ue));return{rootComments:q,repliesByParentId:J,totalCount:fe}},[a]),ie=_.useRef(e);_.useEffect(()=>{ie.current=e,d(""),h(null),w(null),ke()},[e]);async function ke(){const q=ie.current;m(!0);try{const J=await Ts(e);if(ie.current!==q)return;s(J.comments)}catch(J){if(ie.current!==q)return;w("加载评论失败"),console.error("Failed to load comments:",J)}finally{ie.current===q&&m(!1)}}async function De(){var q;if(!(!l.trim()||!n)){g(!0),w(null);try{await As(e,{content:l,parentId:(c==null?void 0:c.commentId)||null,replyToVisitorId:c?((q=a.find(J=>J.commentId===c.commentId))==null?void 0:q.visitorId)??null:null,replyToVisitorName:(c==null?void 0:c.visitorName)||null}),d(""),h(null),setTimeout(()=>F(),0),await ke()}catch(J){w(J.message||"发表失败,请重试")}finally{g(!1)}}}async function Ae(q){w(null);try{await Ms(e,q),await ke()}catch(J){w(J.message||"删除失败,请重试")}finally{b(null)}}function ye(q){const J=Date.now()-new Date(q).getTime(),fe=Math.floor(J/6e4),ue=Math.floor(J/36e5),Me=Math.floor(J/864e5);return fe<1?"刚刚":fe<60?`${fe}分钟前`:ue<24?`${ue}小时前`:`${Me}天前`}function me(q){P.current=!0,q.preventDefault()}function ae(q){T.current=!0,q.preventDefault(),document.body.style.userSelect="none",document.body.style.cursor="row-resize"}return _.useEffect(()=>{function q(fe){if(P.current){const ue=Math.max(280,Math.min(600,window.innerWidth-fe.clientX));I(ue)}if(T.current){const ue=-fe.movementY;N(Me=>Math.max(60,Math.min(600,Me+ue)))}}function J(){P.current=!1,T.current=!1,document.body.style.userSelect="",document.body.style.cursor=""}return window.addEventListener("mousemove",q),window.addEventListener("mouseup",J),()=>{window.removeEventListener("mousemove",q),window.removeEventListener("mouseup",J)}},[]),f.jsxs("div",{className:"mdocs-comments-panel",style:{width:D},children:[f.jsx("div",{className:"mdocs-comments-resize-handle",onMouseDown:me}),f.jsxs("div",{className:"mdocs-comments-header",children:[f.jsxs("h3",{style:{margin:0,fontSize:"1rem",display:"flex",alignItems:"center",gap:6},children:[f.jsx(Ga,{size:18}),"评论 (",te,")"]}),f.jsx("button",{type:"button",onClick:i,className:"mdocs-comments-close-btn",children:f.jsx(Ft,{size:18})})]}),v&&f.jsxs("div",{className:"mdocs-comments-error",children:[v,f.jsx("button",{type:"button",onClick:()=>w(null),children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comments-list",children:u?f.jsx("div",{className:"mdocs-comments-empty",children:"加载中..."}):A.length===0?f.jsx("div",{className:"mdocs-comments-empty",children:"暂无评论,来发表第一条吧~"}):A.map(q=>f.jsxs("div",{className:"mdocs-comment-root",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar",children:q.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:q.visitorName}),f.jsx("span",{className:"mdocs-comment-time",children:ye(q.createdAt)}),B(q)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(q.commentId),title:"删除",children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comment-content",children:q.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:q.visitorName}),children:"回复"}),(Y.get(q.commentId)??[]).length>0&&f.jsx("div",{className:"mdocs-comment-replies",children:(Y.get(q.commentId)??[]).map(J=>f.jsxs("div",{className:"mdocs-comment-reply",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar mdocs-comment-avatar-small",children:J.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:J.visitorName}),J.replyToVisitorName&&f.jsxs("span",{className:"mdocs-comment-reply-to",children:["回复 ",J.replyToVisitorName]}),f.jsx("span",{className:"mdocs-comment-time",children:ye(J.createdAt)}),B(J)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(J.commentId),title:"删除",children:f.jsx(Ft,{size:12})})]}),f.jsx("div",{className:"mdocs-comment-content",children:J.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:J.visitorName}),children:"回复"})]},J.commentId))})]},q.commentId))}),n?f.jsxs("div",{className:"mdocs-comments-input-wrapper",children:[f.jsx("div",{className:"mdocs-comments-input-drag-handle",onMouseDown:ae}),c&&f.jsxs("div",{className:"mdocs-comment-reply-notice",children:[f.jsxs("span",{children:["回复 ",f.jsx("span",{className:"mdocs-comment-reply-to-name",children:c.visitorName})]}),f.jsxs("button",{type:"button",onClick:()=>h(null),children:[f.jsx(Ft,{size:14})," 取消"]})]}),f.jsx("textarea",{ref:$,value:l,onChange:q=>{d(q.target.value.slice(0,512)),setTimeout(()=>F(),0)},placeholder:c?`回复 ${c.visitorName}...`:"发表评论...",className:"mdocs-comments-input",style:{height:S},maxLength:512,onKeyDown:q=>{q.key==="Enter"&&(q.metaKey||q.ctrlKey)&&De()}}),f.jsxs("div",{className:`mdocs-comments-char-count${l.length>=460?" mdocs-char-count--warn":""}`,children:[l.length,"/512"]}),f.jsx("div",{className:"mdocs-comments-input-actions",children:f.jsx("button",{type:"button",className:"mdocs-btn-primary",onClick:De,disabled:p||!l.trim(),children:p?"发表中...":"发表"})})]}):f.jsx("div",{className:"mdocs-comments-input-wrapper",style:{textAlign:"center"},children:f.jsx("div",{style:{color:"#666",fontSize:"0.9rem"},children:"请先创建访客身份以发表评论"})}),k&&f.jsx(Bi,{title:"删除评论",message:"确定要删除这条评论吗?",confirmLabel:"删除",danger:!0,onConfirm:()=>Ae(k),onCancel:()=>b(null)})]})}const ku="mdocs-drafts",Cu=4,Se="drafts",Lt={DOC_NOT_FOUND:"DOC_NOT_FOUND",SYNC_HEAD_MISSING:"SYNC_HEAD_MISSING"};let Kn=null;function $t(){return Kn||(Kn=new Promise((e,n)=>{const r=indexedDB.open(ku,Cu);r.onupgradeneeded=o=>{const i=r.result;i.objectStoreNames.contains(Se)||i.createObjectStore(Se,{keyPath:"documentId"});const a=o.oldVersion;if(a>0&&a<4){const d=r.transaction.objectStore(Se).openCursor();d.onsuccess=()=>{const c=d.result;if(!c)return;const h=c.value;typeof h.baseCommitId=="string"&&!h.localBaseCommitId&&(h.localBaseCommitId=h.baseCommitId,delete h.baseCommitId);const u=h.conflict;u&&(typeof u.baseCommitId=="string"&&!u.localBaseCommitId&&(u.localBaseCommitId=u.baseCommitId,delete u.baseCommitId),typeof u.expectedHeadCommitId=="string"&&!u.remoteCommitId&&(u.remoteCommitId=u.expectedHeadCommitId,delete u.expectedHeadCommitId)),c.update(h),c.continue()}}},r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})),Kn}async function Iu(e){var o;const n=await Oe(e.documentId),r={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:Date.now(),published:!1};if(n!=null&&n.localBaseCommitId)r.localBaseCommitId=n.localBaseCommitId;else{const i=(o=e.localBaseCommitIdAtEditStart)==null?void 0:o.trim();i&&(r.localBaseCommitId=i)}(n==null?void 0:n.permission)!=null?r.permission=n.permission:e.snapshotMeta&&(r.permission=e.snapshotMeta.permission),n!=null&&n.ownerVisitorId?r.ownerVisitorId=n.ownerVisitorId:e.snapshotMeta&&(r.ownerVisitorId=e.snapshotMeta.ownerVisitorId),n!=null&&n.domainId?r.domainId=n.domainId:e.snapshotMeta&&(r.domainId=e.snapshotMeta.domainId),n!=null&&n.publishError&&(r.publishError=n.publishError,r.publishErrorAt=n.publishErrorAt),n!=null&&n.conflictStatus&&(r.conflictStatus=n.conflictStatus),n!=null&&n.conflict&&(r.conflict=n.conflict),await St(r)}function Ar(e){const n={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:e.updatedAt,published:e.published};return e.permission!=null&&(n.permission=e.permission),e.ownerVisitorId&&(n.ownerVisitorId=e.ownerVisitorId),e.domainId&&(n.domainId=e.domainId),e.publishError!=null&&(n.publishError=e.publishError),e.publishErrorAt!=null&&(n.publishErrorAt=e.publishErrorAt),e.localBaseCommitId&&(n.localBaseCommitId=e.localBaseCommitId),e.conflictStatus!=null&&(n.conflictStatus=e.conflictStatus),e.conflict!=null&&(n.conflict=e.conflict),n}async function St(e){const n=await $t(),r=Ar(e);return new Promise((o,i)=>{const a=n.transaction(Se,"readwrite");a.objectStore(Se).put(r),a.oncomplete=()=>o(),a.onerror=()=>i(a.error)})}async function Oe(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).get(e);a.onsuccess=()=>r(a.result),a.onerror=()=>o(a.error)})}async function Jn(e){const n=await $t();return new Promise((r,o)=>{const i=n.transaction(Se,"readwrite");i.objectStore(Se).delete(e),i.oncomplete=()=>r(),i.onerror=()=>o(i.error)})}async function Su(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).getAll();a.onsuccess=()=>{let s=a.result;e!=null&&e.skipFailed&&(s=s.filter(l=>!l.publishError)),r(s)},a.onerror=()=>o(a.error)})}async function Du(e,n){const r=await $t();return new Promise((o,i)=>{const s=r.transaction(Se,"readwrite").objectStore(Se),l=s.get(e);l.onsuccess=()=>{const d=l.result;d&&s.put(Ar({...d,publishError:n,publishErrorAt:Date.now()})),o()},l.onerror=()=>i(l.error)})}async function Xn(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readwrite").objectStore(Se),s=a.get(e);s.onsuccess=()=>{const l=s.result;l&&a.put(Ar({...l,publishError:void 0,publishErrorAt:void 0})),r()},s.onerror=()=>o(s.error)})}async function Zn(e,n){const r=await Oe(e);r&&await St({...r,localBaseCommitId:n.localBaseCommitId,conflictStatus:n.conflictStatus,conflict:n.conflict})}async function Qn(e){const n=await Oe(e);n&&await St({...n,conflict:void 0,conflictStatus:"none"})}class rn extends Error{constructor(r,o){super(r);jt(this,"code");jt(this,"cause");this.name="DraftPublishAborted",this.code=r,this.cause=o==null?void 0:o.cause}}function Pu(e){return e instanceof rn?e.code:e instanceof Je?e.status===404?Lt.DOC_NOT_FOUND:e.code||`HTTP_${e.status}`:e instanceof Error&&e.message.trim()?e.message.trim().slice(0,120):"UNKNOWN"}function Nu(e,n,r,o){const i=(n==null?void 0:n.displayName)||e("unknownTitle");if(r===Lt.SYNC_HEAD_MISSING)return e("draftPublishFailedSyncHead",{name:i});if(r===Lt.DOC_NOT_FOUND)return e("draftPublishFailedNotice",{name:i});const a=o instanceof Je||o instanceof Error&&o.message?o.message:r;return e("draftPublishFailedGeneric",{name:i,reason:a})}async function Tu(e,n,r){const o=Pu(n);throw await Du(e,o),n instanceof rn?n:new rn(o,{cause:n})}function Au(e,n){const r=_.useRef(n);r.current=n,_.useEffect(()=>{if(!e)return;const o=3e4,i=1e4,a=async()=>{const l=await Su({skipFailed:!0}),d=Date.now();for(const c of l)if(!c.published&&!(d-c.updatedAt<o))try{await r.current(c.documentId)}catch(h){console.log("[autoPublish] scan publish failed:",h)}};a();const s=setInterval(a,i);return()=>clearInterval(s)},[e])}const Mu=1e4;function Eu(e,n){const[r,o]=_.useState(null),[i,a]=_.useState("up_to_date");return _.useEffect(()=>{if(!e){o(null),a("up_to_date");return}let l=!1;const d=e;async function c(){try{const u=await ks(d,n??void 0);if(l)return;o(u.headCommitId),a(u.status)}catch{}}c();const h=window.setInterval(()=>void c(),Mu);return()=>{l=!0,window.clearInterval(h)}},[e,n]),{remoteCommitId:r,syncStatus:i,syncBehind:!!(n&&r&&n!==r)||i==="behind"}}const ju="/assets/mdocs-logo-Dsv_2t6v.svg",Ou=_.lazy(()=>zt(()=>import("./DocumentEditor-CeaspJgX.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(e=>({default:e.DocumentEditor}))),Ru=_.lazy(()=>zt(()=>import("./SettingsPage-Bor0wh4z.js"),__vite__mapDeps([11,1,10,2,3,6])).then(e=>({default:e.SettingsPage}))),Fu=_.lazy(()=>zt(()=>import("./AgentChatPanel-KiTv5uCF.js"),__vite__mapDeps([12,1,13,7,2,3,8,6])).then(e=>({default:e.AgentChatPanel}))),Lu=_.lazy(()=>zt(()=>import("./AiWriteWorkbench-0wEf6qur.js"),__vite__mapDeps([14,1,13,7,2,3,6])).then(e=>({default:e.AiWriteWorkbench}))),zu=_.lazy(()=>zt(()=>import("./MergeView-y24LKycd.js"),__vite__mapDeps([15,1,4,5,2,3,6,7,8])).then(e=>({default:e.MergeView})));function $u(e,n){try{const r=new Intl.RelativeTimeFormat(n,{numeric:"auto"}),o=Date.now()-new Date(e).getTime(),i=Math.floor(o/6e4),a=Math.floor(i/60),s=Math.floor(a/24);return s>30?r.format(-Math.floor(s/30),"month"):s>0?r.format(-s,"day"):a>0?r.format(-a,"hour"):i>0?r.format(-i,"minute"):r.format(-Math.floor(o/1e3),"second")}catch{return e.slice(0,10)}}async function er(e,n,r,o){const i=await ni();n(i);const a=localStorage.getItem("mdocs.currentDomainId"),l=a&&i.some(d=>d.domainId===a)?a:Fs(i,e);r(l),await o(l)}function Yo(){const{t:e,lang:n,setLang:r}=lt(),[o,i]=_.useState("loading"),[a,s]=_.useState(()=>localStorage.getItem("mdocs.sidebarCollapsed")==="true"),l=xu(),[d,c]=_.useState(!1),h=()=>{if(l){c(R=>!R);return}const y=!a;s(y),localStorage.setItem("mdocs.sidebarCollapsed",String(y))};_.useEffect(()=>{l||c(!1)},[l]);const[u,m]=_.useState(!1),[p,g]=_.useState(0),k=_.useRef(null),[b,v]=_.useState(null),[w,D]=_.useState(null),[I,S]=_.useState(null),[N,P]=_.useState([]),[T,U]=_.useState([]),[E,$]=_.useState("default"),{documentId:F}=ma(),B=ha(),[A,Y]=_.useState(null),[te,ie]=_.useState(null),[ke,De]=_.useState(null),[Ae,ye]=_.useState(null),[me,ae]=_.useState(null),q=_.useRef(te);q.current=te;const[J,fe]=_.useState(0),[ue,Me]=_.useState(null),[Ve,Ue]=_.useState(!1),[ve,Fe]=_.useState(!1),[ct,Ze]=_.useState(!1),an=(A==null?void 0:A.documentId)??null,{syncBehind:dt,remoteCommitId:ut}=Eu(an,ue),[Ut,_t]=_.useState(null);_.useEffect(()=>{if(!ve||!A){_t(null);return}(async()=>{const y=await Oe(A.documentId);if(y!=null&&y.conflict){_t(y.conflict);return}if(y&&ue&&ut){const R=y.localBaseCommitId??ue;if(!R)return;const j={localBaseCommitId:R,remoteCommitId:ut,localSnapshotContent:y.content};await Zn(A.documentId,{localBaseCommitId:j.localBaseCommitId,conflictStatus:"diverged",conflict:j}),_t(j)}})()},[ve,A,ue,ut]),_.useEffect(()=>{!A||!dt||!ct||Oe(A.documentId).then(async y=>{!y||y.conflict||y.conflictStatus==="publish_conflict"||y.conflictStatus!=="diverged"&&await St({...y,conflictStatus:"diverged"})})},[A==null?void 0:A.documentId,dt,ct]),_.useEffect(()=>{if(!A){Me(null);return}let y=!1;return Oe(A.documentId).then(R=>{y||(R&&!R.published&&R.localBaseCommitId?Me(R.localBaseCommitId):Me(A.headCommitId??null))}),()=>{y=!0}},[A==null?void 0:A.documentId,A==null?void 0:A.headCommitId,ct]);const[Qe,ne]=_.useState(null),[wt,Pe]=_.useState(null),[pe,ft]=_.useState(null),[mt,C]=_.useState(null),[M,O]=_.useState(""),[L,G]=_.useState("docs"),[X,K]=_.useState(!1),[Q,de]=pu(),Ee=_.useRef(null),[Ne,be]=_.useState(!1),[he,ge]=_.useState(null),Ce=_.useRef(void 0),et=_.useRef(void 0);Au(localStorage.getItem("mdocs.autoPublish")==="true",$r);async function Ie(y){var R;await((R=Ce.current)==null?void 0:R.call(Ce)),y()}function Tt(y){const j=(y.trim()||"untitled").replace(/[\\/:*?"<>|]/g,"-").slice(0,80);return j.endsWith(".md")?j:`${j}.md`}async function ht(){var R,j;if(!A||!te)return;await((R=Ce.current)==null?void 0:R.call(Ce));let y=((j=et.current)==null?void 0:j.call(et))??"";if(!y.trim())try{y=(await Un({content:te.content,from:"lexical",to:"markdown"})).content}catch{y=""}ge({markdown:y,documentId:A.documentId,displayName:te.displayName||A.displayName||"未命名"}),be(!0),K(!1)}function kt(){ge({markdown:"",documentId:null,displayName:"未命名"}),be(!0),K(!1)}async function sn(y){var Z,se;const R=y.documentId.trim();if(!R)return;await((Z=Ce.current)==null?void 0:Z.call(Ce));let j="",V=y.displayName.trim()||"未命名";try{const Ge=await Vt(R);V=((se=Ge.displayName)==null?void 0:se.trim())||V;try{j=(await Un({content:Ge.content,from:"lexical",to:"markdown"})).content}catch{j=""}}catch{}ge({markdown:j,documentId:R,displayName:V}),be(!0),K(!1),G("docs"),Ie(()=>B(`/doc/${R}`))}async function ln(y){(A==null?void 0:A.documentId)===y.documentId&&await zr()}async function cn(y){if(y.documentId){if(!window.confirm("将把帮写结果写入当前文档的本地草稿(不会自动发布)。继续?")){const se=new Error("cancelled");throw se.silent=!0,se}const V=await Un({content:y.markdown,from:"markdown",to:"lexical"}),Z=(A==null?void 0:A.documentId)===y.documentId?A:null;return await Iu({documentId:y.documentId,content:V.content,displayName:y.displayName,localBaseCommitIdAtEditStart:(Z==null?void 0:Z.headCommitId)??null,snapshotMeta:Z?{permission:Z.permission,ownerVisitorId:Z.ownerVisitorId,domainId:Z.domainId}:void 0}),(A==null?void 0:A.documentId)===y.documentId?(ie({documentId:y.documentId,content:V.content,displayName:y.displayName}),fe(se=>se+1),Ze(!0)):await At(y.documentId),ne("帮写已写入草稿,可在编辑器中继续修改后发布"),{documentId:y.documentId}}const R=await ti({fileName:Tt(y.displayName),displayName:y.displayName,content:y.markdown,contentFormat:"markdown",domainId:E||void 0,parentId:void 0});return await _e(),await At(R.documentId),ne("已创建文档"),{documentId:R.documentId}}_.useEffect(()=>{Wi()},[]),_.useEffect(()=>{if(!Qe)return;const y=()=>{ne(null)};return window.addEventListener("pointerdown",y,!0),()=>window.removeEventListener("pointerdown",y,!0)},[Qe]),_.useEffect(()=>{const y=R=>{var Z,se;const j=R;if(((Z=j.detail)==null?void 0:Z.status)===409)return;const V=(se=j.detail)==null?void 0:se.message;V&&Pe(V)};return window.addEventListener(rr,y),()=>window.removeEventListener(rr,y)},[]);async function Wi(){try{const y=await ro();v(y),_n(y.visitorId),await er(y.visitorId,U,$,_e),i("ready")}catch(y){if(y instanceof Je&&y.status===401){i("needsRegister");return}Pe(bt(e,y)),i("needsRegister")}}async function qi(y,R){const j=await vs(y,R);v(j.visitor),D(j.visitor.visitorId),S(j.recoveryCode),_n(j.visitor.visitorId),await er(j.visitor.visitorId,U,$,_e),i("ready")}async function Yi(y){const R=await ro();v(R),await er(R.visitorId,U,$,_e),i("ready")}async function _e(y){const j=await ws(y??E);P(j)}function dn(y){ie({documentId:y.documentId,content:y.content,displayName:y.displayName}),fe(R=>R+1),Ze(!1)}function Ki(y,R){ie({documentId:y,content:R.content,displayName:R.displayName}),fe(j=>j+1),Ze(!0)}async function Mr(y,R){await Jn(y);const j=await Vt(y);if((A==null?void 0:A.documentId)===y&&k.current===y){Y(Ht(j)),Ze(!1);const V=q.current,Z=R!==void 0&&j.content===R,se=(V==null?void 0:V.documentId)===y&&V.content===j.content;Z||se?(V==null?void 0:V.documentId)===y&&V.displayName!==j.displayName&&ie({...V,displayName:j.displayName}):dn(j)}return j}function un(y,R,j="folder"){console.log("[openGraph]",j,y,R),De(j),ye(y),ae(R)}function fn(){De(null),ye(null),ae(null)}async function At(y){k.current=y;try{const R=await Oe(y);if(k.current!==y)return;const j=await Vt(y);if(k.current!==y||(j.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",j.domainId),$(j.domainId),_e(j.domainId)),O(vn(j.relativePath)),j.headCommitId&&R&&!R.published&&(R.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y),R.localBaseCommitId||await St({...R,localBaseCommitId:j.headCommitId})),Y(Ht(j)),k.current!==y))return;R&&!R.published?Ki(y,R):dn(j)}catch(R){if(k.current!==y)return;Pe(bt(e,R))}}_.useEffect(()=>{o==="ready"&&(F?At(F):(Y(null),ie(null),Me(null)))},[o,F]);const{createModal:Mt,setCreateModal:jn,createModalError:Er,createModalBusy:Et,createModalInputRef:Ji,openNewDocumentModal:On,openNewFolderModal:Rn,submitCreateModal:Xi}=bu({tree:N,currentDomainId:E,selectedCreateParentPath:M,t:e,onDocCreated:y=>{Y(Ht(y)),dn(y),O(vn(y.relativePath)),B(`/doc/${y.documentId}`)},refreshTree:_e}),[Zi,mn]=_.useState(!1),[Qi,Bt]=_.useState(!1),[Ct,jr]=_.useState([]),[Fn,Or]=_.useState(""),[hn,Rr]=_.useState(""),[ea,Fr]=_.useState(new Set);async function ta(){try{const y=await Ps();jr(y)}catch(y){Pe(bt(e,y))}}const Ln=_.useMemo(()=>{const y={};for(const R of T)y[R.domainId]=R.domainName;return y},[T]),Lr=_.useMemo(()=>{let y=Ct;const R=Fn.trim().toLowerCase();return R&&(y=y.filter(j=>{var V;return(V=j.displayName)==null?void 0:V.toLowerCase().includes(R)})),hn&&(y=y.filter(j=>j.domainId===hn)),y},[Ct,Fn,hn]),na=_.useMemo(()=>{const y=new Set,R=[];for(const j of Ct){const V=j.domainId;V&&!y.has(V)&&(y.add(V),R.push({id:V,name:Ln[V]??V}))}return R},[Ct,Ln]);async function ra(y,R,j,V,Z){let se=await Oe(y);!se&&(A==null?void 0:A.documentId)===y&&(se={documentId:y,content:R,displayName:j,updatedAt:Date.now(),published:!1,localBaseCommitId:V,permission:A.permission,ownerVisitorId:A.ownerVisitorId,domainId:A.domainId},await St(se)),se&&await Zn(y,{localBaseCommitId:V,conflictStatus:"publish_conflict",conflict:{localBaseCommitId:V,remoteCommitId:Z.headCommitId,localSnapshotContent:R}}),Ue(!0)}async function oa(y,R,j,V){return Xr(j).execute(async()=>{const Z=await Oe(j),se=(Z==null?void 0:Z.localBaseCommitId)??(A==null?void 0:A.headCommitId);if(!se)throw Pe(e("syncHeadMissing")),new Error("missing localBaseCommitId");try{await oo(j,{content:y,displayName:R,permission:V,version:{localBaseCommitId:se}}),await Qn(j),await Mr(j,y),await _e(),Ue(!1),ne(e("published")),window.setTimeout(()=>ne(null),1200)}catch(Ge){throw Ge instanceof Je&&Ge.status===409&&Ge.code==="VERSION_CONFLICT"&&Ge.details&&typeof Ge.details=="object"&&await ra(j,y,R,se,Ge.details),Ge}})}async function ia(){if(!A)return;const y=await Vt(A.documentId);y.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",y.domainId),$(y.domainId),_e(y.domainId)),O(vn(y.relativePath)),Y(Ht(y)),dn(y),ne(e("syncPullDone")),window.setTimeout(()=>ne(null),1200)}async function zr(){if(!A)return;const y=await Oe(A.documentId),R=!!(y&&!y.published);if((y==null?void 0:y.conflictStatus)==="publish_conflict"||(y==null?void 0:y.conflictStatus)==="diverged"||!!(y!=null&&y.conflict)){Fe(!0);return}if(R&&y){if(dt&&ut){const V=y.localBaseCommitId??ue;if(V){const Z={localBaseCommitId:V,remoteCommitId:ut,localSnapshotContent:y.content};await Zn(A.documentId,{localBaseCommitId:V,conflictStatus:"diverged",conflict:Z}),_t(Z)}Fe(!0);return}ne(e("pullBlockedDraft")),window.setTimeout(()=>ne(null),3e3);return}await ia()}async function aa(y){await Qn(y.documentId),await Jn(y.documentId),Ze(!1),Fe(!1),Ue(!1),await At(y.documentId),_e(y.domainId),ne(e("published")),window.setTimeout(()=>ne(null),1200)}async function sa(y,R,j){try{await Tu(y,R,j)}catch(V){if(!(V instanceof rn))throw V;const Z=j??await Oe(y);throw ne(Nu(e,Z,V.code,V.cause??R)),window.setTimeout(()=>ne(null),4e3),V}}async function $r(y){let R;try{await Xr(y).execute(async()=>{const j=await Oe(y);if(!j)return;R=j;let V=j.localBaseCommitId;if(V||(V=(await Vt(y)).headCommitId??void 0,V&&(await St({...j,localBaseCommitId:V}),j.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y))),!V)throw new rn(Lt.SYNC_HEAD_MISSING);const Z=await Oe(y);Z&&(await oo(y,{content:Z.content,displayName:Z.displayName,version:{localBaseCommitId:V}}),await Qn(y),await Xn(y),(A==null?void 0:A.documentId)===y?await Mr(y,Z.content):await Jn(y),await _e(),ne(e("published")),window.setTimeout(()=>ne(null),1200))})}catch(j){await sa(y,j,R)}}function Ur(y,R){ft({type:"document",id:y,name:R})}function Br(y,R){ft({type:"folder",id:y,name:R})}async function la(y,R){try{const j=await Is(y,R);await _e(j.domainId),(A==null?void 0:A.documentId)===y&&(Y(Ht(j)),O(vn(j.relativePath)))}catch(j){j instanceof Je?j.status===409&&Pe(j.message):Pe(bt(e,j))}}async function ca(){if(pe)try{pe.type==="document"?(await Cs(pe.id),(A==null?void 0:A.documentId)===pe.id&&(Y(null),ie(null),O(""),B("/"))):pe.type==="folder"&&(await Ds(pe.id),A&&(Y(null),ie(null),O(""),B("/"))),await _e(),ne(pe.type==="folder"?`已删除「${pe.name}」及其下所有内容`:`已删除「${pe.name}」`),window.setTimeout(()=>ne(null),2e3)}catch(y){Pe(bt(e,y))}finally{ft(null)}}return o==="loading"?f.jsx("div",{className:"mdocs-loading muted",children:e("loading")}):o==="needsRegister"?f.jsx(Ls,{onSubmit:qi,onRecover:Yi,error:Qe}):f.jsxs("div",{className:"mdocs-app-root",children:[ei(),f.jsxs("div",{className:"mdocs-shell",children:[w&&b&&f.jsx(zs,{visitorId:w,onDismiss:()=>D(null)}),I&&f.jsx("div",{className:"mdocs-dialog-backdrop",style:{position:"fixed",zIndex:9999},onClick:y=>{y.target===y.currentTarget&&S(null)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:480,textAlign:"center"},children:[f.jsx("h1",{style:{fontSize:"1.25rem",marginBottom:8},children:"🔑 保存你的恢复码"}),f.jsxs("p",{className:"muted",style:{marginBottom:16,lineHeight:1.5},children:["恢复码是你的唯一凭证,当 Token 丢失时可用它找回身份。",f.jsx("br",{}),f.jsx("strong",{children:"请立即复制保存,此弹窗关闭后不可再查看。"})]}),f.jsx("div",{style:{background:"#f5f5f5",borderRadius:8,padding:"12px 16px",fontFamily:"monospace",fontSize:"1.25rem",letterSpacing:"0.1em",marginBottom:20,userSelect:"all"},children:I}),f.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[f.jsx("button",{type:"button",className:"primary",onClick:()=>{navigator.clipboard.writeText(I)},children:"复制恢复码"}),f.jsx("button",{type:"button",onClick:()=>S(null),children:"已保存,关闭"})]})]})}),f.jsxs(f.Fragment,{children:[f.jsx(hu,{open:X,onToggle:()=>{var y;X?(y=Ee.current)==null||y.requestClose():K(!0)},position:Q,onPositionChange:de,disableDrag:l}),X?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Fu,{ref:Ee,open:X,onClose:()=>K(!1),visitorName:b==null?void 0:b.visitorName,fullscreen:l,domainId:E||null,documentId:(A==null?void 0:A.documentId)??null,documentTitle:(A==null?void 0:A.displayName)??null,documentPath:(A==null?void 0:A.relativePath)??null,anchorStyle:l?void 0:mu(Q),onOpenDocument:y=>{G("docs"),Ie(()=>B(`/doc/${y}`)),K(!1)},onTreeChanged:()=>void _e(),onDocumentOverwritten:y=>void ln(y),onOpenCoding:y=>void sn(y)})}):null]}),he?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Lu,{open:Ne,initialMarkdown:he.markdown,documentId:he.documentId,displayName:he.displayName,onClose:()=>{be(!1),ge(null)},onComplete:cn})}):null,L==="settings"?f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"mdocs-main muted",style:{padding:24},children:"加载设置…"}),children:f.jsx(Ru,{onBack:()=>G("docs"),onPublishDraft:$r,onOpenDocument:At,onRecoverDraft:()=>void _e()})}):f.jsxs("div",{className:"mdocs-layout"+(l?" mdocs-layout--reader":""),children:[l&&d?f.jsx("button",{type:"button",className:"mdocs-mobile-nav-scrim","aria-label":e("collapseSidebar"),onClick:()=>c(!1)}):null,f.jsxs("aside",{className:"mdocs-sidebar"+(l?d?" mdocs-sidebar--drawer-open":" mdocs-sidebar--drawer":a?" mdocs-sidebar-collapsed":""),children:[f.jsxs("header",{className:"mdocs-sidebar-header",children:[f.jsxs("div",{className:"mdocs-brand",children:[f.jsx("img",{src:ju,alt:e("brand"),className:"mdocs-brand-logo"}),f.jsx("span",{children:e("brand")})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-toggle",onClick:h,"aria-label":e(l?d?"collapseSidebar":"expandSidebar":a?"expandSidebar":"collapseSidebar"),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},onMouseEnter:y=>{y.currentTarget.style.background="var(--mdocs-hover-bg, #f0f0f0)"},onMouseLeave:y=>{y.currentTarget.style.background="none"},children:l?f.jsx(Yr,{size:18}):a?f.jsx(Kr,{size:18}):f.jsx(Yr,{size:18})})]}),f.jsxs("div",{className:"mdocs-sidebar-actions",children:[f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newDocument"),onClick:()=>On(),style:{color:"var(--mdocs-accent)"},children:f.jsx(Wr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newFolder"),onClick:()=>Rn(),children:f.jsx(qr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":"知识图谱",onClick:()=>un(E,"知识图谱","domain"),style:{marginLeft:8},children:f.jsx(yr,{size:20,strokeWidth:1.75})})]}),f.jsx($s,{nodes:N,activeDocumentId:F??null,selectedParentPath:M,onOpen:y=>{fn(),l&&c(!1),Ie(()=>B(`/doc/${y.documentId}`))},onOpenFolder:(y,R)=>{Ie(()=>{O(y),R&&(fn(),l&&c(!1),B(`/doc/${R}`))})},onContextMenu:C,onMoveDocument:la,onDeselect:()=>{fn(),Ie(()=>{O(""),B("/")})},onOpenGraph:(y,R)=>{if(y.type==="folder")un(y.documentId,y.name);else if(R){const j=N.find(V=>V.documentId===R);un(R,(j==null?void 0:j.name)??"图谱")}},onGenerateGraph:async(y,R)=>{var Z;const j=y.type==="folder"?y.documentId:R;if(!j)return;const V=y.type==="folder"?y.name:((Z=N.find(se=>se.documentId===R))==null?void 0:Z.name)??"图谱";un(j,V)}}),f.jsxs("footer",{className:"mdocs-sidebar-footer",children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,cursor:"pointer"},onClick:()=>Ie(()=>G("settings")),children:[f.jsx("span",{className:"mdocs-visitor-avatar",children:b?b.visitorName.charAt(0).toUpperCase():"?"}),f.jsx("span",{className:"mdocs-visitor-footer-name",children:b?b.visitorName:""})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-bookmark mdocs-tooltip","data-tooltip":e("bookmark"),onClick:()=>{Bt(!0),Or(""),Rr(""),ta()},style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4},children:f.jsx(Za,{size:16,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-sidebar-logout mdocs-tooltip","data-tooltip":e("logout"),onClick:()=>mn(!0),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4},children:f.jsx(Ha,{size:16,strokeWidth:1.5})})]})]}),f.jsxs("main",{className:"mdocs-main",children:[ke&&Ae&&me?f.jsx(su,{scope:ke,resourceId:Ae,name:me,onOpenDocument:y=>{fn(),At(y)}},`${ke}-${Ae}`):A&&te&&te.documentId===A.documentId?f.jsxs("div",{className:"mdocs-editor-with-comments",children:[f.jsx("div",{className:"mdocs-editor-container",children:f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"muted",style:{padding:24},children:"加载编辑器…"}),children:f.jsx(Ou,{meta:A,initialContent:te.content,initialDisplayName:te.displayName,contentRevision:J,canEdit:!!(b&&(A.ownerVisitorId===b.visitorId||ss(A.permission)||A.invitedEdit===!0)),domains:T,currentDomainId:E,onDomainChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,onPublish:oa,syncBehind:dt,onSyncClick:()=>void zr(),onDraftExistsChange:Ze,onConflictModalRequest:()=>Ue(!0),onMergeRequest:()=>Fe(!0),canManageInvites:!!(b&&b.visitorId===A.ownerVisitorId),onDelete:async()=>{if(A.relativePath.endsWith("/___desc___.md")){const y=A.relativePath.replace(/\/___desc___\.md$/,"");Br(A.documentId,y)}else Ur(A.documentId,A.relativePath)},saveBeforeNavRef:Ce,exportMarkdownRef:et,onShowToast:ne,onShowError:Pe,onToggleComments:()=>m(!u),commentPanelOpen:u,commentCount:p,onAiWrite:()=>void ht(),readerChrome:l,onOpenMobileNav:()=>c(!0)},A.documentId)})}),u&&f.jsx(wu,{documentId:A.documentId,visitorId:b==null?void 0:b.visitorId,visitorName:b==null?void 0:b.visitorName,documentOwnerId:A.ownerVisitorId,onClose:()=>m(!1)})]}):f.jsxs("div",{className:"mdocs-welcome",children:[l?f.jsxs("button",{type:"button",className:"mdocs-reader-float-pill",onClick:()=>c(!0),"aria-label":e("expandSidebar"),children:[f.jsx(Kr,{size:18,strokeWidth:1.75}),f.jsx("span",{children:e("brand")})]}):null,f.jsx("h1",{children:e("brand")}),f.jsx("p",{className:"muted mdocs-welcome-lead",children:N.length===0?e("noDocsInDomain"):e("createDocToStart")}),f.jsxs("div",{className:"mdocs-welcome-domain",children:[f.jsx("label",{className:"muted mdocs-welcome-domain-label",children:e("domainLabel")}),f.jsx(cu,{domains:T.length?T:[{domainId:"default",domainName:e("defaultDomain"),permission:"",creatorVisitorId:"",docCount:0}],value:E,onChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,ariaLabel:e("domainLabel"),localizeName:y=>yu(y,n,e)})]}),f.jsxs("div",{className:"mdocs-welcome-actions",children:[f.jsxs("button",{type:"button",className:"primary",onClick:()=>On(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(Wr,{size:16,strokeWidth:1.5}),e("newDocument")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>Rn(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(qr,{size:16,strokeWidth:1.5}),e("newFolder")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>kt(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx("img",{src:Ui,alt:"",width:16,height:16,style:{display:"block"}}),"AI 帮写"]})]})]}),f.jsx(_u,{open:Ve,onClose:()=>Ue(!1),onResolve:()=>{Ue(!1),Fe(!0)}}),ve&&A&&Ut&&f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"merge-view-loading",children:e("mergeLoadingRemote")}),children:f.jsx(zu,{documentId:A.documentId,displayName:A.displayName,conflict:Ut,onClose:()=>Fe(!1),onSuccess:aa,onError:y=>Pe(y)})}),Qe&&f.jsx("div",{className:"mdocs-toast",role:"status",children:Qe}),wt&&f.jsx(gu,{title:e("error"),message:wt,onClose:()=>Pe(null)})]}),Zi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&mn(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:440},children:[f.jsx("h1",{style:{fontSize:"1.125rem",marginBottom:8},children:"退出当前登录身份?"}),f.jsx("p",{style:{lineHeight:1.6,color:"var(--mdocs-text-secondary, #666)",marginBottom:20},children:"这将会导致您无法修改以前的文章。如果想找回账号,需要恢复码或联系管理员执行合并用户脚本。"}),f.jsxs("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",onClick:()=>mn(!1),children:"取消"}),f.jsx("button",{type:"button",className:"primary",style:{background:"#d32f2f"},onClick:()=>{ys(),Y(null),ie(null),v(null),P([]),mn(!1),i("needsRegister")},children:"确认退出"})]})]})}),Qi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&Bt(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:640,width:"min(640px, 100%)",maxHeight:"70vh",display:"flex",flexDirection:"column"},children:[f.jsxs("h1",{style:{fontSize:"1.125rem",marginBottom:16},children:[e("bookmarkTitle"),"(",Ct.length,")"]}),Ct.length>0&&f.jsxs("div",{className:"mdocs-bookmark-filterbar",children:[f.jsx("input",{type:"text",placeholder:e("bookmarkSearch"),value:Fn,onChange:y=>Or(y.target.value)}),f.jsxs("select",{value:hn,onChange:y=>Rr(y.target.value),children:[f.jsx("option",{value:"",children:e("bookmarkFilterAll")}),na.map(y=>f.jsx("option",{value:y.id,children:y.name},y.id))]})]}),Ct.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkEmpty")}):Lr.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkNoMatch")}):f.jsx("div",{style:{overflowY:"auto",flex:1,margin:"0 -1rem",padding:"0 1rem"},children:f.jsxs("table",{className:"mdocs-bookmark-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:e("bookmarkColTitle")}),f.jsx("th",{children:e("bookmarkColDomain")}),f.jsx("th",{children:e("bookmarkColAuthor")}),f.jsx("th",{children:e("bookmarkColTime")}),f.jsx("th",{className:"mdocs-bookmark-col-action"})]})}),f.jsx("tbody",{children:Lr.map(y=>{const R=ea.has(y.documentId);return f.jsxs("tr",{className:`${R?"mdocs-bookmark-removing":""}`,style:{opacity:y.isDeleted?.6:1},children:[f.jsx("td",{className:"mdocs-bookmark-col-title",children:f.jsxs("div",{style:{cursor:y.isDeleted?"default":"pointer",display:"flex",alignItems:"center",gap:6,overflow:"hidden"},onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},children:[f.jsx("span",{ref:j=>{if(j){const V=j.scrollWidth>j.clientWidth;j.title=V?y.displayName??"":""}},style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:y.displayName??"(无标题)"}),y.isDeleted&&f.jsx("span",{style:{fontSize:"0.7rem",color:"#d32f2f",background:"#ffebee",padding:"1px 6px",borderRadius:4,flexShrink:0},children:"已删除"})]})}),f.jsx("td",{children:y.isDeleted?"":Ln[y.domainId??""]??y.domainId??""}),f.jsx("td",{children:y.isDeleted?"":y.ownerVisitorName??"-"}),f.jsx("td",{children:y.isDeleted?"":$u(y.bookmarkedAt,n)}),f.jsx("td",{className:"mdocs-bookmark-col-action",children:f.jsxs("div",{style:{display:"flex",gap:2,alignItems:"center",justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkOpen"),onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},style:{background:"none",border:"none",cursor:y.isDeleted?"default":"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},children:f.jsx(La,{size:14,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkRemove"),onClick:async()=>{try{await Ns(y.documentId),Fr(j=>new Set(j).add(y.documentId)),setTimeout(()=>{jr(j=>j.filter(V=>V.documentId!==y.documentId)),Fr(j=>{const V=new Set(j);return V.delete(y.documentId),V})},300)}catch(j){Pe(bt(e,j))}},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},onMouseEnter:j=>{j.currentTarget.style.color="#d32f2f"},onMouseLeave:j=>{j.currentTarget.style.color="var(--mdocs-text-muted, #999)"},children:"✕"})]})})]},y.documentId)})})]})}),f.jsx("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end",marginTop:16,paddingTop:16,borderTop:"1px solid var(--mdocs-border, #eee)"},children:f.jsx("button",{type:"button",onClick:()=>Bt(!1),children:e("close")})})]})}),mt&&f.jsx(lu,{x:mt.x,y:mt.y,node:mt.node,parentPath:mt.parentPath,onClose:()=>C(null),onCreateChild:y=>On(y),onCreateFolder:y=>Rn(y),onDeleteDocument:y=>Ur(y.documentId,y.path),onDeleteFolder:y=>Br(y.documentId,y.folderDisplayName||y.name)}),pe&&f.jsx(Bi,{title:pe.type==="folder"?"删除文件夹":"删除文档",message:pe.type==="folder"?`确定要删除「${pe.name}」及其下的所有文档和子文件夹吗?此操作不可撤销。`:`确定要删除「${pe.name}」吗?`,confirmLabel:"删除",cancelLabel:"取消",onConfirm:ca,onCancel:()=>ft(null),danger:!0}),Mt&&f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:y=>{y.target===y.currentTarget&&!Et&&jn(null)},children:f.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[f.jsx("h1",{children:Mt.kind==="document"?e("newDocumentTitle"):e("newFolderTitle")}),f.jsx("p",{className:"muted",children:Mt.kind==="document"?e("fileNameHint"):e("folderNameHint")}),f.jsxs("form",{onSubmit:Xi,className:"mdocs-dialog-form",children:[f.jsxs("label",{className:"mdocs-dialog-label",children:[Mt.kind==="document"?e("fileNameLabel"):e("folderNameLabel"),f.jsx("input",{ref:Ji,value:Mt.draft,onChange:y=>jn(R=>R&&{...R,draft:y.target.value}),placeholder:Mt.kind==="document"?e("untitledPlaceholder"):e("folderExamplePlaceholder"),maxLength:200,disabled:Et})]}),Er&&f.jsx("div",{className:"mdocs-dialog-error",children:Er}),f.jsxs("div",{className:"mdocs-dialog-actions",children:[f.jsx("button",{type:"button",onClick:()=>!Et&&jn(null),disabled:Et,children:e("cancel")}),f.jsx("button",{type:"submit",className:"primary",disabled:Et,children:e(Et?"creating":"create")})]})]})]})})]})]})]})}const Uu=_.lazy(()=>zt(()=>import("./PlaygroundPage-CYx8X23_.js"),__vite__mapDeps([16,1,4,5,2,3,6,7,8,9])).then(e=>({default:e.PlaygroundPage})));function Bu(){return f.jsxs(pa,{children:[f.jsx(zn,{path:"/",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/doc/:documentId",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/playground",element:f.jsx(_.Suspense,{fallback:f.jsx("div",{style:{padding:24},children:"Loading playground…"}),children:f.jsx(Uu,{})})})]})}function Hu(){const{pathname:e,hash:n,search:r,origin:o}=window.location,i="/",a=i.endsWith("/")?i.slice(0,-1):i;let s=e;a&&s.startsWith(a)&&(s=s.slice(a.length)||"/");const l=s.match(/^\/doc\/([^/]+)\/?$/);if(!l)return;const d=n.match(/^#\/doc\/([^/?#]+)/),c=(d==null?void 0:d[1])??l[1];if(!c)return;const h=i.endsWith("/")?i:`${i}/`;window.location.replace(`${o}${h}${r}#/doc/${c}`)}Hu();const Gi=document.getElementById("root");if(!Gi)throw new Error("root element missing");ga.createRoot(Gi).render(f.jsx(Ko.StrictMode,{children:f.jsx(va,{motion:Aa,children:f.jsx(ba,{children:f.jsx(is,{children:f.jsx(ya,{children:f.jsx(Bu,{})})})})})}));export{Tf as $,rn as A,Qu as B,_s as C,cu as D,Jf as E,Rs as F,uf as G,df as H,cf as I,lf as J,hf as K,ef as L,Ga as M,yr as N,nf as O,Kr as P,tf as Q,rf as R,Za as S,mf as T,ff as U,pf as V,gf as W,yf as X,Pf as Y,ro as Z,Bi as _,Oe as a,Nf as a0,Af as a1,Mf as a2,Ef as a3,jf as a4,Of as a5,xu as a6,Cf as a7,Ps as a8,Df as a9,ju as aa,Yr as ab,ei as ac,af as ad,of as ae,kf as af,Rf as ag,Lf as ah,Ft as ai,Ff as aj,zf as ak,$f as al,Uf as am,Kf as an,Gf as ao,Yf as ap,Vf as aq,Hf as ar,Bf as as,qf as at,Wf as au,Vt as av,vf as aw,Un as ax,oo as ay,$n as az,lt as b,Re as c,Jn as d,If as e,sf as f,Xr as g,Ju as h,Ui as i,Sf as j,bf as k,yu as l,We as m,_f as n,xf as o,wf as p,ni as q,Ns as r,ws as s,$s as t,Iu as u,ti as v,bt as w,Su as x,Nu as y,Xn as z};
|
|
248
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ro(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,o)}return r}function Rt(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?Ro(Object(r),!0).forEach(function(o){nn(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ro(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function tn(e,n){return Md(e)||Od(e,n)||Ei(e,n)||Rd()}function $e(e){return Ed(e)||jd(e)||Ei(e)||Fd()}function Ld(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function zd(e){var n=Ld(e,"string");return typeof n=="symbol"?n:n+""}function pr(e){"@babel/helpers - typeof";return pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},pr(e)}function Ei(e,n){if(e){if(typeof e=="string")return hr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hr(e,n):void 0}}var $d=Ia(Sa);function Fo(e,n,r){!n||typeof r!="string"||e.filter(function(o){return!o[r]}).forEach(function(o){o[r]=$d(n(o))})}function Ud(e,n){var r=e.nodes,o=e.links,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.nodeFilter,s=a===void 0?function(){return!0}:a,l=i.onLoopError,d=l===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:l,c={};r.forEach(function(p){return c[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),o.forEach(function(p){var g=p.source,k=p.target,b=I(g),v=I(k);if(!c.hasOwnProperty(b))throw"Missing source node with id: ".concat(b);if(!c.hasOwnProperty(v))throw"Missing target node with id: ".concat(v);var w=c[b],D=c[v];w.out.push(D);function I(S){return pr(S)==="object"?n(S):S}});var h=[];m(Object.values(c));var u=Object.assign.apply(Object,[{}].concat($e(Object.entries(c).filter(function(p){var g=tn(p,2),k=g[1];return!k.skip}).map(function(p){var g=tn(p,2),k=g[0],b=g[1];return nn({},k,b.depth)}))));return u;function m(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,b=function(){var I=p[v];if(g.indexOf(I)!==-1){var S=[].concat($e(g.slice(g.indexOf(I))),[I]).map(function(N){return n(N.data)});return h.some(function(N){return N.length===S.length&&N.every(function(P,T){return P===S[T]})})||(h.push(S),d(S)),1}k>I.depth&&(I.depth=k,m(I.out,[].concat($e(g),[I]),k+(I.skip?0:1)))},v=0,w=p.length;v<w;v++)b()}}var Bd=2,we=function(n,r){return r.onNeedsRedraw&&r.onNeedsRedraw()},Lo=function(n,r){if(!r.isShadow){var o=ee(r.linkDirectionalParticles);r.graphData.links.forEach(function(i){var a=Math.round(Math.abs(o(i)));a?i.__photons=$e(Array(a)).map(function(){return{}}):delete i.__photons})}},Pn=xr({props:{graphData:{default:{nodes:[],links:[]},onChange:function(n,r){r.engineRunning=!1,Lo(n,r)}},dagMode:{onChange:function(n,r){!n&&(r.graphData.nodes||[]).forEach(function(o){return o.fx=o.fy=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(n){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:we},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:we},nodeColor:{default:"color",triggerUpdate:!1,onChange:we},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:we},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkColor:{default:"color",triggerUpdate:!1,onChange:we},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:we},linkWidth:{default:1,triggerUpdate:!1,onChange:we},linkCurvature:{default:0,triggerUpdate:!1,onChange:we},linkCanvasObject:{triggerUpdate:!1,onChange:we},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:we},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:we},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:we},linkDirectionalParticles:{default:0,triggerUpdate:!1,onChange:Lo},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},linkDirectionalParticleCanvasObject:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaDecay(n)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaTarget(n)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.velocityDecay(n)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(n,r,o){return o===void 0?n.forceLayout.force(r):(n.forceLayout.force(r,o),this)},d3ReheatSimulation:function(n){return n.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(n){return n.cntTicks=0,n.startTickTime=new Date,n.engineRunning=!0,this},isEngineRunning:function(n){return!!n.engineRunning},tickFrame:function(n){return!n.isShadow&&r(),i(),!n.isShadow&&a(),!n.isShadow&&s(),o(),this;function r(){n.engineRunning&&(++n.cntTicks>n.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin?(n.engineRunning=!1,n.onEngineStop()):(n.forceLayout.tick(),n.onEngineTick()))}function o(){var l=ee(n.nodeVisibility),d=ee(n.nodeVal),c=ee(n.nodeColor),h=ee(n.nodeCanvasObjectMode),u=n.ctx,m=n.isShadow/n.globalScale,p=n.graphData.nodes.filter(l);u.save(),p.forEach(function(g){var k=h(g);if(n.nodeCanvasObject&&(k==="before"||k==="replace")&&(n.nodeCanvasObject(g,u,n.globalScale),k==="replace")){u.restore();return}var b=Math.sqrt(Math.max(0,d(g)||1))*n.nodeRelSize+m;u.beginPath(),u.arc(g.x,g.y,b,0,2*Math.PI,!1),u.fillStyle=c(g)||"rgba(31, 120, 180, 0.92)",u.fill(),n.nodeCanvasObject&&k==="after"&&n.nodeCanvasObject(g,n.ctx,n.globalScale)}),u.restore()}function i(){var l=ee(n.linkVisibility),d=ee(n.linkColor),c=ee(n.linkWidth),h=ee(n.linkLineDash),u=ee(n.linkCurvature),m=ee(n.linkCanvasObjectMode),p=n.ctx,g=n.isShadow*2,k=n.graphData.links.filter(l);k.forEach(N);var b=[],v=[],w=k;if(n.linkCanvasObject){var D=[],I=[];k.forEach(function(P){return({before:b,after:v,replace:D}[m(P)]||I).push(P)}),w=[].concat($e(b),v,I),b=b.concat(D)}p.save(),b.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();var S=Nd(w,[d,c,h]);p.save(),Object.entries(S).forEach(function(P){var T=tn(P,2),U=T[0],E=T[1],$=!U||U==="undefined"?"rgba(0,0,0,0.15)":U;Object.entries(E).forEach(function(F){var B=tn(F,2),A=B[0],Y=B[1],te=(A||1)/n.globalScale+g;Object.entries(Y).forEach(function(ie){var ke=tn(ie,2);ke[0];var De=ke[1],Ae=h(De[0]);p.beginPath(),De.forEach(function(ye){var me=ye.source,ae=ye.target;if(!(!me||!ae||!me.hasOwnProperty("x")||!ae.hasOwnProperty("x"))){p.moveTo(me.x,me.y);var q=ye.__controlPoints;q?p[q.length===2?"quadraticCurveTo":"bezierCurveTo"].apply(p,$e(q).concat([ae.x,ae.y])):p.lineTo(ae.x,ae.y)}}),p.strokeStyle=$,p.lineWidth=te,p.setLineDash(Ae||[]),p.stroke()})})}),p.restore(),p.save(),v.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();function N(P){var T=u(P);if(!T){P.__controlPoints=null;return}var U=P.source,E=P.target;if(!(!U||!E||!U.hasOwnProperty("x")||!E.hasOwnProperty("x"))){var $=Math.sqrt(Math.pow(E.x-U.x,2)+Math.pow(E.y-U.y,2));if($>0){var F=Math.atan2(E.y-U.y,E.x-U.x),B=$*T,A={x:(U.x+E.x)/2+B*Math.cos(F-Math.PI/2),y:(U.y+E.y)/2+B*Math.sin(F-Math.PI/2)};P.__controlPoints=[A.x,A.y]}else{var Y=T*70;P.__controlPoints=[E.x,E.y-Y,E.x+Y,E.y]}}}}function a(){var l=1.6,d=.2,c=ee(n.linkDirectionalArrowLength),h=ee(n.linkDirectionalArrowRelPos),u=ee(n.linkVisibility),m=ee(n.linkDirectionalArrowColor||n.linkColor),p=ee(n.nodeVal),g=n.ctx;g.save(),n.graphData.links.filter(u).forEach(function(k){var b=c(k);if(!(!b||b<0)){var v=k.source,w=k.target;if(!(!v||!w||!v.hasOwnProperty("x")||!w.hasOwnProperty("x"))){var D=Math.sqrt(Math.max(0,p(v)||1))*n.nodeRelSize,I=Math.sqrt(Math.max(0,p(w)||1))*n.nodeRelSize,S=Math.min(1,Math.max(0,h(k))),N=m(k)||"rgba(0,0,0,0.28)",P=b/l/2,T=k.__controlPoints&&Oo(oe,[v.x,v.y].concat($e(k.__controlPoints),[w.x,w.y])),U=T?function(te){return T.get(te)}:function(te){return{x:v.x+(w.x-v.x)*te||0,y:v.y+(w.y-v.y)*te||0}},E=T?T.length():Math.sqrt(Math.pow(w.x-v.x,2)+Math.pow(w.y-v.y,2)),$=D+b+(E-D-I-b)*S,F=U($/E),B=U(($-b)/E),A=U(($-b*(1-d))/E),Y=Math.atan2(F.y-B.y,F.x-B.x)-Math.PI/2;g.beginPath(),g.moveTo(F.x,F.y),g.lineTo(B.x+P*Math.cos(Y),B.y+P*Math.sin(Y)),g.lineTo(A.x,A.y),g.lineTo(B.x-P*Math.cos(Y),B.y-P*Math.sin(Y)),g.fillStyle=N,g.fill()}}}),g.restore()}function s(){var l=ee(n.linkDirectionalParticles),d=ee(n.linkDirectionalParticleSpeed),c=ee(n.linkDirectionalParticleOffset),h=ee(n.linkDirectionalParticleWidth),u=ee(n.linkVisibility),m=ee(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(u).forEach(function(g){var k=l(g);if(!(!g.hasOwnProperty("__photons")||!g.__photons.length)){var b=g.source,v=g.target;if(!(!b||!v||!b.hasOwnProperty("x")||!v.hasOwnProperty("x"))){var w=d(g),D=Math.abs(c(g)),I=g.__photons||[],S=Math.max(0,h(g)/2)/Math.sqrt(n.globalScale),N=m(g)||"rgba(0,0,0,0.28)";p.fillStyle=N;var P=g.__controlPoints?Oo(oe,[b.x,b.y].concat($e(g.__controlPoints),[v.x,v.y])):null,T=0,U=!1;I.forEach(function(E){var $=!!E.__singleHop;if(E.hasOwnProperty("__progressRatio")||(E.__progressRatio=$?w<0?1:0:(T+D)/k),!$&&T++,E.__progressRatio+=w,E.__progressRatio>=1||E.__progressRatio<0)if(!$)E.__progressRatio=E.__progressRatio%1,E.__progressRatio<0&&E.__progressRatio++;else{U=!0;return}var F=E.__progressRatio,B=P?P.get(F):{x:b.x+(v.x-b.x)*F||0,y:b.y+(v.y-b.y)*F||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(B.x,B.y,g,p,n.globalScale):(p.beginPath(),p.arc(B.x,B.y,S,0,2*Math.PI,!1),p.fill())}),U&&(g.__photons=g.__photons.filter(function(E){return!E.__singleHop||E.__progressRatio<=1&&E.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:sd().force("link",Qc()).force("charge",ld()).force("center",yc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fo(n.graphData.nodes,ee(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fo(n.graphData.links,ee(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(m){m.source=m[n.linkSource],m.target=m[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var o=n.forceLayout.force("link");o&&o.id(function(m){return m[n.nodeId]}).links(n.graphData.links);var i=n.dagMode&&Ud(n.graphData,function(m){return m[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,$e(Object.values(i||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*Bd*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var l=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return delete m[l]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var d=["rl","bu"].includes(n.dagMode),c=function(p){return(i[p[n.nodeId]]-a/2)*s*(d?-1:1)},h=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return m[h]=c(m)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?cd(function(m){var p=i[m[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(m){return n.dagNodeFilter(m)?1:0}):null);for(var u=0;u<n.warmupTicks&&!(n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin);u++)n.forceLayout.tick();this.resetCountdown(),n.onFinishUpdate()}});function ji(e,n){var r=e instanceof Array?e:[e],o=new n;return o._destructor&&o._destructor(),{linkProp:function(a){return{default:o[a](),onChange:function(l,d){r.forEach(function(c){return d[c][a](l)})},triggerUpdate:!1}},linkMethod:function(a){return function(s){for(var l=arguments.length,d=new Array(l>1?l-1:0),c=1;c<l;c++)d[c-1]=arguments[c];var h=[];return r.forEach(function(u){var m=s[u],p=m[a].apply(m,d);p!==m&&h.push(p)}),h.length?h[0]:this}}}}var Hd=800,Vd=4,Gd=5,Oi=ji("forceGraph",Pn),Wd=ji(["forceGraph","shadowGraph"],Pn),qd=Object.assign.apply(Object,$e(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleCanvasObject","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(e){return nn({},e,Oi.linkProp(e))})).concat($e(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map(function(e){return nn({},e,Wd.linkProp(e))})))),Yd=Object.assign.apply(Object,$e(["d3Force","d3ReheatSimulation","emitParticle"].map(function(e){return nn({},e,Oi.linkMethod(e))})));function Wn(e){if(e.canvas){var n=e.canvas.width,r=e.canvas.height;n===300&&r===150&&(n=r=0);var o=window.devicePixelRatio;n/=o,r/=o,[e.canvas,e.shadowCanvas].forEach(function(a){a.style.width="".concat(e.width,"px"),a.style.height="".concat(e.height,"px"),a.width=e.width*o,a.height=e.height*o,!n&&!r&&a.getContext("2d").scale(o,o)});var i=ot(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-n)/2/i,(e.height-r)/2/i),e.needsRedraw=!0}}function Ri(e){var n=window.devicePixelRatio;e.setTransform(n,0,0,n,0,0)}function zo(e,n,r){e.save(),Ri(e),e.clearRect(0,0,n,r),e.restore()}var Kd=xr({props:Rt({width:{default:window.innerWidth,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(n,r){[n.nodes,n.links].every(function(i){return(i||[]).every(function(a){return!a.hasOwnProperty("__indexColor")})})&&r.colorTracker.reset(),[{type:"Node",objs:n.nodes},{type:"Link",objs:n.links}].forEach(o),r.forceGraph.graphData(n),r.shadowGraph.graphData(n);function o(i){var a=i.type,s=i.objs;s.filter(function(l){if(!l.hasOwnProperty("__indexColor"))return!0;var d=r.colorTracker.lookup(l.__indexColor);return!d||!d.hasOwnProperty("d")||d.d!==l}).forEach(function(l){l.__indexColor=r.colorTracker.register({type:a,d:l})})}},triggerUpdate:!1},backgroundColor:{onChange:function(n,r){r.canvas&&n&&(r.canvas.style.background=n)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(n,r){r.shadowGraph.nodeCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(n,r){r.shadowGraph.linkCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(n,r){r.zoom.scaleExtent([n,r.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(n,r){r.zoom.scaleExtent([r.zoom.scaleExtent()[0],n])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(n,r){r.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1},onZoom:{triggerUpdate:!1},onZoomEnd:{triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},qd),aliases:{stopAnimation:"pauseAnimation"},methods:Rt({graph2ScreenCoords:function(n,r,o){var i=ot(n.canvas);return{x:r*i.k+i.x,y:o*i.k+i.y}},screen2GraphCoords:function(n,r,o){var i=ot(n.canvas);return{x:(r-i.x)/i.k,y:(o-i.y)/i.k}},centerAt:function(n,r,o,i){if(!n.canvas)return null;if(r!==void 0||o!==void 0){var a=Object.assign({},r!==void 0?{x:r}:{},o!==void 0?{y:o}:{});return i?n.tweenGroup.add(new co(s()).to(a,i).easing(Dt.Quadratic.Out).onUpdate(l).onComplete(function(){n.tweenGroup.remove(this)}).start()):l(a),this}return s();function s(){var d=ot(n.canvas);return{x:(n.width/2-d.x)/d.k,y:(n.height/2-d.y)/d.k}}function l(d){var c=d.x,h=d.y;n.zoom.translateTo(n.zoom.__baseElem,c===void 0?s().x:c,h===void 0?s().y:h),n.needsRedraw=!0}},zoom:function(n,r,o){if(!n.canvas)return null;if(r!==void 0)return o?n.tweenGroup.add(new co({k:i()}).to({k:r},o).easing(Dt.Quadratic.Out).onUpdate(function(s){var l=s.k;return a(l)}).onComplete(function(){n.tweenGroup.remove(this)}).start()):a(r),this;return i();function i(){return ot(n.canvas).k}function a(s){n.zoom.scaleTo(n.zoom.__baseElem,s),n.needsRedraw=!0}},zoomToFit:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,i=arguments.length,a=new Array(i>3?i-3:0),s=3;s<i;s++)a[s-3]=arguments[s];var l=this.getGraphBbox.apply(this,a);if(l){var d={x:(l.x[0]+l.x[1])/2,y:(l.y[0]+l.y[1])/2},c=Math.max(1e-12,Math.min(1e12,(n.width-o*2)/(l.x[1]-l.x[0]),(n.height-o*2)/(l.y[1]-l.y[0])));this.centerAt(d.x,d.y,r),this.zoom(c,r)}return this},getGraphBbox:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},o=ee(n.nodeVal),i=function(l){return Math.sqrt(Math.max(0,o(l)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:i(s)}});return a.length?{x:[Hr(a,function(s){return s.x-s.r}),Vr(a,function(s){return s.x+s.r})],y:[Hr(a,function(s){return s.y-s.r}),Vr(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Yd),stateInit:function(){return{lastSetZoom:1,zoom:Ta(),forceGraph:new Pn,shadowGraph:new Pn().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Yl,tweenGroup:new si}},init:function(n,r){var o=this;n.innerHTML="";var i=document.createElement("div");i.classList.add("force-graph-container"),i.style.position="relative",n.appendChild(i),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),i.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),l={x:-1e12,y:-1e12},d=function(){var u=null,m=window.devicePixelRatio,p=l.x>0&&l.y>0?s.getImageData(l.x*m,l.y*m,1,1):null;return p&&(u=r.colorTracker.lookup(p.data)),u};tr(r.canvas).call(Da().subject(function(){if(!r.enableNodeDrag)return null;var h=d();return h&&h.type==="Node"?h.d:null}).on("start",function(h){var u=h.subject;u.__initialDragPos={x:u.x,y:u.y,fx:u.fx,fy:u.fy},h.active||(u.fx=u.x,u.fy=u.y),r.canvas.classList.add("grabbable")}).on("drag",function(h){var u=h.subject,m=u.__initialDragPos,p=h,g=ot(r.canvas).k,k={x:m.x+(p.x-m.x)/g-u.x,y:m.y+(p.y-m.y)/g-u.y};["x","y"].forEach(function(b){return u["f".concat(b)]=u[b]=m[b]+(p[b]-m[b])/g}),!(!u.__dragged&&Gd>=Math.sqrt(Pa(["x","y"].map(function(b){return Math.pow(h[b]-m[b],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,u.__dragged=!0,r.onNodeDrag(u,k))}).on("end",function(h){var u=h.subject,m=u.__initialDragPos,p={x:u.x-m.x,y:u.y-m.y};m.fx===void 0&&(u.fx=void 0),m.fy===void 0&&(u.fy=void 0),delete u.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,u.__dragged&&(delete u.__dragged,r.onNodeDragEnd(u,p))})),r.zoom(r.zoom.__baseElem=tr(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(h){return!h.button&&r.enableZoomPanInteraction&&(h.type!=="wheel"||ee(r.enableZoomInteraction)(h))&&(h.type==="wheel"||ee(r.enablePanInteraction)(h))}).on("zoom",function(h){var u=h.transform;[a,s].forEach(function(m){Ri(m),m.translate(u.x,u.y),m.scale(u.k,u.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Rt(Rt({},u),o.centerAt())),r.needsRedraw=!0}).on("end",function(h){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Rt(Rt({},h.transform),o.centerAt()))}),Wn(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){ot(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=Vd/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new gc(i),["pointermove","pointerdown"].forEach(function(h){return i.addEventListener(h,function(u){h==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=u),!r.isPointerDragging&&u.type==="pointermove"&&r.onBackgroundClick&&(u.pressure>0||r.isPointerPressed)&&(u.pointerType==="mouse"||u.movementX===void 0||[u.movementX,u.movementY].some(function(g){return Math.abs(g)>1}))&&(r.isPointerDragging=!0);var m=p(i);l.x=u.pageX-m.left,l.y=u.pageY-m.top;function p(g){var k=g.getBoundingClientRect(),b=window.pageXOffset||document.documentElement.scrollLeft,v=window.pageYOffset||document.documentElement.scrollTop;return{top:k.top+v,left:k.left+b}}},{passive:!0})}),i.addEventListener("pointerup",function(h){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var u=[h,r.pointerDownEvent];requestAnimationFrame(function(){if(h.button===0)if(r.hoverObj){var m=r["on".concat(r.hoverObj.type,"Click")];m&&m.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,u);if(h.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,u)})}},{passive:!0}),i.addEventListener("contextmenu",function(h){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(h.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var c=Na(function(){zo(s,r.width,r.height),r.shadowGraph.linkWidth(function(u){return ee(r.linkWidth)(u)+r.linkHoverPrecision});var h=ot(r.canvas);r.shadowGraph.globalScale(h.k).tickFrame()},Hd);r.flushShadowCanvas=c.flush,(this._animationCycle=function h(){var u=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(D){return D.__photons&&D.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var m=r.isPointerDragging?null:d();if(m!==r.hoverObj){var p=r.hoverObj,g=p?p.type:null,k=m?m.type:null;if(g&&g!==k){var b=r["on".concat(g,"Hover")];b&&b(null,p.d)}if(k){var v=r["on".concat(k,"Hover")];v&&v(m.d,g===k?p.d:null)}r.tooltip.content(m&&ee(r["".concat(m.type.toLowerCase(),"Label")])(m.d)||null),r.canvas.classList[(m&&r["on".concat(k,"Click")]||!m&&r.onBackgroundClick)&&ee(r.showPointerCursor)(m==null?void 0:m.d)?"add":"remove"]("clickable"),r.hoverObj=m}u&&c()}if(u){zo(a,r.width,r.height);var w=ot(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,w),r.forceGraph.globalScale(w).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,w)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(h)})()},update:function(n){}}),Fi={exports:{}},Jd="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Xd=Jd,Zd=Xd;function Li(){}function zi(){}zi.resetWarningCache=Li;var Qd=function(){function e(o,i,a,s,l,d){if(d!==Zd){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}e.isRequired=e;function n(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:zi,resetWarningCache:Li};return r.PropTypes=r,r};Fi.exports=Qd();var eu=Fi.exports;const x=fa(eu),En={width:x.number,height:x.number,graphData:x.shape({nodes:x.arrayOf(x.object).isRequired,links:x.arrayOf(x.object).isRequired}),backgroundColor:x.string,nodeRelSize:x.number,nodeId:x.string,nodeLabel:x.oneOfType([x.string,x.func]),nodeVal:x.oneOfType([x.number,x.string,x.func]),nodeVisibility:x.oneOfType([x.bool,x.string,x.func]),nodeColor:x.oneOfType([x.string,x.func]),nodeAutoColorBy:x.oneOfType([x.string,x.func]),onNodeHover:x.func,onNodeClick:x.func,linkSource:x.string,linkTarget:x.string,linkLabel:x.oneOfType([x.string,x.func]),linkVisibility:x.oneOfType([x.bool,x.string,x.func]),linkColor:x.oneOfType([x.string,x.func]),linkAutoColorBy:x.oneOfType([x.string,x.func]),linkWidth:x.oneOfType([x.number,x.string,x.func]),linkCurvature:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowLength:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowColor:x.oneOfType([x.string,x.func]),linkDirectionalArrowRelPos:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticles:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleSpeed:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleOffset:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleWidth:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleColor:x.oneOfType([x.string,x.func]),onLinkHover:x.func,onLinkClick:x.func,dagMode:x.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:x.number,dagNodeFilter:x.func,onDagError:x.func,d3AlphaMin:x.number,d3AlphaDecay:x.number,d3VelocityDecay:x.number,warmupTicks:x.number,cooldownTicks:x.number,cooldownTime:x.number,onEngineTick:x.func,onEngineStop:x.func,getGraphBbox:x.func},$i={zoomToFit:x.func,onNodeRightClick:x.func,onNodeDrag:x.func,onNodeDragEnd:x.func,onLinkRightClick:x.func,linkHoverPrecision:x.number,onBackgroundClick:x.func,onBackgroundRightClick:x.func,showPointerCursor:x.oneOfType([x.bool,x.func]),enablePointerInteraction:x.bool,enableNodeDrag:x.bool},Dr={showNavInfo:x.bool,nodeOpacity:x.number,nodeResolution:x.number,nodeThreeObject:x.oneOfType([x.object,x.string,x.func]),nodeThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),nodePositionUpdate:x.func,linkOpacity:x.number,linkResolution:x.number,linkCurveRotation:x.oneOfType([x.number,x.string,x.func]),linkMaterial:x.oneOfType([x.object,x.string,x.func]),linkThreeObject:x.oneOfType([x.object,x.string,x.func]),linkThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),linkPositionUpdate:x.func,linkDirectionalArrowResolution:x.number,linkDirectionalParticleResolution:x.number,linkDirectionalParticleThreeObject:x.oneOfType([x.object,x.string,x.func]),forceEngine:x.oneOf(["d3","ngraph"]),ngraphPhysics:x.object,numDimensions:x.oneOf([1,2,3])},tu=Object.assign({},En,$i,{linkLineDash:x.oneOfType([x.arrayOf(x.number),x.string,x.func]),nodeCanvasObjectMode:x.oneOfType([x.string,x.func]),nodeCanvasObject:x.func,nodePointerAreaPaint:x.func,linkCanvasObjectMode:x.oneOfType([x.string,x.func]),linkCanvasObject:x.func,linkPointerAreaPaint:x.func,linkDirectionalParticleCanvasObject:x.func,autoPauseRedraw:x.bool,minZoom:x.number,maxZoom:x.number,enableZoomInteraction:x.oneOfType([x.bool,x.func]),enablePanInteraction:x.oneOfType([x.bool,x.func]),onZoom:x.func,onZoomEnd:x.func,onRenderFramePre:x.func,onRenderFramePost:x.func});Object.assign({},En,$i,Dr,{enableNavigationControls:x.bool,controlType:x.oneOf(["trackball","orbit","fly"]),rendererConfig:x.object,extraRenderers:x.arrayOf(x.shape({render:x.func.isRequired}))});Object.assign({},En,Dr,{nodeDesc:x.oneOfType([x.string,x.func]),linkDesc:x.oneOfType([x.string,x.func])});Object.assign({},En,Dr,{markerAttrs:x.object,yOffset:x.number,glScale:x.number});const Pr=tl(Kd,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Pr.displayName="ForceGraph2D";Pr.propTypes=tu;function $o(e){return e==="contains"}function nu(e){return e==="related_to"||e==="part_of"||e==="depends_on"}function ru(e,n){var h,u;const r=new Set(e),o=new Map,i=new Map,a=new Map;for(const m of e)o.set(m,[]),i.set(m,[]),a.set(m,0);for(const m of n)!r.has(m.from)||!r.has(m.to)||m.from===m.to||(o.get(m.from).push(m.to),i.get(m.to).push(m.from),a.set(m.to,(a.get(m.to)??0)+1));let s=e.filter(m=>(a.get(m)??0)===0);if(s.length===0&&e.length>0){const m=new Map;for(const k of e)m.set(k,(((h=o.get(k))==null?void 0:h.length)??0)+(((u=i.get(k))==null?void 0:u.length)??0));const p=[...e].sort((k,b)=>(m.get(b)??0)-(m.get(k)??0)),g=m.get(p[0])??0;s=p.filter(k=>(m.get(k)??0)===g).slice(0,12)}const l=new Map,d=[];for(const m of s)l.set(m,0),d.push(m);let c=0;for(;c<d.length;){const m=d[c++],p=l.get(m)??0;for(const g of o.get(m)??[]){const k=p+1;(!l.has(g)||k<(l.get(g)??1/0))&&(l.set(g,k),d.push(g))}}for(const m of e)l.has(m)||l.set(m,0);return{childrenOf:o,parentsOf:i,roots:s,depthMap:l}}function qn(e,n,r,o,i){return i.has(e)?!1:(r.get(e)??0)<n?!0:o.has(e)}function ou(e,n,r){const o=new Set(e),i=[...e];let a=0;for(;a<i.length;){const s=i[a++];if(r(s))for(const l of n.get(s)??[])o.has(l)||(o.add(l),i.push(l))}return o}function iu(e,n){const r=[],o=new Set,i=[...n.get(e)??[]];for(;i.length>0;){const a=i.pop();if(!o.has(a)){o.add(a),r.push(a);for(const s of n.get(a)??[])i.push(s)}}return r}function au(e){const{event:n,data:r}=e;switch(n){case"task.started":return`🚀 开始生成,共 ${(r==null?void 0:r.totalDocs)??0} 篇文档`;case"doc.started":return`📄 处理中:${(r==null?void 0:r.docPath)??""}(${(r==null?void 0:r.index)??0}/${(r==null?void 0:r.total)??0})`;case"doc.completed":return`✅ ${(r==null?void 0:r.docPath)??""}(提取 ${(r==null?void 0:r.conceptsExtracted)??0} 个知识块)`;case"doc.failed":return`⚠️ ${(r==null?void 0:r.docPath)??""} 失败:${(r==null?void 0:r.error)??""}`;case"folder.started":return`📁 归纳目录:${(r==null?void 0:r.folderPath)??""}`;case"folder.completed":return`✅ 目录归纳完成:${(r==null?void 0:r.folderPath)??""}`;case"domain.started":return"🌐 开始 domain 级合成";case"domain.completed":return`✅ domain 合成完成(${(r==null?void 0:r.totalNodes)??0} 节点,${(r==null?void 0:r.totalEdges)??0} 边)`;case"task.yielded":return"⏸️ 让出资源,排队等待中...";case"task.progress":return`⏳ ${(r==null?void 0:r.phase)??"progress"} ${(r==null?void 0:r.current)??0}/${(r==null?void 0:r.total)??0}`;case"task.completed":return`🎉 生成完成!${(r==null?void 0:r.nodes)??0} 个节点,${(r==null?void 0:r.edges)??0} 条边`;case"task.failed":return`❌ 生成失败:${(r==null?void 0:r.error)??""}`;default:return`${n}${r?`: ${JSON.stringify(r)}`:""}`}}function Uo(e){return e<=1?"排队中,即将开始…":`排队中,前面还有 ${e-1} 个任务`}function Yn(e,n,r){const o=Math.max(e,.2);return Math.max(r??n*.75,n)/o}function su({scope:e,resourceId:n,name:r,onOpenDocument:o}){const[i,a]=_.useState(null),[s,l]=_.useState(!0),[d,c]=_.useState(null),[h,u]=_.useState(!1),[m,p]=_.useState(!1),[g,k]=_.useState(0),[b,v]=_.useState(()=>new Set),[w,D]=_.useState(()=>new Set),[I,S]=_.useState(null),[N,P]=_.useState(null),[T,U]=_.useState(null),E=_.useRef(null),$=_.useRef(new Map),[F,B]=_.useState("not_found"),[A,Y]=_.useState([]),[te,ie]=_.useState(null),[ke,De]=_.useState(0),Ae=`graph:${e==="domain"?"domain":"dir"}:${n}`,ye=_.useRef(Ae),me=_.useRef(null),ae=F==="running"||F==="pending";_.useEffect(()=>{let C=!1;return l(!0),c(null),S(null),k(0),v(new Set),D(new Set),p(!1),U(null),$.current=new Map,(e==="domain"?ao:io)(n).then(O=>{C||(a(O),l(!1))}).catch(O=>{C||(c(O.message||"加载失败"),l(!1))}),()=>{C=!0}},[n,e]),_.useEffect(()=>(ye.current=Ae,fe(),q(),()=>fe()),[Ae]);async function q(){try{const C=await Os(ye.current);B(C.status),Y(C.logs),ie(C.progress??null),De(C.position),C.status==="completed"?(fe(),ue()):C.status==="failed"||C.status==="stale"?(fe(),C.error&&c(C.error)):(C.status==="running"||C.status==="pending")&&J()}catch{}}function J(){me.current||(me.current=window.setInterval(()=>{q()},2e3))}function fe(){me.current&&(clearInterval(me.current),me.current=null)}async function ue(){try{const M=await(e==="domain"?ao:io)(n);a(M)}catch(C){c(C.message||"加载失败")}}const Me=async()=>{if(!ae){c(null);try{const M=await(e==="domain"?js:Es)(n);ye.current=M.taskId,B(M.status),De(M.position),Y([]),ie(null),J()}catch(C){c(C.message||"生成失败")}}},Ve=_.useMemo(()=>i?h?i.nodes:i.nodes.filter(C=>C.type==="concept"):[],[i,h]),Ue=_.useMemo(()=>{if(!i)return[];const C=new Set(Ve.map(M=>M.id));return i.edges.filter(M=>C.has(M.from)&&C.has(M.to))},[i,Ve]),ve=_.useMemo(()=>{const C=Ue.filter(M=>$o(String(M.type))).map(M=>({from:M.from,to:M.to}));return ru(Ve.map(M=>M.id),C)},[Ve,Ue]),Fe=_.useMemo(()=>ou(ve.roots,ve.childrenOf,C=>qn(C,g,ve.depthMap,b,w)),[ve,g,b,w]),{displayNodes:ct,displayEdges:Ze}=_.useMemo(()=>{const C=Ve.filter(O=>Fe.has(O.id)),M=Ue.filter(O=>{if(!Fe.has(O.from)||!Fe.has(O.to))return!1;const L=String(O.type);return!!($o(L)||m&&nu(L))});return{displayNodes:C,displayEdges:M}},[Ve,Ue,Fe,m]),an=_.useMemo(()=>{const C=new Map;for(const M of Ve)C.set(M.id,M);return C},[Ve]);function dt(C){k(C),v(new Set),D(new Set)}function ut(C){if((ve.childrenOf.get(C)??[]).length===0)return;qn(C,g,ve.depthMap,b,w)?(D(L=>new Set(L).add(C)),v(L=>{const G=new Set(L);return G.delete(C),G})):(D(L=>{const G=new Set(L);return G.delete(C),G}),v(L=>new Set(L).add(C)))}function Ut(C){const M=iu(C.id,ve.parentsOf);D(O=>{const L=new Set(O);for(const G of M)L.delete(G);return L}),v(O=>{const L=new Set(O);for(const G of M)L.add(G);return L}),S(C)}const _t=_.useMemo(()=>{const C=ct.map(L=>{var Ee;const G=((Ee=ve.childrenOf.get(L.id))==null?void 0:Ee.length)??0,X=qn(L.id,g,ve.depthMap,b,w),K=$.current.get(L.id);let Q=K==null?void 0:K.x,de=K==null?void 0:K.y;if(Q==null||de==null){const Ne=(ve.parentsOf.get(L.id)??[]).map(be=>$.current.get(be)).find(be=>be!=null);Ne?(Q=Ne.x+(Math.random()-.5)*60,de=Ne.y+50+Math.random()*40):(Q=(Math.random()-.5)*240,de=(Math.random()-.5)*180),$.current.set(L.id,{x:Q,y:de})}return{id:L.id,name:L.label,type:L.type,val:L.type==="concept"?4:2,x:Q,y:de,__raw:L,__childCount:G,__expanded:X}}),M=new Map,O=Ze.map(L=>{const G=`${L.from}->${L.to}`,X=M.get(G)??0;M.set(G,X+1);const K=X===0?.08:.08+X*.14;return{source:L.from,target:L.to,type:L.type,curvature:K,__raw:L}});return{nodes:C,links:O}},[ct,Ze,ve,g,b,w]),Qe=_.useMemo(()=>{const C=Math.max(1,ct.length);return{linkDistance:Math.min(140,70+Math.sqrt(C)*8),chargeStrength:Math.max(-420,-120-C*6)}},[ct.length]),ne=_.useRef(null),[wt,Pe]=_.useState({width:800,height:600});_.useEffect(()=>{if(!ne.current)return;const C=()=>{ne.current&&Pe({width:ne.current.clientWidth,height:ne.current.clientHeight})};C();const M=new ResizeObserver(C);return M.observe(ne.current),()=>M.disconnect()},[]),_.useEffect(()=>{if(!i||s)return;const C=window.setTimeout(()=>{var M,O;(O=(M=E.current)==null?void 0:M.zoomToFit)==null||O.call(M,400,80)},450);return()=>window.clearTimeout(C)},[i,h,m,s,wt.width,wt.height,g,Fe]),_.useEffect(()=>{var L,G,X,K;if(!i||s)return;const C=E.current;if(!C)return;const M=C.d3Force("charge");(L=M==null?void 0:M.strength)==null||L.call(M,Qe.chargeStrength);const O=C.d3Force("link");(G=O==null?void 0:O.distance)==null||G.call(O,Qe.linkDistance),(X=O==null?void 0:O.strength)==null||X.call(O,.35),(K=C.d3ReheatSimulation)==null||K.call(C)},[Qe,i,s,h,_t]);const pe=C=>(ve.childrenOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),ft=C=>(ve.parentsOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),mt=C=>{if(!i)return[];const M=new Set,O=[],L=[C];for(;L.length>0;){const G=L.shift();if(M.has(G))continue;M.add(G);const X=i.nodes.find(Q=>Q.id===G);(X==null?void 0:X.type)==="doc"&&O.push(X);const K=i.edges.filter(Q=>Q.from===G).map(Q=>Q.to);L.push(...K)}return O};return f.jsxs("div",{className:"graph-page",children:[f.jsxs("div",{className:"graph-toolbar",children:[f.jsxs("div",{className:"graph-title",children:[f.jsx("span",{className:"graph-icon",children:"🕸️"}),f.jsxs("span",{children:["知识图谱 — ",r]})]}),f.jsxs("div",{className:"graph-actions",children:[f.jsxs("div",{className:"graph-depth-btns",children:[f.jsx("button",{type:"button",className:`graph-btn ${g===1?"graph-btn-active":""}`,onClick:()=>dt(1),title:"展开到深度 1(顶层 + 直接子)",children:"展开一级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===2?"graph-btn-active":""}`,onClick:()=>dt(2),title:"展开到深度 2",children:"展开到二级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===0&&b.size===0?"graph-btn-active":""}`,onClick:()=>dt(0),title:"仅顶层",children:"全部收起"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:m,onChange:C=>p(C.target.checked)}),f.jsx("span",{children:"显示其它关系"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:h,onChange:C=>u(C.target.checked)}),f.jsx("span",{children:"显示 doc 节点"})]}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?f.jsxs(f.Fragment,{children:[f.jsx($n,{size:14,className:"spin"}),F==="pending"?Uo(ke):"生成中..."]}):f.jsxs(f.Fragment,{children:[f.jsx(Ja,{size:14}),i?"重新生成":"生成图谱"]})})]})]}),f.jsxs("div",{className:"graph-canvas-container",ref:ne,children:[s&&f.jsxs("div",{className:"graph-loading",children:[f.jsx($n,{size:32,className:"spin"}),f.jsx("p",{children:"加载图谱中..."})]}),d&&!s&&f.jsxs("div",{className:"graph-error",children:[f.jsxs("p",{children:["❌ ",d]}),f.jsx("button",{className:"graph-btn",onClick:Me,children:"重试生成"})]}),!s&&!d&&!i&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"🕸️"}),f.jsx("h3",{children:"还没有知识图谱"}),f.jsx("p",{className:"muted",children:"点击右上角「生成图谱」开始构建"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?"生成中...":"生成图谱"})]}),ae&&f.jsxs("div",{className:"graph-progress-panel",children:[f.jsxs("div",{className:"graph-progress-header",children:[f.jsx($n,{size:16,className:"spin"}),f.jsx("span",{children:F==="pending"?Uo(ke):te?`正在生成(${te.current}/${te.total})`:"正在生成..."})]}),te&&te.total>0&&f.jsx("div",{className:"graph-progress-bar",children:f.jsx("div",{className:"graph-progress-bar-fill",style:{width:`${te.current/te.total*100}%`}})}),f.jsx("div",{className:"graph-progress-logs",children:A.slice(-10).map((C,M)=>f.jsx("div",{className:`graph-log-item graph-log-${C.level}`,children:f.jsx("span",{className:"graph-log-event",children:au(C)})},M))})]}),!s&&!d&&i&&i.nodes.length===0&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"📄"}),f.jsx("h3",{children:"图谱已生成"}),f.jsx("p",{className:"muted",children:"当前内容暂未提取到可关联的知识概念"}),f.jsx("p",{className:"muted",style:{fontSize:13,marginTop:4},children:"内容较少或结构较简单时可能出现这种情况,补充更多内容后可以重新生成"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,style:{marginTop:12},children:"重新生成"})]}),!s&&!d&&i&&i.nodes.length>0&&f.jsx(Pr,{ref:E,width:wt.width,height:wt.height,graphData:_t,nodeId:"id",nodeVal:C=>C.type==="concept"?6:3,nodeColor:C=>C.type==="concept"?"#8b5cf6":"#06b6d4",nodeCanvasObjectMode:()=>"replace",nodeCanvasObject:(C,M,O)=>{const L=String(C.name??""),G=C.type==="concept",X=C.id===(I==null?void 0:I.id)||C.id===N,K=(G?9:5)/Math.max(O,.35);if(M.beginPath(),M.arc(C.x,C.y,K,0,2*Math.PI),M.fillStyle=G?"#8b5cf6":"#06b6d4",M.globalAlpha=X||!I?1:.35,M.fill(),M.strokeStyle="#ffffff",M.lineWidth=1.5/Math.max(O,.35),M.stroke(),M.globalAlpha=1,C.__childCount>0){const et=7/Math.max(O,.4),Ie=C.x+K+et*.9,Tt=C.y-K*.2;M.beginPath(),M.arc(Ie,Tt,et,0,2*Math.PI),M.fillStyle=C.__expanded?"#475569":"#6366f1",M.fill(),M.fillStyle="#ffffff";const ht=C.__expanded?"−":"+",kt=Math.max(10/O,9/O);M.font=`700 ${kt}px -apple-system, BlinkMacSystemFont, sans-serif`,M.textAlign="center",M.textBaseline="middle",M.fillText(ht,Ie,Tt+.5/O)}if(!(X||G&&O>=.55||!G&&O>=1.4))return;const de=Math.max(10/O,G?11/O:9/O),Ee=G?O<.9?8:16:10,Ne=L.length>Ee?L.slice(0,Ee)+"…":L;M.font=`${G?"600":"400"} ${de}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="top";const be=C.y+K+3/O,he=M.measureText(Ne).width,ge=4/O,Ce=2/O;M.fillStyle="rgba(255,255,255,0.88)",M.fillRect(C.x-he/2-ge,be-Ce,he+ge*2,de+Ce*2),M.fillStyle=G?"#1e1b4b":"#0c4a6e",M.fillText(Ne,C.x,be)},linkDirectionalArrowLength:C=>{var L,G,X,K,Q,de;const M=((G=(L=E.current)==null?void 0:L.zoom)==null?void 0:G.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?13:11,9)},linkDirectionalArrowRelPos:.86,linkDirectionalArrowColor:()=>"#475569",linkWidth:C=>{var L,G,X,K,Q,de;const M=((G=(L=E.current)==null?void 0:L.zoom)==null?void 0:G.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?3.5:3,2.25)},linkColor:C=>{var O,L,G,X;return((O=C.source)==null?void 0:O.id)===N||((L=C.target)==null?void 0:L.id)===N||((G=C.source)==null?void 0:G.id)===(I==null?void 0:I.id)||((X=C.target)==null?void 0:X.id)===(I==null?void 0:I.id)?"#334155":"#64748b"},linkCurvature:C=>C.curvature??.12,linkCanvasObjectMode:()=>"after",linkCanvasObject:(C,M,O)=>{if(O<.45)return;const L=C.source,G=C.target;if(L.x==null||L.y==null||G.x==null||G.y==null)return;const K={contains:"包含",related_to:"相关",part_of:"属于",depends_on:"依赖"}[C.type]||String(C.type??""),Q=typeof C.curvature=="number"?C.curvature:.12,de=(L.x+G.x)/2,Ee=(L.y+G.y)/2,Ne=de-(G.y-L.y)*Q,be=Ee+(G.x-L.x)*Q,he=.5,ge=1-he,Ce=ge*ge*L.x+2*ge*he*Ne+he*he*G.x,et=ge*ge*L.y+2*ge*he*be+he*he*G.y,Ie=2*ge*(Ne-L.x)+2*he*(G.x-Ne),Tt=2*ge*(be-L.y)+2*he*(G.y-be);let ht=Math.atan2(Tt,Ie);(ht>Math.PI/2||ht<-Math.PI/2)&&(ht+=Math.PI);const kt=Yn(O,11,9);M.save(),M.translate(Ce,et),M.rotate(ht),M.font=`500 ${kt}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="middle";const sn=M.measureText(K).width,ln=3/O,cn=1.5/O;M.fillStyle="rgba(255,255,255,0.92)",M.fillRect(-sn/2-ln,-kt/2-cn,sn+ln*2,kt+cn*2),M.fillStyle="#475569",M.fillText(K,0,0),M.restore()},onZoom:()=>{var C,M;(M=(C=E.current)==null?void 0:C.refresh)==null||M.call(C)},cooldownTicks:120,cooldownTime:4e3,d3AlphaDecay:.022,d3VelocityDecay:.3,onNodeClick:(C,M)=>{var L,G;const O=C.__childCount??0;if(O>0&&E.current&&ne.current){const X=ne.current.getBoundingClientRect(),K=E.current.screen2GraphCoords(M.clientX-X.left,M.clientY-X.top),Q=((G=(L=E.current).zoom)==null?void 0:G.call(L))??1,de=(C.type==="concept"?9:5)/Math.max(Q,.35),Ee=7/Math.max(Q,.4),Ne=C.x+de+Ee*.9,be=C.y-de*.2,he=K.x-Ne,ge=K.y-be;if(he*he+ge*ge<=(Ee+4/Q)**2){ut(String(C.id)),S(C.__raw);return}}S(C.__raw),O>0&&!C.__expanded&&ut(String(C.id))},onNodeHover:C=>{var O;if(!C){P(null),U(null);return}P(String(C.id));const M=String(C.name??((O=C.__raw)==null?void 0:O.label)??"");if(E.current&&M){const L=E.current.graph2ScreenCoords(C.x,C.y);U({text:M,x:L.x,y:L.y})}else U({text:M,x:0,y:0})},onBackgroundClick:()=>{S(null),P(null),U(null)},onEngineTick:()=>{var M,O;const C=(O=(M=E.current)==null?void 0:M.graphData)==null?void 0:O.call(M);if(C!=null&&C.nodes)for(const L of C.nodes)L.id!=null&&L.x!=null&&L.y!=null&&$.current.set(String(L.id),{x:L.x,y:L.y})},onEngineStop:()=>{var C,M;(M=(C=E.current)==null?void 0:C.zoomToFit)==null||M.call(C,300,72)},linkHoverPrecision:8,enableNodeDrag:!0,enableZoomInteraction:!0,enablePanInteraction:!0,nodePointerAreaPaint:(C,M,O,L)=>{const G=(C.type==="concept"?14:9)/Math.max(L,.35);if(O.fillStyle=M,O.beginPath(),O.arc(C.x,C.y,G,0,2*Math.PI),O.fill(),C.__childCount>0){const X=10/Math.max(L,.4),K=(C.type==="concept"?9:5)/Math.max(L,.35),Q=C.x+K+X*.7,de=C.y-K*.2;O.beginPath(),O.arc(Q,de,X,0,2*Math.PI),O.fill()}}}),T&&f.jsx("div",{className:"graph-node-tooltip",style:{left:T.x,top:T.y},children:T.text})]}),I&&f.jsxs("div",{className:"graph-detail-panel",children:[f.jsxs("div",{className:"graph-detail-header",children:[f.jsx("span",{className:`graph-node-type-badge ${I.type}`,children:I.type==="concept"?"概念":"知识要点"}),f.jsx("button",{type:"button",className:"graph-close-btn","aria-label":"关闭",onClick:()=>S(null),children:f.jsx(Ft,{size:18,strokeWidth:2.25})})]}),f.jsx("h3",{className:"graph-detail-title",children:I.label}),I.definition&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"定义"}),f.jsx("p",{children:I.definition})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"描述"}),f.jsx("p",{children:I.description})]}),f.jsx("div",{className:"graph-detail-meta",children:f.jsxs("span",{children:["置信度: ",(I.confidence*100).toFixed(0),"%"]})}),I.type==="concept"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["包含的子节点 (",pe(I.id).length,")"]}),f.jsxs("ul",{className:"graph-node-list",children:[pe(I.id).slice(0,20).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id)),pe(I.id).length>20&&f.jsxs("li",{className:"muted",children:["还有 ",pe(I.id).length-20," 个..."]})]})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["相关文章 (",mt(I.id).length,")"]}),f.jsx("ul",{className:"graph-doc-list",children:Array.from(new Set(mt(I.id).flatMap(C=>{var M;return((M=C.sources)==null?void 0:M.map(O=>({documentId:O.documentId,title:O.title||O.documentId,heading:O.heading})))||[]}))).slice(0,10).map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]})]}),I.type==="doc"&&I.sources&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"来源"}),f.jsx("ul",{className:"graph-doc-list",children:I.sources.map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title||C.documentId,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]}),ft(I.id).length>0&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["所属概念 (",ft(I.id).length,")"]}),f.jsx("ul",{className:"graph-node-list",children:ft(I.id).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id))})]})]})]})}function lu(e){var l;const{t:n}=lt(),r=_.useRef(null);_.useEffect(()=>{function d(h){r.current&&!r.current.contains(h.target)&&e.onClose()}function c(h){h.key==="Escape"&&e.onClose()}return window.addEventListener("mousedown",d),window.addEventListener("keydown",c),()=>{window.removeEventListener("mousedown",d),window.removeEventListener("keydown",c)}},[e.onClose]);const o=e.node.type==="folder";let i="";if(e.node.type==="folder"){const d=e.node;i=((l=d.folderDisplayName)==null?void 0:l.trim())||d.path||""}const a=o?i?n("newDocIn",{name:i}):n("newDocAtRoot"):n("newDocBeside"),s=o?i?n("newFolderIn",{name:i}):n("newFolderAtRoot"):n("newFolderBeside");return f.jsxs("div",{ref:r,className:"mdocs-context-menu card",style:{left:e.x,top:e.y},children:[f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateChild(d),e.onClose()},children:a}),f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateFolder(d),e.onClose()},children:s}),f.jsx("button",{type:"button",className:"mdocs-context-item danger",onClick:()=>{e.node.type==="document"?e.onDeleteDocument(e.node):e.onDeleteFolder(e.node),e.onClose()},children:e.node.type==="folder"?n("deleteFolder",{name:i||e.node.name}):n("deleteItem",{name:e.node.name})})]})}function cu({domains:e,value:n,onChange:r,ariaLabel:o,localizeName:i,onDomainsChange:a}){const[s,l]=_.useState(!1),[d,c]=_.useState(e),h=_.useRef(null),u=_.useRef(null);_.useEffect(()=>{c(e)},[e]);const m=d.find(b=>b.domainId===n),p=(m==null?void 0:m.permission)==="private";_.useEffect(()=>{if(!s)return;const b=v=>{var w,D;!((w=h.current)!=null&&w.contains(v.target))&&!((D=u.current)!=null&&D.contains(v.target))&&l(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s]),_.useEffect(()=>{if(!s)return;const b=v=>{var w;v.key==="Escape"&&(l(!1),(w=h.current)==null||w.focus())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[s]);function g(b){r(b),l(!1)}function k(){if(s){l(!1);return}l(!0),ni().then(b=>{c(b),a==null||a(b)})}return f.jsxs("div",{className:"mdocs-domain-select-wrapper",children:[f.jsxs("button",{ref:h,type:"button",className:"mdocs-domain-select-trigger","aria-label":o,"aria-expanded":s,"aria-haspopup":"listbox",onClick:k,children:[f.jsx("span",{className:"mdocs-domain-select-text",children:m?i(m.domainName):""}),p&&f.jsxs("svg",{className:"mdocs-domain-lock",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),f.jsx("svg",{className:"mdocs-domain-select-chevron"+(s?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"1.5",children:f.jsx("path",{d:"M1 1l4 4 4-4"})})]}),s&&f.jsx("div",{ref:u,className:"mdocs-domain-select-menu card",role:"listbox","aria-label":o,children:d.map(b=>f.jsxs("button",{type:"button",className:"mdocs-domain-select-option"+(b.domainId===n?" active":""),role:"option","aria-selected":b.domainId===n,onClick:()=>g(b.domainId),children:[f.jsx("span",{children:i(b.domainName)}),b.permission==="private"&&f.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})]},b.domainId))})]})}const Ui="data:image/svg+xml,%3csvg%20fill='%234D6BFE'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%3e%3c/path%3e%3c/svg%3e",Ke={left:12,bottom:64},Nr="mdocs.agentFabPosition",Nn=36,Bo=3;function Tr(e){const r=Math.max(8,window.innerWidth-Nn-8),o=Math.max(8,window.innerHeight-Nn-8);return{left:Math.min(r,Math.max(8,e.left)),bottom:Math.min(o,Math.max(8,e.bottom))}}function du(e,n,r,o){const i=e-r,a=n-o,s=window.innerHeight-a-Nn;return Tr({left:i,bottom:s})}function uu(){try{const e=localStorage.getItem(Nr);if(!e)return Ke;const n=JSON.parse(e);return typeof n.left!="number"||typeof n.bottom!="number"?Ke:Tr({left:n.left,bottom:n.bottom})}catch{return Ke}}function Ho(e){localStorage.setItem(Nr,JSON.stringify(e))}function fu(e){return e.left===Ke.left&&e.bottom===Ke.bottom}function mu(e){const r=Math.min(480,window.innerWidth-72);let o=e.left+Nn+8;o+r>window.innerWidth-8&&(o=e.left-8-r),o=Math.max(8,o);const i=Math.max(8,e.bottom-8);return{left:o,bottom:i}}function hu(e){const{t:n}=lt(),r=!!e.disableDrag,[o,i]=_.useState(!1),[a,s]=_.useState(e.position),l=_.useRef(null),d=_.useRef(null),c=_.useRef(a),h=_.useRef(e.onPositionChange),u=_.useRef(e.onToggle);c.current=a,h.current=e.onPositionChange,u.current=e.onToggle;const m=_.useRef(null),p=_.useRef(0),g=_.useRef(null);_.useEffect(()=>{m.current||(s(e.position),c.current=e.position)},[e.position]),_.useEffect(()=>{function D(){const I=Tr(c.current);I.left===c.current.left&&I.bottom===c.current.bottom||(c.current=I,s(I),h.current(I),Ho(I))}return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),_.useEffect(()=>{function D(){p.current=0;const N=g.current;if(!N)return;g.current=null,c.current=N,s(N);const P=d.current;P&&(P.style.left=`${N.left}px`,P.style.bottom=`${N.bottom}px`),h.current(N)}function I(N){const P=m.current;if(!P||N.pointerId!==P.pointerId)return;N.preventDefault();const T=N.clientX-P.startX,U=N.clientY-P.startY;!P.didMove&&T*T+U*U>=Bo*Bo&&(P.didMove=!0,i(!0)),P.didMove&&(g.current=du(N.clientX,N.clientY,P.offsetX,P.offsetY),p.current||(p.current=requestAnimationFrame(D)))}function S(N){var T;const P=m.current;if(!(!P||N.pointerId!==P.pointerId)){m.current=null,i(!1),p.current&&(cancelAnimationFrame(p.current),p.current=0),g.current&&(c.current=g.current,s(g.current),g.current=null);try{(T=l.current)==null||T.releasePointerCapture(N.pointerId)}catch{}if(P.didMove){const U=c.current;h.current(U),Ho(U);return}u.current()}}return window.addEventListener("pointermove",I,{passive:!1}),window.addEventListener("pointerup",S),window.addEventListener("pointercancel",S),()=>{window.removeEventListener("pointermove",I),window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),p.current&&cancelAnimationFrame(p.current)}},[]);function k(D){if(D.button!==0)return;if(r){D.preventDefault(),e.onToggle();return}D.preventDefault();const I=D.currentTarget.getBoundingClientRect();m.current={pointerId:D.pointerId,offsetX:D.clientX-I.left,offsetY:D.clientY-I.top,startX:D.clientX,startY:D.clientY,didMove:!1},D.currentTarget.setPointerCapture(D.pointerId)}function b(){c.current=Ke,s(Ke),e.onPositionChange(Ke),localStorage.removeItem(Nr)}const v=r?Ke:a,w=!r&&!fu(a);return f.jsxs("div",{ref:d,className:"mdocs-agent-fab-wrap"+(o?" dragging":""),style:{left:v.left,bottom:v.bottom},children:[f.jsx("button",{ref:l,type:"button",className:"mdocs-agent-fab"+(e.open?" open":"")+(o?" dragging":"")+(r?" mdocs-agent-fab--nodrag":""),"aria-label":n("agentFabOpen"),"aria-expanded":e.open,onPointerDown:k,children:f.jsx("img",{src:Ui,alt:"",draggable:!1})}),w&&f.jsx("button",{type:"button",className:"mdocs-agent-fab-reset",onClick:b,"aria-label":n("agentFabReset"),children:n("agentFabReset")})]})}function pu(){const[e,n]=_.useState(()=>typeof window>"u"?Ke:uu());return[e,n]}function gu({title:e,message:n,onClose:r}){const{t:o}=lt();return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:i=>{i.target===i.currentTarget&&r()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsx("div",{className:"mdocs-message-dialog-actions",children:f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("gotIt")})})]})})}function Bi({title:e,message:n,confirmLabel:r="确定",cancelLabel:o="取消",onConfirm:i,onCancel:a,busy:s=!1,danger:l=!1}){return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:d=>{d.target===d.currentTarget&&!s&&a()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsxs("div",{className:"mdocs-message-dialog-actions",style:{gap:8},children:[f.jsx("button",{type:"button",onClick:a,disabled:s,children:o}),f.jsx("button",{type:"button",className:l?"danger":"primary",onClick:i,disabled:s,children:s?"…":r})]})]})})}const Vo={"relative path is required":"pathRequired","path must be relative":"pathMustBeRelative","use forward slashes":"useForwardSlashes","path must not contain ..":"pathNoDotDot","document path must end with .md":"pathMustEndWithMd","path contains unsupported characters":"pathUnsupportedChars","path escapes docs root":"pathEscapesRoot"},Hi={"enter a folder name":"enterFolderName","use a single name, not a path":"singleNameNotPath","invalid folder name":"invalidFolderName","folder name is too long":"folderNameTooLong","enter a file name":"enterFileName","use a file name, not a path":"singleFileNameNotPath","invalid file name":"invalidFileName","file name is too long":"fileNameTooLong"};function bt(e,n){if(n instanceof Je)return n.message;if(n instanceof yt){const r=Vo[n.message];return r?e(r):n.message}if(n instanceof Error){const r=Vo[n.message]??Hi[n.message];return r?e(r):n.message}return String(n)}function yu(e,n,r){if(e==="Default")return r("defaultDomain");const o="个人域";return e.endsWith(o)?e.slice(0,-o.length)+r("personalDomainSuffix"):e}function Jf(e,n){return e==="public"?n("domainPublic"):e==="restricted"?n("domainRestricted"):e==="private"?n("domainPrivate"):e}function vn(e){const n=e.lastIndexOf("/");return n===-1?"":e.slice(0,n)}function vu(e){return JSON.stringify({root:{children:[{children:[{detail:0,format:0,mode:"normal",text:e,type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"heading",tag:"h1",version:1}],direction:"ltr",type:"root",version:1}})}function Go(e,n){const r=e.trim(),o=n.trim();return o?r?`${r}/${o}`:o:r}function Vi(e,n=new Set){for(const r of e)r.type==="document"?n.add(r.path):(r.descDocumentId&&n.add(ls(r.path)),Vi(r.children,n));return n}function gr(e,n){for(const r of e){if(r.type==="folder"&&r.path===n)return r.documentId;if(r.type==="folder"){const o=gr(r.children,n);if(o)return o}}return null}function Wo(e,n){const r=Hi[n];return r?e(r):n}function bu(e){const{tree:n,currentDomainId:r,selectedCreateParentPath:o,t:i,onDocCreated:a,refreshTree:s}=e,[l,d]=_.useState(null),[c,h]=_.useState(null),[u,m]=_.useState(!1),p=_.useRef(null);_.useEffect(()=>{if(!l)return;const v=window.setTimeout(()=>{var w;return(w=p.current)==null?void 0:w.focus()},0);return()=>window.clearTimeout(v)},[l]);function g(v){const w=v!==void 0;h(null),d({kind:"document",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:"untitled.md"})}function k(v){const w=v!==void 0;h(null),d({kind:"folder",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:""})}async function b(v){if(v.preventDefault(),!l)return;m(!0),h(null);const w=Vi(n),D=l.parentMode==="selection"?o:l.parentPath;try{if(l.kind==="document"){const T=fs(l.draft);if(!T.ok){h(Wo(i,T.message));return}const U=T.displayFile,E=U.replace(/\.md$/i,"");let $;try{$=ms(Go(D,U))}catch(A){h(bt(i,A));return}if(w.has($)){h(i("pathExists"));return}const F=D?gr(n,D)??void 0:void 0,B=await ti({fileName:U,displayName:E,content:vu(E),domainId:r,parentId:F});await s(),a(B),d(null);return}const I=us(l.draft);if(!I.ok){h(Wo(i,I.message));return}const S=nr(I.display);if(!S){h(i("invalidFolderName"));return}const N=Go(D,S);if(w.has(N)){h(i("folderExists"));return}const P=D?gr(n,D)??void 0:void 0;await Ss({name:S,parentId:P,domainId:r}),await s(),d(null)}catch(I){h(bt(i,I))}finally{m(!1)}}return{createModal:l,setCreateModal:d,createModalError:c,createModalBusy:u,createModalInputRef:p,openNewDocumentModal:g,openNewFolderModal:k,submitCreateModal:b}}const qo="(max-width: 768px)";function xu(){const[e,n]=_.useState(()=>typeof window<"u"?window.matchMedia(qo).matches:!1);return _.useEffect(()=>{const r=window.matchMedia(qo),o=()=>n(r.matches);return o(),r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),e}function _u({open:e,onClose:n,onResolve:r}){const{t:o}=lt();return e?f.jsx("div",{className:"mdocs-conflict-modal-root",role:"alertdialog","aria-modal":"true",children:f.jsxs("div",{className:"mdocs-conflict-modal-panel",children:[f.jsx("h2",{className:"mdocs-conflict-modal-title",children:o("conflictTitle")}),f.jsx("p",{className:"mdocs-conflict-modal-body",children:o("conflictBody")}),f.jsxs("div",{className:"mdocs-conflict-modal-actions",children:[f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("conflictResolve")}),f.jsx("button",{type:"button",className:"secondary",onClick:n,children:o("conflictClose")})]})]})}):null}function wu({documentId:e,visitorId:n,visitorName:r,documentOwnerId:o,onClose:i}){const[a,s]=_.useState([]),[l,d]=_.useState(""),[c,h]=_.useState(null),[u,m]=_.useState(!0),[p,g]=_.useState(!1),[k,b]=_.useState(null),[v,w]=_.useState(null),[D,I]=_.useState(360),[S,N]=_.useState(80),P=_.useRef(!1),T=_.useRef(!1),U=300,E=80,$=_.useRef(null);function F(){const q=$.current;if(!q)return;q.style.height="auto";const J=q.scrollHeight,fe=Math.min(Math.max(J,E),U);q.style.height=`${fe}px`,N(fe)}_.useEffect(()=>{setTimeout(()=>F(),0)},[c]);function B(q){return n?q.visitorId===n||o===n:!1}const{rootComments:A,repliesByParentId:Y,totalCount:te}=_.useMemo(()=>{const q=[],J=new Map;let fe=0;for(const ue of a)ue.isDeleted||(fe++,ue.parentId?(J.has(ue.parentId)||J.set(ue.parentId,[]),J.get(ue.parentId).push(ue)):q.push(ue));return{rootComments:q,repliesByParentId:J,totalCount:fe}},[a]),ie=_.useRef(e);_.useEffect(()=>{ie.current=e,d(""),h(null),w(null),ke()},[e]);async function ke(){const q=ie.current;m(!0);try{const J=await Ts(e);if(ie.current!==q)return;s(J.comments)}catch(J){if(ie.current!==q)return;w("加载评论失败"),console.error("Failed to load comments:",J)}finally{ie.current===q&&m(!1)}}async function De(){var q;if(!(!l.trim()||!n)){g(!0),w(null);try{await As(e,{content:l,parentId:(c==null?void 0:c.commentId)||null,replyToVisitorId:c?((q=a.find(J=>J.commentId===c.commentId))==null?void 0:q.visitorId)??null:null,replyToVisitorName:(c==null?void 0:c.visitorName)||null}),d(""),h(null),setTimeout(()=>F(),0),await ke()}catch(J){w(J.message||"发表失败,请重试")}finally{g(!1)}}}async function Ae(q){w(null);try{await Ms(e,q),await ke()}catch(J){w(J.message||"删除失败,请重试")}finally{b(null)}}function ye(q){const J=Date.now()-new Date(q).getTime(),fe=Math.floor(J/6e4),ue=Math.floor(J/36e5),Me=Math.floor(J/864e5);return fe<1?"刚刚":fe<60?`${fe}分钟前`:ue<24?`${ue}小时前`:`${Me}天前`}function me(q){P.current=!0,q.preventDefault()}function ae(q){T.current=!0,q.preventDefault(),document.body.style.userSelect="none",document.body.style.cursor="row-resize"}return _.useEffect(()=>{function q(fe){if(P.current){const ue=Math.max(280,Math.min(600,window.innerWidth-fe.clientX));I(ue)}if(T.current){const ue=-fe.movementY;N(Me=>Math.max(60,Math.min(600,Me+ue)))}}function J(){P.current=!1,T.current=!1,document.body.style.userSelect="",document.body.style.cursor=""}return window.addEventListener("mousemove",q),window.addEventListener("mouseup",J),()=>{window.removeEventListener("mousemove",q),window.removeEventListener("mouseup",J)}},[]),f.jsxs("div",{className:"mdocs-comments-panel",style:{width:D},children:[f.jsx("div",{className:"mdocs-comments-resize-handle",onMouseDown:me}),f.jsxs("div",{className:"mdocs-comments-header",children:[f.jsxs("h3",{style:{margin:0,fontSize:"1rem",display:"flex",alignItems:"center",gap:6},children:[f.jsx(Ga,{size:18}),"评论 (",te,")"]}),f.jsx("button",{type:"button",onClick:i,className:"mdocs-comments-close-btn",children:f.jsx(Ft,{size:18})})]}),v&&f.jsxs("div",{className:"mdocs-comments-error",children:[v,f.jsx("button",{type:"button",onClick:()=>w(null),children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comments-list",children:u?f.jsx("div",{className:"mdocs-comments-empty",children:"加载中..."}):A.length===0?f.jsx("div",{className:"mdocs-comments-empty",children:"暂无评论,来发表第一条吧~"}):A.map(q=>f.jsxs("div",{className:"mdocs-comment-root",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar",children:q.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:q.visitorName}),f.jsx("span",{className:"mdocs-comment-time",children:ye(q.createdAt)}),B(q)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(q.commentId),title:"删除",children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comment-content",children:q.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:q.visitorName}),children:"回复"}),(Y.get(q.commentId)??[]).length>0&&f.jsx("div",{className:"mdocs-comment-replies",children:(Y.get(q.commentId)??[]).map(J=>f.jsxs("div",{className:"mdocs-comment-reply",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar mdocs-comment-avatar-small",children:J.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:J.visitorName}),J.replyToVisitorName&&f.jsxs("span",{className:"mdocs-comment-reply-to",children:["回复 ",J.replyToVisitorName]}),f.jsx("span",{className:"mdocs-comment-time",children:ye(J.createdAt)}),B(J)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(J.commentId),title:"删除",children:f.jsx(Ft,{size:12})})]}),f.jsx("div",{className:"mdocs-comment-content",children:J.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:J.visitorName}),children:"回复"})]},J.commentId))})]},q.commentId))}),n?f.jsxs("div",{className:"mdocs-comments-input-wrapper",children:[f.jsx("div",{className:"mdocs-comments-input-drag-handle",onMouseDown:ae}),c&&f.jsxs("div",{className:"mdocs-comment-reply-notice",children:[f.jsxs("span",{children:["回复 ",f.jsx("span",{className:"mdocs-comment-reply-to-name",children:c.visitorName})]}),f.jsxs("button",{type:"button",onClick:()=>h(null),children:[f.jsx(Ft,{size:14})," 取消"]})]}),f.jsx("textarea",{ref:$,value:l,onChange:q=>{d(q.target.value.slice(0,512)),setTimeout(()=>F(),0)},placeholder:c?`回复 ${c.visitorName}...`:"发表评论...",className:"mdocs-comments-input",style:{height:S},maxLength:512,onKeyDown:q=>{q.key==="Enter"&&(q.metaKey||q.ctrlKey)&&De()}}),f.jsxs("div",{className:`mdocs-comments-char-count${l.length>=460?" mdocs-char-count--warn":""}`,children:[l.length,"/512"]}),f.jsx("div",{className:"mdocs-comments-input-actions",children:f.jsx("button",{type:"button",className:"mdocs-btn-primary",onClick:De,disabled:p||!l.trim(),children:p?"发表中...":"发表"})})]}):f.jsx("div",{className:"mdocs-comments-input-wrapper",style:{textAlign:"center"},children:f.jsx("div",{style:{color:"#666",fontSize:"0.9rem"},children:"请先创建访客身份以发表评论"})}),k&&f.jsx(Bi,{title:"删除评论",message:"确定要删除这条评论吗?",confirmLabel:"删除",danger:!0,onConfirm:()=>Ae(k),onCancel:()=>b(null)})]})}const ku="mdocs-drafts",Cu=4,Se="drafts",Lt={DOC_NOT_FOUND:"DOC_NOT_FOUND",SYNC_HEAD_MISSING:"SYNC_HEAD_MISSING"};let Kn=null;function $t(){return Kn||(Kn=new Promise((e,n)=>{const r=indexedDB.open(ku,Cu);r.onupgradeneeded=o=>{const i=r.result;i.objectStoreNames.contains(Se)||i.createObjectStore(Se,{keyPath:"documentId"});const a=o.oldVersion;if(a>0&&a<4){const d=r.transaction.objectStore(Se).openCursor();d.onsuccess=()=>{const c=d.result;if(!c)return;const h=c.value;typeof h.baseCommitId=="string"&&!h.localBaseCommitId&&(h.localBaseCommitId=h.baseCommitId,delete h.baseCommitId);const u=h.conflict;u&&(typeof u.baseCommitId=="string"&&!u.localBaseCommitId&&(u.localBaseCommitId=u.baseCommitId,delete u.baseCommitId),typeof u.expectedHeadCommitId=="string"&&!u.remoteCommitId&&(u.remoteCommitId=u.expectedHeadCommitId,delete u.expectedHeadCommitId)),c.update(h),c.continue()}}},r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})),Kn}async function Iu(e){var o;const n=await Oe(e.documentId),r={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:Date.now(),published:!1};if(n!=null&&n.localBaseCommitId)r.localBaseCommitId=n.localBaseCommitId;else{const i=(o=e.localBaseCommitIdAtEditStart)==null?void 0:o.trim();i&&(r.localBaseCommitId=i)}(n==null?void 0:n.permission)!=null?r.permission=n.permission:e.snapshotMeta&&(r.permission=e.snapshotMeta.permission),n!=null&&n.ownerVisitorId?r.ownerVisitorId=n.ownerVisitorId:e.snapshotMeta&&(r.ownerVisitorId=e.snapshotMeta.ownerVisitorId),n!=null&&n.domainId?r.domainId=n.domainId:e.snapshotMeta&&(r.domainId=e.snapshotMeta.domainId),n!=null&&n.publishError&&(r.publishError=n.publishError,r.publishErrorAt=n.publishErrorAt),n!=null&&n.conflictStatus&&(r.conflictStatus=n.conflictStatus),n!=null&&n.conflict&&(r.conflict=n.conflict),await St(r)}function Ar(e){const n={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:e.updatedAt,published:e.published};return e.permission!=null&&(n.permission=e.permission),e.ownerVisitorId&&(n.ownerVisitorId=e.ownerVisitorId),e.domainId&&(n.domainId=e.domainId),e.publishError!=null&&(n.publishError=e.publishError),e.publishErrorAt!=null&&(n.publishErrorAt=e.publishErrorAt),e.localBaseCommitId&&(n.localBaseCommitId=e.localBaseCommitId),e.conflictStatus!=null&&(n.conflictStatus=e.conflictStatus),e.conflict!=null&&(n.conflict=e.conflict),n}async function St(e){const n=await $t(),r=Ar(e);return new Promise((o,i)=>{const a=n.transaction(Se,"readwrite");a.objectStore(Se).put(r),a.oncomplete=()=>o(),a.onerror=()=>i(a.error)})}async function Oe(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).get(e);a.onsuccess=()=>r(a.result),a.onerror=()=>o(a.error)})}async function Jn(e){const n=await $t();return new Promise((r,o)=>{const i=n.transaction(Se,"readwrite");i.objectStore(Se).delete(e),i.oncomplete=()=>r(),i.onerror=()=>o(i.error)})}async function Su(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).getAll();a.onsuccess=()=>{let s=a.result;e!=null&&e.skipFailed&&(s=s.filter(l=>!l.publishError)),r(s)},a.onerror=()=>o(a.error)})}async function Du(e,n){const r=await $t();return new Promise((o,i)=>{const s=r.transaction(Se,"readwrite").objectStore(Se),l=s.get(e);l.onsuccess=()=>{const d=l.result;d&&s.put(Ar({...d,publishError:n,publishErrorAt:Date.now()})),o()},l.onerror=()=>i(l.error)})}async function Xn(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readwrite").objectStore(Se),s=a.get(e);s.onsuccess=()=>{const l=s.result;l&&a.put(Ar({...l,publishError:void 0,publishErrorAt:void 0})),r()},s.onerror=()=>o(s.error)})}async function Zn(e,n){const r=await Oe(e);r&&await St({...r,localBaseCommitId:n.localBaseCommitId,conflictStatus:n.conflictStatus,conflict:n.conflict})}async function Qn(e){const n=await Oe(e);n&&await St({...n,conflict:void 0,conflictStatus:"none"})}class rn extends Error{constructor(r,o){super(r);jt(this,"code");jt(this,"cause");this.name="DraftPublishAborted",this.code=r,this.cause=o==null?void 0:o.cause}}function Pu(e){return e instanceof rn?e.code:e instanceof Je?e.status===404?Lt.DOC_NOT_FOUND:e.code||`HTTP_${e.status}`:e instanceof Error&&e.message.trim()?e.message.trim().slice(0,120):"UNKNOWN"}function Nu(e,n,r,o){const i=(n==null?void 0:n.displayName)||e("unknownTitle");if(r===Lt.SYNC_HEAD_MISSING)return e("draftPublishFailedSyncHead",{name:i});if(r===Lt.DOC_NOT_FOUND)return e("draftPublishFailedNotice",{name:i});const a=o instanceof Je||o instanceof Error&&o.message?o.message:r;return e("draftPublishFailedGeneric",{name:i,reason:a})}async function Tu(e,n,r){const o=Pu(n);throw await Du(e,o),n instanceof rn?n:new rn(o,{cause:n})}function Au(e,n){const r=_.useRef(n);r.current=n,_.useEffect(()=>{if(!e)return;const o=3e4,i=1e4,a=async()=>{const l=await Su({skipFailed:!0}),d=Date.now();for(const c of l)if(!c.published&&!(d-c.updatedAt<o))try{await r.current(c.documentId)}catch(h){console.log("[autoPublish] scan publish failed:",h)}};a();const s=setInterval(a,i);return()=>clearInterval(s)},[e])}const Mu=1e4;function Eu(e,n){const[r,o]=_.useState(null),[i,a]=_.useState("up_to_date");return _.useEffect(()=>{if(!e){o(null),a("up_to_date");return}let l=!1;const d=e;async function c(){try{const u=await ks(d,n??void 0);if(l)return;o(u.headCommitId),a(u.status)}catch{}}c();const h=window.setInterval(()=>void c(),Mu);return()=>{l=!0,window.clearInterval(h)}},[e,n]),{remoteCommitId:r,syncStatus:i,syncBehind:!!(n&&r&&n!==r)||i==="behind"}}const ju="/assets/mdocs-logo-Dsv_2t6v.svg",Ou=_.lazy(()=>zt(()=>import("./DocumentEditor-1A6lpvV-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(e=>({default:e.DocumentEditor}))),Ru=_.lazy(()=>zt(()=>import("./SettingsPage-nlnmzNZK.js"),__vite__mapDeps([11,1,10,2,3,6])).then(e=>({default:e.SettingsPage}))),Fu=_.lazy(()=>zt(()=>import("./AgentChatPanel-Bt38gm3b.js"),__vite__mapDeps([12,1,13,7,2,3,8,6])).then(e=>({default:e.AgentChatPanel}))),Lu=_.lazy(()=>zt(()=>import("./AiWriteWorkbench-Boie5E_-.js"),__vite__mapDeps([14,1,13,7,2,3,6])).then(e=>({default:e.AiWriteWorkbench}))),zu=_.lazy(()=>zt(()=>import("./MergeView-Dip0aW7s.js"),__vite__mapDeps([15,1,4,5,2,3,6,7,8])).then(e=>({default:e.MergeView})));function $u(e,n){try{const r=new Intl.RelativeTimeFormat(n,{numeric:"auto"}),o=Date.now()-new Date(e).getTime(),i=Math.floor(o/6e4),a=Math.floor(i/60),s=Math.floor(a/24);return s>30?r.format(-Math.floor(s/30),"month"):s>0?r.format(-s,"day"):a>0?r.format(-a,"hour"):i>0?r.format(-i,"minute"):r.format(-Math.floor(o/1e3),"second")}catch{return e.slice(0,10)}}async function er(e,n,r,o){const i=await ni();n(i);const a=localStorage.getItem("mdocs.currentDomainId"),l=a&&i.some(d=>d.domainId===a)?a:Fs(i,e);r(l),await o(l)}function Yo(){const{t:e,lang:n,setLang:r}=lt(),[o,i]=_.useState("loading"),[a,s]=_.useState(()=>localStorage.getItem("mdocs.sidebarCollapsed")==="true"),l=xu(),[d,c]=_.useState(!1),h=()=>{if(l){c(R=>!R);return}const y=!a;s(y),localStorage.setItem("mdocs.sidebarCollapsed",String(y))};_.useEffect(()=>{l||c(!1)},[l]);const[u,m]=_.useState(!1),[p,g]=_.useState(0),k=_.useRef(null),[b,v]=_.useState(null),[w,D]=_.useState(null),[I,S]=_.useState(null),[N,P]=_.useState([]),[T,U]=_.useState([]),[E,$]=_.useState("default"),{documentId:F}=ma(),B=ha(),[A,Y]=_.useState(null),[te,ie]=_.useState(null),[ke,De]=_.useState(null),[Ae,ye]=_.useState(null),[me,ae]=_.useState(null),q=_.useRef(te);q.current=te;const[J,fe]=_.useState(0),[ue,Me]=_.useState(null),[Ve,Ue]=_.useState(!1),[ve,Fe]=_.useState(!1),[ct,Ze]=_.useState(!1),an=(A==null?void 0:A.documentId)??null,{syncBehind:dt,remoteCommitId:ut}=Eu(an,ue),[Ut,_t]=_.useState(null);_.useEffect(()=>{if(!ve||!A){_t(null);return}(async()=>{const y=await Oe(A.documentId);if(y!=null&&y.conflict){_t(y.conflict);return}if(y&&ue&&ut){const R=y.localBaseCommitId??ue;if(!R)return;const j={localBaseCommitId:R,remoteCommitId:ut,localSnapshotContent:y.content};await Zn(A.documentId,{localBaseCommitId:j.localBaseCommitId,conflictStatus:"diverged",conflict:j}),_t(j)}})()},[ve,A,ue,ut]),_.useEffect(()=>{!A||!dt||!ct||Oe(A.documentId).then(async y=>{!y||y.conflict||y.conflictStatus==="publish_conflict"||y.conflictStatus!=="diverged"&&await St({...y,conflictStatus:"diverged"})})},[A==null?void 0:A.documentId,dt,ct]),_.useEffect(()=>{if(!A){Me(null);return}let y=!1;return Oe(A.documentId).then(R=>{y||(R&&!R.published&&R.localBaseCommitId?Me(R.localBaseCommitId):Me(A.headCommitId??null))}),()=>{y=!0}},[A==null?void 0:A.documentId,A==null?void 0:A.headCommitId,ct]);const[Qe,ne]=_.useState(null),[wt,Pe]=_.useState(null),[pe,ft]=_.useState(null),[mt,C]=_.useState(null),[M,O]=_.useState(""),[L,G]=_.useState("docs"),[X,K]=_.useState(!1),[Q,de]=pu(),Ee=_.useRef(null),[Ne,be]=_.useState(!1),[he,ge]=_.useState(null),Ce=_.useRef(void 0),et=_.useRef(void 0);Au(localStorage.getItem("mdocs.autoPublish")==="true",$r);async function Ie(y){var R;await((R=Ce.current)==null?void 0:R.call(Ce)),y()}function Tt(y){const j=(y.trim()||"untitled").replace(/[\\/:*?"<>|]/g,"-").slice(0,80);return j.endsWith(".md")?j:`${j}.md`}async function ht(){var R,j;if(!A||!te)return;await((R=Ce.current)==null?void 0:R.call(Ce));let y=((j=et.current)==null?void 0:j.call(et))??"";if(!y.trim())try{y=(await Un({content:te.content,from:"lexical",to:"markdown"})).content}catch{y=""}ge({markdown:y,documentId:A.documentId,displayName:te.displayName||A.displayName||"未命名"}),be(!0),K(!1)}function kt(){ge({markdown:"",documentId:null,displayName:"未命名"}),be(!0),K(!1)}async function sn(y){var Z,se;const R=y.documentId.trim();if(!R)return;await((Z=Ce.current)==null?void 0:Z.call(Ce));let j="",V=y.displayName.trim()||"未命名";try{const Ge=await Vt(R);V=((se=Ge.displayName)==null?void 0:se.trim())||V;try{j=(await Un({content:Ge.content,from:"lexical",to:"markdown"})).content}catch{j=""}}catch{}ge({markdown:j,documentId:R,displayName:V}),be(!0),K(!1),G("docs"),Ie(()=>B(`/doc/${R}`))}async function ln(y){(A==null?void 0:A.documentId)===y.documentId&&await zr()}async function cn(y){if(y.documentId){if(!window.confirm("将把帮写结果写入当前文档的本地草稿(不会自动发布)。继续?")){const se=new Error("cancelled");throw se.silent=!0,se}const V=await Un({content:y.markdown,from:"markdown",to:"lexical"}),Z=(A==null?void 0:A.documentId)===y.documentId?A:null;return await Iu({documentId:y.documentId,content:V.content,displayName:y.displayName,localBaseCommitIdAtEditStart:(Z==null?void 0:Z.headCommitId)??null,snapshotMeta:Z?{permission:Z.permission,ownerVisitorId:Z.ownerVisitorId,domainId:Z.domainId}:void 0}),(A==null?void 0:A.documentId)===y.documentId?(ie({documentId:y.documentId,content:V.content,displayName:y.displayName}),fe(se=>se+1),Ze(!0)):await At(y.documentId),ne("帮写已写入草稿,可在编辑器中继续修改后发布"),{documentId:y.documentId}}const R=await ti({fileName:Tt(y.displayName),displayName:y.displayName,content:y.markdown,contentFormat:"markdown",domainId:E||void 0,parentId:void 0});return await _e(),await At(R.documentId),ne("已创建文档"),{documentId:R.documentId}}_.useEffect(()=>{Wi()},[]),_.useEffect(()=>{if(!Qe)return;const y=()=>{ne(null)};return window.addEventListener("pointerdown",y,!0),()=>window.removeEventListener("pointerdown",y,!0)},[Qe]),_.useEffect(()=>{const y=R=>{var Z,se;const j=R;if(((Z=j.detail)==null?void 0:Z.status)===409)return;const V=(se=j.detail)==null?void 0:se.message;V&&Pe(V)};return window.addEventListener(rr,y),()=>window.removeEventListener(rr,y)},[]);async function Wi(){try{const y=await ro();v(y),_n(y.visitorId),await er(y.visitorId,U,$,_e),i("ready")}catch(y){if(y instanceof Je&&y.status===401){i("needsRegister");return}Pe(bt(e,y)),i("needsRegister")}}async function qi(y,R){const j=await vs(y,R);v(j.visitor),D(j.visitor.visitorId),S(j.recoveryCode),_n(j.visitor.visitorId),await er(j.visitor.visitorId,U,$,_e),i("ready")}async function Yi(y){const R=await ro();v(R),await er(R.visitorId,U,$,_e),i("ready")}async function _e(y){const j=await ws(y??E);P(j)}function dn(y){ie({documentId:y.documentId,content:y.content,displayName:y.displayName}),fe(R=>R+1),Ze(!1)}function Ki(y,R){ie({documentId:y,content:R.content,displayName:R.displayName}),fe(j=>j+1),Ze(!0)}async function Mr(y,R){await Jn(y);const j=await Vt(y);if((A==null?void 0:A.documentId)===y&&k.current===y){Y(Ht(j)),Ze(!1);const V=q.current,Z=R!==void 0&&j.content===R,se=(V==null?void 0:V.documentId)===y&&V.content===j.content;Z||se?(V==null?void 0:V.documentId)===y&&V.displayName!==j.displayName&&ie({...V,displayName:j.displayName}):dn(j)}return j}function un(y,R,j="folder"){console.log("[openGraph]",j,y,R),De(j),ye(y),ae(R)}function fn(){De(null),ye(null),ae(null)}async function At(y){k.current=y;try{const R=await Oe(y);if(k.current!==y)return;const j=await Vt(y);if(k.current!==y||(j.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",j.domainId),$(j.domainId),_e(j.domainId)),O(vn(j.relativePath)),j.headCommitId&&R&&!R.published&&(R.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y),R.localBaseCommitId||await St({...R,localBaseCommitId:j.headCommitId})),Y(Ht(j)),k.current!==y))return;R&&!R.published?Ki(y,R):dn(j)}catch(R){if(k.current!==y)return;Pe(bt(e,R))}}_.useEffect(()=>{o==="ready"&&(F?At(F):(Y(null),ie(null),Me(null)))},[o,F]);const{createModal:Mt,setCreateModal:jn,createModalError:Er,createModalBusy:Et,createModalInputRef:Ji,openNewDocumentModal:On,openNewFolderModal:Rn,submitCreateModal:Xi}=bu({tree:N,currentDomainId:E,selectedCreateParentPath:M,t:e,onDocCreated:y=>{Y(Ht(y)),dn(y),O(vn(y.relativePath)),B(`/doc/${y.documentId}`)},refreshTree:_e}),[Zi,mn]=_.useState(!1),[Qi,Bt]=_.useState(!1),[Ct,jr]=_.useState([]),[Fn,Or]=_.useState(""),[hn,Rr]=_.useState(""),[ea,Fr]=_.useState(new Set);async function ta(){try{const y=await Ps();jr(y)}catch(y){Pe(bt(e,y))}}const Ln=_.useMemo(()=>{const y={};for(const R of T)y[R.domainId]=R.domainName;return y},[T]),Lr=_.useMemo(()=>{let y=Ct;const R=Fn.trim().toLowerCase();return R&&(y=y.filter(j=>{var V;return(V=j.displayName)==null?void 0:V.toLowerCase().includes(R)})),hn&&(y=y.filter(j=>j.domainId===hn)),y},[Ct,Fn,hn]),na=_.useMemo(()=>{const y=new Set,R=[];for(const j of Ct){const V=j.domainId;V&&!y.has(V)&&(y.add(V),R.push({id:V,name:Ln[V]??V}))}return R},[Ct,Ln]);async function ra(y,R,j,V,Z){let se=await Oe(y);!se&&(A==null?void 0:A.documentId)===y&&(se={documentId:y,content:R,displayName:j,updatedAt:Date.now(),published:!1,localBaseCommitId:V,permission:A.permission,ownerVisitorId:A.ownerVisitorId,domainId:A.domainId},await St(se)),se&&await Zn(y,{localBaseCommitId:V,conflictStatus:"publish_conflict",conflict:{localBaseCommitId:V,remoteCommitId:Z.headCommitId,localSnapshotContent:R}}),Ue(!0)}async function oa(y,R,j,V){return Xr(j).execute(async()=>{const Z=await Oe(j),se=(Z==null?void 0:Z.localBaseCommitId)??(A==null?void 0:A.headCommitId);if(!se)throw Pe(e("syncHeadMissing")),new Error("missing localBaseCommitId");try{await oo(j,{content:y,displayName:R,permission:V,version:{localBaseCommitId:se}}),await Qn(j),await Mr(j,y),await _e(),Ue(!1),ne(e("published")),window.setTimeout(()=>ne(null),1200)}catch(Ge){throw Ge instanceof Je&&Ge.status===409&&Ge.code==="VERSION_CONFLICT"&&Ge.details&&typeof Ge.details=="object"&&await ra(j,y,R,se,Ge.details),Ge}})}async function ia(){if(!A)return;const y=await Vt(A.documentId);y.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",y.domainId),$(y.domainId),_e(y.domainId)),O(vn(y.relativePath)),Y(Ht(y)),dn(y),ne(e("syncPullDone")),window.setTimeout(()=>ne(null),1200)}async function zr(){if(!A)return;const y=await Oe(A.documentId),R=!!(y&&!y.published);if((y==null?void 0:y.conflictStatus)==="publish_conflict"||(y==null?void 0:y.conflictStatus)==="diverged"||!!(y!=null&&y.conflict)){Fe(!0);return}if(R&&y){if(dt&&ut){const V=y.localBaseCommitId??ue;if(V){const Z={localBaseCommitId:V,remoteCommitId:ut,localSnapshotContent:y.content};await Zn(A.documentId,{localBaseCommitId:V,conflictStatus:"diverged",conflict:Z}),_t(Z)}Fe(!0);return}ne(e("pullBlockedDraft")),window.setTimeout(()=>ne(null),3e3);return}await ia()}async function aa(y){await Qn(y.documentId),await Jn(y.documentId),Ze(!1),Fe(!1),Ue(!1),await At(y.documentId),_e(y.domainId),ne(e("published")),window.setTimeout(()=>ne(null),1200)}async function sa(y,R,j){try{await Tu(y,R,j)}catch(V){if(!(V instanceof rn))throw V;const Z=j??await Oe(y);throw ne(Nu(e,Z,V.code,V.cause??R)),window.setTimeout(()=>ne(null),4e3),V}}async function $r(y){let R;try{await Xr(y).execute(async()=>{const j=await Oe(y);if(!j)return;R=j;let V=j.localBaseCommitId;if(V||(V=(await Vt(y)).headCommitId??void 0,V&&(await St({...j,localBaseCommitId:V}),j.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y))),!V)throw new rn(Lt.SYNC_HEAD_MISSING);const Z=await Oe(y);Z&&(await oo(y,{content:Z.content,displayName:Z.displayName,version:{localBaseCommitId:V}}),await Qn(y),await Xn(y),(A==null?void 0:A.documentId)===y?await Mr(y,Z.content):await Jn(y),await _e(),ne(e("published")),window.setTimeout(()=>ne(null),1200))})}catch(j){await sa(y,j,R)}}function Ur(y,R){ft({type:"document",id:y,name:R})}function Br(y,R){ft({type:"folder",id:y,name:R})}async function la(y,R){try{const j=await Is(y,R);await _e(j.domainId),(A==null?void 0:A.documentId)===y&&(Y(Ht(j)),O(vn(j.relativePath)))}catch(j){j instanceof Je?j.status===409&&Pe(j.message):Pe(bt(e,j))}}async function ca(){if(pe)try{pe.type==="document"?(await Cs(pe.id),(A==null?void 0:A.documentId)===pe.id&&(Y(null),ie(null),O(""),B("/"))):pe.type==="folder"&&(await Ds(pe.id),A&&(Y(null),ie(null),O(""),B("/"))),await _e(),ne(pe.type==="folder"?`已删除「${pe.name}」及其下所有内容`:`已删除「${pe.name}」`),window.setTimeout(()=>ne(null),2e3)}catch(y){Pe(bt(e,y))}finally{ft(null)}}return o==="loading"?f.jsx("div",{className:"mdocs-loading muted",children:e("loading")}):o==="needsRegister"?f.jsx(Ls,{onSubmit:qi,onRecover:Yi,error:Qe}):f.jsxs("div",{className:"mdocs-app-root",children:[ei(),f.jsxs("div",{className:"mdocs-shell",children:[w&&b&&f.jsx(zs,{visitorId:w,onDismiss:()=>D(null)}),I&&f.jsx("div",{className:"mdocs-dialog-backdrop",style:{position:"fixed",zIndex:9999},onClick:y=>{y.target===y.currentTarget&&S(null)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:480,textAlign:"center"},children:[f.jsx("h1",{style:{fontSize:"1.25rem",marginBottom:8},children:"🔑 保存你的恢复码"}),f.jsxs("p",{className:"muted",style:{marginBottom:16,lineHeight:1.5},children:["恢复码是你的唯一凭证,当 Token 丢失时可用它找回身份。",f.jsx("br",{}),f.jsx("strong",{children:"请立即复制保存,此弹窗关闭后不可再查看。"})]}),f.jsx("div",{style:{background:"#f5f5f5",borderRadius:8,padding:"12px 16px",fontFamily:"monospace",fontSize:"1.25rem",letterSpacing:"0.1em",marginBottom:20,userSelect:"all"},children:I}),f.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[f.jsx("button",{type:"button",className:"primary",onClick:()=>{navigator.clipboard.writeText(I)},children:"复制恢复码"}),f.jsx("button",{type:"button",onClick:()=>S(null),children:"已保存,关闭"})]})]})}),f.jsxs(f.Fragment,{children:[f.jsx(hu,{open:X,onToggle:()=>{var y;X?(y=Ee.current)==null||y.requestClose():K(!0)},position:Q,onPositionChange:de,disableDrag:l}),X?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Fu,{ref:Ee,open:X,onClose:()=>K(!1),visitorName:b==null?void 0:b.visitorName,fullscreen:l,domainId:E||null,documentId:(A==null?void 0:A.documentId)??null,documentTitle:(A==null?void 0:A.displayName)??null,documentPath:(A==null?void 0:A.relativePath)??null,anchorStyle:l?void 0:mu(Q),onOpenDocument:y=>{G("docs"),Ie(()=>B(`/doc/${y}`)),K(!1)},onTreeChanged:()=>void _e(),onDocumentOverwritten:y=>void ln(y),onOpenCoding:y=>void sn(y)})}):null]}),he?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Lu,{open:Ne,initialMarkdown:he.markdown,documentId:he.documentId,displayName:he.displayName,onClose:()=>{be(!1),ge(null)},onComplete:cn})}):null,L==="settings"?f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"mdocs-main muted",style:{padding:24},children:"加载设置…"}),children:f.jsx(Ru,{onBack:()=>G("docs"),onPublishDraft:$r,onOpenDocument:At,onRecoverDraft:()=>void _e()})}):f.jsxs("div",{className:"mdocs-layout"+(l?" mdocs-layout--reader":""),children:[l&&d?f.jsx("button",{type:"button",className:"mdocs-mobile-nav-scrim","aria-label":e("collapseSidebar"),onClick:()=>c(!1)}):null,f.jsxs("aside",{className:"mdocs-sidebar"+(l?d?" mdocs-sidebar--drawer-open":" mdocs-sidebar--drawer":a?" mdocs-sidebar-collapsed":""),children:[f.jsxs("header",{className:"mdocs-sidebar-header",children:[f.jsxs("div",{className:"mdocs-brand",children:[f.jsx("img",{src:ju,alt:e("brand"),className:"mdocs-brand-logo"}),f.jsx("span",{children:e("brand")})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-toggle",onClick:h,"aria-label":e(l?d?"collapseSidebar":"expandSidebar":a?"expandSidebar":"collapseSidebar"),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},onMouseEnter:y=>{y.currentTarget.style.background="var(--mdocs-hover-bg, #f0f0f0)"},onMouseLeave:y=>{y.currentTarget.style.background="none"},children:l?f.jsx(Yr,{size:18}):a?f.jsx(Kr,{size:18}):f.jsx(Yr,{size:18})})]}),f.jsxs("div",{className:"mdocs-sidebar-actions",children:[f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newDocument"),onClick:()=>On(),style:{color:"var(--mdocs-accent)"},children:f.jsx(Wr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newFolder"),onClick:()=>Rn(),children:f.jsx(qr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":"知识图谱",onClick:()=>un(E,"知识图谱","domain"),style:{marginLeft:8},children:f.jsx(yr,{size:20,strokeWidth:1.75})})]}),f.jsx($s,{nodes:N,activeDocumentId:F??null,selectedParentPath:M,onOpen:y=>{fn(),l&&c(!1),Ie(()=>B(`/doc/${y.documentId}`))},onOpenFolder:(y,R)=>{Ie(()=>{O(y),R&&(fn(),l&&c(!1),B(`/doc/${R}`))})},onContextMenu:C,onMoveDocument:la,onDeselect:()=>{fn(),Ie(()=>{O(""),B("/")})},onOpenGraph:(y,R)=>{if(y.type==="folder")un(y.documentId,y.name);else if(R){const j=N.find(V=>V.documentId===R);un(R,(j==null?void 0:j.name)??"图谱")}},onGenerateGraph:async(y,R)=>{var Z;const j=y.type==="folder"?y.documentId:R;if(!j)return;const V=y.type==="folder"?y.name:((Z=N.find(se=>se.documentId===R))==null?void 0:Z.name)??"图谱";un(j,V)}}),f.jsxs("footer",{className:"mdocs-sidebar-footer",children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,cursor:"pointer"},onClick:()=>Ie(()=>G("settings")),children:[f.jsx("span",{className:"mdocs-visitor-avatar",children:b?b.visitorName.charAt(0).toUpperCase():"?"}),f.jsx("span",{className:"mdocs-visitor-footer-name",children:b?b.visitorName:""})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-bookmark mdocs-tooltip","data-tooltip":e("bookmark"),onClick:()=>{Bt(!0),Or(""),Rr(""),ta()},style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4},children:f.jsx(Za,{size:16,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-sidebar-logout mdocs-tooltip","data-tooltip":e("logout"),onClick:()=>mn(!0),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4},children:f.jsx(Ha,{size:16,strokeWidth:1.5})})]})]}),f.jsxs("main",{className:"mdocs-main",children:[ke&&Ae&&me?f.jsx(su,{scope:ke,resourceId:Ae,name:me,onOpenDocument:y=>{fn(),At(y)}},`${ke}-${Ae}`):A&&te&&te.documentId===A.documentId?f.jsxs("div",{className:"mdocs-editor-with-comments",children:[f.jsx("div",{className:"mdocs-editor-container",children:f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"muted",style:{padding:24},children:"加载编辑器…"}),children:f.jsx(Ou,{meta:A,initialContent:te.content,initialDisplayName:te.displayName,contentRevision:J,canEdit:!!(b&&(A.ownerVisitorId===b.visitorId||ss(A.permission)||A.invitedEdit===!0)),domains:T,currentDomainId:E,onDomainChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,onPublish:oa,syncBehind:dt,onSyncClick:()=>void zr(),onDraftExistsChange:Ze,onConflictModalRequest:()=>Ue(!0),onMergeRequest:()=>Fe(!0),canManageInvites:!!(b&&b.visitorId===A.ownerVisitorId),onDelete:async()=>{if(A.relativePath.endsWith("/___desc___.md")){const y=A.relativePath.replace(/\/___desc___\.md$/,"");Br(A.documentId,y)}else Ur(A.documentId,A.relativePath)},saveBeforeNavRef:Ce,exportMarkdownRef:et,onShowToast:ne,onShowError:Pe,onToggleComments:()=>m(!u),commentPanelOpen:u,commentCount:p,onAiWrite:()=>void ht(),readerChrome:l,onOpenMobileNav:()=>c(!0)},A.documentId)})}),u&&f.jsx(wu,{documentId:A.documentId,visitorId:b==null?void 0:b.visitorId,visitorName:b==null?void 0:b.visitorName,documentOwnerId:A.ownerVisitorId,onClose:()=>m(!1)})]}):f.jsxs("div",{className:"mdocs-welcome",children:[l?f.jsxs("button",{type:"button",className:"mdocs-reader-float-pill",onClick:()=>c(!0),"aria-label":e("expandSidebar"),children:[f.jsx(Kr,{size:18,strokeWidth:1.75}),f.jsx("span",{children:e("brand")})]}):null,f.jsx("h1",{children:e("brand")}),f.jsx("p",{className:"muted mdocs-welcome-lead",children:N.length===0?e("noDocsInDomain"):e("createDocToStart")}),f.jsxs("div",{className:"mdocs-welcome-domain",children:[f.jsx("label",{className:"muted mdocs-welcome-domain-label",children:e("domainLabel")}),f.jsx(cu,{domains:T.length?T:[{domainId:"default",domainName:e("defaultDomain"),permission:"",creatorVisitorId:"",docCount:0}],value:E,onChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,ariaLabel:e("domainLabel"),localizeName:y=>yu(y,n,e)})]}),f.jsxs("div",{className:"mdocs-welcome-actions",children:[f.jsxs("button",{type:"button",className:"primary",onClick:()=>On(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(Wr,{size:16,strokeWidth:1.5}),e("newDocument")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>Rn(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(qr,{size:16,strokeWidth:1.5}),e("newFolder")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>kt(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx("img",{src:Ui,alt:"",width:16,height:16,style:{display:"block"}}),"AI 帮写"]})]})]}),f.jsx(_u,{open:Ve,onClose:()=>Ue(!1),onResolve:()=>{Ue(!1),Fe(!0)}}),ve&&A&&Ut&&f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"merge-view-loading",children:e("mergeLoadingRemote")}),children:f.jsx(zu,{documentId:A.documentId,displayName:A.displayName,conflict:Ut,onClose:()=>Fe(!1),onSuccess:aa,onError:y=>Pe(y)})}),Qe&&f.jsx("div",{className:"mdocs-toast",role:"status",children:Qe}),wt&&f.jsx(gu,{title:e("error"),message:wt,onClose:()=>Pe(null)})]}),Zi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&mn(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:440},children:[f.jsx("h1",{style:{fontSize:"1.125rem",marginBottom:8},children:"退出当前登录身份?"}),f.jsx("p",{style:{lineHeight:1.6,color:"var(--mdocs-text-secondary, #666)",marginBottom:20},children:"这将会导致您无法修改以前的文章。如果想找回账号,需要恢复码或联系管理员执行合并用户脚本。"}),f.jsxs("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",onClick:()=>mn(!1),children:"取消"}),f.jsx("button",{type:"button",className:"primary",style:{background:"#d32f2f"},onClick:()=>{ys(),Y(null),ie(null),v(null),P([]),mn(!1),i("needsRegister")},children:"确认退出"})]})]})}),Qi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&Bt(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:640,width:"min(640px, 100%)",maxHeight:"70vh",display:"flex",flexDirection:"column"},children:[f.jsxs("h1",{style:{fontSize:"1.125rem",marginBottom:16},children:[e("bookmarkTitle"),"(",Ct.length,")"]}),Ct.length>0&&f.jsxs("div",{className:"mdocs-bookmark-filterbar",children:[f.jsx("input",{type:"text",placeholder:e("bookmarkSearch"),value:Fn,onChange:y=>Or(y.target.value)}),f.jsxs("select",{value:hn,onChange:y=>Rr(y.target.value),children:[f.jsx("option",{value:"",children:e("bookmarkFilterAll")}),na.map(y=>f.jsx("option",{value:y.id,children:y.name},y.id))]})]}),Ct.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkEmpty")}):Lr.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkNoMatch")}):f.jsx("div",{style:{overflowY:"auto",flex:1,margin:"0 -1rem",padding:"0 1rem"},children:f.jsxs("table",{className:"mdocs-bookmark-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:e("bookmarkColTitle")}),f.jsx("th",{children:e("bookmarkColDomain")}),f.jsx("th",{children:e("bookmarkColAuthor")}),f.jsx("th",{children:e("bookmarkColTime")}),f.jsx("th",{className:"mdocs-bookmark-col-action"})]})}),f.jsx("tbody",{children:Lr.map(y=>{const R=ea.has(y.documentId);return f.jsxs("tr",{className:`${R?"mdocs-bookmark-removing":""}`,style:{opacity:y.isDeleted?.6:1},children:[f.jsx("td",{className:"mdocs-bookmark-col-title",children:f.jsxs("div",{style:{cursor:y.isDeleted?"default":"pointer",display:"flex",alignItems:"center",gap:6,overflow:"hidden"},onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},children:[f.jsx("span",{ref:j=>{if(j){const V=j.scrollWidth>j.clientWidth;j.title=V?y.displayName??"":""}},style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:y.displayName??"(无标题)"}),y.isDeleted&&f.jsx("span",{style:{fontSize:"0.7rem",color:"#d32f2f",background:"#ffebee",padding:"1px 6px",borderRadius:4,flexShrink:0},children:"已删除"})]})}),f.jsx("td",{children:y.isDeleted?"":Ln[y.domainId??""]??y.domainId??""}),f.jsx("td",{children:y.isDeleted?"":y.ownerVisitorName??"-"}),f.jsx("td",{children:y.isDeleted?"":$u(y.bookmarkedAt,n)}),f.jsx("td",{className:"mdocs-bookmark-col-action",children:f.jsxs("div",{style:{display:"flex",gap:2,alignItems:"center",justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkOpen"),onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},style:{background:"none",border:"none",cursor:y.isDeleted?"default":"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},children:f.jsx(La,{size:14,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkRemove"),onClick:async()=>{try{await Ns(y.documentId),Fr(j=>new Set(j).add(y.documentId)),setTimeout(()=>{jr(j=>j.filter(V=>V.documentId!==y.documentId)),Fr(j=>{const V=new Set(j);return V.delete(y.documentId),V})},300)}catch(j){Pe(bt(e,j))}},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},onMouseEnter:j=>{j.currentTarget.style.color="#d32f2f"},onMouseLeave:j=>{j.currentTarget.style.color="var(--mdocs-text-muted, #999)"},children:"✕"})]})})]},y.documentId)})})]})}),f.jsx("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end",marginTop:16,paddingTop:16,borderTop:"1px solid var(--mdocs-border, #eee)"},children:f.jsx("button",{type:"button",onClick:()=>Bt(!1),children:e("close")})})]})}),mt&&f.jsx(lu,{x:mt.x,y:mt.y,node:mt.node,parentPath:mt.parentPath,onClose:()=>C(null),onCreateChild:y=>On(y),onCreateFolder:y=>Rn(y),onDeleteDocument:y=>Ur(y.documentId,y.path),onDeleteFolder:y=>Br(y.documentId,y.folderDisplayName||y.name)}),pe&&f.jsx(Bi,{title:pe.type==="folder"?"删除文件夹":"删除文档",message:pe.type==="folder"?`确定要删除「${pe.name}」及其下的所有文档和子文件夹吗?此操作不可撤销。`:`确定要删除「${pe.name}」吗?`,confirmLabel:"删除",cancelLabel:"取消",onConfirm:ca,onCancel:()=>ft(null),danger:!0}),Mt&&f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:y=>{y.target===y.currentTarget&&!Et&&jn(null)},children:f.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[f.jsx("h1",{children:Mt.kind==="document"?e("newDocumentTitle"):e("newFolderTitle")}),f.jsx("p",{className:"muted",children:Mt.kind==="document"?e("fileNameHint"):e("folderNameHint")}),f.jsxs("form",{onSubmit:Xi,className:"mdocs-dialog-form",children:[f.jsxs("label",{className:"mdocs-dialog-label",children:[Mt.kind==="document"?e("fileNameLabel"):e("folderNameLabel"),f.jsx("input",{ref:Ji,value:Mt.draft,onChange:y=>jn(R=>R&&{...R,draft:y.target.value}),placeholder:Mt.kind==="document"?e("untitledPlaceholder"):e("folderExamplePlaceholder"),maxLength:200,disabled:Et})]}),Er&&f.jsx("div",{className:"mdocs-dialog-error",children:Er}),f.jsxs("div",{className:"mdocs-dialog-actions",children:[f.jsx("button",{type:"button",onClick:()=>!Et&&jn(null),disabled:Et,children:e("cancel")}),f.jsx("button",{type:"submit",className:"primary",disabled:Et,children:e(Et?"creating":"create")})]})]})]})})]})]})]})}const Uu=_.lazy(()=>zt(()=>import("./PlaygroundPage-C4X6Lj-Q.js"),__vite__mapDeps([16,1,4,5,2,3,6,7,8,9])).then(e=>({default:e.PlaygroundPage})));function Bu(){return f.jsxs(pa,{children:[f.jsx(zn,{path:"/",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/doc/:documentId",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/playground",element:f.jsx(_.Suspense,{fallback:f.jsx("div",{style:{padding:24},children:"Loading playground…"}),children:f.jsx(Uu,{})})})]})}function Hu(){const{pathname:e,hash:n,search:r,origin:o}=window.location,i="/",a=i.endsWith("/")?i.slice(0,-1):i;let s=e;a&&s.startsWith(a)&&(s=s.slice(a.length)||"/");const l=s.match(/^\/doc\/([^/]+)\/?$/);if(!l)return;const d=n.match(/^#\/doc\/([^/?#]+)/),c=(d==null?void 0:d[1])??l[1];if(!c)return;const h=i.endsWith("/")?i:`${i}/`;window.location.replace(`${o}${h}${r}#/doc/${c}`)}Hu();const Gi=document.getElementById("root");if(!Gi)throw new Error("root element missing");ga.createRoot(Gi).render(f.jsx(Ko.StrictMode,{children:f.jsx(va,{motion:Aa,children:f.jsx(ba,{children:f.jsx(is,{children:f.jsx(ya,{children:f.jsx(Bu,{})})})})})}));export{Tf as $,rn as A,Qu as B,_s as C,cu as D,Jf as E,Rs as F,uf as G,df as H,cf as I,lf as J,hf as K,ef as L,Ga as M,yr as N,nf as O,Kr as P,tf as Q,rf as R,Za as S,mf as T,ff as U,pf as V,gf as W,yf as X,Pf as Y,ro as Z,Bi as _,Oe as a,Nf as a0,Af as a1,Mf as a2,Ef as a3,jf as a4,Of as a5,xu as a6,Cf as a7,Ps as a8,Df as a9,ju as aa,Yr as ab,ei as ac,af as ad,of as ae,kf as af,Rf as ag,Lf as ah,Ft as ai,Ff as aj,zf as ak,$f as al,Uf as am,Kf as an,Gf as ao,Yf as ap,Vf as aq,Hf as ar,Bf as as,qf as at,Wf as au,Vt as av,vf as aw,Un as ax,oo as ay,$n as az,lt as b,Re as c,Jn as d,If as e,sf as f,Xr as g,Ju as h,Ui as i,Sf as j,bf as k,yu as l,We as m,_f as n,xf as o,wf as p,ni as q,Ns as r,ws as s,$s as t,Iu as u,ti as v,bt as w,Su as x,Nu as y,Xn as z};
|