24 Commits

Author SHA1 Message Date
小智
02e48ebdd9
feat(core): add flowing field to LineColor interface (#370)
Co-authored-by: husky-dot <xiaozhi@xiaozhideMacBook-Pro.local>
2025-06-12 11:18:12 +00:00
小智
a6d61d347e
feat: add customizable port colors to WorkflowPortRender (#360)
* feat(workflow-port): add customizable port colors

* fix(workflow-colors): unify CSS variable naming to --g-workflow-* format - Update LineColors enum and demo configuration - Add CSS variable definitions - Ensure consistent naming across all workflow-related variables

---------

Co-authored-by: husky-dot <xiaozhi@xiaozhideMacBook-Pro.local>
Co-authored-by: husky-dot <xiaozhi@172-0-8-36.lightspeed.rcsntx.sbcglobal.net>
2025-06-10 10:26:30 +00:00
Louis Young
aab4183d65
feat(runtime): flowgram workflow node.js runtime (#304)
* feat(runtime): init nodejs runtime

* feat(runtime): init folder struct

* feat(runtime): interface & test

* feat(runtime): basic api & schema interfaces

* feat(runtime): init runtime model framework

* feat(runtime): create document & node entities

* feat(runtime): runtime engine basic execute logic

* feat(runtime): node add variable data

* refactor(runtime): split to sub domains

* test(runtime): document module test

* feat(runtime): variable store

* feat(runtime): workflow runtime executor

* chore(demo): reset initial data

* feat(runtime): workflow runtime branch logic

* feat(runtime): workflow runtime access to ai model

* feat(runtime): workflow runtime data all add to context

* feat(runtime): workflow runtime invoke record snaphots

* feat(runtime): workflow runtime status

* feat(runtime): main api request processing chain

* chore(demo): reset initial data

* refactor(runtime): types move to interface package

* feat(runtime): router access api defines & interfaces

* feat(runtime): standardize api register & gen api docs

* feat(runtime): create snapshot before node execute

* fix(sub-canvas): tips cannot close

* chore(demo): reset initial data

* feat(demo): make node schema runnable

* feat(demo): access test run

* feat(runtime): runtime core can run in both browser & server env

* fix(runtime): condition value empty issue

* feat(runtime): beautify structure data view

* feat(demo): test run sidesheet

* chore(demo): test run sidesheet button fixed

* feat(demo): running node show flowing line

* chore(demo): hide node result overflow

* chore(demo): reset initial data

* feat(runtime): workflow runtime support loop node

* fix(container): sub canvas height issue

* feat(demo): test run multiple result render

* test(runtime): enbale test coverage

* refactor(runtime): interface folders structure

* refactor(runtime): core folders structure

* refactor(runtime): core export apis & access to router

* feat(demo): runtime plugin

* feat(runtime): server add try-catch protection

* fix(runtime): node process reset end time

* chore: format json

* chore: rush update

* refactor(demo): running service move to runtime-plugin as built-in runtime service

* fix(runtime): build error

* test(runtime): disable nodejs test

* fix(demo): test run result key indent width
2025-06-09 09:13:24 +00:00
xiamidaxia
1668d9f26e
feat(free-layout): line-color support css var (#349) 2025-06-09 07:51:46 +00:00
xiamidaxia
de863df6fb
feat(demo-fixed-layout): add case-default/break-loop/if nodes,condition -> switch (#336)
* feat(demo-fixed-layout): add case-default/break-loop/if nodes

* feat(demo-fixed-layout): condition -> switch

* chore: e2e fixed
2025-06-06 11:07:15 +00:00
xiamidaxia
b87c3e918c
feat(demo-free-layout): context-menu-plugin (#329) 2025-06-05 11:21:34 +00:00
xiamidaxia
92b3adc5d0
fix(fixed-layout): multi-outputs/multi-inputs collapsed and move branches (#249)
* feat(demo): demo-fixed-layout-simple add tryCatch node

* feat(demo): use-editor-props add fromNodeJSON/toNodeJSON config

* fix(demo): demo-fixed-layout-simple readonly refresh

* fix(fixed-layout): multi-outputs collapsed and move branches

* chore: update codeowners

* fix(fixed-layout): multi-inputs branch adder

* test(fixed-layout-core): test snapshots update

* test(fixed-layout-editor): move block to other dynamicSplit
2025-05-21 10:06:41 +00:00
xiamidaxia
6e2e67fb3e
feat(demo): workflow running style support (#213) 2025-05-12 07:52:40 +00:00
Louis Young
19ff04abc7
feat(free-demo): support create nodes group (#185)
* feat(demo): create group tool

* feat(demo): create group shortcut

* refactor(core): split group service, controller, utils files

* feat(history): free history add group operations

* feat(demo): group node render

* feat(demo): group node registry

* refactor(stack): remove layer computing config

* feat(stack): line stackIndex cannot be recalculated by default

* feat(demo): group title & color palette acess form

* feat(demo): ungroup button & shortcut

* feat(demo): create group & ungroup operation register to free history service

* refactor(group): group shortcuts move to group-plugin

* refactor(group): group node render move to group-plugin

* fix(group): undo/redo of create node or ungroup not work

* perf(history): free history remove async operation

* feat(group): trigger select box inside group

* fix(group): container inside group

* fix(group): auto layout should not be affected by group node

* feat(container): support multi-layer nested containers

* fix(group): group css variables overwrite each other

* fix(container): node move in or out group shouldn't clear lines

* feat(demo): node should follow mouse after move out container button clicked

* feat(container): disable group move to non-group container node

* fix(container): cross-level node moving causing coord offset

* feat(demo): comment node support more button

* fix(demo): comment in container fromJSON

* feat(container): node into container show move out tips

* feat(group): node into group show move out tips

* feat(group): delete group when blocks is empty

* refactor(group): createFreeGroupPlugin move to container-plugin

* refactor(demo): replace disablePorts with defaultPorts

* fix(demo): react warning

* refactor(group): group plugin built-in GroupNodeRegistry

* refactor(group): create free-group-plugin

* fix(ci): lock & ts-check & test errors
2025-05-07 13:21:34 +00:00
Louis Young
88f7ccae37
feat(free-demo): support comment node (#165)
* feat(demo): comment node render component

* feat(demo): comment node register to editor

* feat(demo): comment node editor component

* feat(demo): comment node editor placeholder

* feat(demo): toolbar create comment node

* fix(demo): scrolling issue when comment loses focus
2025-04-22 10:10:22 +00:00
Louis Young
288c48e56f
refactor: decoupling node panel and create node (#129)
* refactor(free-container-plugin): decoupling workflow node panel service private methods to utils

* fix(free-demo): multi-select style in sub-canvas

* fix(config): enable eslint formatter

* feat(free-container-plugin): call node panel on single select mode

* refactor(free-demo): make methods in onDragLineEnd more atomic and easier understand

* refactor(free-demo): make methods in useAddNode more atomic and easier understand

* refactor(free-demo): make methods in lineAddButton.onClick more atomic and easier understand

* chore(free-demo): default add node to canvas viewport center

* fix(node-panel): resolve promise after panel closed

* chore(free-demo): add comments to node panel related code

* chore(node-panel): clear useless code
2025-04-08 09:22:34 +00:00
xiamidaxia
d5d9734eb2
docs: advanced docs (#121)
* feat: add advanced docs

* feat: workflow-port-entity add availableLines

* docs: comment fixed
2025-04-02 13:50:27 +00:00
xiamidaxia
aed1695396 feat: demo add customService 2025-03-25 20:32:17 +08:00
xiamidaxia
b1bb774238 feat: demo support sidebar 2025-03-25 20:32:17 +08:00
Louis Young
5dbb2f4b55
refactor: loop node render with sub canvas inside form (#75)
* refactor(container): loop node render with form

* refactor(container): simplified sub-canvas configuration

* refactor(container): move sub-canvas render into plugin
2025-03-20 11:59:56 +00:00
liuyangxing
088368d48c refactor(container): allow user to customize render content component 2025-03-18 16:13:16 +08:00
liuyangxing
e7656d4cec feat(free-demo): create loop node 2025-03-18 16:13:15 +08:00
sanmaopep
f9febe5fc3 chore: rename variable-plugin in demo to sync-variable-plugin 2025-03-04 10:24:05 +08:00
liuyangxing
ee8b01c323 feat(free-demo): drag line create node 2025-02-28 18:32:42 +08:00
liuyangxing
ae6899455a refactor(free-demo): support add node through button on the line 2025-02-28 11:29:26 +08:00
liuyangxing
71cc860e77 feat(free-demo): beautify minimap style 2025-02-28 11:23:55 +08:00
liuyangxing
6a39245cc7 feat(free-demo): register node panel plugin & node panel component 2025-02-28 11:22:30 +08:00
sanmaopep
14f99b0e68 chore: remove useless config of variable engine in demo 2025-02-24 20:30:51 +08:00
dragooncjw
d7bdf8a078 feat: init flowgram.ai
Co-Authored-By: xiamidaxia <xiamidaxia@icloud.com>
2025-02-21 16:26:12 +08:00