reactive_mind_map 1.0.5 copy "reactive_mind_map: ^1.0.5" to clipboard
reactive_mind_map: ^1.0.5 copied to clipboard

A customizable mind map widget for Flutter apps. Create interactive mind maps with various layout options, themes, and interactions.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.0.5 - 2024-12-16 #

๐Ÿ†• ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ / New Features #

  • CameraFocus ๊ธฐ๋Šฅ ์ถ”๊ฐ€: ๋งˆ์ธ๋“œ๋งต์˜ ์นด๋ฉ”๋ผ ํฌ์ปค์Šค๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
    • CameraFocus.rootNode: ๋ฃจํŠธ ๋…ธ๋“œ ์ค‘์‹ฌ์œผ๋กœ ํฌ์ปค์Šค
    • CameraFocus.center: ์บ”๋ฒ„์Šค ์ •์ค‘์•™์œผ๋กœ ํฌ์ปค์Šค
    • CameraFocus.fitAll: ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋ณด์ด๋„๋ก ์ž๋™ ์กฐ์ • (์Šค๋งˆํŠธ ์Šค์ผ€์ผ๋ง)
    • CameraFocus.firstLeaf: ์ฒซ ๋ฒˆ์งธ ๋ฆฌํ”„ ๋…ธ๋“œ๋กœ ํฌ์ปค์Šค
    • CameraFocus.custom: ํŠน์ • ๋…ธ๋“œ ID๋กœ ํฌ์ปค์Šค (focusNodeId์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ)
  • ํฌ์ปค์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜: focusAnimation ์†์„ฑ์œผ๋กœ ๋ถ€๋“œ๋Ÿฌ์šด ํฌ์ปค์Šค ์ด๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ง€์›
  • ํฌ์ปค์Šค ์—ฌ๋ฐฑ: focusMargin ์†์„ฑ์œผ๋กœ ํฌ์ปค์Šค ์‹œ ์—ฌ๋ฐฑ ์กฐ์ • ๊ฐ€๋Šฅ
  • ์ž‘์€ Container ํ™˜๊ฒฝ ์ตœ์ ํ™”: ์ œํ•œ๋œ ๊ณต๊ฐ„์—์„œ๋„ ๋งˆ์ธ๋“œ๋งต์ด ์ž˜ ๋ณด์ด๋„๋ก ๊ฐœ์„ 

๐Ÿ› ๏ธ ๊ฐœ์„ ์‚ฌํ•ญ / Improvements #

  • ์นด๋ฉ”๋ผ ํฌ์ปค์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋” ์œ ์—ฐํ•œ ๋ทฐ ์ œ์–ด ๊ฐ€๋Šฅ
  • fitAll ๋ชจ๋“œ์—์„œ ์Šค๋งˆํŠธ ์Šค์ผ€์ผ๋ง์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ‘œ์‹œ
  • ํŠธ๋žœ์Šคํผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • ์ž‘์€ Container์—์„œ์˜ UX ๋Œ€ํญ ๊ฐœ์„ 

๐Ÿ“ฆ ์ƒˆ๋กœ์šด API #

  • cameraFocus: ์นด๋ฉ”๋ผ ํฌ์ปค์Šค ์˜ต์…˜ ์„ค์ •
  • focusNodeId: ํฌ์ปค์Šคํ•  ํŠน์ • ๋…ธ๋“œ ID
  • focusAnimation: ํฌ์ปค์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ง€์†์‹œ๊ฐ„
  • focusMargin: ํฌ์ปค์Šค ์‹œ ์—ฌ๋ฐฑ ์„ค์ •

๐ŸŽฏ ์‚ฌ์šฉ ์‚ฌ๋ก€ #

์ž‘์€ ์œ„์ ฏ์ด๋‚˜ ์ œํ•œ๋œ ๊ณต๊ฐ„์—์„œ ๋งˆ์ธ๋“œ๋งต์„ ์‚ฌ์šฉํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค:

