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

A customizable and interactive mind map widget for Flutter with smooth animations and various layout options.

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.1.0 - 2025-06-20 #

๐ŸŽฏ New Features #

  • NodeExpandCameraBehavior: ๋…ธ๋“œ ํ™•์žฅ ์‹œ ์นด๋ฉ”๋ผ ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
    • none: ์นด๋ฉ”๋ผ ์ด๋™ ์—†์Œ (๊ธฐ๋ณธ๊ฐ’)
    • focusClickedNode: ํด๋ฆญํ•œ ๋…ธ๋“œ๋กœ ํฌ์ปค์Šค ์ด๋™
    • fitExpandedChildren: ์ƒˆ๋กœ ํŽผ์ณ์ง„ ์ž์‹ ๋…ธ๋“œ๋“ค์ด ๋ชจ๋‘ ๋ณด์ด๋„๋ก ์กฐ์ •
    • fitExpandedSubtree: ํŽผ์ณ์ง„ ์ „์ฒด ์„œ๋ธŒํŠธ๋ฆฌ๊ฐ€ ๋ณด์ด๋„๋ก ์กฐ์ •

๐Ÿ› Bug Fixes #

  • ๋…ธ๋“œ ํ† ๊ธ€ ์‹œ ์นด๋ฉ”๋ผ ์ด๋™ ๋ฌธ์ œ ํ•ด๊ฒฐ: ๋…ธ๋“œ๋ฅผ ์ ‘๊ฑฐ๋‚˜ ํŽผ์น  ๋•Œ ์ „์ฒด ๋งˆ์ธ๋“œ๋งต์ด ์กฐ๊ธˆ์”ฉ ์ด๋™ํ•˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •
  • ๋ฃจํŠธ ๋…ธ๋“œ ์œ„์น˜ ์•ˆ์ •์„ฑ ๊ฐœ์„ : ๋…ธ๋“œ ํ† ๊ธ€ ์ค‘์—๋Š” ๋ฃจํŠธ ๋…ธ๋“œ ์œ„์น˜๋ฅผ ๊ณ ์ •ํ•˜์—ฌ ์•ˆ์ •์ ์ธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ œ๊ณต

๐Ÿ”ง Technical Improvements #

  • ์นด๋ฉ”๋ผ ์ œ์–ด ๋กœ์ง ์ตœ์ ํ™”
  • ๋…ธ๋“œ ํ† ๊ธ€ ์ƒํƒœ ๊ด€๋ฆฌ ๊ฐœ์„ 

1.0.5 2024-01-XX #

๐ŸŽฏ New Features #

  • Smart Camera Focus: ์Šค๋งˆํŠธ ์นด๋ฉ”๋ผ ํฌ์ปค์Šค ์‹œ์Šคํ…œ ์ถ”๊ฐ€
    • CameraFocus.rootNode: ๋ฃจํŠธ ๋…ธ๋“œ์— ํฌ์ปค์Šค (๊ธฐ๋ณธ๊ฐ’)
    • CameraFocus.center: ์บ”๋ฒ„์Šค ์ค‘์•™์— ํฌ์ปค์Šค
    • CameraFocus.fitAll: ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋ณด์ด๋„๋ก ์ž๋™ ์กฐ์ •
    • CameraFocus.firstLeaf: ์ฒซ ๋ฒˆ์งธ ๋ฆฌํ”„ ๋…ธ๋“œ์— ํฌ์ปค์Šค
    • CameraFocus.custom: ํŠน์ • ๋…ธ๋“œ ID๋กœ ํฌ์ปค์Šค (focusNodeId ์‚ฌ์šฉ)

๐Ÿ”ง Camera Control Options #

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

๐ŸŽจ Enhanced User Experience #

  • ์ž‘์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ๋„ ์™„๋ฒฝํ•œ ๋งˆ์ธ๋“œ๋งต ํ‘œ์‹œ
  • ๋ถ€๋“œ๋Ÿฌ์šด ์นด๋ฉ”๋ผ ์ด๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜
  • ์ •ํ™•ํ•œ ์ค‘์•™ ์ •๋ ฌ ๊ณ„์‚ฐ์œผ๋กœ ํ”ฝ์…€ ํผํŽ™ํŠธ ํฌ์ปค์Šค

๐Ÿ“– Documentation #

  • README์— Camera Focus Control ์‚ฌ์šฉ๋ฒ• ์ถ”๊ฐ€
  • 4๊ฐ€์ง€ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ ์ œ๊ณต
  • ํฌ์ปค์Šค ์˜ต์…˜ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€

1.0.4 - 2025-06-20 #

๐Ÿ†• ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ / 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.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 and interactive mind map widget for Flutter with smooth animations and various layout options.

Homepage
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