|
1 | 1 | # Changelog
|
2 | 2 |
|
| 3 | +# Version 3.0 (ALPHA) |
| 4 | + |
| 5 | +Version 3.0 of the Dash-Table expands vastly on the capability of the 2.x table and provides features: |
| 6 | + |
| 7 | + - visually freezing rows and/or columns |
| 8 | + - filtering in either FE or BE, basic filtering UI |
| 9 | + - sorting in either FE or BE, basic sorting UI |
| 10 | + - pagination in either FE or BE, basic pagination UI |
| 11 | + - performance optimizations |
| 12 | + - basic coverage through e2e, integration and unit tests |
| 13 | + |
3 | 14 | ## RC1, RC2, RC3, RC4 (Virtualization, Freeze, Deletable & Editable Columns, Performance)
|
4 | 15 |
|
5 | 16 | ### Virtualization
|
|
189 | 200 |
|
190 | 201 | Sorting arrow will no longer highlight.
|
191 | 202 |
|
192 |
| -## RC23 - Width percentage |
| 203 | +# Version 3.1 (BETA) |
| 204 | + |
| 205 | +Version 3.1 of the Dash-Table builds upon the 3.0 table and solidifies the external facing API of the table |
| 206 | + |
| 207 | + - introducing the notion of derived properties |
| 208 | + |
| 209 | + - virtual and viewport dataframe and indices for more flexibility |
| 210 | + - code refactoring to simplify and improve the existing implementation / prepare for the future |
| 211 | + - documentation of the API and table features |
| 212 | + - additional e2e, integration and unit tests for a more mature development platform |
| 213 | + |
| 214 | +### Derived Properties |
| 215 | + |
| 216 | +Derived properties are new to 3.1 |
| 217 | +They are readonly properties that represent a transform from multiple 'first-class' properties of the component. |
| 218 | + |
| 219 | +For example, derived_viewport_dataframe is a readonly view based on |
| 220 | + f(dataframe, filtering params, sorting params, pagination params) --> derived_viewport_dataframe |
| 221 | + |
| 222 | +Derived properties allow the component to expose complex state that can be useful for a Dash Server developer but without introducing dual states, a situation where multiple properties may represent the same state within the component, making it necessary to reconcile them on each prop update. |
| 223 | + |
| 224 | +## RC1 - Virtual and Viewport Dataframe |
| 225 | + |
| 226 | + - 4 new external facing derived properties and 4 internal facing controlled properties that represent: |
| 227 | + 1. the filtered and sorted dataframe and the indices mapping |
| 228 | + 2. the filtered, sorted and paginated dataframe and the indices mapping |
| 229 | + |
| 230 | + - derived_viewport_dataframe |
| 231 | + - derived_viewport_indices |
| 232 | + - derived_virtual_dataframe |
| 233 | + - derived_virtual_indices |
| 234 | + |
| 235 | + In the event where sorting, filtering or pagination is done on the Dash Server, it is possible that some or all derived dataframes will be equal to the dataframe prop. |
| 236 | + |
| 237 | +## RC2 - Clean up column offsets |
| 238 | + |
| 239 | + - 1 new internal facing derived/controlled property: |
| 240 | + columns: Columns -> columns: VisibleColumns |
| 241 | + Gets rid of conditional processing for hidden columns in the cell and header factories as well as in navigation/selection handlers |
| 242 | + |
| 243 | + - A bunch of offsets were introduced to the table in the previous development cycle (2.x -> 3.0). Turns out these offsets are neither useful or necessary |
| 244 | + - Validate compatibility of filtering, sorting, pagination |
| 245 | + - External facing classes and attributes |
| 246 | + * (ATTRIBUTE) data-dash-column=<columnId> |
193 | 247 |
|
194 |
| - Columns can now accept '%' width, minWidth, maxWidth. |
| 248 | + .dash-cell, |
| 249 | + .dash-header { |
| 250 | + &[data-dash-column='ticker'] { |
| 251 | + // styling |
| 252 | + } |
| 253 | + } |
| 254 | + |
| 255 | + * (CLASS) dash-cell |
| 256 | + * (CLASS) dash-header |
| 257 | + |
| 258 | + * (CLASS) dash-delete-cell |
| 259 | + * (CLASS) dash-delete-header |
| 260 | + * (CLASS) dash-select-cell |
| 261 | + * (CLASS) dash-select-header |
| 262 | + |
| 263 | + * (CLASS) dash-cell-value |
| 264 | + |
| 265 | + * (CLASS) dash-freeze-left |
| 266 | + * (CLASS) dash-freeze-top |
| 267 | + * (CLASS) dash-spreadsheet |
| 268 | + * (CLASS) dash-spreadsheet-container |
| 269 | + * (CLASS) dash-spreadsheet-inner |
| 270 | + |
| 271 | +## RC3 - Miscellaneous fixes for pagination, virtual df and viewport df |
| 272 | + |
| 273 | + Issue: https://github.com/plotly/dash-table/pull/112 |
| 274 | + |
| 275 | +## RC4 - Columns width percentage and default (fit to content) support |
| 276 | + |
| 277 | + * Added prop content_style that takes values 'fit' or 'grow' (Default='fit') |
| 278 | + * Added width percentage support |
| 279 | + * Modified default column behavior from fixed width to 'fit content' |
| 280 | + * Modified width, min-width, max-width interaction on columns |
| 281 | + |
| 282 | +### Width percentage |
| 283 | + |
| 284 | + Columns can now accept '%' width, minWidth, maxWidth |
195 | 285 |
|
196 | 286 | For the percentages to have meaning, the dash-table must be forced to have a width and the content of the dash-table must be forced to grow to fill the available space made available by the container (by default the table is only as big as it needs to be).
|
197 | 287 |
|
198 |
| - Added prop content_style that takes values 'fit' or 'grow' (Default='fit') |
| 288 | + To use percentage-based column widths, add: |
| 289 | + |
| 290 | + * content style |
| 291 | + content_style='grow' |
| 292 | + |
| 293 | + * table style (example) |
| 294 | + table_style=[{ selector: '.dash-spreadsheet', rule: 'width: 100%; max-width: 100%' }] |
| 295 | + |
| 296 | + * column with %-based width |
| 297 | + columns=[{ |
| 298 | + id: 'column', |
| 299 | + width: '40%' |
| 300 | + }] |
| 301 | + |
| 302 | +### Default column width |
| 303 | + |
| 304 | + Columns now default to 'fit to content' when no width is defined |
| 305 | + |
| 306 | + Note: If pagination is used or the dataframe modified, the column width will be re-evaluated on each modification. |
| 307 | + |
| 308 | +### Interaction between width, min-width and max-width |
199 | 309 |
|
200 |
| - 1. Add the prop content_style='grow' to make the table fill its space, this will make sure the % are applied to all the space available. |
201 |
| - 2. Add the following selector (with the proper values) to the table_style prop |
202 |
| - { selector: '.dash-spreadsheet', rule: 'width: 100%; max-width: 100%' } |
| 310 | + Column min-width and max-width do not default to width value is not defined. |
0 commit comments