Container(
  height: 200,
  child: MindMapWidget(
    data: data,
    cameraFocus: CameraFocus.fitAll,
    focusAnimation: Duration(milliseconds: 500),
    focusMargin: EdgeInsets.all(10),
  ),
)

1.0.4 - 2025-06-19 #

Added #

  • ๐ŸŽฏ ์ž๋™ ์ค‘์•™ ์ •๋ ฌ ๊ธฐ๋Šฅ: ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ํ™”๋ฉด ์ค‘์•™์— ์œ„์น˜ / Auto-centering: Root node automatically centers on initial load
  • ๐Ÿ“ ์ดˆ๊ธฐ ์คŒ ์Šค์ผ€์ผ ์„ค์ •: initialScale ์†์„ฑ์œผ๋กœ ๊ธฐ๋ณธ ํ™•๋Œ€/์ถ•์†Œ ๋ ˆ๋ฒจ ์กฐ์ • ๊ฐ€๋Šฅ / Initial zoom scale: initialScale property for default zoom level control
  • ๐Ÿ“‚ ๋…ธ๋“œ ๊ธฐ๋ณธ ํ™•์žฅ ์ƒํƒœ: isNodesCollapsed ์†์„ฑ์œผ๋กœ ๋…ธ๋“œ ์ดˆ๊ธฐ ์ƒํƒœ ์ œ์–ด / Default node expansion: isNodesCollapsed property for initial node state control
  • ๐Ÿ“ธ ์ด๋ฏธ์ง€ ์บก์ฒ˜ ๊ธฐ๋Šฅ: captureKey ์†์„ฑ์œผ๋กœ ๋งˆ์ธ๋“œ๋งต์„ ์ด๋ฏธ์ง€๋กœ ์ €์žฅ ๊ฐ€๋Šฅ / Image capture: captureKey property for saving mind map as image
  • ๐Ÿ”„ TransformationController ์ง€์›: ๋ทฐํฌํŠธ ์œ„์น˜ ๋ฐ ์คŒ ๋ ˆ๋ฒจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ œ์–ด / TransformationController support: Programmatic viewport and zoom control

Improved #

  • ๐Ÿ”ง ํ…์ŠคํŠธ ๋ Œ๋”๋ง ํ’ˆ์งˆ: softWrap: true ์ ์šฉ์œผ๋กœ ํ…์ŠคํŠธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐฉ์ง€ / Text rendering quality: softWrap: true prevents text overflow
  • โšก ์ดˆ๊ธฐ ๋กœ๋”ฉ ์„ฑ๋Šฅ: ์ž๋™ ์ค‘์•™ ์ •๋ ฌ๋กœ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐœ์„  / Initial loading performance: Auto-centering improves user experience
  • ๐ŸŽจ InteractiveViewer ์ตœ์ ํ™”: ๋” ๋ถ€๋“œ๋Ÿฌ์šด ํŒฌ/์คŒ ์ธํ„ฐ๋ž™์…˜ / InteractiveViewer optimization: Smoother pan/zoom interactions
  • ๐Ÿ“ฑ ๋ฐ˜์‘ํ˜• ๊ฐœ์„ : ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์—์„œ ๋” ๋‚˜์€ ์ ์‘์„ฑ / Responsive improvements: Better adaptation to various screen sizes

Fixed #

  • โŒ ์ดˆ๊ธฐ ๋ทฐํฌํŠธ ๋ฌธ์ œ: ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ํ™”๋ฉด ๋ฐ–์— ์œ„์น˜ํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ / Initial viewport issue: Fixed root node appearing outside viewport
  • ๐Ÿ”ค ํ…์ŠคํŠธ ์ž˜๋ฆผ ๋ฌธ์ œ: ๊ธด ํ…์ŠคํŠธ์˜ ํ‘œ์‹œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ / Text clipping issue: Fixed display errors with long text
  • ๐ŸŽฏ ๋…ธ๋“œ ํฌ์ปค์Šค ๋ฌธ์ œ: ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์ธ๋“œ๋งต์„ ์ฐพ๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ ํ•ด๊ฒฐ / Node focus issue: Fixed difficulty finding mind map content

