Skip to content

Releases: didi/LogicFlow

@logicflow/[email protected]

22 Aug 11:48
Compare
Choose a tag to compare

2.0.2

Patch Changes: Release 2.0.2 Version

  • 修复自定义节点 Model 中 initNodeData 方法不生效
    • 修复circle、diamond、polygon、rect、ellipse 中 initNodeData 方法不生效
    • 修复官网教程- 基础教程- 节点文章中跳转错误
    • example中补充自定义circle、diamon、polygon节点
  • 解决 Menu 插件 setMenuByType 为私有方法导致用户无法调用的 bug close #1773
  • 修复单独引入less导致的用户侧启动服务报错的问题
  • 修复文档中 core 包 css 资源地址错误的问题 close #1798
  • 修复 model 中 width/height/radius 等 properties 传 0 无效的 bug

@logicflow/[email protected]

22 Aug 11:47
Compare
Choose a tag to compare

2.0.2

Patch Changes: Release 2.0.2 Version

  • 修复自定义节点 Model 中 initNodeData 方法不生效
    • 修复circle、diamond、polygon、rect、ellipse 中 initNodeData 方法不生效
    • 修复官网教程- 基础教程- 节点文章中跳转错误
    • example中补充自定义circle、diamon、polygon节点
  • 解决 Menu 插件 setMenuByType 为私有方法导致用户无法调用的 bug close #1773
  • 修复单独引入less导致的用户侧启动服务报错的问题
  • 修复文档中 core 包 css 资源地址错误的问题 close #1798
  • 修复 model 中 width/height/radius 等 properties 传 0 无效的 bug

Full Changelog: https://github.com/didi/LogicFlow/compare/@logicflow/[email protected]...@logicflow/[email protected]

@logicflow/[email protected]

13 Aug 11:44
Compare
Choose a tag to compare

What's Changed

  • 修复初始化时 DyanmicGroup 插件折叠展开报错的问题 #1767
  • 修复 RectNodeModel 初始化时设置 width、height、radius 为 0 时无效的 bug
  • Rename: resizeFunction -> throttleResize 函数命名优化
  • 修复 isRestrict 开启后子节点仍能拖拽出分组区域的 bug
  • 优化分组旋转时,子节点的旋转逻辑,以分组中心为中心点旋转,并更新自身的 rotate 属性
  • 增加 elementsModelMap 解决 Group 初始化时,children 中的元素未完成初始化导致 model 为空的bug
  • Rename: outcomingEdgeList,getAnchorOutcomingEdge,outcoming -> outgoing#1449
  • 修复画布加载完后新增节点时Label不展示问题 #1759
  • 重新修改样式打包配置,用于修复引入插件包后起服务报错问题 #1760
  • 修复画布切换后页面宽高变化时持续出现警告问题 #1756
  • 统一数据类型, 修复textVal为数字时报错问题 #1612
  • 修复节点id切换后某一次更新边拿不到NodeId问题 #864

Full Changelog: https://github.com/didi/LogicFlow/compare/@logicflow/[email protected]...@logicflow/[email protected]

@logicflow/[email protected]

13 Aug 11:44
Compare
Choose a tag to compare

What's Changed

  • 修复初始化时 DyanmicGroup 插件折叠展开报错的问题 #1767
  • 修复 RectNodeModel 初始化时设置 width、height、radius 为 0 时无效的 bug
  • Rename: resizeFunction -> throttleResize 函数命名优化
  • 修复 isRestrict 开启后子节点仍能拖拽出分组区域的 bug
  • 优化分组旋转时,子节点的旋转逻辑,以分组中心为中心点旋转,并更新自身的 rotate 属性
  • 增加 elementsModelMap 解决 Group 初始化时,children 中的元素未完成初始化导致 model 为空的bug
  • Rename: outcomingEdgeList,getAnchorOutcomingEdge,outcoming -> outgoing#1449
  • 修复画布加载完后新增节点时Label不展示问题 #1759
  • 重新修改样式打包配置,用于修复引入插件包后起服务报错问题 #1760
  • 修复画布切换后页面宽高变化时持续出现警告问题 #1756
  • 统一数据类型, 修复textVal为数字时报错问题 #1612
  • 修复节点id切换后某一次更新边拿不到NodeId问题 #864

Full Changelog: https://github.com/didi/LogicFlow/compare/@logicflow/[email protected]...@logicflow/[email protected]

@logicflow/[email protected]

08 Aug 02:14
Compare
Choose a tag to compare

What's Changed

  • 开发 vue-node-registry 包用于用户自定义 vue 节点
  • 通过监听 properties 变化的事件,触发节点的更新
  • 利用 Teleport 将组件内部的一部分模板传送到组件的 DOM 结构外层的位置去
  • 修复 vue-node-registry 包在 vue2 项目中渲染失效的问题
    • 更新 extension 包的 package.json
    • 修复 vue-node-registry 渲染顺序,先 appendChild,再 new Vue
    • 修复渲染自定义节点 new Vue2 实例时未传 el 的问题

