roymondchen
|
bc555ebdc0
|
chore: update lockfile v1.8.0-beta.4
v1.8.0-beta.4
|
2026-06-04 17:15:03 +08:00 |
|
roymondchen
|
b7d1cea7c1
|
chore: release v1.8.0-beta.4
|
2026-06-04 17:13:59 +08:00 |
|
roymondchen
|
3bd0eecb42
|
fix(editor): 修复合并历史记录信息展示
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-04 17:10:54 +08:00 |
|
roymondchen
|
cd19dec790
|
fix(editor): 修复历史对比样式配置显示
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-04 16:59:08 +08:00 |
|
roymondchen
|
10b70c36bb
|
fix(editor): 禁止缺少变更记录的历史回滚
|
2026-06-04 16:48:24 +08:00 |
|
roymondchen
|
27b2c2c685
|
feat(editor): 历史记录支持操作来源
|
2026-06-04 16:08:52 +08:00 |
|
roymondchen
|
a8a9cf372d
|
chore: update lockfile v1.8.0-beta.3
v1.8.0-beta.3
|
2026-06-04 14:13:01 +08:00 |
|
roymondchen
|
6253d7ed23
|
chore: release v1.8.0-beta.3
|
2026-06-04 14:12:13 +08:00 |
|
roymondchen
|
444d4223a9
|
feat(stage): 非点击画布选中组件时高亮闪烁选中区域
从图层树、面包屑等外部选中组件时,在画布上对选中区域做一次紫色高亮闪烁,
帮助用户快速定位组件;选中页面不触发。支持通过 editor 的 disabledFlashTip 关闭。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-04 14:02:57 +08:00 |
|
roymondchen
|
a9e9e65f9c
|
feat(editor): 历史记录列表展示时间并优化回滚差异弹窗
为历史步骤自动写入 timestamp 并按当天/跨天格式化展示;回滚确认弹窗区分标题与说明,关闭时清理确认回调。
|
2026-06-03 18:09:21 +08:00 |
|
roymondchen
|
42162f2e4a
|
feat(editor): 历史记录差异对比弹窗关闭时派发 close 事件
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-02 19:56:34 +08:00 |
|
roymondchen
|
7a161cab00
|
refactor(editor): 历史记录数据源/代码块 tab 复用通用 BucketTab
|
2026-06-02 19:07:38 +08:00 |
|
roymondchen
|
1cd69b33fe
|
feat(editor): 对比表单支持自定义 loadConfig 加载逻辑
将 CompareCategory 等类型抽取到 type.ts,
新增 CompareFormLoadConfig 支持外部接管表单配置加载,
HistoryDiffDialog 透传 loadConfig 并支持 width 配置及对外导出。
|
2026-06-02 17:03:27 +08:00 |
|
roymondchen
|
12069e0937
|
feat(form): submitForm 支持返回 changeRecords
新增 returnChangeRecords 选项,开启后 resolve { values, changeRecords },
便于命令式调用时获取表单变更记录,并同步更新文档与单测。
|
2026-06-02 16:43:07 +08:00 |
|
roymondchen
|
1b66ab1b88
|
refactor(editor): 抽取 serializeConfig 工具统一序列化配置
将分散在 CodeLink、CodeEditor 及 playground 中重复的 serialize-javascript
序列化逻辑收敛为 @editor/utils/editor 的 serializeConfig 并对外导出复用。
|
2026-06-02 16:34:23 +08:00 |
|
roymondchen
|
64d35d5363
|
fix(form): 对比模式下无 name 字段时不展示差异
避免 name 为空时拿整个 model/lastValues 做对比导致误判
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-02 16:28:08 +08:00 |
|
roymondchen
|
35fc394199
|
feat(form): fieldset legend 支持函数动态生成标题
|
2026-06-02 14:24:09 +08:00 |
|
roymondchen
|
8612311db1
|
feat(editor): 历史记录面板支持自定义扩展 tab 并开放 Bucket/goto 配置
新增 historyListExtraTabs 配置,可在内置页面/数据源/代码块 tab 后追加业务自定义历史 tab。
导出 HistoryListBucket 供复用,GroupRow 支持配置是否允许跳转,Bucket 支持配置是否展示初始项。
|
2026-06-01 19:21:36 +08:00 |
|
roymondchen
|
818b41f07f
|
chore: update lockfile v1.8.0-beta.2
v1.8.0-beta.2
|
2026-05-29 18:56:40 +08:00 |
|
roymondchen
|
9b34124805
|
chore: release v1.8.0-beta.2
|
2026-05-29 18:55:38 +08:00 |
|
roymondchen
|
7a61a35664
|
fix(editor): 显式标注 CompareForm 的 defineExpose 类型以修复 DTS 构建报错
defineExpose 同时暴露 MForm 实例 ref 与递归的 FormConfig ref,导致
vue-tsc 生成声明文件时推断类型过大无法序列化(TS7056)。改为显式标注
暴露类型,使其引用具名别名而非展开完整结构。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-29 18:53:08 +08:00 |
|
roymondchen
|
025cca365c
|
perf(dep): 依赖收集改为单次遍历批量处理多 target
将 collectItems/removeTargetsDep 改为整棵树只遍历一次、在每个属性上检查所有
target,把结构遍历开销从 ×targets 降到 ×1,收集结果保持一致。
同时修正 dataSourceMethodDeps 字段命名并补充到 MApp schema。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-29 17:55:13 +08:00 |
|
roymondchen
|
a3333e2b4e
|
feat(editor): 新增 hideSidebar 配置支持隐藏左侧面板
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-29 16:49:10 +08:00 |
|
roymondchen
|
cbc4b25072
|
feat(editor): 字段对比模式逐项展示差异并补充历史记录面板文档
- CodeSelect/CodeSelectCol/EventSelect/DataSource 等复合字段在对比模式下
按索引对齐前后值,逐项展示新增/删除/修改高亮,并隐藏写操作按钮
- form 容器/列表/表格支持对比模式只读展示
- 新增「历史记录面板」指南文档,完善表单对比文档及 menu props 说明
- 补充相关单元测试
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-29 15:51:47 +08:00 |
|
roymondchen
|
b02aa75ddc
|
feat(editor): 历史记录面板支持单步回滚(类 git revert)
将目标历史步骤的修改作为一次新操作反向应用,不破坏原有栈结构,
page/dataSource/codeBlock 三类 service 均提供 revert 能力;
面板新增关闭按钮、步骤编号展示与合并组卡片样式优化。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-29 14:19:44 +08:00 |
|
roymondchen
|
f0c66427b8
|
feat: form 新增 showDiff prop 支持自定义对比判断
- form: MForm/Container 新增 showDiff prop,允许调用方自定义
'是否展示对比内容' 的判断逻辑,并在嵌套 Container 中自动透传;
不传时沿用默认的 isEqual 行为
- editor: CompareForm 利用该能力处理 code-select 字段中 '' 与
{ hookType: 'code', hookData: [] } 两种语义为空形态被 isEqual 误判为差异的问题
- docs: 补充 form-props.md 中 showDiff 的说明与示例
- test: 补充 Code 字段相关单测
|
2026-05-28 20:30:05 +08:00 |
|
roymondchen
|
c854dfa8bf
|
feat(editor): vs-code 字段对比模式改用 monaco diff 编辑器
- Container.vue 新增「自接管对比」字段类型白名单(当前含 vs-code),命中时只渲染一次组件并透传 model/lastValues/isCompare,由字段内部展示差异
- Code.vue 在 isCompare 模式下切换到 type='diff',使用 monaco 内置 diff 视图替代两个独立编辑器实例
- CodeEditor.vue 补充对 modifiedValues 的 watch,避免 diff 模式下右侧值停留在初始快照
|
2026-05-28 20:12:46 +08:00 |
|
roymondchen
|
59f4e0edac
|
feat(editor): 历史记录面板支持差异对比
- 新增 HistoryDiffDialog 历史差异对比弹窗
- 新增 CompareForm 表单对比组件
- 抽取 code-block 工具函数到 utils/code-block.ts
- 历史列表面板支持选择两个版本进行对比
|
2026-05-28 19:49:03 +08:00 |
|
roymondchen
|
0f8abf7298
|
fix: 对比模式下关闭 tab-pane 的 lazy,确保差异数能正确统计
|
2026-05-28 19:32:54 +08:00 |
|
roymondchen
|
62a2ee6693
|
feat(editor): 历史记录面板支持点击跳转与回到初始状态
- 单步组头部点击跳转到该步骤;合并组头部点击展开/收起,子步行点击跳转到具体步骤
- 列表底部新增「初始」记录项,可一键回到所有修改之前的状态
- editorService/dataSourceService/codeBlockService 新增 goto API;historyService 暴露 cursor 读取器
|
2026-05-28 18:52:11 +08:00 |
|
roymondchen
|
0446202ba6
|
feat(editor): 新增历史记录列表面板
- 新增 history-list 模块(面板、Tab、Bucket、GroupRow 与 composables)
- NavMenu 接入历史记录面板入口
- history/editor/codeBlock/dataSource service 配合面板能力调整
- utils/undo-redo 适配新面板
- 扩展 type.ts 相关类型定义
- 新增 history-list-panel.scss 并在 theme.scss 引入
- 补充 history-list 模块完整单元测试
- playground 同步小幅调整
|
2026-05-28 17:51:52 +08:00 |
|
roymondchen
|
285434ef3e
|
feat(form): 支持自定义 label slot
在 MForm / Container 上新增具名作用域插槽 label,允许使用方自定义表单项标题渲染。
Slot 作用域参数:config、type、text、prop、disabled。
类型 FormLabelSlotProps / FormSlots 提取到 schema.ts 复用。
|
2026-05-28 16:45:11 +08:00 |
|
roymondchen
|
8dae67769c
|
feat(editor): 数据源与代码块 service 支持 undo/redo
- dataSourceService / codeBlockService 新增 undo / redo / canUndo / canRedo 方法
- undo/redo 内部复用 add / update / remove / setCodeDslByIdSync / deleteCodeDslByIds 写回,
并强制 doNotPushHistory,借此自动驱动 initService 中的依赖收集链路
(DepTargetType.DATA_SOURCE / DATA_SOURCE_COND / DATA_SOURCE_METHOD / CODE_BLOCK)
- 更新场景下若 step 带 changeRecords,按 propPath 局部 patch,不冲掉同节点其它无关变更;
缺省退化为整 schema / 整内容替换
- 补充对应单测与 API 文档
|
2026-05-28 16:40:49 +08:00 |
|
roymondchen
|
09558fa027
|
feat(editor): 历史记录接入 changeRecords,undo/redo 按 propPath 局部更新
- 节点 / 数据源 / 代码块的 history step 增加 changeRecords 字段
- editor.update / dataSource.update / codeBlock.setCodeDslById(Sync) 透传 changeRecords 入历史
- applyHistoryOp 的 update 分支:携带 changeRecords 时,按 propPath 从 oldNode/newNode 取值
构造最小 patch 走 update,不冲掉同节点上其它无关变更;缺省退化为整节点替换
(覆盖 sort/moveLayer/拖动等纯快照场景)
- editor.update 增加 changeRecordList 形参,多节点场景每个节点单独保留 records;
use-stage 多选拖动 / 缩放改用 changeRecordList,避免 records 在多节点间共享
- use-code-block-edit.submitCodeBlockHandler 透传 form changeRecords
- 同步更新 editor / dataSource / codeBlock / history service 文档
|
2026-05-28 16:28:35 +08:00 |
|
roymondchen
|
4c855ba50b
|
feat(editor): 写操作支持 doNotPushHistory 选项以跳过历史记录
- editor/codeBlock/dataSource 的 add/update/delete 等接口新增 doNotPushHistory 选项
- 移除不再使用的 editor-history 工具及其单测
- 修复 layer 节点状态在重建时丢失已有 status 的问题
- 同步更新 service 方法文档,新增 dragto 复现用例
|
2026-05-28 16:03:29 +08:00 |
|
roymondchen
|
e2c065f90d
|
feat(editor): 代码块与数据源支持按 id 独立的历史记录
- history service 新增 pushCodeBlock/undoCodeBlock/redoCodeBlock
/canUndoCodeBlock/canRedoCodeBlock 及数据源对称 API
- 按 id 维度各自维护独立 UndoRedo 栈,与页面/节点历史完全解耦
- type 新增 CodeBlockStepValue / DataSourceStepValue 独立类型
- HistoryState 扩展 codeBlockState / dataSourceState 字段
- codeBlockService.setCodeDslByIdSync / deleteCodeDslByIds 自动入历史
- dataSourceService.add / update / remove 自动入历史
- 入栈成功时 emit code-block-history-change / data-source-history-change
- 补充单测共 21 例,更新 history/codeBlock/dataSource 相关文档
|
2026-05-27 19:50:17 +08:00 |
|
roymondchen
|
a341c7d73e
|
fix(editor): 多选时对多个节点的操作合并入同一条历史记录
- moveToContainer 支持数组形参,多选移动整批只产生一条历史记录
- use-stage 拖动多选元素入容器 / 多选拖动缩放整批合成一次调用
- 右键移动至改走 moveToContainer,避免 remove+add 切成两条历史
- 跳过选中目标节点的分支清理 state.nodes 残留旧引用
- history.push 新增可选 pageId 参数,跨页操作正确落到目标页栈
- pushOpHistory 显式按 step.data.id 入栈,避免跨页操作错配
|
2026-05-27 19:09:34 +08:00 |
|
roymondchen
|
de94a75803
|
refactor(editor): 移除 BaseService 废弃的 use/middleware 机制
- 删除已 @deprecated 的 BaseService.use 方法及其 middleware 通道
- 删除 utils/compose.ts 及对应测试(仅服务于 middleware,无其他引用)
- editor.ts 移除 safeOptions/safeParent 兜底,相关方法 options 改用形参默认值
- props.ts fillConfig 的 labelWidth 改为形参默认值,移除 typeof function 兜底
- 同步更新 5 份 service 方法文档,删除 ## use 章节
|
2026-05-27 18:55:38 +08:00 |
|
roymondchen
|
d01a28ce76
|
fix(editor): 修复移动到菜单导致节点引用异常的问题
|
2026-05-27 17:17:43 +08:00 |
|
roymondchen
|
6c40425d8c
|
chore: update lockfile v1.8.0-beta.1
v1.8.0-beta.1
|
2026-05-27 11:28:31 +08:00 |
|
roymondchen
|
b8b0490260
|
chore: release v1.8.0-beta.1
|
2026-05-27 11:27:14 +08:00 |
|
roymondchen
|
2846f9eb2a
|
fix(core): app.emit 在节点配置事件时不应短路 super.emit
去掉 eventHelper.emit 前的 return,避免节点配置 events 后 app.on 注册的监听器被吞掉,并补充回归测试。
|
2026-05-27 11:20:48 +08:00 |
|
roymondchen
|
62fc818ae1
|
refactor(form-schema): style-setter 继承 containercommonconfig
|
2026-05-26 21:10:22 +08:00 |
|
roymondchen
|
ff810d09e4
|
feat(editor): 数据源字段选择按钮在对比模式与禁用态下禁止切换
- 按钮新增 disabled 绑定 (props.disabled || mForm?.isCompare)
- 抽取 onToggleDataSourceFieldSelectHandler 增加 guard 防御
- 补充对应单元测试
|
2026-05-26 21:05:01 +08:00 |
|
roymondchen
|
b1193b909e
|
feat(editor): 样式设置器 StyleSetter 支持表单对比模式
- Index.vue 透传 lastValues/isCompare 给各分类子组件,并冒泡 addDiffCount
- pro 下 6 个分类组件接受新 props 并向 MContainer 传递
- Layout/Border 同时将新 props 传递给内部 Box/Border 组件
- components/Border.vue 接受新 props 并冒泡 MContainer 的 addDiffCount
- components/Box.vue 接受 props 以保持接口一致
- 补充单元测试覆盖透传与事件冒泡
|
2026-05-26 20:59:43 +08:00 |
|
roymondchen
|
540a2716d8
|
fix(editor): serializeConfig 只去掉对象 key 的引号,避免破坏字符串 value 内的引号
|
2026-05-26 20:20:51 +08:00 |
|
roymondchen
|
a1fcb191d2
|
feat(eslint-config): 禁止匿名 default class/function 导出
新增 no-restricted-syntax 规则,禁止匿名形式的
`export default class {}` 与 `export default function () {}`。
匿名 default 导出在 dts 聚合(rolldown / api-extractor /
vue-tsc 等)时会被命名为 `export_default`,导致跨包继承链在
.vue / .tsx 下解析失败,父类成员(如 EventEmitter 的 on/off)
无法被 ts-plugin 推断。
同时重申 base.mjs 中已有的 ForIn / Labeled / With 选择器,
避免在 .ts/.tsx 下被本规则整体覆盖。
|
2026-05-26 17:09:37 +08:00 |
|
roymondchen
|
b9a6dd5b84
|
fix(editor): 修复 root 整体替换时图层面板节点状态残留与组件树闪烁问题
|
2026-05-26 17:06:45 +08:00 |
|
roymondchen
|
08011efd6d
|
refactor(form): 使用 getter 访问 props 字段并补充单元测试
- formState 中与 props 对应的字段改用 getter,避免 props 与 formState 之间的同步中间态
- 完善 extendState 同步段的响应式追踪说明注释
- 新增 Form.extra.spec.ts 覆盖 isCompare 模式与 config 变化场景
|
2026-05-26 11:51:34 +08:00 |
|
roymondchen
|
fbbd05e291
|
chore: update lockfile v1.8.0-beta.0
v1.8.0-beta.0
|
2026-05-22 16:54:18 +08:00 |
|