Breaking Changes #

  • None - ์ด ์—…๋ฐ์ดํŠธ๋Š” ๋ชจ๋“  ๊ธฐ์กด API์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค / This update is fully compatible with existing APIs

Usage Examples #

MindMapWidget(
  data: yourMindMapData,
  initialScale: 0.8,           // ์ดˆ๊ธฐ 80% ์คŒ ๋ ˆ๋ฒจ
  isNodesCollapsed: false,     // ๋ชจ๋“  ๋…ธ๋“œ ๊ธฐ๋ณธ ํ™•์žฅ
  captureKey: GlobalKey(),     // ์ด๋ฏธ์ง€ ์บก์ฒ˜์šฉ ํ‚ค
  style: MindMapStyle(
    // ... ๊ธฐ์กด ์Šคํƒ€์ผ ์„ค์ •
  ),
)

Contributors #

  • Special thanks to @TOZXII for the major contributions including auto-centering, initial scale, and image capture features

1.0.3 - 2025-06-06 #

Added #

  • ์‹ค์ œ ๋…ธ๋“œ ์œ„์น˜ ๊ธฐ๋ฐ˜ ๋™์  ์บ”๋ฒ„์Šค ํฌ๊ธฐ ๊ณ„์‚ฐ ์‹œ์Šคํ…œ / Dynamic canvas sizing system based on actual node positions
  • ์ฝ˜ํ…์ธ  ๊ฒฝ๊ณ„ ๋ฐ•์Šค ๊ณ„์‚ฐ์œผ๋กœ ์ •ํ™•ํ•œ ์บ”๋ฒ„์Šค ํฌ๊ธฐ ๊ฒฐ์ • / Accurate canvas sizing through content bounding box calculation
  • ์Šค๋งˆํŠธ ํŒจ๋”ฉ ์‹œ์Šคํ…œ์œผ๋กœ ์ตœ์ ํ™”๋œ ์—ฌ๋ฐฑ ๊ด€๋ฆฌ / Smart padding system for optimized margin management

Improved #

  • ํ…์ŠคํŠธ ๋ผ์ธ ์ˆ˜ ์ œํ•œ ํ•ด์ œ (๋ฌด์ œํ•œ ํ…์ŠคํŠธ ํ‘œ์‹œ ๊ฐ€๋Šฅ) / Unlimited text lines support (removed maxLines restriction)
  • ํ•œ๊ตญ์–ด/์˜์–ด ์ฃผ์„ ์ˆœ์„œ ํ‘œ์ค€ํ™” (ํ•œ๊ตญ์–ด ๋จผ์ €, ์˜์–ด ๋‚˜์ค‘) / Standardized Korean/English comment order
  • ๋น„๋Œ€์นญ ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ๋„ ์ •ํ™•ํ•œ ๋ ˆ์ด์•„์›ƒ ๊ณ„์‚ฐ / Accurate layout calculation even for asymmetric tree structures
  • ๋…ธ๋“œ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ๋™์  ์—ฌ๋ฐฑ ์กฐ์ • / Dynamic margin adjustment based on node sizes
  • InteractiveViewer ๊ธฐ๋ณธ ์„ค์ • ๊ฐœ์„  (constrained: true, ๊ฒฝ๊ณ„ ๋งˆ์ง„ ์ถ•์†Œ) / Improved InteractiveViewer defaults

Fixed #

  • ํฐ ๋งˆ์ธ๋“œ๋งต์—์„œ ๋…ธ๋“œ๊ฐ€ ์บ”๋ฒ„์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ / Fixed nodes exceeding canvas boundaries in large mind maps
  • ์ฝ˜ํ…์ธ  ํฌ๊ธฐ์™€ ์บ”๋ฒ„์Šค ํฌ๊ธฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ํ•ด๊ฒฐ / Resolved content size and canvas size mismatch issues
  • ๋ฃจํŠธ ๋…ธ๋“œ ์œ„์น˜ ๊ณ„์‚ฐ ์ •ํ™•๋„ ํ–ฅ์ƒ / Improved root node positioning accuracy
  • MindMapWidget์ด Expanded ์œ„์ ฏ ์•ˆ์—์„œ ํ™”๋ฉด์„ ๋ฒ—์–ด๋‚˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ / Fixed MindMapWidget exceeding screen boundaries inside Expanded widget

