Commit Graph

581 Commits

Author SHA1 Message Date
Yuxin
acd154f22d
feat: set node ports without rendering graphics (#5509)
* feat: set node ports without rendering graphics

* refactor: optimize port style

* test: add ut
2024-03-11 16:14:38 +08:00
hustcc
2fb69fcecc
docs: add layout mds demo and test case (#5510)
* docs: add layout mds demo and test case

* chore: fix ci
2024-03-08 18:41:00 +08:00
hustcc
b1f6a56462
docs: add layout grid demo and test cases (#5507)
* docs: add grid layout and test case

* chore: remove unused code

* chore: rename position to placement

* chore: remove grid sortBy label
2024-03-08 18:09:25 +08:00
Yuxin
0d383f8254
refactor: rename position to placement (#5508)
* refactor: rename position to placement

* docs: rename position to placement
2024-03-08 16:47:53 +08:00
Aaron
095ae763cf
feat(behaviors): add drag node behavior (#5503)
* refactor: export idOf util

* refactor(runtime): setElementVisibility support set animation individually

* feat(utils): add setCacheStyle util

* fix(runtime): fix issue that setVisibility call in a short period of time

* fix(elements): fix edge arrow that create and animate error

* refactor(elements): adjust nodelike default style props'

* feat(behaviors): add drag node behavior

* test(behaviors): add drag node test snapshots

* test(behavior): update test case and snapshot

* refactor: adjust exports
2024-03-08 16:31:17 +08:00
hustcc
596b1030e2
docs: add element label background (#5506)
* docs: add element label background

* test: fix ci

* test: make layout test can work

* chore: fix cr
2024-03-08 12:25:25 +08:00
hustcc
a5f887908b
docs: add oversized label demo (#5505)
* docs: add oversized label demo

* docs: add copy label demo

* docs: update label text wordWrap

* docs: use clipboard API

* test: add test for element label oversized
2024-03-08 10:20:05 +08:00
Joel Alan
cb9f274a36
chore: opt the layout of force-directed graph (#5484)
* chore: opt the layout of force-directed graph

* fix: resolve conversation
2024-03-07 20:20:09 +08:00
hustcc
5a3e6c9e60
docs: add diamond, image demo (#5501)
* docs: add diamond, image demo

* chore: fix code review
2024-03-07 17:01:11 +08:00
Yuxin
8633679419
feat(combo): add rect combo element (#5496)
* feat: add rect combo

* test: add unit tests

* feat: update collapsedMarkerType

* fix: fix rebase issue

* fix: cr issues

* fix: ci

* fix(runtime): fix layout get element size

* fix(test): fix measureText type error

---------

Co-authored-by: Aaron <yangtao.yangtao@antgroup.com>
2024-03-07 14:17:34 +08:00
Aaron
304dc3cad3
fix: fix element cannot re-create when type changed (#5500)
* fix(elements): fix diamond node

* fix(runtime): fix issue that shape cannot re-create when type changed

* test: update test snapshot and case
2024-03-07 11:22:23 +08:00
Aaron
673546e641
feat: add grid line plugin (#5498)
* refactor(test): demo support disable default grid

* refactor(runtime): uniform graph lifecycle event, emit size change event

* feat(utils): add mod util

* feat(plugin): add grid plugin

* refactor(register): adjust extension type definitions

* refactor(runtime): adjust rest widget define

* refactor(test): add test case
2024-03-06 20:02:15 +08:00
Cee
21d5e4694d
feat(shape): add diamond node (#5431)
* fix: contextmenu event emit (#5380)

Co-authored-by: 宋鹏捷 <songpengjie@abtnetworks.com>

* feat: diamond node

* test: rerun unit test of diamond node

* chore: remove lineWidth offset

* test(diamond): add diamond test demo

* chore: remove backup file

* chore: add any type

* fix: fix ci error

* fix: add site demo

* test: add diamond utils unit test

* chore: remove old version unit test

* fix: remove scripts && fix ci

---------

Co-authored-by: Song Pengjie (宋鹏捷) <spengjie@sina.com>
Co-authored-by: 宋鹏捷 <songpengjie@abtnetworks.com>
2024-03-06 08:50:36 +08:00
Aaron
b7bbc29704
refactor: adjust project and add 3d extension package (#5497)
* refactor: remove g6-plugin-map-view and react-node

* refactor: adjust exports

* chore: update deps, use turbo to batch build

* feat(3d): init g6-extension-3d package

* chore: update turbo config

* refactor: fix cr issues
2024-03-05 19:13:37 +08:00
Aaron
3c3e8979bf
refactor(elements): adjust element type definitions (#5494) 2024-03-05 16:40:39 +08:00
Joel Alan
948f868912
fix: dev scripts (#5482) 2024-03-05 15:17:50 +08:00
Aaron
0a74e2f973
refactor: change widget to plugin (#5490)
* refactor: rename widget to plugin

* refactor: change module to extension
2024-03-05 15:00:06 +08:00
Aaron
2fc6e0ebdb
feat(runtime): support fit api (#5489)
* refactor(utils): union support multiple bboxes

* fix(test): fix test env

* refactor(utils): add getBBoxSize, multiple and divide support number

* refactor(spec): adjust animation, add extra viewport options

* refactor(behaviors): zoom canvas set pointer position as origin when wheel

* refactor(behaviors): drag-canvas use graph api

* feat(runtime): support fit api

* refactor(test): update test case and snapshot use x,y

* refactor(animation): add getAnimation util to get global animation config

* refactor(utils): remove getElementsBBox, and extend union to getCombinedBBox
2024-03-04 20:44:24 +08:00
Yuxin
f9e2ac6815
feat(combo): add circle combo element (#5473)
* feat: circle combo

* refactor: ci

* refactor: registry typo

* feat: test combo children change

* refactor: combo animation

* refactor: circle combo

* refactor: base-combo

* refactor: combo collapsed marker

* test: add combo test

* refactor: fix cr issues
2024-03-04 19:02:12 +08:00
Yuxin
c0d02134f6
fix: fix issues that wrong getEllipseIntersectPoint (#5485)
* fix: fix issues that wrong getEllipseIntersectPoint

* test: update test snapshots
2024-03-01 13:20:42 +08:00
Aaron
251b9a8528
refactor: adjust test env (#5479)
* refactor(test): use lil-gui in demo env

* refactor(runtime): graph viewport api use default canvas center as origin

* refactor(runtime): layout support preset options

* refactor(test): remove createGraph

* refactor(test): update test case and snapshot

* test: add test cases
2024-02-29 15:09:56 +08:00
Aaron
b98a164d5f
feat: add drag canvas behavior (#5475)
* refactor(types): rename loose to loosen

* feat(utils): add Shortcut util

* refactor(behaviors): refactor zoom canvas with shortcuts

* chore(test): update toBeCloseTo message style

* feat(behaviors): add drag-canvas behavior

* refactor(utils): abstract out module from behavior and widget

* feat(runtime): add widget controller

* refactor: fix cr issues
2024-02-28 15:45:25 +08:00
Yuxin
e802349d81
docs: add build-in and custom arrows demos (#5477)
* refactor: simplify arrow size setting

* test: add buildin and custom arrows tests

* docs: add arrows site demos

* test: add arrow snapshots
2024-02-28 12:34:24 +08:00
omahs
7539c3eb99
docs: fix typos (#5476)
* fix typos

* fix typo

* fix typos

* fix typos
2024-02-27 21:07:36 +08:00
Aaron
b86bdcde91
feat: add behavior controller and zoom-canvas (#5470)
* feat(utils): add parseBehaviors util

* feat(constants): add events definition

* refactor(event): rename Event to BaseEvent

* refactor(utils): adjust events

* refactor(utils): move isNode to element

* feat(utils): add isEdge util

* feat(utils): add eventTargetOf util

* feat(runtime): add behavior controller

* refactor(runtime): viewport emit standard event

* feat(behaviors): add zoom-canvas

* chore(test): update test env

* refactor(runtime): export event, destroy behavior, add test cases
2024-02-26 18:48:21 +08:00
Aaron
d2d2bc6507
refactor(elements): optimize elements types (#5472) 2024-02-26 16:56:43 +08:00
Yuxin
634d5960f4
feat: add light and dark theme; node supports new badgePalette attribute (#5467)
* feat(node): support new badgePalette attribute

* feat: add light theme and dark theme;update demo and test panel

* refactor(site): update site demos

* refactor: rename disable to disabled

* refactor: rename disable to disabled

---------

Co-authored-by: Aaron <yangtao.yangtao@antgroup.com>
2024-02-26 15:45:59 +08:00
Aaron
1096dd903d
refactor: adjust test env and fix element types (#5471)
* chore(test): support alias in test cases

* chore(test): adjust test utils, add toMatchSnapshot

* chore(tests): use path alias in tests

* feat(utils): add parseSize util

* chore: set vite alias config

* fix(elements): fix elements types and remove edge sourcePoints

* refactor(tests): adapt size and remove sourcePoint, update snapshots

* refactor(runtime): remove sleep usage
2024-02-26 10:24:02 +08:00
hustcc
17de905d81
refactor: type define (#5468)
* chore: add 3d sphere file

* test: add createDeterministicRandom for 3d test data

* chore: simplify type define

* fix: create webgl instance

* chore: remove sphere
2024-02-23 18:51:22 +08:00
Yuxin
491838604a
docs: add line demo (#5464)
* docs: add line demo

* test: update test snapshots

* test: add unit tests

* fix: fix cr issues

* fix: fix cr issues
2024-02-23 10:50:05 +08:00
Yuxin
d0f8d526f3
fix: fix issue that wrong label bg when rotate (#5462)
* fix: fix issue that wrong label bg when rotate

* test: update test snapshots
2024-02-22 20:41:55 +08:00
Song Pengjie (宋鹏捷)
8af3cf0bb0
feat: add image node (#5417)
* fix: contextmenu event emit (#5380)

Co-authored-by: 宋鹏捷 <songpengjie@abtnetworks.com>

* feat: add image node

* fix: remove empty method

* fix: remove fill color for image node

* feat: add image node

* test: update image node snapshot

* test: update controller viewport snapshot

* fix: update unit test and fix bugs for image node

* fix: fix code review issue

* fix: remove console.log

* fix: fix code review issue

* ci: add ci for pull request

* fix: add getIconStyle for image node

* fix: fix ci issue and code review issue

---------

Co-authored-by: 宋鹏捷 <songpengjie@abtnetworks.com>
2024-02-22 18:48:34 +08:00
hustcc
75906453f1
docs: add ellipse, star demo (#5457)
* docs: add ellipse demo

* feat: calculate icon size by key shape attribute

* chore: add ICON_SIZE_RATIO constant
2024-02-22 15:59:46 +08:00
Aaron
50bb0cc1cb
refactor(runtime): adapt polyline and cubic edges (#5458)
* refactor(registry): register built-in edges

* fix(utils): fix getEllipseIntersectPoint get NaN result

* refactor(runtime): adapt more edges

* fix: fix cr issues
2024-02-22 15:56:21 +08:00
hustcc
b364dba430
docs: add radius rect demo, and draw rect node with GRect (#5452)
* docs: add radius rect demo, and draw rect node with GRect

* test: upadte node-rect with Graph

* chore: fix ci

* fix: rect anchor draw error
2024-02-22 10:44:04 +08:00
Aaron
836efe4376
refactor: adjust render and draw async invoke (#5456)
* refactor(runtime): adjust async render process

* refactor(runtime): setup default zoom

* test: update layout test case

* refactor(runtime): remove context param from controller api
2024-02-22 09:37:09 +08:00
Yuxin
cce285be70
feat: polyline supports orthogonal routing and loop (#5449)
* feat: polyline supports orthogonal routing

* feat: orth routing adapts ports

* refactor: draw cubic loop

* feat: add polyline loop

* feat: optimize loop radius calculation

* test: update unit snapshots

* test: add unit tests

* fix: fix code review

* test: add orth route ut

---------

Co-authored-by: banxuan.zyx <banxuan.zyx@antgroup.com>
2024-02-22 09:35:14 +08:00
Aaron
288c7b34bf
refactor: replace the animation return value with an event throw (#5445)
* fix(animation): fix issue that onfinish is override

* refactor: emit animation event instead of return

* refactor(element): optimize invoke logic

* refactor(events): rename event name

* refactor(runtime): adjust event value

* refactor(demo): dev env support display timer

* refactor(runtime): rename element render to draw

* feat(utils): add isEmptyData util

* refactor(utils): modify createAnimationsProxy, add withAnimationCallbacks, executeAnimatableTasks

* refactor(runtime): refactor element controller, add events

* refactor: adjust async draw, layout, emit render event
2024-02-21 17:19:10 +08:00
hustcc
bb09bc447b
docs: add triangle demo (#5451)
* docs: add triangle demo

* fix: halo stroke should be key fill

* fix: remove port width, height, use r to set the radius
2024-02-21 13:20:10 +08:00
hustcc
619cf7d26b
feat: add portXyy and badgeXyy options (#5450)
* feat: add portFill and badgeFill options

* chore: change .js to .ts
2024-02-20 21:41:25 +08:00
hustcc
9c8ae0e12a
feat: add autoResize in graph (#5448)
* feat: add autoResize in graph

* chore: fix cr

* refactor: onResize base on resize + debounce
2024-02-20 19:13:21 +08:00
hustcc
a4a2299ea4
docs: make site build (#5446)
* chore: make site build

* docs: make api reference work

* chore: add case gallery

* docs: add one demo
2024-02-20 13:25:29 +08:00
Yuxin
095581a3b3
feat: edge supports portLinkToCenter attributes (#5447)
* feat(port): add linkToCenter attribute

* fix: ci

* refactor: rename getCurveControlPoint function

* refactor: update snapshots related to port

---------

Co-authored-by: banxuan.zyx <banxuan.zyx@antgroup.com>
2024-02-20 12:51:49 +08:00
hustcc
a4346ddc2b
test: add test case for viewport with svg renderer (#5441)
* test: add test case for viewport with svg renderer

* chore: rename file

* chore: update test case

* chore: keep the comment

* feat: add createGraphCavas, and use it in main.ts

* chore: move viewport.spec.ts to unit

* test: use real graph instance instead of mock

* chore: remove unused code

* chore: fix ci
2024-02-19 20:54:12 +08:00
Aaron
0f21e8d6fa
refactor(event): unified event name naming style (#5444) 2024-02-19 20:08:03 +08:00
hustcc
b693790821
refactor: move all plugin into build-in, and remove constants.ts file (#5440)
* refactor: move all build in to one file, and remove constants.ts file

* chore: fix ci
2024-02-19 11:44:13 +08:00
Aaron
135640afd4
feat: add graph class (#5439)
* refactor(runtime): element provide setElementState api

* refactor(runtime): data update getElementType returns

* feat(utils): add toPointObject util

* test(demos): support render custom panel

* feat(utils): add cacheStyle and getCachedStyle utils

* feat(runtime): element support setElementsVisibility API

* feat(runtime): element support setElementZIndex API

* feat(runtime): emit graph event

* refactor(runtime): implement setElementState, support partial style calc

* refactor(spec): container support canvas instance

* test(runtime): update snapshots

* feat(graph): init graph

* refactor(test): remove getEnv util

* test: fix test case issue

* refactor(utils): rename transformTreeDataToGraphData to treeToGraphData

* test(runtime): add test assertion
2024-02-19 09:58:36 +08:00
Aaron
b51a86e730
feat: add layout controller (#5423)
* refactor(runtime): rename dataController in context to model

* feat(utils): add isVisible and update uitls

* refactor(layout): update layout types and register built-in layouts

* feat(utils): add deduplicate util

* refactor(utils): update inferDefaultValue to infer position

* refactor(element): add updateNodeLikePosition method to update position immediately

* feat(runtime): data controller support call methods without trace

* fix(animation): it's neccessary to reserve commonEffectTiming config

* fix(test): fix test case issue

* feat(utils): add tree data converter utils

* refactor(runtime): update element controller, add get element api, and updateByLayoutResult method

* feat(utils): add layout utils

* refactor(layout): add built-in layouts

* refactor(elements): add built-in edges

* feat(runtime): add layout controller

* test(layout): add and update test snapshot

* test: update test case

* refactor(utils): remove transformGraphDataToTreeData

* fix: fix issue occured in rebase

* refactor(layout): add built-in layout registration

* refactor(spec): support config global animation

* test(runtime): update element controller snapshots

* fix(elements): fix issue that edge lack of default control points

* refactor(runtime): support tree layout

* fix(elements): fix issue that unexpect loop edge infer

* fix(runtime): fix layout error, support global animation, optimize updateNodeLikePosition method

* test(layout): add static layout test case

* refactor(test): update dendrogram snapshot

* fix(utils): fix pickLayoutResult test case

* refactor(types): add positions type

* refactor(runtime): optimize element updateNodeLikePosition perf

* fix(test): fix test case types issue

* test(demo): update test demos

* refactor(utils): modify transformTreeDataToGraphData default getNodeData

* refactor(runtime): data controller provide getParentData API

* refactor(runtime): rename sneak to silence

* refactor(layout): add comment

* refactor(registry): use console.error instead of throw when plugin duplicated
2024-02-18 11:36:50 +08:00
Aaron
39c8deafb2
fix(utils): fix issue that unexpected object attribute value animation (#5434)
* fix(utils): fix issue that unexpected object attribute value animation

* refactor(animation): update animation keyframe types

* test: update snapshots

* refactor(elements): omit context from grphicStyle
2024-02-08 10:27:19 +08:00
Yuxin
8436aaa9a8
refactor: draw nodes (#5427)
* refactor: draw nodes

* refactor: rename anchorOptions to anchors;rename badgeOptions to badges

* chore: update ts

* test: update ut snapshots

* refactor: circle node

* refactor: ellipse node

* refactor: rect node

* refactor: rename  to

* refactor: star node

* refactor: triangle node

* refactor: update animation fields

---------

Co-authored-by: yvonneyx <banxuan.zyx@antgroup.com>
2024-02-07 22:30:26 +08:00