@foblex/flow-dagre-layout

中文文档
19.4.0发布于 2026/10/25MITTypeScriptESM + CJS近 30 天下载 1.4万

Foblex Flow的Dagre排版引擎适配器.

中文使用文档
文档目录7 节
  1. 安装
  2. 引擎会做什么
  3. 最小设置
  4. 主要选项
  5. 典型的一体化流动
  6. 示例
  7. 选择达格尔时

@ foblex/ flow- targle- layout (英语)

@foblex/flow-dagre-layout 添加手动版式适配器 达格尔 内 Foblex 流动。 。 。 .

当您的图形大多是分级的时使用此软件包, 您想要对工作流程、 树、 依赖性地图或 Org- chart 样式编辑器进行可预测的左到右或上到下布局 .

安装

最简单的路径是:

ng add @foblex/flow-dagre-layout

如果您的应用程序已经单独管理了流程样式, 您可以跳过默认的主题线程 :

ng add @foblex/flow-dagre-layout --skipTheme

Nx 工作空间 :

nx g @foblex/flow-dagre-layout:add

ng add 确保这些软件包存在, 只添加缺失的软件包 :

  • @foblex/flow
  • @foblex/platform
  • @foblex/mediator
  • @foblex/2d
  • @foblex/utils
  • 达格雷包本身

它还说 node_modules/@foblex/flow/styles/default.scss 改为缺少主题条目时的应用程序样式.

如果您喜欢手工安装 :

npm install @foblex/flow @foblex/flow-dagre-layout @foblex/platform@^1.0.4 @foblex/mediator@^1.1.3 @foblex/2d@^1.2.2 @foblex/utils@^1.1.1

基础 dagre 软件包作为此软件包的运行时依赖性被运出,所以不需要单独安装.

引擎会做什么

DagreLayoutEngine 从 :

  • 节点标识
  • 可选节点大小
  • 源/目标连接
  • 方向、间隔和算法等布局选项

引擎返回时只计算出节点位置. 您的应用程序继续负责图态 并决定如何将这些位置 合并回您的节点模型.

最小设置

import { Component, inject } from '@angular/core';
import {
  EFLayoutDirection,
  IFLayoutConnection,
  IFLayoutNode,
  provideFLayout,
} from '@foblex/flow';
import {
  DagreLayoutEngine,
  EDagreLayoutAlgorithm,
} from '@foblex/flow-dagre-layout';

@Component({
  standalone: true,
  providers: [provideFLayout(DagreLayoutEngine)],
  template: '',
})
export class WorkflowLayoutExample {
  private readonly _layout = inject(DagreLayoutEngine);

  protected async relayout(): Promise<void> {
    const nodes: IFLayoutNode[] = [
      { id: 'A' },
      { id: 'B' },
      { id: 'C' },
    ];
    const connections: IFLayoutConnection[] = [
      { source: 'A', target: 'B' },
      { source: 'B', target: 'C' },
    ];

    const result = await this._layout.calculate(nodes, connections, {
      direction: EFLayoutDirection.LEFT_RIGHT,
      algorithm: EDagreLayoutAlgorithm.NETWORK_SIMPLEX,
      nodeGap: 32,
      layerGap: 48,
    });

    const positions = new Map(result.nodes.map((node) => [node.id, node.position]));

    console.log(positions.get('A'));
  }
}

主要选项

  • direction数字 : EFLayoutDirection
  • algorithm数字 : EDagreLayoutAlgorithm
  • nodeGap: 水平间距或兄弟姐妹间距
  • layerGap: 等级间距
  • defaultNodeSize: 当节点不提供时倒数大小 size

可用的算法 :

  • EDagreLayoutAlgorithm.NETWORK_SIMPLEX
  • EDagreLayoutAlgorithm.TIGHT_TREE
  • EDagreLayoutAlgorithm.LONGEST_PATH

典型的一体化流动

  1. 建立自己的图表数据.
  2. 转换为 IFLayoutNode[] 财务报告和审定财务报表 IFLayoutConnection[]。 。 。 .
  3. 打电话 calculate(...)。 。 。 .
  4. 将返回的位置合并到您的视图模型中 .
  5. 显示节点 f-flow。 。 。 .

示例

选择达格尔时

需要时选择达格:

  • 快速定向布局
  • 树状或分层结构
  • 简单和可预测的间隔控制
  • 一个比ELK.js小的选项表面

版本与发布记录

@foblex/flow-dagre-layout 共发布 15 个版本,首次发布于 2026/04/14;过去 12 个月发布了 15 个版本。

版本发布日期距今
19.4.0latest2026/10/2521 天前
19.3.02026/09/281 个月前
19.2.02026/09/211 个月前
19.1.72026/09/062 个月前
19.1.62026/07/283 个月前
19.1.52026/07/283 个月前

关于 @foblex/flow-dagre-layout 的常见问题

@foblex/flow-dagre-layout 是什么?

Foblex Flow的Dagre排版引擎适配器.

如何安装 @foblex/flow-dagre-layout?

在项目目录运行 npm install @foblex/flow-dagre-layout,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@foblex/flow(^19.4.0)、@angular/core(>=17.3.0)、@angular/common(>=17.3.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@foblex/flow-dagre-layout 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@foblex/flow-dagre-layout 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@foblex/flow-dagre-layout 可以商用吗?

@foblex/flow-dagre-layout 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@foblex/flow-dagre-layout 的下载量有多少?

根据 npm 官方下载统计,@foblex/flow-dagre-layout 在 2026/10/15 – 2026/11/13 这 30 天内被下载 13,558 次,日均约 452 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@foblex/flow-dagre-layout 还在维护吗?

最新版本 19.4.0 发布于 2026/10/25(21 天前);至今共发布 15 个版本,其中过去 12 个月发布了 15 个;首次发布于 2026/04/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。