Compare commits
1 Commits
config-cle
...
dynamicJsx
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c252987a3 |
@@ -6,6 +6,7 @@ extends:
|
||||
- 'eslint:recommended'
|
||||
- 'plugin:@typescript-eslint/recommended'
|
||||
- 'plugin:jest/recommended'
|
||||
- 'prettier/@typescript-eslint'
|
||||
- 'plugin:prettier/recommended'
|
||||
- 'plugin:jest-dom/recommended'
|
||||
globals:
|
||||
@@ -63,7 +64,6 @@ rules:
|
||||
- error
|
||||
- default: array-simple
|
||||
readonly: array-simple
|
||||
|
||||
"@typescript-eslint/consistent-indexed-object-style":
|
||||
- error
|
||||
- index-signature
|
||||
|
||||
55
.yarn/releases/yarn-2.4.0.cjs
vendored
Executable file
783
.yarn/releases/yarn-3.2.3.cjs
vendored
@@ -6,4 +6,4 @@ plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
|
||||
spec: "@yarnpkg/plugin-interactive-tools"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.2.3.cjs
|
||||
yarnPath: .yarn/releases/yarn-2.4.0.cjs
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Package: shiny
|
||||
Type: Package
|
||||
Title: Web Application Framework for R
|
||||
Version: 1.7.2.9000
|
||||
Version: 1.7.1.9003
|
||||
Authors@R: c(
|
||||
person("Winston", "Chang", role = c("aut", "cre"), email = "winston@rstudio.com", comment = c(ORCID = "0000-0002-1576-2126")),
|
||||
person("Joe", "Cheng", role = "aut", email = "joe@rstudio.com"),
|
||||
@@ -105,6 +105,7 @@ Suggests:
|
||||
ggplot2,
|
||||
reactlog (>= 1.0.0),
|
||||
magrittr,
|
||||
shinytest (>= 1.4.0.9003),
|
||||
yaml,
|
||||
future,
|
||||
dygraphs,
|
||||
@@ -198,14 +199,11 @@ Collate:
|
||||
'version_bs_date_picker.R'
|
||||
'version_ion_range_slider.R'
|
||||
'version_jquery.R'
|
||||
'version_jqueryui.R'
|
||||
'version_selectize.R'
|
||||
'version_strftime.R'
|
||||
'viewer.R'
|
||||
RoxygenNote: 7.2.1
|
||||
RoxygenNote: 7.1.2
|
||||
Encoding: UTF-8
|
||||
Roxygen: list(markdown = TRUE)
|
||||
RdMacros: lifecycle
|
||||
Config/testthat/edition: 3
|
||||
Config/Needs/check:
|
||||
rstudio/shinytest2
|
||||
|
||||
75
NEWS.md
@@ -1,70 +1,29 @@
|
||||
shiny 1.7.2.9000
|
||||
shiny development
|
||||
================
|
||||
|
||||
## Full changelog
|
||||
|
||||
### Breaking changes
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Internal: Added clearer and strict TypeScript type definitions (#3644)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* Closed #3687: Updated jQuery-UI to v1.13.2. (#3697)
|
||||
|
||||
|
||||
shiny 1.7.2
|
||||
===========
|
||||
|
||||
## Full changelog
|
||||
|
||||
### Breaking changes
|
||||
|
||||
* Closed #3626: `renderPlot()` (and `plotPNG()`) now uses `ragg::agg_png()` by default when the [`{ragg}` package](https://github.com/r-lib/ragg) is installed. To restore the previous behavior, set `options(shiny.useragg = FALSE)`. (#3654)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Closed #1545: `insertUI()` now executes `<script>` tags. (#3630)
|
||||
|
||||
* `fileInput()` can set the `capture` attribute to facilitates user access to a device's media capture mechanism, such as a camera, or microphone, from within a file upload control ([W3C HTML Media Capture](https://www.w3.org/TR/html-media-capture/)). (Thanks to khaled-alshamaa, #3481)
|
||||
|
||||
* Closed tidyverse/dplyr#5552: Compatibility of dplyr 1.0 (and rlang chained errors in general) with `req()`, `validate()`, and friends.
|
||||
|
||||
* Closed tidyverse/dplyr#6154: Values from an `actionButton()` had S3 classes in the incorrect order.
|
||||
|
||||
* Closed #3346: Default for `ref` input in `runGithub()` changed from `"master"` to `"HEAD"`. (#3564)
|
||||
|
||||
* Closed #3619: In R 4.2, `splitLayout()` no longer raises warnings about incorrect length in an `if` statement. (Thanks to @dmenne, #3625)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* Closed #3250:`{rlang}`/`{tidyeval}` conditions (i.e., warnings and errors) are no longer filtered from stack traces. (#3602)
|
||||
|
||||
* Closed #3581: Errors in throttled/debounced reactive expressions no longer cause the session to exit. (#3624)
|
||||
|
||||
* Closed #3657: `throttle.ts` and the `Throttler` typescript objects it provides now function as intended. (Thanks gto @dvg-p4, #3659)
|
||||
|
||||
* The auto-reload feature (`options(shiny.autoreload=TRUE)`) was not being activated by `devmode(TRUE)`, despite a console message asserting that it was. (#3620)
|
||||
|
||||
* Closed #2297: If an error occurred in parsing a value in a bookmark query string, an error would be thrown and nothing would be restored. Now a message is displayed and that value is ignored. (Thanks to @daattali, #3385)
|
||||
|
||||
* Restored the previous behavior of automatically guessing the `Content-Type` header for `downloadHandler` functions when no explicit `contentType` argument is supplied. (#3393)
|
||||
|
||||
* Previously, updating an input value without a corresponding Input binding element did not trigger a JavaScript `shiny:inputchanged` event. Now, if no Input binding element is found, the `shiny:inputchanged` event is triggered on `window.document`. (#3584)
|
||||
|
||||
* Closed #2955: Input and output bindings previously attempted to use `el['data-input-id']`, but that never worked. They now use `el.getAttribute('data-input-id')` instead. (#3538)
|
||||
|
||||
### Minor improvements
|
||||
|
||||
* When taking a test snapshot, the sort order of the json keys of the `input`, `output`, and `export` fields is currently sorted using the locale of the machine. This can lead to inconsistent test snapshot results. To opt-in to a consistent ordering of snapshot fields with `{shinytest}`, please set the global option `options(shiny.snapshotsortc = TRUE)`. `{shinytest2}` users do not need to set this value. (#3515)
|
||||
|
||||
* Closed rstudio/shinytest2#222: When restoring a context (i.e., bookmarking) from a URL, Shiny now better handles a trailing `=` after `_inputs_` and `_values_`. (#3648)
|
||||
### Minor new features and improvements
|
||||
|
||||
* Shiny's internal HTML dependencies are now mounted dynamically instead of statically. (#3537)
|
||||
|
||||
* HTML dependencies that are sent to dynamic UI now have better type checking, and no longer require a `dep.src.href` field. (#3537)
|
||||
|
||||
* Default for `ref` input in `runGithub()` changed from `"master"` to `"HEAD"`. (#3346)
|
||||
|
||||
* When taking a test snapshot, the sort order of the json keys of the `input`, `output`, and `export` fields is currently sorted using the locale of the machine. This can lead to inconsistent test snapshot results. To opt-in to a consistent ordering of snapshot fields with `{shinytest}`, please set the global option `options(shiny.snapshotsortc = TRUE)`. `{shinytest2}` users do not need to set this value. (#3515)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* Closed tidyverse/dplyr#5552: Compatibility of dplyr 1.0 (and rlang chained errors in general) with `req()`, `validate()`, and friends.
|
||||
|
||||
* Closed #2955: Input and output bindings previously attempted to use `el['data-input-id']`, but that never worked. They now use `el.getAttribute('data-input-id')` instead. (#3538)
|
||||
|
||||
* Closed tidyverse/dplyr#6154: Values from an `actionButton()` had S3 classes in the incorrect order.
|
||||
|
||||
* Fixed a bug where updating an input value without a corresponding Input binding element did not trigger a JavaScript `shiny:inputchanged` event. Now, if no Input binding element is found, the `shiny:inputchanged` event is triggered on `window.document`. (#3584)
|
||||
|
||||
shiny 1.7.1
|
||||
===========
|
||||
@@ -529,7 +488,7 @@ This is a significant release for Shiny, with a major new feature that was nearl
|
||||
|
||||
* Removed the (ridiculously outdated) "experimental feature" tag from the reference documentation for `renderUI`. (#2036)
|
||||
|
||||
* Addressed #1907: the `ignoreInit` argument was first added only to `observeEvent`. Later, we also added it to `eventReactive`, but forgot to update the documentation. Now done, thanks @flo12392! (#2036)
|
||||
* Addressed #1907: the `ignoreInit` argument was first added only to `observeEvent`. Later, we also added it to `eventReactive`, but forgot to update the documentation. Now done, thanks [@flo12392](https://github.com/flo12392)! (#2036)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
@@ -543,7 +502,7 @@ This is a significant release for Shiny, with a major new feature that was nearl
|
||||
|
||||
* Fixed #1600: URL-encoded bookmarking did not work with sliders that had dates or date-times. (#1961)
|
||||
|
||||
* Fixed #1962: [File dragging and dropping](https://www.rstudio.com/blog/shiny-1-0-4/) broke in the presence of jQuery version 3.0 as introduced by the [rhandsontable](https://jrowen.github.io/rhandsontable/) [htmlwidget](https://www.htmlwidgets.org/). (#2005)
|
||||
* Fixed #1962: [File dragging and dropping](https://blog.rstudio.com/2017/08/15/shiny-1-0-4/) broke in the presence of jQuery version 3.0 as introduced by the [rhandsontable](https://jrowen.github.io/rhandsontable/) [htmlwidget](https://www.htmlwidgets.org/). (#2005)
|
||||
|
||||
* Improved the error handling inside the `addResourcePath()` function, to give end users more informative error messages when the `directoryPath` argument cannot be normalized. This is especially useful for `runtime: shiny_prerendered` Rmd documents, like `learnr` tutorials. (#1968)
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
#' 2: app.R : Main application file
|
||||
#' 3: R/example.R : Helper file with R code
|
||||
#' 4: R/example-module.R : Example module
|
||||
#' 5: tests/testthat/ : Tests using the testthat and shinytest2 package
|
||||
#' 5: tests/shinytest/ : Tests using the shinytest package
|
||||
#' 6: tests/testthat/ : Tests using the testthat package
|
||||
#' ```
|
||||
#'
|
||||
#' If option 1 is selected, the full example application including the
|
||||
@@ -23,11 +24,13 @@
|
||||
#' | |- example-module.R
|
||||
#' | `- example.R
|
||||
#' `- tests
|
||||
#' |- shinytest.R
|
||||
#' |- shinytest
|
||||
#' | `- mytest.R
|
||||
#' |- testthat.R
|
||||
#' `- testthat
|
||||
#' |- test-examplemodule.R
|
||||
#' |- test-server.R
|
||||
#' |- test-shinytest2.R
|
||||
#' `- test-sort.R
|
||||
#' ```
|
||||
#'
|
||||
@@ -42,20 +45,20 @@
|
||||
#' * `tests/` contains various tests for the application. You may
|
||||
#' choose to use or remove any of them. They can be executed by the
|
||||
#' [runTests()] function.
|
||||
#' * `tests/shinytest.R` is a test runner for test files in the
|
||||
#' `tests/shinytest/` directory.
|
||||
#' * `tests/shinytest/mytest.R` is a test that uses the
|
||||
#' [shinytest](https://rstudio.github.io/shinytest/) package to do
|
||||
#' snapshot-based testing.
|
||||
#' * `tests/testthat.R` is a test runner for test files in the
|
||||
#' `tests/testthat/` directory using the
|
||||
#' [shinytest2](https://rstudio.github.io/shinytest2/reference/test_app.html)
|
||||
#' package.
|
||||
#' `tests/testthat/` directory using the [testthat](https://testthat.r-lib.org/) package.
|
||||
#' * `tests/testthat/test-examplemodule.R` is a test for an application's module server function.
|
||||
#' * `tests/testthat/test-server.R` is a test for the application's server code
|
||||
#' * `tests/testthat/test-shinytest2.R` is a test that uses the
|
||||
#' [shinytest2](https://rstudio.github.io/shinytest2/) package to do
|
||||
#' snapshot-based testing.
|
||||
#' * `tests/testthat/test-sort.R` is a test for a supporting function in the `R/` directory.
|
||||
#'
|
||||
#' @param path Path to create new shiny application template.
|
||||
#' @param examples Either one of "default", "ask", "all", or any combination of
|
||||
#' "app", "rdir", "module", and "tests". In an
|
||||
#' "app", "rdir", "module", "shinytest", and "testthat". In an
|
||||
#' interactive session, "default" falls back to "ask"; in a non-interactive
|
||||
#' session, "default" falls back to "all". With "ask", this function will
|
||||
#' prompt the user to select which template items will be added to the new app
|
||||
@@ -76,19 +79,15 @@ shinyAppTemplate <- function(path = NULL, examples = "default", dryrun = FALSE)
|
||||
# =======================================================
|
||||
|
||||
choices <- c(
|
||||
app = "app.R : Main application file",
|
||||
rdir = "R/example.R : Helper file with R code",
|
||||
module = "R/example-module.R : Example module",
|
||||
tests = "tests/testthat/ : Tests using {testthat} and {shinytest2}"
|
||||
app = "app.R : Main application file",
|
||||
rdir = "R/example.R : Helper file with R code",
|
||||
module = "R/example-module.R : Example module",
|
||||
shinytest = "tests/shinytest/ : Tests using the shinytest package",
|
||||
testthat = "tests/testthat/ : Tests using the testthat package"
|
||||
)
|
||||
|
||||
# Support legacy value
|
||||
examples[examples == "shinytest"] <- "tests"
|
||||
examples[examples == "testthat"] <- "tests"
|
||||
examples <- unique(examples)
|
||||
|
||||
if (identical(examples, "default")) {
|
||||
if (rlang::is_interactive()) {
|
||||
if (interactive()) {
|
||||
examples <- "ask"
|
||||
} else {
|
||||
examples <- "all"
|
||||
@@ -125,8 +124,18 @@ shinyAppTemplate <- function(path = NULL, examples = "default", dryrun = FALSE)
|
||||
return(invisible())
|
||||
}
|
||||
|
||||
if ("tests" %in% examples) {
|
||||
rlang::check_installed("shinytest2", "for {testthat} tests to work as expected")
|
||||
if ("shinytest" %in% examples) {
|
||||
if (!is_installed("shinytest", "1.4.0"))
|
||||
{
|
||||
message(
|
||||
"The tests/shinytest directory needs shinytest 1.4.0 or later to work properly."
|
||||
)
|
||||
if (is_installed("shinytest")) {
|
||||
message("You currently have shinytest ",
|
||||
get_package_version("shinytest"), " installed.")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
# =======================================================
|
||||
@@ -199,13 +208,16 @@ shinyAppTemplate <- function(path = NULL, examples = "default", dryrun = FALSE)
|
||||
}
|
||||
|
||||
# Copy the files for a tests/ subdirectory
|
||||
copy_test_dir <- function() {
|
||||
copy_test_dir <- function(name) {
|
||||
files <- dir(template_path("tests"), recursive = TRUE)
|
||||
# Note: This is not the same as using dir(pattern = "^shinytest"), since
|
||||
# that will not match files inside of shinytest/.
|
||||
files <- files[grepl(paste0("^", name), files)]
|
||||
|
||||
# Filter out files that are not module files in the R directory.
|
||||
if (! "rdir" %in% examples) {
|
||||
# find all files in the testthat folder that are not module or server files
|
||||
is_r_folder_file <- !grepl("module|server|shinytest2|testthat", basename(files))
|
||||
is_r_folder_file <- (!grepl("module|server", basename(files))) & (dirname(files) == "testthat")
|
||||
files <- files[!is_r_folder_file]
|
||||
}
|
||||
|
||||
@@ -270,10 +282,12 @@ shinyAppTemplate <- function(path = NULL, examples = "default", dryrun = FALSE)
|
||||
copy_file(file.path("R", module_files))
|
||||
}
|
||||
|
||||
# tests/testthat dir
|
||||
if ("tests" %in% examples) {
|
||||
copy_test_dir()
|
||||
# tests/ dir
|
||||
if ("shinytest" %in% examples) {
|
||||
copy_test_dir("shinytest")
|
||||
}
|
||||
if ("testthat" %in% examples) {
|
||||
copy_test_dir("testthat")
|
||||
}
|
||||
|
||||
invisible()
|
||||
}
|
||||
|
||||
@@ -321,38 +321,34 @@ RestoreContext <- R6Class("RestoreContext",
|
||||
if (substr(queryString, 1, 1) == '?')
|
||||
queryString <- substr(queryString, 2, nchar(queryString))
|
||||
|
||||
# The "=" after "_inputs_" is optional. Shiny doesn't generate URLs with
|
||||
# "=", but httr always adds "=".
|
||||
inputs_reg <- "(^|&)_inputs_=?(&|$)"
|
||||
values_reg <- "(^|&)_values_=?(&|$)"
|
||||
|
||||
# Error if multiple '_inputs_' or '_values_'. This is needed because
|
||||
# strsplit won't add an entry if the search pattern is at the end of a
|
||||
# string.
|
||||
if (length(gregexpr(inputs_reg, queryString)[[1]]) > 1)
|
||||
if (length(gregexpr("(^|&)_inputs_(&|$)", queryString)[[1]]) > 1)
|
||||
stop("Invalid state string: more than one '_inputs_' found")
|
||||
if (length(gregexpr(values_reg, queryString)[[1]]) > 1)
|
||||
if (length(gregexpr("(^|&)_values_(&|$)", queryString)[[1]]) > 1)
|
||||
stop("Invalid state string: more than one '_values_' found")
|
||||
|
||||
# Look for _inputs_ and store following content in inputStr
|
||||
splitStr <- strsplit(queryString, inputs_reg)[[1]]
|
||||
splitStr <- strsplit(queryString, "(^|&)_inputs_(&|$)")[[1]]
|
||||
if (length(splitStr) == 2) {
|
||||
inputStr <- splitStr[2]
|
||||
# Remove any _values_ (and content after _values_) that may come after
|
||||
# _inputs_
|
||||
inputStr <- strsplit(inputStr, values_reg)[[1]][1]
|
||||
inputStr <- strsplit(inputStr, "(^|&)_values_(&|$)")[[1]][1]
|
||||
|
||||
} else {
|
||||
inputStr <- ""
|
||||
}
|
||||
|
||||
# Look for _values_ and store following content in valueStr
|
||||
splitStr <- strsplit(queryString, values_reg)[[1]]
|
||||
splitStr <- strsplit(queryString, "(^|&)_values_(&|$)")[[1]]
|
||||
if (length(splitStr) == 2) {
|
||||
valueStr <- splitStr[2]
|
||||
# Remove any _inputs_ (and content after _inputs_) that may come after
|
||||
# _values_
|
||||
valueStr <- strsplit(valueStr, inputs_reg)[[1]][1]
|
||||
valueStr <- strsplit(valueStr, "(^|&)_inputs_(&|$)")[[1]][1]
|
||||
|
||||
} else {
|
||||
valueStr <- ""
|
||||
@@ -363,20 +359,16 @@ RestoreContext <- R6Class("RestoreContext",
|
||||
values <- parseQueryString(valueStr, nested = TRUE)
|
||||
|
||||
valuesFromJSON <- function(vals) {
|
||||
varsUnparsed <- c()
|
||||
valsParsed <- mapply(names(vals), vals, SIMPLIFY = FALSE,
|
||||
mapply(names(vals), vals, SIMPLIFY = FALSE,
|
||||
FUN = function(name, value) {
|
||||
tryCatch(
|
||||
safeFromJSON(value),
|
||||
error = function(e) {
|
||||
varsUnparsed <<- c(varsUnparsed, name)
|
||||
warning("Failed to parse URL parameter \"", name, "\"")
|
||||
stop("Failed to parse URL parameter \"", name, "\"")
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
valsParsed[varsUnparsed] <- NULL
|
||||
valsParsed
|
||||
}
|
||||
|
||||
inputs <- valuesFromJSON(inputs)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#' @param sidebarPanel The [sidebarPanel] containing input controls
|
||||
#' @param mainPanel The [mainPanel] containing outputs
|
||||
#' @keywords internal
|
||||
#' @return A UI definition that can be passed to the [shinyUI] function
|
||||
#' @return A UI defintion that can be passed to the [shinyUI] function
|
||||
#' @export
|
||||
pageWithSidebar <- function(headerPanel,
|
||||
sidebarPanel,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#' Can also be set as a side effect of the [titlePanel()] function.
|
||||
#' @inheritParams bootstrapPage
|
||||
#'
|
||||
#' @return A UI definition that can be passed to the [shinyUI] function.
|
||||
#' @return A UI defintion that can be passed to the [shinyUI] function.
|
||||
#'
|
||||
#' @details To create a fluid page use the `fluidPage` function and include
|
||||
#' instances of `fluidRow` and [column()] within it. As an
|
||||
@@ -111,7 +111,7 @@ fluidRow <- function(...) {
|
||||
#' @param title The browser window title (defaults to the host URL of the page)
|
||||
#' @inheritParams bootstrapPage
|
||||
#'
|
||||
#' @return A UI definition that can be passed to the [shinyUI] function.
|
||||
#' @return A UI defintion that can be passed to the [shinyUI] function.
|
||||
#'
|
||||
#' @details To create a fixed page use the `fixedPage` function and include
|
||||
#' instances of `fixedRow` and [column()] within it. Note that
|
||||
@@ -516,7 +516,7 @@ splitLayout <- function(..., cellWidths = NULL, cellArgs = list()) {
|
||||
children <- children[childIdx]
|
||||
count <- length(children)
|
||||
|
||||
if (length(cellWidths) == 0 || isTRUE(is.na(cellWidths))) {
|
||||
if (length(cellWidths) == 0 || is.na(cellWidths)) {
|
||||
cellWidths <- sprintf("%.3f%%", 100 / count)
|
||||
}
|
||||
cellWidths <- rep(cellWidths, length.out = count)
|
||||
|
||||
@@ -24,7 +24,7 @@ NULL
|
||||
#' This will be used as the lang in the \code{<html>} tag, as in \code{<html lang="en">}.
|
||||
#' The default (NULL) results in an empty string.
|
||||
#'
|
||||
#' @return A UI definition that can be passed to the [shinyUI] function.
|
||||
#' @return A UI defintion that can be passed to the [shinyUI] function.
|
||||
#'
|
||||
#' @note The `basicPage` function is deprecated, you should use the
|
||||
#' [fluidPage()] function instead.
|
||||
@@ -385,7 +385,7 @@ collapseSizes <- function(padding) {
|
||||
#' @inheritParams bootstrapPage
|
||||
#' @param icon Optional icon to appear on a `navbarMenu` tab.
|
||||
#'
|
||||
#' @return A UI definition that can be passed to the [shinyUI] function.
|
||||
#' @return A UI defintion that can be passed to the [shinyUI] function.
|
||||
#'
|
||||
#' @details The `navbarMenu` function can be used to create an embedded
|
||||
#' menu within the navbar that in turns includes additional tabPanels (see
|
||||
|
||||
@@ -421,17 +421,8 @@ pruneStackTrace <- function(parents) {
|
||||
# Loop over the parent indices. Anything that is not parented by current_node
|
||||
# (a.k.a. last-known-good node), or is a dupe, can be discarded. Anything that
|
||||
# is kept becomes the new current_node.
|
||||
#
|
||||
# jcheng 2022-03-18: Two more reasons a node can be kept:
|
||||
# 1. parent is 0
|
||||
# 2. parent is i
|
||||
# Not sure why either of these situations happen, but they're common when
|
||||
# interacting with rlang/dplyr errors. See issue rstudio/shiny#3250 for repro
|
||||
# cases.
|
||||
include <- vapply(seq_along(parents), function(i) {
|
||||
if ((!is_dupe[[i]] && parents[[i]] == current_node) ||
|
||||
parents[[i]] == 0 ||
|
||||
parents[[i]] == i) {
|
||||
if (!is_dupe[[i]] && parents[[i]] == current_node) {
|
||||
current_node <<- i
|
||||
TRUE
|
||||
} else {
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
startPNG <- function(filename, width, height, res, ...) {
|
||||
pngfun <- if ((getOption('shiny.useragg') %||% TRUE) && is_installed("ragg")) {
|
||||
ragg::agg_png
|
||||
# shiny.useragg is an experimental option that isn't officially supported or
|
||||
# documented. It's here in the off chance that someone really wants
|
||||
# to use ragg (say, instead of showtext, for custom font rendering).
|
||||
# In the next shiny release, this option will likely be superseded in
|
||||
# favor of a fully customizable graphics device option
|
||||
if ((getOption('shiny.useragg') %||% FALSE) && is_installed("ragg")) {
|
||||
pngfun <- ragg::agg_png
|
||||
} else if (capabilities("aqua")) {
|
||||
# i.e., png(type = 'quartz')
|
||||
grDevices::png
|
||||
pngfun <- grDevices::png
|
||||
} else if ((getOption('shiny.usecairo') %||% TRUE) && is_installed("Cairo")) {
|
||||
Cairo::CairoPNG
|
||||
pngfun <- Cairo::CairoPNG
|
||||
} else {
|
||||
# i.e., png(type = 'cairo')
|
||||
grDevices::png
|
||||
pngfun <- grDevices::png
|
||||
}
|
||||
|
||||
args <- rlang::list2(filename=filename, width=width, height=height, res=res, ...)
|
||||
@@ -52,31 +57,33 @@ startPNG <- function(filename, width, height, res, ...) {
|
||||
grDevices::dev.cur()
|
||||
}
|
||||
|
||||
#' Capture a plot as a PNG file.
|
||||
#' Run a plotting function and save the output as a PNG
|
||||
#'
|
||||
#' The PNG graphics device used is determined in the following order:
|
||||
#' * If the ragg package is installed (and the `shiny.useragg` is not
|
||||
#' set to `FALSE`), then use [ragg::agg_png()].
|
||||
#' * If a quartz device is available (i.e., `capabilities("aqua")` is
|
||||
#' `TRUE`), then use `png(type = "quartz")`.
|
||||
#' * If the Cairo package is installed (and the `shiny.usecairo` option
|
||||
#' is not set to `FALSE`), then use [Cairo::CairoPNG()].
|
||||
#' * Otherwise, use [grDevices::png()]. In this case, Linux and Windows
|
||||
#' may not antialias some point shapes, resulting in poor quality output.
|
||||
#' This function returns the name of the PNG file that it generates. In
|
||||
#' essence, it calls `png()`, then `func()`, then `dev.off()`.
|
||||
#' So `func` must be a function that will generate a plot when used this
|
||||
#' way.
|
||||
#'
|
||||
#' For output, it will try to use the following devices, in this order:
|
||||
#' quartz (via [grDevices::png()]), then [Cairo::CairoPNG()],
|
||||
#' and finally [grDevices::png()]. This is in order of quality of
|
||||
#' output. Notably, plain `png` output on Linux and Windows may not
|
||||
#' antialias some point shapes, resulting in poor quality output.
|
||||
#'
|
||||
#' In some cases, `Cairo()` provides output that looks worse than
|
||||
#' `png()`. To disable Cairo output for an app, use
|
||||
#' `options(shiny.usecairo=FALSE)`.
|
||||
#'
|
||||
#' @param func A function that generates a plot.
|
||||
#' @param filename The name of the output file. Defaults to a temp file with
|
||||
#' extension `.png`.
|
||||
#' @param width Width in pixels.
|
||||
#' @param height Height in pixels.
|
||||
#' @param res Resolution in pixels per inch. This value is passed to the
|
||||
#' graphics device. Note that this affects the resolution of PNG rendering in
|
||||
#' @param res Resolution in pixels per inch. This value is passed to
|
||||
#' [grDevices::png()]. Note that this affects the resolution of PNG rendering in
|
||||
#' R; it won't change the actual ppi of the browser.
|
||||
#' @param ... Arguments to be passed through to the graphics device. These can
|
||||
#' be used to set the width, height, background color, etc.
|
||||
#'
|
||||
#' @return A path to the newly generated PNG file.
|
||||
#'
|
||||
#' @param ... Arguments to be passed through to [grDevices::png()].
|
||||
#' These can be used to set the width, height, background color, etc.
|
||||
#' @export
|
||||
plotPNG <- function(func, filename=tempfile(fileext='.png'),
|
||||
width=400, height=400, res=72, ...) {
|
||||
|
||||
@@ -23,18 +23,7 @@
|
||||
#' @param buttonLabel The label used on the button. Can be text or an HTML tag
|
||||
#' object.
|
||||
#' @param placeholder The text to show before a file has been uploaded.
|
||||
#' @param capture What source to use for capturing image, audio or video data.
|
||||
#' This attribute facilitates user access to a device's media capture
|
||||
#' mechanism, such as a camera, or microphone, from within a file upload
|
||||
#' control.
|
||||
#'
|
||||
#' A value of `user` indicates that the user-facing camera and/or microphone
|
||||
#' should be used. A value of `environment` specifies that the outward-facing
|
||||
#' camera and/or microphone should be used.
|
||||
#'
|
||||
#' By default on most phones, this will accept still photos or video. For
|
||||
#' still photos only, also use `accept="image/*"`. For video only, use
|
||||
#' `accept="video/*"`.
|
||||
#' @examples
|
||||
#' ## Only run examples in interactive R sessions
|
||||
#' if (interactive()) {
|
||||
@@ -84,8 +73,7 @@
|
||||
#'
|
||||
#' @export
|
||||
fileInput <- function(inputId, label, multiple = FALSE, accept = NULL,
|
||||
width = NULL, buttonLabel = "Browse...", placeholder = "No file selected",
|
||||
capture = NULL) {
|
||||
width = NULL, buttonLabel = "Browse...", placeholder = "No file selected") {
|
||||
|
||||
restoredValue <- restoreInput(id = inputId, default = NULL)
|
||||
|
||||
@@ -113,9 +101,6 @@ fileInput <- function(inputId, label, multiple = FALSE, accept = NULL,
|
||||
if (length(accept) > 0)
|
||||
inputTag$attribs$accept <- paste(accept, collapse=',')
|
||||
|
||||
if (!is.null(capture)) {
|
||||
inputTag$attribs$capture <- capture
|
||||
}
|
||||
|
||||
div(class = "form-group shiny-input-container",
|
||||
style = css(width = validateCssUnit(width)),
|
||||
|
||||
10
R/jqueryui.R
@@ -103,10 +103,10 @@ fixedPanel <- function(...,
|
||||
|
||||
jqueryuiDependency <- function() {
|
||||
htmlDependency(
|
||||
"jqueryui",
|
||||
version_jqueryui,
|
||||
src = "www/shared/jqueryui",
|
||||
package = "shiny",
|
||||
script = "jquery-ui.min.js"
|
||||
'jqueryui',
|
||||
'1.12.1',
|
||||
src = 'www/shared/jqueryui',
|
||||
package = 'shiny',
|
||||
script = 'jquery-ui.min.js'
|
||||
)
|
||||
}
|
||||
|
||||
@@ -2472,11 +2472,11 @@ debounce <- function(r, millis, priority = 100, domain = getDefaultReactiveDomai
|
||||
|
||||
# Ensure r() is called only after setting firstRun to FALSE since r()
|
||||
# may throw an error
|
||||
try(r(), silent = TRUE)
|
||||
r()
|
||||
return()
|
||||
}
|
||||
# This ensures r() is still tracked after firstRun
|
||||
try(r(), silent = TRUE)
|
||||
r()
|
||||
|
||||
# The value (or possibly millis) changed. Start or reset the timer.
|
||||
v$when <- getDomainTimeMs(domain) + millis()
|
||||
@@ -2509,7 +2509,7 @@ debounce <- function(r, millis, priority = 100, domain = getDefaultReactiveDomai
|
||||
# commenting it out and studying the unit test failure that results.
|
||||
primer <- observe({
|
||||
primer$destroy()
|
||||
try(er(), silent = TRUE)
|
||||
er()
|
||||
}, label = "debounce primer", domain = domain, priority = priority)
|
||||
|
||||
er
|
||||
@@ -2551,7 +2551,7 @@ throttle <- function(r, millis, priority = 100, domain = getDefaultReactiveDomai
|
||||
}
|
||||
|
||||
# Responsible for tracking when f() changes.
|
||||
observeEvent(try(r(), silent = TRUE), {
|
||||
observeEvent(r(), {
|
||||
if (v$pending) {
|
||||
# In a blackout period and someone already scheduled; do nothing
|
||||
} else if (blackoutMillisLeft() > 0) {
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#' When rendering an inline plot, you must provide numeric values (in pixels)
|
||||
#' to both \code{width} and \code{height}.
|
||||
#' @param res Resolution of resulting plot, in pixels per inch. This value is
|
||||
#' passed to [plotPNG()]. Note that this affects the resolution of PNG
|
||||
#' passed to [grDevices::png()]. Note that this affects the resolution of PNG
|
||||
#' rendering in R; it won't change the actual ppi of the browser.
|
||||
#' @param alt Alternate text for the HTML `<img>` tag if it cannot be displayed
|
||||
#' or viewed (i.e., the user uses a screen reader). In addition to a character
|
||||
@@ -44,7 +44,7 @@
|
||||
#' ggplot objects; for other plots, `NA` results in alt text of "Plot object".
|
||||
#' `NULL` or `""` is not recommended because those should be limited to
|
||||
#' decorative images.
|
||||
#' @param ... Arguments to be passed through to [plotPNG()].
|
||||
#' @param ... Arguments to be passed through to [grDevices::png()].
|
||||
#' These can be used to set the width, height, background color, etc.
|
||||
#' @inheritParams renderUI
|
||||
#' @param execOnResize If `FALSE` (the default), then when a plot is
|
||||
|
||||
@@ -49,7 +49,7 @@ registerClient <- function(client) {
|
||||
#' optional `session` parameter, which is used when greater control is
|
||||
#' needed.
|
||||
#'
|
||||
#' See the [tutorial](https://shiny.rstudio.com/tutorial/) for more
|
||||
#' See the [tutorial](https://rstudio.github.io/shiny/tutorial/) for more
|
||||
#' on how to write a server function.
|
||||
#'
|
||||
#' @param func The server function for this application. See the details section
|
||||
@@ -331,7 +331,7 @@ argsForServerFunc <- function(serverFunc, session) {
|
||||
getEffectiveBody <- function(func) {
|
||||
if (is.null(func))
|
||||
NULL
|
||||
else if (isS4(func) && inherits(func, "functionWithTrace"))
|
||||
else if (isS4(func) && class(func) == "functionWithTrace")
|
||||
body(func@original)
|
||||
else
|
||||
body(func)
|
||||
|
||||
@@ -94,10 +94,6 @@ getShinyOption <- function(name, default = NULL) {
|
||||
#' numbers to JSON format to send to the client web browser.}
|
||||
#' \item{shiny.launch.browser (defaults to `interactive()`)}{A boolean which controls the default behavior
|
||||
#' when an app is run. See [runApp()] for more information.}
|
||||
#' \item{shiny.mathjax.url (defaults to `"https://mathjax.rstudio.com/latest/MathJax.js"`)}{
|
||||
#' The URL that should be used to load MathJax, via [withMathJax()].}
|
||||
#' \item{shiny.mathjax.config (defaults to `"config=TeX-AMS-MML_HTMLorMML"`)}{The querystring
|
||||
#' used to load MathJax, via [withMathJax()].}
|
||||
#' \item{shiny.maxRequestSize (defaults to 5MB)}{This is a number which specifies the maximum
|
||||
#' web request size, which serves as a size limit for file uploads.}
|
||||
#' \item{shiny.minified (defaults to `TRUE`)}{By default
|
||||
@@ -140,10 +136,9 @@ getShinyOption <- function(name, default = NULL) {
|
||||
#' messages).}
|
||||
#' \item{shiny.autoload.r (defaults to `TRUE`)}{If `TRUE`, then the R/
|
||||
#' of a shiny app will automatically be sourced.}
|
||||
#' \item{shiny.useragg (defaults to `TRUE`)}{Set to `FALSE` to prevent PNG rendering via the
|
||||
#' ragg package. See [plotPNG()] for more information.}
|
||||
#' \item{shiny.usecairo (defaults to `TRUE`)}{Set to `FALSE` to prevent PNG rendering via the
|
||||
#' Cairo package. See [plotPNG()] for more information.}
|
||||
#' \item{shiny.usecairo (defaults to `TRUE`)}{This is used to disable graphical rendering by the
|
||||
#' Cairo package, if it is installed. See [plotPNG()] for more
|
||||
#' information.}
|
||||
#' \item{shiny.devmode (defaults to `NULL`)}{Option to enable Shiny Developer Mode. When set,
|
||||
#' different default `getOption(key)` values will be returned. See [devmode()] for more details.}
|
||||
### Not documenting as 'shiny.devmode.verbose' is for niche use only
|
||||
|
||||
@@ -185,11 +185,9 @@ workerId <- local({
|
||||
#' session is actually connected.
|
||||
#' }
|
||||
#' \item{request}{
|
||||
#' An environment that implements the [Rook
|
||||
#' specification](https://github.com/jeffreyhorner/Rook#the-environment) for
|
||||
#' HTTP requests. This is the request that was used to initiate the websocket
|
||||
#' connection (as opposed to the request that downloaded the web page for the
|
||||
#' app).
|
||||
#' An environment that implements the Rook specification for HTTP requests.
|
||||
#' This is the request that was used to initiate the websocket connection
|
||||
#' (as opposed to the request that downloaded the web page for the app).
|
||||
#' }
|
||||
#' \item{userData}{
|
||||
#' An environment for app authors and module/package authors to store whatever
|
||||
|
||||
@@ -286,7 +286,7 @@ shinyAppDir_serverR <- function(appDir, options=list()) {
|
||||
#
|
||||
# The return value is a function that halts monitoring when called.
|
||||
initAutoReloadMonitor <- function(dir) {
|
||||
if (!get_devmode_option("shiny.autoreload", FALSE)) {
|
||||
if (!getOption("shiny.autoreload", FALSE)) {
|
||||
return(function(){})
|
||||
}
|
||||
|
||||
@@ -339,7 +339,7 @@ initAutoReloadMonitor <- function(dir) {
|
||||
#' @param appDir The application directory. If `appDir` is `NULL` or
|
||||
#' not supplied, the nearest enclosing directory that is a Shiny app, starting
|
||||
#' with the current directory, is used.
|
||||
#' @param renv The environment in which the files in the `R/` directory should
|
||||
#' @param renv The environmeny in which the files in the `R/` directory should
|
||||
#' be evaluated.
|
||||
#' @param globalrenv The environment in which `global.R` should be evaluated. If
|
||||
#' `NULL`, `global.R` will not be evaluated at all.
|
||||
|
||||
@@ -14,11 +14,7 @@ NULL
|
||||
#' # now we can just write "static" content without withMathJax()
|
||||
#' div("more math here $$\\sqrt{2}$$")
|
||||
withMathJax <- function(...) {
|
||||
path <- paste0(
|
||||
getOption("shiny.mathjax.url", "https://mathjax.rstudio.com/latest/MathJax.js"),
|
||||
"?",
|
||||
getOption("shiny.mathjax.config", "config=TeX-AMS-MML_HTMLorMML")
|
||||
)
|
||||
path <- 'https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
|
||||
tagList(
|
||||
tags$head(
|
||||
singleton(tags$script(src = path, type = 'text/javascript'))
|
||||
|
||||
@@ -778,9 +778,9 @@ renderUI <- function(expr, env = parent.frame(), quoted = FALSE,
|
||||
#' function.)
|
||||
#' @param contentType A string of the download's
|
||||
#' [content type](https://en.wikipedia.org/wiki/Internet_media_type), for
|
||||
#' example `"text/csv"` or `"image/png"`. If `NULL`, the content type
|
||||
#' will be guessed based on the filename extension, or
|
||||
#' `application/octet-stream` if the extension is unknown.
|
||||
#' example `"text/csv"` or `"image/png"`. If `NULL` or
|
||||
#' `NA`, the content type will be guessed based on the filename
|
||||
#' extension, or `application/octet-stream` if the extension is unknown.
|
||||
#' @param outputArgs A list of arguments to be passed through to the implicit
|
||||
#' call to [downloadButton()] when `downloadHandler` is used
|
||||
#' in an interactive R Markdown document.
|
||||
@@ -810,7 +810,7 @@ renderUI <- function(expr, env = parent.frame(), quoted = FALSE,
|
||||
#' shinyApp(ui, server)
|
||||
#' }
|
||||
#' @export
|
||||
downloadHandler <- function(filename, content, contentType=NULL, outputArgs=list()) {
|
||||
downloadHandler <- function(filename, content, contentType=NA, outputArgs=list()) {
|
||||
renderFunc <- function(shinysession, name, ...) {
|
||||
shinysession$registerDownload(name, filename, contentType, content)
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
# Generated by tools/updatejQueryUI.R; do not edit by hand
|
||||
version_jqueryui <- "1.13.2"
|
||||
@@ -16,7 +16,7 @@ Easily build rich and productive interactive web apps in R — no HTML/CSS/J
|
||||
* A prebuilt set of highly sophisticated, customizable, and easy-to-use widgets (e.g., plots, tables, sliders, dropdowns, date pickers, and more).
|
||||
* An attractive default look based on [Bootstrap](https://getbootstrap.com/) which can also be easily customized with the [bslib](https://github.com/rstudio/bslib) package or avoided entirely with more direct R bindings to HTML/CSS/JavaScript.
|
||||
* Seamless integration with [R Markdown](https://shiny.rstudio.com/articles/interactive-docs.html), making it easy to embed numerous applications natively within a larger dynamic document.
|
||||
* Tools for improving and monitoring performance, including native support for [async programming](https://www.rstudio.com/blog/shiny-1-1-0/), [caching](https://talks.cpsievert.me/20201117), [load testing](https://rstudio.github.io/shinyloadtest/), and more.
|
||||
* Tools for improving and monitoring performance, including native support for [async programming](https://blog.rstudio.com/2018/06/26/shiny-1-1-0/), [caching](https://talks.cpsievert.me/20201117), [load testing](https://rstudio.github.io/shinyloadtest/), and [more](https://support.rstudio.com/hc/en-us/articles/231874748-Scaling-and-Performance-Tuning-in-RStudio-Connect).
|
||||
* [Modules](https://shiny.rstudio.com/articles/modules.html): a framework for reducing code duplication and complexity.
|
||||
* An ability to [bookmark application state](https://shiny.rstudio.com/articles/bookmarking-state.html) and/or [generate code to reproduce output(s)](https://github.com/rstudio/shinymeta).
|
||||
* A rich ecosystem of extension packages for more [custom widgets](http://www.htmlwidgets.org/), [input validation](https://github.com/rstudio/shinyvalidate), [unit testing](https://github.com/rstudio/shinytest), and more.
|
||||
|
||||
2
inst/app_template/tests/shinytest.R
Normal file
@@ -0,0 +1,2 @@
|
||||
library(shinytest)
|
||||
expect_pass(testApp("../", suffix = osName()))
|
||||
12
inst/app_template/tests/shinytest/mytest.R
Normal file
@@ -0,0 +1,12 @@
|
||||
app <- ShinyDriver$new("../../")
|
||||
app$snapshotInit("mytest")
|
||||
|
||||
app$snapshot()
|
||||
{{
|
||||
if (isTRUE(module)) {
|
||||
'
|
||||
app$setInputs(`examplemodule1-button` = "click")
|
||||
app$setInputs(`examplemodule1-button` = "click")
|
||||
app$snapshot()'
|
||||
}
|
||||
}}
|
||||
@@ -1 +1,9 @@
|
||||
shinytest2::test_app()
|
||||
library(testthat)
|
||||
|
||||
test_dir(
|
||||
"./testthat",
|
||||
# Run in the app's environment containing all support methods.
|
||||
env = shiny::loadSupport(),
|
||||
# Display the regular progress output and throw an error if any test error is found
|
||||
reporter = c("progress", "fail")
|
||||
)
|
||||
|
||||
@@ -14,4 +14,5 @@ if (isTRUE(rdir)) {
|
||||
expect_equal(output$sequence, "1 2 3 4 5 6 7 8 9 10 11 12")
|
||||
'
|
||||
}
|
||||
}}})
|
||||
}}
|
||||
})
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
library(shinytest2)
|
||||
|
||||
test_that("Initial snapshot values are consistent", {
|
||||
app <- AppDriver$new(name = "init")
|
||||
app$expect_values()
|
||||
}){{
|
||||
if (isTRUE(module)) {
|
||||
HTML('
|
||||
|
||||
|
||||
test_that("Module values are consistent", {
|
||||
app <- AppDriver$new(name = "mod")
|
||||
app$click("examplemodule1-button")
|
||||
app$click("examplemodule1-button")
|
||||
app$expect_values()
|
||||
})')
|
||||
}
|
||||
}}
|
||||
1
inst/www/shared/jquery.min.js
vendored
1
inst/www/shared/jquery.min.map
Normal file
@@ -312,7 +312,7 @@ Mani Mishra <manimishra902@gmail.com>
|
||||
Hannah Methvin <hannahmethvin@gmail.com>
|
||||
Leonardo Balter <leonardo.balter@gmail.com>
|
||||
Benjamin Albert <benjamin_a5@yahoo.com>
|
||||
Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
|
||||
Michał Gołębiowski <m.goleb@gmail.com>
|
||||
Alyosha Pushak <alyosha.pushak@gmail.com>
|
||||
Fahad Ahmad <fahadahmad41@hotmail.com>
|
||||
Matt Brundage <github@mattbrundage.com>
|
||||
@@ -331,42 +331,3 @@ Peter Dave Hello <hsu@peterdavehello.org>
|
||||
Johannes Schäfer <johnschaefer@gmx.de>
|
||||
Ville Skyttä <ville.skytta@iki.fi>
|
||||
Ryan Oriecuia <ryan.oriecuia@visioncritical.com>
|
||||
Sergei Ratnikov <sergeir82@gmail.com>
|
||||
milk54 <milk851@gmail.com>
|
||||
Evelyn Masso <evoutofambit@gmail.com>
|
||||
Robin <mail@robin-fowler.com>
|
||||
Simon Asika <asika32764@gmail.com>
|
||||
Kevin Cupp <kevin.cupp@gmail.com>
|
||||
Jeremy Mickelson <Jeremy.Mickelson@gmail.com>
|
||||
Kyle Rosenberg <kyle.rosenberg@gmail.com>
|
||||
Petri Partio <petri.partio@gmail.com>
|
||||
pallxk <github@pallxk.com>
|
||||
Luke Brookhart <luke@onjax.com>
|
||||
claudi <hirt-claudia@gmx.de>
|
||||
Eirik Sletteberg <eiriksletteberg@gmail.com>
|
||||
Albert Johansson <albert@intervaro.se>
|
||||
A. Wells <borgboyone@users.noreply.github.com>
|
||||
Robert Brignull <robertbrignull@gmail.com>
|
||||
Horus68 <pauloizidoro@gmail.com>
|
||||
Maksymenkov Eugene <foatei@gmail.com>
|
||||
OskarNS <soerensen.oskar@gmail.com>
|
||||
Gez Quinn <holla@gezquinn.design>
|
||||
jigar gala <jigar.gala140291@gmail.com>
|
||||
Florian Wegscheider <flo.wegscheider@gmail.com>
|
||||
Fatér Zsolt <fater.zsolt@gmail.com>
|
||||
Szabolcs Szabolcsi-Toth <nec@shell8.net>
|
||||
Jérémy Munsch <github@jeremydev.ovh>
|
||||
Hrvoje Novosel <hrvoje.novosel@gmail.com>
|
||||
Paul Capron <PaulCapron@users.noreply.github.com>
|
||||
Micah Miller <mikhey@runbox.com>
|
||||
sakshi87 <53863764+sakshi87@users.noreply.github.com>
|
||||
Mikolaj Wolicki <wolicki.mikolaj@gmail.com>
|
||||
Patrick McKay <patrick.mckay@vumc.org>
|
||||
c-lambert <58025159+c-lambert@users.noreply.github.com>
|
||||
Josep Sanz <josepsanzcamp@gmail.com>
|
||||
Ben Mullins <benm@umich.edu>
|
||||
Christian Oliff <christianoliff@pm.me>
|
||||
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
Adam Lidén Hällgren <adamlh92@gmail.com>
|
||||
James Hinderks <hinderks@gmail.com>
|
||||
Denny Septian Panggabean <97607754+ddevsr@users.noreply.github.com>
|
||||
|
||||
5
inst/www/shared/jqueryui/README
Normal file
@@ -0,0 +1,5 @@
|
||||
This a full jQuery UI build, downloaded from:
|
||||
https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip
|
||||
|
||||
The copy of jQuery that is bundled with the download, under external/, is not
|
||||
included because Shiny already has its own copy of jQuery.
|
||||
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.2 KiB |
@@ -58,6 +58,7 @@
|
||||
|
||||
<h1>YOUR COMPONENTS:</h1>
|
||||
|
||||
|
||||
<!-- Accordion -->
|
||||
<h2 class="demoHeaders">Accordion</h2>
|
||||
<div id="accordion">
|
||||
@@ -69,17 +70,23 @@
|
||||
<div>Nam dui erat, auctor a, dignissim quis.</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Autocomplete -->
|
||||
<h2 class="demoHeaders">Autocomplete</h2>
|
||||
<div>
|
||||
<input id="autocomplete" title="type "a"">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Button -->
|
||||
<h2 class="demoHeaders">Button</h2>
|
||||
<button id="button">A button element</button>
|
||||
<button id="button-icon">An icon-only button</button>
|
||||
|
||||
|
||||
|
||||
<!-- Checkboxradio -->
|
||||
<h2 class="demoHeaders">Checkboxradio</h2>
|
||||
<form style="margin-top: 1em;">
|
||||
@@ -90,6 +97,8 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<!-- Controlgroup -->
|
||||
<h2 class="demoHeaders">Controlgroup</h2>
|
||||
<fieldset>
|
||||
@@ -116,6 +125,8 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
<!-- Tabs -->
|
||||
<h2 class="demoHeaders">Tabs</h2>
|
||||
<div id="tabs">
|
||||
@@ -129,6 +140,8 @@
|
||||
<div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h2 class="demoHeaders">Dialog</h2>
|
||||
<p>
|
||||
<button id="dialog-link" class="ui-button ui-corner-all ui-widget">
|
||||
@@ -154,6 +167,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h2 class="demoHeaders">Framework Icons (content color preview)</h2>
|
||||
<ul id="icons" class="ui-widget ui-helper-clearfix">
|
||||
<li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-n"><span class="ui-icon ui-icon-caret-1-n"></span></li>
|
||||
@@ -331,18 +345,25 @@
|
||||
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<!-- Slider -->
|
||||
<h2 class="demoHeaders">Slider</h2>
|
||||
<div id="slider"></div>
|
||||
|
||||
|
||||
|
||||
<!-- Datepicker -->
|
||||
<h2 class="demoHeaders">Datepicker</h2>
|
||||
<div id="datepicker"></div>
|
||||
|
||||
|
||||
|
||||
<!-- Progressbar -->
|
||||
<h2 class="demoHeaders">Progressbar</h2>
|
||||
<div id="progressbar"></div>
|
||||
|
||||
|
||||
|
||||
<!-- Progressbar -->
|
||||
<h2 class="demoHeaders">Selectmenu</h2>
|
||||
<select id="selectmenu">
|
||||
@@ -353,10 +374,14 @@
|
||||
<option>Faster</option>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- Spinner -->
|
||||
<h2 class="demoHeaders">Spinner</h2>
|
||||
<input id="spinner">
|
||||
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
<h2 class="demoHeaders">Menu</h2>
|
||||
<ul style="width:100px;" id="menu">
|
||||
@@ -375,6 +400,8 @@
|
||||
<li><div>Item 5</div></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<!-- Tooltip -->
|
||||
<h2 class="demoHeaders">Tooltip</h2>
|
||||
<p id="tooltip">
|
||||
@@ -382,6 +409,7 @@
|
||||
the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.
|
||||
</p>
|
||||
|
||||
|
||||
<!-- Highlight / Error -->
|
||||
<h2 class="demoHeaders">Highlight / Error</h2>
|
||||
<div class="ui-widget">
|
||||
@@ -401,8 +429,11 @@ the element with your mouse, the title attribute is displayed in a little box ne
|
||||
<script src="external/jquery/jquery.js"></script>
|
||||
<script src="jquery-ui.js"></script>
|
||||
<script>
|
||||
|
||||
$( "#accordion" ).accordion();
|
||||
|
||||
|
||||
|
||||
var availableTags = [
|
||||
"ActionScript",
|
||||
"AppleScript",
|
||||
@@ -431,18 +462,28 @@ $( "#autocomplete" ).autocomplete({
|
||||
source: availableTags
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#button" ).button();
|
||||
$( "#button-icon" ).button({
|
||||
icon: "ui-icon-gear",
|
||||
showLabel: false
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#radioset" ).buttonset();
|
||||
|
||||
|
||||
|
||||
$( "#controlgroup" ).controlgroup();
|
||||
|
||||
|
||||
|
||||
$( "#tabs" ).tabs();
|
||||
|
||||
|
||||
|
||||
$( "#dialog" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 400,
|
||||
@@ -468,27 +509,42 @@ $( "#dialog-link" ).click(function( event ) {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#datepicker" ).datepicker({
|
||||
inline: true
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#slider" ).slider({
|
||||
range: true,
|
||||
values: [ 17, 67 ]
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#progressbar" ).progressbar({
|
||||
value: 20
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#spinner" ).spinner();
|
||||
|
||||
|
||||
|
||||
$( "#menu" ).menu();
|
||||
|
||||
|
||||
|
||||
$( "#tooltip" ).tooltip();
|
||||
|
||||
|
||||
|
||||
$( "#selectmenu" ).selectmenu();
|
||||
|
||||
|
||||
// Hover states on the static widgets
|
||||
$( "#dialog-link, #icons li" ).hover(
|
||||
function() {
|
||||
|
||||
21
inst/www/shared/jqueryui/jquery-ui.css
vendored
@@ -1,4 +1,4 @@
|
||||
/*! jQuery UI - v1.13.2 - 2022-07-14
|
||||
/*! jQuery UI - v1.12.1 - 2016-09-14
|
||||
* http://jqueryui.com
|
||||
* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6
|
||||
@@ -45,7 +45,7 @@
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
-ms-filter: "alpha(opacity=0)"; /* support: IE8 */
|
||||
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
@@ -664,7 +664,7 @@ button.ui-button::-moz-focus-inner {
|
||||
.ui-progressbar .ui-progressbar-overlay {
|
||||
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
||||
height: 100%;
|
||||
-ms-filter: "alpha(opacity=25)"; /* support: IE8 */
|
||||
filter: alpha(opacity=25); /* support: IE8 */
|
||||
opacity: 0.25;
|
||||
}
|
||||
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||
@@ -728,7 +728,7 @@ button.ui-button::-moz-focus-inner {
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
@@ -1041,18 +1041,18 @@ a.ui-button:active,
|
||||
.ui-widget-content .ui-priority-secondary,
|
||||
.ui-widget-header .ui-priority-secondary {
|
||||
opacity: .7;
|
||||
-ms-filter: "alpha(opacity=70)"; /* support: IE8 */
|
||||
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||
font-weight: normal;
|
||||
}
|
||||
.ui-state-disabled,
|
||||
.ui-widget-content .ui-state-disabled,
|
||||
.ui-widget-header .ui-state-disabled {
|
||||
opacity: .35;
|
||||
-ms-filter: "alpha(opacity=35)"; /* support: IE8 */
|
||||
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||
background-image: none;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
-ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */
|
||||
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
@@ -1093,10 +1093,7 @@ a.ui-button:active,
|
||||
}
|
||||
|
||||
/* positioning */
|
||||
/* Three classes needed to override `.ui-button:hover .ui-icon` */
|
||||
.ui-icon-blank.ui-icon-blank.ui-icon-blank {
|
||||
background-image: none;
|
||||
}
|
||||
.ui-icon-blank { background-position: 16px 16px; }
|
||||
.ui-icon-caret-1-n { background-position: 0 0; }
|
||||
.ui-icon-caret-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-caret-1-e { background-position: -32px 0; }
|
||||
@@ -1307,7 +1304,7 @@ a.ui-button:active,
|
||||
.ui-widget-overlay {
|
||||
background: #aaaaaa;
|
||||
opacity: .003;
|
||||
-ms-filter: Alpha(Opacity=.3); /* support: IE8 */
|
||||
filter: Alpha(Opacity=.3); /* support: IE8 */
|
||||
}
|
||||
.ui-widget-shadow {
|
||||
-webkit-box-shadow: 0px 0px 5px #666666;
|
||||
|
||||
1800
inst/www/shared/jqueryui/jquery-ui.js
vendored
4
inst/www/shared/jqueryui/jquery-ui.min.css
vendored
13
inst/www/shared/jqueryui/jquery-ui.min.js
vendored
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.13.2
|
||||
* jQuery UI CSS Framework 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
@@ -49,7 +49,7 @@
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
-ms-filter: "alpha(opacity=0)"; /* support: IE8 */
|
||||
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
@@ -668,7 +668,7 @@ button.ui-button::-moz-focus-inner {
|
||||
.ui-progressbar .ui-progressbar-overlay {
|
||||
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
||||
height: 100%;
|
||||
-ms-filter: "alpha(opacity=25)"; /* support: IE8 */
|
||||
filter: alpha(opacity=25); /* support: IE8 */
|
||||
opacity: 0.25;
|
||||
}
|
||||
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||
@@ -732,7 +732,7 @@ button.ui-button::-moz-focus-inner {
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
15
inst/www/shared/jqueryui/jquery-ui.theme.css
vendored
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.13.2
|
||||
* jQuery UI CSS Framework 1.12.1
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
@@ -172,18 +172,18 @@ a.ui-button:active,
|
||||
.ui-widget-content .ui-priority-secondary,
|
||||
.ui-widget-header .ui-priority-secondary {
|
||||
opacity: .7;
|
||||
-ms-filter: "alpha(opacity=70)"; /* support: IE8 */
|
||||
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||
font-weight: normal;
|
||||
}
|
||||
.ui-state-disabled,
|
||||
.ui-widget-content .ui-state-disabled,
|
||||
.ui-widget-header .ui-state-disabled {
|
||||
opacity: .35;
|
||||
-ms-filter: "alpha(opacity=35)"; /* support: IE8 */
|
||||
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||
background-image: none;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
-ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */
|
||||
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
@@ -224,10 +224,7 @@ a.ui-button:active,
|
||||
}
|
||||
|
||||
/* positioning */
|
||||
/* Three classes needed to override `.ui-button:hover .ui-icon` */
|
||||
.ui-icon-blank.ui-icon-blank.ui-icon-blank {
|
||||
background-image: none;
|
||||
}
|
||||
.ui-icon-blank { background-position: 16px 16px; }
|
||||
.ui-icon-caret-1-n { background-position: 0 0; }
|
||||
.ui-icon-caret-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-caret-1-e { background-position: -32px 0; }
|
||||
@@ -438,7 +435,7 @@ a.ui-button:active,
|
||||
.ui-widget-overlay {
|
||||
background: #aaaaaa;
|
||||
opacity: .003;
|
||||
-ms-filter: Alpha(Opacity=.3); /* support: IE8 */
|
||||
filter: Alpha(Opacity=.3); /* support: IE8 */
|
||||
}
|
||||
.ui-widget-shadow {
|
||||
-webkit-box-shadow: 0px 0px 5px #666666;
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
/*! shiny 1.7.2.9000 | (c) 2012-2022 RStudio, PBC. | License: GPL-3 | file LICENSE */
|
||||
/*! shiny 1.7.1.9003 | (c) 2012-2022 RStudio, PBC. | License: GPL-3 | file LICENSE */
|
||||
#showcase-well{border-radius:0}.shiny-code{background-color:#fff;margin-bottom:0}.shiny-code code{font-family:Menlo,Consolas,"Courier New",monospace}.shiny-code-container{margin-top:20px;clear:both}.shiny-code-container h3{display:inline;margin-right:15px}.showcase-header{font-size:16px;font-weight:normal}.showcase-code-link{text-align:right;padding:15px}#showcase-app-container{vertical-align:top}#showcase-code-tabs{margin-right:15px}#showcase-code-tabs pre{border:none;line-height:1em}#showcase-code-tabs .nav{margin-bottom:0}#showcase-code-tabs ul{margin-bottom:0}#showcase-code-tabs .tab-content{border-style:solid;border-color:#e5e5e5;border-width:0px 1px 1px 1px;overflow:auto;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#showcase-app-code{width:100%}#showcase-code-position-toggle{float:right}#showcase-sxs-code{padding-top:20px;vertical-align:top}.showcase-code-license{display:block;text-align:right}#showcase-code-content pre{background-color:#fff}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/*! shiny 1.7.2.9000 | (c) 2012-2022 RStudio, PBC. | License: GPL-3 | file LICENSE */
|
||||
/*! shiny 1.7.1.9003 | (c) 2012-2022 RStudio, PBC. | License: GPL-3 | file LICENSE */
|
||||
(function(){var a=eval;window.addEventListener("message",function(i){var e=i.data;e.code&&a(e.code)});})();
|
||||
//# sourceMappingURL=shiny-testmode.js.map
|
||||
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjdHMvc3JjL3V0aWxzL2V2YWwudHMiLCAiLi4vLi4vLi4vc3JjdHMvZXh0cmFzL3NoaW55LXRlc3Rtb2RlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvL2VzYnVpbGQuZ2l0aHViLmlvL2NvbnRlbnQtdHlwZXMvI2RpcmVjdC1ldmFsXG4vL3RsL2RyO1xuLy8gKiBEaXJlY3QgdXNhZ2Ugb2YgYGV2YWwoXCJ4XCIpYCBpcyBiYWQgd2l0aCBidW5kbGVkIGNvZGUuXG4vLyAqIEluc3RlYWQsIHVzZSBpbmRpcmVjdCBjYWxscyB0byBgZXZhbGAgc3VjaCBhcyBgaW5kaXJlY3RFdmFsKFwieFwiKWBcbi8vICAgKiBFdmVuIGp1c3QgcmVuYW1pbmcgdGhlIGZ1bmN0aW9uIHdvcmtzIHdlbGwgZW5vdWdoLlxuLy8gPiBUaGlzIGlzIGtub3duIGFzIFwiaW5kaXJlY3QgZXZhbFwiIGJlY2F1c2UgZXZhbCBpcyBub3QgYmVpbmcgY2FsbGVkIGRpcmVjdGx5LCBhbmQgc28gZG9lcyBub3QgdHJpZ2dlciB0aGUgZ3JhbW1hdGljYWwgc3BlY2lhbCBjYXNlIGZvciBkaXJlY3QgZXZhbCBpbiB0aGUgSmF2YVNjcmlwdCBWTS4gWW91IGNhbiBjYWxsIGluZGlyZWN0IGV2YWwgdXNpbmcgYW55IHN5bnRheCBhdCBhbGwgZXhjZXB0IGZvciBhbiBleHByZXNzaW9uIG9mIHRoZSBleGFjdCBmb3JtIGV2YWwoJ3gnKS4gRm9yIGV4YW1wbGUsIHZhciBldmFsMiA9IGV2YWw7IGV2YWwyKCd4JykgYW5kIFtldmFsXVswXSgneCcpIGFuZCB3aW5kb3cuZXZhbCgneCcpIGFyZSBhbGwgaW5kaXJlY3QgZXZhbCBjYWxscy5cbi8vID4gV2hlbiB5b3UgdXNlIGluZGlyZWN0IGV2YWwsIHRoZSBjb2RlIGlzIGV2YWx1YXRlZCBpbiB0aGUgZ2xvYmFsIHNjb3BlIGluc3RlYWQgb2YgaW4gdGhlIGlubGluZSBzY29wZSBvZiB0aGUgY2FsbGVyLlxudmFyIGluZGlyZWN0RXZhbCA9IGV2YWw7XG5leHBvcnQgeyBpbmRpcmVjdEV2YWwgfTsiLCAiLyogZXNsaW50LWRpc2FibGUgdW5pY29ybi9maWxlbmFtZS1jYXNlICovXG5pbXBvcnQgeyBpbmRpcmVjdEV2YWwgfSBmcm9tIFwiLi4vc3JjL3V0aWxzL2V2YWxcIjsgLy8gTGlzdGVuIGZvciBtZXNzYWdlcyBmcm9tIHBhcmVudCBmcmFtZS4gVGhpcyBmaWxlIGlzIG9ubHkgYWRkZWQgd2hlbiB0aGVcbi8vIHNoaW55LnRlc3Rtb2RlIG9wdGlvbiBpcyBUUlVFLlxuXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gKGUpIHtcbiAgdmFyIG1lc3NhZ2UgPSBlLmRhdGE7XG4gIGlmIChtZXNzYWdlLmNvZGUpIGluZGlyZWN0RXZhbChtZXNzYWdlLmNvZGUpO1xufSk7Il0sCiAgIm1hcHBpbmdzIjogIjtZQU9BLEdBQUksR0FBZSxLQ0huQixPQUFPLGlCQUFpQixVQUFXLFNBQVUsRUFBRyxDQUM5QyxHQUFJLEdBQVUsRUFBRSxLQUNoQixBQUFJLEVBQVEsTUFBTSxFQUFhLEVBQVEiLAogICJuYW1lcyI6IFtdCn0K
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../srcts/src/utils/eval.ts", "../../../srcts/extras/shiny-testmode.ts"],
|
||||
"sourcesContent": ["//esbuild.github.io/content-types/#direct-eval\n//tl/dr;\n// * Direct usage of `eval(\"x\")` is bad with bundled code.\n// * Instead, use indirect calls to `eval` such as `indirectEval(\"x\")`\n// * Even just renaming the function works well enough.\n// > This is known as \"indirect eval\" because eval is not being called directly, and so does not trigger the grammatical special case for direct eval in the JavaScript VM. You can call indirect eval using any syntax at all except for an expression of the exact form eval('x'). For example, var eval2 = eval; eval2('x') and [eval][0]('x') and window.eval('x') are all indirect eval calls.\n// > When you use indirect eval, the code is evaluated in the global scope instead of in the inline scope of the caller.\nvar indirectEval = eval;\nexport { indirectEval };", "/* eslint-disable unicorn/filename-case */\nimport { indirectEval } from \"../src/utils/eval\"; // Listen for messages from parent frame. This file is only added when the\n// shiny.testmode option is TRUE.\n\nwindow.addEventListener(\"message\", function (e) {\n var message = e.data;\n if (message.code) indirectEval(message.code);\n});"],
|
||||
"mappings": ";YAOA,GAAI,GAAe,KCHnB,OAAO,iBAAiB,UAAW,SAAU,EAAG,CAC9C,GAAI,GAAU,EAAE,KAChB,AAAI,EAAQ,MAAM,EAAa,EAAQ",
|
||||
"names": []
|
||||
}
|
||||
2
inst/www/shared/shiny.min.css
vendored
4
inst/www/shared/shiny.min.js
vendored
@@ -85,40 +85,40 @@ user. Always \code{NULL} for a \code{MockShinySesion}.}
|
||||
\section{Methods}{
|
||||
\subsection{Public methods}{
|
||||
\itemize{
|
||||
\item \href{#method-MockShinySession-new}{\code{MockShinySession$new()}}
|
||||
\item \href{#method-MockShinySession-onFlush}{\code{MockShinySession$onFlush()}}
|
||||
\item \href{#method-MockShinySession-onFlushed}{\code{MockShinySession$onFlushed()}}
|
||||
\item \href{#method-MockShinySession-onEnded}{\code{MockShinySession$onEnded()}}
|
||||
\item \href{#method-MockShinySession-isEnded}{\code{MockShinySession$isEnded()}}
|
||||
\item \href{#method-MockShinySession-isClosed}{\code{MockShinySession$isClosed()}}
|
||||
\item \href{#method-MockShinySession-close}{\code{MockShinySession$close()}}
|
||||
\item \href{#method-MockShinySession-cycleStartAction}{\code{MockShinySession$cycleStartAction()}}
|
||||
\item \href{#method-MockShinySession-fileUrl}{\code{MockShinySession$fileUrl()}}
|
||||
\item \href{#method-MockShinySession-setInputs}{\code{MockShinySession$setInputs()}}
|
||||
\item \href{#method-MockShinySession-.scheduleTask}{\code{MockShinySession$.scheduleTask()}}
|
||||
\item \href{#method-MockShinySession-elapse}{\code{MockShinySession$elapse()}}
|
||||
\item \href{#method-MockShinySession-.now}{\code{MockShinySession$.now()}}
|
||||
\item \href{#method-MockShinySession-defineOutput}{\code{MockShinySession$defineOutput()}}
|
||||
\item \href{#method-MockShinySession-getOutput}{\code{MockShinySession$getOutput()}}
|
||||
\item \href{#method-MockShinySession-ns}{\code{MockShinySession$ns()}}
|
||||
\item \href{#method-MockShinySession-flushReact}{\code{MockShinySession$flushReact()}}
|
||||
\item \href{#method-MockShinySession-makeScope}{\code{MockShinySession$makeScope()}}
|
||||
\item \href{#method-MockShinySession-setEnv}{\code{MockShinySession$setEnv()}}
|
||||
\item \href{#method-MockShinySession-setReturned}{\code{MockShinySession$setReturned()}}
|
||||
\item \href{#method-MockShinySession-getReturned}{\code{MockShinySession$getReturned()}}
|
||||
\item \href{#method-MockShinySession-genId}{\code{MockShinySession$genId()}}
|
||||
\item \href{#method-MockShinySession-rootScope}{\code{MockShinySession$rootScope()}}
|
||||
\item \href{#method-MockShinySession-unhandledError}{\code{MockShinySession$unhandledError()}}
|
||||
\item \href{#method-MockShinySession-freezeValue}{\code{MockShinySession$freezeValue()}}
|
||||
\item \href{#method-MockShinySession-onSessionEnded}{\code{MockShinySession$onSessionEnded()}}
|
||||
\item \href{#method-MockShinySession-registerDownload}{\code{MockShinySession$registerDownload()}}
|
||||
\item \href{#method-MockShinySession-getCurrentOutputInfo}{\code{MockShinySession$getCurrentOutputInfo()}}
|
||||
\item \href{#method-MockShinySession-clone}{\code{MockShinySession$clone()}}
|
||||
\item \href{#method-new}{\code{MockShinySession$new()}}
|
||||
\item \href{#method-onFlush}{\code{MockShinySession$onFlush()}}
|
||||
\item \href{#method-onFlushed}{\code{MockShinySession$onFlushed()}}
|
||||
\item \href{#method-onEnded}{\code{MockShinySession$onEnded()}}
|
||||
\item \href{#method-isEnded}{\code{MockShinySession$isEnded()}}
|
||||
\item \href{#method-isClosed}{\code{MockShinySession$isClosed()}}
|
||||
\item \href{#method-close}{\code{MockShinySession$close()}}
|
||||
\item \href{#method-cycleStartAction}{\code{MockShinySession$cycleStartAction()}}
|
||||
\item \href{#method-fileUrl}{\code{MockShinySession$fileUrl()}}
|
||||
\item \href{#method-setInputs}{\code{MockShinySession$setInputs()}}
|
||||
\item \href{#method-.scheduleTask}{\code{MockShinySession$.scheduleTask()}}
|
||||
\item \href{#method-elapse}{\code{MockShinySession$elapse()}}
|
||||
\item \href{#method-.now}{\code{MockShinySession$.now()}}
|
||||
\item \href{#method-defineOutput}{\code{MockShinySession$defineOutput()}}
|
||||
\item \href{#method-getOutput}{\code{MockShinySession$getOutput()}}
|
||||
\item \href{#method-ns}{\code{MockShinySession$ns()}}
|
||||
\item \href{#method-flushReact}{\code{MockShinySession$flushReact()}}
|
||||
\item \href{#method-makeScope}{\code{MockShinySession$makeScope()}}
|
||||
\item \href{#method-setEnv}{\code{MockShinySession$setEnv()}}
|
||||
\item \href{#method-setReturned}{\code{MockShinySession$setReturned()}}
|
||||
\item \href{#method-getReturned}{\code{MockShinySession$getReturned()}}
|
||||
\item \href{#method-genId}{\code{MockShinySession$genId()}}
|
||||
\item \href{#method-rootScope}{\code{MockShinySession$rootScope()}}
|
||||
\item \href{#method-unhandledError}{\code{MockShinySession$unhandledError()}}
|
||||
\item \href{#method-freezeValue}{\code{MockShinySession$freezeValue()}}
|
||||
\item \href{#method-onSessionEnded}{\code{MockShinySession$onSessionEnded()}}
|
||||
\item \href{#method-registerDownload}{\code{MockShinySession$registerDownload()}}
|
||||
\item \href{#method-getCurrentOutputInfo}{\code{MockShinySession$getCurrentOutputInfo()}}
|
||||
\item \href{#method-clone}{\code{MockShinySession$clone()}}
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-new"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-new}{}}}
|
||||
\if{html}{\out{<a id="method-new"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-new}{}}}
|
||||
\subsection{Method \code{new()}}{
|
||||
Create a new MockShinySession.
|
||||
\subsection{Usage}{
|
||||
@@ -127,8 +127,8 @@ Create a new MockShinySession.
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-onFlush"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-onFlush}{}}}
|
||||
\if{html}{\out{<a id="method-onFlush"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-onFlush}{}}}
|
||||
\subsection{Method \code{onFlush()}}{
|
||||
Define a callback to be invoked before a reactive flush
|
||||
\subsection{Usage}{
|
||||
@@ -146,8 +146,8 @@ Define a callback to be invoked before a reactive flush
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-onFlushed"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-onFlushed}{}}}
|
||||
\if{html}{\out{<a id="method-onFlushed"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-onFlushed}{}}}
|
||||
\subsection{Method \code{onFlushed()}}{
|
||||
Define a callback to be invoked after a reactive flush
|
||||
\subsection{Usage}{
|
||||
@@ -165,8 +165,8 @@ Define a callback to be invoked after a reactive flush
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-onEnded"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-onEnded}{}}}
|
||||
\if{html}{\out{<a id="method-onEnded"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-onEnded}{}}}
|
||||
\subsection{Method \code{onEnded()}}{
|
||||
Define a callback to be invoked when the session ends
|
||||
\subsection{Usage}{
|
||||
@@ -182,8 +182,8 @@ Define a callback to be invoked when the session ends
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-isEnded"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-isEnded}{}}}
|
||||
\if{html}{\out{<a id="method-isEnded"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-isEnded}{}}}
|
||||
\subsection{Method \code{isEnded()}}{
|
||||
Returns \code{FALSE} if the session has not yet been closed
|
||||
\subsection{Usage}{
|
||||
@@ -192,8 +192,8 @@ Returns \code{FALSE} if the session has not yet been closed
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-isClosed"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-isClosed}{}}}
|
||||
\if{html}{\out{<a id="method-isClosed"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-isClosed}{}}}
|
||||
\subsection{Method \code{isClosed()}}{
|
||||
Returns \code{FALSE} if the session has not yet been closed
|
||||
\subsection{Usage}{
|
||||
@@ -202,8 +202,8 @@ Returns \code{FALSE} if the session has not yet been closed
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-close"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-close}{}}}
|
||||
\if{html}{\out{<a id="method-close"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-close}{}}}
|
||||
\subsection{Method \code{close()}}{
|
||||
Closes the session
|
||||
\subsection{Usage}{
|
||||
@@ -212,8 +212,8 @@ Closes the session
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-cycleStartAction"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-cycleStartAction}{}}}
|
||||
\if{html}{\out{<a id="method-cycleStartAction"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-cycleStartAction}{}}}
|
||||
\subsection{Method \code{cycleStartAction()}}{
|
||||
Unsophisticated mock implementation that merely invokes
|
||||
\subsection{Usage}{
|
||||
@@ -229,8 +229,8 @@ Unsophisticated mock implementation that merely invokes
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-fileUrl"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-fileUrl}{}}}
|
||||
\if{html}{\out{<a id="method-fileUrl"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-fileUrl}{}}}
|
||||
\subsection{Method \code{fileUrl()}}{
|
||||
Base64-encode the given file. Needed for image rendering.
|
||||
\subsection{Usage}{
|
||||
@@ -250,8 +250,8 @@ Base64-encode the given file. Needed for image rendering.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-setInputs"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-setInputs}{}}}
|
||||
\if{html}{\out{<a id="method-setInputs"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-setInputs}{}}}
|
||||
\subsection{Method \code{setInputs()}}{
|
||||
Sets reactive values associated with the \code{session$inputs}
|
||||
object and flushes the reactives.
|
||||
@@ -280,8 +280,8 @@ session$setInputs(x=1, y=2)
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-.scheduleTask"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-.scheduleTask}{}}}
|
||||
\if{html}{\out{<a id="method-.scheduleTask"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-.scheduleTask}{}}}
|
||||
\subsection{Method \code{.scheduleTask()}}{
|
||||
An internal method which shouldn't be used by others.
|
||||
Schedules \code{callback} for execution after some number of \code{millis}
|
||||
@@ -301,8 +301,8 @@ milliseconds.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-elapse"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-elapse}{}}}
|
||||
\if{html}{\out{<a id="method-elapse"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-elapse}{}}}
|
||||
\subsection{Method \code{elapse()}}{
|
||||
Simulate the passing of time by the given number of milliseconds.
|
||||
\subsection{Usage}{
|
||||
@@ -318,8 +318,8 @@ Simulate the passing of time by the given number of milliseconds.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-.now"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-.now}{}}}
|
||||
\if{html}{\out{<a id="method-.now"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-.now}{}}}
|
||||
\subsection{Method \code{.now()}}{
|
||||
An internal method which shouldn't be used by others.
|
||||
\subsection{Usage}{
|
||||
@@ -331,8 +331,8 @@ Elapsed time in milliseconds.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-defineOutput"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-defineOutput}{}}}
|
||||
\if{html}{\out{<a id="method-defineOutput"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-defineOutput}{}}}
|
||||
\subsection{Method \code{defineOutput()}}{
|
||||
An internal method which shouldn't be used by others.
|
||||
Defines an output in a way that sets private$currentOutputName
|
||||
@@ -354,8 +354,8 @@ appropriately.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-getOutput"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-getOutput}{}}}
|
||||
\if{html}{\out{<a id="method-getOutput"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-getOutput}{}}}
|
||||
\subsection{Method \code{getOutput()}}{
|
||||
An internal method which shouldn't be used by others. Forces
|
||||
evaluation of any reactive dependencies of the output function.
|
||||
@@ -376,8 +376,8 @@ output.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-ns"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-ns}{}}}
|
||||
\if{html}{\out{<a id="method-ns"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-ns}{}}}
|
||||
\subsection{Method \code{ns()}}{
|
||||
Returns the given id prefixed by this namespace's id.
|
||||
\subsection{Usage}{
|
||||
@@ -396,8 +396,8 @@ The id with a namespace prefix.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-flushReact"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-flushReact}{}}}
|
||||
\if{html}{\out{<a id="method-flushReact"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-flushReact}{}}}
|
||||
\subsection{Method \code{flushReact()}}{
|
||||
Trigger a reactive flush right now.
|
||||
\subsection{Usage}{
|
||||
@@ -406,8 +406,8 @@ Trigger a reactive flush right now.
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-makeScope"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-makeScope}{}}}
|
||||
\if{html}{\out{<a id="method-makeScope"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-makeScope}{}}}
|
||||
\subsection{Method \code{makeScope()}}{
|
||||
Create and return a namespace-specific session proxy.
|
||||
\subsection{Usage}{
|
||||
@@ -426,8 +426,8 @@ A new session proxy.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-setEnv"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-setEnv}{}}}
|
||||
\if{html}{\out{<a id="method-setEnv"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-setEnv}{}}}
|
||||
\subsection{Method \code{setEnv()}}{
|
||||
Set the environment associated with a testServer() call, but
|
||||
only if it has not previously been set. This ensures that only the
|
||||
@@ -449,8 +449,8 @@ The provided \code{env}.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-setReturned"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-setReturned}{}}}
|
||||
\if{html}{\out{<a id="method-setReturned"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-setReturned}{}}}
|
||||
\subsection{Method \code{setReturned()}}{
|
||||
Set the value returned by the module call and proactively
|
||||
flush. Note that this method may be called multiple times if modules
|
||||
@@ -472,8 +472,8 @@ The provided \code{value}.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-getReturned"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-getReturned}{}}}
|
||||
\if{html}{\out{<a id="method-getReturned"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-getReturned}{}}}
|
||||
\subsection{Method \code{getReturned()}}{
|
||||
Get the value returned by the module call.
|
||||
\subsection{Usage}{
|
||||
@@ -485,8 +485,8 @@ The value returned by the module call
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-genId"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-genId}{}}}
|
||||
\if{html}{\out{<a id="method-genId"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-genId}{}}}
|
||||
\subsection{Method \code{genId()}}{
|
||||
Generate a distinct character identifier for use as a proxy
|
||||
namespace.
|
||||
@@ -499,8 +499,8 @@ A character identifier unique to the current session.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-rootScope"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-rootScope}{}}}
|
||||
\if{html}{\out{<a id="method-rootScope"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-rootScope}{}}}
|
||||
\subsection{Method \code{rootScope()}}{
|
||||
Provides a way to access the root \code{MockShinySession} from
|
||||
any descendant proxy.
|
||||
@@ -513,8 +513,8 @@ The root \code{MockShinySession}.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-unhandledError"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-unhandledError}{}}}
|
||||
\if{html}{\out{<a id="method-unhandledError"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-unhandledError}{}}}
|
||||
\subsection{Method \code{unhandledError()}}{
|
||||
Called by observers when a reactive expression errors.
|
||||
\subsection{Usage}{
|
||||
@@ -530,8 +530,8 @@ Called by observers when a reactive expression errors.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-freezeValue"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-freezeValue}{}}}
|
||||
\if{html}{\out{<a id="method-freezeValue"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-freezeValue}{}}}
|
||||
\subsection{Method \code{freezeValue()}}{
|
||||
Freeze a value until the flush cycle completes.
|
||||
\subsection{Usage}{
|
||||
@@ -549,8 +549,8 @@ Freeze a value until the flush cycle completes.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-onSessionEnded"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-onSessionEnded}{}}}
|
||||
\if{html}{\out{<a id="method-onSessionEnded"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-onSessionEnded}{}}}
|
||||
\subsection{Method \code{onSessionEnded()}}{
|
||||
Registers the given callback to be invoked when the session
|
||||
is closed (i.e. the connection to the client has been severed). The
|
||||
@@ -570,8 +570,8 @@ guaranteed.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-registerDownload"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-registerDownload}{}}}
|
||||
\if{html}{\out{<a id="method-registerDownload"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-registerDownload}{}}}
|
||||
\subsection{Method \code{registerDownload()}}{
|
||||
Associated a downloadable file with the session.
|
||||
\subsection{Usage}{
|
||||
@@ -598,8 +598,8 @@ function.)}
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-getCurrentOutputInfo"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-getCurrentOutputInfo}{}}}
|
||||
\if{html}{\out{<a id="method-getCurrentOutputInfo"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-getCurrentOutputInfo}{}}}
|
||||
\subsection{Method \code{getCurrentOutputInfo()}}{
|
||||
Get information about the output that is currently being
|
||||
executed.
|
||||
@@ -614,8 +614,8 @@ output, or \code{NULL} if no output is currently executing.
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-MockShinySession-clone"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-MockShinySession-clone}{}}}
|
||||
\if{html}{\out{<a id="method-clone"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-clone}{}}}
|
||||
\subsection{Method \code{clone()}}{
|
||||
The objects of this class are cloneable with this method.
|
||||
\subsection{Usage}{
|
||||
|
||||
@@ -62,19 +62,19 @@ shinyApp(ui, server)
|
||||
\section{Methods}{
|
||||
\subsection{Public methods}{
|
||||
\itemize{
|
||||
\item \href{#method-Progress-new}{\code{Progress$new()}}
|
||||
\item \href{#method-Progress-set}{\code{Progress$set()}}
|
||||
\item \href{#method-Progress-inc}{\code{Progress$inc()}}
|
||||
\item \href{#method-Progress-getMin}{\code{Progress$getMin()}}
|
||||
\item \href{#method-Progress-getMax}{\code{Progress$getMax()}}
|
||||
\item \href{#method-Progress-getValue}{\code{Progress$getValue()}}
|
||||
\item \href{#method-Progress-close}{\code{Progress$close()}}
|
||||
\item \href{#method-Progress-clone}{\code{Progress$clone()}}
|
||||
\item \href{#method-new}{\code{Progress$new()}}
|
||||
\item \href{#method-set}{\code{Progress$set()}}
|
||||
\item \href{#method-inc}{\code{Progress$inc()}}
|
||||
\item \href{#method-getMin}{\code{Progress$getMin()}}
|
||||
\item \href{#method-getMax}{\code{Progress$getMax()}}
|
||||
\item \href{#method-getValue}{\code{Progress$getValue()}}
|
||||
\item \href{#method-close}{\code{Progress$close()}}
|
||||
\item \href{#method-clone}{\code{Progress$clone()}}
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-new"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-new}{}}}
|
||||
\if{html}{\out{<a id="method-new"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-new}{}}}
|
||||
\subsection{Method \code{new()}}{
|
||||
Creates a new progress panel (but does not display it).
|
||||
\subsection{Usage}{
|
||||
@@ -107,8 +107,8 @@ is for backward-compatibility).}
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-set"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-set}{}}}
|
||||
\if{html}{\out{<a id="method-set"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-set}{}}}
|
||||
\subsection{Method \code{set()}}{
|
||||
Updates the progress panel. When called the first time, the
|
||||
progress panel is displayed.
|
||||
@@ -135,8 +135,8 @@ relative to \code{message}.}
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-inc"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-inc}{}}}
|
||||
\if{html}{\out{<a id="method-inc"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-inc}{}}}
|
||||
\subsection{Method \code{inc()}}{
|
||||
Like \code{set}, this updates the progress panel. The difference
|
||||
is that \code{inc} increases the progress bar by \code{amount}, instead of
|
||||
@@ -163,8 +163,8 @@ relative to \code{message}.}
|
||||
}
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-getMin"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-getMin}{}}}
|
||||
\if{html}{\out{<a id="method-getMin"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-getMin}{}}}
|
||||
\subsection{Method \code{getMin()}}{
|
||||
Returns the minimum value.
|
||||
\subsection{Usage}{
|
||||
@@ -173,8 +173,8 @@ Returns the minimum value.
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-getMax"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-getMax}{}}}
|
||||
\if{html}{\out{<a id="method-getMax"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-getMax}{}}}
|
||||
\subsection{Method \code{getMax()}}{
|
||||
Returns the maximum value.
|
||||
\subsection{Usage}{
|
||||
@@ -183,8 +183,8 @@ Returns the maximum value.
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-getValue"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-getValue}{}}}
|
||||
\if{html}{\out{<a id="method-getValue"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-getValue}{}}}
|
||||
\subsection{Method \code{getValue()}}{
|
||||
Returns the current value.
|
||||
\subsection{Usage}{
|
||||
@@ -193,8 +193,8 @@ Returns the current value.
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-close"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-close}{}}}
|
||||
\if{html}{\out{<a id="method-close"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-close}{}}}
|
||||
\subsection{Method \code{close()}}{
|
||||
Removes the progress panel. Future calls to \code{set} and
|
||||
\code{close} will be ignored.
|
||||
@@ -204,8 +204,8 @@ Removes the progress panel. Future calls to \code{set} and
|
||||
|
||||
}
|
||||
\if{html}{\out{<hr>}}
|
||||
\if{html}{\out{<a id="method-Progress-clone"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-Progress-clone}{}}}
|
||||
\if{html}{\out{<a id="method-clone"></a>}}
|
||||
\if{latex}{\out{\hypertarget{method-clone}{}}}
|
||||
\subsection{Method \code{clone()}}{
|
||||
The objects of this class are cloneable with this method.
|
||||
\subsection{Usage}{
|
||||
|
||||
@@ -40,9 +40,7 @@ sense, namely:
|
||||
|
||||
In the example here, the \code{bindCache()} key consists of \code{input$x} and
|
||||
\code{input$y} combined, and the value is \code{input$x * input$y}. In this simple
|
||||
example, for any given key, there is only one possible returned value.
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{r <- reactive(\{ input$x * input$y \}) \%>\%
|
||||
example, for any given key, there is only one possible returned value.\if{html}{\out{<div class="sourceCode NA">}}\preformatted{r <- reactive(\{ input$x * input$y \}) \%>\%
|
||||
bindCache(input$x, input$y)
|
||||
}\if{html}{\out{</div>}}
|
||||
|
||||
@@ -65,9 +63,7 @@ to do some sort of reduction on the data that still captures information
|
||||
about whether a value can be retrieved from the cache. For example, if you
|
||||
have a large data set with timestamps, it might make sense to extract the
|
||||
most recent timestamp and return that. Then, instead of hashing the entire
|
||||
data object, the cached reactive only needs to hash the timestamp.
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{r <- reactive(\{ compute(bigdata()) \} \%>\%
|
||||
data object, the cached reactive only needs to hash the timestamp.\if{html}{\out{<div class="sourceCode NA">}}\preformatted{r <- reactive(\{ compute(bigdata()) \} \%>\%
|
||||
bindCache(\{ extract_most_recent_time(bigdata()) \})
|
||||
}\if{html}{\out{</div>}}
|
||||
|
||||
@@ -109,9 +105,7 @@ cache key is not too expensive.
|
||||
Remember that the key is \emph{reactive}, so it is not re-executed every single
|
||||
time that someone accesses the cached reactive. It is only re-executed if
|
||||
it has been invalidated by one of the reactives it depends on. For
|
||||
example, suppose we have this cached reactive:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{r <- reactive(\{ input$x * input$y \}) \%>\%
|
||||
example, suppose we have this cached reactive:\if{html}{\out{<div class="sourceCode NA">}}\preformatted{r <- reactive(\{ input$x * input$y \}) \%>\%
|
||||
bindCache(input$x, input$y)
|
||||
}\if{html}{\out{</div>}}
|
||||
|
||||
@@ -160,30 +154,24 @@ persists beyond the current R session.
|
||||
To use different settings for an application-scoped cache, you can call
|
||||
\code{\link[=shinyOptions]{shinyOptions()}} at the top of your app.R, server.R, or
|
||||
global.R. For example, this will create a cache with 500 MB of space
|
||||
instead of the default 200 MB:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{shinyOptions(cache = cachem::cache_mem(max_size = 500e6))
|
||||
}\if{html}{\out{</div>}}
|
||||
instead of the default 200 MB:\preformatted{shinyOptions(cache = cachem::cache_mem(max_size = 500e6))
|
||||
}
|
||||
|
||||
To use different settings for a session-scoped cache, you can set
|
||||
\code{self$cache} at the top of your server function. By default, it will create
|
||||
a 200 MB memory cache for each session, but you can replace it with
|
||||
something different. To use the session-scoped cache, you must also call
|
||||
\code{bindCache()} with \code{cache="session"}. This will create a 100 MB cache for
|
||||
the session:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{function(input, output, session) \{
|
||||
the session:\preformatted{function(input, output, session) \{
|
||||
session$cache <- cachem::cache_mem(max_size = 100e6)
|
||||
...
|
||||
\}
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
|
||||
If you want to use a cache that is shared across multiple R processes, you
|
||||
can use a \code{\link[cachem:cache_disk]{cachem::cache_disk()}}. You can create a application-level shared
|
||||
cache by putting this at the top of your app.R, server.R, or global.R:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{shinyOptions(cache = cachem::cache_disk(file.path(dirname(tempdir()), "myapp-cache"))
|
||||
}\if{html}{\out{</div>}}
|
||||
cache by putting this at the top of your app.R, server.R, or global.R:\preformatted{shinyOptions(cache = cachem::cache_disk(file.path(dirname(tempdir()), "myapp-cache"))
|
||||
}
|
||||
|
||||
This will create a subdirectory in your system temp directory named
|
||||
\code{myapp-cache} (replace \code{myapp-cache} with a unique name of
|
||||
@@ -193,10 +181,8 @@ stops of the R process, as long as you do not reboot.
|
||||
|
||||
To have the cache persist even across multiple reboots, you can create the
|
||||
cache in a location outside of the temp directory. For example, it could
|
||||
be a subdirectory of the application:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{shinyOptions(cache = cachem::cache_disk("./myapp-cache"))
|
||||
}\if{html}{\out{</div>}}
|
||||
be a subdirectory of the application:\preformatted{shinyOptions(cache = cachem::cache_disk("./myapp-cache"))
|
||||
}
|
||||
|
||||
In this case, resetting the cache will have to be done manually, by deleting
|
||||
the directory.
|
||||
@@ -261,11 +247,9 @@ You may need to provide a \code{cacheHint} to \code{\link[=createRenderFunction]
|
||||
\code{htmlwidgets::shinyRenderWidget()}, if you've authored an htmlwidget) in
|
||||
order for \code{bindCache()} to correctly compute a cache key.
|
||||
|
||||
The potential problem is a cache collision. Consider the following:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{output$x1 <- renderText(\{ input$x \}) \%>\% bindCache(input$x)
|
||||
The potential problem is a cache collision. Consider the following:\preformatted{output$x1 <- renderText(\{ input$x \}) \%>\% bindCache(input$x)
|
||||
output$x2 <- renderText(\{ input$x * 2 \}) \%>\% bindCache(input$x)
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
|
||||
Both \code{output$x1} and \code{output$x2} use \code{input$x} as part of their cache key,
|
||||
but if it were the only thing used in the cache key, then the two outputs
|
||||
@@ -274,9 +258,7 @@ this, a \emph{cache hint} is automatically added when \code{\link[=renderText]{r
|
||||
\code{\link[=createRenderFunction]{createRenderFunction()}}. The cache hint is used as part of the actual
|
||||
cache key, in addition to the one passed to \code{bindCache()} by the user. The
|
||||
cache hint can be viewed by calling the internal Shiny function
|
||||
\code{extractCacheHint()}:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{r <- renderText(\{ input$x \})
|
||||
\code{extractCacheHint()}:\if{html}{\out{<div class="sourceCode NA">}}\preformatted{r <- renderText(\{ input$x \})
|
||||
shiny:::extractCacheHint(r)
|
||||
}\if{html}{\out{</div>}}
|
||||
|
||||
@@ -307,9 +289,7 @@ that may influence the final value.
|
||||
For \pkg{htmlwidgets}, it will try to automatically infer a cache hint;
|
||||
again, you can inspect the cache hint with \code{shiny:::extractCacheHint()} and
|
||||
also test it in an application. If you do need to explicitly provide a
|
||||
cache hint, pass it to \code{shinyRenderWidget}. For example:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{renderMyWidget <- function(expr) \{
|
||||
cache hint, pass it to \code{shinyRenderWidget}. For example:\preformatted{renderMyWidget <- function(expr) \{
|
||||
q <- rlang::enquo0(expr)
|
||||
|
||||
htmlwidgets::shinyRenderWidget(
|
||||
@@ -319,7 +299,7 @@ cache hint, pass it to \code{shinyRenderWidget}. For example:
|
||||
cacheHint = list(label = "myWidget", userQuo = q)
|
||||
)
|
||||
\}
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
|
||||
If your \code{render} function sets any internal state, you may find it useful
|
||||
in your call to \code{\link[=createRenderFunction]{createRenderFunction()}} to use
|
||||
@@ -350,10 +330,8 @@ For developers of such code, they should call \code{\link[=createRenderFunction]
|
||||
|
||||
When \code{bindCache()} is used with \code{renderPlot()}, the \code{height} and \code{width}
|
||||
passed to the original \code{renderPlot()} are ignored. They are superseded by
|
||||
\code{sizePolicy} argument passed to `bindCache. The default is:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{sizePolicy = sizeGrowthRatio(width = 400, height = 400, growthRate = 1.2)
|
||||
}\if{html}{\out{</div>}}
|
||||
\code{sizePolicy} argument passed to `bindCache. The default is:\preformatted{sizePolicy = sizeGrowthRatio(width = 400, height = 400, growthRate = 1.2)
|
||||
}
|
||||
|
||||
\code{sizePolicy} must be a function that takes a two-element numeric vector as
|
||||
input, representing the width and height of the \verb{<img>} element in the
|
||||
|
||||
@@ -171,9 +171,7 @@ user sets both \code{x} and \code{y}, and then clicks on an \link{actionButton}
|
||||
\code{go}.
|
||||
|
||||
To use both caching and events, the object should first be passed to
|
||||
\code{bindCache()}, then \code{bindEvent()}. For example:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{r <- reactive(\{
|
||||
\code{bindCache()}, then \code{bindEvent()}. For example:\if{html}{\out{<div class="sourceCode NA">}}\preformatted{r <- reactive(\{
|
||||
Sys.sleep(2) # Pretend this is an expensive computation
|
||||
input$x * input$y
|
||||
\}) \%>\%
|
||||
|
||||
@@ -28,7 +28,7 @@ This will be used as the lang in the \code{<html>} tag, as in \code{<html lang="
|
||||
The default (NULL) results in an empty string.}
|
||||
}
|
||||
\value{
|
||||
A UI definition that can be passed to the \link{shinyUI} function.
|
||||
A UI defintion that can be passed to the \link{shinyUI} function.
|
||||
}
|
||||
\description{
|
||||
Create a Shiny UI page that loads the CSS and JavaScript for
|
||||
|
||||
@@ -125,12 +125,12 @@ function.
|
||||
}
|
||||
\section{Functions}{
|
||||
\itemize{
|
||||
\item \code{quoToFunction()}: convert a quosure to a function.
|
||||
\item \code{quoToFunction}: convert a quosure to a function.
|
||||
|
||||
\item \code{installExprFunction()}: converts a user's reactive \code{expr} into a
|
||||
\item \code{installExprFunction}: converts a user's reactive \code{expr} into a
|
||||
function that's assigned to a \code{name} in the \code{assign.env}.
|
||||
|
||||
}}
|
||||
|
||||
\examples{
|
||||
# A custom render function that repeats the supplied value 3 times
|
||||
renderTriple <- function(expr) {
|
||||
|
||||
@@ -84,26 +84,24 @@ Please see the function descriptions for more details.
|
||||
}
|
||||
\section{Functions}{
|
||||
\itemize{
|
||||
\item \code{devmode()}: Function to set two options to enable/disable Shiny
|
||||
\item \code{devmode}: Function to set two options to enable/disable Shiny
|
||||
Developer Mode and Developer messages
|
||||
|
||||
\item \code{in_devmode()}: Determines if Shiny is in Developer Mode. If the
|
||||
\item \code{in_devmode}: Determines if Shiny is in Developer Mode. If the
|
||||
\code{getOption("shiny.devmode")} is set to \code{TRUE} and not in testing inside
|
||||
\code{testthat}, then Shiny Developer Mode is enabled.
|
||||
|
||||
\item \code{with_devmode()}: Temporarily set Shiny Developer Mode and Developer
|
||||
\item \code{with_devmode}: Temporarily set Shiny Developer Mode and Developer
|
||||
message verbosity
|
||||
|
||||
\item \code{devmode_inform()}: If Shiny Developer Mode and verbosity are enabled,
|
||||
\item \code{devmode_inform}: If Shiny Developer Mode and verbosity are enabled,
|
||||
displays a message once every 8 hrs (by default)
|
||||
|
||||
\item \code{register_devmode_option()}: Registers a Shiny Developer Mode option with an updated
|
||||
\item \code{register_devmode_option}: Registers a Shiny Developer Mode option with an updated
|
||||
value and Developer message. This registration method allows package
|
||||
authors to write one message in a single location.
|
||||
|
||||
For example, the following Shiny Developer Mode options are registered:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{# Reload the Shiny app when a sourced R file changes
|
||||
For example, the following Shiny Developer Mode options are registered:\if{html}{\out{<div class="sourceCode r">}}\preformatted{# Reload the Shiny app when a sourced R file changes
|
||||
register_devmode_option(
|
||||
"shiny.autoreload",
|
||||
"Turning on shiny autoreload. To disable, call `options(shiny.autoreload = FALSE)`",
|
||||
@@ -128,9 +126,7 @@ register_devmode_option(
|
||||
Other known, non-Shiny Developer Mode options:
|
||||
\itemize{
|
||||
\item Sass:
|
||||
}
|
||||
|
||||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{# Display the full stack trace when errors occur during Shiny app execution
|
||||
}\if{html}{\out{<div class="sourceCode r">}}\preformatted{# Display the full stack trace when errors occur during Shiny app execution
|
||||
register_devmode_option(
|
||||
"sass.cache",
|
||||
"Turning off sass cache. To use default caching, call `options(sass.cache = TRUE)`",
|
||||
@@ -138,7 +134,7 @@ register_devmode_option(
|
||||
)
|
||||
}\if{html}{\out{</div>}}
|
||||
|
||||
\item \code{get_devmode_option()}: Provides a consistent way to change the expected
|
||||
\item \code{get_devmode_option}: Provides a consistent way to change the expected
|
||||
\code{\link[=getOption]{getOption()}} behavior when Developer Mode is enabled. This method is very
|
||||
similar to \code{\link[=getOption]{getOption()}} where the globally set option takes precedence.
|
||||
See section "Avoiding direct dependency on shiny" for
|
||||
@@ -148,8 +144,8 @@ See section "Avoiding direct dependency on shiny" for
|
||||
\code{register_devmode_option()} to avoid supplying the same \code{devmode_default}
|
||||
and \code{devmode_message} values throughout your package. (This requires a
|
||||
\pkg{shiny} dependency.)
|
||||
|
||||
}}
|
||||
|
||||
\section{Avoiding direct dependency on shiny}{
|
||||
|
||||
|
||||
@@ -169,9 +165,7 @@ re-implementing these two functions:
|
||||
|
||||
This function should return \code{TRUE} if \code{getOption("shiny.devmode")} is set.
|
||||
In addition, we strongly recommend that it also checks to make sure
|
||||
\code{testthat} is not testing.
|
||||
|
||||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{in_devmode <- function() \{
|
||||
\code{testthat} is not testing.\if{html}{\out{<div class="sourceCode r">}}\preformatted{in_devmode <- function() \{
|
||||
isTRUE(getOption("shiny.devmode", FALSE)) &&
|
||||
!identical(Sys.getenv("TESTTHAT"), "true")
|
||||
\}
|
||||
@@ -207,9 +201,7 @@ recommend displaying a message (\code{devmode_message}) to \code{stderr()} once
|
||||
hours using \code{\link[rlang:abort]{rlang::inform()}}. This will keep the author up to date as to
|
||||
which Dev Mode options are being altered. To allow developers a chance to
|
||||
disable Dev Mode messages, the message should be skipped if
|
||||
\code{getOption("shiny.devmode.verbose", TRUE)} is not \code{TRUE}.
|
||||
|
||||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{get_devmode_option <- function(name, default = NULL, devmode_default, devmode_message) \{
|
||||
\code{getOption("shiny.devmode.verbose", TRUE)} is not \code{TRUE}.\if{html}{\out{<div class="sourceCode r">}}\preformatted{get_devmode_option <- function(name, default = NULL, devmode_default, devmode_message) \{
|
||||
if (!in_devmode()) \{
|
||||
# Dev Mode disabled, act like `getOption()`
|
||||
return(getOption(name, default = default))
|
||||
|
||||
@@ -40,7 +40,7 @@ deleted from disk. If \code{FALSE} (the default), it will do nothing when
|
||||
finalized.}
|
||||
|
||||
\item{missing}{A value to return when \code{get(key)} is called but the key is not
|
||||
present in the cache. The default is a \code{\link[cachem:key_missing]{key_missing()}} object. It is
|
||||
present in the cache. The default is a \code{\link[cachem:reexports]{key_missing()}} object. It is
|
||||
actually an expression that is evaluated each time there is a cache miss.
|
||||
See section Missing keys for more information.}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
\alias{downloadHandler}
|
||||
\title{File Downloads}
|
||||
\usage{
|
||||
downloadHandler(filename, content, contentType = NULL, outputArgs = list())
|
||||
downloadHandler(filename, content, contentType = NA, outputArgs = list())
|
||||
}
|
||||
\arguments{
|
||||
\item{filename}{A string of the filename, including extension, that the
|
||||
@@ -19,9 +19,9 @@ function.)}
|
||||
|
||||
\item{contentType}{A string of the download's
|
||||
\href{https://en.wikipedia.org/wiki/Internet_media_type}{content type}, for
|
||||
example \code{"text/csv"} or \code{"image/png"}. If \code{NULL}, the content type
|
||||
will be guessed based on the filename extension, or
|
||||
\code{application/octet-stream} if the extension is unknown.}
|
||||
example \code{"text/csv"} or \code{"image/png"}. If \code{NULL} or
|
||||
\code{NA}, the content type will be guessed based on the filename
|
||||
extension, or \code{application/octet-stream} if the extension is unknown.}
|
||||
|
||||
\item{outputArgs}{A list of arguments to be passed through to the implicit
|
||||
call to \code{\link[=downloadButton]{downloadButton()}} when \code{downloadHandler} is used
|
||||
|
||||
@@ -11,8 +11,7 @@ fileInput(
|
||||
accept = NULL,
|
||||
width = NULL,
|
||||
buttonLabel = "Browse...",
|
||||
placeholder = "No file selected",
|
||||
capture = NULL
|
||||
placeholder = "No file selected"
|
||||
)
|
||||
}
|
||||
\arguments{
|
||||
@@ -43,19 +42,6 @@ see \code{\link[=validateCssUnit]{validateCssUnit()}}.}
|
||||
object.}
|
||||
|
||||
\item{placeholder}{The text to show before a file has been uploaded.}
|
||||
|
||||
\item{capture}{What source to use for capturing image, audio or video data.
|
||||
This attribute facilitates user access to a device's media capture
|
||||
mechanism, such as a camera, or microphone, from within a file upload
|
||||
control.
|
||||
|
||||
A value of \code{user} indicates that the user-facing camera and/or microphone
|
||||
should be used. A value of \code{environment} specifies that the outward-facing
|
||||
camera and/or microphone should be used.
|
||||
|
||||
By default on most phones, this will accept still photos or video. For
|
||||
still photos only, also use \code{accept="image/*"}. For video only, use
|
||||
\code{accept="video/*"}.}
|
||||
}
|
||||
\description{
|
||||
Create a file upload control that can be used to upload one or more files.
|
||||
|
||||
@@ -28,7 +28,7 @@ This will be used as the lang in the \code{<html>} tag, as in \code{<html lang="
|
||||
The default (NULL) results in an empty string.}
|
||||
}
|
||||
\value{
|
||||
A UI definition that can be passed to the \link{shinyUI} function.
|
||||
A UI defintion that can be passed to the \link{shinyUI} function.
|
||||
}
|
||||
\description{
|
||||
Functions for creating fixed page layouts. A fixed page layout consists of
|
||||
|
||||
@@ -29,7 +29,7 @@ This will be used as the lang in the \code{<html>} tag, as in \code{<html lang="
|
||||
The default (NULL) results in an empty string.}
|
||||
}
|
||||
\value{
|
||||
A UI definition that can be passed to the \link{shinyUI} function.
|
||||
A UI defintion that can be passed to the \link{shinyUI} function.
|
||||
}
|
||||
\description{
|
||||
Functions for creating fluid page layouts. A fluid page layout consists of
|
||||
|
||||
@@ -15,7 +15,7 @@ loadSupport(
|
||||
not supplied, the nearest enclosing directory that is a Shiny app, starting
|
||||
with the current directory, is used.}
|
||||
|
||||
\item{renv}{The environment in which the files in the \verb{R/} directory should
|
||||
\item{renv}{The environmeny in which the files in the \verb{R/} directory should
|
||||
be evaluated.}
|
||||
|
||||
\item{globalrenv}{The environment in which \code{global.R} should be evaluated. If
|
||||
|
||||
@@ -30,7 +30,7 @@ value of \code{evict}. Use \code{Inf} for no limit of number of items.}
|
||||
when a cache pruning occurs. Currently, \code{"lru"} and \code{"fifo"} are supported.}
|
||||
|
||||
\item{missing}{A value to return when \code{get(key)} is called but the key is not
|
||||
present in the cache. The default is a \code{\link[cachem:key_missing]{key_missing()}} object. It is
|
||||
present in the cache. The default is a \code{\link[cachem:reexports]{key_missing()}} object. It is
|
||||
actually an expression that is evaluated each time there is a cache miss.
|
||||
See section Missing keys for more information.}
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ is needed if you want to insert/remove or show/hide an entire
|
||||
\item{icon}{Optional icon to appear on a \code{navbarMenu} tab.}
|
||||
}
|
||||
\value{
|
||||
A UI definition that can be passed to the \link{shinyUI} function.
|
||||
A UI defintion that can be passed to the \link{shinyUI} function.
|
||||
}
|
||||
\description{
|
||||
Create a page that contains a top level navigation bar that can be used to
|
||||
|
||||
@@ -14,7 +14,7 @@ pageWithSidebar(headerPanel, sidebarPanel, mainPanel)
|
||||
\item{mainPanel}{The \link{mainPanel} containing outputs}
|
||||
}
|
||||
\value{
|
||||
A UI definition that can be passed to the \link{shinyUI} function
|
||||
A UI defintion that can be passed to the \link{shinyUI} function
|
||||
}
|
||||
\description{
|
||||
\strong{DEPRECATED}: use \code{\link[=fluidPage]{fluidPage()}} and \code{\link[=sidebarLayout]{sidebarLayout()}} instead.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
% Please edit documentation in R/imageutils.R
|
||||
\name{plotPNG}
|
||||
\alias{plotPNG}
|
||||
\title{Capture a plot as a PNG file.}
|
||||
\title{Run a plotting function and save the output as a PNG}
|
||||
\usage{
|
||||
plotPNG(
|
||||
func,
|
||||
@@ -23,26 +23,27 @@ extension \code{.png}.}
|
||||
|
||||
\item{height}{Height in pixels.}
|
||||
|
||||
\item{res}{Resolution in pixels per inch. This value is passed to the
|
||||
graphics device. Note that this affects the resolution of PNG rendering in
|
||||
\item{res}{Resolution in pixels per inch. This value is passed to
|
||||
\code{\link[grDevices:png]{grDevices::png()}}. Note that this affects the resolution of PNG rendering in
|
||||
R; it won't change the actual ppi of the browser.}
|
||||
|
||||
\item{...}{Arguments to be passed through to the graphics device. These can
|
||||
be used to set the width, height, background color, etc.}
|
||||
}
|
||||
\value{
|
||||
A path to the newly generated PNG file.
|
||||
\item{...}{Arguments to be passed through to \code{\link[grDevices:png]{grDevices::png()}}.
|
||||
These can be used to set the width, height, background color, etc.}
|
||||
}
|
||||
\description{
|
||||
The PNG graphics device used is determined in the following order:
|
||||
\itemize{
|
||||
\item If the ragg package is installed (and the \code{shiny.useragg} is not
|
||||
set to \code{FALSE}), then use \code{\link[ragg:agg_png]{ragg::agg_png()}}.
|
||||
\item If a quartz device is available (i.e., \code{capabilities("aqua")} is
|
||||
\code{TRUE}), then use \code{png(type = "quartz")}.
|
||||
\item If the Cairo package is installed (and the \code{shiny.usecairo} option
|
||||
is not set to \code{FALSE}), then use \code{\link[Cairo:Cairo]{Cairo::CairoPNG()}}.
|
||||
\item Otherwise, use \code{\link[grDevices:png]{grDevices::png()}}. In this case, Linux and Windows
|
||||
may not antialias some point shapes, resulting in poor quality output.
|
||||
This function returns the name of the PNG file that it generates. In
|
||||
essence, it calls \code{png()}, then \code{func()}, then \code{dev.off()}.
|
||||
So \code{func} must be a function that will generate a plot when used this
|
||||
way.
|
||||
}
|
||||
\details{
|
||||
For output, it will try to use the following devices, in this order:
|
||||
quartz (via \code{\link[grDevices:png]{grDevices::png()}}), then \code{\link[Cairo:Cairo]{Cairo::CairoPNG()}},
|
||||
and finally \code{\link[grDevices:png]{grDevices::png()}}. This is in order of quality of
|
||||
output. Notably, plain \code{png} output on Linux and Windows may not
|
||||
antialias some point shapes, resulting in poor quality output.
|
||||
|
||||
In some cases, \code{Cairo()} provides output that looks worse than
|
||||
\code{png()}. To disable Cairo output for an app, use
|
||||
\code{options(shiny.usecairo=FALSE)}.
|
||||
}
|
||||
|
||||
@@ -51,11 +51,11 @@ of the source code of your reactive expressions and observers.
|
||||
}
|
||||
\section{Functions}{
|
||||
\itemize{
|
||||
\item \code{reactlog()}: Return a list of reactive information. Can be used in conjunction with
|
||||
\item \code{reactlog}: Return a list of reactive information. Can be used in conjunction with
|
||||
\link[reactlog:reactlog_show]{reactlog::reactlog_show} to later display the reactlog graph.
|
||||
|
||||
\item \code{reactlogShow()}: Display a full reactlog graph for all sessions.
|
||||
|
||||
\item \code{reactlogReset()}: Resets the entire reactlog stack. Useful for debugging and removing all prior reactive history.
|
||||
\item \code{reactlogShow}: Display a full reactlog graph for all sessions.
|
||||
|
||||
\item \code{reactlogReset}: Resets the entire reactlog stack. Useful for debugging and removing all prior reactive history.
|
||||
}}
|
||||
|
||||
|
||||
@@ -52,6 +52,6 @@ below to see their documentation.
|
||||
\describe{
|
||||
\item{fastmap}{\code{\link[fastmap:key_missing]{is.key_missing}}, \code{\link[fastmap]{key_missing}}}
|
||||
|
||||
\item{htmltools}{\code{\link[htmltools:builder]{a}}, \code{\link[htmltools:builder]{br}}, \code{\link[htmltools:builder]{code}}, \code{\link[htmltools:builder]{div}}, \code{\link[htmltools:builder]{em}}, \code{\link[htmltools:builder]{h1}}, \code{\link[htmltools:builder]{h2}}, \code{\link[htmltools:builder]{h3}}, \code{\link[htmltools:builder]{h4}}, \code{\link[htmltools:builder]{h5}}, \code{\link[htmltools:builder]{h6}}, \code{\link[htmltools:builder]{hr}}, \code{\link[htmltools]{HTML}}, \code{\link[htmltools]{htmlTemplate}}, \code{\link[htmltools:builder]{img}}, \code{\link[htmltools:include]{includeCSS}}, \code{\link[htmltools:include]{includeHTML}}, \code{\link[htmltools:include]{includeMarkdown}}, \code{\link[htmltools:include]{includeScript}}, \code{\link[htmltools:include]{includeText}}, \code{\link[htmltools:singleton]{is.singleton}}, \code{\link[htmltools:builder]{p}}, \code{\link[htmltools:builder]{pre}}, \code{\link[htmltools]{singleton}}, \code{\link[htmltools:builder]{span}}, \code{\link[htmltools:builder]{strong}}, \code{\link[htmltools]{suppressDependencies}}, \code{\link[htmltools:builder]{tag}}, \code{\link[htmltools]{tagAppendAttributes}}, \code{\link[htmltools]{tagAppendChild}}, \code{\link[htmltools:tagAppendChild]{tagAppendChildren}}, \code{\link[htmltools:tagAppendAttributes]{tagGetAttribute}}, \code{\link[htmltools:tagAppendAttributes]{tagHasAttribute}}, \code{\link[htmltools]{tagList}}, \code{\link[htmltools:builder]{tags}}, \code{\link[htmltools:tagAppendChild]{tagSetChildren}}, \code{\link[htmltools]{validateCssUnit}}, \code{\link[htmltools]{withTags}}}
|
||||
\item{htmltools}{\code{\link[htmltools]{HTML}}, \code{\link[htmltools:builder]{a}}, \code{\link[htmltools:builder]{br}}, \code{\link[htmltools:builder]{code}}, \code{\link[htmltools:builder]{div}}, \code{\link[htmltools:builder]{em}}, \code{\link[htmltools:builder]{h1}}, \code{\link[htmltools:builder]{h2}}, \code{\link[htmltools:builder]{h3}}, \code{\link[htmltools:builder]{h4}}, \code{\link[htmltools:builder]{h5}}, \code{\link[htmltools:builder]{h6}}, \code{\link[htmltools:builder]{hr}}, \code{\link[htmltools]{htmlTemplate}}, \code{\link[htmltools:builder]{img}}, \code{\link[htmltools:include]{includeCSS}}, \code{\link[htmltools:include]{includeHTML}}, \code{\link[htmltools:include]{includeMarkdown}}, \code{\link[htmltools:include]{includeScript}}, \code{\link[htmltools:include]{includeText}}, \code{\link[htmltools:singleton]{is.singleton}}, \code{\link[htmltools:builder]{p}}, \code{\link[htmltools:builder]{pre}}, \code{\link[htmltools]{singleton}}, \code{\link[htmltools:builder]{span}}, \code{\link[htmltools:builder]{strong}}, \code{\link[htmltools]{suppressDependencies}}, \code{\link[htmltools:builder]{tag}}, \code{\link[htmltools]{tagAppendAttributes}}, \code{\link[htmltools]{tagAppendChild}}, \code{\link[htmltools:tagAppendChild]{tagAppendChildren}}, \code{\link[htmltools:tagAppendAttributes]{tagGetAttribute}}, \code{\link[htmltools:tagAppendAttributes]{tagHasAttribute}}, \code{\link[htmltools]{tagList}}, \code{\link[htmltools:tagAppendChild]{tagSetChildren}}, \code{\link[htmltools:builder]{tags}}, \code{\link[htmltools]{validateCssUnit}}, \code{\link[htmltools]{withTags}}}
|
||||
}}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ information on the default sizing policy.}
|
||||
(the default), \code{"session"}, or a cache object like a
|
||||
\code{\link[cachem:cache_disk]{cachem::cache_disk()}}. See the Cache Scoping section for more information.}
|
||||
|
||||
\item{...}{Arguments to be passed through to \code{\link[=plotPNG]{plotPNG()}}.
|
||||
\item{...}{Arguments to be passed through to \code{\link[grDevices:png]{grDevices::png()}}.
|
||||
These can be used to set the width, height, background color, etc.}
|
||||
|
||||
\item{alt}{Alternate text for the HTML \verb{<img>} tag if it cannot be displayed
|
||||
|
||||
@@ -35,10 +35,10 @@ When rendering an inline plot, you must provide numeric values (in pixels)
|
||||
to both \code{width} and \code{height}.}
|
||||
|
||||
\item{res}{Resolution of resulting plot, in pixels per inch. This value is
|
||||
passed to \code{\link[=plotPNG]{plotPNG()}}. Note that this affects the resolution of PNG
|
||||
passed to \code{\link[grDevices:png]{grDevices::png()}}. Note that this affects the resolution of PNG
|
||||
rendering in R; it won't change the actual ppi of the browser.}
|
||||
|
||||
\item{...}{Arguments to be passed through to \code{\link[=plotPNG]{plotPNG()}}.
|
||||
\item{...}{Arguments to be passed through to \code{\link[grDevices:png]{grDevices::png()}}.
|
||||
These can be used to set the width, height, background color, etc.}
|
||||
|
||||
\item{alt}{Alternate text for the HTML \verb{<img>} tag if it cannot be displayed
|
||||
|
||||
12
man/req.Rd
@@ -25,30 +25,26 @@ nor displayed in the Shiny app's UI).
|
||||
\details{
|
||||
The \code{req} function was designed to be used in one of two ways. The first
|
||||
is to call it like a statement (ignoring its return value) before attempting
|
||||
operations using the required values:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{rv <- reactiveValues(state = FALSE)
|
||||
operations using the required values:\preformatted{rv <- reactiveValues(state = FALSE)
|
||||
r <- reactive(\{
|
||||
req(input$a, input$b, rv$state)
|
||||
# Code that uses input$a, input$b, and/or rv$state...
|
||||
\})
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
|
||||
In this example, if \code{r()} is called and any of \code{input$a},
|
||||
\code{input$b}, and \code{rv$state} are \code{NULL}, \code{FALSE}, \code{""},
|
||||
etc., then the \code{req} call will trigger an error that propagates all the
|
||||
way up to whatever render block or observer is executing.
|
||||
|
||||
The second is to use it to wrap an expression that must be truthy:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{output$plot <- renderPlot(\{
|
||||
The second is to use it to wrap an expression that must be truthy:\preformatted{output$plot <- renderPlot(\{
|
||||
if (req(input$plotType) == "histogram") \{
|
||||
hist(dataset())
|
||||
\} else if (input$plotType == "scatter") \{
|
||||
qplot(dataset(), aes(x = x, y = y))
|
||||
\}
|
||||
\})
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
|
||||
In this example, \code{req(input$plotType)} first checks that
|
||||
\code{input$plotType} is truthy, and if so, returns it. This is a convenient
|
||||
|
||||
@@ -96,10 +96,9 @@ The equivalent of hitting the browser's Reload button. Only works if the
|
||||
session is actually connected.
|
||||
}
|
||||
\item{request}{
|
||||
An environment that implements the \href{https://github.com/jeffreyhorner/Rook#the-environment}{Rook specification} for
|
||||
HTTP requests. This is the request that was used to initiate the websocket
|
||||
connection (as opposed to the request that downloaded the web page for the
|
||||
app).
|
||||
An environment that implements the Rook specification for HTTP requests.
|
||||
This is the request that was used to initiate the websocket connection
|
||||
(as opposed to the request that downloaded the web page for the app).
|
||||
}
|
||||
\item{userData}{
|
||||
An environment for app authors and module/package authors to store whatever
|
||||
|
||||
@@ -10,7 +10,7 @@ shinyAppTemplate(path = NULL, examples = "default", dryrun = FALSE)
|
||||
\item{path}{Path to create new shiny application template.}
|
||||
|
||||
\item{examples}{Either one of "default", "ask", "all", or any combination of
|
||||
"app", "rdir", "module", and "tests". In an
|
||||
"app", "rdir", "module", "shinytest", and "testthat". In an
|
||||
interactive session, "default" falls back to "ask"; in a non-interactive
|
||||
session, "default" falls back to "all". With "ask", this function will
|
||||
prompt the user to select which template items will be added to the new app
|
||||
@@ -25,31 +25,30 @@ This function populates a directory with files for a Shiny application.
|
||||
}
|
||||
\details{
|
||||
In an interactive R session, this function will, by default, prompt the user
|
||||
to select which components to add to the application. Choices are
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{1: All
|
||||
to select which components to add to the application. Choices are\preformatted{1: All
|
||||
2: app.R : Main application file
|
||||
3: R/example.R : Helper file with R code
|
||||
4: R/example-module.R : Example module
|
||||
5: tests/testthat/ : Tests using the testthat and shinytest2 package
|
||||
}\if{html}{\out{</div>}}
|
||||
5: tests/shinytest/ : Tests using the shinytest package
|
||||
6: tests/testthat/ : Tests using the testthat package
|
||||
}
|
||||
|
||||
If option 1 is selected, the full example application including the
|
||||
following files and directories is created:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{appdir/
|
||||
following files and directories is created:\preformatted{appdir/
|
||||
|- app.R
|
||||
|- R
|
||||
| |- example-module.R
|
||||
| `- example.R
|
||||
`- tests
|
||||
|- shinytest.R
|
||||
|- shinytest
|
||||
| `- mytest.R
|
||||
|- testthat.R
|
||||
`- testthat
|
||||
|- test-examplemodule.R
|
||||
|- test-server.R
|
||||
|- test-shinytest2.R
|
||||
`- test-sort.R
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
|
||||
Some notes about these files:
|
||||
\itemize{
|
||||
@@ -63,15 +62,15 @@ and the second contains code for module created by the
|
||||
\item \verb{tests/} contains various tests for the application. You may
|
||||
choose to use or remove any of them. They can be executed by the
|
||||
\code{\link[=runTests]{runTests()}} function.
|
||||
\item \code{tests/shinytest.R} is a test runner for test files in the
|
||||
\verb{tests/shinytest/} directory.
|
||||
\item \code{tests/shinytest/mytest.R} is a test that uses the
|
||||
\href{https://rstudio.github.io/shinytest/}{shinytest} package to do
|
||||
snapshot-based testing.
|
||||
\item \code{tests/testthat.R} is a test runner for test files in the
|
||||
\verb{tests/testthat/} directory using the
|
||||
\href{https://rstudio.github.io/shinytest2/reference/test_app.html}{shinytest2}
|
||||
package.
|
||||
\verb{tests/testthat/} directory using the \href{https://testthat.r-lib.org/}{testthat} package.
|
||||
\item \code{tests/testthat/test-examplemodule.R} is a test for an application's module server function.
|
||||
\item \code{tests/testthat/test-server.R} is a test for the application's server code
|
||||
\item \code{tests/testthat/test-shinytest2.R} is a test that uses the
|
||||
\href{https://rstudio.github.io/shinytest2/}{shinytest2} package to do
|
||||
snapshot-based testing.
|
||||
\item \code{tests/testthat/test-sort.R} is a test for a supporting function in the \verb{R/} directory.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,10 +73,6 @@ then jQuery 3.6.0 is used.}
|
||||
numbers to JSON format to send to the client web browser.}
|
||||
\item{shiny.launch.browser (defaults to \code{interactive()})}{A boolean which controls the default behavior
|
||||
when an app is run. See \code{\link[=runApp]{runApp()}} for more information.}
|
||||
\item{shiny.mathjax.url (defaults to \code{"https://mathjax.rstudio.com/latest/MathJax.js"})}{
|
||||
The URL that should be used to load MathJax, via \code{\link[=withMathJax]{withMathJax()}}.}
|
||||
\item{shiny.mathjax.config (defaults to \code{"config=TeX-AMS-MML_HTMLorMML"})}{The querystring
|
||||
used to load MathJax, via \code{\link[=withMathJax]{withMathJax()}}.}
|
||||
\item{shiny.maxRequestSize (defaults to 5MB)}{This is a number which specifies the maximum
|
||||
web request size, which serves as a size limit for file uploads.}
|
||||
\item{shiny.minified (defaults to \code{TRUE})}{By default
|
||||
@@ -119,10 +115,9 @@ values are \code{"send"} (only print messages sent to the client),
|
||||
messages).}
|
||||
\item{shiny.autoload.r (defaults to \code{TRUE})}{If \code{TRUE}, then the R/
|
||||
of a shiny app will automatically be sourced.}
|
||||
\item{shiny.useragg (defaults to \code{TRUE})}{Set to \code{FALSE} to prevent PNG rendering via the
|
||||
ragg package. See \code{\link[=plotPNG]{plotPNG()}} for more information.}
|
||||
\item{shiny.usecairo (defaults to \code{TRUE})}{Set to \code{FALSE} to prevent PNG rendering via the
|
||||
Cairo package. See \code{\link[=plotPNG]{plotPNG()}} for more information.}
|
||||
\item{shiny.usecairo (defaults to \code{TRUE})}{This is used to disable graphical rendering by the
|
||||
Cairo package, if it is installed. See \code{\link[=plotPNG]{plotPNG()}} for more
|
||||
information.}
|
||||
\item{shiny.devmode (defaults to \code{NULL})}{Option to enable Shiny Developer Mode. When set,
|
||||
different default \code{getOption(key)} values will be returned. See \code{\link[=devmode]{devmode()}} for more details.}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ the Shiny application's page. It must take an \code{input} and an
|
||||
optional \code{session} parameter, which is used when greater control is
|
||||
needed.
|
||||
|
||||
See the \href{https://shiny.rstudio.com/tutorial/}{tutorial} for more
|
||||
See the \href{https://rstudio.github.io/shiny/tutorial/}{tutorial} for more
|
||||
on how to write a server function.
|
||||
}
|
||||
\examples{
|
||||
|
||||
@@ -29,12 +29,12 @@ Create a tab panel
|
||||
}
|
||||
\section{Functions}{
|
||||
\itemize{
|
||||
\item \code{tabPanel()}: Create a tab panel that can be included within a \code{\link[=tabsetPanel]{tabsetPanel()}} or a \code{\link[=navbarPage]{navbarPage()}}.
|
||||
\item \code{tabPanel}: Create a tab panel that can be included within a \code{\link[=tabsetPanel]{tabsetPanel()}} or a \code{\link[=navbarPage]{navbarPage()}}.
|
||||
|
||||
\item \code{tabPanelBody()}: Create a tab panel that drops the title argument.
|
||||
\item \code{tabPanelBody}: Create a tab panel that drops the title argument.
|
||||
This function should be used within \code{tabsetPanel(type = "hidden")}. See \code{\link[=tabsetPanel]{tabsetPanel()}} for example usage.
|
||||
|
||||
}}
|
||||
|
||||
\examples{
|
||||
# Show a tabset that includes a plot, summary, and
|
||||
# table view of the generated distribution
|
||||
|
||||
@@ -33,7 +33,17 @@ types (such as logicals and numbers) will be coerced to strings.}
|
||||
|
||||
\item{inline}{If \code{TRUE}, render the choices inline (i.e. horizontally)}
|
||||
|
||||
\item{choiceNames, choiceValues}{List of names and values, respectively,
|
||||
\item{choiceNames}{List of names and values, respectively,
|
||||
that are displayed to the user in the app and correspond to the each
|
||||
choice (for this reason, \code{choiceNames} and \code{choiceValues}
|
||||
must have the same length). If either of these arguments is
|
||||
provided, then the other \emph{must} be provided and \code{choices}
|
||||
\emph{must not} be provided. The advantage of using both of these over
|
||||
a named list for \code{choices} is that \code{choiceNames} allows any
|
||||
type of UI object to be passed through (tag objects, icons, HTML code,
|
||||
...), instead of just simple text. See Examples.}
|
||||
|
||||
\item{choiceValues}{List of names and values, respectively,
|
||||
that are displayed to the user in the app and correspond to the each
|
||||
choice (for this reason, \code{choiceNames} and \code{choiceValues}
|
||||
must have the same length). If either of these arguments is
|
||||
|
||||
@@ -35,7 +35,16 @@ use \code{character(0)}.}
|
||||
|
||||
\item{inline}{If \code{TRUE}, render the choices inline (i.e. horizontally)}
|
||||
|
||||
\item{choiceNames, choiceValues}{List of names and values, respectively, that
|
||||
\item{choiceNames}{List of names and values, respectively, that
|
||||
are displayed to the user in the app and correspond to the each choice (for
|
||||
this reason, \code{choiceNames} and \code{choiceValues} must have the same length).
|
||||
If either of these arguments is provided, then the other \emph{must} be provided
|
||||
and \code{choices} \emph{must not} be provided. The advantage of using both of these
|
||||
over a named list for \code{choices} is that \code{choiceNames} allows any type of UI
|
||||
object to be passed through (tag objects, icons, HTML code, ...), instead
|
||||
of just simple text. See Examples.}
|
||||
|
||||
\item{choiceValues}{List of names and values, respectively, that
|
||||
are displayed to the user in the app and correspond to the each choice (for
|
||||
this reason, \code{choiceNames} and \code{choiceValues} must have the same length).
|
||||
If either of these arguments is provided, then the other \emph{must} be provided
|
||||
|
||||
@@ -29,7 +29,10 @@ updateSliderInput(
|
||||
create a regular slider; a length two vector will create a double-ended
|
||||
range slider. Must lie between \code{min} and \code{max}.}
|
||||
|
||||
\item{min, max}{The minimum and maximum values (inclusive) that can be
|
||||
\item{min}{The minimum and maximum values (inclusive) that can be
|
||||
selected.}
|
||||
|
||||
\item{max}{The minimum and maximum values (inclusive) that can be
|
||||
selected.}
|
||||
|
||||
\item{step}{Specifies the interval between each selectable value on the
|
||||
|
||||
@@ -55,12 +55,10 @@ can create your own validation test functions. A passing test should return
|
||||
to display to the user, or if the failure should happen silently, \code{FALSE}.
|
||||
|
||||
Alternatively you can use \code{validate()} within an \code{if} statement, which is
|
||||
particularly useful for more complex conditions:
|
||||
|
||||
\if{html}{\out{<div class="sourceCode">}}\preformatted{if (input$x < 0 && input$choice == "positive") \{
|
||||
particularly useful for more complex conditions:\preformatted{if (input$x < 0 && input$choice == "positive") \{
|
||||
validate("If choice is positive then x must be greater than 0")
|
||||
\}
|
||||
}\if{html}{\out{</div>}}
|
||||
}
|
||||
}
|
||||
|
||||
\examples{
|
||||
|
||||
34
package.json
@@ -3,7 +3,7 @@
|
||||
"homepage": "https://shiny.rstudio.com",
|
||||
"repository": "github:rstudio/shiny",
|
||||
"name": "@types/rstudio-shiny",
|
||||
"version": "1.7.2-alpha.9000",
|
||||
"version": "1.7.1-alpha.9003",
|
||||
"license": "GPL-3.0-only",
|
||||
"main": "",
|
||||
"browser": "",
|
||||
@@ -32,33 +32,33 @@
|
||||
"@babel/preset-env": "^7.14.2",
|
||||
"@babel/preset-typescript": "^7.13.0",
|
||||
"@babel/runtime": "^7.14.0",
|
||||
"@deanc/esbuild-plugin-postcss": "^1.0.2",
|
||||
"@deanc/esbuild-plugin-postcss": "^1.0.1",
|
||||
"@testing-library/dom": "^7.31.0",
|
||||
"@testing-library/jest-dom": "^5.12.0",
|
||||
"@testing-library/user-event": "^13.1.9",
|
||||
"@types/highlightjs": "^9.12.1",
|
||||
"@types/jest": "^26.0.23",
|
||||
"@types/jqueryui": "1.12.16",
|
||||
"@types/jqueryui": "1.12.15",
|
||||
"@types/lodash": "^4.14.170",
|
||||
"@types/node": "^15.6.1",
|
||||
"@types/showdown": "^1.9.3",
|
||||
"@typescript-eslint/eslint-plugin": "^5.38.1",
|
||||
"@typescript-eslint/parser": "^5.38.1",
|
||||
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
||||
"@typescript-eslint/parser": "^4.25.0",
|
||||
"autoprefixer": "^10.2.6",
|
||||
"bootstrap-datepicker": "1.9.0",
|
||||
"browserslist": "^4.19.1",
|
||||
"caniuse-lite": "^1.0.30001312",
|
||||
"core-js": "^3.13.0",
|
||||
"esbuild": "^0.15.10",
|
||||
"esbuild": "^0.12.4",
|
||||
"esbuild-plugin-babel": "https://github.com/schloerke/esbuild-plugin-babel#patch-2",
|
||||
"esbuild-plugin-globals": "^0.1.1",
|
||||
"esbuild-plugin-sass": "^1.0.1",
|
||||
"eslint": "^8.24.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-jest": "^27.0.4",
|
||||
"eslint-plugin-jest-dom": "^4.0.2",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-unicorn": "^43.0.2",
|
||||
"esbuild-plugin-sass": "^0.5.2",
|
||||
"eslint": "^7.27.0",
|
||||
"eslint-config-prettier": "^7.2.0",
|
||||
"eslint-plugin-jest": "^24.3.6",
|
||||
"eslint-plugin-jest-dom": "^3.9.0",
|
||||
"eslint-plugin-prettier": "^3.4.0",
|
||||
"eslint-plugin-unicorn": "^33.0.1",
|
||||
"ion-rangeslider": "2.3.1",
|
||||
"jest": "^26.6.3",
|
||||
"jquery": "3.6.0",
|
||||
@@ -67,15 +67,15 @@
|
||||
"node-gyp": "^8.1.0",
|
||||
"phantomjs-prebuilt": "^2.1.16",
|
||||
"postcss": "^8.3.5",
|
||||
"prettier": "^2.7.1",
|
||||
"prettier": "2.3.0",
|
||||
"readcontrol": "^1.0.0",
|
||||
"replace": "^1.2.1",
|
||||
"selectize": "0.12.4",
|
||||
"strftime": "0.9.2",
|
||||
"ts-jest": "^26",
|
||||
"ts-node": "^10.9.1",
|
||||
"type-coverage": "^2.22.0",
|
||||
"typescript": "^4.8.4",
|
||||
"ts-node": "^10.0.0",
|
||||
"type-coverage": "^2.17.5",
|
||||
"typescript": "~4.1.5",
|
||||
"util-inspect": "https://github.com/deecewan/browser-util-inspect#c0b4350df4378ffd743e8c36dd3898ce3992823e"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
948
revdep/README.md
@@ -1,12 +1,944 @@
|
||||
# Platform
|
||||
|
||||
|field |value |
|
||||
|:--------|:----------------------------|
|
||||
|version |R version 4.0.0 (2020-04-24) |
|
||||
|os |macOS Catalina 10.15.5 |
|
||||
|system |x86_64, darwin17.0 |
|
||||
|ui |X11 |
|
||||
|language |(EN) |
|
||||
|collate |en_US.UTF-8 |
|
||||
|ctype |en_US.UTF-8 |
|
||||
|tz |America/New_York |
|
||||
|date |2020-06-19 |
|
||||
|
||||
# Dependencies
|
||||
|
||||
|package |old |new |Δ |
|
||||
|:-------|:-------|:-----|:--|
|
||||
|shiny |1.4.0.2 |1.5.0 |* |
|
||||
|
||||
# Revdeps
|
||||
|
||||
## Failed to check (5)
|
||||
## Failed to check (3)
|
||||
|
||||
|package |version |error |warning |note |
|
||||
|:----------|:-------|:-----|:-------|:----|
|
||||
|ctsem |3.6.0 |1 | | |
|
||||
|diveR |? | | | |
|
||||
|loon.shiny |? | | | |
|
||||
|NA |? | | | |
|
||||
|SSVS |? | | | |
|
||||
|package |version |error |warning |note |
|
||||
|:--------------------------------------|:-------|:-----|:-------|:----|
|
||||
|[frailtypack](failures.md#frailtypack) |3.3.0 |1 | | |
|
||||
|[Rariant](failures.md#rariant) |1.24.0 |1 | | |
|
||||
|[skeleSim](failures.md#skelesim) |0.9.8 |1 | | |
|
||||
|
||||
## New problems (2)
|
||||
|
||||
|package |version |error |warning |note |
|
||||
|:--------------------------------------------|:-------|:------|:-------|:--------|
|
||||
|[bsplus](problems.md#bsplus) |0.1.1 |__+1__ | |1 |
|
||||
|[RforProteomics](problems.md#rforproteomics) |1.26.0 | |1 |2 __+1__ |
|
||||
|
||||
## All (902)
|
||||
|
||||
|package |version |error |warning |note |
|
||||
|:------------------------------------------------------------------------|:----------|:------|:-------|:--------|
|
||||
|[aaSEA](problems.md#aasea) |1.1.0 | | |1 |
|
||||
|ABACUS |1.0.0 | | | |
|
||||
|abstractr |0.1.0 | | | |
|
||||
|[ADAMgui](problems.md#adamgui) |1.4.0 | | |2 |
|
||||
|[adapr](problems.md#adapr) |2.0.0 | | |1 |
|
||||
|AdaptGauss |1.5.6 | | | |
|
||||
|adaptiveGPCA |0.1.2 | | | |
|
||||
|addinslist |0.3 | | | |
|
||||
|addinsOutline |0.1.6 | | | |
|
||||
|[adegenet](problems.md#adegenet) |2.1.3 | | |1 |
|
||||
|[adepro](problems.md#adepro) |3.0.0 | | |1 |
|
||||
|adespatial |0.3-8 | | | |
|
||||
|[AdhereRViz](problems.md#adhererviz) |0.1.0 | | |1 |
|
||||
|AFheritability |0.1.0 | | | |
|
||||
|AFM |1.2.6 | | | |
|
||||
|ahp |0.2.12 | | | |
|
||||
|airGRteaching |0.2.8.69 | | | |
|
||||
|[alevinQC](problems.md#alevinqc) |1.4.0 | | |1 |
|
||||
|AMModels |0.1.4 | | | |
|
||||
|AmpGram |1.0 | | | |
|
||||
|[AMPLE](problems.md#ample) |0.0.2 | | |1 |
|
||||
|AmyloGram |1.1 | | | |
|
||||
|[analysisPipelines](problems.md#analysispipelines) |1.0.2 | | |1 |
|
||||
|[animalcules](problems.md#animalcules) |1.4.0 |-1 | |4 |
|
||||
|[animaltracker](problems.md#animaltracker) |0.1.0 | | |1 |
|
||||
|[animint2](problems.md#animint2) |2019.7.3 |2 | |2 |
|
||||
|aniview |0.1.0 | | | |
|
||||
|[ANOVAIREVA](problems.md#anovaireva) |0.1.0 | | |1 |
|
||||
|ANOVAreplication |1.1.4 | | | |
|
||||
|[ANOVAShiny](problems.md#anovashiny) |0.1.0 | | |1 |
|
||||
|antaresRead |2.2.5 | | | |
|
||||
|antaresViz |0.15.2 | | | |
|
||||
|AnthropMMD |3.0.1 | | | |
|
||||
|[antitrust](problems.md#antitrust) |0.99.11 | | |1 |
|
||||
|aos |0.1.0 | | | |
|
||||
|[apexcharter](problems.md#apexcharter) |0.1.4 | | |1 |
|
||||
|[appreci8R](problems.md#appreci8r) |1.6.0 |1 | | |
|
||||
|[ArchaeoPhases](problems.md#archaeophases) |1.4.5 | | |1 |
|
||||
|archivist |2.3.4 | | | |
|
||||
|[arena2r](problems.md#arena2r) |1.0.0 | | |1 |
|
||||
|argonDash |0.2.0 | | | |
|
||||
|argonR |0.2.0 | | | |
|
||||
|ARPobservation |1.2.0 | | | |
|
||||
|arulesViz |1.3-3 | | | |
|
||||
|asciiSetupReader |2.3.1 | | | |
|
||||
|[ASSOCShiny](problems.md#assocshiny) |0.1.0 | | |1 |
|
||||
|[AUCell](problems.md#aucell) |1.10.0 | | |4 |
|
||||
|auth0 |0.2.1 | | | |
|
||||
|AutoDeskR |0.1.3 | | | |
|
||||
|autoshiny |0.0.2 | | | |
|
||||
|[autoTS](problems.md#autots) |0.9.11 | | |1 |
|
||||
|AzureAuth |1.2.4 | | | |
|
||||
|azuremlsdk |0.6.85 | | | |
|
||||
|backpipe |0.2.3 | | | |
|
||||
|bairt |0.1.2 | | | |
|
||||
|baRcodeR |0.1.5 | | | |
|
||||
|[BARIS](problems.md#baris) |1.1.1 | | |1 |
|
||||
|basictabler |0.3.1 | | | |
|
||||
|[BatchQC](problems.md#batchqc) |1.16.0 |1 | |1 |
|
||||
|[BayesBD](problems.md#bayesbd) |1.2 |1 | | |
|
||||
|BayesianFROC |0.2.3 | | | |
|
||||
|[BayesianNetwork](problems.md#bayesiannetwork) |0.1.5 | | |1 |
|
||||
|[BayesNetBP](problems.md#bayesnetbp) |1.5.2 | | |1 |
|
||||
|[BBEST](problems.md#bbest) |0.1-6 |1 | | |
|
||||
|[BCEA](problems.md#bcea) |2.3-1.1 | | |1 |
|
||||
|[bdchecks](problems.md#bdchecks) |0.1.7 | | |1 |
|
||||
|[bdclean](problems.md#bdclean) |0.1.15 | | |1 |
|
||||
|bdDwC |0.1.15 | | | |
|
||||
|[bde](problems.md#bde) |1.0.1 | | |1 |
|
||||
|BDEsize |1.2 | | | |
|
||||
|BDP2 |0.1.3 | | | |
|
||||
|[bea.R](problems.md#bear) |1.0.6 | | |1 |
|
||||
|BEACH |1.3.1 | | | |
|
||||
|[beanz](problems.md#beanz) |2.4 | | |3 |
|
||||
|beats |0.1.1 | | | |
|
||||
|[bestSDP](problems.md#bestsdp) |0.1.2 | | |1 |
|
||||
|[BETS](problems.md#bets) |0.4.9 | |2 |1 |
|
||||
|[bibliometrix](problems.md#bibliometrix) |3.0.2 | | |1 |
|
||||
|BIGL |1.4.3 | | | |
|
||||
|[bigPint](problems.md#bigpint) |1.4.0 | | |1 |
|
||||
|[bigQueryR](problems.md#bigqueryr) |0.5.0 | | |1 |
|
||||
|[billboarder](problems.md#billboarder) |0.2.8 | | |1 |
|
||||
|[binovisualfields](problems.md#binovisualfields) |0.1.1 | | |1 |
|
||||
|[bioCancer](problems.md#biocancer) |1.16.0 | |1 |2 |
|
||||
|[BiocOncoTK](problems.md#bioconcotk) |1.8.0 |1 | |3 |
|
||||
|[BioInstaller](problems.md#bioinstaller) |0.3.7 | | |1 |
|
||||
|[BioNetStat](problems.md#bionetstat) |1.8.4 | | |4 |
|
||||
|[BIRDS](problems.md#birds) |0.1 | | |2 |
|
||||
|[biva](problems.md#biva) |0.1.0 | | |1 |
|
||||
|[blkbox](problems.md#blkbox) |1.0 | | |2 |
|
||||
|[blockCV](problems.md#blockcv) |2.1.1 | | |1 |
|
||||
|blogdown |0.19 | | | |
|
||||
|[BLRShiny](problems.md#blrshiny) |0.1.0 | | |1 |
|
||||
|bookdown |0.19 | | | |
|
||||
|bpbounds |0.1.4 | | | |
|
||||
|bridger2 |0.1.0 | | | |
|
||||
|bs4Dash |0.5.0 | | | |
|
||||
|bSims |0.2-1 | | | |
|
||||
|[bsplus](problems.md#bsplus) |0.1.1 |__+1__ | |1 |
|
||||
|bullwhipgame |0.1.0 | | | |
|
||||
|bunchr |1.2.0 | | | |
|
||||
|bupaR |0.4.4 | | | |
|
||||
|[caffsim](problems.md#caffsim) |0.2.2 | | |1 |
|
||||
|CamelUp |0.1.1 | | | |
|
||||
|[canvasXpress](problems.md#canvasxpress) |1.27.6-1 | | |1 |
|
||||
|[CaPO4Sim](problems.md#capo4sim) |0.1.0 | | |1 |
|
||||
|[cartools](problems.md#cartools) |0.1.0 | | |1 |
|
||||
|causaloptim |0.7.1 | | | |
|
||||
|cbsodataR |0.4.1 | | | |
|
||||
|[ChAMP](problems.md#champ) |2.18.2 |1 | | |
|
||||
|ChannelAttributionApp |1.2 | | | |
|
||||
|cheatR |1.2.1 | | | |
|
||||
|[CHETAH](problems.md#chetah) |1.4.0 | | |2 |
|
||||
|[chipPCR](problems.md#chippcr) |0.0.8-10 | | |1 |
|
||||
|[chromoMap](problems.md#chromomap) |0.2 | | |1 |
|
||||
|chromVAR |1.10.0 | | | |
|
||||
|[cicerone](problems.md#cicerone) |1.0.1 | | |1 |
|
||||
|Cite |0.1.0 | | | |
|
||||
|citr |0.3.2 | | | |
|
||||
|[cjoint](problems.md#cjoint) |2.1.0 | | |2 |
|
||||
|CLME |2.0-12 | | | |
|
||||
|[clustDRM](problems.md#clustdrm) |0.1-0 | | |1 |
|
||||
|[CLUSTShiny](problems.md#clustshiny) |0.1.0 | | |1 |
|
||||
|cmsaf |2.0.1 |-1 | | |
|
||||
|[CMShiny](problems.md#cmshiny) |0.1.0 | | |1 |
|
||||
|cNORM |1.2.3 | | | |
|
||||
|[CNVPanelizer](problems.md#cnvpanelizer) |1.20.0 | | |1 |
|
||||
|CNVScope |3.0.9 | | | |
|
||||
|[cocktailApp](problems.md#cocktailapp) |0.2.1 | | |1 |
|
||||
|[codebook](problems.md#codebook) |0.9.2 | | |2 |
|
||||
|[cognitoR](problems.md#cognitor) |1.0.1 | | |1 |
|
||||
|colocr |0.1.1 | | | |
|
||||
|colorspace |1.4-1 | | | |
|
||||
|colourpicker |1.0 | | | |
|
||||
|compareGroups |4.4.1 | | | |
|
||||
|[COMPASS](problems.md#compass) |1.26.0 | | |3 |
|
||||
|[competitiontoolbox](problems.md#competitiontoolbox) |0.1.2 | | |1 |
|
||||
|complexity |1.1.1 | | | |
|
||||
|condformat |0.9.0 | | | |
|
||||
|condir |0.1.2 | | | |
|
||||
|condvis |0.5-1 | | | |
|
||||
|condvis2 |0.1.0 | | | |
|
||||
|[conflr](problems.md#conflr) |0.1.1 | | |1 |
|
||||
|convertr |0.1 | | | |
|
||||
|[CoRegNet](problems.md#coregnet) |1.26.0 | |1 |2 |
|
||||
|[corporaexplorer](problems.md#corporaexplorer) |0.8.2 | | |1 |
|
||||
|[cosinor](problems.md#cosinor) |1.1 | | |1 |
|
||||
|countfitteR |1.0 | | | |
|
||||
|[coveffectsplot](problems.md#coveffectsplot) |0.0.9 | | |1 |
|
||||
|[CRANsearcher](problems.md#cransearcher) |1.0.0 | | |1 |
|
||||
|[crawl](problems.md#crawl) |2.2.1 | | |1 |
|
||||
|credsubs |1.1.0 | | | |
|
||||
|[crispRdesignR](problems.md#crisprdesignr) |1.1.5 | | |1 |
|
||||
|[crisprseekplus](problems.md#crisprseekplus) |1.14.0 | | |1 |
|
||||
|cromwellDashboard |0.5.1 | | | |
|
||||
|cronR |0.4.0 | | | |
|
||||
|[CrossICC](problems.md#crossicc) |1.2.0 | | |1 |
|
||||
|[crossmeta](problems.md#crossmeta) |1.14.0 | |1 |2 |
|
||||
|crosstalk |1.1.0.1 | | | |
|
||||
|crunchy |0.3.1 | | | |
|
||||
|[CSUV](problems.md#csuv) |0.1.0 |1 | | |
|
||||
|[CTAShiny](problems.md#ctashiny) |0.1.0 | | |1 |
|
||||
|[ctsem](problems.md#ctsem) |3.2.1 | | |3 |
|
||||
|ctsGE |1.14.0 | | | |
|
||||
|[CTShiny](problems.md#ctshiny) |0.1.0 | | |1 |
|
||||
|CTTinShiny |0.1.0 | | | |
|
||||
|CTTShiny |0.1 | | | |
|
||||
|cubeview |0.2.0 | | | |
|
||||
|[CVE](problems.md#cve) |1.11.2 |1 |1 |2 |
|
||||
|cydar |1.12.0 | | | |
|
||||
|CytobankAPIstats |2.0 | | | |
|
||||
|d3heatmap |0.6.1.2 | | | |
|
||||
|[d3Tree](problems.md#d3tree) |0.2.0 | | |1 |
|
||||
|daqapo |0.3.0 | | | |
|
||||
|[datacheck](problems.md#datacheck) |1.2.2 | | |2 |
|
||||
|[datadigest](problems.md#datadigest) |1.0.2 | | |1 |
|
||||
|[dataesgobr](problems.md#dataesgobr) |1.0.0 | | |1 |
|
||||
|datamaps |0.0.3 | | | |
|
||||
|datasets.load |1.4.0 | | | |
|
||||
|daterangepicker |0.1.0 | | | |
|
||||
|dccvalidator |0.2.0 | | | |
|
||||
|ddpcr |1.15 | | | |
|
||||
|[debrowser](problems.md#debrowser) |1.16.1 | | |1 |
|
||||
|deepdep |0.2.1 | | | |
|
||||
|deisotoper |0.0.7 | | | |
|
||||
|[delayed](problems.md#delayed) |0.3.0 | | |1 |
|
||||
|demoShiny |0.1 | | | |
|
||||
|[DEP](problems.md#dep) |1.10.0 | | |1 |
|
||||
|[detzrcr](problems.md#detzrcr) |0.3.0 | | |1 |
|
||||
|dextergui |0.2.2 | | | |
|
||||
|diffr |0.1 | | | |
|
||||
|dipsaus |0.0.7 | | | |
|
||||
|[DiscoRhythm](problems.md#discorhythm) |1.4.0 | | |2 |
|
||||
|discoveR |1.2.4 | | | |
|
||||
|disk.frame |0.3.6 | | | |
|
||||
|distcomp |1.1 | | | |
|
||||
|distill |0.8 | | | |
|
||||
|distreg.vis |1.7.0 | | | |
|
||||
|Distributacalcul |0.2.2 | | | |
|
||||
|[diveRsity](problems.md#diversity) |1.9.90 | | |1 |
|
||||
|DIZutils |0.0.4 | | | |
|
||||
|[DLMtool](problems.md#dlmtool) |5.4.5 | | |1 |
|
||||
|dmdScheme |1.2 | | | |
|
||||
|[Doscheda](problems.md#doscheda) |1.10.0 | | |1 |
|
||||
|[dosedesignR](problems.md#dosedesignr) |0.2.4 | | |1 |
|
||||
|dpcR |0.5 | | | |
|
||||
|[dplyrAssist](problems.md#dplyrassist) |0.1.0 | | |1 |
|
||||
|dqshiny |0.0.4 | | | |
|
||||
|[dragon](problems.md#dragon) |0.2.1 | | |1 |
|
||||
|dragulaR |0.3.1 | | | |
|
||||
|DRomics |2.0-1 | | | |
|
||||
|[dropR](problems.md#dropr) |0.1 | | |1 |
|
||||
|DSAIDE |0.8.3 | | | |
|
||||
|DSAIRM |0.8.2 | | | |
|
||||
|DT |0.13 | | | |
|
||||
|DTAT |0.3-4 | | | |
|
||||
|[dtwclust](problems.md#dtwclust) |5.5.6 | | |1 |
|
||||
|[DVHmetrics](problems.md#dvhmetrics) |0.3.10 | | |1 |
|
||||
|[dynamichazard](problems.md#dynamichazard) |0.6.6 | | |1 |
|
||||
|DynNom |5.0.1 | | | |
|
||||
|Eagle |2.2 | | | |
|
||||
|eAnalytics |0.1.4 | | | |
|
||||
|easySdcTable |0.5.0 | | | |
|
||||
|[EBImage](problems.md#ebimage) |4.30.0 | |1 |1 |
|
||||
|ECharts2Shiny |0.2.13 | | | |
|
||||
|echarts4r |0.3.2 | | | |
|
||||
|edeaR |0.8.5 | | | |
|
||||
|edgebundleR |0.1.4 | | | |
|
||||
|editData |0.1.2 | | | |
|
||||
|eechidna |1.4.0 | | | |
|
||||
|eemR |1.0.1 | | | |
|
||||
|EffectLiteR |0.4-4 | | | |
|
||||
|[effectR](problems.md#effectr) |1.0.2 | | |1 |
|
||||
|egor |0.20.06 | | | |
|
||||
|einet |0.1.0 | | | |
|
||||
|elaborator |1.0 | | | |
|
||||
|[elementR](problems.md#elementr) |1.3.6 |1 | | |
|
||||
|[embryogrowth](problems.md#embryogrowth) |7.6 | | |1 |
|
||||
|[EML](problems.md#eml) |2.0.2 | | |1 |
|
||||
|EMMAgeo |0.9.7 | | | |
|
||||
|EMSaov |2.3 | | | |
|
||||
|emuR |2.1.0 | | | |
|
||||
|[ENCODExplorer](problems.md#encodexplorer) |2.14.0 | | |1 |
|
||||
|[enviGCMS](problems.md#envigcms) |0.6.6 | | |1 |
|
||||
|enviPick |1.5 | | | |
|
||||
|[epicontacts](problems.md#epicontacts) |1.1.0 | | |1 |
|
||||
|epimdr |0.6-5 | | | |
|
||||
|EpiModel |1.8.0 | | | |
|
||||
|[EpiSignalDetection](problems.md#episignaldetection) |0.1.1 | | |1 |
|
||||
|[epivizrChart](problems.md#epivizrchart) |1.10.0 | | |2 |
|
||||
|eq5d |0.7.1 | | | |
|
||||
|[erma](problems.md#erma) |1.4.0 | | |2 |
|
||||
|ERSA |0.1.1 | | | |
|
||||
|eSDM |0.3.4 | | | |
|
||||
|eseis |0.5.0 | | | |
|
||||
|esquisse |0.3.0 | | | |
|
||||
|EurosarcBayes |1.1 | | | |
|
||||
|evaluator |0.4.2 | | | |
|
||||
|EventDetectGUI |0.3.0 | | | |
|
||||
|[EventStudy](problems.md#eventstudy) |0.36 | | |2 |
|
||||
|evobiR |1.1 | | | |
|
||||
|excelR |0.4.0 | | | |
|
||||
|ExPanDaR |0.5.1 | | | |
|
||||
|explor |0.3.6 | | | |
|
||||
|explore |0.5.5 | | | |
|
||||
|ExploreModelMatrix |1.0.1 | | | |
|
||||
|[ezplot](problems.md#ezplot) |0.6.1 | | |1 |
|
||||
|Factoshiny |2.2 | | | |
|
||||
|fanplot |3.4.2 | | | |
|
||||
|[farrell](problems.md#farrell) |0.2.0 | | |1 |
|
||||
|[FastqCleaner](problems.md#fastqcleaner) |1.6.0 | | |2 |
|
||||
|[FELLA](problems.md#fella) |1.8.0 |1 | |1 |
|
||||
|findviews |0.1.3 | | | |
|
||||
|fingertipsR |1.0.4 | | | |
|
||||
|[firebase](problems.md#firebase) |0.1.0 | | |1 |
|
||||
|[fitteR](problems.md#fitter) |0.1.0 | | |1 |
|
||||
|[fitur](problems.md#fitur) |0.6.1 | | |1 |
|
||||
|flacco |1.8 | | | |
|
||||
|[flair](problems.md#flair) |0.0.2 | | |1 |
|
||||
|flexdashboard |0.5.1.1 | | | |
|
||||
|[flora](problems.md#flora) |0.3.4 | | |1 |
|
||||
|[flowAI](problems.md#flowai) |1.18.2 | | |1 |
|
||||
|[flowcatchR](problems.md#flowcatchr) |1.22.0 | | |2 |
|
||||
|flowPloidy |1.14.0 | | | |
|
||||
|formatR |1.7 | | | |
|
||||
|formattable |0.2.0.1 | | | |
|
||||
|[frailtypack](failures.md#frailtypack) |3.3.0 |1 | | |
|
||||
|FreqProf |0.0.1 | | | |
|
||||
|frequency |0.4.0 | | | |
|
||||
|fresh |0.2.0 | | | |
|
||||
|[FSK2R](problems.md#fsk2r) |0.1.1 |1 | | |
|
||||
|[FunChIP](problems.md#funchip) |1.14.0 |1 | | |
|
||||
|FuzzyR |2.3 | | | |
|
||||
|G2Sd |2.1.5 | | | |
|
||||
|[g3viz](problems.md#g3viz) |1.1.2 | | |1 |
|
||||
|[GA4GHshiny](problems.md#ga4ghshiny) |1.10.0 |1 | |1 |
|
||||
|[gamesGA](problems.md#gamesga) |1.1.3.7 | | |1 |
|
||||
|[gastempt](problems.md#gastempt) |0.5.0 | | |3 |
|
||||
|gazepath |1.3 | | | |
|
||||
|[GDCRNATools](problems.md#gdcrnatools) |1.8.0 | | |3 |
|
||||
|GDINA |2.8.0 | | | |
|
||||
|genBaRcode |1.2.3 | | | |
|
||||
|[genBart](problems.md#genbart) |1.0.1 | | |1 |
|
||||
|[GeneNetworkBuilder](problems.md#genenetworkbuilder) |1.30.0 | | |1 |
|
||||
|GeneralizedUmatrix |1.1.9 | | | |
|
||||
|[GenEst](problems.md#genest) |1.4.4 | | |1 |
|
||||
|[GeneTonic](problems.md#genetonic) |1.0.1 | | |2 |
|
||||
|genogeographer |0.1.19 | | | |
|
||||
|[GenomicScores](problems.md#genomicscores) |2.0.0 |1 | |4 |
|
||||
|genTS |0.1.3 | | | |
|
||||
|geodrawr |1.0.1 | | | |
|
||||
|[GerminaR](problems.md#germinar) |1.4.2 | | |1 |
|
||||
|gestate |1.4.0 | | | |
|
||||
|getTBinR |0.7.1 | | | |
|
||||
|gfonts |0.1.1 | | | |
|
||||
|[ggedit](problems.md#ggedit) |0.3.1 | | |1 |
|
||||
|[ggExtra](problems.md#ggextra) |0.9 | | |1 |
|
||||
|ggiraph |0.7.0 | | | |
|
||||
|[ggplotAssist](problems.md#ggplotassist) |0.1.3 | | |1 |
|
||||
|ggplotgui |1.0.0 | | | |
|
||||
|[ggquickeda](problems.md#ggquickeda) |0.1.6 | | |1 |
|
||||
|ggraptR |1.2 | | | |
|
||||
|ggThemeAssist |0.1.5 | | | |
|
||||
|ggvis |0.4.5 | | | |
|
||||
|gimmeTools |0.1 | | | |
|
||||
|giphyr |0.2.0 | | | |
|
||||
|gitgadget |0.5.2 | | | |
|
||||
|gitlabr |1.1.6 | | | |
|
||||
|gitlink |0.1.3 | | | |
|
||||
|glmaag |0.0.6 | | | |
|
||||
|GMCM |1.4 | | | |
|
||||
|[gmDatabase](problems.md#gmdatabase) |0.5.0 | |2 |1 |
|
||||
|[GmicR](problems.md#gmicr) |1.2.0 | | |3 |
|
||||
|GMSE |0.6.0.4 | | | |
|
||||
|[GOFShiny](problems.md#gofshiny) |0.1.0 | | |1 |
|
||||
|golem |0.2.1 | | | |
|
||||
|googleAnalyticsR |0.7.1 | | | |
|
||||
|googleAuthR |1.3.0 | | | |
|
||||
|googleCloudRunner |0.2.0 | | | |
|
||||
|googleLanguageR |0.3.0 | | | |
|
||||
|googleVis |0.6.5 | | | |
|
||||
|googleway |2.7.1 | | | |
|
||||
|[GPA](problems.md#gpa) |1.0.0 | | |1 |
|
||||
|GPoM.FDLyapu |1.0 | | | |
|
||||
|[gQTLstats](problems.md#gqtlstats) |1.20.0 | | |4 |
|
||||
|gradientPickerD3 |0.1.0.0 | | | |
|
||||
|[gravitas](problems.md#gravitas) |0.1.2 |2 | | |
|
||||
|[gridsampler](problems.md#gridsampler) |0.6 | | |1 |
|
||||
|[GSCA](problems.md#gsca) |2.17.0 | | |3 |
|
||||
|GSVA |1.36.2 | | | |
|
||||
|[gt](problems.md#gt) |0.2.1 | | |2 |
|
||||
|guiplot |0.1.0 | | | |
|
||||
|[gwdegree](problems.md#gwdegree) |0.1.1 | | |1 |
|
||||
|GWSDAT |3.0.3 | | | |
|
||||
|[HaDeX](problems.md#hadex) |1.2.1 | | |2 |
|
||||
|HARtools |0.0.5 | | | |
|
||||
|[hchinamap](problems.md#hchinamap) |0.1.0 | | |1 |
|
||||
|HelpersMG |4.2 | | | |
|
||||
|HH |3.1-40 | | | |
|
||||
|[highcharter](problems.md#highcharter) |0.7.0 | | |1 |
|
||||
|highlightHTML |0.2.5 | | | |
|
||||
|hpackedbubble |0.1.0 | | | |
|
||||
|hR |0.2.1 | | | |
|
||||
|[HumanTranscriptomeCompendium](problems.md#humantranscriptomecompendium) |1.4.0 |2 | | |
|
||||
|[hwordcloud](problems.md#hwordcloud) |0.1.0 | | |1 |
|
||||
|iAdapt |0.1.0 | | | |
|
||||
|iCellR |1.5.1 | | | |
|
||||
|iCOBRA |1.16.0 | | | |
|
||||
|ICSShiny |0.5 | | | |
|
||||
|[ideal](problems.md#ideal) |1.12.1 | | |1 |
|
||||
|[idefix](problems.md#idefix) |0.4.3 | | |1 |
|
||||
|[idem](problems.md#idem) |5.0 | | |2 |
|
||||
|ifaTools |0.21 | | | |
|
||||
|igraphinshiny |0.1 | | | |
|
||||
|iheatmapr |0.4.12 | | | |
|
||||
|imagefluency |0.2.3 | | | |
|
||||
|Imetagene |1.18.0 | | | |
|
||||
|[immunarch](problems.md#immunarch) |0.6.5 | | |2 |
|
||||
|IMP |1.1 | | | |
|
||||
|ImportExport |1.1 | | | |
|
||||
|[IMWatson](problems.md#imwatson) |0.5.0 | | |1 |
|
||||
|[IncucyteDRC](problems.md#incucytedrc) |0.5.4 |1 | | |
|
||||
|[INDperform](problems.md#indperform) |0.2.2 |2 | |1 |
|
||||
|inferr |0.3.0 | | | |
|
||||
|[inlabru](problems.md#inlabru) |2.1.13 | | |2 |
|
||||
|[INSPEcT](problems.md#inspect) |1.18.0 | | |2 |
|
||||
|[interactiveDisplay](problems.md#interactivedisplay) |1.26.0 | |1 |2 |
|
||||
|interactiveDisplayBase |1.26.3 | | | |
|
||||
|[interAdapt](problems.md#interadapt) |0.1 | | |2 |
|
||||
|interimApp |0.0.1 | | | |
|
||||
|[IOHanalyzer](problems.md#iohanalyzer) |0.1.3 | | |2 |
|
||||
|ioncopy |2.1.1 | | | |
|
||||
|ipc |0.1.3 | | | |
|
||||
|ipumsr |0.4.4 | | | |
|
||||
|irtDemo |0.1.4 | | | |
|
||||
|IRTShiny |1.2 | | | |
|
||||
|[iSEE](problems.md#isee) |2.0.0 |2 | |2 |
|
||||
|[iSEEu](problems.md#iseeu) |1.0.1 |2 | | |
|
||||
|[iSTATS](problems.md#istats) |1.4 | | |1 |
|
||||
|[ivygapSE](problems.md#ivygapse) |1.10.0 | | |2 |
|
||||
|JMbayes |0.8-85 | | | |
|
||||
|JointNets |2.0.1 | | | |
|
||||
|[jpmesh](problems.md#jpmesh) |1.2.1 | | |1 |
|
||||
|[jpndistrict](problems.md#jpndistrict) |0.3.7 | | |1 |
|
||||
|[jsmodule](problems.md#jsmodule) |1.0.8 | | |1 |
|
||||
|KappaGUI |2.0.2 | | | |
|
||||
|KCSKNNShiny |0.1.0 | | | |
|
||||
|KCSNBShiny |0.1.0 | | | |
|
||||
|kgc |1.0.0.2 | | | |
|
||||
|kgschart |1.3.5 | | | |
|
||||
|[KNNShiny](problems.md#knnshiny) |0.1.0 | | |1 |
|
||||
|[kokudosuuchi](problems.md#kokudosuuchi) |0.4.2 | | |1 |
|
||||
|[koRpus](problems.md#korpus) |0.11-5 | | |1 |
|
||||
|lavaan.shiny |1.2 | | | |
|
||||
|LBSPR |0.1.5 | | | |
|
||||
|lcars |0.3.1 | | | |
|
||||
|lcsm |0.1.1 | | | |
|
||||
|LDAvis |0.3.2 | | | |
|
||||
|leaflet |2.0.3 | | | |
|
||||
|[leaflet.extras2](problems.md#leafletextras2) |1.0.0 | | |1 |
|
||||
|leaflet.minicharts |0.6.0 | | | |
|
||||
|learnr |0.10.1 | | | |
|
||||
|[learnstats](problems.md#learnstats) |0.1.1 | | |1 |
|
||||
|[levi](problems.md#levi) |1.6.0 | | |2 |
|
||||
|lifelogr |0.1.0 | | | |
|
||||
|lightsout |0.3 | | | |
|
||||
|[likert](problems.md#likert) |1.3.5 | | |1 |
|
||||
|lime |0.5.1 | | | |
|
||||
|linguisticsdown |1.2.0 | | | |
|
||||
|linkspotter |1.2.0 | | | |
|
||||
|linpk |1.0 | | | |
|
||||
|listviewer |3.0.0 | | | |
|
||||
|[live](problems.md#live) |1.5.13 | | |1 |
|
||||
|[lmviz](problems.md#lmviz) |0.1.2 | | |1 |
|
||||
|manipulateWidget |0.10.1 | | | |
|
||||
|[mapdeck](problems.md#mapdeck) |0.3.3 | | |1 |
|
||||
|[mapedit](problems.md#mapedit) |0.6.0 | | |1 |
|
||||
|markdownInput |0.1.2 | | | |
|
||||
|matman |1.1.0 | | | |
|
||||
|MAVIS |1.1.3 | | | |
|
||||
|MazamaSpatialUtils |0.6.4 | | | |
|
||||
|MCPModPack |0.2 |-1 | | |
|
||||
|mcvis |1.0.4 | | | |
|
||||
|[MDSPCAShiny](problems.md#mdspcashiny) |0.1.0 | | |1 |
|
||||
|meltt |0.4.1 | | | |
|
||||
|[memapp](problems.md#memapp) |2.13 | | |1 |
|
||||
|[memery](problems.md#memery) |0.5.2 | | |1 |
|
||||
|merTools |0.5.0 | | | |
|
||||
|[meta4diag](problems.md#meta4diag) |2.0.8 | | |1 |
|
||||
|MetaAnalyser |0.2.1 | | | |
|
||||
|metamer |0.2.0 | | | |
|
||||
|metathis |1.0.2 | | | |
|
||||
|[MetCirc](problems.md#metcirc) |1.18.0 | | |2 |
|
||||
|[MethylAid](problems.md#methylaid) |1.22.0 |2 | |1 |
|
||||
|[methylGSA](problems.md#methylgsa) |1.6.1 | | |1 |
|
||||
|metricsgraphics |0.9.0 | | | |
|
||||
|[mgcViz](problems.md#mgcviz) |0.1.6 | | |1 |
|
||||
|[microhaplot](problems.md#microhaplot) |1.0.1 | | |1 |
|
||||
|microsamplingDesign |1.0.7 | | | |
|
||||
|midas |1.0.1 | | | |
|
||||
|MIMSunit |0.9.1 | | | |
|
||||
|[miniMeta](problems.md#minimeta) |0.2 | | |1 |
|
||||
|miniUI |0.1.1.1 | | | |
|
||||
|[miRcomp](problems.md#mircomp) |1.18.0 | |1 | |
|
||||
|mirt |1.32.1 | | | |
|
||||
|mirtCAT |1.9.3 | | | |
|
||||
|[MLDAShiny](problems.md#mldashiny) |0.1.0 | | |1 |
|
||||
|mldr |0.4.3 | | | |
|
||||
|[MLInterfaces](problems.md#mlinterfaces) |1.68.0 | | |5 |
|
||||
|[mlr3shiny](problems.md#mlr3shiny) |0.1.1 | | |1 |
|
||||
|[MLRShiny](problems.md#mlrshiny) |0.1.0 | | |1 |
|
||||
|[MLRShiny2](problems.md#mlrshiny2) |0.1.0 | | |1 |
|
||||
|mlxR |4.1.3 | | | |
|
||||
|[MMDiff2](problems.md#mmdiff2) |1.16.0 | | |4 |
|
||||
|[MNLR](problems.md#mnlr) |0.1.0 | | |1 |
|
||||
|modest |0.3-1 | | | |
|
||||
|MODIStsp |1.4.0 | | | |
|
||||
|Mondrian |1.1.0 | | | |
|
||||
|mplot |1.0.4 | | | |
|
||||
|mrMLM.GUI |4.0 | | | |
|
||||
|[MSEtool](problems.md#msetool) |1.6.0 | | |1 |
|
||||
|[MSGFgui](problems.md#msgfgui) |1.22.0 |1 | | |
|
||||
|[MSnbase](problems.md#msnbase) |2.14.2 | | |3 |
|
||||
|MSstatsQCgui |1.8.0 | | | |
|
||||
|[mstrio](problems.md#mstrio) |11.2.1 | | |1 |
|
||||
|MtreeRing |1.4.2 | | | |
|
||||
|[MuChPoint](problems.md#muchpoint) |0.6.1 | | |1 |
|
||||
|multichull |1.0.0 | | | |
|
||||
|mwaved |1.1.7 | | | |
|
||||
|mwshiny |2.1.0 | | | |
|
||||
|NACHO |1.0.1 | | | |
|
||||
|[nbc4va](problems.md#nbc4va) |1.1 |1 | |1 |
|
||||
|[NBShiny](problems.md#nbshiny) |0.1.0 | | |1 |
|
||||
|[NBShiny2](problems.md#nbshiny2) |0.1.0 | | |1 |
|
||||
|[NDP](problems.md#ndp) |0.1.0 | | |1 |
|
||||
|[neo4r](problems.md#neo4r) |0.1.1 | | |1 |
|
||||
|netCoin |1.1.25 | | | |
|
||||
|netrankr |0.2.1 | | | |
|
||||
|nlgeocoder |0.1.3 | | | |
|
||||
|NNTbiomarker |0.29.11 | | | |
|
||||
|normalr |1.0.0 | | | |
|
||||
|nph |2.0 | | | |
|
||||
|[nprcgenekeepr](problems.md#nprcgenekeepr) |1.0.3 | | |1 |
|
||||
|npregfast |1.5.1 | | | |
|
||||
|nse2r |0.1.2 | | | |
|
||||
|objectremover |0.7.0 | | | |
|
||||
|[oceanis](problems.md#oceanis) |1.7.3 | | |2 |
|
||||
|[omicplotR](problems.md#omicplotr) |1.8.0 | | |2 |
|
||||
|[oneSENSE](problems.md#onesense) |1.10.0 | |1 |1 |
|
||||
|[ontoProc](problems.md#ontoproc) |1.10.0 |1 | |3 |
|
||||
|[oolong](problems.md#oolong) |0.3.4 | | |1 |
|
||||
|OpenImageR |1.1.7 | | | |
|
||||
|[openmetrics](problems.md#openmetrics) |0.1.1 | | |1 |
|
||||
|[openPrimeRui](problems.md#openprimerui) |1.10.0 | | |2 |
|
||||
|[oppr](problems.md#oppr) |1.0.2 | | |1 |
|
||||
|optimStrat |2.1 | | | |
|
||||
|OWEA |0.1.1 | | | |
|
||||
|[pairsD3](problems.md#pairsd3) |0.1.0 | | |1 |
|
||||
|[PanVizGenerator](problems.md#panvizgenerator) |1.16.0 | | |1 |
|
||||
|ParallelLogger |2.0.0 | | | |
|
||||
|paramGUI |2.1.4 | | | |
|
||||
|parcoords |1.0.0 | | | |
|
||||
|[PathoStat](problems.md#pathostat) |1.14.0 | | |1 |
|
||||
|pcadapt |4.3.3 | | | |
|
||||
|[pcaExplorer](problems.md#pcaexplorer) |2.14.2 | | |2 |
|
||||
|[pcFactorStan](problems.md#pcfactorstan) |1.5.1 | | |2 |
|
||||
|PCRedux |1.0-6 | | | |
|
||||
|pdfsearch |0.3.0 | | | |
|
||||
|PDShiny |0.1.0 | | | |
|
||||
|PELVIS |2.0.1 | | | |
|
||||
|[pepStat](problems.md#pepstat) |1.22.0 | | |3 |
|
||||
|periscope |0.4.10-1 | | | |
|
||||
|[phenocamr](problems.md#phenocamr) |1.1.4 | | |1 |
|
||||
|phenofit |0.2.7 | | | |
|
||||
|phenology |7.3 | | | |
|
||||
|phuse |0.2.2 | | | |
|
||||
|PhyloProfile |1.2.5 | | | |
|
||||
|[piano](problems.md#piano) |2.4.0 | | |2 |
|
||||
|pipe.design |0.5.1 | | | |
|
||||
|pipefittr |0.1.2 | | | |
|
||||
|[pitchRx](problems.md#pitchrx) |1.8.2 | | |1 |
|
||||
|PivotalR |0.1.18.3.1 | | | |
|
||||
|[pivottabler](problems.md#pivottabler) |1.5.0 | | |1 |
|
||||
|pixels |0.1.0 | | | |
|
||||
|PKconverter |1.5 | | | |
|
||||
|pkgsearch |3.0.2 | | | |
|
||||
|plainview |0.1.0 | | | |
|
||||
|[plethem](problems.md#plethem) |0.1.7 |1 | |1 |
|
||||
|[plotGrouper](problems.md#plotgrouper) |1.6.0 | | |1 |
|
||||
|[plotly](problems.md#plotly) |4.9.2.1 | | |1 |
|
||||
|plotROC |2.2.1 | | | |
|
||||
|plotSEMM |2.4 | | | |
|
||||
|plsr |0.0.1 | | | |
|
||||
|[pmd](problems.md#pmd) |0.1.9 | | |1 |
|
||||
|[pogos](problems.md#pogos) |1.8.0 | | |1 |
|
||||
|[polaroid](problems.md#polaroid) |0.0.1 | | |1 |
|
||||
|[polmineR](problems.md#polminer) |0.8.0 | | |1 |
|
||||
|PopED |0.5.0 | | | |
|
||||
|poppr |2.8.6 | | | |
|
||||
|populationPDXdesign |1.0.3 | | | |
|
||||
|powdR |1.2.2 | | | |
|
||||
|powerlmm |0.4.0 | | | |
|
||||
|ppcSpatial |0.2.0 | | | |
|
||||
|pqantimalarials |0.2 | | | |
|
||||
|[precisely](problems.md#precisely) |0.1.0 | | |1 |
|
||||
|[PrecisionTrialDrawer](problems.md#precisiontrialdrawer) |1.4.0 |1 | | |
|
||||
|[predictoR](problems.md#predictor) |1.1.0 | | |1 |
|
||||
|[PREPShiny](problems.md#prepshiny) |0.1.0 | | |1 |
|
||||
|[primirTSS](problems.md#primirtss) |1.6.1 | |1 |1 |
|
||||
|[prioritizr](problems.md#prioritizr) |5.0.1 | | |2 |
|
||||
|ProbBayes |1.1 | | | |
|
||||
|[PROBShiny](problems.md#probshiny) |0.1.0 | | |1 |
|
||||
|[processanimateR](problems.md#processanimater) |1.0.3 | | |1 |
|
||||
|processmapR |0.3.4 | | | |
|
||||
|processmonitR |0.1.0 | | | |
|
||||
|processR |0.2.3 | | | |
|
||||
|profvis |0.3.6 | | | |
|
||||
|progressr |0.6.0 | | | |
|
||||
|ProjectionBasedClustering |1.1.1 | | | |
|
||||
|pRolocGUI |1.22.0 | | | |
|
||||
|Prostar |1.20.0 | | | |
|
||||
|[psichomics](problems.md#psichomics) |1.14.1 | | |1 |
|
||||
|PupilPre |0.6.2 | | | |
|
||||
|pushbar |0.1.0 | | | |
|
||||
|[pwrEWAS](problems.md#pwrewas) |1.2.0 |2 | | |
|
||||
|[QCA](problems.md#qca) |3.8.2 | | |2 |
|
||||
|qgam |1.3.2 | | | |
|
||||
|[qlcData](problems.md#qlcdata) |0.2.1 | | |1 |
|
||||
|[qqplotr](problems.md#qqplotr) |0.0.4 | | |1 |
|
||||
|qqvases |1.0.0 | | | |
|
||||
|QRAGadget |0.1.0 | | | |
|
||||
|qrage |1.0 | | | |
|
||||
|QTL.gCIMapping.GUI |2.1 | | | |
|
||||
|[questionr](problems.md#questionr) |0.7.1 | | |2 |
|
||||
|R.SamBada |0.1.2 | | | |
|
||||
|r2d3 |0.2.3 | | | |
|
||||
|[R3CPET](problems.md#r3cpet) |1.20.0 |1 | | |
|
||||
|r4ss |1.36.1 | | | |
|
||||
|rabi |1.0.2 | | | |
|
||||
|radarchart |0.3.1 | | | |
|
||||
|radiant |1.3.2 | | | |
|
||||
|radiant.basics |1.3.4 | | | |
|
||||
|radiant.data |1.3.9 | | | |
|
||||
|radiant.design |1.3.5 | | | |
|
||||
|radiant.model |1.3.10 | | | |
|
||||
|radiant.multivariate |1.3.5 | | | |
|
||||
|radix |0.6 | | | |
|
||||
|[RagGrid](problems.md#raggrid) |0.2.0 | | |1 |
|
||||
|rainette |0.1.1 | | | |
|
||||
|[rAmCharts](problems.md#ramcharts) |2.1.13 | | |1 |
|
||||
|rangeMapper |0.3-7 | | | |
|
||||
|[rangeModelMetadata](problems.md#rangemodelmetadata) |0.1.3 | | |1 |
|
||||
|RanglaPunjab |2.3.4 | | | |
|
||||
|[rapbase](problems.md#rapbase) |1.10.0 | | |1 |
|
||||
|[Rariant](failures.md#rariant) |1.24.0 |1 | | |
|
||||
|rbin |0.2.0 | | | |
|
||||
|rblt |0.2.4.5 | | | |
|
||||
|[rcellminer](problems.md#rcellminer) |2.10.0 | |1 |3 |
|
||||
|[rCGH](problems.md#rcgh) |1.18.0 | | |2 |
|
||||
|rclipboard |0.1.2 | | | |
|
||||
|rco |1.0.1 | | | |
|
||||
|rcrossref |1.0.0 | | | |
|
||||
|[Rcwl](problems.md#rcwl) |1.4.2 |1 |4 |5 |
|
||||
|[rddapp](problems.md#rddapp) |1.2.1 |1 | |2 |
|
||||
|RDML |1.0 | | | |
|
||||
|reactable |0.2.0 | | | |
|
||||
|reactlog |1.0.0 | | | |
|
||||
|reactR |0.4.2 | | | |
|
||||
|[recmap](problems.md#recmap) |1.0.7 | | |1 |
|
||||
|[ReDaMoR](problems.md#redamor) |0.4.2 | | |1 |
|
||||
|[RefNet](problems.md#refnet) |1.24.0 | |1 | |
|
||||
|refund.shiny |0.3.0 | | | |
|
||||
|regexSelect |1.0.0 | | | |
|
||||
|[regressoR](problems.md#regressor) |1.1.8 | | |1 |
|
||||
|Repliscope |1.1.0 | | | |
|
||||
|repo |2.1.5 | | | |
|
||||
|[ReportingTools](problems.md#reportingtools) |2.28.0 | | |1 |
|
||||
|reprex |0.3.0 | | | |
|
||||
|[reverseR](problems.md#reverser) |0.1 | | |1 |
|
||||
|revtools |0.4.1 | | | |
|
||||
|[RforProteomics](problems.md#rforproteomics) |1.26.0 | |1 |2 __+1__ |
|
||||
|[Rfssa](problems.md#rfssa) |1.0.0 | | |1 |
|
||||
|RGA |0.4.2 | | | |
|
||||
|[rgl](problems.md#rgl) |0.100.54 | | |2 |
|
||||
|[rhandsontable](problems.md#rhandsontable) |0.3.7 | | |1 |
|
||||
|Rilostat |1.1 | | | |
|
||||
|rintrojs |0.2.2 | | | |
|
||||
|rivr |1.2-2 | | | |
|
||||
|[RLumShiny](problems.md#rlumshiny) |0.2.2 | | |1 |
|
||||
|[rmarkdown](problems.md#rmarkdown) |2.3 | | |1 |
|
||||
|[rmd](problems.md#rmd) |0.1.5 | | |1 |
|
||||
|[RnBeads](problems.md#rnbeads) |2.6.0 | | |7 |
|
||||
|rnn |0.9.8 | | | |
|
||||
|roadoi |0.6 | | | |
|
||||
|robmed |0.7.0 | | | |
|
||||
|[RobStatTM](problems.md#robstattm) |1.0.2 | | |1 |
|
||||
|[rosr](problems.md#rosr) |0.0.10 | | |1 |
|
||||
|rPackedBar |0.2.2 | | | |
|
||||
|[rpostgisLT](problems.md#rpostgislt) |0.6.0 | | |1 |
|
||||
|rpredictit |0.0.2 | | | |
|
||||
|[Rqc](problems.md#rqc) |1.22.0 | | |2 |
|
||||
|[RQuantLib](problems.md#rquantlib) |0.4.12 |2 |1 | |
|
||||
|rrtable |0.2.1 | | | |
|
||||
|[rrvgo](problems.md#rrvgo) |1.0.0 | | |3 |
|
||||
|RSCAT |1.1.0 | | | |
|
||||
|rsconnect |0.8.16 | | | |
|
||||
|[rtimicropem](problems.md#rtimicropem) |1.4.0 | | |1 |
|
||||
|rTRMui |1.26.0 | | | |
|
||||
|[RtutoR](problems.md#rtutor) |1.2 | | |1 |
|
||||
|rusk |0.1.1 | | | |
|
||||
|ruv |0.9.7.1 | | | |
|
||||
|rwalkr |0.5.2 | | | |
|
||||
|[RxODE](problems.md#rxode) |0.9.2-0 | | |1 |
|
||||
|sadists |0.2.3 | | | |
|
||||
|[safetyGraphics](problems.md#safetygraphics) |1.1.0 | | |1 |
|
||||
|samr |3.0 | | | |
|
||||
|[sangerseqR](problems.md#sangerseqr) |1.24.0 | | |1 |
|
||||
|sankeywheel |0.1.0 | | | |
|
||||
|[santaR](problems.md#santar) |1.0 | | |1 |
|
||||
|[SC3](problems.md#sc3) |1.16.0 | | |3 |
|
||||
|scdhlm |0.3.2 | | | |
|
||||
|schex |1.2.0 | | | |
|
||||
|[scone](problems.md#scone) |1.12.0 | | |1 |
|
||||
|sdcHierarchies |0.18.2 | | | |
|
||||
|sdcMicro |5.5.1 | | | |
|
||||
|[SDEFSR](problems.md#sdefsr) |0.7.21 | | |1 |
|
||||
|sdm |1.0-89 | | | |
|
||||
|[SEA](problems.md#sea) |1.0 | | |1 |
|
||||
|searchConsoleR |0.4.0 | | | |
|
||||
|seasonalview |0.3 | | | |
|
||||
|semantic.dashboard |0.1.5 | | | |
|
||||
|[semdrw](problems.md#semdrw) |0.1.0 | | |1 |
|
||||
|[SemNeT](problems.md#semnet) |1.3.0 | | |2 |
|
||||
|sen2r |1.3.6 | | | |
|
||||
|[seqplots](problems.md#seqplots) |1.26.0 | | |4 |
|
||||
|serieslcb |0.4.0 | | | |
|
||||
|[sglr](problems.md#sglr) |0.7 | | |2 |
|
||||
|SHELF |1.7.0 | | | |
|
||||
|shiny.info |0.2.0 | | | |
|
||||
|[shiny.router](problems.md#shinyrouter) |0.1.1 | | |1 |
|
||||
|[shiny.semantic](problems.md#shinysemantic) |0.3.0 | | |1 |
|
||||
|[shinyAce](problems.md#shinyace) |0.4.1 | | |1 |
|
||||
|[shinyaframe](problems.md#shinyaframe) |1.0.1 | | |1 |
|
||||
|shinyalert |1.1 | | | |
|
||||
|shinyanimate |0.3.0 | | | |
|
||||
|shinybootstrap2 |0.2.1 | | | |
|
||||
|[shinybrms](problems.md#shinybrms) |1.1.0 | | |1 |
|
||||
|[shinyBS](problems.md#shinybs) |0.61 | | |1 |
|
||||
|shinybusy |0.2.0 | | | |
|
||||
|shinycssloaders |0.3 | | | |
|
||||
|shinycustomloader |0.9.0 | | | |
|
||||
|shinydashboard |0.7.1 | | | |
|
||||
|shinydashboardPlus |0.7.0 | | | |
|
||||
|shinyDND |0.1.0 | | | |
|
||||
|[shinyEffects](problems.md#shinyeffects) |0.1.0 | | |1 |
|
||||
|shinyEventLogger |0.1.1 | | | |
|
||||
|shinyFeedback |0.2.0 | | | |
|
||||
|shinyFiles |0.8.0 | | | |
|
||||
|shinyglide |0.1.2 | | | |
|
||||
|shinyHeatmaply |0.2.0 | | | |
|
||||
|[shinyhelper](problems.md#shinyhelper) |0.3.2 | | |1 |
|
||||
|ShinyImage |0.1.0 | | | |
|
||||
|[ShinyItemAnalysis](problems.md#shinyitemanalysis) |1.3.3 | | |2 |
|
||||
|shinyjqui |0.3.3 | | | |
|
||||
|[shinyjs](problems.md#shinyjs) |1.1 | | |1 |
|
||||
|[shinyKGode](problems.md#shinykgode) |1.0.5 | | |1 |
|
||||
|shinyKnobs |0.1.3 | | | |
|
||||
|shinylogs |0.1.7 | | | |
|
||||
|shinyLP |1.1.2 | | | |
|
||||
|shinymanager |1.0.200 | | | |
|
||||
|shinymaterial |1.1.0 | | | |
|
||||
|shinyMatrix |0.3.0 | | | |
|
||||
|[shinyMethyl](problems.md#shinymethyl) |1.24.0 |1 | | |
|
||||
|shinyML |0.2.0 | | | |
|
||||
|shinyMobile |0.7.0 | | | |
|
||||
|shinyMolBio |0.2 | | | |
|
||||
|shinyNotes |0.0.1 | | | |
|
||||
|shinyobjects |0.1.0 | | | |
|
||||
|[shinypanels](problems.md#shinypanels) |0.5.0 | | |1 |
|
||||
|[shinyr](problems.md#shinyr) |0.2.6 | | |1 |
|
||||
|[shinyrecap](problems.md#shinyrecap) |0.1.0 | | |1 |
|
||||
|shinyrecipes |0.1.0 | | | |
|
||||
|shinyreforms |0.0.1 | | | |
|
||||
|shinyRGL |0.1.0 | | | |
|
||||
|shinySearchbar |1.0.0 | | | |
|
||||
|shinySIR |0.1.1 | | | |
|
||||
|shinystan |2.5.0 | | | |
|
||||
|[shinyTANDEM](problems.md#shinytandem) |1.26.0 |1 | | |
|
||||
|shinytest |1.4.0 | | | |
|
||||
|shinythemes |1.1.2 | | | |
|
||||
|shinyTime |1.0.1 | | | |
|
||||
|shinytoastr |2.1.1 | | | |
|
||||
|shinyTree |0.2.7 | | | |
|
||||
|shinyWidgets |0.5.3 | | | |
|
||||
|shinyypr |0.0.2 | | | |
|
||||
|shotGroups |0.7.5.1 | | | |
|
||||
|[sigmajs](problems.md#sigmajs) |0.1.5 | | |1 |
|
||||
|sigmaNet |1.1.0 | | | |
|
||||
|signalHsmm |1.5 | | | |
|
||||
|[SimDesign](problems.md#simdesign) |2.0.1 | | |1 |
|
||||
|simglm |0.8.0 | | | |
|
||||
|simPATHy |0.4 | | | |
|
||||
|[simplevis](problems.md#simplevis) |1.3.0 | | |1 |
|
||||
|simrel |2.0.2 | | | |
|
||||
|sinew |0.3.8 | | | |
|
||||
|SingleCaseES |0.4.3 | | | |
|
||||
|[singleCellTK](problems.md#singlecelltk) |1.8.0 | | |3 |
|
||||
|sistec |0.1.0 | | | |
|
||||
|[skeleSim](failures.md#skelesim) |0.9.8 |1 | | |
|
||||
|[skpr](problems.md#skpr) |0.64.2 | | |2 |
|
||||
|SMITIDvisu |0.0.6 | | | |
|
||||
|snahelper |1.1.0 | | | |
|
||||
|snotelr |1.0.4 | | | |
|
||||
|[soc.ca](problems.md#socca) |0.7.3 | | |1 |
|
||||
|Sofi |0.16.4.8 | | | |
|
||||
|[soilcarbon](problems.md#soilcarbon) |1.2.0 | | |2 |
|
||||
|[sojourner](problems.md#sojourner) |1.2.1 |1 | | |
|
||||
|solvebio |2.7.2 | | | |
|
||||
|SOMbrero |1.3 | | | |
|
||||
|sortable |0.4.2 | | | |
|
||||
|[soundgen](problems.md#soundgen) |1.7.0 | | |1 |
|
||||
|[SpaDES.addins](problems.md#spadesaddins) |0.1.2 | | |1 |
|
||||
|Spaniel |1.2.0 | | | |
|
||||
|spANOVA |0.99.2 | | | |
|
||||
|[spant](problems.md#spant) |1.6.0 | | |1 |
|
||||
|sparkline |2.0 | | | |
|
||||
|[sparklyr](problems.md#sparklyr) |1.2.0 | | |1 |
|
||||
|[sparkTable](problems.md#sparktable) |1.3.0 | | |1 |
|
||||
|SpatialCPie |1.4.0 | | | |
|
||||
|[SpatialEpiApp](problems.md#spatialepiapp) |0.3 | | |2 |
|
||||
|[spatialLIBD](problems.md#spatiallibd) |1.0.0 |1 | |1 |
|
||||
|[spectrolab](problems.md#spectrolab) |0.0.9 | | |1 |
|
||||
|spinifex |0.2.0 | | | |
|
||||
|SpNetPrep |1.1 | | | |
|
||||
|spotGUI |0.2.1 | | | |
|
||||
|SqlRender |1.6.6 | | | |
|
||||
|squid |0.1.2 | | | |
|
||||
|[SSDM](problems.md#ssdm) |0.2.8 | | |1 |
|
||||
|[ssrch](problems.md#ssrch) |1.4.0 | | |2 |
|
||||
|[sstModel](problems.md#sstmodel) |1.0.0 | | |1 |
|
||||
|[STAT](problems.md#stat) |0.1.0 | | |1 |
|
||||
|statnetWeb |0.5.5 | | | |
|
||||
|statsr |0.2.0 | | | |
|
||||
|[steemr](problems.md#steemr) |0.1.3 | | |1 |
|
||||
|StereoMorph |1.6.3 | | | |
|
||||
|stmgui |0.1.6 | | | |
|
||||
|[stminsights](problems.md#stminsights) |0.3.0 | | |1 |
|
||||
|[STMotif](problems.md#stmotif) |2.0.0 | | |1 |
|
||||
|[strand](problems.md#strand) |0.1.3 | | |1 |
|
||||
|StratigrapheR |1.1.0 | | | |
|
||||
|[subscreen](problems.md#subscreen) |2.0.1 | | |1 |
|
||||
|SubVis |2.0.2 | | | |
|
||||
|swirlify |0.5.3 | | | |
|
||||
|[tableHTML](problems.md#tablehtml) |2.0.0 | | |2 |
|
||||
|[tablerDash](problems.md#tablerdash) |0.1.0 | | |1 |
|
||||
|tabulizer |0.2.2 | | | |
|
||||
|taipan |0.1.2 | | | |
|
||||
|target |1.2.0 | | | |
|
||||
|[TAShiny](problems.md#tashiny) |0.1.0 | | |1 |
|
||||
|[TBSignatureProfiler](problems.md#tbsignatureprofiler) |1.0.0 | | |1 |
|
||||
|[TCGAbiolinksGUI](problems.md#tcgabiolinksgui) |1.14.0 | | |3 |
|
||||
|[TeachBayes](problems.md#teachbayes) |1.0 | |1 | |
|
||||
|teachingApps |1.0.8 | | | |
|
||||
|[tenXplore](problems.md#tenxplore) |1.10.0 | | |1 |
|
||||
|[TestDesign](problems.md#testdesign) |1.0.2 | | |1 |
|
||||
|[testextra](problems.md#testextra) |0.1.0.1 | | |1 |
|
||||
|[texPreview](problems.md#texpreview) |1.4.4 | | |1 |
|
||||
|[TFutils](problems.md#tfutils) |1.8.0 |1 |1 |4 |
|
||||
|themetagenomics |1.0.2 | | | |
|
||||
|threeBrain |0.1.7 | | | |
|
||||
|[tidycells](problems.md#tidycells) |0.2.2 |2 | | |
|
||||
|tidycwl |1.0.4 | | | |
|
||||
|tidyvpc |1.0.0 | | | |
|
||||
|tigerstats |0.3.2 | | | |
|
||||
|[timeline](problems.md#timeline) |0.9 | | |2 |
|
||||
|[TimerQuant](problems.md#timerquant) |1.18.0 | | |1 |
|
||||
|[timeseriesdb](problems.md#timeseriesdb) |0.4.1 | | |1 |
|
||||
|[timevis](problems.md#timevis) |0.5 | | |1 |
|
||||
|tippy |0.0.1 | | | |
|
||||
|tmap |3.0 | | | |
|
||||
|[tmaptools](problems.md#tmaptools) |3.0 | | |1 |
|
||||
|TnT |1.10.0 | | | |
|
||||
|toxEval |1.1.0 | | | |
|
||||
|[TR8](problems.md#tr8) |0.9.21 | | |1 |
|
||||
|trackdem |0.5.2 | | | |
|
||||
|[trackeRapp](problems.md#trackerapp) |1.1 | | |1 |
|
||||
|trackr |0.10.6 | | | |
|
||||
|trade |0.5.4 | | | |
|
||||
|treemap |2.4-2 | | | |
|
||||
|TreeSearch |0.4.1 | | | |
|
||||
|[treespace](problems.md#treespace) |1.1.3.2 | | |1 |
|
||||
|TreeTools |1.0.0 | | | |
|
||||
|Trendy |1.10.0 | | | |
|
||||
|tricolore |1.2.2 | | | |
|
||||
|[TSCAN](problems.md#tscan) |1.26.0 | | |1 |
|
||||
|tsviz |0.1.0 | | | |
|
||||
|[ttestshiny](problems.md#ttestshiny) |0.1.0 | | |1 |
|
||||
|[TVTB](problems.md#tvtb) |1.14.0 | | |1 |
|
||||
|[twoddpcr](problems.md#twoddpcr) |1.12.0 | | |1 |
|
||||
|[TxRegInfra](problems.md#txreginfra) |1.8.0 | | |5 |
|
||||
|[ubiquity](problems.md#ubiquity) |1.0.1 | | |1 |
|
||||
|[UCSCXenaShiny](problems.md#ucscxenashiny) |0.5.0 | | |2 |
|
||||
|UCSCXenaTools |1.3.1 | | | |
|
||||
|[Ularcirc](problems.md#ularcirc) |1.6.0 |1 | | |
|
||||
|Umatrix |3.3 | | | |
|
||||
|[ursa](problems.md#ursa) |3.8.20 | | |1 |
|
||||
|[VariantFiltering](problems.md#variantfiltering) |1.24.0 |1 | |3 |
|
||||
|[VarSelLCM](problems.md#varsellcm) |2.1.3 | | |1 |
|
||||
|[vdiffr](problems.md#vdiffr) |0.3.2 | | |1 |
|
||||
|vegawidget |0.3.1 | | | |
|
||||
|vici |0.5.2 | | | |
|
||||
|VineCopula |2.3.0 | | | |
|
||||
|[viromeBrowser](problems.md#viromebrowser) |1.0.0 | | |1 |
|
||||
|[visit](problems.md#visit) |2.1 | | |2 |
|
||||
|[visNetwork](problems.md#visnetwork) |2.0.9 | | |1 |
|
||||
|vistributions |0.1.1 | | | |
|
||||
|visvow |0.9.0 | | | |
|
||||
|voronoiTreemap |0.2.0 | | | |
|
||||
|VOSONDash |0.5.4 | | | |
|
||||
|vov |0.1.0 | | | |
|
||||
|vtree |4.0.0 | | | |
|
||||
|[VTShiny](problems.md#vtshiny) |0.1.0 | | |1 |
|
||||
|VWPre |1.2.3 | | | |
|
||||
|[waiter](problems.md#waiter) |0.1.0 | | |1 |
|
||||
|[wallace](problems.md#wallace) |1.0.6.2 | | |1 |
|
||||
|[webr](problems.md#webr) |0.1.5 | | |1 |
|
||||
|webshot |0.5.2 | | | |
|
||||
|weco |1.2 | | | |
|
||||
|weightr |2.0.2 | | | |
|
||||
|wilson |2.4.0 | | | |
|
||||
|wiqid |0.3.0 | | | |
|
||||
|[wiseR](problems.md#wiser) |1.0.1 | | |2 |
|
||||
|workflowr |1.6.2 | | | |
|
||||
|wppExplorer |2.3-4 | | | |
|
||||
|[wTO](problems.md#wto) |1.6.3 | | |1 |
|
||||
|xplorerr |0.1.1 | | | |
|
||||
|[xROI](problems.md#xroi) |0.9.13 | |1 | |
|
||||
|[ymlthis](problems.md#ymlthis) |0.1.2 | | |1 |
|
||||
|yonder |0.2.0 | | | |
|
||||
|[yuimaGUI](problems.md#yuimagui) |1.3.0 | | |1 |
|
||||
|zooimage |5.5.2 | | | |
|
||||
|zscorer |0.3.1 | | | |
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
## revdepcheck results
|
||||
|
||||
We checked 1039 reverse dependencies (1038 from CRAN + 1 from Bioconductor), comparing R CMD check results across CRAN and dev versions of this package.
|
||||
|
||||
* We saw 0 new problems
|
||||
* We failed to check 4 packages
|
||||
|
||||
Issues with CRAN packages are summarised below.
|
||||
|
||||
### Failed to check
|
||||
|
||||
* ctsem (NA)
|
||||
* diveR (NA)
|
||||
* loon.shiny (NA)
|
||||
* SSVS (NA)
|
||||
11893
revdep/problems.md
@@ -8,7 +8,7 @@ yarn add https://github.com/rstudio/shiny\#v1.7.0
|
||||
|
||||
, matching the GitHub tag to your current the Shiny CRAN release (ex: `v1.7.0`). If you are asked to select a version of `@types/jquery`, please select the closest matching version.
|
||||
|
||||
This will provide a global type definition of `Shiny`, let your IDE know that `window.Shiny` is of type `Shiny`, and declare a globally available variable `Shiny` within your project. You **should not** need to import anything. Similar to `jQuery`, it should _Just Work_<sup>TM</sup>.
|
||||
This will provide a global type defintion of `Shiny`, let your IDE know that `window.Shiny` is of type `Shiny`, and declare a globally available variable `Shiny` within your project. You **should not** need to import anything. Similar to `jQuery`, it should _Just Work_<sup>TM</sup>.
|
||||
|
||||
When loading your compiled file, it should be loaded after `shiny.js` is loaded. If you are using an `htmlDependency()` to add your code to the page, your script will automatically be loaded after has been loaded.
|
||||
|
||||
@@ -192,7 +192,7 @@ Both JavaScript files will produce a sourcemap (`**.js.map`) that the browser wi
|
||||
|
||||
### Exported types
|
||||
|
||||
`./extras/globalShiny.ts` contains global declarations to define `window.Shiny`, a globally available `Shiny` variable, and a globally available `Shiny` type. This file is in a parallel folder to `./src` to avoid `Shiny` from being globally accessable within the source code. However, this file is the default type definition when the Type definitions are installed by external developers.
|
||||
`./extras/globalShiny.ts` contains global declarations to define `window.Shiny`, a globally available `Shiny` variable, and a globally available `Shiny` type. This file is in a parallel folder to `./src` to avoid `Shiny` from being globally accessable within the source code. However, this file is the default type defintion when the Type definitions are installed by external developers.
|
||||
|
||||
### GitHub Actions
|
||||
|
||||
|
||||
@@ -1,23 +1,13 @@
|
||||
import type {
|
||||
BuildFailure,
|
||||
import {
|
||||
build as esbuildBuild,
|
||||
BuildIncremental,
|
||||
BuildOptions,
|
||||
BuildResult,
|
||||
WatchMode,
|
||||
} from "esbuild";
|
||||
import { build as esbuildBuild } from "esbuild";
|
||||
|
||||
import readcontrol from "readcontrol";
|
||||
import process from "process";
|
||||
import { basename } from "path";
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore; Type definitions are not found. This occurs when `strict: true` in tsconfig.json
|
||||
import readcontrol from "readcontrol";
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore; Type definitions are not found. This occurs when `strict: true` in tsconfig.json
|
||||
import babelPlugin from "esbuild-plugin-babel";
|
||||
|
||||
const outDir = "./inst/www/shared/";
|
||||
|
||||
type ShinyDesc = { version: string; package: string; license: string };
|
||||
@@ -52,7 +42,7 @@ async function build(
|
||||
}
|
||||
}
|
||||
|
||||
const onRebuild = function (error: BuildFailure | null) {
|
||||
const onRebuild = function (error?: string) {
|
||||
if (error) {
|
||||
console.error(printNames.join(", "), "watch build failed:\n", error);
|
||||
} else {
|
||||
@@ -64,7 +54,7 @@ async function build(
|
||||
};
|
||||
|
||||
let incremental = false;
|
||||
let watch: WatchMode | false = false;
|
||||
let watch: false | { onRebuild: (error, result) => void } = false;
|
||||
|
||||
if (process.argv.length >= 3 && process.argv[2] == "--watch") {
|
||||
incremental = true;
|
||||
@@ -79,14 +69,13 @@ async function build(
|
||||
return esbuildBuild({
|
||||
incremental: incremental,
|
||||
watch: watch,
|
||||
target: "es2020",
|
||||
format: "iife",
|
||||
target: "es5",
|
||||
preserveSymlinks: true,
|
||||
...opts,
|
||||
}).then((x) => {
|
||||
onRebuild(null);
|
||||
onRebuild();
|
||||
return x;
|
||||
});
|
||||
}
|
||||
|
||||
export { outDir, build, shinyDesc, banner, babelPlugin };
|
||||
export { outDir, build, shinyDesc, banner };
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
|
||||
// - TypeScript -----------------------------------------------------------
|
||||
|
||||
import { banner, build, outDir, babelPlugin } from "./_build";
|
||||
import { banner, build, outDir } from "./_build";
|
||||
import babelPlugin from "esbuild-plugin-babel";
|
||||
|
||||
build({
|
||||
bundle: true,
|
||||
sourcemap: true,
|
||||
sourcemap: "inline",
|
||||
minify: true,
|
||||
plugins: [babelPlugin()],
|
||||
banner: banner,
|
||||
@@ -24,10 +25,8 @@ build({
|
||||
// - Sass -----------------------------------------------------------
|
||||
|
||||
import autoprefixer from "autoprefixer";
|
||||
import sassPlugin from "esbuild-plugin-sass";
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore; Type definitions are not found. This occurs when `strict: true` in tsconfig.json
|
||||
import postCssPlugin from "@deanc/esbuild-plugin-postcss";
|
||||
import sassPlugin from "esbuild-plugin-sass";
|
||||
|
||||
const sassOpts = {
|
||||
minify: true,
|
||||
|
||||