Creates filter panel module from teal_data object and returns teal_data. It is build in a way
that filter panel changes and anything what happens before (e.g. module_init_data) is triggering
further reactive events only if something has changed and if the module is visible. Thanks to
this special implementation all modules' data are recalculated only for those modules which are
currently displayed.
ui_filter_data(id)srv_filter_data(id, datasets, active_datanames, data, is_active)
.make_filtered_teal_data(modules, data, datasets = NULL, datanames)
.observe_active_filter_changed(datasets, is_active, active_datanames, data)
.get_filter_expr(datasets, datanames)
A eventReactive containing teal_data containing filtered objects and filter code.
eventReactive triggers only if all conditions are met:
tab is selected (is_active)
when filters are changed (get_filter_expr is different than previous)
(character(1)) shiny module instance id.
(reactive returning FilteredData or NULL)
When datasets is passed from the parent module (srv_teal) then dataset is a singleton
which implies the filter-panel to be "global". When NULL then filter-panel is "module-specific".
(reactive returning character) this module's data names
(reactive returning teal_data)
(teal_modules)
teal_modules object. These are the specific output modules which
will be displayed in the teal application. See modules() and module() for
more details.