summer_plugin 1.0.6
summer_plugin: ^1.0.6 copied to clipboard
A high-performance table for Flutter with virtual scrolling, fixed columns and header, sorting, filtering, selection, tree data and grouped headers.
CHANGELOG #
1.0.6 #
- Feature:
SummerDataColumn.headerTooltip— a new field that adds a hover tooltip to header cells (previously declared but never rendered). - Performance: Pre-computed the disabled-row key set in
_buildBodyso each body row no longer callsrowDisablerindividually — cuts O(n)rowDisabler+rowKeycalls per visible row. - Performance: Fixed a double
rowKey(r)call in the select-all header key set (was callingrowKeytwice per row in the set comprehension; now uses a local variable).
1.0.5 #
- Example/docs only: Fixed a layout overflow in the demo footer on narrow viewports — the summary row used a fixed-width spacer that exceeded the available width; it now renders a plain label consistent with the README example. No library or API changes; consumers on 1.0.4 are unaffected.
1.0.4 #
- Performance: Memoized the header select-all key set, the expandable-row flatten list, and the column layout — these were previously O(n) per build and now rebuild only when their inputs actually change. Disabled
addAutomaticKeepAliveson the bodyListView(row data lives in the source, so keep-alive was wasted memory). - Footer / summary row: New
footerwidget property renders a row below the body and above pagination, wrapped with the header background and a top border for visual consistency.
1.0.3 #
- Theme expansion: 8 new theme fields —
iconInactiveColor,controlBorderColor,sortInactiveIcon,paginationActiveColor,paginationHeight,pageButtonSize,fixedColumnShadow,pinnedColumnBackgroundColor,filterResetLabel,filterConfirmLabel. - Sort icon fix (P0):
_sortIndicatornow correctly usessortAscendingIcon/sortDescendingIconfrom the theme instead of hardcoded icons. - Row borders: Body cells now draw a full grid (bottom border added), outer
DecoratedBoxusestop+left+rightto avoid double lines. - Fixed column shadow: Optional
fixedColumnShadowdrawn at pinned-column inner edges when the middle band is horizontally scrollable. - Pagination theming:
paginationActiveColor/paginationHeight/pageButtonSizereplace hardcoded values. - copyWith nullable reset: Sentinel pattern allows resetting nullable fields (e.g.
altRowBackgroundColor,hoverColor) back tonull. - Filter overlay anchoring: Dropdown now follows table scrolls (no longer drifts from its icon).
- i18n: Hardcoded Chinese texts replaced — empty state shows 'No data', filter buttons use configurable
filterResetLabel/filterConfirmLabel(default 'Reset'/'Confirm'). - Column visibility:
SummerDataColumn.visiblecontrols whether a column is rendered. - Selection enhancements: Radio selection can be cancelled by tapping again;
SummerRowSelection.rowDisablersupports per-row disable. - rowKey stability warning: Documentation now warns that the default
rowKeyimplementation returns the row index, which is unstable under row mutations. - Scaffold cleanup: Removed obsolete plugin scaffold files and
plugin_platform_interfacedependency (the package is a pure-Dart component, not a Flutter plugin).
1.0.2 #
Changelog formatting update: rewritten from Chinese to English to improve readability on pub.dev.
1.0.1 #
No functional code changes in this release. The changelog format itself was updated — the previous list-style version entries were rewritten into flowing narrative paragraphs, making it easier to follow the evolution of the component across releases. This is a documentation-only formatting improvement.
1.0.0 #
First stable release. Introduces the core data table component SummerDataTable. Built on a vertical ListView.builder for virtual scrolling and a single horizontal RenderBox for panning, it achieves solid rendering performance and maintainability without a custom paint loop. Ships with a comprehensive set of commonly needed features out of the box:
- Fixed header row and pinned left/right columns
- Single- and multi-column sorting (Shift-click to stack, with priority indicators)
- Column filter dropdowns
- Row selection via checkbox or radio
- Expandable row detail panels
- Column width drag-to-resize
- Text ellipsis with tooltip
- Tree and hierarchical data support
- Grouped (merged) table headers
- Loading, empty, and pagination states
- Theme-based style customization