worksheet 1.0.0
worksheet: ^1.0.0 copied to clipboard
High-performance Flutter spreadsheet widget supporting large datasets, 10%-400% zoom, and GPU-optimized tile-based rendering.
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.0 - 2024-01-25 #
Added #
- Example application with 50,000 rows of sample sales data
- Performance benchmarks for tile rendering (< 8ms target)
- Performance benchmarks for hit testing (< 100μs target)
- Scroll performance benchmarks
- Large dataset integration tests
- Memory leak tests
- Comprehensive documentation suite:
- ARCHITECTURE.md with rendering pipeline deep dive
- GETTING_STARTED.md with installation and basic usage
- COOKBOOK.md with practical recipes
- PERFORMANCE.md optimization guide
- THEMING.md customization guide
- TESTING.md testing patterns
- API.md quick reference
- Updated PLAN.md to reflect completed implementation
Changed #
- Version bumped to 1.0.0 for production release
0.9.0 - 2024-01-24 #
Added #
WorksheetWidget- Main public StatefulWidgetWorksheetController- Programmatic control aggregating sub-controllersWorksheetThemeData- Complete theming and styling supportWorksheetTheme- InheritedWidget for theme propagation- Complete public API exports in
worksheet.dart - Gesture handling integration
- Layer composition using Stack
0.8.0 - 2024-01-23 #
Added #
RenderLayer- Abstract interface for render layersSelectionLayer- Selection highlight paintingSelectionRenderer- Selection visual renderingHeaderLayer- Row and column header layerHeaderRenderer- A,B,C column and 1,2,3 row labelsFrozenLayer- Infrastructure for frozen panes (not fully wired)
0.7.0 - 2024-01-22 #
Added #
EditController- Cell editing orchestration with start/commit/cancel flowEditTriggerenum - Double-tap, keyboard, and typing triggersCellEditorOverlay- Floating text editor widget for cell editing
0.6.0 - 2024-01-21 #
Added #
SelectionController- Selection state machine with single/range/row/column modesHitTester- Coordinate resolution from screen to worksheet spaceHitTestResult- Types for cell, header, and resize handle hitsGestureHandler- Unified gesture processingKeyboardHandler- Arrow keys and keyboard shortcutsScaleHandler- Pinch-to-zoom gesture handling
0.5.0 - 2024-01-20 #
Added #
ZoomController- Zoom level management extending ValueNotifier- Support for 10%-400% zoom range (0.1 to 4.0)
zoomIn(),zoomOut(), andreset()methods- Zoom clamping and validation
0.4.0 - 2024-01-19 #
Added #
ScrollAnchor- Position preservation during zoomWorksheetScrollPhysics- Custom scroll momentum physicsViewportDelegate- Interface for viewport managementWorksheetViewport- TwoDimensionalScrollable integrationWorksheetScrollDelegate- Child management for 2D scrolling
0.3.0 - 2024-01-18 #
Added #
TileCoordinate- Tile grid position representationTileConfig- Configuration with 256px tiles, LRU cache settingsTile- Single cached tile with GPU-backedui.PictureTilePainter- Cell painting with level-of-detail (LOD) renderingTileCache- LRU eviction cache for tilesTileManager- Tile lifecycle orchestration
Performance #
- GPU-backed tile caching for smooth scrolling
- Level-of-detail rendering based on zoom level
- LRU cache eviction to manage memory
0.2.0 - 2024-01-17 #
Added #
WorksheetData- Abstract interface for worksheet data accessSparseWorksheetData- Map-based sparse storage implementationDataChangeEvent- Granular change events for reactive updatesSpanList- Cumulative row/column sizes with O(log n) lookupsLayoutSolver- Position to index conversionVisibleRangeCalculator- Viewport to CellRange queriesZoomTransformer- Zoom-aware coordinate math with ZoomBucket enum
Performance #
- O(log n) binary search for position lookups
- Memory-efficient sparse data storage
0.1.0 - 2024-01-16 #
Added #
- Initial project scaffolding
CellCoordinate- Immutable (row, col) address with Excel notation (A1, AA100)CellRange- Rectangular cell selection with normalization and contains()CellValue- Union type supporting text, number, boolean, formula, error, dateCellStyle- Font, color, alignment, and border stylingFreezeConfig- Configuration for frozen panes- Full test coverage for all core models
- CLAUDE.md development guide
- PLAN.md implementation plan
Technical #
- TDD workflow with tests written before implementation
- SOLID principles applied throughout
- Immutable models with proper equality/hashCode