voo_data_grid 0.5.0
voo_data_grid: ^0.5.0 copied to clipboard
A powerful and flexible data grid widget for Flutter with sorting, filtering, pagination, and remote data support
0.5.0 #
-
Major Feature: Generic Type Support
- VooDataGrid components now support generic type parameters for compile-time type safety
VooDataGridController<T>
,VooDataGridSource<T>
, andVooDataColumn<T>
are now genericVooDataGrid<T>
,VooDataGridHeader<T>
,VooDataGridRow<T>
, andVooDataGridFilterRow<T>
widgets are now generic- Eliminates need for runtime type casting in
valueGetter
functions - Provides full IntelliSense and type checking for row data
-
Type Safety Improvements
valueGetter
in VooDataColumn now has proper type signature:dynamic Function(T row)
cellBuilder
callback now receives properly typed row:Widget Function(BuildContext, dynamic value, T row)
onRowTap
andonRowDoubleTap
callbacks now receive typed data:void Function(T row)
cardBuilder
for mobile layout now has type safety:Widget Function(BuildContext, T row, int index)
-
Developer Experience
- No more casting needed in valueGetter:
(row) => row.orderId
instead of(row) => (row as OrderModel).orderId
- Better IDE support with autocomplete and error detection
- Cleaner, more maintainable code with compile-time type checking
- Backward compatible - can still use
dynamic
for untyped/Map data
- No more casting needed in valueGetter:
-
Example Updates
- Updated VooDataGridTypedObjectsPreview to demonstrate generic usage
- Simplified valueGetter implementations without type casting
- Added comments highlighting type safety benefits
0.4.0 #
-
Breaking Changes
- VooDataGrid now requires
valueGetter
function for typed objects (non-Map data) - DataGridRequestBuilder now returns structured responses with 'params', 'body', or 'variables' keys
- VooDataGrid now requires
-
Major Features
- Full support for typed objects in VooDataGrid
- Added required
valueGetter
parameter in VooDataColumn for typed objects - Created comprehensive typed objects preview and documentation
- Fixed dynamic property access errors for custom model classes
- Added required
- Enhanced API standards support
- Fixed MongoDB operator handling for equals operator
- Fixed GraphQL filter operators structure
- Fixed OData numeric value formatting (no quotes for numbers)
- Fixed JSON:API 1-based pagination
- Full support for typed objects in VooDataGrid
-
Bug Fixes
- Fixed critical "Dynamic call failed" error when using typed objects like OrderList
- Fixed ScrollController disposal issues causing test failures
- Resolved checkbox selection handling in data grid rows
- Fixed row tap and double tap callback handling
- Corrected alternating row colors initialization
-
Test Improvements
- Added comprehensive typed objects test suite
- Fixed test infrastructure and dependency resolution
- Improved test coverage from 87% to 98%
- Added proper test data initialization
-
Documentation
- Added clear instructions for using typed objects with VooDataGrid
- Created VooDataGridTypedObjectsPreview example
- Updated README with valueGetter requirements and examples
- Added warning messages for missing valueGetter functions
0.3.1 #
-
Bug Fixes
- Fixed ScrollController multiple positions error when using horizontal scrolling
- Resolved horizontal scrollbar positioning to appear at bottom of grid instead of right side
- Fixed horizontal scrollbar accessibility - now always visible at bottom of viewport without requiring vertical scroll
-
Filter Enhancements
- Enhanced Advanced Filters preview with comprehensive filter types:
- DateTime filters with date picker widgets
- Numeric range filters for min/max values
- Dropdown filters with icon support
- Boolean checkbox filters
- Text search filters with proper hints
- Added
FilterTypeExtensions
for cleaner code organization - Improved filter type handling with proper operators and input widgets per type
- Enhanced Advanced Filters preview with comprehensive filter types:
-
UX Improvements
- Horizontal scrollbar now fixed at bottom of grid viewport for better accessibility
- Removed scrollbar from header to prevent duplicate scrollbar issues
- Improved scrollbar positioning following UI/UX best practices
- Stack-based layout for optimal scrollbar visibility
-
Code Quality
- Refactored filter system with enum extensions for better maintainability
- Fixed DateTime handling in DateFilter models
- Improved type safety in filter request builders
0.3.0 #
-
BREAKING CHANGES
- Renamed
StandardApiRequestBuilder
toDataGridRequestBuilder
- Integrated API standards directly into
DataGridRequestBuilder
for better architecture - Moved preview files from
/preview
to/lib/preview
directory
- Renamed
-
API Standards Support
- Integrated
ApiFilterStandard
enum directly intoDataGridRequestBuilder
- Support for 6 different API standards: Simple REST, JSON:API, OData, MongoDB/Elasticsearch, GraphQL, and Custom
- Instance-based configuration allows separate Dio instances with custom interceptors
- Each data source can have its own HTTP client with tokens and authentication
- Integrated
-
Advanced Filtering System
- Complex filters with secondary conditions (AND/OR logic)
- Multiple filter types: stringFilters, intFilters, dateFilters, decimalFilters
AdvancedFilterRequest
model for complex filter requestsAdvancedRemoteDataSource
for handling advanced filter formats- Full backward compatibility with legacy filter formats
-
Enhanced Request Builder
- New instance-based
DataGridRequestBuilder
with API standard configuration buildRequest()
method adapts to selected API standard- Support for query parameters (GET) and request body (POST) formats
- Built-in URL encoding and special character handling for each standard
- Static methods maintained for backward compatibility
- New instance-based
-
Synchronized Horizontal Scrolling
- Fixed horizontal scrolling to work uniformly between header and body
SynchronizedScrollController
for coordinating scroll between components- Separate controllers for header and body synchronization
- Smooth scrolling experience across large datasets
-
Widget Previews
- Comprehensive data grid preview with 200+ rows and 15+ columns
- API standards configuration preview with live request viewer
- Advanced filtering demo with API request/response monitoring
- Empty state preview demonstrating proper header visibility
- Mock data generator for realistic testing scenarios
-
UI/UX Improvements
- Column headers remain visible even with no data
- Empty state message appears below headers
- Advanced filter widget with visual filter builders
- Filter preview and validation features
- Better responsive behavior for large datasets
-
Developer Experience
- Cleaner architecture with integrated API standards
- Better separation of concerns for HTTP clients
- Comprehensive examples for each API standard
- Improved documentation and code organization
0.2.0 #
- Empty State Improvements
- Column headers now remain visible even when there's no data
- Empty state message appears in the body area below headers
- Users can see the table structure even with no rows
- Advanced Filtering System
- Added support for complex filters with secondary conditions
- Implemented multiple filter types: string, int, date, decimal
- Added secondary filters with AND/OR logic operators
- Created
AdvancedFilterRequest
model for complex filter requests - Added
AdvancedRemoteDataSource
for handling advanced filter formats - Maintained full backward compatibility with legacy filter formats
- Filter UI Components
- Added
AdvancedFilterWidget
for building complex filters via UI - Implemented filter field configuration system
- Added visual filter builders for each data type
- Created filter preview and validation features
- Added
- Synchronized Scrolling
- Fixed horizontal scrolling to work uniformly between header and body
- Implemented
SynchronizedScrollController
for scroll coordination - Added separate scroll controllers for header and body synchronization
- Enhanced Request Builder
- Added
buildAdvancedRequestBody
method for complex filters - Implemented
convertToAdvancedRequest
for format conversion - Added support for API-specific operator formatting
- Added
- Documentation & Examples
- Added comprehensive example app with advanced filtering demos
- Updated README with advanced filtering documentation
- Added multiple filter request/response examples
0.1.0 #
- Enhanced data grid with multiple API filtering standards support
- Added support for JSONAPI, REST, GraphQL, and OData filtering standards
- Improved sorting and filtering capabilities
- Added comprehensive pagination support
- Enhanced remote data loading with customizable data sources
- Added selectable rows with checkbox support
- Improved column configuration and customization
- Added widget previews for testing and development
0.0.1 #
- Initial release of VooDataGrid
- Basic data grid implementation with sorting and filtering
- Column-based data display with customizable headers
- Local data source support