Technical Details #

  • 2๋‹จ๊ณ„ ๋ ˆ์ด์•„์›ƒ ์‹œ์Šคํ…œ: ์ž„์‹œ ๊ณ„์‚ฐ โ†’ ์‹ค์ œ ํฌ๊ธฐ ๊ณ„์‚ฐ โ†’ ์žฌ์กฐ์ • / Two-stage layout system: temporary calculation โ†’ actual size calculation โ†’ readjustment
  • _calculateRequiredCanvasSize() ๋ฉ”์„œ๋“œ๋กœ ์ •ํ™•ํ•œ ์บ”๋ฒ„์Šค ํฌ๊ธฐ ๊ณ„์‚ฐ / Precise canvas size calculation with _calculateRequiredCanvasSize() method
  • _collectAllVisibleNodes() ๋ฉ”์„œ๋“œ๋กœ ํšจ์œจ์ ์ธ ๋…ธ๋“œ ์ˆ˜์ง‘ / Efficient node collection with _collectAllVisibleNodes() method
  • README์— ์ค‘์š”ํ•œ ์‚ฌ์šฉ๋ฒ• ์ฃผ์˜์‚ฌํ•ญ ์ถ”๊ฐ€ / Added important usage notes to README

1.0.2 - 2025-06-13 #

Added #

  • Screenshots and demo GIF in README
  • GitHub raw links for images to ensure pub.dev compatibility
  • Improved README readability with emojis and cleaner formatting
  • Bilingual documentation (Korean/English)

Improved #

  • Dynamic spacing calculation based on node sizes
  • Better curve control points for connections
  • Code comments with English translations
  • Documentation structure and visual presentation

Fixed #

  • Image display issues on pub.dev by using GitHub raw URLs
  • Code formatting and removed unnecessary comments

1.0.1 - 2025-06-13 #

Added #

  • Dynamic node sizing based on text content
  • Enhanced spacing calculations for better layout
  • Improved connection line rendering
  • Auto-sizing configuration options

Improved #

  • Node overlap prevention
  • Curve connection quality
  • Layout consistency across all directions
  • Performance optimizations

Fixed #

  • Connection point calculations for variable node sizes
  • Layout issues in split arrangements
  • Animation smoothness

1.0.0 - 2025-06-13 #

Added #

  • Initial release of Reactive Mind Map package
  • Multiple layout options (right, left, top, bottom, radial, horizontal, vertical)
  • Six node shapes (rounded rectangle, circle, rectangle, diamond, hexagon, ellipse)
  • Comprehensive styling system with MindMapStyle
  • Interactive features (tap, long press, double tap, expand/collapse)
  • Smooth animations with customizable curves and duration
  • Pan and zoom functionality
  • Rich customization options for colors, fonts, and effects
  • Shadow effects for nodes
  • Connection line customization
  • Comprehensive test suite
  • Example application demonstrating all features
  • MIT License
  • Complete documentation

๊ธฐ์ˆ ์  ํŠน์ง• #

  • Flutter 3.0+ ์ง€์›
  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ
  • ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค
  • ํƒ€์ž… ์•ˆ์ „์„ฑ

์ง€์› ํ”Œ๋žซํผ #

  • Android
  • iOS
  • Web
  • Windows
  • macOS
  • Linux
17
likes
0
points
113
downloads

Publisher

unverified uploader

Weekly Downloads

A customizable mind map widget for Flutter apps. Create interactive mind maps with various layout options, themes, and interactions.

Repository (GitHub)
View/report issues

Topics

#mind-map #visualization #ui #flutter-widget #interactive

License

unknown (license)

Dependencies

cupertino_icons, flutter

More

Packages that depend on reactive_mind_map