@foblex/flow-elk-layout

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

Foblex Flow的ELK.js布局引擎适配器.

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

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

@foblex/flow-elk-layout 添加手动版式适配器 ELK.js (爱尔兰语) 内 Foblex 流动。 。 。 .

当您需要比简单的定向树更丰富的布局策略时使用此软件包,并想要访问分层的,光圈的,力风格的,或者其他的ELK.js算法,同时仍然通过Foblex Flow渲染和相互作用.

安装

最简单的路径是:

ng add @foblex/flow-elk-layout

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

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

Nx 工作空间 :

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

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

  • @foblex/flow
  • @foblex/platform
  • @foblex/mediator
  • @foblex/2d
  • @foblex/utils
  • eLK.js软件包本身

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

如果您喜欢手工安装 :

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

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

引擎会做什么

ElkLayoutEngine 从 :

  • 节点标识
  • 可选节点大小
  • 源/目标连接
  • 共享布局选项, 如方向、 间隔和算法
  • 可选的 ELK.js 特性 layoutOptions

引擎返回时只计算出节点位置. 您的应用程序仍然负责国家管理 以及将这些职位应用到您的图表模型.

对于力量,射线,随机等非方向算法,或以包装为导向的模式,示例集成可以将连接器切换为计算模式,因此连接锚按实际节点几何而不是固定的左/右或上/下规则.

最小设置

import { Component, inject } from '@angular/core';
import {
  EFLayoutDirection,
  IFLayoutConnection,
  IFLayoutNode,
  provideFLayout,
} from '@foblex/flow';
import {
  EElkLayoutAlgorithm,
  ElkLayoutEngine,
} from '@foblex/flow-elk-layout';

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

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

    const result = await this._layout.calculate(nodes, connections, {
      direction: EFLayoutDirection.TOP_BOTTOM,
      algorithm: EElkLayoutAlgorithm.LAYERED,
      nodeGap: 32,
      layerGap: 48,
      layoutOptions: {
        'elk.layered.spacing.nodeNodeBetweenLayers': '64',
      },
    });

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

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

主要选项

  • direction数字 : EFLayoutDirection
  • algorithm数字 : EElkLayoutAlgorithm
  • nodeGap: 节点之间的间隔
  • layerGap: 布局层之间的间隔
  • defaultNodeSize: 当节点不提供时倒数大小 size
  • layoutOptions:原始的 ELK.js 选项传递给引擎

可用的算法 :

  • EElkLayoutAlgorithm.FIXED
  • EElkLayoutAlgorithm.BOX
  • EElkLayoutAlgorithm.RANDOM
  • EElkLayoutAlgorithm.LAYERED
  • EElkLayoutAlgorithm.STRESS
  • EElkLayoutAlgorithm.MRTREE
  • EElkLayoutAlgorithm.RADIAL
  • EElkLayoutAlgorithm.FORCE
  • EElkLayoutAlgorithm.DISCO
  • EElkLayoutAlgorithm.SPORE_OVERLAP
  • EElkLayoutAlgorithm.SPORE_COMPACTION
  • EElkLayoutAlgorithm.RECT_PACKING

典型的一体化流动

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

示例

当选择 ELK.js

需要时选择 ELK.js :

  • 更多布局算法
  • 更丰富的间隔和路由控制
  • 密度或更小的树状图
  • 您可以通过原始 ELK.js 选项进一步调取引擎

版本与发布记录

@foblex/flow-elk-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-elk-layout 的常见问题

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

Foblex Flow的ELK.js布局引擎适配器.

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

在项目目录运行 npm install @foblex/flow-elk-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-elk-layout 支持 TypeScript 吗?

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

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

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

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

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

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

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

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

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