diff --git a/main/404.html b/main/404.html index 851d5b1c81..f9f0f4beba 100644 --- a/main/404.html +++ b/main/404.html @@ -25,7 +25,7 @@ teal - 0.14.0.9017 + 0.14.0.9018
) ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) }
shiny::runApp
shiny::shinyApp
options("teal.bs_theme" = bslib::bs_theme(version = "5")) diff --git a/main/articles/teal-options.html b/main/articles/teal-options.html index f329a0409a..27e7691491 100644 --- a/main/articles/teal-options.html +++ b/main/articles/teal-options.html @@ -27,7 +27,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -82,16 +82,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/articles/teal.html b/main/articles/teal.html index a333baeefd..e71cdba822 100644 --- a/main/articles/teal.html +++ b/main/articles/teal.html @@ -27,7 +27,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -82,16 +82,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -175,7 +165,7 @@ Your first teal application:) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } As shown in the image above, this application consists of several diff --git a/main/authors.html b/main/authors.html index c9acf0fcf7..184c3e85ea 100644 --- a/main/authors.html +++ b/main/authors.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -171,14 +161,14 @@ Citation Kaledkowski D, Rucki P, Chlebowski A, Kirar K, Kosinski M, Waddell A, Burkoff N, Hallal M, Nasinski M, Pagacz K, Zhao J (2023). teal: Exploratory Web Apps for Analyzing Clinical Trials Data. -R package version 0.14.0.9017, +R package version 0.14.0.9018, https://github.com/insightsengineering/teal/, https://insightsengineering.github.io/teal/. @Manual{, title = {teal: Exploratory Web Apps for Analyzing Clinical Trials Data}, author = {Dawid Kaledkowski and Pawel Rucki and Aleksander Chlebowski and Kartikeya Kirar and Marcin Kosinski and Adrian Waddell and Nikolas Burkoff and Mahmoud Hallal and Maciej Nasinski and Konrad Pagacz and Junlue Zhao}, year = {2023}, - note = {R package version 0.14.0.9017, + note = {R package version 0.14.0.9018, https://github.com/insightsengineering/teal/}, url = {https://insightsengineering.github.io/teal/}, } diff --git a/main/index.html b/main/index.html index 1cb049c59b..33fc317dac 100644 --- a/main/index.html +++ b/main/index.html @@ -33,7 +33,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -88,16 +88,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/news/index.html b/main/news/index.html index b10459e2f2..6d40fa5484 100644 --- a/main/news/index.html +++ b/main/news/index.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -102,21 +92,21 @@ Features -teal 0.14.0.9017 +teal 0.14.0.9018 -New features +New features data argument in init now accepts teal_data and teal_data_module. Added landing_popup_module function 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. -Miscellaneous +Miscellaneous Enhanced a module validation checks so that it won’t throw messages about data argument unnecessarily. Added argument to teal_slices and made modifications to init to enable tagging teal_slices with an app id to safely upload snapshots from disk. -Bug fixes +Bug fixes Removed Report previewer module from mapping matrix display in filter manager. diff --git a/main/pkgdown.yml b/main/pkgdown.yml index 37924925fb..d758e773ec 100644 --- a/main/pkgdown.yml +++ b/main/pkgdown.yml @@ -22,7 +22,7 @@ articles: teal-bs-themes: teal-bs-themes.html teal-options: teal-options.html teal: teal.html -last_built: 2023-11-13T18:36Z +last_built: 2023-11-20T10:52Z urls: reference: https://insightsengineering.github.io/teal/reference article: https://insightsengineering.github.io/teal/articles diff --git a/main/pull_request_template.html b/main/pull_request_template.html index 60374cb446..2b4f0e4e63 100644 --- a/main/pull_request_template.html +++ b/main/pull_request_template.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/TealReportCard.html b/main/reference/TealReportCard.html index 0b76c7a52a..d3c72d3e92 100644 --- a/main/reference/TealReportCard.html +++ b/main/reference/TealReportCard.html @@ -18,7 +18,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -72,16 +72,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/TealSlicesBlock.html b/main/reference/TealSlicesBlock.html index 14285de497..ab1ec3bd23 100644 --- a/main/reference/TealSlicesBlock.html +++ b/main/reference/TealSlicesBlock.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/append_module.html b/main/reference/append_module.html index b0f92f769d..5ad627da85 100644 --- a/main/reference/append_module.html +++ b/main/reference/append_module.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/calculate_hashes.html b/main/reference/calculate_hashes.html index 8a627bb084..86e983b018 100644 --- a/main/reference/calculate_hashes.html +++ b/main/reference/calculate_hashes.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/check_filter_datanames.html b/main/reference/check_filter_datanames.html index 79cbf35865..8ee2b3aa14 100644 --- a/main/reference/check_filter_datanames.html +++ b/main/reference/check_filter_datanames.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/check_modules_datanames.html b/main/reference/check_modules_datanames.html index f676fb33b5..6b2973eb1e 100644 --- a/main/reference/check_modules_datanames.html +++ b/main/reference/check_modules_datanames.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/deep_copy_filter.html b/main/reference/deep_copy_filter.html index 32bcccb6fd..14c83a2d4f 100644 --- a/main/reference/deep_copy_filter.html +++ b/main/reference/deep_copy_filter.html @@ -16,7 +16,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -70,16 +70,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/dot-datasets_to_data.html b/main/reference/dot-datasets_to_data.html index 36d0bf73b3..9a5f102c37 100644 --- a/main/reference/dot-datasets_to_data.html +++ b/main/reference/dot-datasets_to_data.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -136,7 +126,7 @@ Valuelist of reactive datasets with following attributes:code (character) containing datasets reproducible code. -join_keys (JoinKeys) containing relationships between datasets. +join_keys (join_keys) containing relationships between datasets. metadata (list) containing metadata of datasets. diff --git a/main/reference/example_cdisc_data.html b/main/reference/example_cdisc_data.html index df62e9a9f7..fc94ba0fd6 100644 --- a/main/reference/example_cdisc_data.html +++ b/main/reference/example_cdisc_data.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/example_datasets.html b/main/reference/example_datasets.html index 5efc5c6976..49d06cf2a2 100644 --- a/main/reference/example_datasets.html +++ b/main/reference/example_datasets.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/example_module.html b/main/reference/example_module.html index a15e238114..d63d67b5bc 100644 --- a/main/reference/example_module.html +++ b/main/reference/example_module.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/example_modules.html b/main/reference/example_modules.html index b742f28881..dd26b8d257 100644 --- a/main/reference/example_modules.html +++ b/main/reference/example_modules.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/filter_calls_module.html b/main/reference/filter_calls_module.html index 97deb2e2bb..979aa576ce 100644 --- a/main/reference/filter_calls_module.html +++ b/main/reference/filter_calls_module.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -132,7 +122,7 @@ Examples header = "Simple teal app" ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/filter_manager_module_srv.html b/main/reference/filter_manager_module_srv.html index 92c2f0d1fe..dcdb32db33 100644 --- a/main/reference/filter_manager_module_srv.html +++ b/main/reference/filter_manager_module_srv.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_client_timezone.html b/main/reference/get_client_timezone.html index 227590f028..9a25a517dc 100644 --- a/main/reference/get_client_timezone.html +++ b/main/reference/get_client_timezone.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_code_tdata.html b/main/reference/get_code_tdata.html index 7b0a99dd5a..cf6923eb03 100644 --- a/main/reference/get_code_tdata.html +++ b/main/reference/get_code_tdata.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_datasets_code.html b/main/reference/get_datasets_code.html index 6f335fc685..cd624cb471 100644 --- a/main/reference/get_datasets_code.html +++ b/main/reference/get_datasets_code.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_metadata.html b/main/reference/get_metadata.html index 83096814b4..7c595ad648 100644 --- a/main/reference/get_metadata.html +++ b/main/reference/get_metadata.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_rcode_libraries.html b/main/reference/get_rcode_libraries.html index a513d7c1a4..e7c1efdd82 100644 --- a/main/reference/get_rcode_libraries.html +++ b/main/reference/get_rcode_libraries.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_teal_bs_theme.html b/main/reference/get_teal_bs_theme.html index f491d1d889..746a78cbd7 100644 --- a/main/reference/get_teal_bs_theme.html +++ b/main/reference/get_teal_bs_theme.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/include_css_files.html b/main/reference/include_css_files.html index aa6f44caa6..d8952232cf 100644 --- a/main/reference/include_css_files.html +++ b/main/reference/include_css_files.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/include_js_files.html b/main/reference/include_js_files.html index 9b77303936..710c2da9c9 100644 --- a/main/reference/include_js_files.html +++ b/main/reference/include_js_files.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/include_teal_css_js.html b/main/reference/include_teal_css_js.html index d79d708aba..9aacad5e5f 100644 --- a/main/reference/include_teal_css_js.html +++ b/main/reference/include_teal_css_js.html @@ -18,7 +18,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -72,16 +72,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/index.html b/main/reference/index.html index dca010553f..9e8de9afa4 100644 --- a/main/reference/index.html +++ b/main/reference/index.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -243,6 +233,11 @@ Functions for Module Developersshow_rcode_modal() Show R Code Modal + + + join_keys(<tdata>) + + Extract join_keys from tdata Validation Functions diff --git a/main/reference/init.html b/main/reference/init.html index 74050c4ed3..fbb595ed23 100644 --- a/main/reference/init.html +++ b/main/reference/init.html @@ -20,7 +20,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -74,16 +74,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/is_arg_used.html b/main/reference/is_arg_used.html index 3a058311e9..22e6741e34 100644 --- a/main/reference/is_arg_used.html +++ b/main/reference/is_arg_used.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/get_join_keys.html b/main/reference/join_keys.tdata.html similarity index 61% rename from main/reference/get_join_keys.html rename to main/reference/join_keys.tdata.html index 45739eba48..7da2173454 100644 --- a/main/reference/get_join_keys.html +++ b/main/reference/join_keys.tdata.html @@ -1,5 +1,5 @@ -Extract JoinKeys from tdata — get_join_keys.tdata • tealExtract join_keys from tdata — join_keys.tdata • teal @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -97,25 +87,29 @@ Features - Extract JoinKeys from tdata + Extract join_keys from tdata Source: R/tdata.R - get_join_keys.Rd + join_keys.tdata.Rd - Extract JoinKeys from tdata + Extract join_keys from tdata Usage # S3 method for tdata -get_join_keys(data) +join_keys(data, ...) Arguments data -(tdata) object +A tdata object + + +... +Additional arguments (not used) diff --git a/main/reference/landing_popup_module.html b/main/reference/landing_popup_module.html index f8199df875..3ef3cdbf4a 100644 --- a/main/reference/landing_popup_module.html +++ b/main/reference/landing_popup_module.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -160,7 +150,7 @@ Examples example_module() ) ) -#> [INFO] 2023-11-13 18:36:25.4921 pid:992 token:[] teal Initializing landing_popup_module +#> [INFO] 2023-11-20 10:53:08.1345 pid:994 token:[] teal Initializing landing_popup_module #> module "Landing Popup" server function takes no data so "datanames" will be ignored if (interactive()) { shinyApp(app1$ui, app1$server) @@ -186,7 +176,7 @@ Examples example_module() ) ) -#> [INFO] 2023-11-13 18:36:25.5548 pid:992 token:[] teal Initializing landing_popup_module +#> [INFO] 2023-11-20 10:53:08.1896 pid:994 token:[] teal Initializing landing_popup_module #> module "Landing Popup" server function takes no data so "datanames" will be ignored if (interactive()) { diff --git a/main/reference/matrix_to_mapping.html b/main/reference/matrix_to_mapping.html index ed0d504bfb..43fb4ccf07 100644 --- a/main/reference/matrix_to_mapping.html +++ b/main/reference/matrix_to_mapping.html @@ -16,7 +16,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -70,16 +70,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/module.html b/main/reference/module.html index 50933e0184..c3d6eb5af4 100644 --- a/main/reference/module.html +++ b/main/reference/module.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -228,7 +218,7 @@ Examples ) ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/module_filter_manager.html b/main/reference/module_filter_manager.html index adcc964012..e886064c7d 100644 --- a/main/reference/module_filter_manager.html +++ b/main/reference/module_filter_manager.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/module_filter_manager_modal.html b/main/reference/module_filter_manager_modal.html index 9458e2e35f..07aa989434 100644 --- a/main/reference/module_filter_manager_modal.html +++ b/main/reference/module_filter_manager_modal.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -169,7 +159,7 @@ Examples } ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/module_management.html b/main/reference/module_management.html index 25c981c9d3..4bf266cc9c 100644 --- a/main/reference/module_management.html +++ b/main/reference/module_management.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/module_nested_tabs.html b/main/reference/module_nested_tabs.html index b210c94291..88f9a2d524 100644 --- a/main/reference/module_nested_tabs.html +++ b/main/reference/module_nested_tabs.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -238,7 +228,7 @@ Examples } ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/module_tabs_with_filters.html b/main/reference/module_tabs_with_filters.html index f9a210a346..04996dc0ae 100644 --- a/main/reference/module_tabs_with_filters.html +++ b/main/reference/module_tabs_with_filters.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -183,7 +173,7 @@ Examples } ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/module_teal.html b/main/reference/module_teal.html index 34ea4f669a..bc6c890741 100644 --- a/main/reference/module_teal.html +++ b/main/reference/module_teal.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -195,7 +185,7 @@ Examples } ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/modules.html b/main/reference/modules.html index c4c53f183e..96c390a0bd 100644 --- a/main/reference/modules.html +++ b/main/reference/modules.html @@ -18,7 +18,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -72,16 +72,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -206,7 +196,7 @@ Examples ) ) if (interactive()) { - runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/modules_depth.html b/main/reference/modules_depth.html index 33b733aa9a..50a4b11a27 100644 --- a/main/reference/modules_depth.html +++ b/main/reference/modules_depth.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/reexports.html b/main/reference/reexports.html index 3c03686fb4..ecef6d08e5 100644 --- a/main/reference/reexports.html +++ b/main/reference/reexports.html @@ -32,7 +32,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -86,16 +86,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/report_card_template.html b/main/reference/report_card_template.html index 187b39fe9a..6189e1c572 100644 --- a/main/reference/report_card_template.html +++ b/main/reference/report_card_template.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/reporter_previewer_module.html b/main/reference/reporter_previewer_module.html index 0615b4719d..2901f759db 100644 --- a/main/reference/reporter_previewer_module.html +++ b/main/reference/reporter_previewer_module.html @@ -22,7 +22,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -76,16 +76,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/resolve_modules_datanames.html b/main/reference/resolve_modules_datanames.html index d4567b414f..8249da57be 100644 --- a/main/reference/resolve_modules_datanames.html +++ b/main/reference/resolve_modules_datanames.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -125,7 +115,7 @@ Arguments diff --git a/main/reference/run_js_files.html b/main/reference/run_js_files.html index b9a2bbc9c5..adf3ce6b41 100644 --- a/main/reference/run_js_files.html +++ b/main/reference/run_js_files.html @@ -16,7 +16,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -70,16 +70,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/show_rcode_modal.html b/main/reference/show_rcode_modal.html index 8a02e5b7e0..c5cc31099b 100644 --- a/main/reference/show_rcode_modal.html +++ b/main/reference/show_rcode_modal.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/slices_restore.html b/main/reference/slices_restore.html index 90f411aa95..2244b7ce90 100644 --- a/main/reference/slices_restore.html +++ b/main/reference/slices_restore.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/slices_store.html b/main/reference/slices_store.html index bb4d35974e..66507e6a9a 100644 --- a/main/reference/slices_store.html +++ b/main/reference/slices_store.html @@ -16,7 +16,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -70,16 +70,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/snapshot_manager_module.html b/main/reference/snapshot_manager_module.html index eebee756a7..2f83b1f573 100644 --- a/main/reference/snapshot_manager_module.html +++ b/main/reference/snapshot_manager_module.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/srv_teal_with_splash.html b/main/reference/srv_teal_with_splash.html index 570bfa4019..aa809a6791 100644 --- a/main/reference/srv_teal_with_splash.html +++ b/main/reference/srv_teal_with_splash.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/tdata.html b/main/reference/tdata.html index 0289597418..8933814c16 100644 --- a/main/reference/tdata.html +++ b/main/reference/tdata.html @@ -2,13 +2,13 @@ Create a tdata Object — tdata • teal - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -117,7 +107,7 @@ Features Create a new object called tdata which contains data, a reactive list of data.frames (or MultiAssayExperiment), with attributes:code (reactive) containing code used to generate the data -join_keys (JoinKeys) containing the relationships between the data +join_keys (join_keys) containing the relationships between the data metadata (named list) containing any metadata associated with the data frames @@ -145,7 +135,7 @@ Argumentsteal.data::JoinKeys object containing relationships between the +A teal.data::join_keys object containing relationships between the datasets. diff --git a/main/reference/tdata2env.html b/main/reference/tdata2env.html index 9a0e05f247..2a077a7d3c 100644 --- a/main/reference/tdata2env.html +++ b/main/reference/tdata2env.html @@ -14,7 +14,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -68,16 +68,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/teal-package.html b/main/reference/teal-package.html index 7fd2897a6c..c11a6c9e48 100644 --- a/main/reference/teal-package.html +++ b/main/reference/teal-package.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/teal_data_module.html b/main/reference/teal_data_module.html index b93fb8fb5c..fc92a1e349 100644 --- a/main/reference/teal_data_module.html +++ b/main/reference/teal_data_module.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/teal_data_to_filtered_data.html b/main/reference/teal_data_to_filtered_data.html index 95c73d5910..7de09d8205 100644 --- a/main/reference/teal_data_to_filtered_data.html +++ b/main/reference/teal_data_to_filtered_data.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/teal_slices.html b/main/reference/teal_slices.html index 694dc0ad28..39f2da13be 100644 --- a/main/reference/teal_slices.html +++ b/main/reference/teal_slices.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports @@ -229,7 +219,7 @@ Examples#> module "module2" server function takes no data so "datanames" will be ignored if (interactive()) { - shiny::runApp(app) + shinyApp(app$ui, app$server) } diff --git a/main/reference/ui_teal_with_splash.html b/main/reference/ui_teal_with_splash.html index 8a63a55d3d..6550fc7a62 100644 --- a/main/reference/ui_teal_with_splash.html +++ b/main/reference/ui_teal_with_splash.html @@ -24,7 +24,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -78,16 +78,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/unfold_mapping.html b/main/reference/unfold_mapping.html index b6a714345a..bcebf5bb7f 100644 --- a/main/reference/unfold_mapping.html +++ b/main/reference/unfold_mapping.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_has_data.html b/main/reference/validate_has_data.html index 559eaf27f2..27b26f9222 100644 --- a/main/reference/validate_has_data.html +++ b/main/reference/validate_has_data.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_has_elements.html b/main/reference/validate_has_elements.html index 09bd4a020e..166b0ba18e 100644 --- a/main/reference/validate_has_elements.html +++ b/main/reference/validate_has_elements.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_has_variable.html b/main/reference/validate_has_variable.html index e2bba4c891..7fcd25352e 100644 --- a/main/reference/validate_has_variable.html +++ b/main/reference/validate_has_variable.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_in.html b/main/reference/validate_in.html index 9cf7799e92..66cace11cf 100644 --- a/main/reference/validate_in.html +++ b/main/reference/validate_in.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_inputs.html b/main/reference/validate_inputs.html index 446b25e1db..1ef9bd034a 100644 --- a/main/reference/validate_inputs.html +++ b/main/reference/validate_inputs.html @@ -12,7 +12,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -66,16 +66,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_n_levels.html b/main/reference/validate_n_levels.html index 62cb3da118..98c31f67dc 100644 --- a/main/reference/validate_n_levels.html +++ b/main/reference/validate_n_levels.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_no_intersection.html b/main/reference/validate_no_intersection.html index 9f71f83a1b..5bb7137b18 100644 --- a/main/reference/validate_no_intersection.html +++ b/main/reference/validate_no_intersection.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/reference/validate_one_row_per_id.html b/main/reference/validate_one_row_per_id.html index 38ba327176..2f3ce45df4 100644 --- a/main/reference/validate_one_row_per_id.html +++ b/main/reference/validate_one_row_per_id.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018 part of @@ -64,16 +64,6 @@ Features Changelog - - Versions main -latest-tag -v0.14.0 -v0.13.0 -v0.12.0 - Reports diff --git a/main/search.json b/main/search.json index bbb2b3d7f9..1e7a0628d3 100644 --- a/main/search.json +++ b/main/search.json @@ -1 +1 @@ -[{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"members, contributors, leaders pledge make participation community harassment-free experience everyone, regardless age, body size, visible invisible disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, sexual identity orientation. pledge act interact ways contribute open, welcoming, diverse, inclusive, healthy community.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes positive environment community include: Demonstrating empathy kindness toward people respectful differing opinions, viewpoints, experiences Giving gracefully accepting constructive feedback Accepting responsibility apologizing affected mistakes, learning experience Focusing best just us individuals, overall community Examples unacceptable behavior include: use sexualized language imagery, sexual attention advances kind Trolling, insulting derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical email address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"enforcement-responsibilities","dir":"","previous_headings":"","what":"Enforcement Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Community leaders responsible clarifying enforcing standards acceptable behavior take appropriate fair corrective action response behavior deem inappropriate, threatening, offensive, harmful. Community leaders right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, communicate reasons moderation decisions appropriate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within community spaces, also applies individual officially representing community public spaces. Examples representing community include using official e-mail address, posting via official social media account, acting appointed representative online offline event.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported community leaders responsible enforcement [INSERT CONTACT METHOD]. complaints reviewed investigated promptly fairly. community leaders obligated respect privacy security reporter incident.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"enforcement-guidelines","dir":"","previous_headings":"","what":"Enforcement Guidelines","title":"Contributor Covenant Code of Conduct","text":"Community leaders follow Community Impact Guidelines determining consequences action deem violation Code Conduct:","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"id_1-correction","dir":"","previous_headings":"Enforcement Guidelines","what":"1. Correction","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Use inappropriate language behavior deemed unprofessional unwelcome community. Consequence: private, written warning community leaders, providing clarity around nature violation explanation behavior inappropriate. public apology may requested.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"id_2-warning","dir":"","previous_headings":"Enforcement Guidelines","what":"2. Warning","title":"Contributor Covenant Code of Conduct","text":"Community Impact: violation single incident series actions. Consequence: warning consequences continued behavior. interaction people involved, including unsolicited interaction enforcing Code Conduct, specified period time. includes avoiding interactions community spaces well external channels like social media. Violating terms may lead temporary permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"id_3-temporary-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"3. Temporary Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: serious violation community standards, including sustained inappropriate behavior. Consequence: temporary ban sort interaction public communication community specified period time. public private interaction people involved, including unsolicited interaction enforcing Code Conduct, allowed period. Violating terms may lead permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"id_4-permanent-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"4. Permanent Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Demonstrating pattern violation community standards, including sustained inappropriate behavior, harassment individual, aggression toward disparagement classes individuals. Consequence: permanent ban sort public interaction within community.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 2.1, available https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines inspired Mozilla’s code conduct enforcement ladder. answers common questions code conduct, see FAQ https://www.contributor-covenant.org/faq. Translations available https://www.contributor-covenant.org/translations.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contribution Guidelines","title":"Contribution Guidelines","text":"🙏 Thank taking time contribute! input deeply valued, whether issue, pull request, even feedback, regardless size, content scope.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"Contribution Guidelines","text":"👶 Getting started 📔 Code Conduct 🗃 License 📜 Issues 🚩 Pull requests 💻 Coding guidelines 🏆 Recognition model ❓ Questions","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"getting-started","dir":"","previous_headings":"","what":"Getting started","title":"Contribution Guidelines","text":"Please refer project documentation brief introduction. Please also see articles within project documentation additional information.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contribution Guidelines","text":"Code Conduct governs project. Participants contributors expected follow rules outlined therein.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"license","dir":"","previous_headings":"","what":"License","title":"Contribution Guidelines","text":"contributions covered project’s license.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"issues","dir":"","previous_headings":"","what":"Issues","title":"Contribution Guidelines","text":"use GitHub track issues, feature requests, bugs. submitting new issue, please check issue already reported. issue already exists, please upvote existing issue 👍. new feature requests, please elaborate context benefit feature users, developers, relevant personas.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"github-flow","dir":"","previous_headings":"Pull requests","what":"GitHub Flow","title":"Contribution Guidelines","text":"repository uses GitHub Flow model collaboration. submit pull request: Create branch Please see branch naming convention . don’t write access repository, please fork . Make changes Make sure code passes checks imposed GitHub Actions well documented well tested unit tests sufficiently covering changes introduced Create pull request (PR) pull request description, please link relevant issue (), provide detailed description change, include assumptions. Address review comments, Post approval Merge PR write access. Otherwise, reviewer merge PR behalf. Pat back Congratulations! 🎉 now official contributor project! grateful contribution.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"branch-naming-convention","dir":"","previous_headings":"Pull requests","what":"Branch naming convention","title":"Contribution Guidelines","text":"Suppose changes related current issue current project; please name branch follows: _. Please use underscore (_) delimiter word separation. example, 420_fix_ui_bug suitable branch name change resolving UI-related bug reported issue number 420 current project. change affects multiple repositories, please name branches follows: __. example, 69_awesomeproject_fix_spelling_error reference issue 69 reported project awesomeproject aims resolve one spelling errors multiple (likely related) repositories.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"monorepo-and-stageddependencies","dir":"","previous_headings":"Pull requests","what":"monorepo and staged.dependencies","title":"Contribution Guidelines","text":"Sometimes might need change upstream dependent package(s) able submit meaningful change. using staged.dependencies functionality simulate monorepo behavior. dependency configuration already specified project’s staged_dependencies.yaml file. need name feature branches appropriately. exception branch naming convention described . Please refer staged.dependencies package documentation details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"coding-guidelines","dir":"","previous_headings":"","what":"Coding guidelines","title":"Contribution Guidelines","text":"repository follows unified processes standards adopted maintainers ensure software development carried consistently within teams cohesively across repositories.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"style-guide","dir":"","previous_headings":"Coding guidelines","what":"Style guide","title":"Contribution Guidelines","text":"repository follows standard tidyverse style guide uses lintr lint checks. Customized lint configurations available repository’s .lintr file.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"dependency-management","dir":"","previous_headings":"Coding guidelines","what":"Dependency management","title":"Contribution Guidelines","text":"Lightweight right weight. repository follows tinyverse recommedations limiting dependencies minimum.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"dependency-version-management","dir":"","previous_headings":"Coding guidelines","what":"Dependency version management","title":"Contribution Guidelines","text":"code compatible (!) historical versions given dependenct package, required specify minimal version DESCRIPTION file. particular: development version requires (imports) development version another package - required put abc (>= 1.2.3.9000).","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"r--package-versions","dir":"","previous_headings":"Coding guidelines > Recommended development environment & tools","what":"R & package versions","title":"Contribution Guidelines","text":"continuously test packages newest R version along recent dependencies CRAN BioConductor. recommend working environment also set way. can find details R version packages used R CMD check GitHub Action execution log - step prints R sessionInfo(). discover bugs older R versions older set dependencies, please create relevant bug reports.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"pre-commit","dir":"","previous_headings":"Coding guidelines > Recommended development environment & tools","what":"pre-commit","title":"Contribution Guidelines","text":"highly recommend use pre-commit tool combined R hooks pre-commit execute checks committing pushing changes. Pre-commit hooks already available repository’s .pre-commit-config.yaml file.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"recognition-model","dir":"","previous_headings":"","what":"Recognition model","title":"Contribution Guidelines","text":"mentioned previously, contributions deeply valued appreciated. contribution data available part repository insights, recognize significant contribution hence add contributor package authors list, following rules enforced: Minimum 5% lines code authored* (determined git blame query) top 5 contributors terms number commits lines added lines removed* *Excluding auto-generated code, including limited roxygen comments renv.lock files. package maintainer also reserves right adjust criteria recognize contributions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/CONTRIBUTING.html","id":"questions","dir":"","previous_headings":"","what":"Questions","title":"Contribution Guidelines","text":"questions regarding contribution guidelines, please contact package/repository maintainer.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/SECURITY.html","id":"reporting-security-issues","dir":"","previous_headings":"","what":"Reporting Security Issues","title":"Security Policy","text":"believe found security vulnerability repositories organization, please report us coordinated disclosure. Please report security vulnerabilities public GitHub issues, discussions, pull requests. Instead, please send email vulnerability.management[@]roche.com. Please include much information listed can help us better understand resolve issue: type issue (e.g., buffer overflow, SQL injection, cross-site scripting) Full paths source file(s) related manifestation issue location affected source code (tag/branch/commit direct URL) special configuration required reproduce issue Step--step instructions reproduce issue Proof--concept exploit code (possible) Impact issue, including attacker might exploit issue information help us triage report quickly.","code":""},{"path":"https://insightsengineering.github.io/teal/main/SECURITY.html","id":"data-security-standards-dss","dir":"","previous_headings":"","what":"Data Security Standards (DSS)","title":"Security Policy","text":"Please make sure reporting issues form bug, feature, pull request, sensitive information PII, PHI, PCI completely removed text attachments, including pictures videos.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Adding Support for Reporting to Custom Modules","text":"teal package offers integrated reporting feature utilizing teal.reporter package. comprehensive explanation reporting functionality , please refer documentation therein. article intended module developers aims provide guidance enhancing custom teal module automatic reporting feature. enhancement enables users incorporate snapshots module outputs report can reviewed another module automatically provided teal. Thus app user can interact report. responsibilities module developer include: Adding support reporting module. Specifying outputs constitute snapshot module. entire life cycle objects involved creating report configuring module preview report handled teal.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"custom-module","dir":"Articles","previous_headings":"","what":"Custom module","title":"Adding Support for Reporting to Custom Modules","text":"Let us consider example module teal: Using teal, can launch example module following:","code":"library(teal) teal_example_module <- function(label = \"example teal module\") { checkmate::assert_string(label) module( label, server = function(id, data) { checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { output$text <- renderPrint(data[[input$dataname]]()) }) }, ui = function(id, data) { ns <- NS(id) teal.widgets::standard_layout( output = verbatimTextOutput(ns(\"text\")), encoding = selectInput(ns(\"dataname\"), \"Choose a dataset\", choices = names(data)) ) }, datanames = \"all\" ) } app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = teal_example_module() ) if (interactive()) shinyApp(app$ui, app$server)"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"modify-the-declaration-of-the-server-function","dir":"Articles","previous_headings":"Add support for Reporting","what":"Modify the declaration of the server function","title":"Adding Support for Reporting to Custom Modules","text":"first step add additional argument server function declaration - reporter. informs teal module requires reporter, included module called. See : modifications, module now ready launched teal: teal adds another tab application, titled Report previewer. However, visible change module operates appears user add content report module. requires inserting teal.reporter ui server elements module body.","code":"example_module_with_reporting <- function(label = \"example teal module\") { checkmate::assert_string(label) module( label, server = function(id, data, reporter) { checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { output$text <- renderPrint(data[[input$dataname]]()) }) }, ui = function(id, data) { ns <- NS(id) teal.widgets::standard_layout( output = verbatimTextOutput(ns(\"text\")), encoding = selectInput(ns(\"dataname\"), \"Choose a dataset\", choices = names(data)) ) }, datanames = \"all\" ) } app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = example_module_with_reporting() ) if (interactive()) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"insert-ui-and-supporting-shiny-modules-for-adding-report-cards","dir":"Articles","previous_headings":"Add support for Reporting","what":"Insert UI and supporting shiny modules for adding report cards","title":"Adding Support for Reporting to Custom Modules","text":"UI server logic necessary adding cards example_module_with_reporting report provided teal.reporter::simple_reporter_ui teal.reporter::simple_reporter_srv. updated module now ready launched: new piece UI added, buttons clickable. user can now add card report view Report previewer module preview still empty since instructed module put card.","code":"example_module_with_reporting <- function(label = \"example teal module\") { checkmate::assert_string(label) module( label, server = function(id, data, reporter) { checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { teal.reporter::simple_reporter_srv( id = \"reporter\", reporter = reporter, card_fun = function(card) card ) output$text <- renderPrint(data[[input$dataname]]()) }) }, ui = function(id, data) { ns <- NS(id) teal.widgets::standard_layout( output = tagList( teal.reporter::simple_reporter_ui(ns(\"reporter\")), verbatimTextOutput(ns(\"text\")) ), encoding = selectInput(ns(\"dataname\"), \"Choose a dataset\", choices = names(data)) ) }, datanames = \"all\" ) } app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = example_module_with_reporting() ) if (interactive()) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"add-content-to-the-card","dir":"Articles","previous_headings":"Add support for Reporting","what":"Add content to the card","title":"Adding Support for Reporting to Custom Modules","text":"add content card, utilize public API exposed TealReportCard class. teal.reporter::simple_reporter_srv module accepts card_fun argument determines appearance output custom module. ReportCard derivatives allow sequential addition content according order method calls. explore content, can use $get_content method. details, refer documentation TealReportCard teal.reporter::ReportCard. add simple text card modifying card_fun argument passed teal.reporter::simple_reporter_srv. function must return card object, otherwise errors may occur teal. Now, application user can see text added custom_function Report previewer module.","code":"custom_function <- function(card = teal.reporter::ReportCard$new()) { card$append_text(\"This is content from a custom teal module!\") card } example_module_with_reporting <- function(label = \"example teal module\") { checkmate::assert_string(label) module( label, server = function(id, data, reporter) { checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { teal.reporter::simple_reporter_srv(id = \"simpleReporter\", reporter = reporter, card_fun = custom_function) output$text <- renderPrint(data[[input$dataname]]()) }) }, ui = function(id, data) { ns <- NS(id) teal.widgets::standard_layout( output = tagList( teal.reporter::simple_reporter_ui(ns(\"simpleReporter\")), verbatimTextOutput(ns(\"text\")) ), encoding = selectInput(ns(\"dataname\"), \"Choose a dataset\", choices = names(data)) ) }, datanames = \"all\" ) } app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = example_module_with_reporting() ) if (interactive()) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"add-non-text-content-to-the-card","dir":"Articles","previous_headings":"Add support for Reporting","what":"Add non-text content to the card","title":"Adding Support for Reporting to Custom Modules","text":"teal.reporter supports addition tables, charts, . information, explore API teal.reporter::ReportCard learn supported content types.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"tealreportcard","dir":"Articles","previous_headings":"Add support for Reporting","what":"TealReportCard","title":"Adding Support for Reporting to Custom Modules","text":"teal exports TealReportCard class, extends teal.reporter::ReportCard class provides several convenient methods facilitate working teal features like filter panel source code. details, refer documentation TealReportCard. support TealReportCard, function passed teal.reporter::simple_reporter_srv must define default value card, shown : Without definition, API TealReportCard available within function.","code":"custom_function <- function(card = TealReportCard$new()) { # ... some code ... # card }"},{"path":"https://insightsengineering.github.io/teal/main/articles/adding-support-for-reporting.html","id":"example","dir":"Articles","previous_headings":"","what":"Example","title":"Adding Support for Reporting to Custom Modules","text":"conclusion, demonstrated build standard teal app code reproducibility reporter functionalities. Note server function requires filter_panel_api argument filter panel state can added report. final example, incorporated teal.code snippets. teal.code R library offers utilities storing code associating execution environment. allows ReporterCard store code necessary generate table along table . learn teal.code see vignette qenv teal.code.","code":"library(teal) library(teal.reporter) ## example_reporter_module <- function(label = \"Example\") { module( label, server = function(id, data, reporter, filter_panel_api) { with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, \"FilterPanelApi\") checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { dat <- reactive(data[[input$dataname]]()) output$nrow_ui <- renderUI({ sliderInput(session$ns(\"nrow\"), \"Number of rows:\", 1, nrow(data[[input$dataname]]()), 10) }) table_q <- reactive({ req(input$nrow) teal.code::new_qenv(tdata2env(data), code = get_code(data)) %>% teal.code::eval_code( substitute( result <- head(data, nrows), list( data = as.name(input$dataname), nrows = input$nrow ) ) ) }) output$table <- renderTable(table_q()[[\"result\"]]) ### REPORTER card_fun <- function(card = ReportCard$new(), comment) { card$set_name(\"Table Module\") card$append_text(paste(\"Selected dataset\", input$dataname), \"header2\") card$append_text(\"Selected Filters\", \"header3\") if (with_filter) { card$append_text(filter_panel_api$get_filter_state(), \"verbatim\") } card$append_text(\"Encoding\", \"header3\") card$append_text( yaml::as.yaml( stats::setNames(lapply(c(\"dataname\", \"nrow\"), function(x) input[[x]]), c(\"dataname\", \"nrow\")) ), \"verbatim\" ) card$append_text(\"Module Table\", \"header3\") card$append_table(table_q()[[\"result\"]]) card$append_text(\"Show R Code\", \"header3\") card$append_text(paste(teal.code::get_code(table_q()), collapse = \"\\n\"), \"verbatim\") if (!comment == \"\") { card$append_text(\"Comment\", \"header3\") card$append_text(comment) } card } teal.reporter::add_card_button_srv(\"addReportCard\", reporter = reporter, card_fun = card_fun) teal.reporter::download_report_button_srv(\"downloadButton\", reporter = reporter) teal.reporter::reset_report_button_srv(\"resetButton\", reporter) ### }) }, ui = function(id, data) { ns <- NS(id) teal.widgets::standard_layout( output = tableOutput(ns(\"table\")), encoding = tagList( div( teal.reporter::add_card_button_ui(ns(\"addReportCard\")), teal.reporter::download_report_button_ui(ns(\"downloadButton\")), teal.reporter::reset_report_button_ui(ns(\"resetButton\")) ), selectInput(ns(\"dataname\"), \"Choose a dataset\", choices = names(data)), uiOutput(ns(\"nrow_ui\")) ) ) }, datanames = \"all\" ) } app <- init( data = teal_data( AIR = airquality, IRI = iris, code = \"data(airquality) AIR <- airquality data(iris) IRIS <- iris\" ), modules = list( example_reporter_module(label = \"with Reporter\"), example_module(label = \"without Reporter\") ), filter = teal_slices(teal_slice(dataname = \"AIR\", varname = \"Month\", selected = c(5, 5))), header = \"Example teal app with reporter\" ) if (interactive()) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/actors.html","id":"teal-app-developer","dir":"Articles > Blueprint","previous_headings":"","what":"teal App Developer","title":"Actors","text":"primary responsibility teal app developer leverage available building blocks teal framework create functional teal app analyses data. expedite app creation process, developers can take advantage pre-existing teal modules found R packages like teal.modules.general teal.modules.clinical. modules designed focus standardization versatility, making suitable wide range use cases. developing teal app, developer select appropriate teal modules integrate app’s interface ensure seamless usability end-users. learn existing modules, visit teal.gallery contains several demo applications source code.","code":"%% This is a mermaid diagram, if you see this the plot failed to render. Sorry. graph LR A[teal App Developer]--utilizes--> B[teal modules] B--to create--> C[teal app] D[app user]--uses--> C style A fill:lightblue style C fill:gold style D fill:pink"},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/actors.html","id":"teal-module-developer","dir":"Articles > Blueprint","previous_headings":"","what":"teal Module Developer","title":"Actors","text":"main duty teal module developer construct compatible teal module can utilized within teal framework. Several factors influence scope requirements building teal module. creating reusable teal module, ’s advisable focus making general adaptable feasible maximize possibilities re-used future. However, developers freedom create teal module customized suit specific demands project. Ultimately, one teal modules employed construct teal app. learn creating custom modules follow Tutorial Creating Custom Module.","code":"%% This is a mermaid diagram, if you see this the plot failed to render. Sorry. graph LR A[Teal App Developer]--utilizes--> B[teal modules] E[Teal Module Developer]--develops--> B B--to create--> C[teal app] D[app user]--uses--> C style A fill:lightblue style E fill:lightgreen style D fill:pink style C fill:gold"},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/actors.html","id":"workflow-in-a-clinical-trial-study","dir":"Articles > Blueprint","previous_headings":"","what":"Workflow in a Clinical Trial Study","title":"Actors","text":"clinical trial study setting, unique study teal app developer assigned study team accountable developing tailored teal app respective study. study teal app developer initially leverage existing teal modules R packages created teal module developers. cases need create new modules tailored study, study teal module developer need involved. Upon completion, study team designated teal app tailored specific study.","code":"%% This is a mermaid diagram, if you see this the plot failed to render. Sorry. %%| fig-width: 7.5 graph LR subgraph Study B A2[Study Teal App Developer]--utilizes--> B2[teal modules] E2[Study Teal Module Developer]-.develops.-> B2 B2--to create--> C2[study teal app] D2[study app user]--uses--> C2 end E3[Teal Module Developer]--develops--> B E3--develops-->B2 subgraph Study A A[Study Teal App Developer]--utilizes--> B[teal modules] E[Study Teal Module Developer]-.develops.-> B B--to create--> C[study teal app] D[study app user]--uses--> C end style A fill:lightblue style A2 fill:lightblue style E fill:limegreen style E2 fill:limegreen style E3 fill:lightgreen style D fill:pink style D2 fill:pink style C fill:gold style C2 fill:gold"},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/ddl.html","id":"introduction","dir":"Articles > Blueprint","previous_headings":"","what":"Introduction","title":"Delayed Data Loading (DDL)","text":"teal framework introduced Delayed Data Loading mechanism enhance user experience reading loading data app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/ddl.html","id":"background","dir":"Articles > Blueprint","previous_headings":"","what":"Background","title":"Delayed Data Loading (DDL)","text":"Usually, running shiny app, dataset must immediately available session processing reading. However, data stored externally (database data repository), loading shiny app may delayed data needs fetched first. additional data processing code, may extend loading process. address , created Delayed Data Loading mechanism. Learn use .","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/ddl.html","id":"what-is-delayed-data-loading","dir":"Articles > Blueprint","previous_headings":"","what":"What is Delayed Data Loading?","title":"Delayed Data Loading (DDL)","text":"Delayed Data Loading R object managed teal.data, stores instructions obtain data, including read process used teal. adopting approach, teal apps can load quickly, data can fetched app loaded.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/ddl.html","id":"splash-screen","dir":"Articles > Blueprint","previous_headings":"","what":"Splash Screen","title":"Delayed Data Loading (DDL)","text":"teal provides comprehensive solution managing delayed data loading mechanism, includes incorporation splash screen. splash screen serves visual cue user data loaded wait app ready. Moreover, splash screen can modified query user password access credentials needed fetch data. cases modified splash screen used, teal display customized version prompt user necessary information. data fetched loaded, teal removes splash screen replaces content corresponding teal modules. teal also displays notification indicating data loaded, app fully started .","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/ddl.html","id":"additional-resources","dir":"Articles > Blueprint","previous_headings":"","what":"Additional resources","title":"Delayed Data Loading (DDL)","text":"vignettes teal.data documentation provide basic advanced examples feature. Pre-processing Delayed Data Using Delayed Data Loading (basic) Creating Delayed Data Classes (Advanced) Testing Delayed Data Loading","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/filter_panel.html","id":"introduction","dir":"Articles > Blueprint","previous_headings":"","what":"Introduction","title":"Filter Panel","text":"teal.slice package provides teal applications filter panel, powerful tool exploring analyzing data, key component teal framework. One great things filter panel comes built-teal, requiring programming knowledge use. filter panel provides convenient way users subset data, simplifying process exploration comprehension. Moreover, users can activate deactivate filter states interactively, either individually globally, using filter panel.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/filter_panel.html","id":"filter-flow","dir":"Articles > Blueprint","previous_headings":"","what":"Filter Flow","title":"Filter Panel","text":"filter panel creates subsets data. Subsetting achieved creating filter states, holds logical predicate (filter condition) applied single variables. filter conditions composed single expression, call particular function (e.g. dplyr::filter), expression evaluated create filtered data subset. process entirely interactive. Filter states can created, removed, changed , however, app developer may choose constrain even restrict . filter state created, filter panel generates filter card shiny inputs appropriate type variable, e.g. range selectors numeric columns sets checkboxes dropdown menus categorical ones. users interact filter cards, subsetting complete expression updated filtered data recomputed. filtered data passed teal modules downstream analysis. subsetting expression returned along data, ensuring unbroken track record entire analysis. Signature data also stored ensure reproducible results.","code":"%% This is a mermaid diagram, if you see this the plot failed to render. Sorry. sequenceDiagram autonumber data->teal.slice: processed by teal.slice->>shiny inputs: creates Note over teal.slice,shiny inputs: based on data type shiny inputs->>reactive dataset: updates reactive dataset->>teal modules: processed by"},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/module_encapsulation.html","id":"introduction","dir":"Articles > Blueprint","previous_headings":"","what":"Introduction","title":"Module Encapsulation","text":"teal framework leverages shiny module concept enable encapsulation analytical actions teal modules, maintaining seamless communication modules application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/module_encapsulation.html","id":"benefits","dir":"Articles > Blueprint","previous_headings":"","what":"Benefits","title":"Module Encapsulation","text":"implementing modular app technique shiny module creation teal module, several benefits realized: Streamlined maintenance development teal module becomes manageable, can function independently teal framework. separation allows developers maintain module ease. approach successfully applied R packages dedicated teal module development, teal.modules.general teal.modules.clinical. Enhanced focus outputteal module developers can concentrate solely refining parameters encoding, output aspects (data summarization visualization) without need concern intricacies teal framework. developed correctly, module seamlessly integrates teal. Facilitated Collaborationteal module development becomes accessible entry point developers interested collaborating. approach encourages user collaboration improvement teal modules, developers gain deeper understanding mechanics teal framework.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/products_map.html","id":"why-so-many-r-packages","dir":"Articles > Blueprint","previous_headings":"","what":"Why so many R packages?","title":"Products Map","text":"breaking teal features, modules, calculations dedicated R packages, maintenance made significantly manageable. Additionally, separation allows clear distinction various roles actors involved development teal. learn different roles/actors teal development, visit Actors.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/qenv.html","id":"introduction","dir":"Articles > Blueprint","previous_headings":"","what":"Introduction","title":"`qenv`","text":"Reproducibility paramount pharmaceutical industry. Accurate consistent results essential ensure high-quality research safety patients. prioritizing reproducibility, researchers can validate methods, confirm findings, contribute advancement field. qenv essential feature provided teal.code package facilitates code reproducibility. class stores data code, enables tracking analytical process, thus allows sharing replication R code. Code passed qenv object, evaluated specific environment stored, can retrieved request.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/qenv.html","id":"qenv-in-a-teal-application","dir":"Articles > Blueprint","previous_headings":"","what":"qenv in a teal application","title":"`qenv`","text":"teal application, qenv object created module developer module’s server function. data operations R code appended stored within qenv’s environment, allows code evaluated executed teal application, reproduced outside teal application. includes data loading, preprocessing, filtering, transformations, plotting, etc. qenv object makes easy users reproduce validate results analyses. Learn use qenv teal custom module vignette.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/blueprint/qenv.html","id":"show-r-code-and-reporter","dir":"Articles > Blueprint","previous_headings":"","what":"Show R Code and Reporter","title":"`qenv`","text":"teal.modules.clinical teal.modules.general R packages, ’ll find modules include convenient Show R Codebutton. button clicked, modal window appears, revealing R code responsible generating module’s output. functionality achieved inspecting qenv object, contains stored code. Show R Code button, users can now easily copy independently run code reproduce analysis presented teal module. Reporter feature also leverages qenv object operation. Much like Show R Code mechanism, code displayed Reporter Card extracted qenv object. learn Reporter feature, please visit teal.reporter documentation. Overall, qenv teal.code powerful tool ensuring code reproducibility promoting high-quality research R programming language.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/creating-custom-modules.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Creating Custom Modules","text":"teal framework provides large number analysis modules incorporated teal applications. However, also possible create modules using module function. implementation simple module: can added teal apps using example_module(label = \"Label tab\").","code":"library(teal) example_module <- function(label = \"example teal module\") { checkmate::assert_string(label) module( label, server = function(id, data) { checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { output$text <- renderPrint(data[[input$dataname]]()) }) }, ui = function(id, data) { ns <- NS(id) teal.widgets::standard_layout( output = verbatimTextOutput(ns(\"text\")), encoding = selectInput(ns(\"dataname\"), \"Choose a dataset\", choices = names(data)) ) }, datanames = \"all\" ) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/creating-custom-modules.html","id":"ui-function","dir":"Articles","previous_headings":"Components of a module","what":"UI function","title":"Creating Custom Modules","text":"function contains UI required module. function least arguments id. can also contain argument data access application data. See server section details. UI function can contain standard UI components alongside additional widgets provided teal.widgets package. example using standard_layout function teal.widgets generates layout including encoding panel left main output covering rest module’s UI.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/creating-custom-modules.html","id":"server-function","dir":"Articles","previous_headings":"Components of a module","what":"Server function","title":"Creating Custom Modules","text":"function contains shiny server logic module form: used inside teal application called init, data argument named list reactive data.frames containing data filtered filter panel. tdata type can created using new_tdata function.","code":"function(id, data, # optional, use if you want your module to access the application data filter_panel_api, # optional, use if you want access to the filter panel from your module see teal.slice reporter, # optional, use if your module supports reporting, see reporting vignette in teal ...) { moduleServer(id, function(input, output, session) { # module code here }) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/creating-custom-modules.html","id":"a-more-complicated-example","dir":"Articles","previous_headings":"","what":"A More Complicated Example","title":"Creating Custom Modules","text":"teal framework also provides: way create modules generate R code needed reproduce outputs; modules use teal.code package. way extract merge related datasets using teal.transform package. way allow app creators customize modules also using teal.transform. annotated example demonstrates features within simple histogram module, allowing app developers choose data columns app users can select display histogram. See package function documentation details. example teal application using module shown :","code":"library(teal) # ui function for the module # histogram_var is a teal.transform::data_extract_spec object # specifying which columns of which datasets users can choose ui_histogram_example <- function(id, histogram_var) { ns <- NS(id) teal.widgets::standard_layout( output = plotOutput(ns(\"plot\")), encoding = div( teal.transform::data_extract_ui( id = ns(\"histogram_var\"), label = \"Variable\", data_extract_spec = histogram_var ) ), # we have a show R code button to show the code needed # to generate the histogram forms = teal.widgets::verbatim_popup_ui(ns(\"rcode\"), \"Show R code\") ) } # server function for the module # histogram_var is a teal.transform::data_extract_spec object # specifying which columns of which datasets users can choose srv_histogram_example <- function(id, data, histogram_var) { checkmate::assert_class(data, \"tdata\") moduleServer(id, function(input, output, session) { # get the selected dataset and column from the UI extracted <- teal.transform::data_extract_srv( id = \"histogram_var\", datasets = data, data_extract_spec = histogram_var, join_keys = get_join_keys(data) ) dataname <- reactive(extracted()$dataname) selected <- reactive(extracted()$select) # the reactive which adds the code to plot the histogram into the qenv plot_code_q <- reactive({ validate(need(length(selected) == 1, \"Please select a variable\")) # take the filtered data from the data object and add it into the qenv environment teal.code::new_qenv(tdata2env(data), code = get_code_tdata(data)) %>% teal.code::eval_code( substitute( expr = p <- hist(dataname[, selected]), env = list( dataname = as.name(dataname()), selected = selected() ) ) ) }) # shiny component to view output$plot <- renderPlot({ plot_code_q()[[\"p\"]] }) # Show the R code when user clicks 'Show R Code' button teal.widgets::verbatim_popup_srv( id = \"rcode\", verbatim_content = reactive(teal.code::get_code(plot_code_q())), title = \"R Code\" ) }) } # the function which creates the teal module for users tm_histogram_example <- function(label, histogram_var) { checkmate::assert_character(label) checkmate::assert_class(histogram_var, \"data_extract_spec\") module( label = label, server = srv_histogram_example, ui = ui_histogram_example, ui_args = list(histogram_var = histogram_var), server_args = list(histogram_var = histogram_var), datanames = \"all\" ) } library(teal) app <- init( data = teal_data( IRIS = iris, code = \"IRIS <- iris\" ), modules = tm_histogram_example( label = \"Simple Module\", histogram_var = data_extract_spec( dataname = \"IRIS\", select = select_spec( choices = c(\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\") ) ) ), header = \"Simple app with custom histogram module\" ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/creating-custom-modules.html","id":"shiny-input-cycle","dir":"Articles","previous_headings":"","what":"shiny input cycle","title":"Creating Custom Modules","text":"teal modules run inside init initial shiny input cycle empty . practice, means inputs might initialized NULL value, unnecessary triggering observers. developer aware situation often require shiny::req ignoreInit argument observers reactive expressions. side effect caused shiny::insertUI function. aware inconvenience already started look solution.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/creating-custom-modules.html","id":"adding-reporting-to-a-module","dir":"Articles","previous_headings":"","what":"Adding reporting to a module","title":"Creating Custom Modules","text":"Refer vignette(\"adding_support_for_reporting\") read adding support reporting teal module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/data-as-shiny-module.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Data as shiny Module","text":"Proper functioning teal application requires presence teal_data object. Typically, teal_data object created global environment passed data argument init. teal_data object contain elements necessary successful execution application’s modules. scenarios, however, application developers may opt postpone data operations application run time. can done passing special shiny module data argument. teal_data_module function used build module following components: ui function; accepts one argument, id; defines user interface elements data module server function: accepts one argument, id; defines server logic data module, including data creation; must return reactive expression containing teal_data object teal run module application starts resulting teal_data object used throughout teal (analytic) modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/data-as-shiny-module.html","id":"creating-data-in-app","dir":"Articles","previous_headings":"","what":"Creating Data In-App","title":"Data as shiny Module","text":"One case postponing data operations data sets dynamic, frequently updated. data created kept global environment. Using teal_data_module allows create data set scratch every time user starts application.","code":"library(teal) data_mod <- teal_data_module( ui = function(id) div(), server = function(id) { moduleServer(id, function(input, output, session) { reactive({ data <- within( teal_data(), { dataset1 <- iris dataset2 <- mtcars } ) datanames(data) <- c(\"dataset1\", \"dataset2\") data }) }) } ) app <- init( data = data_mod, module = example_module() ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/data-as-shiny-module.html","id":"modification-data-in-app","dir":"Articles","previous_headings":"","what":"Modification Data In-App","title":"Data as shiny Module","text":"Another reason postpone data operations allow application user act preprocessing stage. initial, constant form data can created global environment modified app starts. following example illustrates teal_data_module can utilized subset data based user inputs: See ?within.qenv detailed explanation use within method. Note running preprocessing code module opposed global environment increase app loading times. recommended keep constant code global environment move dynamic parts data module.","code":"data <- within(teal_data(), { dataset1 <- iris dataset2 <- mtcars }) datanames(data) <- c(\"dataset1\", \"dataset2\") data_mod <- teal_data_module( ui = function(id) { ns <- NS(id) div( selectInput(ns(\"species\"), \"Select species to filter\", choices = unique(iris$Species), multiple = TRUE ), actionButton(ns(\"submit\"), \"Submit\") ) }, server = function(id) { moduleServer(id, function(input, output, session) { eventReactive(input$submit, { data_modified <- within( data, dataset1 <- subset(dataset1, Species %in% selected), selected = input$species ) data_modified }) }) } ) app <- init( data = data_mod, module = example_module() ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/data-as-shiny-module.html","id":"warning","dir":"Articles","previous_headings":"","what":"Data as shiny Module","title":"Data as shiny Module","text":"using teal_data_module modify pre-existing teal_data object crucial server function data object defined environment otherwise server function able access data object. means server functions defined packages used.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/filter-panel.html","id":"teal-apps-with-the-filter-panel","dir":"Articles","previous_headings":"","what":"teal Apps With the Filter Panel","title":"Filter Panel","text":"filter panel integral part teal applications included right side. Based selections made filter panel, filter expressions executed passing data teal modules. technical details filter panel extensively described teal.slice documentation. default, init initializes filter panel without active filters allows user add filters column. start teal application predefined filters, one must specify filter argument. following example four filters specified using teal_slice function wrapped together teal_slices.","code":"library(teal) app <- init( data = teal_data( IRIS = iris, CARS = mtcars, code = \"IRIS <- iris CARS <- mtcars\" ), modules = example_module(), filter = teal_slices( teal_slice(dataname = \"IRIS\", varname = \"Sepal.Length\"), teal_slice(dataname = \"IRIS\", varname = \"Species\", selected = \"setosa\"), teal_slice(dataname = \"CARS\", varname = \"mpg\", selected = c(20, Inf)), teal_slice(dataname = \"CARS\", expr = \"qsec < 20\", title = \"1/4 mile under 20 sec\", id = \"qsec_20\") ) ) if (interactive()) { runApp(app) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/filter-panel.html","id":"filter-panel-respective-to-teal_module","dir":"Articles","previous_headings":"Extending teal.slice","what":"Filter panel respective to teal_module","title":"Filter Panel","text":"teal_module (see ?module) object contains datanames attribute determines data sets sent module. filter panel display data sets hide rest module active.","code":"library(teal) app <- init( data = teal_data( IRIS = iris, CARS = mtcars, code = \"IRIS <- iris CARS <- mtcars\" ), modules = modules( example_module(label = \"all datasets\"), example_module(label = \"IRIS only\", datanames = \"IRIS\"), example_module(label = \"CARS only\", datanames = \"CARS\"), example_module(label = \"no filter panel\", datanames = NULL) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/filter-panel.html","id":"global-and-module-specific-filter-panel","dir":"Articles","previous_headings":"Extending teal.slice","what":"Global and module specific filter panel","title":"Filter Panel","text":"teal contains teal_slices function extends original teal_slices found teal.slice adding two arguments: module_specific mapping. default init initializes app “global” filter panel, modules use filters. Setting module_specific = TRUE switches “module-specific” filter panel, module can different set filters active time. still possible set global filters shared among modules. One possible scenario depicted figure : filter 1 shared modules filter 2 shared module 1 module 3 filter 3 used module 2 filter 4 used module 1 filter 5 filter 6 active modules achieve described setup, one must use mapping argument appropriately match teal_module respective teal_slice. mapping takes named list element named module’s label contains vector teal_slice ids. elements active module startup. addition, teal_slices whose ids enumerated global_filters element mapping applied modules app.","code":"library(teal) app <- init( data = list(mtcars = mtcars), modules = modules( example_module(label = \"module 1\"), example_module(label = \"module 2\"), example_module(label = \"module 3\"), example_module(label = \"module 4\") ), filter = teal_slices( # filters created with id teal_slice(dataname = \"mtcars\", varname = \"mpg\", id = \"filter 1\"), teal_slice(dataname = \"mtcars\", varname = \"cyl\", id = \"filter 2\"), teal_slice(dataname = \"mtcars\", varname = \"disp\", id = \"filter 3\"), teal_slice(dataname = \"mtcars\", varname = \"hp\", id = \"filter 4\"), teal_slice(dataname = \"mtcars\", varname = \"drat\", id = \"filter 5\"), teal_slice(dataname = \"mtcars\", varname = \"wt\", id = \"filter 6\"), # filters mapped to modules mapping = list( \"module 1\" = c(\"filter 2\", \"filter 4\"), \"module 2\" = \"filter 3\", \"module 3\" = \"filter 2\", global_filters = \"filter 1\" ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/including-adam-data-in-teal.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Using ADaM Data in teal Applications","text":"include ADaM data teal app, teal.data::cdisc_data function used. cdisc_data allows teal applications include multiple datasets, identifying merge keys providing information produce R code reproducibility. advantage passing CDISC datasets adhere ADaM standards functions code minimized. However, dataset-related functions also include flexibility work non-standard datasets provided merge keys relationship datasets specified. examples illustrate usage different dataset functions example cdisc_dataset dataset. information, see documentation teal.data.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/including-adam-data-in-teal.html","id":"keys","dir":"Articles","previous_headings":"","what":"Keys","title":"Using ADaM Data in teal Applications","text":"Primary keys serve unique row identifiers individual datasets thus need specified dataset dataset connector. can specified general dataset constructor, dataset, shown . passing multiple datasets cdisc_data function, dataset relationship set using join_keys join_key used merge datasets together within teal apps. example , two standard CDISC datasets (ADSL ADTTE) passed cdisc_data. case CDISC datasets adhere ADaM standards, merge keys need manually specified. Keys automatically added dataname matches one implemented standards documented cdisc_dataset function. minimizes code needed allow data merges seen example: equivalent : teal.data::join_keys function used specify keys: teal.data::join_keys collection multiple teal.data::join_key entries dataset_1, dataset_2 - name two datasets key - optionally named vector column names Note assumed join keys symmetric, .e. join_key(\"x\", \"y\", \"x_col\" = \"y_col\") enable merge “x” “y” vice-versa.","code":"library(teal) # using cdisc_dataset, keys are automatically derived for standard datanames # (although they can be overwritten) adsl <- data.frame( STUDYID = \"study\", USUBJID = 1:10, SEX = sample(c(\"F\", \"M\"), 10, replace = TRUE), AGE = rpois(10, 40) ) dataset_adsl <- cdisc_dataset(\"ADSL\", adsl) class(dataset_adsl) ## [1] \"CDISCTealDataset\" \"TealDataset\" \"R6\" adsl <- data.frame( STUDYID = \"study\", USUBJID = 1:10, SEX = sample(c(\"F\", \"M\"), 10, replace = TRUE), AGE = rpois(10, 40) ) adtte <- rbind(adsl, adsl, adsl) adtte$PARAMCD <- rep(c(\"OS\", \"EFS\", \"PFS\"), each = 10) adtte$AVAL <- c( rnorm(10, mean = 700, sd = 200), # dummy OS level rnorm(10, mean = 400, sd = 100), # dummy EFS level rnorm(10, mean = 450, sd = 200) # dummy PFS level ) cdisc_data_obj <- cdisc_data( ADSL = adsl, ADTTE = adtte, code = ' adsl <- data.frame( STUDYID = \"study\", USUBJID = 1:10, SEX = sample(c(\"F\", \"M\"), 10, replace = TRUE), AGE = rpois(10, 40) ) adtte <- rbind(adsl, adsl, adsl) adtte$PARAMCD <- rep(c(\"OS\", \"EFS\", \"PFS\"), each = 10) adtte$AVAL <- c( rnorm(10, mean = 700, sd = 200), # dummy OS level rnorm(10, mean = 400, sd = 100), # dummy EFS level rnorm(10, mean = 450, sd = 200) # dummy PFS level )' ) class(cdisc_data_obj) ## [1] \"teal_data\" ## attr(,\"package\") ## [1] \"teal.data\" example_data <- cdisc_data( ADSL = adsl, ADTTE = adtte, code = ' adsl <- data.frame( STUDYID = \"study\", USUBJID = 1:10, SEX = sample(c(\"F\", \"M\"), 10, replace = TRUE), AGE = rpois(10, 40) ) adtte <- rbind(adsl, adsl, adsl) adtte$PARAMCD <- rep(c(\"OS\", \"EFS\", \"PFS\"), each = 10) adtte$AVAL <- c( rnorm(10, mean = 700, sd = 200), rnorm(10, mean = 400, sd = 100), rnorm(10, mean = 450, sd = 200) )' ) class(cdisc_data_obj) ## [1] \"teal_data\" ## attr(,\"package\") ## [1] \"teal.data\""},{"path":"https://insightsengineering.github.io/teal/main/articles/including-adam-data-in-teal.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Using ADaM Data in teal Applications","text":"information preprocessing, reproducibility, relationships datasets DDL, please refer teal.data package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/including-general-data-in-teal.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Using General Data in teal Applications","text":"teal applications restricted CDISC-standard data. Although many teal modules included NEST designed CDISC data, library teal.modules.general designed work non-relational data. example application uses standard iris mtcars datasets: information, see documentation teal.data.","code":"library(teal) app <- init( data = teal_data( IRIS = iris, CARS = mtcars, code = \"IRIS <- iris CARS <- mtcars\" ), modules = example_module() ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/including-general-data-in-teal.html","id":"delayed-data-loading-ddl","dir":"Articles","previous_headings":"","what":"Delayed Data Loading (DDL)","title":"Using General Data in teal Applications","text":"teal provides ability pull remote data use app. Additional user authentication may necessary. learn DDL, visit appropriate vignette teal.data.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/including-general-data-in-teal.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Using General Data in teal Applications","text":"information preprocessing, reproducibility, relationships datasets DDL, please refer teal.data package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/including-mae-data-in-teal.html","id":"multiassayexperiment-data","dir":"Articles","previous_headings":"","what":"MultiAssayExperiment data","title":"Using MultiAssayExperiment data in teal Applications","text":"MultiAssayExperiment offers data structure representing analyzing multi-omics experiments: biological analysis approach utilizing multiple types observations, DNA mutations abundance RNA proteins, biological specimens. MultiAssayExperiment data described detail .","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/including-mae-data-in-teal.html","id":"example-application","dir":"Articles","previous_headings":"","what":"Example Application","title":"Using MultiAssayExperiment data in teal Applications","text":"example represents application including MultiAssayExperiment data. filter panel supports MAE data box, teal guarantee module work MAE data way works types data (e.g. ADaM) MAE unique structure requires special consideration developing module. package teal.modules.hermes specifically developed analysis MAE data.","code":"library(teal) utils::data(miniACC, package = \"MultiAssayExperiment\") app <- init( data = teal_data(MAE = miniACC), modules = example_module() ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/including-mae-data-in-teal.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Using MultiAssayExperiment data in teal Applications","text":"information preprocessing, reproducibility, relationships datasets DDL, please refer teal.data package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/preprocessing-data.html","id":"usage-in-teal-apps","dir":"Articles","previous_headings":"","what":"Usage in teal apps","title":"Preprocessing Data","text":"vignette, show use preprocessed data teal apps. basics data preprocessing discussed teal.data . teal app providing code copy-paste style cumbersome can lead --sync situation code represent preprocessing code anymore. therefore use teal.data::get_code function extract preprocessing code app.R file. get_code function requires # tags indicate lines code app.R need included preprocessing code. get_code understands following tags: Enclosing preprocessing code #code> # # new_iris <- transform(iris, id = seq_len(nrow(iris))) # # data import new_iris <- transform(iris, id = seq_len(nrow(iris))) excluded_obj1 <- 1:10 # nocode # nocode> excluded_obj2 <- 1:10 # % bslib::bs_add_rules(\"Anything understood by sass::as_sass()\"))"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"bootstrap-null-vs-bootstrap-3","dir":"Articles","previous_headings":"Usage","what":"Bootstrap NULL vs Bootstrap 3","title":"Bootstrap Themes in teal","text":"important note statements options(\"teal.bs_theme\" = NULL) options(\"teal.bs_theme\" = bslib::bs_theme(version = \"3\") equivalent bslib approximation default shiny theme Bootstrap version 3 can introduce discrepancies. One important difference using bslib::bs_theme(version = \"3\", bootswatch = \"THEME NAME\") one can apply custom Bootstrap theme. Another one usage bslib::bs_theme(version = \"3\") requires installation latest shinyWidgets package main branch, see .","code":"# Downloading the newest shinyWidgets # needed only when bslib::bs_theme(version = \"3\", ...) is used remotes::install_github(\"https://github.com/dreamRs/shinyWidgets@main\")"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"regular-shinyfluidpage","dir":"Articles","previous_headings":"Usage","what":"Regular shiny::fluidPage","title":"Bootstrap Themes in teal","text":"want update theme regular shiny::fluidPage-like app, need teal.bs_theme option. Simply provide bslib::bs_theme directly: shiny::fluidPage(theme = bslib::bs_theme(...), ...).","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"interactive-theming-guide","dir":"Articles","previous_headings":"Usage","what":"Interactive Theming Guide","title":"Bootstrap Themes in teal","text":"section provide step--step guide customizing teal application theme interactively bslib::run_with_themer(). recommend starting simple case satisfied, verifying full application. end use teal application . example assume want use Bootstrap 5. start, launch app bslib::run_with_themer(app$ui, app$server) instead shiny::runApp. gives us following. Note Theme Customizer section right hand side. added bslib customize theme.","code":"options(\"teal.bs_theme\" = bslib::bs_theme(version = \"5\")) library(teal) app <- init( data = teal_data(IRIS = iris), # nolint filter = list(IRIS = list(Sepal.Length = c(5, 7))), modules = list(example_module(), example_module()), header = \"My first teal application\" ) bslib::run_with_themer(shinyApp(app$ui, app$server))"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"set-overall-app-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Set overall app theme","title":"Bootstrap Themes in teal","text":"Instead starting scratch, want start Bootswatch theme. Let us select Minty theme “Overall theme” drop-. bslib updated CSS styles use new theme, including customizer theme. Additionally look R console, see helpful guide provides code update theme. teal applications don’t actually use bs_theme_update opt bs_theme instead. However, printed code still helpful.","code":"#### Update your bs_theme() R code with: ##### bs_theme_update(theme, bootswatch = \"minty\")"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"customize-a-bootswatch-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Customize a bootswatch theme","title":"Bootstrap Themes in teal","text":"base theme (Minty) close want let’s make modifications. start, increase base font size. , choose “Fonts” section customizer theme set value “Base font size” input. use 1.25 , means fonts increased factor 1.25. check R console, see bslib printed bs_theme_update(theme, font_scale = 1.25, bootswatch = \"minty\"), now includes font size adjustment. Finally, suppose want borders rounded. customizer theme, can go “Options” uncheck “Rounded corners” box. expected, corners longer rounded. look R console, now see bs_theme_update(theme, font_scale = 1.25,enable-rounded= FALSE, bootswatch = \"minty\").","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"apply-the-customized-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Apply the customized theme","title":"Bootstrap Themes in teal","text":"customization complete, apply changes application. , use option teal.bs_theme like time expand bslib::bs_theme call include changes. Luckily, arguments printed R console running app themer can plugged right . Now application custom theme applied. Please note interactive themer contains mostly commonly applied options. customization options, review bslib documentation.","code":"options( \"teal.bs_theme\" = bslib::bs_theme( version = \"5\", font_scale = 1.25, `enable-rounded` = FALSE, bootswatch = \"minty\" ) ) library(teal) app <- init( data = teal_data( dataset(\"IRIS\", iris) ), filter = list(IRIS = list(Sepal.Length = c(5, 7))), modules = list(example_module(), example_module()) ) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"sources","dir":"Articles","previous_headings":"","what":"Sources","title":"Bootstrap Themes in teal","text":"https://rstudio.github.io/bslib/","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"motivation","dir":"Articles","previous_headings":"","what":"Motivation","title":"Modifying a teal Application With R Options","text":"R packages use options modify runtime behavior. usually specify default values internal functions determine responses users actions. example, testthat uses option testthat.progress.max_fails define default number failed expectations testing functions terminate execution. adjustable values can exposed function parameters, confined option. vignette details options available users teal, teal.logger, teal.widgets, teal.modules.general, teal.modules.clinical.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"setting-an-option","dir":"Articles","previous_headings":"","what":"Setting an option","title":"Modifying a teal Application With R Options","text":"time interactive session, can change option using: way change options execution specific block code withr package like : line run option, digits, go back value line run. function getOption allows inspect value option: set, value option persists session, returns default value new session. Make sure change options teal-related packages loaded initialize options overwrite custom values.","code":"options(option_to_set = \"value\") withr::with_options(list(digits = 3), print(pi)) ## [1] 3.14 getOption(\"option_to_set\") ## [1] \"value\""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-log_layout-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.log_layout (character)","title":"Modifying a teal Application With R Options","text":"defines layout log message used teal application. teal uses layout format emitted log messages. Read documentation teal.logger::register_logger information. Default: \"[{level}] {format(time, \\\"%Y-%m-%d %H:%M:%OS4\\\")} pid:{pid} token:[{token}] {ans} {msg}\". Note layout formatted glue package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-log_level-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.log_level (character)","title":"Modifying a teal Application With R Options","text":"logging level threshold used teal application. teal application emit logs level. Read documentation teal.logger::register_logger information. Possible values: \"TRACE\", \"INFO\", \"WARNING\", \"ERROR\". See documentation logger::TRACE possible values logging threshold information . Default: \"INFO\". Note two levels considered less severe \"INFO\": \"DEBUG\" \"TRACE\". order see log messages two levels well, change log level default \"TRACE\", least severe log level.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal_logging","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal_logging","title":"Modifying a teal Application With R Options","text":"Deprecated.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal_show_js_log","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal_show_js_log","title":"Modifying a teal Application With R Options","text":"Deprecated favor teal.show_js_log (see ).","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-show_js_log-logical","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.show_js_log (logical)","title":"Modifying a teal Application With R Options","text":"indicates whether print JavaScript console logs R console. set TRUE, logs printed; otherwise, won’t. Default: FALSE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-threshold_slider_vs_checkboxgroup-numeric","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.threshold_slider_vs_checkboxgroup (numeric)","title":"Modifying a teal Application With R Options","text":"threshold determines variable treated factor filter panel. number unique values variable less threshold variable treated factor instead original class. example, imagine teal.threshold_slider_vs_checkboxgroup equals 2. numeric variable c(1, 1, 1), one unique value, treated factor filter panel (filter panel !). filter panel creates checkbox widget filter values variable, factor variable, instead usual numeric range selector. Default: 5.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-load_nest_code-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.load_nest_code (character)","title":"Modifying a teal Application With R Options","text":"value option appended top code rendered using Show R Code modal button. See documentation teal::get_rcode information. Default: \"# Add code install/load NEST environment \".","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-basic_table_args-basic_table_args-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.basic_table_args (basic_table_args object)","title":"Modifying a teal Application With R Options","text":"specifies list arguments passed every call rtables::basic_table made teal application. can used format rtables without making changes application code. See documentation teal.widgets::basic_table_args information. Default: teal.widgets::basic_table_args().","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-ggplot2_args-ggplot2_args-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.ggplot2_args (ggplot2_args object)","title":"Modifying a teal Application With R Options","text":"option allows modifying labels themes ggplot2 plots teal application. See documentation teal.widgets::ggplot2_args information. Default: teal.widgets::ggplot2_args().","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-plot_dpi-integer-value-24-or-larger","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.plot_dpi (integer value 24 or larger)","title":"Modifying a teal Application With R Options","text":"option controls dots per inch graphs rendered downloaded using plot_with_settings. Default: 72","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-bs_theme-bslibbs_theme-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.bs_theme (bslib::bs_theme object)","title":"Modifying a teal Application With R Options","text":"option controls bootstrap theme version used teal apps. Achieve better UX customized UI app. Please visit vignette Bootstrap themes read functionality. Default: NULL","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Getting Started with teal","text":"teal shiny-based interactive exploration framework analyzing data, particular emphasis CDISC clinical trial data. teal applications allow users : “Pull” data external data sources Dynamically filter data used analyses Generate reproducible code regenerate -screen analyses Create download reports containing results analyses (analysis modules support reporting) addition, teal framework provides application developers : large suite custom-made standard analysis modules included applications logging framework facilitate debugging applications advanced users framework can also create new analysis modules can added teal applications. See Creating Custom Modules vignette brief introduction creating modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"your-first-teal-application","dir":"Articles","previous_headings":"","what":"Your first teal application:","title":"Getting Started with teal","text":"simple teal application takes iris mtcars datasets displays contents: shown image , application consists several distinct areas: Application header: title application shown top. teal modules (bar top): case simple module named “example teal module”. Encoding panel (panel left hand side): Module specific UI components, case drop-select dataset name. Main output panel (panel middle): outputs module, example module chosen dataset displayed. Filter panel (panels right hand side): filtering data passed teal modules.","code":"library(teal) app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = example_module(), header = \"My first teal application\" ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"encoding-panel","dir":"Articles","previous_headings":"Your first teal application:","what":"Encoding panel","title":"Getting Started with teal","text":"left hand side application (usually) dedicated module specific controls. modules include reproducibility functionality often contains Show R Code button , clicked, display code required re-generate output, including filtering added filter panel library calls attach required packages.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"filter-panel","dir":"Articles","previous_headings":"Your first teal application:","what":"Filter panel","title":"Getting Started with teal","text":"filter panel allows app developers select datasets wish make available modules define filters datasets. top section shows number records remaining dataset filtering. middle section lists currently defined filters. Typically can modified user. bottom section allows user add new filters. example : IRIS dataset, rows satisfying conditions Petal.Length >= 3.4 Species %% c(\"setosa\", \"virginica\") included, thereby keeping 50 rows. MTCARS dataset, rows satisfying condition cyl %% c(4, 6) included, thereby keeping 18 rows.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"creating-your-own-applications","dir":"Articles","previous_headings":"","what":"Creating your own applications","title":"Getting Started with teal","text":"key function use create teal application init, requires two arguments: data modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"application-data","dir":"Articles","previous_headings":"Creating your own applications","what":"Application Data","title":"Getting Started with teal","text":"data argument init function specifies data used application. can data currently R session, example , also connectors, describe “pull” remote data application run. Connectors can pull data external sources, may require authentication. example call teal_data convert raw datasets teal specific datasets bind one R object. function can also used specify relationships different datasets. order use CDISC clinical trial data teal application cdisc_data function used instead. details recommend exploring teal.data package documentation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"modules","dir":"Articles","previous_headings":"Creating your own applications","what":"Modules","title":"Getting Started with teal","text":"modules argument init consists list teal modules (can wrapped together using function modules). recommend creating applications using predefined teal modules. See references links modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"defining-filters","dir":"Articles","previous_headings":"Creating your own applications","what":"Defining Filters","title":"Getting Started with teal","text":"optional filter argument init allows initialize application predefined filters. See documentation init details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"reporting","dir":"Articles","previous_headings":"Creating your own applications","what":"Reporting","title":"Getting Started with teal","text":"modules teal application support reporting (see teal.reporter details), users application can add outputs modules report. report can downloaded special Report Previewer module added application additional tab, users can view configure reports downloading .","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"where-to-go-next","dir":"Articles","previous_headings":"","what":"Where to go next","title":"Getting Started with teal","text":"learn teal framework recommend first exploring available analysis modules. example see: general analysis modules clinical trial reporting modules modules analyzing MultiAssayExperiment objects teal framework relies set supporting packages whose documentation provides -depth information. packages interest defining tealapplications : teal.data: defining data teal application. teal.slice: defining data filtering passing teal modules. teal.transform: defining way arguments passed teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Dawid Kaledkowski. Author, maintainer. Pawel Rucki. Author. Aleksander Chlebowski. Author. Kartikeya Kirar. Author. Marcin Kosinski. Author. Adrian Waddell. Author. Chendi Liao. Reviewer. Dony Unardi. Reviewer. Nikolas Burkoff. Author. Mahmoud Hallal. Author. Maciej Nasinski. Author. Konrad Pagacz. Author. Junlue Zhao. Author. F. Hoffmann-La Roche AG. Copyright holder, funder. Maximilian Mordig. Contributor.","code":""},{"path":"https://insightsengineering.github.io/teal/main/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Kaledkowski D, Rucki P, Chlebowski , Kirar K, Kosinski M, Waddell , Burkoff N, Hallal M, Nasinski M, Pagacz K, Zhao J (2023). teal: Exploratory Web Apps Analyzing Clinical Trials Data. R package version 0.14.0.9017, https://github.com/insightsengineering/teal/, https://insightsengineering.github.io/teal/main/.","code":"@Manual{, title = {teal: Exploratory Web Apps for Analyzing Clinical Trials Data}, author = {Dawid Kaledkowski and Pawel Rucki and Aleksander Chlebowski and Kartikeya Kirar and Marcin Kosinski and Adrian Waddell and Nikolas Burkoff and Mahmoud Hallal and Maciej Nasinski and Konrad Pagacz and Junlue Zhao}, year = {2023}, note = {R package version 0.14.0.9017, https://github.com/insightsengineering/teal/}, url = {https://insightsengineering.github.io/teal/main/}, }"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"teal-interactive-exploratory-data-analysis-with-shiny-web-applications-","dir":"","previous_headings":"","what":"Exploratory Web Apps for Analyzing Clinical Trials Data","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"teal shiny-based interactive exploration framework analyzing data. teal applications require app developers specify: CDISC data, commonly used clinical trial reporting Independent datasets, example data.frame Related datasets, example set data.frames key columns enable data joins MultiAssayExperiment objects R data structures representing analyzing multi-omics experiments teal.modules.general: general modules exploring relational/independent/CDISC data teal.modules.clinical: modules specific CDISC data clinical trial reporting teal.modules.hermes: modules analyzing MultiAssayExperiment objects lot functionality teal framework derives following packages: teal.data: creating loading data needed teal applications. teal.widgets: shiny components used within teal. teal.slice: provides filtering panel allow filtering data. teal.code: handles reproducibility outputs. teal.transform: standardizes extracting merging data. teal.logger: standardizes logging within teal framework. teal.reporter: allows teal applications generate reports.","code":""},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"Alternatively, might also use development version.","code":"install.packages(\"teal\", repos = c(\"https://insightsengineering.r-universe.dev\", getOption(\"repos\"))) # install.packages(\"pak\") pak::pak(\"insightsengineering/teal@*release\") install.packages(\"teal\", repos = c(\"https://pharmaverse.r-universe.dev\", getOption(\"repos\"))) # install.packages(\"pak\") pak::pak(\"insightsengineering/teal\")"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"Please see teal.gallery TLG Catalog see examples teal apps. Please start “Technical Blueprint” article, “Getting Started” article, package vignettes detailed guide.","code":"library(teal) app <- init( data = teal_data( dataset(\"iris\", iris) ), modules = list( module( \"iris histogram\", server = function(input, output, session, data) { output$hist <- renderPlot( hist(data[[\"iris\"]]()[[input$var]]) ) }, ui = function(id, data, ...) { ns <- NS(id) list( shiny::selectInput( ns(\"var\"), \"Column name\", names(data[[\"iris\"]]())[1:4] ), plotOutput(ns(\"hist\")) ) } ) ) ) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"encounter bug feature request - please file issue. questions, discussions staying date, please use “teal” channel pharmaverse slack workspace.","code":""},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"acknowledgment","dir":"","previous_headings":"","what":"Acknowledgment","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"package result joint efforts many developers stakeholders. like thank everyone contributed far!","code":""},{"path":[]},{"path":[]},{"path":[]},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/pull_request_template.html","id":null,"dir":"","previous_headings":"","what":"Pull Request","title":"Pull Request","text":"Fixes #nnn","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":null,"dir":"Reference","previous_headings":"","what":"TealReportCard — TealReportCard","title":"TealReportCard — TealReportCard","text":"child ReportCard used teal specific applications. addition parent methods, supports rendering teal specific elements source code, encodings panel content filter panel content part meta data.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"super-class","dir":"Reference","previous_headings":"","what":"Super class","title":"TealReportCard — TealReportCard","text":"teal.reporter::ReportCard -> TealReportCard","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"methods","dir":"Reference","previous_headings":"","what":"Methods","title":"TealReportCard — TealReportCard","text":"teal.reporter::ReportCard$append_content() teal.reporter::ReportCard$append_metadata() teal.reporter::ReportCard$append_plot() teal.reporter::ReportCard$append_rcode() teal.reporter::ReportCard$append_table() teal.reporter::ReportCard$append_text() teal.reporter::ReportCard$from_list() teal.reporter::ReportCard$get_content() teal.reporter::ReportCard$get_metadata() teal.reporter::ReportCard$get_name() teal.reporter::ReportCard$initialize() teal.reporter::ReportCard$reset() teal.reporter::ReportCard$set_name() teal.reporter::ReportCard$to_list()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"public-methods","dir":"Reference","previous_headings":"","what":"Public methods","title":"TealReportCard — TealReportCard","text":"TealReportCard$append_src() TealReportCard$append_fs() TealReportCard$append_encodings() TealReportCard$clone()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-src-","dir":"Reference","previous_headings":"","what":"Method append_src()","title":"TealReportCard — TealReportCard","text":"Appends source code content meta data TealReportCard.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_src(src, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"src (character(1)) code text. ... rmarkdown R chunk parameter value. eval parameter always set FALSE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"card <- TealReportCard$new()$append_src( \"plot(iris)\" ) card$get_content()[[1]]$get_content()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-fs-","dir":"Reference","previous_headings":"","what":"Method append_fs()","title":"TealReportCard — TealReportCard","text":"Appends filter state list content metadata TealReportCard. filter state list attribute named formatted, appends card otherwise uses default yaml::.yaml format list. filter state list empty, nothing appended content.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-1","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_fs(fs)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-1","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"fs (teal_slices) object returned teal_slices() function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns-1","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-encodings-","dir":"Reference","previous_headings":"","what":"Method append_encodings()","title":"TealReportCard — TealReportCard","text":"Appends encodings list content metadata TealReportCard.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-2","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_encodings(encodings)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-2","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"encodings (list) list encodings selections teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns-2","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"examples-1","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"card <- TealReportCard$new()$append_encodings(list(variable1 = \"X\")) card$get_content()[[1]]$get_content()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-clone-","dir":"Reference","previous_headings":"","what":"Method clone()","title":"TealReportCard — TealReportCard","text":"objects class cloneable method.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-3","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$clone(deep = FALSE)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-3","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"deep Whether make deep clone.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"## ------------------------------------------------ ## Method `TealReportCard$append_src` ## ------------------------------------------------ card <- TealReportCard$new()$append_src( \"plot(iris)\" ) card$get_content()[[1]]$get_content() #> [1] \"plot(iris)\" ## ------------------------------------------------ ## Method `TealReportCard$append_encodings` ## ------------------------------------------------ card <- TealReportCard$new()$append_encodings(list(variable1 = \"X\")) card$get_content()[[1]]$get_content() #> [1] \"Selected Options\""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"RcodeBlock — TealSlicesBlock","title":"RcodeBlock — TealSlicesBlock","text":"RcodeBlock RcodeBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"super-classes","dir":"Reference","previous_headings":"","what":"Super classes","title":"RcodeBlock — TealSlicesBlock","text":"teal.reporter::ContentBlock -> teal.reporter::TextBlock -> TealSlicesBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"methods","dir":"Reference","previous_headings":"","what":"Methods","title":"RcodeBlock — TealSlicesBlock","text":"teal.reporter::ContentBlock$get_content() teal.reporter::TextBlock$get_available_styles() teal.reporter::TextBlock$get_style() teal.reporter::TextBlock$set_style()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"public-methods","dir":"Reference","previous_headings":"","what":"Public methods","title":"RcodeBlock — TealSlicesBlock","text":"TealSlicesBlock$new() TealSlicesBlock$set_content() TealSlicesBlock$from_list() TealSlicesBlock$to_list() TealSlicesBlock$clone()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-new-","dir":"Reference","previous_headings":"","what":"Method new()","title":"RcodeBlock — TealSlicesBlock","text":"Returns TealSlicesBlock object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$new(content = teal_slices(), style = \"verbatim\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"content (teal_slices) object returned teal_slices() function. style (character(1)) string specifying style apply.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"RcodeBlock — TealSlicesBlock","text":"Returns TealSlicesBlock object content parameters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"TealSlicesBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"examples","dir":"Reference","previous_headings":"","what":"Examples","title":"RcodeBlock — TealSlicesBlock","text":"","code":"block <- teal:::TealSlicesBlock$new()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-set-content-","dir":"Reference","previous_headings":"","what":"Method set_content()","title":"RcodeBlock — TealSlicesBlock","text":"Sets content TealSlicesBlock. Sets content YAML text represents list generated teal_slices. list displays limited number fields teal_slice objects, list sufficient conclude filters applied. selected field teal_slice object range, displayed \"min\"","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-1","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$set_content(content)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-1","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"content (teal_slices) object returned teal_slices() function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-1","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-from-list-","dir":"Reference","previous_headings":"","what":"Method from_list()","title":"RcodeBlock — TealSlicesBlock","text":"Create RcodeBlock list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-2","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$from_list(x)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-2","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"x named list two fields c(\"text\", \"params\"). Use get_available_params method get possible parameters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-2","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-to-list-","dir":"Reference","previous_headings":"","what":"Method to_list()","title":"RcodeBlock — TealSlicesBlock","text":"Convert RcodeBlock list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-3","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$to_list()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-3","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"named list text params.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-clone-","dir":"Reference","previous_headings":"","what":"Method clone()","title":"RcodeBlock — TealSlicesBlock","text":"objects class cloneable method.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-4","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$clone(deep = FALSE)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-3","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"deep Whether make deep clone.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"RcodeBlock — TealSlicesBlock","text":"","code":"## ------------------------------------------------ ## Method `TealSlicesBlock$new` ## ------------------------------------------------ block <- teal:::TealSlicesBlock$new()"},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Append a teal_module to children of a teal_modules object — append_module","title":"Append a teal_module to children of a teal_modules object — append_module","text":"Append teal_module children teal_modules object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Append a teal_module to children of a teal_modules object — append_module","text":"","code":"append_module(modules, module)"},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Append a teal_module to children of a teal_modules object — append_module","text":"modules teal_modules module teal_module object appended onto children modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Append a teal_module to children of a teal_modules object — append_module","text":"teal_modules object module appended","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the hash of a dataset — calculate_hashes","title":"Get the hash of a dataset — calculate_hashes","text":"Get hash dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the hash of a dataset — calculate_hashes","text":"","code":"calculate_hashes(datanames, datasets)"},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the hash of a dataset — calculate_hashes","text":"datanames (character) names datasets datasets (FilteredData) object holding data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the hash of a dataset — calculate_hashes","text":"list hashes per dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Check datanames in filters — check_filter_datanames","title":"Check datanames in filters — check_filter_datanames","text":"function checks whether datanames filters correspond data, returning character vector error messages TRUE checks pass.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check datanames in filters — check_filter_datanames","text":"","code":"check_filter_datanames(filters, datanames)"},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check datanames in filters — check_filter_datanames","text":"filters (teal_slices) object datanames (character) names datasets available data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check datanames in filters — check_filter_datanames","text":"character(1) containing error message TRUE validation passes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Check datanames in modules — check_modules_datanames","title":"Check datanames in modules — check_modules_datanames","text":"function ensures specified datanames modules match data object, returning error messages TRUE successful validation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check datanames in modules — check_modules_datanames","text":"","code":"check_modules_datanames(modules, datanames)"},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check datanames in modules — check_modules_datanames","text":"modules (teal_modules) object datanames (character) names datasets available data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check datanames in modules — check_modules_datanames","text":"character(1) containing error message TRUE validation passes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Deep copy teal_slices — deep_copy_filter","title":"Deep copy teal_slices — deep_copy_filter","text":"important create new copy teal_slices starting new shiny session. Otherwise, object shared multiple users created global environment shiny session starts.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deep copy teal_slices — deep_copy_filter","text":"","code":"deep_copy_filter(filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deep copy teal_slices — deep_copy_filter","text":"filter (teal_slices)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Deep copy teal_slices — deep_copy_filter","text":"teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"Converts FilteredData object tdata object containing datasets needed specific module. Please note module needs dataset parent, parent also returned. hash per dataset calculated internally returned code.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"","code":".datasets_to_data(module, datasets, trigger_data = reactiveVal(1L))"},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"module (teal_module) module needed filters taken datasets (FilteredData) object needed data taken trigger_data (reactiveVal) trigger getting filtered data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"list reactive datasets following attributes: code (character) containing datasets reproducible code. join_keys (JoinKeys) containing relationships datasets. metadata (list) containing metadata datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Get dummy CDISC data — example_cdisc_data","title":"Get dummy CDISC data — example_cdisc_data","text":"Get dummy CDISC data including ADSL, ADAE ADLB. NAs also introduced stress test.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get dummy CDISC data — example_cdisc_data","text":"","code":"example_cdisc_data()"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get dummy CDISC data — example_cdisc_data","text":"cdisc_data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":null,"dir":"Reference","previous_headings":"","what":"Get datasets to go with example modules. — example_datasets","title":"Get datasets to go with example modules. — example_datasets","text":"Creates nested list, structure matches module hierarchy created example_modules. list leaf FilteredData object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get datasets to go with example modules. — example_datasets","text":"","code":"example_datasets()"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get datasets to go with example modules. — example_datasets","text":"named list FilteredData objects, ADSL set.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"An example teal module — example_module","text":"","code":"example_module(label = \"example teal module\", datanames = \"all\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"An example teal module — example_module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. datanames (character) vector datanames relevant item. filter panel automatically update shown filters include filters listed datasets. NULL hide filter panel, keyword '' show filters datasets. datanames also determines subset datasets appended data argument server function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"An example teal module — example_module","text":"teal module can included modules argument init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"An example teal module — example_module","text":"","code":"app <- init( data = teal_data( dataset(\"IRIS\", iris), dataset(\"MTCARS\", mtcars) ), modules = example_module() ) #> Warning: The `data_objects` argument of `teal_data()` should use data directly. Using #> TealDatasetConnector and TealDataset is deprecated. Find more information on #> https://github.com/insightsengineering/teal/discussions/945 as of teal.data #> 0.3.1. if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":null,"dir":"Reference","previous_headings":"","what":"Get example modules. — example_modules","title":"Get example modules. — example_modules","text":"Creates example hierarchy teal_modules teal app can created.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get example modules. — example_modules","text":"","code":"example_modules(datanames = c(\"ADSL\", \"ADTTE\"))"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get example modules. — example_modules","text":"datanames (character) names datasets used example modules. Possible choices ADSL, ADTTE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get example modules. — example_modules","text":"teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"Please remove, useful debugging teal without dependencies simplifies \\link[devtools]{load_all} otherwise fails avoids session restarts!","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"","code":"filter_calls_module(label = \"Filter Calls Module\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"label character label module","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"","code":"app <- init( data = list(iris = iris, mtcars = mtcars), modules = teal:::filter_calls_module(), header = \"Simple teal app\" ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":null,"dir":"Reference","previous_headings":"","what":"Module specific filter manager — filter_manager_module_srv","title":"Module specific filter manager — filter_manager_module_srv","text":"Track filter states single module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Module specific filter manager — filter_manager_module_srv","text":"","code":"filter_manager_module_srv(id, module_fd, slices_global)"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Module specific filter manager — filter_manager_module_srv","text":"id (character(1))shiny module id. module_fd (FilteredData) object filter data teal-module slices_global (reactiveVal) stores teal_slices available filters; allows following actions: disable/enable specific filter module restore saved filter settings save current filter panel settings","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Module specific filter manager — filter_manager_module_srv","text":"reactive expression containing slices active module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Module specific filter manager — filter_manager_module_srv","text":"module tracks state single FilteredData object global teal_slices updates objects necessary. Filter states added different modules Filter states added individual module added global teal_slices become available modules setting private$available_teal_slices FilteredData.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Client Timezone — get_client_timezone","title":"Get Client Timezone — get_client_timezone","text":"Local timezone browser may differ system timezone server. script can run register shiny input contains information timezone browser.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Client Timezone — get_client_timezone","text":"","code":"get_client_timezone(ns)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Client Timezone — get_client_timezone","text":"ns (function) namespace function passed session object Shiny server. Shiny modules allow proper name spacing registered input.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Client Timezone — get_client_timezone","text":"(Shiny) input variable accessible input$tz (character) string containing timezone browser/client.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"Wrapper get_code.tdata wrapper used downstream packages extract code tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"","code":"get_code_tdata(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"data (tdata) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"(character) code used tdata object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":null,"dir":"Reference","previous_headings":"","what":"Get datasets code — get_datasets_code","title":"Get datasets code — get_datasets_code","text":"Get combined code FilteredData CodeClass object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get datasets code — get_datasets_code","text":"","code":"get_datasets_code(datanames, datasets, hashes)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get datasets code — get_datasets_code","text":"datanames (character) names datasets extract code datasets (FilteredData) object hashes named (list) hashes per dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get datasets code — get_datasets_code","text":"character(3) containing following elements: code CodeClass (data loading code) hash check loaded objects","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract JoinKeys from tdata — get_join_keys.tdata","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"Extract JoinKeys tdata","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"","code":"# S3 method for tdata get_join_keys(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"data (tdata) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to get metadata from a tdata object — get_metadata","title":"Function to get metadata from a tdata object — get_metadata","text":"Function get metadata tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to get metadata from a tdata object — get_metadata","text":"","code":"get_metadata(data, dataname) # S3 method for tdata get_metadata(data, dataname) # S3 method for default get_metadata(data, dataname)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to get metadata from a tdata object — get_metadata","text":"data tdata - object extract data dataname character(1) dataset name whose metadata requested","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to get metadata from a tdata object — get_metadata","text":"Either list metadata NULL metadata","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":null,"dir":"Reference","previous_headings":"","what":"Generates library calls from current session info — get_rcode_libraries","title":"Generates library calls from current session info — get_rcode_libraries","text":"Function create multiple library calls current session info make reproducible code works.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generates library calls from current session info — get_rcode_libraries","text":"","code":"get_rcode_libraries()"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generates library calls from current session info — get_rcode_libraries","text":"Character object contain code","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_teal_bs_theme.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve the expected bootstrap theme — get_teal_bs_theme","title":"Resolve the expected bootstrap theme — get_teal_bs_theme","text":"Resolve expected bootstrap theme","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_teal_bs_theme.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve the expected bootstrap theme — get_teal_bs_theme","text":"","code":"get_teal_bs_theme()"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Include CSS files from /inst/css/ package directory to application header — include_css_files","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"","code":"include_css_files(pattern = \"*\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"pattern (character) pattern files included","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"HTML code includes CSS files","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Include JS files from /inst/js/ package directory to application header — include_js_files","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"","code":"include_js_files(pattern = NULL, except = NULL)"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"pattern (character) pattern files included, passed system.file except (character) vector basename filenames excluded","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"HTML code includes JS files","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":null,"dir":"Reference","previous_headings":"","what":"Code to include teal CSS and JavaScript files — include_teal_css_js","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"useful want use JavaScript CSS files used teal application. also useful running standalone modules teal correct styles. Also initializes shinyjs can use .","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"","code":"include_teal_css_js()"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"HTML code include","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"","code":"shiny_ui <- tagList( teal:::include_teal_css_js(), p(\"Hello\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the Server and UI Function For the Shiny App — init","title":"Create the Server and UI Function For the Shiny App — init","text":"End-users: important function start teal app composed teal modules. Notes developers: wrapper function around module_teal.R functions. Unless end-user, use function, instead module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the Server and UI Function For the Shiny App — init","text":"","code":"init( data, modules, title = NULL, filter = teal_slices(), header = tags$p(), footer = tags$p(), id = character(0) )"},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the Server and UI Function For the Shiny App — init","text":"data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. modules (list, teal_modules teal_module) nested list teal_modules teal_module objects single teal_modules teal_module object. specific output modules displayed teal application. See modules() module() details. title (NULL character) browser window title (defaults host URL page). filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices(). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app id (character) module id embed , provided, server function must called shiny::moduleServer(); See vignette example. However, ui_teal_with_splash() preferred function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the Server and UI Function For the Shiny App — init","text":"named list server ui function","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the Server and UI Function For the Shiny App — init","text":"","code":"new_iris <- transform(iris, id = seq_len(nrow(iris))) new_mtcars <- transform(mtcars, id = seq_len(nrow(mtcars))) app <- init( data = teal_data( dataset(\"new_iris\", new_iris), dataset(\"new_mtcars\", new_mtcars), code = \" new_iris <- transform(iris, id = seq_len(nrow(iris))) new_mtcars <- transform(mtcars, id = seq_len(nrow(mtcars))) \" ), modules = modules( module( label = \"data source\", server = function(input, output, session, data) {}, ui = function(id, ...) div(p(\"information about data source\")), datanames = \"all\" ), example_module(label = \"example teal module\"), module( \"Iris Sepal.Length histogram\", server = function(input, output, session, data) { output$hist <- renderPlot( hist(data[[\"new_iris\"]]()$Sepal.Length) ) }, ui = function(id, ...) { ns <- NS(id) plotOutput(ns(\"hist\")) }, datanames = \"new_iris\" ) ), title = \"App title\", filter = teal_slices( teal_slice(dataname = \"new_iris\", varname = \"Species\"), teal_slice(dataname = \"new_iris\", varname = \"Sepal.Length\"), teal_slice(dataname = \"new_mtcars\", varname = \"cyl\"), exclude_varnames = list(new_iris = c(\"Sepal.Width\", \"Petal.Width\")), mapping = list( `example teal module` = \"new_iris Species\", `Iris Sepal.Length histogram` = \"new_iris Species\", global_filters = \"new_mtcars cyl\" ) ), header = tags$h1(\"Sample App\"), footer = tags$p(\"Copyright 2017 - 2023\") ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":null,"dir":"Reference","previous_headings":"","what":"Does the object make use of the arg — is_arg_used","title":"Does the object make use of the arg — is_arg_used","text":"object make use arg","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Does the object make use of the arg — is_arg_used","text":"","code":"is_arg_used(modules, arg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Does the object make use of the arg — is_arg_used","text":"modules (teal_module teal_modules) object arg (character(1)) names arguments checked formals teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Does the object make use of the arg — is_arg_used","text":"logical whether object makes use arg","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Landing Popup Module — landing_popup_module","title":"Landing Popup Module — landing_popup_module","text":"Creates landing welcome popup teal applications. module used display popup dialog application starts. dialog blocks access application must closed button application viewed.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Landing Popup Module — landing_popup_module","text":"","code":"landing_popup_module( label = \"Landing Popup\", title = NULL, content = NULL, buttons = modalButton(\"Accept\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Landing Popup Module — landing_popup_module","text":"label character(1) label module. title character(1) text displayed title popup. content content popup. Passed ... shiny::modalDialog. Can character list shiny.tags. See examples. buttons shiny.tag list tags (tagList). Typically modalButton actionButton. See examples.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Landing Popup Module — landing_popup_module","text":"teal_module (extended teal_landing_module class) used teal applications.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Landing Popup Module — landing_popup_module","text":"","code":"app1 <- teal::init( data = teal_data(iris = iris), modules = teal::modules( teal::landing_popup_module( content = \"A place for the welcome message or a disclaimer statement.\", buttons = modalButton(\"Proceed\") ), example_module() ) ) #> [INFO] 2023-11-13 18:36:25.4921 pid:992 token:[] teal Initializing landing_popup_module #> module \"Landing Popup\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shinyApp(app1$ui, app1$server) } app2 <- teal::init( data = teal_data(iris = iris), modules = teal::modules( teal::landing_popup_module( title = \"Welcome\", content = tags$b( \"A place for the welcome message or a disclaimer statement.\", style = \"color: red;\" ), buttons = tagList( modalButton(\"Proceed\"), actionButton(\"read\", \"Read more\", onclick = \"window.open('http://google.com', '_blank')\" ), actionButton(\"close\", \"Reject\", onclick = \"window.close()\") ) ), example_module() ) ) #> [INFO] 2023-11-13 18:36:25.5548 pid:992 token:[] teal Initializing landing_popup_module #> module \"Landing Popup\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shinyApp(app2$ui, app2$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"Transform mapping matrix, .e. data frame maps filter state module, list specification like one used mapping attribute teal_slices. Global filters gathered one list element. module active filters global ones, mentioned output.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"","code":"matrix_to_mapping(mapping_matrix)"},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"mapping_matrix (data.frame) logical vectors columns represent modules row represent teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"named list like mapping attribute teal_slices object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a teal_module object. — module","title":"Creates a teal_module object. — module","text":"function embeds shiny module inside teal application. One teal_module maps one shiny module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a teal_module object. — module","text":"","code":"module( label = \"module\", server = function(id, ...) { moduleServer(id, function(input, output, session) { }) }, ui = function(id, ...) { tags$p(paste0(\"This module has no UI (id: \", id, \" )\")) }, filters, datanames = \"all\", server_args = NULL, ui_args = NULL ) # S3 method for teal_module toString(x, indent = 0, ...) # S3 method for teal_module print(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a teal_module object. — module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. server (function) shiny module following arguments: id - teal set proper shiny namespace module (see shiny::moduleServer()). input, output, session - (recommended) shiny::callModule() used call module. data (optional) module receive tdata object, list reactive (filtered) data specified filters argument. datasets (optional) module receive FilteredData. (See [teal.slice::FilteredData]). reporter (optional) module receive Reporter. (See teal.reporter::Reporter). ... (optional) server_args elements passed module named argument .... ui (function) Shiny ui module function following arguments: id - teal set proper shiny namespace module. data (optional) module receive list reactive (filtered) data specified filters argument. datasets (optional) module receive FilteredData. (See [teal.slice::FilteredData]). ... (optional) ui_args elements passed module named argument .... filters (character) Deprecated. Use datanames instead. datanames (character) vector datanames relevant item. filter panel automatically update shown filters include filters listed datasets. NULL hide filter panel, keyword '' show filters datasets. datanames also determines subset datasets appended data argument server function. server_args (named list) additional arguments passed server function. ui_args (named list) additional arguments passed ui function. x teal_module indent (integer) indent level; submodule indented one level ... parameters passed toString","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a teal_module object. — module","text":"object class teal_module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a teal_module object. — module","text":"","code":"library(shiny) app <- init( data = teal_data(dataset(\"iris\", iris)), modules = list( module( label = \"Module\", server = function(id, data) { moduleServer( id, module = function(input, output, session) { output$data <- renderDataTable(data[[\"iris\"]]()) } ) }, ui = function(id) { ns <- NS(id) tagList(dataTableOutput(ns(\"data\"))) } ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":null,"dir":"Reference","previous_headings":"","what":"Manage multiple FilteredData objects — filter_manager_ui","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"Oversee filter states whole application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"","code":"filter_manager_ui(id) filter_manager_srv(id, filtered_data_list, filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"id (character(1))shiny module id. filtered_data_list (named list) list, possibly nested, FilteredData objects. FilteredData served one module teal application. structure list must reflect nesting modules tabs names list must labels respective modules. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"list reactives, holding teal_slices, returned filter_manager_module_srv.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"module observes changes filters FilteredData object keeps track filters used. mapping filters modules kept mapping_matrix object (actually data.frame) tracks filters (rows) active modules (columns).","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter manager modal — module_filter_manager_modal","title":"Filter manager modal — module_filter_manager_modal","text":"Opens modal containing filter manager UI.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter manager modal — module_filter_manager_modal","text":"","code":"filter_manager_modal_ui(id) filter_manager_modal_srv(id, filtered_data_list, filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter manager modal — module_filter_manager_modal","text":"id (character(1))shiny module id. filtered_data_list (named list) list, possibly nested, FilteredData objects. FilteredData served one module teal application. structure list must reflect nesting modules tabs names list must labels respective modules. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filter manager modal — module_filter_manager_modal","text":"","code":"fd1 <- teal.slice::init_filtered_data(list(iris = list(dataset = iris))) fd2 <- teal.slice::init_filtered_data( list(iris = list(dataset = iris), mtcars = list(dataset = mtcars)) ) fd3 <- teal.slice::init_filtered_data( list(iris = list(dataset = iris), women = list(dataset = women)) ) filter <- teal_slices( teal.slice::teal_slice(dataname = \"iris\", varname = \"Sepal.Length\"), teal.slice::teal_slice(dataname = \"iris\", varname = \"Species\"), teal.slice::teal_slice(dataname = \"mtcars\", varname = \"mpg\"), teal.slice::teal_slice(dataname = \"women\", varname = \"height\"), mapping = list( module2 = c(\"mtcars mpg\"), module3 = c(\"women height\"), global_filters = \"iris Species\" ) ) app <- shinyApp( ui = fluidPage( teal:::filter_manager_modal_ui(\"manager\") ), server = function(input, output, session) { teal:::filter_manager_modal_srv( \"manager\", filtered_data_list = list(module1 = fd1, module2 = fd2, module3 = fd3), filter = filter ) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract/Remove module(s) of specific class — extract_module","title":"Extract/Remove module(s) of specific class — extract_module","text":"Given teal_module teal_modules, return elements structure according class.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract/Remove module(s) of specific class — extract_module","text":"","code":"extract_module(modules, class) drop_module(modules, class)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract/Remove module(s) of specific class — extract_module","text":"modules teal_modules class class name teal_module extracted dropped.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract/Remove module(s) of specific class — extract_module","text":"extract_module, teal_module class class teal_modules containing modules class class. drop_module, opposite, teal_modules class class. teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a UI of nested tabs of teal_modules — module_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"Create UI nested tabs teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"","code":"ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for default ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for teal_modules ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for teal_module ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for default srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for teal_modules srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for teal_module srv_nested_tabs( id, datasets, modules, is_module_specific = TRUE, reporter = teal.reporter::Reporter$new() )"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"id (character(1)) module id datasets (named list FilteredData) object store filter state filtered datasets, shared across modules. details see teal.slice::FilteredData. Structure list must structure modules argument list names must correspond labels modules. filter module-specific list contains object elements. depth (integer(1)) number helps determine depth modules nesting. is_module_specific (logical(1)) flag determining filter panel global module-specific. set TRUE, filter panel called inside module tab. reporter (Reporter) object teal.reporter","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"depending class modules, ui_nested_tabs returns: teal_module: instantiated UI module teal_modules: tabsetPanel tab corresponding recursively calling function .srv_nested_tabs returns reactive returns active module corresponds selected tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ui-nested-tabs","dir":"Reference","previous_headings":"","what":"ui_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"teal_modules translated tabsetPanel children another tab-module called recursively. UI teal_module obtained calling ui function . datasets argument required resolve teal arguments isolated context (respect reactivity)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"srv-nested-tabs","dir":"Reference","previous_headings":"","what":"srv_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"module calls recursively elements modules returns one currently active. teal_module returns self active module. teal_modules also returns module active within self determined input$active_tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"","code":"mods <- teal:::example_modules() datasets <- teal:::example_datasets() app <- shinyApp( ui = function() { tagList( teal:::include_teal_css_js(), textOutput(\"info\"), fluidPage( # needed for nice tabs teal:::ui_nested_tabs(\"dummy\", modules = mods, datasets = datasets) ) ) }, server = function(input, output, session) { active_module <- teal:::srv_nested_tabs( \"dummy\", datasets = datasets, modules = mods ) output$info <- renderText({ paste0(\"The currently active tab name is \", active_module()$label) }) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":null,"dir":"Reference","previous_headings":"","what":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"ui_nested_tabs function returns nested tabbed UI corresponding nested modules. function adds right filter panel main tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"","code":"ui_tabs_with_filters(id, modules, datasets, filter = teal_slices()) srv_tabs_with_filters( id, datasets, modules, reporter = teal.reporter::Reporter$new(), filter = teal_slices() )"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"id (character(1)) module id datasets (named list FilteredData) object store filter state filtered datasets, shared across modules. details see teal.slice::FilteredData. Structure list must structure modules argument list names must correspond labels modules. filter module-specific list contains object elements. reporter (Reporter) object teal.reporter","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"tagList main menu, place holders filters place holders teal modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"right filter panel's filter choices affect datasets object. Therefore, modules using datasets share filters. works nested modules depth greater 2, though filter panel inserted right modules depth 1 leaves.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"","code":"mods <- teal:::example_modules() datasets <- teal:::example_datasets() app <- shinyApp( ui = function() { tagList( teal:::include_teal_css_js(), textOutput(\"info\"), fluidPage( # needed for nice tabs ui_tabs_with_filters(\"dummy\", modules = mods, datasets = datasets) ) ) }, server = function(input, output, session) { output$info <- renderText({ paste0(\"The currently active tab name is \", active_module()$label) }) active_module <- srv_tabs_with_filters(id = \"dummy\", datasets = datasets, modules = mods) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":null,"dir":"Reference","previous_headings":"","what":"teal main app module — module_teal","title":"teal main app module — module_teal","text":"main teal app puts everything together.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"teal main app module — module_teal","text":"","code":"ui_teal( id, splash_ui = tags$h2(\"Starting the Teal App\"), title = NULL, header = tags$p(\"\"), footer = tags$p(\"\") ) srv_teal(id, modules, teal_data_rv, filter = teal_slices())"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"teal main app module — module_teal","text":"id (character(1)) module id splash_ui (shiny.tag) UI display initially, can splash screen Shiny module UI. latter, see init() call corresponding server function. title (NULL character) browser window title (defaults host URL page). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app teal_data_rv (reactive) returns teal_data, evaluated , NULL value ignored","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"teal main app module — module_teal","text":"ui_teal returns HTML Shiny module UI. srv_teal returns reactive returns currently active module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"teal main app module — module_teal","text":"displays splash UI used fetch data, possibly prompting password input fetch data. data ready, splash screen replaced actual teal UI tabsetted filter panel datanames relevant current tab. Nested tabs possible, limit two nesting levels reasons clarity UI. splash screen functionality can also used non-delayed data takes time load memory, avoiding Shiny session timeouts. Server evaluates teal_data_rv (delayed data mechanism) creates datasets object shared across modules. ready non-NULL, splash screen replaced main teal UI depends data. currently active tab tracked right filter panel updates displayed datasets filter according active datanames tab. written Shiny module can added apps well.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"teal main app module — module_teal","text":"","code":"mods <- teal:::example_modules() teal_data_rv <- reactive(teal:::example_cdisc_data()) app <- shinyApp( ui = function() { teal:::ui_teal(\"dummy\") }, server = function(input, output, session) { active_module <- teal:::srv_teal(id = \"dummy\", modules = mods, teal_data_rv = teal_data_rv) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a teal_modules object. — modules","title":"Creates a teal_modules object. — modules","text":"function collects list teal_modules teal_module objects returns teal_modules object containing passed objects. function dictates modules included teal application. internal structure teal_modules shapes navigation panel teal application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a teal_modules object. — modules","text":"","code":"modules(..., label = \"root\") # S3 method for teal_modules toString(x, indent = 0, ...) # S3 method for teal_modules print(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a teal_modules object. — modules","text":"... parameters passed toString label (character(1)) label modules collection (default \"root\"). using label argument must explicitly named. example modules(\"lab\", ...) converted modules(label = \"lab\", ...) x teal_modules indent (integer) indent level; submodule indented one level ","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a teal_modules object. — modules","text":"object class teal_modules. Object contains following fields label: taken label argument children: list containing objects passed .... List elements named label attribute converted valid shiny id. (character)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a teal_modules object. — modules","text":"","code":"library(shiny) app <- init( data = teal_data(dataset(\"iris\", iris)), modules = modules( label = \"Modules\", modules( label = \"Module\", module( label = \"Inner module\", server = function(id, data) { moduleServer( id, module = function(input, output, session) { output$data <- renderDataTable(data[[\"iris\"]]()) } ) }, ui = function(id) { ns <- NS(id) tagList(dataTableOutput(ns(\"data\"))) }, datanames = \"all\" ) ), module( label = \"Another module\", server = function(id) { moduleServer( id, module = function(input, output, session) { output$text <- renderText(\"Another module\") } ) }, ui = function(id) { ns <- NS(id) tagList(textOutput(ns(\"text\"))) }, datanames = NULL ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":null,"dir":"Reference","previous_headings":"","what":"Get module depth — modules_depth","title":"Get module depth — modules_depth","text":"Depth starts 0, single teal.module depth 0. Nesting increases overall depth 1.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get module depth — modules_depth","text":"","code":"modules_depth(modules, depth = 0L)"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get module depth — modules_depth","text":"modules (list, teal_modules teal_module) nested list teal_modules teal_module objects single teal_modules teal_module object. specific output modules displayed teal application. See modules() module() details. depth optional, integer determining current depth level","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get module depth — modules_depth","text":"depth level given module","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get module depth — modules_depth","text":"","code":"mods <- modules( label = \"d1\", modules( label = \"d2\", modules( label = \"d3\", module(label = \"aaa1\"), module(label = \"aaa2\"), module(label = \"aaa3\") ), module(label = \"bbb\") ), module(label = \"ccc\") ) #> module \"aaa1\" server function takes no data so \"datanames\" will be ignored #> module \"aaa2\" server function takes no data so \"datanames\" will be ignored #> module \"aaa3\" server function takes no data so \"datanames\" will be ignored #> module \"bbb\" server function takes no data so \"datanames\" will be ignored #> module \"ccc\" server function takes no data so \"datanames\" will be ignored stopifnot(teal:::modules_depth(mods) == 3L) mods <- modules( label = \"a\", modules( label = \"b1\", module(label = \"c\") ), module(label = \"b2\") ) #> module \"c\" server function takes no data so \"datanames\" will be ignored #> module \"b2\" server function takes no data so \"datanames\" will be ignored stopifnot(teal:::modules_depth(mods) == 2L)"},{"path":"https://insightsengineering.github.io/teal/main/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. lifecycle deprecate_soft magrittr %>%","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":null,"dir":"Reference","previous_headings":"","what":"Template Function for TealReportCard Creation and Customization — report_card_template","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"function generates report card title, optional description, option append filter state list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"","code":"report_card_template( title, label, description = NULL, with_filter, filter_panel_api )"},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"title (character(1)) title card (unless overwritten label) label (character(1)) label provided user adding card description (character(1)) optional additional description with_filter (logical(1)) flag indicating add filter state filter_panel_api (FilterPanelAPI) object API allows generation filter state report","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"(TealReportCard) populated title, description filter state","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a teal module for previewing a report — reporter_previewer_module","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"function wraps teal.reporter::reporter_previewer_ui() teal.reporter::reporter_previewer_srv() teal_module used teal applications. creating teal application using init() module added application automatically teal modules support report generation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"","code":"reporter_previewer_module(label = \"Report previewer\", server_args = list())"},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. server_args (named list) Arguments passed teal.reporter::reporter_previewer_srv().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"teal_module (extended teal_module_previewer class) containing teal.reporter previewer functionality.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve datanames for the modules — resolve_modules_datanames","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"Modifies module$datanames include names parent dataset (taken join_keys). datanames set \"\" replaced available datasets names.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"","code":"resolve_modules_datanames(modules, datanames, join_keys)"},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"modules (teal_modules) object datanames (character) names datasets available data object join_keys (JoinKeys) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"teal_modules resolved datanames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Run JS file from /inst/js/ package directory — run_js_files","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"triggered server execute client rather triggered directly client. Unlike include_js_files includes JavaScript functions, run_js actually executes JavaScript functions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"","code":"run_js_files(files)"},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"files (character) vector filenames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":null,"dir":"Reference","previous_headings":"","what":"Show R Code Modal — show_rcode_modal","title":"Show R Code Modal — show_rcode_modal","text":"Use shiny::showModal() function show R code inside.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Show R Code Modal — show_rcode_modal","text":"","code":"show_rcode_modal(title = NULL, rcode, session = getDefaultReactiveDomain())"},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Show R Code Modal — show_rcode_modal","text":"title (character(1)) Title modal, displayed first comment R-code. rcode (character) vector R code show inside modal. session (ShinySession optional)shiny Session object, missing shiny::getDefaultReactiveDomain() used.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Show R Code Modal — show_rcode_modal","text":"shiny::showModal()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":null,"dir":"Reference","previous_headings":"","what":"Restore teal_slices object from a file — slices_restore","title":"Restore teal_slices object from a file — slices_restore","text":"function takes file path JSON file containing teal_slices object restores original form. restored teal_slices object can used access filter states corresponding attributes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Restore teal_slices object from a file — slices_restore","text":"","code":"slices_restore(file)"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Restore teal_slices object from a file — slices_restore","text":"file Path file teal_slices stored. Must .json extension read access.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Restore teal_slices object from a file — slices_restore","text":"teal_slices object restored file.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Restore teal_slices object from a file — slices_restore","text":"","code":"if (interactive()) { # Restore a teal_slices object from a file tss_restored <- slices_restore(\"path/to/file.json\") }"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":null,"dir":"Reference","previous_headings":"","what":"Store teal_slices object to a file — slices_store","title":"Store teal_slices object to a file — slices_store","text":"function takes teal_slices object saves file JSON format. teal_slices object contains information filter states can used create, modify, delete filter states. saved file can later loaded using slices_restore function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Store teal_slices object to a file — slices_store","text":"","code":"slices_store(tss, file)"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Store teal_slices object to a file — slices_store","text":"tss (teal_slices) object stored. file (character(1)) file path teal_slices object saved. file extension \".json\".","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Store teal_slices object to a file — slices_store","text":"NULL, invisibly.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Store teal_slices object to a file — slices_store","text":"Date class stored \"ISO8601\" format (YYYY-MM-DD). POSIX*t classes converted character using format.POSIX*t(usetz = TRUE, tz = \"UTC\") (YYYY-MM-DD {N}{N}:{N}{N}:{N}{N} UTC, {N} = [0-9] number UTC Coordinated Universal Time timezone short-code). format assumed slices_restore. POSIX*t objects selected choices fields teal_slice objects always printed UTC timezone well.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Store teal_slices object to a file — slices_store","text":"","code":"# Create a teal_slices object tss <- teal_slices( teal_slice(dataname = \"data\", varname = \"var\"), teal_slice(dataname = \"data\", expr = \"x > 0\", id = \"positive_x\", title = \"Positive x\") ) if (interactive()) { # Store the teal_slices object to a file slices_store(tss, \"path/to/file.json\") }"},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter state snapshot management. — snapshot_manager_module","title":"Filter state snapshot management. — snapshot_manager_module","text":"Capture restore snapshots global (app) filter state.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter state snapshot management. — snapshot_manager_module","text":"","code":"snapshot_manager_ui(id) snapshot_manager_srv(id, slices_global, mapping_matrix, filtered_data_list)"},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter state snapshot management. — snapshot_manager_module","text":"id (character(1)) shiny module id slices_global (reactiveVal) contains teal_slices object containing teal_slices existing app, active inactive mapping_matrix (reactive) contains data.frame representation mapping filter state ids (rows) modules labels (columns); columns logical vectors filtered_data_list non-nested (named list) contains FilteredData objects","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filter state snapshot management. — snapshot_manager_module","text":"Nothing returned.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filter state snapshot management. — snapshot_manager_module","text":"module introduces snapshots: stored descriptions filter state entire application. Snapshots allow user save current filter state application later use session, well save file order share app developer users, turn can upload session. snapshot manager accessed filter manager, cog icon top right corner. beginning session presents three icons: camera, upload, circular arrow. Clicking camera captures snapshot, clicking upload adds snapshot file applies filter states therein, clicking arrow resets initial application state. snapshots added, show rows table select button save button.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"server-logic","dir":"Reference","previous_headings":"","what":"Server logic","title":"Filter state snapshot management. — snapshot_manager_module","text":"Snapshots basically teal_slices objects, however, since module served separate instance FilteredData objects require shared state, teal_slice reactiveVal teal_slices stored . Therefore, teal_slices reversibly converted list lists representation (attributes maintained). Snapshots stored reactiveVal named list. first snapshot initial state application user can add snapshot whenever see fit. every snapshot except initial one, piece UI generated contains snapshot name, select button restore snapshot, save button save file. initial snapshot restored separate \"reset\" button. saved directly user welcome capture initial state snapshot save .","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"snapshot-mechanics","dir":"Reference","previous_headings":"","what":"Snapshot mechanics","title":"Filter state snapshot management. — snapshot_manager_module","text":"snapshot captured, user prompted name . Names displayed since used create button ids, hood converted syntactically valid strings. New snapshot names validated valid versions unique. Leading trailing white space trimmed. module can read global state application slices_global mapping_matrix. former provides list existing teal_slices latter says slice active module. name accepted, slices_global converted list lists - snapshot. snapshot contains mapping attribute initial application state (one restored), may reflect current one, mapping_matrix transformed obtain current mapping, .e. list , passed mapping argument teal_slices, result current mapping. substituted snapshot's mapping attribute snapshot added snapshot list. restore app state, snapshot retrieved storage rebuilt teal_slices object. state FilteredData objects (provided filtered_data_list) cleared set anew according mapping attribute snapshot. snapshot set current content slices_global. save snapshot, snapshot retrieved reassembled just like restoring, saved file slices_store. snapshot uploaded, first added storage just like newly created one, used restore app state much like snapshot taken storage. Upon clicking upload icon user prompted file upload may choose name new snapshot. name defaults name file (extension dropped) normal naming rules apply. Loading file yields teal_slices object, disassembled storage used directly restoring app state.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"transferring-snapshots","dir":"Reference","previous_headings":"","what":"Transferring snapshots","title":"Filter state snapshot management. — snapshot_manager_module","text":"Snapshots uploaded disk used application come , .e. application uses data modules. ensure case, init stamps teal_slices app id stored app_id attribute teal_slices object. snapshot restored file, app_id compared current app state match snapshot admitted session.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Filter state snapshot management. — snapshot_manager_module","text":"Aleksander Chlebowski","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":null,"dir":"Reference","previous_headings":"","what":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"Please also refer doc init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"","code":"srv_teal_with_splash(id, data, modules, filter = teal_slices())"},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"id (character) module id embed , provided, server function must called shiny::moduleServer(); See vignette example. However, ui_teal_with_splash() preferred function. data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. modules teal_modules object containing output modules displayed teal application. See modules() module() details. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"reactive containing teal_data object data loaded. data loaded yet, reactive returns NULL.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a tdata Object — tdata","title":"Create a tdata Object — tdata","text":"Create new object called tdata contains data, reactive list data.frames (MultiAssayExperiment), attributes: code (reactive) containing code used generate data join_keys (JoinKeys) containing relationships data metadata (named list) containing metadata associated data frames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a tdata Object — tdata","text":"","code":"new_tdata(data, code = \"\", join_keys = NULL, metadata = NULL) # S3 method for tdata get_code(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a tdata Object — tdata","text":"data named list data.frames (MultiAssayExperiment) optionally can reactive. Inside object items made reactive. code character (reactive evaluates character) containing code used generate data. reactive code changing reactive context (e.g. filtering changes code). Inside object code made reactive join_keys teal.data::JoinKeys object containing relationships datasets. metadata named list element contains list metadata named data.frame element list atomic length one. x tdata object ... additional arguments generic","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a tdata Object — tdata","text":"tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a tdata Object — tdata","text":"","code":"data <- new_tdata( data = list(iris = iris, mtcars = reactive(mtcars), dd = data.frame(x = 1:10)), code = \"iris <- iris mtcars <- mtcars dd <- data.frame(x = 1:10)\", metadata = list(dd = list(author = \"NEST\"), iris = list(version = 1)) ) # Extract a data.frame isolate(data[[\"iris\"]]()) #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> 1 5.1 3.5 1.4 0.2 setosa #> 2 4.9 3.0 1.4 0.2 setosa #> 3 4.7 3.2 1.3 0.2 setosa #> 4 4.6 3.1 1.5 0.2 setosa #> 5 5.0 3.6 1.4 0.2 setosa #> 6 5.4 3.9 1.7 0.4 setosa #> 7 4.6 3.4 1.4 0.3 setosa #> 8 5.0 3.4 1.5 0.2 setosa #> 9 4.4 2.9 1.4 0.2 setosa #> 10 4.9 3.1 1.5 0.1 setosa #> 11 5.4 3.7 1.5 0.2 setosa #> 12 4.8 3.4 1.6 0.2 setosa #> 13 4.8 3.0 1.4 0.1 setosa #> 14 4.3 3.0 1.1 0.1 setosa #> 15 5.8 4.0 1.2 0.2 setosa #> 16 5.7 4.4 1.5 0.4 setosa #> 17 5.4 3.9 1.3 0.4 setosa #> 18 5.1 3.5 1.4 0.3 setosa #> 19 5.7 3.8 1.7 0.3 setosa #> 20 5.1 3.8 1.5 0.3 setosa #> 21 5.4 3.4 1.7 0.2 setosa #> 22 5.1 3.7 1.5 0.4 setosa #> 23 4.6 3.6 1.0 0.2 setosa #> 24 5.1 3.3 1.7 0.5 setosa #> 25 4.8 3.4 1.9 0.2 setosa #> 26 5.0 3.0 1.6 0.2 setosa #> 27 5.0 3.4 1.6 0.4 setosa #> 28 5.2 3.5 1.5 0.2 setosa #> 29 5.2 3.4 1.4 0.2 setosa #> 30 4.7 3.2 1.6 0.2 setosa #> 31 4.8 3.1 1.6 0.2 setosa #> 32 5.4 3.4 1.5 0.4 setosa #> 33 5.2 4.1 1.5 0.1 setosa #> 34 5.5 4.2 1.4 0.2 setosa #> 35 4.9 3.1 1.5 0.2 setosa #> 36 5.0 3.2 1.2 0.2 setosa #> 37 5.5 3.5 1.3 0.2 setosa #> 38 4.9 3.6 1.4 0.1 setosa #> 39 4.4 3.0 1.3 0.2 setosa #> 40 5.1 3.4 1.5 0.2 setosa #> 41 5.0 3.5 1.3 0.3 setosa #> 42 4.5 2.3 1.3 0.3 setosa #> 43 4.4 3.2 1.3 0.2 setosa #> 44 5.0 3.5 1.6 0.6 setosa #> 45 5.1 3.8 1.9 0.4 setosa #> 46 4.8 3.0 1.4 0.3 setosa #> 47 5.1 3.8 1.6 0.2 setosa #> 48 4.6 3.2 1.4 0.2 setosa #> 49 5.3 3.7 1.5 0.2 setosa #> 50 5.0 3.3 1.4 0.2 setosa #> 51 7.0 3.2 4.7 1.4 versicolor #> 52 6.4 3.2 4.5 1.5 versicolor #> 53 6.9 3.1 4.9 1.5 versicolor #> 54 5.5 2.3 4.0 1.3 versicolor #> 55 6.5 2.8 4.6 1.5 versicolor #> 56 5.7 2.8 4.5 1.3 versicolor #> 57 6.3 3.3 4.7 1.6 versicolor #> 58 4.9 2.4 3.3 1.0 versicolor #> 59 6.6 2.9 4.6 1.3 versicolor #> 60 5.2 2.7 3.9 1.4 versicolor #> 61 5.0 2.0 3.5 1.0 versicolor #> 62 5.9 3.0 4.2 1.5 versicolor #> 63 6.0 2.2 4.0 1.0 versicolor #> 64 6.1 2.9 4.7 1.4 versicolor #> 65 5.6 2.9 3.6 1.3 versicolor #> 66 6.7 3.1 4.4 1.4 versicolor #> 67 5.6 3.0 4.5 1.5 versicolor #> 68 5.8 2.7 4.1 1.0 versicolor #> 69 6.2 2.2 4.5 1.5 versicolor #> 70 5.6 2.5 3.9 1.1 versicolor #> 71 5.9 3.2 4.8 1.8 versicolor #> 72 6.1 2.8 4.0 1.3 versicolor #> 73 6.3 2.5 4.9 1.5 versicolor #> 74 6.1 2.8 4.7 1.2 versicolor #> 75 6.4 2.9 4.3 1.3 versicolor #> 76 6.6 3.0 4.4 1.4 versicolor #> 77 6.8 2.8 4.8 1.4 versicolor #> 78 6.7 3.0 5.0 1.7 versicolor #> 79 6.0 2.9 4.5 1.5 versicolor #> 80 5.7 2.6 3.5 1.0 versicolor #> 81 5.5 2.4 3.8 1.1 versicolor #> 82 5.5 2.4 3.7 1.0 versicolor #> 83 5.8 2.7 3.9 1.2 versicolor #> 84 6.0 2.7 5.1 1.6 versicolor #> 85 5.4 3.0 4.5 1.5 versicolor #> 86 6.0 3.4 4.5 1.6 versicolor #> 87 6.7 3.1 4.7 1.5 versicolor #> 88 6.3 2.3 4.4 1.3 versicolor #> 89 5.6 3.0 4.1 1.3 versicolor #> 90 5.5 2.5 4.0 1.3 versicolor #> 91 5.5 2.6 4.4 1.2 versicolor #> 92 6.1 3.0 4.6 1.4 versicolor #> 93 5.8 2.6 4.0 1.2 versicolor #> 94 5.0 2.3 3.3 1.0 versicolor #> 95 5.6 2.7 4.2 1.3 versicolor #> 96 5.7 3.0 4.2 1.2 versicolor #> 97 5.7 2.9 4.2 1.3 versicolor #> 98 6.2 2.9 4.3 1.3 versicolor #> 99 5.1 2.5 3.0 1.1 versicolor #> 100 5.7 2.8 4.1 1.3 versicolor #> 101 6.3 3.3 6.0 2.5 virginica #> 102 5.8 2.7 5.1 1.9 virginica #> 103 7.1 3.0 5.9 2.1 virginica #> 104 6.3 2.9 5.6 1.8 virginica #> 105 6.5 3.0 5.8 2.2 virginica #> 106 7.6 3.0 6.6 2.1 virginica #> 107 4.9 2.5 4.5 1.7 virginica #> 108 7.3 2.9 6.3 1.8 virginica #> 109 6.7 2.5 5.8 1.8 virginica #> 110 7.2 3.6 6.1 2.5 virginica #> 111 6.5 3.2 5.1 2.0 virginica #> 112 6.4 2.7 5.3 1.9 virginica #> 113 6.8 3.0 5.5 2.1 virginica #> 114 5.7 2.5 5.0 2.0 virginica #> 115 5.8 2.8 5.1 2.4 virginica #> 116 6.4 3.2 5.3 2.3 virginica #> 117 6.5 3.0 5.5 1.8 virginica #> 118 7.7 3.8 6.7 2.2 virginica #> 119 7.7 2.6 6.9 2.3 virginica #> 120 6.0 2.2 5.0 1.5 virginica #> 121 6.9 3.2 5.7 2.3 virginica #> 122 5.6 2.8 4.9 2.0 virginica #> 123 7.7 2.8 6.7 2.0 virginica #> 124 6.3 2.7 4.9 1.8 virginica #> 125 6.7 3.3 5.7 2.1 virginica #> 126 7.2 3.2 6.0 1.8 virginica #> 127 6.2 2.8 4.8 1.8 virginica #> 128 6.1 3.0 4.9 1.8 virginica #> 129 6.4 2.8 5.6 2.1 virginica #> 130 7.2 3.0 5.8 1.6 virginica #> 131 7.4 2.8 6.1 1.9 virginica #> 132 7.9 3.8 6.4 2.0 virginica #> 133 6.4 2.8 5.6 2.2 virginica #> 134 6.3 2.8 5.1 1.5 virginica #> 135 6.1 2.6 5.6 1.4 virginica #> 136 7.7 3.0 6.1 2.3 virginica #> 137 6.3 3.4 5.6 2.4 virginica #> 138 6.4 3.1 5.5 1.8 virginica #> 139 6.0 3.0 4.8 1.8 virginica #> 140 6.9 3.1 5.4 2.1 virginica #> 141 6.7 3.1 5.6 2.4 virginica #> 142 6.9 3.1 5.1 2.3 virginica #> 143 5.8 2.7 5.1 1.9 virginica #> 144 6.8 3.2 5.9 2.3 virginica #> 145 6.7 3.3 5.7 2.5 virginica #> 146 6.7 3.0 5.2 2.3 virginica #> 147 6.3 2.5 5.0 1.9 virginica #> 148 6.5 3.0 5.2 2.0 virginica #> 149 6.2 3.4 5.4 2.3 virginica #> 150 5.9 3.0 5.1 1.8 virginica # Get code isolate(get_code(data)) #> [1] \"iris <- iris\\n mtcars <- mtcars\\n dd <- data.frame(x = 1:10)\" # Get metadata get_metadata(data, \"iris\") #> $version #> [1] 1 #>"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"Function convert tdata object environment reactives inside tdata first evaluated","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"","code":"tdata2env(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"data tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"environment","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"","code":"data <- new_tdata( data = list(iris = iris, mtcars = reactive(mtcars)), code = \"iris <- iris mtcars = mtcars\" ) my_env <- isolate(tdata2env(data))"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":null,"dir":"Reference","previous_headings":"","what":"teal: Interactive Exploration of Clinical Trials Data — teal-package","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"teal package provides shiny based framework creating interactive data analysis environment.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"learn mode package either read project website Project Website read init manual pages.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"Maintainer: Dawid Kaledkowski dawid.kaledkowski@roche.com Authors: Pawel Rucki pawel.rucki@roche.com Aleksander Chlebowski aleksander.chlebowski@contractors.roche.com Kartikeya Kirar kartikeya.kirar@businesspartner.roche.com Marcin Kosinski marcin.kosinski.mk1@roche.com Adrian Waddell adrian.waddell@gene.com Nikolas Burkoff Mahmoud Hallal Maciej Nasinski Konrad Pagacz Junlue Zhao contributors: Chendi Liao chendi.liao@roche.com [reviewer] Dony Unardi unardid@gene.com [reviewer] F. Hoffmann-La Roche AG [copyright holder, funder] Maximilian Mordig [contributor]","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Data module for teal applications — teal_data_module","title":"Data module for teal applications — teal_data_module","text":"Creates teal_data_module object - shiny module supply modify data teal application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data module for teal applications — teal_data_module","text":"","code":"teal_data_module(ui, server)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Data module for teal applications — teal_data_module","text":"ui (function(id))shiny module ui function; must take id argument server (function(id))shiny module ui function; must take id argument; must return reactive expression containing teal_data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Data module for teal applications — teal_data_module","text":"Object class teal_data_module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data module for teal applications — teal_data_module","text":"function creates shiny module allows running data pre-processing code app starts. body server function run app rather global environment. means run every time app starts, use sparingly. Pass module instead teal_data object call init(). See vignette vignette(\"data--shiny-module\", package = \"teal\") details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data module for teal applications — teal_data_module","text":"","code":"data <- teal_data_module( ui = function(id) { ns <- NS(id) actionButton(ns(\"submit\"), label = \"Load data\") }, server = function(id) { moduleServer(id, function(input, output, session) { eventReactive(input$submit, { data <- within( teal_data(), { dataset1 <- iris dataset2 <- mtcars } ) datanames(data) <- c(\"iris\", \"mtcars\") data }) }) } )"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a FilteredData — teal_data_to_filtered_data","title":"Create a FilteredData — teal_data_to_filtered_data","text":"Create FilteredData object teal_data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a FilteredData — teal_data_to_filtered_data","text":"","code":"teal_data_to_filtered_data(x)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a FilteredData — teal_data_to_filtered_data","text":"x (teal_data) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a FilteredData — teal_data_to_filtered_data","text":"(FilteredData) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter settings for teal applications — teal_slices","title":"Filter settings for teal applications — teal_slices","text":"Specify initial filter states filtering settings teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter settings for teal applications — teal_slices","text":"","code":"teal_slices( ..., exclude_varnames = NULL, include_varnames = NULL, count_type = NULL, allow_add = TRUE, module_specific = FALSE, mapping, app_id = NULL ) as.teal_slices(x) # S3 method for teal_slices c(...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter settings for teal applications — teal_slices","text":"... number teal_slice objects. print format, additional arguments passed functions. include_varnames, exclude_varnames (named lists character) list names match names data sets vector elements match variable names respective data sets; specify variables allowed filtered; see Details count_type new feature. kindly share opinions. (character(1)) string specifying observations tallied filter states. Possible options: \"none\" (default) counts single FilterState show unfiltered number . \"\" counts single FilterState show number observation filtered unfiltered dataset. Note, issues reported using option MultiAssayExperiment. Please make sure adding new filters fail target platform deploying production. allow_add (logical(1)) logical flag specifying whether user able add new filters module_specific (logical(1)) TRUE filter panel module-specific. modules can different set filters specified - see mapping argument. FALSE one filter panel needed modules. filters shared modules. mapping new feature. kindly share opinions. (named list) Specifies filters active modules app start. Elements contain character vector teal_slice ids (see teal.slice::teal_slice()). Names list correspond teal_module label set module() function. ids listed \"global_filters active modules. missing, filters applied modules. empty list, filters available modules start inactive. module_specific FALSE, global_filters active start. app_id (character(1)) internal use , set manually. Added init teal_slices can matched app used. Used verifying snapshots uploaded file. See snapshot. x (list) lists convert teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filter settings for teal applications — teal_slices","text":"teal_slices object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filter settings for teal applications — teal_slices","text":"Produces teal_slices object. teal_slice components specify filter states active app starts. Attributes (created named arguments) configure way app applies filters. See argument descriptions details.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filter settings for teal applications — teal_slices","text":"","code":"filter <- teal_slices( teal.slice::teal_slice(dataname = \"iris\", varname = \"Species\", id = \"species\"), teal.slice::teal_slice(dataname = \"iris\", varname = \"Sepal.Length\", id = \"sepal_length\"), teal.slice::teal_slice( dataname = \"iris\", id = \"long_petals\", title = \"Long petals\", expr = \"Petal.Length > 5\" ), teal.slice::teal_slice(dataname = \"mtcars\", varname = \"mpg\", id = \"mtcars_mpg\"), mapping = list( module1 = c(\"species\", \"sepal_length\"), module2 = c(\"mtcars_mpg\"), global_filters = \"long_petals\" ) ) app <- teal::init( modules = list( module(\"module1\"), module(\"module2\") ), data = list(iris, mtcars), filter = filter ) #> module \"module1\" server function takes no data so \"datanames\" will be ignored #> module \"module2\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shiny::runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":null,"dir":"Reference","previous_headings":"","what":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"splash screen used query password fetch data. init() thin wrapper around module useful end-users assumes top-level module embedded. function instead adheres Shiny module conventions. data obtained delayed loading, splash screen used. Otherwise, default splash screen shown. Please also refer doc init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"","code":"ui_teal_with_splash( id, data, title, header = tags$p(\"Add Title Here\"), footer = tags$p(\"Add Footer Here\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"id (character(1)) module id data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. title (NULL character) browser window title (defaults host URL page). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":null,"dir":"Reference","previous_headings":"","what":"Explicitly enumerate global filters. — unfold_mapping","title":"Explicitly enumerate global filters. — unfold_mapping","text":"Transform module mapping global filters explicitly specified every module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Explicitly enumerate global filters. — unfold_mapping","text":"","code":"unfold_mapping(mapping, module_names)"},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Explicitly enumerate global filters. — unfold_mapping","text":"mapping (named list) stored mapping parameter teal_slices module_names (character) vector containing names modules app","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Explicitly enumerate global filters. — unfold_mapping","text":"named_list one element per module, element containing filters applied module.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"","code":"validate_has_data( x, min_nrow = NULL, complete = FALSE, allow_inf = TRUE, msg = NULL )"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"x data.frame min_nrow minimum number rows x complete logical default FALSE set TRUE complete cases checked. allow_inf logical default TRUE set FALSE error thrown values infinite. msg (character(1)) additional message display alongside default message.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"","code":"library(teal) ui <- fluidPage( sliderInput(\"len\", \"Max Length of Sepal\", min = 4.3, max = 7.9, value = 5 ), plotOutput(\"plot\") ) server <- function(input, output) { output$plot <- renderPlot({ df <- iris[iris$Sepal.Length <= input$len, ] validate_has_data( iris_f, min_nrow = 10, complete = FALSE, msg = \"Please adjust Max Length of Sepal\" ) hist(iris_f$Sepal.Length, breaks = 5) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"","code":"validate_has_elements(x, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"x vector msg message display","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"","code":"data <- data.frame( id = c(1:10, 11:20, 1:10), strata = rep(c(\"A\", \"B\"), each = 15) ) ui <- fluidPage( selectInput(\"ref1\", \"Select strata1 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"A\" ), selectInput(\"ref2\", \"Select strata2 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"B\" ), verbatimTextOutput(\"arm_summary\") ) server <- function(input, output) { output$arm_summary <- renderText({ sample_1 <- data$id[data$strata == input$ref1] sample_2 <- data$id[data$strata == input$ref2] validate_has_elements(sample_1, \"No subjects in strata1.\") validate_has_elements(sample_2, \"No subjects in strata2.\") paste0( \"Number of samples in: strata1=\", length(sample_1), \" comparions strata2=\", length(sample_2) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that dataset contains specific variable — validate_has_variable","text":"","code":"validate_has_variable(data, varname, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that dataset contains specific variable — validate_has_variable","text":"data data.frame varname name variable data msg message display data include varname","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that dataset contains specific variable — validate_has_variable","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that dataset contains specific variable — validate_has_variable","text":"","code":"data <- data.frame( one = rep(\"a\", length.out = 20), two = rep(c(\"a\", \"b\"), length.out = 20) ) ui <- fluidPage( selectInput( \"var\", \"Select variable\", choices = c(\"one\", \"two\", \"three\", \"four\"), selected = \"one\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ validate_has_variable(data, input$var) paste0(\"Selected treatment variables: \", paste(input$var, collapse = \", \")) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that vector includes all expected values — validate_in","text":"","code":"validate_in(x, choices, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that vector includes all expected values — validate_in","text":"x values test. must choices choices vector test values x msg warning message display","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that vector includes all expected values — validate_in","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that vector includes all expected values — validate_in","text":"","code":"ui <- fluidPage( selectInput( \"species\", \"Select species\", choices = c(\"setosa\", \"versicolor\", \"virginica\", \"unknown species\"), selected = \"setosa\", multiple = FALSE ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderPrint({ validate_in(input$species, iris$Species, \"Species does not exist.\") nrow(iris[iris$Species == input$species, ]) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":null,"dir":"Reference","previous_headings":"","what":"Send input validation messages to output. — validate_inputs","title":"Send input validation messages to output. — validate_inputs","text":"Captures messages InputValidator objects collates one message passed validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Send input validation messages to output. — validate_inputs","text":"","code":"validate_inputs(..., header = \"Some inputs require attention\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Send input validation messages to output. — validate_inputs","text":"... either number InputValidator objects optionally named, possibly nested list InputValidator objects, see Details header character(1) generic validation message; set NULL omit","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Send input validation messages to output. — validate_inputs","text":"Returns NULL final validation call passes shiny.silent.error fails.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Send input validation messages to output. — validate_inputs","text":"shiny::validate used withhold rendering output element certain conditions met print validation message place output element. shinyvalidate::InputValidator allows validate input elements display specific messages respective input widgets. validate_inputs provides hybrid solution. Given InputValidator object, messages corresponding inputs fail validation extracted placed one validation message passed validate/need call. way input validator messages repeated output. ... argument accepts number InputValidator objects nested list objects. validators passed directly, messages printed together one (optional) header message specified header. list passed, messages grouped validator. list's names used headers respective message groups. neither nested list elements named, header message taken header.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Send input validation messages to output. — validate_inputs","text":"","code":"library(shiny) library(shinyvalidate) ui <- fluidPage( selectInput(\"method\", \"validation method\", c(\"sequential\", \"combined\", \"grouped\")), sidebarLayout( sidebarPanel( selectInput(\"letter\", \"select a letter:\", c(letters[1:3], LETTERS[4:6])), selectInput(\"number\", \"select a number:\", 1:6), br(), selectInput(\"color\", \"select a color:\", c(\"black\", \"indianred2\", \"springgreen2\", \"cornflowerblue\"), multiple = TRUE ), sliderInput(\"size\", \"select point size:\", min = 0.1, max = 4, value = 0.25 ) ), mainPanel(plotOutput(\"plot\")) ) ) server <- function(input, output) { # set up input validation iv <- InputValidator$new() iv$add_rule(\"letter\", sv_in_set(LETTERS, \"choose a capital letter\")) iv$add_rule(\"number\", ~ if (as.integer(.) %% 2L == 1L) \"choose an even number\") iv$enable() # more input validation iv_par <- InputValidator$new() iv_par$add_rule(\"color\", sv_required(message = \"choose a color\")) iv_par$add_rule(\"color\", ~ if (length(.) > 1L) \"choose only one color\") iv_par$add_rule( \"size\", sv_between( left = 0.5, right = 3, message_fmt = \"choose a value between {left} and {right}\" ) ) iv_par$enable() output$plot <- renderPlot({ # validate output switch(input[[\"method\"]], \"sequential\" = { validate_inputs(iv) validate_inputs(iv_par, header = \"Set proper graphical parameters\") }, \"combined\" = validate_inputs(iv, iv_par), \"grouped\" = validate_inputs(list( \"Some inputs require attention\" = iv, \"Set proper graphical parameters\" = iv_par )) ) plot(eruptions ~ waiting, faithful, las = 1, pch = 16, col = input[[\"color\"]], cex = input[[\"size\"]] ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that variables has expected number of levels — validate_n_levels","text":"","code":"validate_n_levels(x, min_levels = 1, max_levels = 12, var_name)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that variables has expected number of levels — validate_n_levels","text":"x variable name. x factor, unique values treated levels. min_levels cutoff minimum number levels x max_levels cutoff maximum number levels x var_name name variable validated use validation message","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that variables has expected number of levels — validate_n_levels","text":"number levels x less min_levels greater max_levels validation fail. function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that variables has expected number of levels — validate_n_levels","text":"","code":"data <- data.frame( one = rep(\"a\", length.out = 20), two = rep(c(\"a\", \"b\"), length.out = 20), three = rep(c(\"a\", \"b\", \"c\"), length.out = 20), four = rep(c(\"a\", \"b\", \"c\", \"d\"), length.out = 20), stringsAsFactors = TRUE ) ui <- fluidPage( selectInput( \"var\", \"Select variable\", choices = c(\"one\", \"two\", \"three\", \"four\"), selected = \"one\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ validate_n_levels(data[[input$var]], min_levels = 2, max_levels = 15, var_name = input$var) paste0( \"Levels of selected treatment variable: \", paste(levels(data[[input$var]]), collapse = \", \" ) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates no intersection between two vectors — validate_no_intersection","text":"","code":"validate_no_intersection(x, y, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates no intersection between two vectors — validate_no_intersection","text":"x vector y vector msg message display x y intersect","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates no intersection between two vectors — validate_no_intersection","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates no intersection between two vectors — validate_no_intersection","text":"","code":"data <- data.frame( id = c(1:10, 11:20, 1:10), strata = rep(c(\"A\", \"B\", \"C\"), each = 10) ) ui <- fluidPage( selectInput(\"ref1\", \"Select strata1 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"A\" ), selectInput(\"ref2\", \"Select strata2 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"B\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ sample_1 <- data$id[data$strata == input$ref1] sample_2 <- data$id[data$strata == input$ref2] validate_no_intersection( sample_1, sample_2, \"subjects within strata1 and strata2 cannot overlap\" ) paste0( \"Number of subject in: reference treatment=\", length(sample_1), \" comparions treatment=\", length(sample_2) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"","code":"validate_one_row_per_id(x, key = c(\"USUBJID\", \"STUDYID\"))"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"x data.frame key vector ID variables x identify unique records","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"","code":"iris$id <- rep(1:50, times = 3) ui <- fluidPage( selectInput( inputId = \"species\", label = \"Select species\", choices = c(\"setosa\", \"versicolor\", \"virginica\"), selected = \"setosa\", multiple = TRUE ), plotOutput(\"plot\") ) server <- function(input, output) { output$plot <- renderPlot({ iris_f <- iris[iris$Species %in% input$species, ] validate_one_row_per_id(iris_f, key = c(\"id\")) hist(iris_f$Sepal.Length, breaks = 5) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.14.0.9017","text":"data argument init now accepts teal_data teal_data_module. Added landing_popup_module function creates module display popup app starts. popup block access app dismissed. Filter state snapshots can now uploaded file. See ?snapshot.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.14.0.9017","text":"Enhanced module validation checks won’t throw messages data argument unnecessarily. Added argument teal_slices made modifications init enable tagging teal_slices app id safely upload snapshots disk.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.14.0.9017","text":"Removed Report previewer module mapping matrix display filter manager.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-14-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.14.0","text":"Enabled module specific filter panel. See module_specific teal::teal_slices documentation. Enabled capturing resetting application filter state snapshots. See ?snapshot. Enabled reporter_previewer_module customize default values srv_args. Enabled passing reporter_previewer_module list modules override default one.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-14-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.14.0","text":"Specifying filter argument teal::init requires teal_slices object now. Details documentation teal::init. Soft deprecated filters argument module replaced datanames. Details documentation teal::module","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-14-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.14.0","text":"Removed scda package dependency examples. Updated header tag style enhance element containment.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-13-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.13.0","text":"use datasets argument modules deprecated removed future release. Please use data argument instead. data type tdata; see “Creating custom modules” vignettes function documentation teal::new_tdata details. Due deprecation chunks teal.code, teal framework now uses replacement (qenv) instead. documentation teal updated reflect custom modules written chunks updated use qenv. Due deprecation chunks teal.code, get_rcode, get_rcode_srv, get_rcode_ui removed.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-13-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.13.0","text":"Added validate_inputs function transfers input validation messages app output. modules argument init accepts teal_module type object. need wrap single module modules() list(). Updated module_nested_tabs active modules calculated teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-13-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.13.0","text":"Updated examples use scda.2022. Added R session information link footer teal applications. Added data hashing step using rlang instead digest package calculate hash (moved teal.data teal.slice). now explicit hashing check reproducible code output. Removed deprecated functions: root_modules, default_filter, bookmarkableShinyApp, well deprecated logging mechanism, including functions log_app_usage .log. Updated “Teal Bootstrap Themes” vignette provide details customizing teal app bslib::run_with_themer. Removed outdated diagram srv_nested_tabs documentation. Changed default values header footer arguments init empty text.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-12-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.12.0","text":"Added support custom bslib bootstrap themes teal::init apps, please read new teal-bs-themes vignette.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-12-0","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.12.0","text":"Added option choose variables can filtered filter panel using filterable attributes per-dataset lists filter argument init. Updated teal_module data argument receives list reactive filter data \"code\" \"join_keys\" attributes. Updated teal_module filter_panel_api argument receives FilterPanelAPI object. Updated internals module_teal reflect changes teal.slice.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-12-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.12.0","text":"Updated teal_module longer receive datasets object ... argument. order use datasets teal_module please specify datasets explicitly. Deprecated merge_expression argument get_rcode_srv function removed get_rcode function. Deprecated session argument get_rcode function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-12-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.12.0","text":"Enhanced burger button disabled filter panel used.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-11-1","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.11.1","text":"Added new function reporter_previewer_module wrap teal.reporter package previewer functionality teal module. Updated teal support modules include reporting. module supports reporting included reporter_previewer_module included. Added default arguments module() server argument now function second argument can ... datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-11-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.11.1","text":"Deprecated bookmarkableShinyApp. future releases teal framework stop supporting shiny bookmarking (officially supported); may officially supported future. Note filter panel teal.slice retains ability save restore state used standalone shiny app bookmarking.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-11-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.11.1","text":"Added template pkgdown configuration. Removed unneeded shinytest app tests. Updated package authors. Added package vignettes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-0110","dir":"Changelog","previous_headings":"","what":"teal 0.11.0","title":"teal 0.11.0","text":"teal.data: creating loading data needed teal applications. teal.widgets: shiny components used within teal. teal.slice: provides filtering panel allow filtering data. teal.code: handles reproducibility outputs. teal.transform: standardizes extracting merging data. teal.logger: standardizes logging within teal framework. teal package contains code create apps (teal::init), create module (teal::module) group modules app (teal::modules). teal depends teal.transform teal.data contain functions teal app creators likely need. package teal imports therefore teal module creators either fully specify functions packages required import custom packages library(teal) load .","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-11-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.11.0","text":"simple new teal module named example_module included package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-11-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.11.0","text":"teal package split multiple smaller packages, see . Deprecated root_modules function, users use modules directly inside init. Due deprecation root_modules label argument modules must explicitly named. example modules(\"lab\", mod1, mod2) replaced modules(label = \"lab\", mod1, mod2).","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-11-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.11.0","text":"Minor changes internals teal: main module panel now fixed shiny name root active tab named active_tab Active_tab. MultiAssayExperiment now suggested packages, required. Objects dependent MultiAssayExperiment changed lazy-load now suggested package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-11-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.11.0","text":"Showing R Code longer shows reproducibility warning message reproducibility check passed.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-10-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.10.1","text":"Changed HTML identifiers teal modules - now nested module receives shiny namespace. Deprecated functions related connectors moved 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_connection rcd_data; scda_dataset_connectors can passed cdisc_data teal_data directly. Replaced rcd_dataset_connector rcd_cdisc_dataset_connector scda_dataset_connector scda_cdisc_dataset_connector respectively. Renamed teal_show_js_log option teal.show_js_log match options naming convention. Removed %is_in% stop_shiny internal utility functions.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"logging-0-10-1","dir":"Changelog","previous_headings":"New features","what":"Logging","title":"teal 0.10.1","text":"Added support logging using logger package. Added new function register_logger, registers logger given namespace. Added trace info levels log messages teal framework. Added pid shiny session token footnote app developers can identify logs apps.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"other-0-10-1","dir":"Changelog","previous_headings":"New features","what":"Other","title":"teal 0.10.1","text":"Added print methods DatasetConnector, RelationalData, RelationalDataconnector JoinKeys classes added input validation implementation print method already Dataset object. Added public facing constructor functions CDISCDataConnector, RelationalDataConnector, DataConnection classes. Modified data_extract_spec allow filter select parameters NULL, results data_extract_ui acting filter_spec variables possible choices supplied filter argument select_spec multiple parameter set TRUE supplied select argument. Added support full screen module filters argument equal NULL. Added support shiny::moduleServer passed server parameter teal::module. Added teal.threshold_slider_vs_checkboxgroup R option: categorical variable number unique values, filter panel uses drop-select input instead checkbox group. Extended FilteredData API allow managing filter states programmatically UI teal application. Hid buttons remove filters datasets dataset active filters. Updated init accept RelationalData, data.frame, MultiAssayExperiment, Dataset, DatasetConnector, list function returning named list data input.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-10-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.10.1","text":"choices_selected now correctly removes duplicates array passed choices parameter. Fixed call returned FilterState case using MultiAssayExperiment::subsetByColData. Now single condition variable containing NA values !.na(var) & var == . Fixed data loading DatasetConnector dependent Dataset DatasetConnector objects. Fixed restoring bookmarked filter state teal application. Refactored module_nested_tabs fix issue filter panel reacting input change nested module. updateOptionalSelectInput longer sets input NULL logical value passed selected. Fixed setting JoinKeys key name two Dataset object differs. Fixed printing JavaScript console logs R console teal.show_js_log = TRUE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-10-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.10.1","text":"Soft-deprecate mae_dataset() favor general dataset() constructor. Added vignette describing modifications teal applications users can apply using R options. Added default values label argument select_spec filter_spec. Added validation FilteredDataset::get_data accept logical input . Changed references outdated functions teal.devel documentation. Introduced Teal prefix public R6 classes avoid name collisions packages. Removed dependency utils.nest replaced functionality teal equivalents checkmate package base R. Replaced old shiny server functions DataConnection, RelationalDataConnector, DatasetConnector, RelationalData shiny::moduleServer equivalents. Running teal application via ui_teal_with_splash srv_teal_with_splash now longer recommended doesn’t support new features (e.g. logging, bookmarking). Use init instead. Updated R version requirement >= 4.0. Updated “filter panel collapse” icon remove warnings using shiny version >= 1.7. Removed non-exported, debugging modules. Updated footer tag style less visible.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-10-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.10.0","text":"Allow passing MultiAssayExperiment teal::init using mae_dataset function connectors. Refactored filter panel use MultiAssayExperiment objects. Filters can set subject level (colData MAE object) experiment level (colData rowData assay). Added cdse_dataset_connector create delayed data objects CDSE. Added datasetdb_dataset_connector create delayed data objects DataSetDB. Added ricepass_connection create delayed data objects entimICE via ricepass. Simplified setting initial filter state without need specify “choices” “range” named list element depending variable class. Dataset type determines appearance functionality related filters filters summary. Datasets passed (reference) DDL FilteredData skipping extracting data attributes. Redesigned variable filter labels “Active Filter Variables” panel. Fully testable server functions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-10-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.10.0","text":"Fixed bug caused calling mutate_dataset multiple times DatasetConnector Dataset object. Fixed bug caused output get_code function reproduce raw data set. Changed filter_spec allow variable selection upon app initialization, first possible value previously selected.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-10-0","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.10.0","text":"modules parameter teal::init function can also receive list except root_modules function call. Added split merge methods JoinKeys object. Added all_choices() possible argument selected parameter filter_spec, select_spec choices_selected indicating choices selected. append method CodeClass object modified print warning message argument result code added duplicated. Implemented delayed functionality mutate method Dataset DatasetConnector objects. Modified teal_data return CDISCData object whenever arguments type CDISCData object. Updated filters show levels logical variable TRUE/FALSE even one missing original array.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-10-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.10.0","text":"Updated LICENCE README new package references. Added method get_hash Dataset class returning MD5 hash object stored inside Dataset object. Replaced random.cdisc.data scda examples tests. Implemented functionality store JoinKeys Dataset DatasetConnector classes. Added error_on_lintr: TRUE .lintr pipe operator %>% now exported downstream code packages can use . Removed hyperlinks rice package documentation.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-5","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.5","text":"Added informational stop message using mutate_data RelationalDataConnector. Modified as_cdisc behave similarly cdisc_dataset called Dataset object. Changed displayed format data name column name data_extract_spec UI elements. now compressed . don’t change runtime app. Added ADSAFTTE list recognized ADaM dataset names. Added another example data_extract_spec’s doc string showcasing app users can choose variable used filtering encoding panel. Added CSS styling tool tips teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.5","text":"Fixed edge case error creating filter variable missing values crashed app. Fixed bug crashes app whenever Date datetime column selected filter_spec.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-4","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.4","text":"Released snowflake connection connectors. Changed ordering datasets intuitive (topologically first CDISC datasets according input datasets order). closing teal app (ending user shiny session), DataConnections now try close connections. Added ADHY keys configuration file. Extended filter_spec function: parameter choices longer mandatory (function take possible choices default) vars parameter additionally accepts choices_selected allows change variables filtering using UI elements encoding panel.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.4","text":"Cleaned imports package. Modified value_choices function handle edge case \"NA\" NA values exist character column choices derived . Fixed issue cloning Callable class.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-9-3","dir":"Changelog","previous_headings":"","what":"New Features","title":"teal 0.9.3","text":"Support data-standard independent input filtering. includes refactor data dataset structures together refactor FilteredData class. New JoinKeys class (join_keys() constructors join_key() constructor elements) store joining key columns datasets. Refactored basic dataset() constructor, added cdisc_dataset() constructor as_cdisc() conversion function. Soft-deprecate removed class constructors obsolete functions (e.g. keys()). Added get_keys() set_keys() functions extract manipulate datasets primary keys respectively. Unexported filtered_data_new, filtered_data_set filtered_data_set_filters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.3","text":"Duplicated lines code passed teal::cdisc_dataset teal::RelationalDataset constructors now shown getting code teal::cdisc_data objects teal::RelationalData objects. Added ability press “Enter” key without set focus Submit button delayed data loading. Allow variable_choices use datasets missing labels. Fixed bug ignores input NULL selected argument select_spec function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-3","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.3","text":"Added button remove active filters Filter Panel.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-9-2","dir":"Changelog","previous_headings":"","what":"New Features","title":"teal 0.9.2","text":"Added python_dataset_connector create delayed data objects python scripts directly python code. NOTE: python_dataset_connector yet ready deployed RSConnect contain numpy pandas, Python libraries used python_dataset_connector. Added support filtering Date Datetime variables Filter Panel. Added buttons date datetime filter widgets reset value original. Added new function check_key_duplicates, creates short summary rows duplicated primary key (row numbers number duplicates)","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-2","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.2","text":"Fixed lack labels character factor variables Filter Panel. variables now displayed module_filter_panel, types numeric, logical, factor, character Date Fixed mutate_data accept whole scope objects vars. Clarified teal::init function documentation state custom CSS loading code htmltools::htmlDependency included header argument rather inside ui arguments modules. Enabled empty select field inside data_extract_spec. Added new argument drop_keys filter_spec decide whether drop keep keys columns single filter columns. Added new optional argument keys variable_choices. keys specifies names variables, new key icon shown next variable drop menus left-hand side encoding panels instead icon appropriate original R variable type. variable_choices now also works RelationalDataset RelationalDatasetConnector objects.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-9-2","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.9.2","text":"Removed include_factors option get_class_colnames RawDataset.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-091","dir":"Changelog","previous_headings":"","what":"teal 0.9.1","title":"teal 0.9.1","text":"Adds method resolve nested lists containing delayed data objects, can used arm_ref_comp objects. Nested tabs module now better alignment filter panel page. Allow width argument optionalSelectInput. Added lifecycle badges exported functions. Added new code_dataset_connector code_cdisc_dataset_connector functions enable creation new delayed data objects given string code. Added new functions csv_dataset_connector csv_cdisc_dataset_connector. Updated set_ui_input method RawDatasetConnector NamedDatasetConnector handle user defined shiny inputs. Include Keep Inf checkbox numerical filter items. Keep NA Keep Inf checkbox doesn’t appear missing infinite values. Replace existing RelationalData class abstract class RelationalDataCollection rename RelationalDataList class RelationalData. data argument teal::init now always RelationalData object. Added fun_cdisc_dataset_connector enable providing custom function returning dataset. Removed code script arguments as_relational wrapper. intended done mutate_dataset functionality. filer argument init added validation step ensure compatibility rest app. Variables inherited ADSL specified ADSL dataset. Fixes issue connection close code present get_code results. Fixes issue occasional incorrect ordering bar charts filter panel. informative error displayed pull_fun DataConnection produces error.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-090","dir":"Changelog","previous_headings":"","what":"teal 0.9.0","title":"teal 0.9.0","text":"cdisc_dataset dataset now return R6 class objects (RelationalDataset). new teal_data function include datasets connectors teal application. cdisc_data function include datasets connectors teal application check argument still used consistency tests performed. get_raw_data can used derive raw data R6 objects e.g. (RelationalDataset). RawDatasetConnector, NamedDatasetConnector RelationalDatasetConnector execute custom function call order get data connection. CodeClass manage reproducibility data relationships datasets. directly exposed public interface. mutate_dataset allows modify dataset connector via code argument R script. mutate_data allows change dataset RelationalData, RelationalDataConnector RelationalDataList. New wrapper functions manipulate RelationalDatasetConnector RelationalDataset get_dataset, load_dataset, as_relational. New wrapper functions manipulate RelationalDataConnector, RelationalData RelationalDataList get_datasets, load_datasets. choices_labeled, filter_spec, select_spec, data_extract_spec, value_choices, variable_choices S3 class applied data.frame also delayed data. can longer modify app$datasets, must instead use argument filter init function. New modules created create module nested teal modules, another one adds right filter pane tab. teal::init function stays unchanged. teal::init function now returns UI function optional id argument. allows embed applications. split view two teal applications side--side one example shown vignette. teal::init turned wrapper function around module_teal_with_splash.R developers want embed teal Shiny module directly work functions (ui_teal_with_splash srv_teal_with_splash) instead teal::init. teal::init function now title parameter set title browser window. Missing data NA now explicitly addressed filter panel: NAs excluded default checkbox include added. Statistics data visually depicted terms histograms bar charts overlayed onto Shiny input elements. Added buttons remove filters applied dataset. Restored functionality hide filter panel module constructed filters = NULL. Moved helper functions utils.nest removed unused functions set_labels_df get_labels_df. optionalSelectInput now allows grouped choices.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"refactor-of-filtereddata-for-developers-0-9-0","dir":"Changelog","previous_headings":"","what":"Refactor of FilteredData (for developers)","title":"teal 0.9.0","text":"FilteredData now fully reactive. Now filtered data lazy evaluated per need. opens door bookmarking teal apps (bookmarking currently works right filtering panel, make feature sophisticated future release, module must reviewed adapted contains reactiveValues). Datasets materialized connectors provided FilteredData set_datasets_data function located init_datasets.R file. Renamed get_dataset() method get_data(). Renamed get_filter_call() method get_filter_expr(); returns expression rather list. Removed argument isolate get_data() method similar methods. must isolate needed. want temporarily deactivate Shiny errors due missing errors, can set options(shiny.suppressMissingContextError = TRUE). general, avoid isolate breaks reactivity. added development module add several filters , e.g. safety filters. evaluated converted proper module made available end-users.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-085","dir":"Changelog","previous_headings":"","what":"teal 0.8.5","title":"teal 0.8.5","text":"UI bug fix hide filter elements used datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-084","dir":"Changelog","previous_headings":"","what":"teal 0.8.4","title":"teal 0.8.4","text":"Progress bar UI creation delayed loading module. Change output keys function keys object. Delayed version choices_selected. Fix error choices_selected selected choices. Fix pickerInput display column name label ’s missing.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-083","dir":"Changelog","previous_headings":"","what":"teal 0.8.3","title":"teal 0.8.3","text":"Enable teal app initialize without data. data loaded within teal app. New classes (DatasetConnector, DataConnector) connect various data sources, including: * connector rice API - rice_data rice_dataset_connector * connector RDS files - rds_data rds_dataset_connector Message appears bottom right Shiny app Shiny busy update views. Remove labels argument cdisc_data function. Labels now already present data passed cdisc_data function. can achieved using var_relabel function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-082","dir":"Changelog","previous_headings":"","what":"teal 0.8.2","title":"teal 0.8.2","text":"Fixed several BUGS optionalSelectInput improved inputs look. Added get_data_labels function FilteredData class. Improved sep passing within data_extract_spec.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-081","dir":"Changelog","previous_headings":"","what":"teal 0.8.1","title":"teal 0.8.1","text":"Refactor choices_labeled fix bug showing column name data_extract_spec.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-080","dir":"Changelog","previous_headings":"","what":"teal 0.8.0","title":"teal 0.8.0","text":"Added cdisc_dataset (general dataset) functions properly handle dataset keys merging. Possibility load custom .css .js files. Renamed columns_spec select_spec. Show number observations filter panel. Add labeling functions variable_choices value_choices.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-070","dir":"Changelog","previous_headings":"","what":"teal 0.7.0","title":"teal 0.7.0","text":"Added functions cdisc_data get_code deal preprocessing moving step towards data standard independent teal. Moved teal.utils functions teal: log_app_usage, stop_shiny. Added *_spec functions. Improvements usage PickerInput SelectInput.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-060","dir":"Changelog","previous_headings":"","what":"teal 0.6.0","title":"teal 0.6.0","text":"Removed deprecated functions tab*. Removed data generation functions including generate_sample_data. Incorporate shinyjs package. Added “Copy R code clipboard” button.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-005","dir":"Changelog","previous_headings":"","what":"teal 0.0.5","title":"teal 0.0.5","text":"Added limit data_table scrolling, preventing overlap UI elements. Boolean filtering.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-004","dir":"Changelog","previous_headings":"","what":"teal 0.0.4","title":"teal 0.0.4","text":"Bug fix teal crashes filter variable gets added many decimal places.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-003","dir":"Changelog","previous_headings":"","what":"teal 0.0.3","title":"teal 0.0.3","text":"Note version 0.0.3 backwards compatible. Reading changes studying example app , however, clarify changes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-0-3","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.0.3","text":"tm_scatterplot module. tm_table module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"changes-0-0-3","dir":"Changelog","previous_headings":"","what":"Changes","title":"teal 0.0.3","text":"tabs arguments renamed modules. tab_item function now called module. tab_items function now called modules. tabs function removed. variable_browser_item now called tm_variable_browser. data_table_item now called tm_data_table. datasets argument automatically added server functions specified module. Hence teal_datasets removed server_args element.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-002","dir":"Changelog","previous_headings":"","what":"teal 0.0.2","title":"teal 0.0.2","text":"New ‘01_getting_started’ vignette. Datanames FilteredData now case sensitive.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-001","dir":"Changelog","previous_headings":"","what":"teal 0.0.1","title":"teal 0.0.1","text":"March 28, 2016 - Initial Release.","code":""}] +[{"path":[]},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"members, contributors, leaders pledge make participation community harassment-free experience everyone, regardless age, body size, visible invisible disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, sexual identity orientation. pledge act interact ways contribute open, welcoming, diverse, inclusive, healthy community.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes positive environment community include: Demonstrating empathy kindness toward people respectful differing opinions, viewpoints, experiences Giving gracefully accepting constructive feedback Accepting responsibility apologizing affected mistakes, learning experience Focusing best just us individuals, overall community Examples unacceptable behavior include: use sexualized language imagery, sexual attention advances kind Trolling, insulting derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical email address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement-responsibilities","dir":"","previous_headings":"","what":"Enforcement Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Community leaders responsible clarifying enforcing standards acceptable behavior take appropriate fair corrective action response behavior deem inappropriate, threatening, offensive, harmful. Community leaders right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, communicate reasons moderation decisions appropriate.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within community spaces, also applies individual officially representing community public spaces. Examples representing community include using official e-mail address, posting via official social media account, acting appointed representative online offline event.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported community leaders responsible enforcement [INSERT CONTACT METHOD]. complaints reviewed investigated promptly fairly. community leaders obligated respect privacy security reporter incident.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement-guidelines","dir":"","previous_headings":"","what":"Enforcement Guidelines","title":"Contributor Covenant Code of Conduct","text":"Community leaders follow Community Impact Guidelines determining consequences action deem violation Code Conduct:","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_1-correction","dir":"","previous_headings":"Enforcement Guidelines","what":"1. Correction","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Use inappropriate language behavior deemed unprofessional unwelcome community. Consequence: private, written warning community leaders, providing clarity around nature violation explanation behavior inappropriate. public apology may requested.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_2-warning","dir":"","previous_headings":"Enforcement Guidelines","what":"2. Warning","title":"Contributor Covenant Code of Conduct","text":"Community Impact: violation single incident series actions. Consequence: warning consequences continued behavior. interaction people involved, including unsolicited interaction enforcing Code Conduct, specified period time. includes avoiding interactions community spaces well external channels like social media. Violating terms may lead temporary permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_3-temporary-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"3. Temporary Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: serious violation community standards, including sustained inappropriate behavior. Consequence: temporary ban sort interaction public communication community specified period time. public private interaction people involved, including unsolicited interaction enforcing Code Conduct, allowed period. Violating terms may lead permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_4-permanent-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"4. Permanent Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Demonstrating pattern violation community standards, including sustained inappropriate behavior, harassment individual, aggression toward disparagement classes individuals. Consequence: permanent ban sort public interaction within community.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 2.1, available https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines inspired Mozilla’s code conduct enforcement ladder. answers common questions code conduct, see FAQ https://www.contributor-covenant.org/faq. Translations available https://www.contributor-covenant.org/translations.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contribution Guidelines","title":"Contribution Guidelines","text":"🙏 Thank taking time contribute! input deeply valued, whether issue, pull request, even feedback, regardless size, content scope.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"Contribution Guidelines","text":"👶 Getting started 📔 Code Conduct 🗃 License 📜 Issues 🚩 Pull requests 💻 Coding guidelines 🏆 Recognition model ❓ Questions","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"getting-started","dir":"","previous_headings":"","what":"Getting started","title":"Contribution Guidelines","text":"Please refer project documentation brief introduction. Please also see articles within project documentation additional information.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contribution Guidelines","text":"Code Conduct governs project. Participants contributors expected follow rules outlined therein.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"license","dir":"","previous_headings":"","what":"License","title":"Contribution Guidelines","text":"contributions covered project’s license.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"issues","dir":"","previous_headings":"","what":"Issues","title":"Contribution Guidelines","text":"use GitHub track issues, feature requests, bugs. submitting new issue, please check issue already reported. issue already exists, please upvote existing issue 👍. new feature requests, please elaborate context benefit feature users, developers, relevant personas.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"github-flow","dir":"","previous_headings":"Pull requests","what":"GitHub Flow","title":"Contribution Guidelines","text":"repository uses GitHub Flow model collaboration. submit pull request: Create branch Please see branch naming convention . don’t write access repository, please fork . Make changes Make sure code passes checks imposed GitHub Actions well documented well tested unit tests sufficiently covering changes introduced Create pull request (PR) pull request description, please link relevant issue (), provide detailed description change, include assumptions. Address review comments, Post approval Merge PR write access. Otherwise, reviewer merge PR behalf. Pat back Congratulations! 🎉 now official contributor project! grateful contribution.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"branch-naming-convention","dir":"","previous_headings":"Pull requests","what":"Branch naming convention","title":"Contribution Guidelines","text":"Suppose changes related current issue current project; please name branch follows: _. Please use underscore (_) delimiter word separation. example, 420_fix_ui_bug suitable branch name change resolving UI-related bug reported issue number 420 current project. change affects multiple repositories, please name branches follows: _
teal
As shown in the image above, this application consists of several diff --git a/main/authors.html b/main/authors.html index c9acf0fcf7..184c3e85ea 100644 --- a/main/authors.html +++ b/main/authors.html @@ -10,7 +10,7 @@ teal - 0.14.0.9017 + 0.14.0.9018
Kaledkowski D, Rucki P, Chlebowski A, Kirar K, Kosinski M, Waddell A, Burkoff N, Hallal M, Nasinski M, Pagacz K, Zhao J (2023). teal: Exploratory Web Apps for Analyzing Clinical Trials Data. -R package version 0.14.0.9017, +R package version 0.14.0.9018, https://github.com/insightsengineering/teal/, https://insightsengineering.github.io/teal/.
@Manual{, title = {teal: Exploratory Web Apps for Analyzing Clinical Trials Data}, author = {Dawid Kaledkowski and Pawel Rucki and Aleksander Chlebowski and Kartikeya Kirar and Marcin Kosinski and Adrian Waddell and Nikolas Burkoff and Mahmoud Hallal and Maciej Nasinski and Konrad Pagacz and Junlue Zhao}, year = {2023}, - note = {R package version 0.14.0.9017, + note = {R package version 0.14.0.9018, https://github.com/insightsengineering/teal/}, url = {https://insightsengineering.github.io/teal/}, }
data
init
teal_data
teal_data_module
landing_popup_module
?snapshot
module
teal_slices
Report previewer
code (character) containing datasets reproducible code.
code
character
join_keys (JoinKeys) containing relationships between datasets.
join_keys
JoinKeys
join_keys (join_keys) containing relationships between datasets.
metadata (list) containing metadata of datasets.
metadata
list
join_keys(<tdata>)
tdata
R/tdata.R
get_join_keys.Rd
join_keys.tdata.Rd
Extract JoinKeys from tdata
Extract join_keys from tdata
# S3 method for tdata -get_join_keys(data)
(tdata) object
A tdata object
Additional arguments (not used)
Create a new object called tdata which contains data, a reactive list of data.frames (or MultiAssayExperiment), with attributes:
reactive
MultiAssayExperiment
code (reactive) containing code used to generate the data
join_keys (JoinKeys) containing the relationships between the data
join_keys (join_keys) containing the relationships between the data
metadata (named list) containing any metadata associated with the data frames
named list
A teal.data::join_keys object containing relationships between the datasets.
teal.data::join_keys
# new_iris <- transform(iris, id = seq_len(nrow(iris))) # # data import new_iris <- transform(iris, id = seq_len(nrow(iris))) excluded_obj1 <- 1:10 # nocode # nocode> excluded_obj2 <- 1:10 # % bslib::bs_add_rules(\"Anything understood by sass::as_sass()\"))"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"bootstrap-null-vs-bootstrap-3","dir":"Articles","previous_headings":"Usage","what":"Bootstrap NULL vs Bootstrap 3","title":"Bootstrap Themes in teal","text":"important note statements options(\"teal.bs_theme\" = NULL) options(\"teal.bs_theme\" = bslib::bs_theme(version = \"3\") equivalent bslib approximation default shiny theme Bootstrap version 3 can introduce discrepancies. One important difference using bslib::bs_theme(version = \"3\", bootswatch = \"THEME NAME\") one can apply custom Bootstrap theme. Another one usage bslib::bs_theme(version = \"3\") requires installation latest shinyWidgets package main branch, see .","code":"# Downloading the newest shinyWidgets # needed only when bslib::bs_theme(version = \"3\", ...) is used remotes::install_github(\"https://github.com/dreamRs/shinyWidgets@main\")"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"regular-shinyfluidpage","dir":"Articles","previous_headings":"Usage","what":"Regular shiny::fluidPage","title":"Bootstrap Themes in teal","text":"want update theme regular shiny::fluidPage-like app, need teal.bs_theme option. Simply provide bslib::bs_theme directly: shiny::fluidPage(theme = bslib::bs_theme(...), ...).","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"interactive-theming-guide","dir":"Articles","previous_headings":"Usage","what":"Interactive Theming Guide","title":"Bootstrap Themes in teal","text":"section provide step--step guide customizing teal application theme interactively bslib::run_with_themer(). recommend starting simple case satisfied, verifying full application. end use teal application . example assume want use Bootstrap 5. start, launch app bslib::run_with_themer(app$ui, app$server) instead shiny::runApp. gives us following. Note Theme Customizer section right hand side. added bslib customize theme.","code":"options(\"teal.bs_theme\" = bslib::bs_theme(version = \"5\")) library(teal) app <- init( data = teal_data(IRIS = iris), # nolint filter = list(IRIS = list(Sepal.Length = c(5, 7))), modules = list(example_module(), example_module()), header = \"My first teal application\" ) bslib::run_with_themer(shinyApp(app$ui, app$server))"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"set-overall-app-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Set overall app theme","title":"Bootstrap Themes in teal","text":"Instead starting scratch, want start Bootswatch theme. Let us select Minty theme “Overall theme” drop-. bslib updated CSS styles use new theme, including customizer theme. Additionally look R console, see helpful guide provides code update theme. teal applications don’t actually use bs_theme_update opt bs_theme instead. However, printed code still helpful.","code":"#### Update your bs_theme() R code with: ##### bs_theme_update(theme, bootswatch = \"minty\")"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"customize-a-bootswatch-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Customize a bootswatch theme","title":"Bootstrap Themes in teal","text":"base theme (Minty) close want let’s make modifications. start, increase base font size. , choose “Fonts” section customizer theme set value “Base font size” input. use 1.25 , means fonts increased factor 1.25. check R console, see bslib printed bs_theme_update(theme, font_scale = 1.25, bootswatch = \"minty\"), now includes font size adjustment. Finally, suppose want borders rounded. customizer theme, can go “Options” uncheck “Rounded corners” box. expected, corners longer rounded. look R console, now see bs_theme_update(theme, font_scale = 1.25,enable-rounded= FALSE, bootswatch = \"minty\").","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"apply-the-customized-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Apply the customized theme","title":"Bootstrap Themes in teal","text":"customization complete, apply changes application. , use option teal.bs_theme like time expand bslib::bs_theme call include changes. Luckily, arguments printed R console running app themer can plugged right . Now application custom theme applied. Please note interactive themer contains mostly commonly applied options. customization options, review bslib documentation.","code":"options( \"teal.bs_theme\" = bslib::bs_theme( version = \"5\", font_scale = 1.25, `enable-rounded` = FALSE, bootswatch = \"minty\" ) ) library(teal) app <- init( data = teal_data( dataset(\"IRIS\", iris) ), filter = list(IRIS = list(Sepal.Length = c(5, 7))), modules = list(example_module(), example_module()) ) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"sources","dir":"Articles","previous_headings":"","what":"Sources","title":"Bootstrap Themes in teal","text":"https://rstudio.github.io/bslib/","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"motivation","dir":"Articles","previous_headings":"","what":"Motivation","title":"Modifying a teal Application With R Options","text":"R packages use options modify runtime behavior. usually specify default values internal functions determine responses users actions. example, testthat uses option testthat.progress.max_fails define default number failed expectations testing functions terminate execution. adjustable values can exposed function parameters, confined option. vignette details options available users teal, teal.logger, teal.widgets, teal.modules.general, teal.modules.clinical.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"setting-an-option","dir":"Articles","previous_headings":"","what":"Setting an option","title":"Modifying a teal Application With R Options","text":"time interactive session, can change option using: way change options execution specific block code withr package like : line run option, digits, go back value line run. function getOption allows inspect value option: set, value option persists session, returns default value new session. Make sure change options teal-related packages loaded initialize options overwrite custom values.","code":"options(option_to_set = \"value\") withr::with_options(list(digits = 3), print(pi)) ## [1] 3.14 getOption(\"option_to_set\") ## [1] \"value\""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-log_layout-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.log_layout (character)","title":"Modifying a teal Application With R Options","text":"defines layout log message used teal application. teal uses layout format emitted log messages. Read documentation teal.logger::register_logger information. Default: \"[{level}] {format(time, \\\"%Y-%m-%d %H:%M:%OS4\\\")} pid:{pid} token:[{token}] {ans} {msg}\". Note layout formatted glue package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-log_level-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.log_level (character)","title":"Modifying a teal Application With R Options","text":"logging level threshold used teal application. teal application emit logs level. Read documentation teal.logger::register_logger information. Possible values: \"TRACE\", \"INFO\", \"WARNING\", \"ERROR\". See documentation logger::TRACE possible values logging threshold information . Default: \"INFO\". Note two levels considered less severe \"INFO\": \"DEBUG\" \"TRACE\". order see log messages two levels well, change log level default \"TRACE\", least severe log level.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal_logging","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal_logging","title":"Modifying a teal Application With R Options","text":"Deprecated.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal_show_js_log","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal_show_js_log","title":"Modifying a teal Application With R Options","text":"Deprecated favor teal.show_js_log (see ).","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-show_js_log-logical","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.show_js_log (logical)","title":"Modifying a teal Application With R Options","text":"indicates whether print JavaScript console logs R console. set TRUE, logs printed; otherwise, won’t. Default: FALSE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-threshold_slider_vs_checkboxgroup-numeric","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.threshold_slider_vs_checkboxgroup (numeric)","title":"Modifying a teal Application With R Options","text":"threshold determines variable treated factor filter panel. number unique values variable less threshold variable treated factor instead original class. example, imagine teal.threshold_slider_vs_checkboxgroup equals 2. numeric variable c(1, 1, 1), one unique value, treated factor filter panel (filter panel !). filter panel creates checkbox widget filter values variable, factor variable, instead usual numeric range selector. Default: 5.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-load_nest_code-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.load_nest_code (character)","title":"Modifying a teal Application With R Options","text":"value option appended top code rendered using Show R Code modal button. See documentation teal::get_rcode information. Default: \"# Add code install/load NEST environment \".","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-basic_table_args-basic_table_args-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.basic_table_args (basic_table_args object)","title":"Modifying a teal Application With R Options","text":"specifies list arguments passed every call rtables::basic_table made teal application. can used format rtables without making changes application code. See documentation teal.widgets::basic_table_args information. Default: teal.widgets::basic_table_args().","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-ggplot2_args-ggplot2_args-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.ggplot2_args (ggplot2_args object)","title":"Modifying a teal Application With R Options","text":"option allows modifying labels themes ggplot2 plots teal application. See documentation teal.widgets::ggplot2_args information. Default: teal.widgets::ggplot2_args().","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-plot_dpi-integer-value-24-or-larger","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.plot_dpi (integer value 24 or larger)","title":"Modifying a teal Application With R Options","text":"option controls dots per inch graphs rendered downloaded using plot_with_settings. Default: 72","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-bs_theme-bslibbs_theme-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.bs_theme (bslib::bs_theme object)","title":"Modifying a teal Application With R Options","text":"option controls bootstrap theme version used teal apps. Achieve better UX customized UI app. Please visit vignette Bootstrap themes read functionality. Default: NULL","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Getting Started with teal","text":"teal shiny-based interactive exploration framework analyzing data, particular emphasis CDISC clinical trial data. teal applications allow users : “Pull” data external data sources Dynamically filter data used analyses Generate reproducible code regenerate -screen analyses Create download reports containing results analyses (analysis modules support reporting) addition, teal framework provides application developers : large suite custom-made standard analysis modules included applications logging framework facilitate debugging applications advanced users framework can also create new analysis modules can added teal applications. See Creating Custom Modules vignette brief introduction creating modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"your-first-teal-application","dir":"Articles","previous_headings":"","what":"Your first teal application:","title":"Getting Started with teal","text":"simple teal application takes iris mtcars datasets displays contents: shown image , application consists several distinct areas: Application header: title application shown top. teal modules (bar top): case simple module named “example teal module”. Encoding panel (panel left hand side): Module specific UI components, case drop-select dataset name. Main output panel (panel middle): outputs module, example module chosen dataset displayed. Filter panel (panels right hand side): filtering data passed teal modules.","code":"library(teal) app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = example_module(), header = \"My first teal application\" ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"encoding-panel","dir":"Articles","previous_headings":"Your first teal application:","what":"Encoding panel","title":"Getting Started with teal","text":"left hand side application (usually) dedicated module specific controls. modules include reproducibility functionality often contains Show R Code button , clicked, display code required re-generate output, including filtering added filter panel library calls attach required packages.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"filter-panel","dir":"Articles","previous_headings":"Your first teal application:","what":"Filter panel","title":"Getting Started with teal","text":"filter panel allows app developers select datasets wish make available modules define filters datasets. top section shows number records remaining dataset filtering. middle section lists currently defined filters. Typically can modified user. bottom section allows user add new filters. example : IRIS dataset, rows satisfying conditions Petal.Length >= 3.4 Species %% c(\"setosa\", \"virginica\") included, thereby keeping 50 rows. MTCARS dataset, rows satisfying condition cyl %% c(4, 6) included, thereby keeping 18 rows.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"creating-your-own-applications","dir":"Articles","previous_headings":"","what":"Creating your own applications","title":"Getting Started with teal","text":"key function use create teal application init, requires two arguments: data modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"application-data","dir":"Articles","previous_headings":"Creating your own applications","what":"Application Data","title":"Getting Started with teal","text":"data argument init function specifies data used application. can data currently R session, example , also connectors, describe “pull” remote data application run. Connectors can pull data external sources, may require authentication. example call teal_data convert raw datasets teal specific datasets bind one R object. function can also used specify relationships different datasets. order use CDISC clinical trial data teal application cdisc_data function used instead. details recommend exploring teal.data package documentation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"modules","dir":"Articles","previous_headings":"Creating your own applications","what":"Modules","title":"Getting Started with teal","text":"modules argument init consists list teal modules (can wrapped together using function modules). recommend creating applications using predefined teal modules. See references links modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"defining-filters","dir":"Articles","previous_headings":"Creating your own applications","what":"Defining Filters","title":"Getting Started with teal","text":"optional filter argument init allows initialize application predefined filters. See documentation init details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"reporting","dir":"Articles","previous_headings":"Creating your own applications","what":"Reporting","title":"Getting Started with teal","text":"modules teal application support reporting (see teal.reporter details), users application can add outputs modules report. report can downloaded special Report Previewer module added application additional tab, users can view configure reports downloading .","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"where-to-go-next","dir":"Articles","previous_headings":"","what":"Where to go next","title":"Getting Started with teal","text":"learn teal framework recommend first exploring available analysis modules. example see: general analysis modules clinical trial reporting modules modules analyzing MultiAssayExperiment objects teal framework relies set supporting packages whose documentation provides -depth information. packages interest defining tealapplications : teal.data: defining data teal application. teal.slice: defining data filtering passing teal modules. teal.transform: defining way arguments passed teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Dawid Kaledkowski. Author, maintainer. Pawel Rucki. Author. Aleksander Chlebowski. Author. Kartikeya Kirar. Author. Marcin Kosinski. Author. Adrian Waddell. Author. Chendi Liao. Reviewer. Dony Unardi. Reviewer. Nikolas Burkoff. Author. Mahmoud Hallal. Author. Maciej Nasinski. Author. Konrad Pagacz. Author. Junlue Zhao. Author. F. Hoffmann-La Roche AG. Copyright holder, funder. Maximilian Mordig. Contributor.","code":""},{"path":"https://insightsengineering.github.io/teal/main/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Kaledkowski D, Rucki P, Chlebowski , Kirar K, Kosinski M, Waddell , Burkoff N, Hallal M, Nasinski M, Pagacz K, Zhao J (2023). teal: Exploratory Web Apps Analyzing Clinical Trials Data. R package version 0.14.0.9017, https://github.com/insightsengineering/teal/, https://insightsengineering.github.io/teal/main/.","code":"@Manual{, title = {teal: Exploratory Web Apps for Analyzing Clinical Trials Data}, author = {Dawid Kaledkowski and Pawel Rucki and Aleksander Chlebowski and Kartikeya Kirar and Marcin Kosinski and Adrian Waddell and Nikolas Burkoff and Mahmoud Hallal and Maciej Nasinski and Konrad Pagacz and Junlue Zhao}, year = {2023}, note = {R package version 0.14.0.9017, https://github.com/insightsengineering/teal/}, url = {https://insightsengineering.github.io/teal/main/}, }"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"teal-interactive-exploratory-data-analysis-with-shiny-web-applications-","dir":"","previous_headings":"","what":"Exploratory Web Apps for Analyzing Clinical Trials Data","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"teal shiny-based interactive exploration framework analyzing data. teal applications require app developers specify: CDISC data, commonly used clinical trial reporting Independent datasets, example data.frame Related datasets, example set data.frames key columns enable data joins MultiAssayExperiment objects R data structures representing analyzing multi-omics experiments teal.modules.general: general modules exploring relational/independent/CDISC data teal.modules.clinical: modules specific CDISC data clinical trial reporting teal.modules.hermes: modules analyzing MultiAssayExperiment objects lot functionality teal framework derives following packages: teal.data: creating loading data needed teal applications. teal.widgets: shiny components used within teal. teal.slice: provides filtering panel allow filtering data. teal.code: handles reproducibility outputs. teal.transform: standardizes extracting merging data. teal.logger: standardizes logging within teal framework. teal.reporter: allows teal applications generate reports.","code":""},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"Alternatively, might also use development version.","code":"install.packages(\"teal\", repos = c(\"https://insightsengineering.r-universe.dev\", getOption(\"repos\"))) # install.packages(\"pak\") pak::pak(\"insightsengineering/teal@*release\") install.packages(\"teal\", repos = c(\"https://pharmaverse.r-universe.dev\", getOption(\"repos\"))) # install.packages(\"pak\") pak::pak(\"insightsengineering/teal\")"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"Please see teal.gallery TLG Catalog see examples teal apps. Please start “Technical Blueprint” article, “Getting Started” article, package vignettes detailed guide.","code":"library(teal) app <- init( data = teal_data( dataset(\"iris\", iris) ), modules = list( module( \"iris histogram\", server = function(input, output, session, data) { output$hist <- renderPlot( hist(data[[\"iris\"]]()[[input$var]]) ) }, ui = function(id, data, ...) { ns <- NS(id) list( shiny::selectInput( ns(\"var\"), \"Column name\", names(data[[\"iris\"]]())[1:4] ), plotOutput(ns(\"hist\")) ) } ) ) ) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"encounter bug feature request - please file issue. questions, discussions staying date, please use “teal” channel pharmaverse slack workspace.","code":""},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"acknowledgment","dir":"","previous_headings":"","what":"Acknowledgment","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"package result joint efforts many developers stakeholders. like thank everyone contributed far!","code":""},{"path":[]},{"path":[]},{"path":[]},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/pull_request_template.html","id":null,"dir":"","previous_headings":"","what":"Pull Request","title":"Pull Request","text":"Fixes #nnn","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":null,"dir":"Reference","previous_headings":"","what":"TealReportCard — TealReportCard","title":"TealReportCard — TealReportCard","text":"child ReportCard used teal specific applications. addition parent methods, supports rendering teal specific elements source code, encodings panel content filter panel content part meta data.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"super-class","dir":"Reference","previous_headings":"","what":"Super class","title":"TealReportCard — TealReportCard","text":"teal.reporter::ReportCard -> TealReportCard","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"methods","dir":"Reference","previous_headings":"","what":"Methods","title":"TealReportCard — TealReportCard","text":"teal.reporter::ReportCard$append_content() teal.reporter::ReportCard$append_metadata() teal.reporter::ReportCard$append_plot() teal.reporter::ReportCard$append_rcode() teal.reporter::ReportCard$append_table() teal.reporter::ReportCard$append_text() teal.reporter::ReportCard$from_list() teal.reporter::ReportCard$get_content() teal.reporter::ReportCard$get_metadata() teal.reporter::ReportCard$get_name() teal.reporter::ReportCard$initialize() teal.reporter::ReportCard$reset() teal.reporter::ReportCard$set_name() teal.reporter::ReportCard$to_list()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"public-methods","dir":"Reference","previous_headings":"","what":"Public methods","title":"TealReportCard — TealReportCard","text":"TealReportCard$append_src() TealReportCard$append_fs() TealReportCard$append_encodings() TealReportCard$clone()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-src-","dir":"Reference","previous_headings":"","what":"Method append_src()","title":"TealReportCard — TealReportCard","text":"Appends source code content meta data TealReportCard.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_src(src, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"src (character(1)) code text. ... rmarkdown R chunk parameter value. eval parameter always set FALSE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"card <- TealReportCard$new()$append_src( \"plot(iris)\" ) card$get_content()[[1]]$get_content()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-fs-","dir":"Reference","previous_headings":"","what":"Method append_fs()","title":"TealReportCard — TealReportCard","text":"Appends filter state list content metadata TealReportCard. filter state list attribute named formatted, appends card otherwise uses default yaml::.yaml format list. filter state list empty, nothing appended content.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-1","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_fs(fs)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-1","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"fs (teal_slices) object returned teal_slices() function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns-1","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-encodings-","dir":"Reference","previous_headings":"","what":"Method append_encodings()","title":"TealReportCard — TealReportCard","text":"Appends encodings list content metadata TealReportCard.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-2","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_encodings(encodings)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-2","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"encodings (list) list encodings selections teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns-2","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"examples-1","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"card <- TealReportCard$new()$append_encodings(list(variable1 = \"X\")) card$get_content()[[1]]$get_content()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-clone-","dir":"Reference","previous_headings":"","what":"Method clone()","title":"TealReportCard — TealReportCard","text":"objects class cloneable method.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-3","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$clone(deep = FALSE)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-3","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"deep Whether make deep clone.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"## ------------------------------------------------ ## Method `TealReportCard$append_src` ## ------------------------------------------------ card <- TealReportCard$new()$append_src( \"plot(iris)\" ) card$get_content()[[1]]$get_content() #> [1] \"plot(iris)\" ## ------------------------------------------------ ## Method `TealReportCard$append_encodings` ## ------------------------------------------------ card <- TealReportCard$new()$append_encodings(list(variable1 = \"X\")) card$get_content()[[1]]$get_content() #> [1] \"Selected Options\""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"RcodeBlock — TealSlicesBlock","title":"RcodeBlock — TealSlicesBlock","text":"RcodeBlock RcodeBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"super-classes","dir":"Reference","previous_headings":"","what":"Super classes","title":"RcodeBlock — TealSlicesBlock","text":"teal.reporter::ContentBlock -> teal.reporter::TextBlock -> TealSlicesBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"methods","dir":"Reference","previous_headings":"","what":"Methods","title":"RcodeBlock — TealSlicesBlock","text":"teal.reporter::ContentBlock$get_content() teal.reporter::TextBlock$get_available_styles() teal.reporter::TextBlock$get_style() teal.reporter::TextBlock$set_style()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"public-methods","dir":"Reference","previous_headings":"","what":"Public methods","title":"RcodeBlock — TealSlicesBlock","text":"TealSlicesBlock$new() TealSlicesBlock$set_content() TealSlicesBlock$from_list() TealSlicesBlock$to_list() TealSlicesBlock$clone()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-new-","dir":"Reference","previous_headings":"","what":"Method new()","title":"RcodeBlock — TealSlicesBlock","text":"Returns TealSlicesBlock object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$new(content = teal_slices(), style = \"verbatim\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"content (teal_slices) object returned teal_slices() function. style (character(1)) string specifying style apply.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"RcodeBlock — TealSlicesBlock","text":"Returns TealSlicesBlock object content parameters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"TealSlicesBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"examples","dir":"Reference","previous_headings":"","what":"Examples","title":"RcodeBlock — TealSlicesBlock","text":"","code":"block <- teal:::TealSlicesBlock$new()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-set-content-","dir":"Reference","previous_headings":"","what":"Method set_content()","title":"RcodeBlock — TealSlicesBlock","text":"Sets content TealSlicesBlock. Sets content YAML text represents list generated teal_slices. list displays limited number fields teal_slice objects, list sufficient conclude filters applied. selected field teal_slice object range, displayed \"min\"","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-1","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$set_content(content)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-1","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"content (teal_slices) object returned teal_slices() function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-1","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-from-list-","dir":"Reference","previous_headings":"","what":"Method from_list()","title":"RcodeBlock — TealSlicesBlock","text":"Create RcodeBlock list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-2","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$from_list(x)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-2","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"x named list two fields c(\"text\", \"params\"). Use get_available_params method get possible parameters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-2","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-to-list-","dir":"Reference","previous_headings":"","what":"Method to_list()","title":"RcodeBlock — TealSlicesBlock","text":"Convert RcodeBlock list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-3","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$to_list()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-3","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"named list text params.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-clone-","dir":"Reference","previous_headings":"","what":"Method clone()","title":"RcodeBlock — TealSlicesBlock","text":"objects class cloneable method.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-4","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$clone(deep = FALSE)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-3","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"deep Whether make deep clone.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"RcodeBlock — TealSlicesBlock","text":"","code":"## ------------------------------------------------ ## Method `TealSlicesBlock$new` ## ------------------------------------------------ block <- teal:::TealSlicesBlock$new()"},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Append a teal_module to children of a teal_modules object — append_module","title":"Append a teal_module to children of a teal_modules object — append_module","text":"Append teal_module children teal_modules object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Append a teal_module to children of a teal_modules object — append_module","text":"","code":"append_module(modules, module)"},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Append a teal_module to children of a teal_modules object — append_module","text":"modules teal_modules module teal_module object appended onto children modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Append a teal_module to children of a teal_modules object — append_module","text":"teal_modules object module appended","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the hash of a dataset — calculate_hashes","title":"Get the hash of a dataset — calculate_hashes","text":"Get hash dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the hash of a dataset — calculate_hashes","text":"","code":"calculate_hashes(datanames, datasets)"},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the hash of a dataset — calculate_hashes","text":"datanames (character) names datasets datasets (FilteredData) object holding data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the hash of a dataset — calculate_hashes","text":"list hashes per dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Check datanames in filters — check_filter_datanames","title":"Check datanames in filters — check_filter_datanames","text":"function checks whether datanames filters correspond data, returning character vector error messages TRUE checks pass.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check datanames in filters — check_filter_datanames","text":"","code":"check_filter_datanames(filters, datanames)"},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check datanames in filters — check_filter_datanames","text":"filters (teal_slices) object datanames (character) names datasets available data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check datanames in filters — check_filter_datanames","text":"character(1) containing error message TRUE validation passes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Check datanames in modules — check_modules_datanames","title":"Check datanames in modules — check_modules_datanames","text":"function ensures specified datanames modules match data object, returning error messages TRUE successful validation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check datanames in modules — check_modules_datanames","text":"","code":"check_modules_datanames(modules, datanames)"},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check datanames in modules — check_modules_datanames","text":"modules (teal_modules) object datanames (character) names datasets available data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check datanames in modules — check_modules_datanames","text":"character(1) containing error message TRUE validation passes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Deep copy teal_slices — deep_copy_filter","title":"Deep copy teal_slices — deep_copy_filter","text":"important create new copy teal_slices starting new shiny session. Otherwise, object shared multiple users created global environment shiny session starts.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deep copy teal_slices — deep_copy_filter","text":"","code":"deep_copy_filter(filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deep copy teal_slices — deep_copy_filter","text":"filter (teal_slices)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Deep copy teal_slices — deep_copy_filter","text":"teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"Converts FilteredData object tdata object containing datasets needed specific module. Please note module needs dataset parent, parent also returned. hash per dataset calculated internally returned code.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"","code":".datasets_to_data(module, datasets, trigger_data = reactiveVal(1L))"},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"module (teal_module) module needed filters taken datasets (FilteredData) object needed data taken trigger_data (reactiveVal) trigger getting filtered data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"list reactive datasets following attributes: code (character) containing datasets reproducible code. join_keys (JoinKeys) containing relationships datasets. metadata (list) containing metadata datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Get dummy CDISC data — example_cdisc_data","title":"Get dummy CDISC data — example_cdisc_data","text":"Get dummy CDISC data including ADSL, ADAE ADLB. NAs also introduced stress test.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get dummy CDISC data — example_cdisc_data","text":"","code":"example_cdisc_data()"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get dummy CDISC data — example_cdisc_data","text":"cdisc_data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":null,"dir":"Reference","previous_headings":"","what":"Get datasets to go with example modules. — example_datasets","title":"Get datasets to go with example modules. — example_datasets","text":"Creates nested list, structure matches module hierarchy created example_modules. list leaf FilteredData object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get datasets to go with example modules. — example_datasets","text":"","code":"example_datasets()"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get datasets to go with example modules. — example_datasets","text":"named list FilteredData objects, ADSL set.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"An example teal module — example_module","text":"","code":"example_module(label = \"example teal module\", datanames = \"all\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"An example teal module — example_module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. datanames (character) vector datanames relevant item. filter panel automatically update shown filters include filters listed datasets. NULL hide filter panel, keyword '' show filters datasets. datanames also determines subset datasets appended data argument server function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"An example teal module — example_module","text":"teal module can included modules argument init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"An example teal module — example_module","text":"","code":"app <- init( data = teal_data( dataset(\"IRIS\", iris), dataset(\"MTCARS\", mtcars) ), modules = example_module() ) #> Warning: The `data_objects` argument of `teal_data()` should use data directly. Using #> TealDatasetConnector and TealDataset is deprecated. Find more information on #> https://github.com/insightsengineering/teal/discussions/945 as of teal.data #> 0.3.1. if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":null,"dir":"Reference","previous_headings":"","what":"Get example modules. — example_modules","title":"Get example modules. — example_modules","text":"Creates example hierarchy teal_modules teal app can created.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get example modules. — example_modules","text":"","code":"example_modules(datanames = c(\"ADSL\", \"ADTTE\"))"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get example modules. — example_modules","text":"datanames (character) names datasets used example modules. Possible choices ADSL, ADTTE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get example modules. — example_modules","text":"teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"Please remove, useful debugging teal without dependencies simplifies \\link[devtools]{load_all} otherwise fails avoids session restarts!","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"","code":"filter_calls_module(label = \"Filter Calls Module\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"label character label module","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"","code":"app <- init( data = list(iris = iris, mtcars = mtcars), modules = teal:::filter_calls_module(), header = \"Simple teal app\" ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":null,"dir":"Reference","previous_headings":"","what":"Module specific filter manager — filter_manager_module_srv","title":"Module specific filter manager — filter_manager_module_srv","text":"Track filter states single module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Module specific filter manager — filter_manager_module_srv","text":"","code":"filter_manager_module_srv(id, module_fd, slices_global)"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Module specific filter manager — filter_manager_module_srv","text":"id (character(1))shiny module id. module_fd (FilteredData) object filter data teal-module slices_global (reactiveVal) stores teal_slices available filters; allows following actions: disable/enable specific filter module restore saved filter settings save current filter panel settings","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Module specific filter manager — filter_manager_module_srv","text":"reactive expression containing slices active module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Module specific filter manager — filter_manager_module_srv","text":"module tracks state single FilteredData object global teal_slices updates objects necessary. Filter states added different modules Filter states added individual module added global teal_slices become available modules setting private$available_teal_slices FilteredData.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Client Timezone — get_client_timezone","title":"Get Client Timezone — get_client_timezone","text":"Local timezone browser may differ system timezone server. script can run register shiny input contains information timezone browser.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Client Timezone — get_client_timezone","text":"","code":"get_client_timezone(ns)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Client Timezone — get_client_timezone","text":"ns (function) namespace function passed session object Shiny server. Shiny modules allow proper name spacing registered input.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Client Timezone — get_client_timezone","text":"(Shiny) input variable accessible input$tz (character) string containing timezone browser/client.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"Wrapper get_code.tdata wrapper used downstream packages extract code tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"","code":"get_code_tdata(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"data (tdata) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"(character) code used tdata object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":null,"dir":"Reference","previous_headings":"","what":"Get datasets code — get_datasets_code","title":"Get datasets code — get_datasets_code","text":"Get combined code FilteredData CodeClass object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get datasets code — get_datasets_code","text":"","code":"get_datasets_code(datanames, datasets, hashes)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get datasets code — get_datasets_code","text":"datanames (character) names datasets extract code datasets (FilteredData) object hashes named (list) hashes per dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get datasets code — get_datasets_code","text":"character(3) containing following elements: code CodeClass (data loading code) hash check loaded objects","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract JoinKeys from tdata — get_join_keys.tdata","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"Extract JoinKeys tdata","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"","code":"# S3 method for tdata get_join_keys(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"data (tdata) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to get metadata from a tdata object — get_metadata","title":"Function to get metadata from a tdata object — get_metadata","text":"Function get metadata tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to get metadata from a tdata object — get_metadata","text":"","code":"get_metadata(data, dataname) # S3 method for tdata get_metadata(data, dataname) # S3 method for default get_metadata(data, dataname)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to get metadata from a tdata object — get_metadata","text":"data tdata - object extract data dataname character(1) dataset name whose metadata requested","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to get metadata from a tdata object — get_metadata","text":"Either list metadata NULL metadata","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":null,"dir":"Reference","previous_headings":"","what":"Generates library calls from current session info — get_rcode_libraries","title":"Generates library calls from current session info — get_rcode_libraries","text":"Function create multiple library calls current session info make reproducible code works.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generates library calls from current session info — get_rcode_libraries","text":"","code":"get_rcode_libraries()"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generates library calls from current session info — get_rcode_libraries","text":"Character object contain code","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_teal_bs_theme.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve the expected bootstrap theme — get_teal_bs_theme","title":"Resolve the expected bootstrap theme — get_teal_bs_theme","text":"Resolve expected bootstrap theme","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_teal_bs_theme.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve the expected bootstrap theme — get_teal_bs_theme","text":"","code":"get_teal_bs_theme()"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Include CSS files from /inst/css/ package directory to application header — include_css_files","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"","code":"include_css_files(pattern = \"*\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"pattern (character) pattern files included","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"HTML code includes CSS files","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Include JS files from /inst/js/ package directory to application header — include_js_files","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"","code":"include_js_files(pattern = NULL, except = NULL)"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"pattern (character) pattern files included, passed system.file except (character) vector basename filenames excluded","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"HTML code includes JS files","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":null,"dir":"Reference","previous_headings":"","what":"Code to include teal CSS and JavaScript files — include_teal_css_js","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"useful want use JavaScript CSS files used teal application. also useful running standalone modules teal correct styles. Also initializes shinyjs can use .","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"","code":"include_teal_css_js()"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"HTML code include","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"","code":"shiny_ui <- tagList( teal:::include_teal_css_js(), p(\"Hello\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the Server and UI Function For the Shiny App — init","title":"Create the Server and UI Function For the Shiny App — init","text":"End-users: important function start teal app composed teal modules. Notes developers: wrapper function around module_teal.R functions. Unless end-user, use function, instead module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the Server and UI Function For the Shiny App — init","text":"","code":"init( data, modules, title = NULL, filter = teal_slices(), header = tags$p(), footer = tags$p(), id = character(0) )"},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the Server and UI Function For the Shiny App — init","text":"data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. modules (list, teal_modules teal_module) nested list teal_modules teal_module objects single teal_modules teal_module object. specific output modules displayed teal application. See modules() module() details. title (NULL character) browser window title (defaults host URL page). filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices(). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app id (character) module id embed , provided, server function must called shiny::moduleServer(); See vignette example. However, ui_teal_with_splash() preferred function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the Server and UI Function For the Shiny App — init","text":"named list server ui function","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the Server and UI Function For the Shiny App — init","text":"","code":"new_iris <- transform(iris, id = seq_len(nrow(iris))) new_mtcars <- transform(mtcars, id = seq_len(nrow(mtcars))) app <- init( data = teal_data( dataset(\"new_iris\", new_iris), dataset(\"new_mtcars\", new_mtcars), code = \" new_iris <- transform(iris, id = seq_len(nrow(iris))) new_mtcars <- transform(mtcars, id = seq_len(nrow(mtcars))) \" ), modules = modules( module( label = \"data source\", server = function(input, output, session, data) {}, ui = function(id, ...) div(p(\"information about data source\")), datanames = \"all\" ), example_module(label = \"example teal module\"), module( \"Iris Sepal.Length histogram\", server = function(input, output, session, data) { output$hist <- renderPlot( hist(data[[\"new_iris\"]]()$Sepal.Length) ) }, ui = function(id, ...) { ns <- NS(id) plotOutput(ns(\"hist\")) }, datanames = \"new_iris\" ) ), title = \"App title\", filter = teal_slices( teal_slice(dataname = \"new_iris\", varname = \"Species\"), teal_slice(dataname = \"new_iris\", varname = \"Sepal.Length\"), teal_slice(dataname = \"new_mtcars\", varname = \"cyl\"), exclude_varnames = list(new_iris = c(\"Sepal.Width\", \"Petal.Width\")), mapping = list( `example teal module` = \"new_iris Species\", `Iris Sepal.Length histogram` = \"new_iris Species\", global_filters = \"new_mtcars cyl\" ) ), header = tags$h1(\"Sample App\"), footer = tags$p(\"Copyright 2017 - 2023\") ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":null,"dir":"Reference","previous_headings":"","what":"Does the object make use of the arg — is_arg_used","title":"Does the object make use of the arg — is_arg_used","text":"object make use arg","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Does the object make use of the arg — is_arg_used","text":"","code":"is_arg_used(modules, arg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Does the object make use of the arg — is_arg_used","text":"modules (teal_module teal_modules) object arg (character(1)) names arguments checked formals teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Does the object make use of the arg — is_arg_used","text":"logical whether object makes use arg","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Landing Popup Module — landing_popup_module","title":"Landing Popup Module — landing_popup_module","text":"Creates landing welcome popup teal applications. module used display popup dialog application starts. dialog blocks access application must closed button application viewed.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Landing Popup Module — landing_popup_module","text":"","code":"landing_popup_module( label = \"Landing Popup\", title = NULL, content = NULL, buttons = modalButton(\"Accept\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Landing Popup Module — landing_popup_module","text":"label character(1) label module. title character(1) text displayed title popup. content content popup. Passed ... shiny::modalDialog. Can character list shiny.tags. See examples. buttons shiny.tag list tags (tagList). Typically modalButton actionButton. See examples.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Landing Popup Module — landing_popup_module","text":"teal_module (extended teal_landing_module class) used teal applications.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Landing Popup Module — landing_popup_module","text":"","code":"app1 <- teal::init( data = teal_data(iris = iris), modules = teal::modules( teal::landing_popup_module( content = \"A place for the welcome message or a disclaimer statement.\", buttons = modalButton(\"Proceed\") ), example_module() ) ) #> [INFO] 2023-11-13 18:36:25.4921 pid:992 token:[] teal Initializing landing_popup_module #> module \"Landing Popup\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shinyApp(app1$ui, app1$server) } app2 <- teal::init( data = teal_data(iris = iris), modules = teal::modules( teal::landing_popup_module( title = \"Welcome\", content = tags$b( \"A place for the welcome message or a disclaimer statement.\", style = \"color: red;\" ), buttons = tagList( modalButton(\"Proceed\"), actionButton(\"read\", \"Read more\", onclick = \"window.open('http://google.com', '_blank')\" ), actionButton(\"close\", \"Reject\", onclick = \"window.close()\") ) ), example_module() ) ) #> [INFO] 2023-11-13 18:36:25.5548 pid:992 token:[] teal Initializing landing_popup_module #> module \"Landing Popup\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shinyApp(app2$ui, app2$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"Transform mapping matrix, .e. data frame maps filter state module, list specification like one used mapping attribute teal_slices. Global filters gathered one list element. module active filters global ones, mentioned output.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"","code":"matrix_to_mapping(mapping_matrix)"},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"mapping_matrix (data.frame) logical vectors columns represent modules row represent teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"named list like mapping attribute teal_slices object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a teal_module object. — module","title":"Creates a teal_module object. — module","text":"function embeds shiny module inside teal application. One teal_module maps one shiny module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a teal_module object. — module","text":"","code":"module( label = \"module\", server = function(id, ...) { moduleServer(id, function(input, output, session) { }) }, ui = function(id, ...) { tags$p(paste0(\"This module has no UI (id: \", id, \" )\")) }, filters, datanames = \"all\", server_args = NULL, ui_args = NULL ) # S3 method for teal_module toString(x, indent = 0, ...) # S3 method for teal_module print(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a teal_module object. — module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. server (function) shiny module following arguments: id - teal set proper shiny namespace module (see shiny::moduleServer()). input, output, session - (recommended) shiny::callModule() used call module. data (optional) module receive tdata object, list reactive (filtered) data specified filters argument. datasets (optional) module receive FilteredData. (See [teal.slice::FilteredData]). reporter (optional) module receive Reporter. (See teal.reporter::Reporter). ... (optional) server_args elements passed module named argument .... ui (function) Shiny ui module function following arguments: id - teal set proper shiny namespace module. data (optional) module receive list reactive (filtered) data specified filters argument. datasets (optional) module receive FilteredData. (See [teal.slice::FilteredData]). ... (optional) ui_args elements passed module named argument .... filters (character) Deprecated. Use datanames instead. datanames (character) vector datanames relevant item. filter panel automatically update shown filters include filters listed datasets. NULL hide filter panel, keyword '' show filters datasets. datanames also determines subset datasets appended data argument server function. server_args (named list) additional arguments passed server function. ui_args (named list) additional arguments passed ui function. x teal_module indent (integer) indent level; submodule indented one level ... parameters passed toString","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a teal_module object. — module","text":"object class teal_module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a teal_module object. — module","text":"","code":"library(shiny) app <- init( data = teal_data(dataset(\"iris\", iris)), modules = list( module( label = \"Module\", server = function(id, data) { moduleServer( id, module = function(input, output, session) { output$data <- renderDataTable(data[[\"iris\"]]()) } ) }, ui = function(id) { ns <- NS(id) tagList(dataTableOutput(ns(\"data\"))) } ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":null,"dir":"Reference","previous_headings":"","what":"Manage multiple FilteredData objects — filter_manager_ui","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"Oversee filter states whole application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"","code":"filter_manager_ui(id) filter_manager_srv(id, filtered_data_list, filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"id (character(1))shiny module id. filtered_data_list (named list) list, possibly nested, FilteredData objects. FilteredData served one module teal application. structure list must reflect nesting modules tabs names list must labels respective modules. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"list reactives, holding teal_slices, returned filter_manager_module_srv.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"module observes changes filters FilteredData object keeps track filters used. mapping filters modules kept mapping_matrix object (actually data.frame) tracks filters (rows) active modules (columns).","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter manager modal — module_filter_manager_modal","title":"Filter manager modal — module_filter_manager_modal","text":"Opens modal containing filter manager UI.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter manager modal — module_filter_manager_modal","text":"","code":"filter_manager_modal_ui(id) filter_manager_modal_srv(id, filtered_data_list, filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter manager modal — module_filter_manager_modal","text":"id (character(1))shiny module id. filtered_data_list (named list) list, possibly nested, FilteredData objects. FilteredData served one module teal application. structure list must reflect nesting modules tabs names list must labels respective modules. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filter manager modal — module_filter_manager_modal","text":"","code":"fd1 <- teal.slice::init_filtered_data(list(iris = list(dataset = iris))) fd2 <- teal.slice::init_filtered_data( list(iris = list(dataset = iris), mtcars = list(dataset = mtcars)) ) fd3 <- teal.slice::init_filtered_data( list(iris = list(dataset = iris), women = list(dataset = women)) ) filter <- teal_slices( teal.slice::teal_slice(dataname = \"iris\", varname = \"Sepal.Length\"), teal.slice::teal_slice(dataname = \"iris\", varname = \"Species\"), teal.slice::teal_slice(dataname = \"mtcars\", varname = \"mpg\"), teal.slice::teal_slice(dataname = \"women\", varname = \"height\"), mapping = list( module2 = c(\"mtcars mpg\"), module3 = c(\"women height\"), global_filters = \"iris Species\" ) ) app <- shinyApp( ui = fluidPage( teal:::filter_manager_modal_ui(\"manager\") ), server = function(input, output, session) { teal:::filter_manager_modal_srv( \"manager\", filtered_data_list = list(module1 = fd1, module2 = fd2, module3 = fd3), filter = filter ) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract/Remove module(s) of specific class — extract_module","title":"Extract/Remove module(s) of specific class — extract_module","text":"Given teal_module teal_modules, return elements structure according class.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract/Remove module(s) of specific class — extract_module","text":"","code":"extract_module(modules, class) drop_module(modules, class)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract/Remove module(s) of specific class — extract_module","text":"modules teal_modules class class name teal_module extracted dropped.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract/Remove module(s) of specific class — extract_module","text":"extract_module, teal_module class class teal_modules containing modules class class. drop_module, opposite, teal_modules class class. teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a UI of nested tabs of teal_modules — module_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"Create UI nested tabs teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"","code":"ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for default ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for teal_modules ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for teal_module ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for default srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for teal_modules srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for teal_module srv_nested_tabs( id, datasets, modules, is_module_specific = TRUE, reporter = teal.reporter::Reporter$new() )"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"id (character(1)) module id datasets (named list FilteredData) object store filter state filtered datasets, shared across modules. details see teal.slice::FilteredData. Structure list must structure modules argument list names must correspond labels modules. filter module-specific list contains object elements. depth (integer(1)) number helps determine depth modules nesting. is_module_specific (logical(1)) flag determining filter panel global module-specific. set TRUE, filter panel called inside module tab. reporter (Reporter) object teal.reporter","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"depending class modules, ui_nested_tabs returns: teal_module: instantiated UI module teal_modules: tabsetPanel tab corresponding recursively calling function .srv_nested_tabs returns reactive returns active module corresponds selected tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ui-nested-tabs","dir":"Reference","previous_headings":"","what":"ui_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"teal_modules translated tabsetPanel children another tab-module called recursively. UI teal_module obtained calling ui function . datasets argument required resolve teal arguments isolated context (respect reactivity)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"srv-nested-tabs","dir":"Reference","previous_headings":"","what":"srv_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"module calls recursively elements modules returns one currently active. teal_module returns self active module. teal_modules also returns module active within self determined input$active_tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"","code":"mods <- teal:::example_modules() datasets <- teal:::example_datasets() app <- shinyApp( ui = function() { tagList( teal:::include_teal_css_js(), textOutput(\"info\"), fluidPage( # needed for nice tabs teal:::ui_nested_tabs(\"dummy\", modules = mods, datasets = datasets) ) ) }, server = function(input, output, session) { active_module <- teal:::srv_nested_tabs( \"dummy\", datasets = datasets, modules = mods ) output$info <- renderText({ paste0(\"The currently active tab name is \", active_module()$label) }) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":null,"dir":"Reference","previous_headings":"","what":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"ui_nested_tabs function returns nested tabbed UI corresponding nested modules. function adds right filter panel main tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"","code":"ui_tabs_with_filters(id, modules, datasets, filter = teal_slices()) srv_tabs_with_filters( id, datasets, modules, reporter = teal.reporter::Reporter$new(), filter = teal_slices() )"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"id (character(1)) module id datasets (named list FilteredData) object store filter state filtered datasets, shared across modules. details see teal.slice::FilteredData. Structure list must structure modules argument list names must correspond labels modules. filter module-specific list contains object elements. reporter (Reporter) object teal.reporter","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"tagList main menu, place holders filters place holders teal modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"right filter panel's filter choices affect datasets object. Therefore, modules using datasets share filters. works nested modules depth greater 2, though filter panel inserted right modules depth 1 leaves.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"","code":"mods <- teal:::example_modules() datasets <- teal:::example_datasets() app <- shinyApp( ui = function() { tagList( teal:::include_teal_css_js(), textOutput(\"info\"), fluidPage( # needed for nice tabs ui_tabs_with_filters(\"dummy\", modules = mods, datasets = datasets) ) ) }, server = function(input, output, session) { output$info <- renderText({ paste0(\"The currently active tab name is \", active_module()$label) }) active_module <- srv_tabs_with_filters(id = \"dummy\", datasets = datasets, modules = mods) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":null,"dir":"Reference","previous_headings":"","what":"teal main app module — module_teal","title":"teal main app module — module_teal","text":"main teal app puts everything together.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"teal main app module — module_teal","text":"","code":"ui_teal( id, splash_ui = tags$h2(\"Starting the Teal App\"), title = NULL, header = tags$p(\"\"), footer = tags$p(\"\") ) srv_teal(id, modules, teal_data_rv, filter = teal_slices())"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"teal main app module — module_teal","text":"id (character(1)) module id splash_ui (shiny.tag) UI display initially, can splash screen Shiny module UI. latter, see init() call corresponding server function. title (NULL character) browser window title (defaults host URL page). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app teal_data_rv (reactive) returns teal_data, evaluated , NULL value ignored","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"teal main app module — module_teal","text":"ui_teal returns HTML Shiny module UI. srv_teal returns reactive returns currently active module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"teal main app module — module_teal","text":"displays splash UI used fetch data, possibly prompting password input fetch data. data ready, splash screen replaced actual teal UI tabsetted filter panel datanames relevant current tab. Nested tabs possible, limit two nesting levels reasons clarity UI. splash screen functionality can also used non-delayed data takes time load memory, avoiding Shiny session timeouts. Server evaluates teal_data_rv (delayed data mechanism) creates datasets object shared across modules. ready non-NULL, splash screen replaced main teal UI depends data. currently active tab tracked right filter panel updates displayed datasets filter according active datanames tab. written Shiny module can added apps well.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"teal main app module — module_teal","text":"","code":"mods <- teal:::example_modules() teal_data_rv <- reactive(teal:::example_cdisc_data()) app <- shinyApp( ui = function() { teal:::ui_teal(\"dummy\") }, server = function(input, output, session) { active_module <- teal:::srv_teal(id = \"dummy\", modules = mods, teal_data_rv = teal_data_rv) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a teal_modules object. — modules","title":"Creates a teal_modules object. — modules","text":"function collects list teal_modules teal_module objects returns teal_modules object containing passed objects. function dictates modules included teal application. internal structure teal_modules shapes navigation panel teal application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a teal_modules object. — modules","text":"","code":"modules(..., label = \"root\") # S3 method for teal_modules toString(x, indent = 0, ...) # S3 method for teal_modules print(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a teal_modules object. — modules","text":"... parameters passed toString label (character(1)) label modules collection (default \"root\"). using label argument must explicitly named. example modules(\"lab\", ...) converted modules(label = \"lab\", ...) x teal_modules indent (integer) indent level; submodule indented one level ","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a teal_modules object. — modules","text":"object class teal_modules. Object contains following fields label: taken label argument children: list containing objects passed .... List elements named label attribute converted valid shiny id. (character)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a teal_modules object. — modules","text":"","code":"library(shiny) app <- init( data = teal_data(dataset(\"iris\", iris)), modules = modules( label = \"Modules\", modules( label = \"Module\", module( label = \"Inner module\", server = function(id, data) { moduleServer( id, module = function(input, output, session) { output$data <- renderDataTable(data[[\"iris\"]]()) } ) }, ui = function(id) { ns <- NS(id) tagList(dataTableOutput(ns(\"data\"))) }, datanames = \"all\" ) ), module( label = \"Another module\", server = function(id) { moduleServer( id, module = function(input, output, session) { output$text <- renderText(\"Another module\") } ) }, ui = function(id) { ns <- NS(id) tagList(textOutput(ns(\"text\"))) }, datanames = NULL ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":null,"dir":"Reference","previous_headings":"","what":"Get module depth — modules_depth","title":"Get module depth — modules_depth","text":"Depth starts 0, single teal.module depth 0. Nesting increases overall depth 1.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get module depth — modules_depth","text":"","code":"modules_depth(modules, depth = 0L)"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get module depth — modules_depth","text":"modules (list, teal_modules teal_module) nested list teal_modules teal_module objects single teal_modules teal_module object. specific output modules displayed teal application. See modules() module() details. depth optional, integer determining current depth level","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get module depth — modules_depth","text":"depth level given module","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get module depth — modules_depth","text":"","code":"mods <- modules( label = \"d1\", modules( label = \"d2\", modules( label = \"d3\", module(label = \"aaa1\"), module(label = \"aaa2\"), module(label = \"aaa3\") ), module(label = \"bbb\") ), module(label = \"ccc\") ) #> module \"aaa1\" server function takes no data so \"datanames\" will be ignored #> module \"aaa2\" server function takes no data so \"datanames\" will be ignored #> module \"aaa3\" server function takes no data so \"datanames\" will be ignored #> module \"bbb\" server function takes no data so \"datanames\" will be ignored #> module \"ccc\" server function takes no data so \"datanames\" will be ignored stopifnot(teal:::modules_depth(mods) == 3L) mods <- modules( label = \"a\", modules( label = \"b1\", module(label = \"c\") ), module(label = \"b2\") ) #> module \"c\" server function takes no data so \"datanames\" will be ignored #> module \"b2\" server function takes no data so \"datanames\" will be ignored stopifnot(teal:::modules_depth(mods) == 2L)"},{"path":"https://insightsengineering.github.io/teal/main/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. lifecycle deprecate_soft magrittr %>%","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":null,"dir":"Reference","previous_headings":"","what":"Template Function for TealReportCard Creation and Customization — report_card_template","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"function generates report card title, optional description, option append filter state list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"","code":"report_card_template( title, label, description = NULL, with_filter, filter_panel_api )"},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"title (character(1)) title card (unless overwritten label) label (character(1)) label provided user adding card description (character(1)) optional additional description with_filter (logical(1)) flag indicating add filter state filter_panel_api (FilterPanelAPI) object API allows generation filter state report","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"(TealReportCard) populated title, description filter state","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a teal module for previewing a report — reporter_previewer_module","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"function wraps teal.reporter::reporter_previewer_ui() teal.reporter::reporter_previewer_srv() teal_module used teal applications. creating teal application using init() module added application automatically teal modules support report generation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"","code":"reporter_previewer_module(label = \"Report previewer\", server_args = list())"},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. server_args (named list) Arguments passed teal.reporter::reporter_previewer_srv().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"teal_module (extended teal_module_previewer class) containing teal.reporter previewer functionality.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve datanames for the modules — resolve_modules_datanames","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"Modifies module$datanames include names parent dataset (taken join_keys). datanames set \"\" replaced available datasets names.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"","code":"resolve_modules_datanames(modules, datanames, join_keys)"},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"modules (teal_modules) object datanames (character) names datasets available data object join_keys (JoinKeys) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"teal_modules resolved datanames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Run JS file from /inst/js/ package directory — run_js_files","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"triggered server execute client rather triggered directly client. Unlike include_js_files includes JavaScript functions, run_js actually executes JavaScript functions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"","code":"run_js_files(files)"},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"files (character) vector filenames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":null,"dir":"Reference","previous_headings":"","what":"Show R Code Modal — show_rcode_modal","title":"Show R Code Modal — show_rcode_modal","text":"Use shiny::showModal() function show R code inside.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Show R Code Modal — show_rcode_modal","text":"","code":"show_rcode_modal(title = NULL, rcode, session = getDefaultReactiveDomain())"},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Show R Code Modal — show_rcode_modal","text":"title (character(1)) Title modal, displayed first comment R-code. rcode (character) vector R code show inside modal. session (ShinySession optional)shiny Session object, missing shiny::getDefaultReactiveDomain() used.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Show R Code Modal — show_rcode_modal","text":"shiny::showModal()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":null,"dir":"Reference","previous_headings":"","what":"Restore teal_slices object from a file — slices_restore","title":"Restore teal_slices object from a file — slices_restore","text":"function takes file path JSON file containing teal_slices object restores original form. restored teal_slices object can used access filter states corresponding attributes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Restore teal_slices object from a file — slices_restore","text":"","code":"slices_restore(file)"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Restore teal_slices object from a file — slices_restore","text":"file Path file teal_slices stored. Must .json extension read access.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Restore teal_slices object from a file — slices_restore","text":"teal_slices object restored file.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Restore teal_slices object from a file — slices_restore","text":"","code":"if (interactive()) { # Restore a teal_slices object from a file tss_restored <- slices_restore(\"path/to/file.json\") }"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":null,"dir":"Reference","previous_headings":"","what":"Store teal_slices object to a file — slices_store","title":"Store teal_slices object to a file — slices_store","text":"function takes teal_slices object saves file JSON format. teal_slices object contains information filter states can used create, modify, delete filter states. saved file can later loaded using slices_restore function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Store teal_slices object to a file — slices_store","text":"","code":"slices_store(tss, file)"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Store teal_slices object to a file — slices_store","text":"tss (teal_slices) object stored. file (character(1)) file path teal_slices object saved. file extension \".json\".","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Store teal_slices object to a file — slices_store","text":"NULL, invisibly.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Store teal_slices object to a file — slices_store","text":"Date class stored \"ISO8601\" format (YYYY-MM-DD). POSIX*t classes converted character using format.POSIX*t(usetz = TRUE, tz = \"UTC\") (YYYY-MM-DD {N}{N}:{N}{N}:{N}{N} UTC, {N} = [0-9] number UTC Coordinated Universal Time timezone short-code). format assumed slices_restore. POSIX*t objects selected choices fields teal_slice objects always printed UTC timezone well.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Store teal_slices object to a file — slices_store","text":"","code":"# Create a teal_slices object tss <- teal_slices( teal_slice(dataname = \"data\", varname = \"var\"), teal_slice(dataname = \"data\", expr = \"x > 0\", id = \"positive_x\", title = \"Positive x\") ) if (interactive()) { # Store the teal_slices object to a file slices_store(tss, \"path/to/file.json\") }"},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter state snapshot management. — snapshot_manager_module","title":"Filter state snapshot management. — snapshot_manager_module","text":"Capture restore snapshots global (app) filter state.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter state snapshot management. — snapshot_manager_module","text":"","code":"snapshot_manager_ui(id) snapshot_manager_srv(id, slices_global, mapping_matrix, filtered_data_list)"},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter state snapshot management. — snapshot_manager_module","text":"id (character(1)) shiny module id slices_global (reactiveVal) contains teal_slices object containing teal_slices existing app, active inactive mapping_matrix (reactive) contains data.frame representation mapping filter state ids (rows) modules labels (columns); columns logical vectors filtered_data_list non-nested (named list) contains FilteredData objects","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filter state snapshot management. — snapshot_manager_module","text":"Nothing returned.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filter state snapshot management. — snapshot_manager_module","text":"module introduces snapshots: stored descriptions filter state entire application. Snapshots allow user save current filter state application later use session, well save file order share app developer users, turn can upload session. snapshot manager accessed filter manager, cog icon top right corner. beginning session presents three icons: camera, upload, circular arrow. Clicking camera captures snapshot, clicking upload adds snapshot file applies filter states therein, clicking arrow resets initial application state. snapshots added, show rows table select button save button.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"server-logic","dir":"Reference","previous_headings":"","what":"Server logic","title":"Filter state snapshot management. — snapshot_manager_module","text":"Snapshots basically teal_slices objects, however, since module served separate instance FilteredData objects require shared state, teal_slice reactiveVal teal_slices stored . Therefore, teal_slices reversibly converted list lists representation (attributes maintained). Snapshots stored reactiveVal named list. first snapshot initial state application user can add snapshot whenever see fit. every snapshot except initial one, piece UI generated contains snapshot name, select button restore snapshot, save button save file. initial snapshot restored separate \"reset\" button. saved directly user welcome capture initial state snapshot save .","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"snapshot-mechanics","dir":"Reference","previous_headings":"","what":"Snapshot mechanics","title":"Filter state snapshot management. — snapshot_manager_module","text":"snapshot captured, user prompted name . Names displayed since used create button ids, hood converted syntactically valid strings. New snapshot names validated valid versions unique. Leading trailing white space trimmed. module can read global state application slices_global mapping_matrix. former provides list existing teal_slices latter says slice active module. name accepted, slices_global converted list lists - snapshot. snapshot contains mapping attribute initial application state (one restored), may reflect current one, mapping_matrix transformed obtain current mapping, .e. list , passed mapping argument teal_slices, result current mapping. substituted snapshot's mapping attribute snapshot added snapshot list. restore app state, snapshot retrieved storage rebuilt teal_slices object. state FilteredData objects (provided filtered_data_list) cleared set anew according mapping attribute snapshot. snapshot set current content slices_global. save snapshot, snapshot retrieved reassembled just like restoring, saved file slices_store. snapshot uploaded, first added storage just like newly created one, used restore app state much like snapshot taken storage. Upon clicking upload icon user prompted file upload may choose name new snapshot. name defaults name file (extension dropped) normal naming rules apply. Loading file yields teal_slices object, disassembled storage used directly restoring app state.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"transferring-snapshots","dir":"Reference","previous_headings":"","what":"Transferring snapshots","title":"Filter state snapshot management. — snapshot_manager_module","text":"Snapshots uploaded disk used application come , .e. application uses data modules. ensure case, init stamps teal_slices app id stored app_id attribute teal_slices object. snapshot restored file, app_id compared current app state match snapshot admitted session.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Filter state snapshot management. — snapshot_manager_module","text":"Aleksander Chlebowski","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":null,"dir":"Reference","previous_headings":"","what":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"Please also refer doc init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"","code":"srv_teal_with_splash(id, data, modules, filter = teal_slices())"},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"id (character) module id embed , provided, server function must called shiny::moduleServer(); See vignette example. However, ui_teal_with_splash() preferred function. data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. modules teal_modules object containing output modules displayed teal application. See modules() module() details. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"reactive containing teal_data object data loaded. data loaded yet, reactive returns NULL.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a tdata Object — tdata","title":"Create a tdata Object — tdata","text":"Create new object called tdata contains data, reactive list data.frames (MultiAssayExperiment), attributes: code (reactive) containing code used generate data join_keys (JoinKeys) containing relationships data metadata (named list) containing metadata associated data frames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a tdata Object — tdata","text":"","code":"new_tdata(data, code = \"\", join_keys = NULL, metadata = NULL) # S3 method for tdata get_code(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a tdata Object — tdata","text":"data named list data.frames (MultiAssayExperiment) optionally can reactive. Inside object items made reactive. code character (reactive evaluates character) containing code used generate data. reactive code changing reactive context (e.g. filtering changes code). Inside object code made reactive join_keys teal.data::JoinKeys object containing relationships datasets. metadata named list element contains list metadata named data.frame element list atomic length one. x tdata object ... additional arguments generic","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a tdata Object — tdata","text":"tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a tdata Object — tdata","text":"","code":"data <- new_tdata( data = list(iris = iris, mtcars = reactive(mtcars), dd = data.frame(x = 1:10)), code = \"iris <- iris mtcars <- mtcars dd <- data.frame(x = 1:10)\", metadata = list(dd = list(author = \"NEST\"), iris = list(version = 1)) ) # Extract a data.frame isolate(data[[\"iris\"]]()) #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> 1 5.1 3.5 1.4 0.2 setosa #> 2 4.9 3.0 1.4 0.2 setosa #> 3 4.7 3.2 1.3 0.2 setosa #> 4 4.6 3.1 1.5 0.2 setosa #> 5 5.0 3.6 1.4 0.2 setosa #> 6 5.4 3.9 1.7 0.4 setosa #> 7 4.6 3.4 1.4 0.3 setosa #> 8 5.0 3.4 1.5 0.2 setosa #> 9 4.4 2.9 1.4 0.2 setosa #> 10 4.9 3.1 1.5 0.1 setosa #> 11 5.4 3.7 1.5 0.2 setosa #> 12 4.8 3.4 1.6 0.2 setosa #> 13 4.8 3.0 1.4 0.1 setosa #> 14 4.3 3.0 1.1 0.1 setosa #> 15 5.8 4.0 1.2 0.2 setosa #> 16 5.7 4.4 1.5 0.4 setosa #> 17 5.4 3.9 1.3 0.4 setosa #> 18 5.1 3.5 1.4 0.3 setosa #> 19 5.7 3.8 1.7 0.3 setosa #> 20 5.1 3.8 1.5 0.3 setosa #> 21 5.4 3.4 1.7 0.2 setosa #> 22 5.1 3.7 1.5 0.4 setosa #> 23 4.6 3.6 1.0 0.2 setosa #> 24 5.1 3.3 1.7 0.5 setosa #> 25 4.8 3.4 1.9 0.2 setosa #> 26 5.0 3.0 1.6 0.2 setosa #> 27 5.0 3.4 1.6 0.4 setosa #> 28 5.2 3.5 1.5 0.2 setosa #> 29 5.2 3.4 1.4 0.2 setosa #> 30 4.7 3.2 1.6 0.2 setosa #> 31 4.8 3.1 1.6 0.2 setosa #> 32 5.4 3.4 1.5 0.4 setosa #> 33 5.2 4.1 1.5 0.1 setosa #> 34 5.5 4.2 1.4 0.2 setosa #> 35 4.9 3.1 1.5 0.2 setosa #> 36 5.0 3.2 1.2 0.2 setosa #> 37 5.5 3.5 1.3 0.2 setosa #> 38 4.9 3.6 1.4 0.1 setosa #> 39 4.4 3.0 1.3 0.2 setosa #> 40 5.1 3.4 1.5 0.2 setosa #> 41 5.0 3.5 1.3 0.3 setosa #> 42 4.5 2.3 1.3 0.3 setosa #> 43 4.4 3.2 1.3 0.2 setosa #> 44 5.0 3.5 1.6 0.6 setosa #> 45 5.1 3.8 1.9 0.4 setosa #> 46 4.8 3.0 1.4 0.3 setosa #> 47 5.1 3.8 1.6 0.2 setosa #> 48 4.6 3.2 1.4 0.2 setosa #> 49 5.3 3.7 1.5 0.2 setosa #> 50 5.0 3.3 1.4 0.2 setosa #> 51 7.0 3.2 4.7 1.4 versicolor #> 52 6.4 3.2 4.5 1.5 versicolor #> 53 6.9 3.1 4.9 1.5 versicolor #> 54 5.5 2.3 4.0 1.3 versicolor #> 55 6.5 2.8 4.6 1.5 versicolor #> 56 5.7 2.8 4.5 1.3 versicolor #> 57 6.3 3.3 4.7 1.6 versicolor #> 58 4.9 2.4 3.3 1.0 versicolor #> 59 6.6 2.9 4.6 1.3 versicolor #> 60 5.2 2.7 3.9 1.4 versicolor #> 61 5.0 2.0 3.5 1.0 versicolor #> 62 5.9 3.0 4.2 1.5 versicolor #> 63 6.0 2.2 4.0 1.0 versicolor #> 64 6.1 2.9 4.7 1.4 versicolor #> 65 5.6 2.9 3.6 1.3 versicolor #> 66 6.7 3.1 4.4 1.4 versicolor #> 67 5.6 3.0 4.5 1.5 versicolor #> 68 5.8 2.7 4.1 1.0 versicolor #> 69 6.2 2.2 4.5 1.5 versicolor #> 70 5.6 2.5 3.9 1.1 versicolor #> 71 5.9 3.2 4.8 1.8 versicolor #> 72 6.1 2.8 4.0 1.3 versicolor #> 73 6.3 2.5 4.9 1.5 versicolor #> 74 6.1 2.8 4.7 1.2 versicolor #> 75 6.4 2.9 4.3 1.3 versicolor #> 76 6.6 3.0 4.4 1.4 versicolor #> 77 6.8 2.8 4.8 1.4 versicolor #> 78 6.7 3.0 5.0 1.7 versicolor #> 79 6.0 2.9 4.5 1.5 versicolor #> 80 5.7 2.6 3.5 1.0 versicolor #> 81 5.5 2.4 3.8 1.1 versicolor #> 82 5.5 2.4 3.7 1.0 versicolor #> 83 5.8 2.7 3.9 1.2 versicolor #> 84 6.0 2.7 5.1 1.6 versicolor #> 85 5.4 3.0 4.5 1.5 versicolor #> 86 6.0 3.4 4.5 1.6 versicolor #> 87 6.7 3.1 4.7 1.5 versicolor #> 88 6.3 2.3 4.4 1.3 versicolor #> 89 5.6 3.0 4.1 1.3 versicolor #> 90 5.5 2.5 4.0 1.3 versicolor #> 91 5.5 2.6 4.4 1.2 versicolor #> 92 6.1 3.0 4.6 1.4 versicolor #> 93 5.8 2.6 4.0 1.2 versicolor #> 94 5.0 2.3 3.3 1.0 versicolor #> 95 5.6 2.7 4.2 1.3 versicolor #> 96 5.7 3.0 4.2 1.2 versicolor #> 97 5.7 2.9 4.2 1.3 versicolor #> 98 6.2 2.9 4.3 1.3 versicolor #> 99 5.1 2.5 3.0 1.1 versicolor #> 100 5.7 2.8 4.1 1.3 versicolor #> 101 6.3 3.3 6.0 2.5 virginica #> 102 5.8 2.7 5.1 1.9 virginica #> 103 7.1 3.0 5.9 2.1 virginica #> 104 6.3 2.9 5.6 1.8 virginica #> 105 6.5 3.0 5.8 2.2 virginica #> 106 7.6 3.0 6.6 2.1 virginica #> 107 4.9 2.5 4.5 1.7 virginica #> 108 7.3 2.9 6.3 1.8 virginica #> 109 6.7 2.5 5.8 1.8 virginica #> 110 7.2 3.6 6.1 2.5 virginica #> 111 6.5 3.2 5.1 2.0 virginica #> 112 6.4 2.7 5.3 1.9 virginica #> 113 6.8 3.0 5.5 2.1 virginica #> 114 5.7 2.5 5.0 2.0 virginica #> 115 5.8 2.8 5.1 2.4 virginica #> 116 6.4 3.2 5.3 2.3 virginica #> 117 6.5 3.0 5.5 1.8 virginica #> 118 7.7 3.8 6.7 2.2 virginica #> 119 7.7 2.6 6.9 2.3 virginica #> 120 6.0 2.2 5.0 1.5 virginica #> 121 6.9 3.2 5.7 2.3 virginica #> 122 5.6 2.8 4.9 2.0 virginica #> 123 7.7 2.8 6.7 2.0 virginica #> 124 6.3 2.7 4.9 1.8 virginica #> 125 6.7 3.3 5.7 2.1 virginica #> 126 7.2 3.2 6.0 1.8 virginica #> 127 6.2 2.8 4.8 1.8 virginica #> 128 6.1 3.0 4.9 1.8 virginica #> 129 6.4 2.8 5.6 2.1 virginica #> 130 7.2 3.0 5.8 1.6 virginica #> 131 7.4 2.8 6.1 1.9 virginica #> 132 7.9 3.8 6.4 2.0 virginica #> 133 6.4 2.8 5.6 2.2 virginica #> 134 6.3 2.8 5.1 1.5 virginica #> 135 6.1 2.6 5.6 1.4 virginica #> 136 7.7 3.0 6.1 2.3 virginica #> 137 6.3 3.4 5.6 2.4 virginica #> 138 6.4 3.1 5.5 1.8 virginica #> 139 6.0 3.0 4.8 1.8 virginica #> 140 6.9 3.1 5.4 2.1 virginica #> 141 6.7 3.1 5.6 2.4 virginica #> 142 6.9 3.1 5.1 2.3 virginica #> 143 5.8 2.7 5.1 1.9 virginica #> 144 6.8 3.2 5.9 2.3 virginica #> 145 6.7 3.3 5.7 2.5 virginica #> 146 6.7 3.0 5.2 2.3 virginica #> 147 6.3 2.5 5.0 1.9 virginica #> 148 6.5 3.0 5.2 2.0 virginica #> 149 6.2 3.4 5.4 2.3 virginica #> 150 5.9 3.0 5.1 1.8 virginica # Get code isolate(get_code(data)) #> [1] \"iris <- iris\\n mtcars <- mtcars\\n dd <- data.frame(x = 1:10)\" # Get metadata get_metadata(data, \"iris\") #> $version #> [1] 1 #>"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"Function convert tdata object environment reactives inside tdata first evaluated","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"","code":"tdata2env(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"data tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"environment","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"","code":"data <- new_tdata( data = list(iris = iris, mtcars = reactive(mtcars)), code = \"iris <- iris mtcars = mtcars\" ) my_env <- isolate(tdata2env(data))"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":null,"dir":"Reference","previous_headings":"","what":"teal: Interactive Exploration of Clinical Trials Data — teal-package","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"teal package provides shiny based framework creating interactive data analysis environment.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"learn mode package either read project website Project Website read init manual pages.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"Maintainer: Dawid Kaledkowski dawid.kaledkowski@roche.com Authors: Pawel Rucki pawel.rucki@roche.com Aleksander Chlebowski aleksander.chlebowski@contractors.roche.com Kartikeya Kirar kartikeya.kirar@businesspartner.roche.com Marcin Kosinski marcin.kosinski.mk1@roche.com Adrian Waddell adrian.waddell@gene.com Nikolas Burkoff Mahmoud Hallal Maciej Nasinski Konrad Pagacz Junlue Zhao contributors: Chendi Liao chendi.liao@roche.com [reviewer] Dony Unardi unardid@gene.com [reviewer] F. Hoffmann-La Roche AG [copyright holder, funder] Maximilian Mordig [contributor]","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Data module for teal applications — teal_data_module","title":"Data module for teal applications — teal_data_module","text":"Creates teal_data_module object - shiny module supply modify data teal application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data module for teal applications — teal_data_module","text":"","code":"teal_data_module(ui, server)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Data module for teal applications — teal_data_module","text":"ui (function(id))shiny module ui function; must take id argument server (function(id))shiny module ui function; must take id argument; must return reactive expression containing teal_data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Data module for teal applications — teal_data_module","text":"Object class teal_data_module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data module for teal applications — teal_data_module","text":"function creates shiny module allows running data pre-processing code app starts. body server function run app rather global environment. means run every time app starts, use sparingly. Pass module instead teal_data object call init(). See vignette vignette(\"data--shiny-module\", package = \"teal\") details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data module for teal applications — teal_data_module","text":"","code":"data <- teal_data_module( ui = function(id) { ns <- NS(id) actionButton(ns(\"submit\"), label = \"Load data\") }, server = function(id) { moduleServer(id, function(input, output, session) { eventReactive(input$submit, { data <- within( teal_data(), { dataset1 <- iris dataset2 <- mtcars } ) datanames(data) <- c(\"iris\", \"mtcars\") data }) }) } )"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a FilteredData — teal_data_to_filtered_data","title":"Create a FilteredData — teal_data_to_filtered_data","text":"Create FilteredData object teal_data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a FilteredData — teal_data_to_filtered_data","text":"","code":"teal_data_to_filtered_data(x)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a FilteredData — teal_data_to_filtered_data","text":"x (teal_data) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a FilteredData — teal_data_to_filtered_data","text":"(FilteredData) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter settings for teal applications — teal_slices","title":"Filter settings for teal applications — teal_slices","text":"Specify initial filter states filtering settings teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter settings for teal applications — teal_slices","text":"","code":"teal_slices( ..., exclude_varnames = NULL, include_varnames = NULL, count_type = NULL, allow_add = TRUE, module_specific = FALSE, mapping, app_id = NULL ) as.teal_slices(x) # S3 method for teal_slices c(...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter settings for teal applications — teal_slices","text":"... number teal_slice objects. print format, additional arguments passed functions. include_varnames, exclude_varnames (named lists character) list names match names data sets vector elements match variable names respective data sets; specify variables allowed filtered; see Details count_type new feature. kindly share opinions. (character(1)) string specifying observations tallied filter states. Possible options: \"none\" (default) counts single FilterState show unfiltered number . \"\" counts single FilterState show number observation filtered unfiltered dataset. Note, issues reported using option MultiAssayExperiment. Please make sure adding new filters fail target platform deploying production. allow_add (logical(1)) logical flag specifying whether user able add new filters module_specific (logical(1)) TRUE filter panel module-specific. modules can different set filters specified - see mapping argument. FALSE one filter panel needed modules. filters shared modules. mapping new feature. kindly share opinions. (named list) Specifies filters active modules app start. Elements contain character vector teal_slice ids (see teal.slice::teal_slice()). Names list correspond teal_module label set module() function. ids listed \"global_filters active modules. missing, filters applied modules. empty list, filters available modules start inactive. module_specific FALSE, global_filters active start. app_id (character(1)) internal use , set manually. Added init teal_slices can matched app used. Used verifying snapshots uploaded file. See snapshot. x (list) lists convert teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filter settings for teal applications — teal_slices","text":"teal_slices object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filter settings for teal applications — teal_slices","text":"Produces teal_slices object. teal_slice components specify filter states active app starts. Attributes (created named arguments) configure way app applies filters. See argument descriptions details.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filter settings for teal applications — teal_slices","text":"","code":"filter <- teal_slices( teal.slice::teal_slice(dataname = \"iris\", varname = \"Species\", id = \"species\"), teal.slice::teal_slice(dataname = \"iris\", varname = \"Sepal.Length\", id = \"sepal_length\"), teal.slice::teal_slice( dataname = \"iris\", id = \"long_petals\", title = \"Long petals\", expr = \"Petal.Length > 5\" ), teal.slice::teal_slice(dataname = \"mtcars\", varname = \"mpg\", id = \"mtcars_mpg\"), mapping = list( module1 = c(\"species\", \"sepal_length\"), module2 = c(\"mtcars_mpg\"), global_filters = \"long_petals\" ) ) app <- teal::init( modules = list( module(\"module1\"), module(\"module2\") ), data = list(iris, mtcars), filter = filter ) #> module \"module1\" server function takes no data so \"datanames\" will be ignored #> module \"module2\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shiny::runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":null,"dir":"Reference","previous_headings":"","what":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"splash screen used query password fetch data. init() thin wrapper around module useful end-users assumes top-level module embedded. function instead adheres Shiny module conventions. data obtained delayed loading, splash screen used. Otherwise, default splash screen shown. Please also refer doc init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"","code":"ui_teal_with_splash( id, data, title, header = tags$p(\"Add Title Here\"), footer = tags$p(\"Add Footer Here\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"id (character(1)) module id data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. title (NULL character) browser window title (defaults host URL page). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":null,"dir":"Reference","previous_headings":"","what":"Explicitly enumerate global filters. — unfold_mapping","title":"Explicitly enumerate global filters. — unfold_mapping","text":"Transform module mapping global filters explicitly specified every module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Explicitly enumerate global filters. — unfold_mapping","text":"","code":"unfold_mapping(mapping, module_names)"},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Explicitly enumerate global filters. — unfold_mapping","text":"mapping (named list) stored mapping parameter teal_slices module_names (character) vector containing names modules app","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Explicitly enumerate global filters. — unfold_mapping","text":"named_list one element per module, element containing filters applied module.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"","code":"validate_has_data( x, min_nrow = NULL, complete = FALSE, allow_inf = TRUE, msg = NULL )"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"x data.frame min_nrow minimum number rows x complete logical default FALSE set TRUE complete cases checked. allow_inf logical default TRUE set FALSE error thrown values infinite. msg (character(1)) additional message display alongside default message.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"","code":"library(teal) ui <- fluidPage( sliderInput(\"len\", \"Max Length of Sepal\", min = 4.3, max = 7.9, value = 5 ), plotOutput(\"plot\") ) server <- function(input, output) { output$plot <- renderPlot({ df <- iris[iris$Sepal.Length <= input$len, ] validate_has_data( iris_f, min_nrow = 10, complete = FALSE, msg = \"Please adjust Max Length of Sepal\" ) hist(iris_f$Sepal.Length, breaks = 5) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"","code":"validate_has_elements(x, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"x vector msg message display","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"","code":"data <- data.frame( id = c(1:10, 11:20, 1:10), strata = rep(c(\"A\", \"B\"), each = 15) ) ui <- fluidPage( selectInput(\"ref1\", \"Select strata1 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"A\" ), selectInput(\"ref2\", \"Select strata2 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"B\" ), verbatimTextOutput(\"arm_summary\") ) server <- function(input, output) { output$arm_summary <- renderText({ sample_1 <- data$id[data$strata == input$ref1] sample_2 <- data$id[data$strata == input$ref2] validate_has_elements(sample_1, \"No subjects in strata1.\") validate_has_elements(sample_2, \"No subjects in strata2.\") paste0( \"Number of samples in: strata1=\", length(sample_1), \" comparions strata2=\", length(sample_2) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that dataset contains specific variable — validate_has_variable","text":"","code":"validate_has_variable(data, varname, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that dataset contains specific variable — validate_has_variable","text":"data data.frame varname name variable data msg message display data include varname","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that dataset contains specific variable — validate_has_variable","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that dataset contains specific variable — validate_has_variable","text":"","code":"data <- data.frame( one = rep(\"a\", length.out = 20), two = rep(c(\"a\", \"b\"), length.out = 20) ) ui <- fluidPage( selectInput( \"var\", \"Select variable\", choices = c(\"one\", \"two\", \"three\", \"four\"), selected = \"one\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ validate_has_variable(data, input$var) paste0(\"Selected treatment variables: \", paste(input$var, collapse = \", \")) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that vector includes all expected values — validate_in","text":"","code":"validate_in(x, choices, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that vector includes all expected values — validate_in","text":"x values test. must choices choices vector test values x msg warning message display","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that vector includes all expected values — validate_in","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that vector includes all expected values — validate_in","text":"","code":"ui <- fluidPage( selectInput( \"species\", \"Select species\", choices = c(\"setosa\", \"versicolor\", \"virginica\", \"unknown species\"), selected = \"setosa\", multiple = FALSE ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderPrint({ validate_in(input$species, iris$Species, \"Species does not exist.\") nrow(iris[iris$Species == input$species, ]) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":null,"dir":"Reference","previous_headings":"","what":"Send input validation messages to output. — validate_inputs","title":"Send input validation messages to output. — validate_inputs","text":"Captures messages InputValidator objects collates one message passed validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Send input validation messages to output. — validate_inputs","text":"","code":"validate_inputs(..., header = \"Some inputs require attention\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Send input validation messages to output. — validate_inputs","text":"... either number InputValidator objects optionally named, possibly nested list InputValidator objects, see Details header character(1) generic validation message; set NULL omit","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Send input validation messages to output. — validate_inputs","text":"Returns NULL final validation call passes shiny.silent.error fails.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Send input validation messages to output. — validate_inputs","text":"shiny::validate used withhold rendering output element certain conditions met print validation message place output element. shinyvalidate::InputValidator allows validate input elements display specific messages respective input widgets. validate_inputs provides hybrid solution. Given InputValidator object, messages corresponding inputs fail validation extracted placed one validation message passed validate/need call. way input validator messages repeated output. ... argument accepts number InputValidator objects nested list objects. validators passed directly, messages printed together one (optional) header message specified header. list passed, messages grouped validator. list's names used headers respective message groups. neither nested list elements named, header message taken header.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Send input validation messages to output. — validate_inputs","text":"","code":"library(shiny) library(shinyvalidate) ui <- fluidPage( selectInput(\"method\", \"validation method\", c(\"sequential\", \"combined\", \"grouped\")), sidebarLayout( sidebarPanel( selectInput(\"letter\", \"select a letter:\", c(letters[1:3], LETTERS[4:6])), selectInput(\"number\", \"select a number:\", 1:6), br(), selectInput(\"color\", \"select a color:\", c(\"black\", \"indianred2\", \"springgreen2\", \"cornflowerblue\"), multiple = TRUE ), sliderInput(\"size\", \"select point size:\", min = 0.1, max = 4, value = 0.25 ) ), mainPanel(plotOutput(\"plot\")) ) ) server <- function(input, output) { # set up input validation iv <- InputValidator$new() iv$add_rule(\"letter\", sv_in_set(LETTERS, \"choose a capital letter\")) iv$add_rule(\"number\", ~ if (as.integer(.) %% 2L == 1L) \"choose an even number\") iv$enable() # more input validation iv_par <- InputValidator$new() iv_par$add_rule(\"color\", sv_required(message = \"choose a color\")) iv_par$add_rule(\"color\", ~ if (length(.) > 1L) \"choose only one color\") iv_par$add_rule( \"size\", sv_between( left = 0.5, right = 3, message_fmt = \"choose a value between {left} and {right}\" ) ) iv_par$enable() output$plot <- renderPlot({ # validate output switch(input[[\"method\"]], \"sequential\" = { validate_inputs(iv) validate_inputs(iv_par, header = \"Set proper graphical parameters\") }, \"combined\" = validate_inputs(iv, iv_par), \"grouped\" = validate_inputs(list( \"Some inputs require attention\" = iv, \"Set proper graphical parameters\" = iv_par )) ) plot(eruptions ~ waiting, faithful, las = 1, pch = 16, col = input[[\"color\"]], cex = input[[\"size\"]] ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that variables has expected number of levels — validate_n_levels","text":"","code":"validate_n_levels(x, min_levels = 1, max_levels = 12, var_name)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that variables has expected number of levels — validate_n_levels","text":"x variable name. x factor, unique values treated levels. min_levels cutoff minimum number levels x max_levels cutoff maximum number levels x var_name name variable validated use validation message","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that variables has expected number of levels — validate_n_levels","text":"number levels x less min_levels greater max_levels validation fail. function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that variables has expected number of levels — validate_n_levels","text":"","code":"data <- data.frame( one = rep(\"a\", length.out = 20), two = rep(c(\"a\", \"b\"), length.out = 20), three = rep(c(\"a\", \"b\", \"c\"), length.out = 20), four = rep(c(\"a\", \"b\", \"c\", \"d\"), length.out = 20), stringsAsFactors = TRUE ) ui <- fluidPage( selectInput( \"var\", \"Select variable\", choices = c(\"one\", \"two\", \"three\", \"four\"), selected = \"one\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ validate_n_levels(data[[input$var]], min_levels = 2, max_levels = 15, var_name = input$var) paste0( \"Levels of selected treatment variable: \", paste(levels(data[[input$var]]), collapse = \", \" ) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates no intersection between two vectors — validate_no_intersection","text":"","code":"validate_no_intersection(x, y, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates no intersection between two vectors — validate_no_intersection","text":"x vector y vector msg message display x y intersect","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates no intersection between two vectors — validate_no_intersection","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates no intersection between two vectors — validate_no_intersection","text":"","code":"data <- data.frame( id = c(1:10, 11:20, 1:10), strata = rep(c(\"A\", \"B\", \"C\"), each = 10) ) ui <- fluidPage( selectInput(\"ref1\", \"Select strata1 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"A\" ), selectInput(\"ref2\", \"Select strata2 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"B\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ sample_1 <- data$id[data$strata == input$ref1] sample_2 <- data$id[data$strata == input$ref2] validate_no_intersection( sample_1, sample_2, \"subjects within strata1 and strata2 cannot overlap\" ) paste0( \"Number of subject in: reference treatment=\", length(sample_1), \" comparions treatment=\", length(sample_2) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"","code":"validate_one_row_per_id(x, key = c(\"USUBJID\", \"STUDYID\"))"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"x data.frame key vector ID variables x identify unique records","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"","code":"iris$id <- rep(1:50, times = 3) ui <- fluidPage( selectInput( inputId = \"species\", label = \"Select species\", choices = c(\"setosa\", \"versicolor\", \"virginica\"), selected = \"setosa\", multiple = TRUE ), plotOutput(\"plot\") ) server <- function(input, output) { output$plot <- renderPlot({ iris_f <- iris[iris$Species %in% input$species, ] validate_one_row_per_id(iris_f, key = c(\"id\")) hist(iris_f$Sepal.Length, breaks = 5) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.14.0.9017","text":"data argument init now accepts teal_data teal_data_module. Added landing_popup_module function creates module display popup app starts. popup block access app dismissed. Filter state snapshots can now uploaded file. See ?snapshot.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.14.0.9017","text":"Enhanced module validation checks won’t throw messages data argument unnecessarily. Added argument teal_slices made modifications init enable tagging teal_slices app id safely upload snapshots disk.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.14.0.9017","text":"Removed Report previewer module mapping matrix display filter manager.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-14-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.14.0","text":"Enabled module specific filter panel. See module_specific teal::teal_slices documentation. Enabled capturing resetting application filter state snapshots. See ?snapshot. Enabled reporter_previewer_module customize default values srv_args. Enabled passing reporter_previewer_module list modules override default one.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-14-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.14.0","text":"Specifying filter argument teal::init requires teal_slices object now. Details documentation teal::init. Soft deprecated filters argument module replaced datanames. Details documentation teal::module","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-14-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.14.0","text":"Removed scda package dependency examples. Updated header tag style enhance element containment.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-13-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.13.0","text":"use datasets argument modules deprecated removed future release. Please use data argument instead. data type tdata; see “Creating custom modules” vignettes function documentation teal::new_tdata details. Due deprecation chunks teal.code, teal framework now uses replacement (qenv) instead. documentation teal updated reflect custom modules written chunks updated use qenv. Due deprecation chunks teal.code, get_rcode, get_rcode_srv, get_rcode_ui removed.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-13-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.13.0","text":"Added validate_inputs function transfers input validation messages app output. modules argument init accepts teal_module type object. need wrap single module modules() list(). Updated module_nested_tabs active modules calculated teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-13-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.13.0","text":"Updated examples use scda.2022. Added R session information link footer teal applications. Added data hashing step using rlang instead digest package calculate hash (moved teal.data teal.slice). now explicit hashing check reproducible code output. Removed deprecated functions: root_modules, default_filter, bookmarkableShinyApp, well deprecated logging mechanism, including functions log_app_usage .log. Updated “Teal Bootstrap Themes” vignette provide details customizing teal app bslib::run_with_themer. Removed outdated diagram srv_nested_tabs documentation. Changed default values header footer arguments init empty text.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-12-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.12.0","text":"Added support custom bslib bootstrap themes teal::init apps, please read new teal-bs-themes vignette.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-12-0","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.12.0","text":"Added option choose variables can filtered filter panel using filterable attributes per-dataset lists filter argument init. Updated teal_module data argument receives list reactive filter data \"code\" \"join_keys\" attributes. Updated teal_module filter_panel_api argument receives FilterPanelAPI object. Updated internals module_teal reflect changes teal.slice.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-12-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.12.0","text":"Updated teal_module longer receive datasets object ... argument. order use datasets teal_module please specify datasets explicitly. Deprecated merge_expression argument get_rcode_srv function removed get_rcode function. Deprecated session argument get_rcode function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-12-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.12.0","text":"Enhanced burger button disabled filter panel used.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-11-1","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.11.1","text":"Added new function reporter_previewer_module wrap teal.reporter package previewer functionality teal module. Updated teal support modules include reporting. module supports reporting included reporter_previewer_module included. Added default arguments module() server argument now function second argument can ... datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-11-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.11.1","text":"Deprecated bookmarkableShinyApp. future releases teal framework stop supporting shiny bookmarking (officially supported); may officially supported future. Note filter panel teal.slice retains ability save restore state used standalone shiny app bookmarking.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-11-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.11.1","text":"Added template pkgdown configuration. Removed unneeded shinytest app tests. Updated package authors. Added package vignettes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-0110","dir":"Changelog","previous_headings":"","what":"teal 0.11.0","title":"teal 0.11.0","text":"teal.data: creating loading data needed teal applications. teal.widgets: shiny components used within teal. teal.slice: provides filtering panel allow filtering data. teal.code: handles reproducibility outputs. teal.transform: standardizes extracting merging data. teal.logger: standardizes logging within teal framework. teal package contains code create apps (teal::init), create module (teal::module) group modules app (teal::modules). teal depends teal.transform teal.data contain functions teal app creators likely need. package teal imports therefore teal module creators either fully specify functions packages required import custom packages library(teal) load .","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-11-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.11.0","text":"simple new teal module named example_module included package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-11-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.11.0","text":"teal package split multiple smaller packages, see . Deprecated root_modules function, users use modules directly inside init. Due deprecation root_modules label argument modules must explicitly named. example modules(\"lab\", mod1, mod2) replaced modules(label = \"lab\", mod1, mod2).","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-11-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.11.0","text":"Minor changes internals teal: main module panel now fixed shiny name root active tab named active_tab Active_tab. MultiAssayExperiment now suggested packages, required. Objects dependent MultiAssayExperiment changed lazy-load now suggested package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-11-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.11.0","text":"Showing R Code longer shows reproducibility warning message reproducibility check passed.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-10-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.10.1","text":"Changed HTML identifiers teal modules - now nested module receives shiny namespace. Deprecated functions related connectors moved 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_connection rcd_data; scda_dataset_connectors can passed cdisc_data teal_data directly. Replaced rcd_dataset_connector rcd_cdisc_dataset_connector scda_dataset_connector scda_cdisc_dataset_connector respectively. Renamed teal_show_js_log option teal.show_js_log match options naming convention. Removed %is_in% stop_shiny internal utility functions.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"logging-0-10-1","dir":"Changelog","previous_headings":"New features","what":"Logging","title":"teal 0.10.1","text":"Added support logging using logger package. Added new function register_logger, registers logger given namespace. Added trace info levels log messages teal framework. Added pid shiny session token footnote app developers can identify logs apps.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"other-0-10-1","dir":"Changelog","previous_headings":"New features","what":"Other","title":"teal 0.10.1","text":"Added print methods DatasetConnector, RelationalData, RelationalDataconnector JoinKeys classes added input validation implementation print method already Dataset object. Added public facing constructor functions CDISCDataConnector, RelationalDataConnector, DataConnection classes. Modified data_extract_spec allow filter select parameters NULL, results data_extract_ui acting filter_spec variables possible choices supplied filter argument select_spec multiple parameter set TRUE supplied select argument. Added support full screen module filters argument equal NULL. Added support shiny::moduleServer passed server parameter teal::module. Added teal.threshold_slider_vs_checkboxgroup R option: categorical variable number unique values, filter panel uses drop-select input instead checkbox group. Extended FilteredData API allow managing filter states programmatically UI teal application. Hid buttons remove filters datasets dataset active filters. Updated init accept RelationalData, data.frame, MultiAssayExperiment, Dataset, DatasetConnector, list function returning named list data input.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-10-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.10.1","text":"choices_selected now correctly removes duplicates array passed choices parameter. Fixed call returned FilterState case using MultiAssayExperiment::subsetByColData. Now single condition variable containing NA values !.na(var) & var == . Fixed data loading DatasetConnector dependent Dataset DatasetConnector objects. Fixed restoring bookmarked filter state teal application. Refactored module_nested_tabs fix issue filter panel reacting input change nested module. updateOptionalSelectInput longer sets input NULL logical value passed selected. Fixed setting JoinKeys key name two Dataset object differs. Fixed printing JavaScript console logs R console teal.show_js_log = TRUE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-10-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.10.1","text":"Soft-deprecate mae_dataset() favor general dataset() constructor. Added vignette describing modifications teal applications users can apply using R options. Added default values label argument select_spec filter_spec. Added validation FilteredDataset::get_data accept logical input . Changed references outdated functions teal.devel documentation. Introduced Teal prefix public R6 classes avoid name collisions packages. Removed dependency utils.nest replaced functionality teal equivalents checkmate package base R. Replaced old shiny server functions DataConnection, RelationalDataConnector, DatasetConnector, RelationalData shiny::moduleServer equivalents. Running teal application via ui_teal_with_splash srv_teal_with_splash now longer recommended doesn’t support new features (e.g. logging, bookmarking). Use init instead. Updated R version requirement >= 4.0. Updated “filter panel collapse” icon remove warnings using shiny version >= 1.7. Removed non-exported, debugging modules. Updated footer tag style less visible.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-10-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.10.0","text":"Allow passing MultiAssayExperiment teal::init using mae_dataset function connectors. Refactored filter panel use MultiAssayExperiment objects. Filters can set subject level (colData MAE object) experiment level (colData rowData assay). Added cdse_dataset_connector create delayed data objects CDSE. Added datasetdb_dataset_connector create delayed data objects DataSetDB. Added ricepass_connection create delayed data objects entimICE via ricepass. Simplified setting initial filter state without need specify “choices” “range” named list element depending variable class. Dataset type determines appearance functionality related filters filters summary. Datasets passed (reference) DDL FilteredData skipping extracting data attributes. Redesigned variable filter labels “Active Filter Variables” panel. Fully testable server functions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-10-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.10.0","text":"Fixed bug caused calling mutate_dataset multiple times DatasetConnector Dataset object. Fixed bug caused output get_code function reproduce raw data set. Changed filter_spec allow variable selection upon app initialization, first possible value previously selected.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-10-0","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.10.0","text":"modules parameter teal::init function can also receive list except root_modules function call. Added split merge methods JoinKeys object. Added all_choices() possible argument selected parameter filter_spec, select_spec choices_selected indicating choices selected. append method CodeClass object modified print warning message argument result code added duplicated. Implemented delayed functionality mutate method Dataset DatasetConnector objects. Modified teal_data return CDISCData object whenever arguments type CDISCData object. Updated filters show levels logical variable TRUE/FALSE even one missing original array.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-10-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.10.0","text":"Updated LICENCE README new package references. Added method get_hash Dataset class returning MD5 hash object stored inside Dataset object. Replaced random.cdisc.data scda examples tests. Implemented functionality store JoinKeys Dataset DatasetConnector classes. Added error_on_lintr: TRUE .lintr pipe operator %>% now exported downstream code packages can use . Removed hyperlinks rice package documentation.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-5","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.5","text":"Added informational stop message using mutate_data RelationalDataConnector. Modified as_cdisc behave similarly cdisc_dataset called Dataset object. Changed displayed format data name column name data_extract_spec UI elements. now compressed . don’t change runtime app. Added ADSAFTTE list recognized ADaM dataset names. Added another example data_extract_spec’s doc string showcasing app users can choose variable used filtering encoding panel. Added CSS styling tool tips teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.5","text":"Fixed edge case error creating filter variable missing values crashed app. Fixed bug crashes app whenever Date datetime column selected filter_spec.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-4","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.4","text":"Released snowflake connection connectors. Changed ordering datasets intuitive (topologically first CDISC datasets according input datasets order). closing teal app (ending user shiny session), DataConnections now try close connections. Added ADHY keys configuration file. Extended filter_spec function: parameter choices longer mandatory (function take possible choices default) vars parameter additionally accepts choices_selected allows change variables filtering using UI elements encoding panel.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.4","text":"Cleaned imports package. Modified value_choices function handle edge case \"NA\" NA values exist character column choices derived . Fixed issue cloning Callable class.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-9-3","dir":"Changelog","previous_headings":"","what":"New Features","title":"teal 0.9.3","text":"Support data-standard independent input filtering. includes refactor data dataset structures together refactor FilteredData class. New JoinKeys class (join_keys() constructors join_key() constructor elements) store joining key columns datasets. Refactored basic dataset() constructor, added cdisc_dataset() constructor as_cdisc() conversion function. Soft-deprecate removed class constructors obsolete functions (e.g. keys()). Added get_keys() set_keys() functions extract manipulate datasets primary keys respectively. Unexported filtered_data_new, filtered_data_set filtered_data_set_filters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.3","text":"Duplicated lines code passed teal::cdisc_dataset teal::RelationalDataset constructors now shown getting code teal::cdisc_data objects teal::RelationalData objects. Added ability press “Enter” key without set focus Submit button delayed data loading. Allow variable_choices use datasets missing labels. Fixed bug ignores input NULL selected argument select_spec function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-3","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.3","text":"Added button remove active filters Filter Panel.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-9-2","dir":"Changelog","previous_headings":"","what":"New Features","title":"teal 0.9.2","text":"Added python_dataset_connector create delayed data objects python scripts directly python code. NOTE: python_dataset_connector yet ready deployed RSConnect contain numpy pandas, Python libraries used python_dataset_connector. Added support filtering Date Datetime variables Filter Panel. Added buttons date datetime filter widgets reset value original. Added new function check_key_duplicates, creates short summary rows duplicated primary key (row numbers number duplicates)","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-2","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.2","text":"Fixed lack labels character factor variables Filter Panel. variables now displayed module_filter_panel, types numeric, logical, factor, character Date Fixed mutate_data accept whole scope objects vars. Clarified teal::init function documentation state custom CSS loading code htmltools::htmlDependency included header argument rather inside ui arguments modules. Enabled empty select field inside data_extract_spec. Added new argument drop_keys filter_spec decide whether drop keep keys columns single filter columns. Added new optional argument keys variable_choices. keys specifies names variables, new key icon shown next variable drop menus left-hand side encoding panels instead icon appropriate original R variable type. variable_choices now also works RelationalDataset RelationalDatasetConnector objects.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-9-2","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.9.2","text":"Removed include_factors option get_class_colnames RawDataset.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-091","dir":"Changelog","previous_headings":"","what":"teal 0.9.1","title":"teal 0.9.1","text":"Adds method resolve nested lists containing delayed data objects, can used arm_ref_comp objects. Nested tabs module now better alignment filter panel page. Allow width argument optionalSelectInput. Added lifecycle badges exported functions. Added new code_dataset_connector code_cdisc_dataset_connector functions enable creation new delayed data objects given string code. Added new functions csv_dataset_connector csv_cdisc_dataset_connector. Updated set_ui_input method RawDatasetConnector NamedDatasetConnector handle user defined shiny inputs. Include Keep Inf checkbox numerical filter items. Keep NA Keep Inf checkbox doesn’t appear missing infinite values. Replace existing RelationalData class abstract class RelationalDataCollection rename RelationalDataList class RelationalData. data argument teal::init now always RelationalData object. Added fun_cdisc_dataset_connector enable providing custom function returning dataset. Removed code script arguments as_relational wrapper. intended done mutate_dataset functionality. filer argument init added validation step ensure compatibility rest app. Variables inherited ADSL specified ADSL dataset. Fixes issue connection close code present get_code results. Fixes issue occasional incorrect ordering bar charts filter panel. informative error displayed pull_fun DataConnection produces error.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-090","dir":"Changelog","previous_headings":"","what":"teal 0.9.0","title":"teal 0.9.0","text":"cdisc_dataset dataset now return R6 class objects (RelationalDataset). new teal_data function include datasets connectors teal application. cdisc_data function include datasets connectors teal application check argument still used consistency tests performed. get_raw_data can used derive raw data R6 objects e.g. (RelationalDataset). RawDatasetConnector, NamedDatasetConnector RelationalDatasetConnector execute custom function call order get data connection. CodeClass manage reproducibility data relationships datasets. directly exposed public interface. mutate_dataset allows modify dataset connector via code argument R script. mutate_data allows change dataset RelationalData, RelationalDataConnector RelationalDataList. New wrapper functions manipulate RelationalDatasetConnector RelationalDataset get_dataset, load_dataset, as_relational. New wrapper functions manipulate RelationalDataConnector, RelationalData RelationalDataList get_datasets, load_datasets. choices_labeled, filter_spec, select_spec, data_extract_spec, value_choices, variable_choices S3 class applied data.frame also delayed data. can longer modify app$datasets, must instead use argument filter init function. New modules created create module nested teal modules, another one adds right filter pane tab. teal::init function stays unchanged. teal::init function now returns UI function optional id argument. allows embed applications. split view two teal applications side--side one example shown vignette. teal::init turned wrapper function around module_teal_with_splash.R developers want embed teal Shiny module directly work functions (ui_teal_with_splash srv_teal_with_splash) instead teal::init. teal::init function now title parameter set title browser window. Missing data NA now explicitly addressed filter panel: NAs excluded default checkbox include added. Statistics data visually depicted terms histograms bar charts overlayed onto Shiny input elements. Added buttons remove filters applied dataset. Restored functionality hide filter panel module constructed filters = NULL. Moved helper functions utils.nest removed unused functions set_labels_df get_labels_df. optionalSelectInput now allows grouped choices.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"refactor-of-filtereddata-for-developers-0-9-0","dir":"Changelog","previous_headings":"","what":"Refactor of FilteredData (for developers)","title":"teal 0.9.0","text":"FilteredData now fully reactive. Now filtered data lazy evaluated per need. opens door bookmarking teal apps (bookmarking currently works right filtering panel, make feature sophisticated future release, module must reviewed adapted contains reactiveValues). Datasets materialized connectors provided FilteredData set_datasets_data function located init_datasets.R file. Renamed get_dataset() method get_data(). Renamed get_filter_call() method get_filter_expr(); returns expression rather list. Removed argument isolate get_data() method similar methods. must isolate needed. want temporarily deactivate Shiny errors due missing errors, can set options(shiny.suppressMissingContextError = TRUE). general, avoid isolate breaks reactivity. added development module add several filters , e.g. safety filters. evaluated converted proper module made available end-users.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-085","dir":"Changelog","previous_headings":"","what":"teal 0.8.5","title":"teal 0.8.5","text":"UI bug fix hide filter elements used datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-084","dir":"Changelog","previous_headings":"","what":"teal 0.8.4","title":"teal 0.8.4","text":"Progress bar UI creation delayed loading module. Change output keys function keys object. Delayed version choices_selected. Fix error choices_selected selected choices. Fix pickerInput display column name label ’s missing.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-083","dir":"Changelog","previous_headings":"","what":"teal 0.8.3","title":"teal 0.8.3","text":"Enable teal app initialize without data. data loaded within teal app. New classes (DatasetConnector, DataConnector) connect various data sources, including: * connector rice API - rice_data rice_dataset_connector * connector RDS files - rds_data rds_dataset_connector Message appears bottom right Shiny app Shiny busy update views. Remove labels argument cdisc_data function. Labels now already present data passed cdisc_data function. can achieved using var_relabel function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-082","dir":"Changelog","previous_headings":"","what":"teal 0.8.2","title":"teal 0.8.2","text":"Fixed several BUGS optionalSelectInput improved inputs look. Added get_data_labels function FilteredData class. Improved sep passing within data_extract_spec.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-081","dir":"Changelog","previous_headings":"","what":"teal 0.8.1","title":"teal 0.8.1","text":"Refactor choices_labeled fix bug showing column name data_extract_spec.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-080","dir":"Changelog","previous_headings":"","what":"teal 0.8.0","title":"teal 0.8.0","text":"Added cdisc_dataset (general dataset) functions properly handle dataset keys merging. Possibility load custom .css .js files. Renamed columns_spec select_spec. Show number observations filter panel. Add labeling functions variable_choices value_choices.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-070","dir":"Changelog","previous_headings":"","what":"teal 0.7.0","title":"teal 0.7.0","text":"Added functions cdisc_data get_code deal preprocessing moving step towards data standard independent teal. Moved teal.utils functions teal: log_app_usage, stop_shiny. Added *_spec functions. Improvements usage PickerInput SelectInput.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-060","dir":"Changelog","previous_headings":"","what":"teal 0.6.0","title":"teal 0.6.0","text":"Removed deprecated functions tab*. Removed data generation functions including generate_sample_data. Incorporate shinyjs package. Added “Copy R code clipboard” button.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-005","dir":"Changelog","previous_headings":"","what":"teal 0.0.5","title":"teal 0.0.5","text":"Added limit data_table scrolling, preventing overlap UI elements. Boolean filtering.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-004","dir":"Changelog","previous_headings":"","what":"teal 0.0.4","title":"teal 0.0.4","text":"Bug fix teal crashes filter variable gets added many decimal places.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-003","dir":"Changelog","previous_headings":"","what":"teal 0.0.3","title":"teal 0.0.3","text":"Note version 0.0.3 backwards compatible. Reading changes studying example app , however, clarify changes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-0-3","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.0.3","text":"tm_scatterplot module. tm_table module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"changes-0-0-3","dir":"Changelog","previous_headings":"","what":"Changes","title":"teal 0.0.3","text":"tabs arguments renamed modules. tab_item function now called module. tab_items function now called modules. tabs function removed. variable_browser_item now called tm_variable_browser. data_table_item now called tm_data_table. datasets argument automatically added server functions specified module. Hence teal_datasets removed server_args element.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-002","dir":"Changelog","previous_headings":"","what":"teal 0.0.2","title":"teal 0.0.2","text":"New ‘01_getting_started’ vignette. Datanames FilteredData now case sensitive.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-001","dir":"Changelog","previous_headings":"","what":"teal 0.0.1","title":"teal 0.0.1","text":"March 28, 2016 - Initial Release.","code":""}] +[{"path":[]},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"members, contributors, leaders pledge make participation community harassment-free experience everyone, regardless age, body size, visible invisible disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, sexual identity orientation. pledge act interact ways contribute open, welcoming, diverse, inclusive, healthy community.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes positive environment community include: Demonstrating empathy kindness toward people respectful differing opinions, viewpoints, experiences Giving gracefully accepting constructive feedback Accepting responsibility apologizing affected mistakes, learning experience Focusing best just us individuals, overall community Examples unacceptable behavior include: use sexualized language imagery, sexual attention advances kind Trolling, insulting derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical email address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement-responsibilities","dir":"","previous_headings":"","what":"Enforcement Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Community leaders responsible clarifying enforcing standards acceptable behavior take appropriate fair corrective action response behavior deem inappropriate, threatening, offensive, harmful. Community leaders right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, communicate reasons moderation decisions appropriate.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within community spaces, also applies individual officially representing community public spaces. Examples representing community include using official e-mail address, posting via official social media account, acting appointed representative online offline event.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported community leaders responsible enforcement [INSERT CONTACT METHOD]. complaints reviewed investigated promptly fairly. community leaders obligated respect privacy security reporter incident.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement-guidelines","dir":"","previous_headings":"","what":"Enforcement Guidelines","title":"Contributor Covenant Code of Conduct","text":"Community leaders follow Community Impact Guidelines determining consequences action deem violation Code Conduct:","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_1-correction","dir":"","previous_headings":"Enforcement Guidelines","what":"1. Correction","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Use inappropriate language behavior deemed unprofessional unwelcome community. Consequence: private, written warning community leaders, providing clarity around nature violation explanation behavior inappropriate. public apology may requested.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_2-warning","dir":"","previous_headings":"Enforcement Guidelines","what":"2. Warning","title":"Contributor Covenant Code of Conduct","text":"Community Impact: violation single incident series actions. Consequence: warning consequences continued behavior. interaction people involved, including unsolicited interaction enforcing Code Conduct, specified period time. includes avoiding interactions community spaces well external channels like social media. Violating terms may lead temporary permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_3-temporary-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"3. Temporary Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: serious violation community standards, including sustained inappropriate behavior. Consequence: temporary ban sort interaction public communication community specified period time. public private interaction people involved, including unsolicited interaction enforcing Code Conduct, allowed period. Violating terms may lead permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_4-permanent-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"4. Permanent Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Demonstrating pattern violation community standards, including sustained inappropriate behavior, harassment individual, aggression toward disparagement classes individuals. Consequence: permanent ban sort public interaction within community.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 2.1, available https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines inspired Mozilla’s code conduct enforcement ladder. answers common questions code conduct, see FAQ https://www.contributor-covenant.org/faq. Translations available https://www.contributor-covenant.org/translations.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contribution Guidelines","title":"Contribution Guidelines","text":"🙏 Thank taking time contribute! input deeply valued, whether issue, pull request, even feedback, regardless size, content scope.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"Contribution Guidelines","text":"👶 Getting started 📔 Code Conduct 🗃 License 📜 Issues 🚩 Pull requests 💻 Coding guidelines 🏆 Recognition model ❓ Questions","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"getting-started","dir":"","previous_headings":"","what":"Getting started","title":"Contribution Guidelines","text":"Please refer project documentation brief introduction. Please also see articles within project documentation additional information.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contribution Guidelines","text":"Code Conduct governs project. Participants contributors expected follow rules outlined therein.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"license","dir":"","previous_headings":"","what":"License","title":"Contribution Guidelines","text":"contributions covered project’s license.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"issues","dir":"","previous_headings":"","what":"Issues","title":"Contribution Guidelines","text":"use GitHub track issues, feature requests, bugs. submitting new issue, please check issue already reported. issue already exists, please upvote existing issue 👍. new feature requests, please elaborate context benefit feature users, developers, relevant personas.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"github-flow","dir":"","previous_headings":"Pull requests","what":"GitHub Flow","title":"Contribution Guidelines","text":"repository uses GitHub Flow model collaboration. submit pull request: Create branch Please see branch naming convention . don’t write access repository, please fork . Make changes Make sure code passes checks imposed GitHub Actions well documented well tested unit tests sufficiently covering changes introduced Create pull request (PR) pull request description, please link relevant issue (), provide detailed description change, include assumptions. Address review comments, Post approval Merge PR write access. Otherwise, reviewer merge PR behalf. Pat back Congratulations! 🎉 now official contributor project! grateful contribution.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"branch-naming-convention","dir":"","previous_headings":"Pull requests","what":"Branch naming convention","title":"Contribution Guidelines","text":"Suppose changes related current issue current project; please name branch follows: _. Please use underscore (_) delimiter word separation. example, 420_fix_ui_bug suitable branch name change resolving UI-related bug reported issue number 420 current project. change affects multiple repositories, please name branches follows: _
# data import new_iris <- transform(iris, id = seq_len(nrow(iris))) excluded_obj1 <- 1:10 # nocode # nocode> excluded_obj2 <- 1:10 # % bslib::bs_add_rules(\"Anything understood by sass::as_sass()\"))"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"bootstrap-null-vs-bootstrap-3","dir":"Articles","previous_headings":"Usage","what":"Bootstrap NULL vs Bootstrap 3","title":"Bootstrap Themes in teal","text":"important note statements options(\"teal.bs_theme\" = NULL) options(\"teal.bs_theme\" = bslib::bs_theme(version = \"3\") equivalent bslib approximation default shiny theme Bootstrap version 3 can introduce discrepancies. One important difference using bslib::bs_theme(version = \"3\", bootswatch = \"THEME NAME\") one can apply custom Bootstrap theme. Another one usage bslib::bs_theme(version = \"3\") requires installation latest shinyWidgets package main branch, see .","code":"# Downloading the newest shinyWidgets # needed only when bslib::bs_theme(version = \"3\", ...) is used remotes::install_github(\"https://github.com/dreamRs/shinyWidgets@main\")"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"regular-shinyfluidpage","dir":"Articles","previous_headings":"Usage","what":"Regular shiny::fluidPage","title":"Bootstrap Themes in teal","text":"want update theme regular shiny::fluidPage-like app, need teal.bs_theme option. Simply provide bslib::bs_theme directly: shiny::fluidPage(theme = bslib::bs_theme(...), ...).","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"interactive-theming-guide","dir":"Articles","previous_headings":"Usage","what":"Interactive Theming Guide","title":"Bootstrap Themes in teal","text":"section provide step--step guide customizing teal application theme interactively bslib::run_with_themer(). recommend starting simple case satisfied, verifying full application. end use teal application . example assume want use Bootstrap 5. start, launch app bslib::run_with_themer(app$ui, app$server) instead shiny::runApp. gives us following. Note Theme Customizer section right hand side. added bslib customize theme.","code":"options(\"teal.bs_theme\" = bslib::bs_theme(version = \"5\")) library(teal) app <- init( data = teal_data(IRIS = iris), # nolint filter = list(IRIS = list(Sepal.Length = c(5, 7))), modules = list(example_module(), example_module()), header = \"My first teal application\" ) bslib::run_with_themer(shinyApp(app$ui, app$server))"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"set-overall-app-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Set overall app theme","title":"Bootstrap Themes in teal","text":"Instead starting scratch, want start Bootswatch theme. Let us select Minty theme “Overall theme” drop-. bslib updated CSS styles use new theme, including customizer theme. Additionally look R console, see helpful guide provides code update theme. teal applications don’t actually use bs_theme_update opt bs_theme instead. However, printed code still helpful.","code":"#### Update your bs_theme() R code with: ##### bs_theme_update(theme, bootswatch = \"minty\")"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"customize-a-bootswatch-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Customize a bootswatch theme","title":"Bootstrap Themes in teal","text":"base theme (Minty) close want let’s make modifications. start, increase base font size. , choose “Fonts” section customizer theme set value “Base font size” input. use 1.25 , means fonts increased factor 1.25. check R console, see bslib printed bs_theme_update(theme, font_scale = 1.25, bootswatch = \"minty\"), now includes font size adjustment. Finally, suppose want borders rounded. customizer theme, can go “Options” uncheck “Rounded corners” box. expected, corners longer rounded. look R console, now see bs_theme_update(theme, font_scale = 1.25,enable-rounded= FALSE, bootswatch = \"minty\").","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"apply-the-customized-theme","dir":"Articles","previous_headings":"Usage > Interactive Theming Guide","what":"Apply the customized theme","title":"Bootstrap Themes in teal","text":"customization complete, apply changes application. , use option teal.bs_theme like time expand bslib::bs_theme call include changes. Luckily, arguments printed R console running app themer can plugged right . Now application custom theme applied. Please note interactive themer contains mostly commonly applied options. customization options, review bslib documentation.","code":"options( \"teal.bs_theme\" = bslib::bs_theme( version = \"5\", font_scale = 1.25, `enable-rounded` = FALSE, bootswatch = \"minty\" ) ) library(teal) app <- init( data = teal_data( dataset(\"IRIS\", iris) ), filter = list(IRIS = list(Sepal.Length = c(5, 7))), modules = list(example_module(), example_module()) ) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-bs-themes.html","id":"sources","dir":"Articles","previous_headings":"","what":"Sources","title":"Bootstrap Themes in teal","text":"https://rstudio.github.io/bslib/","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"motivation","dir":"Articles","previous_headings":"","what":"Motivation","title":"Modifying a teal Application With R Options","text":"R packages use options modify runtime behavior. usually specify default values internal functions determine responses users actions. example, testthat uses option testthat.progress.max_fails define default number failed expectations testing functions terminate execution. adjustable values can exposed function parameters, confined option. vignette details options available users teal, teal.logger, teal.widgets, teal.modules.general, teal.modules.clinical.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"setting-an-option","dir":"Articles","previous_headings":"","what":"Setting an option","title":"Modifying a teal Application With R Options","text":"time interactive session, can change option using: way change options execution specific block code withr package like : line run option, digits, go back value line run. function getOption allows inspect value option: set, value option persists session, returns default value new session. Make sure change options teal-related packages loaded initialize options overwrite custom values.","code":"options(option_to_set = \"value\") withr::with_options(list(digits = 3), print(pi)) ## [1] 3.14 getOption(\"option_to_set\") ## [1] \"value\""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-log_layout-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.log_layout (character)","title":"Modifying a teal Application With R Options","text":"defines layout log message used teal application. teal uses layout format emitted log messages. Read documentation teal.logger::register_logger information. Default: \"[{level}] {format(time, \\\"%Y-%m-%d %H:%M:%OS4\\\")} pid:{pid} token:[{token}] {ans} {msg}\". Note layout formatted glue package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-log_level-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.log_level (character)","title":"Modifying a teal Application With R Options","text":"logging level threshold used teal application. teal application emit logs level. Read documentation teal.logger::register_logger information. Possible values: \"TRACE\", \"INFO\", \"WARNING\", \"ERROR\". See documentation logger::TRACE possible values logging threshold information . Default: \"INFO\". Note two levels considered less severe \"INFO\": \"DEBUG\" \"TRACE\". order see log messages two levels well, change log level default \"TRACE\", least severe log level.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal_logging","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal_logging","title":"Modifying a teal Application With R Options","text":"Deprecated.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal_show_js_log","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal_show_js_log","title":"Modifying a teal Application With R Options","text":"Deprecated favor teal.show_js_log (see ).","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-show_js_log-logical","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.show_js_log (logical)","title":"Modifying a teal Application With R Options","text":"indicates whether print JavaScript console logs R console. set TRUE, logs printed; otherwise, won’t. Default: FALSE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-threshold_slider_vs_checkboxgroup-numeric","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.threshold_slider_vs_checkboxgroup (numeric)","title":"Modifying a teal Application With R Options","text":"threshold determines variable treated factor filter panel. number unique values variable less threshold variable treated factor instead original class. example, imagine teal.threshold_slider_vs_checkboxgroup equals 2. numeric variable c(1, 1, 1), one unique value, treated factor filter panel (filter panel !). filter panel creates checkbox widget filter values variable, factor variable, instead usual numeric range selector. Default: 5.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-load_nest_code-character","dir":"Articles","previous_headings":"Options used in a teal application","what":"teal.load_nest_code (character)","title":"Modifying a teal Application With R Options","text":"value option appended top code rendered using Show R Code modal button. See documentation teal::get_rcode information. Default: \"# Add code install/load NEST environment \".","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-basic_table_args-basic_table_args-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.basic_table_args (basic_table_args object)","title":"Modifying a teal Application With R Options","text":"specifies list arguments passed every call rtables::basic_table made teal application. can used format rtables without making changes application code. See documentation teal.widgets::basic_table_args information. Default: teal.widgets::basic_table_args().","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-ggplot2_args-ggplot2_args-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.ggplot2_args (ggplot2_args object)","title":"Modifying a teal Application With R Options","text":"option allows modifying labels themes ggplot2 plots teal application. See documentation teal.widgets::ggplot2_args information. Default: teal.widgets::ggplot2_args().","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-plot_dpi-integer-value-24-or-larger","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.plot_dpi (integer value 24 or larger)","title":"Modifying a teal Application With R Options","text":"option controls dots per inch graphs rendered downloaded using plot_with_settings. Default: 72","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal-options.html","id":"teal-bs_theme-bslibbs_theme-object","dir":"Articles","previous_headings":"Options used in a teal application > teal.widgets package","what":"teal.bs_theme (bslib::bs_theme object)","title":"Modifying a teal Application With R Options","text":"option controls bootstrap theme version used teal apps. Achieve better UX customized UI app. Please visit vignette Bootstrap themes read functionality. Default: NULL","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Getting Started with teal","text":"teal shiny-based interactive exploration framework analyzing data, particular emphasis CDISC clinical trial data. teal applications allow users : “Pull” data external data sources Dynamically filter data used analyses Generate reproducible code regenerate -screen analyses Create download reports containing results analyses (analysis modules support reporting) addition, teal framework provides application developers : large suite custom-made standard analysis modules included applications logging framework facilitate debugging applications advanced users framework can also create new analysis modules can added teal applications. See Creating Custom Modules vignette brief introduction creating modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"your-first-teal-application","dir":"Articles","previous_headings":"","what":"Your first teal application:","title":"Getting Started with teal","text":"simple teal application takes iris mtcars datasets displays contents: shown image , application consists several distinct areas: Application header: title application shown top. teal modules (bar top): case simple module named “example teal module”. Encoding panel (panel left hand side): Module specific UI components, case drop-select dataset name. Main output panel (panel middle): outputs module, example module chosen dataset displayed. Filter panel (panels right hand side): filtering data passed teal modules.","code":"library(teal) app <- init( data = teal_data(IRIS = iris, MTCARS = mtcars), modules = example_module(), header = \"My first teal application\" ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"encoding-panel","dir":"Articles","previous_headings":"Your first teal application:","what":"Encoding panel","title":"Getting Started with teal","text":"left hand side application (usually) dedicated module specific controls. modules include reproducibility functionality often contains Show R Code button , clicked, display code required re-generate output, including filtering added filter panel library calls attach required packages.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"filter-panel","dir":"Articles","previous_headings":"Your first teal application:","what":"Filter panel","title":"Getting Started with teal","text":"filter panel allows app developers select datasets wish make available modules define filters datasets. top section shows number records remaining dataset filtering. middle section lists currently defined filters. Typically can modified user. bottom section allows user add new filters. example : IRIS dataset, rows satisfying conditions Petal.Length >= 3.4 Species %% c(\"setosa\", \"virginica\") included, thereby keeping 50 rows. MTCARS dataset, rows satisfying condition cyl %% c(4, 6) included, thereby keeping 18 rows.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"creating-your-own-applications","dir":"Articles","previous_headings":"","what":"Creating your own applications","title":"Getting Started with teal","text":"key function use create teal application init, requires two arguments: data modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"application-data","dir":"Articles","previous_headings":"Creating your own applications","what":"Application Data","title":"Getting Started with teal","text":"data argument init function specifies data used application. can data currently R session, example , also connectors, describe “pull” remote data application run. Connectors can pull data external sources, may require authentication. example call teal_data convert raw datasets teal specific datasets bind one R object. function can also used specify relationships different datasets. order use CDISC clinical trial data teal application cdisc_data function used instead. details recommend exploring teal.data package documentation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"modules","dir":"Articles","previous_headings":"Creating your own applications","what":"Modules","title":"Getting Started with teal","text":"modules argument init consists list teal modules (can wrapped together using function modules). recommend creating applications using predefined teal modules. See references links modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"defining-filters","dir":"Articles","previous_headings":"Creating your own applications","what":"Defining Filters","title":"Getting Started with teal","text":"optional filter argument init allows initialize application predefined filters. See documentation init details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"reporting","dir":"Articles","previous_headings":"Creating your own applications","what":"Reporting","title":"Getting Started with teal","text":"modules teal application support reporting (see teal.reporter details), users application can add outputs modules report. report can downloaded special Report Previewer module added application additional tab, users can view configure reports downloading .","code":""},{"path":"https://insightsengineering.github.io/teal/main/articles/teal.html","id":"where-to-go-next","dir":"Articles","previous_headings":"","what":"Where to go next","title":"Getting Started with teal","text":"learn teal framework recommend first exploring available analysis modules. example see: general analysis modules clinical trial reporting modules modules analyzing MultiAssayExperiment objects teal framework relies set supporting packages whose documentation provides -depth information. packages interest defining tealapplications : teal.data: defining data teal application. teal.slice: defining data filtering passing teal modules. teal.transform: defining way arguments passed teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Dawid Kaledkowski. Author, maintainer. Pawel Rucki. Author. Aleksander Chlebowski. Author. Kartikeya Kirar. Author. Marcin Kosinski. Author. Adrian Waddell. Author. Chendi Liao. Reviewer. Dony Unardi. Reviewer. Nikolas Burkoff. Author. Mahmoud Hallal. Author. Maciej Nasinski. Author. Konrad Pagacz. Author. Junlue Zhao. Author. F. Hoffmann-La Roche AG. Copyright holder, funder. Maximilian Mordig. Contributor.","code":""},{"path":"https://insightsengineering.github.io/teal/main/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Kaledkowski D, Rucki P, Chlebowski , Kirar K, Kosinski M, Waddell , Burkoff N, Hallal M, Nasinski M, Pagacz K, Zhao J (2023). teal: Exploratory Web Apps Analyzing Clinical Trials Data. R package version 0.14.0.9017, https://github.com/insightsengineering/teal/, https://insightsengineering.github.io/teal/main/.","code":"@Manual{, title = {teal: Exploratory Web Apps for Analyzing Clinical Trials Data}, author = {Dawid Kaledkowski and Pawel Rucki and Aleksander Chlebowski and Kartikeya Kirar and Marcin Kosinski and Adrian Waddell and Nikolas Burkoff and Mahmoud Hallal and Maciej Nasinski and Konrad Pagacz and Junlue Zhao}, year = {2023}, note = {R package version 0.14.0.9017, https://github.com/insightsengineering/teal/}, url = {https://insightsengineering.github.io/teal/main/}, }"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"teal-interactive-exploratory-data-analysis-with-shiny-web-applications-","dir":"","previous_headings":"","what":"Exploratory Web Apps for Analyzing Clinical Trials Data","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"teal shiny-based interactive exploration framework analyzing data. teal applications require app developers specify: CDISC data, commonly used clinical trial reporting Independent datasets, example data.frame Related datasets, example set data.frames key columns enable data joins MultiAssayExperiment objects R data structures representing analyzing multi-omics experiments teal.modules.general: general modules exploring relational/independent/CDISC data teal.modules.clinical: modules specific CDISC data clinical trial reporting teal.modules.hermes: modules analyzing MultiAssayExperiment objects lot functionality teal framework derives following packages: teal.data: creating loading data needed teal applications. teal.widgets: shiny components used within teal. teal.slice: provides filtering panel allow filtering data. teal.code: handles reproducibility outputs. teal.transform: standardizes extracting merging data. teal.logger: standardizes logging within teal framework. teal.reporter: allows teal applications generate reports.","code":""},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"Alternatively, might also use development version.","code":"install.packages(\"teal\", repos = c(\"https://insightsengineering.r-universe.dev\", getOption(\"repos\"))) # install.packages(\"pak\") pak::pak(\"insightsengineering/teal@*release\") install.packages(\"teal\", repos = c(\"https://pharmaverse.r-universe.dev\", getOption(\"repos\"))) # install.packages(\"pak\") pak::pak(\"insightsengineering/teal\")"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"Please see teal.gallery TLG Catalog see examples teal apps. Please start “Technical Blueprint” article, “Getting Started” article, package vignettes detailed guide.","code":"library(teal) app <- init( data = teal_data( dataset(\"iris\", iris) ), modules = list( module( \"iris histogram\", server = function(input, output, session, data) { output$hist <- renderPlot( hist(data[[\"iris\"]]()[[input$var]]) ) }, ui = function(id, data, ...) { ns <- NS(id) list( shiny::selectInput( ns(\"var\"), \"Column name\", names(data[[\"iris\"]]())[1:4] ), plotOutput(ns(\"hist\")) ) } ) ) ) shinyApp(app$ui, app$server)"},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"encounter bug feature request - please file issue. questions, discussions staying date, please use “teal” channel pharmaverse slack workspace.","code":""},{"path":"https://insightsengineering.github.io/teal/main/index.html","id":"acknowledgment","dir":"","previous_headings":"","what":"Acknowledgment","title":"Exploratory Web Apps for Analyzing Clinical Trials Data","text":"package result joint efforts many developers stakeholders. like thank everyone contributed far!","code":""},{"path":[]},{"path":[]},{"path":[]},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/pull_request_template.html","id":null,"dir":"","previous_headings":"","what":"Pull Request","title":"Pull Request","text":"Fixes #nnn","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":null,"dir":"Reference","previous_headings":"","what":"TealReportCard — TealReportCard","title":"TealReportCard — TealReportCard","text":"child ReportCard used teal specific applications. addition parent methods, supports rendering teal specific elements source code, encodings panel content filter panel content part meta data.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"super-class","dir":"Reference","previous_headings":"","what":"Super class","title":"TealReportCard — TealReportCard","text":"teal.reporter::ReportCard -> TealReportCard","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"methods","dir":"Reference","previous_headings":"","what":"Methods","title":"TealReportCard — TealReportCard","text":"teal.reporter::ReportCard$append_content() teal.reporter::ReportCard$append_metadata() teal.reporter::ReportCard$append_plot() teal.reporter::ReportCard$append_rcode() teal.reporter::ReportCard$append_table() teal.reporter::ReportCard$append_text() teal.reporter::ReportCard$from_list() teal.reporter::ReportCard$get_content() teal.reporter::ReportCard$get_metadata() teal.reporter::ReportCard$get_name() teal.reporter::ReportCard$initialize() teal.reporter::ReportCard$reset() teal.reporter::ReportCard$set_name() teal.reporter::ReportCard$to_list()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"public-methods","dir":"Reference","previous_headings":"","what":"Public methods","title":"TealReportCard — TealReportCard","text":"TealReportCard$append_src() TealReportCard$append_fs() TealReportCard$append_encodings() TealReportCard$clone()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-src-","dir":"Reference","previous_headings":"","what":"Method append_src()","title":"TealReportCard — TealReportCard","text":"Appends source code content meta data TealReportCard.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_src(src, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"src (character(1)) code text. ... rmarkdown R chunk parameter value. eval parameter always set FALSE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"card <- TealReportCard$new()$append_src( \"plot(iris)\" ) card$get_content()[[1]]$get_content()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-fs-","dir":"Reference","previous_headings":"","what":"Method append_fs()","title":"TealReportCard — TealReportCard","text":"Appends filter state list content metadata TealReportCard. filter state list attribute named formatted, appends card otherwise uses default yaml::.yaml format list. filter state list empty, nothing appended content.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-1","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_fs(fs)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-1","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"fs (teal_slices) object returned teal_slices() function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns-1","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-append-encodings-","dir":"Reference","previous_headings":"","what":"Method append_encodings()","title":"TealReportCard — TealReportCard","text":"Appends encodings list content metadata TealReportCard.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-2","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$append_encodings(encodings)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-2","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"encodings (list) list encodings selections teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"returns-2","dir":"Reference","previous_headings":"","what":"Returns","title":"TealReportCard — TealReportCard","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"examples-1","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"card <- TealReportCard$new()$append_encodings(list(variable1 = \"X\")) card$get_content()[[1]]$get_content()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"method-clone-","dir":"Reference","previous_headings":"","what":"Method clone()","title":"TealReportCard — TealReportCard","text":"objects class cloneable method.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"usage-3","dir":"Reference","previous_headings":"","what":"Usage","title":"TealReportCard — TealReportCard","text":"","code":"TealReportCard$clone(deep = FALSE)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"arguments-3","dir":"Reference","previous_headings":"","what":"Arguments","title":"TealReportCard — TealReportCard","text":"deep Whether make deep clone.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealReportCard.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"TealReportCard — TealReportCard","text":"","code":"## ------------------------------------------------ ## Method `TealReportCard$append_src` ## ------------------------------------------------ card <- TealReportCard$new()$append_src( \"plot(iris)\" ) card$get_content()[[1]]$get_content() #> [1] \"plot(iris)\" ## ------------------------------------------------ ## Method `TealReportCard$append_encodings` ## ------------------------------------------------ card <- TealReportCard$new()$append_encodings(list(variable1 = \"X\")) card$get_content()[[1]]$get_content() #> [1] \"Selected Options\""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"RcodeBlock — TealSlicesBlock","title":"RcodeBlock — TealSlicesBlock","text":"RcodeBlock RcodeBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"super-classes","dir":"Reference","previous_headings":"","what":"Super classes","title":"RcodeBlock — TealSlicesBlock","text":"teal.reporter::ContentBlock -> teal.reporter::TextBlock -> TealSlicesBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"methods","dir":"Reference","previous_headings":"","what":"Methods","title":"RcodeBlock — TealSlicesBlock","text":"teal.reporter::ContentBlock$get_content() teal.reporter::TextBlock$get_available_styles() teal.reporter::TextBlock$get_style() teal.reporter::TextBlock$set_style()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"public-methods","dir":"Reference","previous_headings":"","what":"Public methods","title":"RcodeBlock — TealSlicesBlock","text":"TealSlicesBlock$new() TealSlicesBlock$set_content() TealSlicesBlock$from_list() TealSlicesBlock$to_list() TealSlicesBlock$clone()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-new-","dir":"Reference","previous_headings":"","what":"Method new()","title":"RcodeBlock — TealSlicesBlock","text":"Returns TealSlicesBlock object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$new(content = teal_slices(), style = \"verbatim\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"content (teal_slices) object returned teal_slices() function. style (character(1)) string specifying style apply.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"RcodeBlock — TealSlicesBlock","text":"Returns TealSlicesBlock object content parameters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"TealSlicesBlock","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"examples","dir":"Reference","previous_headings":"","what":"Examples","title":"RcodeBlock — TealSlicesBlock","text":"","code":"block <- teal:::TealSlicesBlock$new()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-set-content-","dir":"Reference","previous_headings":"","what":"Method set_content()","title":"RcodeBlock — TealSlicesBlock","text":"Sets content TealSlicesBlock. Sets content YAML text represents list generated teal_slices. list displays limited number fields teal_slice objects, list sufficient conclude filters applied. selected field teal_slice object range, displayed \"min\"","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-1","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$set_content(content)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-1","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"content (teal_slices) object returned teal_slices() function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-1","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-from-list-","dir":"Reference","previous_headings":"","what":"Method from_list()","title":"RcodeBlock — TealSlicesBlock","text":"Create RcodeBlock list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-2","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$from_list(x)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-2","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"x named list two fields c(\"text\", \"params\"). Use get_available_params method get possible parameters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-2","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"invisibly self","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-to-list-","dir":"Reference","previous_headings":"","what":"Method to_list()","title":"RcodeBlock — TealSlicesBlock","text":"Convert RcodeBlock list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-3","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$to_list()"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"returns-3","dir":"Reference","previous_headings":"","what":"Returns","title":"RcodeBlock — TealSlicesBlock","text":"named list text params.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"method-clone-","dir":"Reference","previous_headings":"","what":"Method clone()","title":"RcodeBlock — TealSlicesBlock","text":"objects class cloneable method.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"usage-4","dir":"Reference","previous_headings":"","what":"Usage","title":"RcodeBlock — TealSlicesBlock","text":"","code":"TealSlicesBlock$clone(deep = FALSE)"},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"arguments-3","dir":"Reference","previous_headings":"","what":"Arguments","title":"RcodeBlock — TealSlicesBlock","text":"deep Whether make deep clone.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/TealSlicesBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"RcodeBlock — TealSlicesBlock","text":"","code":"## ------------------------------------------------ ## Method `TealSlicesBlock$new` ## ------------------------------------------------ block <- teal:::TealSlicesBlock$new()"},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Append a teal_module to children of a teal_modules object — append_module","title":"Append a teal_module to children of a teal_modules object — append_module","text":"Append teal_module children teal_modules object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Append a teal_module to children of a teal_modules object — append_module","text":"","code":"append_module(modules, module)"},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Append a teal_module to children of a teal_modules object — append_module","text":"modules teal_modules module teal_module object appended onto children modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/append_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Append a teal_module to children of a teal_modules object — append_module","text":"teal_modules object module appended","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the hash of a dataset — calculate_hashes","title":"Get the hash of a dataset — calculate_hashes","text":"Get hash dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the hash of a dataset — calculate_hashes","text":"","code":"calculate_hashes(datanames, datasets)"},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the hash of a dataset — calculate_hashes","text":"datanames (character) names datasets datasets (FilteredData) object holding data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/calculate_hashes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the hash of a dataset — calculate_hashes","text":"list hashes per dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Check datanames in filters — check_filter_datanames","title":"Check datanames in filters — check_filter_datanames","text":"function checks whether datanames filters correspond data, returning character vector error messages TRUE checks pass.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check datanames in filters — check_filter_datanames","text":"","code":"check_filter_datanames(filters, datanames)"},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check datanames in filters — check_filter_datanames","text":"filters (teal_slices) object datanames (character) names datasets available data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_filter_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check datanames in filters — check_filter_datanames","text":"character(1) containing error message TRUE validation passes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Check datanames in modules — check_modules_datanames","title":"Check datanames in modules — check_modules_datanames","text":"function ensures specified datanames modules match data object, returning error messages TRUE successful validation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check datanames in modules — check_modules_datanames","text":"","code":"check_modules_datanames(modules, datanames)"},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check datanames in modules — check_modules_datanames","text":"modules (teal_modules) object datanames (character) names datasets available data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/check_modules_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check datanames in modules — check_modules_datanames","text":"character(1) containing error message TRUE validation passes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Deep copy teal_slices — deep_copy_filter","title":"Deep copy teal_slices — deep_copy_filter","text":"important create new copy teal_slices starting new shiny session. Otherwise, object shared multiple users created global environment shiny session starts.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deep copy teal_slices — deep_copy_filter","text":"","code":"deep_copy_filter(filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deep copy teal_slices — deep_copy_filter","text":"filter (teal_slices)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/deep_copy_filter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Deep copy teal_slices — deep_copy_filter","text":"teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"Converts FilteredData object tdata object containing datasets needed specific module. Please note module needs dataset parent, parent also returned. hash per dataset calculated internally returned code.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"","code":".datasets_to_data(module, datasets, trigger_data = reactiveVal(1L))"},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"module (teal_module) module needed filters taken datasets (FilteredData) object needed data taken trigger_data (reactiveVal) trigger getting filtered data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/dot-datasets_to_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert FilteredData to reactive list of datasets of the tdata type. — .datasets_to_data","text":"list reactive datasets following attributes: code (character) containing datasets reproducible code. join_keys (JoinKeys) containing relationships datasets. metadata (list) containing metadata datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Get dummy CDISC data — example_cdisc_data","title":"Get dummy CDISC data — example_cdisc_data","text":"Get dummy CDISC data including ADSL, ADAE ADLB. NAs also introduced stress test.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get dummy CDISC data — example_cdisc_data","text":"","code":"example_cdisc_data()"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_cdisc_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get dummy CDISC data — example_cdisc_data","text":"cdisc_data","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":null,"dir":"Reference","previous_headings":"","what":"Get datasets to go with example modules. — example_datasets","title":"Get datasets to go with example modules. — example_datasets","text":"Creates nested list, structure matches module hierarchy created example_modules. list leaf FilteredData object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get datasets to go with example modules. — example_datasets","text":"","code":"example_datasets()"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_datasets.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get datasets to go with example modules. — example_datasets","text":"named list FilteredData objects, ADSL set.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"An example teal module — example_module","text":"","code":"example_module(label = \"example teal module\", datanames = \"all\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"An example teal module — example_module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. datanames (character) vector datanames relevant item. filter panel automatically update shown filters include filters listed datasets. NULL hide filter panel, keyword '' show filters datasets. datanames also determines subset datasets appended data argument server function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"An example teal module — example_module","text":"teal module can included modules argument init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"An example teal module — example_module","text":"","code":"app <- init( data = teal_data( dataset(\"IRIS\", iris), dataset(\"MTCARS\", mtcars) ), modules = example_module() ) #> Warning: The `data_objects` argument of `teal_data()` should use data directly. Using #> TealDatasetConnector and TealDataset is deprecated. Find more information on #> https://github.com/insightsengineering/teal/discussions/945 as of teal.data #> 0.3.1. if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":null,"dir":"Reference","previous_headings":"","what":"Get example modules. — example_modules","title":"Get example modules. — example_modules","text":"Creates example hierarchy teal_modules teal app can created.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get example modules. — example_modules","text":"","code":"example_modules(datanames = c(\"ADSL\", \"ADTTE\"))"},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get example modules. — example_modules","text":"datanames (character) names datasets used example modules. Possible choices ADSL, ADTTE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/example_modules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get example modules. — example_modules","text":"teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"Please remove, useful debugging teal without dependencies simplifies \\link[devtools]{load_all} otherwise fails avoids session restarts!","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"","code":"filter_calls_module(label = \"Filter Calls Module\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"label character label module","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_calls_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dummy module to show the filter calls generated by the right encoding panel — filter_calls_module","text":"","code":"app <- init( data = list(iris = iris, mtcars = mtcars), modules = teal:::filter_calls_module(), header = \"Simple teal app\" ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":null,"dir":"Reference","previous_headings":"","what":"Module specific filter manager — filter_manager_module_srv","title":"Module specific filter manager — filter_manager_module_srv","text":"Track filter states single module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Module specific filter manager — filter_manager_module_srv","text":"","code":"filter_manager_module_srv(id, module_fd, slices_global)"},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Module specific filter manager — filter_manager_module_srv","text":"id (character(1))shiny module id. module_fd (FilteredData) object filter data teal-module slices_global (reactiveVal) stores teal_slices available filters; allows following actions: disable/enable specific filter module restore saved filter settings save current filter panel settings","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Module specific filter manager — filter_manager_module_srv","text":"reactive expression containing slices active module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/filter_manager_module_srv.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Module specific filter manager — filter_manager_module_srv","text":"module tracks state single FilteredData object global teal_slices updates objects necessary. Filter states added different modules Filter states added individual module added global teal_slices become available modules setting private$available_teal_slices FilteredData.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Client Timezone — get_client_timezone","title":"Get Client Timezone — get_client_timezone","text":"Local timezone browser may differ system timezone server. script can run register shiny input contains information timezone browser.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Client Timezone — get_client_timezone","text":"","code":"get_client_timezone(ns)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Client Timezone — get_client_timezone","text":"ns (function) namespace function passed session object Shiny server. Shiny modules allow proper name spacing registered input.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_client_timezone.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Client Timezone — get_client_timezone","text":"(Shiny) input variable accessible input$tz (character) string containing timezone browser/client.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"Wrapper get_code.tdata wrapper used downstream packages extract code tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"","code":"get_code_tdata(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"data (tdata) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_code_tdata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Wrapper for get_code.tdata\nThis wrapper is to be used by downstream packages to extract the code of a tdata object — get_code_tdata","text":"(character) code used tdata object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":null,"dir":"Reference","previous_headings":"","what":"Get datasets code — get_datasets_code","title":"Get datasets code — get_datasets_code","text":"Get combined code FilteredData CodeClass object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get datasets code — get_datasets_code","text":"","code":"get_datasets_code(datanames, datasets, hashes)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get datasets code — get_datasets_code","text":"datanames (character) names datasets extract code datasets (FilteredData) object hashes named (list) hashes per dataset","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_datasets_code.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get datasets code — get_datasets_code","text":"character(3) containing following elements: code CodeClass (data loading code) hash check loaded objects","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract JoinKeys from tdata — get_join_keys.tdata","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"Extract JoinKeys tdata","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"","code":"# S3 method for tdata get_join_keys(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_join_keys.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract JoinKeys from tdata — get_join_keys.tdata","text":"data (tdata) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to get metadata from a tdata object — get_metadata","title":"Function to get metadata from a tdata object — get_metadata","text":"Function get metadata tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to get metadata from a tdata object — get_metadata","text":"","code":"get_metadata(data, dataname) # S3 method for tdata get_metadata(data, dataname) # S3 method for default get_metadata(data, dataname)"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to get metadata from a tdata object — get_metadata","text":"data tdata - object extract data dataname character(1) dataset name whose metadata requested","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_metadata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to get metadata from a tdata object — get_metadata","text":"Either list metadata NULL metadata","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":null,"dir":"Reference","previous_headings":"","what":"Generates library calls from current session info — get_rcode_libraries","title":"Generates library calls from current session info — get_rcode_libraries","text":"Function create multiple library calls current session info make reproducible code works.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generates library calls from current session info — get_rcode_libraries","text":"","code":"get_rcode_libraries()"},{"path":"https://insightsengineering.github.io/teal/main/reference/get_rcode_libraries.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generates library calls from current session info — get_rcode_libraries","text":"Character object contain code","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_teal_bs_theme.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve the expected bootstrap theme — get_teal_bs_theme","title":"Resolve the expected bootstrap theme — get_teal_bs_theme","text":"Resolve expected bootstrap theme","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/get_teal_bs_theme.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve the expected bootstrap theme — get_teal_bs_theme","text":"","code":"get_teal_bs_theme()"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Include CSS files from /inst/css/ package directory to application header — include_css_files","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"","code":"include_css_files(pattern = \"*\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"pattern (character) pattern files included","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_css_files.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Include CSS files from /inst/css/ package directory to application header — include_css_files","text":"HTML code includes CSS files","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Include JS files from /inst/js/ package directory to application header — include_js_files","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"","code":"include_js_files(pattern = NULL, except = NULL)"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"pattern (character) pattern files included, passed system.file except (character) vector basename filenames excluded","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_js_files.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Include JS files from /inst/js/ package directory to application header — include_js_files","text":"HTML code includes JS files","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":null,"dir":"Reference","previous_headings":"","what":"Code to include teal CSS and JavaScript files — include_teal_css_js","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"useful want use JavaScript CSS files used teal application. also useful running standalone modules teal correct styles. Also initializes shinyjs can use .","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"","code":"include_teal_css_js()"},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"HTML code include","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/include_teal_css_js.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Code to include teal CSS and JavaScript files — include_teal_css_js","text":"","code":"shiny_ui <- tagList( teal:::include_teal_css_js(), p(\"Hello\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the Server and UI Function For the Shiny App — init","title":"Create the Server and UI Function For the Shiny App — init","text":"End-users: important function start teal app composed teal modules. Notes developers: wrapper function around module_teal.R functions. Unless end-user, use function, instead module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the Server and UI Function For the Shiny App — init","text":"","code":"init( data, modules, title = NULL, filter = teal_slices(), header = tags$p(), footer = tags$p(), id = character(0) )"},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the Server and UI Function For the Shiny App — init","text":"data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. modules (list, teal_modules teal_module) nested list teal_modules teal_module objects single teal_modules teal_module object. specific output modules displayed teal application. See modules() module() details. title (NULL character) browser window title (defaults host URL page). filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices(). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app id (character) module id embed , provided, server function must called shiny::moduleServer(); See vignette example. However, ui_teal_with_splash() preferred function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the Server and UI Function For the Shiny App — init","text":"named list server ui function","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/init.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the Server and UI Function For the Shiny App — init","text":"","code":"new_iris <- transform(iris, id = seq_len(nrow(iris))) new_mtcars <- transform(mtcars, id = seq_len(nrow(mtcars))) app <- init( data = teal_data( dataset(\"new_iris\", new_iris), dataset(\"new_mtcars\", new_mtcars), code = \" new_iris <- transform(iris, id = seq_len(nrow(iris))) new_mtcars <- transform(mtcars, id = seq_len(nrow(mtcars))) \" ), modules = modules( module( label = \"data source\", server = function(input, output, session, data) {}, ui = function(id, ...) div(p(\"information about data source\")), datanames = \"all\" ), example_module(label = \"example teal module\"), module( \"Iris Sepal.Length histogram\", server = function(input, output, session, data) { output$hist <- renderPlot( hist(data[[\"new_iris\"]]()$Sepal.Length) ) }, ui = function(id, ...) { ns <- NS(id) plotOutput(ns(\"hist\")) }, datanames = \"new_iris\" ) ), title = \"App title\", filter = teal_slices( teal_slice(dataname = \"new_iris\", varname = \"Species\"), teal_slice(dataname = \"new_iris\", varname = \"Sepal.Length\"), teal_slice(dataname = \"new_mtcars\", varname = \"cyl\"), exclude_varnames = list(new_iris = c(\"Sepal.Width\", \"Petal.Width\")), mapping = list( `example teal module` = \"new_iris Species\", `Iris Sepal.Length histogram` = \"new_iris Species\", global_filters = \"new_mtcars cyl\" ) ), header = tags$h1(\"Sample App\"), footer = tags$p(\"Copyright 2017 - 2023\") ) if (interactive()) { shinyApp(app$ui, app$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":null,"dir":"Reference","previous_headings":"","what":"Does the object make use of the arg — is_arg_used","title":"Does the object make use of the arg — is_arg_used","text":"object make use arg","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Does the object make use of the arg — is_arg_used","text":"","code":"is_arg_used(modules, arg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Does the object make use of the arg — is_arg_used","text":"modules (teal_module teal_modules) object arg (character(1)) names arguments checked formals teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/is_arg_used.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Does the object make use of the arg — is_arg_used","text":"logical whether object makes use arg","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Landing Popup Module — landing_popup_module","title":"Landing Popup Module — landing_popup_module","text":"Creates landing welcome popup teal applications. module used display popup dialog application starts. dialog blocks access application must closed button application viewed.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Landing Popup Module — landing_popup_module","text":"","code":"landing_popup_module( label = \"Landing Popup\", title = NULL, content = NULL, buttons = modalButton(\"Accept\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Landing Popup Module — landing_popup_module","text":"label character(1) label module. title character(1) text displayed title popup. content content popup. Passed ... shiny::modalDialog. Can character list shiny.tags. See examples. buttons shiny.tag list tags (tagList). Typically modalButton actionButton. See examples.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Landing Popup Module — landing_popup_module","text":"teal_module (extended teal_landing_module class) used teal applications.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/landing_popup_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Landing Popup Module — landing_popup_module","text":"","code":"app1 <- teal::init( data = teal_data(iris = iris), modules = teal::modules( teal::landing_popup_module( content = \"A place for the welcome message or a disclaimer statement.\", buttons = modalButton(\"Proceed\") ), example_module() ) ) #> [INFO] 2023-11-13 18:36:25.4921 pid:992 token:[] teal Initializing landing_popup_module #> module \"Landing Popup\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shinyApp(app1$ui, app1$server) } app2 <- teal::init( data = teal_data(iris = iris), modules = teal::modules( teal::landing_popup_module( title = \"Welcome\", content = tags$b( \"A place for the welcome message or a disclaimer statement.\", style = \"color: red;\" ), buttons = tagList( modalButton(\"Proceed\"), actionButton(\"read\", \"Read more\", onclick = \"window.open('http://google.com', '_blank')\" ), actionButton(\"close\", \"Reject\", onclick = \"window.close()\") ) ), example_module() ) ) #> [INFO] 2023-11-13 18:36:25.5548 pid:992 token:[] teal Initializing landing_popup_module #> module \"Landing Popup\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shinyApp(app2$ui, app2$server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"Transform mapping matrix, .e. data frame maps filter state module, list specification like one used mapping attribute teal_slices. Global filters gathered one list element. module active filters global ones, mentioned output.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"","code":"matrix_to_mapping(mapping_matrix)"},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"mapping_matrix (data.frame) logical vectors columns represent modules row represent teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/matrix_to_mapping.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert mapping matrix to filter mapping specification. — matrix_to_mapping","text":"named list like mapping attribute teal_slices object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a teal_module object. — module","title":"Creates a teal_module object. — module","text":"function embeds shiny module inside teal application. One teal_module maps one shiny module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a teal_module object. — module","text":"","code":"module( label = \"module\", server = function(id, ...) { moduleServer(id, function(input, output, session) { }) }, ui = function(id, ...) { tags$p(paste0(\"This module has no UI (id: \", id, \" )\")) }, filters, datanames = \"all\", server_args = NULL, ui_args = NULL ) # S3 method for teal_module toString(x, indent = 0, ...) # S3 method for teal_module print(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a teal_module object. — module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. server (function) shiny module following arguments: id - teal set proper shiny namespace module (see shiny::moduleServer()). input, output, session - (recommended) shiny::callModule() used call module. data (optional) module receive tdata object, list reactive (filtered) data specified filters argument. datasets (optional) module receive FilteredData. (See [teal.slice::FilteredData]). reporter (optional) module receive Reporter. (See teal.reporter::Reporter). ... (optional) server_args elements passed module named argument .... ui (function) Shiny ui module function following arguments: id - teal set proper shiny namespace module. data (optional) module receive list reactive (filtered) data specified filters argument. datasets (optional) module receive FilteredData. (See [teal.slice::FilteredData]). ... (optional) ui_args elements passed module named argument .... filters (character) Deprecated. Use datanames instead. datanames (character) vector datanames relevant item. filter panel automatically update shown filters include filters listed datasets. NULL hide filter panel, keyword '' show filters datasets. datanames also determines subset datasets appended data argument server function. server_args (named list) additional arguments passed server function. ui_args (named list) additional arguments passed ui function. x teal_module indent (integer) indent level; submodule indented one level ... parameters passed toString","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a teal_module object. — module","text":"object class teal_module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a teal_module object. — module","text":"","code":"library(shiny) app <- init( data = teal_data(dataset(\"iris\", iris)), modules = list( module( label = \"Module\", server = function(id, data) { moduleServer( id, module = function(input, output, session) { output$data <- renderDataTable(data[[\"iris\"]]()) } ) }, ui = function(id) { ns <- NS(id) tagList(dataTableOutput(ns(\"data\"))) } ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":null,"dir":"Reference","previous_headings":"","what":"Manage multiple FilteredData objects — filter_manager_ui","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"Oversee filter states whole application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"","code":"filter_manager_ui(id) filter_manager_srv(id, filtered_data_list, filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"id (character(1))shiny module id. filtered_data_list (named list) list, possibly nested, FilteredData objects. FilteredData served one module teal application. structure list must reflect nesting modules tabs names list must labels respective modules. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"list reactives, holding teal_slices, returned filter_manager_module_srv.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Manage multiple FilteredData objects — filter_manager_ui","text":"module observes changes filters FilteredData object keeps track filters used. mapping filters modules kept mapping_matrix object (actually data.frame) tracks filters (rows) active modules (columns).","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter manager modal — module_filter_manager_modal","title":"Filter manager modal — module_filter_manager_modal","text":"Opens modal containing filter manager UI.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter manager modal — module_filter_manager_modal","text":"","code":"filter_manager_modal_ui(id) filter_manager_modal_srv(id, filtered_data_list, filter)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter manager modal — module_filter_manager_modal","text":"id (character(1))shiny module id. filtered_data_list (named list) list, possibly nested, FilteredData objects. FilteredData served one module teal application. structure list must reflect nesting modules tabs names list must labels respective modules. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_filter_manager_modal.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filter manager modal — module_filter_manager_modal","text":"","code":"fd1 <- teal.slice::init_filtered_data(list(iris = list(dataset = iris))) fd2 <- teal.slice::init_filtered_data( list(iris = list(dataset = iris), mtcars = list(dataset = mtcars)) ) fd3 <- teal.slice::init_filtered_data( list(iris = list(dataset = iris), women = list(dataset = women)) ) filter <- teal_slices( teal.slice::teal_slice(dataname = \"iris\", varname = \"Sepal.Length\"), teal.slice::teal_slice(dataname = \"iris\", varname = \"Species\"), teal.slice::teal_slice(dataname = \"mtcars\", varname = \"mpg\"), teal.slice::teal_slice(dataname = \"women\", varname = \"height\"), mapping = list( module2 = c(\"mtcars mpg\"), module3 = c(\"women height\"), global_filters = \"iris Species\" ) ) app <- shinyApp( ui = fluidPage( teal:::filter_manager_modal_ui(\"manager\") ), server = function(input, output, session) { teal:::filter_manager_modal_srv( \"manager\", filtered_data_list = list(module1 = fd1, module2 = fd2, module3 = fd3), filter = filter ) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract/Remove module(s) of specific class — extract_module","title":"Extract/Remove module(s) of specific class — extract_module","text":"Given teal_module teal_modules, return elements structure according class.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract/Remove module(s) of specific class — extract_module","text":"","code":"extract_module(modules, class) drop_module(modules, class)"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract/Remove module(s) of specific class — extract_module","text":"modules teal_modules class class name teal_module extracted dropped.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_management.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract/Remove module(s) of specific class — extract_module","text":"extract_module, teal_module class class teal_modules containing modules class class. drop_module, opposite, teal_modules class class. teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a UI of nested tabs of teal_modules — module_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"Create UI nested tabs teal_modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"","code":"ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for default ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for teal_modules ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) # S3 method for teal_module ui_nested_tabs(id, modules, datasets, depth = 0L, is_module_specific = FALSE) srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for default srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for teal_modules srv_nested_tabs( id, datasets, modules, is_module_specific = FALSE, reporter = teal.reporter::Reporter$new() ) # S3 method for teal_module srv_nested_tabs( id, datasets, modules, is_module_specific = TRUE, reporter = teal.reporter::Reporter$new() )"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"id (character(1)) module id datasets (named list FilteredData) object store filter state filtered datasets, shared across modules. details see teal.slice::FilteredData. Structure list must structure modules argument list names must correspond labels modules. filter module-specific list contains object elements. depth (integer(1)) number helps determine depth modules nesting. is_module_specific (logical(1)) flag determining filter panel global module-specific. set TRUE, filter panel called inside module tab. reporter (Reporter) object teal.reporter","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"depending class modules, ui_nested_tabs returns: teal_module: instantiated UI module teal_modules: tabsetPanel tab corresponding recursively calling function .srv_nested_tabs returns reactive returns active module corresponds selected tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ui-nested-tabs","dir":"Reference","previous_headings":"","what":"ui_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"teal_modules translated tabsetPanel children another tab-module called recursively. UI teal_module obtained calling ui function . datasets argument required resolve teal arguments isolated context (respect reactivity)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"srv-nested-tabs","dir":"Reference","previous_headings":"","what":"srv_nested_tabs","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"module calls recursively elements modules returns one currently active. teal_module returns self active module. teal_modules also returns module active within self determined input$active_tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_nested_tabs.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a UI of nested tabs of teal_modules — module_nested_tabs","text":"","code":"mods <- teal:::example_modules() datasets <- teal:::example_datasets() app <- shinyApp( ui = function() { tagList( teal:::include_teal_css_js(), textOutput(\"info\"), fluidPage( # needed for nice tabs teal:::ui_nested_tabs(\"dummy\", modules = mods, datasets = datasets) ) ) }, server = function(input, output, session) { active_module <- teal:::srv_nested_tabs( \"dummy\", datasets = datasets, modules = mods ) output$info <- renderText({ paste0(\"The currently active tab name is \", active_module()$label) }) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":null,"dir":"Reference","previous_headings":"","what":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"ui_nested_tabs function returns nested tabbed UI corresponding nested modules. function adds right filter panel main tab.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"","code":"ui_tabs_with_filters(id, modules, datasets, filter = teal_slices()) srv_tabs_with_filters( id, datasets, modules, reporter = teal.reporter::Reporter$new(), filter = teal_slices() )"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"id (character(1)) module id datasets (named list FilteredData) object store filter state filtered datasets, shared across modules. details see teal.slice::FilteredData. Structure list must structure modules argument list names must correspond labels modules. filter module-specific list contains object elements. reporter (Reporter) object teal.reporter","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"tagList main menu, place holders filters place holders teal modules","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"right filter panel's filter choices affect datasets object. Therefore, modules using datasets share filters. works nested modules depth greater 2, though filter panel inserted right modules depth 1 leaves.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_tabs_with_filters.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add right filter panel into each of the top-level teal_modules UIs. — module_tabs_with_filters","text":"","code":"mods <- teal:::example_modules() datasets <- teal:::example_datasets() app <- shinyApp( ui = function() { tagList( teal:::include_teal_css_js(), textOutput(\"info\"), fluidPage( # needed for nice tabs ui_tabs_with_filters(\"dummy\", modules = mods, datasets = datasets) ) ) }, server = function(input, output, session) { output$info <- renderText({ paste0(\"The currently active tab name is \", active_module()$label) }) active_module <- srv_tabs_with_filters(id = \"dummy\", datasets = datasets, modules = mods) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":null,"dir":"Reference","previous_headings":"","what":"teal main app module — module_teal","title":"teal main app module — module_teal","text":"main teal app puts everything together.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"teal main app module — module_teal","text":"","code":"ui_teal( id, splash_ui = tags$h2(\"Starting the Teal App\"), title = NULL, header = tags$p(\"\"), footer = tags$p(\"\") ) srv_teal(id, modules, teal_data_rv, filter = teal_slices())"},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"teal main app module — module_teal","text":"id (character(1)) module id splash_ui (shiny.tag) UI display initially, can splash screen Shiny module UI. latter, see init() call corresponding server function. title (NULL character) browser window title (defaults host URL page). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app teal_data_rv (reactive) returns teal_data, evaluated , NULL value ignored","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"teal main app module — module_teal","text":"ui_teal returns HTML Shiny module UI. srv_teal returns reactive returns currently active module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"teal main app module — module_teal","text":"displays splash UI used fetch data, possibly prompting password input fetch data. data ready, splash screen replaced actual teal UI tabsetted filter panel datanames relevant current tab. Nested tabs possible, limit two nesting levels reasons clarity UI. splash screen functionality can also used non-delayed data takes time load memory, avoiding Shiny session timeouts. Server evaluates teal_data_rv (delayed data mechanism) creates datasets object shared across modules. ready non-NULL, splash screen replaced main teal UI depends data. currently active tab tracked right filter panel updates displayed datasets filter according active datanames tab. written Shiny module can added apps well.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/module_teal.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"teal main app module — module_teal","text":"","code":"mods <- teal:::example_modules() teal_data_rv <- reactive(teal:::example_cdisc_data()) app <- shinyApp( ui = function() { teal:::ui_teal(\"dummy\") }, server = function(input, output, session) { active_module <- teal:::srv_teal(id = \"dummy\", modules = mods, teal_data_rv = teal_data_rv) } ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a teal_modules object. — modules","title":"Creates a teal_modules object. — modules","text":"function collects list teal_modules teal_module objects returns teal_modules object containing passed objects. function dictates modules included teal application. internal structure teal_modules shapes navigation panel teal application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a teal_modules object. — modules","text":"","code":"modules(..., label = \"root\") # S3 method for teal_modules toString(x, indent = 0, ...) # S3 method for teal_modules print(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a teal_modules object. — modules","text":"... parameters passed toString label (character(1)) label modules collection (default \"root\"). using label argument must explicitly named. example modules(\"lab\", ...) converted modules(label = \"lab\", ...) x teal_modules indent (integer) indent level; submodule indented one level ","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a teal_modules object. — modules","text":"object class teal_modules. Object contains following fields label: taken label argument children: list containing objects passed .... List elements named label attribute converted valid shiny id. (character)","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a teal_modules object. — modules","text":"","code":"library(shiny) app <- init( data = teal_data(dataset(\"iris\", iris)), modules = modules( label = \"Modules\", modules( label = \"Module\", module( label = \"Inner module\", server = function(id, data) { moduleServer( id, module = function(input, output, session) { output$data <- renderDataTable(data[[\"iris\"]]()) } ) }, ui = function(id) { ns <- NS(id) tagList(dataTableOutput(ns(\"data\"))) }, datanames = \"all\" ) ), module( label = \"Another module\", server = function(id) { moduleServer( id, module = function(input, output, session) { output$text <- renderText(\"Another module\") } ) }, ui = function(id) { ns <- NS(id) tagList(textOutput(ns(\"text\"))) }, datanames = NULL ) ) ) if (interactive()) { runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":null,"dir":"Reference","previous_headings":"","what":"Get module depth — modules_depth","title":"Get module depth — modules_depth","text":"Depth starts 0, single teal.module depth 0. Nesting increases overall depth 1.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get module depth — modules_depth","text":"","code":"modules_depth(modules, depth = 0L)"},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get module depth — modules_depth","text":"modules (list, teal_modules teal_module) nested list teal_modules teal_module objects single teal_modules teal_module object. specific output modules displayed teal application. See modules() module() details. depth optional, integer determining current depth level","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get module depth — modules_depth","text":"depth level given module","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/modules_depth.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get module depth — modules_depth","text":"","code":"mods <- modules( label = \"d1\", modules( label = \"d2\", modules( label = \"d3\", module(label = \"aaa1\"), module(label = \"aaa2\"), module(label = \"aaa3\") ), module(label = \"bbb\") ), module(label = \"ccc\") ) #> module \"aaa1\" server function takes no data so \"datanames\" will be ignored #> module \"aaa2\" server function takes no data so \"datanames\" will be ignored #> module \"aaa3\" server function takes no data so \"datanames\" will be ignored #> module \"bbb\" server function takes no data so \"datanames\" will be ignored #> module \"ccc\" server function takes no data so \"datanames\" will be ignored stopifnot(teal:::modules_depth(mods) == 3L) mods <- modules( label = \"a\", modules( label = \"b1\", module(label = \"c\") ), module(label = \"b2\") ) #> module \"c\" server function takes no data so \"datanames\" will be ignored #> module \"b2\" server function takes no data so \"datanames\" will be ignored stopifnot(teal:::modules_depth(mods) == 2L)"},{"path":"https://insightsengineering.github.io/teal/main/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. lifecycle deprecate_soft magrittr %>%","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":null,"dir":"Reference","previous_headings":"","what":"Template Function for TealReportCard Creation and Customization — report_card_template","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"function generates report card title, optional description, option append filter state list.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"","code":"report_card_template( title, label, description = NULL, with_filter, filter_panel_api )"},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"title (character(1)) title card (unless overwritten label) label (character(1)) label provided user adding card description (character(1)) optional additional description with_filter (logical(1)) flag indicating add filter state filter_panel_api (FilterPanelAPI) object API allows generation filter state report","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/report_card_template.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Template Function for TealReportCard Creation and Customization — report_card_template","text":"(TealReportCard) populated title, description filter state","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a teal module for previewing a report — reporter_previewer_module","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"function wraps teal.reporter::reporter_previewer_ui() teal.reporter::reporter_previewer_srv() teal_module used teal applications. creating teal application using init() module added application automatically teal modules support report generation.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"","code":"reporter_previewer_module(label = \"Report previewer\", server_args = list())"},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"label (character(1)) Label shown navigation item module. label possible except \"global_filters\" - read mapping argument teal_slices. server_args (named list) Arguments passed teal.reporter::reporter_previewer_srv().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/reporter_previewer_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a teal module for previewing a report — reporter_previewer_module","text":"teal_module (extended teal_module_previewer class) containing teal.reporter previewer functionality.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve datanames for the modules — resolve_modules_datanames","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"Modifies module$datanames include names parent dataset (taken join_keys). datanames set \"\" replaced available datasets names.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"","code":"resolve_modules_datanames(modules, datanames, join_keys)"},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"modules (teal_modules) object datanames (character) names datasets available data object join_keys (JoinKeys) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/resolve_modules_datanames.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resolve datanames for the modules — resolve_modules_datanames","text":"teal_modules resolved datanames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":null,"dir":"Reference","previous_headings":"","what":"Run JS file from /inst/js/ package directory — run_js_files","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"triggered server execute client rather triggered directly client. Unlike include_js_files includes JavaScript functions, run_js actually executes JavaScript functions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"","code":"run_js_files(files)"},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"files (character) vector filenames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/run_js_files.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Run JS file from /inst/js/ package directory — run_js_files","text":"system.file used access files packages, work devtools. Therefore, redefine method package needed. Thus, export method","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":null,"dir":"Reference","previous_headings":"","what":"Show R Code Modal — show_rcode_modal","title":"Show R Code Modal — show_rcode_modal","text":"Use shiny::showModal() function show R code inside.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Show R Code Modal — show_rcode_modal","text":"","code":"show_rcode_modal(title = NULL, rcode, session = getDefaultReactiveDomain())"},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Show R Code Modal — show_rcode_modal","text":"title (character(1)) Title modal, displayed first comment R-code. rcode (character) vector R code show inside modal. session (ShinySession optional)shiny Session object, missing shiny::getDefaultReactiveDomain() used.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/show_rcode_modal.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Show R Code Modal — show_rcode_modal","text":"shiny::showModal()","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":null,"dir":"Reference","previous_headings":"","what":"Restore teal_slices object from a file — slices_restore","title":"Restore teal_slices object from a file — slices_restore","text":"function takes file path JSON file containing teal_slices object restores original form. restored teal_slices object can used access filter states corresponding attributes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Restore teal_slices object from a file — slices_restore","text":"","code":"slices_restore(file)"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Restore teal_slices object from a file — slices_restore","text":"file Path file teal_slices stored. Must .json extension read access.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Restore teal_slices object from a file — slices_restore","text":"teal_slices object restored file.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_restore.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Restore teal_slices object from a file — slices_restore","text":"","code":"if (interactive()) { # Restore a teal_slices object from a file tss_restored <- slices_restore(\"path/to/file.json\") }"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":null,"dir":"Reference","previous_headings":"","what":"Store teal_slices object to a file — slices_store","title":"Store teal_slices object to a file — slices_store","text":"function takes teal_slices object saves file JSON format. teal_slices object contains information filter states can used create, modify, delete filter states. saved file can later loaded using slices_restore function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Store teal_slices object to a file — slices_store","text":"","code":"slices_store(tss, file)"},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Store teal_slices object to a file — slices_store","text":"tss (teal_slices) object stored. file (character(1)) file path teal_slices object saved. file extension \".json\".","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Store teal_slices object to a file — slices_store","text":"NULL, invisibly.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Store teal_slices object to a file — slices_store","text":"Date class stored \"ISO8601\" format (YYYY-MM-DD). POSIX*t classes converted character using format.POSIX*t(usetz = TRUE, tz = \"UTC\") (YYYY-MM-DD {N}{N}:{N}{N}:{N}{N} UTC, {N} = [0-9] number UTC Coordinated Universal Time timezone short-code). format assumed slices_restore. POSIX*t objects selected choices fields teal_slice objects always printed UTC timezone well.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/slices_store.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Store teal_slices object to a file — slices_store","text":"","code":"# Create a teal_slices object tss <- teal_slices( teal_slice(dataname = \"data\", varname = \"var\"), teal_slice(dataname = \"data\", expr = \"x > 0\", id = \"positive_x\", title = \"Positive x\") ) if (interactive()) { # Store the teal_slices object to a file slices_store(tss, \"path/to/file.json\") }"},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter state snapshot management. — snapshot_manager_module","title":"Filter state snapshot management. — snapshot_manager_module","text":"Capture restore snapshots global (app) filter state.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter state snapshot management. — snapshot_manager_module","text":"","code":"snapshot_manager_ui(id) snapshot_manager_srv(id, slices_global, mapping_matrix, filtered_data_list)"},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter state snapshot management. — snapshot_manager_module","text":"id (character(1)) shiny module id slices_global (reactiveVal) contains teal_slices object containing teal_slices existing app, active inactive mapping_matrix (reactive) contains data.frame representation mapping filter state ids (rows) modules labels (columns); columns logical vectors filtered_data_list non-nested (named list) contains FilteredData objects","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filter state snapshot management. — snapshot_manager_module","text":"Nothing returned.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filter state snapshot management. — snapshot_manager_module","text":"module introduces snapshots: stored descriptions filter state entire application. Snapshots allow user save current filter state application later use session, well save file order share app developer users, turn can upload session. snapshot manager accessed filter manager, cog icon top right corner. beginning session presents three icons: camera, upload, circular arrow. Clicking camera captures snapshot, clicking upload adds snapshot file applies filter states therein, clicking arrow resets initial application state. snapshots added, show rows table select button save button.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"server-logic","dir":"Reference","previous_headings":"","what":"Server logic","title":"Filter state snapshot management. — snapshot_manager_module","text":"Snapshots basically teal_slices objects, however, since module served separate instance FilteredData objects require shared state, teal_slice reactiveVal teal_slices stored . Therefore, teal_slices reversibly converted list lists representation (attributes maintained). Snapshots stored reactiveVal named list. first snapshot initial state application user can add snapshot whenever see fit. every snapshot except initial one, piece UI generated contains snapshot name, select button restore snapshot, save button save file. initial snapshot restored separate \"reset\" button. saved directly user welcome capture initial state snapshot save .","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"snapshot-mechanics","dir":"Reference","previous_headings":"","what":"Snapshot mechanics","title":"Filter state snapshot management. — snapshot_manager_module","text":"snapshot captured, user prompted name . Names displayed since used create button ids, hood converted syntactically valid strings. New snapshot names validated valid versions unique. Leading trailing white space trimmed. module can read global state application slices_global mapping_matrix. former provides list existing teal_slices latter says slice active module. name accepted, slices_global converted list lists - snapshot. snapshot contains mapping attribute initial application state (one restored), may reflect current one, mapping_matrix transformed obtain current mapping, .e. list , passed mapping argument teal_slices, result current mapping. substituted snapshot's mapping attribute snapshot added snapshot list. restore app state, snapshot retrieved storage rebuilt teal_slices object. state FilteredData objects (provided filtered_data_list) cleared set anew according mapping attribute snapshot. snapshot set current content slices_global. save snapshot, snapshot retrieved reassembled just like restoring, saved file slices_store. snapshot uploaded, first added storage just like newly created one, used restore app state much like snapshot taken storage. Upon clicking upload icon user prompted file upload may choose name new snapshot. name defaults name file (extension dropped) normal naming rules apply. Loading file yields teal_slices object, disassembled storage used directly restoring app state.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"transferring-snapshots","dir":"Reference","previous_headings":"","what":"Transferring snapshots","title":"Filter state snapshot management. — snapshot_manager_module","text":"Snapshots uploaded disk used application come , .e. application uses data modules. ensure case, init stamps teal_slices app id stored app_id attribute teal_slices object. snapshot restored file, app_id compared current app state match snapshot admitted session.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/snapshot_manager_module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Filter state snapshot management. — snapshot_manager_module","text":"Aleksander Chlebowski","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":null,"dir":"Reference","previous_headings":"","what":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"Please also refer doc init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"","code":"srv_teal_with_splash(id, data, modules, filter = teal_slices())"},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"id (character) module id embed , provided, server function must called shiny::moduleServer(); See vignette example. However, ui_teal_with_splash() preferred function. data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. modules teal_modules object containing output modules displayed teal application. See modules() module() details. filter (teal_slices) Specification initial filter. Filters can specified using teal_slices(). Old way specifying filters list deprecated removed next release. Please fix applications use teal_slices().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/srv_teal_with_splash.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Server function that loads the data through reactive loading and then delegates\nto srv_teal(). — srv_teal_with_splash","text":"reactive containing teal_data object data loaded. data loaded yet, reactive returns NULL.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a tdata Object — tdata","title":"Create a tdata Object — tdata","text":"Create new object called tdata contains data, reactive list data.frames (MultiAssayExperiment), attributes: code (reactive) containing code used generate data join_keys (JoinKeys) containing relationships data metadata (named list) containing metadata associated data frames","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a tdata Object — tdata","text":"","code":"new_tdata(data, code = \"\", join_keys = NULL, metadata = NULL) # S3 method for tdata get_code(x, ...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a tdata Object — tdata","text":"data named list data.frames (MultiAssayExperiment) optionally can reactive. Inside object items made reactive. code character (reactive evaluates character) containing code used generate data. reactive code changing reactive context (e.g. filtering changes code). Inside object code made reactive join_keys teal.data::JoinKeys object containing relationships datasets. metadata named list element contains list metadata named data.frame element list atomic length one. x tdata object ... additional arguments generic","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a tdata Object — tdata","text":"tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a tdata Object — tdata","text":"","code":"data <- new_tdata( data = list(iris = iris, mtcars = reactive(mtcars), dd = data.frame(x = 1:10)), code = \"iris <- iris mtcars <- mtcars dd <- data.frame(x = 1:10)\", metadata = list(dd = list(author = \"NEST\"), iris = list(version = 1)) ) # Extract a data.frame isolate(data[[\"iris\"]]()) #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> 1 5.1 3.5 1.4 0.2 setosa #> 2 4.9 3.0 1.4 0.2 setosa #> 3 4.7 3.2 1.3 0.2 setosa #> 4 4.6 3.1 1.5 0.2 setosa #> 5 5.0 3.6 1.4 0.2 setosa #> 6 5.4 3.9 1.7 0.4 setosa #> 7 4.6 3.4 1.4 0.3 setosa #> 8 5.0 3.4 1.5 0.2 setosa #> 9 4.4 2.9 1.4 0.2 setosa #> 10 4.9 3.1 1.5 0.1 setosa #> 11 5.4 3.7 1.5 0.2 setosa #> 12 4.8 3.4 1.6 0.2 setosa #> 13 4.8 3.0 1.4 0.1 setosa #> 14 4.3 3.0 1.1 0.1 setosa #> 15 5.8 4.0 1.2 0.2 setosa #> 16 5.7 4.4 1.5 0.4 setosa #> 17 5.4 3.9 1.3 0.4 setosa #> 18 5.1 3.5 1.4 0.3 setosa #> 19 5.7 3.8 1.7 0.3 setosa #> 20 5.1 3.8 1.5 0.3 setosa #> 21 5.4 3.4 1.7 0.2 setosa #> 22 5.1 3.7 1.5 0.4 setosa #> 23 4.6 3.6 1.0 0.2 setosa #> 24 5.1 3.3 1.7 0.5 setosa #> 25 4.8 3.4 1.9 0.2 setosa #> 26 5.0 3.0 1.6 0.2 setosa #> 27 5.0 3.4 1.6 0.4 setosa #> 28 5.2 3.5 1.5 0.2 setosa #> 29 5.2 3.4 1.4 0.2 setosa #> 30 4.7 3.2 1.6 0.2 setosa #> 31 4.8 3.1 1.6 0.2 setosa #> 32 5.4 3.4 1.5 0.4 setosa #> 33 5.2 4.1 1.5 0.1 setosa #> 34 5.5 4.2 1.4 0.2 setosa #> 35 4.9 3.1 1.5 0.2 setosa #> 36 5.0 3.2 1.2 0.2 setosa #> 37 5.5 3.5 1.3 0.2 setosa #> 38 4.9 3.6 1.4 0.1 setosa #> 39 4.4 3.0 1.3 0.2 setosa #> 40 5.1 3.4 1.5 0.2 setosa #> 41 5.0 3.5 1.3 0.3 setosa #> 42 4.5 2.3 1.3 0.3 setosa #> 43 4.4 3.2 1.3 0.2 setosa #> 44 5.0 3.5 1.6 0.6 setosa #> 45 5.1 3.8 1.9 0.4 setosa #> 46 4.8 3.0 1.4 0.3 setosa #> 47 5.1 3.8 1.6 0.2 setosa #> 48 4.6 3.2 1.4 0.2 setosa #> 49 5.3 3.7 1.5 0.2 setosa #> 50 5.0 3.3 1.4 0.2 setosa #> 51 7.0 3.2 4.7 1.4 versicolor #> 52 6.4 3.2 4.5 1.5 versicolor #> 53 6.9 3.1 4.9 1.5 versicolor #> 54 5.5 2.3 4.0 1.3 versicolor #> 55 6.5 2.8 4.6 1.5 versicolor #> 56 5.7 2.8 4.5 1.3 versicolor #> 57 6.3 3.3 4.7 1.6 versicolor #> 58 4.9 2.4 3.3 1.0 versicolor #> 59 6.6 2.9 4.6 1.3 versicolor #> 60 5.2 2.7 3.9 1.4 versicolor #> 61 5.0 2.0 3.5 1.0 versicolor #> 62 5.9 3.0 4.2 1.5 versicolor #> 63 6.0 2.2 4.0 1.0 versicolor #> 64 6.1 2.9 4.7 1.4 versicolor #> 65 5.6 2.9 3.6 1.3 versicolor #> 66 6.7 3.1 4.4 1.4 versicolor #> 67 5.6 3.0 4.5 1.5 versicolor #> 68 5.8 2.7 4.1 1.0 versicolor #> 69 6.2 2.2 4.5 1.5 versicolor #> 70 5.6 2.5 3.9 1.1 versicolor #> 71 5.9 3.2 4.8 1.8 versicolor #> 72 6.1 2.8 4.0 1.3 versicolor #> 73 6.3 2.5 4.9 1.5 versicolor #> 74 6.1 2.8 4.7 1.2 versicolor #> 75 6.4 2.9 4.3 1.3 versicolor #> 76 6.6 3.0 4.4 1.4 versicolor #> 77 6.8 2.8 4.8 1.4 versicolor #> 78 6.7 3.0 5.0 1.7 versicolor #> 79 6.0 2.9 4.5 1.5 versicolor #> 80 5.7 2.6 3.5 1.0 versicolor #> 81 5.5 2.4 3.8 1.1 versicolor #> 82 5.5 2.4 3.7 1.0 versicolor #> 83 5.8 2.7 3.9 1.2 versicolor #> 84 6.0 2.7 5.1 1.6 versicolor #> 85 5.4 3.0 4.5 1.5 versicolor #> 86 6.0 3.4 4.5 1.6 versicolor #> 87 6.7 3.1 4.7 1.5 versicolor #> 88 6.3 2.3 4.4 1.3 versicolor #> 89 5.6 3.0 4.1 1.3 versicolor #> 90 5.5 2.5 4.0 1.3 versicolor #> 91 5.5 2.6 4.4 1.2 versicolor #> 92 6.1 3.0 4.6 1.4 versicolor #> 93 5.8 2.6 4.0 1.2 versicolor #> 94 5.0 2.3 3.3 1.0 versicolor #> 95 5.6 2.7 4.2 1.3 versicolor #> 96 5.7 3.0 4.2 1.2 versicolor #> 97 5.7 2.9 4.2 1.3 versicolor #> 98 6.2 2.9 4.3 1.3 versicolor #> 99 5.1 2.5 3.0 1.1 versicolor #> 100 5.7 2.8 4.1 1.3 versicolor #> 101 6.3 3.3 6.0 2.5 virginica #> 102 5.8 2.7 5.1 1.9 virginica #> 103 7.1 3.0 5.9 2.1 virginica #> 104 6.3 2.9 5.6 1.8 virginica #> 105 6.5 3.0 5.8 2.2 virginica #> 106 7.6 3.0 6.6 2.1 virginica #> 107 4.9 2.5 4.5 1.7 virginica #> 108 7.3 2.9 6.3 1.8 virginica #> 109 6.7 2.5 5.8 1.8 virginica #> 110 7.2 3.6 6.1 2.5 virginica #> 111 6.5 3.2 5.1 2.0 virginica #> 112 6.4 2.7 5.3 1.9 virginica #> 113 6.8 3.0 5.5 2.1 virginica #> 114 5.7 2.5 5.0 2.0 virginica #> 115 5.8 2.8 5.1 2.4 virginica #> 116 6.4 3.2 5.3 2.3 virginica #> 117 6.5 3.0 5.5 1.8 virginica #> 118 7.7 3.8 6.7 2.2 virginica #> 119 7.7 2.6 6.9 2.3 virginica #> 120 6.0 2.2 5.0 1.5 virginica #> 121 6.9 3.2 5.7 2.3 virginica #> 122 5.6 2.8 4.9 2.0 virginica #> 123 7.7 2.8 6.7 2.0 virginica #> 124 6.3 2.7 4.9 1.8 virginica #> 125 6.7 3.3 5.7 2.1 virginica #> 126 7.2 3.2 6.0 1.8 virginica #> 127 6.2 2.8 4.8 1.8 virginica #> 128 6.1 3.0 4.9 1.8 virginica #> 129 6.4 2.8 5.6 2.1 virginica #> 130 7.2 3.0 5.8 1.6 virginica #> 131 7.4 2.8 6.1 1.9 virginica #> 132 7.9 3.8 6.4 2.0 virginica #> 133 6.4 2.8 5.6 2.2 virginica #> 134 6.3 2.8 5.1 1.5 virginica #> 135 6.1 2.6 5.6 1.4 virginica #> 136 7.7 3.0 6.1 2.3 virginica #> 137 6.3 3.4 5.6 2.4 virginica #> 138 6.4 3.1 5.5 1.8 virginica #> 139 6.0 3.0 4.8 1.8 virginica #> 140 6.9 3.1 5.4 2.1 virginica #> 141 6.7 3.1 5.6 2.4 virginica #> 142 6.9 3.1 5.1 2.3 virginica #> 143 5.8 2.7 5.1 1.9 virginica #> 144 6.8 3.2 5.9 2.3 virginica #> 145 6.7 3.3 5.7 2.5 virginica #> 146 6.7 3.0 5.2 2.3 virginica #> 147 6.3 2.5 5.0 1.9 virginica #> 148 6.5 3.0 5.2 2.0 virginica #> 149 6.2 3.4 5.4 2.3 virginica #> 150 5.9 3.0 5.1 1.8 virginica # Get code isolate(get_code(data)) #> [1] \"iris <- iris\\n mtcars <- mtcars\\n dd <- data.frame(x = 1:10)\" # Get metadata get_metadata(data, \"iris\") #> $version #> [1] 1 #>"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"Function convert tdata object environment reactives inside tdata first evaluated","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"","code":"tdata2env(data)"},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"data tdata object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"environment","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/tdata2env.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Function to convert a tdata object to an environment\nAny reactives inside tdata are first evaluated — tdata2env","text":"","code":"data <- new_tdata( data = list(iris = iris, mtcars = reactive(mtcars)), code = \"iris <- iris mtcars = mtcars\" ) my_env <- isolate(tdata2env(data))"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":null,"dir":"Reference","previous_headings":"","what":"teal: Interactive Exploration of Clinical Trials Data — teal-package","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"teal package provides shiny based framework creating interactive data analysis environment.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"learn mode package either read project website Project Website read init manual pages.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/teal-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"teal: Interactive Exploration of Clinical Trials Data — teal-package","text":"Maintainer: Dawid Kaledkowski dawid.kaledkowski@roche.com Authors: Pawel Rucki pawel.rucki@roche.com Aleksander Chlebowski aleksander.chlebowski@contractors.roche.com Kartikeya Kirar kartikeya.kirar@businesspartner.roche.com Marcin Kosinski marcin.kosinski.mk1@roche.com Adrian Waddell adrian.waddell@gene.com Nikolas Burkoff Mahmoud Hallal Maciej Nasinski Konrad Pagacz Junlue Zhao contributors: Chendi Liao chendi.liao@roche.com [reviewer] Dony Unardi unardid@gene.com [reviewer] F. Hoffmann-La Roche AG [copyright holder, funder] Maximilian Mordig [contributor]","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":null,"dir":"Reference","previous_headings":"","what":"Data module for teal applications — teal_data_module","title":"Data module for teal applications — teal_data_module","text":"Creates teal_data_module object - shiny module supply modify data teal application.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data module for teal applications — teal_data_module","text":"","code":"teal_data_module(ui, server)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Data module for teal applications — teal_data_module","text":"ui (function(id))shiny module ui function; must take id argument server (function(id))shiny module ui function; must take id argument; must return reactive expression containing teal_data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Data module for teal applications — teal_data_module","text":"Object class teal_data_module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data module for teal applications — teal_data_module","text":"function creates shiny module allows running data pre-processing code app starts. body server function run app rather global environment. means run every time app starts, use sparingly. Pass module instead teal_data object call init(). See vignette vignette(\"data--shiny-module\", package = \"teal\") details.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data module for teal applications — teal_data_module","text":"","code":"data <- teal_data_module( ui = function(id) { ns <- NS(id) actionButton(ns(\"submit\"), label = \"Load data\") }, server = function(id) { moduleServer(id, function(input, output, session) { eventReactive(input$submit, { data <- within( teal_data(), { dataset1 <- iris dataset2 <- mtcars } ) datanames(data) <- c(\"iris\", \"mtcars\") data }) }) } )"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a FilteredData — teal_data_to_filtered_data","title":"Create a FilteredData — teal_data_to_filtered_data","text":"Create FilteredData object teal_data object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a FilteredData — teal_data_to_filtered_data","text":"","code":"teal_data_to_filtered_data(x)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a FilteredData — teal_data_to_filtered_data","text":"x (teal_data) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_data_to_filtered_data.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a FilteredData — teal_data_to_filtered_data","text":"(FilteredData) object","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":null,"dir":"Reference","previous_headings":"","what":"Filter settings for teal applications — teal_slices","title":"Filter settings for teal applications — teal_slices","text":"Specify initial filter states filtering settings teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filter settings for teal applications — teal_slices","text":"","code":"teal_slices( ..., exclude_varnames = NULL, include_varnames = NULL, count_type = NULL, allow_add = TRUE, module_specific = FALSE, mapping, app_id = NULL ) as.teal_slices(x) # S3 method for teal_slices c(...)"},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filter settings for teal applications — teal_slices","text":"... number teal_slice objects. print format, additional arguments passed functions. include_varnames, exclude_varnames (named lists character) list names match names data sets vector elements match variable names respective data sets; specify variables allowed filtered; see Details count_type new feature. kindly share opinions. (character(1)) string specifying observations tallied filter states. Possible options: \"none\" (default) counts single FilterState show unfiltered number . \"\" counts single FilterState show number observation filtered unfiltered dataset. Note, issues reported using option MultiAssayExperiment. Please make sure adding new filters fail target platform deploying production. allow_add (logical(1)) logical flag specifying whether user able add new filters module_specific (logical(1)) TRUE filter panel module-specific. modules can different set filters specified - see mapping argument. FALSE one filter panel needed modules. filters shared modules. mapping new feature. kindly share opinions. (named list) Specifies filters active modules app start. Elements contain character vector teal_slice ids (see teal.slice::teal_slice()). Names list correspond teal_module label set module() function. ids listed \"global_filters active modules. missing, filters applied modules. empty list, filters available modules start inactive. module_specific FALSE, global_filters active start. app_id (character(1)) internal use , set manually. Added init teal_slices can matched app used. Used verifying snapshots uploaded file. See snapshot. x (list) lists convert teal_slices","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filter settings for teal applications — teal_slices","text":"teal_slices object.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filter settings for teal applications — teal_slices","text":"Produces teal_slices object. teal_slice components specify filter states active app starts. Attributes (created named arguments) configure way app applies filters. See argument descriptions details.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/teal_slices.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filter settings for teal applications — teal_slices","text":"","code":"filter <- teal_slices( teal.slice::teal_slice(dataname = \"iris\", varname = \"Species\", id = \"species\"), teal.slice::teal_slice(dataname = \"iris\", varname = \"Sepal.Length\", id = \"sepal_length\"), teal.slice::teal_slice( dataname = \"iris\", id = \"long_petals\", title = \"Long petals\", expr = \"Petal.Length > 5\" ), teal.slice::teal_slice(dataname = \"mtcars\", varname = \"mpg\", id = \"mtcars_mpg\"), mapping = list( module1 = c(\"species\", \"sepal_length\"), module2 = c(\"mtcars_mpg\"), global_filters = \"long_petals\" ) ) app <- teal::init( modules = list( module(\"module1\"), module(\"module2\") ), data = list(iris, mtcars), filter = filter ) #> module \"module1\" server function takes no data so \"datanames\" will be ignored #> module \"module2\" server function takes no data so \"datanames\" will be ignored if (interactive()) { shiny::runApp(app) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":null,"dir":"Reference","previous_headings":"","what":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"splash screen used query password fetch data. init() thin wrapper around module useful end-users assumes top-level module embedded. function instead adheres Shiny module conventions. data obtained delayed loading, splash screen used. Otherwise, default splash screen shown. Please also refer doc init().","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"","code":"ui_teal_with_splash( id, data, title, header = tags$p(\"Add Title Here\"), footer = tags$p(\"Add Footer Here\") )"},{"path":"https://insightsengineering.github.io/teal/main/reference/ui_teal_with_splash.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"UI to show a splash screen in the beginning, then delegate to srv_teal() — ui_teal_with_splash","text":"id (character(1)) module id data (TealData TealDataset TealDatasetConnector list data.frame MultiAssayExperiment, teal_data, teal_data_module)R6 object returned teal.data::cdisc_data(), teal.data::teal_data(), teal.data::cdisc_dataset(), teal.data::dataset(), teal.data::dataset_connector() teal.data::cdisc_dataset_connector() teal_data_module() single data.frame MultiAssayExperiment list previous objects function returning named list. NOTE: teal guarantee reproducibility code names list elements match original object names. ensure reproducibility please use teal.data::teal_data() teal.data::cdisc_data() check = TRUE enabled. title (NULL character) browser window title (defaults host URL page). header (shiny.tag character) header app. Note shiny code placed (footer argument) placed app's ui function code needs placed ui function (loading CSS via htmltools::htmlDependency()) included . footer (shiny.tag character) footer app","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":null,"dir":"Reference","previous_headings":"","what":"Explicitly enumerate global filters. — unfold_mapping","title":"Explicitly enumerate global filters. — unfold_mapping","text":"Transform module mapping global filters explicitly specified every module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Explicitly enumerate global filters. — unfold_mapping","text":"","code":"unfold_mapping(mapping, module_names)"},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Explicitly enumerate global filters. — unfold_mapping","text":"mapping (named list) stored mapping parameter teal_slices module_names (character) vector containing names modules app","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/unfold_mapping.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Explicitly enumerate global filters. — unfold_mapping","text":"named_list one element per module, element containing filters applied module.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"","code":"validate_has_data( x, min_nrow = NULL, complete = FALSE, allow_inf = TRUE, msg = NULL )"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"x data.frame min_nrow minimum number rows x complete logical default FALSE set TRUE complete cases checked. allow_inf logical default TRUE set FALSE error thrown values infinite. msg (character(1)) additional message display alongside default message.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_data.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that dataset has a minimum number of observations — validate_has_data","text":"","code":"library(teal) ui <- fluidPage( sliderInput(\"len\", \"Max Length of Sepal\", min = 4.3, max = 7.9, value = 5 ), plotOutput(\"plot\") ) server <- function(input, output) { output$plot <- renderPlot({ df <- iris[iris$Sepal.Length <= input$len, ] validate_has_data( iris_f, min_nrow = 10, complete = FALSE, msg = \"Please adjust Max Length of Sepal\" ) hist(iris_f$Sepal.Length, breaks = 5) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"","code":"validate_has_elements(x, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"x vector msg message display","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_elements.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that vector has length greater than 0 — validate_has_elements","text":"","code":"data <- data.frame( id = c(1:10, 11:20, 1:10), strata = rep(c(\"A\", \"B\"), each = 15) ) ui <- fluidPage( selectInput(\"ref1\", \"Select strata1 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"A\" ), selectInput(\"ref2\", \"Select strata2 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"B\" ), verbatimTextOutput(\"arm_summary\") ) server <- function(input, output) { output$arm_summary <- renderText({ sample_1 <- data$id[data$strata == input$ref1] sample_2 <- data$id[data$strata == input$ref2] validate_has_elements(sample_1, \"No subjects in strata1.\") validate_has_elements(sample_2, \"No subjects in strata2.\") paste0( \"Number of samples in: strata1=\", length(sample_1), \" comparions strata2=\", length(sample_2) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that dataset contains specific variable — validate_has_variable","text":"","code":"validate_has_variable(data, varname, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that dataset contains specific variable — validate_has_variable","text":"data data.frame varname name variable data msg message display data include varname","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that dataset contains specific variable — validate_has_variable","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_has_variable.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that dataset contains specific variable — validate_has_variable","text":"","code":"data <- data.frame( one = rep(\"a\", length.out = 20), two = rep(c(\"a\", \"b\"), length.out = 20) ) ui <- fluidPage( selectInput( \"var\", \"Select variable\", choices = c(\"one\", \"two\", \"three\", \"four\"), selected = \"one\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ validate_has_variable(data, input$var) paste0(\"Selected treatment variables: \", paste(input$var, collapse = \", \")) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates that vector includes all expected values — validate_in","text":"","code":"validate_in(x, choices, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates that vector includes all expected values — validate_in","text":"x values test. must choices choices vector test values x msg warning message display","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates that vector includes all expected values — validate_in","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_in.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates that vector includes all expected values — validate_in","text":"","code":"ui <- fluidPage( selectInput( \"species\", \"Select species\", choices = c(\"setosa\", \"versicolor\", \"virginica\", \"unknown species\"), selected = \"setosa\", multiple = FALSE ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderPrint({ validate_in(input$species, iris$Species, \"Species does not exist.\") nrow(iris[iris$Species == input$species, ]) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":null,"dir":"Reference","previous_headings":"","what":"Send input validation messages to output. — validate_inputs","title":"Send input validation messages to output. — validate_inputs","text":"Captures messages InputValidator objects collates one message passed validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Send input validation messages to output. — validate_inputs","text":"","code":"validate_inputs(..., header = \"Some inputs require attention\")"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Send input validation messages to output. — validate_inputs","text":"... either number InputValidator objects optionally named, possibly nested list InputValidator objects, see Details header character(1) generic validation message; set NULL omit","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Send input validation messages to output. — validate_inputs","text":"Returns NULL final validation call passes shiny.silent.error fails.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Send input validation messages to output. — validate_inputs","text":"shiny::validate used withhold rendering output element certain conditions met print validation message place output element. shinyvalidate::InputValidator allows validate input elements display specific messages respective input widgets. validate_inputs provides hybrid solution. Given InputValidator object, messages corresponding inputs fail validation extracted placed one validation message passed validate/need call. way input validator messages repeated output. ... argument accepts number InputValidator objects nested list objects. validators passed directly, messages printed together one (optional) header message specified header. list passed, messages grouped validator. list's names used headers respective message groups. neither nested list elements named, header message taken header.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_inputs.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Send input validation messages to output. — validate_inputs","text":"","code":"library(shiny) library(shinyvalidate) ui <- fluidPage( selectInput(\"method\", \"validation method\", c(\"sequential\", \"combined\", \"grouped\")), sidebarLayout( sidebarPanel( selectInput(\"letter\", \"select a letter:\", c(letters[1:3], LETTERS[4:6])), selectInput(\"number\", \"select a number:\", 1:6), br(), selectInput(\"color\", \"select a color:\", c(\"black\", \"indianred2\", \"springgreen2\", \"cornflowerblue\"), multiple = TRUE ), sliderInput(\"size\", \"select point size:\", min = 0.1, max = 4, value = 0.25 ) ), mainPanel(plotOutput(\"plot\")) ) ) server <- function(input, output) { # set up input validation iv <- InputValidator$new() iv$add_rule(\"letter\", sv_in_set(LETTERS, \"choose a capital letter\")) iv$add_rule(\"number\", ~ if (as.integer(.) %% 2L == 1L) \"choose an even number\") iv$enable() # more input validation iv_par <- InputValidator$new() iv_par$add_rule(\"color\", sv_required(message = \"choose a color\")) iv_par$add_rule(\"color\", ~ if (length(.) > 1L) \"choose only one color\") iv_par$add_rule( \"size\", sv_between( left = 0.5, right = 3, message_fmt = \"choose a value between {left} and {right}\" ) ) iv_par$enable() output$plot <- renderPlot({ # validate output switch(input[[\"method\"]], \"sequential\" = { validate_inputs(iv) validate_inputs(iv_par, header = \"Set proper graphical parameters\") }, \"combined\" = validate_inputs(iv, iv_par), \"grouped\" = validate_inputs(list( \"Some inputs require attention\" = iv, \"Set proper graphical parameters\" = iv_par )) ) plot(eruptions ~ waiting, faithful, las = 1, pch = 16, col = input[[\"color\"]], cex = input[[\"size\"]] ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that variables has expected number of levels — validate_n_levels","text":"","code":"validate_n_levels(x, min_levels = 1, max_levels = 12, var_name)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that variables has expected number of levels — validate_n_levels","text":"x variable name. x factor, unique values treated levels. min_levels cutoff minimum number levels x max_levels cutoff maximum number levels x var_name name variable validated use validation message","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that variables has expected number of levels — validate_n_levels","text":"number levels x less min_levels greater max_levels validation fail. function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_n_levels.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that variables has expected number of levels — validate_n_levels","text":"","code":"data <- data.frame( one = rep(\"a\", length.out = 20), two = rep(c(\"a\", \"b\"), length.out = 20), three = rep(c(\"a\", \"b\", \"c\"), length.out = 20), four = rep(c(\"a\", \"b\", \"c\", \"d\"), length.out = 20), stringsAsFactors = TRUE ) ui <- fluidPage( selectInput( \"var\", \"Select variable\", choices = c(\"one\", \"two\", \"three\", \"four\"), selected = \"one\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ validate_n_levels(data[[input$var]], min_levels = 2, max_levels = 15, var_name = input$var) paste0( \"Levels of selected treatment variable: \", paste(levels(data[[input$var]]), collapse = \", \" ) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validates no intersection between two vectors — validate_no_intersection","text":"","code":"validate_no_intersection(x, y, msg)"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validates no intersection between two vectors — validate_no_intersection","text":"x vector y vector msg message display x y intersect","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validates no intersection between two vectors — validate_no_intersection","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_no_intersection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validates no intersection between two vectors — validate_no_intersection","text":"","code":"data <- data.frame( id = c(1:10, 11:20, 1:10), strata = rep(c(\"A\", \"B\", \"C\"), each = 10) ) ui <- fluidPage( selectInput(\"ref1\", \"Select strata1 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"A\" ), selectInput(\"ref2\", \"Select strata2 to compare\", choices = c(\"A\", \"B\", \"C\"), selected = \"B\" ), verbatimTextOutput(\"summary\") ) server <- function(input, output) { output$summary <- renderText({ sample_1 <- data$id[data$strata == input$ref1] sample_2 <- data$id[data$strata == input$ref2] validate_no_intersection( sample_1, sample_2, \"subjects within strata1 and strata2 cannot overlap\" ) paste0( \"Number of subject in: reference treatment=\", length(sample_1), \" comparions treatment=\", length(sample_2) ) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"","code":"validate_one_row_per_id(x, key = c(\"USUBJID\", \"STUDYID\"))"},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"x data.frame key vector ID variables x identify unique records","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"function wrapper shiny::validate.","code":""},{"path":"https://insightsengineering.github.io/teal/main/reference/validate_one_row_per_id.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate that dataset has unique rows for key variables — validate_one_row_per_id","text":"","code":"iris$id <- rep(1:50, times = 3) ui <- fluidPage( selectInput( inputId = \"species\", label = \"Select species\", choices = c(\"setosa\", \"versicolor\", \"virginica\"), selected = \"setosa\", multiple = TRUE ), plotOutput(\"plot\") ) server <- function(input, output) { output$plot <- renderPlot({ iris_f <- iris[iris$Species %in% input$species, ] validate_one_row_per_id(iris_f, key = c(\"id\")) hist(iris_f$Sepal.Length, breaks = 5) }) } if (interactive()) { shinyApp(ui, server) }"},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.14.0.9017","text":"data argument init now accepts teal_data teal_data_module. Added landing_popup_module function creates module display popup app starts. popup block access app dismissed. Filter state snapshots can now uploaded file. See ?snapshot.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.14.0.9017","text":"Enhanced module validation checks won’t throw messages data argument unnecessarily. Added argument teal_slices made modifications init enable tagging teal_slices app id safely upload snapshots disk.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-14-0-9017","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.14.0.9017","text":"Removed Report previewer module mapping matrix display filter manager.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-14-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.14.0","text":"Enabled module specific filter panel. See module_specific teal::teal_slices documentation. Enabled capturing resetting application filter state snapshots. See ?snapshot. Enabled reporter_previewer_module customize default values srv_args. Enabled passing reporter_previewer_module list modules override default one.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-14-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.14.0","text":"Specifying filter argument teal::init requires teal_slices object now. Details documentation teal::init. Soft deprecated filters argument module replaced datanames. Details documentation teal::module","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-14-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.14.0","text":"Removed scda package dependency examples. Updated header tag style enhance element containment.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-13-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.13.0","text":"use datasets argument modules deprecated removed future release. Please use data argument instead. data type tdata; see “Creating custom modules” vignettes function documentation teal::new_tdata details. Due deprecation chunks teal.code, teal framework now uses replacement (qenv) instead. documentation teal updated reflect custom modules written chunks updated use qenv. Due deprecation chunks teal.code, get_rcode, get_rcode_srv, get_rcode_ui removed.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-13-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.13.0","text":"Added validate_inputs function transfers input validation messages app output. modules argument init accepts teal_module type object. need wrap single module modules() list(). Updated module_nested_tabs active modules calculated teal app.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-13-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.13.0","text":"Updated examples use scda.2022. Added R session information link footer teal applications. Added data hashing step using rlang instead digest package calculate hash (moved teal.data teal.slice). now explicit hashing check reproducible code output. Removed deprecated functions: root_modules, default_filter, bookmarkableShinyApp, well deprecated logging mechanism, including functions log_app_usage .log. Updated “Teal Bootstrap Themes” vignette provide details customizing teal app bslib::run_with_themer. Removed outdated diagram srv_nested_tabs documentation. Changed default values header footer arguments init empty text.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-12-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.12.0","text":"Added support custom bslib bootstrap themes teal::init apps, please read new teal-bs-themes vignette.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-12-0","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.12.0","text":"Added option choose variables can filtered filter panel using filterable attributes per-dataset lists filter argument init. Updated teal_module data argument receives list reactive filter data \"code\" \"join_keys\" attributes. Updated teal_module filter_panel_api argument receives FilterPanelAPI object. Updated internals module_teal reflect changes teal.slice.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-12-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.12.0","text":"Updated teal_module longer receive datasets object ... argument. order use datasets teal_module please specify datasets explicitly. Deprecated merge_expression argument get_rcode_srv function removed get_rcode function. Deprecated session argument get_rcode function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-12-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.12.0","text":"Enhanced burger button disabled filter panel used.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-11-1","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.11.1","text":"Added new function reporter_previewer_module wrap teal.reporter package previewer functionality teal module. Updated teal support modules include reporting. module supports reporting included reporter_previewer_module included. Added default arguments module() server argument now function second argument can ... datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-11-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.11.1","text":"Deprecated bookmarkableShinyApp. future releases teal framework stop supporting shiny bookmarking (officially supported); may officially supported future. Note filter panel teal.slice retains ability save restore state used standalone shiny app bookmarking.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-11-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.11.1","text":"Added template pkgdown configuration. Removed unneeded shinytest app tests. Updated package authors. Added package vignettes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-0110","dir":"Changelog","previous_headings":"","what":"teal 0.11.0","title":"teal 0.11.0","text":"teal.data: creating loading data needed teal applications. teal.widgets: shiny components used within teal. teal.slice: provides filtering panel allow filtering data. teal.code: handles reproducibility outputs. teal.transform: standardizes extracting merging data. teal.logger: standardizes logging within teal framework. teal package contains code create apps (teal::init), create module (teal::module) group modules app (teal::modules). teal depends teal.transform teal.data contain functions teal app creators likely need. package teal imports therefore teal module creators either fully specify functions packages required import custom packages library(teal) load .","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-11-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.11.0","text":"simple new teal module named example_module included package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-11-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.11.0","text":"teal package split multiple smaller packages, see . Deprecated root_modules function, users use modules directly inside init. Due deprecation root_modules label argument modules must explicitly named. example modules(\"lab\", mod1, mod2) replaced modules(label = \"lab\", mod1, mod2).","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-11-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.11.0","text":"Minor changes internals teal: main module panel now fixed shiny name root active tab named active_tab Active_tab. MultiAssayExperiment now suggested packages, required. Objects dependent MultiAssayExperiment changed lazy-load now suggested package.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-11-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.11.0","text":"Showing R Code longer shows reproducibility warning message reproducibility check passed.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"breaking-changes-0-10-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"teal 0.10.1","text":"Changed HTML identifiers teal modules - now nested module receives shiny namespace. Deprecated functions related connectors moved 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_connection rcd_data; scda_dataset_connectors can passed cdisc_data teal_data directly. Replaced rcd_dataset_connector rcd_cdisc_dataset_connector scda_dataset_connector scda_cdisc_dataset_connector respectively. Renamed teal_show_js_log option teal.show_js_log match options naming convention. Removed %is_in% stop_shiny internal utility functions.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"logging-0-10-1","dir":"Changelog","previous_headings":"New features","what":"Logging","title":"teal 0.10.1","text":"Added support logging using logger package. Added new function register_logger, registers logger given namespace. Added trace info levels log messages teal framework. Added pid shiny session token footnote app developers can identify logs apps.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"other-0-10-1","dir":"Changelog","previous_headings":"New features","what":"Other","title":"teal 0.10.1","text":"Added print methods DatasetConnector, RelationalData, RelationalDataconnector JoinKeys classes added input validation implementation print method already Dataset object. Added public facing constructor functions CDISCDataConnector, RelationalDataConnector, DataConnection classes. Modified data_extract_spec allow filter select parameters NULL, results data_extract_ui acting filter_spec variables possible choices supplied filter argument select_spec multiple parameter set TRUE supplied select argument. Added support full screen module filters argument equal NULL. Added support shiny::moduleServer passed server parameter teal::module. Added teal.threshold_slider_vs_checkboxgroup R option: categorical variable number unique values, filter panel uses drop-select input instead checkbox group. Extended FilteredData API allow managing filter states programmatically UI teal application. Hid buttons remove filters datasets dataset active filters. Updated init accept RelationalData, data.frame, MultiAssayExperiment, Dataset, DatasetConnector, list function returning named list data input.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-10-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.10.1","text":"choices_selected now correctly removes duplicates array passed choices parameter. Fixed call returned FilterState case using MultiAssayExperiment::subsetByColData. Now single condition variable containing NA values !.na(var) & var == . Fixed data loading DatasetConnector dependent Dataset DatasetConnector objects. Fixed restoring bookmarked filter state teal application. Refactored module_nested_tabs fix issue filter panel reacting input change nested module. updateOptionalSelectInput longer sets input NULL logical value passed selected. Fixed setting JoinKeys key name two Dataset object differs. Fixed printing JavaScript console logs R console teal.show_js_log = TRUE.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-10-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.10.1","text":"Soft-deprecate mae_dataset() favor general dataset() constructor. Added vignette describing modifications teal applications users can apply using R options. Added default values label argument select_spec filter_spec. Added validation FilteredDataset::get_data accept logical input . Changed references outdated functions teal.devel documentation. Introduced Teal prefix public R6 classes avoid name collisions packages. Removed dependency utils.nest replaced functionality teal equivalents checkmate package base R. Replaced old shiny server functions DataConnection, RelationalDataConnector, DatasetConnector, RelationalData shiny::moduleServer equivalents. Running teal application via ui_teal_with_splash srv_teal_with_splash now longer recommended doesn’t support new features (e.g. logging, bookmarking). Use init instead. Updated R version requirement >= 4.0. Updated “filter panel collapse” icon remove warnings using shiny version >= 1.7. Removed non-exported, debugging modules. Updated footer tag style less visible.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-10-0","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.10.0","text":"Allow passing MultiAssayExperiment teal::init using mae_dataset function connectors. Refactored filter panel use MultiAssayExperiment objects. Filters can set subject level (colData MAE object) experiment level (colData rowData assay). Added cdse_dataset_connector create delayed data objects CDSE. Added datasetdb_dataset_connector create delayed data objects DataSetDB. Added ricepass_connection create delayed data objects entimICE via ricepass. Simplified setting initial filter state without need specify “choices” “range” named list element depending variable class. Dataset type determines appearance functionality related filters filters summary. Datasets passed (reference) DDL FilteredData skipping extracting data attributes. Redesigned variable filter labels “Active Filter Variables” panel. Fully testable server functions.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-10-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.10.0","text":"Fixed bug caused calling mutate_dataset multiple times DatasetConnector Dataset object. Fixed bug caused output get_code function reproduce raw data set. Changed filter_spec allow variable selection upon app initialization, first possible value previously selected.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-10-0","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.10.0","text":"modules parameter teal::init function can also receive list except root_modules function call. Added split merge methods JoinKeys object. Added all_choices() possible argument selected parameter filter_spec, select_spec choices_selected indicating choices selected. append method CodeClass object modified print warning message argument result code added duplicated. Implemented delayed functionality mutate method Dataset DatasetConnector objects. Modified teal_data return CDISCData object whenever arguments type CDISCData object. Updated filters show levels logical variable TRUE/FALSE even one missing original array.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-10-0","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.10.0","text":"Updated LICENCE README new package references. Added method get_hash Dataset class returning MD5 hash object stored inside Dataset object. Replaced random.cdisc.data scda examples tests. Implemented functionality store JoinKeys Dataset DatasetConnector classes. Added error_on_lintr: TRUE .lintr pipe operator %>% now exported downstream code packages can use . Removed hyperlinks rice package documentation.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-5","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.5","text":"Added informational stop message using mutate_data RelationalDataConnector. Modified as_cdisc behave similarly cdisc_dataset called Dataset object. Changed displayed format data name column name data_extract_spec UI elements. now compressed . don’t change runtime app. Added ADSAFTTE list recognized ADaM dataset names. Added another example data_extract_spec’s doc string showcasing app users can choose variable used filtering encoding panel. Added CSS styling tool tips teal modules.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.5","text":"Fixed edge case error creating filter variable missing values crashed app. Fixed bug crashes app whenever Date datetime column selected filter_spec.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-4","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.4","text":"Released snowflake connection connectors. Changed ordering datasets intuitive (topologically first CDISC datasets according input datasets order). closing teal app (ending user shiny session), DataConnections now try close connections. Added ADHY keys configuration file. Extended filter_spec function: parameter choices longer mandatory (function take possible choices default) vars parameter additionally accepts choices_selected allows change variables filtering using UI elements encoding panel.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.4","text":"Cleaned imports package. Modified value_choices function handle edge case \"NA\" NA values exist character column choices derived . Fixed issue cloning Callable class.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-9-3","dir":"Changelog","previous_headings":"","what":"New Features","title":"teal 0.9.3","text":"Support data-standard independent input filtering. includes refactor data dataset structures together refactor FilteredData class. New JoinKeys class (join_keys() constructors join_key() constructor elements) store joining key columns datasets. Refactored basic dataset() constructor, added cdisc_dataset() constructor as_cdisc() conversion function. Soft-deprecate removed class constructors obsolete functions (e.g. keys()). Added get_keys() set_keys() functions extract manipulate datasets primary keys respectively. Unexported filtered_data_new, filtered_data_set filtered_data_set_filters.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"bug-fixes-0-9-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"teal 0.9.3","text":"Duplicated lines code passed teal::cdisc_dataset teal::RelationalDataset constructors now shown getting code teal::cdisc_data objects teal::RelationalData objects. Added ability press “Enter” key without set focus Submit button delayed data loading. Allow variable_choices use datasets missing labels. Fixed bug ignores input NULL selected argument select_spec function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-3","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.3","text":"Added button remove active filters Filter Panel.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-9-2","dir":"Changelog","previous_headings":"","what":"New Features","title":"teal 0.9.2","text":"Added python_dataset_connector create delayed data objects python scripts directly python code. NOTE: python_dataset_connector yet ready deployed RSConnect contain numpy pandas, Python libraries used python_dataset_connector. Added support filtering Date Datetime variables Filter Panel. Added buttons date datetime filter widgets reset value original. Added new function check_key_duplicates, creates short summary rows duplicated primary key (row numbers number duplicates)","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"enhancements-0-9-2","dir":"Changelog","previous_headings":"","what":"Enhancements","title":"teal 0.9.2","text":"Fixed lack labels character factor variables Filter Panel. variables now displayed module_filter_panel, types numeric, logical, factor, character Date Fixed mutate_data accept whole scope objects vars. Clarified teal::init function documentation state custom CSS loading code htmltools::htmlDependency included header argument rather inside ui arguments modules. Enabled empty select field inside data_extract_spec. Added new argument drop_keys filter_spec decide whether drop keep keys columns single filter columns. Added new optional argument keys variable_choices. keys specifies names variables, new key icon shown next variable drop menus left-hand side encoding panels instead icon appropriate original R variable type. variable_choices now also works RelationalDataset RelationalDatasetConnector objects.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"miscellaneous-0-9-2","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"teal 0.9.2","text":"Removed include_factors option get_class_colnames RawDataset.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-091","dir":"Changelog","previous_headings":"","what":"teal 0.9.1","title":"teal 0.9.1","text":"Adds method resolve nested lists containing delayed data objects, can used arm_ref_comp objects. Nested tabs module now better alignment filter panel page. Allow width argument optionalSelectInput. Added lifecycle badges exported functions. Added new code_dataset_connector code_cdisc_dataset_connector functions enable creation new delayed data objects given string code. Added new functions csv_dataset_connector csv_cdisc_dataset_connector. Updated set_ui_input method RawDatasetConnector NamedDatasetConnector handle user defined shiny inputs. Include Keep Inf checkbox numerical filter items. Keep NA Keep Inf checkbox doesn’t appear missing infinite values. Replace existing RelationalData class abstract class RelationalDataCollection rename RelationalDataList class RelationalData. data argument teal::init now always RelationalData object. Added fun_cdisc_dataset_connector enable providing custom function returning dataset. Removed code script arguments as_relational wrapper. intended done mutate_dataset functionality. filer argument init added validation step ensure compatibility rest app. Variables inherited ADSL specified ADSL dataset. Fixes issue connection close code present get_code results. Fixes issue occasional incorrect ordering bar charts filter panel. informative error displayed pull_fun DataConnection produces error.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-090","dir":"Changelog","previous_headings":"","what":"teal 0.9.0","title":"teal 0.9.0","text":"cdisc_dataset dataset now return R6 class objects (RelationalDataset). new teal_data function include datasets connectors teal application. cdisc_data function include datasets connectors teal application check argument still used consistency tests performed. get_raw_data can used derive raw data R6 objects e.g. (RelationalDataset). RawDatasetConnector, NamedDatasetConnector RelationalDatasetConnector execute custom function call order get data connection. CodeClass manage reproducibility data relationships datasets. directly exposed public interface. mutate_dataset allows modify dataset connector via code argument R script. mutate_data allows change dataset RelationalData, RelationalDataConnector RelationalDataList. New wrapper functions manipulate RelationalDatasetConnector RelationalDataset get_dataset, load_dataset, as_relational. New wrapper functions manipulate RelationalDataConnector, RelationalData RelationalDataList get_datasets, load_datasets. choices_labeled, filter_spec, select_spec, data_extract_spec, value_choices, variable_choices S3 class applied data.frame also delayed data. can longer modify app$datasets, must instead use argument filter init function. New modules created create module nested teal modules, another one adds right filter pane tab. teal::init function stays unchanged. teal::init function now returns UI function optional id argument. allows embed applications. split view two teal applications side--side one example shown vignette. teal::init turned wrapper function around module_teal_with_splash.R developers want embed teal Shiny module directly work functions (ui_teal_with_splash srv_teal_with_splash) instead teal::init. teal::init function now title parameter set title browser window. Missing data NA now explicitly addressed filter panel: NAs excluded default checkbox include added. Statistics data visually depicted terms histograms bar charts overlayed onto Shiny input elements. Added buttons remove filters applied dataset. Restored functionality hide filter panel module constructed filters = NULL. Moved helper functions utils.nest removed unused functions set_labels_df get_labels_df. optionalSelectInput now allows grouped choices.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"refactor-of-filtereddata-for-developers-0-9-0","dir":"Changelog","previous_headings":"","what":"Refactor of FilteredData (for developers)","title":"teal 0.9.0","text":"FilteredData now fully reactive. Now filtered data lazy evaluated per need. opens door bookmarking teal apps (bookmarking currently works right filtering panel, make feature sophisticated future release, module must reviewed adapted contains reactiveValues). Datasets materialized connectors provided FilteredData set_datasets_data function located init_datasets.R file. Renamed get_dataset() method get_data(). Renamed get_filter_call() method get_filter_expr(); returns expression rather list. Removed argument isolate get_data() method similar methods. must isolate needed. want temporarily deactivate Shiny errors due missing errors, can set options(shiny.suppressMissingContextError = TRUE). general, avoid isolate breaks reactivity. added development module add several filters , e.g. safety filters. evaluated converted proper module made available end-users.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-085","dir":"Changelog","previous_headings":"","what":"teal 0.8.5","title":"teal 0.8.5","text":"UI bug fix hide filter elements used datasets.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-084","dir":"Changelog","previous_headings":"","what":"teal 0.8.4","title":"teal 0.8.4","text":"Progress bar UI creation delayed loading module. Change output keys function keys object. Delayed version choices_selected. Fix error choices_selected selected choices. Fix pickerInput display column name label ’s missing.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-083","dir":"Changelog","previous_headings":"","what":"teal 0.8.3","title":"teal 0.8.3","text":"Enable teal app initialize without data. data loaded within teal app. New classes (DatasetConnector, DataConnector) connect various data sources, including: * connector rice API - rice_data rice_dataset_connector * connector RDS files - rds_data rds_dataset_connector Message appears bottom right Shiny app Shiny busy update views. Remove labels argument cdisc_data function. Labels now already present data passed cdisc_data function. can achieved using var_relabel function.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-082","dir":"Changelog","previous_headings":"","what":"teal 0.8.2","title":"teal 0.8.2","text":"Fixed several BUGS optionalSelectInput improved inputs look. Added get_data_labels function FilteredData class. Improved sep passing within data_extract_spec.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-081","dir":"Changelog","previous_headings":"","what":"teal 0.8.1","title":"teal 0.8.1","text":"Refactor choices_labeled fix bug showing column name data_extract_spec.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-080","dir":"Changelog","previous_headings":"","what":"teal 0.8.0","title":"teal 0.8.0","text":"Added cdisc_dataset (general dataset) functions properly handle dataset keys merging. Possibility load custom .css .js files. Renamed columns_spec select_spec. Show number observations filter panel. Add labeling functions variable_choices value_choices.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-070","dir":"Changelog","previous_headings":"","what":"teal 0.7.0","title":"teal 0.7.0","text":"Added functions cdisc_data get_code deal preprocessing moving step towards data standard independent teal. Moved teal.utils functions teal: log_app_usage, stop_shiny. Added *_spec functions. Improvements usage PickerInput SelectInput.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-060","dir":"Changelog","previous_headings":"","what":"teal 0.6.0","title":"teal 0.6.0","text":"Removed deprecated functions tab*. Removed data generation functions including generate_sample_data. Incorporate shinyjs package. Added “Copy R code clipboard” button.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-005","dir":"Changelog","previous_headings":"","what":"teal 0.0.5","title":"teal 0.0.5","text":"Added limit data_table scrolling, preventing overlap UI elements. Boolean filtering.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-004","dir":"Changelog","previous_headings":"","what":"teal 0.0.4","title":"teal 0.0.4","text":"Bug fix teal crashes filter variable gets added many decimal places.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-003","dir":"Changelog","previous_headings":"","what":"teal 0.0.3","title":"teal 0.0.3","text":"Note version 0.0.3 backwards compatible. Reading changes studying example app , however, clarify changes.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"new-features-0-0-3","dir":"Changelog","previous_headings":"","what":"New features","title":"teal 0.0.3","text":"tm_scatterplot module. tm_table module.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"changes-0-0-3","dir":"Changelog","previous_headings":"","what":"Changes","title":"teal 0.0.3","text":"tabs arguments renamed modules. tab_item function now called module. tab_items function now called modules. tabs function removed. variable_browser_item now called tm_variable_browser. data_table_item now called tm_data_table. datasets argument automatically added server functions specified module. Hence teal_datasets removed server_args element.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-002","dir":"Changelog","previous_headings":"","what":"teal 0.0.2","title":"teal 0.0.2","text":"New ‘01_getting_started’ vignette. Datanames FilteredData now case sensitive.","code":""},{"path":"https://insightsengineering.github.io/teal/main/news/index.html","id":"teal-001","dir":"Changelog","previous_headings":"","what":"teal 0.0.1","title":"teal 0.0.1","text":"March 28, 2016 - Initial Release.","code":""}] +[{"path":[]},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"members, contributors, leaders pledge make participation community harassment-free experience everyone, regardless age, body size, visible invisible disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, sexual identity orientation. pledge act interact ways contribute open, welcoming, diverse, inclusive, healthy community.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes positive environment community include: Demonstrating empathy kindness toward people respectful differing opinions, viewpoints, experiences Giving gracefully accepting constructive feedback Accepting responsibility apologizing affected mistakes, learning experience Focusing best just us individuals, overall community Examples unacceptable behavior include: use sexualized language imagery, sexual attention advances kind Trolling, insulting derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical email address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement-responsibilities","dir":"","previous_headings":"","what":"Enforcement Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Community leaders responsible clarifying enforcing standards acceptable behavior take appropriate fair corrective action response behavior deem inappropriate, threatening, offensive, harmful. Community leaders right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, communicate reasons moderation decisions appropriate.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within community spaces, also applies individual officially representing community public spaces. Examples representing community include using official e-mail address, posting via official social media account, acting appointed representative online offline event.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported community leaders responsible enforcement [INSERT CONTACT METHOD]. complaints reviewed investigated promptly fairly. community leaders obligated respect privacy security reporter incident.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"enforcement-guidelines","dir":"","previous_headings":"","what":"Enforcement Guidelines","title":"Contributor Covenant Code of Conduct","text":"Community leaders follow Community Impact Guidelines determining consequences action deem violation Code Conduct:","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_1-correction","dir":"","previous_headings":"Enforcement Guidelines","what":"1. Correction","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Use inappropriate language behavior deemed unprofessional unwelcome community. Consequence: private, written warning community leaders, providing clarity around nature violation explanation behavior inappropriate. public apology may requested.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_2-warning","dir":"","previous_headings":"Enforcement Guidelines","what":"2. Warning","title":"Contributor Covenant Code of Conduct","text":"Community Impact: violation single incident series actions. Consequence: warning consequences continued behavior. interaction people involved, including unsolicited interaction enforcing Code Conduct, specified period time. includes avoiding interactions community spaces well external channels like social media. Violating terms may lead temporary permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_3-temporary-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"3. Temporary Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: serious violation community standards, including sustained inappropriate behavior. Consequence: temporary ban sort interaction public communication community specified period time. public private interaction people involved, including unsolicited interaction enforcing Code Conduct, allowed period. Violating terms may lead permanent ban.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"id_4-permanent-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"4. Permanent Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Demonstrating pattern violation community standards, including sustained inappropriate behavior, harassment individual, aggression toward disparagement classes individuals. Consequence: permanent ban sort public interaction within community.","code":""},{"path":"https://insightsengineering.github.io/teal/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 2.1, available https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines inspired Mozilla’s code conduct enforcement ladder. answers common questions code conduct, see FAQ https://www.contributor-covenant.org/faq. Translations available https://www.contributor-covenant.org/translations.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contribution Guidelines","title":"Contribution Guidelines","text":"🙏 Thank taking time contribute! input deeply valued, whether issue, pull request, even feedback, regardless size, content scope.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"Contribution Guidelines","text":"👶 Getting started 📔 Code Conduct 🗃 License 📜 Issues 🚩 Pull requests 💻 Coding guidelines 🏆 Recognition model ❓ Questions","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"getting-started","dir":"","previous_headings":"","what":"Getting started","title":"Contribution Guidelines","text":"Please refer project documentation brief introduction. Please also see articles within project documentation additional information.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contribution Guidelines","text":"Code Conduct governs project. Participants contributors expected follow rules outlined therein.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"license","dir":"","previous_headings":"","what":"License","title":"Contribution Guidelines","text":"contributions covered project’s license.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"issues","dir":"","previous_headings":"","what":"Issues","title":"Contribution Guidelines","text":"use GitHub track issues, feature requests, bugs. submitting new issue, please check issue already reported. issue already exists, please upvote existing issue 👍. new feature requests, please elaborate context benefit feature users, developers, relevant personas.","code":""},{"path":[]},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"github-flow","dir":"","previous_headings":"Pull requests","what":"GitHub Flow","title":"Contribution Guidelines","text":"repository uses GitHub Flow model collaboration. submit pull request: Create branch Please see branch naming convention . don’t write access repository, please fork . Make changes Make sure code passes checks imposed GitHub Actions well documented well tested unit tests sufficiently covering changes introduced Create pull request (PR) pull request description, please link relevant issue (), provide detailed description change, include assumptions. Address review comments, Post approval Merge PR write access. Otherwise, reviewer merge PR behalf. Pat back Congratulations! 🎉 now official contributor project! grateful contribution.","code":""},{"path":"https://insightsengineering.github.io/teal/CONTRIBUTING.html","id":"branch-naming-convention","dir":"","previous_headings":"Pull requests","what":"Branch naming convention","title":"Contribution Guidelines","text":"Suppose changes related current issue current project; please name branch follows: _. Please use underscore (_) delimiter word separation. example, 420_fix_ui_bug suitable branch name change resolving UI-related bug reported issue number 420 current project. change affects multiple repositories, please name branches follows: _