91 Commits

Author SHA1 Message Date
Louis Young
fd423d9cb5
feat(minimap): support touch operation (#381)
* fix(core): touch end clear hover

* feat(minimap): support touch operation

* fix(demo): touch create comment should not trigger drag

* feat(demo): comment node support touch resize
2025-06-16 11:42:38 +00:00
xiamidaxia
39734e5a02
refactor: i18n (#374)
* refactor: i18n

* refactor: i18n

* feat: free-container-plugin support i18n
2025-06-13 10:50:54 +00:00
Louis Young
39dbde28ae
feat(free-core): free canvas supports touch operation (#367)
* feat(core): playground drag support drag event

* feat(core): touch move the canvas position

* feat(core): touch move the node position

* feat(core): touch move create or reset line

* test(core): global add TouchList mock

* fix(core): touch drag event disable passive

* fix(core): touch event delay

* feat(port): port click support touch operation

* fix(demo): loop output port line add btn set incorrect container

* test(core): global add TouchList mock

* refactor(core): clean & format codes

* feat(core): getPosFromMouseEvent built-in getEventCoord
2025-06-13 10:37:00 +00:00
小智
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
fbfe45c993
fix(free-layout-demo): fix loop subcanvas error (#340) 2025-06-06 11:25:10 +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
fdb663c74c
feat(demo): sidebar support openning by node id (#324) 2025-06-04 13:38:43 +00:00
xiamidaxia
d96f97dbc5
fix: fixed-layout catchBlock error, sidebar form render with node expanded (#323)
* fix: sidebar form render

* fix(fixed-layout): catch block error
2025-06-04 13:01:49 +00:00
jzwnju
de072dd4cf
feat(material): Add default value editing function (#292)
* feat(material): Add default value editing function

* style(json-schema-editor): Remove the console.log statements for debugging

* refactor(form-materials): Optimize the export methods of interfaces and utility functions

* refactor(material): Refactor the JSONSchemaEditor's default value input component to use common constant input

* chore: Update dependencies @types/inquirer and @types/node
2025-06-04 12:35:04 +00:00
xiamidaxia
5d4956f393
feat(demo): node title editable (#305) 2025-06-03 09:21:34 +00:00
xiamidaxia
ba9eb5598c
fix(demo): endNode form-meta and form validation (#293)
* feat(docs): add contact us page

* fix(demo): endNode form-meta and form validation
2025-05-29 08:34:48 +00:00
xiamidaxia
7d846dc48f
fix(free-layout): node deletion data loss after redo (#284)
* fix(demo): node required validate

* fix(free-layout): node deletion data loss after redo/undo
2025-05-27 11:35:58 +00:00
chenjiawei.inizio
9aca28063e
chore: add e2e config (#280)
* chore: open ssg

* chore: add e2e base config case

* chore: sync screenshot

* chore: sync screenshot in linux

* chore: render layout
2025-05-27 06:52:20 +00:00
Louis Young
46dda28464
feat(line): custom port color by classname or css variable (#274) 2025-05-26 08:38:11 +00:00
Louis Young
2da1f3c5bf
fix(core): free document prevent to trigger flowDocument.addBlocksAsChildren (#273) 2025-05-26 08:37:57 +00:00
Yiwei Mao
bac29feb3a
feat(material): condition row (#268)
* feat(material): condition row

* docs(material): condition row docs
2025-05-23 08:52:27 +00:00
Yiwei Mao
dd727c8d63
feat(material): auto rename effect (#261) 2025-05-23 04:41:45 +00:00
xiamidaxia
32e953a675
feat(demo): remove formInputs readonly (#259) 2025-05-23 03:21:31 +00:00
Yiwei Mao
5b56be0ec2
fix(demo): free layout constant (#257) 2025-05-22 14:43:02 +00:00
Yiwei Mao
11dda65150
chore(variable): move json schema logic from variable core to materials (#256) 2025-05-22 14:17:23 +00:00
Yiwei Mao
67fac8cdf1
feat(variable): loop batch variable materials + update ref value typings (#253)
* feat(variable): loop batch variable materials + set variable ref content in demo to be array

* docs(materials): dynamic value input and provide batch input
2025-05-22 11:27:44 +00:00
xiamidaxia
1de20674c5
fix(demo): freeLayout delete shortcuts fixed (#251) 2025-05-22 05:52:01 +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
Louis Young
fe8e57d769
fix(demo): comment node render problem in docs (#229) 2025-05-14 09:40:37 +00:00
Louis Young
805b262260
fix(group): auto layout adapts group (#223)
* fix(group): line inside multi-layer nested group cannot be selected

* feat(group): auto layout adapts group

* docs: update free-layout-demo example image

* chore(demo): update initial data

* feat(container): removeNodeLines api set to public
2025-05-13 10:12:23 +00:00
xiamidaxia
6e2e67fb3e
feat(demo): workflow running style support (#213) 2025-05-12 07:52:40 +00:00
Yiwei Mao
79e4bb0556
feat(material): form materials and add scripts (#196) 2025-05-08 12:06:49 +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
9c3384227f
fix(demo): commandService.executeCommand not work (#184) 2025-04-30 05:08:32 +00:00
Louis Young
4a6e7a736f
fix(line): lines not re-rendering after hover (#181) 2025-04-27 08:55:59 +00:00
Yiwei Mao
a899340f66
fix(demo): when title changed, sync variable as well (#178) 2025-04-25 09:58:13 +00:00
xiamidaxia
02a70f4b48
fix: fixed-layout dragging adder materials check canDrop (#163) 2025-04-25 07:06:41 +00:00
xiamidaxia
61c7ad1a7a
fix(demo-free): create copy error (#174) 2025-04-25 06:58:34 +00:00
Louis Young
1887d53ce9
fix(free-demo): comment sync value between editor model & form data (#166)
* fix(demo): sync value between editor model & form data

* feat(demo): comment node added to inital data
2025-04-22 11:50:15 +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
e9c654935f
feat(free-demo): enhance copy and paste shortcut capabilities (#161)
* chore(demo): define enum workflow node type

* feat(demo): workflow copy shortcut

* feat(demo): workflow paste shortcut

* feat(demo): workflow rest built-in shortcuts

* fix(history): remove delay after node delete

* fix(demo): paste to container need adjust node position

* fix(core): reset selection after node deleted

* feat(demo): add en comments to shortcut code

* fix(ci): tsc error
2025-04-21 11:41:51 +00:00
Louis Young
5039f7c76b
chore(drag): remove alt key copy node (#149)
* chore(drag): remove alt key copy node

* fix: tsc error
2025-04-18 02:59:09 +00:00
xiamidaxia
e75c2f8607
fix(demo): freelayout shortcuts copy (#140) 2025-04-11 08:49:47 +00:00
Louis Young
25356df369
fix(free-demo): drag node to container selected style (#134) 2025-04-10 04:17:28 +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
Yiwei Mao
20b1dc1ae9
feat: add ASTMatch API in variable-core (#127) 2025-04-07 07:30:22 +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
kirin
b58bb43bcf
chore: fix scripts with windows (#103) 2025-04-02 03:11:41 +00:00
xiamidaxia
a039913a60
chore: free-layout resbuild config (#87) 2025-03-25 14:00:52 +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