ユーザーが要素を削除したり、新しい要素を追加したり、さまざまな順序で再リンクしたりできる、JointJS のプロセス フロー図を実装しています。グラフは、何かが削除、追加、リンク解除、または再リンクされるたびにグラフを再編成するために、joint.layout.DirectedGraph ライブラリの自動レイアウト機能と Dagre を使用しています。奇妙な問題が 1 つ発生しましたが、その処理方法はまだわかりません。
両側に 1 つずつ、2 つの出力ポートと上部に 1 つの入力ポートを持つ「フォーク」プロセスがあるとします。配列内の要素の順序によっては、自動レイアウトによって左側のポートの子要素が右側のポートの子要素の右側に配置されることがあるため、結果のリンクが交差します。
レイアウトのランク順に影響を与える簡単な方法はありますか? 物事が変化したときに配列内の要素を並べ替えて、Dagre の観点から扱いやすくすることができると思いますが、実際に並べ替えが実際にどのように機能するかはわかりません。さらに良いのは、az インデックスに似た属性ですが、左から右へのバイアスを設定でき、Dagre がそれを尊重しますが、そのようなものがコードに隠れているとは思いません。
このような発生を解消するためにレイアウトをスクラブする方法について、誰かアイデアや提案はありますか?
よろしくお願いします!