* feat(shape): add ellipse node
* chore: remove canvas.init()
* fix: modify haloStyle according to keyShape lineWidth
* fix: update 'lineWidth' of rect and ellipse in haloStyle
* feat(edge): add loop edge element
* feat: update demo
* refactor: change loop edge from an element to part of base edge
* test: update ut snapshots
* chore: fix code review
* chore: fix cr
---------
Co-authored-by: yvonneyx <banxuan.zyx@antgroup.com>
* chore: update node render order
* feat: add node default style
* feat: badge align style with different position
* feat: add maxWidth and wordWrapWidth for edge
* chore: fix ci
* chore: remove isEmpty, use antv util
* feat: add star node
* test: add test case
* test: add test case for star anchor
* chore: for coverage
* feat: padding = 0 when undefined
* fix: remove import type
* feat(themes): add theme plugin type definition
* feat(palettes): add palette utils and plugin type definition
* feat(utils): add computeElementCallbackStyle util
* refactor(spec): edge data style support config sourcePort and targetPort
* refactor(animation): adjust executor to adapt undefined animation
* test(spec): fix spec animation test case
* feat(palettes): add built-in palettes
* refactor(utils): adjust palette default logic
* feat(theme): add built in theme
* feat(runtime): add element controller
* refactor(spec): rename port to anchor
* test(registry): update registry test case
* refactor(palettes): remove built in palettes to canstants
* refactor(runtime): data controler remove event emit and provide getChanges API
* refactor(registry): register built-in nodes and edges
* refactor(runtime): adapt data controller changes, store animation result
* refactor(runtime): element style callback returns index and element data extractly
* fix(animation): remove parseAnimation to avoid circular dependencies
* test: update test case
* refactor: adjust demo env
* refactor(animation): executor support specific modifiedStyle, and provide default style value infer
* refactor(themes): update built-in themes
* refactor(utils): update createAnimationsProxy to avoid sync onframe and onfinish to all instances
* refactor(runtime): refactor cavas init function
* refactor(spec): support to disable animation
* test: update test spec
* test: update test case
* refactor(runtime): update element controller and integration cases
* chore: update editor config
* refactor(runtime): update render logic and fix issue that data states change
* chore: add circle node template
* feat: draw circle key, label, icon
* chore: update test case
* feat: add icon shape and test case
* refactor: make render function simple
* chore: fix code review
* feat: add key for anchor
* chore: use strict mode
* feat(utils): add isEdgeData util to judge edge data
* refactor(spec): edge data allow unset id
* feat(utils): add toGraphlibData, toG6Data utils
* feat(utils): add arrayDiff util
* feat(utils): add dfs util
* feat(types): add types about data
* feat(runtime): add adta controller
* refactor: fix issues that cause type errors
* refactor(runtime): remove data controller's dependency of graph
* refactor(runtime): adjust types definition place
* refactor(runtime): move mergeElementsData to utils folder and add test case
* refactor(spec): remove io.ts
* refactor(spec): use plural naming convention
* refactor(types): use more readable generic types naming
* refactor(spec): adjust edge spec definition
* refactor(spec): support config default states in data style