flutter_fa_davi_table 1.0.3 copy "flutter_fa_davi_table: ^1.0.3" to clipboard
flutter_fa_davi_table: ^1.0.3 copied to clipboard

A high-performance data table wrapper built on top of Davi. Optimized for lazy loading, infinite scrolling, and smart O(1) multi-platform grid rendering.

Changelog #

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning (SemVer).


1.0.3 #

  • Update Dependencies.

1.0.2 #

  • Update Dependencies.

1.0.1 #

  • Update Dependencies.

1.0.0 - 2026-06-12 #

⚠️ BREAKING CHANGES #

Version 1.0.0 introduces a fundamental architectural redesign across the core library layers, completely moving away from volatile row index-based configurations to a robust, modern Identity-Based State Engine.

  1. Removal of Index-Based Style Configurations:

    • The legacy internal tracking parameters inside RowThemeData that checked physical row numbers (int row) to resolve conditional grid backgrounds are deprecated and removed.
    • FaDaviTableThemeData no longer accepts functional block parameters like identity extraction properties. It focuses strictly and purely on descriptive presentation layout tokens.
  2. Identity-Driven API Contracts:

    • FaDaviTable now enforces direct identity binding across the entire widget lifecycle. To properly resolve row highlights and prevent alignment glitches, you must explicitly supply an identity extractor callback (getItemId) alongside the reactive state sets (currentItemId, selectedItemIds, checkedItemIds).

✨ Added #

  • Identity-Based Row State Matrix: Integrated native, dedicated support for tracking currentItemId (ID?), selectedItemIds (Set<ID>), and checkedItemIds (Set<ID>). This completely prevents row background de-synchronization or state mismatch issues when rows shift layout positions during business block sorting or filtering phases.
  • Unified State-Color Theme Matrix: Introduced rowColorBuilder inside FaDaviTableThemeData utilizing the unified FaRowStateColorBuilder<ITEM> signature. This centralizes row style evaluations (Hovered, Current, Selected, Checked) into a single, cohesive presentation mapping model.
  • Reactive Lifecycle Propagation: Implemented a comprehensive state intersection validation pass inside didUpdateWidget. The grid wrapper now dynamically monitors upstream identity key set mutations and automatically coordinates internal element layout redraws via a controlled setState() call.
  • Full Dartdoc Coverage: Documented all public signatures, parameters, constructors, and custom enum flags using strict /// Dartdoc blocks to optimize API transparency and maximize the pub.dev documentation score.

 Performance Optimizations #

  • Shallow Array Pointer Verification: Implemented an ultra-fast structural memory address scanning pass (_isSameList) across collection boundaries to completely suppress redundant widget tree re-renders when data lists remain identical.
  • Optimized View-Side Sorting Transformations: Refactored the _updateDaviModel sorting utility routine to construct an efficient $O(1)$ index lookup table during SortRuleSide.viewSide evaluations, substituting heavy linear-scan lookup complexities.

 Upgrade Migration Guide #

Migrating Table Initialization Layers

Ensure that you update your existing table view workspaces to wire up your identity key sets from your controllers or reactive business components directly into the widget tree parameters:

FaDaviTable<int, SystemLogInfo>(
  items: block.items,
  getItemId: (item) => item.id, // Single tracking identity mapper definition
  currentItemId: block.currentItem?.id,
  selectedItemIds: block.selectedItemIds,
  checkedItemIds: block.checkedItemIds, // New multi-checked target states collection
  themeData: myGlobalThemeDataConfiguration, // Centralized style configuration mapping state flags
  sortRuleSide: SortRuleSide.blockSide,
  modelSettings: myTableSettings,
)

0.9.3 #

  • Initial release.
0
likes
160
points
53
downloads

Documentation

API reference

Publisher

verified publishero7planning.org

Weekly Downloads

A high-performance data table wrapper built on top of Davi. Optimized for lazy loading, infinite scrolling, and smart O(1) multi-platform grid rendering.

Homepage

License

BSD-3-Clause (license)

Dependencies

collection, davi, flutter, flutter_artist_core

More

Packages that depend on flutter_fa_davi_table