Changelog
[5.0.0-alpha.3]
Added
addItems
method to the BaseController, allowing batch addition of nodes.clearItems
method to the BaseController, allowing clearing of all nodes in the chart.
Changed
- Reimplemented
addItem
such that bothaddItem
andaddItems
replace the node if the node being added has the same ID as the one originally in the list. - Updated the
toSetter
method, now you return a new instance that replaces the old one, instead of modifying the old one in place, allowing you to use final instances with copyWith. - Updated the naming convention of
ActionOnNodeRemoval
to better reflect the purpose:unlink
→unlinkDescendants
connectToParent
→connectDescendantsToParent
remove
→removeDescendants
[5.0.0-alpha.2]
Added
- Export functionality for charts - ability to export as PDF or image
- Additional node styling options for better visualization (genogram)
Improved
- Performance optimizations for large charts with many nodes
- More intuitive zoom and pan controls with configurable settings
- Better handling of node visibility and centering
- Refined user interface for chart manipulation
Fixed
- Resolved edge rendering issues in complex hierarchies
- Fixed positioning calculation for nodes with specific relationship patterns
- Improved node centering when some nodes are hidden
- Addressed bugs related to node dragging and dropping
Bumped custom_interactive_viewer
to version 0.0.6.
[5.0.0-alpha.1]
Initial genogram implementation.
[4.2.2]
Fixed
- Fixed an issue with node overlapping detection.
[4.2.1]
Fixed
- Fix, the context menu was being rendered offsetted.
- The node is checked for being hidden when centerNode method is used.
Added
- CustomInteractiveViewer now in focus on tap, allowing for the direct use of keyboard arrows, instead of needing to navigate to the graph using tab or arrow keys.
- Added invertArrowDirection flag to the OrgChart widget.
- Fix bugs in the example, and update with new changes.
Check CustomInteractiveViewer version 0.0.4 for more details.
[4.2.0]
Added
- Implemented a CustomInteractiveViewer to replace the default one. Benefits include:
- Fixed centering issues when zooming in/out and panning.
- A new InteractiveViewerController allowing more control over the zoom and pan (and a new rotational 🔥) behavior in the graph.
- fling behavior 😁
- Fixed a bug in the
getSize
method of theOrgChartController
. All nodes were checked, even hidden nodes, returning the wrong size. Which also caused issues in centering the graph. - Traverse the graph using keyboard arrows. zoom in and out using + & -
[4.1.0]
Added
- Recursive node removal functionality.
- Holding the Ctrl key changes trackpad scroll behavior to "scaling in".
Fixed
- Resolved an issue where
removeItem
withActionOnNodeRemoval.connectToParent
incorrectly behaved likeActionOnNodeRemoval.unlink
.
Thanks to @fabionuno for implementing all of these features and fixes!
[4.0.2]
Fixed
- Graph not being drawn due to a recursion issue.
[4.0.1]
Fixed
- Bug when centering the graph with some hidden nodes.
[4.0.0]
Added
-
Dashed arrow styles:
- Introduced
arrowStyle
to theOrgChart
widget with optionsSolidGraphArrow
andDashedGraphArrow
.
- Introduced
-
Graph centering:
- Graph now centers on initialization and orientation change.
- Can be disabled during orientation change using the new
center
parameter inswitchOrientation
. - The
orientation
setter is now deprecated. calculatePosition
also accepts thecenter
parameter (defaults totrue
).- New
centerChart()
method added to controller.
-
Zoom control:
- Exposed
minScale
andmaxScale
in theOrgChart
widget.
- Exposed
-
Drag behavior:
- Prevents dragging nodes into negative positions.
- Fixed node index changing unnecessarily when starting to drag a node.
Fixed
- Boundary issues where nodes could be placed out of view and become unclickable or undraggable.
Removed
- Removed
onTap
andonDoubleTap
from theOrgChart
widget due to delayed callbacks. UseGestureDetector
in the builder method instead.
Updated
- Example project improvements.
[3.1.0]
Added
-
switchOrientation
method on the controller to toggle orientation. -
Automatic position recalculation when setting
controller.orientation
. -
Spacing improvements:
- Replaced
offset
withspacing
andrunSpacing
based on current orientation.
- Replaced
-
Tree rendering:
- Multiple roots now display side-by-side (or vertically) depending on orientation.
-
Visual polish:
- Line radius added to leaf nodes.
-
Node removal improvements:
- Added
idSetter
to controller for subnode reattachment. - New
action
parameter inremoveItem
with options:ActionOnNodeRemoval.unlink
ActionOnNodeRemoval.linkToParent
- Added
[3.0.0+1]
Changed
- Updated README.
[3.0.0]
Changed
- Major internal cleanup.
- Fixed arrow-spacing calculation.
- Added
cornerRadius
to customize arrow curves. - Added
level
toNodeBuilderDetails
to indicate depth in tree. - Added
isTargetSubnode
toonDrop
to detect drops on subnodes. - Updated and restyled example.
- Removed deprecated
Graph
class andgraph
parameter fromOrgChart
. - Automatic UI updates after
calculatePosition
— no more need to callsetState
. - Only the first tree is shown if multiple roots exist.
[2.2.0]
Added
- Support for top-to-bottom and left-to-right orientations.
- Customizable arrow paint.
- Resetting positions in the example also toggles orientation.
Fixed
- Positioning bug for nodes with a single subnode chain.
[2.1.0]
Added
onTap
andonDoubleTap
toOrgChart
widget.addItem
method inGraph
for easier node addition.- A new example showcasing recent features.
uniqueNodeId
method inGraph
for auto-generating node IDs.
Changed
- Minor arrow drawing tweaks.
[2.0.1]
Changed
- Code cleanup.
[2.0.0]
Changed
- Removed the need to manually map data types to
Node
— done internally now. - Builder method now receives a
NodeBuilderDetails
object containing:data
hideNodes
nodesHidden
beingDragged
isOverlapped
- Added customizable animation curve and duration when resetting positions.
- Added documentation and internal tweaks.
[1.0.1]
Changed
- No API changes.
[1.0.0]
Added
- First semi-stable implementation.