- Chore - Support React 16. #7
- Docs - Fix visibility toggle demo.
- Chore - Bump table-resolver version.
- Docs - Update readme example.
- Chore - Push Reactabular dependencies as direct dependencies over peer ones. This way it's easier to consume the package.
- Bug fix - Do not store selected rows to Table state on selection.
- Feature - Expose
onDragColumnStart
and onDragColumnEnd
at easy.bindColumns
.
- Bug fix - Swap resizableHeader and sorting formatter application order to match the original.
- Feature - Support row dragging. This has been exposed through
onMoveRow({ sourceRowId, targetRowId })
. You are expected to call an algorithm that actually moves the row there. reactabular-dnd
implements these. Note that this works only while there is no sorting or search query in place!
- Bug fix - Inject
className
per row only if it has been defined at onRow
.
- Bug fix - If a column has width set, set
maxWidth
to it as well. #238
- Breaking - The API has been partitioned so that the column definition related functionality is bound separately. This makes it possible to implement nested column functionality on top of it. Consider the example below and see the README for more:
...
render() {
...
const newColumns = easy.bindColumns({
toggleChildrenProps: { className: 'toggle-children' },
sortingColumns,
rows,
idField,
parentField,
props: this.props,
// Handlers
onMoveColumns: this.onMoveColumns,
onSort: this.onSort,
onDragColumn: this.onDragColumn,
onToggleShowingChildren: this.onToggleShowingChildren
})(columns);
...
}
...
- Bug fix - Pass
parentField
to tree.filter
. Now toggling should work.
- Breaking - Push
onMoveColumns
behavior out of table core. Now it doesn't maintain table state at all. As a result you need to implement onMoveColumns
handler like this to make column moving work:
onMoveColumns({ columns, source, target }) {
this.setState({ columns });
}
- Bug fix - Fix
onRow
behavior (match interface with reactabular-table
). #229
- Bug fix - Make sure
idField
prop
works correctly. tree.sort
needed to receive idField
for the logic to work.
- Bug fix - Bump peer version ranges to avoid npm warnings.
- Feature - Add an example showing how to access
scrollTo
.
- Breaking - Expose
idField
and parentField
props
for customizing tree field types. Earlier rowKey
handled idField
but now it has been separated for clarity.
- Breaking - Drop
styles
prop. Use props
instead.
- Feature - Expose
props
prop for customizing props
of the component. This will replace styles
eventually.
- Bug fix - If there are no draggable headers, do not inject
dnd.Header
. This means you don't need to set up React DnD if you aren't using drag and drop functionality. #209
- Breaking - Push children toggle behavior to
onToggleShowingChildren
prop. See the readme for a sample implementation. This makes the implementation more flexible. You can trigger reactabular-tree
collapseAll
and expandAll
over showingChildren
for instance.
- Feature - Accept
toggleChildrenProps
for customization.
- Breaking - Push
onDragColumn
control to user. Earlier it managed widths through CSS (more performant, but also more brittle). The problem with that was that the initial update of a stylesheet could fail (no widths were set). Now widths are controlled by React completely. Note that the API changed to onDragColumn(width, { columnIndex })
.
- Bug fix - Pass
rowKey
to tree.filter
. This way it filters correctly with arbitrary ids.
- Bug fix - Pass
rowKey
to tree.toggleChildren
. This way toggling can work with arbitrary ids.
- Bug fix - Drop redundant
console.log
.
- Feature - Integrate virtualization for extra performance.
- Feature - Integrate
reactabular-tree
. Now it works with tree style data. You should set cell.toggleChildren: true
to show the UI control for toggling row children visibility.
- Feature - If an empty column definition is provided, escape early and avoid showing a warning per row.
- Breaking - Push
sortingColumns
to a prop. You should control its state yourself.
- Feature - Add suggested default styling (
style.css
at package root).
- Feature - Allow
classNames
and styles
props to be passed for styling.
- Bug fix - Force update after mounting. This is needed for the sticky ref scheme to work.
- Feature - Expose
components
. Now you can override default components just like for a regular Table.Provider
. Only exception is header.cell
given drag and drop needs to override that in order to work.
- Feature - Make
selectedRowIdField
prop optional. It worked before due to the default value, but it's neater this way.
- Feature - Expose
headerExtra
prop. It can be used to inject extra rows to a header. This works well with reactabular-search-columns
.
- Feature - Expose
onSort
and sortingColumns
props. These are useful for implementing sorting persistency.
- Feature - Push
reactabular
and reactabular-utils
as peer dependencies. This way you have better control over which versions to consume at your project.
- Feature - Trigger
onMoveColumns
only after moving columns has finished.
- Feature - Expose
selectedRowId
. It defaults to id
, but if your selection logic relies on some other field, you can change it now.
- Bug fix - If a header is set both
sortable
and resizable
, allow custom formatter to used still.
- Feature - Dropped dependency on react-dom.
- Feature - Add sorting numbers to the header so you know in which order sorting rules are applied.
- Feature - Allow column sorting status to be reset by doubleclicking on a column header.
- Feature - Add support for row selection. Capture the selected row through
onSelectRow
.
- Feature - Make
tableWidth
and tableHeight
checks looser. You might want to pass number, string, or something. Perhaps this can be constrained further.
- Bug fix - Include
dist-modules
to the distribution version. preversion
script obviously misses.
- Bug fix - Merge column definition
props.className
correctly. Previously it discarded possible value.
- Feature - Add styling hooks. Now you can attach classes to the table structure (table, thead, tbody).
- Feature - Add
onDragColumn
and onMoveColumns
hooks.
- Feature - Add column visibility to the example.
- Feature - Render
EasyTable
in a fixed viewport.
- Bug fix - Do not re-initialize styles if columns change. Without this CSS resets. I may have to revisit this decision but it seems logical now.
- Feature - Support
draggable
header flag.
- Feature - Resolve nested and
cell.resolve
based data.
- Feature - Support search with highlighting through a
query
prop.