ggn-layout 0.0.0-stage → 0.1.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/LICENSES/EPL-2.0.txt +80 -0
  4. package/README.md +85 -2
  5. package/THIRD_PARTY_NOTICES.md +37 -0
  6. package/dist/algorithms-CNhihjzf.js +1 -0
  7. package/dist/algorithms-DXUI06fi.cjs +1 -0
  8. package/dist/api/index.cjs +1 -0
  9. package/dist/api/index.d.cts +4 -0
  10. package/dist/api/index.d.ts +4 -0
  11. package/dist/api/index.js +1 -0
  12. package/dist/api/layered.cjs +1 -0
  13. package/dist/api/layered.d.cts +3 -0
  14. package/dist/api/layered.d.ts +3 -0
  15. package/dist/api/layered.js +1 -0
  16. package/dist/api-BRaDa6RG.js +4 -0
  17. package/dist/api-DWBi7ngO.cjs +4 -0
  18. package/dist/elk-json-B9eLYtu6.js +1 -0
  19. package/dist/elk-json-BtGnwuQE.cjs +1 -0
  20. package/dist/elk-json-ibWtLFj2.d.cts +595 -0
  21. package/dist/elk-json-ibWtLFj2.d.ts +595 -0
  22. package/dist/index-C_0jvfEV.d.ts +124 -0
  23. package/dist/index-Dl2hrLFA.d.cts +124 -0
  24. package/dist/index.cjs +1 -0
  25. package/dist/index.d.cts +6 -0
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.js +1 -0
  28. package/dist/internal-BOuvVTiR.d.cts +342 -0
  29. package/dist/internal-Coxrnk9C.d.ts +342 -0
  30. package/dist/internal.cjs +1 -0
  31. package/dist/internal.d.cts +4 -0
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +1 -0
  34. package/dist/layered-options-COPhjoOB.d.ts +6 -0
  35. package/dist/layered-options-Dm7nJC1R.d.cts +6 -0
  36. package/dist/layout-worker.cjs +1 -0
  37. package/dist/layout-worker.d.cts +7 -0
  38. package/dist/layout-worker.d.ts +7 -0
  39. package/dist/layout-worker.js +1 -0
  40. package/dist/options.cjs +1 -0
  41. package/dist/options.d.cts +16 -0
  42. package/dist/options.d.ts +16 -0
  43. package/dist/options.js +1 -0
  44. package/dist/validate-B9vX3T2G.d.cts +62 -0
  45. package/dist/validate-B9vX3T2G.d.ts +62 -0
  46. package/docs/API-QUICKREF.md +66 -0
  47. package/docs/API.md +159 -0
  48. package/docs/reference/README.md +20 -0
  49. package/docs/reference/elk-algorithm-catalog.md +153 -0
  50. package/docs/reference/elk-algorithm-guide.md +160 -0
  51. package/docs/reference/elk-edge-routing-investigation.md +215 -0
  52. package/docs/reference/elk-json-format.md +119 -0
  53. package/docs/reference/elk-layout-options-mechanism.md +103 -0
  54. package/docs/reference/elk-layout-options.md +300 -0
  55. package/docs/reference/elk-node-labels.md +66 -0
  56. package/docs/reference/elk-spacing-options.md +93 -0
  57. package/docs/reference/elkjs-feature-coverage.md +100 -0
  58. package/examples/basic.ts +14 -0
  59. package/examples/coords-modes.ts +23 -0
  60. package/examples/nested.ts +21 -0
  61. package/llms.txt +29 -0
  62. package/package.json +158 -4
  63. package/src/api/layout-input.schema.json +165 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ # Changelog
