trina_grid 2.4.0
trina_grid: ^2.4.0 copied to clipboard
A data grid that can be controlled by the keyboard on desktop and web. Of course, it works well on Android and IOS. (DataGrid, DataTable, Data Grid, Data Table, Sticky)
Changelog #
2.4.0 2026. 10. 31 #
- Feature: Added multi-column sorting support with priority indicators. Enable via
TrinaGridConfiguration.enableMultiColumnSortto allow Shift+Click and Ctrl+Click on column headers to build compound sort hierarchies. Column headers display numbered badges showing their priority when multiple columns are sorted. Supports programmatic multi-sorting viasortAscending(column, append: true),sortDescending(column, append: true),clearSorting(), and server-side multi-sorting throughrequest.sortedColumnsonTrinaLazyPaginationandTrinaInfinityScrollRows. Columns that setsortin their constructors are ranked in column order, after any that setsortPrioritythemselves (#436, #441). @lschaffer @doonfrs - Feature: Added the
TrinaAutoSizeMode.fitContentcolumn auto size mode. It sizes each column to the widest value it holds (title, values and the filter field) and shares any leftover width so the columns still fill the grid. Unlikescaleit never shrinks a column below its content, so a grid wider than the viewport scrolls instead of collapsing every column to its minimum.TrinaGridColumnSizeConfig.minFitContentWidthandmaxFitContentWidthbound the fit, andrefitOnRowsChanged(defaulttrue) measures again when the rows are replaced, for example on a page change. Columns with arendererkeep theirminWidthas the floor, since the drawn width cannot be measured (#415, #416). @doonfrs - Perf: Rows of uniform height are laid out with a fixed item extent, so large grids scroll and jump without measuring every row. Grids with varied row heights are unchanged (#417). @jan-siroky
- Feature: The record sidebar texts are now localizable through
TrinaGridLocaleText.sidebarSearchHint,sidebarSelectRowPromptandsidebarNoMatchingFields, translated in every built-in locale.sidebarNoMatchingFieldstakes a{query}placeholder so each language controls its own word order (#413, #421). @JonathanAJ @doonfrs - Fix: The Is empty, Is not empty and Regex filter types now follow the grid locale through the new
TrinaGridLocaleText.filterIsEmpty,filterIsNotEmptyandfilterRegex, instead of always showing English (#426). @VZahidko - Chore:
shadcn_uiis now allowed from 0.55 up to (not including) 0.58, with CI covering both ends of the range (#443). @miakh - Docs: Fixed dead links in the doc index and README, and the Column Title Renderer page now points out that
titleRendereris the column header renderer (#410, #445). @doonfrs - Fix: With
TrinaGridStyleConfig.unfocusedSelectionColorset, the whole current row now keeps that color when the grid loses focus, for example when the user moves to a form field next to it. Only the current cell kept it and the rest of the row went back to its normal color, so it was hard to see which row was selected. Selected rows in row selecting mode switch to it too, like selected cells already did. Grids withoutunfocusedSelectionColorare unchanged (#303). @doonfrs - Fix: The first tap into a column filter field now keeps the filter focused when the focus comes from outside the grid. Focus entering the grid moved to the grid itself and took it away from the filter, so a touch tap (or a widget test
tap/enterText) left the filter unfocused and needed a second tap before typing. Applies to the default filter and toTrinaFilterColumnWidgetDelegate.builderfilters (#437). @charlesb9292 @doonfrs - Feature: Added the Does not contain (
TrinaFilterTypeDoesNotContain) and Not equals (TrinaFilterTypeNotEquals) filter types, offered by default and translated in every built-in locale (filterDoesNotContain,filterNotEquals). They exclude exactly the rows their positive type matches, so a number is excluded by its formatted or its raw value, and over all columns a row is kept only when no column matches. ExtendTrinaNegatedFilterTypeto negate other filter types (#432). @lschaffer @doonfrs - Feat:
TrinaGridStyleConfig.columnBackgroundColorfills the whole column header area across the full grid width. Colored column titles left the band at the end of the header, which the header and rows reserve for the vertical scrollbar so they scroll to the same end, in the grid background color, and the same for the space after the last column when the columns are narrower than the grid. The new color fills both and is drawn below the column, group and filter colors. It defaults tonull, so existing grids are unchanged (#403, #304, #50). @doonfrs - Fix: Column footers now stay aligned with their columns when the grid is scrolled to the end. They did not reserve the trailing band the headers and rows leave for the vertical scrollbar, so a scrollbar track click, a touch swipe or another animated scroll to the end stopped the footers one scrollbar width short and shifted them against their columns (#402). @doonfrs
- Test: Added end to end tests under
example/integration_test/that run the grid in a real desktop app, drive it with real input, assert on the rendered layout and save screenshots. Seedoc/contributing/e2e-testing.md. @doonfrs - Fix: The grid now provides its own transparent
Materialwhen the host has none of the SDK type, so cell editing and the filter row no longer throw "No Material widget found" in apps on the standalonematerial_uipackage (Flutter 3.47), whoseMaterialis a different type. Grids that already sit under aScaffoldorMaterialare unchanged. The themes doc now covers using the grid from amaterial_uiapp (#423). @doonfrs @ricardordr - Fix: The current and selected cells now keep their vertical cell divider. The activated border used to replace it, so the divider disappeared with a transparent
activatedBorderColorand was covered by the activated border on the end edge otherwise. The activated border is now drawn inside the divider and above the cell content, so it also shows over renderers that fill the cell withcellPadding: EdgeInsets.zero(#425). @FrankenApps @doonfrs - Fix:
autoFitColumn(and the Auto fit column menu item) and theTrinaAutoSizeMode.fitContentcolumn auto size mode now measure text with the ambientTextScaler. The cells and titles are drawn with it, so under a text scale other than 1 (e.g. desktop font scaling or accessibility font sizes) the fitted columns came out too narrow and cut their values off (#428). @doonfrs @nagylzs - Perf: Filtering and number formatting allocate far less per cell. The row filter predicate resolves each condition's column, type and search text once instead of scanning the enabled columns for every cell of every row;
Contains,Equals,StartsWith,EndsWithandRegexreuse their compiledRegExpinstead of compiling one per cell; number-family columns format anumwithout converting it to a string and parsing it back, and reuse the pattern that strips a formatted value. On 150,000 cells (host JIT) an all-columnsContainspredicate over 18 text columns went from 470 ms to 348 ms, currency cell initialization from 164 ms to 142 ms andapplyFormatof anumfrom 81 ms to 45 ms. Results are unchanged. @jan-siroky - Fix: Boolean columns can now be filtered by the text they display. A boolean column stores a raw
boolbut renderstrueText/falseText(Yes/Noby default), while the filter only ever compared againsttrue/false, so typing the visible text matched nothing. Both representations now match, and the rawtrue/falsekeeps working. Reported through #414. @doonfrs @Baghdady92 - Feature: Added opt-in dropdown modes for the column filter row.
TrinaFilterColumnWidgetDelegate.booleanSelect()renders an ALL / true / false dropdown that labels its options with the column'strueText/falseText, and.multiSelect(...)renders a checkbox dropdown with a Select all toggle that re-filters live on every change. Defaults are untouched: a column keeps its text filter unless one of the new delegates is set. The ALL and Select all labels are localizable viaTrinaGridLocaleText.filterAll/filterSelectAll. @Baghdady92 - Fix:
TrinaGridChangeColumnFilterEventcan now replace the filter type of an existing filter row for the column, not just its value, through the newupdateFilterTypeflag. The dropdown filter widgets set it, so a row previously created with another type (e.g. Contains through the filter popup orsetColumnFilter) stops comparing with the old semantics. It defaults to false, so typing in the filter text field still keeps the type the user picked in the filter popup. @Baghdady92 @doonfrs - Feature: Added
TrinaGridConfiguration.fromTheme(context)andTrinaGridStyleConfig.fromTheme/fromColorScheme, deriving the grid colors from the app's MaterialColorSchemeso the grid follows the host theme and its brightness. Opt-in: the existing light and dark palettes are unchanged (#336). @doonfrs @stan-at-work - Fix:
TrinaGridStyleConfig.copyWithno longer dropsrowCheckedColor,rowHoveredColor,enableRowHoverColorandcellDefaultColor. It rebuilt the style through the public light/dark constructors, which do not accept those fields, so any customized value silently reverted to the default. These are now also settable throughcopyWith, along withcellDirtyColor,frozenRowColorandfrozenRowBorderColor. @doonfrs - Fix: The hidden-columns popup now inherits the grid's own configuration instead of rebuilding from a fresh default light or dark one, so custom and theme-derived styles reach it. @doonfrs
- Feature: Added
checkReadOnlytoTrinaRowandTrinaCell, so read-only conditions can be declared per row or per cell instead of only per column. The first callback that is set wins: cell, then row, then column, then the staticTrinaColumn.readOnly(#404). @doonfrs - Feature: Added
stateManager.refreshReadOnly()to re-evaluate the read-only styling of the cells on screen. Read-only enforcement was already live, but the styling is memoized per cell and could go stale when acheckReadOnlycallback depended on state outside its row (#404). @doonfrs - Fix: The record sidebar now honors
checkReadOnly. It only read the staticTrinaColumn.readOnly, so it let users edit fields the grid itself blocked (#404). @doonfrs - Fix:
setRowHeightandresetRowHeightno longer drop the rowmetadatawhen rebuilding the row. @doonfrs - Feature: Added
horizontalScrollPhysicsandverticalScrollPhysicstoTrinaGrid, so each scroll axis can have its ownScrollPhysics. PairverticalScrollPhysics: NeverScrollableScrollPhysics()withfitContent: trueto place a grid inside a scrolling page while keeping its horizontal scrolling (#270). @doonfrs - Fix:
scrollPhysicsnow takes effect when it changes after the grid is built.TrinaScrollBehaviordid not overrideScrollBehavior.shouldNotify, so scrollables kept the physics they resolved on their first build. @doonfrs - Fix:
fitContentnow accounts for the horizontal scrollbar strip, which is a sibling of the rows viewport rather than an overlay. The grid used to come up short by that strip, leaving the rows scrollable by a few pixels. @doonfrs - Fix: Guard the body rows scroll listeners against positions that have clients but have not been laid out yet, which threw a null check error. @doonfrs
- Fix: Keyboard navigation now scrolls all the way to the end of the grid, so the last row and last column are no longer left partially hidden under the scrollbars (#389). @doonfrs
- Fix: Frozen column rows now share the same scroll extent as the body, so Ctrl+End and vertical keyboard navigation reach the last row when frozen columns are visible. @doonfrs
- Docs: The
TrinaGrid.onSelecteddoc comment and the row selection doc now say whenonSelectedfires. The comment said it only worked inTrinaGridMode.select, but it also fires inmultiSelect,selectWithOneTapand the normal mode withTrinaGridSelectingMode.row. Added end to end and widget tests for the normal mode with row selection (#46). @doonfrs
2.3.0 2026. 07. 23 #
- Feature: Added built-in record sidebar with docked and floating modes (#396). @doonfrs
- Feature: Sidebar fields are editable using grid cell editors with shadcn styling (#399). @doonfrs
- Feature: Added
unfocusedSelectionColortoTrinaGridStyleConfigfor visually distinguishing focused vs. unfocused grids in multi-grid layouts (#372). @vasco-feltrin - Enhancement:
unfocusedSelectionColornow also applies to multi-cell selections (not just the current cell), and falls back togridBackgroundColorwhen unset so existing apps see no behavior change. Dark theme ships with a sensible default. @doonfrs - Feature: Made columnAscendingIcon and columnDescendingIcon clickable to trigger sorting (#379) (#380). @itsnotmeman
- Feature: Made scrollbar track-click animation configurable (#277) (#388). @doonfrs
- Feature: Added Hungarian locale (#382). @nagylzs
- Feature: Added column filtering demo screen with lazy pagination and dynamic configuration controls (#387). @doonfrs
- Fix: Arrow keys not working on Linux with NumLock on; all keyboard shortcuts are now NumLock-safe (#381) (#380) (#385). @itsnotmeman @doonfrs
- Fix: Prevent crash when toggling docked sidebar visibility (#398). @doonfrs
- Fix: Make selectWithSearch popup usable with a11y semantics on web (#394) (#395). @doonfrs
- Fix: Decoupled checkbox colors from cell selection colors (#390) (#392). @doonfrs
- Fix: Guard select cell initialValue against type mismatch (#391). @doonfrs
- Fix: Scope column filter rebuilds to filter events (#367) (#386). @doonfrs
- Fix: Include pagination and time picker fields in TrinaGridLocaleText equality (#384). @doonfrs
- Fix: Column header alignment (#301) and scrollbar thumb overflow (#375). @doonfrs
- Fix: Provide default ShadTheme so select popups work without ShadApp (#374). @doonfrs
- Fix: Updated demo for font_awesome_flutter v11 (#397). @doonfrs
- Chore: Updated shadcn_ui dependency to ^0.55.0. @doonfrs
- Test: Cover filter popup ShadTheme path (#376) (#378). @doonfrs
- Test: Updated select cell search tests for the Material TextField search field introduced in #395. @doonfrs
2.2.2 2026. 05. 15 #
- Feature: Added TrinaGrid.fitContent to auto-size grid to its rows (#218). @doonfrs
- Feature: Implemented TrinaDropdownMenu component and cell state with MenuAnchor support (#364). @doonfrs
- Feature: Added per-row & per-cell text style callbacks (#344). @doonfrs
- Feature: Added filterIconWidget property to TrinaGridStyleConfig (#348). @jan-siroky
- Fix: Restore dynamic row height by switching ListView itemExtent to itemExtentBuilder (#365). @doonfrs
- Fix: Prevent contextMenuIcon from initiating column drag in custom titleRenderer (#318). @doonfrs
- Fix: Place vertical scrollbar on trailing edge and unmirror horizontal drag in RTL (#359). @doonfrs
- Fix: Auto-create missing cells when initializing rows so newly appended rows survive hidden-column toggling (#354). @doonfrs
- Fix: Extend horizontal scroll past vertical scrollbar overlay (#355). @doonfrs
- Fix: Filter popup column dropdown shows localized titles (#356). @doonfrs
- Fix: checkReadOnly callback not preventing keyboard-initiated editing (#306). @doonfrs
- Fix: Currency column sorting broken with non-dot-decimal locales (#337). @doonfrs
- Fix: Remove renderer caching to fix stale renders with external state (#338). @doonfrs
- Fix: Use decimal keyboard for numeric column filters (#345). @jan-siroky
- Fix: Use TrinaOptional for filterIconWidget in copyWith to allow null reset (#349). @doonfrs
- Docs: Added CLAUDE.md with project guidance for Claude Code agents (#340). @doonfrs
- Docs: Added llm.txt and llms-full.txt for AI agent discoverability (#339). @doonfrs
2.2.1 2026. 03. 05 #
- Fix: Remove unused import in trina_smooth_list_view.dart. @doonfrs
2.2.0 2026. 03. 05 #
- Feature: Added metadata support for rows, cells, and columns (#300). @JoshTechLee
- Feature: Added TrinaColumnType.custom() for complex object storage (#313). @doonfrs
- Feature: Added updateRowCells helper for batch cell updates (#328). @doonfrs
- Feature: Added customizable column resize widget support (#317). @doonfrs
- Feature: Added Is Empty and Is Not Empty filter types (#297). @doonfrs
- Feature: Added lazy pagination functionality (#285). @doonfrs
- Feature: Accept any Widget as sort icons, not just Icon (#282). @doonfrs
- Feature: Added moveDirection to onBeforeActiveCellChange event (#281). @doonfrs
- Feature: Added TrinaGridColumnHiddenEvent for column visibility changes (#273). @doonfrs
- Feature: Added rowWrapperIsConstantHeight configuration option (#276). @davidlrichmond
- Feature: Added keyboardType support to filter TextFields (#325). @jan-siroky
- Fix: Allow scrollPhysics parameter to take effect in body rows (#329). @doonfrs
- Fix: Row border misalignment with column border (#327). @doonfrs
- Fix: Null-safe cell access in row grouping with hidden columns (#326). @doonfrs
- Fix: Use number format to calculate decimal points (#321). @sschmaljohann
- Fix: Cache fallback cell in row.cells to avoid rebuild churn (#323). @doonfrs
- Fix: Null check crash in WASM when row cell missing for column (#322). @jan-siroky
- Fix: Account for column footer height in scroll calculations (#316). @doonfrs
- Fix: Remove [Selection] debug prints flooding console (#311). @doonfrs
- Fix: Resolve null check error in visibility layout and clamp scroll on layout change (#307). @doonfrs
- Fix: Row moving now works with multiple selected rows (#296). @doonfrs
- Fix: Renderer cache not invalidating when other cells in row change (#295). @doonfrs
- Fix: Prevent crash when TrinaDualGrid onSelected is null (#294). @doonfrs
- Fix: Frozen columns vertical misalignment while scrolling (#293). @doonfrs
- Fix: visibilityLayout breaks left+right frozen columns (#287). @Hakimbhb
- Fix: Migrate Android demo build to AGP 8.9.1, Kotlin 2.1.10, and declarative plugins (#286). @Hakimbhb
- Fix: Resolve all dart analyze warnings. @doonfrs
- Docs: Add row custom data documentation (#292). @doonfrs
2.1.1 2025. 11. 17 #
- Feature: Added scroll physics configuration to TrinaGrid (#262). @doonfrs
- Feature: Added configurable platform-specific separators for copy/paste (#261). @doonfrs
- Feature: Added Mac Cmd key support for cell selection. @doonfrs
- Feature: Added Excel-like cell selection features. @doonfrs
- Feature: Added cancellable onBeforeActiveCellChange event. @doonfrs
- Feature: Added smooth scrolling and scrollbar click-to-jump enhancements. @doonfrs
- Feature: Added click-to-jump functionality to scrollbars. @doonfrs
- Fix: Optimized callback executions with caching (#252) (#265). @doonfrs
- Fix: Account for scrollbar width in column auto-sizing (#266). @doonfrs
- Fix: Initialize all columns when inserting rows to prevent assertion error. @doonfrs
- Fix: Ensure frozen column divider renders correctly in RTL mode. @doonfrs
- Fix: Exit edit mode before selection to enable copy operations. @doonfrs
- Fix: Update outdated test mocks and fix flaky date-time test. @doonfrs
- Fix: Copy/paste with Ctrl+Click multi-select and Mac support. @doonfrs
- Fix: Enable custom renderers for group header cells in row grouping. @doonfrs
- Fix: Apply rowWrapper to frozen column rows. @doonfrs
- Test: Fix outdated test expectations for time cell and pagination. @doonfrs
- Docs: Add comprehensive scrollPhysics documentation and tests (#263). @doonfrs
2.1.0 2025. 09. 30 #
- Feature: Added comprehensive translations for pagination and time picker. @doonfrs
- Feature: Added pagination enhancements with global configuration (#228). @doonfrs
- Feature: Added simplified column filter API methods for programmatic filter management. @doonfrs
- Feature: Enable column filter visibility in TrinaGrid. @doonfrs
- Fix: Include hidden columns when creating new rows (#226). @doonfrs
- Fix: Update sdk, apply standard dart formatting to all file (#222). @doonfrs
- Fix: Pagination theme updates and height accumulation bug (#221). @doonfrs
- Fix: Export TrinaDropdownMenuVariant to make it publicly accessible (#220). @doonfrs
- Fix: Restored mouse scrolling/dragging functionality that was broken since v1.6.11. @doonfrs
- Breaking Change: Enhanced rowWrapper callback to include TrinaRow data parameter and renamed row widget parameter to rowWidget for clarity. @doonfrs
- Refactor: Use polymorphism to build cell widgets (#167). @DMouayad
- Test: Added comprehensive unit tests for column filter functionality (#209). @doonfrs
- Test: Added comprehensive unit tests for rowWrapper functionality. @doonfrs
- Docs: Added documentation for checkReadOnly dynamic cell read-only functionality (#223). @doonfrs
2.0.1 2025. 09. 01 #
- Feature: Enhanced filter color customization system. @doonfrs
- Feature: Added cell-level padding property to TrinaCell. @doonfrs
- Feature: Added validate parameter to changeCellValue method. @doonfrs
- Feature: Added keyboard event handling to TrinaCell. @doonfrs
- Feature: Enhanced TrinaGrid with customizable cell text style. @doonfrs
- Feature: Added cell color functionality to TrinaGrid. @doonfrs
- Enhancement: Added cell field to TrinaGridOnChangedEvent. @doonfrs
- Fix: Preserved horizontal borders for cells with custom background colors. @doonfrs
- Fix: Set default cellReadonlyColor to null to use default cell style. @doonfrs
- Fix: Improved text cell vertical alignment during editing. @doonfrs
- Fix: Reduced multi-line filter icon size to 16px. @doonfrs
- Fix: Improved vertical centering and text styling for edited cells. @doonfrs
- Fix: Enabled onSelected callback to fire in normal mode with comprehensive row selection support. @doonfrs
- Fix: Resolved frozen row alignment issue with dynamic row heights. @doonfrs
- Fix: Improved popup handling in TrinaDateCell. @doonfrs
- Fix: Improved date time cell styling and height adaptation. @doonfrs
- Fix: Prevented cell overflow when both Row checking & drag are enabled. @DMouayad
- Fix: Fixed checkbox overflow in column title. @DMouayad
- Fix: Grid no longer absorbs unregistered shortcuts. @DMouayad
- Fix: Key events now properly ignored when grid doesn't have primary focus. @DMouayad
- Fix: Editing popup no longer shown for readonly cells. @DMouayad
2.0.0 2025. 08. 16 #
- Feature: Added new popup cells editing widget, including TrinaSelectMenu, TrinaTimePicker, and TrinaPopup. @DMouayad
- Feature: Added dynamic row height support. @doonfrs
- Fix: Ensure combined date and time validation in TrinaDateTimeCell. @DMouayad
- Feature: Improved initial value handling for date/time pickers. @DMouayad
- Feature: Enhanced pagination footer with direct page input functionality. @doonfrs
- Feature: Added CustomFooterScreen to demo and home screens. @doonfrs
- Feature: Improved time picker UI with scroll-to-change hint. @DMouayad
- Feature: Added closePopupOnSelection option for date columns. @DMouayad
- Feature: Added examples for select and time column constraints in editing popups. @DMouayad
- Fix: Prevent sorting from being triggered when clicking context menu in custom title. @DMouayad
- Feature: Added loading customization to TrinaLazyPagination. @DMouayad
- Feature: Added custom pagination UI and demo support. @DMouayad
- Fix: Corrected empty cell value handling for date/dateTime columns with custom format. @DMouayad
- Fix: Corrected column title height when enableColumnDrag is false. @DMouayad
- Feature: Added read-only color configuration to TrinaGrid. @doonfrs
1.6.12 2025. 07. 28 #
- Revert Merge cell feature and add it to private branch. ( by @doonfrs )
- Fix 'There may be a logical error statement in the file filtered_list.dart' ( by @doonfrs )
1.6.11 2025. 07. 28 #
- fix: can't start editing while pressing SHIFT key ( by @DMouayad )
- fix: update number formatting in TrinaAggregateColumnFooter ( by @doonfrs )
- fix bug [Bug] Drag&Drop moves selected row but not the dragged row ( by @doonfrs )
- fix bug [Bug] TrinaColumn.formattedValueForType() has to call column types applyFormat() in case TrinaColumnTypeHasFormat implemented by column type. ( by @doonfrs )
- feat: add cell merging functionality ( by @doonfrs )
- fix: column-title background color not applied ( by @DMouayad )
- fix: handle null maxWidth in layout offsets ( by @doonfrs )
- dev: move pluto grid reference into support section ( by @Elia Tolin )
- dev: increase size of Try Live Demo and convert to paragraph "please star" section ( by Elia Tolin)
- fix: unregistered key events do not function when grid in focus ( by @DMouayad)
- fix: Fix empty cell value for date\dateTime columns with custom format (#129) ( by @DMouayad )
1.6.10 2025. 07. 08 #
- fix: show_column_menu in scaled screens ( by @WagDevX )
- Use NumberFormat to format the value of TrinaAggregateColumnFooter ( by @DMouayad )
- fix: discontinued cells vertical border when enableCellBorderHorizontal is false ( by @DMouayad )
- fix: change tracking doesn't work when pasting into a cell ( by @DMouayad )
- fix: change tracking doesn't work when cell initial value is null ( by @DMouayad )
- fix: validation in TrinaColumnTypeDate by using dateFormat instead of DateTime for parsing ( by @DMouayad )
- Add configuration for cell border width ( by @DMouayad )
- fix: column sorting when TrinaColumn.titleRenderer is provided ( by @DMouayad )
- Implement RTL-aware movement for grid navigation ( by @doonfrs )
- Fix column freezing not resorted #110 ( by @DMouayad )
- fix failing tests for cell height in popup grids ( by @DMouayad )
1.6.9 2025. 05. 28 #
- Fix text input bug where the first character is replaced when typing the second character ( by @doonfrs )
- Add enableAutoSelectFirstRow option to automatically select the first row when in selection mode ( by @doonfrs )
- Add TrinaFilterTypeRegex for filtering using regular expressions (#64) ( by @doonfrs )
- Fix row color bug when activatedColor is transparent ( by @doonfrs )
- Add expandAllRowGroups and collapseAllRowGroups methods to TrinaGridStateManager ( by @doonfrs )
- Add expand flag to toggleExpandedRowGroup method ( by @doonfrs )
- Remove Smooth scrolling, it is not ready in the flutter stable version yet ( by @doonfrs )
1.6.8 2025. 04. 15 #
- Fix focus issue when header is a TextField or TextFormField ( by @doonfrs )
- Add RowWrapperScreen to navigation and home screen; update demo with new feature tile ( by @doonfrs )
- Introduce Multi-Items Filter ( by @doonfrs )
- Enhance moving to next row when enter key action is editingAndMoveRight ( by @doonfrs )
- Enhance RTL support by fixing scrollbar positioning and adding RTL scrollbar demo ( by @doonfrs )
1.6.7 2025. 04. 14 #
- Introduce date time column type, add example & documentation ( by @doonfrs )
- Add filterEnterKeyAction to TrinaColumn for controlling keyboard navigation in column filters ( by @doonfrs )
- Update row color example ( by @doonfrs )
- Fix horizontal scrollbar calculation issue for the header & footer ( by @doonfrs )
- Added filterIcon option to TrinaGridStyleConfig ( by @doonfrs )
1.6.6 2025. 03. 22 #
- Fix lazy pagination rebuild issue for simple pagination & refresh
- Add TrinaGridChangeLazyPageEvent ( by @slavap )
- Flutter 3.27 compatibility ( by @slavap )
- Introduce TitleRenderer for customizable column titles ( by @doonfrs )
- Implement custom loading widget support and add Loading Options feature to documentation and demo ( by @doonfrs )
- Introduce Percentage Column Type ( by @doonfrs )
- add decimalInput option to percentage column type ( by @doonfrs )
- fix unit tests, all tests working, remove skipped tests, translate Korean comments to English ( by @doonfrs )
1.6.5 2025. 03. 22 #
- Add PDF export functionality with customizable options
- Introduced PDF export capabilities in the grid export feature, allowing users to export data in PDF format.
- Added options for customizing PDF title, creator, orientation, header and text colors, and styling through a new
TrinaGridExportPdfSettingsclass. - Updated the export dialog to include PDF-specific settings and improved the user interface for selecting columns to export.
- Enhanced documentation to reflect new PDF export features and usage examples.
- Export TrinaColumnTypeHasFormat
1.6.4 2025. 03. 20 #
- Use dynamic for column menu delegate, instead of String, update the documentation
- Add ignoreFixedRows option to CSV, JSON, and PDF exports for better data handling
1.6.3 2025. 03. 20 #
- Fix selected row style
- Include current row with currentSelectedRows list in case of grid selection mode is row.
- add missing arguments to gridConfiguration.copyWith
- Update column menu example allow merging with the default menu
- Simplify the column menu delegate, adding example for removing one of the default menu items
- Add demo for displaying different menu items for specific columns, update the documentation
1.6.2 2025. 03. 19 #
- Enhance Export, fix bug with visible columns
- Change getVisibleColumns to getViewPortVisibleColumns
- Add documentation for view port visible columns, gotoColumn
1.6.1 2025. 03. 19 #
- Fix scrollbar drag performance issue
- Add export service to export grid data to csv, pdf, json
1.6.0 2025. 03. 18 #
- Refactor scrollbars to be more efficient, support more styling & draggable, add example & documentation
- Add filter to the demo screen to make it easier to find a feature demo code.
- Add some gif images to the documentation, document more features
- add onLazyFetchCompleted event
- add initial export service to export grid data to csv, pdf, json ( under development )
- Update the documentation for boolean columns
- Add scrollbar thumb hover color
1.5.3 2025. 03. 17 #
- Implemented functionality to display and customize scrollbars
1.5.2 2025. 03. 17 #
- Introduce Boolean Type Column
1.5.1 2025. 03. 15 #
- Introduce Change Tracking feature
1.5.0 2025. 03. 15 #
Breaking Changes #
- Renamed
editCellWrappertoeditCellRendererfor better semantic clarity - Renamed parameter
editCellWidgettodefaultEditCellWidgetin editCellRenderer function signature
Enhancements #
- Enhanced editCellRenderer to be column-based
- Added focus node parameter to editCellRenderer to allow custom widgets to maintain grid focus control
1.4.16 2025. 03. 12 #
- Enhanced editCellWrapper to be column-based
- Added focus node parameter to editCellWrapper to allow custom widgets to maintain grid focus control
1.4.15 2025. 03. 11 #
- Enhance the pluto grid migration script
- Add more documentation
1.4.14 2025. 03. 11 #
- Added cell validator for plutoColumn & onValidationFailed for TrinaGrid
- updated some docs
1.4.13 2025. 03. 10 #
- Added cell-level renderer support with TrinaCellRenderer
1.4.12 2025. 03. 10 #
- fix incase frozen columns & frozen rows
- Enhance the readme texts
1.4.11 2025. 03. 10 #
- Introducing Frozen Rows
1.4.10 2025. 03. 08 #
- Translate all korean comments & unit tests to english
1.4.9 2025. 03. 06 #
- Added scrollToColumn method
1.4.8 2025. 03. 06 #
- Added getVisibleColumns method & isColumnVisible
1.4.7 2025. 03. 04 #
- Fix pagination bug
1.4.6 2025. 03. 04 #
- Remove Stratagy pattern from the pagination widget and simplify the code
- Add total records
- Enhance the ui of the pagination widget
1.4.5 2025. 03. 01 #
- add initialPageSize to PageSizeDropdownTrinaLazyPaginationStrategy and default pageSizeToMove to 1
- Fix pagination bug
1.4.4 2025. 03. 01 #
- Added pagesize dropdown using strategy pattern
- Upgraded to latest Flutter version
- Used intl any version for compatibility
- Added onClear and clearIcon parameters to filter widgets
- Added filterWidgetDelegate to TrinaColumn
- Added missing filterWidgetBuilder and onFilterSuffixTap parameters
- Updated GitHub Actions tests
- Added optional width parameter to column in TrinaColumnType.select
- Added ability to disable row checkbox under specific conditions
- Fixed issue #105
- Added clear columns filter event
- Added empty screen to homepage
- Added VS Code formatting restrictions
- Fixed unit tests
- Added guard against missing scroll client (when disposed)
- Improved row wrapper implementation
- Changed WidgetBuilder to Widget Function(BuildContext, Widget)
- Enhanced infinity scroll to continue updating if screen not filled
- Fixed homescreen pointing to old package
- Implemented ability to disable row checkbox under conditions
- Added handling for pure checkbox values when disabled
- Added null check to prevent 'Null check operator used on a null value' exception
- Updated intl library to ^0.20.0
- Added onActiveCellChanged event
1.4.3 2024. 10. 23 #
- Added rowWrapper & editCellWrapper for the state manager
- Manually detect doubleTaps on desktop platform to eliminate delay
- Several improvements
- Add TrinaGridRowSelectionCheckBehavior which enables automatically setting the CheckBox values of selected rows
- Add TrinaGridRowSelectionCheckBehavior
- Upgrade packages
1.4.2 2024. 07. 15 #
- add rowWrapper
- Added an option for developers to use either the standard Material DatePicker or a custom datepicker.
- Datepicker - moved isOpenedPopup = true
- Added the ability to add a custom data property at the row level. For example: you can pass data to onSelect or any other onHandler. (not required)
- Upgrade some used package to the latest version.
1.4.1 2024. 05. 15 #
upgrade for flutter 3.22.0
1.4.0 2024. 04. 01 #
- Added onRowEnter, onRowExit callbacks to react on. @coruscant187
- Added logic to change background color of row if hovered. @coruscant187 doonfrs/trina_grid#29
1.3.1 2024. 03. 19 #
- upgrade packages to latest major version
