diff --git a/CITATION.cff b/CITATION.cff index 9b8ca753..947447f8 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,7 +8,7 @@ message: 'To cite package "FreesearchR" in publications use:' type: software license: AGPL-3.0-or-later title: 'FreesearchR: Easy data analysis for clinicians' -version: 25.12.7 +version: 25.12.6 doi: 10.5281/zenodo.14527429 identifiers: - type: url @@ -1140,6 +1140,69 @@ references: email: bradleysaul@fastmail.com year: '2025' doi: 10.32614/CRAN.package.smd +- type: software + title: doconv + abstract: 'doconv: Document Conversion to ''PDF'' or ''PNG''' + notes: Imports + url: https://github.com/ardata-fr/doconv + repository: https://CRAN.R-project.org/package=doconv + authors: + - family-names: Gohel + given-names: David + email: david.gohel@ardata.fr + year: '2025' + doi: 10.32614/CRAN.package.doconv +- type: software + title: locatexec + abstract: 'locatexec: Detection and Localization of Executable Files' + notes: Imports + url: https://github.com/ardata-fr/locatexec + repository: https://CRAN.R-project.org/package=locatexec + authors: + - family-names: Gohel + given-names: David + email: david.gohel@ardata.fr + year: '2025' + doi: 10.32614/CRAN.package.locatexec +- type: software + title: magick + abstract: 'magick: Advanced Graphics and Image-Processing in R' + notes: Imports + url: https://docs.ropensci.org/magick/ + repository: https://CRAN.R-project.org/package=magick + authors: + - family-names: Ooms + given-names: Jeroen + email: jeroenooms@gmail.com + orcid: https://orcid.org/0000-0002-4035-0289 + year: '2025' + doi: 10.32614/CRAN.package.magick +- type: software + title: pdftools + abstract: 'pdftools: Text Extraction, Rendering and Converting of PDF Documents' + notes: Imports + url: https://ropensci.r-universe.dev/pdftools + repository: https://CRAN.R-project.org/package=pdftools + authors: + - family-names: Ooms + given-names: Jeroen + email: jeroenooms@gmail.com + orcid: https://orcid.org/0000-0002-4035-0289 + year: '2025' + doi: 10.32614/CRAN.package.pdftools +- type: software + title: qpdf + abstract: 'qpdf: Split, Combine and Compress PDF Files' + notes: Imports + url: https://docs.ropensci.org/qpdf/ + repository: https://CRAN.R-project.org/package=qpdf + authors: + - family-names: Ooms + given-names: Jeroen + email: jeroenooms@gmail.com + orcid: https://orcid.org/0000-0002-4035-0289 + year: '2025' + doi: 10.32614/CRAN.package.qpdf - type: software title: styler abstract: 'styler: Non-Invasive Pretty Printing of R Code' diff --git a/DESCRIPTION b/DESCRIPTION index 12350034..7b46a25b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: FreesearchR Title: Easy data analysis for clinicians -Version: 25.12.7 +Version: 25.12.6 Authors@R: c( person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7559-1154")), @@ -107,13 +107,11 @@ Collate: 'data-summary.R' 'data_plots.R' 'datagrid-infos-mod.R' - 'footer_ui.R' 'helpers.R' 'hosted_version.R' 'html_dependency_freesearchr.R' 'import-file-ext.R' 'import_globalenv-ext.R' - 'landing_page_ui.R' 'launch_FreesearchR.R' 'missings-module.R' 'plot-download-module.R' diff --git a/NEWS.md b/NEWS.md index 85c4b538..e2bb2c50 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,3 @@ -# FreesearchR 25.12.7 - -*NEW* The landing page was overhauled for a nicer intro and better overview with focus on the basic functions. - # FreesearchR 25.12.6 *NEW* Export missingness table directly. diff --git a/R/app_version.R b/R/app_version.R index 675b0bb4..098f2ac8 100644 --- a/R/app_version.R +++ b/R/app_version.R @@ -1 +1 @@ -app_version <- function()'25.12.7' +app_version <- function()'25.12.6' diff --git a/R/footer_ui.R b/R/footer_ui.R deleted file mode 100644 index 55066191..00000000 --- a/R/footer_ui.R +++ /dev/null @@ -1,30 +0,0 @@ -footer_ui <- function(i18n) { - tagList( - shiny::tags$footer( - style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", - shiny::p( - style = "margin: 1", - i18n$t("Data is only stored for analyses and deleted when the app is closed.") - ), - shiny::p( - style = "margin: 1", - i18n$t("Run the FreesearchR app locally when working with sensitive data."), shiny::tags$a(i18n$t("(Read more)"), href = "https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine", target = "_blank", rel = "noopener noreferrer") - ), - # shiny::p( - # style = "margin: 1; color: #888;", - div( - style = "display: inline-flex; align-items: center; gap: 1px;", - shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( - style = "display: inline-block;", - class = c("smart-dropdown", "text-select"), - shiny::uiOutput(outputId = "language_select") - ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") - ), - br(), - p( - style = "display: inline-flex; align-items: center; gap: 1px;", - hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), - ) - ) - ) -} diff --git a/R/hosted_version.R b/R/hosted_version.R index df017ffc..82f879ce 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v25.12.7-251218' +hosted_version <- function()'v25.12.6-251212' diff --git a/R/landing_page_ui.R b/R/landing_page_ui.R deleted file mode 100644 index 62716fa1..00000000 --- a/R/landing_page_ui.R +++ /dev/null @@ -1,259 +0,0 @@ -#' Tag list of elements for the FreesearchR landing page -#' -#' @param i18n i18n function loaded in the UI -#' -#' @returns tag list -#' -landing_page_ui <- function(i18n) { - tagList( - # Header section - div( - class = "container-fluid py-4", - # style = "background: linear-gradient(135deg, #1E4A8F 0%, #8A4FFF 100%); color: white;", - div( - class = "row align-items-center", - div( - class = "col-md-8", - h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), - h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), - style = "font-weight: 300; opacity: 0.95;"), - p( - class = "lead", - i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - i18n$t("When you need more advanced tools, you'll be prepared to use R directly."), - style = "font-size: 1.2rem; color: #555;" - ) - ), - div( - class = "col-md-4 text-end", - img(src = "FreesearchR-logo.png", style = "max-width: 200px; height: auto;") - ) - ) - ), - - # # Main content - div( - class = "container my-5", - - # Introduction text - # div( - # class = "row mb-5", - # div( - # class = "col-12 text-center", - # p( - # class = "lead", - # i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - # i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), - # style = "font-size: 1.2rem; color: #555;" - # ) - # ) - # ), - - # Core Features Section - h2(i18n$t("Core Features"), class = "text-center mb-4", - style = "color: #1E4A8F; font-weight: 600;"), - - div( - class = "row g-4 mb-5", - - # Import Data - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none; transition: transform 0.2s;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("file-import") - ), - h4(i18n$t("Import Data"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.") - ) - ) - ) - ), - - # Data Management - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("pen-to-square") - ), - h4(i18n$t("Data Management"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Filter, modify, and create new variables. Prepare your data efficiently for analysis.") - ) - ) - ) - ), - - # Descriptive Statistics - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("magnifying-glass-chart") - ), - h4(i18n$t("Descriptive Statistics"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.") - ) - ) - ) - ) - ), - - # Advanced Features Section - h3(i18n$t("Additional Capabilities"), class = "text-center mb-4 mt-5", - style = "color: #2D2D42; font-weight: 500; font-size: 1.5rem;"), - - div( - class = "row g-3 mb-5", - div( - class = "col-md-6", - div( - class = "card shadow-sm", - style = "border-left: 4px solid #8A4FFF;", - div( - class = "card-body", - h5(fa("chart-line"), " ", i18n$t("Data Visualization"), class = "card-title", style = "color: #2D2D42;"), - p(class = "card-text small", i18n$t("Create simple, clean plots for quick insights and overview")) - ) - ) - ), - div( - class = "col-md-6", - div( - class = "card shadow-sm", - style = "border-left: 4px solid #8A4FFF;", - div( - class = "card-body", - h5(fa("calculator"), " ", i18n$t("Regression Models"), class = "card-title", style = "color: #2D2D42;"), - p(class = "card-text small", i18n$t("Build simple regression models for advanced analysis")) - ) - ) - ) - ), - - # Export & Learning Section - div( - class = "row mb-5", - div( - class = "col-12", - div( - class = "card shadow", - style = "background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border: none;", - div( - class = "card-body p-4", - h4(fa("download"), " ", i18n$t("Export & Learn"), class = "text-center mb-3", style = "color: #1E4A8F;"), - div( - class = "row text-center", - div( - class = "col-md-4", - p(strong(i18n$t("Download Results")), br(), i18n$t("Export results directly to your text editor")) - ), - div( - class = "col-md-4", - p(strong(i18n$t("Get Modified Data")), br(), i18n$t("Save your processed datasets for later")) - ), - div( - class = "col-md-4", - p(strong(i18n$t("Reproducible Code")), br(), i18n$t("Learn and reproduce results in R")) - ) - ) - ) - ) - ) - )#, - - # Footer links - # div( - # class = "row mt-5 pt-4 border-top", - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "https://agdamsbo.github.io/FreesearchR/", - # target = "_blank", - # class = "btn btn-outline-primary", - # fa("book"), " ", i18n$t("Full Documentation") - # ) - # ), - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", - # target = "_blank", - # class = "btn btn-outline-success", - # fa("comments"), " ", i18n$t("Share Feedback") - # ) - # ), - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "mailto:info@freesearchr.org", - # class = "btn btn-outline-info", - # fa("envelope"), " ", i18n$t("Contact Us") - # ) - # ) - # ), - # - # # Translation notice - # div( - # class = "row mt-4", - # div( - # class = "col-12 text-center", - # p( - # class = "text-muted small", - # em(i18n$t("FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org")) - # ) - # ) - # ) - ), - - # Custom CSS for hover effects - tags$style(HTML(" - .hover-card:hover { - transform: translateY(-5px); - box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; - } - ")) - ) -} - -# Example usage in a Shiny app with nav_panel: -# -# ui <- page_navbar( -# title = "FreesearchR", -# theme = bs_theme( -# version = 5, -# bootswatch = "flatly", -# primary = "#2C3E50", -# base_font = font_google("Roboto") -# ), -# nav_panel( -# title = i18n$t("Home"), -# landing_page_ui(i18n) -# ), -# nav_panel( -# title = i18n$t("Import Data"), -# # Import data UI -# ), -# # ... other nav_panels -# ) diff --git a/R/sysdata.rda b/R/sysdata.rda index a99aa3a9..d1c8f1da 100644 Binary files a/R/sysdata.rda and b/R/sysdata.rda differ diff --git a/R/theme.R b/R/theme.R index 7f812de2..2bcc2699 100644 --- a/R/theme.R +++ b/R/theme.R @@ -40,7 +40,6 @@ custom_theme <- function(..., ) } - FreesearchR_colors <- function(choose = NULL) { out <- c( primary = "#1E4A8F", @@ -112,4 +111,3 @@ gg_theme_export <- function() { plot.title = ggplot2::element_text(size = 24) ) } - diff --git a/R/ui_elements.R b/R/ui_elements.R index 0c005766..e2781099 100644 --- a/R/ui_elements.R +++ b/R/ui_elements.R @@ -25,15 +25,14 @@ ui_elements <- function(selection) { ## Default just output "NULL" ## This could probably be achieved more legantly, but this works. dev_banner(), - landing_page_ui(i18n=i18n), - # shiny::column(width = 2), - # shiny::column( - # width = 8, - # # shiny::uiOutput(outputId = "language_select"), - # htmlOutput("intro_text") - # # shiny::includeHTML(i18n$t("www/intro.html")) - # # shiny::markdown(readLines(i18n$t("www/intro.md"))) - # ), + shiny::column(width = 2), + shiny::column( + width = 8, + # shiny::uiOutput(outputId = "language_select"), + htmlOutput("intro_text") + # shiny::includeHTML(i18n$t("www/intro.html")) + # shiny::markdown(readLines(i18n$t("www/intro.md"))) + ), shiny::column(width = 2) ) ), diff --git a/SESSION.md b/SESSION.md index 333511a4..919f71e1 100644 --- a/SESSION.md +++ b/SESSION.md @@ -11,11 +11,11 @@ |collate |en_US.UTF-8 | |ctype |en_US.UTF-8 | |tz |Europe/Copenhagen | -|date |2025-12-18 | +|date |2025-12-12 | |rstudio |2025.09.2+418 Cucumberleaf Sunflower (desktop) | |pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) | |quarto |1.7.30 @ /usr/local/bin/quarto | -|FreesearchR |25.12.7.251218 | +|FreesearchR |25.12.6.251212 | -------------------------------------------------------------------------------- @@ -26,6 +26,8 @@ |apexcharter |0.4.4 |2024-09-06 |CRAN (R 4.4.1) | |askpass |1.2.1 |2024-10-04 |CRAN (R 4.4.1) | |assertthat |0.2.1 |2019-03-21 |CRAN (R 4.4.1) | +|attachment |0.4.5 |2025-03-14 |CRAN (R 4.4.1) | +|attempt |0.3.1 |2020-05-03 |CRAN (R 4.4.1) | |backports |1.5.0 |2024-05-23 |CRAN (R 4.4.1) | |base64enc |0.1-3 |2015-07-28 |CRAN (R 4.4.1) | |bayestestR |0.17.0 |2025-08-29 |CRAN (R 4.4.1) | @@ -54,7 +56,6 @@ |colorspace |2.1-2 |2025-09-22 |CRAN (R 4.4.1) | |commonmark |2.0.0 |2025-07-07 |CRAN (R 4.4.1) | |crayon |1.5.3 |2024-06-20 |CRAN (R 4.4.1) | -|crul |1.6.0 |NA |NA | |curl |7.0.0 |2025-08-19 |CRAN (R 4.4.1) | |data.table |1.17.8 |2025-07-10 |CRAN (R 4.4.1) | |datamods |1.5.3 |2024-10-02 |CRAN (R 4.4.1) | @@ -64,6 +65,8 @@ |devtools |2.4.6 |2025-10-03 |CRAN (R 4.4.1) | |DHARMa |0.4.7 |2024-10-18 |CRAN (R 4.4.1) | |digest |0.6.39 |2025-11-19 |CRAN (R 4.4.3) | +|dockerfiler |0.2.5 |2025-05-07 |CRAN (R 4.4.1) | +|doconv |0.3.3 |2025-08-18 |CRAN (R 4.4.1) | |doParallel |1.0.17 |2022-02-07 |CRAN (R 4.4.0) | |dplyr |1.1.4 |2023-11-17 |CRAN (R 4.4.0) | |DT |0.34.0 |2025-09-02 |CRAN (R 4.4.1) | @@ -86,11 +89,10 @@ |foreach |1.5.2 |2022-02-02 |CRAN (R 4.4.0) | |foreign |0.8-90 |2025-03-31 |CRAN (R 4.4.1) | |Formula |1.2-5 |2023-02-24 |CRAN (R 4.4.1) | -|FreesearchR |25.12.7 |NA |NA | +|FreesearchR |25.12.6 |NA |NA | |fs |1.6.6 |2025-04-12 |CRAN (R 4.4.1) | |gdtools |0.4.4 |2025-10-06 |CRAN (R 4.4.1) | |generics |0.1.4 |2025-05-09 |CRAN (R 4.4.1) | -|gfonts |0.2.0 |NA |NA | |ggalluvial |0.12.5 |2023-02-22 |CRAN (R 4.4.0) | |ggcorrplot |0.1.4.1 |2023-09-05 |CRAN (R 4.4.0) | |ggforce |0.5.0 |2025-06-18 |CRAN (R 4.4.1) | @@ -109,7 +111,6 @@ |htmlTable |2.4.3 |2024-07-21 |CRAN (R 4.4.0) | |htmltools |0.5.9 |2025-12-04 |CRAN (R 4.4.3) | |htmlwidgets |1.6.4 |2023-12-06 |CRAN (R 4.4.0) | -|httpcode |0.3.0 |NA |NA | |httpuv |1.6.16 |2025-04-16 |CRAN (R 4.4.1) | |IDEAFilter |0.2.1 |2025-07-29 |CRAN (R 4.4.1) | |insight |1.4.4 |2025-12-06 |CRAN (R 4.4.3) | @@ -120,15 +121,21 @@ |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.4.1) | |keyring |1.4.1 |2025-06-15 |CRAN (R 4.4.1) | |knitr |1.50 |2025-03-16 |CRAN (R 4.4.1) | +|labeling |0.4.3 |2023-08-29 |CRAN (R 4.4.1) | |later |1.4.4 |2025-08-27 |CRAN (R 4.4.1) | |lattice |0.22-7 |2025-04-02 |CRAN (R 4.4.1) | |lifecycle |1.0.4 |2023-11-07 |CRAN (R 4.4.1) | +|litedown |0.8 |2025-11-02 |CRAN (R 4.4.1) | |lme4 |1.1-38 |2025-12-02 |CRAN (R 4.4.3) | +|locatexec |0.1.1 |2021-05-19 |CRAN (R 4.4.0) | |lubridate |1.9.4 |2024-12-08 |CRAN (R 4.4.1) | +|magick |2.9.0 |2025-09-08 |CRAN (R 4.4.1) | |magrittr |2.0.4 |2025-09-12 |CRAN (R 4.4.1) | +|markdown |2.0 |2025-03-23 |CRAN (R 4.4.1) | |MASS |7.3-65 |2025-02-28 |CRAN (R 4.4.1) | |Matrix |1.7-4 |2025-08-28 |CRAN (R 4.4.1) | |memoise |2.0.1 |2021-11-26 |CRAN (R 4.4.0) | +|mgcv |1.9-4 |2025-11-07 |CRAN (R 4.4.1) | |mime |0.13 |2025-03-17 |CRAN (R 4.4.1) | |minqa |1.2.8 |2024-08-17 |CRAN (R 4.4.1) | |mvtnorm |1.3-3 |2025-01-10 |CRAN (R 4.4.1) | @@ -145,6 +152,7 @@ |parameters |0.28.3 |2025-11-25 |CRAN (R 4.4.3) | |patchwork |1.3.2 |2025-08-25 |CRAN (R 4.4.1) | |pbmcapply |1.5.1 |2022-04-28 |CRAN (R 4.4.1) | +|pdftools |3.6.0 |2025-09-10 |CRAN (R 4.4.1) | |performance |0.15.3 |2025-12-01 |CRAN (R 4.4.3) | |phosphoricons |0.2.1 |2024-04-08 |CRAN (R 4.4.0) | |pillar |1.11.1 |2025-09-17 |CRAN (R 4.4.1) | @@ -159,6 +167,7 @@ |proxy |0.4-27 |2022-06-09 |CRAN (R 4.4.1) | |ps |1.9.1 |2025-04-12 |CRAN (R 4.4.1) | |purrr |1.2.0 |2025-11-04 |CRAN (R 4.4.1) | +|qpdf |1.4.1 |2025-07-02 |CRAN (R 4.4.1) | |qqconf |1.3.2 |2023-04-14 |CRAN (R 4.4.0) | |qqplotr |0.0.7 |2025-09-05 |CRAN (R 4.4.1) | |quarto |1.5.1 |2025-09-04 |CRAN (R 4.4.1) | @@ -202,12 +211,12 @@ |sessioninfo |1.2.3 |2025-02-05 |CRAN (R 4.4.1) | |shiny |1.12.1 |2025-12-09 |CRAN (R 4.4.1) | |shiny.i18n |0.3.0 |2023-01-16 |CRAN (R 4.4.0) | +|shiny2docker |0.0.3 |2025-06-28 |CRAN (R 4.4.1) | |shinybusy |0.3.3 |2024-03-09 |CRAN (R 4.4.0) | |shinyjs |2.1.0 |2021-12-23 |CRAN (R 4.4.0) | |shinyTime |1.0.3 |2022-08-19 |CRAN (R 4.4.0) | |shinyWidgets |0.9.0 |2025-02-21 |CRAN (R 4.4.1) | |smd |0.8.0 |2025-02-12 |CRAN (R 4.4.1) | -|sourcetools |0.1.7-1 |2023-02-01 |CRAN (R 4.4.1) | |stringi |1.8.7 |2025-03-27 |CRAN (R 4.4.1) | |stringr |1.6.0 |2025-11-04 |CRAN (R 4.4.1) | |stRoke |25.9.2 |2025-09-30 |CRAN (R 4.4.1) | @@ -221,11 +230,9 @@ |tidyselect |1.2.1 |2024-03-11 |CRAN (R 4.4.0) | |timechange |0.3.0 |2024-01-18 |CRAN (R 4.4.1) | |toastui |0.4.0 |2025-04-03 |CRAN (R 4.4.1) | -|triebeard |0.4.1 |NA |NA | |tweenr |2.0.3 |2024-02-26 |CRAN (R 4.4.0) | |twosamples |2.0.1 |2023-06-23 |CRAN (R 4.4.1) | |tzdb |0.5.0 |2025-03-15 |CRAN (R 4.4.1) | -|urltools |1.7.3.1 |NA |NA | |usethis |3.2.1 |2025-09-06 |CRAN (R 4.4.1) | |uuid |1.2-1 |2024-07-29 |CRAN (R 4.4.1) | |V8 |8.0.1 |2025-10-10 |CRAN (R 4.4.1) | @@ -239,4 +246,5 @@ |xml2 |1.5.1 |2025-12-01 |CRAN (R 4.4.3) | |xtable |1.8-4 |2019-04-21 |CRAN (R 4.4.1) | |yaml |2.3.11 |2025-11-28 |CRAN (R 4.4.3) | +|yesno |0.1.3 |2024-07-26 |CRAN (R 4.4.1) | |zip |2.3.3 |2025-05-13 |CRAN (R 4.4.1) | diff --git a/app_docker/Dockerfile b/app_docker/Dockerfile index e81d0317..c4564945 100644 --- a/app_docker/Dockerfile +++ b/app_docker/Dockerfile @@ -1,5 +1,5 @@ FROM rocker/geospatial:4.4.1 -RUN apt-get update -y && apt-get install -y cmake make libcurl4-openssl-dev libicu-dev libssl-dev pandoc zlib1g-dev libsecret-1-dev libxml2-dev libx11-dev libcairo2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libfftw3-dev && rm -rf /var/lib/apt/lists/* +RUN apt-get update -y && apt-get install -y cmake make libcurl4-openssl-dev libicu-dev libssl-dev pandoc zlib1g-dev libsecret-1-dev libxml2-dev libx11-dev libmagick++-dev gsfonts libjpeg-dev libpoppler-cpp-dev libcairo2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libpng-dev libtiff-dev libwebp-dev libfftw3-dev && rm -rf /var/lib/apt/lists/* RUN mkdir -p /usr/local/lib/R/etc/ /usr/lib/R/etc/ RUN echo "options(renv.config.pak.enabled = FALSE, repos = c(CRAN = 'https://cran.rstudio.com/'), download.file.method = 'libcurl', Ncpus = 4)" | tee /usr/local/lib/R/etc/Rprofile.site | tee /usr/lib/R/etc/Rprofile.site RUN R -e 'install.packages("remotes")' diff --git a/app_docker/app.R b/app_docker/app.R index c5b12b88..a6dd12ce 100644 --- a/app_docker/app.R +++ b/app_docker/app.R @@ -1,7 +1,7 @@ ######## -#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpfypcRk/file94c84b9cb1cb.R +#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpaYL5kU/file9c7113e28000.R ######## i18n_path <- here::here("translations") @@ -41,9 +41,10 @@ library(shinyWidgets) library(gtsummary) library(bsicons) library(rlang) +# library(datamods) +# library(toastui) # library(phosphoricons) library(shiny.i18n) -library(fontawesome) ## Translation init i18n <- shiny.i18n::Translator$new(translation_csvs_path = i18n_path) @@ -62,7 +63,7 @@ i18n$set_translation_language("en") #### Current file: /Users/au301842/FreesearchR/R//app_version.R ######## -app_version <- function()'25.12.7' +app_version <- function()'25.12.6' ######## @@ -3624,42 +3625,6 @@ construct_col_summary <- function(data) { } -######## -#### Current file: /Users/au301842/FreesearchR/R//footer_ui.R -######## - -footer_ui <- function(i18n) { - tagList( - shiny::tags$footer( - style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", - shiny::p( - style = "margin: 1", - i18n$t("Data is only stored for analyses and deleted when the app is closed.") - ), - shiny::p( - style = "margin: 1", - i18n$t("Run the FreesearchR app locally when working with sensitive data."), shiny::tags$a(i18n$t("(Read more)"), href = "https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine", target = "_blank", rel = "noopener noreferrer") - ), - # shiny::p( - # style = "margin: 1; color: #888;", - div( - style = "display: inline-flex; align-items: center; gap: 1px;", - shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( - style = "display: inline-block;", - class = c("smart-dropdown", "text-select"), - shiny::uiOutput(outputId = "language_select") - ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") - ), - br(), - p( - style = "display: inline-flex; align-items: center; gap: 1px;", - hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), - ) - ) - ) -} - - ######## #### Current file: /Users/au301842/FreesearchR/R//helpers.R ######## @@ -4486,7 +4451,7 @@ data_types <- function() { #### Current file: /Users/au301842/FreesearchR/R//hosted_version.R ######## -hosted_version <- function()'v25.12.7-251218' +hosted_version <- function()'v25.12.6-251212' ######## @@ -5540,271 +5505,6 @@ limit_data_size <- function(data, limit = NULL) { } -######## -#### Current file: /Users/au301842/FreesearchR/R//landing_page_ui.R -######## - -#' Tag list of elements for the FreesearchR landing page -#' -#' @param i18n i18n function loaded in the UI -#' -#' @returns tag list -#' -landing_page_ui <- function(i18n) { - tagList( - # Header section - div( - class = "container-fluid py-4", - # style = "background: linear-gradient(135deg, #1E4A8F 0%, #8A4FFF 100%); color: white;", - div( - class = "row align-items-center", - div( - class = "col-md-8", - h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), - h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), - style = "font-weight: 300; opacity: 0.95;"), - p( - class = "lead", - i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - i18n$t("When you need more advanced tools, you'll be prepared to use R directly."), - style = "font-size: 1.2rem; color: #555;" - ) - ), - div( - class = "col-md-4 text-end", - img(src = "FreesearchR-logo.png", style = "max-width: 200px; height: auto;") - ) - ) - ), - - # # Main content - div( - class = "container my-5", - - # Introduction text - # div( - # class = "row mb-5", - # div( - # class = "col-12 text-center", - # p( - # class = "lead", - # i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - # i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), - # style = "font-size: 1.2rem; color: #555;" - # ) - # ) - # ), - - # Core Features Section - h2(i18n$t("Core Features"), class = "text-center mb-4", - style = "color: #1E4A8F; font-weight: 600;"), - - div( - class = "row g-4 mb-5", - - # Import Data - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none; transition: transform 0.2s;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("file-import") - ), - h4(i18n$t("Import Data"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.") - ) - ) - ) - ), - - # Data Management - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("pen-to-square") - ), - h4(i18n$t("Data Management"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Filter, modify, and create new variables. Prepare your data efficiently for analysis.") - ) - ) - ) - ), - - # Descriptive Statistics - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("magnifying-glass-chart") - ), - h4(i18n$t("Descriptive Statistics"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.") - ) - ) - ) - ) - ), - - # Advanced Features Section - h3(i18n$t("Additional Capabilities"), class = "text-center mb-4 mt-5", - style = "color: #2D2D42; font-weight: 500; font-size: 1.5rem;"), - - div( - class = "row g-3 mb-5", - div( - class = "col-md-6", - div( - class = "card shadow-sm", - style = "border-left: 4px solid #8A4FFF;", - div( - class = "card-body", - h5(fa("chart-line"), " ", i18n$t("Data Visualization"), class = "card-title", style = "color: #2D2D42;"), - p(class = "card-text small", i18n$t("Create simple, clean plots for quick insights and overview")) - ) - ) - ), - div( - class = "col-md-6", - div( - class = "card shadow-sm", - style = "border-left: 4px solid #8A4FFF;", - div( - class = "card-body", - h5(fa("calculator"), " ", i18n$t("Regression Models"), class = "card-title", style = "color: #2D2D42;"), - p(class = "card-text small", i18n$t("Build simple regression models for advanced analysis")) - ) - ) - ) - ), - - # Export & Learning Section - div( - class = "row mb-5", - div( - class = "col-12", - div( - class = "card shadow", - style = "background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border: none;", - div( - class = "card-body p-4", - h4(fa("download"), " ", i18n$t("Export & Learn"), class = "text-center mb-3", style = "color: #1E4A8F;"), - div( - class = "row text-center", - div( - class = "col-md-4", - p(strong(i18n$t("Download Results")), br(), i18n$t("Export results directly to your text editor")) - ), - div( - class = "col-md-4", - p(strong(i18n$t("Get Modified Data")), br(), i18n$t("Save your processed datasets for later")) - ), - div( - class = "col-md-4", - p(strong(i18n$t("Reproducible Code")), br(), i18n$t("Learn and reproduce results in R")) - ) - ) - ) - ) - ) - )#, - - # Footer links - # div( - # class = "row mt-5 pt-4 border-top", - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "https://agdamsbo.github.io/FreesearchR/", - # target = "_blank", - # class = "btn btn-outline-primary", - # fa("book"), " ", i18n$t("Full Documentation") - # ) - # ), - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", - # target = "_blank", - # class = "btn btn-outline-success", - # fa("comments"), " ", i18n$t("Share Feedback") - # ) - # ), - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "mailto:info@freesearchr.org", - # class = "btn btn-outline-info", - # fa("envelope"), " ", i18n$t("Contact Us") - # ) - # ) - # ), - # - # # Translation notice - # div( - # class = "row mt-4", - # div( - # class = "col-12 text-center", - # p( - # class = "text-muted small", - # em(i18n$t("FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org")) - # ) - # ) - # ) - ), - - # Custom CSS for hover effects - tags$style(HTML(" - .hover-card:hover { - transform: translateY(-5px); - box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; - } - ")) - ) -} - -# Example usage in a Shiny app with nav_panel: -# -# ui <- page_navbar( -# title = "FreesearchR", -# theme = bs_theme( -# version = 5, -# bootswatch = "flatly", -# primary = "#2C3E50", -# base_font = font_google("Roboto") -# ), -# nav_panel( -# title = i18n$t("Home"), -# landing_page_ui(i18n) -# ), -# nav_panel( -# title = i18n$t("Import Data"), -# # Import data UI -# ), -# # ... other nav_panels -# ) - - ######## #### Current file: /Users/au301842/FreesearchR/R//launch_FreesearchR.R ######## @@ -10305,7 +10005,6 @@ custom_theme <- function(..., ) } - FreesearchR_colors <- function(choose = NULL) { out <- c( primary = "#1E4A8F", @@ -10379,7 +10078,6 @@ gg_theme_export <- function() { } - ######## #### Current file: /Users/au301842/FreesearchR/R//translate.R ######## @@ -10425,15 +10123,14 @@ ui_elements <- function(selection) { ## Default just output "NULL" ## This could probably be achieved more legantly, but this works. dev_banner(), - landing_page_ui(i18n=i18n), - # shiny::column(width = 2), - # shiny::column( - # width = 8, - # # shiny::uiOutput(outputId = "language_select"), - # htmlOutput("intro_text") - # # shiny::includeHTML(i18n$t("www/intro.html")) - # # shiny::markdown(readLines(i18n$t("www/intro.md"))) - # ), + shiny::column(width = 2), + shiny::column( + width = 8, + # shiny::uiOutput(outputId = "language_select"), + htmlOutput("intro_text") + # shiny::includeHTML(i18n$t("www/intro.html")) + # shiny::markdown(readLines(i18n$t("www/intro.md"))) + ), shiny::column(width = 2) ) ), @@ -13251,7 +12948,7 @@ ui <- bslib::page_fixed( # ui_elements$feedback, # ui_elements$docs, fillable = FALSE, - footer = footer_ui(i18n) + footer = shiny::uiOutput("footer_text_div") ) ) ) @@ -13419,9 +13116,36 @@ server <- function(input, output, session) { ) ) - # output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) + output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) }) + ## This is not working but kept to try to solve if deemed necessary + shiny::observe( + output$footer_text_div <- renderUI({ + shiny::tags$footer( + style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", + shiny::p( + style = "margin: 1", + i18n$t("Data is only stored for analyses and deleted when the app is closed."), shiny::markdown(i18n$t("Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.")) + ), + # shiny::p( + # style = "margin: 1; color: #888;", + div( + style = "display: inline-flex; align-items: center; gap: 1px;", + shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( + style = "display: inline-block;", + class = c("smart-dropdown", "text-select"), + shiny::uiOutput(outputId = "language_select") + ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") + ), + br(), + p( + style = "display: inline-flex; align-items: center; gap: 1px;", + hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), + ) + ) + }) + ) shiny::observeEvent(input$language_select, { bslib::accordion_panel_update(id = "acc_chars", title = i18n$t("Settings"), target = "acc_pan_chars") diff --git a/app_docker/renv.lock b/app_docker/renv.lock index 6841ab5e..7d0e3eb6 100644 --- a/app_docker/renv.lock +++ b/app_docker/renv.lock @@ -2556,6 +2556,39 @@ "Maintainer": "Folashade Daniel ", "Repository": "CRAN" }, + "doconv": { + "Package": "doconv", + "Version": "0.3.3", + "Source": "Repository", + "Type": "Package", + "Title": "Document Conversion to 'PDF' or 'PNG'", + "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\"), person(\"David\", \"Hajage\", role = \"ctb\", comment = \"initial powershell code\") )", + "Description": "It provides the ability to generate images from documents of different types. Three main features are provided: functions for generating document thumbnails, functions for performing visual tests of documents and a function for updating fields and table of contents of a 'Microsoft Word' or 'RTF' document. In order to work, 'LibreOffice' must be installed on the machine and or 'Microsoft Word'. If the latter is available, it can be used to produce PDF documents or images identical to the originals; otherwise, 'LibreOffice' is used and the rendering can be sometimes different from the original documents.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "Imports": [ + "magick", + "pdftools", + "locatexec", + "processx", + "tools" + ], + "Depends": [ + "R (>= 4.0.0)" + ], + "Suggests": [ + "tinytest", + "testthat", + "webshot2" + ], + "BugReports": "https://github.com/ardata-fr/doconv/issues", + "SystemRequirements": "LibreOffice, Microsoft Word", + "NeedsCompilation": "no", + "Author": "David Gohel [aut, cre], ArData [cph], David Hajage [ctb] (initial powershell code)", + "Maintainer": "David Gohel ", + "Repository": "CRAN" + }, "downlit": { "Package": "downlit", "Version": "0.4.5", @@ -5307,6 +5340,26 @@ "Maintainer": "Achim Zeileis ", "Repository": "CRAN" }, + "locatexec": { + "Package": "locatexec", + "Version": "0.1.1", + "Source": "Repository", + "Type": "Package", + "Title": "Detection and Localization of Executable Files", + "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\") )", + "Description": "A set of functions to locate some programs available on the user machine. The package provides functions to locate 'Node.js', 'npm', 'LibreOffice', 'Microsoft Word', 'Microsoft PowerPoint', 'Microsoft Excel', 'Python', 'pip', 'Mozilla Firefox' and 'Google Chrome'. User can test the availability of a program with eventually a version and call it with function system2() or system(). This allows the use of a single function to retrieve the path to a program regardless of the operating system and its configuration.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.1.1", + "Imports": [ + "utils" + ], + "BugReports": "https://github.com/ardata-fr/locatexec/issues", + "NeedsCompilation": "no", + "Author": "David Gohel [aut, cre], ArData [cph]", + "Maintainer": "David Gohel ", + "Repository": "CRAN" + }, "lubridate": { "Package": "lubridate", "Version": "1.9.4", @@ -5353,6 +5406,54 @@ "Author": "Vitalie Spinu [aut, cre], Garrett Grolemund [aut], Hadley Wickham [aut], Davis Vaughan [ctb], Ian Lyttle [ctb], Imanuel Costigan [ctb], Jason Law [ctb], Doug Mitarotonda [ctb], Joseph Larmarange [ctb], Jonathan Boiser [ctb], Chel Hee Lee [ctb]", "Repository": "CRAN" }, + "magick": { + "Package": "magick", + "Version": "2.9.0", + "Source": "Repository", + "Type": "Package", + "Title": "Advanced Graphics and Image-Processing in R", + "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", + "Description": "Bindings to 'ImageMagick': the most comprehensive open-source image processing library available. Supports many common formats (png, jpeg, tiff, pdf, etc) and manipulations (rotate, scale, crop, trim, flip, blur, etc). All operations are vectorized via the Magick++ STL meaning they operate either on a single frame or a series of frames for working with layers, collages, or animation. In RStudio images are automatically previewed when printed to the console, resulting in an interactive editing environment. Also includes a graphics device for creating drawing onto images using pixel coordinates.", + "License": "MIT + file LICENSE", + "URL": "https://docs.ropensci.org/magick/ https://ropensci.r-universe.dev/magick", + "BugReports": "https://github.com/ropensci/magick/issues", + "SystemRequirements": "ImageMagick++: ImageMagick-c++-devel (rpm) or libmagick++-dev (deb)", + "VignetteBuilder": "knitr", + "Depends": [ + "R (>= 4.1.0)" + ], + "Imports": [ + "Rcpp (>= 0.12.12)", + "magrittr", + "curl" + ], + "LinkingTo": [ + "Rcpp" + ], + "Suggests": [ + "av", + "spelling", + "jsonlite", + "methods", + "knitr", + "rmarkdown", + "rsvg", + "webp", + "pdftools", + "ggplot2", + "gapminder", + "IRdisplay", + "tesseract", + "gifski" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "Language": "en-US", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: )", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, "magrittr": { "Package": "magrittr", "Version": "2.0.4", @@ -6221,6 +6322,38 @@ "NeedsCompilation": "yes", "Repository": "CRAN" }, + "pdftools": { + "Package": "pdftools", + "Version": "3.6.0", + "Source": "Repository", + "Type": "Package", + "Title": "Text Extraction, Rendering and Converting of PDF Documents", + "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", + "Description": "Utilities based on 'libpoppler' for extracting text, fonts, attachments and metadata from a PDF file. Also supports high quality rendering of PDF documents into PNG, JPEG, TIFF format, or into raw bitmap vectors for further processing in R.", + "License": "MIT + file LICENSE", + "URL": "https://ropensci.r-universe.dev/pdftools, https://docs.ropensci.org/pdftools/", + "BugReports": "https://github.com/ropensci/pdftools/issues", + "SystemRequirements": "Poppler C++ API: libpoppler-cpp-dev (deb) or poppler-cpp-devel (rpm), and poppler-data (rpm/deb) package.", + "Encoding": "UTF-8", + "Imports": [ + "Rcpp (>= 0.12.12)", + "qpdf" + ], + "LinkingTo": [ + "Rcpp" + ], + "Suggests": [ + "png", + "webp", + "tesseract", + "testthat" + ], + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: )", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, "performance": { "Package": "performance", "Version": "0.15.3", @@ -6936,6 +7069,36 @@ "Author": "Matteo Fasiolo [aut, cre], Ben Griffiths [aut], Simon N. Wood [ctb], Margaux Zaffran [ctb], Yannig Goude [ctb], Raphael Nedellec [ctb]", "Repository": "CRAN" }, + "qpdf": { + "Package": "qpdf", + "Version": "1.4.1", + "Source": "Repository", + "Type": "Package", + "Title": "Split, Combine and Compress PDF Files", + "Authors@R": "c(person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Ben\", \"Raymond\", role = \"ctb\"), person(\"Jay Berkenbilt\", role = \"cph\", comment = \"Author of libqpdf\"))", + "Description": "Content-preserving transformations transformations of PDF files such as split, combine, and compress. This package interfaces directly to the 'qpdf' C++ library and does not require any command line utilities. Note that 'qpdf' does not read actual content from PDF files: to extract text and data you need the 'pdftools' package.", + "License": "Apache License 2.0", + "URL": "https://docs.ropensci.org/qpdf/ https://ropensci.r-universe.dev/qpdf", + "BugReports": "https://github.com/ropensci/qpdf/issues", + "Encoding": "UTF-8", + "Imports": [ + "Rcpp", + "askpass", + "curl" + ], + "LinkingTo": [ + "Rcpp" + ], + "RoxygenNote": "7.2.1", + "Suggests": [ + "testthat" + ], + "SystemRequirements": "libjpeg", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: ), Ben Raymond [ctb], Jay Berkenbilt [cph] (Author of libqpdf)", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, "qqconf": { "Package": "qqconf", "Version": "1.3.2", diff --git a/app_docker/translations/translation_da.csv b/app_docker/translations/translation_da.csv index e97773e2..945ea908 100644 --- a/app_docker/translations/translation_da.csv +++ b/app_docker/translations/translation_da.csv @@ -137,6 +137,7 @@ "Generate area-proportional Euler diagrams to display set relationships","Generer proportionelt Euler-diagram for at vise forhold mellem forskellige kategoriske observationer" "Documentation","Dokumentation" "Data is only stored for analyses and deleted when the app is closed.","Data opbevares alene til brug i analyser og slettes så snart appen lukkes." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Overvej at [køre ***FreesearchR*** lokalt](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) hvis du arbejder med personfølsomme data." "Feedback","Feedback" "License: AGPLv3","Licens: AGPLv3" "Source","Kilde" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/app_docker/translations/translation_de.csv b/app_docker/translations/translation_de.csv index fcc88539..5c4e9162 100644 --- a/app_docker/translations/translation_de.csv +++ b/app_docker/translations/translation_de.csv @@ -234,6 +234,7 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/app_docker/translations/translation_sv.csv b/app_docker/translations/translation_sv.csv index a47c4fc8..5bf08438 100644 --- a/app_docker/translations/translation_sv.csv +++ b/app_docker/translations/translation_sv.csv @@ -234,6 +234,7 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/app_docker/translations/translation_sw.csv b/app_docker/translations/translation_sw.csv index 19b99451..2fe4651c 100644 --- a/app_docker/translations/translation_sw.csv +++ b/app_docker/translations/translation_sw.csv @@ -137,6 +137,7 @@ "Generate area-proportional Euler diagrams to display set relationships","Generate area-proportional Euler diagrams to display set relationships" "Documentation","Documentation" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" "Source","Source" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/apps/FreesearchR/app.R b/inst/apps/FreesearchR/app.R index 9eeb24a1..0f4e390e 100644 --- a/inst/apps/FreesearchR/app.R +++ b/inst/apps/FreesearchR/app.R @@ -1,7 +1,7 @@ ######## -#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpfypcRk/file94c829f4964f.R +#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpaYL5kU/file9c715011d086.R ######## i18n_path <- system.file("translations", package = "FreesearchR") @@ -41,9 +41,10 @@ library(shinyWidgets) library(gtsummary) library(bsicons) library(rlang) +# library(datamods) +# library(toastui) # library(phosphoricons) library(shiny.i18n) -library(fontawesome) ## Translation init i18n <- shiny.i18n::Translator$new(translation_csvs_path = i18n_path) @@ -62,7 +63,7 @@ i18n$set_translation_language("en") #### Current file: /Users/au301842/FreesearchR/R//app_version.R ######## -app_version <- function()'25.12.7' +app_version <- function()'25.12.6' ######## @@ -3624,42 +3625,6 @@ construct_col_summary <- function(data) { } -######## -#### Current file: /Users/au301842/FreesearchR/R//footer_ui.R -######## - -footer_ui <- function(i18n) { - tagList( - shiny::tags$footer( - style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", - shiny::p( - style = "margin: 1", - i18n$t("Data is only stored for analyses and deleted when the app is closed.") - ), - shiny::p( - style = "margin: 1", - i18n$t("Run the FreesearchR app locally when working with sensitive data."), shiny::tags$a(i18n$t("(Read more)"), href = "https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine", target = "_blank", rel = "noopener noreferrer") - ), - # shiny::p( - # style = "margin: 1; color: #888;", - div( - style = "display: inline-flex; align-items: center; gap: 1px;", - shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( - style = "display: inline-block;", - class = c("smart-dropdown", "text-select"), - shiny::uiOutput(outputId = "language_select") - ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") - ), - br(), - p( - style = "display: inline-flex; align-items: center; gap: 1px;", - hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), - ) - ) - ) -} - - ######## #### Current file: /Users/au301842/FreesearchR/R//helpers.R ######## @@ -4486,7 +4451,7 @@ data_types <- function() { #### Current file: /Users/au301842/FreesearchR/R//hosted_version.R ######## -hosted_version <- function()'v25.12.7-251218' +hosted_version <- function()'v25.12.6-251212' ######## @@ -5540,271 +5505,6 @@ limit_data_size <- function(data, limit = NULL) { } -######## -#### Current file: /Users/au301842/FreesearchR/R//landing_page_ui.R -######## - -#' Tag list of elements for the FreesearchR landing page -#' -#' @param i18n i18n function loaded in the UI -#' -#' @returns tag list -#' -landing_page_ui <- function(i18n) { - tagList( - # Header section - div( - class = "container-fluid py-4", - # style = "background: linear-gradient(135deg, #1E4A8F 0%, #8A4FFF 100%); color: white;", - div( - class = "row align-items-center", - div( - class = "col-md-8", - h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), - h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), - style = "font-weight: 300; opacity: 0.95;"), - p( - class = "lead", - i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - i18n$t("When you need more advanced tools, you'll be prepared to use R directly."), - style = "font-size: 1.2rem; color: #555;" - ) - ), - div( - class = "col-md-4 text-end", - img(src = "FreesearchR-logo.png", style = "max-width: 200px; height: auto;") - ) - ) - ), - - # # Main content - div( - class = "container my-5", - - # Introduction text - # div( - # class = "row mb-5", - # div( - # class = "col-12 text-center", - # p( - # class = "lead", - # i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - # i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), - # style = "font-size: 1.2rem; color: #555;" - # ) - # ) - # ), - - # Core Features Section - h2(i18n$t("Core Features"), class = "text-center mb-4", - style = "color: #1E4A8F; font-weight: 600;"), - - div( - class = "row g-4 mb-5", - - # Import Data - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none; transition: transform 0.2s;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("file-import") - ), - h4(i18n$t("Import Data"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.") - ) - ) - ) - ), - - # Data Management - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("pen-to-square") - ), - h4(i18n$t("Data Management"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Filter, modify, and create new variables. Prepare your data efficiently for analysis.") - ) - ) - ) - ), - - # Descriptive Statistics - div( - class = "col-md-4", - div( - class = "card h-100 shadow-sm hover-card", - style = "border: none;", - div( - class = "card-body text-center p-4", - div( - style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", - fa("magnifying-glass-chart") - ), - h4(i18n$t("Descriptive Statistics"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), - p( - class = "card-text", - i18n$t("Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.") - ) - ) - ) - ) - ), - - # Advanced Features Section - h3(i18n$t("Additional Capabilities"), class = "text-center mb-4 mt-5", - style = "color: #2D2D42; font-weight: 500; font-size: 1.5rem;"), - - div( - class = "row g-3 mb-5", - div( - class = "col-md-6", - div( - class = "card shadow-sm", - style = "border-left: 4px solid #8A4FFF;", - div( - class = "card-body", - h5(fa("chart-line"), " ", i18n$t("Data Visualization"), class = "card-title", style = "color: #2D2D42;"), - p(class = "card-text small", i18n$t("Create simple, clean plots for quick insights and overview")) - ) - ) - ), - div( - class = "col-md-6", - div( - class = "card shadow-sm", - style = "border-left: 4px solid #8A4FFF;", - div( - class = "card-body", - h5(fa("calculator"), " ", i18n$t("Regression Models"), class = "card-title", style = "color: #2D2D42;"), - p(class = "card-text small", i18n$t("Build simple regression models for advanced analysis")) - ) - ) - ) - ), - - # Export & Learning Section - div( - class = "row mb-5", - div( - class = "col-12", - div( - class = "card shadow", - style = "background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border: none;", - div( - class = "card-body p-4", - h4(fa("download"), " ", i18n$t("Export & Learn"), class = "text-center mb-3", style = "color: #1E4A8F;"), - div( - class = "row text-center", - div( - class = "col-md-4", - p(strong(i18n$t("Download Results")), br(), i18n$t("Export results directly to your text editor")) - ), - div( - class = "col-md-4", - p(strong(i18n$t("Get Modified Data")), br(), i18n$t("Save your processed datasets for later")) - ), - div( - class = "col-md-4", - p(strong(i18n$t("Reproducible Code")), br(), i18n$t("Learn and reproduce results in R")) - ) - ) - ) - ) - ) - )#, - - # Footer links - # div( - # class = "row mt-5 pt-4 border-top", - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "https://agdamsbo.github.io/FreesearchR/", - # target = "_blank", - # class = "btn btn-outline-primary", - # fa("book"), " ", i18n$t("Full Documentation") - # ) - # ), - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", - # target = "_blank", - # class = "btn btn-outline-success", - # fa("comments"), " ", i18n$t("Share Feedback") - # ) - # ), - # div( - # class = "col-md-4 text-center mb-3", - # a( - # href = "mailto:info@freesearchr.org", - # class = "btn btn-outline-info", - # fa("envelope"), " ", i18n$t("Contact Us") - # ) - # ) - # ), - # - # # Translation notice - # div( - # class = "row mt-4", - # div( - # class = "col-12 text-center", - # p( - # class = "text-muted small", - # em(i18n$t("FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org")) - # ) - # ) - # ) - ), - - # Custom CSS for hover effects - tags$style(HTML(" - .hover-card:hover { - transform: translateY(-5px); - box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; - } - ")) - ) -} - -# Example usage in a Shiny app with nav_panel: -# -# ui <- page_navbar( -# title = "FreesearchR", -# theme = bs_theme( -# version = 5, -# bootswatch = "flatly", -# primary = "#2C3E50", -# base_font = font_google("Roboto") -# ), -# nav_panel( -# title = i18n$t("Home"), -# landing_page_ui(i18n) -# ), -# nav_panel( -# title = i18n$t("Import Data"), -# # Import data UI -# ), -# # ... other nav_panels -# ) - - ######## #### Current file: /Users/au301842/FreesearchR/R//launch_FreesearchR.R ######## @@ -10305,7 +10005,6 @@ custom_theme <- function(..., ) } - FreesearchR_colors <- function(choose = NULL) { out <- c( primary = "#1E4A8F", @@ -10379,7 +10078,6 @@ gg_theme_export <- function() { } - ######## #### Current file: /Users/au301842/FreesearchR/R//translate.R ######## @@ -10425,15 +10123,14 @@ ui_elements <- function(selection) { ## Default just output "NULL" ## This could probably be achieved more legantly, but this works. dev_banner(), - landing_page_ui(i18n=i18n), - # shiny::column(width = 2), - # shiny::column( - # width = 8, - # # shiny::uiOutput(outputId = "language_select"), - # htmlOutput("intro_text") - # # shiny::includeHTML(i18n$t("www/intro.html")) - # # shiny::markdown(readLines(i18n$t("www/intro.md"))) - # ), + shiny::column(width = 2), + shiny::column( + width = 8, + # shiny::uiOutput(outputId = "language_select"), + htmlOutput("intro_text") + # shiny::includeHTML(i18n$t("www/intro.html")) + # shiny::markdown(readLines(i18n$t("www/intro.md"))) + ), shiny::column(width = 2) ) ), @@ -13251,7 +12948,7 @@ ui <- bslib::page_fixed( # ui_elements$feedback, # ui_elements$docs, fillable = FALSE, - footer = footer_ui(i18n) + footer = shiny::uiOutput("footer_text_div") ) ) ) @@ -13419,9 +13116,36 @@ server <- function(input, output, session) { ) ) - # output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) + output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) }) + ## This is not working but kept to try to solve if deemed necessary + shiny::observe( + output$footer_text_div <- renderUI({ + shiny::tags$footer( + style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", + shiny::p( + style = "margin: 1", + i18n$t("Data is only stored for analyses and deleted when the app is closed."), shiny::markdown(i18n$t("Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.")) + ), + # shiny::p( + # style = "margin: 1; color: #888;", + div( + style = "display: inline-flex; align-items: center; gap: 1px;", + shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( + style = "display: inline-block;", + class = c("smart-dropdown", "text-select"), + shiny::uiOutput(outputId = "language_select") + ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") + ), + br(), + p( + style = "display: inline-flex; align-items: center; gap: 1px;", + hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), + ) + ) + }) + ) shiny::observeEvent(input$language_select, { bslib::accordion_panel_update(id = "acc_chars", title = i18n$t("Settings"), target = "acc_pan_chars") diff --git a/inst/translations/translation_da.csv b/inst/translations/translation_da.csv index e97773e2..945ea908 100644 --- a/inst/translations/translation_da.csv +++ b/inst/translations/translation_da.csv @@ -137,6 +137,7 @@ "Generate area-proportional Euler diagrams to display set relationships","Generer proportionelt Euler-diagram for at vise forhold mellem forskellige kategoriske observationer" "Documentation","Dokumentation" "Data is only stored for analyses and deleted when the app is closed.","Data opbevares alene til brug i analyser og slettes så snart appen lukkes." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Overvej at [køre ***FreesearchR*** lokalt](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) hvis du arbejder med personfølsomme data." "Feedback","Feedback" "License: AGPLv3","Licens: AGPLv3" "Source","Kilde" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/translations/translation_de.csv b/inst/translations/translation_de.csv index fcc88539..5c4e9162 100644 --- a/inst/translations/translation_de.csv +++ b/inst/translations/translation_de.csv @@ -234,6 +234,7 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/translations/translation_sv.csv b/inst/translations/translation_sv.csv index a47c4fc8..5bf08438 100644 --- a/inst/translations/translation_sv.csv +++ b/inst/translations/translation_sv.csv @@ -234,6 +234,7 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/translations/translation_sw.csv b/inst/translations/translation_sw.csv index 19b99451..2fe4651c 100644 --- a/inst/translations/translation_sw.csv +++ b/inst/translations/translation_sw.csv @@ -137,6 +137,7 @@ "Generate area-proportional Euler diagrams to display set relationships","Generate area-proportional Euler diagrams to display set relationships" "Documentation","Documentation" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." +"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" "Source","Source" @@ -308,34 +309,3 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" -"Welcome to FreesearchR","Welcome to FreesearchR" -"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" -"Core Features","Core Features" -"Import Data","Import Data" -"Data Management","Data Management" -"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." -"Descriptive Statistics","Descriptive Statistics" -"Additional Capabilities","Additional Capabilities" -"Data Visualization","Data Visualization" -"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" -"Regression Models","Regression Models" -"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" -"Export & Learn","Export & Learn" -"Download Results","Download Results" -"Get Modified Data","Get Modified Data" -"Reproducible Code","Reproducible Code" -"Full Documentation","Full Documentation" -"Share Feedback","Share Feedback" -"Contact Us","Contact Us" -"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" -"Home","Home" -"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." -"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"(Read more)","(Read more)" -"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." -"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." -"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." -"Export results directly to your text editor","Export results directly to your text editor" -"Save your processed datasets for later","Save your processed datasets for later" -"Learn and reproduce results in R","Learn and reproduce results in R" -"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/man/landing_page_ui.Rd b/man/landing_page_ui.Rd deleted file mode 100644 index 5e66498c..00000000 --- a/man/landing_page_ui.Rd +++ /dev/null @@ -1,17 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/landing_page_ui.R -\name{landing_page_ui} -\alias{landing_page_ui} -\title{Tag list of elements for the FreesearchR landing page} -\usage{ -landing_page_ui(i18n) -} -\arguments{ -\item{i18n}{i18n function loaded in the UI} -} -\value{ -tag list -} -\description{ -Tag list of elements for the FreesearchR landing page -} diff --git a/renv.lock b/renv.lock index 6841ab5e..7d0e3eb6 100644 --- a/renv.lock +++ b/renv.lock @@ -2556,6 +2556,39 @@ "Maintainer": "Folashade Daniel ", "Repository": "CRAN" }, + "doconv": { + "Package": "doconv", + "Version": "0.3.3", + "Source": "Repository", + "Type": "Package", + "Title": "Document Conversion to 'PDF' or 'PNG'", + "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\"), person(\"David\", \"Hajage\", role = \"ctb\", comment = \"initial powershell code\") )", + "Description": "It provides the ability to generate images from documents of different types. Three main features are provided: functions for generating document thumbnails, functions for performing visual tests of documents and a function for updating fields and table of contents of a 'Microsoft Word' or 'RTF' document. In order to work, 'LibreOffice' must be installed on the machine and or 'Microsoft Word'. If the latter is available, it can be used to produce PDF documents or images identical to the originals; otherwise, 'LibreOffice' is used and the rendering can be sometimes different from the original documents.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "Imports": [ + "magick", + "pdftools", + "locatexec", + "processx", + "tools" + ], + "Depends": [ + "R (>= 4.0.0)" + ], + "Suggests": [ + "tinytest", + "testthat", + "webshot2" + ], + "BugReports": "https://github.com/ardata-fr/doconv/issues", + "SystemRequirements": "LibreOffice, Microsoft Word", + "NeedsCompilation": "no", + "Author": "David Gohel [aut, cre], ArData [cph], David Hajage [ctb] (initial powershell code)", + "Maintainer": "David Gohel ", + "Repository": "CRAN" + }, "downlit": { "Package": "downlit", "Version": "0.4.5", @@ -5307,6 +5340,26 @@ "Maintainer": "Achim Zeileis ", "Repository": "CRAN" }, + "locatexec": { + "Package": "locatexec", + "Version": "0.1.1", + "Source": "Repository", + "Type": "Package", + "Title": "Detection and Localization of Executable Files", + "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\") )", + "Description": "A set of functions to locate some programs available on the user machine. The package provides functions to locate 'Node.js', 'npm', 'LibreOffice', 'Microsoft Word', 'Microsoft PowerPoint', 'Microsoft Excel', 'Python', 'pip', 'Mozilla Firefox' and 'Google Chrome'. User can test the availability of a program with eventually a version and call it with function system2() or system(). This allows the use of a single function to retrieve the path to a program regardless of the operating system and its configuration.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.1.1", + "Imports": [ + "utils" + ], + "BugReports": "https://github.com/ardata-fr/locatexec/issues", + "NeedsCompilation": "no", + "Author": "David Gohel [aut, cre], ArData [cph]", + "Maintainer": "David Gohel ", + "Repository": "CRAN" + }, "lubridate": { "Package": "lubridate", "Version": "1.9.4", @@ -5353,6 +5406,54 @@ "Author": "Vitalie Spinu [aut, cre], Garrett Grolemund [aut], Hadley Wickham [aut], Davis Vaughan [ctb], Ian Lyttle [ctb], Imanuel Costigan [ctb], Jason Law [ctb], Doug Mitarotonda [ctb], Joseph Larmarange [ctb], Jonathan Boiser [ctb], Chel Hee Lee [ctb]", "Repository": "CRAN" }, + "magick": { + "Package": "magick", + "Version": "2.9.0", + "Source": "Repository", + "Type": "Package", + "Title": "Advanced Graphics and Image-Processing in R", + "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", + "Description": "Bindings to 'ImageMagick': the most comprehensive open-source image processing library available. Supports many common formats (png, jpeg, tiff, pdf, etc) and manipulations (rotate, scale, crop, trim, flip, blur, etc). All operations are vectorized via the Magick++ STL meaning they operate either on a single frame or a series of frames for working with layers, collages, or animation. In RStudio images are automatically previewed when printed to the console, resulting in an interactive editing environment. Also includes a graphics device for creating drawing onto images using pixel coordinates.", + "License": "MIT + file LICENSE", + "URL": "https://docs.ropensci.org/magick/ https://ropensci.r-universe.dev/magick", + "BugReports": "https://github.com/ropensci/magick/issues", + "SystemRequirements": "ImageMagick++: ImageMagick-c++-devel (rpm) or libmagick++-dev (deb)", + "VignetteBuilder": "knitr", + "Depends": [ + "R (>= 4.1.0)" + ], + "Imports": [ + "Rcpp (>= 0.12.12)", + "magrittr", + "curl" + ], + "LinkingTo": [ + "Rcpp" + ], + "Suggests": [ + "av", + "spelling", + "jsonlite", + "methods", + "knitr", + "rmarkdown", + "rsvg", + "webp", + "pdftools", + "ggplot2", + "gapminder", + "IRdisplay", + "tesseract", + "gifski" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "Language": "en-US", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: )", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, "magrittr": { "Package": "magrittr", "Version": "2.0.4", @@ -6221,6 +6322,38 @@ "NeedsCompilation": "yes", "Repository": "CRAN" }, + "pdftools": { + "Package": "pdftools", + "Version": "3.6.0", + "Source": "Repository", + "Type": "Package", + "Title": "Text Extraction, Rendering and Converting of PDF Documents", + "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", + "Description": "Utilities based on 'libpoppler' for extracting text, fonts, attachments and metadata from a PDF file. Also supports high quality rendering of PDF documents into PNG, JPEG, TIFF format, or into raw bitmap vectors for further processing in R.", + "License": "MIT + file LICENSE", + "URL": "https://ropensci.r-universe.dev/pdftools, https://docs.ropensci.org/pdftools/", + "BugReports": "https://github.com/ropensci/pdftools/issues", + "SystemRequirements": "Poppler C++ API: libpoppler-cpp-dev (deb) or poppler-cpp-devel (rpm), and poppler-data (rpm/deb) package.", + "Encoding": "UTF-8", + "Imports": [ + "Rcpp (>= 0.12.12)", + "qpdf" + ], + "LinkingTo": [ + "Rcpp" + ], + "Suggests": [ + "png", + "webp", + "tesseract", + "testthat" + ], + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: )", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, "performance": { "Package": "performance", "Version": "0.15.3", @@ -6936,6 +7069,36 @@ "Author": "Matteo Fasiolo [aut, cre], Ben Griffiths [aut], Simon N. Wood [ctb], Margaux Zaffran [ctb], Yannig Goude [ctb], Raphael Nedellec [ctb]", "Repository": "CRAN" }, + "qpdf": { + "Package": "qpdf", + "Version": "1.4.1", + "Source": "Repository", + "Type": "Package", + "Title": "Split, Combine and Compress PDF Files", + "Authors@R": "c(person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Ben\", \"Raymond\", role = \"ctb\"), person(\"Jay Berkenbilt\", role = \"cph\", comment = \"Author of libqpdf\"))", + "Description": "Content-preserving transformations transformations of PDF files such as split, combine, and compress. This package interfaces directly to the 'qpdf' C++ library and does not require any command line utilities. Note that 'qpdf' does not read actual content from PDF files: to extract text and data you need the 'pdftools' package.", + "License": "Apache License 2.0", + "URL": "https://docs.ropensci.org/qpdf/ https://ropensci.r-universe.dev/qpdf", + "BugReports": "https://github.com/ropensci/qpdf/issues", + "Encoding": "UTF-8", + "Imports": [ + "Rcpp", + "askpass", + "curl" + ], + "LinkingTo": [ + "Rcpp" + ], + "RoxygenNote": "7.2.1", + "Suggests": [ + "testthat" + ], + "SystemRequirements": "libjpeg", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: ), Ben Raymond [ctb], Jay Berkenbilt [cph] (Author of libqpdf)", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, "qqconf": { "Package": "qqconf", "Version": "1.3.2",