Added
[397](https://github.com/plotly/dash-table/pull/397), [#410](https://github.com/plotly/dash-table/pull/410)
- Improve filtering syntax and capabilities
- new field syntax `{myField}`
- short form by-column filter
- implicit column and default operator based on column type
- Text and Any columns default to `contains`
- Numeric columns default to `eq`
- Date columns default to `datestartswith`
- implicit column (e.g `ne "value"` becomes `{my-column} ne "value"`)
- new `contains` relational operator for strings
- new `datestartswith` relational operator for dates
- new `eq` behavior (will attempt to convert and compare numeric values if possible)
- new readonly `derived_filter_structure` prop exposing the query structure in a programmatically friendlier way
[412](https://github.com/plotly/dash-table/pull/412)
- Add support for row IDs, based on the `'id'` attribute of each row of `data`
- IDs will not be displayed unless there is a column with `id='id'`
- `active_cell`, `start_cell`, `end_cell`, and items in `selected_cells` contain row and column IDs: All are now dicts `{'row', 'column', 'row_id' and 'column_id'}` rather than arrays `[row, column]`.
- Added new props mirroring all existing row indices props:
- `selected_row_ids` mirrors `selected_rows`
- `derived_viewport_row_ids` mirrors `derived_viewport_indices`
- `derived_virtual_row_ids` mirrors `derived_virtual_indices`
- `derived_viewport_selected_row_ids` mirrors `derived_viewport_selected_rows`
- `derived_virtual_selected_row_ids` mirrors `derived_virtual_selected_rows`
[424](https://github.com/plotly/dash-table/pull/424)
- Customizable cell borders through `style_**` props
- cell borders now no longer use `box-shadow` and use `border` instead
- Supports CSS shorthands:
border, border_bottom, border_left, border_right, border_top
- style_** props will ignore the following CSS rules:
border_bottom_color, border_bottom_left_radius, border_bottom_right_radius, border_bottom_style, border_bottom_width, border_collapse, border_color, border_corner_shape, border_image_source, border_image_width, border_left_color, border_left_style, border_left_width, border_right_color, border_right_style, border_right_width, border_spacing, border_style, border_top_color, border_top_left_radius, border_top_right_radius, border_top_style, border_top_width, border_width
- Styles priority:
1. Props priority in decreasing order
style_data_conditional
style_data
style_filter_conditional
style_filter
style_header_conditional
style_header
style_cell_conditional
style_cell
2. Within each props, higher index rules win over lower index rules
3. Previously applied styles of equal priority win over later ones (applied top to bottom, left to right)
Changed
[397](https://github.com/plotly/dash-table/pull/397)
- Rename `filtering_settings` to `filter`
[417](https://github.com/plotly/dash-table/pull/417)
- Rename `sorting_settings` to `sort_by`
[412](https://github.com/plotly/dash-table/pull/412)
- `active_cell` and `selected_cells` items are dicts `{'row', 'column', 'row_id' and 'column_id'}` instead of arrays `[row, column]`