teal 1.0.0
CRAN release: 2025-08-20
Breaking changes
- The
reporter_previewer_module()is deprecated and will be removed in the future release. The customserver_argsvalues can be set usingoptions():-
teal.reporter.nav_buttonsto control which buttons will be displayed in the “Report” drop-down. -
teal.reporter.rmd_outputto customize the R Markdown outputs types for the report. -
teal.reporter.rmd_yaml_argsto customize the widget inputs in the download report modal. -
teal.reporter.global_knitrto customize the globalknitroptions for the report.
-
Enhancement
- Improved the layout and appearance of the app using
bslibcomponents. - General repositioning of key navigation components across the app:
- Modules: The module navigation is moved from a nested tab selection to a “Module” drop-down selection. The module selection can be done from the nested button of modules.
- Reporter: The Report previewer is no longer displayed as yet another teal module, it is placed inside a “Report” drop-down right next to the “Module” drop-down. The Report previewer is a modal that displays the added report cards. The “Report” drop-down also contains other global report options like download/load/reset the Report.
- Teal Data Module: The UI created by the
teal_data_module()is now placed inside a modal that can only be closed when it returnsteal_data.
teal 0.16.0
CRAN release: 2025-02-23
New features
- Possible to call
ui_tealandsrv_tealdirectly in any application by deliveringdataargument as areactivereturningteal_dataobject (#669). - Since introduction of
ui_tealandsrv_tealfunctions, theidargument ininitis being deprecated (#1438). - Introduce
ui_session_infoandsrv_session_infoshiny module to create the user session info and teal app lockfile download button. - Introduced
teal_transform_moduleto provide a way to interactively modify data delivered toteal_module’sserverand to decorate module outputs, along with a vignette to demonstrate its usage (#1228, #1384). - Introduced a new argument
once = FALSEinteal_data_moduleto possibly reload data during a run time. - Possibility to download lockfile to restore app session for reproducibility (#479).
- Datasets which name starts with
.are ignored whenmodule’sdatanamesis set as"all". - Added warning when reserved
datanames, such asalland.raw_dataare being used.
Breaking changes
- Setting
datanames()ondatapassed to teal application no longer has effect. In order to changeteal_module’sdatanamesone should modifymodule$datanames. -
landing_popup_module()is deprecated. Please useadd_landing_modal()function to add a landing popup for your teal application. -
tealno longer re-export%>%. Please loadlibrary(magrittr)instead or use|>frombase. -
build_app_titlewill be removed in the future release. Please use themodify_title()function to change the title for your teal application. - The
title,header, andfooterarguments of theinit()function are deprecated. Please use themodify_title,modify_header, andmodify_footerrespectively.
Enhancement
- Enhanced a system of data validation and a display of error messages.
- Easier way of to call
javascriptevents by setting$(document).ready(function() { ... })(#1114). - Provided progress bar for modules loading and data filtering during teal app startup.
- Filter mapping display has a separate icon in the tab.
- Environment of the
datapassed to theteal_module’s server consists unfiltered datasets contained in.raw_data.
teal 0.15.1
CRAN release: 2024-02-22
teal 0.15.0
CRAN release: 2024-02-08
New features
- Added
landing_popup_modulefunction which creates a module that will display a popup when the app starts. The popup will block access to the app until it is dismissed. - Filter state snapshots can now be uploaded from file. See
?snapshot. - Added
as_tdatafunction to facilitate migration of modules to the newteal_dataclass. - Added
build_app_titlefunction to facilitate adding favicons to app title.
Breaking changes
-
dataargument ininitnow accepts onlyteal_dataandteal_data_module. -
tdatahas been deprecated and replaced withteal_data. Support fortdatapassed to thedataargument inmodule(server)will be removed in the next release. -
module(ui)argument no longer acceptsdataanddatasetsarguments. All data dependent logic should be set in the server function. -
module(server)argument deprecateddatasetsargument.teal_modules’ server functions should acceptdata(teal_data) instead. - Changed the order of formal arguments in
init.filternow comes directly aftermodules, beforetitle.
Miscellaneous
- Enhanced a
modulevalidation checks so that it won’t throw messages aboutdataargument unnecessarily. - Added argument to
teal_slicesand made modifications toinitto enable taggingteal_sliceswith an app id to safely upload snapshots from disk. -
FilteredDatano longer stores pre-processing code in specific slots. Code is now attached as attribute. Adjusted appropriately.
teal 0.14.0
New features
- Enabled module specific filter panel. See
module_specificinteal::teal_slicesdocumentation. - Enabled capturing and resetting application filter state with snapshots. See
?snapshot. - Enabled
reporter_previewer_moduleto customize default values throughsrv_args. - Enabled passing own
reporter_previewer_modulein a list of modules to override default one.
Breaking changes
- Specifying
filterargument inteal::initrequiresteal_slicesobject now. Details in documentation ofteal::init. - Soft deprecated
filtersargument inmoduleand replaced it withdatanames. Details in documentation ofteal::module
teal 0.13.0
Breaking changes
- The use of
datasetsargument inmoduleshas been deprecated and will be removed in a future release. Please usedataargument instead.datais of typetdata; see “Creating custom modules” vignettes and function documentation ofteal::new_tdatafor further details. - Due to deprecation of
chunksinteal.code, thetealframework now uses their replacement (qenv) instead. The documentation intealhas been updated to reflect this and custom modules written withchunksshould be updated to useqenv. - Due to deprecation of
chunksinteal.code,get_rcode,get_rcode_srv, andget_rcode_uihave been removed.
New features
- Added the
validate_inputsfunction that transfers input validation messages to app output. -
modulesargument ofinitacceptsteal_moduletype of object. There is no need to wrap up a single module inmodules()orlist(). - Updated
module_nested_tabsso that only active modules are calculated in atealapp.
Miscellaneous
- Updated examples to use
scda.2022. - Added R session information into a link in the footer of
tealapplications. - Added data hashing step using
rlanginstead ofdigestpackage to calculate the hash (which has been moved fromteal.dataandteal.slice). There is now an explicit hashing check in the reproducible code output. - Removed deprecated functions:
root_modules,default_filter,bookmarkableShinyApp, as well as deprecated logging mechanism, including the functionslog_app_usageand.log. - Updated the “Teal and Bootstrap Themes” vignette to provide more details customizing a
tealapp withbslib::run_with_themer. - Removed outdated diagram from
srv_nested_tabsdocumentation. - Changed default values of
headerandfooterarguments ininitto empty text.
teal 0.12.0
New features
- Added the support for custom
bslibbootstrap themes inteal::initapps, please read more in the newteal-bs-themesvignette.
Enhancements
- Added the option to choose which variables can be filtered in the filter panel by using the
filterableattributes for the per-dataset lists in thefilterargument ofinit. - Updated
teal_moduleto havedataargument which receives a list of reactive filter data with"code"and"join_keys"attributes. - Updated
teal_moduleto havefilter_panel_apiargument which receives aFilterPanelAPIobject. - Updated the internals of
module_tealto reflect changes inteal.slice.
Breaking changes
- Updated
teal_moduleto no longer receivedatasetsobject in the...argument. In order to usedatasetsin theteal_moduleplease specifydatasetsexplicitly. - Deprecated
merge_expressionargument inget_rcode_srvfunction and removed it inget_rcodefunction. - Deprecated
sessionargument inget_rcodefunction.
teal 0.11.1
Enhancements
- Added new function
reporter_previewer_moduleto wrap theteal.reporterpackage previewer functionality as atealmodule. - Updated
tealto supportmoduleswhich include reporting. If anymodulewhich supports reporting is included then areporter_previewer_moduleis included. - Added default arguments to
module()and the server argument is now a function where the second argument can be...ordatasets.
Breaking changes
- Deprecated
bookmarkableShinyApp. In future releases thetealframework will stop supportingshinybookmarking (which has not officially been supported); it may be officially supported in the future. Note the filter panel inteal.sliceretains its ability to save and restore its state if used in a standaloneshinyapp with bookmarking.
teal 0.11.0
-
teal.data: creating and loading the data needed fortealapplications. -
teal.widgets:shinycomponents used withinteal. -
teal.slice: provides a filtering panel to allow filtering of data. -
teal.code: handles reproducibility of outputs. -
teal.transform: standardizes extracting and merging data. -
teal.logger: standardizes logging withintealframework.
The teal package contains the code to create apps (teal::init), to create a module (teal::module) and to group modules in the app (teal::modules). teal depends on teal.transform and teal.data which contain the functions that teal app creators are likely to need. The other package teal only imports from and therefore teal module creators should either fully specify functions from these packages when required or import them into custom packages as library(teal) will not load them.
Breaking changes
-
tealpackage has been split into multiple smaller packages, see above. - Deprecated
root_modulesfunction, users should usemodulesdirectly insideinit. - Due to deprecation of
root_modulesanylabelargument tomodulesmust be explicitly named. For examplemodules("lab", mod1, mod2)should be replaced withmodules(label = "lab", mod1, mod2).
Miscellaneous
- Minor changes to internals of
teal: main module panel now has fixedshinynamerootand the active tab is namedactive_tabnotActive_tab. -
MultiAssayExperimentis now suggested packages, not required. Objects dependent onMultiAssayExperimentare changed to lazy-load this now suggested package.
teal 0.10.1
Breaking changes
- Changed the
HTMLidentifiers oftealmodules - now each nested module receives its ownshinynamespace. - Deprecated all functions related to connectors that have been moved to their own separate packages.
- Removed
raw_dataset,raw_dataset_connector,named_dataset,named_dataset_file,named_dataset_connector,relational_dataset,relational_dataset_file,relational_dataset_connector,key,as_cdisc,as_cdisc_relational. - Removed
rcd_connectionandrcd_data;scda_dataset_connectorscan be passed intocdisc_dataandteal_datadirectly. - Replaced
rcd_dataset_connectorandrcd_cdisc_dataset_connectorwithscda_dataset_connectorandscda_cdisc_dataset_connectorrespectively. - Renamed
teal_show_js_logoption intoteal.show_js_logto match options naming convention. - Removed
%is_in%andstop_shinyinternal utility functions.
New features
Logging
- Added support for logging using the
loggerpackage. - Added a new function
register_logger, which registers a logger in a given namespace. - Added trace and info levels log messages to the
tealframework. - Added
pidandshinysession token into footnote so app developers can identify logs for apps.
Other
Added print methods to the
DatasetConnector,RelationalData,RelationalDataconnectorandJoinKeysclasses and added input validation to the implementation of the print method that was already in theDatasetobject.Added public facing constructor functions for
CDISCDataConnector,RelationalDataConnector, andDataConnectionclasses.Modified
data_extract_specto allow both thefilterandselectparameters to beNULL, which results in thedata_extract_uiacting as if afilter_specwith all variables as possible choices had been supplied as thefilterargument and aselect_specwith themultipleparameter set toTRUEhad been supplied as theselectargument.Added support of the full screen for a
modulewhen thefiltersargument is equalNULL.Added support for
shiny::moduleServerpassed to the server parameter ofteal::module.Added
teal.threshold_slider_vs_checkboxgroupas an R option: if a categorical variable has more than this number of unique values, the filter panel uses a drop-down select input instead of a checkbox group.Extended the
FilteredDataAPI to allow managing filter states programmatically and not only from the UI of atealapplication.Hid the buttons to remove filters from all datasets and each dataset when there are no active filters.
Updated
initto acceptRelationalData,data.frame,MultiAssayExperiment,Dataset,DatasetConnector,listor a function returning a named list as data input.
Bug fixes
-
choices_selectednow correctly removes duplicates from the array passed to itschoicesparameter. - Fixed call returned by
FilterStatein case of usingMultiAssayExperiment::subsetByColData. Now single condition for variable containingNAvalues is!is.na(var) & var == <condition>. - Fixed data loading of
DatasetConnectorbeing dependent on otherDatasetorDatasetConnectorobjects. - Fixed restoring a bookmarked filter state of
tealapplication. - Refactored
module_nested_tabsto fix the issue with the filter panel not reacting to an input change in a nested module. -
updateOptionalSelectInputno longer sets input toNULLwhenlogicalvalue is passed toselected. - Fixed setting
JoinKeyswhen key name between twoDatasetobject differs. - Fixed printing of the
JavaScriptconsole logs to theRconsole whenteal.show_js_log = TRUE.
Miscellaneous
- Soft-deprecate
mae_dataset()in favor of more generaldataset()constructor. - Added a vignette describing the modifications to
tealapplications users can apply usingRoptions. - Added default values to the
labelargument ofselect_specandfilter_spec. - Added validation to
FilteredDataset::get_datato accept logical input only. - Changed references to outdated functions of
teal.develin the documentation. - Introduced a
Tealprefix to all publicR6classes to avoid name collisions with other packages. - Removed dependency on
utils.nestand replaced its functionality intealwith equivalents from thecheckmatepackage and baseR. - Replaced the old
shinyserver functions ofDataConnection,RelationalDataConnector,DatasetConnector, andRelationalDatawith theshiny::moduleServerequivalents. - Running a
tealapplication viaui_teal_with_splashandsrv_teal_with_splashis now no longer recommended because it doesn’t support new features (e.g. logging, bookmarking). Useinitinstead. - Updated the R version requirement to >= 4.0.
- Updated the “filter panel collapse” icon to remove warnings when using
shinyversion >= 1.7. - Removed some of the non-exported, debugging modules.
- Updated the footer tag style to be less visible.
teal 0.10.0
New features
- Allow passing
MultiAssayExperimentto theteal::initusingmae_datasetfunction or through the connectors. - Refactored filter panel to use
MultiAssayExperimentobjects. Filters can be set on a subject level (colDataofMAEobject) and on a experiment level (colDataandrowDataof an assay). - Added
cdse_dataset_connectorto create delayed data objects fromCDSE. - Added
datasetdb_dataset_connectorto create delayed data objects fromDataSetDB. - Added
ricepass_connectionto create delayed data objects fromentimICEviaricepass. - Refactor of the filter panel:
- Simplified setting of initial filter state without need to specify “choices” or “range” named list element depending on the variable class.
-
Datasettype determines an appearance and a functionality of related filters and filters summary. -
Datasetsare passed (by reference) fromDDLtoFilteredDataskipping extracting data and their attributes. - Redesigned variable filter labels in “Active Filter Variables” panel.
- Fully testable server functions.
Bug fixes
- Fixed the bug caused by calling
mutate_datasetmultiple times on the sameDatasetConnectororDatasetobject. - Fixed a bug that caused the output of
get_codefunction to not reproduce its raw data set. - Changed
filter_specto allow no variable selection upon app initialization, where the first possible value was previously selected.
Enhancements
-
modulesparameter ofteal::initfunction can also receive alistexceptroot_modulesfunction call. - Added
splitandmergemethods to theJoinKeysobject. - Added
all_choices()as a possible argument to theselectedparameter offilter_spec,select_specandchoices_selectedindicating that all choices are selected. - The
appendmethod of aCodeClassobject has been modified to print a warning message when the argument does not result in any code being added because it is duplicated. - Implemented delayed functionality to the mutate method of the
DatasetandDatasetConnectorobjects. - Modified
teal_datato return aCDISCDataobject whenever any of its arguments is a type ofCDISCDataobject. - Updated filters to show both levels of a logical variable TRUE/FALSE even if one is missing from the original array.
Miscellaneous
- Updated
LICENCEandREADMEwith new package references. - Added a method
get_hashto theDatasetclass returning the MD5 hash of the object stored inside theDatasetobject. - Replaced
random.cdisc.datawithscdain examples and tests. - Implemented functionality to store
JoinKeysinDatasetandDatasetConnectorclasses. - Added
error_on_lintr: TRUEto.lintr - The pipe operator
%>%is now exported such that downstream code and packages can use it. - Removed hyperlinks to the
ricepackage from the documentation.
teal 0.9.5
Enhancements
- Added informational stop message when using
mutate_datawithRelationalDataConnector. - Modified
as_cdiscto behave similarly tocdisc_datasetwhen called on aDatasetobject. - Changed the displayed format of the data name and the column name in
data_extract_specUI elements. Both are now compressed to<data name>.<column name>if they don’t change during runtime of the app. - Added
ADSAFTTEto the list of recognizedADaMdataset names. - Added another example to
data_extract_spec’s doc string showcasing app users can choose a variable used for filtering in the encoding panel. - Added CSS styling to tool tips in
tealmodules.
teal 0.9.4
Enhancements
- Released
snowflakeconnection and connectors. - Changed ordering of datasets to be more intuitive (topologically first for CDISC datasets only and then according to input datasets order).
- When closing a
tealapp (ending a usershinysession), allDataConnections will now try to close their connections. - Added
ADHYkeys to configuration file. - Extended the
filter_specfunction: the parameterchoicesis no longer mandatory (the function will take all possible choices by default) and thevarsparameter additionally accepts thechoices_selectedand allows to change the variables for filtering using the UI elements in the encoding panel.
teal 0.9.3
New Features
- Support for data-standard independent input and filtering. That includes refactor of the all data and dataset structures together with refactor of
FilteredDataclass. - New
JoinKeysclass (withjoin_keys()constructors andjoin_key()constructor for its elements) to store joining key columns between datasets. - Refactored the most basic
dataset()constructor, addedcdisc_dataset()constructor andas_cdisc()conversion function. - Soft-deprecate removed class constructors and obsolete functions (e.g.
keys()). - Added
get_keys()andset_keys()functions to extract and manipulate datasets primary keys respectively. - Unexported
filtered_data_new,filtered_data_setandfiltered_data_set_filters.
Bug fixes
- Duplicated lines of code passed to
teal::cdisc_datasetand otherteal::RelationalDatasetconstructors should now be shown when getting the code fromteal::cdisc_dataobjects and otherteal::RelationalDataobjects. - Added ability to press “Enter” key without having to set focus to the Submit button for delayed data loading.
- Allow
variable_choicesto use datasets with missing labels. - Fixed bug that ignores input of
NULLtoselectedargument ofselect_specfunction.
teal 0.9.2
New Features
- Added
python_dataset_connectorto create delayed data objects from python scripts or directly from python code. - NOTE:
python_dataset_connectoris not yet ready to be deployed onRSConnectbecause it does not containnumpyandpandas, which arePythonlibraries used inpython_dataset_connector. - Added support for filtering on
DateandDatetimevariables in the Filter Panel. - Added buttons for
dateanddatetimefilter widgets to reset the value to the original. - Added new function
check_key_duplicates, which creates a short summary about rows with duplicated primary key (row numbers and the number of duplicates)
Enhancements
- Fixed lack of labels for
characterandfactorvariables in the Filter Panel. - All variables are now displayed in
module_filter_panel, not only those of typesnumeric,logical,factor,characterandDate - Fixed
mutate_datato accept the whole scope of objects forvars. - Clarified
teal::initfunction documentation to state that customCSSloading code withhtmltools::htmlDependencyshould be included in theheaderargument rather than inside UI arguments of modules. - Enabled empty select field inside
data_extract_spec. - Added new argument
drop_keystofilter_specto decide whether to drop or keep keys columns on single filter on those columns. - Added a new optional argument
keystovariable_choices.keysspecifies the names of the variables, which should have the new key icon shown next to them in the variable drop down menus in the left-hand side encoding panels instead of the icon appropriate for their original R variable type.variable_choicesnow also works withRelationalDatasetandRelationalDatasetConnectorobjects.
teal 0.9.1
- Adds method to resolve nested lists containing delayed data objects, which can be used for
arm_ref_compobjects. - Nested tabs module now has better alignment with the filter panel on the page.
- Allow
widthargument inoptionalSelectInput. - Added
lifecyclebadges to all exported functions. - Added new
code_dataset_connectorandcode_cdisc_dataset_connectorfunctions which enable the creation of new delayed data objects given a string of code. - Added new functions
csv_dataset_connectorandcsv_cdisc_dataset_connector. - Updated
set_ui_inputmethod ofRawDatasetConnectorandNamedDatasetConnectorto handle user definedshinyinputs. - Include
Keep Infcheckbox for numerical filter items.Keep NAandKeep Infcheckbox doesn’t appear if there are no missing or infinite values. - Replace existing
RelationalDataclass with abstract classRelationalDataCollectionand renameRelationalDataListclass asRelationalData. Thedataargument toteal::initis now always aRelationalDataobject. - Added
fun_cdisc_dataset_connectorto enable providing a custom function which returning a dataset. - Removed
codeandscriptarguments fromas_relationalwrapper. This is intended to be done withmutate_datasetfunctionality. -
filerargument ininithas added a validation step to ensure compatibility with the rest of the app. Variables inherited fromADSLhave to be specified only forADSLdataset. - Fixes the issue with connection close code not being present in
get_coderesults. - Fixes the issue of occasional incorrect ordering of bar charts on the filter panel.
- More informative error displayed when
pull_funofDataConnectionproduces an error.
teal 0.9.0
cdisc_datasetanddatasetnow return R6 class objects (RelationalDataset).A new
teal_datafunction to include datasets and connectors intotealapplication.cdisc_datafunction to include datasets and connectors intotealapplication where acheckargument still could be used and other consistency tests are performed.get_raw_datacan be used to derive raw data from R6 objects e.g. (RelationalDataset).RawDatasetConnector,NamedDatasetConnectorandRelationalDatasetConnectorto execute custom function call in order to get data from connection.CodeClassto manage reproducibility of the data and relationships between datasets. Not directly exposed to the public interface.mutate_datasetallows to modify dataset or connector viacodeargument or an R script.mutate_dataallows to change any dataset inRelationalData,RelationalDataConnectororRelationalDataList.New wrapper functions to manipulate
RelationalDatasetConnectorandRelationalDatasetsuch asget_dataset,load_dataset,as_relational.New wrapper functions to manipulate
RelationalDataConnector,RelationalDataandRelationalDataListsuch asget_datasets,load_datasets.choices_labeled,filter_spec,select_spec,data_extract_spec,value_choices,variable_choicesas S3 class applied ondata.frameand also on delayed data.You can no longer modify the
app$datasets, but must instead use argumentfilterin theinitfunction.New modules were created to create a module of nested
tealmodules, then another one that adds the right filter pane to each tab. Theteal::initfunction stays unchanged.The
teal::initfunction now returns a UI function with an optionalidargument. This allows to embed it into other applications. A split view of twotealapplications side-by-side is one such example and shown in a vignette.teal::initwas turned into a wrapper function aroundmodule_teal_with_splash.Rand developers that want to embedtealas ashinymodule should directly work with these functions (ui_teal_with_splashandsrv_teal_with_splash) instead ofteal::init.The
teal::initfunction now has a title parameter to set the title of the browser window.Missing data
NAis now explicitly addressed in the filter panel:NAs are excluded by default and a checkbox to include them was added.Statistics of the data are visually depicted in terms of histograms or bar charts overlayed onto the
shinyinput elements.Added buttons to remove all filters applied to a dataset.
Restored the functionality to hide the filter panel for a module when it was constructed with
filters = NULL.Moved helper functions into
utils.nestand removed unused functionsset_labels_dfandget_labels_df.optionalSelectInputnow allows for grouped choices.
Refactor of FilteredData (for developers)
-
FilteredDatais now fully reactive. Now filtered data is lazy evaluated as per need. This further opens the door to bookmarkingtealapps (bookmarking currently works for the right filtering panel, but we will make this feature more sophisticated in a future release, each module must be reviewed and adapted if it containsreactiveValues). - Datasets and materialized connectors are provided to
FilteredDatabyset_datasets_datafunction located ininit_datasets.Rfile. - Renamed
get_dataset()method toget_data(). - Renamed
get_filter_call()method toget_filter_expr(); returns an expression rather than a list. - Removed argument
isolatefromget_data()method and similar methods. You mustisolateit yourself as needed. If you want to temporarily deactivateshinyerrors due to missing errors, you can setoptions(shiny.suppressMissingContextError = TRUE). In general, avoidisolateas this breaks reactivity. - We added a development module to add several filters at once, e.g. safety filters. This is to be evaluated before it is converted into a proper module and made available to end-users.
teal 0.8.4
- Progress bar for UI creation in delayed loading module.
- Change output of
keysfunction tokeysobject. - Delayed version of
choices_selected. - Fix an error in
choices_selectedwhenselectedis not inchoices. - Fix
pickerInputnot to display column name as label if it’s missing.
teal 0.8.3
- Enable
tealapp to initialize without data. The data are then loaded from within thetealapp. - New classes (
DatasetConnector,DataConnector) to connect to various data sources, including: * connector toriceAPI -rice_dataandrice_dataset_connector* connector toRDSfiles -rds_dataandrds_dataset_connector - Message appears at bottom right of
shinyapp whenshinyis busy to update the views. - Remove
labelsargument ofcdisc_datafunction. Labels should now already be present in the data passed to thecdisc_datafunction. This can be achieved using thevar_relabelfunction.
teal 0.8.2
- Fixed several BUGS in
optionalSelectInputand improved inputs look. - Added
get_data_labelsfunction toFilteredDataclass. - Improved
seppassing withindata_extract_spec.
teal 0.8.0
- Added
cdisc_dataset(and more generaldataset) functions to properly handle dataset keys while merging. - Possibility to load custom
.cssand.jsfiles. - Renamed
columns_spectoselect_spec. - Show number of observations on filter panel.
- Add labeling functions
variable_choicesandvalue_choices.
teal 0.7.0
- Added functions
cdisc_dataandget_codeto deal with preprocessing and moving a step towards data standard independent teal. - Moved
teal.utilsfunctions toteal:log_app_usage,stop_shiny. - Added
*_specfunctions. - Improvements on usage of
PickerInputandSelectInput.
teal 0.6.0
- Removed deprecated functions
tab*. - Removed data generation functions including
generate_sample_data. - Incorporate
shinyjspackage. - Added “Copy R code to clipboard” button.
teal 0.0.5
- Added limit to data_table with scrolling, preventing overlap of UI elements.
- Boolean filtering.
teal 0.0.4
- Bug fix where
tealcrashes when a filter variable gets added that has many decimal places.
teal 0.0.3
- Note version 0.0.3 is not backwards compatible. Reading the changes and studying the example app should, however, clarify most the changes.
Changes
- All
tabsarguments were renamed tomodules. -
tab_itemfunction is now calledmodule. -
tab_itemsfunction is now calledmodules. -
tabsfunction was removed. -
variable_browser_itemis now calledtm_variable_browser. -
data_table_itemis now calledtm_data_table. -
datasetsargument is automatically added to the server functions specified withmodule. Henceteal_datasetshas been removed as aserver_argselement.