Changelog
Source:NEWS.md
teal.slice 0.5.1.9015
Enhancements
- Reduced the space of the filter panel by not displaying the “add filters” UI in a separate panel.
- The deprecated parameters
code
andcheck
were removed frominit_filtered_data()
.
teal.slice 0.5.1
CRAN release: 2024-04-30
teal.slice 0.5.0
CRAN release: 2024-02-06
Enhancements
- Simplified
init_filtered_data
to accept a named list of datasets.init_filtered_data
does not currently handle a list containingdataset
,metadata
,datalabel
andcode
.
Breaking changes
-
TealData
object is no longer supported byteal.slice
. -
set_filter_state
no longer accepts a nested list. Useteal_slices()
andteal_slice()
instead. - Renamed
FilteredDataset
subclass that handlesdata.frame
s fromDefaultFilteredDataset
toDataframeFilteredDataset
. Added new classDefaultFilteredDataset
that will store any type of object. Filtering will is not supported.
Miscellaneous
- Specified minimal version of package dependencies.
- Removed storing and restoring of
teal_slices
objects. - Update documentation and code to reflect the changes due to the refactor of
teal.data::JoinKeys
intoteal.data::join_keys
.
teal.slice 0.4.0
New features
- Filter panel API is now based on
teal_slice
andteal_slices
objects. - It is now possible to specify a filter based on an arbitrary logical expression. See
expr
argument inteal_slice
. - It is now possible to limit choices in a single filter card. See
choices
argument inteal_slice
. - It is now possible to initialize the filter panel without the “Add filter variables” panel through
allow_add
inteal_slices
. - It is now possible to set a filter that cannot be removed by the app user. See
anchored
argument inteal_slice
. - It is now possible to set a filter whose selection cannot be changed. See
fixed
argument inteal_slice
. - It is now possible to limit choices within a variable to a single value only. See
multiple
argument inteal_slice
. - Changed appearance of filter cards to a collapsible accordion.
- Replaced
sliderInput
with interactiveplotly
chart to allow the user to zoom in on the variable distribution. - Implemented reactive counts in single filter cards to compare filtered and unfiltered variable distributions. See
count_type
argument inteal_slices
. - Added state history: individual filter states track changes so the user can rewind them or reset the initial state.
Breaking changes
- Setting filters using a list is now deprecated. Use
teal_slices
andteal_slice
instead. - Removed
CDISCFilteredData
andCDISCFilteredDataset
and implementingJoinKeys
handling in their parent classes (FilteredData
andDefaultFilteredDataset
). - Specifying set of filterable columns is done through
include_varnames
andexclude_varnames
inteal_slices
. Specifyingattr(, "filterable")
is hard deprecated. - Removed private fields
$code
and$check
fromFilteredData
class and made appropriate changes to constructor andinit_filtered_data
.
teal.slice 0.3.0
- Examples now use
scda.2022
instead ofscda.2021
. - Transferred data hashing step in
FilteredDataset
toteal
. - Removed constructor of
Queue
class.
New features
- Added a global turn on/off button for the Filter Panel.
- Added ability to collapse Active Filter Display panel.
- Added ability to collapse all filters of an individual dataset.
- Added fixed filter states.
Bug fixes
- Fixed an error where the
RangeFilterState
produced an error when usingbootstrap 4
. - Fixed a bug that caused the range slider to omit values selected by the filter API.
- Fixed a bug where setting incorrect values for Date and Date time ranges caused the app to crash.
Miscellaneous
- Calculation of step in slider for
RangeFilterState
now usescheckmate::test_integerish
instead ofis.integer
. - Updated
init_filtered_data
to take into account the removal ofCDISCTealData
fromteal.data
package. - Added
shinyvalidate
validation for Date and Date time ranges. - Added examples apps for
FilterState
child classes andDFFilterStates
.
teal.slice 0.2.0
New features
- Added
set_filterable_varnames
method toFilteredData
andFilteredDataset
objects so that there is control over which variables can be filtered. - Added support for custom
bslib
bootstrap themes via theteal.bs_theme
option. See theteal
vignetteteal-bs-themses
for more information. - Removed
CDISCFilteredDataset
class and functionality moved toCDISCFilteredData
. - Changed constructor of
FilteredData
to not requireTealData
object. Seehelp(init_filtered_data)
for more details. - The filtered data is now stored in
FilteredData
notFilteredDataset
. - The join keys stored inside
FilteredData
are nowJoinKeys
objects. - Updated
get_filter_state
to return a list of active filter states and an attribute with the character form of the filter states. - Updated the
get_varlabels
method forFilterStates
classes. It now accepts a vector input. - Exported
S3
generic functioninit_filter_states
so that it can be used in other packages. - Added a
FilterPanelAPI
class to encapsulate the API of a filter panel.
Enhancements
- Redesigned the count bars for filter panel check box inputs.
- Redesigned the filter panel input for dates to use
CSS flexbox
. - Update icons to be compatible with Font Awesome 6.
- Updates the
FilteredData
methodget_formatted_filter_state
so it no longer appends empty filters. - Added clearer installation instructions to
README
.
teal.slice 0.1.1
teal.slice 0.1.0
- Initial release of
teal.slice
- a package providing a filter module forteal
applications.
Changes (from behavior when functionality was part of teal
)
Breaking changes
-
default_filter
has been deprecated - uselist()
instead for a default filter.
Bug fixes
- Add counts to filtering categorical variables bar charts in the filtering panel in cases where they were missing.
- Fixed a bug causing an error when both sliders of
RangeFilterState
where put to either end of the allowed range in theUI
.
Miscellaneous
- Added
is_any_filtered
method to allFilterState
classes to detect if selected values actually filters out any data. This is used to decide if an explicit filter statement is added to the call. - The filter panel now displays a helpful message when data has no rows or columns in place of an empty drop down widget.
-
FilteredData
now stores whether its datasets had a reproducibility check or not via two new methods to its class:set_check
andget_check
.