- Reduced the space of the filter panel by not displaying the "add filters" UI in a separate panel.
- Fix error while creating the filter choices when the data has a factor with a level containing an empty string ("").
ui_add
andsrv_add
no longer exist as adding new filters is a part ofui_active
andsrv_active
.
- Fix how the filter panel handles NA values in a Date column.
- Fix filtering of
ordered
column to return the right call. - Ensure choices are sorted for
factor
andordered
data types.
- Added
teal_slice
andteal_slices
to package index. - Implement mouse-over behavior for the filter card when it is selected.
- Simplified
init_filtered_data
to accept a named list of datasets.init_filtered_data
does not currently handle a list containingdataset
,metadata
,datalabel
andcode
.
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.
- Performs an exact match when determining the default label of a dataset from attributes.
- 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
.
- 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.
- 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
.
- Examples now use
scda.2022
instead ofscda.2021
. - Transferred data hashing step in
FilteredDataset
toteal
. - Removed constructor of
Queue
class.
- 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.
- Improved filter state presentation in
FilterState$format
.
- 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.
- 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
.
- 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.
- 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
.
- Renamed internal S3 method
get_filterable_varnames
toget_supported_filter_varnames
.
- Fixed a bug when the filter panel overview would not refresh if the panel was hidden during a transition between active modules.
- Fixed a bug in
FilterState
wheresliderInput
step values were too precise.
- Added a formatting function for filter panel classes.
- Added a template to the
pkgdown
site. - Updated package authors.
- Added package vignettes.
- Fixed a bug in
FilteredDataset
, where launching ashiny
application withoutFilteredData
would not attach the appropriate CSS files.
- Initial release of
teal.slice
- a package providing a filter module forteal
applications.
default_filter
has been deprecated - uselist()
instead for a default filter.
- 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
.
- 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
.