ice-entity-designer 0.2.2 → 0.2.4

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/README.md CHANGED
@@ -89,6 +89,9 @@ IED(ice entity designer)是基于 [ice-render](https://github.com/ice-render
89
89
  包容 / 事件)、任务与子流程(用户 / 服务 / 脚本 / 发送 / 接收 / 手动角标)、数据对象、文本注释、池、泳道。
90
90
  - **池 → 泳道 → 节点是真嵌套**(引擎的容器能力),拖动池或泳道时内部图元与挂在它们上面的连线一起走;
91
91
  池的标题带与泳道的标题带不参与内容区,不会被内部图元压住。
92
+ 池标题横排在顶部 32px 名称带里;**泳道标题按 BPMN 惯例逆时针旋转 90° 竖排**(读向自下而上),
93
+ 居中放在左侧 32px 名称带里;标题比泳道还长时**按名称带长度截断加省略号**(单行,完整标题仍在属性面板与
94
+ 文档里)。用的是组件变换(`ICEText.transform.rotate = -90`),不是引擎层竖排。
92
95
  - 三种流:`sequence` 顺序流、`message` 消息流(跨参与者,虚线 + 实心箭头)、`association` 关联
93
96
  (数据对象 / 注释);顺序流可带条件表达式与「默认流」斜杠标记,标记是派生装饰,放在工具层、不污染文档。
94
97
  - **BPMN 语义校验**:每个池至少一个开始事件、顺序流不得跨池、消息流应连接不同参与者、网关分支是否齐全、
@@ -213,6 +216,11 @@ designer.undo();
213
216
  #### 5.1 项目快照契约
214
217
 
215
218
  - 快照带 `schemaVersion`(当前 `1`)与每个节点的 `typeId`;载入时**按 `typeId` 分派构造函数**(走 ICE 注册表,下游 `ice.registerType()` 注册的领域图元同样可载入)。旧快照没有 `typeId` 时,按所在数组归位(`entities[]` → `Entity`,`relations[]` → `Relation`)。
219
+ - 快照带 `createTime`(ISO 8601 UTC,如 `2026-09-13T07:15:45.655Z`)= 这份项目**首次创建**的时刻:
220
+ 首次写出即定下并记在 `ice.documentMeta` 上(因此同一会话反复 `serializeProject()` 结果稳定,undo/redo 的快照回放依赖这一点),
221
+ 载入别人的快照时读回来,于是「打开 → 编辑 → 保存」不会被改写;缺失 / 脏值(例如旧的
222
+ `2022/1/1 00:00:00`)会归一化成 ISO 或回退到当前时刻。**没有 `lastModifyTime`**——每次写出都会变,
223
+ 留着会破坏「两次序列化结果相同」的契约。
216
224
  - **`typeId` 一律是 `namespace:Type` 格式**(2026-09-13 起):本包的领域图元统一用 `ice-entity-designer:*`
217
225
  (`ice-entity-designer:Entity`、`ice-entity-designer:FlowNode`、`ice-entity-designer:GanttTask`…),
218
226
  与引擎内置的 `ice-render:*`、图表的 `ice-chart:*` 分属不同命名空间,因此**跨包不会撞名**。
@@ -306,7 +314,7 @@ const report = fromBpmnXml(xml, bpmn); // 导入并重建(含池 / 泳道容
306
314
  | 节点类型 | `createNode('bpmnEvent' \| 'bpmnTask' \| 'bpmnGateway' \| 'bpmnSubprocess' \| 'bpmnDataObject' \| 'bpmnAnnotation' \| 'bpmnPool' \| 'bpmnLane', props)`;预设见 `FLOW_NODE_KINDS` |
307
315
  | 语义属性 | 事件 `eventKind`(start / intermediate / end)+ `trigger`;网关 `gatewayType`;任务 / 子流程 `taskType` —— `updateNode()` 改完立即重建形状与角标 |
308
316
  | 连线 | `createEdge({ sourceId, targetId, flowType: 'sequence' \| 'message' \| 'association', label, condition, isDefault, linkShape })`;线型与箭头由 `flowType` 派生 |
309
- | 容器 | 池 `bpmnPool`(顶部 32px 标题带)、泳道 `bpmnLane`(左侧 32px 标题带);建节点时按几何自动嵌套,拖动容器时内部图元与连线一起走 |
317
+ | 容器 | 池 `bpmnPool`(顶部 32px 标题带,标题横排)、泳道 `bpmnLane`(左侧 32px 标题带,标题**旋转 -90° 竖排**、居中,过长按名称带截断加省略号);建节点时按几何自动嵌套,拖动容器时内部图元与连线一起走 |
310
318
  | 校验与互操作 | `validateBpmn()`、`toBpmnXml(designer)`、`fromBpmnXml(xml, designer)` |
311
319
  | 其余 | 与 `FlowDesigner` 完全相同:`nodes` / `edges` / `select()` / `updateNode()` / `updateEdge()` / `remove()` / `undo()` / `redo()` / `serialize()` / `load()` / `fitViewport()` / `subscribe()` |
312
320