ice-entity-designer 0.12.1 → 0.12.3

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,101 @@
1
+ # 变更日志
2
+
3
+ 本文件记录所有值得注意的变更,格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
4
+ 版本号遵循[语义化版本](https://semver.org/lang/zh-CN/)。
5
+
6
+ > 更早的版本(0.11.0 及以前)在本文件建立前发布,只保留一行摘要;细节见对应的 `git tag` 与提交历史。
7
+
8
+ ## [Unreleased]
9
+
10
+ > 下一个版本发布前,改动在这里累积。
11
+
12
+ ## [0.12.3] - 2026-09-26
13
+
14
+ ### 修复
15
+
16
+ - **位号 / 名称被进线穿过**(给排水符号):端口取的是形状盒**边中点**
17
+ (`FlowDesigner.__slotPoint()` → `box.tc` / `box.bc`,且 `getMinBoundingBox(refresh)` 不含子节点),
18
+ 而位号(顶边外侧居中)与名称(底边外侧居中)也画在**同一条中轴线**上 —— 两者各自都对,
19
+ 合起来就是"从上 / 下进线连着箭头一起穿过文字":实测缺氧池 A 的 `AX-101` 被混合液回流线
20
+ 穿成 `AX⊥01`(像素采样:10 个取景里 17 处文字带里有管线颜料,放大图元间距完全无效 ——
21
+ 这是几何冲突,不是间距不够)。
22
+
23
+ 现在**顶边 / 底边被连线占用时,对应那行文字往右让开**:让开量按估算字宽算
24
+ (`estimateWaterTextWidth()`:CJK 一个字宽、拉丁数字 0.55 个字宽,`V-101` 与 `混凝沉淀池`
25
+ 差好几倍,拍常数必然一头松一头紧),正好让文字左缘落在端口柱右侧 8px;
26
+ 水平端口(L / R)不在那条中轴线上,照旧居中。
27
+
28
+ 谁把"哪条边被占了"推给符号:**边是唯一真相**,由 `WaterProcessDesigner.refreshPortOccupancy()`
29
+ 从管线的 `links.start/end` 重算,在增删管线、删图元(基类会级联删连线)、载入快照之后各跑一遍;
30
+ 交互式改接(把端点拖到别的端口)由构造期挂的 `mouseup` 兜住(引擎没有"连接变了"的事件)。
31
+ 占用是**派生数据**:作为私有字段进符号,不进 `state` —— 不进快照、不碰 codec 的完整性约束。
32
+
33
+ 回归:`tests/water/water-symbols.test.ts`(让位量 / 水平端口不影响 / 松开回位)、
34
+ `tests/water/water-designer.test.ts`(接线后让位、删管线回位、删图元级联回位、快照往返后仍让位)。
35
+
36
+ ## [0.12.2] - 2026-09-21
37
+
38
+ ### 修复
39
+
40
+ - **补发布门禁**:本仓此前既没有 `verify` 也没有 `prepublishOnly`,`npm publish` 会**直接打包上一次
41
+ 构建的 `dist`**(0.12.1 就是这样发出去的 —— 功能上两个修复都在,但发布产物 ≠ tag 源码)。
42
+ 现在 `prepublishOnly = npm run verify`(`types:check` + `build` + `test`),发布当场重建产物。
43
+
44
+ ## [0.12.1] - 2026-09-21
45
+
46
+ ### 修复
47
+
48
+ - **虚拟文档批量精灵全是空白位图**("初始画面只有管线、一个图元都没有"):`WaterVirtualDoc.__mintSprites()`
49
+ 只调了一次 `tpl.renderTo()`,而引擎的 `renderTo()` **只画「组件自己」**(子组件由渲染队列逐组件绘制),
50
+ `WaterSymbol` 是 `ICEGroup` 复合组件、自身不落墨 —— 21 种工艺符号的离屏位图全空。
51
+ 改用引擎 4.3.0 新增的 `renderSubtreeTo()`(按与渲染队列 / SVG 导出同源的次序递归整棵模板树)。
52
+ - **自定义图元集体不上屏**(池 / 泳道的框、事件圆、网关菱形、任务角标、数据对象消失,只剩标题文字):
53
+ `createEmptyPath()` 只 clone 了 `Path2DRecorder` 的构造函数,`native` 恒为 `null`,而引擎 3.0.0 起
54
+ "没有原生 `Path2D` 就不上屏"(不再把命令重放到 ctx)—— 命令流、SVG 导出、单测断言全都正常,
55
+ 只有屏幕是空的。改为按当前 recorder 的原生类型再造一份原生 `Path2D`。
56
+
57
+ ### 变更
58
+
59
+ - peer / devDependency 抬到 `ice-render ^4.3.0`;AGENTS 补「离屏出图」契约。
60
+
61
+ ### 回归
62
+
63
+ - e2e 新增两条**像素级**断言:「池 / 泳道的框真的画出来了」、「批量精灵有内容(符号不是空白位图)」。
64
+
65
+ ## [0.12.0] - 2026-09-21
66
+
67
+ ### 新增
68
+
69
+ - **虚拟文档(列存 + 窗口物化)**:`WaterVirtualDoc` + `examples/water-large.html`(2 万符号的厂站图),
70
+ 配合引擎 4.2.0 的虚拟子源:2,000 符号 **7.4 MB vs 对象树 235.3 MB(−96.9%)**,
71
+ 100 万图元档位由引擎侧验证。
72
+ - 文档补丁 / 窗口同步 / 自检接入(`applyPatch` / `syncVirtualWindow` / `diagnoseVirtualSource`);
73
+ 导出与存盘走引擎的全量通道(导出 SVG 7.46 MB、快照 133.6 KB)。
74
+
75
+ ### 性能
76
+
77
+ - **编辑器历史改批量合并 + 按字节封顶**:2,020 个符号 58.5s → **14.4s**、932.8MB → **58.5MB**。
78
+
79
+ ### 修复
80
+
81
+ - `updateNode/updateEdge/nodes/edges` 的精确 typeId 判定(新增可覆盖的 `isNodeComponent()` /
82
+ `isEdgeComponent()`),并修掉既有的"符号点不中"。
83
+
84
+ ### 变更
85
+
86
+ - peer / devDependency 抬到 `ice-render ^4.2.0`(虚拟文档 API 在 4.2.0 才可用)。
87
+
88
+ ## 更早的版本(一行摘要)
89
+
90
+ | 版本 | 摘要 |
91
+ |---|---|
92
+ | 0.11.0 | worker 镜像阶段二收口(结构 / 状态 / 文本 / 图片四条通道),跟版 ice-render 4.1.0 |
93
+ | 0.10.0 | worker 镜像接入(`MirrorHost`),peer 下限抬到 ice-render ^4.0.0 |
94
+ | 0.9.1 | peer 下限抬到 ice-render ^3.0.0 |
95
+ | 0.9.0 | 容器的底交给引擎保证(派生部件先于内容) |
96
+ | 0.8.0 | peer 下限抬到 ice-render ^2.18.0(事件系统改版) |
97
+ | 0.7.0 | 同层叠放次序 API + peer ^2.17.0 |
98
+ | 0.6.0 | peer 下限抬到 ice-render ^2.16.0 |
99
+ | 0.5.0 | 程序化高亮 + `fitViewport` 的 dpr 修复 |
100
+ | 0.4.x | 拖拽对齐引导线、连线端口自动选择(默认值) |
101
+ | ≤0.3.2 | 见 `git tag` 与提交历史 |
package/README.md CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  <p align="center">基于 ice-render 的可视化建模工具集:一套引擎承载 9 个域包 —— ER、流程图、BPMN 2.0、UML 类图、状态机、甘特、电力一次、电力二次、给水排水。</p>
8
8
 
9
+ > 变更日志见 [CHANGELOG.md](./CHANGELOG.md)。
10
+
9
11
  <p align="center">
10
12
  <a href="./LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-047857.svg" /></a>
11
13
  <img alt="engine bundled" src="https://img.shields.io/badge/engine-bundled-047857.svg" />