2
+
3
+ 本文件记录 `ggn-layout` 面向使用者的变更。格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
4
+ 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)(0.x 期间仍可能出 breaking change,会在下方标注)。
5
+
6
+ ## [Unreleased]
7
+
8
+ ## [0.1.0]
9
+
10
+ 首个公开发布(从 GGN monorepo 拆出的独立包)。
11
+
12
+ ### 新增
13
+
14
+ - `layoutElkJson(input, options?)`:标准图 JSON → 带节点几何与边 `sections` 的新 JSON;纯函数、默认 `randomSeed` 为 1。
15
+ - 复合能力:`layoutJsonBatch`(批量 + 逐项隔离)、`diffLayout` / `layoutJsonDiff`(布局差异)、
16
+ `control: { signal, onProgress }`(进度 + 合作式取消)。
17
+ - `responseFormat` 三档输出:`full` / `concise` / `summary`;`pick` 追加保留节点字段。
18
+ - 子路径入口:`ggn-layout/api`、`ggn-layout/core`、`ggn-layout/options`、`ggn-layout/layered`、`ggn-layout/layout-worker`;
19
+ 每个入口提供 ESM + CJS 产物与各自的 `.d.ts`/`.d.cts`。
20
+ - `ggn-layout/layout-input.schema.json`:`LayoutInput` 的 JSON Schema (draft-07)。
21
+ - 结构化错误:`LayoutError` / `LayoutErrorCode` / `validateLayoutInput` / `assertValidLayoutInput`。
22
+ - 已移植 14 个 ELK Java 0.12.0 布局算法:layered(默认)+ box/fixed/random/stress/force/rectpacking/
23
+ topdownpacking/sporeoverlap/sporecompaction/radial/vertiflex/disco/mrtree(完整入口注册)。
24
+
25
+ ### 说明
26
+
27
+ - 本包是 Eclipse Layout Kernel (ELK) Layered 的 TypeScript 1:1 移植;第三方许可与来源范围见
28
+ [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md),EPL-2.0 全文见 [`LICENSES/EPL-2.0.txt`](LICENSES/EPL-2.0.txt)。
29
+ - 已知有意差异:为消除比较器不自洽导致的层内顺序跨 JS 引擎漂移,
30
+ `ModelOrderBarycenterHeuristic` 的传递关联记录方向与 ELK Java 相反(见 `docs/PORTING.md` §6.17)。
31
+
32
+ [Unreleased]: https://github.com/0xlxx/ggn-layout/compare/v0.1.0...HEAD
33
+ [0.1.0]: https://github.com/0xlxx/ggn-layout/releases/tag/v0.1.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GGN contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,80 @@
1
+ Eclipse Public License - v 2.0
2
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
3
+
4
+ 1. DEFINITIONS
5
+ “Contribution” means:
6
+
7
+ a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
8
+ b) in the case of each subsequent Contributor:
9
+ i) changes to the Program, and
10
+ ii) additions to the Program;
11
+ where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
12
+ “Contributor” means any person or entity that Distributes the Program.
13
+
14
+ “Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
15
+
16
+ “Program” means the Contributions Distributed in accordance with this Agreement.
17
+
18
+ “Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.
19
+
20
+ “Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
21
+
22
+ “Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.
23
+
24
+ “Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.
25
+
26
+ “Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.
27
+
28
+ “Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.
29
+
30
+ 2. GRANT OF RIGHTS
31
+ a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
32
+ b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
33
+ c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
34
+ d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
35
+ e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).
36
+ 3. REQUIREMENTS
37
+ 3.1 If a Contributor Distributes the Program in any form, then:
38
+
39
+ a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
40
+ b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:
41
+ i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
42
+ ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
43
+ iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and
44
+ iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3.
45
+ 3.2 When the Program is Distributed as Source Code:
46
+
47
+ a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
48
+ b) a copy of this Agreement must be included with each copy of the Program.
49
+ 3.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.
50
+
51
+ 4. COMMERCIAL DISTRIBUTION
52
+ Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
53
+
54
+ For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
55
+
56
+ 5. NO WARRANTY
57
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
58
+
59
+ 6. DISCLAIMER OF LIABILITY
60
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
61
+
62
+ 7. GENERAL
63
+ If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
64
+
65
+ If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
66
+
67
+ All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
68
+
69
+ Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.
70
+
71
+ Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.
72
+
73
+ Exhibit A – Form of Secondary Licenses Notice
74
+ “This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}.”
75
+
76
+ Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.
77
+
78
+ If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
79
+
80
+ You may add additional accurate notices of copyright ownership.
package/README.md CHANGED
@@ -1,3 +1,86 @@
1
- # Temporary Holding Version
1
+ # ggn-layout
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 把标准图 JSON 布局成带节点几何、端口位置和边 `sections` 的新 JSON;普通消费方只需要一个纯函数入口。
4
+
5
+ ## 安装
6
+
7
+ ```sh
8
+ npm install ggn-layout
9
+ # 或
10
+ pnpm add ggn-layout
11
+ ```
12
+
13
+ ## 最小示例
14
+
15
+ ```ts
16
+ import { layoutElkJson } from 'ggn-layout'
17
+ const input = { id: 'root', children: [{ id: 'A' }, { id: 'B' }], edges: [{ id: 'A-to-B', sources: ['A'], targets: ['B'] }] }
18
+ const output = layoutElkJson(input)
19
+ console.log(output.children, output.edges?.[0]?.sections)
20
+ ```
21
+
22
+ ## 文档导航
23
+
24
+ - [`docs/API-QUICKREF.md`](docs/API-QUICKREF.md):单页速查,适合首次调用和 AI agent。
25
+ - [`docs/API.md`](docs/API.md):完整输入、输出、坐标模式和验证说明。
26
+ - [`llms.txt`](llms.txt):机器优先的入口、路径和错误契约索引。
27
+ - [`examples/`](examples/):可用 `bun examples/basic.ts` 直接运行的 basic、nested、coords-modes 示例。
28
+
29
+ ## API 契约要点
30
+
31
+ - **主入口**:`layoutElkJson(input, options?)` 是面向消费方的高层 API;输入是标准图 JSON,返回全新对象。复合能力:`layoutJsonBatch`(批量+逐项隔离)、`diffLayout`/`layoutJsonDiff`(布局差异)、`control: { signal, onProgress }`(进度+合作式取消)。
32
+ - **纯函数**:不会修改传入的 `input`;同一输入与同一选项在同一版本下结果确定,默认 `randomSeed` 为 `1`。
33
+ CI 在 V8(Node 20/22)与 JavaScriptCore(Bun)双引擎上复跑纯算法单测,用于拦截「结果依赖引擎排序实现」的顺序漂移;跨引擎断言的范围是那批纯算法用例,不等同于对全部输出做逐位比对。
34
+ - **失败方式**:非法输入或不支持的算法抛出结构化 `LayoutError`,可读取 `code`、`path`、`retryable` 和可选 `phase/details`。
35
+ - **输出形态**:`responseFormat` 三档——`full`(默认,完整保真 JSON)、`concise`(只留节点几何 + 边端点,省 token)、`summary`(扁平摘要 `{nodes, edges}`,不含 root 自身、只含已路由边)。`pick` 仅在 `full` 下追加保留的节点字段。
36
+ - **类型收紧**:`direction` 为 `'RIGHT'|'LEFT'|'DOWN'|'UP'` 字面量联合(持 `string` 变量的旧调用需收窄类型);新增 `LayoutInput`/`LayoutOutput`/`LayoutSummary` 类型(命名不含 ELK)。
37
+ - **命名说明**:公共入口沿用标准 JSON 生态中的 `layoutElkJson` 与相关类型;新增公共符号、文件名和技能名不使用 `ELK`/`Elk`,以避免把实现来源误当成调用层级。
38
+ - **边界**:内部 `LGraph`、`LNode`、provider 和属性模型不属于消费方公共契约;历史 `src/index.ts` 仅作为仓库兼容入口保留。
39
+
40
+ ## 子路径导入
41
+
42
+ 按使用层级选择发布入口:
43
+
44
+ - ggn-layout:兼容根入口,包含高层 API 与历史内部导出。
45
+ - ggn-layout/api:高层布局 API、校验、错误和布局输入/输出类型。
46
+ - ggn-layout/core:引擎内部模型与低层组装原语。
47
+ - ggn-layout/options:稳定选项类型、HIERARCHY_HANDLING 以及算法识别工具。
48
+ - ggn-layout/layered:仅分层算法(ELK Layered)入口,不打包其余算法。
49
+ - ggn-layout/layout-worker:Web Worker 外壳,`import` 即自动接管 `self.onmessage`。
50
+ - ggn-layout/layout-input.schema.json:机器可读的 LayoutInput JSON Schema(draft-07)。
51
+
52
+ 普通消费方优先使用 ggn-layout 或 ggn-layout/api;只有需要引擎级能力时才使用 core。
53
+ 六个 JS 入口都提供 ESM + CJS 双份产物与各自的 `.d.ts`/`.d.cts` 类型。
54
+
55
+ ## 开发
56
+
57
+ 构建需要 Node ≥ 22.18(`tsdown` 的 engines 要求);库本身运行在 Node ≥ 20,CI 在 Node 20/22 上跑测试。
58
+
59
+ ```sh
60
+ bun install
61
+ bun run typecheck
62
+ bun run test:ci
63
+ bun run build
64
+ bun run smoke:pack # 打包产物门禁: 装进临时消费方跑完整/layered 双入口 (ESM+CJS)
65
+ ```
66
+
67
+ `test:ci` 会跳过体量很大的 `tests/oracle/generated/**` 批次,但覆盖其余单元、BDD
68
+ 和契约测试。完整测试可用 `bun run test:run`。第二套引擎(JavaScriptCore/Bun)用
69
+ `bun run test:cross-engine`;包元数据用 `npx publint` 与 `npx @arethetypeswrong/cli --pack .` 检查。
70
+
71
+ ## 发布
72
+
73
+ ```sh
74
+ bun run build
75
+ npm publish
76
+ ```
77
+
78
+ `prepublishOnly` 会再次构建发布产物。正式发布会走
79
+ [`.github/workflows/release.yml`](.github/workflows/release.yml):打 `v*` tag 后由
80
+ GitHub Actions 以 npm Trusted Publishing(OIDC)发布并附带 provenance 证明。
81
+ 手工发布仅在 Actions 不可用时使用。
82
+
83
+ ## 许可证
84
+
85
+ MIT。项目是 Eclipse Layout Kernel (ELK) Layered 的 TypeScript 移植,
86
+ 移植来源、测试数据和第三方许可说明见 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md)。
@@ -0,0 +1,37 @@
1
+ # Third-Party Notices
2
+
3
+ This project is a TypeScript port of the layered graph layout implementation
4
+ from the Eclipse Layout Kernel (ELK).
5
+
6
+ ## Eclipse Layout Kernel
7
+
8
+ - Project: Eclipse Layout Kernel (ELK)
9
+ - Website: https://www.eclipse.org/elk/
10
+ - Source: https://github.com/eclipse/elk
11
+ - License: Eclipse Public License 2.0 (EPL-2.0)
12
+
13
+ EPL-2.0 全文见 [`LICENSES/EPL-2.0.txt`](LICENSES/EPL-2.0.txt)。
14
+
15
+ **来源范围**(哪些内容源自 ELK):
16
+
17
+ - `src/**` 的算法实现:`org.eclipse.elk.alg.layered`(`p1..p5` 各阶段处理器)与
18
+ `org.eclipse.elk.alg.{force,rectpacking,topdownpacking,spore,radial,vertiflex,disco,mrtree}`、
19
+ `org.eclipse.elk.core.util`(box/fixed/random)的 1:1 TypeScript 移植;
20
+ 移植保持类名、方法名、变量名与算法结构一致,以便逐行对照。
21
+ - `src/options/**`:ELK `CoreOptions` / `LayeredOptions` 等选项定义(选项 id、类型、默认值)的对照表。
22
+ - `tests/oracle/**`、`test-resources/**`:ELK 官方测试用例与公开模型集合派生/校验的图模型与期望输出。
23
+ - `docs/reference/**`:ELK 官方文档(算法结构、选项机制、JSON 格式、间距选项等)的移植/导读。
24
+
25
+ **本仓库自有内容**:对外 API 设计(`layoutElkJson` 等)、校验与错误契约、worker 外壳、
26
+ 构建/发布工程与本文档,均为 GGN 项目新增,以 MIT 授权(见 [`LICENSE`](LICENSE))。
27
+
28
+ > 注意:`src/**` 中的算法实现属 ELK 的**衍生作品**,因此对这些文件的重新分发需满足 EPL-2.0 的
29
+ > 义务(保留版权与许可声明、以 EPL-2.0 授权该等文件、提供获取源码的途径等)。EPL-2.0 允许
30
+ > 与其他许可(此处为 MIT)的独立模块组合分发("Secondary License"/separate module 机制)。
31
+ > 下游使用者如要再分发,请自行复核 EPL-2.0 义务。
32
+
33
+ ## Test Models
34
+
35
+ Some files under `test-resources/` are graph models and expected outputs that
36
+ originate from ELK test suites or public research/industry model collections.
37
+ Their original attribution and license terms remain with the upstream sources.
@@ -0,0 +1 @@
1
+ const e=[],t=/* @__PURE__ */ new Map;function n(n){let r=n.getId(),i=t.get(r);i===void 0&&(i={id:r,slot:e.length,defaultValue:n.getDefault()},e.push(i),t.set(r,i)),n.slot=i.slot}function r(n,r=void 0){if(t.has(n))return;let i={id:n,slot:e.length,defaultValue:r};e.push(i),t.set(n,i)}var i=class e{id;defaultValue;slot=-1;constructor(e,t){this.id=e,this.defaultValue=t}getId(){return this.id}getDefault(){return this.defaultValue}equals(t){return t instanceof e&&this.id===t.id}toString(){return this.id}},a=class{propertyMap=null;fast=null;setProperty(e,n){if(typeof e==`string`){let r=t.get(e);if(r!==void 0)return this.setFast(r.slot,n),this}else{let t=e.slot;if(t>=0)return this.setFast(t,n),this}let r=typeof e==`string`?e:e.getId();return n==null?this.getProperties().delete(r):this.getProperties().set(r,n),this}getProperty(n){let r=-1;if(typeof n==`string`){let e=t.get(n);e!==void 0&&(r=e.slot)}else r=n.slot;if(r>=0){let t=this.fast;if(t!==null){let e=t[r];if(e!==void 0)return e}let n=e[r].defaultValue;return typeof n==`object`&&n&&((this.fast??=[])[r]=n),n}let i=this.propertyMap;if(i){let e=i.get(typeof n==`string`?n:n.getId());if(e!==void 0)return e}if(typeof n==`string`)return;let a=n.getDefault();return typeof a==`object`&&a&&this.getProperties().set(n.getId(),a),a}hasProperty(e){if(typeof e==`string`){let n=t.get(e);if(n!==void 0)return this.fast!==null&&this.fast[n.slot]!==void 0}else{let t=e.slot;if(t>=0)return this.fast!==null&&this.fast[t]!==void 0}return this.propertyMap!==null&&this.propertyMap.has(typeof e==`string`?e:e.getId())}copyProperties(t){if(!t)return this;let n=t.getAllProperties();if(n.size>0)for(let[e,t]of n)this.setProperty(e,t);let r=t.fast;if(r!==null)for(let t=0;t<r.length;t++){let n=r[t];n!==void 0&&e[t]!==void 0&&((this.fast??=[])[t]=n)}return this}getAllProperties(){return this.propertyMap??ee}setFast(e,t){if(t==null){let t=this.fast;t!==null&&(t[e]=void 0)}else(this.fast??=[])[e]=t}getProperties(){return this.propertyMap||=/* @__PURE__ */ new Map,this.propertyMap}};const ee=/* @__PURE__ */ new Map;function o(e){return e}const s={padding:o({id:`org.eclipse.elk.padding`,shortKey:`padding`,type:`object`,default:{top:12,left:12,right:12,bottom:12},algorithm:`core`}),margins:o({id:`org.eclipse.elk.margins`,shortKey:`margins`,type:`num`,default:0,algorithm:`core`}),spacingNodeNode:o({id:`org.eclipse.elk.spacing.nodeNode`,shortKey:`spacing.nodeNode`,type:`num`,default:20,algorithm:`core`}),spacingEdgeNode:o({id:`org.eclipse.elk.spacing.edgeNode`,shortKey:`spacing.edgeNode`,type:`num`,default:10,algorithm:`core`}),spacingEdgeEdge:o({id:`org.eclipse.elk.spacing.edgeEdge`,shortKey:`spacing.edgeEdge`,type:`num`,default:10,algorithm:`core`}),spacingEdgeLabel:o({id:`org.eclipse.elk.spacing.edgeLabel`,shortKey:`spacing.edgeLabel`,type:`num`,default:2,algorithm:`core`}),spacingComponentComponent:o({id:`org.eclipse.elk.spacing.componentComponent`,shortKey:`spacing.componentComponent`,type:`num`,default:20,algorithm:`core`}),aspectRatio:o({id:`org.eclipse.elk.aspectRatio`,shortKey:`aspectRatio`,type:`num`,default:1.6,algorithm:`core`}),priority:o({id:`org.eclipse.elk.priority`,shortKey:`priority`,type:`num`,default:1,algorithm:`core`}),separateConnectedComponents:o({id:`org.eclipse.elk.separateConnectedComponents`,shortKey:`separateConnectedComponents`,type:`bool`,default:!0,algorithm:`core`}),omitNodeMicroLayout:o({id:`org.eclipse.elk.omitNodeMicroLayout`,shortKey:`omitNodeMicroLayout`,type:`bool`,default:!1,algorithm:`core`}),nodeSizeFixedGraphSize:o({id:`org.eclipse.elk.nodeSize.fixedGraphSize`,shortKey:`nodeSize.fixedGraphSize`,type:`bool`,default:!1,algorithm:`core`}),position:o({id:`org.eclipse.elk.position`,shortKey:`position`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),direction:o({id:`org.eclipse.elk.direction`,shortKey:`direction`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),debugMode:o({id:`org.eclipse.elk.debugMode`,shortKey:`debugMode`,type:`bool`,default:!1,algorithm:`core`}),interactive:o({id:`org.eclipse.elk.interactive`,shortKey:`interactive`,type:`bool`,default:!1,algorithm:`core`}),randomSeed:o({id:`org.eclipse.elk.randomSeed`,shortKey:`randomSeed`,type:`num`,default:1,algorithm:`core`}),edgeThickness:o({id:`org.eclipse.elk.edge.thickness`,shortKey:`edge.thickness`,type:`num`,default:1,algorithm:`core`}),edgeLabelsInline:o({id:`org.eclipse.elk.edgeLabels.inline`,shortKey:`edgeLabels.inline`,type:`bool`,default:!1,algorithm:`core`}),nodeSizeConstraints:o({id:`org.eclipse.elk.nodeSize.constraints`,shortKey:`nodeSize.constraints`,type:`enumset`,default:[],values:[`PORTS`,`PORT_LABELS`,`NODE_LABELS`,`MINIMUM_SIZE`],algorithm:`core`}),nodeSizeMinimum:o({id:`org.eclipse.elk.nodeSize.minimum`,shortKey:`nodeSize.minimum`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),contentAlignment:o({id:`org.eclipse.elk.contentAlignment`,shortKey:`contentAlignment`,type:`enumset`,default:[],values:[`V_TOP`,`V_CENTER`,`V_BOTTOM`,`H_LEFT`,`H_CENTER`,`H_RIGHT`],algorithm:`core`}),underlyingLayoutAlgorithm:o({id:`org.eclipse.elk.underlyingLayoutAlgorithm`,shortKey:`underlyingLayoutAlgorithm`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),structureExtractionStrategy:o({id:`org.eclipse.elk.structure.structureExtractionStrategy`,shortKey:`structure.structureExtractionStrategy`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),childAreaWidth:o({id:`org.eclipse.elk.childArea.width`,shortKey:`childArea.width`,type:`num`,default:0,algorithm:`core`}),childAreaHeight:o({id:`org.eclipse.elk.childArea.height`,shortKey:`childArea.height`,type:`num`,default:0,algorithm:`core`}),spacingIndividual:o({id:`org.eclipse.elk.spacing.individual`,shortKey:`spacing.individual`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),portConstraints:o({id:`org.eclipse.elk.portConstraints`,shortKey:`portConstraints`,type:`str`,default:`UNDEFINED`,values:[`UNDEFINED`,`FREE`,`FIXED_SIDE`,`FIXED_SIDES`,`FIXED_ORDER`,`FIXED_RATIO`,`FIXED_POS`],algorithm:`core`})},c={radial:{centerOnRoot:o({id:`org.eclipse.elk.radial.centerOnRoot`,shortKey:`radial.centerOnRoot`,type:`bool`,default:!1,algorithm:`radial`}),orderId:o({id:`org.eclipse.elk.radial.orderId`,shortKey:`radial.orderId`,type:`num`,default:0,algorithm:`radial`}),radius:o({id:`org.eclipse.elk.radial.radius`,shortKey:`radial.radius`,type:`num`,default:0,algorithm:`radial`}),rotate:o({id:`org.eclipse.elk.radial.rotate`,shortKey:`radial.rotate`,type:`bool`,default:!1,algorithm:`radial`}),rotationTargetAngle:o({id:`org.eclipse.elk.radial.rotation.targetAngle`,shortKey:`radial.rotation.targetAngle`,type:`num`,default:0,algorithm:`radial`}),rotationComputeAdditionalWedgeSpace:o({id:`org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace`,shortKey:`radial.rotation.computeAdditionalWedgeSpace`,type:`bool`,default:!1,algorithm:`radial`}),rotationOutgoingEdgeAngles:o({id:`org.eclipse.elk.radial.rotation.outgoingEdgeAngles`,shortKey:`radial.rotation.outgoingEdgeAngles`,type:`bool`,default:!1,algorithm:`radial`}),compactor:o({id:`org.eclipse.elk.radial.compactor`,shortKey:`radial.compactor`,type:`str`,default:`NONE`,values:[`NONE`,`RADIAL_COMPACTION`,`WEDGE_COMPACTION`],algorithm:`radial`}),compactionStepSize:o({id:`org.eclipse.elk.radial.compactionStepSize`,shortKey:`radial.compactionStepSize`,type:`num`,default:1,algorithm:`radial`}),sorter:o({id:`org.eclipse.elk.radial.sorter`,shortKey:`radial.sorter`,type:`str`,default:`NONE`,values:[`NONE`,`POLAR_COORDINATE`,`ID`],algorithm:`radial`}),wedgeCriteria:o({id:`org.eclipse.elk.radial.wedgeCriteria`,shortKey:`radial.wedgeCriteria`,type:`str`,default:`NODE_SIZE`,values:[`LEAF_NUMBER`,`NODE_SIZE`],algorithm:`radial`}),optimizationCriteria:o({id:`org.eclipse.elk.radial.optimizationCriteria`,shortKey:`radial.optimizationCriteria`,type:`str`,default:`NONE`,values:[`NONE`,`EDGE_LENGTH`,`EDGE_LENGTH_BY_POSITION`,`CROSSING_MINIMIZATION_BY_POSITION`],algorithm:`radial`})},mrtree:{weighting:o({id:`org.eclipse.elk.mrtree.weighting`,shortKey:`mrtree.weighting`,type:`str`,default:`MODEL_ORDER`,values:[`MODEL_ORDER`,`DESCENDANTS`,`FAN`,`CONSTRAINT`],algorithm:`mrtree`}),searchOrder:o({id:`org.eclipse.elk.mrtree.searchOrder`,shortKey:`mrtree.searchOrder`,type:`str`,default:`DFS`,values:[`DFS`,`BFS`],algorithm:`mrtree`}),positionConstraint:o({id:`org.eclipse.elk.mrtree.positionConstraint`,shortKey:`mrtree.positionConstraint`,type:`num`,default:-1,algorithm:`mrtree`}),edgeRoutingMode:o({id:`org.eclipse.elk.mrtree.edgeRoutingMode`,shortKey:`mrtree.edgeRoutingMode`,type:`str`,default:`AVOID_OVERLAP`,values:[`NONE`,`MIDDLE_TO_MIDDLE`,`AVOID_OVERLAP`],algorithm:`mrtree`}),treeLevel:o({id:`org.eclipse.elk.mrtree.treeLevel`,shortKey:`mrtree.treeLevel`,type:`num`,default:0,algorithm:`mrtree`}),compaction:o({id:`org.eclipse.elk.mrtree.compaction`,shortKey:`mrtree.compaction`,type:`bool`,default:!1,algorithm:`mrtree`}),edgeEndTextureLength:o({id:`org.eclipse.elk.mrtree.edgeEndTextureLength`,shortKey:`mrtree.edgeEndTextureLength`,type:`num`,default:7,algorithm:`mrtree`})},disco:{componentCompactionStrategy:o({id:`org.eclipse.elk.disco.componentCompaction.strategy`,shortKey:`disco.componentCompaction.strategy`,type:`str`,default:`POLYOMINO`,values:[`POLYOMINO`],algorithm:`disco`}),componentLayoutAlgorithm:o({id:`org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm`,shortKey:`disco.componentCompaction.componentLayoutAlgorithm`,type:`str`,default:`UNDEFINED`,algorithm:`disco`}),debugDiscoGraph:o({id:`org.eclipse.elk.disco.debug.discoGraph`,shortKey:`disco.debug.discoGraph`,type:`bool`,default:!1,algorithm:`disco`}),debugDiscoPolys:o({id:`org.eclipse.elk.disco.debug.discoPolys`,shortKey:`disco.debug.discoPolys`,type:`bool`,default:!1,algorithm:`disco`}),polyominoFill:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.fill`,shortKey:`alg.common.compaction.polyomino.fill`,type:`bool`,default:!0,algorithm:`disco`}),polyominoLowLevelSort:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.lowLevelSort`,shortKey:`alg.common.compaction.polyomino.lowLevelSort`,type:`str`,default:`BY_SIZE_AND_SHAPE`,values:[`BY_SIZE`,`BY_SIZE_AND_SHAPE`],algorithm:`disco`}),polyominoHighLevelSort:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.highLevelSort`,shortKey:`alg.common.compaction.polyomino.highLevelSort`,type:`str`,default:`NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST`,values:[`CORNER_CASES_THAN_SINGLE_SIDE_LAST`,`NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST`],algorithm:`disco`}),polyominoTraversalStrategy:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.traversalStrategy`,shortKey:`alg.common.compaction.polyomino.traversalStrategy`,type:`str`,default:`QUADRANTS_LINE_BY_LINE`,values:[`SPIRAL`,`LINE_BY_LINE`,`MANHATTAN`,`JITTER`,`QUADRANTS_MANHATTAN`,`QUADRANTS_LINE_BY_LINE`,`COMBINE_LINE_BY_LINE_MANHATTAN`,`COMBINE_JITTER_MANHATTAN`,`QUADRANTS_JITTER`],algorithm:`disco`})},force:{forceModel:o({id:`org.eclipse.elk.force.model`,shortKey:`force.model`,type:`str`,default:`FRUCHTERMAN_REINGOLD`,values:[`FRUCHTERMAN_REINGOLD`,`EADES`],algorithm:`force`}),forceIterations:o({id:`org.eclipse.elk.force.iterations`,shortKey:`force.iterations`,type:`num`,default:300,algorithm:`force`}),forceRepulsivePower:o({id:`org.eclipse.elk.force.repulsivePower`,shortKey:`force.repulsivePower`,type:`num`,default:0,algorithm:`force`}),forceTemperature:o({id:`org.eclipse.elk.force.temperature`,shortKey:`force.temperature`,type:`num`,default:.001,algorithm:`force`}),forceRepulsion:o({id:`org.eclipse.elk.force.repulsion`,shortKey:`force.repulsion`,type:`num`,default:5,algorithm:`force`}),stressFixed:o({id:`org.eclipse.elk.stress.fixed`,shortKey:`stress.fixed`,type:`bool`,default:!1,algorithm:`force`}),stressDesiredEdgeLength:o({id:`org.eclipse.elk.stress.desiredEdgeLength`,shortKey:`stress.desiredEdgeLength`,type:`num`,default:100,algorithm:`force`}),stressDimension:o({id:`org.eclipse.elk.stress.dimension`,shortKey:`stress.dimension`,type:`str`,default:`XY`,values:[`X`,`Y`,`XY`],algorithm:`force`}),stressEpsilon:o({id:`org.eclipse.elk.stress.epsilon`,shortKey:`stress.epsilon`,type:`num`,default:.001,algorithm:`force`}),stressIterationLimit:o({id:`org.eclipse.elk.stress.iterationLimit`,shortKey:`stress.iterationLimit`,type:`num`,default:2147483647,algorithm:`force`})},rectpacking:{widthApproximationStrategy:o({id:`org.eclipse.elk.rectpacking.widthApproximation.strategy`,shortKey:`rectpacking.widthApproximation.strategy`,type:`str`,default:`GREEDY`,values:[`GREEDY`,`TARGET_WIDTH`],algorithm:`rectpacking`}),widthApproximationTargetWidth:o({id:`org.eclipse.elk.rectpacking.widthApproximation.targetWidth`,shortKey:`rectpacking.widthApproximation.targetWidth`,type:`num`,default:-1,algorithm:`rectpacking`}),widthApproximationOptimizationGoal:o({id:`org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal`,shortKey:`rectpacking.widthApproximation.optimizationGoal`,type:`str`,default:`MAX_SCALE_DRIVEN`,values:[`ASPECT_RATIO_DRIVEN`,`MAX_SCALE_DRIVEN`,`AREA_DRIVEN`],algorithm:`rectpacking`}),widthApproximationLastPlaceShift:o({id:`org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift`,shortKey:`rectpacking.widthApproximation.lastPlaceShift`,type:`bool`,default:!0,algorithm:`rectpacking`}),packingStrategy:o({id:`org.eclipse.elk.rectpacking.packing.strategy`,shortKey:`rectpacking.packing.strategy`,type:`str`,default:`COMPACTION`,values:[`COMPACTION`,`SIMPLE`,`NONE`],algorithm:`rectpacking`}),packingCompactionRowHeightReevaluation:o({id:`org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation`,shortKey:`rectpacking.packing.compaction.rowHeightReevaluation`,type:`bool`,default:!1,algorithm:`rectpacking`}),packingCompactionIterations:o({id:`org.eclipse.elk.rectpacking.packing.compaction.iterations`,shortKey:`rectpacking.packing.compaction.iterations`,type:`num`,default:1,algorithm:`rectpacking`}),whiteSpaceEliminationStrategy:o({id:`org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy`,shortKey:`rectpacking.whiteSpaceElimination.strategy`,type:`str`,default:`NONE`,values:[`NONE`,`EQUAL_BETWEEN_STRUCTURES`,`TO_ASPECT_RATIO`],algorithm:`rectpacking`}),trybox:o({id:`org.eclipse.elk.rectpacking.trybox`,shortKey:`rectpacking.trybox`,type:`bool`,default:!1,algorithm:`rectpacking`}),orderBySize:o({id:`org.eclipse.elk.rectpacking.orderBySize`,shortKey:`rectpacking.orderBySize`,type:`bool`,default:!1,algorithm:`rectpacking`}),desiredPosition:o({id:`org.eclipse.elk.rectpacking.desiredPosition`,shortKey:`rectpacking.desiredPosition`,type:`num`,default:-1,algorithm:`rectpacking`}),currentPosition:o({id:`org.eclipse.elk.rectpacking.currentPosition`,shortKey:`rectpacking.currentPosition`,type:`num`,default:-1,algorithm:`rectpacking`}),inNewRow:o({id:`org.eclipse.elk.rectpacking.inNewRow`,shortKey:`rectpacking.inNewRow`,type:`bool`,default:!1,algorithm:`rectpacking`})},spore:{processingOrderTreeConstruction:o({id:`org.eclipse.elk.processingOrder.treeConstruction`,shortKey:`processingOrder.treeConstruction`,type:`str`,default:`MINIMUM_SPANNING_TREE`,values:[`MINIMUM_SPANNING_TREE`,`MAXIMUM_SPANNING_TREE`],algorithm:`spore`}),processingOrderSpanningTreeCostFunction:o({id:`org.eclipse.elk.processingOrder.spanningTreeCostFunction`,shortKey:`processingOrder.spanningTreeCostFunction`,type:`str`,default:`CIRCLE_UNDERLAP`,values:[`CENTER_DISTANCE`,`CIRCLE_UNDERLAP`,`RECTANGLE_UNDERLAP`,`INVERTED_OVERLAP`,`MINIMUM_ROOT_DISTANCE`],algorithm:`spore`}),processingOrderPreferredRoot:o({id:`org.eclipse.elk.processingOrder.preferredRoot`,shortKey:`processingOrder.preferredRoot`,type:`str`,default:`UNDEFINED`,algorithm:`spore`}),processingOrderRootSelection:o({id:`org.eclipse.elk.processingOrder.rootSelection`,shortKey:`processingOrder.rootSelection`,type:`str`,default:`CENTER_NODE`,values:[`FIXED`,`CENTER_NODE`],algorithm:`spore`}),compactionStrategy:o({id:`org.eclipse.elk.compaction.compactionStrategy`,shortKey:`compaction.compactionStrategy`,type:`str`,default:`DEPTH_FIRST`,values:[`DEPTH_FIRST`],algorithm:`spore`}),compactionOrthogonal:o({id:`org.eclipse.elk.compaction.orthogonal`,shortKey:`compaction.orthogonal`,type:`bool`,default:!1,algorithm:`spore`}),overlapRemovalMaxIterations:o({id:`org.eclipse.elk.overlapRemoval.maxIterations`,shortKey:`overlapRemoval.maxIterations`,type:`num`,default:64,algorithm:`spore`}),overlapRemovalRunScanline:o({id:`org.eclipse.elk.overlapRemoval.runScanline`,shortKey:`overlapRemoval.runScanline`,type:`bool`,default:!0,algorithm:`spore`})},topdownpacking:{hierarchicalNodeWidth:o({id:`org.eclipse.elk.topdown.hierarchicalNodeWidth`,shortKey:`topdown.hierarchicalNodeWidth`,type:`num`,default:150,algorithm:`topdownpacking`}),hierarchicalNodeAspectRatio:o({id:`org.eclipse.elk.topdown.hierarchicalNodeAspectRatio`,shortKey:`topdown.hierarchicalNodeAspectRatio`,type:`num`,default:1.414,algorithm:`topdownpacking`}),nodeArrangementStrategy:o({id:`org.eclipse.elk.topdownpacking.nodeArrangement.strategy`,shortKey:`topdownpacking.nodeArrangement.strategy`,type:`str`,default:`LEFT_RIGHT_TOP_DOWN_NODE_PLACER`,values:[`LEFT_RIGHT_TOP_DOWN_NODE_PLACER`],algorithm:`topdownpacking`}),whitespaceEliminationStrategy:o({id:`org.eclipse.elk.topdownpacking.whitespaceElimination.strategy`,shortKey:`topdownpacking.whitespaceElimination.strategy`,type:`str`,default:`BOTTOM_ROW_EQUAL_WHITESPACE_ELIMINATOR`,values:[`BOTTOM_ROW_EQUAL_WHITESPACE_ELIMINATOR`],algorithm:`topdownpacking`})},vertiflex:{verticalConstraint:o({id:`org.eclipse.elk.vertiflex.verticalConstraint`,shortKey:`vertiflex.verticalConstraint`,type:`num`,default:0,algorithm:`vertiflex`}),layoutStrategy:o({id:`org.eclipse.elk.vertiflex.layoutStrategy`,shortKey:`vertiflex.layoutStrategy`,type:`str`,default:`STRAIGHT`,values:[`STRAIGHT`,`BEND`],algorithm:`vertiflex`}),layerDistance:o({id:`org.eclipse.elk.vertiflex.layerDistance`,shortKey:`vertiflex.layerDistance`,type:`num`,default:50,algorithm:`vertiflex`}),considerNodeModelOrder:o({id:`org.eclipse.elk.vertiflex.considerNodeModelOrder`,shortKey:`vertiflex.considerNodeModelOrder`,type:`bool`,default:!0,algorithm:`vertiflex`})}};[...Object.values(s),...Object.values(c.radial),...Object.values(c.mrtree),...Object.values(c.disco),...Object.values(c.force),...Object.values(c.rectpacking),...Object.values(c.spore),...Object.values(c.topdownpacking),...Object.values(c.vertiflex)];let te=/* @__PURE__ */ function(e){return e.NORMAL=`NORMAL`,e.LONG_EDGE=`LONG_EDGE`,e.EXTERNAL_PORT=`EXTERNAL_PORT`,e.NORTH_SOUTH_PORT=`NORTH_SOUTH_PORT`,e.LABEL=`LABEL`,e.BREAKING_POINT=`BREAKING_POINT`,e.PLACEHOLDER=`PLACEHOLDER`,e.NONSHIFTING_PLACEHOLDER=`NONSHIFTING_PLACEHOLDER`,e}({}),l=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.NORTH=`NORTH`,e.EAST=`EAST`,e.SOUTH=`SOUTH`,e.WEST=`WEST`,e}({});const ne=[`NORTH`],re=[`EAST`],ie=[`SOUTH`],ae=[`WEST`],oe=[`EAST`,`WEST`],se=[`NORTH`,`SOUTH`],ce=[`NORTH`,`EAST`],le=[`EAST`,`SOUTH`],ue=[`SOUTH`,`WEST`],de=[`NORTH`,`WEST`],fe=[`NORTH`,`EAST`,`SOUTH`],pe=[`EAST`,`SOUTH`,`WEST`],me=[`SOUTH`,`WEST`,`NORTH`],he=[`WEST`,`NORTH`,`EAST`],ge=[`NORTH`,`EAST`,`SOUTH`,`WEST`];let _e=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.INPUT=`INPUT`,e.OUTPUT=`OUTPUT`,e}({}),ve=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.RIGHT=`RIGHT`,e.LEFT=`LEFT`,e.DOWN=`DOWN`,e.UP=`UP`,e}({}),u=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.FREE=`FREE`,e.FIXED_SIDE=`FIXED_SIDE`,e.FIXED_ORDER=`FIXED_ORDER`,e.FIXED_RATIO=`FIXED_RATIO`,e.FIXED_POS=`FIXED_POS`,e}({});(function(e){function t(e){return e===`FIXED_SIDE`||e===`FIXED_ORDER`||e===`FIXED_RATIO`||e===`FIXED_POS`}e.isSideFixed=t;function n(e){return e===`FIXED_POS`}e.isPosFixed=n;function r(e){return e===`FIXED_RATIO`}e.isRatioFixed=r;function i(e){return e===`FIXED_ORDER`||e===`FIXED_RATIO`||e===`FIXED_POS`}e.isOrderFixed=i})(u||={});let ye=/* @__PURE__ */ function(e){return e.NONE=`NONE`,e.FIRST=`FIRST`,e.FIRST_SEPARATE=`FIRST_SEPARATE`,e.LAST=`LAST`,e.LAST_SEPARATE=`LAST_SEPARATE`,e}({}),be=/* @__PURE__ */ function(e){return e.NONE=`NONE`,e.TOP=`TOP`,e.BOTTOM=`BOTTOM`,e}({}),xe=/* @__PURE__ */ function(e){return e.NONE=`NONE`,e.OUTGOING_ONLY=`OUTGOING_ONLY`,e.INCOMING_ONLY=`INCOMING_ONLY`,e}({});function Se(e=0,t=0){return{x:e,y:t}}(function(e){function t(e){switch(e){case`NORTH`:return`SOUTH`;case`SOUTH`:return`NORTH`;case`EAST`:return`WEST`;case`WEST`:return`EAST`;default:return`UNDEFINED`}}e.opposed=t;function n(e){return e===`NORTH`||e===`SOUTH`}e.isVertical=n;function r(e){return e===`EAST`||e===`WEST`}e.isHorizontal=r})(l||={});let Ce;(function(e){e.PORT_CONSTRAINTS_KEY=s.portConstraints.id})(Ce||={});let we=/* @__PURE__ */ function(e){return e.EXTERNAL_PORTS=`EXTERNAL_PORTS`,e.NON_FREE_PORTS=`NON_FREE_PORTS`,e.NORTH_SOUTH_PORTS=`NORTH_SOUTH_PORTS`,e.SELF_LOOPS=`SELF_LOOPS`,e.CENTER_LABELS=`CENTER_LABELS`,e.HYPEREDGES=`HYPEREDGES`,e.END_LABELS=`END_LABELS`,e.COMMENTS=`COMMENTS`,e.PARTITIONS=`PARTITIONS`,e.HYPERNODES=`HYPERNODES`,e}({});const Te=new i(`org.eclipse.elk.layered.internal.origin`),Ee=new i(`org.eclipse.elk.layered.internal.topComments`),De=new i(`org.eclipse.elk.layered.internal.bottomComments`),Oe=new i(`org.eclipse.elk.layered.internal.commentConnPort`),ke=new i(`org.eclipse.elk.layered.internal.extPortSide`,`UNDEFINED`),Ae=new i(`org.eclipse.elk.layered.internal.extPortSize`),je=new i(`org.eclipse.elk.layered.internal.portDummy`),Me=new i(`org.eclipse.elk.layered.internal.insideConnections`,!1),Ne=new i(`org.eclipse.elk.layered.internal.portRatioOrPosition`,0),d=new i(`org.eclipse.elk.layered.internal.crossHierarchyMap`),f=new i(`org.eclipse.elk.layered.internal.splineRouteStart`,null),p=new i(`org.eclipse.elk.layered.internal.splineEdgeChain`,null),m=new i(`org.eclipse.elk.layered.internal.splineSurvivingEdge`,null),h=new i(`org.eclipse.elk.layered.internal.splineNsPortYCoord`,null),g=new i(`org.eclipse.elk.layered.internal.random`),_=new i(`org.eclipse.elk.layered.internal.greedySwitchActive`,!1),v=new i(`org.eclipse.elk.layered.internal.reversed`,!1),y=new i(`org.eclipse.elk.layered.internal.cyclic`,!1),b=new i(`org.eclipse.elk.layered.internal.breakingPointInfo`,null),Pe=new i(`org.eclipse.elk.layered.internal.partitionDummy`,!1),Fe=new i(`org.eclipse.elk.layered.internal.inputCollect`,!1),Ie=new i(`org.eclipse.elk.layered.internal.outputCollect`,!1),Le=new i(`org.eclipse.elk.layered.internal.hiddenNodes`),Re=new i(`org.eclipse.elk.layered.internal.originalOppositePort`),ze=new i(`org.eclipse.elk.layered.internal.originalLabelEdge`),Be=new i(`org.eclipse.elk.layered.internal.extPortConnections`),Ve=new i(`org.eclipse.elk.layered.internal.modelOrder`,0),He=new i(`org.eclipse.elk.layered.internal.maxModelOrderNodes`,0),Ue=new i(`org.eclipse.elk.layered.internal.modelOrderGroups.cb.number`,0),We=new i(`org.eclipse.elk.layered.internal.targetNodeModelOrder`),Ge=new i(`org.eclipse.elk.layered.internal.longEdgeTargetNode`),Ke=new i(`org.eclipse.elk.layered.internal.extPortReplacedDummy`),qe=new i(`org.eclipse.elk.layered.internal.extPortReplacedDummies`),Je=new i(`org.eclipse.elk.layered.internal.targetOffset`),Ye=new i(`org.eclipse.elk.layered.internal.graphProperties`,/* @__PURE__ */ new Set),Xe=new i(`org.eclipse.elk.layered.internal.inLayerLayoutUnit`),Ze=new i(`org.eclipse.elk.layered.internal.barycenterAssociates`),Qe=new i(`org.eclipse.elk.layered.internal.inLayerSuccessorConstraints`),$e=new i(`org.eclipse.elk.layered.internal.inLayerSuccessorConstraintsBetweenNonDummies`,!1),et=new i(`org.eclipse.elk.layered.internal.crossingHint`,0),tt=new i(`org.eclipse.elk.layered.internal.representedLabels`,[]),nt=new i(`org.eclipse.elk.layered.internal.labelSide`,`BELOW`),rt=new i(`org.eclipse.elk.layered.internal.portIsOutput`,!1),it=new i(`org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder`,!1),at=new i(`org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness`,.1),ot=new i(`org.eclipse.elk.layered.internal.spacings`),st=new i(`org.eclipse.elk.layered.internal.longEdgeSource`),ct=new i(`org.eclipse.elk.layered.internal.longEdgeTarget`),lt=new i(`org.eclipse.elk.layered.internal.longEdgeHasLabelDummies`,!1),ut=new i(`org.eclipse.elk.layered.internal.longEdgeBeforeLabelDummy`,!1),dt=new i(`org.eclipse.elk.layered.internal.endLabelEdge`),ft=new i(`org.eclipse.elk.layered.internal.selfLoopHolder`),pt=new i(`org.eclipse.elk.layered.internal.originalPortConstraints`),mt=new i(`org.eclipse.elk.layered.internal.originalDummyNodePosition`),ht=new i(`org.eclipse.elk.layered.internal.originalBendPoints`),gt=new i(`org.eclipse.elk.layered.internal.endLabels`),_t=new i(`org.eclipse.elk.layered.internal.maxEdgeThickness`,0),x={NONE:`NONE`,INSIDE_PORT_SIDE_GROUPS:`INSIDE_PORT_SIDE_GROUPS`,GROUP_MODEL_ORDER:`GROUP_MODEL_ORDER`,MODEL_ORDER:`MODEL_ORDER`};x.NONE,x.INSIDE_PORT_SIDE_GROUPS,x.GROUP_MODEL_ORDER,x.MODEL_ORDER;const vt=new i(`org.eclipse.elk.layered.priority.direction`,0),yt=new i(`org.eclipse.elk.direction`,`UNDEFINED`),bt=new i(`org.eclipse.elk.aspectRatio`,1.6),S=new i(`org.eclipse.elk.port.borderOffset`,0),xt=new i(`org.eclipse.elk.port.index`,null),St=new i(`org.eclipse.elk.layered.portSortingStrategy`,`INPUT_ORDER`),Ct=new i(`org.eclipse.elk.port.side`,`UNDEFINED`),wt=new i(`org.eclipse.elk.port.anchor`),Tt=new i(`org.eclipse.elk.layered.layering.layerConstraint`),Et=new i(`org.eclipse.elk.layered.internal.edgeConstraint`);new i(`org.eclipse.elk.layered.internal.inLayerConstraint`);const C=new i(`org.eclipse.elk.portConstraints`,`UNDEFINED`),Dt=new i(`org.eclipse.elk.layered.feedbackEdges`,!1),Ot=new i(`org.eclipse.elk.layered.mergeHierarchyEdges`,!0),kt=new i(`org.eclipse.elk.layered.mergeEdges`,!1),At=new i(`org.eclipse.elk.layered.compaction.postCompaction.strategy`,`NONE`),jt=new i(`org.eclipse.elk.layered.compaction.postCompaction.constraints`,`SCANLINE`),Mt=new i(`org.eclipse.elk.layered.unnecessaryBendpoints`,!1),w=new i(`org.eclipse.elk.insideSelfLoops.activate`,!1),Nt=new i(`org.eclipse.elk.insideSelfLoops.yo`,!1),T=new i(`org.eclipse.elk.spacing.portsSurrounding`,{top:0,left:0,bottom:0,right:0}),Pt=new i(`org.eclipse.elk.spacing.individual`,null),Ft=new i(`org.eclipse.elk.spacing.edgeEdge`,10),It=new i(`org.eclipse.elk.spacing.nodeNode`,20),Lt=new i(`org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers`,20),Rt=new i(`org.eclipse.elk.randomSeed`,1),zt=new i(`org.eclipse.elk.layered.priority.shortness`,0),Bt=new i(`org.eclipse.elk.layered.thoroughness`,7),Vt=new i(`org.eclipse.elk.hierarchyHandling`,null),Ht=new i(`org.eclipse.elk.layered.crossingMinimization.strategy`,`LAYER_SWEEP`),Ut=new i(`org.eclipse.elk.separateConnectedComponents`,!0),E=new i(`org.eclipse.elk.interactiveLayout`,!1),Wt=new i(`org.eclipse.elk.layered.generatePositionAndLayerIds`,!1),Gt=new i(`org.eclipse.elk.layered.layering.strategy`,`NETWORK_SIMPLEX`),Kt=new i(`org.eclipse.elk.layered.nodePlacement.strategy`,`BRANDES_KOEPF`),qt=new i(`org.eclipse.elk.layered.considerModelOrder.strategy`,`NONE`),Jt=new i(`org.eclipse.elk.layered.considerModelOrder.portModelOrder`,!1),Yt=new i(`org.eclipse.elk.layered.considerModelOrder.longEdgeOrderingStrategy`,`EQUAL`),Xt=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cmGroupOrderStrategy`,`MODEL_ORDER`),Zt=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cmEnforcedGroupOrders`,[]),Qt=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.crossingMinimizationId`,null),$t=new i(`org.eclipse.elk.layered.considerModelOrder.noModelOrder`,!1),en=new i(`org.eclipse.elk.layered.considerModelOrder.components`,x.NONE),tn=new i(`org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides`,!1),nn=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cycleBreakingId`,0),rn=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cbGroupOrderStrategy`,`ONLY_WITHIN_GROUP`),an=new i(`org.eclipse.elk.layered.cycleBreaking.strategy`,`GREEDY`),on=new i(`org.eclipse.elk.layered.layering.nodePromotion.strategy`,`NONE`);new i(`org.eclipse.elk.layered.layering.nodePromotion.maxIterations`,0);const sn=new i(`org.eclipse.elk.layered.layering.coffmanGraham.layerBound`,2147483647),cn=new i(`org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth`,4),ln=new i(`org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor`,2),D=new i(`org.eclipse.elk.nodeLabels.padding`,{top:5,right:5,bottom:5,left:5}),O=new i(`org.eclipse.elk.nodeSize.constraints`,[]),un=new i(`org.eclipse.elk.position`,null),dn=new i(`org.eclipse.elk.partitioning.activate`,!1),fn=new i(`org.eclipse.elk.partitioning.partition`,null),pn=new i(`org.eclipse.elk.layered.highDegreeNodes.treatment`,!1),mn=new i(`org.eclipse.elk.layered.highDegreeNodes.threshold`,16),hn=new i(`org.eclipse.elk.layered.highDegreeNodes.treeHeight`,5),k=new i(`org.eclipse.elk.nodeSize.minimum`,{x:0,y:0}),A=new i(`org.eclipse.elk.nodeSize.options`,[]);new i(`org.eclipse.elk.nodeSize.fixedGraphSize`,!1);const j=new i(`org.eclipse.elk.nodeLabels.placement`,[]),M=new i(`org.eclipse.elk.portLabels.placement`,[`OUTSIDE`]),N=new i(`org.eclipse.elk.portAlignment.default`,`DISTRIBUTED`),P=new i(`org.eclipse.elk.portAlignment.north`,`DISTRIBUTED`),F=new i(`org.eclipse.elk.portAlignment.south`,`DISTRIBUTED`),I=new i(`org.eclipse.elk.portAlignment.east`,`DISTRIBUTED`),L=new i(`org.eclipse.elk.portAlignment.west`,`DISTRIBUTED`),gn=new i(`org.eclipse.elk.layered.layerUnzipping.strategy`,`NONE`),_n=new i(`org.eclipse.elk.layered.layerUnzipping.layerSplit`,2),vn=new i(`org.eclipse.elk.layered.layerUnzipping.minimizeEdgeLength`,!1),yn=new i(`org.eclipse.elk.layered.layerUnzipping.resetOnLongEdges`,!0),bn=new i(`org.eclipse.elk.layered.nodePlacement.favorStraightEdges`,null),xn=new i(`org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment`,`NONE`),Sn=new i(`org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening`,`IMPROVE_STRAIGHTNESS`),Cn=new i(`org.eclipse.elk.layered.priority.straightness`,0),R=new i(`org.eclipse.elk.spacing.portPort`,10),wn=new i(`org.eclipse.elk.spacing.edgeNode`,10),Tn=new i(`org.eclipse.elk.edgeRouting`,`ORTHOGONAL`),En=new i(`org.eclipse.elk.commentBox`,!1),Dn=new i(`org.eclipse.elk.spacing.commentComment`,10),On=new i(`org.eclipse.elk.spacing.commentNode`,10),kn=new i(`org.eclipse.elk.layered.edgeRouting.splines.mode`,`SLOPPY`),An=new i(`org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor`,.2),jn=new i(`org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers`,10),Mn=new i(`org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers`,10),Nn=new i(`org.eclipse.elk.edge.thickness`,1),Pn=new i(`org.eclipse.elk.spacing.edgeLabel`,2),Fn=new i(`org.eclipse.elk.spacing.nodeSelfLoop`,10),z=new i(`org.eclipse.elk.spacing.labelLabel`,0),B=new i(`org.eclipse.elk.spacing.labelNode`,5),V=new i(`org.eclipse.elk.spacing.labelPortHorizontal`,1),H=new i(`org.eclipse.elk.spacing.labelPortVertical`,1),In=new i(`org.eclipse.elk.spacing.componentComponent`,20),Ln=new i(`org.eclipse.elk.layered.edgeRouting.selfLoopDistribution`,`NORTH`),Rn=new i(`org.eclipse.elk.layered.edgeRouting.selfLoopOrdering`,`STACKED`),zn=new i(`org.eclipse.elk.layered.directionCongruency`,`READING_DIRECTION`),Bn=new i(`org.eclipse.elk.junctionPoints`,null);new i(`org.eclipse.elk.edgeLabels.placement`,`UNDEFINED`);const Vn=new i(`org.eclipse.elk.layered.edgeLabels.sideSelection`,`SMART_DOWN`),Hn=new i(`org.eclipse.elk.layered.interactiveReferencePoint`,`CENTER`),Un=new i(`org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth`,2),Wn=new i(`org.eclipse.elk.layered.crossingMinimization.greedySwitch.type`,`TWO_SIDED`),Gn=new i(`org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold`,40);new i(`org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type`,`OFF`);const Kn=new i(`org.eclipse.elk.layered.crossingMinimization.semiInteractive`,!1),qn=new i(`org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility`,`NONE`),Jn=new i(`org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default`,`NONE`),Yn=new i(`org.eclipse.elk.alignment`,`AUTOMATIC`),Xn=new i(`org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy`,`MEDIAN_LAYER`),Zn=new i(`org.eclipse.elk.layered.layering.layerId`,-1),Qn=new i(`org.eclipse.elk.layered.crossingMinimization.positionId`,-1),$n=new i(`org.eclipse.elk.hypernode`,!1),er=new i(`org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.recomputeNodePlacement`,null),tr=new i(`org.eclipse.elk.layered.wrapping.strategy`,`OFF`),nr=new i(`org.eclipse.elk.layered.wrapping.additionalEdgeSpacing`,10),rr=new i(`org.eclipse.elk.layered.wrapping.correctionFactor`,1),ir=new i(`org.eclipse.elk.layered.wrapping.cutting.strategy`,`MSD`),ar=new i(`org.eclipse.elk.layered.wrapping.cutting.cuts`,null),or=new i(`org.eclipse.elk.layered.wrapping.cutting.msd.freedom`,1),sr=new i(`org.eclipse.elk.layered.wrapping.validify.strategy`,`GREEDY`),cr=new i(`org.eclipse.elk.layered.wrapping.validify.forbiddenIndices`,null),lr=new i(`org.eclipse.elk.layered.wrapping.multiEdge.improveCuts`,!0),ur=new i(`org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty`,2),dr=new i(`org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges`,!0);n(S),n(C),n(w),n(T),n(D),n(O),n(A),n(k),n(j),n(M),n(N),n(P),n(F),n(I),n(L),n(R),n(z),n(B),n(V),n(H),r(`org.eclipse.elk.portLabels.treatAsGroup`);function U(e){return e.trim().toLowerCase().replace(/^org\.eclipse\.elk\./,``).replace(/^elk\./,``)}const W=/* @__PURE__ */ new Set([`layered`,`elk.layered`,`org.eclipse.elk.layered`]),G=/* @__PURE__ */ new Set([`box`,`elk.box`,`org.eclipse.elk.box`,`fixed`,`elk.fixed`,`org.eclipse.elk.fixed`,`random`,`elk.random`,`org.eclipse.elk.random`]),K=/* @__PURE__ */ new Set([`stress`,`elk.stress`,`org.eclipse.elk.stress`,`force`,`elk.force`,`org.eclipse.elk.force`]),q=/* @__PURE__ */ new Set([`rectpacking`,`elk.rectpacking`,`org.eclipse.elk.rectpacking`]),J=/* @__PURE__ */ new Set([`topdownpacking`,`elk.topdownpacking`,`org.eclipse.elk.topdownpacking`]),Y=/* @__PURE__ */ new Set([`sporeoverlap`,`elk.sporeoverlap`,`org.eclipse.elk.sporeoverlap`,`sporecompaction`,`elk.sporecompaction`,`org.eclipse.elk.sporecompaction`]),X=/* @__PURE__ */ new Set([`radial`,`elk.radial`,`org.eclipse.elk.radial`]),Z=/* @__PURE__ */ new Set([`vertiflex`,`elk.vertiflex`,`org.eclipse.elk.vertiflex`,`org.eclipse.elk.alg.vertiflex`]),Q=/* @__PURE__ */ new Set([`disco`,`elk.disco`,`org.eclipse.elk.disco`]),$=/* @__PURE__ */ new Set([`mrtree`,`elk.mrtree`,`org.eclipse.elk.mrtree`,`org.eclipse.elk.alg.mrtree`]),fr=/* @__PURE__ */ new Set([.../* @__PURE__ */ new Set([...[...W,...G,...K,...q,...J,...Y,...X,...Z,...Q,...$].map(U)])]);function pr(e){return typeof e==`string`&&e.trim()!==``&&fr.has(U(e))}export{Nt as $,$e as $n,ae as $r,Ft as $t,Wn as A,b as An,Je as Ar,N as At,Tn as B,Be as Bn,re as Br,Ct as Bt,Qt as C,dr as Cn,ft as Cr,er as Ct,Jt as D,x as Dn,f as Dr,A as Dt,$t as E,sr as En,h as Er,k as Et,yt as F,at as Fn,ye as Fr,wt as Ft,Dt as G,Ye as Gn,ce as Gr,Cn as Gt,kn as H,Ke as Hn,pe as Hr,un as Ht,zn as I,d as In,te as Ir,S as It,mn as J,Le as Jn,se as Jr,Rn as Jt,Wt as K,_ as Kn,fe as Kr,Rt as Kt,Et as L,y as Ln,u as Lr,C as Lt,Kn as M,Oe as Mn,ve as Mr,P as Mt,Ht as N,et as Nn,xe as Nr,F as Nt,qt as O,Ze as On,m as Or,dn as Ot,an as P,it as Pn,be as Pr,L as Pt,w as Q,Qe as Qn,me as Qr,In as Qt,Xn as R,gt as Rn,l as Rr,xt as Rt,Xt as S,lr as Sn,v as Sr,Jn as St,Yt as T,cr as Tn,p as Tr,O as Tt,An as U,ke as Un,oe as Ur,vt as Ut,Un as V,qe as Vn,le as Vr,St as Vt,Nn as W,Ae as Wn,ne as Wr,zt as Wt,hn as X,Me as Xn,ie as Xr,Dn as Xt,pn as Y,Fe as Yn,de as Yr,Ut as Yt,$n as Z,Xe as Zn,ue as Zr,On as Zt,jt as _,rr as _n,je as _r,j as _t,$ as a,i as ai,z as an,Ge as ar,Zn as at,rn as b,ir as bn,g as br,bn as bt,Y as c,H as cn,Ve as cr,on as ct,pr as d,Fn as dn,mt as dr,vn as dt,he as ei,jn as en,nt as er,E as et,U as f,T as fn,ze as fr,yn as ft,En as g,nr as gn,Pe as gr,D as gt,bt as h,Mt as hn,Ie as hr,Ot as ht,W as i,a as ii,Pt as in,ct as ir,Tt as it,Qn as j,Ue as jn,Ee as jr,I as jt,Gn as k,De as kn,We as kr,fn as kt,J as l,It as ln,Te as lr,Gt as lt,tn as m,Bt as mn,pt as mr,kt as mt,Q as n,c as ni,wn as nn,lt as nr,Bn as nt,X as o,B as on,_t as or,cn as ot,Yn as p,R as pn,Re as pr,gn as pt,Vt as q,we as qn,ge as qr,Ln as qt,K as r,s as ri,Mn as rn,st as rr,sn as rt,q as s,V as sn,He as sr,ln as st,G as t,Se as ti,Pn as tn,ut as tr,Hn as tt,Z as u,Lt as un,ht as ur,_n as ut,At as v,ar as vn,rt as vr,Sn as vt,nn as w,tr as wn,ot as wr,Kt as wt,Zt as x,ur as xn,tt as xr,qn as xt,en as y,or as yn,Ne as yr,xn as yt,Vn as z,dt as zn,_e as zr,M as zt};
@@ -0,0 +1 @@
1
+ const e=[],t=/* @__PURE__ */ new Map;function n(n){let r=n.getId(),i=t.get(r);i===void 0&&(i={id:r,slot:e.length,defaultValue:n.getDefault()},e.push(i),t.set(r,i)),n.slot=i.slot}function r(n,r=void 0){if(t.has(n))return;let i={id:n,slot:e.length,defaultValue:r};e.push(i),t.set(n,i)}var i=class e{id;defaultValue;slot=-1;constructor(e,t){this.id=e,this.defaultValue=t}getId(){return this.id}getDefault(){return this.defaultValue}equals(t){return t instanceof e&&this.id===t.id}toString(){return this.id}},a=class{propertyMap=null;fast=null;setProperty(e,n){if(typeof e==`string`){let r=t.get(e);if(r!==void 0)return this.setFast(r.slot,n),this}else{let t=e.slot;if(t>=0)return this.setFast(t,n),this}let r=typeof e==`string`?e:e.getId();return n==null?this.getProperties().delete(r):this.getProperties().set(r,n),this}getProperty(n){let r=-1;if(typeof n==`string`){let e=t.get(n);e!==void 0&&(r=e.slot)}else r=n.slot;if(r>=0){let t=this.fast;if(t!==null){let e=t[r];if(e!==void 0)return e}let n=e[r].defaultValue;return typeof n==`object`&&n&&((this.fast??=[])[r]=n),n}let i=this.propertyMap;if(i){let e=i.get(typeof n==`string`?n:n.getId());if(e!==void 0)return e}if(typeof n==`string`)return;let a=n.getDefault();return typeof a==`object`&&a&&this.getProperties().set(n.getId(),a),a}hasProperty(e){if(typeof e==`string`){let n=t.get(e);if(n!==void 0)return this.fast!==null&&this.fast[n.slot]!==void 0}else{let t=e.slot;if(t>=0)return this.fast!==null&&this.fast[t]!==void 0}return this.propertyMap!==null&&this.propertyMap.has(typeof e==`string`?e:e.getId())}copyProperties(t){if(!t)return this;let n=t.getAllProperties();if(n.size>0)for(let[e,t]of n)this.setProperty(e,t);let r=t.fast;if(r!==null)for(let t=0;t<r.length;t++){let n=r[t];n!==void 0&&e[t]!==void 0&&((this.fast??=[])[t]=n)}return this}getAllProperties(){return this.propertyMap??ee}setFast(e,t){if(t==null){let t=this.fast;t!==null&&(t[e]=void 0)}else(this.fast??=[])[e]=t}getProperties(){return this.propertyMap||=/* @__PURE__ */ new Map,this.propertyMap}};const ee=/* @__PURE__ */ new Map;function o(e){return e}const s={padding:o({id:`org.eclipse.elk.padding`,shortKey:`padding`,type:`object`,default:{top:12,left:12,right:12,bottom:12},algorithm:`core`}),margins:o({id:`org.eclipse.elk.margins`,shortKey:`margins`,type:`num`,default:0,algorithm:`core`}),spacingNodeNode:o({id:`org.eclipse.elk.spacing.nodeNode`,shortKey:`spacing.nodeNode`,type:`num`,default:20,algorithm:`core`}),spacingEdgeNode:o({id:`org.eclipse.elk.spacing.edgeNode`,shortKey:`spacing.edgeNode`,type:`num`,default:10,algorithm:`core`}),spacingEdgeEdge:o({id:`org.eclipse.elk.spacing.edgeEdge`,shortKey:`spacing.edgeEdge`,type:`num`,default:10,algorithm:`core`}),spacingEdgeLabel:o({id:`org.eclipse.elk.spacing.edgeLabel`,shortKey:`spacing.edgeLabel`,type:`num`,default:2,algorithm:`core`}),spacingComponentComponent:o({id:`org.eclipse.elk.spacing.componentComponent`,shortKey:`spacing.componentComponent`,type:`num`,default:20,algorithm:`core`}),aspectRatio:o({id:`org.eclipse.elk.aspectRatio`,shortKey:`aspectRatio`,type:`num`,default:1.6,algorithm:`core`}),priority:o({id:`org.eclipse.elk.priority`,shortKey:`priority`,type:`num`,default:1,algorithm:`core`}),separateConnectedComponents:o({id:`org.eclipse.elk.separateConnectedComponents`,shortKey:`separateConnectedComponents`,type:`bool`,default:!0,algorithm:`core`}),omitNodeMicroLayout:o({id:`org.eclipse.elk.omitNodeMicroLayout`,shortKey:`omitNodeMicroLayout`,type:`bool`,default:!1,algorithm:`core`}),nodeSizeFixedGraphSize:o({id:`org.eclipse.elk.nodeSize.fixedGraphSize`,shortKey:`nodeSize.fixedGraphSize`,type:`bool`,default:!1,algorithm:`core`}),position:o({id:`org.eclipse.elk.position`,shortKey:`position`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),direction:o({id:`org.eclipse.elk.direction`,shortKey:`direction`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),debugMode:o({id:`org.eclipse.elk.debugMode`,shortKey:`debugMode`,type:`bool`,default:!1,algorithm:`core`}),interactive:o({id:`org.eclipse.elk.interactive`,shortKey:`interactive`,type:`bool`,default:!1,algorithm:`core`}),randomSeed:o({id:`org.eclipse.elk.randomSeed`,shortKey:`randomSeed`,type:`num`,default:1,algorithm:`core`}),edgeThickness:o({id:`org.eclipse.elk.edge.thickness`,shortKey:`edge.thickness`,type:`num`,default:1,algorithm:`core`}),edgeLabelsInline:o({id:`org.eclipse.elk.edgeLabels.inline`,shortKey:`edgeLabels.inline`,type:`bool`,default:!1,algorithm:`core`}),nodeSizeConstraints:o({id:`org.eclipse.elk.nodeSize.constraints`,shortKey:`nodeSize.constraints`,type:`enumset`,default:[],values:[`PORTS`,`PORT_LABELS`,`NODE_LABELS`,`MINIMUM_SIZE`],algorithm:`core`}),nodeSizeMinimum:o({id:`org.eclipse.elk.nodeSize.minimum`,shortKey:`nodeSize.minimum`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),contentAlignment:o({id:`org.eclipse.elk.contentAlignment`,shortKey:`contentAlignment`,type:`enumset`,default:[],values:[`V_TOP`,`V_CENTER`,`V_BOTTOM`,`H_LEFT`,`H_CENTER`,`H_RIGHT`],algorithm:`core`}),underlyingLayoutAlgorithm:o({id:`org.eclipse.elk.underlyingLayoutAlgorithm`,shortKey:`underlyingLayoutAlgorithm`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),structureExtractionStrategy:o({id:`org.eclipse.elk.structure.structureExtractionStrategy`,shortKey:`structure.structureExtractionStrategy`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),childAreaWidth:o({id:`org.eclipse.elk.childArea.width`,shortKey:`childArea.width`,type:`num`,default:0,algorithm:`core`}),childAreaHeight:o({id:`org.eclipse.elk.childArea.height`,shortKey:`childArea.height`,type:`num`,default:0,algorithm:`core`}),spacingIndividual:o({id:`org.eclipse.elk.spacing.individual`,shortKey:`spacing.individual`,type:`str`,default:`UNDEFINED`,algorithm:`core`}),portConstraints:o({id:`org.eclipse.elk.portConstraints`,shortKey:`portConstraints`,type:`str`,default:`UNDEFINED`,values:[`UNDEFINED`,`FREE`,`FIXED_SIDE`,`FIXED_SIDES`,`FIXED_ORDER`,`FIXED_RATIO`,`FIXED_POS`],algorithm:`core`})},c={radial:{centerOnRoot:o({id:`org.eclipse.elk.radial.centerOnRoot`,shortKey:`radial.centerOnRoot`,type:`bool`,default:!1,algorithm:`radial`}),orderId:o({id:`org.eclipse.elk.radial.orderId`,shortKey:`radial.orderId`,type:`num`,default:0,algorithm:`radial`}),radius:o({id:`org.eclipse.elk.radial.radius`,shortKey:`radial.radius`,type:`num`,default:0,algorithm:`radial`}),rotate:o({id:`org.eclipse.elk.radial.rotate`,shortKey:`radial.rotate`,type:`bool`,default:!1,algorithm:`radial`}),rotationTargetAngle:o({id:`org.eclipse.elk.radial.rotation.targetAngle`,shortKey:`radial.rotation.targetAngle`,type:`num`,default:0,algorithm:`radial`}),rotationComputeAdditionalWedgeSpace:o({id:`org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace`,shortKey:`radial.rotation.computeAdditionalWedgeSpace`,type:`bool`,default:!1,algorithm:`radial`}),rotationOutgoingEdgeAngles:o({id:`org.eclipse.elk.radial.rotation.outgoingEdgeAngles`,shortKey:`radial.rotation.outgoingEdgeAngles`,type:`bool`,default:!1,algorithm:`radial`}),compactor:o({id:`org.eclipse.elk.radial.compactor`,shortKey:`radial.compactor`,type:`str`,default:`NONE`,values:[`NONE`,`RADIAL_COMPACTION`,`WEDGE_COMPACTION`],algorithm:`radial`}),compactionStepSize:o({id:`org.eclipse.elk.radial.compactionStepSize`,shortKey:`radial.compactionStepSize`,type:`num`,default:1,algorithm:`radial`}),sorter:o({id:`org.eclipse.elk.radial.sorter`,shortKey:`radial.sorter`,type:`str`,default:`NONE`,values:[`NONE`,`POLAR_COORDINATE`,`ID`],algorithm:`radial`}),wedgeCriteria:o({id:`org.eclipse.elk.radial.wedgeCriteria`,shortKey:`radial.wedgeCriteria`,type:`str`,default:`NODE_SIZE`,values:[`LEAF_NUMBER`,`NODE_SIZE`],algorithm:`radial`}),optimizationCriteria:o({id:`org.eclipse.elk.radial.optimizationCriteria`,shortKey:`radial.optimizationCriteria`,type:`str`,default:`NONE`,values:[`NONE`,`EDGE_LENGTH`,`EDGE_LENGTH_BY_POSITION`,`CROSSING_MINIMIZATION_BY_POSITION`],algorithm:`radial`})},mrtree:{weighting:o({id:`org.eclipse.elk.mrtree.weighting`,shortKey:`mrtree.weighting`,type:`str`,default:`MODEL_ORDER`,values:[`MODEL_ORDER`,`DESCENDANTS`,`FAN`,`CONSTRAINT`],algorithm:`mrtree`}),searchOrder:o({id:`org.eclipse.elk.mrtree.searchOrder`,shortKey:`mrtree.searchOrder`,type:`str`,default:`DFS`,values:[`DFS`,`BFS`],algorithm:`mrtree`}),positionConstraint:o({id:`org.eclipse.elk.mrtree.positionConstraint`,shortKey:`mrtree.positionConstraint`,type:`num`,default:-1,algorithm:`mrtree`}),edgeRoutingMode:o({id:`org.eclipse.elk.mrtree.edgeRoutingMode`,shortKey:`mrtree.edgeRoutingMode`,type:`str`,default:`AVOID_OVERLAP`,values:[`NONE`,`MIDDLE_TO_MIDDLE`,`AVOID_OVERLAP`],algorithm:`mrtree`}),treeLevel:o({id:`org.eclipse.elk.mrtree.treeLevel`,shortKey:`mrtree.treeLevel`,type:`num`,default:0,algorithm:`mrtree`}),compaction:o({id:`org.eclipse.elk.mrtree.compaction`,shortKey:`mrtree.compaction`,type:`bool`,default:!1,algorithm:`mrtree`}),edgeEndTextureLength:o({id:`org.eclipse.elk.mrtree.edgeEndTextureLength`,shortKey:`mrtree.edgeEndTextureLength`,type:`num`,default:7,algorithm:`mrtree`})},disco:{componentCompactionStrategy:o({id:`org.eclipse.elk.disco.componentCompaction.strategy`,shortKey:`disco.componentCompaction.strategy`,type:`str`,default:`POLYOMINO`,values:[`POLYOMINO`],algorithm:`disco`}),componentLayoutAlgorithm:o({id:`org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm`,shortKey:`disco.componentCompaction.componentLayoutAlgorithm`,type:`str`,default:`UNDEFINED`,algorithm:`disco`}),debugDiscoGraph:o({id:`org.eclipse.elk.disco.debug.discoGraph`,shortKey:`disco.debug.discoGraph`,type:`bool`,default:!1,algorithm:`disco`}),debugDiscoPolys:o({id:`org.eclipse.elk.disco.debug.discoPolys`,shortKey:`disco.debug.discoPolys`,type:`bool`,default:!1,algorithm:`disco`}),polyominoFill:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.fill`,shortKey:`alg.common.compaction.polyomino.fill`,type:`bool`,default:!0,algorithm:`disco`}),polyominoLowLevelSort:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.lowLevelSort`,shortKey:`alg.common.compaction.polyomino.lowLevelSort`,type:`str`,default:`BY_SIZE_AND_SHAPE`,values:[`BY_SIZE`,`BY_SIZE_AND_SHAPE`],algorithm:`disco`}),polyominoHighLevelSort:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.highLevelSort`,shortKey:`alg.common.compaction.polyomino.highLevelSort`,type:`str`,default:`NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST`,values:[`CORNER_CASES_THAN_SINGLE_SIDE_LAST`,`NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST`],algorithm:`disco`}),polyominoTraversalStrategy:o({id:`org.eclipse.elk.alg.common.compaction.polyomino.traversalStrategy`,shortKey:`alg.common.compaction.polyomino.traversalStrategy`,type:`str`,default:`QUADRANTS_LINE_BY_LINE`,values:[`SPIRAL`,`LINE_BY_LINE`,`MANHATTAN`,`JITTER`,`QUADRANTS_MANHATTAN`,`QUADRANTS_LINE_BY_LINE`,`COMBINE_LINE_BY_LINE_MANHATTAN`,`COMBINE_JITTER_MANHATTAN`,`QUADRANTS_JITTER`],algorithm:`disco`})},force:{forceModel:o({id:`org.eclipse.elk.force.model`,shortKey:`force.model`,type:`str`,default:`FRUCHTERMAN_REINGOLD`,values:[`FRUCHTERMAN_REINGOLD`,`EADES`],algorithm:`force`}),forceIterations:o({id:`org.eclipse.elk.force.iterations`,shortKey:`force.iterations`,type:`num`,default:300,algorithm:`force`}),forceRepulsivePower:o({id:`org.eclipse.elk.force.repulsivePower`,shortKey:`force.repulsivePower`,type:`num`,default:0,algorithm:`force`}),forceTemperature:o({id:`org.eclipse.elk.force.temperature`,shortKey:`force.temperature`,type:`num`,default:.001,algorithm:`force`}),forceRepulsion:o({id:`org.eclipse.elk.force.repulsion`,shortKey:`force.repulsion`,type:`num`,default:5,algorithm:`force`}),stressFixed:o({id:`org.eclipse.elk.stress.fixed`,shortKey:`stress.fixed`,type:`bool`,default:!1,algorithm:`force`}),stressDesiredEdgeLength:o({id:`org.eclipse.elk.stress.desiredEdgeLength`,shortKey:`stress.desiredEdgeLength`,type:`num`,default:100,algorithm:`force`}),stressDimension:o({id:`org.eclipse.elk.stress.dimension`,shortKey:`stress.dimension`,type:`str`,default:`XY`,values:[`X`,`Y`,`XY`],algorithm:`force`}),stressEpsilon:o({id:`org.eclipse.elk.stress.epsilon`,shortKey:`stress.epsilon`,type:`num`,default:.001,algorithm:`force`}),stressIterationLimit:o({id:`org.eclipse.elk.stress.iterationLimit`,shortKey:`stress.iterationLimit`,type:`num`,default:2147483647,algorithm:`force`})},rectpacking:{widthApproximationStrategy:o({id:`org.eclipse.elk.rectpacking.widthApproximation.strategy`,shortKey:`rectpacking.widthApproximation.strategy`,type:`str`,default:`GREEDY`,values:[`GREEDY`,`TARGET_WIDTH`],algorithm:`rectpacking`}),widthApproximationTargetWidth:o({id:`org.eclipse.elk.rectpacking.widthApproximation.targetWidth`,shortKey:`rectpacking.widthApproximation.targetWidth`,type:`num`,default:-1,algorithm:`rectpacking`}),widthApproximationOptimizationGoal:o({id:`org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal`,shortKey:`rectpacking.widthApproximation.optimizationGoal`,type:`str`,default:`MAX_SCALE_DRIVEN`,values:[`ASPECT_RATIO_DRIVEN`,`MAX_SCALE_DRIVEN`,`AREA_DRIVEN`],algorithm:`rectpacking`}),widthApproximationLastPlaceShift:o({id:`org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift`,shortKey:`rectpacking.widthApproximation.lastPlaceShift`,type:`bool`,default:!0,algorithm:`rectpacking`}),packingStrategy:o({id:`org.eclipse.elk.rectpacking.packing.strategy`,shortKey:`rectpacking.packing.strategy`,type:`str`,default:`COMPACTION`,values:[`COMPACTION`,`SIMPLE`,`NONE`],algorithm:`rectpacking`}),packingCompactionRowHeightReevaluation:o({id:`org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation`,shortKey:`rectpacking.packing.compaction.rowHeightReevaluation`,type:`bool`,default:!1,algorithm:`rectpacking`}),packingCompactionIterations:o({id:`org.eclipse.elk.rectpacking.packing.compaction.iterations`,shortKey:`rectpacking.packing.compaction.iterations`,type:`num`,default:1,algorithm:`rectpacking`}),whiteSpaceEliminationStrategy:o({id:`org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy`,shortKey:`rectpacking.whiteSpaceElimination.strategy`,type:`str`,default:`NONE`,values:[`NONE`,`EQUAL_BETWEEN_STRUCTURES`,`TO_ASPECT_RATIO`],algorithm:`rectpacking`}),trybox:o({id:`org.eclipse.elk.rectpacking.trybox`,shortKey:`rectpacking.trybox`,type:`bool`,default:!1,algorithm:`rectpacking`}),orderBySize:o({id:`org.eclipse.elk.rectpacking.orderBySize`,shortKey:`rectpacking.orderBySize`,type:`bool`,default:!1,algorithm:`rectpacking`}),desiredPosition:o({id:`org.eclipse.elk.rectpacking.desiredPosition`,shortKey:`rectpacking.desiredPosition`,type:`num`,default:-1,algorithm:`rectpacking`}),currentPosition:o({id:`org.eclipse.elk.rectpacking.currentPosition`,shortKey:`rectpacking.currentPosition`,type:`num`,default:-1,algorithm:`rectpacking`}),inNewRow:o({id:`org.eclipse.elk.rectpacking.inNewRow`,shortKey:`rectpacking.inNewRow`,type:`bool`,default:!1,algorithm:`rectpacking`})},spore:{processingOrderTreeConstruction:o({id:`org.eclipse.elk.processingOrder.treeConstruction`,shortKey:`processingOrder.treeConstruction`,type:`str`,default:`MINIMUM_SPANNING_TREE`,values:[`MINIMUM_SPANNING_TREE`,`MAXIMUM_SPANNING_TREE`],algorithm:`spore`}),processingOrderSpanningTreeCostFunction:o({id:`org.eclipse.elk.processingOrder.spanningTreeCostFunction`,shortKey:`processingOrder.spanningTreeCostFunction`,type:`str`,default:`CIRCLE_UNDERLAP`,values:[`CENTER_DISTANCE`,`CIRCLE_UNDERLAP`,`RECTANGLE_UNDERLAP`,`INVERTED_OVERLAP`,`MINIMUM_ROOT_DISTANCE`],algorithm:`spore`}),processingOrderPreferredRoot:o({id:`org.eclipse.elk.processingOrder.preferredRoot`,shortKey:`processingOrder.preferredRoot`,type:`str`,default:`UNDEFINED`,algorithm:`spore`}),processingOrderRootSelection:o({id:`org.eclipse.elk.processingOrder.rootSelection`,shortKey:`processingOrder.rootSelection`,type:`str`,default:`CENTER_NODE`,values:[`FIXED`,`CENTER_NODE`],algorithm:`spore`}),compactionStrategy:o({id:`org.eclipse.elk.compaction.compactionStrategy`,shortKey:`compaction.compactionStrategy`,type:`str`,default:`DEPTH_FIRST`,values:[`DEPTH_FIRST`],algorithm:`spore`}),compactionOrthogonal:o({id:`org.eclipse.elk.compaction.orthogonal`,shortKey:`compaction.orthogonal`,type:`bool`,default:!1,algorithm:`spore`}),overlapRemovalMaxIterations:o({id:`org.eclipse.elk.overlapRemoval.maxIterations`,shortKey:`overlapRemoval.maxIterations`,type:`num`,default:64,algorithm:`spore`}),overlapRemovalRunScanline:o({id:`org.eclipse.elk.overlapRemoval.runScanline`,shortKey:`overlapRemoval.runScanline`,type:`bool`,default:!0,algorithm:`spore`})},topdownpacking:{hierarchicalNodeWidth:o({id:`org.eclipse.elk.topdown.hierarchicalNodeWidth`,shortKey:`topdown.hierarchicalNodeWidth`,type:`num`,default:150,algorithm:`topdownpacking`}),hierarchicalNodeAspectRatio:o({id:`org.eclipse.elk.topdown.hierarchicalNodeAspectRatio`,shortKey:`topdown.hierarchicalNodeAspectRatio`,type:`num`,default:1.414,algorithm:`topdownpacking`}),nodeArrangementStrategy:o({id:`org.eclipse.elk.topdownpacking.nodeArrangement.strategy`,shortKey:`topdownpacking.nodeArrangement.strategy`,type:`str`,default:`LEFT_RIGHT_TOP_DOWN_NODE_PLACER`,values:[`LEFT_RIGHT_TOP_DOWN_NODE_PLACER`],algorithm:`topdownpacking`}),whitespaceEliminationStrategy:o({id:`org.eclipse.elk.topdownpacking.whitespaceElimination.strategy`,shortKey:`topdownpacking.whitespaceElimination.strategy`,type:`str`,default:`BOTTOM_ROW_EQUAL_WHITESPACE_ELIMINATOR`,values:[`BOTTOM_ROW_EQUAL_WHITESPACE_ELIMINATOR`],algorithm:`topdownpacking`})},vertiflex:{verticalConstraint:o({id:`org.eclipse.elk.vertiflex.verticalConstraint`,shortKey:`vertiflex.verticalConstraint`,type:`num`,default:0,algorithm:`vertiflex`}),layoutStrategy:o({id:`org.eclipse.elk.vertiflex.layoutStrategy`,shortKey:`vertiflex.layoutStrategy`,type:`str`,default:`STRAIGHT`,values:[`STRAIGHT`,`BEND`],algorithm:`vertiflex`}),layerDistance:o({id:`org.eclipse.elk.vertiflex.layerDistance`,shortKey:`vertiflex.layerDistance`,type:`num`,default:50,algorithm:`vertiflex`}),considerNodeModelOrder:o({id:`org.eclipse.elk.vertiflex.considerNodeModelOrder`,shortKey:`vertiflex.considerNodeModelOrder`,type:`bool`,default:!0,algorithm:`vertiflex`})}};[...Object.values(s),...Object.values(c.radial),...Object.values(c.mrtree),...Object.values(c.disco),...Object.values(c.force),...Object.values(c.rectpacking),...Object.values(c.spore),...Object.values(c.topdownpacking),...Object.values(c.vertiflex)];let te=/* @__PURE__ */ function(e){return e.NORMAL=`NORMAL`,e.LONG_EDGE=`LONG_EDGE`,e.EXTERNAL_PORT=`EXTERNAL_PORT`,e.NORTH_SOUTH_PORT=`NORTH_SOUTH_PORT`,e.LABEL=`LABEL`,e.BREAKING_POINT=`BREAKING_POINT`,e.PLACEHOLDER=`PLACEHOLDER`,e.NONSHIFTING_PLACEHOLDER=`NONSHIFTING_PLACEHOLDER`,e}({}),l=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.NORTH=`NORTH`,e.EAST=`EAST`,e.SOUTH=`SOUTH`,e.WEST=`WEST`,e}({});const ne=[`NORTH`],re=[`EAST`],ie=[`SOUTH`],ae=[`WEST`],oe=[`EAST`,`WEST`],se=[`NORTH`,`SOUTH`],ce=[`NORTH`,`EAST`],le=[`EAST`,`SOUTH`],ue=[`SOUTH`,`WEST`],de=[`NORTH`,`WEST`],fe=[`NORTH`,`EAST`,`SOUTH`],pe=[`EAST`,`SOUTH`,`WEST`],me=[`SOUTH`,`WEST`,`NORTH`],he=[`WEST`,`NORTH`,`EAST`],ge=[`NORTH`,`EAST`,`SOUTH`,`WEST`];let _e=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.INPUT=`INPUT`,e.OUTPUT=`OUTPUT`,e}({}),ve=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.RIGHT=`RIGHT`,e.LEFT=`LEFT`,e.DOWN=`DOWN`,e.UP=`UP`,e}({}),u=/* @__PURE__ */ function(e){return e.UNDEFINED=`UNDEFINED`,e.FREE=`FREE`,e.FIXED_SIDE=`FIXED_SIDE`,e.FIXED_ORDER=`FIXED_ORDER`,e.FIXED_RATIO=`FIXED_RATIO`,e.FIXED_POS=`FIXED_POS`,e}({});(function(e){function t(e){return e===`FIXED_SIDE`||e===`FIXED_ORDER`||e===`FIXED_RATIO`||e===`FIXED_POS`}e.isSideFixed=t;function n(e){return e===`FIXED_POS`}e.isPosFixed=n;function r(e){return e===`FIXED_RATIO`}e.isRatioFixed=r;function i(e){return e===`FIXED_ORDER`||e===`FIXED_RATIO`||e===`FIXED_POS`}e.isOrderFixed=i})(u||={});let ye=/* @__PURE__ */ function(e){return e.NONE=`NONE`,e.FIRST=`FIRST`,e.FIRST_SEPARATE=`FIRST_SEPARATE`,e.LAST=`LAST`,e.LAST_SEPARATE=`LAST_SEPARATE`,e}({}),be=/* @__PURE__ */ function(e){return e.NONE=`NONE`,e.TOP=`TOP`,e.BOTTOM=`BOTTOM`,e}({}),xe=/* @__PURE__ */ function(e){return e.NONE=`NONE`,e.OUTGOING_ONLY=`OUTGOING_ONLY`,e.INCOMING_ONLY=`INCOMING_ONLY`,e}({});function Se(e=0,t=0){return{x:e,y:t}}(function(e){function t(e){switch(e){case`NORTH`:return`SOUTH`;case`SOUTH`:return`NORTH`;case`EAST`:return`WEST`;case`WEST`:return`EAST`;default:return`UNDEFINED`}}e.opposed=t;function n(e){return e===`NORTH`||e===`SOUTH`}e.isVertical=n;function r(e){return e===`EAST`||e===`WEST`}e.isHorizontal=r})(l||={});let Ce;(function(e){e.PORT_CONSTRAINTS_KEY=s.portConstraints.id})(Ce||={});let we=/* @__PURE__ */ function(e){return e.EXTERNAL_PORTS=`EXTERNAL_PORTS`,e.NON_FREE_PORTS=`NON_FREE_PORTS`,e.NORTH_SOUTH_PORTS=`NORTH_SOUTH_PORTS`,e.SELF_LOOPS=`SELF_LOOPS`,e.CENTER_LABELS=`CENTER_LABELS`,e.HYPEREDGES=`HYPEREDGES`,e.END_LABELS=`END_LABELS`,e.COMMENTS=`COMMENTS`,e.PARTITIONS=`PARTITIONS`,e.HYPERNODES=`HYPERNODES`,e}({});const Te=new i(`org.eclipse.elk.layered.internal.origin`),Ee=new i(`org.eclipse.elk.layered.internal.topComments`),De=new i(`org.eclipse.elk.layered.internal.bottomComments`),Oe=new i(`org.eclipse.elk.layered.internal.commentConnPort`),ke=new i(`org.eclipse.elk.layered.internal.extPortSide`,`UNDEFINED`),Ae=new i(`org.eclipse.elk.layered.internal.extPortSize`),je=new i(`org.eclipse.elk.layered.internal.portDummy`),Me=new i(`org.eclipse.elk.layered.internal.insideConnections`,!1),Ne=new i(`org.eclipse.elk.layered.internal.portRatioOrPosition`,0),d=new i(`org.eclipse.elk.layered.internal.crossHierarchyMap`),f=new i(`org.eclipse.elk.layered.internal.splineRouteStart`,null),p=new i(`org.eclipse.elk.layered.internal.splineEdgeChain`,null),m=new i(`org.eclipse.elk.layered.internal.splineSurvivingEdge`,null),h=new i(`org.eclipse.elk.layered.internal.splineNsPortYCoord`,null),g=new i(`org.eclipse.elk.layered.internal.random`),_=new i(`org.eclipse.elk.layered.internal.greedySwitchActive`,!1),v=new i(`org.eclipse.elk.layered.internal.reversed`,!1),y=new i(`org.eclipse.elk.layered.internal.cyclic`,!1),b=new i(`org.eclipse.elk.layered.internal.breakingPointInfo`,null),Pe=new i(`org.eclipse.elk.layered.internal.partitionDummy`,!1),Fe=new i(`org.eclipse.elk.layered.internal.inputCollect`,!1),Ie=new i(`org.eclipse.elk.layered.internal.outputCollect`,!1),Le=new i(`org.eclipse.elk.layered.internal.hiddenNodes`),Re=new i(`org.eclipse.elk.layered.internal.originalOppositePort`),ze=new i(`org.eclipse.elk.layered.internal.originalLabelEdge`),Be=new i(`org.eclipse.elk.layered.internal.extPortConnections`),Ve=new i(`org.eclipse.elk.layered.internal.modelOrder`,0),He=new i(`org.eclipse.elk.layered.internal.maxModelOrderNodes`,0),Ue=new i(`org.eclipse.elk.layered.internal.modelOrderGroups.cb.number`,0),We=new i(`org.eclipse.elk.layered.internal.targetNodeModelOrder`),Ge=new i(`org.eclipse.elk.layered.internal.longEdgeTargetNode`),Ke=new i(`org.eclipse.elk.layered.internal.extPortReplacedDummy`),qe=new i(`org.eclipse.elk.layered.internal.extPortReplacedDummies`),Je=new i(`org.eclipse.elk.layered.internal.targetOffset`),Ye=new i(`org.eclipse.elk.layered.internal.graphProperties`,/* @__PURE__ */ new Set),Xe=new i(`org.eclipse.elk.layered.internal.inLayerLayoutUnit`),Ze=new i(`org.eclipse.elk.layered.internal.barycenterAssociates`),Qe=new i(`org.eclipse.elk.layered.internal.inLayerSuccessorConstraints`),$e=new i(`org.eclipse.elk.layered.internal.inLayerSuccessorConstraintsBetweenNonDummies`,!1),et=new i(`org.eclipse.elk.layered.internal.crossingHint`,0),tt=new i(`org.eclipse.elk.layered.internal.representedLabels`,[]),nt=new i(`org.eclipse.elk.layered.internal.labelSide`,`BELOW`),rt=new i(`org.eclipse.elk.layered.internal.portIsOutput`,!1),it=new i(`org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder`,!1),at=new i(`org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness`,.1),ot=new i(`org.eclipse.elk.layered.internal.spacings`),st=new i(`org.eclipse.elk.layered.internal.longEdgeSource`),ct=new i(`org.eclipse.elk.layered.internal.longEdgeTarget`),lt=new i(`org.eclipse.elk.layered.internal.longEdgeHasLabelDummies`,!1),ut=new i(`org.eclipse.elk.layered.internal.longEdgeBeforeLabelDummy`,!1),dt=new i(`org.eclipse.elk.layered.internal.endLabelEdge`),ft=new i(`org.eclipse.elk.layered.internal.selfLoopHolder`),pt=new i(`org.eclipse.elk.layered.internal.originalPortConstraints`),mt=new i(`org.eclipse.elk.layered.internal.originalDummyNodePosition`),ht=new i(`org.eclipse.elk.layered.internal.originalBendPoints`),gt=new i(`org.eclipse.elk.layered.internal.endLabels`),_t=new i(`org.eclipse.elk.layered.internal.maxEdgeThickness`,0),x={NONE:`NONE`,INSIDE_PORT_SIDE_GROUPS:`INSIDE_PORT_SIDE_GROUPS`,GROUP_MODEL_ORDER:`GROUP_MODEL_ORDER`,MODEL_ORDER:`MODEL_ORDER`};x.NONE,x.INSIDE_PORT_SIDE_GROUPS,x.GROUP_MODEL_ORDER,x.MODEL_ORDER;const vt=new i(`org.eclipse.elk.layered.priority.direction`,0),yt=new i(`org.eclipse.elk.direction`,`UNDEFINED`),bt=new i(`org.eclipse.elk.aspectRatio`,1.6),S=new i(`org.eclipse.elk.port.borderOffset`,0),xt=new i(`org.eclipse.elk.port.index`,null),St=new i(`org.eclipse.elk.layered.portSortingStrategy`,`INPUT_ORDER`),Ct=new i(`org.eclipse.elk.port.side`,`UNDEFINED`),wt=new i(`org.eclipse.elk.port.anchor`),Tt=new i(`org.eclipse.elk.layered.layering.layerConstraint`),Et=new i(`org.eclipse.elk.layered.internal.edgeConstraint`);new i(`org.eclipse.elk.layered.internal.inLayerConstraint`);const C=new i(`org.eclipse.elk.portConstraints`,`UNDEFINED`),Dt=new i(`org.eclipse.elk.layered.feedbackEdges`,!1),Ot=new i(`org.eclipse.elk.layered.mergeHierarchyEdges`,!0),kt=new i(`org.eclipse.elk.layered.mergeEdges`,!1),At=new i(`org.eclipse.elk.layered.compaction.postCompaction.strategy`,`NONE`),jt=new i(`org.eclipse.elk.layered.compaction.postCompaction.constraints`,`SCANLINE`),Mt=new i(`org.eclipse.elk.layered.unnecessaryBendpoints`,!1),w=new i(`org.eclipse.elk.insideSelfLoops.activate`,!1),Nt=new i(`org.eclipse.elk.insideSelfLoops.yo`,!1),T=new i(`org.eclipse.elk.spacing.portsSurrounding`,{top:0,left:0,bottom:0,right:0}),Pt=new i(`org.eclipse.elk.spacing.individual`,null),Ft=new i(`org.eclipse.elk.spacing.edgeEdge`,10),It=new i(`org.eclipse.elk.spacing.nodeNode`,20),Lt=new i(`org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers`,20),Rt=new i(`org.eclipse.elk.randomSeed`,1),zt=new i(`org.eclipse.elk.layered.priority.shortness`,0),Bt=new i(`org.eclipse.elk.layered.thoroughness`,7),Vt=new i(`org.eclipse.elk.hierarchyHandling`,null),Ht=new i(`org.eclipse.elk.layered.crossingMinimization.strategy`,`LAYER_SWEEP`),Ut=new i(`org.eclipse.elk.separateConnectedComponents`,!0),E=new i(`org.eclipse.elk.interactiveLayout`,!1),Wt=new i(`org.eclipse.elk.layered.generatePositionAndLayerIds`,!1),Gt=new i(`org.eclipse.elk.layered.layering.strategy`,`NETWORK_SIMPLEX`),Kt=new i(`org.eclipse.elk.layered.nodePlacement.strategy`,`BRANDES_KOEPF`),qt=new i(`org.eclipse.elk.layered.considerModelOrder.strategy`,`NONE`),Jt=new i(`org.eclipse.elk.layered.considerModelOrder.portModelOrder`,!1),Yt=new i(`org.eclipse.elk.layered.considerModelOrder.longEdgeOrderingStrategy`,`EQUAL`),Xt=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cmGroupOrderStrategy`,`MODEL_ORDER`),Zt=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cmEnforcedGroupOrders`,[]),Qt=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.crossingMinimizationId`,null),$t=new i(`org.eclipse.elk.layered.considerModelOrder.noModelOrder`,!1),en=new i(`org.eclipse.elk.layered.considerModelOrder.components`,x.NONE),tn=new i(`org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides`,!1),nn=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cycleBreakingId`,0),rn=new i(`org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cbGroupOrderStrategy`,`ONLY_WITHIN_GROUP`),an=new i(`org.eclipse.elk.layered.cycleBreaking.strategy`,`GREEDY`),on=new i(`org.eclipse.elk.layered.layering.nodePromotion.strategy`,`NONE`);new i(`org.eclipse.elk.layered.layering.nodePromotion.maxIterations`,0);const sn=new i(`org.eclipse.elk.layered.layering.coffmanGraham.layerBound`,2147483647),cn=new i(`org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth`,4),ln=new i(`org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor`,2),D=new i(`org.eclipse.elk.nodeLabels.padding`,{top:5,right:5,bottom:5,left:5}),O=new i(`org.eclipse.elk.nodeSize.constraints`,[]),un=new i(`org.eclipse.elk.position`,null),dn=new i(`org.eclipse.elk.partitioning.activate`,!1),fn=new i(`org.eclipse.elk.partitioning.partition`,null),pn=new i(`org.eclipse.elk.layered.highDegreeNodes.treatment`,!1),mn=new i(`org.eclipse.elk.layered.highDegreeNodes.threshold`,16),hn=new i(`org.eclipse.elk.layered.highDegreeNodes.treeHeight`,5),k=new i(`org.eclipse.elk.nodeSize.minimum`,{x:0,y:0}),A=new i(`org.eclipse.elk.nodeSize.options`,[]);new i(`org.eclipse.elk.nodeSize.fixedGraphSize`,!1);const j=new i(`org.eclipse.elk.nodeLabels.placement`,[]),M=new i(`org.eclipse.elk.portLabels.placement`,[`OUTSIDE`]),N=new i(`org.eclipse.elk.portAlignment.default`,`DISTRIBUTED`),P=new i(`org.eclipse.elk.portAlignment.north`,`DISTRIBUTED`),F=new i(`org.eclipse.elk.portAlignment.south`,`DISTRIBUTED`),I=new i(`org.eclipse.elk.portAlignment.east`,`DISTRIBUTED`),L=new i(`org.eclipse.elk.portAlignment.west`,`DISTRIBUTED`),gn=new i(`org.eclipse.elk.layered.layerUnzipping.strategy`,`NONE`),_n=new i(`org.eclipse.elk.layered.layerUnzipping.layerSplit`,2),vn=new i(`org.eclipse.elk.layered.layerUnzipping.minimizeEdgeLength`,!1),yn=new i(`org.eclipse.elk.layered.layerUnzipping.resetOnLongEdges`,!0),bn=new i(`org.eclipse.elk.layered.nodePlacement.favorStraightEdges`,null),xn=new i(`org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment`,`NONE`),Sn=new i(`org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening`,`IMPROVE_STRAIGHTNESS`),Cn=new i(`org.eclipse.elk.layered.priority.straightness`,0),R=new i(`org.eclipse.elk.spacing.portPort`,10),wn=new i(`org.eclipse.elk.spacing.edgeNode`,10),Tn=new i(`org.eclipse.elk.edgeRouting`,`ORTHOGONAL`),En=new i(`org.eclipse.elk.commentBox`,!1),Dn=new i(`org.eclipse.elk.spacing.commentComment`,10),On=new i(`org.eclipse.elk.spacing.commentNode`,10),kn=new i(`org.eclipse.elk.layered.edgeRouting.splines.mode`,`SLOPPY`),An=new i(`org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor`,.2),jn=new i(`org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers`,10),Mn=new i(`org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers`,10),Nn=new i(`org.eclipse.elk.edge.thickness`,1),Pn=new i(`org.eclipse.elk.spacing.edgeLabel`,2),Fn=new i(`org.eclipse.elk.spacing.nodeSelfLoop`,10),z=new i(`org.eclipse.elk.spacing.labelLabel`,0),B=new i(`org.eclipse.elk.spacing.labelNode`,5),V=new i(`org.eclipse.elk.spacing.labelPortHorizontal`,1),H=new i(`org.eclipse.elk.spacing.labelPortVertical`,1),In=new i(`org.eclipse.elk.spacing.componentComponent`,20),Ln=new i(`org.eclipse.elk.layered.edgeRouting.selfLoopDistribution`,`NORTH`),Rn=new i(`org.eclipse.elk.layered.edgeRouting.selfLoopOrdering`,`STACKED`),zn=new i(`org.eclipse.elk.layered.directionCongruency`,`READING_DIRECTION`),Bn=new i(`org.eclipse.elk.junctionPoints`,null);new i(`org.eclipse.elk.edgeLabels.placement`,`UNDEFINED`);const Vn=new i(`org.eclipse.elk.layered.edgeLabels.sideSelection`,`SMART_DOWN`),Hn=new i(`org.eclipse.elk.layered.interactiveReferencePoint`,`CENTER`),Un=new i(`org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth`,2),Wn=new i(`org.eclipse.elk.layered.crossingMinimization.greedySwitch.type`,`TWO_SIDED`),Gn=new i(`org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold`,40);new i(`org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type`,`OFF`);const Kn=new i(`org.eclipse.elk.layered.crossingMinimization.semiInteractive`,!1),qn=new i(`org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility`,`NONE`),Jn=new i(`org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default`,`NONE`),Yn=new i(`org.eclipse.elk.alignment`,`AUTOMATIC`),Xn=new i(`org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy`,`MEDIAN_LAYER`),Zn=new i(`org.eclipse.elk.layered.layering.layerId`,-1),Qn=new i(`org.eclipse.elk.layered.crossingMinimization.positionId`,-1),$n=new i(`org.eclipse.elk.hypernode`,!1),er=new i(`org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.recomputeNodePlacement`,null),tr=new i(`org.eclipse.elk.layered.wrapping.strategy`,`OFF`),nr=new i(`org.eclipse.elk.layered.wrapping.additionalEdgeSpacing`,10),rr=new i(`org.eclipse.elk.layered.wrapping.correctionFactor`,1),ir=new i(`org.eclipse.elk.layered.wrapping.cutting.strategy`,`MSD`),ar=new i(`org.eclipse.elk.layered.wrapping.cutting.cuts`,null),or=new i(`org.eclipse.elk.layered.wrapping.cutting.msd.freedom`,1),sr=new i(`org.eclipse.elk.layered.wrapping.validify.strategy`,`GREEDY`),cr=new i(`org.eclipse.elk.layered.wrapping.validify.forbiddenIndices`,null),lr=new i(`org.eclipse.elk.layered.wrapping.multiEdge.improveCuts`,!0),ur=new i(`org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty`,2),dr=new i(`org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges`,!0);n(S),n(C),n(w),n(T),n(D),n(O),n(A),n(k),n(j),n(M),n(N),n(P),n(F),n(I),n(L),n(R),n(z),n(B),n(V),n(H),r(`org.eclipse.elk.portLabels.treatAsGroup`);function U(e){return e.trim().toLowerCase().replace(/^org\.eclipse\.elk\./,``).replace(/^elk\./,``)}const W=/* @__PURE__ */ new Set([`layered`,`elk.layered`,`org.eclipse.elk.layered`]),G=/* @__PURE__ */ new Set([`box`,`elk.box`,`org.eclipse.elk.box`,`fixed`,`elk.fixed`,`org.eclipse.elk.fixed`,`random`,`elk.random`,`org.eclipse.elk.random`]),K=/* @__PURE__ */ new Set([`stress`,`elk.stress`,`org.eclipse.elk.stress`,`force`,`elk.force`,`org.eclipse.elk.force`]),q=/* @__PURE__ */ new Set([`rectpacking`,`elk.rectpacking`,`org.eclipse.elk.rectpacking`]),J=/* @__PURE__ */ new Set([`topdownpacking`,`elk.topdownpacking`,`org.eclipse.elk.topdownpacking`]),Y=/* @__PURE__ */ new Set([`sporeoverlap`,`elk.sporeoverlap`,`org.eclipse.elk.sporeoverlap`,`sporecompaction`,`elk.sporecompaction`,`org.eclipse.elk.sporecompaction`]),X=/* @__PURE__ */ new Set([`radial`,`elk.radial`,`org.eclipse.elk.radial`]),Z=/* @__PURE__ */ new Set([`vertiflex`,`elk.vertiflex`,`org.eclipse.elk.vertiflex`,`org.eclipse.elk.alg.vertiflex`]),Q=/* @__PURE__ */ new Set([`disco`,`elk.disco`,`org.eclipse.elk.disco`]),$=/* @__PURE__ */ new Set([`mrtree`,`elk.mrtree`,`org.eclipse.elk.mrtree`,`org.eclipse.elk.alg.mrtree`]),fr=/* @__PURE__ */ new Set([.../* @__PURE__ */ new Set([...[...W,...G,...K,...q,...J,...Y,...X,...Z,...Q,...$].map(U)])]);function pr(e){return typeof e==`string`&&e.trim()!==``&&fr.has(U(e))}Object.defineProperty(exports,"$",{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,"$n",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,"$r",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"$t",{enumerable:!0,get:function(){return Ft}}),Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return Wn}}),Object.defineProperty(exports,"An",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"Ar",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,"At",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return Tn}}),Object.defineProperty(exports,"Bn",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,"Br",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"Bt",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,"Cn",{enumerable:!0,get:function(){return dr}}),Object.defineProperty(exports,"Cr",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,"Ct",{enumerable:!0,get:function(){return er}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,"Dn",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"Dr",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"Dt",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,"En",{enumerable:!0,get:function(){return sr}}),Object.defineProperty(exports,"Er",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"Et",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return yt}}),Object.defineProperty(exports,"Fn",{enumerable:!0,get:function(){return at}}),Object.defineProperty(exports,"Fr",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"Ft",{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(exports,"Gn",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,"Gr",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"Gt",{enumerable:!0,get:function(){return Cn}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return kn}}),Object.defineProperty(exports,"Hn",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"Hr",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"Ht",{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return zn}}),Object.defineProperty(exports,"In",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"Ir",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"It",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"J",{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,"Jn",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"Jr",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"Jt",{enumerable:!0,get:function(){return Rn}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,"Kn",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"Kr",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"Kt",{enumerable:!0,get:function(){return Rt}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return Et}}),Object.defineProperty(exports,"Ln",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"Lr",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"Lt",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return Kn}}),Object.defineProperty(exports,"Mn",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,"Mr",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"Mt",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return Ht}}),Object.defineProperty(exports,"Nn",{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,"Nr",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"Nt",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return qt}}),Object.defineProperty(exports,"On",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,"Or",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"Ot",{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return an}}),Object.defineProperty(exports,"Pn",{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,"Pr",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"Pt",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"Q",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"Qn",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,"Qr",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"Qt",{enumerable:!0,get:function(){return In}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return Xn}}),Object.defineProperty(exports,"Rn",{enumerable:!0,get:function(){return gt}}),Object.defineProperty(exports,"Rr",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"Rt",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,"Sn",{enumerable:!0,get:function(){return lr}}),Object.defineProperty(exports,"Sr",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"St",{enumerable:!0,get:function(){return Jn}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(exports,"Tn",{enumerable:!0,get:function(){return cr}}),Object.defineProperty(exports,"Tr",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"Tt",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return An}}),Object.defineProperty(exports,"Un",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"Ur",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"Ut",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return Un}}),Object.defineProperty(exports,"Vn",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"Vr",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"Vt",{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return Nn}}),Object.defineProperty(exports,"Wn",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,"Wr",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"Wt",{enumerable:!0,get:function(){return zt}}),Object.defineProperty(exports,"X",{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,"Xn",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"Xr",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"Xt",{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,"Y",{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,"Yn",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,"Yr",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"Yt",{enumerable:!0,get:function(){return Ut}}),Object.defineProperty(exports,"Z",{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,"Zn",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"Zr",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"Zt",{enumerable:!0,get:function(){return On}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return jt}}),Object.defineProperty(exports,"_n",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,"_r",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"_t",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"ai",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"an",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"ar",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"at",{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,"bn",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,"br",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"bt",{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"cn",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"cr",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"ct",{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return pr}}),Object.defineProperty(exports,"dn",{enumerable:!0,get:function(){return Fn}}),Object.defineProperty(exports,"dr",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,"dt",{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,"ei",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"en",{enumerable:!0,get:function(){return jn}}),Object.defineProperty(exports,"er",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,"et",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"fn",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"fr",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,"ft",{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return En}}),Object.defineProperty(exports,"gn",{enumerable:!0,get:function(){return nr}}),Object.defineProperty(exports,"gr",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"gt",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,"hn",{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,"hr",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"ht",{enumerable:!0,get:function(){return Ot}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"ii",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"in",{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(exports,"ir",{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,"it",{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return Qn}}),Object.defineProperty(exports,"jn",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"jr",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"jt",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return Gn}}),Object.defineProperty(exports,"kn",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"kr",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"kt",{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"ln",{enumerable:!0,get:function(){return It}}),Object.defineProperty(exports,"lr",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"lt",{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,"mn",{enumerable:!0,get:function(){return Bt}}),Object.defineProperty(exports,"mr",{enumerable:!0,get:function(){return pt}}),Object.defineProperty(exports,"mt",{enumerable:!0,get:function(){return kt}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"ni",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"nn",{enumerable:!0,get:function(){return wn}}),Object.defineProperty(exports,"nr",{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,"nt",{enumerable:!0,get:function(){return Bn}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"on",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"or",{enumerable:!0,get:function(){return _t}}),Object.defineProperty(exports,"ot",{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,"pn",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"pr",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,"pt",{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,"q",{enumerable:!0,get:function(){return Vt}}),Object.defineProperty(exports,"qn",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"qr",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"qt",{enumerable:!0,get:function(){return Ln}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"ri",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"rn",{enumerable:!0,get:function(){return Mn}}),Object.defineProperty(exports,"rr",{enumerable:!0,get:function(){return st}}),Object.defineProperty(exports,"rt",{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"sn",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"sr",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"st",{enumerable:!0,get:function(){return ln}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"ti",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"tn",{enumerable:!0,get:function(){return Pn}}),Object.defineProperty(exports,"tr",{enumerable:!0,get:function(){return ut}}),Object.defineProperty(exports,"tt",{enumerable:!0,get:function(){return Hn}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"un",{enumerable:!0,get:function(){return Lt}}),Object.defineProperty(exports,"ur",{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,"ut",{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return At}}),Object.defineProperty(exports,"vn",{enumerable:!0,get:function(){return ar}}),Object.defineProperty(exports,"vr",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,"vt",{enumerable:!0,get:function(){return Sn}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,"wn",{enumerable:!0,get:function(){return tr}}),Object.defineProperty(exports,"wr",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(exports,"wt",{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(exports,"xn",{enumerable:!0,get:function(){return ur}}),Object.defineProperty(exports,"xr",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"xt",{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,"yn",{enumerable:!0,get:function(){return or}}),Object.defineProperty(exports,"yr",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,"yt",{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return Vn}}),Object.defineProperty(exports,"zn",{enumerable:!0,get:function(){return dt}}),Object.defineProperty(exports,"zr",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"zt",{enumerable:!0,get:function(){return M}});
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../elk-json-BtGnwuQE.cjs"),t=require("../api-DWBi7ngO.cjs");exports.LayoutError=e.o,exports.LayoutErrorCode=e.s,exports.assertValidLayoutInput=e.i,exports.buildGraph=e.t,exports.createLayoutWorker=t.t,exports.diffLayout=t.n,exports.extractGraph=e.n,exports.layoutElkJson=e.r,exports.layoutJsonBatch=t.i,exports.layoutJsonDiff=t.r,exports.validateLayoutInput=e.a;
@@ -0,0 +1,4 @@
1
+ import { _ as LayoutProgressEvent, a as ElkNode, c as LayoutInput, d as LayoutSummary, f as buildGraph, g as LayoutPhase, h as LayoutControl, i as ElkLayoutOptions, l as LayoutOutput, m as layoutElkJson, n as ElkEdge, o as ElkPoint, p as extractGraph, r as ElkEdgeSection, s as ElkPort, t as BuiltGraph, u as LayoutOutputEdge } from "../elk-json-ibWtLFj2.cjs";
2
+ import { a as LayoutErrorOptions, i as LayoutErrorCode, n as validateLayoutInput, o as LayoutIssue, r as LayoutError, t as assertValidLayoutInput } from "../validate-B9vX3T2G.cjs";
3
+ import { a as WorkerLike, c as LayoutEdgeDelta, d as layoutJsonDiff, f as LayoutBatchItem, i as LayoutWorkerResponse, l as LayoutNodeDelta, m as layoutJsonBatch, n as LayoutWorkerError, o as createLayoutWorker, p as LayoutBatchResult, r as LayoutWorkerRequest, s as LayoutDiff, t as LayoutWorkerClient, u as diffLayout } from "../index-Dl2hrLFA.cjs";
4
+ export { type BuiltGraph, type ElkEdge, type ElkEdgeSection, type ElkLayoutOptions, type ElkNode, type ElkPoint, type ElkPort, type LayoutBatchItem, type LayoutBatchResult, type LayoutControl, type LayoutDiff, type LayoutEdgeDelta, LayoutError, LayoutErrorCode, type LayoutErrorOptions, type LayoutInput, type LayoutIssue, type LayoutNodeDelta, type LayoutOutput, type LayoutOutputEdge, type LayoutPhase, type LayoutProgressEvent, type LayoutSummary, type LayoutWorkerClient, type LayoutWorkerError, type LayoutWorkerRequest, type LayoutWorkerResponse, type WorkerLike, assertValidLayoutInput, buildGraph, createLayoutWorker, diffLayout, extractGraph, layoutElkJson, layoutJsonBatch, layoutJsonDiff, validateLayoutInput };
@@ -0,0 +1,4 @@
1
+ import { _ as LayoutProgressEvent, a as ElkNode, c as LayoutInput, d as LayoutSummary, f as buildGraph, g as LayoutPhase, h as LayoutControl, i as ElkLayoutOptions, l as LayoutOutput, m as layoutElkJson, n as ElkEdge, o as ElkPoint, p as extractGraph, r as ElkEdgeSection, s as ElkPort, t as BuiltGraph, u as LayoutOutputEdge } from "../elk-json-ibWtLFj2.js";
2
+ import { a as LayoutErrorOptions, i as LayoutErrorCode, n as validateLayoutInput, o as LayoutIssue, r as LayoutError, t as assertValidLayoutInput } from "../validate-B9vX3T2G.js";
3
+ import { a as WorkerLike, c as LayoutEdgeDelta, d as layoutJsonDiff, f as LayoutBatchItem, i as LayoutWorkerResponse, l as LayoutNodeDelta, m as layoutJsonBatch, n as LayoutWorkerError, o as createLayoutWorker, p as LayoutBatchResult, r as LayoutWorkerRequest, s as LayoutDiff, t as LayoutWorkerClient, u as diffLayout } from "../index-C_0jvfEV.js";
4
+ export { type BuiltGraph, type ElkEdge, type ElkEdgeSection, type ElkLayoutOptions, type ElkNode, type ElkPoint, type ElkPort, type LayoutBatchItem, type LayoutBatchResult, type LayoutControl, type LayoutDiff, type LayoutEdgeDelta, LayoutError, LayoutErrorCode, type LayoutErrorOptions, type LayoutInput, type LayoutIssue, type LayoutNodeDelta, type LayoutOutput, type LayoutOutputEdge, type LayoutPhase, type LayoutProgressEvent, type LayoutSummary, type LayoutWorkerClient, type LayoutWorkerError, type LayoutWorkerRequest, type LayoutWorkerResponse, type WorkerLike, assertValidLayoutInput, buildGraph, createLayoutWorker, diffLayout, extractGraph, layoutElkJson, layoutJsonBatch, layoutJsonDiff, validateLayoutInput };
@@ -0,0 +1 @@
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../elk-json-B9eLYtu6.js";import{i as s,n as c,r as l,t as u}from"../api-BRaDa6RG.js";export{r as LayoutError,a as LayoutErrorCode,t as assertValidLayoutInput,o as buildGraph,u as createLayoutWorker,c as diffLayout,n as extractGraph,i as layoutElkJson,s as layoutJsonBatch,l as layoutJsonDiff,e as validateLayoutInput};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../elk-json-BtGnwuQE.cjs");exports.LayoutError=e.o,exports.LayoutErrorCode=e.s,exports.assertValidLayoutInput=e.i,exports.layoutElkJson=e.r,exports.validateLayoutInput=e.a;
@@ -0,0 +1,3 @@
1
+ import { a as ElkNode, c as LayoutInput, d as LayoutSummary, i as ElkLayoutOptions, l as LayoutOutput, m as layoutElkJson, n as ElkEdge, o as ElkPoint, r as ElkEdgeSection, s as ElkPort, u as LayoutOutputEdge } from "../elk-json-ibWtLFj2.cjs";
2
+ import { a as LayoutErrorOptions, i as LayoutErrorCode, n as validateLayoutInput, o as LayoutIssue, r as LayoutError, t as assertValidLayoutInput } from "../validate-B9vX3T2G.cjs";
3
+ export { type ElkEdge, type ElkEdgeSection, type ElkLayoutOptions, type ElkNode, type ElkPoint, type ElkPort, LayoutError, LayoutErrorCode, type LayoutErrorOptions, type LayoutInput, type LayoutIssue, type LayoutOutput, type LayoutOutputEdge, type LayoutSummary, assertValidLayoutInput, layoutElkJson, validateLayoutInput };
@@ -0,0 +1,3 @@
1
+ import { a as ElkNode, c as LayoutInput, d as LayoutSummary, i as ElkLayoutOptions, l as LayoutOutput, m as layoutElkJson, n as ElkEdge, o as ElkPoint, r as ElkEdgeSection, s as ElkPort, u as LayoutOutputEdge } from "../elk-json-ibWtLFj2.js";
2
+ import { a as LayoutErrorOptions, i as LayoutErrorCode, n as validateLayoutInput, o as LayoutIssue, r as LayoutError, t as assertValidLayoutInput } from "../validate-B9vX3T2G.js";
3
+ export { type ElkEdge, type ElkEdgeSection, type ElkLayoutOptions, type ElkNode, type ElkPoint, type ElkPort, LayoutError, LayoutErrorCode, type LayoutErrorOptions, type LayoutInput, type LayoutIssue, type LayoutOutput, type LayoutOutputEdge, type LayoutSummary, assertValidLayoutInput, layoutElkJson, validateLayoutInput };
@@ -0,0 +1 @@
1
+ export{o as LayoutError,s as LayoutErrorCode,i as assertValidLayoutInput,r as layoutElkJson,a as validateLayoutInput}from"../elk-json-B9eLYtu6.js";