@logicflow/[email protected]

08 Aug 02:13
Compare
Choose a tag to compare

What's changed

  • feat: 开发 react-node-registry 包用于用户自定义 react 节点
  • 通过监听 properties 变化的事件,触发节点的更新
  • 通过 Portal 的方式,可以获取到宿主系统的数据(比如状态),保持组件渲染和系统同步
  • react-node-registry 包增加 LICENSE 文件

Release 2.0 New Version 🎉🎉🎉

08 Aug 02:07
Compare
Choose a tag to compare

What's Changed

refactor: 重构 LogicFlow 项目结构,升级打包工具,使用 pnpm 做包管理工具

  • rename index.tsx -> index.ts, update dependencies and declare module mobx-preact

  • 配置 husky pre-commit

  • 完善 LogicFlow.tsx 主文件类型定义

  • update .gitignore

  • git rm -r --cached sites/docs/.dumi/tmp

  • add index.less

  • 解决项目中 core 包 TypeScript 类型错误导致打包失败的问题

  • 项目代码重构,包括 examples、extension 及 core 包

    • remove react-umi-app demo
    • rename lf-engine-browser -> engine-browser-examples
    • rename lf-engine-node -> engine-node-examples
    • extension 包中修改文件夹名大小写未生效,恢复成 Control 和 Node 文件夹,后续再处理
    • add feature-examples DEMO 项目,用于汇总所有官方 demo,后续再 docs 中使用
    • 完成 feature-examples 中 demo 的改造,增加 graph 页面
    • 优化 DndPanel 的demo
    • 开发 feature-examples 中 BPMN 插件 demo
    • feature-examples 中增加 BPMN demo
    • engine-browser-examples 中增加 graph demo,方便后续在 vite 环境下调试包功能,测试 umi 与 vite 是否一致
    • engine-browser-examples bpmn demo 更新
    • 新增 next-app 用来测试服务端渲染项目中 window is not defined 的问题
    • 修复 vue3-memory-leak 项目中引入 vue 文件报错的问题
    • 新增 vue3-app 用于测试 vue-node-registry,后续使用该项目开发 vue 组件或 demo
    • feature-examples 类型完善
    • 修复 engine-browser-examples 中类型错误问题
    • 优化 engine-browser-examples 样式
    • 补充自定义折线、圆角折线、节点选择示例 (#1680)
    • 添加insert-node-in-polyline,rules两个插件的demo
    • 增加测试vue3性能demo
    • 增加rect-label-node插件示例
    • 增加高亮插件说明文档 - 优化高亮插件示例
  • 文件夹重命名,将大驼峰命名修改为 小写+短横线

    • DefaultAnimation.ts -> defaultAnimation.ts
    • DefatultTheme.ts -> defaultTheme.ts
    • history/History.ts -> history/index.ts
    • 并更新项目中各个文件的引用地址
  • 解决 git config core.ignorecase 为 true 导致修改文件夹名大小写不生效的问题

    • 重命名 BPMN -> bpmn; Control -> control
    • 命名规范:文件夹名小写(name or name1-name2-name3);.js or .ts 小驼峰;.tsx or .jsx 大驼峰
    • 新增 Vue3-memory-leak demo 用于定位内存泄漏的问题,后续基于此 demo 增加 LogicFlow destroy 的方法
    • 优化 properties 类型定义为 Record<string, any>,避免 unknow 引起的问题,后续再优化
    • 解决 graph demo 中发现 BezierEdge 初始化 path 为空的问题,可以看 -> BezierEdgeModel.ts 的改动
  • 通过 git rm --cached Xxxx 移除修改大小写的文件夹内容

  • 完善 README.md 以及 CONTRIBUTING 相关文档,解决 eslint 问题

    • 完善开源共享引导文档:README 以及 CONTRIBUTING
    • 项目根目录运行 pnpm run lint:ts,解决项目中 eslint 错误及 warning
  • Update update_contributors.yml

  • update package.json, add changesets to generate CHANGELOG

    • .gitnore add .umi/ and delete .npmrc file
    • dependencies 中 'workspace:latest' -> 'workspace:*' 解决 changeset 中生成 CHANGELOG 报错的问题
    • update build-docs shell
    • add @changesets/cli and related scripts
  • 更新 rollup config 并增加 umd 包使用 demo 文件

  • npm 包 dependencies 中新增 lodash-es 依赖,解决引入项目中报错的问题

    • 开发节点文本换行等体验优化的功能
    • 解决 examples 中报错的问题
  • 移除文档中 lodash-es 依赖,移除无用 console

  • 优化代码注释歧义的问题

  • 更新 turbo 版本并解决 extension 打包 core 依赖报错的问题

Core & Extension

  • core 包中 'preact' -> 'preact/compat' 解决 svg 属性问题

  • 完成 core 包 roolup 打包及core 包中类型定义更新

  • extension 包中代码重构,解决 TypeScript 类型定义的问题,完成打包改造

  • core 包中类型定义完善,解决在 extension 包重构过程中遇到的 Core 包问题

  • 优化 core 包中类型定义,增加 GraphData 类型,区别于 GraphConfigData

  • 优化 bpmn 插件的导出内容

  • 修复 GraphModel 中 getAreaElement 方法的 bug 及一些其他类型定义的优化

  • 修复 GroupNode 中 getNodeStyle 解构后调用,BaseNodeModel 中 getNodeStyle 方法 this 为空的问题

    • 确认解构后赋值和直接 this.props.model.getNodeStyle() 方法调用的区别 -> this 指向的问题
    • LogicFlow Examples 中新增 Group 插件
  • 主要修复 TextEditTool 无效的 bug,后注原因

  • TextEditTool 组件更新时,原先的 graphModel 和 LogicFlow props 不会触发组件的更新,通过将 textEditElement 传入触发组件更新

  • 移除代码中无用的 console

  • 更新依赖 @babel/plugin-proposal-class-properties -> @babel/plugin-transform-class-properties

  • EventArgs 相关类型由 unknown 改为 any

  • 框选插件重构与示例内容丰富

    • 完善部分类型定义
    • 框选插件示例内容丰富
    • 修复使用框选插件后,网页滚轮事件被阻塞的问题
    • 修复缩放后框选元素与鼠标位移不一致的问题(#1102
    • 增加新事件 selection:selected-area,返回框选范围(#1104
    • 优化框选工具在缩放时的边距与外边框宽度计算
  • feat: 小地图插件重构与相关示例增加

  • 优化画布移动时,小地图的更新策略,减少性能消耗

  • 小地图显示区域计算逻辑修改,现在由画布元素与视口共同决定

  • 优化小地图预览视窗的拖拽交互

  • 修复点击小地图预览视窗会触发不可预期的画布移动的问题

  • 新增小地图插件的示例

  • selection-select 插件中 disabled 默认设置为 true

  • 用于解决当用于 stopMoveGraph 设置为 true 且启用了 selection-select 插件时,插件状态默认开启的 bug

  • 更新 LICENSE 文件,格式化内容

  • 其它 demo 的一些样式更新

  • 移除 extension 包中 examples 文件夹,已转移到 examples/feature-examples 项目中

  • 完善core包与group插件的类型定义

  • 完善与修正core包的部分类型定义

  • minimap插件功能完善与相关示例丰富

    • 小地图中可选择是否渲染连线,支持初始化时设置或通过setShowEdge方法更新设置
    • 更完善的代码注释与类型定义
    • 现在,小地图默认将位于画布的右下角,保留show方法设置画布位置的功能,新增updatePosition方法用于更新小地图相对画布的决定定位
    • 在小地图等示例中增加了新增功能的演示(连线可选渲染与位置调整)
  • 完善 BaseEdge 和 BaseNode 泛型类型,内置节点 props 定义更新

  • 重构 LogicFlow.tsx 以及 GraphMode 代码,代码按功能分区管理

    • Fix typo -> fakerNode 重命名为 fakeNode,意指虚拟节点
    • 主要重构 LogicFlow.tsx 中代码: 将代码按 Register,Nodes,Edges,Element,Text,EditConfig,Graph,EventCenter,History 等分模块管理
    • 重构 LogicFlow 中 getPointByClient 方法,通过重载,支持多种类型参数
    • 重构 LogicFlow 中 focusOn 方法,通过重载,支持多种传参方式
  • core包类型定义完善

  • 小地图插件新增功能与示例丰富

    • 小地图插件现在支持设置关闭小地图时的回调,用于外部更新小地图的显示状态(#829
    • 小地图插件示例增加与新增功能相关的内容
  • extension包的类型定义修复

    • 修复 349252c 提交后,extension 包中的类型错误问题
    • 为 BaseNode 的范型设置默认类型
  • 修复小地图的预览视窗无法拖拽的问题

  • 小地图设置回调逻辑调整为抛出事件

    • 删除原有设置关闭时回调的逻辑
    • 现在小地图插件在关闭时会抛出事件 miniMap:close,可以通过 lf.on() 监听该事件来设置小地图关闭时的回调
  • 事件系统的类型定义完善

  • 将节点 Resize 功能内置

    • 新增 Control 组件,用于控制节点放大缩小,并在 BaseNodeModel 中增加 resize 方法

    • 更新 GitHub Actions 任务名

    • 重命名 allowRotation -> allowRotate;后续增加 allowResize 选项,保持命名一致性

    • circle/diamond/ellipse/polygon 等节点增加 resize 能力

    • 节点 model 中增加初始化时 properties 的保存,调试多边形节点 outline 不符合预期的问题

      • 解决resize 结束后节点重新定位的问题
        • Control.tsx 中 new StepDrag 参数中 step 传入 graphModel.gridSize,保证调整时拖拽以 gridSize 为步长移动
    • 完成自定义节点内置功能的开发

      • 移除目前系统中无用的 defaultTheme 和 defaultAnimation 文件
      • 通过 points 置原点并基于设定的 width 和 height 缩放的方法,解决多边形形状与边框定位异常的问题
    • 网格组件重构

      • 修正原有网格存在偏移的问题
      • 修正网格配置选项的类型声明
      • 由 Grid 类自行实现网格配置选项的初始化
      • 将Grid相关的类型声明与静态成员与方法移至命名空间
      • 修改点状网格中点的最大半径计算逻辑,并增加相关注释
  • 修复 HtmlREsize 节点 outlineStyle fill 默认为 黑色的 bug

  • 统一 NodeResize 中 getResizeOutlineStyle fill 和 stroke 的返回值

  • 更新插件相关类型定义,完善插件相关方法 use/installPlugins/installPlugin 的功能

    • 解决插件中一些类型问题
    • 测试并修复 LogicFlow.use api 的功能 bug
    • 调整安装插件的顺序,如有重名默认优先使用 plugins 中定义的插件
  • 重构项目中 basic shape 组件,修复功能 bug、完善类型定义

    • rename formateAnchorConnectValidateData - formatAnchorConnectValidateData
    • rename setHoverON -> setHoverOn, setHoverOFF -> setHoverOff
    • 修复 Text 文本节点,文本不在节点中间的显示 bug,通过设置 dominantBaseline: central 解决
    • TextNode getBackground 中 rectAttr 设置 y: y-1, 移除该设置
  • 新增 common 文件夹用于存放通用方法

  • 增加用户设置画布 100% ,在调整视窗时,画布大小同步更新的逻辑,优化体验

    • 优化初始化时设置画布大小的逻辑
    • 优化 DEMO 代码,解决设置 theme 未生效的 bug( 代码问题。在初始化时 style 覆盖了 defaultConfig 中的 style)
  • 支持导出节点中的网络图片

  • 修复线的 menu 无法正常显示的 bug (#1679)

    • 修复初始化时 edgeConfig 中 type 未传值场景下,未使用 graphModel.edgeType(默认边类型) 初始化边的 bug
  • 优化 snapshot 交互体验,内容居中且开启拖拽画布,调整菜单顺序

  • 完善snapshot使用方式和修复跨域报错

  • 修复画布拖动阻止滚动 (#1700)

  • 新增Label文本模式, 支持配置多文本和修改文本朝向

    • graphModel 中增加 textMode 属性,用于标识当前使用什么文本模式

    • BaseNodeMode and BaseEdgeModel 以及 graphModel 中增加 更新 textMode 的方法

    • 更新 tool 中 props 名称,logicflow -> lf,便于理解

    • 增加 next-label demo

    • 重构 editConfigModel.ts,完善配置项优先级从 textEdit(全局) -> nodeTextEdit/edgeTextEdit(分类) -> 元素本身 editable

    • 项目中后续可以移除 useLabelText 的判断逻辑及相关的事件触发

    • 配置 tool 名称通过 短横线 隔开的方式命名, eg: text-edit-tool, multiple-select-tool

    • tool 增加 disableTool 和 enableTool 的方法,用于互斥 Tool 注册时,禁用掉另一个

    • 优化 mediumEditor 的配置项及初始化流程。移除无用配置项,增加默认主题样式

    • 开发 NextLabel 插件,取得阶段性胜利

    • 移除 BaseNodeModel 中 useLabelText 相关逻辑

    • node:mousemove 事件中抛出 deltaX、deltaY 数据

    • 调整 Control 的范围大小,解决调整大小时,鼠标离开区域后切换回默认鼠标样式,体验不好

    • 调整 NextLabel 代码逻辑,LabelModel 只做数据的存储,不做更新。用于传递 props。在 Label 中触发

    • element 数据更新,LabelOverlay 渲染,Label 更新

    • 增加 API,updateTextMode 可切换 textMode 并更新页面

    • 增加双击节点 or 边增加 Label 的功能

      • 可传入设置样式 设置 label
      • 富文本编辑内容无法同步到 content 的问题
      • 如果 properties 中没有 _label 配置项时,MediumEditor 初始化有点问题,选中文本无法显示工具栏
      • 更新完Label content 后,Label 拖拽无效的问题(isDragging state 更新时机问题)
    • 完成 Label 溢出模式配置能力开发

    • 将 PluginsOptions 中插件对应的属性值 当 props 传入到插件的实例化中

    • label 的 textOverflowMode 增加 'ellipsis' | 'wrap' | 'clip' | 'nowrap' | 'default' 配置项

    • 更新 Label dragging 时,兼容画布存在缩放的情况

    • 完成 Label 在节点旋转时,保持位置不变,且 Label 自身跟阶段旋转角度保持一致

    • 完成节点缩放时,Label 保持相对位置不变

    • 增加 labelWidth 配置,可以统一项目中 labelWidth 的宽度,也可做单独个性化配置

    • 优化 node:resize 以及 node:rotate 事件抛出的数据

    • 移除或注释项目中无用的 console

    • 移植 Label 在边上定位 的相关代码,在调整节点更新边时,保持 Label 位置

      • 根据 PR 整理代码中 Text 和 Label 相关逻辑,移除无效代码
      • next-label 中增加 Edge 计算相关的逻辑
    • 同步节点的 zIndex 到 Label 上,过滤掉 text 为空时的 Label

    • 修复 rangy.createClassApplier is not a function 的错误

    • 修复 isMultiple 对于双击节点或边增加 label 无效的 bug

  • 调整core包tool文件夹

    • 将 snapline 移出 tool 文件夹,因为它本身非 tool,放这里面会有误导
    • 优化 tool 文件夹,将 tool 内容移至 index 中,并更新项目中相关导入
  • 新增 adjustEdgeStart 和 adjustEdgeEnd,可单独控制调整起始点或结束点

    • 支持cmd - 鼠标滚动操作放大缩小画布
    • 节点文本支样式持通过properties传入textStylele配置
  • 重构 core 包中 properties 类型定义,通过泛型的方式约束其类型

    • 修复 node-selection 中 properties 未定义类型导致的报错
  • 升级 group 插件为 dynamic-group 插件

    • 完成 dynamic-group 插件 isCollased 初始化及groupAddable 状态即时更新

    • 优化 editConfigModel 中属性的初始化逻辑及其初始化值调整

    • 调小 ResizeControl 的范围 30 -> 15,原因是会盖住 Group 折叠的小按钮

    • 优化允许文本拖动的逻辑判断 -> nodeTextDraggable && draggable 才可以允许拖动

    • 开发节点缩放旋转时,同步缩放 or 旋转节点内部元素功能

      • 完善 node:resize 及 node:rotate 事件抛出的数据
      • 将 Control 中 resize 相关的方法提取到 utils/resize.ts 中,方便在插件中直接调用
      • 在 group 组件中监听 node:resize 和 node:rotate 事件,完成对子元素的更新
    • 测试 SelectionSelct 与 DynamicGroup 不兼容的问题并修复

  • 边支持传入自定义样式

  • 优化高亮插件功能

  • Breaking Change调整 pluginOptions 只传入插件对应的 options 数据(之前是全量传入)

@logicflow/[email protected]

08 Aug 02:10
Compare
Choose a tag to compare
  • refactor: 重构 engine 模块代码,使用 sandbox.js 解决 iframe 频繁 append 导致的性能问题
  • @logicflow/engine 默认使用 browser 执行代码,node 端也使用 @nyariv/sandboxjs 执行代码片段,保持两端一致

Release 2.0 New Version 🎉🎉🎉

08 Aug 02:05
Compare
Choose a tag to compare

What's Changed

refactor: 重构 LogicFlow 项目结构,升级打包工具,使用 pnpm 做包管理工具

  • rename index.tsx -> index.ts, update dependencies and declare module mobx-preact

  • 配置 husky pre-commit

  • 完善 LogicFlow.tsx 主文件类型定义

  • update .gitignore

  • git rm -r --cached sites/docs/.dumi/tmp

  • add index.less

  • 解决项目中 core 包 TypeScript 类型错误导致打包失败的问题

  • 项目代码重构,包括 examples、extension 及 core 包

    • remove react-umi-app demo
    • rename lf-engine-browser -> engine-browser-examples
    • rename lf-engine-node -> engine-node-examples
    • extension 包中修改文件夹名大小写未生效,恢复成 Control 和 Node 文件夹,后续再处理
    • add feature-examples DEMO 项目,用于汇总所有官方 demo,后续再 docs 中使用
    • 完成 feature-examples 中 demo 的改造,增加 graph 页面
    • 优化 DndPanel 的demo
    • 开发 feature-examples 中 BPMN 插件 demo
    • feature-examples 中增加 BPMN demo
    • engine-browser-examples 中增加 graph demo,方便后续在 vite 环境下调试包功能,测试 umi 与 vite 是否一致
    • engine-browser-examples bpmn demo 更新
    • 新增 next-app 用来测试服务端渲染项目中 window is not defined 的问题
    • 修复 vue3-memory-leak 项目中引入 vue 文件报错的问题
    • 新增 vue3-app 用于测试 vue-node-registry,后续使用该项目开发 vue 组件或 demo
    • feature-examples 类型完善
    • 修复 engine-browser-examples 中类型错误问题
    • 优化 engine-browser-examples 样式
    • 补充自定义折线、圆角折线、节点选择示例 (#1680)
    • 添加insert-node-in-polyline,rules两个插件的demo
    • 增加测试vue3性能demo
    • 增加rect-label-node插件示例
    • 增加高亮插件说明文档 - 优化高亮插件示例
  • 文件夹重命名,将大驼峰命名修改为 小写+短横线

    • DefaultAnimation.ts -> defaultAnimation.ts
    • DefatultTheme.ts -> defaultTheme.ts
    • history/History.ts -> history/index.ts
    • 并更新项目中各个文件的引用地址
  • 解决 git config core.ignorecase 为 true 导致修改文件夹名大小写不生效的问题

    • 重命名 BPMN -> bpmn; Control -> control
    • 命名规范:文件夹名小写(name or name1-name2-name3);.js or .ts 小驼峰;.tsx or .jsx 大驼峰
    • 新增 Vue3-memory-leak demo 用于定位内存泄漏的问题,后续基于此 demo 增加 LogicFlow destroy 的方法
    • 优化 properties 类型定义为 Record<string, any>,避免 unknow 引起的问题,后续再优化
    • 解决 graph demo 中发现 BezierEdge 初始化 path 为空的问题,可以看 -> BezierEdgeModel.ts 的改动
  • 通过 git rm --cached Xxxx 移除修改大小写的文件夹内容

  • 完善 README.md 以及 CONTRIBUTING 相关文档,解决 eslint 问题

    • 完善开源共享引导文档:README 以及 CONTRIBUTING
    • 项目根目录运行 pnpm run lint:ts,解决项目中 eslint 错误及 warning
  • Update update_contributors.yml

  • update package.json, add changesets to generate CHANGELOG

    • .gitnore add .umi/ and delete .npmrc file
    • dependencies 中 'workspace:latest' -> 'workspace:*' 解决 changeset 中生成 CHANGELOG 报错的问题
    • update build-docs shell
    • add @changesets/cli and related scripts
  • 更新 rollup config 并增加 umd 包使用 demo 文件

  • npm 包 dependencies 中新增 lodash-es 依赖,解决引入项目中报错的问题

    • 开发节点文本换行等体验优化的功能
    • 解决 examples 中报错的问题
  • 移除文档中 lodash-es 依赖,移除无用 console

  • 优化代码注释歧义的问题

  • 更新 turbo 版本并解决 extension 打包 core 依赖报错的问题

Core & Extension

  • core 包中 'preact' -> 'preact/compat' 解决 svg 属性问题

  • 完成 core 包 roolup 打包及core 包中类型定义更新

  • extension 包中代码重构,解决 TypeScript 类型定义的问题,完成打包改造

  • core 包中类型定义完善,解决在 extension 包重构过程中遇到的 Core 包问题

  • 优化 core 包中类型定义,增加 GraphData 类型,区别于 GraphConfigData

  • 优化 bpmn 插件的导出内容

  • 修复 GraphModel 中 getAreaElement 方法的 bug 及一些其他类型定义的优化

  • 修复 GroupNode 中 getNodeStyle 解构后调用,BaseNodeModel 中 getNodeStyle 方法 this 为空的问题

    • 确认解构后赋值和直接 this.props.model.getNodeStyle() 方法调用的区别 -> this 指向的问题
    • LogicFlow Examples 中新增 Group 插件
  • 主要修复 TextEditTool 无效的 bug,后注原因

  • TextEditTool 组件更新时,原先的 graphModel 和 LogicFlow props 不会触发组件的更新,通过将 textEditElement 传入触发组件更新

  • 移除代码中无用的 console

  • 更新依赖 @babel/plugin-proposal-class-properties -> @babel/plugin-transform-class-properties

  • EventArgs 相关类型由 unknown 改为 any

  • 框选插件重构与示例内容丰富

    • 完善部分类型定义
    • 框选插件示例内容丰富
    • 修复使用框选插件后,网页滚轮事件被阻塞的问题
    • 修复缩放后框选元素与鼠标位移不一致的问题(#1102
    • 增加新事件 selection:selected-area,返回框选范围(#1104
    • 优化框选工具在缩放时的边距与外边框宽度计算
  • feat: 小地图插件重构与相关示例增加

  • 优化画布移动时,小地图的更新策略,减少性能消耗

  • 小地图显示区域计算逻辑修改,现在由画布元素与视口共同决定

  • 优化小地图预览视窗的拖拽交互

  • 修复点击小地图预览视窗会触发不可预期的画布移动的问题

  • 新增小地图插件的示例

  • selection-select 插件中 disabled 默认设置为 true

  • 用于解决当用于 stopMoveGraph 设置为 true 且启用了 selection-select 插件时,插件状态默认开启的 bug

  • 更新 LICENSE 文件,格式化内容

  • 其它 demo 的一些样式更新

  • 移除 extension 包中 examples 文件夹,已转移到 examples/feature-examples 项目中

  • 完善core包与group插件的类型定义

  • 完善与修正core包的部分类型定义

  • minimap插件功能完善与相关示例丰富

    • 小地图中可选择是否渲染连线,支持初始化时设置或通过setShowEdge方法更新设置
    • 更完善的代码注释与类型定义
    • 现在,小地图默认将位于画布的右下角,保留show方法设置画布位置的功能,新增updatePosition方法用于更新小地图相对画布的决定定位
    • 在小地图等示例中增加了新增功能的演示(连线可选渲染与位置调整)
  • 完善 BaseEdge 和 BaseNode 泛型类型,内置节点 props 定义更新

  • 重构 LogicFlow.tsx 以及 GraphMode 代码,代码按功能分区管理

    • Fix typo -> fakerNode 重命名为 fakeNode,意指虚拟节点
    • 主要重构 LogicFlow.tsx 中代码: 将代码按 Register,Nodes,Edges,Element,Text,EditConfig,Graph,EventCenter,History 等分模块管理
    • 重构 LogicFlow 中 getPointByClient 方法,通过重载,支持多种类型参数
    • 重构 LogicFlow 中 focusOn 方法,通过重载,支持多种传参方式
  • core包类型定义完善

  • 小地图插件新增功能与示例丰富

    • 小地图插件现在支持设置关闭小地图时的回调,用于外部更新小地图的显示状态(#829
    • 小地图插件示例增加与新增功能相关的内容
  • extension包的类型定义修复

    • 修复 349252c 提交后,extension 包中的类型错误问题
    • 为 BaseNode 的范型设置默认类型
  • 修复小地图的预览视窗无法拖拽的问题

  • 小地图设置回调逻辑调整为抛出事件

    • 删除原有设置关闭时回调的逻辑
    • 现在小地图插件在关闭时会抛出事件 miniMap:close,可以通过 lf.on() 监听该事件来设置小地图关闭时的回调
  • 事件系统的类型定义完善

  • 将节点 Resize 功能内置

    • 新增 Control 组件,用于控制节点放大缩小,并在 BaseNodeModel 中增加 resize 方法

    • 更新 GitHub Actions 任务名

    • 重命名 allowRotation -> allowRotate;后续增加 allowResize 选项,保持命名一致性

    • circle/diamond/ellipse/polygon 等节点增加 resize 能力

    • 节点 model 中增加初始化时 properties 的保存,调试多边形节点 outline 不符合预期的问题

      • 解决resize 结束后节点重新定位的问题
        • Control.tsx 中 new StepDrag 参数中 step 传入 graphModel.gridSize,保证调整时拖拽以 gridSize 为步长移动
    • 完成自定义节点内置功能的开发

      • 移除目前系统中无用的 defaultTheme 和 defaultAnimation 文件
      • 通过 points 置原点并基于设定的 width 和 height 缩放的方法,解决多边形形状与边框定位异常的问题
    • 网格组件重构

      • 修正原有网格存在偏移的问题
      • 修正网格配置选项的类型声明
      • 由 Grid 类自行实现网格配置选项的初始化
      • 将Grid相关的类型声明与静态成员与方法移至命名空间
      • 修改点状网格中点的最大半径计算逻辑,并增加相关注释
  • 修复 HtmlREsize 节点 outlineStyle fill 默认为 黑色的 bug

  • 统一 NodeResize 中 getResizeOutlineStyle fill 和 stroke 的返回值

  • 更新插件相关类型定义,完善插件相关方法 use/installPlugins/installPlugin 的功能

    • 解决插件中一些类型问题
    • 测试并修复 LogicFlow.use api 的功能 bug
    • 调整安装插件的顺序,如有重名默认优先使用 plugins 中定义的插件
  • 重构项目中 basic shape 组件,修复功能 bug、完善类型定义

    • rename formateAnchorConnectValidateData - formatAnchorConnectValidateData
    • rename setHoverON -> setHoverOn, setHoverOFF -> setHoverOff
    • 修复 Text 文本节点,文本不在节点中间的显示 bug,通过设置 dominantBaseline: central 解决
    • TextNode getBackground 中 rectAttr 设置 y: y-1, 移除该设置
  • 新增 common 文件夹用于存放通用方法

  • 增加用户设置画布 100% ,在调整视窗时,画布大小同步更新的逻辑,优化体验

    • 优化初始化时设置画布大小的逻辑
    • 优化 DEMO 代码,解决设置 theme 未生效的 bug( 代码问题。在初始化时 style 覆盖了 defaultConfig 中的 style)
  • 支持导出节点中的网络图片

  • 修复线的 menu 无法正常显示的 bug (#1679)

    • 修复初始化时 edgeConfig 中 type 未传值场景下,未使用 graphModel.edgeType(默认边类型) 初始化边的 bug
  • 优化 snapshot 交互体验,内容居中且开启拖拽画布,调整菜单顺序

  • 完善snapshot使用方式和修复跨域报错

  • 修复画布拖动阻止滚动 (#1700)

  • 新增Label文本模式, 支持配置多文本和修改文本朝向

    • graphModel 中增加 textMode 属性,用于标识当前使用什么文本模式

    • BaseNodeMode and BaseEdgeModel 以及 graphModel 中增加 更新 textMode 的方法

    • 更新 tool 中 props 名称,logicflow -> lf,便于理解

    • 增加 next-label demo

    • 重构 editConfigModel.ts,完善配置项优先级从 textEdit(全局) -> nodeTextEdit/edgeTextEdit(分类) -> 元素本身 editable

    • 项目中后续可以移除 useLabelText 的判断逻辑及相关的事件触发

    • 配置 tool 名称通过 短横线 隔开的方式命名, eg: text-edit-tool, multiple-select-tool

    • tool 增加 disableTool 和 enableTool 的方法,用于互斥 Tool 注册时,禁用掉另一个

    • 优化 mediumEditor 的配置项及初始化流程。移除无用配置项,增加默认主题样式

    • 开发 NextLabel 插件,取得阶段性胜利

    • 移除 BaseNodeModel 中 useLabelText 相关逻辑

    • node:mousemove 事件中抛出 deltaX、deltaY 数据

    • 调整 Control 的范围大小,解决调整大小时,鼠标离开区域后切换回默认鼠标样式,体验不好

    • 调整 NextLabel 代码逻辑,LabelModel 只做数据的存储,不做更新。用于传递 props。在 Label 中触发

    • element 数据更新,LabelOverlay 渲染,Label 更新

    • 增加 API,updateTextMode 可切换 textMode 并更新页面

    • 增加双击节点 or 边增加 Label 的功能

      • 可传入设置样式 设置 label
      • 富文本编辑内容无法同步到 content 的问题
      • 如果 properties 中没有 _label 配置项时,MediumEditor 初始化有点问题,选中文本无法显示工具栏
      • 更新完Label content 后,Label 拖拽无效的问题(isDragging state 更新时机问题)
    • 完成 Label 溢出模式配置能力开发

    • 将 PluginsOptions 中插件对应的属性值 当 props 传入到插件的实例化中

    • label 的 textOverflowMode 增加 'ellipsis' | 'wrap' | 'clip' | 'nowrap' | 'default' 配置项

    • 更新 Label dragging 时,兼容画布存在缩放的情况

    • 完成 Label 在节点旋转时,保持位置不变,且 Label 自身跟阶段旋转角度保持一致

    • 完成节点缩放时,Label 保持相对位置不变

    • 增加 labelWidth 配置,可以统一项目中 labelWidth 的宽度,也可做单独个性化配置

    • 优化 node:resize 以及 node:rotate 事件抛出的数据

    • 移除或注释项目中无用的 console

    • 移植 Label 在边上定位 的相关代码,在调整节点更新边时,保持 Label 位置

      • 根据 PR 整理代码中 Text 和 Label 相关逻辑,移除无效代码
      • next-label 中增加 Edge 计算相关的逻辑
    • 同步节点的 zIndex 到 Label 上,过滤掉 text 为空时的 Label

    • 修复 rangy.createClassApplier is not a function 的错误

    • 修复 isMultiple 对于双击节点或边增加 label 无效的 bug

  • 调整core包tool文件夹

    • 将 snapline 移出 tool 文件夹,因为它本身非 tool,放这里面会有误导
    • 优化 tool 文件夹,将 tool 内容移至 index 中,并更新项目中相关导入
  • 新增 adjustEdgeStart 和 adjustEdgeEnd,可单独控制调整起始点或结束点

    • 支持cmd - 鼠标滚动操作放大缩小画布
    • 节点文本支样式持通过properties传入textStylele配置
  • 重构 core 包中 properties 类型定义,通过泛型的方式约束其类型

    • 修复 node-selection 中 properties 未定义类型导致的报错
  • 升级 group 插件为 dynamic-group 插件

    • 完成 dynamic-group 插件 isCollased 初始化及groupAddable 状态即时更新

    • 优化 editConfigModel 中属性的初始化逻辑及其初始化值调整

    • 调小 ResizeControl 的范围 30 -> 15,原因是会盖住 Group 折叠的小按钮

    • 优化允许文本拖动的逻辑判断 -> nodeTextDraggable && draggable 才可以允许拖动

    • 开发节点缩放旋转时,同步缩放 or 旋转节点内部元素功能

      • 完善 node:resize 及 node:rotate 事件抛出的数据
      • 将 Control 中 resize 相关的方法提取到 utils/resize.ts 中,方便在插件中直接调用
      • 在 group 组件中监听 node:resize 和 node:rotate 事件,完成对子元素的更新
    • 测试 SelectionSelct 与 DynamicGroup 不兼容的问题并修复

  • 边支持传入自定义样式

  • 优化高亮插件功能

  • Breaking Change调整 pluginOptions 只传入插件对应的 options 数据(之前是全量传入)

@logicflow/[email protected]

06 May 03:48
Compare
Choose a tag to compare

What's changes?
fix: optimize the experience of resizeNode(缩放节点优化固定宽/高时的交互体验)

Full Changelog: https://github.com/didi/LogicFlow/compare/@logicflow/[email protected]...@logicflow/[email protected]