@mcp-graph-workflow/mcp-graph 5.33.1 → 5.34.0
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/dist/api/routes/code-graph.d.ts.map +1 -1
- package/dist/api/routes/code-graph.js +3 -1
- package/dist/api/routes/code-graph.js.map +1 -1
- package/dist/core/analyzer/ac-coverage.d.ts +16 -0
- package/dist/core/analyzer/ac-coverage.d.ts.map +1 -0
- package/dist/core/analyzer/ac-coverage.js +38 -0
- package/dist/core/analyzer/ac-coverage.js.map +1 -0
- package/dist/core/analyzer/asset-blockers.d.ts +23 -0
- package/dist/core/analyzer/asset-blockers.d.ts.map +1 -0
- package/dist/core/analyzer/asset-blockers.js +50 -0
- package/dist/core/analyzer/asset-blockers.js.map +1 -0
- package/dist/core/analyzer/concurrency-risk.d.ts +26 -0
- package/dist/core/analyzer/concurrency-risk.d.ts.map +1 -0
- package/dist/core/analyzer/concurrency-risk.js +99 -0
- package/dist/core/analyzer/concurrency-risk.js.map +1 -0
- package/dist/core/analyzer/config-coverage.d.ts +20 -0
- package/dist/core/analyzer/config-coverage.d.ts.map +1 -0
- package/dist/core/analyzer/config-coverage.js +49 -0
- package/dist/core/analyzer/config-coverage.js.map +1 -0
- package/dist/core/analyzer/contract-coverage.d.ts +22 -0
- package/dist/core/analyzer/contract-coverage.d.ts.map +1 -0
- package/dist/core/analyzer/contract-coverage.js +51 -0
- package/dist/core/analyzer/contract-coverage.js.map +1 -0
- package/dist/core/analyzer/data-integrity.d.ts +22 -0
- package/dist/core/analyzer/data-integrity.d.ts.map +1 -0
- package/dist/core/analyzer/data-integrity.js +80 -0
- package/dist/core/analyzer/data-integrity.js.map +1 -0
- package/dist/core/analyzer/economy-simulator.d.ts +33 -0
- package/dist/core/analyzer/economy-simulator.d.ts.map +1 -0
- package/dist/core/analyzer/economy-simulator.js +162 -0
- package/dist/core/analyzer/economy-simulator.js.map +1 -0
- package/dist/core/analyzer/formula-consistency.d.ts +25 -0
- package/dist/core/analyzer/formula-consistency.d.ts.map +1 -0
- package/dist/core/analyzer/formula-consistency.js +82 -0
- package/dist/core/analyzer/formula-consistency.js.map +1 -0
- package/dist/core/analyzer/metric-coverage.d.ts +22 -0
- package/dist/core/analyzer/metric-coverage.d.ts.map +1 -0
- package/dist/core/analyzer/metric-coverage.js +52 -0
- package/dist/core/analyzer/metric-coverage.js.map +1 -0
- package/dist/core/analyzer/performance-budget-check.d.ts +22 -0
- package/dist/core/analyzer/performance-budget-check.d.ts.map +1 -0
- package/dist/core/analyzer/performance-budget-check.js +40 -0
- package/dist/core/analyzer/performance-budget-check.js.map +1 -0
- package/dist/core/analyzer/risk-assessment.d.ts.map +1 -1
- package/dist/core/analyzer/risk-assessment.js +9 -0
- package/dist/core/analyzer/risk-assessment.js.map +1 -1
- package/dist/core/analyzer/scenario-coverage.d.ts +19 -0
- package/dist/core/analyzer/scenario-coverage.d.ts.map +1 -0
- package/dist/core/analyzer/scenario-coverage.js +59 -0
- package/dist/core/analyzer/scenario-coverage.js.map +1 -0
- package/dist/core/analyzer/state-completeness.d.ts +22 -0
- package/dist/core/analyzer/state-completeness.d.ts.map +1 -0
- package/dist/core/analyzer/state-completeness.js +76 -0
- package/dist/core/analyzer/state-completeness.js.map +1 -0
- package/dist/core/code/code-indexer.d.ts +1 -1
- package/dist/core/code/code-indexer.d.ts.map +1 -1
- package/dist/core/code/code-indexer.js +50 -3
- package/dist/core/code/code-indexer.js.map +1 -1
- package/dist/core/code/code-store.js +3 -3
- package/dist/core/code/code-store.js.map +1 -1
- package/dist/core/code/code-types.d.ts +4 -4
- package/dist/core/code/treesitter/treesitter-manager.d.ts.map +1 -1
- package/dist/core/code/treesitter/treesitter-manager.js +2 -0
- package/dist/core/code/treesitter/treesitter-manager.js.map +1 -1
- package/dist/core/designer/adr-validator.d.ts.map +1 -1
- package/dist/core/designer/adr-validator.js +12 -4
- package/dist/core/designer/adr-validator.js.map +1 -1
- package/dist/core/designer/tech-risk-assessor.d.ts +5 -1
- package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -1
- package/dist/core/designer/tech-risk-assessor.js +39 -11
- package/dist/core/designer/tech-risk-assessor.js.map +1 -1
- package/dist/core/designer/traceability-matrix.d.ts.map +1 -1
- package/dist/core/designer/traceability-matrix.js +14 -3
- package/dist/core/designer/traceability-matrix.js.map +1 -1
- package/dist/core/graph/auto-sequence.d.ts +10 -0
- package/dist/core/graph/auto-sequence.d.ts.map +1 -0
- package/dist/core/graph/auto-sequence.js +29 -0
- package/dist/core/graph/auto-sequence.js.map +1 -0
- package/dist/core/graph/csv-export.d.ts +7 -0
- package/dist/core/graph/csv-export.d.ts.map +1 -0
- package/dist/core/graph/csv-export.js +43 -0
- package/dist/core/graph/csv-export.js.map +1 -0
- package/dist/core/graph/graph-types.d.ts +2 -2
- package/dist/core/graph/graph-types.d.ts.map +1 -1
- package/dist/core/graph/mermaid-export.d.ts +1 -1
- package/dist/core/graph/mermaid-export.d.ts.map +1 -1
- package/dist/core/graph/mermaid-export.js +101 -0
- package/dist/core/graph/mermaid-export.js.map +1 -1
- package/dist/core/importer/prd-to-graph.d.ts.map +1 -1
- package/dist/core/importer/prd-to-graph.js +8 -1
- package/dist/core/importer/prd-to-graph.js.map +1 -1
- package/dist/core/listener/backlog-health.d.ts.map +1 -1
- package/dist/core/listener/backlog-health.js +15 -3
- package/dist/core/listener/backlog-health.js.map +1 -1
- package/dist/core/parser/classify.d.ts +4 -0
- package/dist/core/parser/classify.d.ts.map +1 -1
- package/dist/core/parser/classify.js +18 -0
- package/dist/core/parser/classify.js.map +1 -1
- package/dist/core/parser/extract.d.ts.map +1 -1
- package/dist/core/parser/extract.js +22 -4
- package/dist/core/parser/extract.js.map +1 -1
- package/dist/core/parser/prd-diff.d.ts +23 -0
- package/dist/core/parser/prd-diff.d.ts.map +1 -0
- package/dist/core/parser/prd-diff.js +55 -0
- package/dist/core/parser/prd-diff.js.map +1 -0
- package/dist/core/parser/segment.d.ts +5 -0
- package/dist/core/parser/segment.d.ts.map +1 -1
- package/dist/core/parser/segment.js +70 -0
- package/dist/core/parser/segment.js.map +1 -1
- package/dist/core/planner/auto-ready.d.ts +19 -0
- package/dist/core/planner/auto-ready.d.ts.map +1 -0
- package/dist/core/planner/auto-ready.js +39 -0
- package/dist/core/planner/auto-ready.js.map +1 -0
- package/dist/core/planner/planning-report.d.ts +13 -1
- package/dist/core/planner/planning-report.d.ts.map +1 -1
- package/dist/core/planner/planning-report.js +53 -2
- package/dist/core/planner/planning-report.js.map +1 -1
- package/dist/core/planner/sprint-health.d.ts +22 -0
- package/dist/core/planner/sprint-health.d.ts.map +1 -0
- package/dist/core/planner/sprint-health.js +41 -0
- package/dist/core/planner/sprint-health.js.map +1 -0
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +17 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/core/store/sqlite-store.d.ts +6 -0
- package/dist/core/store/sqlite-store.d.ts.map +1 -1
- package/dist/core/store/sqlite-store.js +54 -3
- package/dist/core/store/sqlite-store.js.map +1 -1
- package/dist/core/templates/template-engine.d.ts +36 -0
- package/dist/core/templates/template-engine.d.ts.map +1 -0
- package/dist/core/templates/template-engine.js +104 -0
- package/dist/core/templates/template-engine.js.map +1 -0
- package/dist/docs-manifest.json +12 -5
- package/dist/mcp/tools/analyze.d.ts.map +1 -1
- package/dist/mcp/tools/analyze.js +100 -1
- package/dist/mcp/tools/analyze.js.map +1 -1
- package/dist/mcp/tools/edge.d.ts.map +1 -1
- package/dist/mcp/tools/edge.js +81 -3
- package/dist/mcp/tools/edge.js.map +1 -1
- package/dist/mcp/tools/export.d.ts.map +1 -1
- package/dist/mcp/tools/export.js +17 -4
- package/dist/mcp/tools/export.js.map +1 -1
- package/dist/mcp/tools/import-prd.d.ts.map +1 -1
- package/dist/mcp/tools/import-prd.js +89 -2
- package/dist/mcp/tools/import-prd.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +4 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/node.d.ts.map +1 -1
- package/dist/mcp/tools/node.js +127 -6
- package/dist/mcp/tools/node.js.map +1 -1
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
- package/dist/mcp/tools/plan-sprint.js +6 -2
- package/dist/mcp/tools/plan-sprint.js.map +1 -1
- package/dist/mcp/tools/show.d.ts.map +1 -1
- package/dist/mcp/tools/show.js +11 -4
- package/dist/mcp/tools/show.js.map +1 -1
- package/dist/mcp/tools/template.d.ts +4 -0
- package/dist/mcp/tools/template.d.ts.map +1 -0
- package/dist/mcp/tools/template.js +137 -0
- package/dist/mcp/tools/template.js.map +1 -0
- package/dist/schemas/analyzer-schema.d.ts +2 -2
- package/dist/schemas/designer-schema.d.ts +21 -0
- package/dist/schemas/designer-schema.d.ts.map +1 -1
- package/dist/schemas/designer-schema.js +2 -0
- package/dist/schemas/designer-schema.js.map +1 -1
- package/dist/schemas/edge.schema.d.ts +6 -0
- package/dist/schemas/edge.schema.d.ts.map +1 -1
- package/dist/schemas/edge.schema.js +2 -0
- package/dist/schemas/edge.schema.js.map +1 -1
- package/dist/schemas/graph.schema.d.ts +13 -0
- package/dist/schemas/graph.schema.d.ts.map +1 -1
- package/dist/schemas/node.schema.d.ts +20 -0
- package/dist/schemas/node.schema.d.ts.map +1 -1
- package/dist/schemas/node.schema.js +3 -0
- package/dist/schemas/node.schema.js.map +1 -1
- package/dist/schemas/siebel.schema.d.ts +13 -13
- package/dist/web/dashboard/dist/assets/{benchmark-tab-BezNQCQh.js → benchmark-tab-Aqr2Xzu5.js} +1 -1
- package/dist/web/dashboard/dist/assets/{circle-alert-DKsqBTgC.js → circle-alert-BJTyaShp.js} +1 -1
- package/dist/web/dashboard/dist/assets/constants-DLyESMjx.js +1 -0
- package/dist/web/dashboard/dist/assets/{context-tab-Cmar9i-X.js → context-tab-CbmHGGZh.js} +1 -1
- package/dist/web/dashboard/dist/assets/{davinci-tab-CkWYkDsy.js → davinci-tab-krxsY7Pp.js} +1 -1
- package/dist/web/dashboard/dist/assets/{docs-tab-CYpDJ3Rl.js → docs-tab-AautK0dL.js} +1 -1
- package/dist/web/dashboard/dist/assets/{file-code-B0t0xVTk.js → file-code-DVOtQrhl.js} +1 -1
- package/dist/web/dashboard/dist/assets/{gitnexus-tab-COEhhMeC.js → gitnexus-tab-D5xRYU3u.js} +1 -1
- package/dist/web/dashboard/dist/assets/{graph-section-CheOuwv_.js → graph-section-D5y4S3T1.js} +1 -1
- package/dist/web/dashboard/dist/assets/{graph-tab-B52UV5KP.js → graph-tab-tmjyMc4q.js} +1 -1
- package/dist/web/dashboard/dist/assets/{graph-utils-D5HpaYbf.js → graph-utils-BlwoHdjR.js} +1 -1
- package/dist/web/dashboard/dist/assets/{index-DFMBuNWV.js → index-C13O-yj1.js} +1 -1
- package/dist/web/dashboard/dist/assets/{index--SYA0Gq0.js → index-CAOXRHQq.js} +1 -1
- package/dist/web/dashboard/dist/assets/{index-DdenFaJ5.js → index-DrvFzUJS.js} +2 -2
- package/dist/web/dashboard/dist/assets/{insights-tab-sPgv-iwt.js → insights-tab-9sq9NfBt.js} +1 -1
- package/dist/web/dashboard/dist/assets/{journey-tab-CS416bwg.js → journey-tab-ujeAoAsS.js} +1 -1
- package/dist/web/dashboard/dist/assets/{languages-tab-CcB_s-Ic.js → languages-tab-DT-46f7p.js} +1 -1
- package/dist/web/dashboard/dist/assets/{loader-circle-BSNUICqd.js → loader-circle-DQz_g7p_.js} +1 -1
- package/dist/web/dashboard/dist/assets/{logs-tab-BbDXtvmz.js → logs-tab-DHj9jG6G.js} +1 -1
- package/dist/web/dashboard/dist/assets/{lsp-tab-BrytF6mP.js → lsp-tab-DGIm2cTM.js} +1 -1
- package/dist/web/dashboard/dist/assets/{memories-tab-qCFdXJIV.js → memories-tab-DT7JcHgq.js} +1 -1
- package/dist/web/dashboard/dist/assets/{prd-backlog-tab-BiNvyICT.js → prd-backlog-tab-CLzQ5p_3.js} +1 -1
- package/dist/web/dashboard/dist/assets/{refresh-cw-CqVWFFCW.js → refresh-cw-C0EeXZ6n.js} +1 -1
- package/dist/web/dashboard/dist/assets/{siebel-tab-DFNHIBbS.js → siebel-tab-67cdoYQ_.js} +3 -3
- package/dist/web/dashboard/dist/assets/{skills-tab-DlInZCyj.js → skills-tab-DL8-pMo9.js} +1 -1
- package/dist/web/dashboard/dist/assets/{style-B4jQtUGE.js → style-DeKQIW_i.js} +1 -1
- package/dist/web/dashboard/dist/assets/{triangle-alert-CqXtIU3H.js → triangle-alert-cibtv50e.js} +1 -1
- package/dist/web/dashboard/dist/assets/{upload-Cb3pIYT5.js → upload-CZI9Zosi.js} +1 -1
- package/dist/web/dashboard/dist/index.html +1 -1
- package/package.json +3 -1
- package/dist/web/dashboard/dist/assets/constants-Dd6A34aQ.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
var $r=Object.defineProperty;var Jr=(_,m,f)=>m in _?$r(_,m,{enumerable:!0,configurable:!0,writable:!0,value:f}):_[m]=f;var F=(_,m,f)=>Jr(_,typeof m!="symbol"?m+"":m,f);import{g as Kr}from"./index-DdenFaJ5.js";var J,Xe;function Ye(){if(Xe)return J;Xe=1;var _="\0",m="\0",f="";class u{constructor(r){F(this,"_isDirected",!0);F(this,"_isMultigraph",!1);F(this,"_isCompound",!1);F(this,"_label");F(this,"_defaultNodeLabelFn",()=>{});F(this,"_defaultEdgeLabelFn",()=>{});F(this,"_nodes",{});F(this,"_in",{});F(this,"_preds",{});F(this,"_out",{});F(this,"_sucs",{});F(this,"_edgeObjs",{});F(this,"_edgeLabels",{});F(this,"_nodeCount",0);F(this,"_edgeCount",0);F(this,"_parent");F(this,"_children");r&&(this._isDirected=Object.hasOwn(r,"directed")?r.directed:!0,this._isMultigraph=Object.hasOwn(r,"multigraph")?r.multigraph:!1,this._isCompound=Object.hasOwn(r,"compound")?r.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[m]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(r){return this._label=r,this}graph(){return this._label}setDefaultNodeLabel(r){return this._defaultNodeLabelFn=r,typeof r!="function"&&(this._defaultNodeLabelFn=()=>r),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var r=this;return this.nodes().filter(t=>Object.keys(r._in[t]).length===0)}sinks(){var r=this;return this.nodes().filter(t=>Object.keys(r._out[t]).length===0)}setNodes(r,t){var d=arguments,l=this;return r.forEach(function(w){d.length>1?l.setNode(w,t):l.setNode(w)}),this}setNode(r,t){return Object.hasOwn(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=t),this):(this._nodes[r]=arguments.length>1?t:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=m,this._children[r]={},this._children[m][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)}node(r){return this._nodes[r]}hasNode(r){return Object.hasOwn(this._nodes,r)}removeNode(r){var t=this;if(Object.hasOwn(this._nodes,r)){var d=l=>t.removeEdge(t._edgeObjs[l]);delete this._nodes[r],this._isCompound&&(this._removeFromParentsChildList(r),delete this._parent[r],this.children(r).forEach(function(l){t.setParent(l)}),delete this._children[r]),Object.keys(this._in[r]).forEach(d),delete this._in[r],delete this._preds[r],Object.keys(this._out[r]).forEach(d),delete this._out[r],delete this._sucs[r],--this._nodeCount}return this}setParent(r,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t=m;else{t+="";for(var d=t;d!==void 0;d=this.parent(d))if(d===r)throw new Error("Setting "+t+" as parent of "+r+" would create a cycle");this.setNode(t)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=t,this._children[t][r]=!0,this}_removeFromParentsChildList(r){delete this._children[this._parent[r]][r]}parent(r){if(this._isCompound){var t=this._parent[r];if(t!==m)return t}}children(r=m){if(this._isCompound){var t=this._children[r];if(t)return Object.keys(t)}else{if(r===m)return this.nodes();if(this.hasNode(r))return[]}}predecessors(r){var t=this._preds[r];if(t)return Object.keys(t)}successors(r){var t=this._sucs[r];if(t)return Object.keys(t)}neighbors(r){var t=this.predecessors(r);if(t){const l=new Set(t);for(var d of this.successors(r))l.add(d);return Array.from(l.values())}}isLeaf(r){var t;return this.isDirected()?t=this.successors(r):t=this.neighbors(r),t.length===0}filterNodes(r){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var d=this;Object.entries(this._nodes).forEach(function([x,c]){r(x)&&t.setNode(x,c)}),Object.values(this._edgeObjs).forEach(function(x){t.hasNode(x.v)&&t.hasNode(x.w)&&t.setEdge(x,d.edge(x))});var l={};function w(x){var c=d.parent(x);return c===void 0||t.hasNode(c)?(l[x]=c,c):c in l?l[c]:w(c)}return this._isCompound&&t.nodes().forEach(x=>t.setParent(x,w(x))),t}setDefaultEdgeLabel(r){return this._defaultEdgeLabelFn=r,typeof r!="function"&&(this._defaultEdgeLabelFn=()=>r),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(r,t){var d=this,l=arguments;return r.reduce(function(w,x){return l.length>1?d.setEdge(w,x,t):d.setEdge(w,x),x}),this}setEdge(){var r,t,d,l,w=!1,x=arguments[0];typeof x=="object"&&x!==null&&"v"in x?(r=x.v,t=x.w,d=x.name,arguments.length===2&&(l=arguments[1],w=!0)):(r=x,t=arguments[1],d=arguments[3],arguments.length>2&&(l=arguments[2],w=!0)),r=""+r,t=""+t,d!==void 0&&(d=""+d);var c=e(this._isDirected,r,t,d);if(Object.hasOwn(this._edgeLabels,c))return w&&(this._edgeLabels[c]=l),this;if(d!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(t),this._edgeLabels[c]=w?l:this._defaultEdgeLabelFn(r,t,d);var g=s(this._isDirected,r,t,d);return r=g.v,t=g.w,Object.freeze(g),this._edgeObjs[c]=g,a(this._preds[t],r),a(this._sucs[r],t),this._in[t][c]=g,this._out[r][c]=g,this._edgeCount++,this}edge(r,t,d){var l=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,d);return this._edgeLabels[l]}edgeAsObj(){const r=this.edge(...arguments);return typeof r!="object"?{label:r}:r}hasEdge(r,t,d){var l=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,d);return Object.hasOwn(this._edgeLabels,l)}removeEdge(r,t,d){var l=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,d),w=this._edgeObjs[l];return w&&(r=w.v,t=w.w,delete this._edgeLabels[l],delete this._edgeObjs[l],i(this._preds[t],r),i(this._sucs[r],t),delete this._in[t][l],delete this._out[r][l],this._edgeCount--),this}inEdges(r,t){var d=this._in[r];if(d){var l=Object.values(d);return t?l.filter(w=>w.v===t):l}}outEdges(r,t){var d=this._out[r];if(d){var l=Object.values(d);return t?l.filter(w=>w.w===t):l}}nodeEdges(r,t){var d=this.inEdges(r,t);if(d)return d.concat(this.outEdges(r,t))}}function a(o,r){o[r]?o[r]++:o[r]=1}function i(o,r){--o[r]||delete o[r]}function e(o,r,t,d){var l=""+r,w=""+t;if(!o&&l>w){var x=l;l=w,w=x}return l+f+w+f+(d===void 0?_:d)}function s(o,r,t,d){var l=""+r,w=""+t;if(!o&&l>w){var x=l;l=w,w=x}var c={v:l,w};return d&&(c.name=d),c}function n(o,r){return e(o,r.v,r.w,r.name)}return J=u,J}var K,Qe;function Zr(){return Qe||(Qe=1,K="2.2.4"),K}var Z,$e;function et(){return $e||($e=1,Z={Graph:Ye(),version:Zr()}),Z}var ee,Je;function rt(){if(Je)return ee;Je=1;var _=Ye();ee={write:m,read:a};function m(i){var e={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:f(i),edges:u(i)};return i.graph()!==void 0&&(e.value=structuredClone(i.graph())),e}function f(i){return i.nodes().map(function(e){var s=i.node(e),n=i.parent(e),o={v:e};return s!==void 0&&(o.value=s),n!==void 0&&(o.parent=n),o})}function u(i){return i.edges().map(function(e){var s=i.edge(e),n={v:e.v,w:e.w};return e.name!==void 0&&(n.name=e.name),s!==void 0&&(n.value=s),n})}function a(i){var e=new _(i.options).setGraph(i.value);return i.nodes.forEach(function(s){e.setNode(s.v,s.value),s.parent&&e.setParent(s.v,s.parent)}),i.edges.forEach(function(s){e.setEdge({v:s.v,w:s.w,name:s.name},s.value)}),e}return ee}var re,Ke;function tt(){if(Ke)return re;Ke=1,re=_;function _(m){var f={},u=[],a;function i(e){Object.hasOwn(f,e)||(f[e]=!0,a.push(e),m.successors(e).forEach(i),m.predecessors(e).forEach(i))}return m.nodes().forEach(function(e){a=[],i(e),a.length&&u.push(a)}),u}return re}var te,Ze;function Vr(){if(Ze)return te;Ze=1;class _{constructor(){F(this,"_arr",[]);F(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(f){return f.key})}has(f){return Object.hasOwn(this._keyIndices,f)}priority(f){var u=this._keyIndices[f];if(u!==void 0)return this._arr[u].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(f,u){var a=this._keyIndices;if(f=String(f),!Object.hasOwn(a,f)){var i=this._arr,e=i.length;return a[f]=e,i.push({key:f,priority:u}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var f=this._arr.pop();return delete this._keyIndices[f.key],this._heapify(0),f.key}decrease(f,u){var a=this._keyIndices[f];if(u>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+f+" Old: "+this._arr[a].priority+" New: "+u);this._arr[a].priority=u,this._decrease(a)}_heapify(f){var u=this._arr,a=2*f,i=a+1,e=f;a<u.length&&(e=u[a].priority<u[e].priority?a:e,i<u.length&&(e=u[i].priority<u[e].priority?i:e),e!==f&&(this._swap(f,e),this._heapify(e)))}_decrease(f){for(var u=this._arr,a=u[f].priority,i;f!==0&&(i=f>>1,!(u[i].priority<a));)this._swap(f,i),f=i}_swap(f,u){var a=this._arr,i=this._keyIndices,e=a[f],s=a[u];a[f]=s,a[u]=e,i[s.key]=f,i[e.key]=u}}return te=_,te}var ne,er;function Br(){if(er)return ne;er=1;var _=Vr();ne=f;var m=()=>1;function f(a,i,e,s){return u(a,String(i),e||m,s||function(n){return a.outEdges(n)})}function u(a,i,e,s){var n={},o=new _,r,t,d=function(l){var w=l.v!==r?l.v:l.w,x=n[w],c=e(l),g=t.distance+c;if(c<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+l+" Weight: "+c);g<x.distance&&(x.distance=g,x.predecessor=r,o.decrease(w,g))};for(a.nodes().forEach(function(l){var w=l===i?0:Number.POSITIVE_INFINITY;n[l]={distance:w},o.add(l,w)});o.size()>0&&(r=o.removeMin(),t=n[r],t.distance!==Number.POSITIVE_INFINITY);)s(r).forEach(d);return n}return ne}var ie,rr;function nt(){if(rr)return ie;rr=1;var _=Br();ie=m;function m(f,u,a){return f.nodes().reduce(function(i,e){return i[e]=_(f,e,u,a),i},{})}return ie}var ae,tr;function Wr(){if(tr)return ae;tr=1,ae=_;function _(m){var f=0,u=[],a={},i=[];function e(s){var n=a[s]={onStack:!0,lowlink:f,index:f++};if(u.push(s),m.successors(s).forEach(function(t){Object.hasOwn(a,t)?a[t].onStack&&(n.lowlink=Math.min(n.lowlink,a[t].index)):(e(t),n.lowlink=Math.min(n.lowlink,a[t].lowlink))}),n.lowlink===n.index){var o=[],r;do r=u.pop(),a[r].onStack=!1,o.push(r);while(s!==r);i.push(o)}}return m.nodes().forEach(function(s){Object.hasOwn(a,s)||e(s)}),i}return ae}var se,nr;function it(){if(nr)return se;nr=1;var _=Wr();se=m;function m(f){return _(f).filter(function(u){return u.length>1||u.length===1&&f.hasEdge(u[0],u[0])})}return se}var oe,ir;function at(){if(ir)return oe;ir=1,oe=m;var _=()=>1;function m(u,a,i){return f(u,a||_,i||function(e){return u.outEdges(e)})}function f(u,a,i){var e={},s=u.nodes();return s.forEach(function(n){e[n]={},e[n][n]={distance:0},s.forEach(function(o){n!==o&&(e[n][o]={distance:Number.POSITIVE_INFINITY})}),i(n).forEach(function(o){var r=o.v===n?o.w:o.v,t=a(o);e[n][r]={distance:t,predecessor:n}})}),s.forEach(function(n){var o=e[n];s.forEach(function(r){var t=e[r];s.forEach(function(d){var l=t[n],w=o[d],x=t[d],c=l.distance+w.distance;c<x.distance&&(x.distance=c,x.predecessor=w.predecessor)})})}),e}return oe}var ue,ar;function Yr(){if(ar)return ue;ar=1;function _(f){var u={},a={},i=[];function e(s){if(Object.hasOwn(a,s))throw new m;Object.hasOwn(u,s)||(a[s]=!0,u[s]=!0,f.predecessors(s).forEach(e),delete a[s],i.push(s))}if(f.sinks().forEach(e),Object.keys(u).length!==f.nodeCount())throw new m;return i}class m extends Error{constructor(){super(...arguments)}}return ue=_,_.CycleException=m,ue}var de,sr;function st(){if(sr)return de;sr=1;var _=Yr();de=m;function m(f){try{_(f)}catch(u){if(u instanceof _.CycleException)return!1;throw u}return!0}return de}var le,or;function zr(){if(or)return le;or=1,le=_;function _(a,i,e){Array.isArray(i)||(i=[i]);var s=a.isDirected()?t=>a.successors(t):t=>a.neighbors(t),n=e==="post"?m:f,o=[],r={};return i.forEach(t=>{if(!a.hasNode(t))throw new Error("Graph does not have node: "+t);n(t,s,r,o)}),o}function m(a,i,e,s){for(var n=[[a,!1]];n.length>0;){var o=n.pop();o[1]?s.push(o[0]):Object.hasOwn(e,o[0])||(e[o[0]]=!0,n.push([o[0],!0]),u(i(o[0]),r=>n.push([r,!1])))}}function f(a,i,e,s){for(var n=[a];n.length>0;){var o=n.pop();Object.hasOwn(e,o)||(e[o]=!0,s.push(o),u(i(o),r=>n.push(r)))}}function u(a,i){for(var e=a.length;e--;)i(a[e],e,a);return a}return le}var he,ur;function ot(){if(ur)return he;ur=1;var _=zr();he=m;function m(f,u){return _(f,u,"post")}return he}var fe,dr;function ut(){if(dr)return fe;dr=1;var _=zr();fe=m;function m(f,u){return _(f,u,"pre")}return fe}var ce,lr;function dt(){if(lr)return ce;lr=1;var _=Ye(),m=Vr();ce=f;function f(u,a){var i=new _,e={},s=new m,n;function o(t){var d=t.v===n?t.w:t.v,l=s.priority(d);if(l!==void 0){var w=a(t);w<l&&(e[d]=n,s.decrease(d,w))}}if(u.nodeCount()===0)return i;u.nodes().forEach(function(t){s.add(t,Number.POSITIVE_INFINITY),i.setNode(t)}),s.decrease(u.nodes()[0],0);for(var r=!1;s.size()>0;){if(n=s.removeMin(),Object.hasOwn(e,n))i.setEdge(n,e[n]);else{if(r)throw new Error("Input graph is not connected: "+u);r=!0}u.nodeEdges(n).forEach(o)}return i}return ce}var pe,hr;function lt(){return hr||(hr=1,pe={components:tt(),dijkstra:Br(),dijkstraAll:nt(),findCycles:it(),floydWarshall:at(),isAcyclic:st(),postorder:ot(),preorder:ut(),prim:dt(),tarjan:Wr(),topsort:Yr()}),pe}var me,fr;function Y(){if(fr)return me;fr=1;var _=et();return me={Graph:_.Graph,json:rt(),alg:lt(),version:_.version},me}var be,cr;function ht(){if(cr)return be;cr=1;class _{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,i=a._prev;if(i!==a)return m(i),i}enqueue(a){let i=this._sentinel;a._prev&&a._next&&m(a),a._next=i._next,i._next._prev=a,i._next=a,a._prev=i}toString(){let a=[],i=this._sentinel,e=i._prev;for(;e!==i;)a.push(JSON.stringify(e,f)),e=e._prev;return"["+a.join(", ")+"]"}}function m(u){u._prev._next=u._next,u._next._prev=u._prev,delete u._next,delete u._prev}function f(u,a){if(u!=="_next"&&u!=="_prev")return a}return be=_,be}var ve,pr;function ft(){if(pr)return ve;pr=1;let _=Y().Graph,m=ht();ve=u;let f=()=>1;function u(o,r){if(o.nodeCount()<=1)return[];let t=e(o,r||f);return a(t.graph,t.buckets,t.zeroIdx).flatMap(l=>o.outEdges(l.v,l.w))}function a(o,r,t){let d=[],l=r[r.length-1],w=r[0],x;for(;o.nodeCount();){for(;x=w.dequeue();)i(o,r,t,x);for(;x=l.dequeue();)i(o,r,t,x);if(o.nodeCount()){for(let c=r.length-2;c>0;--c)if(x=r[c].dequeue(),x){d=d.concat(i(o,r,t,x,!0));break}}}return d}function i(o,r,t,d,l){let w=l?[]:void 0;return o.inEdges(d.v).forEach(x=>{let c=o.edge(x),g=o.node(x.v);l&&w.push({v:x.v,w:x.w}),g.out-=c,s(r,t,g)}),o.outEdges(d.v).forEach(x=>{let c=o.edge(x),g=x.w,p=o.node(g);p.in-=c,s(r,t,p)}),o.removeNode(d.v),w}function e(o,r){let t=new _,d=0,l=0;o.nodes().forEach(c=>{t.setNode(c,{v:c,in:0,out:0})}),o.edges().forEach(c=>{let g=t.edge(c.v,c.w)||0,p=r(c),O=g+p;t.setEdge(c.v,c.w,O),l=Math.max(l,t.node(c.v).out+=p),d=Math.max(d,t.node(c.w).in+=p)});let w=n(l+d+3).map(()=>new m),x=d+1;return t.nodes().forEach(c=>{s(w,x,t.node(c))}),{graph:t,buckets:w,zeroIdx:x}}function s(o,r,t){t.out?t.in?o[t.out-t.in+r].enqueue(t):o[o.length-1].enqueue(t):o[0].enqueue(t)}function n(o){const r=[];for(let t=0;t<o;t++)r.push(t);return r}return ve}var we,mr;function A(){if(mr)return we;mr=1;let _=Y().Graph;we={addBorderNode:r,addDummyNode:m,applyWithChunking:l,asNonCompoundGraph:u,buildLayerMatrix:s,intersectRect:e,mapValues:j,maxRank:w,normalizeRanks:n,notime:g,partition:x,pick:I,predecessorWeights:i,range:C,removeEmptyRanks:o,simplify:f,successorWeights:a,time:c,uniqueId:O,zipObject:L};function m(h,b,E,k){for(var R=k;h.hasNode(R);)R=O(k);return E.dummy=b,h.setNode(R,E),R}function f(h){let b=new _().setGraph(h.graph());return h.nodes().forEach(E=>b.setNode(E,h.node(E))),h.edges().forEach(E=>{let k=b.edge(E.v,E.w)||{weight:0,minlen:1},R=h.edge(E);b.setEdge(E.v,E.w,{weight:k.weight+R.weight,minlen:Math.max(k.minlen,R.minlen)})}),b}function u(h){let b=new _({multigraph:h.isMultigraph()}).setGraph(h.graph());return h.nodes().forEach(E=>{h.children(E).length||b.setNode(E,h.node(E))}),h.edges().forEach(E=>{b.setEdge(E,h.edge(E))}),b}function a(h){let b=h.nodes().map(E=>{let k={};return h.outEdges(E).forEach(R=>{k[R.w]=(k[R.w]||0)+h.edge(R).weight}),k});return L(h.nodes(),b)}function i(h){let b=h.nodes().map(E=>{let k={};return h.inEdges(E).forEach(R=>{k[R.v]=(k[R.v]||0)+h.edge(R).weight}),k});return L(h.nodes(),b)}function e(h,b){let E=h.x,k=h.y,R=b.x-E,T=b.y-k,S=h.width/2,D=h.height/2;if(!R&&!T)throw new Error("Not possible to find intersection inside of the rectangle");let z,U;return Math.abs(T)*S>Math.abs(R)*D?(T<0&&(D=-D),z=D*R/T,U=D):(R<0&&(S=-S),z=S,U=S*T/R),{x:E+z,y:k+U}}function s(h){let b=C(w(h)+1).map(()=>[]);return h.nodes().forEach(E=>{let k=h.node(E),R=k.rank;R!==void 0&&(b[R][k.order]=E)}),b}function n(h){let b=h.nodes().map(k=>{let R=h.node(k).rank;return R===void 0?Number.MAX_VALUE:R}),E=l(Math.min,b);h.nodes().forEach(k=>{let R=h.node(k);Object.hasOwn(R,"rank")&&(R.rank-=E)})}function o(h){let b=h.nodes().map(S=>h.node(S).rank),E=l(Math.min,b),k=[];h.nodes().forEach(S=>{let D=h.node(S).rank-E;k[D]||(k[D]=[]),k[D].push(S)});let R=0,T=h.graph().nodeRankFactor;Array.from(k).forEach((S,D)=>{S===void 0&&D%T!==0?--R:S!==void 0&&R&&S.forEach(z=>h.node(z).rank+=R)})}function r(h,b,E,k){let R={width:0,height:0};return arguments.length>=4&&(R.rank=E,R.order=k),m(h,"border",R,b)}function t(h,b=d){const E=[];for(let k=0;k<h.length;k+=b){const R=h.slice(k,k+b);E.push(R)}return E}const d=65535;function l(h,b){if(b.length>d){const E=t(b);return h.apply(null,E.map(k=>h.apply(null,k)))}else return h.apply(null,b)}function w(h){const E=h.nodes().map(k=>{let R=h.node(k).rank;return R===void 0?Number.MIN_VALUE:R});return l(Math.max,E)}function x(h,b){let E={lhs:[],rhs:[]};return h.forEach(k=>{b(k)?E.lhs.push(k):E.rhs.push(k)}),E}function c(h,b){let E=Date.now();try{return b()}finally{console.log(h+" time: "+(Date.now()-E)+"ms")}}function g(h,b){return b()}let p=0;function O(h){var b=++p;return h+(""+b)}function C(h,b,E=1){b==null&&(b=h,h=0);let k=T=>T<b;E<0&&(k=T=>b<T);const R=[];for(let T=h;k(T);T+=E)R.push(T);return R}function I(h,b){const E={};for(const k of b)h[k]!==void 0&&(E[k]=h[k]);return E}function j(h,b){let E=b;return typeof b=="string"&&(E=k=>k[b]),Object.entries(h).reduce((k,[R,T])=>(k[R]=E(T,R),k),{})}function L(h,b){return h.reduce((E,k,R)=>(E[k]=b[R],E),{})}return we}var ge,br;function ct(){if(br)return ge;br=1;let _=ft(),m=A().uniqueId;ge={run:f,undo:a};function f(i){(i.graph().acyclicer==="greedy"?_(i,s(i)):u(i)).forEach(n=>{let o=i.edge(n);i.removeEdge(n),o.forwardName=n.name,o.reversed=!0,i.setEdge(n.w,n.v,o,m("rev"))});function s(n){return o=>n.edge(o).weight}}function u(i){let e=[],s={},n={};function o(r){Object.hasOwn(n,r)||(n[r]=!0,s[r]=!0,i.outEdges(r).forEach(t=>{Object.hasOwn(s,t.w)?e.push(t):o(t.w)}),delete s[r])}return i.nodes().forEach(o),e}function a(i){i.edges().forEach(e=>{let s=i.edge(e);if(s.reversed){i.removeEdge(e);let n=s.forwardName;delete s.reversed,delete s.forwardName,i.setEdge(e.w,e.v,s,n)}})}return ge}var Ee,vr;function pt(){if(vr)return Ee;vr=1;let _=A();Ee={run:m,undo:u};function m(a){a.graph().dummyChains=[],a.edges().forEach(i=>f(a,i))}function f(a,i){let e=i.v,s=a.node(e).rank,n=i.w,o=a.node(n).rank,r=i.name,t=a.edge(i),d=t.labelRank;if(o===s+1)return;a.removeEdge(i);let l,w,x;for(x=0,++s;s<o;++x,++s)t.points=[],w={width:0,height:0,edgeLabel:t,edgeObj:i,rank:s},l=_.addDummyNode(a,"edge",w,"_d"),s===d&&(w.width=t.width,w.height=t.height,w.dummy="edge-label",w.labelpos=t.labelpos),a.setEdge(e,l,{weight:t.weight},r),x===0&&a.graph().dummyChains.push(l),e=l;a.setEdge(e,n,{weight:t.weight},r)}function u(a){a.graph().dummyChains.forEach(i=>{let e=a.node(i),s=e.edgeLabel,n;for(a.setEdge(e.edgeObj,s);e.dummy;)n=a.successors(i)[0],a.removeNode(i),s.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(s.x=e.x,s.y=e.y,s.width=e.width,s.height=e.height),i=n,e=a.node(i)})}return Ee}var _e,wr;function X(){if(wr)return _e;wr=1;const{applyWithChunking:_}=A();_e={longestPath:m,slack:f};function m(u){var a={};function i(e){var s=u.node(e);if(Object.hasOwn(a,e))return s.rank;a[e]=!0;let n=u.outEdges(e).map(r=>r==null?Number.POSITIVE_INFINITY:i(r.w)-u.edge(r).minlen);var o=_(Math.min,n);return o===Number.POSITIVE_INFINITY&&(o=0),s.rank=o}u.sources().forEach(i)}function f(u,a){return u.node(a.w).rank-u.node(a.v).rank-u.edge(a).minlen}return _e}var ye,gr;function Ur(){if(gr)return ye;gr=1;var _=Y().Graph,m=X().slack;ye=f;function f(e){var s=new _({directed:!1}),n=e.nodes()[0],o=e.nodeCount();s.setNode(n,{});for(var r,t;u(s,e)<o;)r=a(s,e),t=s.hasNode(r.v)?m(e,r):-m(e,r),i(s,e,t);return s}function u(e,s){function n(o){s.nodeEdges(o).forEach(r=>{var t=r.v,d=o===t?r.w:t;!e.hasNode(d)&&!m(s,r)&&(e.setNode(d,{}),e.setEdge(o,d,{}),n(d))})}return e.nodes().forEach(n),e.nodeCount()}function a(e,s){return s.edges().reduce((o,r)=>{let t=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(t=m(s,r)),t<o[0]?[t,r]:o},[Number.POSITIVE_INFINITY,null])[1]}function i(e,s,n){e.nodes().forEach(o=>s.node(o).rank+=n)}return ye}var ke,Er;function mt(){if(Er)return ke;Er=1;var _=Ur(),m=X().slack,f=X().longestPath,u=Y().alg.preorder,a=Y().alg.postorder,i=A().simplify;ke=e,e.initLowLimValues=r,e.initCutValues=s,e.calcCutValue=o,e.leaveEdge=d,e.enterEdge=l,e.exchangeEdges=w;function e(p){p=i(p),f(p);var O=_(p);r(O),s(O,p);for(var C,I;C=d(O);)I=l(O,p,C),w(O,p,C,I)}function s(p,O){var C=a(p,p.nodes());C=C.slice(0,C.length-1),C.forEach(I=>n(p,O,I))}function n(p,O,C){var I=p.node(C),j=I.parent;p.edge(C,j).cutvalue=o(p,O,C)}function o(p,O,C){var I=p.node(C),j=I.parent,L=!0,h=O.edge(C,j),b=0;return h||(L=!1,h=O.edge(j,C)),b=h.weight,O.nodeEdges(C).forEach(E=>{var k=E.v===C,R=k?E.w:E.v;if(R!==j){var T=k===L,S=O.edge(E).weight;if(b+=T?S:-S,c(p,C,R)){var D=p.edge(C,R).cutvalue;b+=T?-D:D}}}),b}function r(p,O){arguments.length<2&&(O=p.nodes()[0]),t(p,{},1,O)}function t(p,O,C,I,j){var L=C,h=p.node(I);return O[I]=!0,p.neighbors(I).forEach(b=>{Object.hasOwn(O,b)||(C=t(p,O,C,b,I))}),h.low=L,h.lim=C++,j?h.parent=j:delete h.parent,C}function d(p){return p.edges().find(O=>p.edge(O).cutvalue<0)}function l(p,O,C){var I=C.v,j=C.w;O.hasEdge(I,j)||(I=C.w,j=C.v);var L=p.node(I),h=p.node(j),b=L,E=!1;L.lim>h.lim&&(b=h,E=!0);var k=O.edges().filter(R=>E===g(p,p.node(R.v),b)&&E!==g(p,p.node(R.w),b));return k.reduce((R,T)=>m(O,T)<m(O,R)?T:R)}function w(p,O,C,I){var j=C.v,L=C.w;p.removeEdge(j,L),p.setEdge(I.v,I.w,{}),r(p),s(p,O),x(p,O)}function x(p,O){var C=p.nodes().find(j=>!O.node(j).parent),I=u(p,C);I=I.slice(1),I.forEach(j=>{var L=p.node(j).parent,h=O.edge(j,L),b=!1;h||(h=O.edge(L,j),b=!0),O.node(j).rank=O.node(L).rank+(b?h.minlen:-h.minlen)})}function c(p,O,C){return p.hasEdge(O,C)}function g(p,O,C){return C.low<=O.lim&&O.lim<=C.lim}return ke}var Oe,_r;function bt(){if(_r)return Oe;_r=1;var _=X(),m=_.longestPath,f=Ur(),u=mt();Oe=a;function a(n){var o=n.graph().ranker;if(o instanceof Function)return o(n);switch(n.graph().ranker){case"network-simplex":s(n);break;case"tight-tree":e(n);break;case"longest-path":i(n);break;case"none":break;default:s(n)}}var i=m;function e(n){m(n),f(n)}function s(n){u(n)}return Oe}var Ne,yr;function vt(){if(yr)return Ne;yr=1,Ne=_;function _(u){let a=f(u);u.graph().dummyChains.forEach(i=>{let e=u.node(i),s=e.edgeObj,n=m(u,a,s.v,s.w),o=n.path,r=n.lca,t=0,d=o[t],l=!0;for(;i!==s.w;){if(e=u.node(i),l){for(;(d=o[t])!==r&&u.node(d).maxRank<e.rank;)t++;d===r&&(l=!1)}if(!l){for(;t<o.length-1&&u.node(d=o[t+1]).minRank<=e.rank;)t++;d=o[t]}u.setParent(i,d),i=u.successors(i)[0]}})}function m(u,a,i,e){let s=[],n=[],o=Math.min(a[i].low,a[e].low),r=Math.max(a[i].lim,a[e].lim),t,d;t=i;do t=u.parent(t),s.push(t);while(t&&(a[t].low>o||r>a[t].lim));for(d=t,t=e;(t=u.parent(t))!==d;)n.push(t);return{path:s.concat(n.reverse()),lca:d}}function f(u){let a={},i=0;function e(s){let n=i;u.children(s).forEach(e),a[s]={low:n,lim:i++}}return u.children().forEach(e),a}return Ne}var Ce,kr;function wt(){if(kr)return Ce;kr=1;let _=A();Ce={run:m,cleanup:i};function m(e){let s=_.addDummyNode(e,"root",{},"_root"),n=u(e),o=Object.values(n),r=_.applyWithChunking(Math.max,o)-1,t=2*r+1;e.graph().nestingRoot=s,e.edges().forEach(l=>e.edge(l).minlen*=t);let d=a(e)+1;e.children().forEach(l=>f(e,s,t,d,r,n,l)),e.graph().nodeRankFactor=t}function f(e,s,n,o,r,t,d){let l=e.children(d);if(!l.length){d!==s&&e.setEdge(s,d,{weight:0,minlen:n});return}let w=_.addBorderNode(e,"_bt"),x=_.addBorderNode(e,"_bb"),c=e.node(d);e.setParent(w,d),c.borderTop=w,e.setParent(x,d),c.borderBottom=x,l.forEach(g=>{f(e,s,n,o,r,t,g);let p=e.node(g),O=p.borderTop?p.borderTop:g,C=p.borderBottom?p.borderBottom:g,I=p.borderTop?o:2*o,j=O!==C?1:r-t[d]+1;e.setEdge(w,O,{weight:I,minlen:j,nestingEdge:!0}),e.setEdge(C,x,{weight:I,minlen:j,nestingEdge:!0})}),e.parent(d)||e.setEdge(s,w,{weight:0,minlen:r+t[d]})}function u(e){var s={};function n(o,r){var t=e.children(o);t&&t.length&&t.forEach(d=>n(d,r+1)),s[o]=r}return e.children().forEach(o=>n(o,1)),s}function a(e){return e.edges().reduce((s,n)=>s+e.edge(n).weight,0)}function i(e){var s=e.graph();e.removeNode(s.nestingRoot),delete s.nestingRoot,e.edges().forEach(n=>{var o=e.edge(n);o.nestingEdge&&e.removeEdge(n)})}return Ce}var xe,Or;function gt(){if(Or)return xe;Or=1;let _=A();xe=m;function m(u){function a(i){let e=u.children(i),s=u.node(i);if(e.length&&e.forEach(a),Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let n=s.minRank,o=s.maxRank+1;n<o;++n)f(u,"borderLeft","_bl",i,s,n),f(u,"borderRight","_br",i,s,n)}}u.children().forEach(a)}function f(u,a,i,e,s,n){let o={width:0,height:0,rank:n,borderType:a},r=s[a][n-1],t=_.addDummyNode(u,"border",o,i);s[a][n]=t,u.setParent(t,e),r&&u.setEdge(r,t,{weight:1})}return xe}var Re,Nr;function Et(){if(Nr)return Re;Nr=1,Re={adjust:_,undo:m};function _(n){let o=n.graph().rankdir.toLowerCase();(o==="lr"||o==="rl")&&f(n)}function m(n){let o=n.graph().rankdir.toLowerCase();(o==="bt"||o==="rl")&&a(n),(o==="lr"||o==="rl")&&(e(n),f(n))}function f(n){n.nodes().forEach(o=>u(n.node(o))),n.edges().forEach(o=>u(n.edge(o)))}function u(n){let o=n.width;n.width=n.height,n.height=o}function a(n){n.nodes().forEach(o=>i(n.node(o))),n.edges().forEach(o=>{let r=n.edge(o);r.points.forEach(i),Object.hasOwn(r,"y")&&i(r)})}function i(n){n.y=-n.y}function e(n){n.nodes().forEach(o=>s(n.node(o))),n.edges().forEach(o=>{let r=n.edge(o);r.points.forEach(s),Object.hasOwn(r,"x")&&s(r)})}function s(n){let o=n.x;n.x=n.y,n.y=o}return Re}var Ie,Cr;function _t(){if(Cr)return Ie;Cr=1;let _=A();Ie=m;function m(f){let u={},a=f.nodes().filter(r=>!f.children(r).length),i=a.map(r=>f.node(r).rank),e=_.applyWithChunking(Math.max,i),s=_.range(e+1).map(()=>[]);function n(r){if(u[r])return;u[r]=!0;let t=f.node(r);s[t.rank].push(r),f.successors(r).forEach(n)}return a.sort((r,t)=>f.node(r).rank-f.node(t).rank).forEach(n),s}return Ie}var je,xr;function yt(){if(xr)return je;xr=1;let _=A().zipObject;je=m;function m(u,a){let i=0;for(let e=1;e<a.length;++e)i+=f(u,a[e-1],a[e]);return i}function f(u,a,i){let e=_(i,i.map((d,l)=>l)),s=a.flatMap(d=>u.outEdges(d).map(l=>({pos:e[l.w],weight:u.edge(l).weight})).sort((l,w)=>l.pos-w.pos)),n=1;for(;n<i.length;)n<<=1;let o=2*n-1;n-=1;let r=new Array(o).fill(0),t=0;return s.forEach(d=>{let l=d.pos+n;r[l]+=d.weight;let w=0;for(;l>0;)l%2&&(w+=r[l+1]),l=l-1>>1,r[l]+=d.weight;t+=d.weight*w}),t}return je}var qe,Rr;function kt(){if(Rr)return qe;Rr=1,qe=_;function _(m,f=[]){return f.map(u=>{let a=m.inEdges(u);if(a.length){let i=a.reduce((e,s)=>{let n=m.edge(s),o=m.node(s.v);return{sum:e.sum+n.weight*o.order,weight:e.weight+n.weight}},{sum:0,weight:0});return{v:u,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:u}})}return qe}var Le,Ir;function Ot(){if(Ir)return Le;Ir=1;let _=A();Le=m;function m(a,i){let e={};a.forEach((n,o)=>{let r=e[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:o};n.barycenter!==void 0&&(r.barycenter=n.barycenter,r.weight=n.weight)}),i.edges().forEach(n=>{let o=e[n.v],r=e[n.w];o!==void 0&&r!==void 0&&(r.indegree++,o.out.push(e[n.w]))});let s=Object.values(e).filter(n=>!n.indegree);return f(s)}function f(a){let i=[];function e(n){return o=>{o.merged||(o.barycenter===void 0||n.barycenter===void 0||o.barycenter>=n.barycenter)&&u(n,o)}}function s(n){return o=>{o.in.push(n),--o.indegree===0&&a.push(o)}}for(;a.length;){let n=a.pop();i.push(n),n.in.reverse().forEach(e(n)),n.out.forEach(s(n))}return i.filter(n=>!n.merged).map(n=>_.pick(n,["vs","i","barycenter","weight"]))}function u(a,i){let e=0,s=0;a.weight&&(e+=a.barycenter*a.weight,s+=a.weight),i.weight&&(e+=i.barycenter*i.weight,s+=i.weight),a.vs=i.vs.concat(a.vs),a.barycenter=e/s,a.weight=s,a.i=Math.min(i.i,a.i),i.merged=!0}return Le}var Te,jr;function Nt(){if(jr)return Te;jr=1;let _=A();Te=m;function m(a,i){let e=_.partition(a,w=>Object.hasOwn(w,"barycenter")),s=e.lhs,n=e.rhs.sort((w,x)=>x.i-w.i),o=[],r=0,t=0,d=0;s.sort(u(!!i)),d=f(o,n,d),s.forEach(w=>{d+=w.vs.length,o.push(w.vs),r+=w.barycenter*w.weight,t+=w.weight,d=f(o,n,d)});let l={vs:o.flat(!0)};return t&&(l.barycenter=r/t,l.weight=t),l}function f(a,i,e){let s;for(;i.length&&(s=i[i.length-1]).i<=e;)i.pop(),a.push(s.vs),e++;return e}function u(a){return(i,e)=>i.barycenter<e.barycenter?-1:i.barycenter>e.barycenter?1:a?e.i-i.i:i.i-e.i}return Te}var Se,qr;function Ct(){if(qr)return Se;qr=1;let _=kt(),m=Ot(),f=Nt();Se=u;function u(e,s,n,o){let r=e.children(s),t=e.node(s),d=t?t.borderLeft:void 0,l=t?t.borderRight:void 0,w={};d&&(r=r.filter(p=>p!==d&&p!==l));let x=_(e,r);x.forEach(p=>{if(e.children(p.v).length){let O=u(e,p.v,n,o);w[p.v]=O,Object.hasOwn(O,"barycenter")&&i(p,O)}});let c=m(x,n);a(c,w);let g=f(c,o);if(d&&(g.vs=[d,g.vs,l].flat(!0),e.predecessors(d).length)){let p=e.node(e.predecessors(d)[0]),O=e.node(e.predecessors(l)[0]);Object.hasOwn(g,"barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+p.order+O.order)/(g.weight+2),g.weight+=2}return g}function a(e,s){e.forEach(n=>{n.vs=n.vs.flatMap(o=>s[o]?s[o].vs:o)})}function i(e,s){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+s.barycenter*s.weight)/(e.weight+s.weight),e.weight+=s.weight):(e.barycenter=s.barycenter,e.weight=s.weight)}return Se}var Me,Lr;function xt(){if(Lr)return Me;Lr=1;let _=Y().Graph,m=A();Me=f;function f(a,i,e,s){s||(s=a.nodes());let n=u(a),o=new _({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(r=>a.node(r));return s.forEach(r=>{let t=a.node(r),d=a.parent(r);(t.rank===i||t.minRank<=i&&i<=t.maxRank)&&(o.setNode(r),o.setParent(r,d||n),a[e](r).forEach(l=>{let w=l.v===r?l.w:l.v,x=o.edge(w,r),c=x!==void 0?x.weight:0;o.setEdge(w,r,{weight:a.edge(l).weight+c})}),Object.hasOwn(t,"minRank")&&o.setNode(r,{borderLeft:t.borderLeft[i],borderRight:t.borderRight[i]}))}),o}function u(a){for(var i;a.hasNode(i=m.uniqueId("_root")););return i}return Me}var Pe,Tr;function Rt(){if(Tr)return Pe;Tr=1,Pe=_;function _(m,f,u){let a={},i;u.forEach(e=>{let s=m.parent(e),n,o;for(;s;){if(n=m.parent(s),n?(o=a[n],a[n]=s):(o=i,i=s),o&&o!==s){f.setEdge(o,s);return}s=n}})}return Pe}var De,Sr;function It(){if(Sr)return De;Sr=1;let _=_t(),m=yt(),f=Ct(),u=xt(),a=Rt(),i=Y().Graph,e=A();De=s;function s(t,d){if(d&&typeof d.customOrder=="function"){d.customOrder(t,s);return}let l=e.maxRank(t),w=n(t,e.range(1,l+1),"inEdges"),x=n(t,e.range(l-1,-1,-1),"outEdges"),c=_(t);if(r(t,c),d&&d.disableOptimalOrderHeuristic)return;let g=Number.POSITIVE_INFINITY,p;for(let O=0,C=0;C<4;++O,++C){o(O%2?w:x,O%4>=2),c=e.buildLayerMatrix(t);let I=m(t,c);I<g&&(C=0,p=Object.assign({},c),g=I)}r(t,p)}function n(t,d,l){const w=new Map,x=(c,g)=>{w.has(c)||w.set(c,[]),w.get(c).push(g)};for(const c of t.nodes()){const g=t.node(c);if(typeof g.rank=="number"&&x(g.rank,c),typeof g.minRank=="number"&&typeof g.maxRank=="number")for(let p=g.minRank;p<=g.maxRank;p++)p!==g.rank&&x(p,c)}return d.map(function(c){return u(t,c,l,w.get(c)||[])})}function o(t,d){let l=new i;t.forEach(function(w){let x=w.graph().root,c=f(w,x,l,d);c.vs.forEach((g,p)=>w.node(g).order=p),a(w,l,c.vs)})}function r(t,d){Object.values(d).forEach(l=>l.forEach((w,x)=>t.node(w).order=x))}return De}var Ge,Mr;function jt(){if(Mr)return Ge;Mr=1;let _=Y().Graph,m=A();Ge={positionX:l,findType1Conflicts:f,findType2Conflicts:u,addConflict:i,hasConflict:e,verticalAlignment:s,horizontalCompaction:n,alignCoordinates:t,findSmallestWidthAlignment:r,balance:d};function f(c,g){let p={};function O(C,I){let j=0,L=0,h=C.length,b=I[I.length-1];return I.forEach((E,k)=>{let R=a(c,E),T=R?c.node(R).order:h;(R||E===b)&&(I.slice(L,k+1).forEach(S=>{c.predecessors(S).forEach(D=>{let z=c.node(D),U=z.order;(U<j||T<U)&&!(z.dummy&&c.node(S).dummy)&&i(p,D,S)})}),L=k+1,j=T)}),I}return g.length&&g.reduce(O),p}function u(c,g){let p={};function O(I,j,L,h,b){let E;m.range(j,L).forEach(k=>{E=I[k],c.node(E).dummy&&c.predecessors(E).forEach(R=>{let T=c.node(R);T.dummy&&(T.order<h||T.order>b)&&i(p,R,E)})})}function C(I,j){let L=-1,h,b=0;return j.forEach((E,k)=>{if(c.node(E).dummy==="border"){let R=c.predecessors(E);R.length&&(h=c.node(R[0]).order,O(j,b,k,L,h),b=k,L=h)}O(j,b,j.length,h,I.length)}),j}return g.length&&g.reduce(C),p}function a(c,g){if(c.node(g).dummy)return c.predecessors(g).find(p=>c.node(p).dummy)}function i(c,g,p){if(g>p){let C=g;g=p,p=C}let O=c[g];O||(c[g]=O={}),O[p]=!0}function e(c,g,p){if(g>p){let O=g;g=p,p=O}return!!c[g]&&Object.hasOwn(c[g],p)}function s(c,g,p,O){let C={},I={},j={};return g.forEach(L=>{L.forEach((h,b)=>{C[h]=h,I[h]=h,j[h]=b})}),g.forEach(L=>{let h=-1;L.forEach(b=>{let E=O(b);if(E.length){E=E.sort((R,T)=>j[R]-j[T]);let k=(E.length-1)/2;for(let R=Math.floor(k),T=Math.ceil(k);R<=T;++R){let S=E[R];I[b]===b&&h<j[S]&&!e(p,b,S)&&(I[S]=b,I[b]=C[b]=C[S],h=j[S])}}})}),{root:C,align:I}}function n(c,g,p,O,C){let I={},j=o(c,g,p,C),L=C?"borderLeft":"borderRight";function h(k,R){let T=j.nodes(),S=T.pop(),D={};for(;S;)D[S]?k(S):(D[S]=!0,T.push(S),T=T.concat(R(S))),S=T.pop()}function b(k){I[k]=j.inEdges(k).reduce((R,T)=>Math.max(R,I[T.v]+j.edge(T)),0)}function E(k){let R=j.outEdges(k).reduce((S,D)=>Math.min(S,I[D.w]-j.edge(D)),Number.POSITIVE_INFINITY),T=c.node(k);R!==Number.POSITIVE_INFINITY&&T.borderType!==L&&(I[k]=Math.max(I[k],R))}return h(b,j.predecessors.bind(j)),h(E,j.successors.bind(j)),Object.keys(O).forEach(k=>I[k]=I[p[k]]),I}function o(c,g,p,O){let C=new _,I=c.graph(),j=w(I.nodesep,I.edgesep,O);return g.forEach(L=>{let h;L.forEach(b=>{let E=p[b];if(C.setNode(E),h){var k=p[h],R=C.edge(k,E);C.setEdge(k,E,Math.max(j(c,b,h),R||0))}h=b})}),C}function r(c,g){return Object.values(g).reduce((p,O)=>{let C=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;Object.entries(O).forEach(([L,h])=>{let b=x(c,L)/2;C=Math.max(h+b,C),I=Math.min(h-b,I)});const j=C-I;return j<p[0]&&(p=[j,O]),p},[Number.POSITIVE_INFINITY,null])[1]}function t(c,g){let p=Object.values(g),O=m.applyWithChunking(Math.min,p),C=m.applyWithChunking(Math.max,p);["u","d"].forEach(I=>{["l","r"].forEach(j=>{let L=I+j,h=c[L];if(h===g)return;let b=Object.values(h),E=O-m.applyWithChunking(Math.min,b);j!=="l"&&(E=C-m.applyWithChunking(Math.max,b)),E&&(c[L]=m.mapValues(h,k=>k+E))})})}function d(c,g){return m.mapValues(c.ul,(p,O)=>{if(g)return c[g.toLowerCase()][O];{let C=Object.values(c).map(I=>I[O]).sort((I,j)=>I-j);return(C[1]+C[2])/2}})}function l(c){let g=m.buildLayerMatrix(c),p=Object.assign(f(c,g),u(c,g)),O={},C;["u","d"].forEach(j=>{C=j==="u"?g:Object.values(g).reverse(),["l","r"].forEach(L=>{L==="r"&&(C=C.map(k=>Object.values(k).reverse()));let h=(j==="u"?c.predecessors:c.successors).bind(c),b=s(c,C,p,h),E=n(c,C,b.root,b.align,L==="r");L==="r"&&(E=m.mapValues(E,k=>-k)),O[j+L]=E})});let I=r(c,O);return t(O,I),d(O,c.graph().align)}function w(c,g,p){return(O,C,I)=>{let j=O.node(C),L=O.node(I),h=0,b;if(h+=j.width/2,Object.hasOwn(j,"labelpos"))switch(j.labelpos.toLowerCase()){case"l":b=-j.width/2;break;case"r":b=j.width/2;break}if(b&&(h+=p?b:-b),b=0,h+=(j.dummy?g:c)/2,h+=(L.dummy?g:c)/2,h+=L.width/2,Object.hasOwn(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":b=L.width/2;break;case"r":b=-L.width/2;break}return b&&(h+=p?b:-b),b=0,h}}function x(c,g){return c.node(g).width}return Ge}var Fe,Pr;function qt(){if(Pr)return Fe;Pr=1;let _=A(),m=jt().positionX;Fe=f;function f(a){a=_.asNonCompoundGraph(a),u(a),Object.entries(m(a)).forEach(([i,e])=>a.node(i).x=e)}function u(a){let i=_.buildLayerMatrix(a),e=a.graph().ranksep,s=0;i.forEach(n=>{const o=n.reduce((r,t)=>{const d=a.node(t).height;return r>d?r:d},0);n.forEach(r=>a.node(r).y=s+o/2),s+=o+e})}return Fe}var Ae,Dr;function Lt(){if(Dr)return Ae;Dr=1;let _=ct(),m=pt(),f=bt(),u=A().normalizeRanks,a=vt(),i=A().removeEmptyRanks,e=wt(),s=gt(),n=Et(),o=It(),r=qt(),t=A(),d=Y().Graph;Ae=l;function l(v,y){let N=y&&y.debugTiming?t.time:t.notime;N("layout",()=>{let q=N(" buildLayoutGraph",()=>h(v));N(" runLayout",()=>w(q,N,y)),N(" updateInputGraph",()=>x(v,q))})}function w(v,y,N){y(" makeSpaceForEdgeLabels",()=>b(v)),y(" removeSelfEdges",()=>Hr(v)),y(" acyclic",()=>_.run(v)),y(" nestingGraph.run",()=>e.run(v)),y(" rank",()=>f(t.asNonCompoundGraph(v))),y(" injectEdgeLabelProxies",()=>E(v)),y(" removeEmptyRanks",()=>i(v)),y(" nestingGraph.cleanup",()=>e.cleanup(v)),y(" normalizeRanks",()=>u(v)),y(" assignRankMinMax",()=>k(v)),y(" removeEdgeLabelProxies",()=>R(v)),y(" normalize.run",()=>m.run(v)),y(" parentDummyChains",()=>a(v)),y(" addBorderSegments",()=>s(v)),y(" order",()=>o(v,N)),y(" insertSelfEdges",()=>Xr(v)),y(" adjustCoordinateSystem",()=>n.adjust(v)),y(" position",()=>r(v)),y(" positionSelfEdges",()=>Qr(v)),y(" removeBorderNodes",()=>U(v)),y(" normalize.undo",()=>m.undo(v)),y(" fixupEdgeLabelCoords",()=>D(v)),y(" undoCoordinateSystem",()=>n.undo(v)),y(" translateGraph",()=>T(v)),y(" assignNodeIntersects",()=>S(v)),y(" reversePoints",()=>z(v)),y(" acyclic.undo",()=>_.undo(v))}function x(v,y){v.nodes().forEach(N=>{let q=v.node(N),M=y.node(N);q&&(q.x=M.x,q.y=M.y,q.rank=M.rank,y.children(N).length&&(q.width=M.width,q.height=M.height))}),v.edges().forEach(N=>{let q=v.edge(N),M=y.edge(N);q.points=M.points,Object.hasOwn(M,"x")&&(q.x=M.x,q.y=M.y)}),v.graph().width=y.graph().width,v.graph().height=y.graph().height}let c=["nodesep","edgesep","ranksep","marginx","marginy"],g={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},p=["acyclicer","ranker","rankdir","align"],O=["width","height","rank"],C={width:0,height:0},I=["minlen","weight","width","height","labeloffset"],j={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},L=["labelpos"];function h(v){let y=new d({multigraph:!0,compound:!0}),N=$(v.graph());return y.setGraph(Object.assign({},g,Q(N,c),t.pick(N,p))),v.nodes().forEach(q=>{let M=$(v.node(q));const P=Q(M,O);Object.keys(C).forEach(G=>{P[G]===void 0&&(P[G]=C[G])}),y.setNode(q,P),y.setParent(q,v.parent(q))}),v.edges().forEach(q=>{let M=$(v.edge(q));y.setEdge(q,Object.assign({},j,Q(M,I),t.pick(M,L)))}),y}function b(v){let y=v.graph();y.ranksep/=2,v.edges().forEach(N=>{let q=v.edge(N);q.minlen*=2,q.labelpos.toLowerCase()!=="c"&&(y.rankdir==="TB"||y.rankdir==="BT"?q.width+=q.labeloffset:q.height+=q.labeloffset)})}function E(v){v.edges().forEach(y=>{let N=v.edge(y);if(N.width&&N.height){let q=v.node(y.v),P={rank:(v.node(y.w).rank-q.rank)/2+q.rank,e:y};t.addDummyNode(v,"edge-proxy",P,"_ep")}})}function k(v){let y=0;v.nodes().forEach(N=>{let q=v.node(N);q.borderTop&&(q.minRank=v.node(q.borderTop).rank,q.maxRank=v.node(q.borderBottom).rank,y=Math.max(y,q.maxRank))}),v.graph().maxRank=y}function R(v){v.nodes().forEach(y=>{let N=v.node(y);N.dummy==="edge-proxy"&&(v.edge(N.e).labelRank=N.rank,v.removeNode(y))})}function T(v){let y=Number.POSITIVE_INFINITY,N=0,q=Number.POSITIVE_INFINITY,M=0,P=v.graph(),G=P.marginx||0,B=P.marginy||0;function ze(W){let V=W.x,H=W.y,Ue=W.width,He=W.height;y=Math.min(y,V-Ue/2),N=Math.max(N,V+Ue/2),q=Math.min(q,H-He/2),M=Math.max(M,H+He/2)}v.nodes().forEach(W=>ze(v.node(W))),v.edges().forEach(W=>{let V=v.edge(W);Object.hasOwn(V,"x")&&ze(V)}),y-=G,q-=B,v.nodes().forEach(W=>{let V=v.node(W);V.x-=y,V.y-=q}),v.edges().forEach(W=>{let V=v.edge(W);V.points.forEach(H=>{H.x-=y,H.y-=q}),Object.hasOwn(V,"x")&&(V.x-=y),Object.hasOwn(V,"y")&&(V.y-=q)}),P.width=N-y+G,P.height=M-q+B}function S(v){v.edges().forEach(y=>{let N=v.edge(y),q=v.node(y.v),M=v.node(y.w),P,G;N.points?(P=N.points[0],G=N.points[N.points.length-1]):(N.points=[],P=M,G=q),N.points.unshift(t.intersectRect(q,P)),N.points.push(t.intersectRect(M,G))})}function D(v){v.edges().forEach(y=>{let N=v.edge(y);if(Object.hasOwn(N,"x"))switch((N.labelpos==="l"||N.labelpos==="r")&&(N.width-=N.labeloffset),N.labelpos){case"l":N.x-=N.width/2+N.labeloffset;break;case"r":N.x+=N.width/2+N.labeloffset;break}})}function z(v){v.edges().forEach(y=>{let N=v.edge(y);N.reversed&&N.points.reverse()})}function U(v){v.nodes().forEach(y=>{if(v.children(y).length){let N=v.node(y),q=v.node(N.borderTop),M=v.node(N.borderBottom),P=v.node(N.borderLeft[N.borderLeft.length-1]),G=v.node(N.borderRight[N.borderRight.length-1]);N.width=Math.abs(G.x-P.x),N.height=Math.abs(M.y-q.y),N.x=P.x+N.width/2,N.y=q.y+N.height/2}}),v.nodes().forEach(y=>{v.node(y).dummy==="border"&&v.removeNode(y)})}function Hr(v){v.edges().forEach(y=>{if(y.v===y.w){var N=v.node(y.v);N.selfEdges||(N.selfEdges=[]),N.selfEdges.push({e:y,label:v.edge(y)}),v.removeEdge(y)}})}function Xr(v){var y=t.buildLayerMatrix(v);y.forEach(N=>{var q=0;N.forEach((M,P)=>{var G=v.node(M);G.order=P+q,(G.selfEdges||[]).forEach(B=>{t.addDummyNode(v,"selfedge",{width:B.label.width,height:B.label.height,rank:G.rank,order:P+ ++q,e:B.e,label:B.label},"_se")}),delete G.selfEdges})})}function Qr(v){v.nodes().forEach(y=>{var N=v.node(y);if(N.dummy==="selfedge"){var q=v.node(N.e.v),M=q.x+q.width/2,P=q.y,G=N.x-M,B=q.height/2;v.setEdge(N.e,N.label),v.removeNode(y),N.label.points=[{x:M+2*G/3,y:P-B},{x:M+5*G/6,y:P-B},{x:M+G,y:P},{x:M+5*G/6,y:P+B},{x:M+2*G/3,y:P+B}],N.label.x=N.x,N.label.y=N.y}})}function Q(v,y){return t.mapValues(t.pick(v,y),Number)}function $(v){var y={};return v&&Object.entries(v).forEach(([N,q])=>{typeof N=="string"&&(N=N.toLowerCase()),y[N]=q}),y}return Ae}var Ve,Gr;function Tt(){if(Gr)return Ve;Gr=1;let _=A(),m=Y().Graph;Ve={debugOrdering:f};function f(u){let a=_.buildLayerMatrix(u),i=new m({compound:!0,multigraph:!0}).setGraph({});return u.nodes().forEach(e=>{i.setNode(e,{label:e}),i.setParent(e,"layer"+u.node(e).rank)}),u.edges().forEach(e=>i.setEdge(e.v,e.w,{},e.name)),a.forEach((e,s)=>{let n="layer"+s;i.setNode(n,{rank:"same"}),e.reduce((o,r)=>(i.setEdge(o,r,{style:"invis"}),r))}),i}return Ve}var Be,Fr;function St(){return Fr||(Fr=1,Be="1.1.8"),Be}var We,Ar;function Mt(){return Ar||(Ar=1,We={graphlib:Y(),layout:Lt(),debug:Tt(),util:{time:A().time,notime:A().notime},version:St()}),We}var Pt=Mt();const Ft=Kr(Pt);export{Ft as d};
|
|
1
|
+
var $r=Object.defineProperty;var Jr=(_,m,f)=>m in _?$r(_,m,{enumerable:!0,configurable:!0,writable:!0,value:f}):_[m]=f;var F=(_,m,f)=>Jr(_,typeof m!="symbol"?m+"":m,f);import{g as Kr}from"./index-DrvFzUJS.js";var J,Xe;function Ye(){if(Xe)return J;Xe=1;var _="\0",m="\0",f="";class u{constructor(r){F(this,"_isDirected",!0);F(this,"_isMultigraph",!1);F(this,"_isCompound",!1);F(this,"_label");F(this,"_defaultNodeLabelFn",()=>{});F(this,"_defaultEdgeLabelFn",()=>{});F(this,"_nodes",{});F(this,"_in",{});F(this,"_preds",{});F(this,"_out",{});F(this,"_sucs",{});F(this,"_edgeObjs",{});F(this,"_edgeLabels",{});F(this,"_nodeCount",0);F(this,"_edgeCount",0);F(this,"_parent");F(this,"_children");r&&(this._isDirected=Object.hasOwn(r,"directed")?r.directed:!0,this._isMultigraph=Object.hasOwn(r,"multigraph")?r.multigraph:!1,this._isCompound=Object.hasOwn(r,"compound")?r.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[m]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(r){return this._label=r,this}graph(){return this._label}setDefaultNodeLabel(r){return this._defaultNodeLabelFn=r,typeof r!="function"&&(this._defaultNodeLabelFn=()=>r),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var r=this;return this.nodes().filter(t=>Object.keys(r._in[t]).length===0)}sinks(){var r=this;return this.nodes().filter(t=>Object.keys(r._out[t]).length===0)}setNodes(r,t){var d=arguments,l=this;return r.forEach(function(w){d.length>1?l.setNode(w,t):l.setNode(w)}),this}setNode(r,t){return Object.hasOwn(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=t),this):(this._nodes[r]=arguments.length>1?t:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=m,this._children[r]={},this._children[m][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)}node(r){return this._nodes[r]}hasNode(r){return Object.hasOwn(this._nodes,r)}removeNode(r){var t=this;if(Object.hasOwn(this._nodes,r)){var d=l=>t.removeEdge(t._edgeObjs[l]);delete this._nodes[r],this._isCompound&&(this._removeFromParentsChildList(r),delete this._parent[r],this.children(r).forEach(function(l){t.setParent(l)}),delete this._children[r]),Object.keys(this._in[r]).forEach(d),delete this._in[r],delete this._preds[r],Object.keys(this._out[r]).forEach(d),delete this._out[r],delete this._sucs[r],--this._nodeCount}return this}setParent(r,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t=m;else{t+="";for(var d=t;d!==void 0;d=this.parent(d))if(d===r)throw new Error("Setting "+t+" as parent of "+r+" would create a cycle");this.setNode(t)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=t,this._children[t][r]=!0,this}_removeFromParentsChildList(r){delete this._children[this._parent[r]][r]}parent(r){if(this._isCompound){var t=this._parent[r];if(t!==m)return t}}children(r=m){if(this._isCompound){var t=this._children[r];if(t)return Object.keys(t)}else{if(r===m)return this.nodes();if(this.hasNode(r))return[]}}predecessors(r){var t=this._preds[r];if(t)return Object.keys(t)}successors(r){var t=this._sucs[r];if(t)return Object.keys(t)}neighbors(r){var t=this.predecessors(r);if(t){const l=new Set(t);for(var d of this.successors(r))l.add(d);return Array.from(l.values())}}isLeaf(r){var t;return this.isDirected()?t=this.successors(r):t=this.neighbors(r),t.length===0}filterNodes(r){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var d=this;Object.entries(this._nodes).forEach(function([x,c]){r(x)&&t.setNode(x,c)}),Object.values(this._edgeObjs).forEach(function(x){t.hasNode(x.v)&&t.hasNode(x.w)&&t.setEdge(x,d.edge(x))});var l={};function w(x){var c=d.parent(x);return c===void 0||t.hasNode(c)?(l[x]=c,c):c in l?l[c]:w(c)}return this._isCompound&&t.nodes().forEach(x=>t.setParent(x,w(x))),t}setDefaultEdgeLabel(r){return this._defaultEdgeLabelFn=r,typeof r!="function"&&(this._defaultEdgeLabelFn=()=>r),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(r,t){var d=this,l=arguments;return r.reduce(function(w,x){return l.length>1?d.setEdge(w,x,t):d.setEdge(w,x),x}),this}setEdge(){var r,t,d,l,w=!1,x=arguments[0];typeof x=="object"&&x!==null&&"v"in x?(r=x.v,t=x.w,d=x.name,arguments.length===2&&(l=arguments[1],w=!0)):(r=x,t=arguments[1],d=arguments[3],arguments.length>2&&(l=arguments[2],w=!0)),r=""+r,t=""+t,d!==void 0&&(d=""+d);var c=e(this._isDirected,r,t,d);if(Object.hasOwn(this._edgeLabels,c))return w&&(this._edgeLabels[c]=l),this;if(d!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(t),this._edgeLabels[c]=w?l:this._defaultEdgeLabelFn(r,t,d);var g=s(this._isDirected,r,t,d);return r=g.v,t=g.w,Object.freeze(g),this._edgeObjs[c]=g,a(this._preds[t],r),a(this._sucs[r],t),this._in[t][c]=g,this._out[r][c]=g,this._edgeCount++,this}edge(r,t,d){var l=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,d);return this._edgeLabels[l]}edgeAsObj(){const r=this.edge(...arguments);return typeof r!="object"?{label:r}:r}hasEdge(r,t,d){var l=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,d);return Object.hasOwn(this._edgeLabels,l)}removeEdge(r,t,d){var l=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,d),w=this._edgeObjs[l];return w&&(r=w.v,t=w.w,delete this._edgeLabels[l],delete this._edgeObjs[l],i(this._preds[t],r),i(this._sucs[r],t),delete this._in[t][l],delete this._out[r][l],this._edgeCount--),this}inEdges(r,t){var d=this._in[r];if(d){var l=Object.values(d);return t?l.filter(w=>w.v===t):l}}outEdges(r,t){var d=this._out[r];if(d){var l=Object.values(d);return t?l.filter(w=>w.w===t):l}}nodeEdges(r,t){var d=this.inEdges(r,t);if(d)return d.concat(this.outEdges(r,t))}}function a(o,r){o[r]?o[r]++:o[r]=1}function i(o,r){--o[r]||delete o[r]}function e(o,r,t,d){var l=""+r,w=""+t;if(!o&&l>w){var x=l;l=w,w=x}return l+f+w+f+(d===void 0?_:d)}function s(o,r,t,d){var l=""+r,w=""+t;if(!o&&l>w){var x=l;l=w,w=x}var c={v:l,w};return d&&(c.name=d),c}function n(o,r){return e(o,r.v,r.w,r.name)}return J=u,J}var K,Qe;function Zr(){return Qe||(Qe=1,K="2.2.4"),K}var Z,$e;function et(){return $e||($e=1,Z={Graph:Ye(),version:Zr()}),Z}var ee,Je;function rt(){if(Je)return ee;Je=1;var _=Ye();ee={write:m,read:a};function m(i){var e={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:f(i),edges:u(i)};return i.graph()!==void 0&&(e.value=structuredClone(i.graph())),e}function f(i){return i.nodes().map(function(e){var s=i.node(e),n=i.parent(e),o={v:e};return s!==void 0&&(o.value=s),n!==void 0&&(o.parent=n),o})}function u(i){return i.edges().map(function(e){var s=i.edge(e),n={v:e.v,w:e.w};return e.name!==void 0&&(n.name=e.name),s!==void 0&&(n.value=s),n})}function a(i){var e=new _(i.options).setGraph(i.value);return i.nodes.forEach(function(s){e.setNode(s.v,s.value),s.parent&&e.setParent(s.v,s.parent)}),i.edges.forEach(function(s){e.setEdge({v:s.v,w:s.w,name:s.name},s.value)}),e}return ee}var re,Ke;function tt(){if(Ke)return re;Ke=1,re=_;function _(m){var f={},u=[],a;function i(e){Object.hasOwn(f,e)||(f[e]=!0,a.push(e),m.successors(e).forEach(i),m.predecessors(e).forEach(i))}return m.nodes().forEach(function(e){a=[],i(e),a.length&&u.push(a)}),u}return re}var te,Ze;function Vr(){if(Ze)return te;Ze=1;class _{constructor(){F(this,"_arr",[]);F(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(f){return f.key})}has(f){return Object.hasOwn(this._keyIndices,f)}priority(f){var u=this._keyIndices[f];if(u!==void 0)return this._arr[u].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(f,u){var a=this._keyIndices;if(f=String(f),!Object.hasOwn(a,f)){var i=this._arr,e=i.length;return a[f]=e,i.push({key:f,priority:u}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var f=this._arr.pop();return delete this._keyIndices[f.key],this._heapify(0),f.key}decrease(f,u){var a=this._keyIndices[f];if(u>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+f+" Old: "+this._arr[a].priority+" New: "+u);this._arr[a].priority=u,this._decrease(a)}_heapify(f){var u=this._arr,a=2*f,i=a+1,e=f;a<u.length&&(e=u[a].priority<u[e].priority?a:e,i<u.length&&(e=u[i].priority<u[e].priority?i:e),e!==f&&(this._swap(f,e),this._heapify(e)))}_decrease(f){for(var u=this._arr,a=u[f].priority,i;f!==0&&(i=f>>1,!(u[i].priority<a));)this._swap(f,i),f=i}_swap(f,u){var a=this._arr,i=this._keyIndices,e=a[f],s=a[u];a[f]=s,a[u]=e,i[s.key]=f,i[e.key]=u}}return te=_,te}var ne,er;function Br(){if(er)return ne;er=1;var _=Vr();ne=f;var m=()=>1;function f(a,i,e,s){return u(a,String(i),e||m,s||function(n){return a.outEdges(n)})}function u(a,i,e,s){var n={},o=new _,r,t,d=function(l){var w=l.v!==r?l.v:l.w,x=n[w],c=e(l),g=t.distance+c;if(c<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+l+" Weight: "+c);g<x.distance&&(x.distance=g,x.predecessor=r,o.decrease(w,g))};for(a.nodes().forEach(function(l){var w=l===i?0:Number.POSITIVE_INFINITY;n[l]={distance:w},o.add(l,w)});o.size()>0&&(r=o.removeMin(),t=n[r],t.distance!==Number.POSITIVE_INFINITY);)s(r).forEach(d);return n}return ne}var ie,rr;function nt(){if(rr)return ie;rr=1;var _=Br();ie=m;function m(f,u,a){return f.nodes().reduce(function(i,e){return i[e]=_(f,e,u,a),i},{})}return ie}var ae,tr;function Wr(){if(tr)return ae;tr=1,ae=_;function _(m){var f=0,u=[],a={},i=[];function e(s){var n=a[s]={onStack:!0,lowlink:f,index:f++};if(u.push(s),m.successors(s).forEach(function(t){Object.hasOwn(a,t)?a[t].onStack&&(n.lowlink=Math.min(n.lowlink,a[t].index)):(e(t),n.lowlink=Math.min(n.lowlink,a[t].lowlink))}),n.lowlink===n.index){var o=[],r;do r=u.pop(),a[r].onStack=!1,o.push(r);while(s!==r);i.push(o)}}return m.nodes().forEach(function(s){Object.hasOwn(a,s)||e(s)}),i}return ae}var se,nr;function it(){if(nr)return se;nr=1;var _=Wr();se=m;function m(f){return _(f).filter(function(u){return u.length>1||u.length===1&&f.hasEdge(u[0],u[0])})}return se}var oe,ir;function at(){if(ir)return oe;ir=1,oe=m;var _=()=>1;function m(u,a,i){return f(u,a||_,i||function(e){return u.outEdges(e)})}function f(u,a,i){var e={},s=u.nodes();return s.forEach(function(n){e[n]={},e[n][n]={distance:0},s.forEach(function(o){n!==o&&(e[n][o]={distance:Number.POSITIVE_INFINITY})}),i(n).forEach(function(o){var r=o.v===n?o.w:o.v,t=a(o);e[n][r]={distance:t,predecessor:n}})}),s.forEach(function(n){var o=e[n];s.forEach(function(r){var t=e[r];s.forEach(function(d){var l=t[n],w=o[d],x=t[d],c=l.distance+w.distance;c<x.distance&&(x.distance=c,x.predecessor=w.predecessor)})})}),e}return oe}var ue,ar;function Yr(){if(ar)return ue;ar=1;function _(f){var u={},a={},i=[];function e(s){if(Object.hasOwn(a,s))throw new m;Object.hasOwn(u,s)||(a[s]=!0,u[s]=!0,f.predecessors(s).forEach(e),delete a[s],i.push(s))}if(f.sinks().forEach(e),Object.keys(u).length!==f.nodeCount())throw new m;return i}class m extends Error{constructor(){super(...arguments)}}return ue=_,_.CycleException=m,ue}var de,sr;function st(){if(sr)return de;sr=1;var _=Yr();de=m;function m(f){try{_(f)}catch(u){if(u instanceof _.CycleException)return!1;throw u}return!0}return de}var le,or;function zr(){if(or)return le;or=1,le=_;function _(a,i,e){Array.isArray(i)||(i=[i]);var s=a.isDirected()?t=>a.successors(t):t=>a.neighbors(t),n=e==="post"?m:f,o=[],r={};return i.forEach(t=>{if(!a.hasNode(t))throw new Error("Graph does not have node: "+t);n(t,s,r,o)}),o}function m(a,i,e,s){for(var n=[[a,!1]];n.length>0;){var o=n.pop();o[1]?s.push(o[0]):Object.hasOwn(e,o[0])||(e[o[0]]=!0,n.push([o[0],!0]),u(i(o[0]),r=>n.push([r,!1])))}}function f(a,i,e,s){for(var n=[a];n.length>0;){var o=n.pop();Object.hasOwn(e,o)||(e[o]=!0,s.push(o),u(i(o),r=>n.push(r)))}}function u(a,i){for(var e=a.length;e--;)i(a[e],e,a);return a}return le}var he,ur;function ot(){if(ur)return he;ur=1;var _=zr();he=m;function m(f,u){return _(f,u,"post")}return he}var fe,dr;function ut(){if(dr)return fe;dr=1;var _=zr();fe=m;function m(f,u){return _(f,u,"pre")}return fe}var ce,lr;function dt(){if(lr)return ce;lr=1;var _=Ye(),m=Vr();ce=f;function f(u,a){var i=new _,e={},s=new m,n;function o(t){var d=t.v===n?t.w:t.v,l=s.priority(d);if(l!==void 0){var w=a(t);w<l&&(e[d]=n,s.decrease(d,w))}}if(u.nodeCount()===0)return i;u.nodes().forEach(function(t){s.add(t,Number.POSITIVE_INFINITY),i.setNode(t)}),s.decrease(u.nodes()[0],0);for(var r=!1;s.size()>0;){if(n=s.removeMin(),Object.hasOwn(e,n))i.setEdge(n,e[n]);else{if(r)throw new Error("Input graph is not connected: "+u);r=!0}u.nodeEdges(n).forEach(o)}return i}return ce}var pe,hr;function lt(){return hr||(hr=1,pe={components:tt(),dijkstra:Br(),dijkstraAll:nt(),findCycles:it(),floydWarshall:at(),isAcyclic:st(),postorder:ot(),preorder:ut(),prim:dt(),tarjan:Wr(),topsort:Yr()}),pe}var me,fr;function Y(){if(fr)return me;fr=1;var _=et();return me={Graph:_.Graph,json:rt(),alg:lt(),version:_.version},me}var be,cr;function ht(){if(cr)return be;cr=1;class _{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,i=a._prev;if(i!==a)return m(i),i}enqueue(a){let i=this._sentinel;a._prev&&a._next&&m(a),a._next=i._next,i._next._prev=a,i._next=a,a._prev=i}toString(){let a=[],i=this._sentinel,e=i._prev;for(;e!==i;)a.push(JSON.stringify(e,f)),e=e._prev;return"["+a.join(", ")+"]"}}function m(u){u._prev._next=u._next,u._next._prev=u._prev,delete u._next,delete u._prev}function f(u,a){if(u!=="_next"&&u!=="_prev")return a}return be=_,be}var ve,pr;function ft(){if(pr)return ve;pr=1;let _=Y().Graph,m=ht();ve=u;let f=()=>1;function u(o,r){if(o.nodeCount()<=1)return[];let t=e(o,r||f);return a(t.graph,t.buckets,t.zeroIdx).flatMap(l=>o.outEdges(l.v,l.w))}function a(o,r,t){let d=[],l=r[r.length-1],w=r[0],x;for(;o.nodeCount();){for(;x=w.dequeue();)i(o,r,t,x);for(;x=l.dequeue();)i(o,r,t,x);if(o.nodeCount()){for(let c=r.length-2;c>0;--c)if(x=r[c].dequeue(),x){d=d.concat(i(o,r,t,x,!0));break}}}return d}function i(o,r,t,d,l){let w=l?[]:void 0;return o.inEdges(d.v).forEach(x=>{let c=o.edge(x),g=o.node(x.v);l&&w.push({v:x.v,w:x.w}),g.out-=c,s(r,t,g)}),o.outEdges(d.v).forEach(x=>{let c=o.edge(x),g=x.w,p=o.node(g);p.in-=c,s(r,t,p)}),o.removeNode(d.v),w}function e(o,r){let t=new _,d=0,l=0;o.nodes().forEach(c=>{t.setNode(c,{v:c,in:0,out:0})}),o.edges().forEach(c=>{let g=t.edge(c.v,c.w)||0,p=r(c),O=g+p;t.setEdge(c.v,c.w,O),l=Math.max(l,t.node(c.v).out+=p),d=Math.max(d,t.node(c.w).in+=p)});let w=n(l+d+3).map(()=>new m),x=d+1;return t.nodes().forEach(c=>{s(w,x,t.node(c))}),{graph:t,buckets:w,zeroIdx:x}}function s(o,r,t){t.out?t.in?o[t.out-t.in+r].enqueue(t):o[o.length-1].enqueue(t):o[0].enqueue(t)}function n(o){const r=[];for(let t=0;t<o;t++)r.push(t);return r}return ve}var we,mr;function A(){if(mr)return we;mr=1;let _=Y().Graph;we={addBorderNode:r,addDummyNode:m,applyWithChunking:l,asNonCompoundGraph:u,buildLayerMatrix:s,intersectRect:e,mapValues:j,maxRank:w,normalizeRanks:n,notime:g,partition:x,pick:I,predecessorWeights:i,range:C,removeEmptyRanks:o,simplify:f,successorWeights:a,time:c,uniqueId:O,zipObject:L};function m(h,b,E,k){for(var R=k;h.hasNode(R);)R=O(k);return E.dummy=b,h.setNode(R,E),R}function f(h){let b=new _().setGraph(h.graph());return h.nodes().forEach(E=>b.setNode(E,h.node(E))),h.edges().forEach(E=>{let k=b.edge(E.v,E.w)||{weight:0,minlen:1},R=h.edge(E);b.setEdge(E.v,E.w,{weight:k.weight+R.weight,minlen:Math.max(k.minlen,R.minlen)})}),b}function u(h){let b=new _({multigraph:h.isMultigraph()}).setGraph(h.graph());return h.nodes().forEach(E=>{h.children(E).length||b.setNode(E,h.node(E))}),h.edges().forEach(E=>{b.setEdge(E,h.edge(E))}),b}function a(h){let b=h.nodes().map(E=>{let k={};return h.outEdges(E).forEach(R=>{k[R.w]=(k[R.w]||0)+h.edge(R).weight}),k});return L(h.nodes(),b)}function i(h){let b=h.nodes().map(E=>{let k={};return h.inEdges(E).forEach(R=>{k[R.v]=(k[R.v]||0)+h.edge(R).weight}),k});return L(h.nodes(),b)}function e(h,b){let E=h.x,k=h.y,R=b.x-E,T=b.y-k,S=h.width/2,D=h.height/2;if(!R&&!T)throw new Error("Not possible to find intersection inside of the rectangle");let z,U;return Math.abs(T)*S>Math.abs(R)*D?(T<0&&(D=-D),z=D*R/T,U=D):(R<0&&(S=-S),z=S,U=S*T/R),{x:E+z,y:k+U}}function s(h){let b=C(w(h)+1).map(()=>[]);return h.nodes().forEach(E=>{let k=h.node(E),R=k.rank;R!==void 0&&(b[R][k.order]=E)}),b}function n(h){let b=h.nodes().map(k=>{let R=h.node(k).rank;return R===void 0?Number.MAX_VALUE:R}),E=l(Math.min,b);h.nodes().forEach(k=>{let R=h.node(k);Object.hasOwn(R,"rank")&&(R.rank-=E)})}function o(h){let b=h.nodes().map(S=>h.node(S).rank),E=l(Math.min,b),k=[];h.nodes().forEach(S=>{let D=h.node(S).rank-E;k[D]||(k[D]=[]),k[D].push(S)});let R=0,T=h.graph().nodeRankFactor;Array.from(k).forEach((S,D)=>{S===void 0&&D%T!==0?--R:S!==void 0&&R&&S.forEach(z=>h.node(z).rank+=R)})}function r(h,b,E,k){let R={width:0,height:0};return arguments.length>=4&&(R.rank=E,R.order=k),m(h,"border",R,b)}function t(h,b=d){const E=[];for(let k=0;k<h.length;k+=b){const R=h.slice(k,k+b);E.push(R)}return E}const d=65535;function l(h,b){if(b.length>d){const E=t(b);return h.apply(null,E.map(k=>h.apply(null,k)))}else return h.apply(null,b)}function w(h){const E=h.nodes().map(k=>{let R=h.node(k).rank;return R===void 0?Number.MIN_VALUE:R});return l(Math.max,E)}function x(h,b){let E={lhs:[],rhs:[]};return h.forEach(k=>{b(k)?E.lhs.push(k):E.rhs.push(k)}),E}function c(h,b){let E=Date.now();try{return b()}finally{console.log(h+" time: "+(Date.now()-E)+"ms")}}function g(h,b){return b()}let p=0;function O(h){var b=++p;return h+(""+b)}function C(h,b,E=1){b==null&&(b=h,h=0);let k=T=>T<b;E<0&&(k=T=>b<T);const R=[];for(let T=h;k(T);T+=E)R.push(T);return R}function I(h,b){const E={};for(const k of b)h[k]!==void 0&&(E[k]=h[k]);return E}function j(h,b){let E=b;return typeof b=="string"&&(E=k=>k[b]),Object.entries(h).reduce((k,[R,T])=>(k[R]=E(T,R),k),{})}function L(h,b){return h.reduce((E,k,R)=>(E[k]=b[R],E),{})}return we}var ge,br;function ct(){if(br)return ge;br=1;let _=ft(),m=A().uniqueId;ge={run:f,undo:a};function f(i){(i.graph().acyclicer==="greedy"?_(i,s(i)):u(i)).forEach(n=>{let o=i.edge(n);i.removeEdge(n),o.forwardName=n.name,o.reversed=!0,i.setEdge(n.w,n.v,o,m("rev"))});function s(n){return o=>n.edge(o).weight}}function u(i){let e=[],s={},n={};function o(r){Object.hasOwn(n,r)||(n[r]=!0,s[r]=!0,i.outEdges(r).forEach(t=>{Object.hasOwn(s,t.w)?e.push(t):o(t.w)}),delete s[r])}return i.nodes().forEach(o),e}function a(i){i.edges().forEach(e=>{let s=i.edge(e);if(s.reversed){i.removeEdge(e);let n=s.forwardName;delete s.reversed,delete s.forwardName,i.setEdge(e.w,e.v,s,n)}})}return ge}var Ee,vr;function pt(){if(vr)return Ee;vr=1;let _=A();Ee={run:m,undo:u};function m(a){a.graph().dummyChains=[],a.edges().forEach(i=>f(a,i))}function f(a,i){let e=i.v,s=a.node(e).rank,n=i.w,o=a.node(n).rank,r=i.name,t=a.edge(i),d=t.labelRank;if(o===s+1)return;a.removeEdge(i);let l,w,x;for(x=0,++s;s<o;++x,++s)t.points=[],w={width:0,height:0,edgeLabel:t,edgeObj:i,rank:s},l=_.addDummyNode(a,"edge",w,"_d"),s===d&&(w.width=t.width,w.height=t.height,w.dummy="edge-label",w.labelpos=t.labelpos),a.setEdge(e,l,{weight:t.weight},r),x===0&&a.graph().dummyChains.push(l),e=l;a.setEdge(e,n,{weight:t.weight},r)}function u(a){a.graph().dummyChains.forEach(i=>{let e=a.node(i),s=e.edgeLabel,n;for(a.setEdge(e.edgeObj,s);e.dummy;)n=a.successors(i)[0],a.removeNode(i),s.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(s.x=e.x,s.y=e.y,s.width=e.width,s.height=e.height),i=n,e=a.node(i)})}return Ee}var _e,wr;function X(){if(wr)return _e;wr=1;const{applyWithChunking:_}=A();_e={longestPath:m,slack:f};function m(u){var a={};function i(e){var s=u.node(e);if(Object.hasOwn(a,e))return s.rank;a[e]=!0;let n=u.outEdges(e).map(r=>r==null?Number.POSITIVE_INFINITY:i(r.w)-u.edge(r).minlen);var o=_(Math.min,n);return o===Number.POSITIVE_INFINITY&&(o=0),s.rank=o}u.sources().forEach(i)}function f(u,a){return u.node(a.w).rank-u.node(a.v).rank-u.edge(a).minlen}return _e}var ye,gr;function Ur(){if(gr)return ye;gr=1;var _=Y().Graph,m=X().slack;ye=f;function f(e){var s=new _({directed:!1}),n=e.nodes()[0],o=e.nodeCount();s.setNode(n,{});for(var r,t;u(s,e)<o;)r=a(s,e),t=s.hasNode(r.v)?m(e,r):-m(e,r),i(s,e,t);return s}function u(e,s){function n(o){s.nodeEdges(o).forEach(r=>{var t=r.v,d=o===t?r.w:t;!e.hasNode(d)&&!m(s,r)&&(e.setNode(d,{}),e.setEdge(o,d,{}),n(d))})}return e.nodes().forEach(n),e.nodeCount()}function a(e,s){return s.edges().reduce((o,r)=>{let t=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(t=m(s,r)),t<o[0]?[t,r]:o},[Number.POSITIVE_INFINITY,null])[1]}function i(e,s,n){e.nodes().forEach(o=>s.node(o).rank+=n)}return ye}var ke,Er;function mt(){if(Er)return ke;Er=1;var _=Ur(),m=X().slack,f=X().longestPath,u=Y().alg.preorder,a=Y().alg.postorder,i=A().simplify;ke=e,e.initLowLimValues=r,e.initCutValues=s,e.calcCutValue=o,e.leaveEdge=d,e.enterEdge=l,e.exchangeEdges=w;function e(p){p=i(p),f(p);var O=_(p);r(O),s(O,p);for(var C,I;C=d(O);)I=l(O,p,C),w(O,p,C,I)}function s(p,O){var C=a(p,p.nodes());C=C.slice(0,C.length-1),C.forEach(I=>n(p,O,I))}function n(p,O,C){var I=p.node(C),j=I.parent;p.edge(C,j).cutvalue=o(p,O,C)}function o(p,O,C){var I=p.node(C),j=I.parent,L=!0,h=O.edge(C,j),b=0;return h||(L=!1,h=O.edge(j,C)),b=h.weight,O.nodeEdges(C).forEach(E=>{var k=E.v===C,R=k?E.w:E.v;if(R!==j){var T=k===L,S=O.edge(E).weight;if(b+=T?S:-S,c(p,C,R)){var D=p.edge(C,R).cutvalue;b+=T?-D:D}}}),b}function r(p,O){arguments.length<2&&(O=p.nodes()[0]),t(p,{},1,O)}function t(p,O,C,I,j){var L=C,h=p.node(I);return O[I]=!0,p.neighbors(I).forEach(b=>{Object.hasOwn(O,b)||(C=t(p,O,C,b,I))}),h.low=L,h.lim=C++,j?h.parent=j:delete h.parent,C}function d(p){return p.edges().find(O=>p.edge(O).cutvalue<0)}function l(p,O,C){var I=C.v,j=C.w;O.hasEdge(I,j)||(I=C.w,j=C.v);var L=p.node(I),h=p.node(j),b=L,E=!1;L.lim>h.lim&&(b=h,E=!0);var k=O.edges().filter(R=>E===g(p,p.node(R.v),b)&&E!==g(p,p.node(R.w),b));return k.reduce((R,T)=>m(O,T)<m(O,R)?T:R)}function w(p,O,C,I){var j=C.v,L=C.w;p.removeEdge(j,L),p.setEdge(I.v,I.w,{}),r(p),s(p,O),x(p,O)}function x(p,O){var C=p.nodes().find(j=>!O.node(j).parent),I=u(p,C);I=I.slice(1),I.forEach(j=>{var L=p.node(j).parent,h=O.edge(j,L),b=!1;h||(h=O.edge(L,j),b=!0),O.node(j).rank=O.node(L).rank+(b?h.minlen:-h.minlen)})}function c(p,O,C){return p.hasEdge(O,C)}function g(p,O,C){return C.low<=O.lim&&O.lim<=C.lim}return ke}var Oe,_r;function bt(){if(_r)return Oe;_r=1;var _=X(),m=_.longestPath,f=Ur(),u=mt();Oe=a;function a(n){var o=n.graph().ranker;if(o instanceof Function)return o(n);switch(n.graph().ranker){case"network-simplex":s(n);break;case"tight-tree":e(n);break;case"longest-path":i(n);break;case"none":break;default:s(n)}}var i=m;function e(n){m(n),f(n)}function s(n){u(n)}return Oe}var Ne,yr;function vt(){if(yr)return Ne;yr=1,Ne=_;function _(u){let a=f(u);u.graph().dummyChains.forEach(i=>{let e=u.node(i),s=e.edgeObj,n=m(u,a,s.v,s.w),o=n.path,r=n.lca,t=0,d=o[t],l=!0;for(;i!==s.w;){if(e=u.node(i),l){for(;(d=o[t])!==r&&u.node(d).maxRank<e.rank;)t++;d===r&&(l=!1)}if(!l){for(;t<o.length-1&&u.node(d=o[t+1]).minRank<=e.rank;)t++;d=o[t]}u.setParent(i,d),i=u.successors(i)[0]}})}function m(u,a,i,e){let s=[],n=[],o=Math.min(a[i].low,a[e].low),r=Math.max(a[i].lim,a[e].lim),t,d;t=i;do t=u.parent(t),s.push(t);while(t&&(a[t].low>o||r>a[t].lim));for(d=t,t=e;(t=u.parent(t))!==d;)n.push(t);return{path:s.concat(n.reverse()),lca:d}}function f(u){let a={},i=0;function e(s){let n=i;u.children(s).forEach(e),a[s]={low:n,lim:i++}}return u.children().forEach(e),a}return Ne}var Ce,kr;function wt(){if(kr)return Ce;kr=1;let _=A();Ce={run:m,cleanup:i};function m(e){let s=_.addDummyNode(e,"root",{},"_root"),n=u(e),o=Object.values(n),r=_.applyWithChunking(Math.max,o)-1,t=2*r+1;e.graph().nestingRoot=s,e.edges().forEach(l=>e.edge(l).minlen*=t);let d=a(e)+1;e.children().forEach(l=>f(e,s,t,d,r,n,l)),e.graph().nodeRankFactor=t}function f(e,s,n,o,r,t,d){let l=e.children(d);if(!l.length){d!==s&&e.setEdge(s,d,{weight:0,minlen:n});return}let w=_.addBorderNode(e,"_bt"),x=_.addBorderNode(e,"_bb"),c=e.node(d);e.setParent(w,d),c.borderTop=w,e.setParent(x,d),c.borderBottom=x,l.forEach(g=>{f(e,s,n,o,r,t,g);let p=e.node(g),O=p.borderTop?p.borderTop:g,C=p.borderBottom?p.borderBottom:g,I=p.borderTop?o:2*o,j=O!==C?1:r-t[d]+1;e.setEdge(w,O,{weight:I,minlen:j,nestingEdge:!0}),e.setEdge(C,x,{weight:I,minlen:j,nestingEdge:!0})}),e.parent(d)||e.setEdge(s,w,{weight:0,minlen:r+t[d]})}function u(e){var s={};function n(o,r){var t=e.children(o);t&&t.length&&t.forEach(d=>n(d,r+1)),s[o]=r}return e.children().forEach(o=>n(o,1)),s}function a(e){return e.edges().reduce((s,n)=>s+e.edge(n).weight,0)}function i(e){var s=e.graph();e.removeNode(s.nestingRoot),delete s.nestingRoot,e.edges().forEach(n=>{var o=e.edge(n);o.nestingEdge&&e.removeEdge(n)})}return Ce}var xe,Or;function gt(){if(Or)return xe;Or=1;let _=A();xe=m;function m(u){function a(i){let e=u.children(i),s=u.node(i);if(e.length&&e.forEach(a),Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let n=s.minRank,o=s.maxRank+1;n<o;++n)f(u,"borderLeft","_bl",i,s,n),f(u,"borderRight","_br",i,s,n)}}u.children().forEach(a)}function f(u,a,i,e,s,n){let o={width:0,height:0,rank:n,borderType:a},r=s[a][n-1],t=_.addDummyNode(u,"border",o,i);s[a][n]=t,u.setParent(t,e),r&&u.setEdge(r,t,{weight:1})}return xe}var Re,Nr;function Et(){if(Nr)return Re;Nr=1,Re={adjust:_,undo:m};function _(n){let o=n.graph().rankdir.toLowerCase();(o==="lr"||o==="rl")&&f(n)}function m(n){let o=n.graph().rankdir.toLowerCase();(o==="bt"||o==="rl")&&a(n),(o==="lr"||o==="rl")&&(e(n),f(n))}function f(n){n.nodes().forEach(o=>u(n.node(o))),n.edges().forEach(o=>u(n.edge(o)))}function u(n){let o=n.width;n.width=n.height,n.height=o}function a(n){n.nodes().forEach(o=>i(n.node(o))),n.edges().forEach(o=>{let r=n.edge(o);r.points.forEach(i),Object.hasOwn(r,"y")&&i(r)})}function i(n){n.y=-n.y}function e(n){n.nodes().forEach(o=>s(n.node(o))),n.edges().forEach(o=>{let r=n.edge(o);r.points.forEach(s),Object.hasOwn(r,"x")&&s(r)})}function s(n){let o=n.x;n.x=n.y,n.y=o}return Re}var Ie,Cr;function _t(){if(Cr)return Ie;Cr=1;let _=A();Ie=m;function m(f){let u={},a=f.nodes().filter(r=>!f.children(r).length),i=a.map(r=>f.node(r).rank),e=_.applyWithChunking(Math.max,i),s=_.range(e+1).map(()=>[]);function n(r){if(u[r])return;u[r]=!0;let t=f.node(r);s[t.rank].push(r),f.successors(r).forEach(n)}return a.sort((r,t)=>f.node(r).rank-f.node(t).rank).forEach(n),s}return Ie}var je,xr;function yt(){if(xr)return je;xr=1;let _=A().zipObject;je=m;function m(u,a){let i=0;for(let e=1;e<a.length;++e)i+=f(u,a[e-1],a[e]);return i}function f(u,a,i){let e=_(i,i.map((d,l)=>l)),s=a.flatMap(d=>u.outEdges(d).map(l=>({pos:e[l.w],weight:u.edge(l).weight})).sort((l,w)=>l.pos-w.pos)),n=1;for(;n<i.length;)n<<=1;let o=2*n-1;n-=1;let r=new Array(o).fill(0),t=0;return s.forEach(d=>{let l=d.pos+n;r[l]+=d.weight;let w=0;for(;l>0;)l%2&&(w+=r[l+1]),l=l-1>>1,r[l]+=d.weight;t+=d.weight*w}),t}return je}var qe,Rr;function kt(){if(Rr)return qe;Rr=1,qe=_;function _(m,f=[]){return f.map(u=>{let a=m.inEdges(u);if(a.length){let i=a.reduce((e,s)=>{let n=m.edge(s),o=m.node(s.v);return{sum:e.sum+n.weight*o.order,weight:e.weight+n.weight}},{sum:0,weight:0});return{v:u,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:u}})}return qe}var Le,Ir;function Ot(){if(Ir)return Le;Ir=1;let _=A();Le=m;function m(a,i){let e={};a.forEach((n,o)=>{let r=e[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:o};n.barycenter!==void 0&&(r.barycenter=n.barycenter,r.weight=n.weight)}),i.edges().forEach(n=>{let o=e[n.v],r=e[n.w];o!==void 0&&r!==void 0&&(r.indegree++,o.out.push(e[n.w]))});let s=Object.values(e).filter(n=>!n.indegree);return f(s)}function f(a){let i=[];function e(n){return o=>{o.merged||(o.barycenter===void 0||n.barycenter===void 0||o.barycenter>=n.barycenter)&&u(n,o)}}function s(n){return o=>{o.in.push(n),--o.indegree===0&&a.push(o)}}for(;a.length;){let n=a.pop();i.push(n),n.in.reverse().forEach(e(n)),n.out.forEach(s(n))}return i.filter(n=>!n.merged).map(n=>_.pick(n,["vs","i","barycenter","weight"]))}function u(a,i){let e=0,s=0;a.weight&&(e+=a.barycenter*a.weight,s+=a.weight),i.weight&&(e+=i.barycenter*i.weight,s+=i.weight),a.vs=i.vs.concat(a.vs),a.barycenter=e/s,a.weight=s,a.i=Math.min(i.i,a.i),i.merged=!0}return Le}var Te,jr;function Nt(){if(jr)return Te;jr=1;let _=A();Te=m;function m(a,i){let e=_.partition(a,w=>Object.hasOwn(w,"barycenter")),s=e.lhs,n=e.rhs.sort((w,x)=>x.i-w.i),o=[],r=0,t=0,d=0;s.sort(u(!!i)),d=f(o,n,d),s.forEach(w=>{d+=w.vs.length,o.push(w.vs),r+=w.barycenter*w.weight,t+=w.weight,d=f(o,n,d)});let l={vs:o.flat(!0)};return t&&(l.barycenter=r/t,l.weight=t),l}function f(a,i,e){let s;for(;i.length&&(s=i[i.length-1]).i<=e;)i.pop(),a.push(s.vs),e++;return e}function u(a){return(i,e)=>i.barycenter<e.barycenter?-1:i.barycenter>e.barycenter?1:a?e.i-i.i:i.i-e.i}return Te}var Se,qr;function Ct(){if(qr)return Se;qr=1;let _=kt(),m=Ot(),f=Nt();Se=u;function u(e,s,n,o){let r=e.children(s),t=e.node(s),d=t?t.borderLeft:void 0,l=t?t.borderRight:void 0,w={};d&&(r=r.filter(p=>p!==d&&p!==l));let x=_(e,r);x.forEach(p=>{if(e.children(p.v).length){let O=u(e,p.v,n,o);w[p.v]=O,Object.hasOwn(O,"barycenter")&&i(p,O)}});let c=m(x,n);a(c,w);let g=f(c,o);if(d&&(g.vs=[d,g.vs,l].flat(!0),e.predecessors(d).length)){let p=e.node(e.predecessors(d)[0]),O=e.node(e.predecessors(l)[0]);Object.hasOwn(g,"barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+p.order+O.order)/(g.weight+2),g.weight+=2}return g}function a(e,s){e.forEach(n=>{n.vs=n.vs.flatMap(o=>s[o]?s[o].vs:o)})}function i(e,s){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+s.barycenter*s.weight)/(e.weight+s.weight),e.weight+=s.weight):(e.barycenter=s.barycenter,e.weight=s.weight)}return Se}var Me,Lr;function xt(){if(Lr)return Me;Lr=1;let _=Y().Graph,m=A();Me=f;function f(a,i,e,s){s||(s=a.nodes());let n=u(a),o=new _({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(r=>a.node(r));return s.forEach(r=>{let t=a.node(r),d=a.parent(r);(t.rank===i||t.minRank<=i&&i<=t.maxRank)&&(o.setNode(r),o.setParent(r,d||n),a[e](r).forEach(l=>{let w=l.v===r?l.w:l.v,x=o.edge(w,r),c=x!==void 0?x.weight:0;o.setEdge(w,r,{weight:a.edge(l).weight+c})}),Object.hasOwn(t,"minRank")&&o.setNode(r,{borderLeft:t.borderLeft[i],borderRight:t.borderRight[i]}))}),o}function u(a){for(var i;a.hasNode(i=m.uniqueId("_root")););return i}return Me}var Pe,Tr;function Rt(){if(Tr)return Pe;Tr=1,Pe=_;function _(m,f,u){let a={},i;u.forEach(e=>{let s=m.parent(e),n,o;for(;s;){if(n=m.parent(s),n?(o=a[n],a[n]=s):(o=i,i=s),o&&o!==s){f.setEdge(o,s);return}s=n}})}return Pe}var De,Sr;function It(){if(Sr)return De;Sr=1;let _=_t(),m=yt(),f=Ct(),u=xt(),a=Rt(),i=Y().Graph,e=A();De=s;function s(t,d){if(d&&typeof d.customOrder=="function"){d.customOrder(t,s);return}let l=e.maxRank(t),w=n(t,e.range(1,l+1),"inEdges"),x=n(t,e.range(l-1,-1,-1),"outEdges"),c=_(t);if(r(t,c),d&&d.disableOptimalOrderHeuristic)return;let g=Number.POSITIVE_INFINITY,p;for(let O=0,C=0;C<4;++O,++C){o(O%2?w:x,O%4>=2),c=e.buildLayerMatrix(t);let I=m(t,c);I<g&&(C=0,p=Object.assign({},c),g=I)}r(t,p)}function n(t,d,l){const w=new Map,x=(c,g)=>{w.has(c)||w.set(c,[]),w.get(c).push(g)};for(const c of t.nodes()){const g=t.node(c);if(typeof g.rank=="number"&&x(g.rank,c),typeof g.minRank=="number"&&typeof g.maxRank=="number")for(let p=g.minRank;p<=g.maxRank;p++)p!==g.rank&&x(p,c)}return d.map(function(c){return u(t,c,l,w.get(c)||[])})}function o(t,d){let l=new i;t.forEach(function(w){let x=w.graph().root,c=f(w,x,l,d);c.vs.forEach((g,p)=>w.node(g).order=p),a(w,l,c.vs)})}function r(t,d){Object.values(d).forEach(l=>l.forEach((w,x)=>t.node(w).order=x))}return De}var Ge,Mr;function jt(){if(Mr)return Ge;Mr=1;let _=Y().Graph,m=A();Ge={positionX:l,findType1Conflicts:f,findType2Conflicts:u,addConflict:i,hasConflict:e,verticalAlignment:s,horizontalCompaction:n,alignCoordinates:t,findSmallestWidthAlignment:r,balance:d};function f(c,g){let p={};function O(C,I){let j=0,L=0,h=C.length,b=I[I.length-1];return I.forEach((E,k)=>{let R=a(c,E),T=R?c.node(R).order:h;(R||E===b)&&(I.slice(L,k+1).forEach(S=>{c.predecessors(S).forEach(D=>{let z=c.node(D),U=z.order;(U<j||T<U)&&!(z.dummy&&c.node(S).dummy)&&i(p,D,S)})}),L=k+1,j=T)}),I}return g.length&&g.reduce(O),p}function u(c,g){let p={};function O(I,j,L,h,b){let E;m.range(j,L).forEach(k=>{E=I[k],c.node(E).dummy&&c.predecessors(E).forEach(R=>{let T=c.node(R);T.dummy&&(T.order<h||T.order>b)&&i(p,R,E)})})}function C(I,j){let L=-1,h,b=0;return j.forEach((E,k)=>{if(c.node(E).dummy==="border"){let R=c.predecessors(E);R.length&&(h=c.node(R[0]).order,O(j,b,k,L,h),b=k,L=h)}O(j,b,j.length,h,I.length)}),j}return g.length&&g.reduce(C),p}function a(c,g){if(c.node(g).dummy)return c.predecessors(g).find(p=>c.node(p).dummy)}function i(c,g,p){if(g>p){let C=g;g=p,p=C}let O=c[g];O||(c[g]=O={}),O[p]=!0}function e(c,g,p){if(g>p){let O=g;g=p,p=O}return!!c[g]&&Object.hasOwn(c[g],p)}function s(c,g,p,O){let C={},I={},j={};return g.forEach(L=>{L.forEach((h,b)=>{C[h]=h,I[h]=h,j[h]=b})}),g.forEach(L=>{let h=-1;L.forEach(b=>{let E=O(b);if(E.length){E=E.sort((R,T)=>j[R]-j[T]);let k=(E.length-1)/2;for(let R=Math.floor(k),T=Math.ceil(k);R<=T;++R){let S=E[R];I[b]===b&&h<j[S]&&!e(p,b,S)&&(I[S]=b,I[b]=C[b]=C[S],h=j[S])}}})}),{root:C,align:I}}function n(c,g,p,O,C){let I={},j=o(c,g,p,C),L=C?"borderLeft":"borderRight";function h(k,R){let T=j.nodes(),S=T.pop(),D={};for(;S;)D[S]?k(S):(D[S]=!0,T.push(S),T=T.concat(R(S))),S=T.pop()}function b(k){I[k]=j.inEdges(k).reduce((R,T)=>Math.max(R,I[T.v]+j.edge(T)),0)}function E(k){let R=j.outEdges(k).reduce((S,D)=>Math.min(S,I[D.w]-j.edge(D)),Number.POSITIVE_INFINITY),T=c.node(k);R!==Number.POSITIVE_INFINITY&&T.borderType!==L&&(I[k]=Math.max(I[k],R))}return h(b,j.predecessors.bind(j)),h(E,j.successors.bind(j)),Object.keys(O).forEach(k=>I[k]=I[p[k]]),I}function o(c,g,p,O){let C=new _,I=c.graph(),j=w(I.nodesep,I.edgesep,O);return g.forEach(L=>{let h;L.forEach(b=>{let E=p[b];if(C.setNode(E),h){var k=p[h],R=C.edge(k,E);C.setEdge(k,E,Math.max(j(c,b,h),R||0))}h=b})}),C}function r(c,g){return Object.values(g).reduce((p,O)=>{let C=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;Object.entries(O).forEach(([L,h])=>{let b=x(c,L)/2;C=Math.max(h+b,C),I=Math.min(h-b,I)});const j=C-I;return j<p[0]&&(p=[j,O]),p},[Number.POSITIVE_INFINITY,null])[1]}function t(c,g){let p=Object.values(g),O=m.applyWithChunking(Math.min,p),C=m.applyWithChunking(Math.max,p);["u","d"].forEach(I=>{["l","r"].forEach(j=>{let L=I+j,h=c[L];if(h===g)return;let b=Object.values(h),E=O-m.applyWithChunking(Math.min,b);j!=="l"&&(E=C-m.applyWithChunking(Math.max,b)),E&&(c[L]=m.mapValues(h,k=>k+E))})})}function d(c,g){return m.mapValues(c.ul,(p,O)=>{if(g)return c[g.toLowerCase()][O];{let C=Object.values(c).map(I=>I[O]).sort((I,j)=>I-j);return(C[1]+C[2])/2}})}function l(c){let g=m.buildLayerMatrix(c),p=Object.assign(f(c,g),u(c,g)),O={},C;["u","d"].forEach(j=>{C=j==="u"?g:Object.values(g).reverse(),["l","r"].forEach(L=>{L==="r"&&(C=C.map(k=>Object.values(k).reverse()));let h=(j==="u"?c.predecessors:c.successors).bind(c),b=s(c,C,p,h),E=n(c,C,b.root,b.align,L==="r");L==="r"&&(E=m.mapValues(E,k=>-k)),O[j+L]=E})});let I=r(c,O);return t(O,I),d(O,c.graph().align)}function w(c,g,p){return(O,C,I)=>{let j=O.node(C),L=O.node(I),h=0,b;if(h+=j.width/2,Object.hasOwn(j,"labelpos"))switch(j.labelpos.toLowerCase()){case"l":b=-j.width/2;break;case"r":b=j.width/2;break}if(b&&(h+=p?b:-b),b=0,h+=(j.dummy?g:c)/2,h+=(L.dummy?g:c)/2,h+=L.width/2,Object.hasOwn(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":b=L.width/2;break;case"r":b=-L.width/2;break}return b&&(h+=p?b:-b),b=0,h}}function x(c,g){return c.node(g).width}return Ge}var Fe,Pr;function qt(){if(Pr)return Fe;Pr=1;let _=A(),m=jt().positionX;Fe=f;function f(a){a=_.asNonCompoundGraph(a),u(a),Object.entries(m(a)).forEach(([i,e])=>a.node(i).x=e)}function u(a){let i=_.buildLayerMatrix(a),e=a.graph().ranksep,s=0;i.forEach(n=>{const o=n.reduce((r,t)=>{const d=a.node(t).height;return r>d?r:d},0);n.forEach(r=>a.node(r).y=s+o/2),s+=o+e})}return Fe}var Ae,Dr;function Lt(){if(Dr)return Ae;Dr=1;let _=ct(),m=pt(),f=bt(),u=A().normalizeRanks,a=vt(),i=A().removeEmptyRanks,e=wt(),s=gt(),n=Et(),o=It(),r=qt(),t=A(),d=Y().Graph;Ae=l;function l(v,y){let N=y&&y.debugTiming?t.time:t.notime;N("layout",()=>{let q=N(" buildLayoutGraph",()=>h(v));N(" runLayout",()=>w(q,N,y)),N(" updateInputGraph",()=>x(v,q))})}function w(v,y,N){y(" makeSpaceForEdgeLabels",()=>b(v)),y(" removeSelfEdges",()=>Hr(v)),y(" acyclic",()=>_.run(v)),y(" nestingGraph.run",()=>e.run(v)),y(" rank",()=>f(t.asNonCompoundGraph(v))),y(" injectEdgeLabelProxies",()=>E(v)),y(" removeEmptyRanks",()=>i(v)),y(" nestingGraph.cleanup",()=>e.cleanup(v)),y(" normalizeRanks",()=>u(v)),y(" assignRankMinMax",()=>k(v)),y(" removeEdgeLabelProxies",()=>R(v)),y(" normalize.run",()=>m.run(v)),y(" parentDummyChains",()=>a(v)),y(" addBorderSegments",()=>s(v)),y(" order",()=>o(v,N)),y(" insertSelfEdges",()=>Xr(v)),y(" adjustCoordinateSystem",()=>n.adjust(v)),y(" position",()=>r(v)),y(" positionSelfEdges",()=>Qr(v)),y(" removeBorderNodes",()=>U(v)),y(" normalize.undo",()=>m.undo(v)),y(" fixupEdgeLabelCoords",()=>D(v)),y(" undoCoordinateSystem",()=>n.undo(v)),y(" translateGraph",()=>T(v)),y(" assignNodeIntersects",()=>S(v)),y(" reversePoints",()=>z(v)),y(" acyclic.undo",()=>_.undo(v))}function x(v,y){v.nodes().forEach(N=>{let q=v.node(N),M=y.node(N);q&&(q.x=M.x,q.y=M.y,q.rank=M.rank,y.children(N).length&&(q.width=M.width,q.height=M.height))}),v.edges().forEach(N=>{let q=v.edge(N),M=y.edge(N);q.points=M.points,Object.hasOwn(M,"x")&&(q.x=M.x,q.y=M.y)}),v.graph().width=y.graph().width,v.graph().height=y.graph().height}let c=["nodesep","edgesep","ranksep","marginx","marginy"],g={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},p=["acyclicer","ranker","rankdir","align"],O=["width","height","rank"],C={width:0,height:0},I=["minlen","weight","width","height","labeloffset"],j={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},L=["labelpos"];function h(v){let y=new d({multigraph:!0,compound:!0}),N=$(v.graph());return y.setGraph(Object.assign({},g,Q(N,c),t.pick(N,p))),v.nodes().forEach(q=>{let M=$(v.node(q));const P=Q(M,O);Object.keys(C).forEach(G=>{P[G]===void 0&&(P[G]=C[G])}),y.setNode(q,P),y.setParent(q,v.parent(q))}),v.edges().forEach(q=>{let M=$(v.edge(q));y.setEdge(q,Object.assign({},j,Q(M,I),t.pick(M,L)))}),y}function b(v){let y=v.graph();y.ranksep/=2,v.edges().forEach(N=>{let q=v.edge(N);q.minlen*=2,q.labelpos.toLowerCase()!=="c"&&(y.rankdir==="TB"||y.rankdir==="BT"?q.width+=q.labeloffset:q.height+=q.labeloffset)})}function E(v){v.edges().forEach(y=>{let N=v.edge(y);if(N.width&&N.height){let q=v.node(y.v),P={rank:(v.node(y.w).rank-q.rank)/2+q.rank,e:y};t.addDummyNode(v,"edge-proxy",P,"_ep")}})}function k(v){let y=0;v.nodes().forEach(N=>{let q=v.node(N);q.borderTop&&(q.minRank=v.node(q.borderTop).rank,q.maxRank=v.node(q.borderBottom).rank,y=Math.max(y,q.maxRank))}),v.graph().maxRank=y}function R(v){v.nodes().forEach(y=>{let N=v.node(y);N.dummy==="edge-proxy"&&(v.edge(N.e).labelRank=N.rank,v.removeNode(y))})}function T(v){let y=Number.POSITIVE_INFINITY,N=0,q=Number.POSITIVE_INFINITY,M=0,P=v.graph(),G=P.marginx||0,B=P.marginy||0;function ze(W){let V=W.x,H=W.y,Ue=W.width,He=W.height;y=Math.min(y,V-Ue/2),N=Math.max(N,V+Ue/2),q=Math.min(q,H-He/2),M=Math.max(M,H+He/2)}v.nodes().forEach(W=>ze(v.node(W))),v.edges().forEach(W=>{let V=v.edge(W);Object.hasOwn(V,"x")&&ze(V)}),y-=G,q-=B,v.nodes().forEach(W=>{let V=v.node(W);V.x-=y,V.y-=q}),v.edges().forEach(W=>{let V=v.edge(W);V.points.forEach(H=>{H.x-=y,H.y-=q}),Object.hasOwn(V,"x")&&(V.x-=y),Object.hasOwn(V,"y")&&(V.y-=q)}),P.width=N-y+G,P.height=M-q+B}function S(v){v.edges().forEach(y=>{let N=v.edge(y),q=v.node(y.v),M=v.node(y.w),P,G;N.points?(P=N.points[0],G=N.points[N.points.length-1]):(N.points=[],P=M,G=q),N.points.unshift(t.intersectRect(q,P)),N.points.push(t.intersectRect(M,G))})}function D(v){v.edges().forEach(y=>{let N=v.edge(y);if(Object.hasOwn(N,"x"))switch((N.labelpos==="l"||N.labelpos==="r")&&(N.width-=N.labeloffset),N.labelpos){case"l":N.x-=N.width/2+N.labeloffset;break;case"r":N.x+=N.width/2+N.labeloffset;break}})}function z(v){v.edges().forEach(y=>{let N=v.edge(y);N.reversed&&N.points.reverse()})}function U(v){v.nodes().forEach(y=>{if(v.children(y).length){let N=v.node(y),q=v.node(N.borderTop),M=v.node(N.borderBottom),P=v.node(N.borderLeft[N.borderLeft.length-1]),G=v.node(N.borderRight[N.borderRight.length-1]);N.width=Math.abs(G.x-P.x),N.height=Math.abs(M.y-q.y),N.x=P.x+N.width/2,N.y=q.y+N.height/2}}),v.nodes().forEach(y=>{v.node(y).dummy==="border"&&v.removeNode(y)})}function Hr(v){v.edges().forEach(y=>{if(y.v===y.w){var N=v.node(y.v);N.selfEdges||(N.selfEdges=[]),N.selfEdges.push({e:y,label:v.edge(y)}),v.removeEdge(y)}})}function Xr(v){var y=t.buildLayerMatrix(v);y.forEach(N=>{var q=0;N.forEach((M,P)=>{var G=v.node(M);G.order=P+q,(G.selfEdges||[]).forEach(B=>{t.addDummyNode(v,"selfedge",{width:B.label.width,height:B.label.height,rank:G.rank,order:P+ ++q,e:B.e,label:B.label},"_se")}),delete G.selfEdges})})}function Qr(v){v.nodes().forEach(y=>{var N=v.node(y);if(N.dummy==="selfedge"){var q=v.node(N.e.v),M=q.x+q.width/2,P=q.y,G=N.x-M,B=q.height/2;v.setEdge(N.e,N.label),v.removeNode(y),N.label.points=[{x:M+2*G/3,y:P-B},{x:M+5*G/6,y:P-B},{x:M+G,y:P},{x:M+5*G/6,y:P+B},{x:M+2*G/3,y:P+B}],N.label.x=N.x,N.label.y=N.y}})}function Q(v,y){return t.mapValues(t.pick(v,y),Number)}function $(v){var y={};return v&&Object.entries(v).forEach(([N,q])=>{typeof N=="string"&&(N=N.toLowerCase()),y[N]=q}),y}return Ae}var Ve,Gr;function Tt(){if(Gr)return Ve;Gr=1;let _=A(),m=Y().Graph;Ve={debugOrdering:f};function f(u){let a=_.buildLayerMatrix(u),i=new m({compound:!0,multigraph:!0}).setGraph({});return u.nodes().forEach(e=>{i.setNode(e,{label:e}),i.setParent(e,"layer"+u.node(e).rank)}),u.edges().forEach(e=>i.setEdge(e.v,e.w,{},e.name)),a.forEach((e,s)=>{let n="layer"+s;i.setNode(n,{rank:"same"}),e.reduce((o,r)=>(i.setEdge(o,r,{style:"invis"}),r))}),i}return Ve}var Be,Fr;function St(){return Fr||(Fr=1,Be="1.1.8"),Be}var We,Ar;function Mt(){return Ar||(Ar=1,We={graphlib:Y(),layout:Lt(),debug:Tt(),util:{time:A().time,notime:A().notime},version:St()}),We}var Pt=Mt();const Ft=Kr(Pt);export{Ft as d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/graph-tab-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/graph-tab-tmjyMc4q.js","assets/style-DeKQIW_i.js","assets/index-C13O-yj1.js","assets/style-BZV40eAE.css","assets/graph-utils-BlwoHdjR.js","assets/constants-DLyESMjx.js","assets/index-CAOXRHQq.js","assets/loader-circle-DQz_g7p_.js","assets/circle-alert-BJTyaShp.js","assets/prd-backlog-tab-CLzQ5p_3.js","assets/journey-tab-ujeAoAsS.js","assets/gitnexus-tab-D5xRYU3u.js","assets/gitnexus-tab-DEqMBSbC.css","assets/insights-tab-9sq9NfBt.js","assets/refresh-cw-C0EeXZ6n.js","assets/skills-tab-DL8-pMo9.js","assets/siebel-tab-67cdoYQ_.js","assets/lsp-tab-DGIm2cTM.js","assets/triangle-alert-cibtv50e.js","assets/file-code-DVOtQrhl.js","assets/languages-tab-DT-46f7p.js","assets/upload-CZI9Zosi.js","assets/davinci-tab-krxsY7Pp.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var h0=Object.defineProperty;var y0=(i,h,v)=>h in i?h0(i,h,{enumerable:!0,configurable:!0,writable:!0,value:v}):i[h]=v;var wn=(i,h,v)=>y0(i,typeof h!="symbol"?h+"":h,v);function v0(i,h){for(var v=0;v<h.length;v++){const s=h[v];if(typeof s!="string"&&!Array.isArray(s)){for(const M in s)if(M!=="default"&&!(M in i)){const j=Object.getOwnPropertyDescriptor(s,M);j&&Object.defineProperty(i,M,j.get?j:{enumerable:!0,get:()=>s[M]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}(function(){const h=document.createElement("link").relList;if(h&&h.supports&&h.supports("modulepreload"))return;for(const M of document.querySelectorAll('link[rel="modulepreload"]'))s(M);new MutationObserver(M=>{for(const j of M)if(j.type==="childList")for(const X of j.addedNodes)X.tagName==="LINK"&&X.rel==="modulepreload"&&s(X)}).observe(document,{childList:!0,subtree:!0});function v(M){const j={};return M.integrity&&(j.integrity=M.integrity),M.referrerPolicy&&(j.referrerPolicy=M.referrerPolicy),M.crossOrigin==="use-credentials"?j.credentials="include":M.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function s(M){if(M.ep)return;M.ep=!0;const j=v(M);fetch(M.href,j)}})();function g0(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var mf={exports:{}},zu={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -225,4 +225,4 @@ Error generating stack: `+a.message+`
|
|
|
225
225
|
`,"aria-label":"Navigation sidebar",children:C})]})});function qy(){const[i,h]=N.useState(null),[v,s]=N.useState(!0),[M,j]=N.useState(null),X=N.useCallback(async()=>{try{s(!0),j(null);const q=await Ue.getGraph();h(q)}catch(q){j(q instanceof Error?q.message:"Failed to load graph")}finally{s(!1)}},[]);return N.useEffect(()=>{X()},[X]),{graph:i,loading:v,error:M,refresh:X}}function Gy(){const[i,h]=N.useState(null),v=N.useCallback(async()=>{try{const s=await Ue.getStats();h(s)}catch{}},[]);return N.useEffect(()=>{v()},[v]),{stats:i,refresh:v}}const qd=1e3,Yy=3e4;function Ly(i){const h=N.useRef(i);h.current=i;const v=N.useRef(null),s=N.useRef(qd),M=N.useCallback(()=>{v.current&&(v.current.close(),v.current=null);const j=new EventSource("/api/v1/events");v.current=j;const X=D=>{try{const S=JSON.parse(D.data);h.current(D.type,S)}catch{}},q=["node:created","node:updated","node:deleted","edge:created","edge:deleted","import:completed","translation:job_created","translation:analyzed","translation:finalized","translation:error"];for(const D of q)j.addEventListener(D,X);j.onmessage=X,j.onopen=()=>{s.current=qd},j.onerror=()=>{j.close(),v.current=null;const D=s.current;s.current=Math.min(s.current*2,Yy),setTimeout(M,D)}},[]);N.useEffect(()=>(M(),()=>{v.current&&(v.current.close(),v.current=null)}),[M])}function Xy({open:i,onClose:h,onImported:v}){const[s,M]=N.useState(null),[j,X]=N.useState(!1),[q,D]=N.useState(null),[S,H]=N.useState(!1),[C,B]=N.useState(!1),lt=N.useRef(null),F=N.useCallback(K=>{K.preventDefault(),B(!1),K.dataTransfer.files.length&&M(K.dataTransfer.files[0])},[]),gt=N.useCallback(async()=>{if(s){H(!0),D({type:"info",message:"Uploading and processing..."});try{const K=await Ue.importFile(s,j);D({type:"success",message:`Imported ${K.nodesCreated} nodes and ${K.edgesCreated} edges.`}),setTimeout(()=>{h(),v(),M(null),D(null)},1500)}catch(K){D({type:"error",message:K instanceof Error?K.message:"Import failed"})}finally{H(!1)}}},[s,j,h,v]);return i?r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:K=>{K.target===K.currentTarget&&h()},children:r.jsxs("div",{className:"bg-surface rounded-lg shadow-xl w-full max-w-md p-6",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsx("h2",{className:"text-lg font-semibold",children:"Import PRD"}),r.jsx("button",{onClick:h,className:"text-muted hover:text-foreground text-xl",children:"×"})]}),r.jsxs("div",{className:`border-2 border-dashed rounded-lg p-8 text-center cursor-pointer transition-colors mb-4 ${C?"border-accent bg-accent10":"border-edge"}`,onClick:()=>{var K;return(K=lt.current)==null?void 0:K.click()},onDragOver:K=>{K.preventDefault(),B(!0)},onDragLeave:()=>B(!1),onDrop:F,children:[r.jsx("input",{ref:lt,type:"file",accept:".md,.txt,.pdf,.html,.htm",className:"hidden",onChange:K=>{var St;(St=K.target.files)!=null&&St.length&&M(K.target.files[0])}}),r.jsx("p",{className:"text-sm text-muted",children:s?`Selected: ${s.name} (${Qy(s.size)})`:`Drag & drop a file here
|
|
226
226
|
or click to select`})]}),r.jsxs("label",{className:"flex items-center gap-2 mb-4 text-sm",children:[r.jsx("input",{type:"checkbox",checked:j,onChange:K=>X(K.target.checked)}),"Force re-import (overwrite existing)"]}),q&&r.jsx("div",{className:`text-sm p-2 rounded mb-4 ${q.type==="success"?"bg-green-500/10 text-green-500":q.type==="error"?"bg-red-500/10 text-red-500":"bg-blue-500/10 text-blue-500"}`,children:q.message}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx("button",{onClick:h,className:"px-3 py-1.5 text-sm border border-edge rounded hover:bg-surface-elevated",children:"Cancel"}),r.jsx("button",{onClick:gt,disabled:!s||S,className:"px-3 py-1.5 text-sm bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:S?"Importing...":"Import"})]})]})}):null}function Qy(i){return i<1024?i+" B":i<1048576?(i/1024).toFixed(1)+" KB":(i/1048576).toFixed(1)+" MB"}function Zy({open:i,onClose:h,onImported:v}){const[s,M]=N.useState(""),[j,X]=N.useState(""),[q,D]=N.useState(""),[S,H]=N.useState(null),[C,B]=N.useState(null),[lt,F]=N.useState(!1),gt=N.useCallback(async()=>{if(!s.trim()){H({type:"error",message:"Please enter a URL"});return}F(!0),H({type:"info",message:"Capturing page... This may take a few seconds."}),B(null);try{const ct=await Ue.captureUrl(s.trim(),j.trim()||void 0,q.trim()||void 0);B(ct),H({type:"success",message:`Captured: ${ct.wordCount} words`})}catch(ct){H({type:"error",message:`Capture failed: ${ct instanceof Error?ct.message:"Unknown error"}`})}finally{F(!1)}},[s,j,q]),K=N.useCallback(async()=>{if(C){H({type:"info",message:"Importing captured content as PRD..."});try{const ct=new Blob([C.text],{type:"text/markdown"}),At=(C.title||"captured-page").replace(/[^a-zA-Z0-9-_]/g,"-")+".md",Lt=new File([ct],At,{type:"text/markdown"});await Ue.importFile(Lt),H({type:"success",message:"Import completed!"}),setTimeout(()=>{h(),v()},1e3)}catch(ct){H({type:"error",message:`Import failed: ${ct instanceof Error?ct.message:"Unknown error"}`})}}},[C,h,v]),St=N.useCallback(async()=>{C&&(await navigator.clipboard.writeText(C.text),H({type:"success",message:"Copied to clipboard!"}))},[C]);return i?r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:ct=>{ct.target===ct.currentTarget&&h()},children:r.jsxs("div",{className:"bg-surface rounded-lg shadow-xl w-full max-w-lg p-6 max-h-[80vh] overflow-y-auto",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsx("h2",{className:"text-lg font-semibold",children:"Capture Web Page"}),r.jsx("button",{onClick:h,className:"text-muted hover:text-foreground text-xl",children:"×"})]}),r.jsxs("div",{className:"space-y-3 mb-4",children:[r.jsxs("div",{children:[r.jsx("label",{className:"block text-xs font-medium mb-1",children:"URL"}),r.jsx("input",{type:"url",value:s,onChange:ct=>M(ct.target.value),placeholder:"https://example.com/prd",className:"w-full px-2 py-1.5 text-sm border border-edge rounded bg-surface",onKeyDown:ct=>{ct.key==="Enter"&>()}})]}),r.jsxs("div",{children:[r.jsx("label",{className:"block text-xs font-medium mb-1",children:"CSS Selector (optional)"}),r.jsx("input",{type:"text",value:j,onChange:ct=>X(ct.target.value),placeholder:"main, article, .content",className:"w-full px-2 py-1.5 text-sm border border-edge rounded bg-surface"})]}),r.jsxs("div",{children:[r.jsx("label",{className:"block text-xs font-medium mb-1",children:"Wait for Selector (optional)"}),r.jsx("input",{type:"text",value:q,onChange:ct=>D(ct.target.value),placeholder:".loaded, #content",className:"w-full px-2 py-1.5 text-sm border border-edge rounded bg-surface"})]})]}),S&&r.jsx("div",{className:`text-sm p-2 rounded mb-4 ${S.type==="success"?"bg-green-500/10 text-green-500":S.type==="error"?"bg-red-500/10 text-red-500":"bg-blue-500/10 text-blue-500"}`,children:S.message}),C&&r.jsxs("div",{className:"mb-4 p-3 rounded-xl border border-edge shadow-sm hover:shadow-md transition-shadow bg-surface-alt",children:[r.jsx("h3",{className:"text-sm font-medium mb-2",children:"Extracted Content"}),r.jsxs("div",{className:"text-xs text-muted space-y-0.5 mb-2",children:[r.jsxs("p",{children:[r.jsx("strong",{children:"Title:"})," ",C.title||"—"]}),r.jsxs("p",{children:[r.jsx("strong",{children:"Words:"})," ",C.wordCount]}),r.jsxs("p",{children:[r.jsx("strong",{children:"Captured:"})," ",new Date(C.capturedAt).toLocaleString()]})]}),r.jsxs("pre",{className:"text-xs whitespace-pre-wrap max-h-40 overflow-y-auto p-2 bg-surface-elevated rounded",children:[C.text.substring(0,5e3),C.text.length>5e3&&`
|
|
227
227
|
|
|
228
|
-
... (truncated)`]}),r.jsxs("div",{className:"flex gap-2 mt-2",children:[r.jsx("button",{onClick:K,className:"px-3 py-1 text-xs bg-accent text-white rounded hover:bg-accent-light",children:"Import as PRD"}),r.jsx("button",{onClick:St,className:"px-3 py-1 text-xs border border-edge rounded hover:bg-surface-elevated",children:"Copy Text"})]})]}),r.jsx("div",{className:"flex justify-end",children:r.jsx("button",{onClick:gt,disabled:lt,className:"px-3 py-1.5 text-sm bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:lt?"Capturing...":"Capture"})})]})}):null}function Vy({open:i,onClose:h,onFolderChanged:v}){const[s,M]=N.useState(""),[j,X]=N.useState(""),[q,D]=N.useState([]),[S,H]=N.useState(null),[C,B]=N.useState(!1),[lt,F]=N.useState(""),[gt,K]=N.useState([]),[St,ct]=N.useState(""),[At,Lt]=N.useState(!1),[Pt,Xt]=N.useState(""),[I,Qt]=N.useState(!1);N.useEffect(()=>{i&&(H(null),M(""),Qt(!1),K([]),Ue.getFolder().then(Z=>{X(Z.currentPath),D(Z.recentFolders)}).catch(()=>{}))},[i]);const kt=N.useCallback(async Z=>{Lt(!0),Xt("");try{const Nt=await Ue.browseFolder(Z);F(Nt.path),ct(Nt.parent),K(Nt.entries),Qt(!0)}catch(Nt){Xt(Nt instanceof Error?Nt.message:"Failed to browse")}finally{Lt(!1)}},[]),je=N.useCallback(async Z=>{const Nt=Z??s.trim();if(Nt){B(!0),H({type:"info",message:"Opening folder..."});try{const jt=await Ue.openFolder(Nt);if(!jt.ok){H({type:"error",message:jt.error??"Failed to open folder"});return}H({type:"success",message:`Opened: ${jt.basePath}`}),X(jt.basePath??Nt),jt.recentFolders&&D(jt.recentFolders),setTimeout(()=>{h(),v()},800)}catch(jt){H({type:"error",message:jt instanceof Error?jt.message:"Failed to open folder"})}finally{B(!1)}}},[s,h,v]),be=N.useCallback(()=>{const Z=j&&j.split("/").slice(0,-1).join("/")||"/";kt(Z)},[j,kt]);return i?r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:Z=>{Z.target===Z.currentTarget&&h()},children:r.jsxs("div",{className:"bg-surface rounded-lg shadow-xl w-full max-w-lg p-6 max-h-[80vh] flex flex-col",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsx("h2",{className:"text-lg font-semibold",children:"Open Folder"}),r.jsx("button",{onClick:h,className:"text-muted hover:text-foreground text-xl",children:"×"})]}),r.jsxs("div",{className:"text-xs text-muted mb-3",children:["Current: ",r.jsx("span",{className:"font-mono",children:j||"..."})]}),r.jsxs("div",{className:"mb-3",children:[r.jsx("label",{className:"block text-sm mb-1",children:"Project folder path"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx("input",{type:"text",value:s,onChange:Z=>M(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&je()},placeholder:"/path/to/project",className:"flex-1 px-3 py-2 text-sm bg-surface-alt border border-edge rounded font-mono focus:outline-none focus:border-accent",autoFocus:!0}),r.jsx("button",{onClick:()=>void je(),disabled:!s.trim()||C,className:"px-4 py-2 text-sm bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:C?"...":"Open"})]}),r.jsx("button",{onClick:be,className:"mt-1 text-xs text-accent hover:underline",children:"Browse directories..."})]}),S&&r.jsx("div",{className:`text-sm p-2 rounded mb-3 ${S.type==="success"?"bg-green-500/10 text-green-500":S.type==="error"?"bg-red-500/10 text-red-500":"bg-blue-500/10 text-blue-500"}`,children:S.message}),I&&r.jsxs("div",{className:"mb-3 border border-edge rounded overflow-hidden",children:[r.jsx("div",{className:"flex items-center gap-1 px-3 py-2 bg-surface-alt border-b border-edge text-xs font-mono overflow-x-auto whitespace-nowrap",children:lt.split("/").filter(Boolean).map((Z,Nt,jt)=>{const te="/"+jt.slice(0,Nt+1).join("/");return r.jsxs("span",{className:"flex items-center gap-1",children:[Nt>0&&r.jsx("span",{className:"text-muted",children:"/"}),r.jsx("button",{onClick:()=>void kt(te),className:"hover:text-accent hover:underline",children:Z})]},te)})}),At&&r.jsx("div",{className:"px-3 py-4 text-sm text-muted text-center",children:"Loading..."}),Pt&&r.jsx("div",{className:"px-3 py-2 text-sm text-red-500",children:Pt}),!At&&!Pt&&r.jsxs("ul",{className:"max-h-48 overflow-y-auto",children:[St&&St!==lt&&r.jsx("li",{children:r.jsxs("button",{onClick:()=>void kt(St),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-surface-elevated flex items-center gap-2",children:[r.jsx("span",{className:"text-muted",children:".."}),r.jsx("span",{className:"text-xs text-muted",children:"(parent)"})]})}),gt.length===0&&r.jsx("li",{className:"px-3 py-2 text-sm text-muted",children:"No subdirectories"}),gt.map(Z=>r.jsxs("li",{className:"flex items-center",children:[r.jsxs("button",{onClick:()=>void kt(Z.path),className:"flex-1 text-left px-3 py-1.5 text-sm hover:bg-surface-elevated flex items-center gap-2 min-w-0",children:[r.jsx("span",{className:"shrink-0",children:Z.hasGraph?"📂":"📁"}),r.jsx("span",{className:`truncate ${Z.hasGraph?"font-medium text-accent":""}`,children:Z.name}),Z.hasGraph&&r.jsx("span",{className:"shrink-0 text-xs bg-accent/20 text-accent px-1.5 py-0.5 rounded",children:"graph"})]}),Z.hasGraph&&r.jsx("button",{onClick:()=>void je(Z.path),disabled:C||Z.path===j,className:"shrink-0 mr-2 px-2 py-1 text-xs bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:Z.path===j?"current":"Open"})]},Z.path))]})]}),r.jsx("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:q.length>0&&r.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[r.jsx("h3",{className:"text-sm font-medium mb-2 text-muted shrink-0",children:"Recent folders"}),r.jsx("ul",{className:"space-y-1 overflow-y-auto min-h-0",children:q.map(Z=>r.jsx("li",{children:r.jsxs("button",{onClick:()=>void je(Z),disabled:C||Z===j,className:`w-full text-left px-3 py-1.5 text-sm font-mono rounded transition-colors ${Z===j?"bg-accent/10 text-accent cursor-default":"hover:bg-surface-elevated text-foreground"}`,title:Z,children:[r.jsx("span",{className:"truncate block",children:Z}),Z===j&&r.jsx("span",{className:"text-xs text-accent",children:" (current)"})]})},Z))})]})}),r.jsx("div",{className:"flex justify-end mt-4 shrink-0",children:r.jsx("button",{onClick:h,className:"px-3 py-1.5 text-sm border border-edge rounded hover:bg-surface-elevated",children:"Cancel"})})]})}):null}N.memo(function({className:h="h-4 w-full"}){return r.jsx("div",{className:`rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none ${h}`,role:"status","aria-label":"Loading"})});const Jn=N.memo(function({className:h=""}){return r.jsxs("div",{className:`rounded-xl border border-edge p-4 space-y-3 ${h}`,role:"status","aria-label":"Loading card",children:[r.jsx("div",{className:"h-4 w-1/3 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"h-3 w-full rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsx("div",{className:"h-3 w-2/3 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"})]})]})}),Gd=N.memo(function({className:h=""}){return r.jsxs("div",{className:`rounded-xl border border-edge p-4 space-y-3 ${h}`,role:"status","aria-label":"Loading chart",children:[r.jsx("div",{className:"h-4 w-1/4 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsx("div",{className:"h-40 w-full rounded-lg bg-surface-elevated animate-pulse motion-reduce:animate-none"})]})}),wy=N.memo(function(){return r.jsxs("div",{className:"p-6 space-y-6 max-w-6xl mx-auto",role:"status","aria-label":"Loading page",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{className:"h-5 w-40 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsx("div",{className:"h-8 w-20 rounded-lg bg-surface-elevated animate-pulse motion-reduce:animate-none"})]}),r.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:[r.jsx(Jn,{}),r.jsx(Jn,{}),r.jsx(Jn,{}),r.jsx(Jn,{})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[r.jsx(Gd,{}),r.jsx(Gd,{})]})]})}),Jy=N.lazy(()=>It(()=>import("./graph-tab-B52UV5KP.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(i=>({default:i.GraphTab}))),Ky=N.lazy(()=>It(()=>import("./prd-backlog-tab-BiNvyICT.js"),__vite__mapDeps([9,1,2,3,5,4,6])).then(i=>({default:i.PrdBacklogTab}))),ky=N.lazy(()=>It(()=>import("./journey-tab-CS416bwg.js"),__vite__mapDeps([10,1,2,3])).then(i=>({default:i.JourneyTab}))),$y=N.lazy(()=>It(()=>import("./gitnexus-tab-COEhhMeC.js"),__vite__mapDeps([11,5,12])).then(i=>({default:i.GitNexusTab}))),Wy=N.lazy(()=>It(()=>import("./memories-tab-qCFdXJIV.js"),[]).then(i=>({default:i.MemoriesTab}))),Fy=N.lazy(()=>It(()=>import("./insights-tab-sPgv-iwt.js"),__vite__mapDeps([13,2,5,8,14])).then(i=>({default:i.InsightsTab}))),Iy=N.lazy(()=>It(()=>import("./skills-tab-DlInZCyj.js"),__vite__mapDeps([15,5])).then(i=>({default:i.SkillsTab}))),Py=N.lazy(()=>It(()=>import("./context-tab-Cmar9i-X.js"),[]).then(i=>({default:i.ContextTab}))),t1=N.lazy(()=>It(()=>import("./benchmark-tab-BezNQCQh.js"),[]).then(i=>({default:i.BenchmarkTab}))),e1=N.lazy(()=>It(()=>import("./logs-tab-BbDXtvmz.js"),[]).then(i=>({default:i.LogsTab}))),l1=N.lazy(()=>It(()=>import("./siebel-tab-DFNHIBbS.js"),__vite__mapDeps([16,5])).then(i=>({default:i.SiebelTab}))),a1=N.lazy(()=>It(()=>import("./lsp-tab-BrytF6mP.js"),__vite__mapDeps([17,8,14,18,19])).then(i=>({default:i.LspTab}))),u1=N.lazy(()=>It(()=>import("./languages-tab-CcB_s-Ic.js"),__vite__mapDeps([20,1,2,3,6,7,21,18,14,19])).then(i=>({default:i.LanguagesTab}))),n1=N.lazy(()=>It(()=>import("./docs-tab-CYpDJ3Rl.js"),[]).then(i=>({default:i.DocsTab}))),c1=N.lazy(()=>It(()=>import("./davinci-tab-CkWYkDsy.js"),__vite__mapDeps([22,21,18])).then(i=>({default:i.DavinciTab}))),i1={graph:"Graph","prd-backlog":"PRD & Backlog",journey:"Journey",gitnexus:"Code Graph",siebel:"Siebel",lsp:"LSP",memories:"Memories",insights:"Insights",skills:"Skills",context:"Context",benchmark:"Benchmark",languages:"Languages",davinci:"DaVinci",docs:"Docs",logs:"Logs"};class f1 extends Ld.Component{constructor(){super(...arguments);wn(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(v){return{hasError:!0,error:v}}render(){var v;return this.state.hasError?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-muted",children:[r.jsx("p",{className:"text-sm",children:"Something went wrong."}),r.jsx("p",{className:"text-xs text-danger",children:(v=this.state.error)==null?void 0:v.message}),r.jsx("button",{onClick:()=>window.location.reload(),className:"text-xs px-3 py-1.5 rounded-lg bg-accent text-white hover:opacity-90 transition-opacity",children:"Reload"})]}):this.props.children}}function Yd(){return r.jsx(wy,{})}function s1(){var St;const[i,h]=N.useState("graph"),[v,s]=N.useState(!1),[M,j]=N.useState(!1),[X,q]=N.useState(!1),{graph:D,loading:S,error:H,refresh:C}=qy(),{stats:B,refresh:lt}=Gy(),F=N.useCallback(async()=>{await Promise.all([C(),lt()])},[C,lt]);Ly(N.useCallback(ct=>{ct.startsWith("translation:")||F()},[F]));const gt=((St=B==null?void 0:B.byStatus)==null?void 0:St.done)??0,K=(B==null?void 0:B.totalNodes)??0;return r.jsxs(U0,{onProjectChange:F,children:[r.jsx("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-4 focus:py-2 focus:rounded-lg focus:bg-accent focus:text-white focus:text-sm focus:font-medium",children:"Skip to main content"}),r.jsxs("div",{className:"h-screen flex flex-row",children:[r.jsx(By,{activeTab:i,onTabChange:h}),r.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[r.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-2 border-b border-edge bg-surface-alt md:px-6",children:[r.jsxs("div",{className:"flex items-center gap-3 pl-10 md:pl-0",children:[r.jsx("h1",{className:"text-sm font-semibold text-foreground",children:i1[i]}),K>0&&r.jsxs("span",{className:"text-xs text-muted",children:[gt,"/",K," done"]})]}),r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsxs("button",{onClick:()=>q(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs border border-edge rounded-lg hover:bg-surface-elevated transition-colors","aria-label":"Open project folder",title:"Open a different project folder",children:[r.jsx(ay,{className:"w-3.5 h-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Open Folder"})]}),r.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs bg-accent text-white rounded-lg hover:bg-accent-light transition-colors","aria-label":"Import PRD file",children:[r.jsx(ey,{className:"w-3.5 h-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Import PRD"})]}),r.jsxs("button",{onClick:()=>j(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs border border-edge rounded-lg hover:bg-surface-elevated transition-colors","aria-label":"Capture web content",children:[r.jsx(cy,{className:"w-3.5 h-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Capture"})]})]})]}),r.jsx("main",{id:"main-content",className:"flex-1 min-h-0 overflow-hidden",children:S?r.jsx(Yd,{}):H?r.jsx("div",{className:"flex items-center justify-center h-full text-danger",children:H}):r.jsx(f1,{children:r.jsxs(N.Suspense,{fallback:r.jsx(Yd,{}),children:[r.jsx("div",{style:{display:i==="graph"?"contents":"none"},children:r.jsx(Jy,{graph:D,loading:S,error:H,onRetry:F,onImportPrd:()=>s(!0)})}),r.jsx("div",{style:{display:i==="prd-backlog"?"contents":"none"},children:r.jsx(Ky,{graph:D,loading:S,error:H,onRetry:F})}),i==="journey"&&r.jsx(ky,{}),i==="gitnexus"&&r.jsx($y,{}),i==="memories"&&r.jsx(Wy,{}),i==="insights"&&r.jsx(Fy,{}),i==="skills"&&r.jsx(Iy,{}),i==="context"&&r.jsx(Py,{}),i==="benchmark"&&r.jsx(t1,{}),i==="logs"&&r.jsx(e1,{}),i==="siebel"&&r.jsx(l1,{}),i==="lsp"&&r.jsx(a1,{}),i==="languages"&&r.jsx(u1,{}),i==="davinci"&&r.jsx(c1,{}),i==="docs"&&r.jsx(n1,{})]})})})]}),r.jsx(Xy,{open:v,onClose:()=>s(!1),onImported:F}),r.jsx(Zy,{open:M,onClose:()=>j(!1),onImported:F}),r.jsx(Vy,{open:X,onClose:()=>q(!1),onFolderChanged:F})]})]})}function o1(){return r.jsx(M0,{children:r.jsx(s1,{})})}A0.createRoot(document.getElementById("root")).render(r.jsx(N.StrictMode,{children:r.jsx(o1,{})}));export{Z0 as B,F0 as C,ey as F,Vd as G,fy as L,Vy as O,Ld as R,It as _,Ue as a,Sf as b,zt as c,d1 as d,K0 as e,z0 as f,g0 as g,r as j,N as r,Ly as u};
|
|
228
|
+
... (truncated)`]}),r.jsxs("div",{className:"flex gap-2 mt-2",children:[r.jsx("button",{onClick:K,className:"px-3 py-1 text-xs bg-accent text-white rounded hover:bg-accent-light",children:"Import as PRD"}),r.jsx("button",{onClick:St,className:"px-3 py-1 text-xs border border-edge rounded hover:bg-surface-elevated",children:"Copy Text"})]})]}),r.jsx("div",{className:"flex justify-end",children:r.jsx("button",{onClick:gt,disabled:lt,className:"px-3 py-1.5 text-sm bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:lt?"Capturing...":"Capture"})})]})}):null}function Vy({open:i,onClose:h,onFolderChanged:v}){const[s,M]=N.useState(""),[j,X]=N.useState(""),[q,D]=N.useState([]),[S,H]=N.useState(null),[C,B]=N.useState(!1),[lt,F]=N.useState(""),[gt,K]=N.useState([]),[St,ct]=N.useState(""),[At,Lt]=N.useState(!1),[Pt,Xt]=N.useState(""),[I,Qt]=N.useState(!1);N.useEffect(()=>{i&&(H(null),M(""),Qt(!1),K([]),Ue.getFolder().then(Z=>{X(Z.currentPath),D(Z.recentFolders)}).catch(()=>{}))},[i]);const kt=N.useCallback(async Z=>{Lt(!0),Xt("");try{const Nt=await Ue.browseFolder(Z);F(Nt.path),ct(Nt.parent),K(Nt.entries),Qt(!0)}catch(Nt){Xt(Nt instanceof Error?Nt.message:"Failed to browse")}finally{Lt(!1)}},[]),je=N.useCallback(async Z=>{const Nt=Z??s.trim();if(Nt){B(!0),H({type:"info",message:"Opening folder..."});try{const jt=await Ue.openFolder(Nt);if(!jt.ok){H({type:"error",message:jt.error??"Failed to open folder"});return}H({type:"success",message:`Opened: ${jt.basePath}`}),X(jt.basePath??Nt),jt.recentFolders&&D(jt.recentFolders),setTimeout(()=>{h(),v()},800)}catch(jt){H({type:"error",message:jt instanceof Error?jt.message:"Failed to open folder"})}finally{B(!1)}}},[s,h,v]),be=N.useCallback(()=>{const Z=j&&j.split("/").slice(0,-1).join("/")||"/";kt(Z)},[j,kt]);return i?r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:Z=>{Z.target===Z.currentTarget&&h()},children:r.jsxs("div",{className:"bg-surface rounded-lg shadow-xl w-full max-w-lg p-6 max-h-[80vh] flex flex-col",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsx("h2",{className:"text-lg font-semibold",children:"Open Folder"}),r.jsx("button",{onClick:h,className:"text-muted hover:text-foreground text-xl",children:"×"})]}),r.jsxs("div",{className:"text-xs text-muted mb-3",children:["Current: ",r.jsx("span",{className:"font-mono",children:j||"..."})]}),r.jsxs("div",{className:"mb-3",children:[r.jsx("label",{className:"block text-sm mb-1",children:"Project folder path"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx("input",{type:"text",value:s,onChange:Z=>M(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&je()},placeholder:"/path/to/project",className:"flex-1 px-3 py-2 text-sm bg-surface-alt border border-edge rounded font-mono focus:outline-none focus:border-accent",autoFocus:!0}),r.jsx("button",{onClick:()=>void je(),disabled:!s.trim()||C,className:"px-4 py-2 text-sm bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:C?"...":"Open"})]}),r.jsx("button",{onClick:be,className:"mt-1 text-xs text-accent hover:underline",children:"Browse directories..."})]}),S&&r.jsx("div",{className:`text-sm p-2 rounded mb-3 ${S.type==="success"?"bg-green-500/10 text-green-500":S.type==="error"?"bg-red-500/10 text-red-500":"bg-blue-500/10 text-blue-500"}`,children:S.message}),I&&r.jsxs("div",{className:"mb-3 border border-edge rounded overflow-hidden",children:[r.jsx("div",{className:"flex items-center gap-1 px-3 py-2 bg-surface-alt border-b border-edge text-xs font-mono overflow-x-auto whitespace-nowrap",children:lt.split("/").filter(Boolean).map((Z,Nt,jt)=>{const te="/"+jt.slice(0,Nt+1).join("/");return r.jsxs("span",{className:"flex items-center gap-1",children:[Nt>0&&r.jsx("span",{className:"text-muted",children:"/"}),r.jsx("button",{onClick:()=>void kt(te),className:"hover:text-accent hover:underline",children:Z})]},te)})}),At&&r.jsx("div",{className:"px-3 py-4 text-sm text-muted text-center",children:"Loading..."}),Pt&&r.jsx("div",{className:"px-3 py-2 text-sm text-red-500",children:Pt}),!At&&!Pt&&r.jsxs("ul",{className:"max-h-48 overflow-y-auto",children:[St&&St!==lt&&r.jsx("li",{children:r.jsxs("button",{onClick:()=>void kt(St),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-surface-elevated flex items-center gap-2",children:[r.jsx("span",{className:"text-muted",children:".."}),r.jsx("span",{className:"text-xs text-muted",children:"(parent)"})]})}),gt.length===0&&r.jsx("li",{className:"px-3 py-2 text-sm text-muted",children:"No subdirectories"}),gt.map(Z=>r.jsxs("li",{className:"flex items-center",children:[r.jsxs("button",{onClick:()=>void kt(Z.path),className:"flex-1 text-left px-3 py-1.5 text-sm hover:bg-surface-elevated flex items-center gap-2 min-w-0",children:[r.jsx("span",{className:"shrink-0",children:Z.hasGraph?"📂":"📁"}),r.jsx("span",{className:`truncate ${Z.hasGraph?"font-medium text-accent":""}`,children:Z.name}),Z.hasGraph&&r.jsx("span",{className:"shrink-0 text-xs bg-accent/20 text-accent px-1.5 py-0.5 rounded",children:"graph"})]}),Z.hasGraph&&r.jsx("button",{onClick:()=>void je(Z.path),disabled:C||Z.path===j,className:"shrink-0 mr-2 px-2 py-1 text-xs bg-accent text-white rounded hover:bg-accent-light disabled:opacity-50",children:Z.path===j?"current":"Open"})]},Z.path))]})]}),r.jsx("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:q.length>0&&r.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[r.jsx("h3",{className:"text-sm font-medium mb-2 text-muted shrink-0",children:"Recent folders"}),r.jsx("ul",{className:"space-y-1 overflow-y-auto min-h-0",children:q.map(Z=>r.jsx("li",{children:r.jsxs("button",{onClick:()=>void je(Z),disabled:C||Z===j,className:`w-full text-left px-3 py-1.5 text-sm font-mono rounded transition-colors ${Z===j?"bg-accent/10 text-accent cursor-default":"hover:bg-surface-elevated text-foreground"}`,title:Z,children:[r.jsx("span",{className:"truncate block",children:Z}),Z===j&&r.jsx("span",{className:"text-xs text-accent",children:" (current)"})]})},Z))})]})}),r.jsx("div",{className:"flex justify-end mt-4 shrink-0",children:r.jsx("button",{onClick:h,className:"px-3 py-1.5 text-sm border border-edge rounded hover:bg-surface-elevated",children:"Cancel"})})]})}):null}N.memo(function({className:h="h-4 w-full"}){return r.jsx("div",{className:`rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none ${h}`,role:"status","aria-label":"Loading"})});const Jn=N.memo(function({className:h=""}){return r.jsxs("div",{className:`rounded-xl border border-edge p-4 space-y-3 ${h}`,role:"status","aria-label":"Loading card",children:[r.jsx("div",{className:"h-4 w-1/3 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"h-3 w-full rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsx("div",{className:"h-3 w-2/3 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"})]})]})}),Gd=N.memo(function({className:h=""}){return r.jsxs("div",{className:`rounded-xl border border-edge p-4 space-y-3 ${h}`,role:"status","aria-label":"Loading chart",children:[r.jsx("div",{className:"h-4 w-1/4 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsx("div",{className:"h-40 w-full rounded-lg bg-surface-elevated animate-pulse motion-reduce:animate-none"})]})}),wy=N.memo(function(){return r.jsxs("div",{className:"p-6 space-y-6 max-w-6xl mx-auto",role:"status","aria-label":"Loading page",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{className:"h-5 w-40 rounded-md bg-surface-elevated animate-pulse motion-reduce:animate-none"}),r.jsx("div",{className:"h-8 w-20 rounded-lg bg-surface-elevated animate-pulse motion-reduce:animate-none"})]}),r.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:[r.jsx(Jn,{}),r.jsx(Jn,{}),r.jsx(Jn,{}),r.jsx(Jn,{})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[r.jsx(Gd,{}),r.jsx(Gd,{})]})]})}),Jy=N.lazy(()=>It(()=>import("./graph-tab-tmjyMc4q.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(i=>({default:i.GraphTab}))),Ky=N.lazy(()=>It(()=>import("./prd-backlog-tab-CLzQ5p_3.js"),__vite__mapDeps([9,1,2,3,5,4,6])).then(i=>({default:i.PrdBacklogTab}))),ky=N.lazy(()=>It(()=>import("./journey-tab-ujeAoAsS.js"),__vite__mapDeps([10,1,2,3])).then(i=>({default:i.JourneyTab}))),$y=N.lazy(()=>It(()=>import("./gitnexus-tab-D5xRYU3u.js"),__vite__mapDeps([11,5,12])).then(i=>({default:i.GitNexusTab}))),Wy=N.lazy(()=>It(()=>import("./memories-tab-DT7JcHgq.js"),[]).then(i=>({default:i.MemoriesTab}))),Fy=N.lazy(()=>It(()=>import("./insights-tab-9sq9NfBt.js"),__vite__mapDeps([13,2,5,8,14])).then(i=>({default:i.InsightsTab}))),Iy=N.lazy(()=>It(()=>import("./skills-tab-DL8-pMo9.js"),__vite__mapDeps([15,5])).then(i=>({default:i.SkillsTab}))),Py=N.lazy(()=>It(()=>import("./context-tab-CbmHGGZh.js"),[]).then(i=>({default:i.ContextTab}))),t1=N.lazy(()=>It(()=>import("./benchmark-tab-Aqr2Xzu5.js"),[]).then(i=>({default:i.BenchmarkTab}))),e1=N.lazy(()=>It(()=>import("./logs-tab-DHj9jG6G.js"),[]).then(i=>({default:i.LogsTab}))),l1=N.lazy(()=>It(()=>import("./siebel-tab-67cdoYQ_.js"),__vite__mapDeps([16,5])).then(i=>({default:i.SiebelTab}))),a1=N.lazy(()=>It(()=>import("./lsp-tab-DGIm2cTM.js"),__vite__mapDeps([17,8,14,18,19])).then(i=>({default:i.LspTab}))),u1=N.lazy(()=>It(()=>import("./languages-tab-DT-46f7p.js"),__vite__mapDeps([20,1,2,3,6,7,21,18,14,19])).then(i=>({default:i.LanguagesTab}))),n1=N.lazy(()=>It(()=>import("./docs-tab-AautK0dL.js"),[]).then(i=>({default:i.DocsTab}))),c1=N.lazy(()=>It(()=>import("./davinci-tab-krxsY7Pp.js"),__vite__mapDeps([22,21,18])).then(i=>({default:i.DavinciTab}))),i1={graph:"Graph","prd-backlog":"PRD & Backlog",journey:"Journey",gitnexus:"Code Graph",siebel:"Siebel",lsp:"LSP",memories:"Memories",insights:"Insights",skills:"Skills",context:"Context",benchmark:"Benchmark",languages:"Languages",davinci:"DaVinci",docs:"Docs",logs:"Logs"};class f1 extends Ld.Component{constructor(){super(...arguments);wn(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(v){return{hasError:!0,error:v}}render(){var v;return this.state.hasError?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-muted",children:[r.jsx("p",{className:"text-sm",children:"Something went wrong."}),r.jsx("p",{className:"text-xs text-danger",children:(v=this.state.error)==null?void 0:v.message}),r.jsx("button",{onClick:()=>window.location.reload(),className:"text-xs px-3 py-1.5 rounded-lg bg-accent text-white hover:opacity-90 transition-opacity",children:"Reload"})]}):this.props.children}}function Yd(){return r.jsx(wy,{})}function s1(){var St;const[i,h]=N.useState("graph"),[v,s]=N.useState(!1),[M,j]=N.useState(!1),[X,q]=N.useState(!1),{graph:D,loading:S,error:H,refresh:C}=qy(),{stats:B,refresh:lt}=Gy(),F=N.useCallback(async()=>{await Promise.all([C(),lt()])},[C,lt]);Ly(N.useCallback(ct=>{ct.startsWith("translation:")||F()},[F]));const gt=((St=B==null?void 0:B.byStatus)==null?void 0:St.done)??0,K=(B==null?void 0:B.totalNodes)??0;return r.jsxs(U0,{onProjectChange:F,children:[r.jsx("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-4 focus:py-2 focus:rounded-lg focus:bg-accent focus:text-white focus:text-sm focus:font-medium",children:"Skip to main content"}),r.jsxs("div",{className:"h-screen flex flex-row",children:[r.jsx(By,{activeTab:i,onTabChange:h}),r.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[r.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-2 border-b border-edge bg-surface-alt md:px-6",children:[r.jsxs("div",{className:"flex items-center gap-3 pl-10 md:pl-0",children:[r.jsx("h1",{className:"text-sm font-semibold text-foreground",children:i1[i]}),K>0&&r.jsxs("span",{className:"text-xs text-muted",children:[gt,"/",K," done"]})]}),r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsxs("button",{onClick:()=>q(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs border border-edge rounded-lg hover:bg-surface-elevated transition-colors","aria-label":"Open project folder",title:"Open a different project folder",children:[r.jsx(ay,{className:"w-3.5 h-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Open Folder"})]}),r.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs bg-accent text-white rounded-lg hover:bg-accent-light transition-colors","aria-label":"Import PRD file",children:[r.jsx(ey,{className:"w-3.5 h-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Import PRD"})]}),r.jsxs("button",{onClick:()=>j(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs border border-edge rounded-lg hover:bg-surface-elevated transition-colors","aria-label":"Capture web content",children:[r.jsx(cy,{className:"w-3.5 h-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Capture"})]})]})]}),r.jsx("main",{id:"main-content",className:"flex-1 min-h-0 overflow-hidden",children:S?r.jsx(Yd,{}):H?r.jsx("div",{className:"flex items-center justify-center h-full text-danger",children:H}):r.jsx(f1,{children:r.jsxs(N.Suspense,{fallback:r.jsx(Yd,{}),children:[r.jsx("div",{style:{display:i==="graph"?"contents":"none"},children:r.jsx(Jy,{graph:D,loading:S,error:H,onRetry:F,onImportPrd:()=>s(!0)})}),r.jsx("div",{style:{display:i==="prd-backlog"?"contents":"none"},children:r.jsx(Ky,{graph:D,loading:S,error:H,onRetry:F})}),i==="journey"&&r.jsx(ky,{}),i==="gitnexus"&&r.jsx($y,{}),i==="memories"&&r.jsx(Wy,{}),i==="insights"&&r.jsx(Fy,{}),i==="skills"&&r.jsx(Iy,{}),i==="context"&&r.jsx(Py,{}),i==="benchmark"&&r.jsx(t1,{}),i==="logs"&&r.jsx(e1,{}),i==="siebel"&&r.jsx(l1,{}),i==="lsp"&&r.jsx(a1,{}),i==="languages"&&r.jsx(u1,{}),i==="davinci"&&r.jsx(c1,{}),i==="docs"&&r.jsx(n1,{})]})})})]}),r.jsx(Xy,{open:v,onClose:()=>s(!1),onImported:F}),r.jsx(Zy,{open:M,onClose:()=>j(!1),onImported:F}),r.jsx(Vy,{open:X,onClose:()=>q(!1),onFolderChanged:F})]})]})}function o1(){return r.jsx(M0,{children:r.jsx(s1,{})})}A0.createRoot(document.getElementById("root")).render(r.jsx(N.StrictMode,{children:r.jsx(o1,{})}));export{Z0 as B,F0 as C,ey as F,Vd as G,fy as L,Vy as O,Ld as R,It as _,Ue as a,Sf as b,zt as c,d1 as d,K0 as e,z0 as f,g0 as g,r as j,N as r,Ly as u};
|