Dash and Dash-Renderer
Added
- #1228 Adds control over firing callbacks on page (or layout chunk) load. Individual callbacks can have their initial calls disabled in their definition
@app.callback(..., prevent_initial_call=True)
and similar forapp.clientside_callback
. The app-wide default can also be changed withapp=Dash(prevent_initial_callbacks=True)
, then individual callbacks may disable this behavior. - #1201 New attribute
app.validation_layout
allows you to create a multi-page app withoutsuppress_callback_exceptions=True
or layout function tricks. Set this to a component layout containing the superset of all IDs on all pages in your app. - #1078 Permit usage of arbitrary file extensions for assets within component libraries
Fixed
- #1224 Fixes #1223, a very specific situation in which initial callbacks will not fire.
- #1220 Fixes #1216, a set of related issues about pattern-matching callbacks with
ALL
wildcards in theirOutput
which would fail if no components matched the pattern. - #1212 Fixes #1200 - prior to Dash 1.11, if none of the inputs to a callback were on the page, it was not an error. This was, and is now again, treated as though the callback raised PreventUpdate. The one exception to this is with pattern-matching callbacks, when every Input uses a multi-value wildcard (ALL or ALLSMALLER), and every Output is on the page. In that case the callback fires as usual.
- #1201 Fixes #1193 - prior to Dash 1.11, you could use
flask.has_request_context() == False
inside anapp.layout
function to provide a special layout containing all IDs for validation purposes in a multi-page app. Dash 1.11 broke this when we moved most of this validation into the renderer. This change makes it work again.
Dash-Core-Components
Changed
- #793 Added title key (i.e. HTML
title
attribute) to option dicts indcc.Dropdown
options[]
list property.
Fixed
- #792 Improved the robustness of
dcc.Store
components, fixing #456 whereby persistent storage could become corrupted, and fixing lifecycle issues that prevented addingStore
components to the page after initial loading. - #790 Fixed bug where the dcc.Dropdown dropdown was hidden by the dash_table.DataTable fixed rows and columns.
Updated
- #800
- Upgraded plotly.js to 1.54.1
- Feature release of Plotly.js 1.54.0 which:
- Introduces new drag modes "drawline", "drawrect", "drawcircle", "drawopenpath", "drawclosedpath", adds optional modebar buttons for drawing & removing new shapes inside cartesian subplots, adds newshape and activeshape attributes to layout, and adds editable and fillrule attributes to layout.shapes#4775
- Add angle and allowoverlap attributes to marker of scattermapbox traces#4575, #4794
- Also contains various other fixes
Dash-Table
Added
- #729 Improve conditional styling
style_data_conditional
: Add support forrow_index
andcolumn_id
array of valuesstyle_header_conditional
: Add support forheader_index
andcolumn_id
array of valuesstyle_filter_conditional
: Add support forcolumn_id
array of valuesstyle_cell_conditional
: Add support forcolumn_id
array of valuesstyle_data_conditional
: Add new conditionsstate: 'active'|'selected'
to customize selected and active cell styles
Fixed
- #722 Fix a bug where row height is misaligned when using fixed_columns and/or fixed_rows
- #728 Fix copy/paste on readonly cells
- #724 Fix
active_cell
docstring: clarify optional nature of therow_id
nested prop - #732 Fix a bug where opening a dropdown scrolled the table down its last row
- #731 Fix a bug where
data=None
andcolumns=None
caused the table to throw an error - #766 Sanitize table
id
for stylesheet injection (fixes usage with Pattern-Matching callbacks)
Changed
- #758 Improve error message for invalid filter queries