ice-entity-designer 0.0.24 → 0.0.26
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 +38 -2
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/index.umd.js +2 -2
- package/dist/react.cjs +2 -2
- package/dist/react.mjs +2 -2
- package/dist/types/gantt/GanttDependency.d.mts +18 -0
- package/dist/types/gantt/GanttDependency.d.ts +18 -0
- package/dist/types/gantt/GanttDesigner.d.mts +80 -0
- package/dist/types/gantt/GanttDesigner.d.ts +80 -0
- package/dist/types/gantt/GanttRuler.d.mts +42 -0
- package/dist/types/gantt/GanttRuler.d.ts +42 -0
- package/dist/types/gantt/GanttTask.d.mts +41 -0
- package/dist/types/gantt/GanttTask.d.ts +41 -0
- package/dist/types/gantt/gantt_date.d.mts +12 -0
- package/dist/types/gantt/gantt_date.d.ts +12 -0
- package/dist/types/ice-render/graphic/link/ICEPolyLine.d.mts +7 -0
- package/dist/types/ice-render/graphic/link/ICEPolyLine.d.ts +7 -0
- package/dist/types/index.d.mts +12 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/statechart/StateNode.d.mts +43 -0
- package/dist/types/statechart/StateNode.d.ts +43 -0
- package/dist/types/statechart/StateTransition.d.mts +32 -0
- package/dist/types/statechart/StateTransition.d.ts +32 -0
- package/dist/types/statechart/StatechartDesigner.d.mts +46 -0
- package/dist/types/statechart/StatechartDesigner.d.ts +46 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -277,7 +277,37 @@ const { svg, width, height } = IED.exportSvgResult(ice, { padding: 12 });
|
|
|
277
277
|
字形栅格化是两套实现,文字位置**对齐口径一致、逐像素允许微差**;导出的是**静态瞬间**(蚂蚁线动画
|
|
278
278
|
只保留当前相位)。
|
|
279
279
|
|
|
280
|
-
#### 5.5
|
|
280
|
+
#### 5.5 甘特图(`GanttDesigner`)
|
|
281
|
+
+
|
|
282
|
+
+排期场景:横轴是**时间**(`start` 日期 × 持续天数 × 每日像素)、纵轴是行,任务条**按天吸附**拖动,
|
|
283
|
+
+依赖线从「前置任务的结束」指向「后置任务的开始」。
|
|
284
|
+
+
|
|
285
|
+
+```js
|
|
286
|
+
+import { ICE, GanttDesigner } from 'ice-entity-designer';
|
|
287
|
+
+
|
|
288
|
+
+const ice = new ICE().init('canvas-1');
|
|
289
|
+
+const gantt = new GanttDesigner(ice);
|
|
290
|
+
+
|
|
291
|
+
+const review = gantt.createTask({ title: '需求评审', start: '2026-03-02', days: 4, progress: 1 });
|
|
292
|
+
+const design = gantt.createTask({ title: '交互设计', start: '2026-03-05', days: 6, progress: 0.8 });
|
|
293
|
+
+gantt.createDependency({ sourceId: review.state.id, targetId: design.state.id });
|
|
294
|
+
+
|
|
295
|
+
+gantt.setDayWidth(36); // 时间轴缩放:所有任务与依赖一起重排
|
|
296
|
+
+gantt.validateGantt(); // 依赖成环 / 进度越界 / 持续天数非法
|
|
297
|
+
+const svg = gantt.toSvg({ background: '#ffffff' });
|
|
298
|
+
+```
|
|
299
|
+
+
|
|
300
|
+
+与其它域包同一套机制:任务条是复合组件(条 + 进度覆盖 + 文字由 state 派生)、依赖复用引擎折线
|
|
301
|
+
+(插槽吸附 / 正交路由 / 跟随宿主)、快照与矢量导出全部继承。两条甘特特有的能力:
|
|
302
|
+
+
|
|
303
|
+
+| 能力 | 说明 |
|
|
304
|
+
+|---|---|
|
|
305
|
+
+| 时间轴 | `dayWidth` / `originDate` / `labelColumnWidth` 统一换算;框架(左列任务名 + 日期刻度 + 行线)由派生的 `GanttRuler` 渲染,模型一变就重建 |
|
|
306
|
+
+| 按天吸附 | `GanttTask.setPosition()` 把 x 吸附到整天的格子并反推 `start`(排期不会出现「13:47 开工」) |
|
|
307
|
+
+
|
|
308
|
+
+可运行示例:`tests/gantt-editor.html`(移动端 2.0 发布排期,含依赖与进度)。
|
|
309
|
+
+
|
|
310
|
+
+#### 5.6 UML 类图(域包示例)
|
|
281
311
|
|
|
282
312
|
UML 是**域包(domain pack)**的第一个完整示例:形状 + 应用层 + 语义校验,其余(选择/增删改/连线/
|
|
283
313
|
撤销重做/快照/适应视图/矢量导出)全部沿用引擎与 `FlowDesigner`。
|
|
@@ -463,7 +493,7 @@ React 里可沿用 `createFlowSession` 的模式自建一层封装。
|
|
|
463
493
|
|
|
464
494
|
| 组成 | 复用什么 | 以 UML 为例 |
|
|
465
495
|
|---|---|---|
|
|
466
|
-
| 形状 | 引擎的复合组件(`hasDerivedChildren`):内部子组件按 state 派生、不进文档 | `UmlClass
|
|
496
|
+
| 形状 | 引擎的复合组件(`hasDerivedChildren`):内部子组件按 state 派生、不进文档 | `UmlClass`:三段式类框;`GanttTask`:任务条 + 进度覆盖 |
|
|
467
497
|
| 连线 | 引擎折线(插槽吸附 / 正交·贝塞尔路由 / 标签 / 跟随宿主);**端点标记进路径点集**,因此描边、填充、导出都自动带上 | `UmlRelation`:六种关系 = 线型 + 三角/菱形/开放箭头 |
|
|
468
498
|
| 应用层 | `FlowDesigner`(选择 / 增删改 / 连线 / 撤销重做 / 快照 / 适应视图 / 订阅 / `toSvg`) | `UmlDesigner` 只重写「建什么图元 + 类型过滤」 |
|
|
469
499
|
| 语义校验 | 结构校验之外的部分自写,规则直白 | `validateUml()`:重名类 / 悬空关系 / 继承成环 |
|
|
@@ -487,6 +517,12 @@ src/
|
|
|
487
517
|
│ ├── UmlClass.ts # 复合组件:类名 / 属性 / 方法三段,构造型,框高随成员增长
|
|
488
518
|
│ ├── UmlRelation.ts # 六种关系 = 线型 + 端点标记(三角/菱形/开放箭头,标记进路径点集)
|
|
489
519
|
│ └── UmlDesigner.ts # FlowDesigner 薄扩展:建 UML 图元 + 类型过滤 + validateUml()
|
|
520
|
+
+├── gantt/ # 甘特图(第三个 domain pack:时间轴 + 按天吸附 + 依赖)
|
|
521
|
+
+│ ├── gantt_date.ts # 日期工具(UTC 口径,YYYY-MM-DD ↔ 天数)
|
|
522
|
+
+│ ├── GanttTask.ts # 任务条(复合组件)+ setPosition 按天吸附
|
|
523
|
+
+│ ├── GanttRuler.ts # 图表框架:左列任务名 + 日期刻度 + 行线(派生重建)
|
|
524
|
+
+│ ├── GanttDependency.ts # 依赖线(完成 → 开始)
|
|
525
|
+
+│ └── GanttDesigner.ts # 时间轴换算 + syncChrome + validateGantt
|
|
490
526
|
├── bpmn/ # BPMN 2.0(FlowDesigner 之上的业务记法)
|
|
491
527
|
│ ├── bpmn_shapes.ts # 形状:事件圆 / 网关菱形 / 任务角标 / 子流程标记 / 数据对象 / 注释 / 池泳道
|
|
492
528
|
│ ├── BpmnDesigner.ts # 应用层:容器真嵌套(池→泳道→节点)、条件与默认流标记、语义校验
|