app.extensionManager.registerSidebarTab({
id: "dynamicSidebar",
icon: "pi pi-chart-line",
title: "統計",
type: "custom",
render: (el) => {
const container = document.createElement('div');
container.style.padding = '10px';
el.appendChild(container);
// 統計情報を更新する関数
function updateStats() {
const stats = {
nodes: app.graph._nodes.length,
connections: Object.keys(app.graph.links).length
};
container.innerHTML = `
<h3>ワークフロー統計</h3>
<ul>
<li>ノード数:${stats.nodes}</li>
<li>接続数:${stats.connections}</li>
</ul>
`;
}
// 初期更新
updateStats();
// グラフの変更をリッスン
const api = app.api;
api.addEventListener("graphChanged", updateStats);
// タブが破棄されたときにリスナーをクリーンアップ
return () => {
api.removeEventListener("graphChanged", updateStats);
};
}
});